From 80c004cb01bb4f1b5e945b0f9e74e76c6f220f44 Mon Sep 17 00:00:00 2001 From: Pete Harverson Date: Wed, 30 Sep 2020 08:54:17 +0100 Subject: [PATCH 001/142] [ML] Replace use of rest_total_hits_as_int with track_total_hits (#78423) * [ML] Replace use of rest_total_hits_as_int with track_total_hits * [ML] Replace use of lodash get for obtaining hits total * [ML] Update mocks to use new total hits format --- .../jobs/components/custom_url_editor/utils.js | 3 +-- .../application/services/forecast_service.js | 6 ++---- .../results_service/result_service_rx.ts | 3 +-- .../services/results_service/results_service.js | 16 ++++++---------- .../analytics_audit_messages.ts | 3 +-- .../models/data_recognizer/data_recognizer.ts | 3 +-- .../models/data_visualizer/data_visualizer.ts | 10 ++++------ .../job_audit_messages/job_audit_messages.js | 6 ++---- .../models/job_service/new_job/line_chart.ts | 4 ++-- .../job_service/new_job/population_chart.ts | 4 ++-- .../__mocks__/mock_farequote_cardinality.json | 7 +++++-- .../mock_farequote_search_response.json | 2 +- .../__mocks__/mock_it_search_response.json | 2 +- .../__mocks__/mock_time_range.json | 2 +- .../models/job_validation/job_validation.test.ts | 2 +- .../models/results_service/results_service.ts | 13 +++++-------- .../routes/api/transforms_audit_messages.ts | 3 +-- 17 files changed, 37 insertions(+), 52 deletions(-) diff --git a/x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/utils.js b/x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/utils.js index 87c2219f4d441..a0e9c33e42dfa 100644 --- a/x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/utils.js +++ b/x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/utils.js @@ -296,11 +296,10 @@ export function getTestUrl(job, customUrl) { return new Promise((resolve, reject) => { ml.results .anomalySearch({ - rest_total_hits_as_int: true, body, }) .then((resp) => { - if (resp.hits.total > 0) { + if (resp.hits.total.value > 0) { const record = resp.hits.hits[0]._source; testUrl = replaceTokensInUrlValue(customUrl, bucketSpanSecs, record, 'timestamp'); resolve(testUrl); diff --git a/x-pack/plugins/ml/public/application/services/forecast_service.js b/x-pack/plugins/ml/public/application/services/forecast_service.js index a36d57424eeb0..36d676fe25b35 100644 --- a/x-pack/plugins/ml/public/application/services/forecast_service.js +++ b/x-pack/plugins/ml/public/application/services/forecast_service.js @@ -50,7 +50,6 @@ function getForecastsSummary(job, query, earliestMs, maxResults) { ml.results .anomalySearch({ size: maxResults, - rest_total_hits_as_int: true, body: { query: { bool: { @@ -61,7 +60,7 @@ function getForecastsSummary(job, query, earliestMs, maxResults) { }, }) .then((resp) => { - if (resp.hits.total !== 0) { + if (resp.hits.total.value > 0) { obj.forecasts = resp.hits.hits.map((hit) => hit._source); } @@ -344,7 +343,6 @@ function getForecastRequestStats(job, forecastId) { ml.results .anomalySearch({ size: 1, - rest_total_hits_as_int: true, body: { query: { bool: { @@ -354,7 +352,7 @@ function getForecastRequestStats(job, forecastId) { }, }) .then((resp) => { - if (resp.hits.total !== 0) { + if (resp.hits.total.value > 0) { obj.stats = resp.hits.hits[0]._source; } resolve(obj); diff --git a/x-pack/plugins/ml/public/application/services/results_service/result_service_rx.ts b/x-pack/plugins/ml/public/application/services/results_service/result_service_rx.ts index fd7055477a875..e1c322910e237 100644 --- a/x-pack/plugins/ml/public/application/services/results_service/result_service_rx.ts +++ b/x-pack/plugins/ml/public/application/services/results_service/result_service_rx.ts @@ -402,7 +402,6 @@ export function resultsServiceRxProvider(mlApiServices: MlApiServices) { return mlApiServices.results .anomalySearch$({ index: ML_RESULTS_INDEX_PATTERN, - rest_total_hits_as_int: true, size: maxResults !== undefined ? maxResults : 100, body: { query: { @@ -427,7 +426,7 @@ export function resultsServiceRxProvider(mlApiServices: MlApiServices) { }) .pipe( map((resp) => { - if (resp.hits.total !== 0) { + if (resp.hits.total.value > 0) { each(resp.hits.hits, (hit: any) => { obj.records.push(hit._source); }); diff --git a/x-pack/plugins/ml/public/application/services/results_service/results_service.js b/x-pack/plugins/ml/public/application/services/results_service/results_service.js index 4e55b092de5ad..df993079c6771 100644 --- a/x-pack/plugins/ml/public/application/services/results_service/results_service.js +++ b/x-pack/plugins/ml/public/application/services/results_service/results_service.js @@ -725,7 +725,6 @@ export function resultsServiceProvider(mlApiServices) { mlApiServices.results .anomalySearch({ size: maxResults !== undefined ? maxResults : 100, - rest_total_hits_as_int: true, body: { _source: ['job_id', 'detector_index', 'influencers', 'record_score'], query: { @@ -749,7 +748,7 @@ export function resultsServiceProvider(mlApiServices) { }, }) .then((resp) => { - if (resp.hits.total !== 0) { + if (resp.hits.total.value > 0) { each(resp.hits.hits, (hit) => { obj.records.push(hit._source); }); @@ -857,7 +856,6 @@ export function resultsServiceProvider(mlApiServices) { mlApiServices.results .anomalySearch({ size: maxResults !== undefined ? maxResults : 100, - rest_total_hits_as_int: true, body: { query: { bool: { @@ -880,7 +878,7 @@ export function resultsServiceProvider(mlApiServices) { }, }) .then((resp) => { - if (resp.hits.total !== 0) { + if (resp.hits.total.value > 0) { each(resp.hits.hits, (hit) => { obj.records.push(hit._source); }); @@ -982,7 +980,6 @@ export function resultsServiceProvider(mlApiServices) { mlApiServices.results .anomalySearch({ size: maxResults !== undefined ? maxResults : 100, - rest_total_hits_as_int: true, body: { query: { bool: { @@ -1005,7 +1002,7 @@ export function resultsServiceProvider(mlApiServices) { }, }) .then((resp) => { - if (resp.hits.total !== 0) { + if (resp.hits.total.value > 0) { each(resp.hits.hits, (hit) => { obj.records.push(hit._source); }); @@ -1058,7 +1055,6 @@ export function resultsServiceProvider(mlApiServices) { mlApiServices .esSearch({ index, - rest_total_hits_as_int: true, size: 0, body: { query: { @@ -1090,7 +1086,7 @@ export function resultsServiceProvider(mlApiServices) { const time = dataForTime.key; obj.results[time] = dataForTime.doc_count; }); - obj.total = resp.hits.total; + obj.total = resp.hits.total.value; resolve(obj); }) @@ -1227,13 +1223,13 @@ export function resultsServiceProvider(mlApiServices) { .esSearch({ index, body, - rest_total_hits_as_int: true, + track_total_hits: true, }) .then((resp) => { // Because of the sampling, results of metricFunctions which use sum or count // can be significantly skewed. Taking into account totalHits we calculate a // a factor to normalize results for these metricFunctions. - const totalHits = get(resp, ['hits', 'total'], 0); + const totalHits = resp.hits.total.value; const successfulShards = get(resp, ['_shards', 'successful'], 0); let normalizeFactor = 1; diff --git a/x-pack/plugins/ml/server/models/data_frame_analytics/analytics_audit_messages.ts b/x-pack/plugins/ml/server/models/data_frame_analytics/analytics_audit_messages.ts index 0f4cac37d2e8f..ae42469cc1af2 100644 --- a/x-pack/plugins/ml/server/models/data_frame_analytics/analytics_audit_messages.ts +++ b/x-pack/plugins/ml/server/models/data_frame_analytics/analytics_audit_messages.ts @@ -71,7 +71,6 @@ export function analyticsAuditMessagesProvider({ asInternalUser }: IScopedCluste const { body } = await asInternalUser.search({ index: ML_NOTIFICATION_INDEX_PATTERN, ignore_unavailable: true, - rest_total_hits_as_int: true, size: SIZE, body: { sort: [{ timestamp: { order: 'desc' } }, { job_id: { order: 'asc' } }], @@ -80,7 +79,7 @@ export function analyticsAuditMessagesProvider({ asInternalUser }: IScopedCluste }); let messages = []; - if (body.hits.total !== 0) { + if (body.hits.total.value > 0) { messages = body.hits.hits.map((hit: Message) => hit._source); messages.reverse(); } diff --git a/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts b/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts index 820fcfa9253b6..141e78a91cf0d 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts +++ b/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts @@ -248,12 +248,11 @@ export class DataRecognizer { const { body } = await this._asCurrentUser.search({ index, - rest_total_hits_as_int: true, size, body: searchBody, }); - return body.hits.total !== 0; + return body.hits.total.value > 0; } async listModules() { diff --git a/x-pack/plugins/ml/server/models/data_visualizer/data_visualizer.ts b/x-pack/plugins/ml/server/models/data_visualizer/data_visualizer.ts index 7ff25c22f4896..1f59e990096a4 100644 --- a/x-pack/plugins/ml/server/models/data_visualizer/data_visualizer.ts +++ b/x-pack/plugins/ml/server/models/data_visualizer/data_visualizer.ts @@ -627,12 +627,12 @@ export class DataVisualizer { const { body } = await this._asCurrentUser.search({ index, - rest_total_hits_as_int: true, + track_total_hits: true, size, body: searchBody, }); const aggregations = body.aggregations; - const totalCount = get(body, ['hits', 'total'], 0); + const totalCount = body.hits.total.value; const stats = { totalCount, aggregatableExistsFields: [] as FieldData[], @@ -694,11 +694,10 @@ export class DataVisualizer { const { body } = await this._asCurrentUser.search({ index, - rest_total_hits_as_int: true, size, body: searchBody, }); - return body.hits.total > 0; + return body.hits.total.value > 0; } async getDocumentCountStats( @@ -1164,7 +1163,6 @@ export class DataVisualizer { const { body } = await this._asCurrentUser.search({ index, - rest_total_hits_as_int: true, size, body: searchBody, }); @@ -1172,7 +1170,7 @@ export class DataVisualizer { fieldName: field, examples: [] as any[], }; - if (body.hits.total !== 0) { + if (body.hits.total.value > 0) { const hits = body.hits.hits; for (let i = 0; i < hits.length; i++) { // Look in the _source for the field value. diff --git a/x-pack/plugins/ml/server/models/job_audit_messages/job_audit_messages.js b/x-pack/plugins/ml/server/models/job_audit_messages/job_audit_messages.js index 3fd5ebf3f68f4..e8d21c7355ff7 100644 --- a/x-pack/plugins/ml/server/models/job_audit_messages/job_audit_messages.js +++ b/x-pack/plugins/ml/server/models/job_audit_messages/job_audit_messages.js @@ -102,7 +102,6 @@ export function jobAuditMessagesProvider({ asInternalUser }) { const { body } = await asInternalUser.search({ index: ML_NOTIFICATION_INDEX_PATTERN, ignore_unavailable: true, - rest_total_hits_as_int: true, size: SIZE, body: { sort: [{ timestamp: { order: 'desc' } }, { job_id: { order: 'asc' } }], @@ -111,7 +110,7 @@ export function jobAuditMessagesProvider({ asInternalUser }) { }); let messages = []; - if (body.hits.total !== 0) { + if (body.hits.total.value > 0) { messages = body.hits.hits.map((hit) => hit._source); } return messages; @@ -153,7 +152,6 @@ export function jobAuditMessagesProvider({ asInternalUser }) { const { body } = await asInternalUser.search({ index: ML_NOTIFICATION_INDEX_PATTERN, ignore_unavailable: true, - rest_total_hits_as_int: true, size: 0, body: { query, @@ -196,7 +194,7 @@ export function jobAuditMessagesProvider({ asInternalUser }) { let messagesPerJob = []; const jobMessages = []; if ( - body.hits.total !== 0 && + body.hits.total.value > 0 && body.aggregations && body.aggregations.levelsPerJob && body.aggregations.levelsPerJob.buckets && diff --git a/x-pack/plugins/ml/server/models/job_service/new_job/line_chart.ts b/x-pack/plugins/ml/server/models/job_service/new_job/line_chart.ts index 128b28a223445..93f7c81c10023 100644 --- a/x-pack/plugins/ml/server/models/job_service/new_job/line_chart.ts +++ b/x-pack/plugins/ml/server/models/job_service/new_job/line_chart.ts @@ -89,7 +89,7 @@ function processSearchResults(resp: any, fields: string[]): ProcessedResults { return { success: true, results: tempResults, - totalResults: resp.hits.total, + totalResults: resp.hits.total.value, }; } @@ -107,7 +107,7 @@ function getSearchJsonFromConfig( const json = { index: indexPatternTitle, size: 0, - rest_total_hits_as_int: true, + track_total_hits: true, body: { query: {}, aggs: { diff --git a/x-pack/plugins/ml/server/models/job_service/new_job/population_chart.ts b/x-pack/plugins/ml/server/models/job_service/new_job/population_chart.ts index 71e81158d8885..e614f887e29bc 100644 --- a/x-pack/plugins/ml/server/models/job_service/new_job/population_chart.ts +++ b/x-pack/plugins/ml/server/models/job_service/new_job/population_chart.ts @@ -118,7 +118,7 @@ function processSearchResults(resp: any, fields: string[]): ProcessedResults { return { success: true, results: tempResults, - totalResults: resp.hits.total, + totalResults: resp.hits.total.value, }; } @@ -135,7 +135,7 @@ function getPopulationSearchJsonFromConfig( const json = { index: indexPatternTitle, size: 0, - rest_total_hits_as_int: true, + track_total_hits: true, body: { query: {}, aggs: { diff --git a/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_farequote_cardinality.json b/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_farequote_cardinality.json index 8d408ff0310c9..8b9b1de453c11 100644 --- a/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_farequote_cardinality.json +++ b/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_farequote_cardinality.json @@ -2,6 +2,9 @@ "took": 0, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, - "hits": { "total": 86274, "max_score": 0, "hits": [] }, - "aggregations": { "airline_cardinality": { "value": 19 }, "airline_count": { "doc_count": 86274 } } + "hits": { "total": { "value": 86274, "relation": "eq" }, "max_score": 0, "hits": [] }, + "aggregations": { + "airline_cardinality": { "value": 19 }, + "airline_count": { "doc_count": 86274 } + } } diff --git a/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_farequote_search_response.json b/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_farequote_search_response.json index 7bb449921a101..72536f8fdc08b 100644 --- a/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_farequote_search_response.json +++ b/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_farequote_search_response.json @@ -1 +1 @@ -{"took":41,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":86274,"max_score":0,"hits":[]},"aggregations":{"non_empty_buckets":{"buckets":[{"key_as_string":"2017-02-07T00:00:00.000Z","key":1486425600000,"doc_count":23},{"key_as_string":"2017-02-07T00:01:00.000Z","key":1486425660000,"doc_count":10},{"key_as_string":"2017-02-07T00:02:00.000Z","key":1486425720000,"doc_count":6},{"key_as_string":"2017-02-07T00:03:00.000Z","key":1486425780000,"doc_count":11},{"key_as_string":"2017-02-07T00:04:00.000Z","key":1486425840000,"doc_count":11},{"key_as_string":"2017-02-07T00:05:00.000Z","key":1486425900000,"doc_count":11},{"key_as_string":"2017-02-07T00:06:00.000Z","key":1486425960000,"doc_count":11},{"key_as_string":"2017-02-07T00:07:00.000Z","key":1486426020000,"doc_count":11},{"key_as_string":"2017-02-07T00:08:00.000Z","key":1486426080000,"doc_count":8},{"key_as_string":"2017-02-07T00:09:00.000Z","key":1486426140000,"doc_count":11},{"key_as_string":"2017-02-07T00:10:00.000Z","key":1486426200000,"doc_count":10},{"key_as_string":"2017-02-07T00:11:00.000Z","key":1486426260000,"doc_count":9},{"key_as_string":"2017-02-07T00:12:00.000Z","key":1486426320000,"doc_count":12},{"key_as_string":"2017-02-07T00:13:00.000Z","key":1486426380000,"doc_count":9},{"key_as_string":"2017-02-07T00:14:00.000Z","key":1486426440000,"doc_count":8},{"key_as_string":"2017-02-07T00:15:00.000Z","key":1486426500000,"doc_count":14},{"key_as_string":"2017-02-07T00:16:00.000Z","key":1486426560000,"doc_count":9},{"key_as_string":"2017-02-07T00:17:00.000Z","key":1486426620000,"doc_count":8},{"key_as_string":"2017-02-07T00:18:00.000Z","key":1486426680000,"doc_count":13},{"key_as_string":"2017-02-07T00:19:00.000Z","key":1486426740000,"doc_count":9},{"key_as_string":"2017-02-07T00:20:00.000Z","key":1486426800000,"doc_count":11},{"key_as_string":"2017-02-07T00:21:00.000Z","key":1486426860000,"doc_count":9},{"key_as_string":"2017-02-07T00:22:00.000Z","key":1486426920000,"doc_count":9},{"key_as_string":"2017-02-07T00:23:00.000Z","key":1486426980000,"doc_count":12},{"key_as_string":"2017-02-07T00:24:00.000Z","key":1486427040000,"doc_count":11},{"key_as_string":"2017-02-07T00:25:00.000Z","key":1486427100000,"doc_count":11},{"key_as_string":"2017-02-07T00:26:00.000Z","key":1486427160000,"doc_count":8},{"key_as_string":"2017-02-07T00:27:00.000Z","key":1486427220000,"doc_count":12},{"key_as_string":"2017-02-07T00:28:00.000Z","key":1486427280000,"doc_count":7},{"key_as_string":"2017-02-07T00:29:00.000Z","key":1486427340000,"doc_count":12},{"key_as_string":"2017-02-07T00:30:00.000Z","key":1486427400000,"doc_count":13},{"key_as_string":"2017-02-07T00:31:00.000Z","key":1486427460000,"doc_count":10},{"key_as_string":"2017-02-07T00:32:00.000Z","key":1486427520000,"doc_count":13},{"key_as_string":"2017-02-07T00:33:00.000Z","key":1486427580000,"doc_count":13},{"key_as_string":"2017-02-07T00:34:00.000Z","key":1486427640000,"doc_count":11},{"key_as_string":"2017-02-07T00:35:00.000Z","key":1486427700000,"doc_count":9},{"key_as_string":"2017-02-07T00:36:00.000Z","key":1486427760000,"doc_count":11},{"key_as_string":"2017-02-07T00:37:00.000Z","key":1486427820000,"doc_count":15},{"key_as_string":"2017-02-07T00:38:00.000Z","key":1486427880000,"doc_count":7},{"key_as_string":"2017-02-07T00:39:00.000Z","key":1486427940000,"doc_count":13},{"key_as_string":"2017-02-07T00:40:00.000Z","key":1486428000000,"doc_count":9},{"key_as_string":"2017-02-07T00:41:00.000Z","key":1486428060000,"doc_count":12},{"key_as_string":"2017-02-07T00:42:00.000Z","key":1486428120000,"doc_count":16},{"key_as_string":"2017-02-07T00:43:00.000Z","key":1486428180000,"doc_count":7},{"key_as_string":"2017-02-07T00:44:00.000Z","key":1486428240000,"doc_count":6},{"key_as_string":"2017-02-07T00:45:00.000Z","key":1486428300000,"doc_count":12},{"key_as_string":"2017-02-07T00:46:00.000Z","key":1486428360000,"doc_count":11},{"key_as_string":"2017-02-07T00:47:00.000Z","key":1486428420000,"doc_count":12},{"key_as_string":"2017-02-07T00:48:00.000Z","key":1486428480000,"doc_count":13},{"key_as_string":"2017-02-07T00:49:00.000Z","key":1486428540000,"doc_count":10},{"key_as_string":"2017-02-07T00:50:00.000Z","key":1486428600000,"doc_count":13},{"key_as_string":"2017-02-07T00:51:00.000Z","key":1486428660000,"doc_count":7},{"key_as_string":"2017-02-07T00:52:00.000Z","key":1486428720000,"doc_count":11},{"key_as_string":"2017-02-07T00:53:00.000Z","key":1486428780000,"doc_count":12},{"key_as_string":"2017-02-07T00:54:00.000Z","key":1486428840000,"doc_count":16},{"key_as_string":"2017-02-07T00:55:00.000Z","key":1486428900000,"doc_count":8},{"key_as_string":"2017-02-07T00:56:00.000Z","key":1486428960000,"doc_count":12},{"key_as_string":"2017-02-07T00:57:00.000Z","key":1486429020000,"doc_count":12},{"key_as_string":"2017-02-07T00:58:00.000Z","key":1486429080000,"doc_count":8},{"key_as_string":"2017-02-07T00:59:00.000Z","key":1486429140000,"doc_count":11},{"key_as_string":"2017-02-07T01:00:00.000Z","key":1486429200000,"doc_count":8},{"key_as_string":"2017-02-07T01:01:00.000Z","key":1486429260000,"doc_count":7},{"key_as_string":"2017-02-07T01:02:00.000Z","key":1486429320000,"doc_count":6},{"key_as_string":"2017-02-07T01:03:00.000Z","key":1486429380000,"doc_count":15},{"key_as_string":"2017-02-07T01:04:00.000Z","key":1486429440000,"doc_count":12},{"key_as_string":"2017-02-07T01:05:00.000Z","key":1486429500000,"doc_count":5},{"key_as_string":"2017-02-07T01:06:00.000Z","key":1486429560000,"doc_count":11},{"key_as_string":"2017-02-07T01:07:00.000Z","key":1486429620000,"doc_count":15},{"key_as_string":"2017-02-07T01:08:00.000Z","key":1486429680000,"doc_count":8},{"key_as_string":"2017-02-07T01:09:00.000Z","key":1486429740000,"doc_count":14},{"key_as_string":"2017-02-07T01:10:00.000Z","key":1486429800000,"doc_count":8},{"key_as_string":"2017-02-07T01:11:00.000Z","key":1486429860000,"doc_count":6},{"key_as_string":"2017-02-07T01:12:00.000Z","key":1486429920000,"doc_count":16},{"key_as_string":"2017-02-07T01:13:00.000Z","key":1486429980000,"doc_count":10},{"key_as_string":"2017-02-07T01:14:00.000Z","key":1486430040000,"doc_count":8},{"key_as_string":"2017-02-07T01:15:00.000Z","key":1486430100000,"doc_count":12},{"key_as_string":"2017-02-07T01:16:00.000Z","key":1486430160000,"doc_count":13},{"key_as_string":"2017-02-07T01:17:00.000Z","key":1486430220000,"doc_count":10},{"key_as_string":"2017-02-07T01:18:00.000Z","key":1486430280000,"doc_count":11},{"key_as_string":"2017-02-07T01:19:00.000Z","key":1486430340000,"doc_count":12},{"key_as_string":"2017-02-07T01:20:00.000Z","key":1486430400000,"doc_count":12},{"key_as_string":"2017-02-07T01:21:00.000Z","key":1486430460000,"doc_count":12},{"key_as_string":"2017-02-07T01:22:00.000Z","key":1486430520000,"doc_count":7},{"key_as_string":"2017-02-07T01:23:00.000Z","key":1486430580000,"doc_count":13},{"key_as_string":"2017-02-07T01:24:00.000Z","key":1486430640000,"doc_count":5},{"key_as_string":"2017-02-07T01:25:00.000Z","key":1486430700000,"doc_count":11},{"key_as_string":"2017-02-07T01:26:00.000Z","key":1486430760000,"doc_count":11},{"key_as_string":"2017-02-07T01:27:00.000Z","key":1486430820000,"doc_count":9},{"key_as_string":"2017-02-07T01:28:00.000Z","key":1486430880000,"doc_count":11},{"key_as_string":"2017-02-07T01:29:00.000Z","key":1486430940000,"doc_count":10},{"key_as_string":"2017-02-07T01:30:00.000Z","key":1486431000000,"doc_count":10},{"key_as_string":"2017-02-07T01:31:00.000Z","key":1486431060000,"doc_count":12},{"key_as_string":"2017-02-07T01:32:00.000Z","key":1486431120000,"doc_count":12},{"key_as_string":"2017-02-07T01:33:00.000Z","key":1486431180000,"doc_count":10},{"key_as_string":"2017-02-07T01:34:00.000Z","key":1486431240000,"doc_count":10},{"key_as_string":"2017-02-07T01:35:00.000Z","key":1486431300000,"doc_count":10},{"key_as_string":"2017-02-07T01:36:00.000Z","key":1486431360000,"doc_count":14},{"key_as_string":"2017-02-07T01:37:00.000Z","key":1486431420000,"doc_count":9},{"key_as_string":"2017-02-07T01:38:00.000Z","key":1486431480000,"doc_count":8},{"key_as_string":"2017-02-07T01:39:00.000Z","key":1486431540000,"doc_count":16},{"key_as_string":"2017-02-07T01:40:00.000Z","key":1486431600000,"doc_count":8},{"key_as_string":"2017-02-07T01:41:00.000Z","key":1486431660000,"doc_count":11},{"key_as_string":"2017-02-07T01:42:00.000Z","key":1486431720000,"doc_count":12},{"key_as_string":"2017-02-07T01:43:00.000Z","key":1486431780000,"doc_count":10},{"key_as_string":"2017-02-07T01:44:00.000Z","key":1486431840000,"doc_count":16},{"key_as_string":"2017-02-07T01:45:00.000Z","key":1486431900000,"doc_count":10},{"key_as_string":"2017-02-07T01:46:00.000Z","key":1486431960000,"doc_count":7},{"key_as_string":"2017-02-07T01:47:00.000Z","key":1486432020000,"doc_count":10},{"key_as_string":"2017-02-07T01:48:00.000Z","key":1486432080000,"doc_count":5},{"key_as_string":"2017-02-07T01:49:00.000Z","key":1486432140000,"doc_count":11},{"key_as_string":"2017-02-07T01:50:00.000Z","key":1486432200000,"doc_count":7},{"key_as_string":"2017-02-07T01:51:00.000Z","key":1486432260000,"doc_count":16},{"key_as_string":"2017-02-07T01:52:00.000Z","key":1486432320000,"doc_count":8},{"key_as_string":"2017-02-07T01:53:00.000Z","key":1486432380000,"doc_count":14},{"key_as_string":"2017-02-07T01:54:00.000Z","key":1486432440000,"doc_count":10},{"key_as_string":"2017-02-07T01:55:00.000Z","key":1486432500000,"doc_count":8},{"key_as_string":"2017-02-07T01:56:00.000Z","key":1486432560000,"doc_count":12},{"key_as_string":"2017-02-07T01:57:00.000Z","key":1486432620000,"doc_count":14},{"key_as_string":"2017-02-07T01:58:00.000Z","key":1486432680000,"doc_count":9},{"key_as_string":"2017-02-07T01:59:00.000Z","key":1486432740000,"doc_count":10},{"key_as_string":"2017-02-07T02:00:00.000Z","key":1486432800000,"doc_count":9},{"key_as_string":"2017-02-07T02:01:00.000Z","key":1486432860000,"doc_count":14},{"key_as_string":"2017-02-07T02:02:00.000Z","key":1486432920000,"doc_count":10},{"key_as_string":"2017-02-07T02:03:00.000Z","key":1486432980000,"doc_count":7},{"key_as_string":"2017-02-07T02:04:00.000Z","key":1486433040000,"doc_count":8},{"key_as_string":"2017-02-07T02:05:00.000Z","key":1486433100000,"doc_count":8},{"key_as_string":"2017-02-07T02:06:00.000Z","key":1486433160000,"doc_count":14},{"key_as_string":"2017-02-07T02:07:00.000Z","key":1486433220000,"doc_count":10},{"key_as_string":"2017-02-07T02:08:00.000Z","key":1486433280000,"doc_count":7},{"key_as_string":"2017-02-07T02:09:00.000Z","key":1486433340000,"doc_count":11},{"key_as_string":"2017-02-07T02:10:00.000Z","key":1486433400000,"doc_count":6},{"key_as_string":"2017-02-07T02:11:00.000Z","key":1486433460000,"doc_count":8},{"key_as_string":"2017-02-07T02:12:00.000Z","key":1486433520000,"doc_count":7},{"key_as_string":"2017-02-07T02:13:00.000Z","key":1486433580000,"doc_count":15},{"key_as_string":"2017-02-07T02:14:00.000Z","key":1486433640000,"doc_count":8},{"key_as_string":"2017-02-07T02:15:00.000Z","key":1486433700000,"doc_count":14},{"key_as_string":"2017-02-07T02:16:00.000Z","key":1486433760000,"doc_count":5},{"key_as_string":"2017-02-07T02:17:00.000Z","key":1486433820000,"doc_count":9},{"key_as_string":"2017-02-07T02:18:00.000Z","key":1486433880000,"doc_count":7},{"key_as_string":"2017-02-07T02:19:00.000Z","key":1486433940000,"doc_count":8},{"key_as_string":"2017-02-07T02:20:00.000Z","key":1486434000000,"doc_count":13},{"key_as_string":"2017-02-07T02:21:00.000Z","key":1486434060000,"doc_count":13},{"key_as_string":"2017-02-07T02:22:00.000Z","key":1486434120000,"doc_count":13},{"key_as_string":"2017-02-07T02:23:00.000Z","key":1486434180000,"doc_count":8},{"key_as_string":"2017-02-07T02:24:00.000Z","key":1486434240000,"doc_count":11},{"key_as_string":"2017-02-07T02:25:00.000Z","key":1486434300000,"doc_count":9},{"key_as_string":"2017-02-07T02:26:00.000Z","key":1486434360000,"doc_count":11},{"key_as_string":"2017-02-07T02:27:00.000Z","key":1486434420000,"doc_count":14},{"key_as_string":"2017-02-07T02:28:00.000Z","key":1486434480000,"doc_count":9},{"key_as_string":"2017-02-07T02:29:00.000Z","key":1486434540000,"doc_count":15},{"key_as_string":"2017-02-07T02:30:00.000Z","key":1486434600000,"doc_count":13},{"key_as_string":"2017-02-07T02:31:00.000Z","key":1486434660000,"doc_count":6},{"key_as_string":"2017-02-07T02:32:00.000Z","key":1486434720000,"doc_count":16},{"key_as_string":"2017-02-07T02:33:00.000Z","key":1486434780000,"doc_count":11},{"key_as_string":"2017-02-07T02:34:00.000Z","key":1486434840000,"doc_count":9},{"key_as_string":"2017-02-07T02:35:00.000Z","key":1486434900000,"doc_count":11},{"key_as_string":"2017-02-07T02:36:00.000Z","key":1486434960000,"doc_count":15},{"key_as_string":"2017-02-07T02:37:00.000Z","key":1486435020000,"doc_count":6},{"key_as_string":"2017-02-07T02:38:00.000Z","key":1486435080000,"doc_count":11},{"key_as_string":"2017-02-07T02:39:00.000Z","key":1486435140000,"doc_count":5},{"key_as_string":"2017-02-07T02:40:00.000Z","key":1486435200000,"doc_count":14},{"key_as_string":"2017-02-07T02:41:00.000Z","key":1486435260000,"doc_count":9},{"key_as_string":"2017-02-07T02:42:00.000Z","key":1486435320000,"doc_count":9},{"key_as_string":"2017-02-07T02:43:00.000Z","key":1486435380000,"doc_count":9},{"key_as_string":"2017-02-07T02:44:00.000Z","key":1486435440000,"doc_count":16},{"key_as_string":"2017-02-07T02:45:00.000Z","key":1486435500000,"doc_count":10},{"key_as_string":"2017-02-07T02:46:00.000Z","key":1486435560000,"doc_count":8},{"key_as_string":"2017-02-07T02:47:00.000Z","key":1486435620000,"doc_count":10},{"key_as_string":"2017-02-07T02:48:00.000Z","key":1486435680000,"doc_count":11},{"key_as_string":"2017-02-07T02:49:00.000Z","key":1486435740000,"doc_count":13},{"key_as_string":"2017-02-07T02:50:00.000Z","key":1486435800000,"doc_count":9},{"key_as_string":"2017-02-07T02:51:00.000Z","key":1486435860000,"doc_count":14},{"key_as_string":"2017-02-07T02:52:00.000Z","key":1486435920000,"doc_count":17},{"key_as_string":"2017-02-07T02:53:00.000Z","key":1486435980000,"doc_count":10},{"key_as_string":"2017-02-07T02:54:00.000Z","key":1486436040000,"doc_count":8},{"key_as_string":"2017-02-07T02:55:00.000Z","key":1486436100000,"doc_count":10},{"key_as_string":"2017-02-07T02:56:00.000Z","key":1486436160000,"doc_count":9},{"key_as_string":"2017-02-07T02:57:00.000Z","key":1486436220000,"doc_count":9},{"key_as_string":"2017-02-07T02:58:00.000Z","key":1486436280000,"doc_count":12},{"key_as_string":"2017-02-07T02:59:00.000Z","key":1486436340000,"doc_count":8},{"key_as_string":"2017-02-07T03:00:00.000Z","key":1486436400000,"doc_count":11},{"key_as_string":"2017-02-07T03:01:00.000Z","key":1486436460000,"doc_count":12},{"key_as_string":"2017-02-07T03:02:00.000Z","key":1486436520000,"doc_count":7},{"key_as_string":"2017-02-07T03:03:00.000Z","key":1486436580000,"doc_count":16},{"key_as_string":"2017-02-07T03:04:00.000Z","key":1486436640000,"doc_count":13},{"key_as_string":"2017-02-07T03:05:00.000Z","key":1486436700000,"doc_count":10},{"key_as_string":"2017-02-07T03:06:00.000Z","key":1486436760000,"doc_count":11},{"key_as_string":"2017-02-07T03:07:00.000Z","key":1486436820000,"doc_count":6},{"key_as_string":"2017-02-07T03:08:00.000Z","key":1486436880000,"doc_count":9},{"key_as_string":"2017-02-07T03:09:00.000Z","key":1486436940000,"doc_count":7},{"key_as_string":"2017-02-07T03:10:00.000Z","key":1486437000000,"doc_count":14},{"key_as_string":"2017-02-07T03:11:00.000Z","key":1486437060000,"doc_count":9},{"key_as_string":"2017-02-07T03:12:00.000Z","key":1486437120000,"doc_count":12},{"key_as_string":"2017-02-07T03:13:00.000Z","key":1486437180000,"doc_count":10},{"key_as_string":"2017-02-07T03:14:00.000Z","key":1486437240000,"doc_count":9},{"key_as_string":"2017-02-07T03:15:00.000Z","key":1486437300000,"doc_count":12},{"key_as_string":"2017-02-07T03:16:00.000Z","key":1486437360000,"doc_count":12},{"key_as_string":"2017-02-07T03:17:00.000Z","key":1486437420000,"doc_count":8},{"key_as_string":"2017-02-07T03:18:00.000Z","key":1486437480000,"doc_count":13},{"key_as_string":"2017-02-07T03:19:00.000Z","key":1486437540000,"doc_count":12},{"key_as_string":"2017-02-07T03:20:00.000Z","key":1486437600000,"doc_count":8},{"key_as_string":"2017-02-07T03:21:00.000Z","key":1486437660000,"doc_count":20},{"key_as_string":"2017-02-07T03:22:00.000Z","key":1486437720000,"doc_count":8},{"key_as_string":"2017-02-07T03:23:00.000Z","key":1486437780000,"doc_count":9},{"key_as_string":"2017-02-07T03:24:00.000Z","key":1486437840000,"doc_count":12},{"key_as_string":"2017-02-07T03:25:00.000Z","key":1486437900000,"doc_count":9},{"key_as_string":"2017-02-07T03:26:00.000Z","key":1486437960000,"doc_count":9},{"key_as_string":"2017-02-07T03:27:00.000Z","key":1486438020000,"doc_count":12},{"key_as_string":"2017-02-07T03:28:00.000Z","key":1486438080000,"doc_count":12},{"key_as_string":"2017-02-07T03:29:00.000Z","key":1486438140000,"doc_count":7},{"key_as_string":"2017-02-07T03:30:00.000Z","key":1486438200000,"doc_count":12},{"key_as_string":"2017-02-07T03:31:00.000Z","key":1486438260000,"doc_count":15},{"key_as_string":"2017-02-07T03:32:00.000Z","key":1486438320000,"doc_count":12},{"key_as_string":"2017-02-07T03:33:00.000Z","key":1486438380000,"doc_count":9},{"key_as_string":"2017-02-07T03:34:00.000Z","key":1486438440000,"doc_count":9},{"key_as_string":"2017-02-07T03:35:00.000Z","key":1486438500000,"doc_count":12},{"key_as_string":"2017-02-07T03:36:00.000Z","key":1486438560000,"doc_count":8},{"key_as_string":"2017-02-07T03:37:00.000Z","key":1486438620000,"doc_count":12},{"key_as_string":"2017-02-07T03:38:00.000Z","key":1486438680000,"doc_count":13},{"key_as_string":"2017-02-07T03:39:00.000Z","key":1486438740000,"doc_count":10},{"key_as_string":"2017-02-07T03:40:00.000Z","key":1486438800000,"doc_count":8},{"key_as_string":"2017-02-07T03:41:00.000Z","key":1486438860000,"doc_count":10},{"key_as_string":"2017-02-07T03:42:00.000Z","key":1486438920000,"doc_count":12},{"key_as_string":"2017-02-07T03:43:00.000Z","key":1486438980000,"doc_count":9},{"key_as_string":"2017-02-07T03:44:00.000Z","key":1486439040000,"doc_count":13},{"key_as_string":"2017-02-07T03:45:00.000Z","key":1486439100000,"doc_count":11},{"key_as_string":"2017-02-07T03:46:00.000Z","key":1486439160000,"doc_count":16},{"key_as_string":"2017-02-07T03:47:00.000Z","key":1486439220000,"doc_count":10},{"key_as_string":"2017-02-07T03:48:00.000Z","key":1486439280000,"doc_count":10},{"key_as_string":"2017-02-07T03:49:00.000Z","key":1486439340000,"doc_count":10},{"key_as_string":"2017-02-07T03:50:00.000Z","key":1486439400000,"doc_count":10},{"key_as_string":"2017-02-07T03:51:00.000Z","key":1486439460000,"doc_count":8},{"key_as_string":"2017-02-07T03:52:00.000Z","key":1486439520000,"doc_count":8},{"key_as_string":"2017-02-07T03:53:00.000Z","key":1486439580000,"doc_count":14},{"key_as_string":"2017-02-07T03:54:00.000Z","key":1486439640000,"doc_count":12},{"key_as_string":"2017-02-07T03:55:00.000Z","key":1486439700000,"doc_count":9},{"key_as_string":"2017-02-07T03:56:00.000Z","key":1486439760000,"doc_count":10},{"key_as_string":"2017-02-07T03:57:00.000Z","key":1486439820000,"doc_count":15},{"key_as_string":"2017-02-07T03:58:00.000Z","key":1486439880000,"doc_count":8},{"key_as_string":"2017-02-07T03:59:00.000Z","key":1486439940000,"doc_count":13},{"key_as_string":"2017-02-07T04:00:00.000Z","key":1486440000000,"doc_count":9},{"key_as_string":"2017-02-07T04:01:00.000Z","key":1486440060000,"doc_count":13},{"key_as_string":"2017-02-07T04:02:00.000Z","key":1486440120000,"doc_count":7},{"key_as_string":"2017-02-07T04:03:00.000Z","key":1486440180000,"doc_count":10},{"key_as_string":"2017-02-07T04:04:00.000Z","key":1486440240000,"doc_count":15},{"key_as_string":"2017-02-07T04:05:00.000Z","key":1486440300000,"doc_count":12},{"key_as_string":"2017-02-07T04:06:00.000Z","key":1486440360000,"doc_count":10},{"key_as_string":"2017-02-07T04:07:00.000Z","key":1486440420000,"doc_count":9},{"key_as_string":"2017-02-07T04:08:00.000Z","key":1486440480000,"doc_count":8},{"key_as_string":"2017-02-07T04:09:00.000Z","key":1486440540000,"doc_count":12},{"key_as_string":"2017-02-07T04:10:00.000Z","key":1486440600000,"doc_count":10},{"key_as_string":"2017-02-07T04:11:00.000Z","key":1486440660000,"doc_count":11},{"key_as_string":"2017-02-07T04:12:00.000Z","key":1486440720000,"doc_count":9},{"key_as_string":"2017-02-07T04:13:00.000Z","key":1486440780000,"doc_count":14},{"key_as_string":"2017-02-07T04:14:00.000Z","key":1486440840000,"doc_count":16},{"key_as_string":"2017-02-07T04:15:00.000Z","key":1486440900000,"doc_count":12},{"key_as_string":"2017-02-07T04:16:00.000Z","key":1486440960000,"doc_count":12},{"key_as_string":"2017-02-07T04:17:00.000Z","key":1486441020000,"doc_count":12},{"key_as_string":"2017-02-07T04:18:00.000Z","key":1486441080000,"doc_count":10},{"key_as_string":"2017-02-07T04:19:00.000Z","key":1486441140000,"doc_count":14},{"key_as_string":"2017-02-07T04:20:00.000Z","key":1486441200000,"doc_count":10},{"key_as_string":"2017-02-07T04:21:00.000Z","key":1486441260000,"doc_count":13},{"key_as_string":"2017-02-07T04:22:00.000Z","key":1486441320000,"doc_count":13},{"key_as_string":"2017-02-07T04:23:00.000Z","key":1486441380000,"doc_count":8},{"key_as_string":"2017-02-07T04:24:00.000Z","key":1486441440000,"doc_count":10},{"key_as_string":"2017-02-07T04:25:00.000Z","key":1486441500000,"doc_count":14},{"key_as_string":"2017-02-07T04:26:00.000Z","key":1486441560000,"doc_count":6},{"key_as_string":"2017-02-07T04:27:00.000Z","key":1486441620000,"doc_count":15},{"key_as_string":"2017-02-07T04:28:00.000Z","key":1486441680000,"doc_count":12},{"key_as_string":"2017-02-07T04:29:00.000Z","key":1486441740000,"doc_count":11},{"key_as_string":"2017-02-07T04:30:00.000Z","key":1486441800000,"doc_count":8},{"key_as_string":"2017-02-07T04:31:00.000Z","key":1486441860000,"doc_count":8},{"key_as_string":"2017-02-07T04:32:00.000Z","key":1486441920000,"doc_count":14},{"key_as_string":"2017-02-07T04:33:00.000Z","key":1486441980000,"doc_count":10},{"key_as_string":"2017-02-07T04:34:00.000Z","key":1486442040000,"doc_count":12},{"key_as_string":"2017-02-07T04:35:00.000Z","key":1486442100000,"doc_count":13},{"key_as_string":"2017-02-07T04:36:00.000Z","key":1486442160000,"doc_count":7},{"key_as_string":"2017-02-07T04:37:00.000Z","key":1486442220000,"doc_count":11},{"key_as_string":"2017-02-07T04:38:00.000Z","key":1486442280000,"doc_count":10},{"key_as_string":"2017-02-07T04:39:00.000Z","key":1486442340000,"doc_count":13},{"key_as_string":"2017-02-07T04:40:00.000Z","key":1486442400000,"doc_count":10},{"key_as_string":"2017-02-07T04:41:00.000Z","key":1486442460000,"doc_count":17},{"key_as_string":"2017-02-07T04:42:00.000Z","key":1486442520000,"doc_count":9},{"key_as_string":"2017-02-07T04:43:00.000Z","key":1486442580000,"doc_count":14},{"key_as_string":"2017-02-07T04:44:00.000Z","key":1486442640000,"doc_count":11},{"key_as_string":"2017-02-07T04:45:00.000Z","key":1486442700000,"doc_count":12},{"key_as_string":"2017-02-07T04:46:00.000Z","key":1486442760000,"doc_count":10},{"key_as_string":"2017-02-07T04:47:00.000Z","key":1486442820000,"doc_count":17},{"key_as_string":"2017-02-07T04:48:00.000Z","key":1486442880000,"doc_count":7},{"key_as_string":"2017-02-07T04:49:00.000Z","key":1486442940000,"doc_count":12},{"key_as_string":"2017-02-07T04:50:00.000Z","key":1486443000000,"doc_count":7},{"key_as_string":"2017-02-07T04:51:00.000Z","key":1486443060000,"doc_count":12},{"key_as_string":"2017-02-07T04:52:00.000Z","key":1486443120000,"doc_count":14},{"key_as_string":"2017-02-07T04:53:00.000Z","key":1486443180000,"doc_count":6},{"key_as_string":"2017-02-07T04:54:00.000Z","key":1486443240000,"doc_count":10},{"key_as_string":"2017-02-07T04:55:00.000Z","key":1486443300000,"doc_count":16},{"key_as_string":"2017-02-07T04:56:00.000Z","key":1486443360000,"doc_count":7},{"key_as_string":"2017-02-07T04:57:00.000Z","key":1486443420000,"doc_count":6},{"key_as_string":"2017-02-07T04:58:00.000Z","key":1486443480000,"doc_count":11},{"key_as_string":"2017-02-07T04:59:00.000Z","key":1486443540000,"doc_count":14},{"key_as_string":"2017-02-07T05:00:00.000Z","key":1486443600000,"doc_count":10},{"key_as_string":"2017-02-07T05:01:00.000Z","key":1486443660000,"doc_count":9},{"key_as_string":"2017-02-07T05:02:00.000Z","key":1486443720000,"doc_count":6},{"key_as_string":"2017-02-07T05:03:00.000Z","key":1486443780000,"doc_count":11},{"key_as_string":"2017-02-07T05:04:00.000Z","key":1486443840000,"doc_count":14},{"key_as_string":"2017-02-07T05:05:00.000Z","key":1486443900000,"doc_count":12},{"key_as_string":"2017-02-07T05:06:00.000Z","key":1486443960000,"doc_count":7},{"key_as_string":"2017-02-07T05:07:00.000Z","key":1486444020000,"doc_count":15},{"key_as_string":"2017-02-07T05:08:00.000Z","key":1486444080000,"doc_count":12},{"key_as_string":"2017-02-07T05:09:00.000Z","key":1486444140000,"doc_count":7},{"key_as_string":"2017-02-07T05:10:00.000Z","key":1486444200000,"doc_count":14},{"key_as_string":"2017-02-07T05:11:00.000Z","key":1486444260000,"doc_count":10},{"key_as_string":"2017-02-07T05:12:00.000Z","key":1486444320000,"doc_count":12},{"key_as_string":"2017-02-07T05:13:00.000Z","key":1486444380000,"doc_count":12},{"key_as_string":"2017-02-07T05:14:00.000Z","key":1486444440000,"doc_count":12},{"key_as_string":"2017-02-07T05:15:00.000Z","key":1486444500000,"doc_count":11},{"key_as_string":"2017-02-07T05:16:00.000Z","key":1486444560000,"doc_count":10},{"key_as_string":"2017-02-07T05:17:00.000Z","key":1486444620000,"doc_count":12},{"key_as_string":"2017-02-07T05:18:00.000Z","key":1486444680000,"doc_count":9},{"key_as_string":"2017-02-07T05:19:00.000Z","key":1486444740000,"doc_count":14},{"key_as_string":"2017-02-07T05:20:00.000Z","key":1486444800000,"doc_count":7},{"key_as_string":"2017-02-07T05:21:00.000Z","key":1486444860000,"doc_count":12},{"key_as_string":"2017-02-07T05:22:00.000Z","key":1486444920000,"doc_count":10},{"key_as_string":"2017-02-07T05:23:00.000Z","key":1486444980000,"doc_count":14},{"key_as_string":"2017-02-07T05:24:00.000Z","key":1486445040000,"doc_count":14},{"key_as_string":"2017-02-07T05:25:00.000Z","key":1486445100000,"doc_count":5},{"key_as_string":"2017-02-07T05:26:00.000Z","key":1486445160000,"doc_count":10},{"key_as_string":"2017-02-07T05:27:00.000Z","key":1486445220000,"doc_count":10},{"key_as_string":"2017-02-07T05:28:00.000Z","key":1486445280000,"doc_count":13},{"key_as_string":"2017-02-07T05:29:00.000Z","key":1486445340000,"doc_count":12},{"key_as_string":"2017-02-07T05:30:00.000Z","key":1486445400000,"doc_count":13},{"key_as_string":"2017-02-07T05:31:00.000Z","key":1486445460000,"doc_count":13},{"key_as_string":"2017-02-07T05:32:00.000Z","key":1486445520000,"doc_count":13},{"key_as_string":"2017-02-07T05:33:00.000Z","key":1486445580000,"doc_count":16},{"key_as_string":"2017-02-07T05:34:00.000Z","key":1486445640000,"doc_count":10},{"key_as_string":"2017-02-07T05:35:00.000Z","key":1486445700000,"doc_count":16},{"key_as_string":"2017-02-07T05:36:00.000Z","key":1486445760000,"doc_count":14},{"key_as_string":"2017-02-07T05:37:00.000Z","key":1486445820000,"doc_count":10},{"key_as_string":"2017-02-07T05:38:00.000Z","key":1486445880000,"doc_count":11},{"key_as_string":"2017-02-07T05:39:00.000Z","key":1486445940000,"doc_count":13},{"key_as_string":"2017-02-07T05:40:00.000Z","key":1486446000000,"doc_count":16},{"key_as_string":"2017-02-07T05:41:00.000Z","key":1486446060000,"doc_count":9},{"key_as_string":"2017-02-07T05:42:00.000Z","key":1486446120000,"doc_count":10},{"key_as_string":"2017-02-07T05:43:00.000Z","key":1486446180000,"doc_count":16},{"key_as_string":"2017-02-07T05:44:00.000Z","key":1486446240000,"doc_count":18},{"key_as_string":"2017-02-07T05:45:00.000Z","key":1486446300000,"doc_count":10},{"key_as_string":"2017-02-07T05:46:00.000Z","key":1486446360000,"doc_count":9},{"key_as_string":"2017-02-07T05:47:00.000Z","key":1486446420000,"doc_count":7},{"key_as_string":"2017-02-07T05:48:00.000Z","key":1486446480000,"doc_count":10},{"key_as_string":"2017-02-07T05:49:00.000Z","key":1486446540000,"doc_count":17},{"key_as_string":"2017-02-07T05:50:00.000Z","key":1486446600000,"doc_count":8},{"key_as_string":"2017-02-07T05:51:00.000Z","key":1486446660000,"doc_count":10},{"key_as_string":"2017-02-07T05:52:00.000Z","key":1486446720000,"doc_count":10},{"key_as_string":"2017-02-07T05:53:00.000Z","key":1486446780000,"doc_count":13},{"key_as_string":"2017-02-07T05:54:00.000Z","key":1486446840000,"doc_count":9},{"key_as_string":"2017-02-07T05:55:00.000Z","key":1486446900000,"doc_count":11},{"key_as_string":"2017-02-07T05:56:00.000Z","key":1486446960000,"doc_count":14},{"key_as_string":"2017-02-07T05:57:00.000Z","key":1486447020000,"doc_count":15},{"key_as_string":"2017-02-07T05:58:00.000Z","key":1486447080000,"doc_count":14},{"key_as_string":"2017-02-07T05:59:00.000Z","key":1486447140000,"doc_count":6},{"key_as_string":"2017-02-07T06:00:00.000Z","key":1486447200000,"doc_count":14},{"key_as_string":"2017-02-07T06:01:00.000Z","key":1486447260000,"doc_count":18},{"key_as_string":"2017-02-07T06:02:00.000Z","key":1486447320000,"doc_count":9},{"key_as_string":"2017-02-07T06:03:00.000Z","key":1486447380000,"doc_count":14},{"key_as_string":"2017-02-07T06:04:00.000Z","key":1486447440000,"doc_count":12},{"key_as_string":"2017-02-07T06:05:00.000Z","key":1486447500000,"doc_count":14},{"key_as_string":"2017-02-07T06:06:00.000Z","key":1486447560000,"doc_count":11},{"key_as_string":"2017-02-07T06:07:00.000Z","key":1486447620000,"doc_count":12},{"key_as_string":"2017-02-07T06:08:00.000Z","key":1486447680000,"doc_count":20},{"key_as_string":"2017-02-07T06:09:00.000Z","key":1486447740000,"doc_count":9},{"key_as_string":"2017-02-07T06:10:00.000Z","key":1486447800000,"doc_count":10},{"key_as_string":"2017-02-07T06:11:00.000Z","key":1486447860000,"doc_count":13},{"key_as_string":"2017-02-07T06:12:00.000Z","key":1486447920000,"doc_count":10},{"key_as_string":"2017-02-07T06:13:00.000Z","key":1486447980000,"doc_count":13},{"key_as_string":"2017-02-07T06:14:00.000Z","key":1486448040000,"doc_count":10},{"key_as_string":"2017-02-07T06:15:00.000Z","key":1486448100000,"doc_count":17},{"key_as_string":"2017-02-07T06:16:00.000Z","key":1486448160000,"doc_count":7},{"key_as_string":"2017-02-07T06:17:00.000Z","key":1486448220000,"doc_count":9},{"key_as_string":"2017-02-07T06:18:00.000Z","key":1486448280000,"doc_count":12},{"key_as_string":"2017-02-07T06:19:00.000Z","key":1486448340000,"doc_count":8},{"key_as_string":"2017-02-07T06:20:00.000Z","key":1486448400000,"doc_count":21},{"key_as_string":"2017-02-07T06:21:00.000Z","key":1486448460000,"doc_count":10},{"key_as_string":"2017-02-07T06:22:00.000Z","key":1486448520000,"doc_count":13},{"key_as_string":"2017-02-07T06:23:00.000Z","key":1486448580000,"doc_count":12},{"key_as_string":"2017-02-07T06:24:00.000Z","key":1486448640000,"doc_count":13},{"key_as_string":"2017-02-07T06:25:00.000Z","key":1486448700000,"doc_count":11},{"key_as_string":"2017-02-07T06:26:00.000Z","key":1486448760000,"doc_count":16},{"key_as_string":"2017-02-07T06:27:00.000Z","key":1486448820000,"doc_count":5},{"key_as_string":"2017-02-07T06:28:00.000Z","key":1486448880000,"doc_count":11},{"key_as_string":"2017-02-07T06:29:00.000Z","key":1486448940000,"doc_count":14},{"key_as_string":"2017-02-07T06:30:00.000Z","key":1486449000000,"doc_count":8},{"key_as_string":"2017-02-07T06:31:00.000Z","key":1486449060000,"doc_count":13},{"key_as_string":"2017-02-07T06:32:00.000Z","key":1486449120000,"doc_count":17},{"key_as_string":"2017-02-07T06:33:00.000Z","key":1486449180000,"doc_count":15},{"key_as_string":"2017-02-07T06:34:00.000Z","key":1486449240000,"doc_count":6},{"key_as_string":"2017-02-07T06:35:00.000Z","key":1486449300000,"doc_count":13},{"key_as_string":"2017-02-07T06:36:00.000Z","key":1486449360000,"doc_count":8},{"key_as_string":"2017-02-07T06:37:00.000Z","key":1486449420000,"doc_count":12},{"key_as_string":"2017-02-07T06:38:00.000Z","key":1486449480000,"doc_count":13},{"key_as_string":"2017-02-07T06:39:00.000Z","key":1486449540000,"doc_count":12},{"key_as_string":"2017-02-07T06:40:00.000Z","key":1486449600000,"doc_count":11},{"key_as_string":"2017-02-07T06:41:00.000Z","key":1486449660000,"doc_count":14},{"key_as_string":"2017-02-07T06:42:00.000Z","key":1486449720000,"doc_count":6},{"key_as_string":"2017-02-07T06:43:00.000Z","key":1486449780000,"doc_count":13},{"key_as_string":"2017-02-07T06:44:00.000Z","key":1486449840000,"doc_count":11},{"key_as_string":"2017-02-07T06:45:00.000Z","key":1486449900000,"doc_count":11},{"key_as_string":"2017-02-07T06:46:00.000Z","key":1486449960000,"doc_count":21},{"key_as_string":"2017-02-07T06:47:00.000Z","key":1486450020000,"doc_count":9},{"key_as_string":"2017-02-07T06:48:00.000Z","key":1486450080000,"doc_count":11},{"key_as_string":"2017-02-07T06:49:00.000Z","key":1486450140000,"doc_count":10},{"key_as_string":"2017-02-07T06:50:00.000Z","key":1486450200000,"doc_count":11},{"key_as_string":"2017-02-07T06:51:00.000Z","key":1486450260000,"doc_count":11},{"key_as_string":"2017-02-07T06:52:00.000Z","key":1486450320000,"doc_count":12},{"key_as_string":"2017-02-07T06:53:00.000Z","key":1486450380000,"doc_count":8},{"key_as_string":"2017-02-07T06:54:00.000Z","key":1486450440000,"doc_count":13},{"key_as_string":"2017-02-07T06:55:00.000Z","key":1486450500000,"doc_count":7},{"key_as_string":"2017-02-07T06:56:00.000Z","key":1486450560000,"doc_count":9},{"key_as_string":"2017-02-07T06:57:00.000Z","key":1486450620000,"doc_count":7},{"key_as_string":"2017-02-07T06:58:00.000Z","key":1486450680000,"doc_count":10},{"key_as_string":"2017-02-07T06:59:00.000Z","key":1486450740000,"doc_count":19},{"key_as_string":"2017-02-07T07:00:00.000Z","key":1486450800000,"doc_count":11},{"key_as_string":"2017-02-07T07:01:00.000Z","key":1486450860000,"doc_count":9},{"key_as_string":"2017-02-07T07:02:00.000Z","key":1486450920000,"doc_count":14},{"key_as_string":"2017-02-07T07:03:00.000Z","key":1486450980000,"doc_count":13},{"key_as_string":"2017-02-07T07:04:00.000Z","key":1486451040000,"doc_count":14},{"key_as_string":"2017-02-07T07:05:00.000Z","key":1486451100000,"doc_count":10},{"key_as_string":"2017-02-07T07:06:00.000Z","key":1486451160000,"doc_count":14},{"key_as_string":"2017-02-07T07:07:00.000Z","key":1486451220000,"doc_count":8},{"key_as_string":"2017-02-07T07:08:00.000Z","key":1486451280000,"doc_count":10},{"key_as_string":"2017-02-07T07:09:00.000Z","key":1486451340000,"doc_count":15},{"key_as_string":"2017-02-07T07:10:00.000Z","key":1486451400000,"doc_count":17},{"key_as_string":"2017-02-07T07:11:00.000Z","key":1486451460000,"doc_count":10},{"key_as_string":"2017-02-07T07:12:00.000Z","key":1486451520000,"doc_count":10},{"key_as_string":"2017-02-07T07:13:00.000Z","key":1486451580000,"doc_count":10},{"key_as_string":"2017-02-07T07:14:00.000Z","key":1486451640000,"doc_count":10},{"key_as_string":"2017-02-07T07:15:00.000Z","key":1486451700000,"doc_count":12},{"key_as_string":"2017-02-07T07:16:00.000Z","key":1486451760000,"doc_count":12},{"key_as_string":"2017-02-07T07:17:00.000Z","key":1486451820000,"doc_count":17},{"key_as_string":"2017-02-07T07:18:00.000Z","key":1486451880000,"doc_count":10},{"key_as_string":"2017-02-07T07:19:00.000Z","key":1486451940000,"doc_count":13},{"key_as_string":"2017-02-07T07:20:00.000Z","key":1486452000000,"doc_count":12},{"key_as_string":"2017-02-07T07:21:00.000Z","key":1486452060000,"doc_count":13},{"key_as_string":"2017-02-07T07:22:00.000Z","key":1486452120000,"doc_count":15},{"key_as_string":"2017-02-07T07:23:00.000Z","key":1486452180000,"doc_count":13},{"key_as_string":"2017-02-07T07:24:00.000Z","key":1486452240000,"doc_count":12},{"key_as_string":"2017-02-07T07:25:00.000Z","key":1486452300000,"doc_count":12},{"key_as_string":"2017-02-07T07:26:00.000Z","key":1486452360000,"doc_count":11},{"key_as_string":"2017-02-07T07:27:00.000Z","key":1486452420000,"doc_count":11},{"key_as_string":"2017-02-07T07:28:00.000Z","key":1486452480000,"doc_count":14},{"key_as_string":"2017-02-07T07:29:00.000Z","key":1486452540000,"doc_count":16},{"key_as_string":"2017-02-07T07:30:00.000Z","key":1486452600000,"doc_count":9},{"key_as_string":"2017-02-07T07:31:00.000Z","key":1486452660000,"doc_count":12},{"key_as_string":"2017-02-07T07:32:00.000Z","key":1486452720000,"doc_count":17},{"key_as_string":"2017-02-07T07:33:00.000Z","key":1486452780000,"doc_count":9},{"key_as_string":"2017-02-07T07:34:00.000Z","key":1486452840000,"doc_count":15},{"key_as_string":"2017-02-07T07:35:00.000Z","key":1486452900000,"doc_count":13},{"key_as_string":"2017-02-07T07:36:00.000Z","key":1486452960000,"doc_count":14},{"key_as_string":"2017-02-07T07:37:00.000Z","key":1486453020000,"doc_count":14},{"key_as_string":"2017-02-07T07:38:00.000Z","key":1486453080000,"doc_count":9},{"key_as_string":"2017-02-07T07:39:00.000Z","key":1486453140000,"doc_count":10},{"key_as_string":"2017-02-07T07:40:00.000Z","key":1486453200000,"doc_count":12},{"key_as_string":"2017-02-07T07:41:00.000Z","key":1486453260000,"doc_count":11},{"key_as_string":"2017-02-07T07:42:00.000Z","key":1486453320000,"doc_count":18},{"key_as_string":"2017-02-07T07:43:00.000Z","key":1486453380000,"doc_count":7},{"key_as_string":"2017-02-07T07:44:00.000Z","key":1486453440000,"doc_count":13},{"key_as_string":"2017-02-07T07:45:00.000Z","key":1486453500000,"doc_count":14},{"key_as_string":"2017-02-07T07:46:00.000Z","key":1486453560000,"doc_count":13},{"key_as_string":"2017-02-07T07:47:00.000Z","key":1486453620000,"doc_count":15},{"key_as_string":"2017-02-07T07:48:00.000Z","key":1486453680000,"doc_count":13},{"key_as_string":"2017-02-07T07:49:00.000Z","key":1486453740000,"doc_count":15},{"key_as_string":"2017-02-07T07:50:00.000Z","key":1486453800000,"doc_count":12},{"key_as_string":"2017-02-07T07:51:00.000Z","key":1486453860000,"doc_count":15},{"key_as_string":"2017-02-07T07:52:00.000Z","key":1486453920000,"doc_count":12},{"key_as_string":"2017-02-07T07:53:00.000Z","key":1486453980000,"doc_count":9},{"key_as_string":"2017-02-07T07:54:00.000Z","key":1486454040000,"doc_count":12},{"key_as_string":"2017-02-07T07:55:00.000Z","key":1486454100000,"doc_count":13},{"key_as_string":"2017-02-07T07:56:00.000Z","key":1486454160000,"doc_count":12},{"key_as_string":"2017-02-07T07:57:00.000Z","key":1486454220000,"doc_count":9},{"key_as_string":"2017-02-07T07:58:00.000Z","key":1486454280000,"doc_count":12},{"key_as_string":"2017-02-07T07:59:00.000Z","key":1486454340000,"doc_count":12},{"key_as_string":"2017-02-07T08:00:00.000Z","key":1486454400000,"doc_count":14},{"key_as_string":"2017-02-07T08:01:00.000Z","key":1486454460000,"doc_count":13},{"key_as_string":"2017-02-07T08:02:00.000Z","key":1486454520000,"doc_count":11},{"key_as_string":"2017-02-07T08:03:00.000Z","key":1486454580000,"doc_count":14},{"key_as_string":"2017-02-07T08:04:00.000Z","key":1486454640000,"doc_count":6},{"key_as_string":"2017-02-07T08:05:00.000Z","key":1486454700000,"doc_count":13},{"key_as_string":"2017-02-07T08:06:00.000Z","key":1486454760000,"doc_count":11},{"key_as_string":"2017-02-07T08:07:00.000Z","key":1486454820000,"doc_count":14},{"key_as_string":"2017-02-07T08:08:00.000Z","key":1486454880000,"doc_count":14},{"key_as_string":"2017-02-07T08:09:00.000Z","key":1486454940000,"doc_count":9},{"key_as_string":"2017-02-07T08:10:00.000Z","key":1486455000000,"doc_count":11},{"key_as_string":"2017-02-07T08:11:00.000Z","key":1486455060000,"doc_count":8},{"key_as_string":"2017-02-07T08:12:00.000Z","key":1486455120000,"doc_count":14},{"key_as_string":"2017-02-07T08:13:00.000Z","key":1486455180000,"doc_count":9},{"key_as_string":"2017-02-07T08:14:00.000Z","key":1486455240000,"doc_count":10},{"key_as_string":"2017-02-07T08:15:00.000Z","key":1486455300000,"doc_count":14},{"key_as_string":"2017-02-07T08:16:00.000Z","key":1486455360000,"doc_count":12},{"key_as_string":"2017-02-07T08:17:00.000Z","key":1486455420000,"doc_count":11},{"key_as_string":"2017-02-07T08:18:00.000Z","key":1486455480000,"doc_count":18},{"key_as_string":"2017-02-07T08:19:00.000Z","key":1486455540000,"doc_count":13},{"key_as_string":"2017-02-07T08:20:00.000Z","key":1486455600000,"doc_count":13},{"key_as_string":"2017-02-07T08:21:00.000Z","key":1486455660000,"doc_count":10},{"key_as_string":"2017-02-07T08:22:00.000Z","key":1486455720000,"doc_count":10},{"key_as_string":"2017-02-07T08:23:00.000Z","key":1486455780000,"doc_count":13},{"key_as_string":"2017-02-07T08:24:00.000Z","key":1486455840000,"doc_count":11},{"key_as_string":"2017-02-07T08:25:00.000Z","key":1486455900000,"doc_count":12},{"key_as_string":"2017-02-07T08:26:00.000Z","key":1486455960000,"doc_count":20},{"key_as_string":"2017-02-07T08:27:00.000Z","key":1486456020000,"doc_count":15},{"key_as_string":"2017-02-07T08:28:00.000Z","key":1486456080000,"doc_count":12},{"key_as_string":"2017-02-07T08:29:00.000Z","key":1486456140000,"doc_count":14},{"key_as_string":"2017-02-07T08:30:00.000Z","key":1486456200000,"doc_count":9},{"key_as_string":"2017-02-07T08:31:00.000Z","key":1486456260000,"doc_count":17},{"key_as_string":"2017-02-07T08:32:00.000Z","key":1486456320000,"doc_count":11},{"key_as_string":"2017-02-07T08:33:00.000Z","key":1486456380000,"doc_count":15},{"key_as_string":"2017-02-07T08:34:00.000Z","key":1486456440000,"doc_count":11},{"key_as_string":"2017-02-07T08:35:00.000Z","key":1486456500000,"doc_count":15},{"key_as_string":"2017-02-07T08:36:00.000Z","key":1486456560000,"doc_count":17},{"key_as_string":"2017-02-07T08:37:00.000Z","key":1486456620000,"doc_count":8},{"key_as_string":"2017-02-07T08:38:00.000Z","key":1486456680000,"doc_count":13},{"key_as_string":"2017-02-07T08:39:00.000Z","key":1486456740000,"doc_count":10},{"key_as_string":"2017-02-07T08:40:00.000Z","key":1486456800000,"doc_count":11},{"key_as_string":"2017-02-07T08:41:00.000Z","key":1486456860000,"doc_count":12},{"key_as_string":"2017-02-07T08:42:00.000Z","key":1486456920000,"doc_count":15},{"key_as_string":"2017-02-07T08:43:00.000Z","key":1486456980000,"doc_count":12},{"key_as_string":"2017-02-07T08:44:00.000Z","key":1486457040000,"doc_count":14},{"key_as_string":"2017-02-07T08:45:00.000Z","key":1486457100000,"doc_count":14},{"key_as_string":"2017-02-07T08:46:00.000Z","key":1486457160000,"doc_count":15},{"key_as_string":"2017-02-07T08:47:00.000Z","key":1486457220000,"doc_count":13},{"key_as_string":"2017-02-07T08:48:00.000Z","key":1486457280000,"doc_count":10},{"key_as_string":"2017-02-07T08:49:00.000Z","key":1486457340000,"doc_count":12},{"key_as_string":"2017-02-07T08:50:00.000Z","key":1486457400000,"doc_count":14},{"key_as_string":"2017-02-07T08:51:00.000Z","key":1486457460000,"doc_count":13},{"key_as_string":"2017-02-07T08:52:00.000Z","key":1486457520000,"doc_count":11},{"key_as_string":"2017-02-07T08:53:00.000Z","key":1486457580000,"doc_count":14},{"key_as_string":"2017-02-07T08:54:00.000Z","key":1486457640000,"doc_count":14},{"key_as_string":"2017-02-07T08:55:00.000Z","key":1486457700000,"doc_count":9},{"key_as_string":"2017-02-07T08:56:00.000Z","key":1486457760000,"doc_count":13},{"key_as_string":"2017-02-07T08:57:00.000Z","key":1486457820000,"doc_count":16},{"key_as_string":"2017-02-07T08:58:00.000Z","key":1486457880000,"doc_count":14},{"key_as_string":"2017-02-07T08:59:00.000Z","key":1486457940000,"doc_count":9},{"key_as_string":"2017-02-07T09:00:00.000Z","key":1486458000000,"doc_count":15},{"key_as_string":"2017-02-07T09:01:00.000Z","key":1486458060000,"doc_count":13},{"key_as_string":"2017-02-07T09:02:00.000Z","key":1486458120000,"doc_count":11},{"key_as_string":"2017-02-07T09:03:00.000Z","key":1486458180000,"doc_count":23},{"key_as_string":"2017-02-07T09:04:00.000Z","key":1486458240000,"doc_count":14},{"key_as_string":"2017-02-07T09:05:00.000Z","key":1486458300000,"doc_count":6},{"key_as_string":"2017-02-07T09:06:00.000Z","key":1486458360000,"doc_count":14},{"key_as_string":"2017-02-07T09:07:00.000Z","key":1486458420000,"doc_count":15},{"key_as_string":"2017-02-07T09:08:00.000Z","key":1486458480000,"doc_count":15},{"key_as_string":"2017-02-07T09:09:00.000Z","key":1486458540000,"doc_count":11},{"key_as_string":"2017-02-07T09:10:00.000Z","key":1486458600000,"doc_count":17},{"key_as_string":"2017-02-07T09:11:00.000Z","key":1486458660000,"doc_count":16},{"key_as_string":"2017-02-07T09:12:00.000Z","key":1486458720000,"doc_count":15},{"key_as_string":"2017-02-07T09:13:00.000Z","key":1486458780000,"doc_count":15},{"key_as_string":"2017-02-07T09:14:00.000Z","key":1486458840000,"doc_count":18},{"key_as_string":"2017-02-07T09:15:00.000Z","key":1486458900000,"doc_count":13},{"key_as_string":"2017-02-07T09:16:00.000Z","key":1486458960000,"doc_count":9},{"key_as_string":"2017-02-07T09:17:00.000Z","key":1486459020000,"doc_count":19},{"key_as_string":"2017-02-07T09:18:00.000Z","key":1486459080000,"doc_count":11},{"key_as_string":"2017-02-07T09:19:00.000Z","key":1486459140000,"doc_count":8},{"key_as_string":"2017-02-07T09:20:00.000Z","key":1486459200000,"doc_count":18},{"key_as_string":"2017-02-07T09:21:00.000Z","key":1486459260000,"doc_count":16},{"key_as_string":"2017-02-07T09:22:00.000Z","key":1486459320000,"doc_count":13},{"key_as_string":"2017-02-07T09:23:00.000Z","key":1486459380000,"doc_count":14},{"key_as_string":"2017-02-07T09:24:00.000Z","key":1486459440000,"doc_count":16},{"key_as_string":"2017-02-07T09:25:00.000Z","key":1486459500000,"doc_count":13},{"key_as_string":"2017-02-07T09:26:00.000Z","key":1486459560000,"doc_count":13},{"key_as_string":"2017-02-07T09:27:00.000Z","key":1486459620000,"doc_count":16},{"key_as_string":"2017-02-07T09:28:00.000Z","key":1486459680000,"doc_count":13},{"key_as_string":"2017-02-07T09:29:00.000Z","key":1486459740000,"doc_count":14},{"key_as_string":"2017-02-07T09:30:00.000Z","key":1486459800000,"doc_count":13},{"key_as_string":"2017-02-07T09:31:00.000Z","key":1486459860000,"doc_count":16},{"key_as_string":"2017-02-07T09:32:00.000Z","key":1486459920000,"doc_count":18},{"key_as_string":"2017-02-07T09:33:00.000Z","key":1486459980000,"doc_count":7},{"key_as_string":"2017-02-07T09:34:00.000Z","key":1486460040000,"doc_count":14},{"key_as_string":"2017-02-07T09:35:00.000Z","key":1486460100000,"doc_count":15},{"key_as_string":"2017-02-07T09:36:00.000Z","key":1486460160000,"doc_count":13},{"key_as_string":"2017-02-07T09:37:00.000Z","key":1486460220000,"doc_count":16},{"key_as_string":"2017-02-07T09:38:00.000Z","key":1486460280000,"doc_count":15},{"key_as_string":"2017-02-07T09:39:00.000Z","key":1486460340000,"doc_count":12},{"key_as_string":"2017-02-07T09:40:00.000Z","key":1486460400000,"doc_count":15},{"key_as_string":"2017-02-07T09:41:00.000Z","key":1486460460000,"doc_count":13},{"key_as_string":"2017-02-07T09:42:00.000Z","key":1486460520000,"doc_count":10},{"key_as_string":"2017-02-07T09:43:00.000Z","key":1486460580000,"doc_count":17},{"key_as_string":"2017-02-07T09:44:00.000Z","key":1486460640000,"doc_count":16},{"key_as_string":"2017-02-07T09:45:00.000Z","key":1486460700000,"doc_count":16},{"key_as_string":"2017-02-07T09:46:00.000Z","key":1486460760000,"doc_count":12},{"key_as_string":"2017-02-07T09:47:00.000Z","key":1486460820000,"doc_count":14},{"key_as_string":"2017-02-07T09:48:00.000Z","key":1486460880000,"doc_count":14},{"key_as_string":"2017-02-07T09:49:00.000Z","key":1486460940000,"doc_count":10},{"key_as_string":"2017-02-07T09:50:00.000Z","key":1486461000000,"doc_count":14},{"key_as_string":"2017-02-07T09:51:00.000Z","key":1486461060000,"doc_count":16},{"key_as_string":"2017-02-07T09:52:00.000Z","key":1486461120000,"doc_count":14},{"key_as_string":"2017-02-07T09:53:00.000Z","key":1486461180000,"doc_count":11},{"key_as_string":"2017-02-07T09:54:00.000Z","key":1486461240000,"doc_count":11},{"key_as_string":"2017-02-07T09:55:00.000Z","key":1486461300000,"doc_count":14},{"key_as_string":"2017-02-07T09:56:00.000Z","key":1486461360000,"doc_count":14},{"key_as_string":"2017-02-07T09:57:00.000Z","key":1486461420000,"doc_count":13},{"key_as_string":"2017-02-07T09:58:00.000Z","key":1486461480000,"doc_count":14},{"key_as_string":"2017-02-07T09:59:00.000Z","key":1486461540000,"doc_count":13},{"key_as_string":"2017-02-07T10:00:00.000Z","key":1486461600000,"doc_count":17},{"key_as_string":"2017-02-07T10:01:00.000Z","key":1486461660000,"doc_count":17},{"key_as_string":"2017-02-07T10:02:00.000Z","key":1486461720000,"doc_count":6},{"key_as_string":"2017-02-07T10:03:00.000Z","key":1486461780000,"doc_count":13},{"key_as_string":"2017-02-07T10:04:00.000Z","key":1486461840000,"doc_count":15},{"key_as_string":"2017-02-07T10:05:00.000Z","key":1486461900000,"doc_count":10},{"key_as_string":"2017-02-07T10:06:00.000Z","key":1486461960000,"doc_count":11},{"key_as_string":"2017-02-07T10:07:00.000Z","key":1486462020000,"doc_count":15},{"key_as_string":"2017-02-07T10:08:00.000Z","key":1486462080000,"doc_count":14},{"key_as_string":"2017-02-07T10:09:00.000Z","key":1486462140000,"doc_count":11},{"key_as_string":"2017-02-07T10:10:00.000Z","key":1486462200000,"doc_count":19},{"key_as_string":"2017-02-07T10:11:00.000Z","key":1486462260000,"doc_count":10},{"key_as_string":"2017-02-07T10:12:00.000Z","key":1486462320000,"doc_count":12},{"key_as_string":"2017-02-07T10:13:00.000Z","key":1486462380000,"doc_count":12},{"key_as_string":"2017-02-07T10:14:00.000Z","key":1486462440000,"doc_count":20},{"key_as_string":"2017-02-07T10:15:00.000Z","key":1486462500000,"doc_count":15},{"key_as_string":"2017-02-07T10:16:00.000Z","key":1486462560000,"doc_count":13},{"key_as_string":"2017-02-07T10:17:00.000Z","key":1486462620000,"doc_count":16},{"key_as_string":"2017-02-07T10:18:00.000Z","key":1486462680000,"doc_count":14},{"key_as_string":"2017-02-07T10:19:00.000Z","key":1486462740000,"doc_count":11},{"key_as_string":"2017-02-07T10:20:00.000Z","key":1486462800000,"doc_count":15},{"key_as_string":"2017-02-07T10:21:00.000Z","key":1486462860000,"doc_count":14},{"key_as_string":"2017-02-07T10:22:00.000Z","key":1486462920000,"doc_count":11},{"key_as_string":"2017-02-07T10:23:00.000Z","key":1486462980000,"doc_count":12},{"key_as_string":"2017-02-07T10:24:00.000Z","key":1486463040000,"doc_count":16},{"key_as_string":"2017-02-07T10:25:00.000Z","key":1486463100000,"doc_count":14},{"key_as_string":"2017-02-07T10:26:00.000Z","key":1486463160000,"doc_count":18},{"key_as_string":"2017-02-07T10:27:00.000Z","key":1486463220000,"doc_count":13},{"key_as_string":"2017-02-07T10:28:00.000Z","key":1486463280000,"doc_count":18},{"key_as_string":"2017-02-07T10:29:00.000Z","key":1486463340000,"doc_count":14},{"key_as_string":"2017-02-07T10:30:00.000Z","key":1486463400000,"doc_count":15},{"key_as_string":"2017-02-07T10:31:00.000Z","key":1486463460000,"doc_count":16},{"key_as_string":"2017-02-07T10:32:00.000Z","key":1486463520000,"doc_count":16},{"key_as_string":"2017-02-07T10:33:00.000Z","key":1486463580000,"doc_count":16},{"key_as_string":"2017-02-07T10:34:00.000Z","key":1486463640000,"doc_count":9},{"key_as_string":"2017-02-07T10:35:00.000Z","key":1486463700000,"doc_count":13},{"key_as_string":"2017-02-07T10:36:00.000Z","key":1486463760000,"doc_count":16},{"key_as_string":"2017-02-07T10:37:00.000Z","key":1486463820000,"doc_count":14},{"key_as_string":"2017-02-07T10:38:00.000Z","key":1486463880000,"doc_count":14},{"key_as_string":"2017-02-07T10:39:00.000Z","key":1486463940000,"doc_count":12},{"key_as_string":"2017-02-07T10:40:00.000Z","key":1486464000000,"doc_count":12},{"key_as_string":"2017-02-07T10:41:00.000Z","key":1486464060000,"doc_count":15},{"key_as_string":"2017-02-07T10:42:00.000Z","key":1486464120000,"doc_count":10},{"key_as_string":"2017-02-07T10:43:00.000Z","key":1486464180000,"doc_count":11},{"key_as_string":"2017-02-07T10:44:00.000Z","key":1486464240000,"doc_count":14},{"key_as_string":"2017-02-07T10:45:00.000Z","key":1486464300000,"doc_count":11},{"key_as_string":"2017-02-07T10:46:00.000Z","key":1486464360000,"doc_count":16},{"key_as_string":"2017-02-07T10:47:00.000Z","key":1486464420000,"doc_count":17},{"key_as_string":"2017-02-07T10:48:00.000Z","key":1486464480000,"doc_count":14},{"key_as_string":"2017-02-07T10:49:00.000Z","key":1486464540000,"doc_count":17},{"key_as_string":"2017-02-07T10:50:00.000Z","key":1486464600000,"doc_count":14},{"key_as_string":"2017-02-07T10:51:00.000Z","key":1486464660000,"doc_count":14},{"key_as_string":"2017-02-07T10:52:00.000Z","key":1486464720000,"doc_count":13},{"key_as_string":"2017-02-07T10:53:00.000Z","key":1486464780000,"doc_count":14},{"key_as_string":"2017-02-07T10:54:00.000Z","key":1486464840000,"doc_count":13},{"key_as_string":"2017-02-07T10:55:00.000Z","key":1486464900000,"doc_count":10},{"key_as_string":"2017-02-07T10:56:00.000Z","key":1486464960000,"doc_count":14},{"key_as_string":"2017-02-07T10:57:00.000Z","key":1486465020000,"doc_count":9},{"key_as_string":"2017-02-07T10:58:00.000Z","key":1486465080000,"doc_count":19},{"key_as_string":"2017-02-07T10:59:00.000Z","key":1486465140000,"doc_count":12},{"key_as_string":"2017-02-07T11:00:00.000Z","key":1486465200000,"doc_count":20},{"key_as_string":"2017-02-07T11:01:00.000Z","key":1486465260000,"doc_count":11},{"key_as_string":"2017-02-07T11:02:00.000Z","key":1486465320000,"doc_count":16},{"key_as_string":"2017-02-07T11:03:00.000Z","key":1486465380000,"doc_count":14},{"key_as_string":"2017-02-07T11:04:00.000Z","key":1486465440000,"doc_count":14},{"key_as_string":"2017-02-07T11:05:00.000Z","key":1486465500000,"doc_count":11},{"key_as_string":"2017-02-07T11:06:00.000Z","key":1486465560000,"doc_count":11},{"key_as_string":"2017-02-07T11:07:00.000Z","key":1486465620000,"doc_count":18},{"key_as_string":"2017-02-07T11:08:00.000Z","key":1486465680000,"doc_count":14},{"key_as_string":"2017-02-07T11:09:00.000Z","key":1486465740000,"doc_count":14},{"key_as_string":"2017-02-07T11:10:00.000Z","key":1486465800000,"doc_count":9},{"key_as_string":"2017-02-07T11:11:00.000Z","key":1486465860000,"doc_count":18},{"key_as_string":"2017-02-07T11:12:00.000Z","key":1486465920000,"doc_count":18},{"key_as_string":"2017-02-07T11:13:00.000Z","key":1486465980000,"doc_count":10},{"key_as_string":"2017-02-07T11:14:00.000Z","key":1486466040000,"doc_count":10},{"key_as_string":"2017-02-07T11:15:00.000Z","key":1486466100000,"doc_count":17},{"key_as_string":"2017-02-07T11:16:00.000Z","key":1486466160000,"doc_count":16},{"key_as_string":"2017-02-07T11:17:00.000Z","key":1486466220000,"doc_count":15},{"key_as_string":"2017-02-07T11:18:00.000Z","key":1486466280000,"doc_count":17},{"key_as_string":"2017-02-07T11:19:00.000Z","key":1486466340000,"doc_count":18},{"key_as_string":"2017-02-07T11:20:00.000Z","key":1486466400000,"doc_count":11},{"key_as_string":"2017-02-07T11:21:00.000Z","key":1486466460000,"doc_count":18},{"key_as_string":"2017-02-07T11:22:00.000Z","key":1486466520000,"doc_count":13},{"key_as_string":"2017-02-07T11:23:00.000Z","key":1486466580000,"doc_count":10},{"key_as_string":"2017-02-07T11:24:00.000Z","key":1486466640000,"doc_count":12},{"key_as_string":"2017-02-07T11:25:00.000Z","key":1486466700000,"doc_count":13},{"key_as_string":"2017-02-07T11:26:00.000Z","key":1486466760000,"doc_count":16},{"key_as_string":"2017-02-07T11:27:00.000Z","key":1486466820000,"doc_count":12},{"key_as_string":"2017-02-07T11:28:00.000Z","key":1486466880000,"doc_count":12},{"key_as_string":"2017-02-07T11:29:00.000Z","key":1486466940000,"doc_count":18},{"key_as_string":"2017-02-07T11:30:00.000Z","key":1486467000000,"doc_count":11},{"key_as_string":"2017-02-07T11:31:00.000Z","key":1486467060000,"doc_count":13},{"key_as_string":"2017-02-07T11:32:00.000Z","key":1486467120000,"doc_count":13},{"key_as_string":"2017-02-07T11:33:00.000Z","key":1486467180000,"doc_count":24},{"key_as_string":"2017-02-07T11:34:00.000Z","key":1486467240000,"doc_count":12},{"key_as_string":"2017-02-07T11:35:00.000Z","key":1486467300000,"doc_count":13},{"key_as_string":"2017-02-07T11:36:00.000Z","key":1486467360000,"doc_count":16},{"key_as_string":"2017-02-07T11:37:00.000Z","key":1486467420000,"doc_count":16},{"key_as_string":"2017-02-07T11:38:00.000Z","key":1486467480000,"doc_count":14},{"key_as_string":"2017-02-07T11:39:00.000Z","key":1486467540000,"doc_count":12},{"key_as_string":"2017-02-07T11:40:00.000Z","key":1486467600000,"doc_count":14},{"key_as_string":"2017-02-07T11:41:00.000Z","key":1486467660000,"doc_count":14},{"key_as_string":"2017-02-07T11:42:00.000Z","key":1486467720000,"doc_count":16},{"key_as_string":"2017-02-07T11:43:00.000Z","key":1486467780000,"doc_count":19},{"key_as_string":"2017-02-07T11:44:00.000Z","key":1486467840000,"doc_count":9},{"key_as_string":"2017-02-07T11:45:00.000Z","key":1486467900000,"doc_count":14},{"key_as_string":"2017-02-07T11:46:00.000Z","key":1486467960000,"doc_count":8},{"key_as_string":"2017-02-07T11:47:00.000Z","key":1486468020000,"doc_count":14},{"key_as_string":"2017-02-07T11:48:00.000Z","key":1486468080000,"doc_count":11},{"key_as_string":"2017-02-07T11:49:00.000Z","key":1486468140000,"doc_count":10},{"key_as_string":"2017-02-07T11:50:00.000Z","key":1486468200000,"doc_count":13},{"key_as_string":"2017-02-07T11:51:00.000Z","key":1486468260000,"doc_count":14},{"key_as_string":"2017-02-07T11:52:00.000Z","key":1486468320000,"doc_count":13},{"key_as_string":"2017-02-07T11:53:00.000Z","key":1486468380000,"doc_count":15},{"key_as_string":"2017-02-07T11:54:00.000Z","key":1486468440000,"doc_count":11},{"key_as_string":"2017-02-07T11:55:00.000Z","key":1486468500000,"doc_count":11},{"key_as_string":"2017-02-07T11:56:00.000Z","key":1486468560000,"doc_count":13},{"key_as_string":"2017-02-07T11:57:00.000Z","key":1486468620000,"doc_count":17},{"key_as_string":"2017-02-07T11:58:00.000Z","key":1486468680000,"doc_count":19},{"key_as_string":"2017-02-07T11:59:00.000Z","key":1486468740000,"doc_count":15},{"key_as_string":"2017-02-07T12:00:00.000Z","key":1486468800000,"doc_count":14},{"key_as_string":"2017-02-07T12:01:00.000Z","key":1486468860000,"doc_count":14},{"key_as_string":"2017-02-07T12:02:00.000Z","key":1486468920000,"doc_count":19},{"key_as_string":"2017-02-07T12:03:00.000Z","key":1486468980000,"doc_count":16},{"key_as_string":"2017-02-07T12:04:00.000Z","key":1486469040000,"doc_count":13},{"key_as_string":"2017-02-07T12:05:00.000Z","key":1486469100000,"doc_count":20},{"key_as_string":"2017-02-07T12:06:00.000Z","key":1486469160000,"doc_count":9},{"key_as_string":"2017-02-07T12:07:00.000Z","key":1486469220000,"doc_count":12},{"key_as_string":"2017-02-07T12:08:00.000Z","key":1486469280000,"doc_count":14},{"key_as_string":"2017-02-07T12:09:00.000Z","key":1486469340000,"doc_count":18},{"key_as_string":"2017-02-07T12:10:00.000Z","key":1486469400000,"doc_count":10},{"key_as_string":"2017-02-07T12:11:00.000Z","key":1486469460000,"doc_count":11},{"key_as_string":"2017-02-07T12:12:00.000Z","key":1486469520000,"doc_count":15},{"key_as_string":"2017-02-07T12:13:00.000Z","key":1486469580000,"doc_count":10},{"key_as_string":"2017-02-07T12:14:00.000Z","key":1486469640000,"doc_count":14},{"key_as_string":"2017-02-07T12:15:00.000Z","key":1486469700000,"doc_count":18},{"key_as_string":"2017-02-07T12:16:00.000Z","key":1486469760000,"doc_count":15},{"key_as_string":"2017-02-07T12:17:00.000Z","key":1486469820000,"doc_count":12},{"key_as_string":"2017-02-07T12:18:00.000Z","key":1486469880000,"doc_count":7},{"key_as_string":"2017-02-07T12:19:00.000Z","key":1486469940000,"doc_count":17},{"key_as_string":"2017-02-07T12:20:00.000Z","key":1486470000000,"doc_count":14},{"key_as_string":"2017-02-07T12:21:00.000Z","key":1486470060000,"doc_count":15},{"key_as_string":"2017-02-07T12:22:00.000Z","key":1486470120000,"doc_count":17},{"key_as_string":"2017-02-07T12:23:00.000Z","key":1486470180000,"doc_count":17},{"key_as_string":"2017-02-07T12:24:00.000Z","key":1486470240000,"doc_count":12},{"key_as_string":"2017-02-07T12:25:00.000Z","key":1486470300000,"doc_count":15},{"key_as_string":"2017-02-07T12:26:00.000Z","key":1486470360000,"doc_count":8},{"key_as_string":"2017-02-07T12:27:00.000Z","key":1486470420000,"doc_count":19},{"key_as_string":"2017-02-07T12:28:00.000Z","key":1486470480000,"doc_count":10},{"key_as_string":"2017-02-07T12:29:00.000Z","key":1486470540000,"doc_count":13},{"key_as_string":"2017-02-07T12:30:00.000Z","key":1486470600000,"doc_count":14},{"key_as_string":"2017-02-07T12:31:00.000Z","key":1486470660000,"doc_count":17},{"key_as_string":"2017-02-07T12:32:00.000Z","key":1486470720000,"doc_count":12},{"key_as_string":"2017-02-07T12:33:00.000Z","key":1486470780000,"doc_count":11},{"key_as_string":"2017-02-07T12:34:00.000Z","key":1486470840000,"doc_count":18},{"key_as_string":"2017-02-07T12:35:00.000Z","key":1486470900000,"doc_count":16},{"key_as_string":"2017-02-07T12:36:00.000Z","key":1486470960000,"doc_count":17},{"key_as_string":"2017-02-07T12:37:00.000Z","key":1486471020000,"doc_count":18},{"key_as_string":"2017-02-07T12:38:00.000Z","key":1486471080000,"doc_count":16},{"key_as_string":"2017-02-07T12:39:00.000Z","key":1486471140000,"doc_count":15},{"key_as_string":"2017-02-07T12:40:00.000Z","key":1486471200000,"doc_count":16},{"key_as_string":"2017-02-07T12:41:00.000Z","key":1486471260000,"doc_count":22},{"key_as_string":"2017-02-07T12:42:00.000Z","key":1486471320000,"doc_count":14},{"key_as_string":"2017-02-07T12:43:00.000Z","key":1486471380000,"doc_count":13},{"key_as_string":"2017-02-07T12:44:00.000Z","key":1486471440000,"doc_count":10},{"key_as_string":"2017-02-07T12:45:00.000Z","key":1486471500000,"doc_count":13},{"key_as_string":"2017-02-07T12:46:00.000Z","key":1486471560000,"doc_count":19},{"key_as_string":"2017-02-07T12:47:00.000Z","key":1486471620000,"doc_count":12},{"key_as_string":"2017-02-07T12:48:00.000Z","key":1486471680000,"doc_count":12},{"key_as_string":"2017-02-07T12:49:00.000Z","key":1486471740000,"doc_count":14},{"key_as_string":"2017-02-07T12:50:00.000Z","key":1486471800000,"doc_count":17},{"key_as_string":"2017-02-07T12:51:00.000Z","key":1486471860000,"doc_count":14},{"key_as_string":"2017-02-07T12:52:00.000Z","key":1486471920000,"doc_count":9},{"key_as_string":"2017-02-07T12:53:00.000Z","key":1486471980000,"doc_count":21},{"key_as_string":"2017-02-07T12:54:00.000Z","key":1486472040000,"doc_count":14},{"key_as_string":"2017-02-07T12:55:00.000Z","key":1486472100000,"doc_count":11},{"key_as_string":"2017-02-07T12:56:00.000Z","key":1486472160000,"doc_count":13},{"key_as_string":"2017-02-07T12:57:00.000Z","key":1486472220000,"doc_count":13},{"key_as_string":"2017-02-07T12:58:00.000Z","key":1486472280000,"doc_count":12},{"key_as_string":"2017-02-07T12:59:00.000Z","key":1486472340000,"doc_count":19},{"key_as_string":"2017-02-07T13:00:00.000Z","key":1486472400000,"doc_count":10},{"key_as_string":"2017-02-07T13:01:00.000Z","key":1486472460000,"doc_count":13},{"key_as_string":"2017-02-07T13:02:00.000Z","key":1486472520000,"doc_count":12},{"key_as_string":"2017-02-07T13:03:00.000Z","key":1486472580000,"doc_count":9},{"key_as_string":"2017-02-07T13:04:00.000Z","key":1486472640000,"doc_count":17},{"key_as_string":"2017-02-07T13:05:00.000Z","key":1486472700000,"doc_count":14},{"key_as_string":"2017-02-07T13:06:00.000Z","key":1486472760000,"doc_count":13},{"key_as_string":"2017-02-07T13:07:00.000Z","key":1486472820000,"doc_count":18},{"key_as_string":"2017-02-07T13:08:00.000Z","key":1486472880000,"doc_count":16},{"key_as_string":"2017-02-07T13:09:00.000Z","key":1486472940000,"doc_count":11},{"key_as_string":"2017-02-07T13:10:00.000Z","key":1486473000000,"doc_count":9},{"key_as_string":"2017-02-07T13:11:00.000Z","key":1486473060000,"doc_count":14},{"key_as_string":"2017-02-07T13:12:00.000Z","key":1486473120000,"doc_count":11},{"key_as_string":"2017-02-07T13:13:00.000Z","key":1486473180000,"doc_count":17},{"key_as_string":"2017-02-07T13:14:00.000Z","key":1486473240000,"doc_count":14},{"key_as_string":"2017-02-07T13:15:00.000Z","key":1486473300000,"doc_count":17},{"key_as_string":"2017-02-07T13:16:00.000Z","key":1486473360000,"doc_count":14},{"key_as_string":"2017-02-07T13:17:00.000Z","key":1486473420000,"doc_count":18},{"key_as_string":"2017-02-07T13:18:00.000Z","key":1486473480000,"doc_count":13},{"key_as_string":"2017-02-07T13:19:00.000Z","key":1486473540000,"doc_count":24},{"key_as_string":"2017-02-07T13:20:00.000Z","key":1486473600000,"doc_count":6},{"key_as_string":"2017-02-07T13:21:00.000Z","key":1486473660000,"doc_count":16},{"key_as_string":"2017-02-07T13:22:00.000Z","key":1486473720000,"doc_count":19},{"key_as_string":"2017-02-07T13:23:00.000Z","key":1486473780000,"doc_count":12},{"key_as_string":"2017-02-07T13:24:00.000Z","key":1486473840000,"doc_count":18},{"key_as_string":"2017-02-07T13:25:00.000Z","key":1486473900000,"doc_count":11},{"key_as_string":"2017-02-07T13:26:00.000Z","key":1486473960000,"doc_count":14},{"key_as_string":"2017-02-07T13:27:00.000Z","key":1486474020000,"doc_count":13},{"key_as_string":"2017-02-07T13:28:00.000Z","key":1486474080000,"doc_count":13},{"key_as_string":"2017-02-07T13:29:00.000Z","key":1486474140000,"doc_count":12},{"key_as_string":"2017-02-07T13:30:00.000Z","key":1486474200000,"doc_count":12},{"key_as_string":"2017-02-07T13:31:00.000Z","key":1486474260000,"doc_count":10},{"key_as_string":"2017-02-07T13:32:00.000Z","key":1486474320000,"doc_count":15},{"key_as_string":"2017-02-07T13:33:00.000Z","key":1486474380000,"doc_count":11},{"key_as_string":"2017-02-07T13:34:00.000Z","key":1486474440000,"doc_count":15},{"key_as_string":"2017-02-07T13:35:00.000Z","key":1486474500000,"doc_count":6},{"key_as_string":"2017-02-07T13:36:00.000Z","key":1486474560000,"doc_count":20},{"key_as_string":"2017-02-07T13:37:00.000Z","key":1486474620000,"doc_count":9},{"key_as_string":"2017-02-07T13:38:00.000Z","key":1486474680000,"doc_count":15},{"key_as_string":"2017-02-07T13:39:00.000Z","key":1486474740000,"doc_count":18},{"key_as_string":"2017-02-07T13:40:00.000Z","key":1486474800000,"doc_count":14},{"key_as_string":"2017-02-07T13:41:00.000Z","key":1486474860000,"doc_count":11},{"key_as_string":"2017-02-07T13:42:00.000Z","key":1486474920000,"doc_count":15},{"key_as_string":"2017-02-07T13:43:00.000Z","key":1486474980000,"doc_count":10},{"key_as_string":"2017-02-07T13:44:00.000Z","key":1486475040000,"doc_count":14},{"key_as_string":"2017-02-07T13:45:00.000Z","key":1486475100000,"doc_count":13},{"key_as_string":"2017-02-07T13:46:00.000Z","key":1486475160000,"doc_count":16},{"key_as_string":"2017-02-07T13:47:00.000Z","key":1486475220000,"doc_count":10},{"key_as_string":"2017-02-07T13:48:00.000Z","key":1486475280000,"doc_count":13},{"key_as_string":"2017-02-07T13:49:00.000Z","key":1486475340000,"doc_count":14},{"key_as_string":"2017-02-07T13:50:00.000Z","key":1486475400000,"doc_count":12},{"key_as_string":"2017-02-07T13:51:00.000Z","key":1486475460000,"doc_count":12},{"key_as_string":"2017-02-07T13:52:00.000Z","key":1486475520000,"doc_count":11},{"key_as_string":"2017-02-07T13:53:00.000Z","key":1486475580000,"doc_count":15},{"key_as_string":"2017-02-07T13:54:00.000Z","key":1486475640000,"doc_count":13},{"key_as_string":"2017-02-07T13:55:00.000Z","key":1486475700000,"doc_count":14},{"key_as_string":"2017-02-07T13:56:00.000Z","key":1486475760000,"doc_count":18},{"key_as_string":"2017-02-07T13:57:00.000Z","key":1486475820000,"doc_count":6},{"key_as_string":"2017-02-07T13:58:00.000Z","key":1486475880000,"doc_count":19},{"key_as_string":"2017-02-07T13:59:00.000Z","key":1486475940000,"doc_count":13},{"key_as_string":"2017-02-07T14:00:00.000Z","key":1486476000000,"doc_count":9},{"key_as_string":"2017-02-07T14:01:00.000Z","key":1486476060000,"doc_count":10},{"key_as_string":"2017-02-07T14:02:00.000Z","key":1486476120000,"doc_count":14},{"key_as_string":"2017-02-07T14:03:00.000Z","key":1486476180000,"doc_count":13},{"key_as_string":"2017-02-07T14:04:00.000Z","key":1486476240000,"doc_count":19},{"key_as_string":"2017-02-07T14:05:00.000Z","key":1486476300000,"doc_count":15},{"key_as_string":"2017-02-07T14:06:00.000Z","key":1486476360000,"doc_count":12},{"key_as_string":"2017-02-07T14:07:00.000Z","key":1486476420000,"doc_count":11},{"key_as_string":"2017-02-07T14:08:00.000Z","key":1486476480000,"doc_count":15},{"key_as_string":"2017-02-07T14:09:00.000Z","key":1486476540000,"doc_count":10},{"key_as_string":"2017-02-07T14:10:00.000Z","key":1486476600000,"doc_count":13},{"key_as_string":"2017-02-07T14:11:00.000Z","key":1486476660000,"doc_count":18},{"key_as_string":"2017-02-07T14:12:00.000Z","key":1486476720000,"doc_count":10},{"key_as_string":"2017-02-07T14:13:00.000Z","key":1486476780000,"doc_count":13},{"key_as_string":"2017-02-07T14:14:00.000Z","key":1486476840000,"doc_count":15},{"key_as_string":"2017-02-07T14:15:00.000Z","key":1486476900000,"doc_count":18},{"key_as_string":"2017-02-07T14:16:00.000Z","key":1486476960000,"doc_count":14},{"key_as_string":"2017-02-07T14:17:00.000Z","key":1486477020000,"doc_count":13},{"key_as_string":"2017-02-07T14:18:00.000Z","key":1486477080000,"doc_count":12},{"key_as_string":"2017-02-07T14:19:00.000Z","key":1486477140000,"doc_count":18},{"key_as_string":"2017-02-07T14:20:00.000Z","key":1486477200000,"doc_count":13},{"key_as_string":"2017-02-07T14:21:00.000Z","key":1486477260000,"doc_count":14},{"key_as_string":"2017-02-07T14:22:00.000Z","key":1486477320000,"doc_count":8},{"key_as_string":"2017-02-07T14:23:00.000Z","key":1486477380000,"doc_count":16},{"key_as_string":"2017-02-07T14:24:00.000Z","key":1486477440000,"doc_count":12},{"key_as_string":"2017-02-07T14:25:00.000Z","key":1486477500000,"doc_count":17},{"key_as_string":"2017-02-07T14:26:00.000Z","key":1486477560000,"doc_count":11},{"key_as_string":"2017-02-07T14:27:00.000Z","key":1486477620000,"doc_count":17},{"key_as_string":"2017-02-07T14:28:00.000Z","key":1486477680000,"doc_count":17},{"key_as_string":"2017-02-07T14:29:00.000Z","key":1486477740000,"doc_count":14},{"key_as_string":"2017-02-07T14:30:00.000Z","key":1486477800000,"doc_count":15},{"key_as_string":"2017-02-07T14:31:00.000Z","key":1486477860000,"doc_count":13},{"key_as_string":"2017-02-07T14:32:00.000Z","key":1486477920000,"doc_count":9},{"key_as_string":"2017-02-07T14:33:00.000Z","key":1486477980000,"doc_count":17},{"key_as_string":"2017-02-07T14:34:00.000Z","key":1486478040000,"doc_count":12},{"key_as_string":"2017-02-07T14:35:00.000Z","key":1486478100000,"doc_count":14},{"key_as_string":"2017-02-07T14:36:00.000Z","key":1486478160000,"doc_count":14},{"key_as_string":"2017-02-07T14:37:00.000Z","key":1486478220000,"doc_count":13},{"key_as_string":"2017-02-07T14:38:00.000Z","key":1486478280000,"doc_count":13},{"key_as_string":"2017-02-07T14:39:00.000Z","key":1486478340000,"doc_count":11},{"key_as_string":"2017-02-07T14:40:00.000Z","key":1486478400000,"doc_count":20},{"key_as_string":"2017-02-07T14:41:00.000Z","key":1486478460000,"doc_count":12},{"key_as_string":"2017-02-07T14:42:00.000Z","key":1486478520000,"doc_count":14},{"key_as_string":"2017-02-07T14:43:00.000Z","key":1486478580000,"doc_count":14},{"key_as_string":"2017-02-07T14:44:00.000Z","key":1486478640000,"doc_count":13},{"key_as_string":"2017-02-07T14:45:00.000Z","key":1486478700000,"doc_count":16},{"key_as_string":"2017-02-07T14:46:00.000Z","key":1486478760000,"doc_count":16},{"key_as_string":"2017-02-07T14:47:00.000Z","key":1486478820000,"doc_count":12},{"key_as_string":"2017-02-07T14:48:00.000Z","key":1486478880000,"doc_count":11},{"key_as_string":"2017-02-07T14:49:00.000Z","key":1486478940000,"doc_count":16},{"key_as_string":"2017-02-07T14:50:00.000Z","key":1486479000000,"doc_count":12},{"key_as_string":"2017-02-07T14:51:00.000Z","key":1486479060000,"doc_count":9},{"key_as_string":"2017-02-07T14:52:00.000Z","key":1486479120000,"doc_count":13},{"key_as_string":"2017-02-07T14:53:00.000Z","key":1486479180000,"doc_count":12},{"key_as_string":"2017-02-07T14:54:00.000Z","key":1486479240000,"doc_count":19},{"key_as_string":"2017-02-07T14:55:00.000Z","key":1486479300000,"doc_count":10},{"key_as_string":"2017-02-07T14:56:00.000Z","key":1486479360000,"doc_count":15},{"key_as_string":"2017-02-07T14:57:00.000Z","key":1486479420000,"doc_count":16},{"key_as_string":"2017-02-07T14:58:00.000Z","key":1486479480000,"doc_count":14},{"key_as_string":"2017-02-07T14:59:00.000Z","key":1486479540000,"doc_count":12},{"key_as_string":"2017-02-07T15:00:00.000Z","key":1486479600000,"doc_count":14},{"key_as_string":"2017-02-07T15:01:00.000Z","key":1486479660000,"doc_count":12},{"key_as_string":"2017-02-07T15:02:00.000Z","key":1486479720000,"doc_count":11},{"key_as_string":"2017-02-07T15:03:00.000Z","key":1486479780000,"doc_count":13},{"key_as_string":"2017-02-07T15:04:00.000Z","key":1486479840000,"doc_count":14},{"key_as_string":"2017-02-07T15:05:00.000Z","key":1486479900000,"doc_count":10},{"key_as_string":"2017-02-07T15:06:00.000Z","key":1486479960000,"doc_count":9},{"key_as_string":"2017-02-07T15:07:00.000Z","key":1486480020000,"doc_count":10},{"key_as_string":"2017-02-07T15:08:00.000Z","key":1486480080000,"doc_count":15},{"key_as_string":"2017-02-07T15:09:00.000Z","key":1486480140000,"doc_count":13},{"key_as_string":"2017-02-07T15:10:00.000Z","key":1486480200000,"doc_count":12},{"key_as_string":"2017-02-07T15:11:00.000Z","key":1486480260000,"doc_count":13},{"key_as_string":"2017-02-07T15:12:00.000Z","key":1486480320000,"doc_count":12},{"key_as_string":"2017-02-07T15:13:00.000Z","key":1486480380000,"doc_count":13},{"key_as_string":"2017-02-07T15:14:00.000Z","key":1486480440000,"doc_count":15},{"key_as_string":"2017-02-07T15:15:00.000Z","key":1486480500000,"doc_count":15},{"key_as_string":"2017-02-07T15:16:00.000Z","key":1486480560000,"doc_count":14},{"key_as_string":"2017-02-07T15:17:00.000Z","key":1486480620000,"doc_count":7},{"key_as_string":"2017-02-07T15:18:00.000Z","key":1486480680000,"doc_count":16},{"key_as_string":"2017-02-07T15:19:00.000Z","key":1486480740000,"doc_count":13},{"key_as_string":"2017-02-07T15:20:00.000Z","key":1486480800000,"doc_count":14},{"key_as_string":"2017-02-07T15:21:00.000Z","key":1486480860000,"doc_count":13},{"key_as_string":"2017-02-07T15:22:00.000Z","key":1486480920000,"doc_count":12},{"key_as_string":"2017-02-07T15:23:00.000Z","key":1486480980000,"doc_count":16},{"key_as_string":"2017-02-07T15:24:00.000Z","key":1486481040000,"doc_count":15},{"key_as_string":"2017-02-07T15:25:00.000Z","key":1486481100000,"doc_count":8},{"key_as_string":"2017-02-07T15:26:00.000Z","key":1486481160000,"doc_count":15},{"key_as_string":"2017-02-07T15:27:00.000Z","key":1486481220000,"doc_count":11},{"key_as_string":"2017-02-07T15:28:00.000Z","key":1486481280000,"doc_count":14},{"key_as_string":"2017-02-07T15:29:00.000Z","key":1486481340000,"doc_count":14},{"key_as_string":"2017-02-07T15:30:00.000Z","key":1486481400000,"doc_count":12},{"key_as_string":"2017-02-07T15:31:00.000Z","key":1486481460000,"doc_count":19},{"key_as_string":"2017-02-07T15:32:00.000Z","key":1486481520000,"doc_count":15},{"key_as_string":"2017-02-07T15:33:00.000Z","key":1486481580000,"doc_count":15},{"key_as_string":"2017-02-07T15:34:00.000Z","key":1486481640000,"doc_count":11},{"key_as_string":"2017-02-07T15:35:00.000Z","key":1486481700000,"doc_count":14},{"key_as_string":"2017-02-07T15:36:00.000Z","key":1486481760000,"doc_count":13},{"key_as_string":"2017-02-07T15:37:00.000Z","key":1486481820000,"doc_count":18},{"key_as_string":"2017-02-07T15:38:00.000Z","key":1486481880000,"doc_count":8},{"key_as_string":"2017-02-07T15:39:00.000Z","key":1486481940000,"doc_count":14},{"key_as_string":"2017-02-07T15:40:00.000Z","key":1486482000000,"doc_count":11},{"key_as_string":"2017-02-07T15:41:00.000Z","key":1486482060000,"doc_count":10},{"key_as_string":"2017-02-07T15:42:00.000Z","key":1486482120000,"doc_count":10},{"key_as_string":"2017-02-07T15:43:00.000Z","key":1486482180000,"doc_count":14},{"key_as_string":"2017-02-07T15:44:00.000Z","key":1486482240000,"doc_count":10},{"key_as_string":"2017-02-07T15:45:00.000Z","key":1486482300000,"doc_count":13},{"key_as_string":"2017-02-07T15:46:00.000Z","key":1486482360000,"doc_count":15},{"key_as_string":"2017-02-07T15:47:00.000Z","key":1486482420000,"doc_count":11},{"key_as_string":"2017-02-07T15:48:00.000Z","key":1486482480000,"doc_count":13},{"key_as_string":"2017-02-07T15:49:00.000Z","key":1486482540000,"doc_count":10},{"key_as_string":"2017-02-07T15:50:00.000Z","key":1486482600000,"doc_count":17},{"key_as_string":"2017-02-07T15:51:00.000Z","key":1486482660000,"doc_count":11},{"key_as_string":"2017-02-07T15:52:00.000Z","key":1486482720000,"doc_count":15},{"key_as_string":"2017-02-07T15:53:00.000Z","key":1486482780000,"doc_count":10},{"key_as_string":"2017-02-07T15:54:00.000Z","key":1486482840000,"doc_count":11},{"key_as_string":"2017-02-07T15:55:00.000Z","key":1486482900000,"doc_count":14},{"key_as_string":"2017-02-07T15:56:00.000Z","key":1486482960000,"doc_count":16},{"key_as_string":"2017-02-07T15:57:00.000Z","key":1486483020000,"doc_count":15},{"key_as_string":"2017-02-07T15:58:00.000Z","key":1486483080000,"doc_count":13},{"key_as_string":"2017-02-07T15:59:00.000Z","key":1486483140000,"doc_count":10},{"key_as_string":"2017-02-07T16:00:00.000Z","key":1486483200000,"doc_count":18},{"key_as_string":"2017-02-07T16:01:00.000Z","key":1486483260000,"doc_count":11},{"key_as_string":"2017-02-07T16:02:00.000Z","key":1486483320000,"doc_count":14},{"key_as_string":"2017-02-07T16:03:00.000Z","key":1486483380000,"doc_count":16},{"key_as_string":"2017-02-07T16:04:00.000Z","key":1486483440000,"doc_count":10},{"key_as_string":"2017-02-07T16:05:00.000Z","key":1486483500000,"doc_count":12},{"key_as_string":"2017-02-07T16:06:00.000Z","key":1486483560000,"doc_count":11},{"key_as_string":"2017-02-07T16:07:00.000Z","key":1486483620000,"doc_count":14},{"key_as_string":"2017-02-07T16:08:00.000Z","key":1486483680000,"doc_count":12},{"key_as_string":"2017-02-07T16:09:00.000Z","key":1486483740000,"doc_count":8},{"key_as_string":"2017-02-07T16:10:00.000Z","key":1486483800000,"doc_count":13},{"key_as_string":"2017-02-07T16:11:00.000Z","key":1486483860000,"doc_count":15},{"key_as_string":"2017-02-07T16:12:00.000Z","key":1486483920000,"doc_count":9},{"key_as_string":"2017-02-07T16:13:00.000Z","key":1486483980000,"doc_count":14},{"key_as_string":"2017-02-07T16:14:00.000Z","key":1486484040000,"doc_count":11},{"key_as_string":"2017-02-07T16:15:00.000Z","key":1486484100000,"doc_count":10},{"key_as_string":"2017-02-07T16:16:00.000Z","key":1486484160000,"doc_count":14},{"key_as_string":"2017-02-07T16:17:00.000Z","key":1486484220000,"doc_count":10},{"key_as_string":"2017-02-07T16:18:00.000Z","key":1486484280000,"doc_count":10},{"key_as_string":"2017-02-07T16:19:00.000Z","key":1486484340000,"doc_count":17},{"key_as_string":"2017-02-07T16:20:00.000Z","key":1486484400000,"doc_count":11},{"key_as_string":"2017-02-07T16:21:00.000Z","key":1486484460000,"doc_count":14},{"key_as_string":"2017-02-07T16:22:00.000Z","key":1486484520000,"doc_count":15},{"key_as_string":"2017-02-07T16:23:00.000Z","key":1486484580000,"doc_count":8},{"key_as_string":"2017-02-07T16:24:00.000Z","key":1486484640000,"doc_count":14},{"key_as_string":"2017-02-07T16:25:00.000Z","key":1486484700000,"doc_count":10},{"key_as_string":"2017-02-07T16:26:00.000Z","key":1486484760000,"doc_count":10},{"key_as_string":"2017-02-07T16:27:00.000Z","key":1486484820000,"doc_count":14},{"key_as_string":"2017-02-07T16:28:00.000Z","key":1486484880000,"doc_count":19},{"key_as_string":"2017-02-07T16:29:00.000Z","key":1486484940000,"doc_count":9},{"key_as_string":"2017-02-07T16:30:00.000Z","key":1486485000000,"doc_count":15},{"key_as_string":"2017-02-07T16:31:00.000Z","key":1486485060000,"doc_count":13},{"key_as_string":"2017-02-07T16:32:00.000Z","key":1486485120000,"doc_count":10},{"key_as_string":"2017-02-07T16:33:00.000Z","key":1486485180000,"doc_count":12},{"key_as_string":"2017-02-07T16:34:00.000Z","key":1486485240000,"doc_count":12},{"key_as_string":"2017-02-07T16:35:00.000Z","key":1486485300000,"doc_count":17},{"key_as_string":"2017-02-07T16:36:00.000Z","key":1486485360000,"doc_count":8},{"key_as_string":"2017-02-07T16:37:00.000Z","key":1486485420000,"doc_count":17},{"key_as_string":"2017-02-07T16:38:00.000Z","key":1486485480000,"doc_count":13},{"key_as_string":"2017-02-07T16:39:00.000Z","key":1486485540000,"doc_count":7},{"key_as_string":"2017-02-07T16:40:00.000Z","key":1486485600000,"doc_count":11},{"key_as_string":"2017-02-07T16:41:00.000Z","key":1486485660000,"doc_count":14},{"key_as_string":"2017-02-07T16:42:00.000Z","key":1486485720000,"doc_count":16},{"key_as_string":"2017-02-07T16:43:00.000Z","key":1486485780000,"doc_count":11},{"key_as_string":"2017-02-07T16:44:00.000Z","key":1486485840000,"doc_count":15},{"key_as_string":"2017-02-07T16:45:00.000Z","key":1486485900000,"doc_count":15},{"key_as_string":"2017-02-07T16:46:00.000Z","key":1486485960000,"doc_count":11},{"key_as_string":"2017-02-07T16:47:00.000Z","key":1486486020000,"doc_count":11},{"key_as_string":"2017-02-07T16:48:00.000Z","key":1486486080000,"doc_count":12},{"key_as_string":"2017-02-07T16:49:00.000Z","key":1486486140000,"doc_count":12},{"key_as_string":"2017-02-07T16:50:00.000Z","key":1486486200000,"doc_count":11},{"key_as_string":"2017-02-07T16:51:00.000Z","key":1486486260000,"doc_count":12},{"key_as_string":"2017-02-07T16:52:00.000Z","key":1486486320000,"doc_count":12},{"key_as_string":"2017-02-07T16:53:00.000Z","key":1486486380000,"doc_count":14},{"key_as_string":"2017-02-07T16:54:00.000Z","key":1486486440000,"doc_count":10},{"key_as_string":"2017-02-07T16:55:00.000Z","key":1486486500000,"doc_count":12},{"key_as_string":"2017-02-07T16:56:00.000Z","key":1486486560000,"doc_count":15},{"key_as_string":"2017-02-07T16:57:00.000Z","key":1486486620000,"doc_count":14},{"key_as_string":"2017-02-07T16:58:00.000Z","key":1486486680000,"doc_count":9},{"key_as_string":"2017-02-07T16:59:00.000Z","key":1486486740000,"doc_count":15},{"key_as_string":"2017-02-07T17:00:00.000Z","key":1486486800000,"doc_count":10},{"key_as_string":"2017-02-07T17:01:00.000Z","key":1486486860000,"doc_count":9},{"key_as_string":"2017-02-07T17:02:00.000Z","key":1486486920000,"doc_count":15},{"key_as_string":"2017-02-07T17:03:00.000Z","key":1486486980000,"doc_count":11},{"key_as_string":"2017-02-07T17:04:00.000Z","key":1486487040000,"doc_count":11},{"key_as_string":"2017-02-07T17:05:00.000Z","key":1486487100000,"doc_count":6},{"key_as_string":"2017-02-07T17:06:00.000Z","key":1486487160000,"doc_count":20},{"key_as_string":"2017-02-07T17:07:00.000Z","key":1486487220000,"doc_count":12},{"key_as_string":"2017-02-07T17:08:00.000Z","key":1486487280000,"doc_count":10},{"key_as_string":"2017-02-07T17:09:00.000Z","key":1486487340000,"doc_count":15},{"key_as_string":"2017-02-07T17:10:00.000Z","key":1486487400000,"doc_count":15},{"key_as_string":"2017-02-07T17:11:00.000Z","key":1486487460000,"doc_count":12},{"key_as_string":"2017-02-07T17:12:00.000Z","key":1486487520000,"doc_count":10},{"key_as_string":"2017-02-07T17:13:00.000Z","key":1486487580000,"doc_count":14},{"key_as_string":"2017-02-07T17:14:00.000Z","key":1486487640000,"doc_count":11},{"key_as_string":"2017-02-07T17:15:00.000Z","key":1486487700000,"doc_count":15},{"key_as_string":"2017-02-07T17:16:00.000Z","key":1486487760000,"doc_count":9},{"key_as_string":"2017-02-07T17:17:00.000Z","key":1486487820000,"doc_count":15},{"key_as_string":"2017-02-07T17:18:00.000Z","key":1486487880000,"doc_count":10},{"key_as_string":"2017-02-07T17:19:00.000Z","key":1486487940000,"doc_count":15},{"key_as_string":"2017-02-07T17:20:00.000Z","key":1486488000000,"doc_count":8},{"key_as_string":"2017-02-07T17:21:00.000Z","key":1486488060000,"doc_count":9},{"key_as_string":"2017-02-07T17:22:00.000Z","key":1486488120000,"doc_count":13},{"key_as_string":"2017-02-07T17:23:00.000Z","key":1486488180000,"doc_count":12},{"key_as_string":"2017-02-07T17:24:00.000Z","key":1486488240000,"doc_count":12},{"key_as_string":"2017-02-07T17:25:00.000Z","key":1486488300000,"doc_count":13},{"key_as_string":"2017-02-07T17:26:00.000Z","key":1486488360000,"doc_count":12},{"key_as_string":"2017-02-07T17:27:00.000Z","key":1486488420000,"doc_count":13},{"key_as_string":"2017-02-07T17:28:00.000Z","key":1486488480000,"doc_count":13},{"key_as_string":"2017-02-07T17:29:00.000Z","key":1486488540000,"doc_count":13},{"key_as_string":"2017-02-07T17:30:00.000Z","key":1486488600000,"doc_count":15},{"key_as_string":"2017-02-07T17:31:00.000Z","key":1486488660000,"doc_count":11},{"key_as_string":"2017-02-07T17:32:00.000Z","key":1486488720000,"doc_count":10},{"key_as_string":"2017-02-07T17:33:00.000Z","key":1486488780000,"doc_count":10},{"key_as_string":"2017-02-07T17:34:00.000Z","key":1486488840000,"doc_count":10},{"key_as_string":"2017-02-07T17:35:00.000Z","key":1486488900000,"doc_count":12},{"key_as_string":"2017-02-07T17:36:00.000Z","key":1486488960000,"doc_count":15},{"key_as_string":"2017-02-07T17:37:00.000Z","key":1486489020000,"doc_count":8},{"key_as_string":"2017-02-07T17:38:00.000Z","key":1486489080000,"doc_count":15},{"key_as_string":"2017-02-07T17:39:00.000Z","key":1486489140000,"doc_count":11},{"key_as_string":"2017-02-07T17:40:00.000Z","key":1486489200000,"doc_count":8},{"key_as_string":"2017-02-07T17:41:00.000Z","key":1486489260000,"doc_count":17},{"key_as_string":"2017-02-07T17:42:00.000Z","key":1486489320000,"doc_count":16},{"key_as_string":"2017-02-07T17:43:00.000Z","key":1486489380000,"doc_count":12},{"key_as_string":"2017-02-07T17:44:00.000Z","key":1486489440000,"doc_count":8},{"key_as_string":"2017-02-07T17:45:00.000Z","key":1486489500000,"doc_count":12},{"key_as_string":"2017-02-07T17:46:00.000Z","key":1486489560000,"doc_count":13},{"key_as_string":"2017-02-07T17:47:00.000Z","key":1486489620000,"doc_count":8},{"key_as_string":"2017-02-07T17:48:00.000Z","key":1486489680000,"doc_count":7},{"key_as_string":"2017-02-07T17:49:00.000Z","key":1486489740000,"doc_count":16},{"key_as_string":"2017-02-07T17:50:00.000Z","key":1486489800000,"doc_count":13},{"key_as_string":"2017-02-07T17:51:00.000Z","key":1486489860000,"doc_count":11},{"key_as_string":"2017-02-07T17:52:00.000Z","key":1486489920000,"doc_count":14},{"key_as_string":"2017-02-07T17:53:00.000Z","key":1486489980000,"doc_count":8},{"key_as_string":"2017-02-07T17:54:00.000Z","key":1486490040000,"doc_count":10},{"key_as_string":"2017-02-07T17:55:00.000Z","key":1486490100000,"doc_count":12},{"key_as_string":"2017-02-07T17:56:00.000Z","key":1486490160000,"doc_count":11},{"key_as_string":"2017-02-07T17:57:00.000Z","key":1486490220000,"doc_count":9},{"key_as_string":"2017-02-07T17:58:00.000Z","key":1486490280000,"doc_count":10},{"key_as_string":"2017-02-07T17:59:00.000Z","key":1486490340000,"doc_count":11},{"key_as_string":"2017-02-07T18:00:00.000Z","key":1486490400000,"doc_count":8},{"key_as_string":"2017-02-07T18:01:00.000Z","key":1486490460000,"doc_count":13},{"key_as_string":"2017-02-07T18:02:00.000Z","key":1486490520000,"doc_count":19},{"key_as_string":"2017-02-07T18:03:00.000Z","key":1486490580000,"doc_count":7},{"key_as_string":"2017-02-07T18:04:00.000Z","key":1486490640000,"doc_count":11},{"key_as_string":"2017-02-07T18:05:00.000Z","key":1486490700000,"doc_count":11},{"key_as_string":"2017-02-07T18:06:00.000Z","key":1486490760000,"doc_count":9},{"key_as_string":"2017-02-07T18:07:00.000Z","key":1486490820000,"doc_count":16},{"key_as_string":"2017-02-07T18:08:00.000Z","key":1486490880000,"doc_count":13},{"key_as_string":"2017-02-07T18:09:00.000Z","key":1486490940000,"doc_count":9},{"key_as_string":"2017-02-07T18:10:00.000Z","key":1486491000000,"doc_count":14},{"key_as_string":"2017-02-07T18:11:00.000Z","key":1486491060000,"doc_count":9},{"key_as_string":"2017-02-07T18:12:00.000Z","key":1486491120000,"doc_count":12},{"key_as_string":"2017-02-07T18:13:00.000Z","key":1486491180000,"doc_count":12},{"key_as_string":"2017-02-07T18:14:00.000Z","key":1486491240000,"doc_count":10},{"key_as_string":"2017-02-07T18:15:00.000Z","key":1486491300000,"doc_count":13},{"key_as_string":"2017-02-07T18:16:00.000Z","key":1486491360000,"doc_count":11},{"key_as_string":"2017-02-07T18:17:00.000Z","key":1486491420000,"doc_count":13},{"key_as_string":"2017-02-07T18:18:00.000Z","key":1486491480000,"doc_count":10},{"key_as_string":"2017-02-07T18:19:00.000Z","key":1486491540000,"doc_count":10},{"key_as_string":"2017-02-07T18:20:00.000Z","key":1486491600000,"doc_count":8},{"key_as_string":"2017-02-07T18:21:00.000Z","key":1486491660000,"doc_count":15},{"key_as_string":"2017-02-07T18:22:00.000Z","key":1486491720000,"doc_count":16},{"key_as_string":"2017-02-07T18:23:00.000Z","key":1486491780000,"doc_count":14},{"key_as_string":"2017-02-07T18:24:00.000Z","key":1486491840000,"doc_count":17},{"key_as_string":"2017-02-07T18:25:00.000Z","key":1486491900000,"doc_count":11},{"key_as_string":"2017-02-07T18:26:00.000Z","key":1486491960000,"doc_count":13},{"key_as_string":"2017-02-07T18:27:00.000Z","key":1486492020000,"doc_count":15},{"key_as_string":"2017-02-07T18:28:00.000Z","key":1486492080000,"doc_count":13},{"key_as_string":"2017-02-07T18:29:00.000Z","key":1486492140000,"doc_count":13},{"key_as_string":"2017-02-07T18:30:00.000Z","key":1486492200000,"doc_count":12},{"key_as_string":"2017-02-07T18:31:00.000Z","key":1486492260000,"doc_count":14},{"key_as_string":"2017-02-07T18:32:00.000Z","key":1486492320000,"doc_count":13},{"key_as_string":"2017-02-07T18:33:00.000Z","key":1486492380000,"doc_count":6},{"key_as_string":"2017-02-07T18:34:00.000Z","key":1486492440000,"doc_count":14},{"key_as_string":"2017-02-07T18:35:00.000Z","key":1486492500000,"doc_count":14},{"key_as_string":"2017-02-07T18:36:00.000Z","key":1486492560000,"doc_count":9},{"key_as_string":"2017-02-07T18:37:00.000Z","key":1486492620000,"doc_count":12},{"key_as_string":"2017-02-07T18:38:00.000Z","key":1486492680000,"doc_count":8},{"key_as_string":"2017-02-07T18:39:00.000Z","key":1486492740000,"doc_count":13},{"key_as_string":"2017-02-07T18:40:00.000Z","key":1486492800000,"doc_count":6},{"key_as_string":"2017-02-07T18:41:00.000Z","key":1486492860000,"doc_count":16},{"key_as_string":"2017-02-07T18:42:00.000Z","key":1486492920000,"doc_count":12},{"key_as_string":"2017-02-07T18:43:00.000Z","key":1486492980000,"doc_count":9},{"key_as_string":"2017-02-07T18:44:00.000Z","key":1486493040000,"doc_count":14},{"key_as_string":"2017-02-07T18:45:00.000Z","key":1486493100000,"doc_count":14},{"key_as_string":"2017-02-07T18:46:00.000Z","key":1486493160000,"doc_count":8},{"key_as_string":"2017-02-07T18:47:00.000Z","key":1486493220000,"doc_count":12},{"key_as_string":"2017-02-07T18:48:00.000Z","key":1486493280000,"doc_count":11},{"key_as_string":"2017-02-07T18:49:00.000Z","key":1486493340000,"doc_count":14},{"key_as_string":"2017-02-07T18:50:00.000Z","key":1486493400000,"doc_count":10},{"key_as_string":"2017-02-07T18:51:00.000Z","key":1486493460000,"doc_count":11},{"key_as_string":"2017-02-07T18:52:00.000Z","key":1486493520000,"doc_count":17},{"key_as_string":"2017-02-07T18:53:00.000Z","key":1486493580000,"doc_count":11},{"key_as_string":"2017-02-07T18:54:00.000Z","key":1486493640000,"doc_count":12},{"key_as_string":"2017-02-07T18:55:00.000Z","key":1486493700000,"doc_count":10},{"key_as_string":"2017-02-07T18:56:00.000Z","key":1486493760000,"doc_count":10},{"key_as_string":"2017-02-07T18:57:00.000Z","key":1486493820000,"doc_count":11},{"key_as_string":"2017-02-07T18:58:00.000Z","key":1486493880000,"doc_count":11},{"key_as_string":"2017-02-07T18:59:00.000Z","key":1486493940000,"doc_count":13},{"key_as_string":"2017-02-07T19:00:00.000Z","key":1486494000000,"doc_count":9},{"key_as_string":"2017-02-07T19:01:00.000Z","key":1486494060000,"doc_count":15},{"key_as_string":"2017-02-07T19:02:00.000Z","key":1486494120000,"doc_count":10},{"key_as_string":"2017-02-07T19:03:00.000Z","key":1486494180000,"doc_count":11},{"key_as_string":"2017-02-07T19:04:00.000Z","key":1486494240000,"doc_count":10},{"key_as_string":"2017-02-07T19:05:00.000Z","key":1486494300000,"doc_count":10},{"key_as_string":"2017-02-07T19:06:00.000Z","key":1486494360000,"doc_count":15},{"key_as_string":"2017-02-07T19:07:00.000Z","key":1486494420000,"doc_count":14},{"key_as_string":"2017-02-07T19:08:00.000Z","key":1486494480000,"doc_count":7},{"key_as_string":"2017-02-07T19:09:00.000Z","key":1486494540000,"doc_count":14},{"key_as_string":"2017-02-07T19:10:00.000Z","key":1486494600000,"doc_count":8},{"key_as_string":"2017-02-07T19:11:00.000Z","key":1486494660000,"doc_count":11},{"key_as_string":"2017-02-07T19:12:00.000Z","key":1486494720000,"doc_count":10},{"key_as_string":"2017-02-07T19:13:00.000Z","key":1486494780000,"doc_count":11},{"key_as_string":"2017-02-07T19:14:00.000Z","key":1486494840000,"doc_count":13},{"key_as_string":"2017-02-07T19:15:00.000Z","key":1486494900000,"doc_count":16},{"key_as_string":"2017-02-07T19:16:00.000Z","key":1486494960000,"doc_count":5},{"key_as_string":"2017-02-07T19:17:00.000Z","key":1486495020000,"doc_count":14},{"key_as_string":"2017-02-07T19:18:00.000Z","key":1486495080000,"doc_count":13},{"key_as_string":"2017-02-07T19:19:00.000Z","key":1486495140000,"doc_count":10},{"key_as_string":"2017-02-07T19:20:00.000Z","key":1486495200000,"doc_count":13},{"key_as_string":"2017-02-07T19:21:00.000Z","key":1486495260000,"doc_count":10},{"key_as_string":"2017-02-07T19:22:00.000Z","key":1486495320000,"doc_count":12},{"key_as_string":"2017-02-07T19:23:00.000Z","key":1486495380000,"doc_count":13},{"key_as_string":"2017-02-07T19:24:00.000Z","key":1486495440000,"doc_count":10},{"key_as_string":"2017-02-07T19:25:00.000Z","key":1486495500000,"doc_count":10},{"key_as_string":"2017-02-07T19:26:00.000Z","key":1486495560000,"doc_count":11},{"key_as_string":"2017-02-07T19:27:00.000Z","key":1486495620000,"doc_count":9},{"key_as_string":"2017-02-07T19:28:00.000Z","key":1486495680000,"doc_count":10},{"key_as_string":"2017-02-07T19:29:00.000Z","key":1486495740000,"doc_count":14},{"key_as_string":"2017-02-07T19:30:00.000Z","key":1486495800000,"doc_count":14},{"key_as_string":"2017-02-07T19:31:00.000Z","key":1486495860000,"doc_count":12},{"key_as_string":"2017-02-07T19:32:00.000Z","key":1486495920000,"doc_count":6},{"key_as_string":"2017-02-07T19:33:00.000Z","key":1486495980000,"doc_count":11},{"key_as_string":"2017-02-07T19:34:00.000Z","key":1486496040000,"doc_count":12},{"key_as_string":"2017-02-07T19:35:00.000Z","key":1486496100000,"doc_count":9},{"key_as_string":"2017-02-07T19:36:00.000Z","key":1486496160000,"doc_count":11},{"key_as_string":"2017-02-07T19:37:00.000Z","key":1486496220000,"doc_count":14},{"key_as_string":"2017-02-07T19:38:00.000Z","key":1486496280000,"doc_count":9},{"key_as_string":"2017-02-07T19:39:00.000Z","key":1486496340000,"doc_count":10},{"key_as_string":"2017-02-07T19:40:00.000Z","key":1486496400000,"doc_count":10},{"key_as_string":"2017-02-07T19:41:00.000Z","key":1486496460000,"doc_count":9},{"key_as_string":"2017-02-07T19:42:00.000Z","key":1486496520000,"doc_count":12},{"key_as_string":"2017-02-07T19:43:00.000Z","key":1486496580000,"doc_count":10},{"key_as_string":"2017-02-07T19:44:00.000Z","key":1486496640000,"doc_count":10},{"key_as_string":"2017-02-07T19:45:00.000Z","key":1486496700000,"doc_count":14},{"key_as_string":"2017-02-07T19:46:00.000Z","key":1486496760000,"doc_count":7},{"key_as_string":"2017-02-07T19:47:00.000Z","key":1486496820000,"doc_count":14},{"key_as_string":"2017-02-07T19:48:00.000Z","key":1486496880000,"doc_count":12},{"key_as_string":"2017-02-07T19:49:00.000Z","key":1486496940000,"doc_count":8},{"key_as_string":"2017-02-07T19:50:00.000Z","key":1486497000000,"doc_count":14},{"key_as_string":"2017-02-07T19:51:00.000Z","key":1486497060000,"doc_count":7},{"key_as_string":"2017-02-07T19:52:00.000Z","key":1486497120000,"doc_count":14},{"key_as_string":"2017-02-07T19:53:00.000Z","key":1486497180000,"doc_count":10},{"key_as_string":"2017-02-07T19:54:00.000Z","key":1486497240000,"doc_count":9},{"key_as_string":"2017-02-07T19:55:00.000Z","key":1486497300000,"doc_count":13},{"key_as_string":"2017-02-07T19:56:00.000Z","key":1486497360000,"doc_count":6},{"key_as_string":"2017-02-07T19:57:00.000Z","key":1486497420000,"doc_count":7},{"key_as_string":"2017-02-07T19:58:00.000Z","key":1486497480000,"doc_count":13},{"key_as_string":"2017-02-07T19:59:00.000Z","key":1486497540000,"doc_count":14},{"key_as_string":"2017-02-07T20:00:00.000Z","key":1486497600000,"doc_count":9},{"key_as_string":"2017-02-07T20:01:00.000Z","key":1486497660000,"doc_count":12},{"key_as_string":"2017-02-07T20:02:00.000Z","key":1486497720000,"doc_count":9},{"key_as_string":"2017-02-07T20:03:00.000Z","key":1486497780000,"doc_count":11},{"key_as_string":"2017-02-07T20:04:00.000Z","key":1486497840000,"doc_count":12},{"key_as_string":"2017-02-07T20:05:00.000Z","key":1486497900000,"doc_count":15},{"key_as_string":"2017-02-07T20:06:00.000Z","key":1486497960000,"doc_count":8},{"key_as_string":"2017-02-07T20:07:00.000Z","key":1486498020000,"doc_count":3},{"key_as_string":"2017-02-07T20:08:00.000Z","key":1486498080000,"doc_count":12},{"key_as_string":"2017-02-07T20:09:00.000Z","key":1486498140000,"doc_count":12},{"key_as_string":"2017-02-07T20:10:00.000Z","key":1486498200000,"doc_count":10},{"key_as_string":"2017-02-07T20:11:00.000Z","key":1486498260000,"doc_count":16},{"key_as_string":"2017-02-07T20:12:00.000Z","key":1486498320000,"doc_count":12},{"key_as_string":"2017-02-07T20:13:00.000Z","key":1486498380000,"doc_count":6},{"key_as_string":"2017-02-07T20:14:00.000Z","key":1486498440000,"doc_count":12},{"key_as_string":"2017-02-07T20:15:00.000Z","key":1486498500000,"doc_count":7},{"key_as_string":"2017-02-07T20:16:00.000Z","key":1486498560000,"doc_count":12},{"key_as_string":"2017-02-07T20:17:00.000Z","key":1486498620000,"doc_count":9},{"key_as_string":"2017-02-07T20:18:00.000Z","key":1486498680000,"doc_count":13},{"key_as_string":"2017-02-07T20:19:00.000Z","key":1486498740000,"doc_count":11},{"key_as_string":"2017-02-07T20:20:00.000Z","key":1486498800000,"doc_count":8},{"key_as_string":"2017-02-07T20:21:00.000Z","key":1486498860000,"doc_count":11},{"key_as_string":"2017-02-07T20:22:00.000Z","key":1486498920000,"doc_count":7},{"key_as_string":"2017-02-07T20:23:00.000Z","key":1486498980000,"doc_count":11},{"key_as_string":"2017-02-07T20:24:00.000Z","key":1486499040000,"doc_count":11},{"key_as_string":"2017-02-07T20:25:00.000Z","key":1486499100000,"doc_count":7},{"key_as_string":"2017-02-07T20:26:00.000Z","key":1486499160000,"doc_count":11},{"key_as_string":"2017-02-07T20:27:00.000Z","key":1486499220000,"doc_count":12},{"key_as_string":"2017-02-07T20:28:00.000Z","key":1486499280000,"doc_count":13},{"key_as_string":"2017-02-07T20:29:00.000Z","key":1486499340000,"doc_count":11},{"key_as_string":"2017-02-07T20:30:00.000Z","key":1486499400000,"doc_count":6},{"key_as_string":"2017-02-07T20:31:00.000Z","key":1486499460000,"doc_count":12},{"key_as_string":"2017-02-07T20:32:00.000Z","key":1486499520000,"doc_count":9},{"key_as_string":"2017-02-07T20:33:00.000Z","key":1486499580000,"doc_count":13},{"key_as_string":"2017-02-07T20:34:00.000Z","key":1486499640000,"doc_count":11},{"key_as_string":"2017-02-07T20:35:00.000Z","key":1486499700000,"doc_count":16},{"key_as_string":"2017-02-07T20:36:00.000Z","key":1486499760000,"doc_count":9},{"key_as_string":"2017-02-07T20:37:00.000Z","key":1486499820000,"doc_count":7},{"key_as_string":"2017-02-07T20:38:00.000Z","key":1486499880000,"doc_count":14},{"key_as_string":"2017-02-07T20:39:00.000Z","key":1486499940000,"doc_count":10},{"key_as_string":"2017-02-07T20:40:00.000Z","key":1486500000000,"doc_count":9},{"key_as_string":"2017-02-07T20:41:00.000Z","key":1486500060000,"doc_count":11},{"key_as_string":"2017-02-07T20:42:00.000Z","key":1486500120000,"doc_count":15},{"key_as_string":"2017-02-07T20:43:00.000Z","key":1486500180000,"doc_count":8},{"key_as_string":"2017-02-07T20:44:00.000Z","key":1486500240000,"doc_count":16},{"key_as_string":"2017-02-07T20:45:00.000Z","key":1486500300000,"doc_count":8},{"key_as_string":"2017-02-07T20:46:00.000Z","key":1486500360000,"doc_count":12},{"key_as_string":"2017-02-07T20:47:00.000Z","key":1486500420000,"doc_count":11},{"key_as_string":"2017-02-07T20:48:00.000Z","key":1486500480000,"doc_count":6},{"key_as_string":"2017-02-07T20:49:00.000Z","key":1486500540000,"doc_count":10},{"key_as_string":"2017-02-07T20:50:00.000Z","key":1486500600000,"doc_count":8},{"key_as_string":"2017-02-07T20:51:00.000Z","key":1486500660000,"doc_count":15},{"key_as_string":"2017-02-07T20:52:00.000Z","key":1486500720000,"doc_count":9},{"key_as_string":"2017-02-07T20:53:00.000Z","key":1486500780000,"doc_count":11},{"key_as_string":"2017-02-07T20:54:00.000Z","key":1486500840000,"doc_count":13},{"key_as_string":"2017-02-07T20:55:00.000Z","key":1486500900000,"doc_count":9},{"key_as_string":"2017-02-07T20:56:00.000Z","key":1486500960000,"doc_count":5},{"key_as_string":"2017-02-07T20:57:00.000Z","key":1486501020000,"doc_count":10},{"key_as_string":"2017-02-07T20:58:00.000Z","key":1486501080000,"doc_count":13},{"key_as_string":"2017-02-07T20:59:00.000Z","key":1486501140000,"doc_count":14},{"key_as_string":"2017-02-07T21:00:00.000Z","key":1486501200000,"doc_count":13},{"key_as_string":"2017-02-07T21:01:00.000Z","key":1486501260000,"doc_count":8},{"key_as_string":"2017-02-07T21:02:00.000Z","key":1486501320000,"doc_count":11},{"key_as_string":"2017-02-07T21:03:00.000Z","key":1486501380000,"doc_count":9},{"key_as_string":"2017-02-07T21:04:00.000Z","key":1486501440000,"doc_count":16},{"key_as_string":"2017-02-07T21:05:00.000Z","key":1486501500000,"doc_count":10},{"key_as_string":"2017-02-07T21:06:00.000Z","key":1486501560000,"doc_count":8},{"key_as_string":"2017-02-07T21:07:00.000Z","key":1486501620000,"doc_count":16},{"key_as_string":"2017-02-07T21:08:00.000Z","key":1486501680000,"doc_count":13},{"key_as_string":"2017-02-07T21:09:00.000Z","key":1486501740000,"doc_count":10},{"key_as_string":"2017-02-07T21:10:00.000Z","key":1486501800000,"doc_count":11},{"key_as_string":"2017-02-07T21:11:00.000Z","key":1486501860000,"doc_count":8},{"key_as_string":"2017-02-07T21:12:00.000Z","key":1486501920000,"doc_count":12},{"key_as_string":"2017-02-07T21:13:00.000Z","key":1486501980000,"doc_count":17},{"key_as_string":"2017-02-07T21:14:00.000Z","key":1486502040000,"doc_count":6},{"key_as_string":"2017-02-07T21:15:00.000Z","key":1486502100000,"doc_count":12},{"key_as_string":"2017-02-07T21:16:00.000Z","key":1486502160000,"doc_count":9},{"key_as_string":"2017-02-07T21:17:00.000Z","key":1486502220000,"doc_count":8},{"key_as_string":"2017-02-07T21:18:00.000Z","key":1486502280000,"doc_count":8},{"key_as_string":"2017-02-07T21:19:00.000Z","key":1486502340000,"doc_count":11},{"key_as_string":"2017-02-07T21:20:00.000Z","key":1486502400000,"doc_count":11},{"key_as_string":"2017-02-07T21:21:00.000Z","key":1486502460000,"doc_count":10},{"key_as_string":"2017-02-07T21:22:00.000Z","key":1486502520000,"doc_count":10},{"key_as_string":"2017-02-07T21:23:00.000Z","key":1486502580000,"doc_count":13},{"key_as_string":"2017-02-07T21:24:00.000Z","key":1486502640000,"doc_count":10},{"key_as_string":"2017-02-07T21:25:00.000Z","key":1486502700000,"doc_count":11},{"key_as_string":"2017-02-07T21:26:00.000Z","key":1486502760000,"doc_count":7},{"key_as_string":"2017-02-07T21:27:00.000Z","key":1486502820000,"doc_count":15},{"key_as_string":"2017-02-07T21:28:00.000Z","key":1486502880000,"doc_count":14},{"key_as_string":"2017-02-07T21:29:00.000Z","key":1486502940000,"doc_count":8},{"key_as_string":"2017-02-07T21:30:00.000Z","key":1486503000000,"doc_count":7},{"key_as_string":"2017-02-07T21:31:00.000Z","key":1486503060000,"doc_count":12},{"key_as_string":"2017-02-07T21:32:00.000Z","key":1486503120000,"doc_count":10},{"key_as_string":"2017-02-07T21:33:00.000Z","key":1486503180000,"doc_count":10},{"key_as_string":"2017-02-07T21:34:00.000Z","key":1486503240000,"doc_count":14},{"key_as_string":"2017-02-07T21:35:00.000Z","key":1486503300000,"doc_count":9},{"key_as_string":"2017-02-07T21:36:00.000Z","key":1486503360000,"doc_count":9},{"key_as_string":"2017-02-07T21:37:00.000Z","key":1486503420000,"doc_count":13},{"key_as_string":"2017-02-07T21:38:00.000Z","key":1486503480000,"doc_count":7},{"key_as_string":"2017-02-07T21:39:00.000Z","key":1486503540000,"doc_count":6},{"key_as_string":"2017-02-07T21:40:00.000Z","key":1486503600000,"doc_count":16},{"key_as_string":"2017-02-07T21:41:00.000Z","key":1486503660000,"doc_count":13},{"key_as_string":"2017-02-07T21:42:00.000Z","key":1486503720000,"doc_count":9},{"key_as_string":"2017-02-07T21:43:00.000Z","key":1486503780000,"doc_count":10},{"key_as_string":"2017-02-07T21:44:00.000Z","key":1486503840000,"doc_count":9},{"key_as_string":"2017-02-07T21:45:00.000Z","key":1486503900000,"doc_count":10},{"key_as_string":"2017-02-07T21:46:00.000Z","key":1486503960000,"doc_count":13},{"key_as_string":"2017-02-07T21:47:00.000Z","key":1486504020000,"doc_count":11},{"key_as_string":"2017-02-07T21:48:00.000Z","key":1486504080000,"doc_count":8},{"key_as_string":"2017-02-07T21:49:00.000Z","key":1486504140000,"doc_count":11},{"key_as_string":"2017-02-07T21:50:00.000Z","key":1486504200000,"doc_count":14},{"key_as_string":"2017-02-07T21:51:00.000Z","key":1486504260000,"doc_count":7},{"key_as_string":"2017-02-07T21:52:00.000Z","key":1486504320000,"doc_count":11},{"key_as_string":"2017-02-07T21:53:00.000Z","key":1486504380000,"doc_count":9},{"key_as_string":"2017-02-07T21:54:00.000Z","key":1486504440000,"doc_count":10},{"key_as_string":"2017-02-07T21:55:00.000Z","key":1486504500000,"doc_count":11},{"key_as_string":"2017-02-07T21:56:00.000Z","key":1486504560000,"doc_count":12},{"key_as_string":"2017-02-07T21:57:00.000Z","key":1486504620000,"doc_count":14},{"key_as_string":"2017-02-07T21:58:00.000Z","key":1486504680000,"doc_count":9},{"key_as_string":"2017-02-07T21:59:00.000Z","key":1486504740000,"doc_count":7},{"key_as_string":"2017-02-07T22:00:00.000Z","key":1486504800000,"doc_count":14},{"key_as_string":"2017-02-07T22:01:00.000Z","key":1486504860000,"doc_count":12},{"key_as_string":"2017-02-07T22:02:00.000Z","key":1486504920000,"doc_count":7},{"key_as_string":"2017-02-07T22:03:00.000Z","key":1486504980000,"doc_count":16},{"key_as_string":"2017-02-07T22:04:00.000Z","key":1486505040000,"doc_count":9},{"key_as_string":"2017-02-07T22:05:00.000Z","key":1486505100000,"doc_count":10},{"key_as_string":"2017-02-07T22:06:00.000Z","key":1486505160000,"doc_count":11},{"key_as_string":"2017-02-07T22:07:00.000Z","key":1486505220000,"doc_count":16},{"key_as_string":"2017-02-07T22:08:00.000Z","key":1486505280000,"doc_count":9},{"key_as_string":"2017-02-07T22:09:00.000Z","key":1486505340000,"doc_count":7},{"key_as_string":"2017-02-07T22:10:00.000Z","key":1486505400000,"doc_count":15},{"key_as_string":"2017-02-07T22:11:00.000Z","key":1486505460000,"doc_count":12},{"key_as_string":"2017-02-07T22:12:00.000Z","key":1486505520000,"doc_count":8},{"key_as_string":"2017-02-07T22:13:00.000Z","key":1486505580000,"doc_count":12},{"key_as_string":"2017-02-07T22:14:00.000Z","key":1486505640000,"doc_count":15},{"key_as_string":"2017-02-07T22:15:00.000Z","key":1486505700000,"doc_count":10},{"key_as_string":"2017-02-07T22:16:00.000Z","key":1486505760000,"doc_count":11},{"key_as_string":"2017-02-07T22:17:00.000Z","key":1486505820000,"doc_count":6},{"key_as_string":"2017-02-07T22:18:00.000Z","key":1486505880000,"doc_count":13},{"key_as_string":"2017-02-07T22:19:00.000Z","key":1486505940000,"doc_count":8},{"key_as_string":"2017-02-07T22:20:00.000Z","key":1486506000000,"doc_count":5},{"key_as_string":"2017-02-07T22:21:00.000Z","key":1486506060000,"doc_count":15},{"key_as_string":"2017-02-07T22:22:00.000Z","key":1486506120000,"doc_count":10},{"key_as_string":"2017-02-07T22:23:00.000Z","key":1486506180000,"doc_count":10},{"key_as_string":"2017-02-07T22:24:00.000Z","key":1486506240000,"doc_count":14},{"key_as_string":"2017-02-07T22:25:00.000Z","key":1486506300000,"doc_count":8},{"key_as_string":"2017-02-07T22:26:00.000Z","key":1486506360000,"doc_count":12},{"key_as_string":"2017-02-07T22:27:00.000Z","key":1486506420000,"doc_count":6},{"key_as_string":"2017-02-07T22:28:00.000Z","key":1486506480000,"doc_count":12},{"key_as_string":"2017-02-07T22:29:00.000Z","key":1486506540000,"doc_count":14},{"key_as_string":"2017-02-07T22:30:00.000Z","key":1486506600000,"doc_count":8},{"key_as_string":"2017-02-07T22:31:00.000Z","key":1486506660000,"doc_count":10},{"key_as_string":"2017-02-07T22:32:00.000Z","key":1486506720000,"doc_count":15},{"key_as_string":"2017-02-07T22:33:00.000Z","key":1486506780000,"doc_count":9},{"key_as_string":"2017-02-07T22:34:00.000Z","key":1486506840000,"doc_count":7},{"key_as_string":"2017-02-07T22:35:00.000Z","key":1486506900000,"doc_count":12},{"key_as_string":"2017-02-07T22:36:00.000Z","key":1486506960000,"doc_count":9},{"key_as_string":"2017-02-07T22:37:00.000Z","key":1486507020000,"doc_count":15},{"key_as_string":"2017-02-07T22:38:00.000Z","key":1486507080000,"doc_count":6},{"key_as_string":"2017-02-07T22:39:00.000Z","key":1486507140000,"doc_count":12},{"key_as_string":"2017-02-07T22:40:00.000Z","key":1486507200000,"doc_count":13},{"key_as_string":"2017-02-07T22:41:00.000Z","key":1486507260000,"doc_count":8},{"key_as_string":"2017-02-07T22:42:00.000Z","key":1486507320000,"doc_count":13},{"key_as_string":"2017-02-07T22:43:00.000Z","key":1486507380000,"doc_count":7},{"key_as_string":"2017-02-07T22:44:00.000Z","key":1486507440000,"doc_count":10},{"key_as_string":"2017-02-07T22:45:00.000Z","key":1486507500000,"doc_count":7},{"key_as_string":"2017-02-07T22:46:00.000Z","key":1486507560000,"doc_count":9},{"key_as_string":"2017-02-07T22:47:00.000Z","key":1486507620000,"doc_count":12},{"key_as_string":"2017-02-07T22:48:00.000Z","key":1486507680000,"doc_count":9},{"key_as_string":"2017-02-07T22:49:00.000Z","key":1486507740000,"doc_count":6},{"key_as_string":"2017-02-07T22:50:00.000Z","key":1486507800000,"doc_count":12},{"key_as_string":"2017-02-07T22:51:00.000Z","key":1486507860000,"doc_count":12},{"key_as_string":"2017-02-07T22:52:00.000Z","key":1486507920000,"doc_count":9},{"key_as_string":"2017-02-07T22:53:00.000Z","key":1486507980000,"doc_count":10},{"key_as_string":"2017-02-07T22:54:00.000Z","key":1486508040000,"doc_count":12},{"key_as_string":"2017-02-07T22:55:00.000Z","key":1486508100000,"doc_count":8},{"key_as_string":"2017-02-07T22:56:00.000Z","key":1486508160000,"doc_count":9},{"key_as_string":"2017-02-07T22:57:00.000Z","key":1486508220000,"doc_count":10},{"key_as_string":"2017-02-07T22:58:00.000Z","key":1486508280000,"doc_count":13},{"key_as_string":"2017-02-07T22:59:00.000Z","key":1486508340000,"doc_count":12},{"key_as_string":"2017-02-07T23:00:00.000Z","key":1486508400000,"doc_count":9},{"key_as_string":"2017-02-07T23:01:00.000Z","key":1486508460000,"doc_count":9},{"key_as_string":"2017-02-07T23:02:00.000Z","key":1486508520000,"doc_count":10},{"key_as_string":"2017-02-07T23:03:00.000Z","key":1486508580000,"doc_count":14},{"key_as_string":"2017-02-07T23:04:00.000Z","key":1486508640000,"doc_count":9},{"key_as_string":"2017-02-07T23:05:00.000Z","key":1486508700000,"doc_count":11},{"key_as_string":"2017-02-07T23:06:00.000Z","key":1486508760000,"doc_count":10},{"key_as_string":"2017-02-07T23:07:00.000Z","key":1486508820000,"doc_count":16},{"key_as_string":"2017-02-07T23:08:00.000Z","key":1486508880000,"doc_count":12},{"key_as_string":"2017-02-07T23:09:00.000Z","key":1486508940000,"doc_count":11},{"key_as_string":"2017-02-07T23:10:00.000Z","key":1486509000000,"doc_count":9},{"key_as_string":"2017-02-07T23:11:00.000Z","key":1486509060000,"doc_count":13},{"key_as_string":"2017-02-07T23:12:00.000Z","key":1486509120000,"doc_count":5},{"key_as_string":"2017-02-07T23:13:00.000Z","key":1486509180000,"doc_count":9},{"key_as_string":"2017-02-07T23:14:00.000Z","key":1486509240000,"doc_count":11},{"key_as_string":"2017-02-07T23:15:00.000Z","key":1486509300000,"doc_count":14},{"key_as_string":"2017-02-07T23:16:00.000Z","key":1486509360000,"doc_count":11},{"key_as_string":"2017-02-07T23:17:00.000Z","key":1486509420000,"doc_count":8},{"key_as_string":"2017-02-07T23:18:00.000Z","key":1486509480000,"doc_count":12},{"key_as_string":"2017-02-07T23:19:00.000Z","key":1486509540000,"doc_count":8},{"key_as_string":"2017-02-07T23:20:00.000Z","key":1486509600000,"doc_count":7},{"key_as_string":"2017-02-07T23:21:00.000Z","key":1486509660000,"doc_count":13},{"key_as_string":"2017-02-07T23:22:00.000Z","key":1486509720000,"doc_count":13},{"key_as_string":"2017-02-07T23:23:00.000Z","key":1486509780000,"doc_count":5},{"key_as_string":"2017-02-07T23:24:00.000Z","key":1486509840000,"doc_count":13},{"key_as_string":"2017-02-07T23:25:00.000Z","key":1486509900000,"doc_count":5},{"key_as_string":"2017-02-07T23:26:00.000Z","key":1486509960000,"doc_count":11},{"key_as_string":"2017-02-07T23:27:00.000Z","key":1486510020000,"doc_count":11},{"key_as_string":"2017-02-07T23:28:00.000Z","key":1486510080000,"doc_count":12},{"key_as_string":"2017-02-07T23:29:00.000Z","key":1486510140000,"doc_count":5},{"key_as_string":"2017-02-07T23:30:00.000Z","key":1486510200000,"doc_count":11},{"key_as_string":"2017-02-07T23:31:00.000Z","key":1486510260000,"doc_count":6},{"key_as_string":"2017-02-07T23:32:00.000Z","key":1486510320000,"doc_count":15},{"key_as_string":"2017-02-07T23:33:00.000Z","key":1486510380000,"doc_count":13},{"key_as_string":"2017-02-07T23:34:00.000Z","key":1486510440000,"doc_count":15},{"key_as_string":"2017-02-07T23:35:00.000Z","key":1486510500000,"doc_count":8},{"key_as_string":"2017-02-07T23:36:00.000Z","key":1486510560000,"doc_count":11},{"key_as_string":"2017-02-07T23:37:00.000Z","key":1486510620000,"doc_count":15},{"key_as_string":"2017-02-07T23:38:00.000Z","key":1486510680000,"doc_count":7},{"key_as_string":"2017-02-07T23:39:00.000Z","key":1486510740000,"doc_count":11},{"key_as_string":"2017-02-07T23:40:00.000Z","key":1486510800000,"doc_count":7},{"key_as_string":"2017-02-07T23:41:00.000Z","key":1486510860000,"doc_count":9},{"key_as_string":"2017-02-07T23:42:00.000Z","key":1486510920000,"doc_count":11},{"key_as_string":"2017-02-07T23:43:00.000Z","key":1486510980000,"doc_count":12},{"key_as_string":"2017-02-07T23:44:00.000Z","key":1486511040000,"doc_count":19},{"key_as_string":"2017-02-07T23:45:00.000Z","key":1486511100000,"doc_count":6},{"key_as_string":"2017-02-07T23:46:00.000Z","key":1486511160000,"doc_count":12},{"key_as_string":"2017-02-07T23:47:00.000Z","key":1486511220000,"doc_count":7},{"key_as_string":"2017-02-07T23:48:00.000Z","key":1486511280000,"doc_count":19},{"key_as_string":"2017-02-07T23:49:00.000Z","key":1486511340000,"doc_count":4},{"key_as_string":"2017-02-07T23:50:00.000Z","key":1486511400000,"doc_count":15},{"key_as_string":"2017-02-07T23:51:00.000Z","key":1486511460000,"doc_count":9},{"key_as_string":"2017-02-07T23:52:00.000Z","key":1486511520000,"doc_count":7},{"key_as_string":"2017-02-07T23:53:00.000Z","key":1486511580000,"doc_count":11},{"key_as_string":"2017-02-07T23:54:00.000Z","key":1486511640000,"doc_count":11},{"key_as_string":"2017-02-07T23:55:00.000Z","key":1486511700000,"doc_count":10},{"key_as_string":"2017-02-07T23:56:00.000Z","key":1486511760000,"doc_count":7},{"key_as_string":"2017-02-07T23:57:00.000Z","key":1486511820000,"doc_count":16},{"key_as_string":"2017-02-07T23:58:00.000Z","key":1486511880000,"doc_count":9},{"key_as_string":"2017-02-07T23:59:00.000Z","key":1486511940000,"doc_count":13},{"key_as_string":"2017-02-08T00:00:00.000Z","key":1486512000000,"doc_count":11},{"key_as_string":"2017-02-08T00:01:00.000Z","key":1486512060000,"doc_count":8},{"key_as_string":"2017-02-08T00:02:00.000Z","key":1486512120000,"doc_count":11},{"key_as_string":"2017-02-08T00:03:00.000Z","key":1486512180000,"doc_count":11},{"key_as_string":"2017-02-08T00:04:00.000Z","key":1486512240000,"doc_count":10},{"key_as_string":"2017-02-08T00:05:00.000Z","key":1486512300000,"doc_count":11},{"key_as_string":"2017-02-08T00:06:00.000Z","key":1486512360000,"doc_count":9},{"key_as_string":"2017-02-08T00:07:00.000Z","key":1486512420000,"doc_count":10},{"key_as_string":"2017-02-08T00:08:00.000Z","key":1486512480000,"doc_count":9},{"key_as_string":"2017-02-08T00:09:00.000Z","key":1486512540000,"doc_count":12},{"key_as_string":"2017-02-08T00:10:00.000Z","key":1486512600000,"doc_count":7},{"key_as_string":"2017-02-08T00:11:00.000Z","key":1486512660000,"doc_count":14},{"key_as_string":"2017-02-08T00:12:00.000Z","key":1486512720000,"doc_count":10},{"key_as_string":"2017-02-08T00:13:00.000Z","key":1486512780000,"doc_count":8},{"key_as_string":"2017-02-08T00:14:00.000Z","key":1486512840000,"doc_count":7},{"key_as_string":"2017-02-08T00:15:00.000Z","key":1486512900000,"doc_count":10},{"key_as_string":"2017-02-08T00:16:00.000Z","key":1486512960000,"doc_count":12},{"key_as_string":"2017-02-08T00:17:00.000Z","key":1486513020000,"doc_count":13},{"key_as_string":"2017-02-08T00:18:00.000Z","key":1486513080000,"doc_count":7},{"key_as_string":"2017-02-08T00:19:00.000Z","key":1486513140000,"doc_count":7},{"key_as_string":"2017-02-08T00:20:00.000Z","key":1486513200000,"doc_count":7},{"key_as_string":"2017-02-08T00:21:00.000Z","key":1486513260000,"doc_count":9},{"key_as_string":"2017-02-08T00:22:00.000Z","key":1486513320000,"doc_count":13},{"key_as_string":"2017-02-08T00:23:00.000Z","key":1486513380000,"doc_count":10},{"key_as_string":"2017-02-08T00:24:00.000Z","key":1486513440000,"doc_count":8},{"key_as_string":"2017-02-08T00:25:00.000Z","key":1486513500000,"doc_count":13},{"key_as_string":"2017-02-08T00:26:00.000Z","key":1486513560000,"doc_count":10},{"key_as_string":"2017-02-08T00:27:00.000Z","key":1486513620000,"doc_count":8},{"key_as_string":"2017-02-08T00:28:00.000Z","key":1486513680000,"doc_count":15},{"key_as_string":"2017-02-08T00:29:00.000Z","key":1486513740000,"doc_count":7},{"key_as_string":"2017-02-08T00:30:00.000Z","key":1486513800000,"doc_count":9},{"key_as_string":"2017-02-08T00:31:00.000Z","key":1486513860000,"doc_count":13},{"key_as_string":"2017-02-08T00:32:00.000Z","key":1486513920000,"doc_count":8},{"key_as_string":"2017-02-08T00:33:00.000Z","key":1486513980000,"doc_count":12},{"key_as_string":"2017-02-08T00:34:00.000Z","key":1486514040000,"doc_count":13},{"key_as_string":"2017-02-08T00:35:00.000Z","key":1486514100000,"doc_count":9},{"key_as_string":"2017-02-08T00:36:00.000Z","key":1486514160000,"doc_count":12},{"key_as_string":"2017-02-08T00:37:00.000Z","key":1486514220000,"doc_count":9},{"key_as_string":"2017-02-08T00:38:00.000Z","key":1486514280000,"doc_count":9},{"key_as_string":"2017-02-08T00:39:00.000Z","key":1486514340000,"doc_count":16},{"key_as_string":"2017-02-08T00:40:00.000Z","key":1486514400000,"doc_count":10},{"key_as_string":"2017-02-08T00:41:00.000Z","key":1486514460000,"doc_count":13},{"key_as_string":"2017-02-08T00:42:00.000Z","key":1486514520000,"doc_count":6},{"key_as_string":"2017-02-08T00:43:00.000Z","key":1486514580000,"doc_count":16},{"key_as_string":"2017-02-08T00:44:00.000Z","key":1486514640000,"doc_count":16},{"key_as_string":"2017-02-08T00:45:00.000Z","key":1486514700000,"doc_count":6},{"key_as_string":"2017-02-08T00:46:00.000Z","key":1486514760000,"doc_count":11},{"key_as_string":"2017-02-08T00:47:00.000Z","key":1486514820000,"doc_count":11},{"key_as_string":"2017-02-08T00:48:00.000Z","key":1486514880000,"doc_count":9},{"key_as_string":"2017-02-08T00:49:00.000Z","key":1486514940000,"doc_count":11},{"key_as_string":"2017-02-08T00:50:00.000Z","key":1486515000000,"doc_count":9},{"key_as_string":"2017-02-08T00:51:00.000Z","key":1486515060000,"doc_count":12},{"key_as_string":"2017-02-08T00:52:00.000Z","key":1486515120000,"doc_count":10},{"key_as_string":"2017-02-08T00:53:00.000Z","key":1486515180000,"doc_count":13},{"key_as_string":"2017-02-08T00:54:00.000Z","key":1486515240000,"doc_count":9},{"key_as_string":"2017-02-08T00:55:00.000Z","key":1486515300000,"doc_count":15},{"key_as_string":"2017-02-08T00:56:00.000Z","key":1486515360000,"doc_count":11},{"key_as_string":"2017-02-08T00:57:00.000Z","key":1486515420000,"doc_count":12},{"key_as_string":"2017-02-08T00:58:00.000Z","key":1486515480000,"doc_count":17},{"key_as_string":"2017-02-08T00:59:00.000Z","key":1486515540000,"doc_count":11},{"key_as_string":"2017-02-08T01:00:00.000Z","key":1486515600000,"doc_count":14},{"key_as_string":"2017-02-08T01:01:00.000Z","key":1486515660000,"doc_count":12},{"key_as_string":"2017-02-08T01:02:00.000Z","key":1486515720000,"doc_count":8},{"key_as_string":"2017-02-08T01:03:00.000Z","key":1486515780000,"doc_count":12},{"key_as_string":"2017-02-08T01:04:00.000Z","key":1486515840000,"doc_count":8},{"key_as_string":"2017-02-08T01:05:00.000Z","key":1486515900000,"doc_count":13},{"key_as_string":"2017-02-08T01:06:00.000Z","key":1486515960000,"doc_count":9},{"key_as_string":"2017-02-08T01:07:00.000Z","key":1486516020000,"doc_count":7},{"key_as_string":"2017-02-08T01:08:00.000Z","key":1486516080000,"doc_count":14},{"key_as_string":"2017-02-08T01:09:00.000Z","key":1486516140000,"doc_count":9},{"key_as_string":"2017-02-08T01:10:00.000Z","key":1486516200000,"doc_count":10},{"key_as_string":"2017-02-08T01:11:00.000Z","key":1486516260000,"doc_count":12},{"key_as_string":"2017-02-08T01:12:00.000Z","key":1486516320000,"doc_count":8},{"key_as_string":"2017-02-08T01:13:00.000Z","key":1486516380000,"doc_count":9},{"key_as_string":"2017-02-08T01:14:00.000Z","key":1486516440000,"doc_count":11},{"key_as_string":"2017-02-08T01:15:00.000Z","key":1486516500000,"doc_count":10},{"key_as_string":"2017-02-08T01:16:00.000Z","key":1486516560000,"doc_count":16},{"key_as_string":"2017-02-08T01:17:00.000Z","key":1486516620000,"doc_count":12},{"key_as_string":"2017-02-08T01:18:00.000Z","key":1486516680000,"doc_count":7},{"key_as_string":"2017-02-08T01:19:00.000Z","key":1486516740000,"doc_count":7},{"key_as_string":"2017-02-08T01:20:00.000Z","key":1486516800000,"doc_count":12},{"key_as_string":"2017-02-08T01:21:00.000Z","key":1486516860000,"doc_count":10},{"key_as_string":"2017-02-08T01:22:00.000Z","key":1486516920000,"doc_count":15},{"key_as_string":"2017-02-08T01:23:00.000Z","key":1486516980000,"doc_count":9},{"key_as_string":"2017-02-08T01:24:00.000Z","key":1486517040000,"doc_count":15},{"key_as_string":"2017-02-08T01:25:00.000Z","key":1486517100000,"doc_count":9},{"key_as_string":"2017-02-08T01:26:00.000Z","key":1486517160000,"doc_count":15},{"key_as_string":"2017-02-08T01:27:00.000Z","key":1486517220000,"doc_count":11},{"key_as_string":"2017-02-08T01:28:00.000Z","key":1486517280000,"doc_count":15},{"key_as_string":"2017-02-08T01:29:00.000Z","key":1486517340000,"doc_count":17},{"key_as_string":"2017-02-08T01:30:00.000Z","key":1486517400000,"doc_count":5},{"key_as_string":"2017-02-08T01:31:00.000Z","key":1486517460000,"doc_count":10},{"key_as_string":"2017-02-08T01:32:00.000Z","key":1486517520000,"doc_count":9},{"key_as_string":"2017-02-08T01:33:00.000Z","key":1486517580000,"doc_count":13},{"key_as_string":"2017-02-08T01:34:00.000Z","key":1486517640000,"doc_count":17},{"key_as_string":"2017-02-08T01:35:00.000Z","key":1486517700000,"doc_count":8},{"key_as_string":"2017-02-08T01:36:00.000Z","key":1486517760000,"doc_count":7},{"key_as_string":"2017-02-08T01:37:00.000Z","key":1486517820000,"doc_count":14},{"key_as_string":"2017-02-08T01:38:00.000Z","key":1486517880000,"doc_count":11},{"key_as_string":"2017-02-08T01:39:00.000Z","key":1486517940000,"doc_count":4},{"key_as_string":"2017-02-08T01:40:00.000Z","key":1486518000000,"doc_count":13},{"key_as_string":"2017-02-08T01:41:00.000Z","key":1486518060000,"doc_count":13},{"key_as_string":"2017-02-08T01:42:00.000Z","key":1486518120000,"doc_count":6},{"key_as_string":"2017-02-08T01:43:00.000Z","key":1486518180000,"doc_count":12},{"key_as_string":"2017-02-08T01:44:00.000Z","key":1486518240000,"doc_count":13},{"key_as_string":"2017-02-08T01:45:00.000Z","key":1486518300000,"doc_count":9},{"key_as_string":"2017-02-08T01:46:00.000Z","key":1486518360000,"doc_count":15},{"key_as_string":"2017-02-08T01:47:00.000Z","key":1486518420000,"doc_count":14},{"key_as_string":"2017-02-08T01:48:00.000Z","key":1486518480000,"doc_count":7},{"key_as_string":"2017-02-08T01:49:00.000Z","key":1486518540000,"doc_count":15},{"key_as_string":"2017-02-08T01:50:00.000Z","key":1486518600000,"doc_count":10},{"key_as_string":"2017-02-08T01:51:00.000Z","key":1486518660000,"doc_count":9},{"key_as_string":"2017-02-08T01:52:00.000Z","key":1486518720000,"doc_count":7},{"key_as_string":"2017-02-08T01:53:00.000Z","key":1486518780000,"doc_count":14},{"key_as_string":"2017-02-08T01:54:00.000Z","key":1486518840000,"doc_count":10},{"key_as_string":"2017-02-08T01:55:00.000Z","key":1486518900000,"doc_count":9},{"key_as_string":"2017-02-08T01:56:00.000Z","key":1486518960000,"doc_count":11},{"key_as_string":"2017-02-08T01:57:00.000Z","key":1486519020000,"doc_count":7},{"key_as_string":"2017-02-08T01:58:00.000Z","key":1486519080000,"doc_count":12},{"key_as_string":"2017-02-08T01:59:00.000Z","key":1486519140000,"doc_count":7},{"key_as_string":"2017-02-08T02:00:00.000Z","key":1486519200000,"doc_count":16},{"key_as_string":"2017-02-08T02:01:00.000Z","key":1486519260000,"doc_count":8},{"key_as_string":"2017-02-08T02:02:00.000Z","key":1486519320000,"doc_count":5},{"key_as_string":"2017-02-08T02:03:00.000Z","key":1486519380000,"doc_count":12},{"key_as_string":"2017-02-08T02:04:00.000Z","key":1486519440000,"doc_count":11},{"key_as_string":"2017-02-08T02:05:00.000Z","key":1486519500000,"doc_count":12},{"key_as_string":"2017-02-08T02:06:00.000Z","key":1486519560000,"doc_count":12},{"key_as_string":"2017-02-08T02:07:00.000Z","key":1486519620000,"doc_count":9},{"key_as_string":"2017-02-08T02:08:00.000Z","key":1486519680000,"doc_count":11},{"key_as_string":"2017-02-08T02:09:00.000Z","key":1486519740000,"doc_count":16},{"key_as_string":"2017-02-08T02:10:00.000Z","key":1486519800000,"doc_count":9},{"key_as_string":"2017-02-08T02:11:00.000Z","key":1486519860000,"doc_count":8},{"key_as_string":"2017-02-08T02:12:00.000Z","key":1486519920000,"doc_count":9},{"key_as_string":"2017-02-08T02:13:00.000Z","key":1486519980000,"doc_count":8},{"key_as_string":"2017-02-08T02:14:00.000Z","key":1486520040000,"doc_count":12},{"key_as_string":"2017-02-08T02:15:00.000Z","key":1486520100000,"doc_count":8},{"key_as_string":"2017-02-08T02:16:00.000Z","key":1486520160000,"doc_count":9},{"key_as_string":"2017-02-08T02:17:00.000Z","key":1486520220000,"doc_count":11},{"key_as_string":"2017-02-08T02:18:00.000Z","key":1486520280000,"doc_count":8},{"key_as_string":"2017-02-08T02:19:00.000Z","key":1486520340000,"doc_count":9},{"key_as_string":"2017-02-08T02:20:00.000Z","key":1486520400000,"doc_count":7},{"key_as_string":"2017-02-08T02:21:00.000Z","key":1486520460000,"doc_count":15},{"key_as_string":"2017-02-08T02:22:00.000Z","key":1486520520000,"doc_count":6},{"key_as_string":"2017-02-08T02:23:00.000Z","key":1486520580000,"doc_count":11},{"key_as_string":"2017-02-08T02:24:00.000Z","key":1486520640000,"doc_count":14},{"key_as_string":"2017-02-08T02:25:00.000Z","key":1486520700000,"doc_count":8},{"key_as_string":"2017-02-08T02:26:00.000Z","key":1486520760000,"doc_count":11},{"key_as_string":"2017-02-08T02:27:00.000Z","key":1486520820000,"doc_count":15},{"key_as_string":"2017-02-08T02:28:00.000Z","key":1486520880000,"doc_count":6},{"key_as_string":"2017-02-08T02:29:00.000Z","key":1486520940000,"doc_count":5},{"key_as_string":"2017-02-08T02:30:00.000Z","key":1486521000000,"doc_count":18},{"key_as_string":"2017-02-08T02:31:00.000Z","key":1486521060000,"doc_count":7},{"key_as_string":"2017-02-08T02:32:00.000Z","key":1486521120000,"doc_count":6},{"key_as_string":"2017-02-08T02:33:00.000Z","key":1486521180000,"doc_count":15},{"key_as_string":"2017-02-08T02:34:00.000Z","key":1486521240000,"doc_count":11},{"key_as_string":"2017-02-08T02:35:00.000Z","key":1486521300000,"doc_count":13},{"key_as_string":"2017-02-08T02:36:00.000Z","key":1486521360000,"doc_count":12},{"key_as_string":"2017-02-08T02:37:00.000Z","key":1486521420000,"doc_count":9},{"key_as_string":"2017-02-08T02:38:00.000Z","key":1486521480000,"doc_count":14},{"key_as_string":"2017-02-08T02:39:00.000Z","key":1486521540000,"doc_count":9},{"key_as_string":"2017-02-08T02:40:00.000Z","key":1486521600000,"doc_count":12},{"key_as_string":"2017-02-08T02:41:00.000Z","key":1486521660000,"doc_count":10},{"key_as_string":"2017-02-08T02:42:00.000Z","key":1486521720000,"doc_count":12},{"key_as_string":"2017-02-08T02:43:00.000Z","key":1486521780000,"doc_count":8},{"key_as_string":"2017-02-08T02:44:00.000Z","key":1486521840000,"doc_count":15},{"key_as_string":"2017-02-08T02:45:00.000Z","key":1486521900000,"doc_count":6},{"key_as_string":"2017-02-08T02:46:00.000Z","key":1486521960000,"doc_count":12},{"key_as_string":"2017-02-08T02:47:00.000Z","key":1486522020000,"doc_count":10},{"key_as_string":"2017-02-08T02:48:00.000Z","key":1486522080000,"doc_count":13},{"key_as_string":"2017-02-08T02:49:00.000Z","key":1486522140000,"doc_count":14},{"key_as_string":"2017-02-08T02:50:00.000Z","key":1486522200000,"doc_count":8},{"key_as_string":"2017-02-08T02:51:00.000Z","key":1486522260000,"doc_count":12},{"key_as_string":"2017-02-08T02:52:00.000Z","key":1486522320000,"doc_count":6},{"key_as_string":"2017-02-08T02:53:00.000Z","key":1486522380000,"doc_count":14},{"key_as_string":"2017-02-08T02:54:00.000Z","key":1486522440000,"doc_count":12},{"key_as_string":"2017-02-08T02:55:00.000Z","key":1486522500000,"doc_count":11},{"key_as_string":"2017-02-08T02:56:00.000Z","key":1486522560000,"doc_count":14},{"key_as_string":"2017-02-08T02:57:00.000Z","key":1486522620000,"doc_count":13},{"key_as_string":"2017-02-08T02:58:00.000Z","key":1486522680000,"doc_count":7},{"key_as_string":"2017-02-08T02:59:00.000Z","key":1486522740000,"doc_count":9},{"key_as_string":"2017-02-08T03:00:00.000Z","key":1486522800000,"doc_count":9},{"key_as_string":"2017-02-08T03:01:00.000Z","key":1486522860000,"doc_count":13},{"key_as_string":"2017-02-08T03:02:00.000Z","key":1486522920000,"doc_count":10},{"key_as_string":"2017-02-08T03:03:00.000Z","key":1486522980000,"doc_count":12},{"key_as_string":"2017-02-08T03:04:00.000Z","key":1486523040000,"doc_count":4},{"key_as_string":"2017-02-08T03:05:00.000Z","key":1486523100000,"doc_count":12},{"key_as_string":"2017-02-08T03:06:00.000Z","key":1486523160000,"doc_count":10},{"key_as_string":"2017-02-08T03:07:00.000Z","key":1486523220000,"doc_count":8},{"key_as_string":"2017-02-08T03:08:00.000Z","key":1486523280000,"doc_count":12},{"key_as_string":"2017-02-08T03:09:00.000Z","key":1486523340000,"doc_count":12},{"key_as_string":"2017-02-08T03:10:00.000Z","key":1486523400000,"doc_count":9},{"key_as_string":"2017-02-08T03:11:00.000Z","key":1486523460000,"doc_count":12},{"key_as_string":"2017-02-08T03:12:00.000Z","key":1486523520000,"doc_count":6},{"key_as_string":"2017-02-08T03:13:00.000Z","key":1486523580000,"doc_count":11},{"key_as_string":"2017-02-08T03:14:00.000Z","key":1486523640000,"doc_count":8},{"key_as_string":"2017-02-08T03:15:00.000Z","key":1486523700000,"doc_count":11},{"key_as_string":"2017-02-08T03:16:00.000Z","key":1486523760000,"doc_count":9},{"key_as_string":"2017-02-08T03:17:00.000Z","key":1486523820000,"doc_count":9},{"key_as_string":"2017-02-08T03:18:00.000Z","key":1486523880000,"doc_count":16},{"key_as_string":"2017-02-08T03:19:00.000Z","key":1486523940000,"doc_count":6},{"key_as_string":"2017-02-08T03:20:00.000Z","key":1486524000000,"doc_count":10},{"key_as_string":"2017-02-08T03:21:00.000Z","key":1486524060000,"doc_count":14},{"key_as_string":"2017-02-08T03:22:00.000Z","key":1486524120000,"doc_count":3},{"key_as_string":"2017-02-08T03:23:00.000Z","key":1486524180000,"doc_count":11},{"key_as_string":"2017-02-08T03:24:00.000Z","key":1486524240000,"doc_count":13},{"key_as_string":"2017-02-08T03:25:00.000Z","key":1486524300000,"doc_count":11},{"key_as_string":"2017-02-08T03:26:00.000Z","key":1486524360000,"doc_count":18},{"key_as_string":"2017-02-08T03:27:00.000Z","key":1486524420000,"doc_count":12},{"key_as_string":"2017-02-08T03:28:00.000Z","key":1486524480000,"doc_count":11},{"key_as_string":"2017-02-08T03:29:00.000Z","key":1486524540000,"doc_count":8},{"key_as_string":"2017-02-08T03:30:00.000Z","key":1486524600000,"doc_count":18},{"key_as_string":"2017-02-08T03:31:00.000Z","key":1486524660000,"doc_count":12},{"key_as_string":"2017-02-08T03:32:00.000Z","key":1486524720000,"doc_count":13},{"key_as_string":"2017-02-08T03:33:00.000Z","key":1486524780000,"doc_count":12},{"key_as_string":"2017-02-08T03:34:00.000Z","key":1486524840000,"doc_count":10},{"key_as_string":"2017-02-08T03:35:00.000Z","key":1486524900000,"doc_count":10},{"key_as_string":"2017-02-08T03:36:00.000Z","key":1486524960000,"doc_count":10},{"key_as_string":"2017-02-08T03:37:00.000Z","key":1486525020000,"doc_count":9},{"key_as_string":"2017-02-08T03:38:00.000Z","key":1486525080000,"doc_count":20},{"key_as_string":"2017-02-08T03:39:00.000Z","key":1486525140000,"doc_count":8},{"key_as_string":"2017-02-08T03:40:00.000Z","key":1486525200000,"doc_count":7},{"key_as_string":"2017-02-08T03:41:00.000Z","key":1486525260000,"doc_count":10},{"key_as_string":"2017-02-08T03:42:00.000Z","key":1486525320000,"doc_count":12},{"key_as_string":"2017-02-08T03:43:00.000Z","key":1486525380000,"doc_count":9},{"key_as_string":"2017-02-08T03:44:00.000Z","key":1486525440000,"doc_count":7},{"key_as_string":"2017-02-08T03:45:00.000Z","key":1486525500000,"doc_count":8},{"key_as_string":"2017-02-08T03:46:00.000Z","key":1486525560000,"doc_count":10},{"key_as_string":"2017-02-08T03:47:00.000Z","key":1486525620000,"doc_count":10},{"key_as_string":"2017-02-08T03:48:00.000Z","key":1486525680000,"doc_count":7},{"key_as_string":"2017-02-08T03:49:00.000Z","key":1486525740000,"doc_count":9},{"key_as_string":"2017-02-08T03:50:00.000Z","key":1486525800000,"doc_count":11},{"key_as_string":"2017-02-08T03:51:00.000Z","key":1486525860000,"doc_count":8},{"key_as_string":"2017-02-08T03:52:00.000Z","key":1486525920000,"doc_count":10},{"key_as_string":"2017-02-08T03:53:00.000Z","key":1486525980000,"doc_count":12},{"key_as_string":"2017-02-08T03:54:00.000Z","key":1486526040000,"doc_count":14},{"key_as_string":"2017-02-08T03:55:00.000Z","key":1486526100000,"doc_count":9},{"key_as_string":"2017-02-08T03:56:00.000Z","key":1486526160000,"doc_count":11},{"key_as_string":"2017-02-08T03:57:00.000Z","key":1486526220000,"doc_count":7},{"key_as_string":"2017-02-08T03:58:00.000Z","key":1486526280000,"doc_count":11},{"key_as_string":"2017-02-08T03:59:00.000Z","key":1486526340000,"doc_count":14},{"key_as_string":"2017-02-08T04:00:00.000Z","key":1486526400000,"doc_count":10},{"key_as_string":"2017-02-08T04:01:00.000Z","key":1486526460000,"doc_count":11},{"key_as_string":"2017-02-08T04:02:00.000Z","key":1486526520000,"doc_count":12},{"key_as_string":"2017-02-08T04:03:00.000Z","key":1486526580000,"doc_count":8},{"key_as_string":"2017-02-08T04:04:00.000Z","key":1486526640000,"doc_count":11},{"key_as_string":"2017-02-08T04:05:00.000Z","key":1486526700000,"doc_count":15},{"key_as_string":"2017-02-08T04:06:00.000Z","key":1486526760000,"doc_count":8},{"key_as_string":"2017-02-08T04:07:00.000Z","key":1486526820000,"doc_count":13},{"key_as_string":"2017-02-08T04:08:00.000Z","key":1486526880000,"doc_count":12},{"key_as_string":"2017-02-08T04:09:00.000Z","key":1486526940000,"doc_count":11},{"key_as_string":"2017-02-08T04:10:00.000Z","key":1486527000000,"doc_count":12},{"key_as_string":"2017-02-08T04:11:00.000Z","key":1486527060000,"doc_count":10},{"key_as_string":"2017-02-08T04:12:00.000Z","key":1486527120000,"doc_count":13},{"key_as_string":"2017-02-08T04:13:00.000Z","key":1486527180000,"doc_count":5},{"key_as_string":"2017-02-08T04:14:00.000Z","key":1486527240000,"doc_count":6},{"key_as_string":"2017-02-08T04:15:00.000Z","key":1486527300000,"doc_count":16},{"key_as_string":"2017-02-08T04:16:00.000Z","key":1486527360000,"doc_count":12},{"key_as_string":"2017-02-08T04:17:00.000Z","key":1486527420000,"doc_count":17},{"key_as_string":"2017-02-08T04:18:00.000Z","key":1486527480000,"doc_count":11},{"key_as_string":"2017-02-08T04:19:00.000Z","key":1486527540000,"doc_count":16},{"key_as_string":"2017-02-08T04:20:00.000Z","key":1486527600000,"doc_count":8},{"key_as_string":"2017-02-08T04:21:00.000Z","key":1486527660000,"doc_count":10},{"key_as_string":"2017-02-08T04:22:00.000Z","key":1486527720000,"doc_count":14},{"key_as_string":"2017-02-08T04:23:00.000Z","key":1486527780000,"doc_count":10},{"key_as_string":"2017-02-08T04:24:00.000Z","key":1486527840000,"doc_count":9},{"key_as_string":"2017-02-08T04:25:00.000Z","key":1486527900000,"doc_count":13},{"key_as_string":"2017-02-08T04:26:00.000Z","key":1486527960000,"doc_count":8},{"key_as_string":"2017-02-08T04:27:00.000Z","key":1486528020000,"doc_count":13},{"key_as_string":"2017-02-08T04:28:00.000Z","key":1486528080000,"doc_count":16},{"key_as_string":"2017-02-08T04:29:00.000Z","key":1486528140000,"doc_count":8},{"key_as_string":"2017-02-08T04:30:00.000Z","key":1486528200000,"doc_count":13},{"key_as_string":"2017-02-08T04:31:00.000Z","key":1486528260000,"doc_count":12},{"key_as_string":"2017-02-08T04:32:00.000Z","key":1486528320000,"doc_count":9},{"key_as_string":"2017-02-08T04:33:00.000Z","key":1486528380000,"doc_count":14},{"key_as_string":"2017-02-08T04:34:00.000Z","key":1486528440000,"doc_count":8},{"key_as_string":"2017-02-08T04:35:00.000Z","key":1486528500000,"doc_count":9},{"key_as_string":"2017-02-08T04:36:00.000Z","key":1486528560000,"doc_count":19},{"key_as_string":"2017-02-08T04:37:00.000Z","key":1486528620000,"doc_count":8},{"key_as_string":"2017-02-08T04:38:00.000Z","key":1486528680000,"doc_count":12},{"key_as_string":"2017-02-08T04:39:00.000Z","key":1486528740000,"doc_count":13},{"key_as_string":"2017-02-08T04:40:00.000Z","key":1486528800000,"doc_count":13},{"key_as_string":"2017-02-08T04:41:00.000Z","key":1486528860000,"doc_count":9},{"key_as_string":"2017-02-08T04:42:00.000Z","key":1486528920000,"doc_count":8},{"key_as_string":"2017-02-08T04:43:00.000Z","key":1486528980000,"doc_count":8},{"key_as_string":"2017-02-08T04:44:00.000Z","key":1486529040000,"doc_count":11},{"key_as_string":"2017-02-08T04:45:00.000Z","key":1486529100000,"doc_count":11},{"key_as_string":"2017-02-08T04:46:00.000Z","key":1486529160000,"doc_count":14},{"key_as_string":"2017-02-08T04:47:00.000Z","key":1486529220000,"doc_count":9},{"key_as_string":"2017-02-08T04:48:00.000Z","key":1486529280000,"doc_count":11},{"key_as_string":"2017-02-08T04:49:00.000Z","key":1486529340000,"doc_count":16},{"key_as_string":"2017-02-08T04:50:00.000Z","key":1486529400000,"doc_count":6},{"key_as_string":"2017-02-08T04:51:00.000Z","key":1486529460000,"doc_count":14},{"key_as_string":"2017-02-08T04:52:00.000Z","key":1486529520000,"doc_count":12},{"key_as_string":"2017-02-08T04:53:00.000Z","key":1486529580000,"doc_count":13},{"key_as_string":"2017-02-08T04:54:00.000Z","key":1486529640000,"doc_count":12},{"key_as_string":"2017-02-08T04:55:00.000Z","key":1486529700000,"doc_count":12},{"key_as_string":"2017-02-08T04:56:00.000Z","key":1486529760000,"doc_count":15},{"key_as_string":"2017-02-08T04:57:00.000Z","key":1486529820000,"doc_count":12},{"key_as_string":"2017-02-08T04:58:00.000Z","key":1486529880000,"doc_count":11},{"key_as_string":"2017-02-08T04:59:00.000Z","key":1486529940000,"doc_count":7},{"key_as_string":"2017-02-08T05:00:00.000Z","key":1486530000000,"doc_count":10},{"key_as_string":"2017-02-08T05:01:00.000Z","key":1486530060000,"doc_count":15},{"key_as_string":"2017-02-08T05:02:00.000Z","key":1486530120000,"doc_count":15},{"key_as_string":"2017-02-08T05:03:00.000Z","key":1486530180000,"doc_count":11},{"key_as_string":"2017-02-08T05:04:00.000Z","key":1486530240000,"doc_count":11},{"key_as_string":"2017-02-08T05:05:00.000Z","key":1486530300000,"doc_count":14},{"key_as_string":"2017-02-08T05:06:00.000Z","key":1486530360000,"doc_count":9},{"key_as_string":"2017-02-08T05:07:00.000Z","key":1486530420000,"doc_count":15},{"key_as_string":"2017-02-08T05:08:00.000Z","key":1486530480000,"doc_count":8},{"key_as_string":"2017-02-08T05:09:00.000Z","key":1486530540000,"doc_count":13},{"key_as_string":"2017-02-08T05:10:00.000Z","key":1486530600000,"doc_count":12},{"key_as_string":"2017-02-08T05:11:00.000Z","key":1486530660000,"doc_count":7},{"key_as_string":"2017-02-08T05:12:00.000Z","key":1486530720000,"doc_count":9},{"key_as_string":"2017-02-08T05:13:00.000Z","key":1486530780000,"doc_count":12},{"key_as_string":"2017-02-08T05:14:00.000Z","key":1486530840000,"doc_count":14},{"key_as_string":"2017-02-08T05:15:00.000Z","key":1486530900000,"doc_count":15},{"key_as_string":"2017-02-08T05:16:00.000Z","key":1486530960000,"doc_count":7},{"key_as_string":"2017-02-08T05:17:00.000Z","key":1486531020000,"doc_count":10},{"key_as_string":"2017-02-08T05:18:00.000Z","key":1486531080000,"doc_count":10},{"key_as_string":"2017-02-08T05:19:00.000Z","key":1486531140000,"doc_count":12},{"key_as_string":"2017-02-08T05:20:00.000Z","key":1486531200000,"doc_count":7},{"key_as_string":"2017-02-08T05:21:00.000Z","key":1486531260000,"doc_count":9},{"key_as_string":"2017-02-08T05:22:00.000Z","key":1486531320000,"doc_count":13},{"key_as_string":"2017-02-08T05:23:00.000Z","key":1486531380000,"doc_count":9},{"key_as_string":"2017-02-08T05:24:00.000Z","key":1486531440000,"doc_count":10},{"key_as_string":"2017-02-08T05:25:00.000Z","key":1486531500000,"doc_count":12},{"key_as_string":"2017-02-08T05:26:00.000Z","key":1486531560000,"doc_count":7},{"key_as_string":"2017-02-08T05:27:00.000Z","key":1486531620000,"doc_count":16},{"key_as_string":"2017-02-08T05:28:00.000Z","key":1486531680000,"doc_count":12},{"key_as_string":"2017-02-08T05:29:00.000Z","key":1486531740000,"doc_count":13},{"key_as_string":"2017-02-08T05:30:00.000Z","key":1486531800000,"doc_count":10},{"key_as_string":"2017-02-08T05:31:00.000Z","key":1486531860000,"doc_count":12},{"key_as_string":"2017-02-08T05:32:00.000Z","key":1486531920000,"doc_count":6},{"key_as_string":"2017-02-08T05:33:00.000Z","key":1486531980000,"doc_count":16},{"key_as_string":"2017-02-08T05:34:00.000Z","key":1486532040000,"doc_count":11},{"key_as_string":"2017-02-08T05:35:00.000Z","key":1486532100000,"doc_count":13},{"key_as_string":"2017-02-08T05:36:00.000Z","key":1486532160000,"doc_count":12},{"key_as_string":"2017-02-08T05:37:00.000Z","key":1486532220000,"doc_count":14},{"key_as_string":"2017-02-08T05:38:00.000Z","key":1486532280000,"doc_count":9},{"key_as_string":"2017-02-08T05:39:00.000Z","key":1486532340000,"doc_count":9},{"key_as_string":"2017-02-08T05:40:00.000Z","key":1486532400000,"doc_count":11},{"key_as_string":"2017-02-08T05:41:00.000Z","key":1486532460000,"doc_count":17},{"key_as_string":"2017-02-08T05:42:00.000Z","key":1486532520000,"doc_count":13},{"key_as_string":"2017-02-08T05:43:00.000Z","key":1486532580000,"doc_count":10},{"key_as_string":"2017-02-08T05:44:00.000Z","key":1486532640000,"doc_count":12},{"key_as_string":"2017-02-08T05:45:00.000Z","key":1486532700000,"doc_count":17},{"key_as_string":"2017-02-08T05:46:00.000Z","key":1486532760000,"doc_count":7},{"key_as_string":"2017-02-08T05:47:00.000Z","key":1486532820000,"doc_count":11},{"key_as_string":"2017-02-08T05:48:00.000Z","key":1486532880000,"doc_count":10},{"key_as_string":"2017-02-08T05:49:00.000Z","key":1486532940000,"doc_count":7},{"key_as_string":"2017-02-08T05:50:00.000Z","key":1486533000000,"doc_count":12},{"key_as_string":"2017-02-08T05:51:00.000Z","key":1486533060000,"doc_count":12},{"key_as_string":"2017-02-08T05:52:00.000Z","key":1486533120000,"doc_count":6},{"key_as_string":"2017-02-08T05:53:00.000Z","key":1486533180000,"doc_count":11},{"key_as_string":"2017-02-08T05:54:00.000Z","key":1486533240000,"doc_count":14},{"key_as_string":"2017-02-08T05:55:00.000Z","key":1486533300000,"doc_count":10},{"key_as_string":"2017-02-08T05:56:00.000Z","key":1486533360000,"doc_count":11},{"key_as_string":"2017-02-08T05:57:00.000Z","key":1486533420000,"doc_count":14},{"key_as_string":"2017-02-08T05:58:00.000Z","key":1486533480000,"doc_count":5},{"key_as_string":"2017-02-08T05:59:00.000Z","key":1486533540000,"doc_count":16},{"key_as_string":"2017-02-08T06:00:00.000Z","key":1486533600000,"doc_count":9},{"key_as_string":"2017-02-08T06:01:00.000Z","key":1486533660000,"doc_count":12},{"key_as_string":"2017-02-08T06:02:00.000Z","key":1486533720000,"doc_count":10},{"key_as_string":"2017-02-08T06:03:00.000Z","key":1486533780000,"doc_count":13},{"key_as_string":"2017-02-08T06:04:00.000Z","key":1486533840000,"doc_count":14},{"key_as_string":"2017-02-08T06:05:00.000Z","key":1486533900000,"doc_count":11},{"key_as_string":"2017-02-08T06:06:00.000Z","key":1486533960000,"doc_count":9},{"key_as_string":"2017-02-08T06:07:00.000Z","key":1486534020000,"doc_count":10},{"key_as_string":"2017-02-08T06:08:00.000Z","key":1486534080000,"doc_count":7},{"key_as_string":"2017-02-08T06:09:00.000Z","key":1486534140000,"doc_count":14},{"key_as_string":"2017-02-08T06:10:00.000Z","key":1486534200000,"doc_count":13},{"key_as_string":"2017-02-08T06:11:00.000Z","key":1486534260000,"doc_count":15},{"key_as_string":"2017-02-08T06:12:00.000Z","key":1486534320000,"doc_count":9},{"key_as_string":"2017-02-08T06:13:00.000Z","key":1486534380000,"doc_count":8},{"key_as_string":"2017-02-08T06:14:00.000Z","key":1486534440000,"doc_count":7},{"key_as_string":"2017-02-08T06:15:00.000Z","key":1486534500000,"doc_count":15},{"key_as_string":"2017-02-08T06:16:00.000Z","key":1486534560000,"doc_count":11},{"key_as_string":"2017-02-08T06:17:00.000Z","key":1486534620000,"doc_count":15},{"key_as_string":"2017-02-08T06:18:00.000Z","key":1486534680000,"doc_count":14},{"key_as_string":"2017-02-08T06:19:00.000Z","key":1486534740000,"doc_count":12},{"key_as_string":"2017-02-08T06:20:00.000Z","key":1486534800000,"doc_count":15},{"key_as_string":"2017-02-08T06:21:00.000Z","key":1486534860000,"doc_count":13},{"key_as_string":"2017-02-08T06:22:00.000Z","key":1486534920000,"doc_count":10},{"key_as_string":"2017-02-08T06:23:00.000Z","key":1486534980000,"doc_count":14},{"key_as_string":"2017-02-08T06:24:00.000Z","key":1486535040000,"doc_count":15},{"key_as_string":"2017-02-08T06:25:00.000Z","key":1486535100000,"doc_count":14},{"key_as_string":"2017-02-08T06:26:00.000Z","key":1486535160000,"doc_count":11},{"key_as_string":"2017-02-08T06:27:00.000Z","key":1486535220000,"doc_count":13},{"key_as_string":"2017-02-08T06:28:00.000Z","key":1486535280000,"doc_count":11},{"key_as_string":"2017-02-08T06:29:00.000Z","key":1486535340000,"doc_count":16},{"key_as_string":"2017-02-08T06:30:00.000Z","key":1486535400000,"doc_count":12},{"key_as_string":"2017-02-08T06:31:00.000Z","key":1486535460000,"doc_count":11},{"key_as_string":"2017-02-08T06:32:00.000Z","key":1486535520000,"doc_count":10},{"key_as_string":"2017-02-08T06:33:00.000Z","key":1486535580000,"doc_count":8},{"key_as_string":"2017-02-08T06:34:00.000Z","key":1486535640000,"doc_count":14},{"key_as_string":"2017-02-08T06:35:00.000Z","key":1486535700000,"doc_count":9},{"key_as_string":"2017-02-08T06:36:00.000Z","key":1486535760000,"doc_count":16},{"key_as_string":"2017-02-08T06:37:00.000Z","key":1486535820000,"doc_count":13},{"key_as_string":"2017-02-08T06:38:00.000Z","key":1486535880000,"doc_count":10},{"key_as_string":"2017-02-08T06:39:00.000Z","key":1486535940000,"doc_count":13},{"key_as_string":"2017-02-08T06:40:00.000Z","key":1486536000000,"doc_count":13},{"key_as_string":"2017-02-08T06:41:00.000Z","key":1486536060000,"doc_count":10},{"key_as_string":"2017-02-08T06:42:00.000Z","key":1486536120000,"doc_count":12},{"key_as_string":"2017-02-08T06:43:00.000Z","key":1486536180000,"doc_count":10},{"key_as_string":"2017-02-08T06:44:00.000Z","key":1486536240000,"doc_count":15},{"key_as_string":"2017-02-08T06:45:00.000Z","key":1486536300000,"doc_count":10},{"key_as_string":"2017-02-08T06:46:00.000Z","key":1486536360000,"doc_count":8},{"key_as_string":"2017-02-08T06:47:00.000Z","key":1486536420000,"doc_count":15},{"key_as_string":"2017-02-08T06:48:00.000Z","key":1486536480000,"doc_count":14},{"key_as_string":"2017-02-08T06:49:00.000Z","key":1486536540000,"doc_count":8},{"key_as_string":"2017-02-08T06:50:00.000Z","key":1486536600000,"doc_count":10},{"key_as_string":"2017-02-08T06:51:00.000Z","key":1486536660000,"doc_count":12},{"key_as_string":"2017-02-08T06:52:00.000Z","key":1486536720000,"doc_count":19},{"key_as_string":"2017-02-08T06:53:00.000Z","key":1486536780000,"doc_count":10},{"key_as_string":"2017-02-08T06:54:00.000Z","key":1486536840000,"doc_count":12},{"key_as_string":"2017-02-08T06:55:00.000Z","key":1486536900000,"doc_count":13},{"key_as_string":"2017-02-08T06:56:00.000Z","key":1486536960000,"doc_count":12},{"key_as_string":"2017-02-08T06:57:00.000Z","key":1486537020000,"doc_count":10},{"key_as_string":"2017-02-08T06:58:00.000Z","key":1486537080000,"doc_count":13},{"key_as_string":"2017-02-08T06:59:00.000Z","key":1486537140000,"doc_count":9},{"key_as_string":"2017-02-08T07:00:00.000Z","key":1486537200000,"doc_count":17},{"key_as_string":"2017-02-08T07:01:00.000Z","key":1486537260000,"doc_count":14},{"key_as_string":"2017-02-08T07:02:00.000Z","key":1486537320000,"doc_count":11},{"key_as_string":"2017-02-08T07:03:00.000Z","key":1486537380000,"doc_count":13},{"key_as_string":"2017-02-08T07:04:00.000Z","key":1486537440000,"doc_count":15},{"key_as_string":"2017-02-08T07:05:00.000Z","key":1486537500000,"doc_count":16},{"key_as_string":"2017-02-08T07:06:00.000Z","key":1486537560000,"doc_count":11},{"key_as_string":"2017-02-08T07:07:00.000Z","key":1486537620000,"doc_count":7},{"key_as_string":"2017-02-08T07:08:00.000Z","key":1486537680000,"doc_count":12},{"key_as_string":"2017-02-08T07:09:00.000Z","key":1486537740000,"doc_count":14},{"key_as_string":"2017-02-08T07:10:00.000Z","key":1486537800000,"doc_count":9},{"key_as_string":"2017-02-08T07:11:00.000Z","key":1486537860000,"doc_count":11},{"key_as_string":"2017-02-08T07:12:00.000Z","key":1486537920000,"doc_count":12},{"key_as_string":"2017-02-08T07:13:00.000Z","key":1486537980000,"doc_count":7},{"key_as_string":"2017-02-08T07:14:00.000Z","key":1486538040000,"doc_count":15},{"key_as_string":"2017-02-08T07:15:00.000Z","key":1486538100000,"doc_count":13},{"key_as_string":"2017-02-08T07:16:00.000Z","key":1486538160000,"doc_count":10},{"key_as_string":"2017-02-08T07:17:00.000Z","key":1486538220000,"doc_count":8},{"key_as_string":"2017-02-08T07:18:00.000Z","key":1486538280000,"doc_count":16},{"key_as_string":"2017-02-08T07:19:00.000Z","key":1486538340000,"doc_count":12},{"key_as_string":"2017-02-08T07:20:00.000Z","key":1486538400000,"doc_count":13},{"key_as_string":"2017-02-08T07:21:00.000Z","key":1486538460000,"doc_count":15},{"key_as_string":"2017-02-08T07:22:00.000Z","key":1486538520000,"doc_count":12},{"key_as_string":"2017-02-08T07:23:00.000Z","key":1486538580000,"doc_count":17},{"key_as_string":"2017-02-08T07:24:00.000Z","key":1486538640000,"doc_count":10},{"key_as_string":"2017-02-08T07:25:00.000Z","key":1486538700000,"doc_count":11},{"key_as_string":"2017-02-08T07:26:00.000Z","key":1486538760000,"doc_count":11},{"key_as_string":"2017-02-08T07:27:00.000Z","key":1486538820000,"doc_count":13},{"key_as_string":"2017-02-08T07:28:00.000Z","key":1486538880000,"doc_count":10},{"key_as_string":"2017-02-08T07:29:00.000Z","key":1486538940000,"doc_count":13},{"key_as_string":"2017-02-08T07:30:00.000Z","key":1486539000000,"doc_count":11},{"key_as_string":"2017-02-08T07:31:00.000Z","key":1486539060000,"doc_count":17},{"key_as_string":"2017-02-08T07:32:00.000Z","key":1486539120000,"doc_count":12},{"key_as_string":"2017-02-08T07:33:00.000Z","key":1486539180000,"doc_count":11},{"key_as_string":"2017-02-08T07:34:00.000Z","key":1486539240000,"doc_count":11},{"key_as_string":"2017-02-08T07:35:00.000Z","key":1486539300000,"doc_count":17},{"key_as_string":"2017-02-08T07:36:00.000Z","key":1486539360000,"doc_count":12},{"key_as_string":"2017-02-08T07:37:00.000Z","key":1486539420000,"doc_count":15},{"key_as_string":"2017-02-08T07:38:00.000Z","key":1486539480000,"doc_count":12},{"key_as_string":"2017-02-08T07:39:00.000Z","key":1486539540000,"doc_count":19},{"key_as_string":"2017-02-08T07:40:00.000Z","key":1486539600000,"doc_count":10},{"key_as_string":"2017-02-08T07:41:00.000Z","key":1486539660000,"doc_count":10},{"key_as_string":"2017-02-08T07:42:00.000Z","key":1486539720000,"doc_count":13},{"key_as_string":"2017-02-08T07:43:00.000Z","key":1486539780000,"doc_count":17},{"key_as_string":"2017-02-08T07:44:00.000Z","key":1486539840000,"doc_count":15},{"key_as_string":"2017-02-08T07:45:00.000Z","key":1486539900000,"doc_count":8},{"key_as_string":"2017-02-08T07:46:00.000Z","key":1486539960000,"doc_count":13},{"key_as_string":"2017-02-08T07:47:00.000Z","key":1486540020000,"doc_count":9},{"key_as_string":"2017-02-08T07:48:00.000Z","key":1486540080000,"doc_count":10},{"key_as_string":"2017-02-08T07:49:00.000Z","key":1486540140000,"doc_count":10},{"key_as_string":"2017-02-08T07:50:00.000Z","key":1486540200000,"doc_count":15},{"key_as_string":"2017-02-08T07:51:00.000Z","key":1486540260000,"doc_count":13},{"key_as_string":"2017-02-08T07:52:00.000Z","key":1486540320000,"doc_count":14},{"key_as_string":"2017-02-08T07:53:00.000Z","key":1486540380000,"doc_count":13},{"key_as_string":"2017-02-08T07:54:00.000Z","key":1486540440000,"doc_count":14},{"key_as_string":"2017-02-08T07:55:00.000Z","key":1486540500000,"doc_count":11},{"key_as_string":"2017-02-08T07:56:00.000Z","key":1486540560000,"doc_count":10},{"key_as_string":"2017-02-08T07:57:00.000Z","key":1486540620000,"doc_count":9},{"key_as_string":"2017-02-08T07:58:00.000Z","key":1486540680000,"doc_count":16},{"key_as_string":"2017-02-08T07:59:00.000Z","key":1486540740000,"doc_count":17},{"key_as_string":"2017-02-08T08:00:00.000Z","key":1486540800000,"doc_count":14},{"key_as_string":"2017-02-08T08:01:00.000Z","key":1486540860000,"doc_count":12},{"key_as_string":"2017-02-08T08:02:00.000Z","key":1486540920000,"doc_count":15},{"key_as_string":"2017-02-08T08:03:00.000Z","key":1486540980000,"doc_count":15},{"key_as_string":"2017-02-08T08:04:00.000Z","key":1486541040000,"doc_count":10},{"key_as_string":"2017-02-08T08:05:00.000Z","key":1486541100000,"doc_count":12},{"key_as_string":"2017-02-08T08:06:00.000Z","key":1486541160000,"doc_count":6},{"key_as_string":"2017-02-08T08:07:00.000Z","key":1486541220000,"doc_count":17},{"key_as_string":"2017-02-08T08:08:00.000Z","key":1486541280000,"doc_count":15},{"key_as_string":"2017-02-08T08:09:00.000Z","key":1486541340000,"doc_count":14},{"key_as_string":"2017-02-08T08:10:00.000Z","key":1486541400000,"doc_count":12},{"key_as_string":"2017-02-08T08:11:00.000Z","key":1486541460000,"doc_count":18},{"key_as_string":"2017-02-08T08:12:00.000Z","key":1486541520000,"doc_count":9},{"key_as_string":"2017-02-08T08:13:00.000Z","key":1486541580000,"doc_count":12},{"key_as_string":"2017-02-08T08:14:00.000Z","key":1486541640000,"doc_count":11},{"key_as_string":"2017-02-08T08:15:00.000Z","key":1486541700000,"doc_count":19},{"key_as_string":"2017-02-08T08:16:00.000Z","key":1486541760000,"doc_count":12},{"key_as_string":"2017-02-08T08:17:00.000Z","key":1486541820000,"doc_count":10},{"key_as_string":"2017-02-08T08:18:00.000Z","key":1486541880000,"doc_count":16},{"key_as_string":"2017-02-08T08:19:00.000Z","key":1486541940000,"doc_count":12},{"key_as_string":"2017-02-08T08:20:00.000Z","key":1486542000000,"doc_count":15},{"key_as_string":"2017-02-08T08:21:00.000Z","key":1486542060000,"doc_count":14},{"key_as_string":"2017-02-08T08:22:00.000Z","key":1486542120000,"doc_count":15},{"key_as_string":"2017-02-08T08:23:00.000Z","key":1486542180000,"doc_count":12},{"key_as_string":"2017-02-08T08:24:00.000Z","key":1486542240000,"doc_count":15},{"key_as_string":"2017-02-08T08:25:00.000Z","key":1486542300000,"doc_count":7},{"key_as_string":"2017-02-08T08:26:00.000Z","key":1486542360000,"doc_count":10},{"key_as_string":"2017-02-08T08:27:00.000Z","key":1486542420000,"doc_count":12},{"key_as_string":"2017-02-08T08:28:00.000Z","key":1486542480000,"doc_count":10},{"key_as_string":"2017-02-08T08:29:00.000Z","key":1486542540000,"doc_count":12},{"key_as_string":"2017-02-08T08:30:00.000Z","key":1486542600000,"doc_count":17},{"key_as_string":"2017-02-08T08:31:00.000Z","key":1486542660000,"doc_count":13},{"key_as_string":"2017-02-08T08:32:00.000Z","key":1486542720000,"doc_count":14},{"key_as_string":"2017-02-08T08:33:00.000Z","key":1486542780000,"doc_count":10},{"key_as_string":"2017-02-08T08:34:00.000Z","key":1486542840000,"doc_count":12},{"key_as_string":"2017-02-08T08:35:00.000Z","key":1486542900000,"doc_count":14},{"key_as_string":"2017-02-08T08:36:00.000Z","key":1486542960000,"doc_count":11},{"key_as_string":"2017-02-08T08:37:00.000Z","key":1486543020000,"doc_count":16},{"key_as_string":"2017-02-08T08:38:00.000Z","key":1486543080000,"doc_count":13},{"key_as_string":"2017-02-08T08:39:00.000Z","key":1486543140000,"doc_count":11},{"key_as_string":"2017-02-08T08:40:00.000Z","key":1486543200000,"doc_count":9},{"key_as_string":"2017-02-08T08:41:00.000Z","key":1486543260000,"doc_count":15},{"key_as_string":"2017-02-08T08:42:00.000Z","key":1486543320000,"doc_count":12},{"key_as_string":"2017-02-08T08:43:00.000Z","key":1486543380000,"doc_count":9},{"key_as_string":"2017-02-08T08:44:00.000Z","key":1486543440000,"doc_count":15},{"key_as_string":"2017-02-08T08:45:00.000Z","key":1486543500000,"doc_count":17},{"key_as_string":"2017-02-08T08:46:00.000Z","key":1486543560000,"doc_count":5},{"key_as_string":"2017-02-08T08:47:00.000Z","key":1486543620000,"doc_count":19},{"key_as_string":"2017-02-08T08:48:00.000Z","key":1486543680000,"doc_count":14},{"key_as_string":"2017-02-08T08:49:00.000Z","key":1486543740000,"doc_count":13},{"key_as_string":"2017-02-08T08:50:00.000Z","key":1486543800000,"doc_count":16},{"key_as_string":"2017-02-08T08:51:00.000Z","key":1486543860000,"doc_count":14},{"key_as_string":"2017-02-08T08:52:00.000Z","key":1486543920000,"doc_count":17},{"key_as_string":"2017-02-08T08:53:00.000Z","key":1486543980000,"doc_count":12},{"key_as_string":"2017-02-08T08:54:00.000Z","key":1486544040000,"doc_count":13},{"key_as_string":"2017-02-08T08:55:00.000Z","key":1486544100000,"doc_count":17},{"key_as_string":"2017-02-08T08:56:00.000Z","key":1486544160000,"doc_count":11},{"key_as_string":"2017-02-08T08:57:00.000Z","key":1486544220000,"doc_count":10},{"key_as_string":"2017-02-08T08:58:00.000Z","key":1486544280000,"doc_count":13},{"key_as_string":"2017-02-08T08:59:00.000Z","key":1486544340000,"doc_count":11},{"key_as_string":"2017-02-08T09:00:00.000Z","key":1486544400000,"doc_count":12},{"key_as_string":"2017-02-08T09:01:00.000Z","key":1486544460000,"doc_count":15},{"key_as_string":"2017-02-08T09:02:00.000Z","key":1486544520000,"doc_count":8},{"key_as_string":"2017-02-08T09:03:00.000Z","key":1486544580000,"doc_count":14},{"key_as_string":"2017-02-08T09:04:00.000Z","key":1486544640000,"doc_count":13},{"key_as_string":"2017-02-08T09:05:00.000Z","key":1486544700000,"doc_count":12},{"key_as_string":"2017-02-08T09:06:00.000Z","key":1486544760000,"doc_count":15},{"key_as_string":"2017-02-08T09:07:00.000Z","key":1486544820000,"doc_count":13},{"key_as_string":"2017-02-08T09:08:00.000Z","key":1486544880000,"doc_count":19},{"key_as_string":"2017-02-08T09:09:00.000Z","key":1486544940000,"doc_count":14},{"key_as_string":"2017-02-08T09:10:00.000Z","key":1486545000000,"doc_count":11},{"key_as_string":"2017-02-08T09:11:00.000Z","key":1486545060000,"doc_count":15},{"key_as_string":"2017-02-08T09:12:00.000Z","key":1486545120000,"doc_count":15},{"key_as_string":"2017-02-08T09:13:00.000Z","key":1486545180000,"doc_count":10},{"key_as_string":"2017-02-08T09:14:00.000Z","key":1486545240000,"doc_count":17},{"key_as_string":"2017-02-08T09:15:00.000Z","key":1486545300000,"doc_count":18},{"key_as_string":"2017-02-08T09:16:00.000Z","key":1486545360000,"doc_count":15},{"key_as_string":"2017-02-08T09:17:00.000Z","key":1486545420000,"doc_count":13},{"key_as_string":"2017-02-08T09:18:00.000Z","key":1486545480000,"doc_count":9},{"key_as_string":"2017-02-08T09:19:00.000Z","key":1486545540000,"doc_count":15},{"key_as_string":"2017-02-08T09:20:00.000Z","key":1486545600000,"doc_count":10},{"key_as_string":"2017-02-08T09:21:00.000Z","key":1486545660000,"doc_count":9},{"key_as_string":"2017-02-08T09:22:00.000Z","key":1486545720000,"doc_count":13},{"key_as_string":"2017-02-08T09:23:00.000Z","key":1486545780000,"doc_count":18},{"key_as_string":"2017-02-08T09:24:00.000Z","key":1486545840000,"doc_count":12},{"key_as_string":"2017-02-08T09:25:00.000Z","key":1486545900000,"doc_count":15},{"key_as_string":"2017-02-08T09:26:00.000Z","key":1486545960000,"doc_count":10},{"key_as_string":"2017-02-08T09:27:00.000Z","key":1486546020000,"doc_count":16},{"key_as_string":"2017-02-08T09:28:00.000Z","key":1486546080000,"doc_count":17},{"key_as_string":"2017-02-08T09:29:00.000Z","key":1486546140000,"doc_count":14},{"key_as_string":"2017-02-08T09:30:00.000Z","key":1486546200000,"doc_count":13},{"key_as_string":"2017-02-08T09:31:00.000Z","key":1486546260000,"doc_count":14},{"key_as_string":"2017-02-08T09:32:00.000Z","key":1486546320000,"doc_count":11},{"key_as_string":"2017-02-08T09:33:00.000Z","key":1486546380000,"doc_count":13},{"key_as_string":"2017-02-08T09:34:00.000Z","key":1486546440000,"doc_count":10},{"key_as_string":"2017-02-08T09:35:00.000Z","key":1486546500000,"doc_count":15},{"key_as_string":"2017-02-08T09:36:00.000Z","key":1486546560000,"doc_count":15},{"key_as_string":"2017-02-08T09:37:00.000Z","key":1486546620000,"doc_count":11},{"key_as_string":"2017-02-08T09:38:00.000Z","key":1486546680000,"doc_count":13},{"key_as_string":"2017-02-08T09:39:00.000Z","key":1486546740000,"doc_count":12},{"key_as_string":"2017-02-08T09:40:00.000Z","key":1486546800000,"doc_count":12},{"key_as_string":"2017-02-08T09:41:00.000Z","key":1486546860000,"doc_count":11},{"key_as_string":"2017-02-08T09:42:00.000Z","key":1486546920000,"doc_count":10},{"key_as_string":"2017-02-08T09:43:00.000Z","key":1486546980000,"doc_count":15},{"key_as_string":"2017-02-08T09:44:00.000Z","key":1486547040000,"doc_count":12},{"key_as_string":"2017-02-08T09:45:00.000Z","key":1486547100000,"doc_count":11},{"key_as_string":"2017-02-08T09:46:00.000Z","key":1486547160000,"doc_count":12},{"key_as_string":"2017-02-08T09:47:00.000Z","key":1486547220000,"doc_count":12},{"key_as_string":"2017-02-08T09:48:00.000Z","key":1486547280000,"doc_count":10},{"key_as_string":"2017-02-08T09:49:00.000Z","key":1486547340000,"doc_count":18},{"key_as_string":"2017-02-08T09:50:00.000Z","key":1486547400000,"doc_count":16},{"key_as_string":"2017-02-08T09:51:00.000Z","key":1486547460000,"doc_count":20},{"key_as_string":"2017-02-08T09:52:00.000Z","key":1486547520000,"doc_count":12},{"key_as_string":"2017-02-08T09:53:00.000Z","key":1486547580000,"doc_count":13},{"key_as_string":"2017-02-08T09:54:00.000Z","key":1486547640000,"doc_count":16},{"key_as_string":"2017-02-08T09:55:00.000Z","key":1486547700000,"doc_count":14},{"key_as_string":"2017-02-08T09:56:00.000Z","key":1486547760000,"doc_count":12},{"key_as_string":"2017-02-08T09:57:00.000Z","key":1486547820000,"doc_count":18},{"key_as_string":"2017-02-08T09:58:00.000Z","key":1486547880000,"doc_count":11},{"key_as_string":"2017-02-08T09:59:00.000Z","key":1486547940000,"doc_count":17},{"key_as_string":"2017-02-08T10:00:00.000Z","key":1486548000000,"doc_count":12},{"key_as_string":"2017-02-08T10:01:00.000Z","key":1486548060000,"doc_count":13},{"key_as_string":"2017-02-08T10:02:00.000Z","key":1486548120000,"doc_count":21},{"key_as_string":"2017-02-08T10:03:00.000Z","key":1486548180000,"doc_count":17},{"key_as_string":"2017-02-08T10:04:00.000Z","key":1486548240000,"doc_count":16},{"key_as_string":"2017-02-08T10:05:00.000Z","key":1486548300000,"doc_count":11},{"key_as_string":"2017-02-08T10:06:00.000Z","key":1486548360000,"doc_count":16},{"key_as_string":"2017-02-08T10:07:00.000Z","key":1486548420000,"doc_count":11},{"key_as_string":"2017-02-08T10:08:00.000Z","key":1486548480000,"doc_count":15},{"key_as_string":"2017-02-08T10:09:00.000Z","key":1486548540000,"doc_count":12},{"key_as_string":"2017-02-08T10:10:00.000Z","key":1486548600000,"doc_count":14},{"key_as_string":"2017-02-08T10:11:00.000Z","key":1486548660000,"doc_count":11},{"key_as_string":"2017-02-08T10:12:00.000Z","key":1486548720000,"doc_count":19},{"key_as_string":"2017-02-08T10:13:00.000Z","key":1486548780000,"doc_count":13},{"key_as_string":"2017-02-08T10:14:00.000Z","key":1486548840000,"doc_count":16},{"key_as_string":"2017-02-08T10:15:00.000Z","key":1486548900000,"doc_count":10},{"key_as_string":"2017-02-08T10:16:00.000Z","key":1486548960000,"doc_count":13},{"key_as_string":"2017-02-08T10:17:00.000Z","key":1486549020000,"doc_count":8},{"key_as_string":"2017-02-08T10:18:00.000Z","key":1486549080000,"doc_count":15},{"key_as_string":"2017-02-08T10:19:00.000Z","key":1486549140000,"doc_count":14},{"key_as_string":"2017-02-08T10:20:00.000Z","key":1486549200000,"doc_count":14},{"key_as_string":"2017-02-08T10:21:00.000Z","key":1486549260000,"doc_count":10},{"key_as_string":"2017-02-08T10:22:00.000Z","key":1486549320000,"doc_count":15},{"key_as_string":"2017-02-08T10:23:00.000Z","key":1486549380000,"doc_count":10},{"key_as_string":"2017-02-08T10:24:00.000Z","key":1486549440000,"doc_count":13},{"key_as_string":"2017-02-08T10:25:00.000Z","key":1486549500000,"doc_count":14},{"key_as_string":"2017-02-08T10:26:00.000Z","key":1486549560000,"doc_count":14},{"key_as_string":"2017-02-08T10:27:00.000Z","key":1486549620000,"doc_count":17},{"key_as_string":"2017-02-08T10:28:00.000Z","key":1486549680000,"doc_count":10},{"key_as_string":"2017-02-08T10:29:00.000Z","key":1486549740000,"doc_count":13},{"key_as_string":"2017-02-08T10:30:00.000Z","key":1486549800000,"doc_count":16},{"key_as_string":"2017-02-08T10:31:00.000Z","key":1486549860000,"doc_count":14},{"key_as_string":"2017-02-08T10:32:00.000Z","key":1486549920000,"doc_count":16},{"key_as_string":"2017-02-08T10:33:00.000Z","key":1486549980000,"doc_count":15},{"key_as_string":"2017-02-08T10:34:00.000Z","key":1486550040000,"doc_count":15},{"key_as_string":"2017-02-08T10:35:00.000Z","key":1486550100000,"doc_count":15},{"key_as_string":"2017-02-08T10:36:00.000Z","key":1486550160000,"doc_count":10},{"key_as_string":"2017-02-08T10:37:00.000Z","key":1486550220000,"doc_count":15},{"key_as_string":"2017-02-08T10:38:00.000Z","key":1486550280000,"doc_count":14},{"key_as_string":"2017-02-08T10:39:00.000Z","key":1486550340000,"doc_count":17},{"key_as_string":"2017-02-08T10:40:00.000Z","key":1486550400000,"doc_count":15},{"key_as_string":"2017-02-08T10:41:00.000Z","key":1486550460000,"doc_count":19},{"key_as_string":"2017-02-08T10:42:00.000Z","key":1486550520000,"doc_count":9},{"key_as_string":"2017-02-08T10:43:00.000Z","key":1486550580000,"doc_count":14},{"key_as_string":"2017-02-08T10:44:00.000Z","key":1486550640000,"doc_count":10},{"key_as_string":"2017-02-08T10:45:00.000Z","key":1486550700000,"doc_count":20},{"key_as_string":"2017-02-08T10:46:00.000Z","key":1486550760000,"doc_count":10},{"key_as_string":"2017-02-08T10:47:00.000Z","key":1486550820000,"doc_count":16},{"key_as_string":"2017-02-08T10:48:00.000Z","key":1486550880000,"doc_count":13},{"key_as_string":"2017-02-08T10:49:00.000Z","key":1486550940000,"doc_count":14},{"key_as_string":"2017-02-08T10:50:00.000Z","key":1486551000000,"doc_count":10},{"key_as_string":"2017-02-08T10:51:00.000Z","key":1486551060000,"doc_count":17},{"key_as_string":"2017-02-08T10:52:00.000Z","key":1486551120000,"doc_count":16},{"key_as_string":"2017-02-08T10:53:00.000Z","key":1486551180000,"doc_count":9},{"key_as_string":"2017-02-08T10:54:00.000Z","key":1486551240000,"doc_count":15},{"key_as_string":"2017-02-08T10:55:00.000Z","key":1486551300000,"doc_count":16},{"key_as_string":"2017-02-08T10:56:00.000Z","key":1486551360000,"doc_count":5},{"key_as_string":"2017-02-08T10:57:00.000Z","key":1486551420000,"doc_count":15},{"key_as_string":"2017-02-08T10:58:00.000Z","key":1486551480000,"doc_count":9},{"key_as_string":"2017-02-08T10:59:00.000Z","key":1486551540000,"doc_count":14},{"key_as_string":"2017-02-08T11:00:00.000Z","key":1486551600000,"doc_count":16},{"key_as_string":"2017-02-08T11:01:00.000Z","key":1486551660000,"doc_count":9},{"key_as_string":"2017-02-08T11:02:00.000Z","key":1486551720000,"doc_count":17},{"key_as_string":"2017-02-08T11:03:00.000Z","key":1486551780000,"doc_count":9},{"key_as_string":"2017-02-08T11:04:00.000Z","key":1486551840000,"doc_count":18},{"key_as_string":"2017-02-08T11:05:00.000Z","key":1486551900000,"doc_count":12},{"key_as_string":"2017-02-08T11:06:00.000Z","key":1486551960000,"doc_count":16},{"key_as_string":"2017-02-08T11:07:00.000Z","key":1486552020000,"doc_count":13},{"key_as_string":"2017-02-08T11:08:00.000Z","key":1486552080000,"doc_count":14},{"key_as_string":"2017-02-08T11:09:00.000Z","key":1486552140000,"doc_count":13},{"key_as_string":"2017-02-08T11:10:00.000Z","key":1486552200000,"doc_count":17},{"key_as_string":"2017-02-08T11:11:00.000Z","key":1486552260000,"doc_count":12},{"key_as_string":"2017-02-08T11:12:00.000Z","key":1486552320000,"doc_count":11},{"key_as_string":"2017-02-08T11:13:00.000Z","key":1486552380000,"doc_count":15},{"key_as_string":"2017-02-08T11:14:00.000Z","key":1486552440000,"doc_count":10},{"key_as_string":"2017-02-08T11:15:00.000Z","key":1486552500000,"doc_count":9},{"key_as_string":"2017-02-08T11:16:00.000Z","key":1486552560000,"doc_count":14},{"key_as_string":"2017-02-08T11:17:00.000Z","key":1486552620000,"doc_count":16},{"key_as_string":"2017-02-08T11:18:00.000Z","key":1486552680000,"doc_count":19},{"key_as_string":"2017-02-08T11:19:00.000Z","key":1486552740000,"doc_count":14},{"key_as_string":"2017-02-08T11:20:00.000Z","key":1486552800000,"doc_count":10},{"key_as_string":"2017-02-08T11:21:00.000Z","key":1486552860000,"doc_count":14},{"key_as_string":"2017-02-08T11:22:00.000Z","key":1486552920000,"doc_count":13},{"key_as_string":"2017-02-08T11:23:00.000Z","key":1486552980000,"doc_count":16},{"key_as_string":"2017-02-08T11:24:00.000Z","key":1486553040000,"doc_count":15},{"key_as_string":"2017-02-08T11:25:00.000Z","key":1486553100000,"doc_count":16},{"key_as_string":"2017-02-08T11:26:00.000Z","key":1486553160000,"doc_count":18},{"key_as_string":"2017-02-08T11:27:00.000Z","key":1486553220000,"doc_count":13},{"key_as_string":"2017-02-08T11:28:00.000Z","key":1486553280000,"doc_count":13},{"key_as_string":"2017-02-08T11:29:00.000Z","key":1486553340000,"doc_count":16},{"key_as_string":"2017-02-08T11:30:00.000Z","key":1486553400000,"doc_count":13},{"key_as_string":"2017-02-08T11:31:00.000Z","key":1486553460000,"doc_count":16},{"key_as_string":"2017-02-08T11:32:00.000Z","key":1486553520000,"doc_count":13},{"key_as_string":"2017-02-08T11:33:00.000Z","key":1486553580000,"doc_count":18},{"key_as_string":"2017-02-08T11:34:00.000Z","key":1486553640000,"doc_count":12},{"key_as_string":"2017-02-08T11:35:00.000Z","key":1486553700000,"doc_count":11},{"key_as_string":"2017-02-08T11:36:00.000Z","key":1486553760000,"doc_count":16},{"key_as_string":"2017-02-08T11:37:00.000Z","key":1486553820000,"doc_count":18},{"key_as_string":"2017-02-08T11:38:00.000Z","key":1486553880000,"doc_count":10},{"key_as_string":"2017-02-08T11:39:00.000Z","key":1486553940000,"doc_count":17},{"key_as_string":"2017-02-08T11:40:00.000Z","key":1486554000000,"doc_count":11},{"key_as_string":"2017-02-08T11:41:00.000Z","key":1486554060000,"doc_count":20},{"key_as_string":"2017-02-08T11:42:00.000Z","key":1486554120000,"doc_count":10},{"key_as_string":"2017-02-08T11:43:00.000Z","key":1486554180000,"doc_count":17},{"key_as_string":"2017-02-08T11:44:00.000Z","key":1486554240000,"doc_count":21},{"key_as_string":"2017-02-08T11:45:00.000Z","key":1486554300000,"doc_count":13},{"key_as_string":"2017-02-08T11:46:00.000Z","key":1486554360000,"doc_count":12},{"key_as_string":"2017-02-08T11:47:00.000Z","key":1486554420000,"doc_count":11},{"key_as_string":"2017-02-08T11:48:00.000Z","key":1486554480000,"doc_count":14},{"key_as_string":"2017-02-08T11:49:00.000Z","key":1486554540000,"doc_count":11},{"key_as_string":"2017-02-08T11:50:00.000Z","key":1486554600000,"doc_count":9},{"key_as_string":"2017-02-08T11:51:00.000Z","key":1486554660000,"doc_count":14},{"key_as_string":"2017-02-08T11:52:00.000Z","key":1486554720000,"doc_count":13},{"key_as_string":"2017-02-08T11:53:00.000Z","key":1486554780000,"doc_count":12},{"key_as_string":"2017-02-08T11:54:00.000Z","key":1486554840000,"doc_count":13},{"key_as_string":"2017-02-08T11:55:00.000Z","key":1486554900000,"doc_count":18},{"key_as_string":"2017-02-08T11:56:00.000Z","key":1486554960000,"doc_count":18},{"key_as_string":"2017-02-08T11:57:00.000Z","key":1486555020000,"doc_count":13},{"key_as_string":"2017-02-08T11:58:00.000Z","key":1486555080000,"doc_count":13},{"key_as_string":"2017-02-08T11:59:00.000Z","key":1486555140000,"doc_count":14},{"key_as_string":"2017-02-08T12:00:00.000Z","key":1486555200000,"doc_count":18},{"key_as_string":"2017-02-08T12:01:00.000Z","key":1486555260000,"doc_count":14},{"key_as_string":"2017-02-08T12:02:00.000Z","key":1486555320000,"doc_count":14},{"key_as_string":"2017-02-08T12:03:00.000Z","key":1486555380000,"doc_count":13},{"key_as_string":"2017-02-08T12:04:00.000Z","key":1486555440000,"doc_count":18},{"key_as_string":"2017-02-08T12:05:00.000Z","key":1486555500000,"doc_count":13},{"key_as_string":"2017-02-08T12:06:00.000Z","key":1486555560000,"doc_count":16},{"key_as_string":"2017-02-08T12:07:00.000Z","key":1486555620000,"doc_count":13},{"key_as_string":"2017-02-08T12:08:00.000Z","key":1486555680000,"doc_count":14},{"key_as_string":"2017-02-08T12:09:00.000Z","key":1486555740000,"doc_count":16},{"key_as_string":"2017-02-08T12:10:00.000Z","key":1486555800000,"doc_count":13},{"key_as_string":"2017-02-08T12:11:00.000Z","key":1486555860000,"doc_count":13},{"key_as_string":"2017-02-08T12:12:00.000Z","key":1486555920000,"doc_count":15},{"key_as_string":"2017-02-08T12:13:00.000Z","key":1486555980000,"doc_count":11},{"key_as_string":"2017-02-08T12:14:00.000Z","key":1486556040000,"doc_count":15},{"key_as_string":"2017-02-08T12:15:00.000Z","key":1486556100000,"doc_count":12},{"key_as_string":"2017-02-08T12:16:00.000Z","key":1486556160000,"doc_count":14},{"key_as_string":"2017-02-08T12:17:00.000Z","key":1486556220000,"doc_count":13},{"key_as_string":"2017-02-08T12:18:00.000Z","key":1486556280000,"doc_count":19},{"key_as_string":"2017-02-08T12:19:00.000Z","key":1486556340000,"doc_count":13},{"key_as_string":"2017-02-08T12:20:00.000Z","key":1486556400000,"doc_count":14},{"key_as_string":"2017-02-08T12:21:00.000Z","key":1486556460000,"doc_count":12},{"key_as_string":"2017-02-08T12:22:00.000Z","key":1486556520000,"doc_count":15},{"key_as_string":"2017-02-08T12:23:00.000Z","key":1486556580000,"doc_count":17},{"key_as_string":"2017-02-08T12:24:00.000Z","key":1486556640000,"doc_count":14},{"key_as_string":"2017-02-08T12:25:00.000Z","key":1486556700000,"doc_count":10},{"key_as_string":"2017-02-08T12:26:00.000Z","key":1486556760000,"doc_count":13},{"key_as_string":"2017-02-08T12:27:00.000Z","key":1486556820000,"doc_count":14},{"key_as_string":"2017-02-08T12:28:00.000Z","key":1486556880000,"doc_count":10},{"key_as_string":"2017-02-08T12:29:00.000Z","key":1486556940000,"doc_count":13},{"key_as_string":"2017-02-08T12:30:00.000Z","key":1486557000000,"doc_count":16},{"key_as_string":"2017-02-08T12:31:00.000Z","key":1486557060000,"doc_count":15},{"key_as_string":"2017-02-08T12:32:00.000Z","key":1486557120000,"doc_count":9},{"key_as_string":"2017-02-08T12:33:00.000Z","key":1486557180000,"doc_count":16},{"key_as_string":"2017-02-08T12:34:00.000Z","key":1486557240000,"doc_count":16},{"key_as_string":"2017-02-08T12:35:00.000Z","key":1486557300000,"doc_count":9},{"key_as_string":"2017-02-08T12:36:00.000Z","key":1486557360000,"doc_count":11},{"key_as_string":"2017-02-08T12:37:00.000Z","key":1486557420000,"doc_count":12},{"key_as_string":"2017-02-08T12:38:00.000Z","key":1486557480000,"doc_count":16},{"key_as_string":"2017-02-08T12:39:00.000Z","key":1486557540000,"doc_count":13},{"key_as_string":"2017-02-08T12:40:00.000Z","key":1486557600000,"doc_count":12},{"key_as_string":"2017-02-08T12:41:00.000Z","key":1486557660000,"doc_count":15},{"key_as_string":"2017-02-08T12:42:00.000Z","key":1486557720000,"doc_count":12},{"key_as_string":"2017-02-08T12:43:00.000Z","key":1486557780000,"doc_count":13},{"key_as_string":"2017-02-08T12:44:00.000Z","key":1486557840000,"doc_count":13},{"key_as_string":"2017-02-08T12:45:00.000Z","key":1486557900000,"doc_count":15},{"key_as_string":"2017-02-08T12:46:00.000Z","key":1486557960000,"doc_count":15},{"key_as_string":"2017-02-08T12:47:00.000Z","key":1486558020000,"doc_count":12},{"key_as_string":"2017-02-08T12:48:00.000Z","key":1486558080000,"doc_count":13},{"key_as_string":"2017-02-08T12:49:00.000Z","key":1486558140000,"doc_count":15},{"key_as_string":"2017-02-08T12:50:00.000Z","key":1486558200000,"doc_count":16},{"key_as_string":"2017-02-08T12:51:00.000Z","key":1486558260000,"doc_count":14},{"key_as_string":"2017-02-08T12:52:00.000Z","key":1486558320000,"doc_count":11},{"key_as_string":"2017-02-08T12:53:00.000Z","key":1486558380000,"doc_count":10},{"key_as_string":"2017-02-08T12:54:00.000Z","key":1486558440000,"doc_count":14},{"key_as_string":"2017-02-08T12:55:00.000Z","key":1486558500000,"doc_count":11},{"key_as_string":"2017-02-08T12:56:00.000Z","key":1486558560000,"doc_count":9},{"key_as_string":"2017-02-08T12:57:00.000Z","key":1486558620000,"doc_count":13},{"key_as_string":"2017-02-08T12:58:00.000Z","key":1486558680000,"doc_count":13},{"key_as_string":"2017-02-08T12:59:00.000Z","key":1486558740000,"doc_count":13},{"key_as_string":"2017-02-08T13:00:00.000Z","key":1486558800000,"doc_count":18},{"key_as_string":"2017-02-08T13:01:00.000Z","key":1486558860000,"doc_count":13},{"key_as_string":"2017-02-08T13:02:00.000Z","key":1486558920000,"doc_count":20},{"key_as_string":"2017-02-08T13:03:00.000Z","key":1486558980000,"doc_count":10},{"key_as_string":"2017-02-08T13:04:00.000Z","key":1486559040000,"doc_count":16},{"key_as_string":"2017-02-08T13:05:00.000Z","key":1486559100000,"doc_count":11},{"key_as_string":"2017-02-08T13:06:00.000Z","key":1486559160000,"doc_count":18},{"key_as_string":"2017-02-08T13:07:00.000Z","key":1486559220000,"doc_count":10},{"key_as_string":"2017-02-08T13:08:00.000Z","key":1486559280000,"doc_count":15},{"key_as_string":"2017-02-08T13:09:00.000Z","key":1486559340000,"doc_count":17},{"key_as_string":"2017-02-08T13:10:00.000Z","key":1486559400000,"doc_count":6},{"key_as_string":"2017-02-08T13:11:00.000Z","key":1486559460000,"doc_count":19},{"key_as_string":"2017-02-08T13:12:00.000Z","key":1486559520000,"doc_count":12},{"key_as_string":"2017-02-08T13:13:00.000Z","key":1486559580000,"doc_count":11},{"key_as_string":"2017-02-08T13:14:00.000Z","key":1486559640000,"doc_count":15},{"key_as_string":"2017-02-08T13:15:00.000Z","key":1486559700000,"doc_count":10},{"key_as_string":"2017-02-08T13:16:00.000Z","key":1486559760000,"doc_count":16},{"key_as_string":"2017-02-08T13:17:00.000Z","key":1486559820000,"doc_count":16},{"key_as_string":"2017-02-08T13:18:00.000Z","key":1486559880000,"doc_count":14},{"key_as_string":"2017-02-08T13:19:00.000Z","key":1486559940000,"doc_count":12},{"key_as_string":"2017-02-08T13:20:00.000Z","key":1486560000000,"doc_count":10},{"key_as_string":"2017-02-08T13:21:00.000Z","key":1486560060000,"doc_count":18},{"key_as_string":"2017-02-08T13:22:00.000Z","key":1486560120000,"doc_count":14},{"key_as_string":"2017-02-08T13:23:00.000Z","key":1486560180000,"doc_count":11},{"key_as_string":"2017-02-08T13:24:00.000Z","key":1486560240000,"doc_count":15},{"key_as_string":"2017-02-08T13:25:00.000Z","key":1486560300000,"doc_count":17},{"key_as_string":"2017-02-08T13:26:00.000Z","key":1486560360000,"doc_count":10},{"key_as_string":"2017-02-08T13:27:00.000Z","key":1486560420000,"doc_count":14},{"key_as_string":"2017-02-08T13:28:00.000Z","key":1486560480000,"doc_count":14},{"key_as_string":"2017-02-08T13:29:00.000Z","key":1486560540000,"doc_count":13},{"key_as_string":"2017-02-08T13:30:00.000Z","key":1486560600000,"doc_count":15},{"key_as_string":"2017-02-08T13:31:00.000Z","key":1486560660000,"doc_count":16},{"key_as_string":"2017-02-08T13:32:00.000Z","key":1486560720000,"doc_count":13},{"key_as_string":"2017-02-08T13:33:00.000Z","key":1486560780000,"doc_count":13},{"key_as_string":"2017-02-08T13:34:00.000Z","key":1486560840000,"doc_count":15},{"key_as_string":"2017-02-08T13:35:00.000Z","key":1486560900000,"doc_count":8},{"key_as_string":"2017-02-08T13:36:00.000Z","key":1486560960000,"doc_count":18},{"key_as_string":"2017-02-08T13:37:00.000Z","key":1486561020000,"doc_count":13},{"key_as_string":"2017-02-08T13:38:00.000Z","key":1486561080000,"doc_count":14},{"key_as_string":"2017-02-08T13:39:00.000Z","key":1486561140000,"doc_count":14},{"key_as_string":"2017-02-08T13:40:00.000Z","key":1486561200000,"doc_count":17},{"key_as_string":"2017-02-08T13:41:00.000Z","key":1486561260000,"doc_count":12},{"key_as_string":"2017-02-08T13:42:00.000Z","key":1486561320000,"doc_count":10},{"key_as_string":"2017-02-08T13:43:00.000Z","key":1486561380000,"doc_count":17},{"key_as_string":"2017-02-08T13:44:00.000Z","key":1486561440000,"doc_count":12},{"key_as_string":"2017-02-08T13:45:00.000Z","key":1486561500000,"doc_count":9},{"key_as_string":"2017-02-08T13:46:00.000Z","key":1486561560000,"doc_count":21},{"key_as_string":"2017-02-08T13:47:00.000Z","key":1486561620000,"doc_count":16},{"key_as_string":"2017-02-08T13:48:00.000Z","key":1486561680000,"doc_count":17},{"key_as_string":"2017-02-08T13:49:00.000Z","key":1486561740000,"doc_count":11},{"key_as_string":"2017-02-08T13:50:00.000Z","key":1486561800000,"doc_count":17},{"key_as_string":"2017-02-08T13:51:00.000Z","key":1486561860000,"doc_count":9},{"key_as_string":"2017-02-08T13:52:00.000Z","key":1486561920000,"doc_count":14},{"key_as_string":"2017-02-08T13:53:00.000Z","key":1486561980000,"doc_count":10},{"key_as_string":"2017-02-08T13:54:00.000Z","key":1486562040000,"doc_count":9},{"key_as_string":"2017-02-08T13:55:00.000Z","key":1486562100000,"doc_count":21},{"key_as_string":"2017-02-08T13:56:00.000Z","key":1486562160000,"doc_count":14},{"key_as_string":"2017-02-08T13:57:00.000Z","key":1486562220000,"doc_count":11},{"key_as_string":"2017-02-08T13:58:00.000Z","key":1486562280000,"doc_count":15},{"key_as_string":"2017-02-08T13:59:00.000Z","key":1486562340000,"doc_count":10},{"key_as_string":"2017-02-08T14:00:00.000Z","key":1486562400000,"doc_count":12},{"key_as_string":"2017-02-08T14:01:00.000Z","key":1486562460000,"doc_count":15},{"key_as_string":"2017-02-08T14:02:00.000Z","key":1486562520000,"doc_count":11},{"key_as_string":"2017-02-08T14:03:00.000Z","key":1486562580000,"doc_count":14},{"key_as_string":"2017-02-08T14:04:00.000Z","key":1486562640000,"doc_count":18},{"key_as_string":"2017-02-08T14:05:00.000Z","key":1486562700000,"doc_count":11},{"key_as_string":"2017-02-08T14:06:00.000Z","key":1486562760000,"doc_count":11},{"key_as_string":"2017-02-08T14:07:00.000Z","key":1486562820000,"doc_count":16},{"key_as_string":"2017-02-08T14:08:00.000Z","key":1486562880000,"doc_count":10},{"key_as_string":"2017-02-08T14:09:00.000Z","key":1486562940000,"doc_count":14},{"key_as_string":"2017-02-08T14:10:00.000Z","key":1486563000000,"doc_count":14},{"key_as_string":"2017-02-08T14:11:00.000Z","key":1486563060000,"doc_count":9},{"key_as_string":"2017-02-08T14:12:00.000Z","key":1486563120000,"doc_count":15},{"key_as_string":"2017-02-08T14:13:00.000Z","key":1486563180000,"doc_count":17},{"key_as_string":"2017-02-08T14:14:00.000Z","key":1486563240000,"doc_count":5},{"key_as_string":"2017-02-08T14:15:00.000Z","key":1486563300000,"doc_count":15},{"key_as_string":"2017-02-08T14:16:00.000Z","key":1486563360000,"doc_count":15},{"key_as_string":"2017-02-08T14:17:00.000Z","key":1486563420000,"doc_count":13},{"key_as_string":"2017-02-08T14:18:00.000Z","key":1486563480000,"doc_count":15},{"key_as_string":"2017-02-08T14:19:00.000Z","key":1486563540000,"doc_count":14},{"key_as_string":"2017-02-08T14:20:00.000Z","key":1486563600000,"doc_count":8},{"key_as_string":"2017-02-08T14:21:00.000Z","key":1486563660000,"doc_count":14},{"key_as_string":"2017-02-08T14:22:00.000Z","key":1486563720000,"doc_count":11},{"key_as_string":"2017-02-08T14:23:00.000Z","key":1486563780000,"doc_count":14},{"key_as_string":"2017-02-08T14:24:00.000Z","key":1486563840000,"doc_count":15},{"key_as_string":"2017-02-08T14:25:00.000Z","key":1486563900000,"doc_count":9},{"key_as_string":"2017-02-08T14:26:00.000Z","key":1486563960000,"doc_count":16},{"key_as_string":"2017-02-08T14:27:00.000Z","key":1486564020000,"doc_count":15},{"key_as_string":"2017-02-08T14:28:00.000Z","key":1486564080000,"doc_count":13},{"key_as_string":"2017-02-08T14:29:00.000Z","key":1486564140000,"doc_count":14},{"key_as_string":"2017-02-08T14:30:00.000Z","key":1486564200000,"doc_count":10},{"key_as_string":"2017-02-08T14:31:00.000Z","key":1486564260000,"doc_count":15},{"key_as_string":"2017-02-08T14:32:00.000Z","key":1486564320000,"doc_count":15},{"key_as_string":"2017-02-08T14:33:00.000Z","key":1486564380000,"doc_count":11},{"key_as_string":"2017-02-08T14:34:00.000Z","key":1486564440000,"doc_count":13},{"key_as_string":"2017-02-08T14:35:00.000Z","key":1486564500000,"doc_count":14},{"key_as_string":"2017-02-08T14:36:00.000Z","key":1486564560000,"doc_count":11},{"key_as_string":"2017-02-08T14:37:00.000Z","key":1486564620000,"doc_count":10},{"key_as_string":"2017-02-08T14:38:00.000Z","key":1486564680000,"doc_count":18},{"key_as_string":"2017-02-08T14:39:00.000Z","key":1486564740000,"doc_count":12},{"key_as_string":"2017-02-08T14:40:00.000Z","key":1486564800000,"doc_count":14},{"key_as_string":"2017-02-08T14:41:00.000Z","key":1486564860000,"doc_count":15},{"key_as_string":"2017-02-08T14:42:00.000Z","key":1486564920000,"doc_count":17},{"key_as_string":"2017-02-08T14:43:00.000Z","key":1486564980000,"doc_count":9},{"key_as_string":"2017-02-08T14:44:00.000Z","key":1486565040000,"doc_count":10},{"key_as_string":"2017-02-08T14:45:00.000Z","key":1486565100000,"doc_count":9},{"key_as_string":"2017-02-08T14:46:00.000Z","key":1486565160000,"doc_count":15},{"key_as_string":"2017-02-08T14:47:00.000Z","key":1486565220000,"doc_count":12},{"key_as_string":"2017-02-08T14:48:00.000Z","key":1486565280000,"doc_count":10},{"key_as_string":"2017-02-08T14:49:00.000Z","key":1486565340000,"doc_count":18},{"key_as_string":"2017-02-08T14:50:00.000Z","key":1486565400000,"doc_count":9},{"key_as_string":"2017-02-08T14:51:00.000Z","key":1486565460000,"doc_count":15},{"key_as_string":"2017-02-08T14:52:00.000Z","key":1486565520000,"doc_count":19},{"key_as_string":"2017-02-08T14:53:00.000Z","key":1486565580000,"doc_count":11},{"key_as_string":"2017-02-08T14:54:00.000Z","key":1486565640000,"doc_count":12},{"key_as_string":"2017-02-08T14:55:00.000Z","key":1486565700000,"doc_count":10},{"key_as_string":"2017-02-08T14:56:00.000Z","key":1486565760000,"doc_count":9},{"key_as_string":"2017-02-08T14:57:00.000Z","key":1486565820000,"doc_count":21},{"key_as_string":"2017-02-08T14:58:00.000Z","key":1486565880000,"doc_count":13},{"key_as_string":"2017-02-08T14:59:00.000Z","key":1486565940000,"doc_count":16},{"key_as_string":"2017-02-08T15:00:00.000Z","key":1486566000000,"doc_count":9},{"key_as_string":"2017-02-08T15:01:00.000Z","key":1486566060000,"doc_count":16},{"key_as_string":"2017-02-08T15:02:00.000Z","key":1486566120000,"doc_count":11},{"key_as_string":"2017-02-08T15:03:00.000Z","key":1486566180000,"doc_count":14},{"key_as_string":"2017-02-08T15:04:00.000Z","key":1486566240000,"doc_count":16},{"key_as_string":"2017-02-08T15:05:00.000Z","key":1486566300000,"doc_count":10},{"key_as_string":"2017-02-08T15:06:00.000Z","key":1486566360000,"doc_count":14},{"key_as_string":"2017-02-08T15:07:00.000Z","key":1486566420000,"doc_count":9},{"key_as_string":"2017-02-08T15:08:00.000Z","key":1486566480000,"doc_count":13},{"key_as_string":"2017-02-08T15:09:00.000Z","key":1486566540000,"doc_count":13},{"key_as_string":"2017-02-08T15:10:00.000Z","key":1486566600000,"doc_count":14},{"key_as_string":"2017-02-08T15:11:00.000Z","key":1486566660000,"doc_count":15},{"key_as_string":"2017-02-08T15:12:00.000Z","key":1486566720000,"doc_count":15},{"key_as_string":"2017-02-08T15:13:00.000Z","key":1486566780000,"doc_count":11},{"key_as_string":"2017-02-08T15:14:00.000Z","key":1486566840000,"doc_count":7},{"key_as_string":"2017-02-08T15:15:00.000Z","key":1486566900000,"doc_count":20},{"key_as_string":"2017-02-08T15:16:00.000Z","key":1486566960000,"doc_count":11},{"key_as_string":"2017-02-08T15:17:00.000Z","key":1486567020000,"doc_count":15},{"key_as_string":"2017-02-08T15:18:00.000Z","key":1486567080000,"doc_count":14},{"key_as_string":"2017-02-08T15:19:00.000Z","key":1486567140000,"doc_count":11},{"key_as_string":"2017-02-08T15:20:00.000Z","key":1486567200000,"doc_count":18},{"key_as_string":"2017-02-08T15:21:00.000Z","key":1486567260000,"doc_count":11},{"key_as_string":"2017-02-08T15:22:00.000Z","key":1486567320000,"doc_count":12},{"key_as_string":"2017-02-08T15:23:00.000Z","key":1486567380000,"doc_count":12},{"key_as_string":"2017-02-08T15:24:00.000Z","key":1486567440000,"doc_count":8},{"key_as_string":"2017-02-08T15:25:00.000Z","key":1486567500000,"doc_count":11},{"key_as_string":"2017-02-08T15:26:00.000Z","key":1486567560000,"doc_count":12},{"key_as_string":"2017-02-08T15:27:00.000Z","key":1486567620000,"doc_count":12},{"key_as_string":"2017-02-08T15:28:00.000Z","key":1486567680000,"doc_count":14},{"key_as_string":"2017-02-08T15:29:00.000Z","key":1486567740000,"doc_count":13},{"key_as_string":"2017-02-08T15:30:00.000Z","key":1486567800000,"doc_count":13},{"key_as_string":"2017-02-08T15:31:00.000Z","key":1486567860000,"doc_count":14},{"key_as_string":"2017-02-08T15:32:00.000Z","key":1486567920000,"doc_count":15},{"key_as_string":"2017-02-08T15:33:00.000Z","key":1486567980000,"doc_count":12},{"key_as_string":"2017-02-08T15:34:00.000Z","key":1486568040000,"doc_count":15},{"key_as_string":"2017-02-08T15:35:00.000Z","key":1486568100000,"doc_count":20},{"key_as_string":"2017-02-08T15:36:00.000Z","key":1486568160000,"doc_count":11},{"key_as_string":"2017-02-08T15:37:00.000Z","key":1486568220000,"doc_count":13},{"key_as_string":"2017-02-08T15:38:00.000Z","key":1486568280000,"doc_count":13},{"key_as_string":"2017-02-08T15:39:00.000Z","key":1486568340000,"doc_count":10},{"key_as_string":"2017-02-08T15:40:00.000Z","key":1486568400000,"doc_count":14},{"key_as_string":"2017-02-08T15:41:00.000Z","key":1486568460000,"doc_count":16},{"key_as_string":"2017-02-08T15:42:00.000Z","key":1486568520000,"doc_count":17},{"key_as_string":"2017-02-08T15:43:00.000Z","key":1486568580000,"doc_count":15},{"key_as_string":"2017-02-08T15:44:00.000Z","key":1486568640000,"doc_count":14},{"key_as_string":"2017-02-08T15:45:00.000Z","key":1486568700000,"doc_count":14},{"key_as_string":"2017-02-08T15:46:00.000Z","key":1486568760000,"doc_count":12},{"key_as_string":"2017-02-08T15:47:00.000Z","key":1486568820000,"doc_count":16},{"key_as_string":"2017-02-08T15:48:00.000Z","key":1486568880000,"doc_count":16},{"key_as_string":"2017-02-08T15:49:00.000Z","key":1486568940000,"doc_count":12},{"key_as_string":"2017-02-08T15:50:00.000Z","key":1486569000000,"doc_count":15},{"key_as_string":"2017-02-08T15:51:00.000Z","key":1486569060000,"doc_count":10},{"key_as_string":"2017-02-08T15:52:00.000Z","key":1486569120000,"doc_count":12},{"key_as_string":"2017-02-08T15:53:00.000Z","key":1486569180000,"doc_count":12},{"key_as_string":"2017-02-08T15:54:00.000Z","key":1486569240000,"doc_count":16},{"key_as_string":"2017-02-08T15:55:00.000Z","key":1486569300000,"doc_count":12},{"key_as_string":"2017-02-08T15:56:00.000Z","key":1486569360000,"doc_count":9},{"key_as_string":"2017-02-08T15:57:00.000Z","key":1486569420000,"doc_count":11},{"key_as_string":"2017-02-08T15:58:00.000Z","key":1486569480000,"doc_count":10},{"key_as_string":"2017-02-08T15:59:00.000Z","key":1486569540000,"doc_count":12},{"key_as_string":"2017-02-08T16:00:00.000Z","key":1486569600000,"doc_count":12},{"key_as_string":"2017-02-08T16:01:00.000Z","key":1486569660000,"doc_count":14},{"key_as_string":"2017-02-08T16:02:00.000Z","key":1486569720000,"doc_count":13},{"key_as_string":"2017-02-08T16:03:00.000Z","key":1486569780000,"doc_count":11},{"key_as_string":"2017-02-08T16:04:00.000Z","key":1486569840000,"doc_count":12},{"key_as_string":"2017-02-08T16:05:00.000Z","key":1486569900000,"doc_count":16},{"key_as_string":"2017-02-08T16:06:00.000Z","key":1486569960000,"doc_count":13},{"key_as_string":"2017-02-08T16:07:00.000Z","key":1486570020000,"doc_count":12},{"key_as_string":"2017-02-08T16:08:00.000Z","key":1486570080000,"doc_count":15},{"key_as_string":"2017-02-08T16:09:00.000Z","key":1486570140000,"doc_count":7},{"key_as_string":"2017-02-08T16:10:00.000Z","key":1486570200000,"doc_count":15},{"key_as_string":"2017-02-08T16:11:00.000Z","key":1486570260000,"doc_count":13},{"key_as_string":"2017-02-08T16:12:00.000Z","key":1486570320000,"doc_count":10},{"key_as_string":"2017-02-08T16:13:00.000Z","key":1486570380000,"doc_count":13},{"key_as_string":"2017-02-08T16:14:00.000Z","key":1486570440000,"doc_count":13},{"key_as_string":"2017-02-08T16:15:00.000Z","key":1486570500000,"doc_count":7},{"key_as_string":"2017-02-08T16:16:00.000Z","key":1486570560000,"doc_count":12},{"key_as_string":"2017-02-08T16:17:00.000Z","key":1486570620000,"doc_count":11},{"key_as_string":"2017-02-08T16:18:00.000Z","key":1486570680000,"doc_count":10},{"key_as_string":"2017-02-08T16:19:00.000Z","key":1486570740000,"doc_count":8},{"key_as_string":"2017-02-08T16:20:00.000Z","key":1486570800000,"doc_count":13},{"key_as_string":"2017-02-08T16:21:00.000Z","key":1486570860000,"doc_count":12},{"key_as_string":"2017-02-08T16:22:00.000Z","key":1486570920000,"doc_count":12},{"key_as_string":"2017-02-08T16:23:00.000Z","key":1486570980000,"doc_count":9},{"key_as_string":"2017-02-08T16:24:00.000Z","key":1486571040000,"doc_count":12},{"key_as_string":"2017-02-08T16:25:00.000Z","key":1486571100000,"doc_count":13},{"key_as_string":"2017-02-08T16:26:00.000Z","key":1486571160000,"doc_count":17},{"key_as_string":"2017-02-08T16:27:00.000Z","key":1486571220000,"doc_count":15},{"key_as_string":"2017-02-08T16:28:00.000Z","key":1486571280000,"doc_count":14},{"key_as_string":"2017-02-08T16:29:00.000Z","key":1486571340000,"doc_count":15},{"key_as_string":"2017-02-08T16:30:00.000Z","key":1486571400000,"doc_count":12},{"key_as_string":"2017-02-08T16:31:00.000Z","key":1486571460000,"doc_count":11},{"key_as_string":"2017-02-08T16:32:00.000Z","key":1486571520000,"doc_count":16},{"key_as_string":"2017-02-08T16:33:00.000Z","key":1486571580000,"doc_count":9},{"key_as_string":"2017-02-08T16:34:00.000Z","key":1486571640000,"doc_count":10},{"key_as_string":"2017-02-08T16:35:00.000Z","key":1486571700000,"doc_count":16},{"key_as_string":"2017-02-08T16:36:00.000Z","key":1486571760000,"doc_count":18},{"key_as_string":"2017-02-08T16:37:00.000Z","key":1486571820000,"doc_count":13},{"key_as_string":"2017-02-08T16:38:00.000Z","key":1486571880000,"doc_count":12},{"key_as_string":"2017-02-08T16:39:00.000Z","key":1486571940000,"doc_count":12},{"key_as_string":"2017-02-08T16:40:00.000Z","key":1486572000000,"doc_count":15},{"key_as_string":"2017-02-08T16:41:00.000Z","key":1486572060000,"doc_count":14},{"key_as_string":"2017-02-08T16:42:00.000Z","key":1486572120000,"doc_count":9},{"key_as_string":"2017-02-08T16:43:00.000Z","key":1486572180000,"doc_count":10},{"key_as_string":"2017-02-08T16:44:00.000Z","key":1486572240000,"doc_count":14},{"key_as_string":"2017-02-08T16:45:00.000Z","key":1486572300000,"doc_count":15},{"key_as_string":"2017-02-08T16:46:00.000Z","key":1486572360000,"doc_count":18},{"key_as_string":"2017-02-08T16:47:00.000Z","key":1486572420000,"doc_count":8},{"key_as_string":"2017-02-08T16:48:00.000Z","key":1486572480000,"doc_count":14},{"key_as_string":"2017-02-08T16:49:00.000Z","key":1486572540000,"doc_count":11},{"key_as_string":"2017-02-08T16:50:00.000Z","key":1486572600000,"doc_count":12},{"key_as_string":"2017-02-08T16:51:00.000Z","key":1486572660000,"doc_count":8},{"key_as_string":"2017-02-08T16:52:00.000Z","key":1486572720000,"doc_count":13},{"key_as_string":"2017-02-08T16:53:00.000Z","key":1486572780000,"doc_count":12},{"key_as_string":"2017-02-08T16:54:00.000Z","key":1486572840000,"doc_count":15},{"key_as_string":"2017-02-08T16:55:00.000Z","key":1486572900000,"doc_count":15},{"key_as_string":"2017-02-08T16:56:00.000Z","key":1486572960000,"doc_count":12},{"key_as_string":"2017-02-08T16:57:00.000Z","key":1486573020000,"doc_count":10},{"key_as_string":"2017-02-08T16:58:00.000Z","key":1486573080000,"doc_count":11},{"key_as_string":"2017-02-08T16:59:00.000Z","key":1486573140000,"doc_count":18},{"key_as_string":"2017-02-08T17:00:00.000Z","key":1486573200000,"doc_count":11},{"key_as_string":"2017-02-08T17:01:00.000Z","key":1486573260000,"doc_count":10},{"key_as_string":"2017-02-08T17:02:00.000Z","key":1486573320000,"doc_count":14},{"key_as_string":"2017-02-08T17:03:00.000Z","key":1486573380000,"doc_count":11},{"key_as_string":"2017-02-08T17:04:00.000Z","key":1486573440000,"doc_count":14},{"key_as_string":"2017-02-08T17:05:00.000Z","key":1486573500000,"doc_count":7},{"key_as_string":"2017-02-08T17:06:00.000Z","key":1486573560000,"doc_count":17},{"key_as_string":"2017-02-08T17:07:00.000Z","key":1486573620000,"doc_count":6},{"key_as_string":"2017-02-08T17:08:00.000Z","key":1486573680000,"doc_count":12},{"key_as_string":"2017-02-08T17:09:00.000Z","key":1486573740000,"doc_count":7},{"key_as_string":"2017-02-08T17:10:00.000Z","key":1486573800000,"doc_count":17},{"key_as_string":"2017-02-08T17:11:00.000Z","key":1486573860000,"doc_count":19},{"key_as_string":"2017-02-08T17:12:00.000Z","key":1486573920000,"doc_count":13},{"key_as_string":"2017-02-08T17:13:00.000Z","key":1486573980000,"doc_count":9},{"key_as_string":"2017-02-08T17:14:00.000Z","key":1486574040000,"doc_count":16},{"key_as_string":"2017-02-08T17:15:00.000Z","key":1486574100000,"doc_count":15},{"key_as_string":"2017-02-08T17:16:00.000Z","key":1486574160000,"doc_count":11},{"key_as_string":"2017-02-08T17:17:00.000Z","key":1486574220000,"doc_count":18},{"key_as_string":"2017-02-08T17:18:00.000Z","key":1486574280000,"doc_count":13},{"key_as_string":"2017-02-08T17:19:00.000Z","key":1486574340000,"doc_count":16},{"key_as_string":"2017-02-08T17:20:00.000Z","key":1486574400000,"doc_count":14},{"key_as_string":"2017-02-08T17:21:00.000Z","key":1486574460000,"doc_count":13},{"key_as_string":"2017-02-08T17:22:00.000Z","key":1486574520000,"doc_count":13},{"key_as_string":"2017-02-08T17:23:00.000Z","key":1486574580000,"doc_count":11},{"key_as_string":"2017-02-08T17:24:00.000Z","key":1486574640000,"doc_count":8},{"key_as_string":"2017-02-08T17:25:00.000Z","key":1486574700000,"doc_count":9},{"key_as_string":"2017-02-08T17:26:00.000Z","key":1486574760000,"doc_count":16},{"key_as_string":"2017-02-08T17:27:00.000Z","key":1486574820000,"doc_count":13},{"key_as_string":"2017-02-08T17:28:00.000Z","key":1486574880000,"doc_count":9},{"key_as_string":"2017-02-08T17:29:00.000Z","key":1486574940000,"doc_count":13},{"key_as_string":"2017-02-08T17:30:00.000Z","key":1486575000000,"doc_count":13},{"key_as_string":"2017-02-08T17:31:00.000Z","key":1486575060000,"doc_count":15},{"key_as_string":"2017-02-08T17:32:00.000Z","key":1486575120000,"doc_count":10},{"key_as_string":"2017-02-08T17:33:00.000Z","key":1486575180000,"doc_count":14},{"key_as_string":"2017-02-08T17:34:00.000Z","key":1486575240000,"doc_count":10},{"key_as_string":"2017-02-08T17:35:00.000Z","key":1486575300000,"doc_count":14},{"key_as_string":"2017-02-08T17:36:00.000Z","key":1486575360000,"doc_count":10},{"key_as_string":"2017-02-08T17:37:00.000Z","key":1486575420000,"doc_count":9},{"key_as_string":"2017-02-08T17:38:00.000Z","key":1486575480000,"doc_count":11},{"key_as_string":"2017-02-08T17:39:00.000Z","key":1486575540000,"doc_count":12},{"key_as_string":"2017-02-08T17:40:00.000Z","key":1486575600000,"doc_count":10},{"key_as_string":"2017-02-08T17:41:00.000Z","key":1486575660000,"doc_count":15},{"key_as_string":"2017-02-08T17:42:00.000Z","key":1486575720000,"doc_count":18},{"key_as_string":"2017-02-08T17:43:00.000Z","key":1486575780000,"doc_count":9},{"key_as_string":"2017-02-08T17:44:00.000Z","key":1486575840000,"doc_count":14},{"key_as_string":"2017-02-08T17:45:00.000Z","key":1486575900000,"doc_count":9},{"key_as_string":"2017-02-08T17:46:00.000Z","key":1486575960000,"doc_count":11},{"key_as_string":"2017-02-08T17:47:00.000Z","key":1486576020000,"doc_count":13},{"key_as_string":"2017-02-08T17:48:00.000Z","key":1486576080000,"doc_count":10},{"key_as_string":"2017-02-08T17:49:00.000Z","key":1486576140000,"doc_count":9},{"key_as_string":"2017-02-08T17:50:00.000Z","key":1486576200000,"doc_count":13},{"key_as_string":"2017-02-08T17:51:00.000Z","key":1486576260000,"doc_count":12},{"key_as_string":"2017-02-08T17:52:00.000Z","key":1486576320000,"doc_count":11},{"key_as_string":"2017-02-08T17:53:00.000Z","key":1486576380000,"doc_count":12},{"key_as_string":"2017-02-08T17:54:00.000Z","key":1486576440000,"doc_count":11},{"key_as_string":"2017-02-08T17:55:00.000Z","key":1486576500000,"doc_count":14},{"key_as_string":"2017-02-08T17:56:00.000Z","key":1486576560000,"doc_count":17},{"key_as_string":"2017-02-08T17:57:00.000Z","key":1486576620000,"doc_count":12},{"key_as_string":"2017-02-08T17:58:00.000Z","key":1486576680000,"doc_count":8},{"key_as_string":"2017-02-08T17:59:00.000Z","key":1486576740000,"doc_count":12},{"key_as_string":"2017-02-08T18:00:00.000Z","key":1486576800000,"doc_count":15},{"key_as_string":"2017-02-08T18:01:00.000Z","key":1486576860000,"doc_count":10},{"key_as_string":"2017-02-08T18:02:00.000Z","key":1486576920000,"doc_count":11},{"key_as_string":"2017-02-08T18:03:00.000Z","key":1486576980000,"doc_count":11},{"key_as_string":"2017-02-08T18:04:00.000Z","key":1486577040000,"doc_count":13},{"key_as_string":"2017-02-08T18:05:00.000Z","key":1486577100000,"doc_count":11},{"key_as_string":"2017-02-08T18:06:00.000Z","key":1486577160000,"doc_count":10},{"key_as_string":"2017-02-08T18:07:00.000Z","key":1486577220000,"doc_count":12},{"key_as_string":"2017-02-08T18:08:00.000Z","key":1486577280000,"doc_count":13},{"key_as_string":"2017-02-08T18:09:00.000Z","key":1486577340000,"doc_count":8},{"key_as_string":"2017-02-08T18:10:00.000Z","key":1486577400000,"doc_count":6},{"key_as_string":"2017-02-08T18:11:00.000Z","key":1486577460000,"doc_count":17},{"key_as_string":"2017-02-08T18:12:00.000Z","key":1486577520000,"doc_count":11},{"key_as_string":"2017-02-08T18:13:00.000Z","key":1486577580000,"doc_count":13},{"key_as_string":"2017-02-08T18:14:00.000Z","key":1486577640000,"doc_count":10},{"key_as_string":"2017-02-08T18:15:00.000Z","key":1486577700000,"doc_count":11},{"key_as_string":"2017-02-08T18:16:00.000Z","key":1486577760000,"doc_count":13},{"key_as_string":"2017-02-08T18:17:00.000Z","key":1486577820000,"doc_count":12},{"key_as_string":"2017-02-08T18:18:00.000Z","key":1486577880000,"doc_count":15},{"key_as_string":"2017-02-08T18:19:00.000Z","key":1486577940000,"doc_count":10},{"key_as_string":"2017-02-08T18:20:00.000Z","key":1486578000000,"doc_count":10},{"key_as_string":"2017-02-08T18:21:00.000Z","key":1486578060000,"doc_count":12},{"key_as_string":"2017-02-08T18:22:00.000Z","key":1486578120000,"doc_count":16},{"key_as_string":"2017-02-08T18:23:00.000Z","key":1486578180000,"doc_count":7},{"key_as_string":"2017-02-08T18:24:00.000Z","key":1486578240000,"doc_count":12},{"key_as_string":"2017-02-08T18:25:00.000Z","key":1486578300000,"doc_count":10},{"key_as_string":"2017-02-08T18:26:00.000Z","key":1486578360000,"doc_count":8},{"key_as_string":"2017-02-08T18:27:00.000Z","key":1486578420000,"doc_count":15},{"key_as_string":"2017-02-08T18:28:00.000Z","key":1486578480000,"doc_count":10},{"key_as_string":"2017-02-08T18:29:00.000Z","key":1486578540000,"doc_count":13},{"key_as_string":"2017-02-08T18:30:00.000Z","key":1486578600000,"doc_count":10},{"key_as_string":"2017-02-08T18:31:00.000Z","key":1486578660000,"doc_count":11},{"key_as_string":"2017-02-08T18:32:00.000Z","key":1486578720000,"doc_count":12},{"key_as_string":"2017-02-08T18:33:00.000Z","key":1486578780000,"doc_count":10},{"key_as_string":"2017-02-08T18:34:00.000Z","key":1486578840000,"doc_count":15},{"key_as_string":"2017-02-08T18:35:00.000Z","key":1486578900000,"doc_count":13},{"key_as_string":"2017-02-08T18:36:00.000Z","key":1486578960000,"doc_count":13},{"key_as_string":"2017-02-08T18:37:00.000Z","key":1486579020000,"doc_count":11},{"key_as_string":"2017-02-08T18:38:00.000Z","key":1486579080000,"doc_count":9},{"key_as_string":"2017-02-08T18:39:00.000Z","key":1486579140000,"doc_count":14},{"key_as_string":"2017-02-08T18:40:00.000Z","key":1486579200000,"doc_count":12},{"key_as_string":"2017-02-08T18:41:00.000Z","key":1486579260000,"doc_count":14},{"key_as_string":"2017-02-08T18:42:00.000Z","key":1486579320000,"doc_count":13},{"key_as_string":"2017-02-08T18:43:00.000Z","key":1486579380000,"doc_count":11},{"key_as_string":"2017-02-08T18:44:00.000Z","key":1486579440000,"doc_count":11},{"key_as_string":"2017-02-08T18:45:00.000Z","key":1486579500000,"doc_count":11},{"key_as_string":"2017-02-08T18:46:00.000Z","key":1486579560000,"doc_count":9},{"key_as_string":"2017-02-08T18:47:00.000Z","key":1486579620000,"doc_count":14},{"key_as_string":"2017-02-08T18:48:00.000Z","key":1486579680000,"doc_count":9},{"key_as_string":"2017-02-08T18:49:00.000Z","key":1486579740000,"doc_count":13},{"key_as_string":"2017-02-08T18:50:00.000Z","key":1486579800000,"doc_count":16},{"key_as_string":"2017-02-08T18:51:00.000Z","key":1486579860000,"doc_count":10},{"key_as_string":"2017-02-08T18:52:00.000Z","key":1486579920000,"doc_count":9},{"key_as_string":"2017-02-08T18:53:00.000Z","key":1486579980000,"doc_count":9},{"key_as_string":"2017-02-08T18:54:00.000Z","key":1486580040000,"doc_count":11},{"key_as_string":"2017-02-08T18:55:00.000Z","key":1486580100000,"doc_count":13},{"key_as_string":"2017-02-08T18:56:00.000Z","key":1486580160000,"doc_count":11},{"key_as_string":"2017-02-08T18:57:00.000Z","key":1486580220000,"doc_count":16},{"key_as_string":"2017-02-08T18:58:00.000Z","key":1486580280000,"doc_count":11},{"key_as_string":"2017-02-08T18:59:00.000Z","key":1486580340000,"doc_count":14},{"key_as_string":"2017-02-08T19:00:00.000Z","key":1486580400000,"doc_count":14},{"key_as_string":"2017-02-08T19:01:00.000Z","key":1486580460000,"doc_count":7},{"key_as_string":"2017-02-08T19:02:00.000Z","key":1486580520000,"doc_count":12},{"key_as_string":"2017-02-08T19:03:00.000Z","key":1486580580000,"doc_count":12},{"key_as_string":"2017-02-08T19:04:00.000Z","key":1486580640000,"doc_count":8},{"key_as_string":"2017-02-08T19:05:00.000Z","key":1486580700000,"doc_count":7},{"key_as_string":"2017-02-08T19:06:00.000Z","key":1486580760000,"doc_count":17},{"key_as_string":"2017-02-08T19:07:00.000Z","key":1486580820000,"doc_count":8},{"key_as_string":"2017-02-08T19:08:00.000Z","key":1486580880000,"doc_count":15},{"key_as_string":"2017-02-08T19:09:00.000Z","key":1486580940000,"doc_count":11},{"key_as_string":"2017-02-08T19:10:00.000Z","key":1486581000000,"doc_count":9},{"key_as_string":"2017-02-08T19:11:00.000Z","key":1486581060000,"doc_count":14},{"key_as_string":"2017-02-08T19:12:00.000Z","key":1486581120000,"doc_count":15},{"key_as_string":"2017-02-08T19:13:00.000Z","key":1486581180000,"doc_count":12},{"key_as_string":"2017-02-08T19:14:00.000Z","key":1486581240000,"doc_count":7},{"key_as_string":"2017-02-08T19:15:00.000Z","key":1486581300000,"doc_count":10},{"key_as_string":"2017-02-08T19:16:00.000Z","key":1486581360000,"doc_count":13},{"key_as_string":"2017-02-08T19:17:00.000Z","key":1486581420000,"doc_count":13},{"key_as_string":"2017-02-08T19:18:00.000Z","key":1486581480000,"doc_count":8},{"key_as_string":"2017-02-08T19:19:00.000Z","key":1486581540000,"doc_count":9},{"key_as_string":"2017-02-08T19:20:00.000Z","key":1486581600000,"doc_count":12},{"key_as_string":"2017-02-08T19:21:00.000Z","key":1486581660000,"doc_count":8},{"key_as_string":"2017-02-08T19:22:00.000Z","key":1486581720000,"doc_count":16},{"key_as_string":"2017-02-08T19:23:00.000Z","key":1486581780000,"doc_count":10},{"key_as_string":"2017-02-08T19:24:00.000Z","key":1486581840000,"doc_count":12},{"key_as_string":"2017-02-08T19:25:00.000Z","key":1486581900000,"doc_count":11},{"key_as_string":"2017-02-08T19:26:00.000Z","key":1486581960000,"doc_count":8},{"key_as_string":"2017-02-08T19:27:00.000Z","key":1486582020000,"doc_count":11},{"key_as_string":"2017-02-08T19:28:00.000Z","key":1486582080000,"doc_count":19},{"key_as_string":"2017-02-08T19:29:00.000Z","key":1486582140000,"doc_count":8},{"key_as_string":"2017-02-08T19:30:00.000Z","key":1486582200000,"doc_count":13},{"key_as_string":"2017-02-08T19:31:00.000Z","key":1486582260000,"doc_count":17},{"key_as_string":"2017-02-08T19:32:00.000Z","key":1486582320000,"doc_count":11},{"key_as_string":"2017-02-08T19:33:00.000Z","key":1486582380000,"doc_count":9},{"key_as_string":"2017-02-08T19:34:00.000Z","key":1486582440000,"doc_count":9},{"key_as_string":"2017-02-08T19:35:00.000Z","key":1486582500000,"doc_count":18},{"key_as_string":"2017-02-08T19:36:00.000Z","key":1486582560000,"doc_count":8},{"key_as_string":"2017-02-08T19:37:00.000Z","key":1486582620000,"doc_count":9},{"key_as_string":"2017-02-08T19:38:00.000Z","key":1486582680000,"doc_count":12},{"key_as_string":"2017-02-08T19:39:00.000Z","key":1486582740000,"doc_count":11},{"key_as_string":"2017-02-08T19:40:00.000Z","key":1486582800000,"doc_count":13},{"key_as_string":"2017-02-08T19:41:00.000Z","key":1486582860000,"doc_count":8},{"key_as_string":"2017-02-08T19:42:00.000Z","key":1486582920000,"doc_count":10},{"key_as_string":"2017-02-08T19:43:00.000Z","key":1486582980000,"doc_count":10},{"key_as_string":"2017-02-08T19:44:00.000Z","key":1486583040000,"doc_count":15},{"key_as_string":"2017-02-08T19:45:00.000Z","key":1486583100000,"doc_count":7},{"key_as_string":"2017-02-08T19:46:00.000Z","key":1486583160000,"doc_count":12},{"key_as_string":"2017-02-08T19:47:00.000Z","key":1486583220000,"doc_count":8},{"key_as_string":"2017-02-08T19:48:00.000Z","key":1486583280000,"doc_count":11},{"key_as_string":"2017-02-08T19:49:00.000Z","key":1486583340000,"doc_count":10},{"key_as_string":"2017-02-08T19:50:00.000Z","key":1486583400000,"doc_count":10},{"key_as_string":"2017-02-08T19:51:00.000Z","key":1486583460000,"doc_count":9},{"key_as_string":"2017-02-08T19:52:00.000Z","key":1486583520000,"doc_count":13},{"key_as_string":"2017-02-08T19:53:00.000Z","key":1486583580000,"doc_count":6},{"key_as_string":"2017-02-08T19:54:00.000Z","key":1486583640000,"doc_count":16},{"key_as_string":"2017-02-08T19:55:00.000Z","key":1486583700000,"doc_count":15},{"key_as_string":"2017-02-08T19:56:00.000Z","key":1486583760000,"doc_count":14},{"key_as_string":"2017-02-08T19:57:00.000Z","key":1486583820000,"doc_count":6},{"key_as_string":"2017-02-08T19:58:00.000Z","key":1486583880000,"doc_count":13},{"key_as_string":"2017-02-08T19:59:00.000Z","key":1486583940000,"doc_count":11},{"key_as_string":"2017-02-08T20:00:00.000Z","key":1486584000000,"doc_count":9},{"key_as_string":"2017-02-08T20:01:00.000Z","key":1486584060000,"doc_count":11},{"key_as_string":"2017-02-08T20:02:00.000Z","key":1486584120000,"doc_count":16},{"key_as_string":"2017-02-08T20:03:00.000Z","key":1486584180000,"doc_count":8},{"key_as_string":"2017-02-08T20:04:00.000Z","key":1486584240000,"doc_count":9},{"key_as_string":"2017-02-08T20:05:00.000Z","key":1486584300000,"doc_count":8},{"key_as_string":"2017-02-08T20:06:00.000Z","key":1486584360000,"doc_count":13},{"key_as_string":"2017-02-08T20:07:00.000Z","key":1486584420000,"doc_count":15},{"key_as_string":"2017-02-08T20:08:00.000Z","key":1486584480000,"doc_count":7},{"key_as_string":"2017-02-08T20:09:00.000Z","key":1486584540000,"doc_count":13},{"key_as_string":"2017-02-08T20:10:00.000Z","key":1486584600000,"doc_count":12},{"key_as_string":"2017-02-08T20:11:00.000Z","key":1486584660000,"doc_count":6},{"key_as_string":"2017-02-08T20:12:00.000Z","key":1486584720000,"doc_count":9},{"key_as_string":"2017-02-08T20:13:00.000Z","key":1486584780000,"doc_count":12},{"key_as_string":"2017-02-08T20:14:00.000Z","key":1486584840000,"doc_count":13},{"key_as_string":"2017-02-08T20:15:00.000Z","key":1486584900000,"doc_count":13},{"key_as_string":"2017-02-08T20:16:00.000Z","key":1486584960000,"doc_count":10},{"key_as_string":"2017-02-08T20:17:00.000Z","key":1486585020000,"doc_count":8},{"key_as_string":"2017-02-08T20:18:00.000Z","key":1486585080000,"doc_count":12},{"key_as_string":"2017-02-08T20:19:00.000Z","key":1486585140000,"doc_count":12},{"key_as_string":"2017-02-08T20:20:00.000Z","key":1486585200000,"doc_count":14},{"key_as_string":"2017-02-08T20:21:00.000Z","key":1486585260000,"doc_count":11},{"key_as_string":"2017-02-08T20:22:00.000Z","key":1486585320000,"doc_count":13},{"key_as_string":"2017-02-08T20:23:00.000Z","key":1486585380000,"doc_count":13},{"key_as_string":"2017-02-08T20:24:00.000Z","key":1486585440000,"doc_count":9},{"key_as_string":"2017-02-08T20:25:00.000Z","key":1486585500000,"doc_count":11},{"key_as_string":"2017-02-08T20:26:00.000Z","key":1486585560000,"doc_count":9},{"key_as_string":"2017-02-08T20:27:00.000Z","key":1486585620000,"doc_count":20},{"key_as_string":"2017-02-08T20:28:00.000Z","key":1486585680000,"doc_count":6},{"key_as_string":"2017-02-08T20:29:00.000Z","key":1486585740000,"doc_count":12},{"key_as_string":"2017-02-08T20:30:00.000Z","key":1486585800000,"doc_count":11},{"key_as_string":"2017-02-08T20:31:00.000Z","key":1486585860000,"doc_count":9},{"key_as_string":"2017-02-08T20:32:00.000Z","key":1486585920000,"doc_count":12},{"key_as_string":"2017-02-08T20:33:00.000Z","key":1486585980000,"doc_count":8},{"key_as_string":"2017-02-08T20:34:00.000Z","key":1486586040000,"doc_count":12},{"key_as_string":"2017-02-08T20:35:00.000Z","key":1486586100000,"doc_count":11},{"key_as_string":"2017-02-08T20:36:00.000Z","key":1486586160000,"doc_count":9},{"key_as_string":"2017-02-08T20:37:00.000Z","key":1486586220000,"doc_count":14},{"key_as_string":"2017-02-08T20:38:00.000Z","key":1486586280000,"doc_count":12},{"key_as_string":"2017-02-08T20:39:00.000Z","key":1486586340000,"doc_count":8},{"key_as_string":"2017-02-08T20:40:00.000Z","key":1486586400000,"doc_count":11},{"key_as_string":"2017-02-08T20:41:00.000Z","key":1486586460000,"doc_count":10},{"key_as_string":"2017-02-08T20:42:00.000Z","key":1486586520000,"doc_count":8},{"key_as_string":"2017-02-08T20:43:00.000Z","key":1486586580000,"doc_count":11},{"key_as_string":"2017-02-08T20:44:00.000Z","key":1486586640000,"doc_count":16},{"key_as_string":"2017-02-08T20:45:00.000Z","key":1486586700000,"doc_count":9},{"key_as_string":"2017-02-08T20:46:00.000Z","key":1486586760000,"doc_count":9},{"key_as_string":"2017-02-08T20:47:00.000Z","key":1486586820000,"doc_count":8},{"key_as_string":"2017-02-08T20:48:00.000Z","key":1486586880000,"doc_count":13},{"key_as_string":"2017-02-08T20:49:00.000Z","key":1486586940000,"doc_count":10},{"key_as_string":"2017-02-08T20:50:00.000Z","key":1486587000000,"doc_count":9},{"key_as_string":"2017-02-08T20:51:00.000Z","key":1486587060000,"doc_count":10},{"key_as_string":"2017-02-08T20:52:00.000Z","key":1486587120000,"doc_count":10},{"key_as_string":"2017-02-08T20:53:00.000Z","key":1486587180000,"doc_count":10},{"key_as_string":"2017-02-08T20:54:00.000Z","key":1486587240000,"doc_count":12},{"key_as_string":"2017-02-08T20:55:00.000Z","key":1486587300000,"doc_count":8},{"key_as_string":"2017-02-08T20:56:00.000Z","key":1486587360000,"doc_count":10},{"key_as_string":"2017-02-08T20:57:00.000Z","key":1486587420000,"doc_count":11},{"key_as_string":"2017-02-08T20:58:00.000Z","key":1486587480000,"doc_count":9},{"key_as_string":"2017-02-08T20:59:00.000Z","key":1486587540000,"doc_count":15},{"key_as_string":"2017-02-08T21:00:00.000Z","key":1486587600000,"doc_count":12},{"key_as_string":"2017-02-08T21:01:00.000Z","key":1486587660000,"doc_count":13},{"key_as_string":"2017-02-08T21:02:00.000Z","key":1486587720000,"doc_count":10},{"key_as_string":"2017-02-08T21:03:00.000Z","key":1486587780000,"doc_count":7},{"key_as_string":"2017-02-08T21:04:00.000Z","key":1486587840000,"doc_count":9},{"key_as_string":"2017-02-08T21:05:00.000Z","key":1486587900000,"doc_count":13},{"key_as_string":"2017-02-08T21:06:00.000Z","key":1486587960000,"doc_count":9},{"key_as_string":"2017-02-08T21:07:00.000Z","key":1486588020000,"doc_count":12},{"key_as_string":"2017-02-08T21:08:00.000Z","key":1486588080000,"doc_count":6},{"key_as_string":"2017-02-08T21:09:00.000Z","key":1486588140000,"doc_count":17},{"key_as_string":"2017-02-08T21:10:00.000Z","key":1486588200000,"doc_count":4},{"key_as_string":"2017-02-08T21:11:00.000Z","key":1486588260000,"doc_count":13},{"key_as_string":"2017-02-08T21:12:00.000Z","key":1486588320000,"doc_count":9},{"key_as_string":"2017-02-08T21:13:00.000Z","key":1486588380000,"doc_count":13},{"key_as_string":"2017-02-08T21:14:00.000Z","key":1486588440000,"doc_count":10},{"key_as_string":"2017-02-08T21:15:00.000Z","key":1486588500000,"doc_count":8},{"key_as_string":"2017-02-08T21:16:00.000Z","key":1486588560000,"doc_count":8},{"key_as_string":"2017-02-08T21:17:00.000Z","key":1486588620000,"doc_count":10},{"key_as_string":"2017-02-08T21:18:00.000Z","key":1486588680000,"doc_count":12},{"key_as_string":"2017-02-08T21:19:00.000Z","key":1486588740000,"doc_count":10},{"key_as_string":"2017-02-08T21:20:00.000Z","key":1486588800000,"doc_count":13},{"key_as_string":"2017-02-08T21:21:00.000Z","key":1486588860000,"doc_count":14},{"key_as_string":"2017-02-08T21:22:00.000Z","key":1486588920000,"doc_count":9},{"key_as_string":"2017-02-08T21:23:00.000Z","key":1486588980000,"doc_count":9},{"key_as_string":"2017-02-08T21:24:00.000Z","key":1486589040000,"doc_count":12},{"key_as_string":"2017-02-08T21:25:00.000Z","key":1486589100000,"doc_count":12},{"key_as_string":"2017-02-08T21:26:00.000Z","key":1486589160000,"doc_count":19},{"key_as_string":"2017-02-08T21:27:00.000Z","key":1486589220000,"doc_count":6},{"key_as_string":"2017-02-08T21:28:00.000Z","key":1486589280000,"doc_count":15},{"key_as_string":"2017-02-08T21:29:00.000Z","key":1486589340000,"doc_count":10},{"key_as_string":"2017-02-08T21:30:00.000Z","key":1486589400000,"doc_count":9},{"key_as_string":"2017-02-08T21:31:00.000Z","key":1486589460000,"doc_count":9},{"key_as_string":"2017-02-08T21:32:00.000Z","key":1486589520000,"doc_count":12},{"key_as_string":"2017-02-08T21:33:00.000Z","key":1486589580000,"doc_count":10},{"key_as_string":"2017-02-08T21:34:00.000Z","key":1486589640000,"doc_count":11},{"key_as_string":"2017-02-08T21:35:00.000Z","key":1486589700000,"doc_count":10},{"key_as_string":"2017-02-08T21:36:00.000Z","key":1486589760000,"doc_count":15},{"key_as_string":"2017-02-08T21:37:00.000Z","key":1486589820000,"doc_count":8},{"key_as_string":"2017-02-08T21:38:00.000Z","key":1486589880000,"doc_count":11},{"key_as_string":"2017-02-08T21:39:00.000Z","key":1486589940000,"doc_count":9},{"key_as_string":"2017-02-08T21:40:00.000Z","key":1486590000000,"doc_count":9},{"key_as_string":"2017-02-08T21:41:00.000Z","key":1486590060000,"doc_count":10},{"key_as_string":"2017-02-08T21:42:00.000Z","key":1486590120000,"doc_count":8},{"key_as_string":"2017-02-08T21:43:00.000Z","key":1486590180000,"doc_count":13},{"key_as_string":"2017-02-08T21:44:00.000Z","key":1486590240000,"doc_count":13},{"key_as_string":"2017-02-08T21:45:00.000Z","key":1486590300000,"doc_count":15},{"key_as_string":"2017-02-08T21:46:00.000Z","key":1486590360000,"doc_count":8},{"key_as_string":"2017-02-08T21:47:00.000Z","key":1486590420000,"doc_count":7},{"key_as_string":"2017-02-08T21:48:00.000Z","key":1486590480000,"doc_count":14},{"key_as_string":"2017-02-08T21:49:00.000Z","key":1486590540000,"doc_count":8},{"key_as_string":"2017-02-08T21:50:00.000Z","key":1486590600000,"doc_count":11},{"key_as_string":"2017-02-08T21:51:00.000Z","key":1486590660000,"doc_count":12},{"key_as_string":"2017-02-08T21:52:00.000Z","key":1486590720000,"doc_count":9},{"key_as_string":"2017-02-08T21:53:00.000Z","key":1486590780000,"doc_count":11},{"key_as_string":"2017-02-08T21:54:00.000Z","key":1486590840000,"doc_count":9},{"key_as_string":"2017-02-08T21:55:00.000Z","key":1486590900000,"doc_count":7},{"key_as_string":"2017-02-08T21:56:00.000Z","key":1486590960000,"doc_count":13},{"key_as_string":"2017-02-08T21:57:00.000Z","key":1486591020000,"doc_count":10},{"key_as_string":"2017-02-08T21:58:00.000Z","key":1486591080000,"doc_count":12},{"key_as_string":"2017-02-08T21:59:00.000Z","key":1486591140000,"doc_count":15},{"key_as_string":"2017-02-08T22:00:00.000Z","key":1486591200000,"doc_count":13},{"key_as_string":"2017-02-08T22:01:00.000Z","key":1486591260000,"doc_count":14},{"key_as_string":"2017-02-08T22:02:00.000Z","key":1486591320000,"doc_count":7},{"key_as_string":"2017-02-08T22:03:00.000Z","key":1486591380000,"doc_count":12},{"key_as_string":"2017-02-08T22:04:00.000Z","key":1486591440000,"doc_count":11},{"key_as_string":"2017-02-08T22:05:00.000Z","key":1486591500000,"doc_count":11},{"key_as_string":"2017-02-08T22:06:00.000Z","key":1486591560000,"doc_count":11},{"key_as_string":"2017-02-08T22:07:00.000Z","key":1486591620000,"doc_count":8},{"key_as_string":"2017-02-08T22:08:00.000Z","key":1486591680000,"doc_count":14},{"key_as_string":"2017-02-08T22:09:00.000Z","key":1486591740000,"doc_count":11},{"key_as_string":"2017-02-08T22:10:00.000Z","key":1486591800000,"doc_count":16},{"key_as_string":"2017-02-08T22:11:00.000Z","key":1486591860000,"doc_count":8},{"key_as_string":"2017-02-08T22:12:00.000Z","key":1486591920000,"doc_count":15},{"key_as_string":"2017-02-08T22:13:00.000Z","key":1486591980000,"doc_count":11},{"key_as_string":"2017-02-08T22:14:00.000Z","key":1486592040000,"doc_count":6},{"key_as_string":"2017-02-08T22:15:00.000Z","key":1486592100000,"doc_count":11},{"key_as_string":"2017-02-08T22:16:00.000Z","key":1486592160000,"doc_count":9},{"key_as_string":"2017-02-08T22:17:00.000Z","key":1486592220000,"doc_count":15},{"key_as_string":"2017-02-08T22:18:00.000Z","key":1486592280000,"doc_count":10},{"key_as_string":"2017-02-08T22:19:00.000Z","key":1486592340000,"doc_count":7},{"key_as_string":"2017-02-08T22:20:00.000Z","key":1486592400000,"doc_count":11},{"key_as_string":"2017-02-08T22:21:00.000Z","key":1486592460000,"doc_count":8},{"key_as_string":"2017-02-08T22:22:00.000Z","key":1486592520000,"doc_count":11},{"key_as_string":"2017-02-08T22:23:00.000Z","key":1486592580000,"doc_count":5},{"key_as_string":"2017-02-08T22:24:00.000Z","key":1486592640000,"doc_count":13},{"key_as_string":"2017-02-08T22:25:00.000Z","key":1486592700000,"doc_count":11},{"key_as_string":"2017-02-08T22:26:00.000Z","key":1486592760000,"doc_count":13},{"key_as_string":"2017-02-08T22:27:00.000Z","key":1486592820000,"doc_count":15},{"key_as_string":"2017-02-08T22:28:00.000Z","key":1486592880000,"doc_count":12},{"key_as_string":"2017-02-08T22:29:00.000Z","key":1486592940000,"doc_count":7},{"key_as_string":"2017-02-08T22:30:00.000Z","key":1486593000000,"doc_count":14},{"key_as_string":"2017-02-08T22:31:00.000Z","key":1486593060000,"doc_count":13},{"key_as_string":"2017-02-08T22:32:00.000Z","key":1486593120000,"doc_count":13},{"key_as_string":"2017-02-08T22:33:00.000Z","key":1486593180000,"doc_count":9},{"key_as_string":"2017-02-08T22:34:00.000Z","key":1486593240000,"doc_count":13},{"key_as_string":"2017-02-08T22:35:00.000Z","key":1486593300000,"doc_count":14},{"key_as_string":"2017-02-08T22:36:00.000Z","key":1486593360000,"doc_count":9},{"key_as_string":"2017-02-08T22:37:00.000Z","key":1486593420000,"doc_count":11},{"key_as_string":"2017-02-08T22:38:00.000Z","key":1486593480000,"doc_count":8},{"key_as_string":"2017-02-08T22:39:00.000Z","key":1486593540000,"doc_count":14},{"key_as_string":"2017-02-08T22:40:00.000Z","key":1486593600000,"doc_count":16},{"key_as_string":"2017-02-08T22:41:00.000Z","key":1486593660000,"doc_count":7},{"key_as_string":"2017-02-08T22:42:00.000Z","key":1486593720000,"doc_count":14},{"key_as_string":"2017-02-08T22:43:00.000Z","key":1486593780000,"doc_count":10},{"key_as_string":"2017-02-08T22:44:00.000Z","key":1486593840000,"doc_count":12},{"key_as_string":"2017-02-08T22:45:00.000Z","key":1486593900000,"doc_count":7},{"key_as_string":"2017-02-08T22:46:00.000Z","key":1486593960000,"doc_count":13},{"key_as_string":"2017-02-08T22:47:00.000Z","key":1486594020000,"doc_count":11},{"key_as_string":"2017-02-08T22:48:00.000Z","key":1486594080000,"doc_count":18},{"key_as_string":"2017-02-08T22:49:00.000Z","key":1486594140000,"doc_count":4},{"key_as_string":"2017-02-08T22:50:00.000Z","key":1486594200000,"doc_count":5},{"key_as_string":"2017-02-08T22:51:00.000Z","key":1486594260000,"doc_count":16},{"key_as_string":"2017-02-08T22:52:00.000Z","key":1486594320000,"doc_count":8},{"key_as_string":"2017-02-08T22:53:00.000Z","key":1486594380000,"doc_count":11},{"key_as_string":"2017-02-08T22:54:00.000Z","key":1486594440000,"doc_count":10},{"key_as_string":"2017-02-08T22:55:00.000Z","key":1486594500000,"doc_count":10},{"key_as_string":"2017-02-08T22:56:00.000Z","key":1486594560000,"doc_count":15},{"key_as_string":"2017-02-08T22:57:00.000Z","key":1486594620000,"doc_count":7},{"key_as_string":"2017-02-08T22:58:00.000Z","key":1486594680000,"doc_count":14},{"key_as_string":"2017-02-08T22:59:00.000Z","key":1486594740000,"doc_count":14},{"key_as_string":"2017-02-08T23:00:00.000Z","key":1486594800000,"doc_count":6},{"key_as_string":"2017-02-08T23:01:00.000Z","key":1486594860000,"doc_count":9},{"key_as_string":"2017-02-08T23:02:00.000Z","key":1486594920000,"doc_count":14},{"key_as_string":"2017-02-08T23:03:00.000Z","key":1486594980000,"doc_count":9},{"key_as_string":"2017-02-08T23:04:00.000Z","key":1486595040000,"doc_count":11},{"key_as_string":"2017-02-08T23:05:00.000Z","key":1486595100000,"doc_count":14},{"key_as_string":"2017-02-08T23:06:00.000Z","key":1486595160000,"doc_count":6},{"key_as_string":"2017-02-08T23:07:00.000Z","key":1486595220000,"doc_count":10},{"key_as_string":"2017-02-08T23:08:00.000Z","key":1486595280000,"doc_count":9},{"key_as_string":"2017-02-08T23:09:00.000Z","key":1486595340000,"doc_count":5},{"key_as_string":"2017-02-08T23:10:00.000Z","key":1486595400000,"doc_count":12},{"key_as_string":"2017-02-08T23:11:00.000Z","key":1486595460000,"doc_count":11},{"key_as_string":"2017-02-08T23:12:00.000Z","key":1486595520000,"doc_count":8},{"key_as_string":"2017-02-08T23:13:00.000Z","key":1486595580000,"doc_count":10},{"key_as_string":"2017-02-08T23:14:00.000Z","key":1486595640000,"doc_count":14},{"key_as_string":"2017-02-08T23:15:00.000Z","key":1486595700000,"doc_count":6},{"key_as_string":"2017-02-08T23:16:00.000Z","key":1486595760000,"doc_count":9},{"key_as_string":"2017-02-08T23:17:00.000Z","key":1486595820000,"doc_count":12},{"key_as_string":"2017-02-08T23:18:00.000Z","key":1486595880000,"doc_count":12},{"key_as_string":"2017-02-08T23:19:00.000Z","key":1486595940000,"doc_count":5},{"key_as_string":"2017-02-08T23:20:00.000Z","key":1486596000000,"doc_count":12},{"key_as_string":"2017-02-08T23:21:00.000Z","key":1486596060000,"doc_count":10},{"key_as_string":"2017-02-08T23:22:00.000Z","key":1486596120000,"doc_count":13},{"key_as_string":"2017-02-08T23:23:00.000Z","key":1486596180000,"doc_count":10},{"key_as_string":"2017-02-08T23:24:00.000Z","key":1486596240000,"doc_count":8},{"key_as_string":"2017-02-08T23:25:00.000Z","key":1486596300000,"doc_count":11},{"key_as_string":"2017-02-08T23:26:00.000Z","key":1486596360000,"doc_count":11},{"key_as_string":"2017-02-08T23:27:00.000Z","key":1486596420000,"doc_count":5},{"key_as_string":"2017-02-08T23:28:00.000Z","key":1486596480000,"doc_count":9},{"key_as_string":"2017-02-08T23:29:00.000Z","key":1486596540000,"doc_count":12},{"key_as_string":"2017-02-08T23:30:00.000Z","key":1486596600000,"doc_count":7},{"key_as_string":"2017-02-08T23:31:00.000Z","key":1486596660000,"doc_count":14},{"key_as_string":"2017-02-08T23:32:00.000Z","key":1486596720000,"doc_count":12},{"key_as_string":"2017-02-08T23:33:00.000Z","key":1486596780000,"doc_count":12},{"key_as_string":"2017-02-08T23:34:00.000Z","key":1486596840000,"doc_count":18},{"key_as_string":"2017-02-08T23:35:00.000Z","key":1486596900000,"doc_count":6},{"key_as_string":"2017-02-08T23:36:00.000Z","key":1486596960000,"doc_count":7},{"key_as_string":"2017-02-08T23:37:00.000Z","key":1486597020000,"doc_count":12},{"key_as_string":"2017-02-08T23:38:00.000Z","key":1486597080000,"doc_count":11},{"key_as_string":"2017-02-08T23:39:00.000Z","key":1486597140000,"doc_count":7},{"key_as_string":"2017-02-08T23:40:00.000Z","key":1486597200000,"doc_count":12},{"key_as_string":"2017-02-08T23:41:00.000Z","key":1486597260000,"doc_count":16},{"key_as_string":"2017-02-08T23:42:00.000Z","key":1486597320000,"doc_count":8},{"key_as_string":"2017-02-08T23:43:00.000Z","key":1486597380000,"doc_count":11},{"key_as_string":"2017-02-08T23:44:00.000Z","key":1486597440000,"doc_count":8},{"key_as_string":"2017-02-08T23:45:00.000Z","key":1486597500000,"doc_count":11},{"key_as_string":"2017-02-08T23:46:00.000Z","key":1486597560000,"doc_count":11},{"key_as_string":"2017-02-08T23:47:00.000Z","key":1486597620000,"doc_count":9},{"key_as_string":"2017-02-08T23:48:00.000Z","key":1486597680000,"doc_count":7},{"key_as_string":"2017-02-08T23:49:00.000Z","key":1486597740000,"doc_count":11},{"key_as_string":"2017-02-08T23:50:00.000Z","key":1486597800000,"doc_count":11},{"key_as_string":"2017-02-08T23:51:00.000Z","key":1486597860000,"doc_count":8},{"key_as_string":"2017-02-08T23:52:00.000Z","key":1486597920000,"doc_count":11},{"key_as_string":"2017-02-08T23:53:00.000Z","key":1486597980000,"doc_count":10},{"key_as_string":"2017-02-08T23:54:00.000Z","key":1486598040000,"doc_count":11},{"key_as_string":"2017-02-08T23:55:00.000Z","key":1486598100000,"doc_count":9},{"key_as_string":"2017-02-08T23:56:00.000Z","key":1486598160000,"doc_count":6},{"key_as_string":"2017-02-08T23:57:00.000Z","key":1486598220000,"doc_count":13},{"key_as_string":"2017-02-08T23:58:00.000Z","key":1486598280000,"doc_count":10},{"key_as_string":"2017-02-08T23:59:00.000Z","key":1486598340000,"doc_count":9},{"key_as_string":"2017-02-09T00:00:00.000Z","key":1486598400000,"doc_count":14},{"key_as_string":"2017-02-09T00:01:00.000Z","key":1486598460000,"doc_count":7},{"key_as_string":"2017-02-09T00:02:00.000Z","key":1486598520000,"doc_count":11},{"key_as_string":"2017-02-09T00:03:00.000Z","key":1486598580000,"doc_count":14},{"key_as_string":"2017-02-09T00:04:00.000Z","key":1486598640000,"doc_count":7},{"key_as_string":"2017-02-09T00:05:00.000Z","key":1486598700000,"doc_count":15},{"key_as_string":"2017-02-09T00:06:00.000Z","key":1486598760000,"doc_count":4},{"key_as_string":"2017-02-09T00:07:00.000Z","key":1486598820000,"doc_count":14},{"key_as_string":"2017-02-09T00:08:00.000Z","key":1486598880000,"doc_count":11},{"key_as_string":"2017-02-09T00:09:00.000Z","key":1486598940000,"doc_count":8},{"key_as_string":"2017-02-09T00:10:00.000Z","key":1486599000000,"doc_count":9},{"key_as_string":"2017-02-09T00:11:00.000Z","key":1486599060000,"doc_count":13},{"key_as_string":"2017-02-09T00:12:00.000Z","key":1486599120000,"doc_count":8},{"key_as_string":"2017-02-09T00:13:00.000Z","key":1486599180000,"doc_count":9},{"key_as_string":"2017-02-09T00:14:00.000Z","key":1486599240000,"doc_count":14},{"key_as_string":"2017-02-09T00:15:00.000Z","key":1486599300000,"doc_count":13},{"key_as_string":"2017-02-09T00:16:00.000Z","key":1486599360000,"doc_count":8},{"key_as_string":"2017-02-09T00:17:00.000Z","key":1486599420000,"doc_count":6},{"key_as_string":"2017-02-09T00:18:00.000Z","key":1486599480000,"doc_count":14},{"key_as_string":"2017-02-09T00:19:00.000Z","key":1486599540000,"doc_count":15},{"key_as_string":"2017-02-09T00:20:00.000Z","key":1486599600000,"doc_count":9},{"key_as_string":"2017-02-09T00:21:00.000Z","key":1486599660000,"doc_count":6},{"key_as_string":"2017-02-09T00:22:00.000Z","key":1486599720000,"doc_count":9},{"key_as_string":"2017-02-09T00:23:00.000Z","key":1486599780000,"doc_count":15},{"key_as_string":"2017-02-09T00:24:00.000Z","key":1486599840000,"doc_count":10},{"key_as_string":"2017-02-09T00:25:00.000Z","key":1486599900000,"doc_count":9},{"key_as_string":"2017-02-09T00:26:00.000Z","key":1486599960000,"doc_count":11},{"key_as_string":"2017-02-09T00:27:00.000Z","key":1486600020000,"doc_count":10},{"key_as_string":"2017-02-09T00:28:00.000Z","key":1486600080000,"doc_count":11},{"key_as_string":"2017-02-09T00:29:00.000Z","key":1486600140000,"doc_count":8},{"key_as_string":"2017-02-09T00:30:00.000Z","key":1486600200000,"doc_count":5},{"key_as_string":"2017-02-09T00:31:00.000Z","key":1486600260000,"doc_count":15},{"key_as_string":"2017-02-09T00:32:00.000Z","key":1486600320000,"doc_count":5},{"key_as_string":"2017-02-09T00:33:00.000Z","key":1486600380000,"doc_count":12},{"key_as_string":"2017-02-09T00:34:00.000Z","key":1486600440000,"doc_count":11},{"key_as_string":"2017-02-09T00:35:00.000Z","key":1486600500000,"doc_count":8},{"key_as_string":"2017-02-09T00:36:00.000Z","key":1486600560000,"doc_count":10},{"key_as_string":"2017-02-09T00:37:00.000Z","key":1486600620000,"doc_count":11},{"key_as_string":"2017-02-09T00:38:00.000Z","key":1486600680000,"doc_count":11},{"key_as_string":"2017-02-09T00:39:00.000Z","key":1486600740000,"doc_count":7},{"key_as_string":"2017-02-09T00:40:00.000Z","key":1486600800000,"doc_count":8},{"key_as_string":"2017-02-09T00:41:00.000Z","key":1486600860000,"doc_count":10},{"key_as_string":"2017-02-09T00:42:00.000Z","key":1486600920000,"doc_count":11},{"key_as_string":"2017-02-09T00:43:00.000Z","key":1486600980000,"doc_count":10},{"key_as_string":"2017-02-09T00:44:00.000Z","key":1486601040000,"doc_count":9},{"key_as_string":"2017-02-09T00:45:00.000Z","key":1486601100000,"doc_count":10},{"key_as_string":"2017-02-09T00:46:00.000Z","key":1486601160000,"doc_count":9},{"key_as_string":"2017-02-09T00:47:00.000Z","key":1486601220000,"doc_count":9},{"key_as_string":"2017-02-09T00:48:00.000Z","key":1486601280000,"doc_count":11},{"key_as_string":"2017-02-09T00:49:00.000Z","key":1486601340000,"doc_count":6},{"key_as_string":"2017-02-09T00:50:00.000Z","key":1486601400000,"doc_count":13},{"key_as_string":"2017-02-09T00:51:00.000Z","key":1486601460000,"doc_count":8},{"key_as_string":"2017-02-09T00:52:00.000Z","key":1486601520000,"doc_count":9},{"key_as_string":"2017-02-09T00:53:00.000Z","key":1486601580000,"doc_count":12},{"key_as_string":"2017-02-09T00:54:00.000Z","key":1486601640000,"doc_count":11},{"key_as_string":"2017-02-09T00:55:00.000Z","key":1486601700000,"doc_count":7},{"key_as_string":"2017-02-09T00:56:00.000Z","key":1486601760000,"doc_count":16},{"key_as_string":"2017-02-09T00:57:00.000Z","key":1486601820000,"doc_count":11},{"key_as_string":"2017-02-09T00:58:00.000Z","key":1486601880000,"doc_count":7},{"key_as_string":"2017-02-09T00:59:00.000Z","key":1486601940000,"doc_count":9},{"key_as_string":"2017-02-09T01:00:00.000Z","key":1486602000000,"doc_count":14},{"key_as_string":"2017-02-09T01:01:00.000Z","key":1486602060000,"doc_count":9},{"key_as_string":"2017-02-09T01:02:00.000Z","key":1486602120000,"doc_count":15},{"key_as_string":"2017-02-09T01:03:00.000Z","key":1486602180000,"doc_count":10},{"key_as_string":"2017-02-09T01:04:00.000Z","key":1486602240000,"doc_count":14},{"key_as_string":"2017-02-09T01:05:00.000Z","key":1486602300000,"doc_count":8},{"key_as_string":"2017-02-09T01:06:00.000Z","key":1486602360000,"doc_count":13},{"key_as_string":"2017-02-09T01:07:00.000Z","key":1486602420000,"doc_count":10},{"key_as_string":"2017-02-09T01:08:00.000Z","key":1486602480000,"doc_count":7},{"key_as_string":"2017-02-09T01:09:00.000Z","key":1486602540000,"doc_count":15},{"key_as_string":"2017-02-09T01:10:00.000Z","key":1486602600000,"doc_count":10},{"key_as_string":"2017-02-09T01:11:00.000Z","key":1486602660000,"doc_count":7},{"key_as_string":"2017-02-09T01:12:00.000Z","key":1486602720000,"doc_count":14},{"key_as_string":"2017-02-09T01:13:00.000Z","key":1486602780000,"doc_count":11},{"key_as_string":"2017-02-09T01:14:00.000Z","key":1486602840000,"doc_count":10},{"key_as_string":"2017-02-09T01:15:00.000Z","key":1486602900000,"doc_count":12},{"key_as_string":"2017-02-09T01:16:00.000Z","key":1486602960000,"doc_count":10},{"key_as_string":"2017-02-09T01:17:00.000Z","key":1486603020000,"doc_count":9},{"key_as_string":"2017-02-09T01:18:00.000Z","key":1486603080000,"doc_count":12},{"key_as_string":"2017-02-09T01:19:00.000Z","key":1486603140000,"doc_count":6},{"key_as_string":"2017-02-09T01:20:00.000Z","key":1486603200000,"doc_count":12},{"key_as_string":"2017-02-09T01:21:00.000Z","key":1486603260000,"doc_count":7},{"key_as_string":"2017-02-09T01:22:00.000Z","key":1486603320000,"doc_count":11},{"key_as_string":"2017-02-09T01:23:00.000Z","key":1486603380000,"doc_count":6},{"key_as_string":"2017-02-09T01:24:00.000Z","key":1486603440000,"doc_count":14},{"key_as_string":"2017-02-09T01:25:00.000Z","key":1486603500000,"doc_count":6},{"key_as_string":"2017-02-09T01:26:00.000Z","key":1486603560000,"doc_count":9},{"key_as_string":"2017-02-09T01:27:00.000Z","key":1486603620000,"doc_count":14},{"key_as_string":"2017-02-09T01:28:00.000Z","key":1486603680000,"doc_count":9},{"key_as_string":"2017-02-09T01:29:00.000Z","key":1486603740000,"doc_count":13},{"key_as_string":"2017-02-09T01:30:00.000Z","key":1486603800000,"doc_count":9},{"key_as_string":"2017-02-09T01:31:00.000Z","key":1486603860000,"doc_count":11},{"key_as_string":"2017-02-09T01:32:00.000Z","key":1486603920000,"doc_count":13},{"key_as_string":"2017-02-09T01:33:00.000Z","key":1486603980000,"doc_count":6},{"key_as_string":"2017-02-09T01:34:00.000Z","key":1486604040000,"doc_count":13},{"key_as_string":"2017-02-09T01:35:00.000Z","key":1486604100000,"doc_count":7},{"key_as_string":"2017-02-09T01:36:00.000Z","key":1486604160000,"doc_count":11},{"key_as_string":"2017-02-09T01:37:00.000Z","key":1486604220000,"doc_count":10},{"key_as_string":"2017-02-09T01:38:00.000Z","key":1486604280000,"doc_count":6},{"key_as_string":"2017-02-09T01:39:00.000Z","key":1486604340000,"doc_count":14},{"key_as_string":"2017-02-09T01:40:00.000Z","key":1486604400000,"doc_count":5},{"key_as_string":"2017-02-09T01:41:00.000Z","key":1486604460000,"doc_count":8},{"key_as_string":"2017-02-09T01:42:00.000Z","key":1486604520000,"doc_count":12},{"key_as_string":"2017-02-09T01:43:00.000Z","key":1486604580000,"doc_count":16},{"key_as_string":"2017-02-09T01:44:00.000Z","key":1486604640000,"doc_count":8},{"key_as_string":"2017-02-09T01:45:00.000Z","key":1486604700000,"doc_count":5},{"key_as_string":"2017-02-09T01:46:00.000Z","key":1486604760000,"doc_count":13},{"key_as_string":"2017-02-09T01:47:00.000Z","key":1486604820000,"doc_count":7},{"key_as_string":"2017-02-09T01:48:00.000Z","key":1486604880000,"doc_count":8},{"key_as_string":"2017-02-09T01:49:00.000Z","key":1486604940000,"doc_count":17},{"key_as_string":"2017-02-09T01:50:00.000Z","key":1486605000000,"doc_count":7},{"key_as_string":"2017-02-09T01:51:00.000Z","key":1486605060000,"doc_count":10},{"key_as_string":"2017-02-09T01:52:00.000Z","key":1486605120000,"doc_count":13},{"key_as_string":"2017-02-09T01:53:00.000Z","key":1486605180000,"doc_count":15},{"key_as_string":"2017-02-09T01:54:00.000Z","key":1486605240000,"doc_count":12},{"key_as_string":"2017-02-09T01:55:00.000Z","key":1486605300000,"doc_count":6},{"key_as_string":"2017-02-09T01:56:00.000Z","key":1486605360000,"doc_count":14},{"key_as_string":"2017-02-09T01:57:00.000Z","key":1486605420000,"doc_count":13},{"key_as_string":"2017-02-09T01:58:00.000Z","key":1486605480000,"doc_count":12},{"key_as_string":"2017-02-09T01:59:00.000Z","key":1486605540000,"doc_count":11},{"key_as_string":"2017-02-09T02:00:00.000Z","key":1486605600000,"doc_count":12},{"key_as_string":"2017-02-09T02:01:00.000Z","key":1486605660000,"doc_count":15},{"key_as_string":"2017-02-09T02:02:00.000Z","key":1486605720000,"doc_count":6},{"key_as_string":"2017-02-09T02:03:00.000Z","key":1486605780000,"doc_count":15},{"key_as_string":"2017-02-09T02:04:00.000Z","key":1486605840000,"doc_count":4},{"key_as_string":"2017-02-09T02:05:00.000Z","key":1486605900000,"doc_count":14},{"key_as_string":"2017-02-09T02:06:00.000Z","key":1486605960000,"doc_count":15},{"key_as_string":"2017-02-09T02:07:00.000Z","key":1486606020000,"doc_count":8},{"key_as_string":"2017-02-09T02:08:00.000Z","key":1486606080000,"doc_count":9},{"key_as_string":"2017-02-09T02:09:00.000Z","key":1486606140000,"doc_count":13},{"key_as_string":"2017-02-09T02:10:00.000Z","key":1486606200000,"doc_count":8},{"key_as_string":"2017-02-09T02:11:00.000Z","key":1486606260000,"doc_count":12},{"key_as_string":"2017-02-09T02:12:00.000Z","key":1486606320000,"doc_count":12},{"key_as_string":"2017-02-09T02:13:00.000Z","key":1486606380000,"doc_count":16},{"key_as_string":"2017-02-09T02:14:00.000Z","key":1486606440000,"doc_count":9},{"key_as_string":"2017-02-09T02:15:00.000Z","key":1486606500000,"doc_count":10},{"key_as_string":"2017-02-09T02:16:00.000Z","key":1486606560000,"doc_count":12},{"key_as_string":"2017-02-09T02:17:00.000Z","key":1486606620000,"doc_count":11},{"key_as_string":"2017-02-09T02:18:00.000Z","key":1486606680000,"doc_count":10},{"key_as_string":"2017-02-09T02:19:00.000Z","key":1486606740000,"doc_count":10},{"key_as_string":"2017-02-09T02:20:00.000Z","key":1486606800000,"doc_count":9},{"key_as_string":"2017-02-09T02:21:00.000Z","key":1486606860000,"doc_count":16},{"key_as_string":"2017-02-09T02:22:00.000Z","key":1486606920000,"doc_count":11},{"key_as_string":"2017-02-09T02:23:00.000Z","key":1486606980000,"doc_count":10},{"key_as_string":"2017-02-09T02:24:00.000Z","key":1486607040000,"doc_count":10},{"key_as_string":"2017-02-09T02:25:00.000Z","key":1486607100000,"doc_count":11},{"key_as_string":"2017-02-09T02:26:00.000Z","key":1486607160000,"doc_count":7},{"key_as_string":"2017-02-09T02:27:00.000Z","key":1486607220000,"doc_count":12},{"key_as_string":"2017-02-09T02:28:00.000Z","key":1486607280000,"doc_count":9},{"key_as_string":"2017-02-09T02:29:00.000Z","key":1486607340000,"doc_count":6},{"key_as_string":"2017-02-09T02:30:00.000Z","key":1486607400000,"doc_count":10},{"key_as_string":"2017-02-09T02:31:00.000Z","key":1486607460000,"doc_count":8},{"key_as_string":"2017-02-09T02:32:00.000Z","key":1486607520000,"doc_count":14},{"key_as_string":"2017-02-09T02:33:00.000Z","key":1486607580000,"doc_count":9},{"key_as_string":"2017-02-09T02:34:00.000Z","key":1486607640000,"doc_count":10},{"key_as_string":"2017-02-09T02:35:00.000Z","key":1486607700000,"doc_count":9},{"key_as_string":"2017-02-09T02:36:00.000Z","key":1486607760000,"doc_count":11},{"key_as_string":"2017-02-09T02:37:00.000Z","key":1486607820000,"doc_count":11},{"key_as_string":"2017-02-09T02:38:00.000Z","key":1486607880000,"doc_count":6},{"key_as_string":"2017-02-09T02:39:00.000Z","key":1486607940000,"doc_count":20},{"key_as_string":"2017-02-09T02:40:00.000Z","key":1486608000000,"doc_count":11},{"key_as_string":"2017-02-09T02:41:00.000Z","key":1486608060000,"doc_count":11},{"key_as_string":"2017-02-09T02:42:00.000Z","key":1486608120000,"doc_count":11},{"key_as_string":"2017-02-09T02:43:00.000Z","key":1486608180000,"doc_count":5},{"key_as_string":"2017-02-09T02:44:00.000Z","key":1486608240000,"doc_count":10},{"key_as_string":"2017-02-09T02:45:00.000Z","key":1486608300000,"doc_count":10},{"key_as_string":"2017-02-09T02:46:00.000Z","key":1486608360000,"doc_count":14},{"key_as_string":"2017-02-09T02:47:00.000Z","key":1486608420000,"doc_count":10},{"key_as_string":"2017-02-09T02:48:00.000Z","key":1486608480000,"doc_count":13},{"key_as_string":"2017-02-09T02:49:00.000Z","key":1486608540000,"doc_count":9},{"key_as_string":"2017-02-09T02:50:00.000Z","key":1486608600000,"doc_count":10},{"key_as_string":"2017-02-09T02:51:00.000Z","key":1486608660000,"doc_count":9},{"key_as_string":"2017-02-09T02:52:00.000Z","key":1486608720000,"doc_count":13},{"key_as_string":"2017-02-09T02:53:00.000Z","key":1486608780000,"doc_count":16},{"key_as_string":"2017-02-09T02:54:00.000Z","key":1486608840000,"doc_count":5},{"key_as_string":"2017-02-09T02:55:00.000Z","key":1486608900000,"doc_count":8},{"key_as_string":"2017-02-09T02:56:00.000Z","key":1486608960000,"doc_count":13},{"key_as_string":"2017-02-09T02:57:00.000Z","key":1486609020000,"doc_count":10},{"key_as_string":"2017-02-09T02:58:00.000Z","key":1486609080000,"doc_count":11},{"key_as_string":"2017-02-09T02:59:00.000Z","key":1486609140000,"doc_count":9},{"key_as_string":"2017-02-09T03:00:00.000Z","key":1486609200000,"doc_count":14},{"key_as_string":"2017-02-09T03:01:00.000Z","key":1486609260000,"doc_count":7},{"key_as_string":"2017-02-09T03:02:00.000Z","key":1486609320000,"doc_count":9},{"key_as_string":"2017-02-09T03:03:00.000Z","key":1486609380000,"doc_count":11},{"key_as_string":"2017-02-09T03:04:00.000Z","key":1486609440000,"doc_count":21},{"key_as_string":"2017-02-09T03:05:00.000Z","key":1486609500000,"doc_count":12},{"key_as_string":"2017-02-09T03:06:00.000Z","key":1486609560000,"doc_count":14},{"key_as_string":"2017-02-09T03:07:00.000Z","key":1486609620000,"doc_count":9},{"key_as_string":"2017-02-09T03:08:00.000Z","key":1486609680000,"doc_count":12},{"key_as_string":"2017-02-09T03:09:00.000Z","key":1486609740000,"doc_count":12},{"key_as_string":"2017-02-09T03:10:00.000Z","key":1486609800000,"doc_count":10},{"key_as_string":"2017-02-09T03:11:00.000Z","key":1486609860000,"doc_count":7},{"key_as_string":"2017-02-09T03:12:00.000Z","key":1486609920000,"doc_count":11},{"key_as_string":"2017-02-09T03:13:00.000Z","key":1486609980000,"doc_count":9},{"key_as_string":"2017-02-09T03:14:00.000Z","key":1486610040000,"doc_count":5},{"key_as_string":"2017-02-09T03:15:00.000Z","key":1486610100000,"doc_count":14},{"key_as_string":"2017-02-09T03:16:00.000Z","key":1486610160000,"doc_count":7},{"key_as_string":"2017-02-09T03:17:00.000Z","key":1486610220000,"doc_count":11},{"key_as_string":"2017-02-09T03:18:00.000Z","key":1486610280000,"doc_count":14},{"key_as_string":"2017-02-09T03:19:00.000Z","key":1486610340000,"doc_count":12},{"key_as_string":"2017-02-09T03:20:00.000Z","key":1486610400000,"doc_count":7},{"key_as_string":"2017-02-09T03:21:00.000Z","key":1486610460000,"doc_count":15},{"key_as_string":"2017-02-09T03:22:00.000Z","key":1486610520000,"doc_count":12},{"key_as_string":"2017-02-09T03:23:00.000Z","key":1486610580000,"doc_count":10},{"key_as_string":"2017-02-09T03:24:00.000Z","key":1486610640000,"doc_count":6},{"key_as_string":"2017-02-09T03:25:00.000Z","key":1486610700000,"doc_count":11},{"key_as_string":"2017-02-09T03:26:00.000Z","key":1486610760000,"doc_count":10},{"key_as_string":"2017-02-09T03:27:00.000Z","key":1486610820000,"doc_count":11},{"key_as_string":"2017-02-09T03:28:00.000Z","key":1486610880000,"doc_count":12},{"key_as_string":"2017-02-09T03:29:00.000Z","key":1486610940000,"doc_count":11},{"key_as_string":"2017-02-09T03:30:00.000Z","key":1486611000000,"doc_count":15},{"key_as_string":"2017-02-09T03:31:00.000Z","key":1486611060000,"doc_count":10},{"key_as_string":"2017-02-09T03:32:00.000Z","key":1486611120000,"doc_count":14},{"key_as_string":"2017-02-09T03:33:00.000Z","key":1486611180000,"doc_count":10},{"key_as_string":"2017-02-09T03:34:00.000Z","key":1486611240000,"doc_count":10},{"key_as_string":"2017-02-09T03:35:00.000Z","key":1486611300000,"doc_count":15},{"key_as_string":"2017-02-09T03:36:00.000Z","key":1486611360000,"doc_count":8},{"key_as_string":"2017-02-09T03:37:00.000Z","key":1486611420000,"doc_count":8},{"key_as_string":"2017-02-09T03:38:00.000Z","key":1486611480000,"doc_count":15},{"key_as_string":"2017-02-09T03:39:00.000Z","key":1486611540000,"doc_count":7},{"key_as_string":"2017-02-09T03:40:00.000Z","key":1486611600000,"doc_count":15},{"key_as_string":"2017-02-09T03:41:00.000Z","key":1486611660000,"doc_count":7},{"key_as_string":"2017-02-09T03:42:00.000Z","key":1486611720000,"doc_count":14},{"key_as_string":"2017-02-09T03:43:00.000Z","key":1486611780000,"doc_count":8},{"key_as_string":"2017-02-09T03:44:00.000Z","key":1486611840000,"doc_count":9},{"key_as_string":"2017-02-09T03:45:00.000Z","key":1486611900000,"doc_count":11},{"key_as_string":"2017-02-09T03:46:00.000Z","key":1486611960000,"doc_count":15},{"key_as_string":"2017-02-09T03:47:00.000Z","key":1486612020000,"doc_count":6},{"key_as_string":"2017-02-09T03:48:00.000Z","key":1486612080000,"doc_count":9},{"key_as_string":"2017-02-09T03:49:00.000Z","key":1486612140000,"doc_count":13},{"key_as_string":"2017-02-09T03:50:00.000Z","key":1486612200000,"doc_count":9},{"key_as_string":"2017-02-09T03:51:00.000Z","key":1486612260000,"doc_count":11},{"key_as_string":"2017-02-09T03:52:00.000Z","key":1486612320000,"doc_count":12},{"key_as_string":"2017-02-09T03:53:00.000Z","key":1486612380000,"doc_count":13},{"key_as_string":"2017-02-09T03:54:00.000Z","key":1486612440000,"doc_count":7},{"key_as_string":"2017-02-09T03:55:00.000Z","key":1486612500000,"doc_count":14},{"key_as_string":"2017-02-09T03:56:00.000Z","key":1486612560000,"doc_count":10},{"key_as_string":"2017-02-09T03:57:00.000Z","key":1486612620000,"doc_count":8},{"key_as_string":"2017-02-09T03:58:00.000Z","key":1486612680000,"doc_count":6},{"key_as_string":"2017-02-09T03:59:00.000Z","key":1486612740000,"doc_count":11},{"key_as_string":"2017-02-09T04:00:00.000Z","key":1486612800000,"doc_count":8},{"key_as_string":"2017-02-09T04:01:00.000Z","key":1486612860000,"doc_count":12},{"key_as_string":"2017-02-09T04:02:00.000Z","key":1486612920000,"doc_count":13},{"key_as_string":"2017-02-09T04:03:00.000Z","key":1486612980000,"doc_count":10},{"key_as_string":"2017-02-09T04:04:00.000Z","key":1486613040000,"doc_count":12},{"key_as_string":"2017-02-09T04:05:00.000Z","key":1486613100000,"doc_count":9},{"key_as_string":"2017-02-09T04:06:00.000Z","key":1486613160000,"doc_count":16},{"key_as_string":"2017-02-09T04:07:00.000Z","key":1486613220000,"doc_count":12},{"key_as_string":"2017-02-09T04:08:00.000Z","key":1486613280000,"doc_count":16},{"key_as_string":"2017-02-09T04:09:00.000Z","key":1486613340000,"doc_count":10},{"key_as_string":"2017-02-09T04:10:00.000Z","key":1486613400000,"doc_count":9},{"key_as_string":"2017-02-09T04:11:00.000Z","key":1486613460000,"doc_count":9},{"key_as_string":"2017-02-09T04:12:00.000Z","key":1486613520000,"doc_count":11},{"key_as_string":"2017-02-09T04:13:00.000Z","key":1486613580000,"doc_count":8},{"key_as_string":"2017-02-09T04:14:00.000Z","key":1486613640000,"doc_count":11},{"key_as_string":"2017-02-09T04:15:00.000Z","key":1486613700000,"doc_count":7},{"key_as_string":"2017-02-09T04:16:00.000Z","key":1486613760000,"doc_count":9},{"key_as_string":"2017-02-09T04:17:00.000Z","key":1486613820000,"doc_count":14},{"key_as_string":"2017-02-09T04:18:00.000Z","key":1486613880000,"doc_count":12},{"key_as_string":"2017-02-09T04:19:00.000Z","key":1486613940000,"doc_count":12},{"key_as_string":"2017-02-09T04:20:00.000Z","key":1486614000000,"doc_count":11},{"key_as_string":"2017-02-09T04:21:00.000Z","key":1486614060000,"doc_count":15},{"key_as_string":"2017-02-09T04:22:00.000Z","key":1486614120000,"doc_count":15},{"key_as_string":"2017-02-09T04:23:00.000Z","key":1486614180000,"doc_count":14},{"key_as_string":"2017-02-09T04:24:00.000Z","key":1486614240000,"doc_count":10},{"key_as_string":"2017-02-09T04:25:00.000Z","key":1486614300000,"doc_count":8},{"key_as_string":"2017-02-09T04:26:00.000Z","key":1486614360000,"doc_count":8},{"key_as_string":"2017-02-09T04:27:00.000Z","key":1486614420000,"doc_count":14},{"key_as_string":"2017-02-09T04:28:00.000Z","key":1486614480000,"doc_count":9},{"key_as_string":"2017-02-09T04:29:00.000Z","key":1486614540000,"doc_count":16},{"key_as_string":"2017-02-09T04:30:00.000Z","key":1486614600000,"doc_count":11},{"key_as_string":"2017-02-09T04:31:00.000Z","key":1486614660000,"doc_count":13},{"key_as_string":"2017-02-09T04:32:00.000Z","key":1486614720000,"doc_count":9},{"key_as_string":"2017-02-09T04:33:00.000Z","key":1486614780000,"doc_count":16},{"key_as_string":"2017-02-09T04:34:00.000Z","key":1486614840000,"doc_count":11},{"key_as_string":"2017-02-09T04:35:00.000Z","key":1486614900000,"doc_count":9},{"key_as_string":"2017-02-09T04:36:00.000Z","key":1486614960000,"doc_count":11},{"key_as_string":"2017-02-09T04:37:00.000Z","key":1486615020000,"doc_count":14},{"key_as_string":"2017-02-09T04:38:00.000Z","key":1486615080000,"doc_count":14},{"key_as_string":"2017-02-09T04:39:00.000Z","key":1486615140000,"doc_count":10},{"key_as_string":"2017-02-09T04:40:00.000Z","key":1486615200000,"doc_count":7},{"key_as_string":"2017-02-09T04:41:00.000Z","key":1486615260000,"doc_count":13},{"key_as_string":"2017-02-09T04:42:00.000Z","key":1486615320000,"doc_count":10},{"key_as_string":"2017-02-09T04:43:00.000Z","key":1486615380000,"doc_count":17},{"key_as_string":"2017-02-09T04:44:00.000Z","key":1486615440000,"doc_count":12},{"key_as_string":"2017-02-09T04:45:00.000Z","key":1486615500000,"doc_count":9},{"key_as_string":"2017-02-09T04:46:00.000Z","key":1486615560000,"doc_count":7},{"key_as_string":"2017-02-09T04:47:00.000Z","key":1486615620000,"doc_count":14},{"key_as_string":"2017-02-09T04:48:00.000Z","key":1486615680000,"doc_count":11},{"key_as_string":"2017-02-09T04:49:00.000Z","key":1486615740000,"doc_count":15},{"key_as_string":"2017-02-09T04:50:00.000Z","key":1486615800000,"doc_count":12},{"key_as_string":"2017-02-09T04:51:00.000Z","key":1486615860000,"doc_count":11},{"key_as_string":"2017-02-09T04:52:00.000Z","key":1486615920000,"doc_count":10},{"key_as_string":"2017-02-09T04:53:00.000Z","key":1486615980000,"doc_count":10},{"key_as_string":"2017-02-09T04:54:00.000Z","key":1486616040000,"doc_count":12},{"key_as_string":"2017-02-09T04:55:00.000Z","key":1486616100000,"doc_count":10},{"key_as_string":"2017-02-09T04:56:00.000Z","key":1486616160000,"doc_count":13},{"key_as_string":"2017-02-09T04:57:00.000Z","key":1486616220000,"doc_count":10},{"key_as_string":"2017-02-09T04:58:00.000Z","key":1486616280000,"doc_count":12},{"key_as_string":"2017-02-09T04:59:00.000Z","key":1486616340000,"doc_count":13},{"key_as_string":"2017-02-09T05:00:00.000Z","key":1486616400000,"doc_count":11},{"key_as_string":"2017-02-09T05:01:00.000Z","key":1486616460000,"doc_count":14},{"key_as_string":"2017-02-09T05:02:00.000Z","key":1486616520000,"doc_count":10},{"key_as_string":"2017-02-09T05:03:00.000Z","key":1486616580000,"doc_count":13},{"key_as_string":"2017-02-09T05:04:00.000Z","key":1486616640000,"doc_count":11},{"key_as_string":"2017-02-09T05:05:00.000Z","key":1486616700000,"doc_count":11},{"key_as_string":"2017-02-09T05:06:00.000Z","key":1486616760000,"doc_count":12},{"key_as_string":"2017-02-09T05:07:00.000Z","key":1486616820000,"doc_count":21},{"key_as_string":"2017-02-09T05:08:00.000Z","key":1486616880000,"doc_count":7},{"key_as_string":"2017-02-09T05:09:00.000Z","key":1486616940000,"doc_count":14},{"key_as_string":"2017-02-09T05:10:00.000Z","key":1486617000000,"doc_count":9},{"key_as_string":"2017-02-09T05:11:00.000Z","key":1486617060000,"doc_count":7},{"key_as_string":"2017-02-09T05:12:00.000Z","key":1486617120000,"doc_count":15},{"key_as_string":"2017-02-09T05:13:00.000Z","key":1486617180000,"doc_count":12},{"key_as_string":"2017-02-09T05:14:00.000Z","key":1486617240000,"doc_count":15},{"key_as_string":"2017-02-09T05:15:00.000Z","key":1486617300000,"doc_count":12},{"key_as_string":"2017-02-09T05:16:00.000Z","key":1486617360000,"doc_count":15},{"key_as_string":"2017-02-09T05:17:00.000Z","key":1486617420000,"doc_count":11},{"key_as_string":"2017-02-09T05:18:00.000Z","key":1486617480000,"doc_count":16},{"key_as_string":"2017-02-09T05:19:00.000Z","key":1486617540000,"doc_count":8},{"key_as_string":"2017-02-09T05:20:00.000Z","key":1486617600000,"doc_count":12},{"key_as_string":"2017-02-09T05:21:00.000Z","key":1486617660000,"doc_count":12},{"key_as_string":"2017-02-09T05:22:00.000Z","key":1486617720000,"doc_count":11},{"key_as_string":"2017-02-09T05:23:00.000Z","key":1486617780000,"doc_count":10},{"key_as_string":"2017-02-09T05:24:00.000Z","key":1486617840000,"doc_count":15},{"key_as_string":"2017-02-09T05:25:00.000Z","key":1486617900000,"doc_count":8},{"key_as_string":"2017-02-09T05:26:00.000Z","key":1486617960000,"doc_count":13},{"key_as_string":"2017-02-09T05:27:00.000Z","key":1486618020000,"doc_count":14},{"key_as_string":"2017-02-09T05:28:00.000Z","key":1486618080000,"doc_count":7},{"key_as_string":"2017-02-09T05:29:00.000Z","key":1486618140000,"doc_count":9},{"key_as_string":"2017-02-09T05:30:00.000Z","key":1486618200000,"doc_count":10},{"key_as_string":"2017-02-09T05:31:00.000Z","key":1486618260000,"doc_count":11},{"key_as_string":"2017-02-09T05:32:00.000Z","key":1486618320000,"doc_count":8},{"key_as_string":"2017-02-09T05:33:00.000Z","key":1486618380000,"doc_count":12},{"key_as_string":"2017-02-09T05:34:00.000Z","key":1486618440000,"doc_count":13},{"key_as_string":"2017-02-09T05:35:00.000Z","key":1486618500000,"doc_count":10},{"key_as_string":"2017-02-09T05:36:00.000Z","key":1486618560000,"doc_count":13},{"key_as_string":"2017-02-09T05:37:00.000Z","key":1486618620000,"doc_count":5},{"key_as_string":"2017-02-09T05:38:00.000Z","key":1486618680000,"doc_count":13},{"key_as_string":"2017-02-09T05:39:00.000Z","key":1486618740000,"doc_count":5},{"key_as_string":"2017-02-09T05:40:00.000Z","key":1486618800000,"doc_count":13},{"key_as_string":"2017-02-09T05:41:00.000Z","key":1486618860000,"doc_count":12},{"key_as_string":"2017-02-09T05:42:00.000Z","key":1486618920000,"doc_count":21},{"key_as_string":"2017-02-09T05:43:00.000Z","key":1486618980000,"doc_count":6},{"key_as_string":"2017-02-09T05:44:00.000Z","key":1486619040000,"doc_count":16},{"key_as_string":"2017-02-09T05:45:00.000Z","key":1486619100000,"doc_count":11},{"key_as_string":"2017-02-09T05:46:00.000Z","key":1486619160000,"doc_count":10},{"key_as_string":"2017-02-09T05:47:00.000Z","key":1486619220000,"doc_count":10},{"key_as_string":"2017-02-09T05:48:00.000Z","key":1486619280000,"doc_count":12},{"key_as_string":"2017-02-09T05:49:00.000Z","key":1486619340000,"doc_count":11},{"key_as_string":"2017-02-09T05:50:00.000Z","key":1486619400000,"doc_count":13},{"key_as_string":"2017-02-09T05:51:00.000Z","key":1486619460000,"doc_count":12},{"key_as_string":"2017-02-09T05:52:00.000Z","key":1486619520000,"doc_count":6},{"key_as_string":"2017-02-09T05:53:00.000Z","key":1486619580000,"doc_count":13},{"key_as_string":"2017-02-09T05:54:00.000Z","key":1486619640000,"doc_count":11},{"key_as_string":"2017-02-09T05:55:00.000Z","key":1486619700000,"doc_count":13},{"key_as_string":"2017-02-09T05:56:00.000Z","key":1486619760000,"doc_count":13},{"key_as_string":"2017-02-09T05:57:00.000Z","key":1486619820000,"doc_count":13},{"key_as_string":"2017-02-09T05:58:00.000Z","key":1486619880000,"doc_count":9},{"key_as_string":"2017-02-09T05:59:00.000Z","key":1486619940000,"doc_count":12},{"key_as_string":"2017-02-09T06:00:00.000Z","key":1486620000000,"doc_count":12},{"key_as_string":"2017-02-09T06:01:00.000Z","key":1486620060000,"doc_count":17},{"key_as_string":"2017-02-09T06:02:00.000Z","key":1486620120000,"doc_count":14},{"key_as_string":"2017-02-09T06:03:00.000Z","key":1486620180000,"doc_count":7},{"key_as_string":"2017-02-09T06:04:00.000Z","key":1486620240000,"doc_count":9},{"key_as_string":"2017-02-09T06:05:00.000Z","key":1486620300000,"doc_count":15},{"key_as_string":"2017-02-09T06:06:00.000Z","key":1486620360000,"doc_count":11},{"key_as_string":"2017-02-09T06:07:00.000Z","key":1486620420000,"doc_count":10},{"key_as_string":"2017-02-09T06:08:00.000Z","key":1486620480000,"doc_count":11},{"key_as_string":"2017-02-09T06:09:00.000Z","key":1486620540000,"doc_count":8},{"key_as_string":"2017-02-09T06:10:00.000Z","key":1486620600000,"doc_count":12},{"key_as_string":"2017-02-09T06:11:00.000Z","key":1486620660000,"doc_count":16},{"key_as_string":"2017-02-09T06:12:00.000Z","key":1486620720000,"doc_count":11},{"key_as_string":"2017-02-09T06:13:00.000Z","key":1486620780000,"doc_count":8},{"key_as_string":"2017-02-09T06:14:00.000Z","key":1486620840000,"doc_count":11},{"key_as_string":"2017-02-09T06:15:00.000Z","key":1486620900000,"doc_count":16},{"key_as_string":"2017-02-09T06:16:00.000Z","key":1486620960000,"doc_count":12},{"key_as_string":"2017-02-09T06:17:00.000Z","key":1486621020000,"doc_count":10},{"key_as_string":"2017-02-09T06:18:00.000Z","key":1486621080000,"doc_count":10},{"key_as_string":"2017-02-09T06:19:00.000Z","key":1486621140000,"doc_count":18},{"key_as_string":"2017-02-09T06:20:00.000Z","key":1486621200000,"doc_count":8},{"key_as_string":"2017-02-09T06:21:00.000Z","key":1486621260000,"doc_count":13},{"key_as_string":"2017-02-09T06:22:00.000Z","key":1486621320000,"doc_count":10},{"key_as_string":"2017-02-09T06:23:00.000Z","key":1486621380000,"doc_count":15},{"key_as_string":"2017-02-09T06:24:00.000Z","key":1486621440000,"doc_count":13},{"key_as_string":"2017-02-09T06:25:00.000Z","key":1486621500000,"doc_count":10},{"key_as_string":"2017-02-09T06:26:00.000Z","key":1486621560000,"doc_count":11},{"key_as_string":"2017-02-09T06:27:00.000Z","key":1486621620000,"doc_count":10},{"key_as_string":"2017-02-09T06:28:00.000Z","key":1486621680000,"doc_count":11},{"key_as_string":"2017-02-09T06:29:00.000Z","key":1486621740000,"doc_count":14},{"key_as_string":"2017-02-09T06:30:00.000Z","key":1486621800000,"doc_count":7},{"key_as_string":"2017-02-09T06:31:00.000Z","key":1486621860000,"doc_count":13},{"key_as_string":"2017-02-09T06:32:00.000Z","key":1486621920000,"doc_count":10},{"key_as_string":"2017-02-09T06:33:00.000Z","key":1486621980000,"doc_count":7},{"key_as_string":"2017-02-09T06:34:00.000Z","key":1486622040000,"doc_count":15},{"key_as_string":"2017-02-09T06:35:00.000Z","key":1486622100000,"doc_count":10},{"key_as_string":"2017-02-09T06:36:00.000Z","key":1486622160000,"doc_count":14},{"key_as_string":"2017-02-09T06:37:00.000Z","key":1486622220000,"doc_count":10},{"key_as_string":"2017-02-09T06:38:00.000Z","key":1486622280000,"doc_count":8},{"key_as_string":"2017-02-09T06:39:00.000Z","key":1486622340000,"doc_count":7},{"key_as_string":"2017-02-09T06:40:00.000Z","key":1486622400000,"doc_count":13},{"key_as_string":"2017-02-09T06:41:00.000Z","key":1486622460000,"doc_count":13},{"key_as_string":"2017-02-09T06:42:00.000Z","key":1486622520000,"doc_count":7},{"key_as_string":"2017-02-09T06:43:00.000Z","key":1486622580000,"doc_count":12},{"key_as_string":"2017-02-09T06:44:00.000Z","key":1486622640000,"doc_count":11},{"key_as_string":"2017-02-09T06:45:00.000Z","key":1486622700000,"doc_count":10},{"key_as_string":"2017-02-09T06:46:00.000Z","key":1486622760000,"doc_count":16},{"key_as_string":"2017-02-09T06:47:00.000Z","key":1486622820000,"doc_count":17},{"key_as_string":"2017-02-09T06:48:00.000Z","key":1486622880000,"doc_count":13},{"key_as_string":"2017-02-09T06:49:00.000Z","key":1486622940000,"doc_count":11},{"key_as_string":"2017-02-09T06:50:00.000Z","key":1486623000000,"doc_count":8},{"key_as_string":"2017-02-09T06:51:00.000Z","key":1486623060000,"doc_count":6},{"key_as_string":"2017-02-09T06:52:00.000Z","key":1486623120000,"doc_count":17},{"key_as_string":"2017-02-09T06:53:00.000Z","key":1486623180000,"doc_count":11},{"key_as_string":"2017-02-09T06:54:00.000Z","key":1486623240000,"doc_count":11},{"key_as_string":"2017-02-09T06:55:00.000Z","key":1486623300000,"doc_count":14},{"key_as_string":"2017-02-09T06:56:00.000Z","key":1486623360000,"doc_count":10},{"key_as_string":"2017-02-09T06:57:00.000Z","key":1486623420000,"doc_count":14},{"key_as_string":"2017-02-09T06:58:00.000Z","key":1486623480000,"doc_count":8},{"key_as_string":"2017-02-09T06:59:00.000Z","key":1486623540000,"doc_count":10},{"key_as_string":"2017-02-09T07:00:00.000Z","key":1486623600000,"doc_count":11},{"key_as_string":"2017-02-09T07:01:00.000Z","key":1486623660000,"doc_count":16},{"key_as_string":"2017-02-09T07:02:00.000Z","key":1486623720000,"doc_count":17},{"key_as_string":"2017-02-09T07:03:00.000Z","key":1486623780000,"doc_count":16},{"key_as_string":"2017-02-09T07:04:00.000Z","key":1486623840000,"doc_count":15},{"key_as_string":"2017-02-09T07:05:00.000Z","key":1486623900000,"doc_count":12},{"key_as_string":"2017-02-09T07:06:00.000Z","key":1486623960000,"doc_count":9},{"key_as_string":"2017-02-09T07:07:00.000Z","key":1486624020000,"doc_count":11},{"key_as_string":"2017-02-09T07:08:00.000Z","key":1486624080000,"doc_count":11},{"key_as_string":"2017-02-09T07:09:00.000Z","key":1486624140000,"doc_count":20},{"key_as_string":"2017-02-09T07:10:00.000Z","key":1486624200000,"doc_count":9},{"key_as_string":"2017-02-09T07:11:00.000Z","key":1486624260000,"doc_count":17},{"key_as_string":"2017-02-09T07:12:00.000Z","key":1486624320000,"doc_count":13},{"key_as_string":"2017-02-09T07:13:00.000Z","key":1486624380000,"doc_count":18},{"key_as_string":"2017-02-09T07:14:00.000Z","key":1486624440000,"doc_count":8},{"key_as_string":"2017-02-09T07:15:00.000Z","key":1486624500000,"doc_count":14},{"key_as_string":"2017-02-09T07:16:00.000Z","key":1486624560000,"doc_count":9},{"key_as_string":"2017-02-09T07:17:00.000Z","key":1486624620000,"doc_count":15},{"key_as_string":"2017-02-09T07:18:00.000Z","key":1486624680000,"doc_count":15},{"key_as_string":"2017-02-09T07:19:00.000Z","key":1486624740000,"doc_count":15},{"key_as_string":"2017-02-09T07:20:00.000Z","key":1486624800000,"doc_count":17},{"key_as_string":"2017-02-09T07:21:00.000Z","key":1486624860000,"doc_count":13},{"key_as_string":"2017-02-09T07:22:00.000Z","key":1486624920000,"doc_count":10},{"key_as_string":"2017-02-09T07:23:00.000Z","key":1486624980000,"doc_count":10},{"key_as_string":"2017-02-09T07:24:00.000Z","key":1486625040000,"doc_count":9},{"key_as_string":"2017-02-09T07:25:00.000Z","key":1486625100000,"doc_count":16},{"key_as_string":"2017-02-09T07:26:00.000Z","key":1486625160000,"doc_count":14},{"key_as_string":"2017-02-09T07:27:00.000Z","key":1486625220000,"doc_count":13},{"key_as_string":"2017-02-09T07:28:00.000Z","key":1486625280000,"doc_count":14},{"key_as_string":"2017-02-09T07:29:00.000Z","key":1486625340000,"doc_count":14},{"key_as_string":"2017-02-09T07:30:00.000Z","key":1486625400000,"doc_count":14},{"key_as_string":"2017-02-09T07:31:00.000Z","key":1486625460000,"doc_count":16},{"key_as_string":"2017-02-09T07:32:00.000Z","key":1486625520000,"doc_count":13},{"key_as_string":"2017-02-09T07:33:00.000Z","key":1486625580000,"doc_count":12},{"key_as_string":"2017-02-09T07:34:00.000Z","key":1486625640000,"doc_count":15},{"key_as_string":"2017-02-09T07:35:00.000Z","key":1486625700000,"doc_count":13},{"key_as_string":"2017-02-09T07:36:00.000Z","key":1486625760000,"doc_count":15},{"key_as_string":"2017-02-09T07:37:00.000Z","key":1486625820000,"doc_count":12},{"key_as_string":"2017-02-09T07:38:00.000Z","key":1486625880000,"doc_count":9},{"key_as_string":"2017-02-09T07:39:00.000Z","key":1486625940000,"doc_count":20},{"key_as_string":"2017-02-09T07:40:00.000Z","key":1486626000000,"doc_count":13},{"key_as_string":"2017-02-09T07:41:00.000Z","key":1486626060000,"doc_count":17},{"key_as_string":"2017-02-09T07:42:00.000Z","key":1486626120000,"doc_count":10},{"key_as_string":"2017-02-09T07:43:00.000Z","key":1486626180000,"doc_count":15},{"key_as_string":"2017-02-09T07:44:00.000Z","key":1486626240000,"doc_count":11},{"key_as_string":"2017-02-09T07:45:00.000Z","key":1486626300000,"doc_count":11},{"key_as_string":"2017-02-09T07:46:00.000Z","key":1486626360000,"doc_count":13},{"key_as_string":"2017-02-09T07:47:00.000Z","key":1486626420000,"doc_count":14},{"key_as_string":"2017-02-09T07:48:00.000Z","key":1486626480000,"doc_count":13},{"key_as_string":"2017-02-09T07:49:00.000Z","key":1486626540000,"doc_count":13},{"key_as_string":"2017-02-09T07:50:00.000Z","key":1486626600000,"doc_count":12},{"key_as_string":"2017-02-09T07:51:00.000Z","key":1486626660000,"doc_count":15},{"key_as_string":"2017-02-09T07:52:00.000Z","key":1486626720000,"doc_count":15},{"key_as_string":"2017-02-09T07:53:00.000Z","key":1486626780000,"doc_count":15},{"key_as_string":"2017-02-09T07:54:00.000Z","key":1486626840000,"doc_count":12},{"key_as_string":"2017-02-09T07:55:00.000Z","key":1486626900000,"doc_count":11},{"key_as_string":"2017-02-09T07:56:00.000Z","key":1486626960000,"doc_count":14},{"key_as_string":"2017-02-09T07:57:00.000Z","key":1486627020000,"doc_count":8},{"key_as_string":"2017-02-09T07:58:00.000Z","key":1486627080000,"doc_count":17},{"key_as_string":"2017-02-09T07:59:00.000Z","key":1486627140000,"doc_count":13},{"key_as_string":"2017-02-09T08:00:00.000Z","key":1486627200000,"doc_count":13},{"key_as_string":"2017-02-09T08:01:00.000Z","key":1486627260000,"doc_count":12},{"key_as_string":"2017-02-09T08:02:00.000Z","key":1486627320000,"doc_count":19},{"key_as_string":"2017-02-09T08:03:00.000Z","key":1486627380000,"doc_count":15},{"key_as_string":"2017-02-09T08:04:00.000Z","key":1486627440000,"doc_count":9},{"key_as_string":"2017-02-09T08:05:00.000Z","key":1486627500000,"doc_count":14},{"key_as_string":"2017-02-09T08:06:00.000Z","key":1486627560000,"doc_count":14},{"key_as_string":"2017-02-09T08:07:00.000Z","key":1486627620000,"doc_count":13},{"key_as_string":"2017-02-09T08:08:00.000Z","key":1486627680000,"doc_count":10},{"key_as_string":"2017-02-09T08:09:00.000Z","key":1486627740000,"doc_count":14},{"key_as_string":"2017-02-09T08:10:00.000Z","key":1486627800000,"doc_count":11},{"key_as_string":"2017-02-09T08:11:00.000Z","key":1486627860000,"doc_count":12},{"key_as_string":"2017-02-09T08:12:00.000Z","key":1486627920000,"doc_count":15},{"key_as_string":"2017-02-09T08:13:00.000Z","key":1486627980000,"doc_count":13},{"key_as_string":"2017-02-09T08:14:00.000Z","key":1486628040000,"doc_count":12},{"key_as_string":"2017-02-09T08:15:00.000Z","key":1486628100000,"doc_count":11},{"key_as_string":"2017-02-09T08:16:00.000Z","key":1486628160000,"doc_count":21},{"key_as_string":"2017-02-09T08:17:00.000Z","key":1486628220000,"doc_count":16},{"key_as_string":"2017-02-09T08:18:00.000Z","key":1486628280000,"doc_count":16},{"key_as_string":"2017-02-09T08:19:00.000Z","key":1486628340000,"doc_count":11},{"key_as_string":"2017-02-09T08:20:00.000Z","key":1486628400000,"doc_count":14},{"key_as_string":"2017-02-09T08:21:00.000Z","key":1486628460000,"doc_count":14},{"key_as_string":"2017-02-09T08:22:00.000Z","key":1486628520000,"doc_count":13},{"key_as_string":"2017-02-09T08:23:00.000Z","key":1486628580000,"doc_count":13},{"key_as_string":"2017-02-09T08:24:00.000Z","key":1486628640000,"doc_count":12},{"key_as_string":"2017-02-09T08:25:00.000Z","key":1486628700000,"doc_count":16},{"key_as_string":"2017-02-09T08:26:00.000Z","key":1486628760000,"doc_count":12},{"key_as_string":"2017-02-09T08:27:00.000Z","key":1486628820000,"doc_count":10},{"key_as_string":"2017-02-09T08:28:00.000Z","key":1486628880000,"doc_count":15},{"key_as_string":"2017-02-09T08:29:00.000Z","key":1486628940000,"doc_count":17},{"key_as_string":"2017-02-09T08:30:00.000Z","key":1486629000000,"doc_count":12},{"key_as_string":"2017-02-09T08:31:00.000Z","key":1486629060000,"doc_count":13},{"key_as_string":"2017-02-09T08:32:00.000Z","key":1486629120000,"doc_count":14},{"key_as_string":"2017-02-09T08:33:00.000Z","key":1486629180000,"doc_count":14},{"key_as_string":"2017-02-09T08:34:00.000Z","key":1486629240000,"doc_count":14},{"key_as_string":"2017-02-09T08:35:00.000Z","key":1486629300000,"doc_count":12},{"key_as_string":"2017-02-09T08:36:00.000Z","key":1486629360000,"doc_count":14},{"key_as_string":"2017-02-09T08:37:00.000Z","key":1486629420000,"doc_count":14},{"key_as_string":"2017-02-09T08:38:00.000Z","key":1486629480000,"doc_count":12},{"key_as_string":"2017-02-09T08:39:00.000Z","key":1486629540000,"doc_count":7},{"key_as_string":"2017-02-09T08:40:00.000Z","key":1486629600000,"doc_count":18},{"key_as_string":"2017-02-09T08:41:00.000Z","key":1486629660000,"doc_count":10},{"key_as_string":"2017-02-09T08:42:00.000Z","key":1486629720000,"doc_count":13},{"key_as_string":"2017-02-09T08:43:00.000Z","key":1486629780000,"doc_count":14},{"key_as_string":"2017-02-09T08:44:00.000Z","key":1486629840000,"doc_count":16},{"key_as_string":"2017-02-09T08:45:00.000Z","key":1486629900000,"doc_count":14},{"key_as_string":"2017-02-09T08:46:00.000Z","key":1486629960000,"doc_count":13},{"key_as_string":"2017-02-09T08:47:00.000Z","key":1486630020000,"doc_count":15},{"key_as_string":"2017-02-09T08:48:00.000Z","key":1486630080000,"doc_count":14},{"key_as_string":"2017-02-09T08:49:00.000Z","key":1486630140000,"doc_count":16},{"key_as_string":"2017-02-09T08:50:00.000Z","key":1486630200000,"doc_count":11},{"key_as_string":"2017-02-09T08:51:00.000Z","key":1486630260000,"doc_count":15},{"key_as_string":"2017-02-09T08:52:00.000Z","key":1486630320000,"doc_count":15},{"key_as_string":"2017-02-09T08:53:00.000Z","key":1486630380000,"doc_count":12},{"key_as_string":"2017-02-09T08:54:00.000Z","key":1486630440000,"doc_count":13},{"key_as_string":"2017-02-09T08:55:00.000Z","key":1486630500000,"doc_count":11},{"key_as_string":"2017-02-09T08:56:00.000Z","key":1486630560000,"doc_count":7},{"key_as_string":"2017-02-09T08:57:00.000Z","key":1486630620000,"doc_count":14},{"key_as_string":"2017-02-09T08:58:00.000Z","key":1486630680000,"doc_count":12},{"key_as_string":"2017-02-09T08:59:00.000Z","key":1486630740000,"doc_count":8},{"key_as_string":"2017-02-09T09:00:00.000Z","key":1486630800000,"doc_count":15},{"key_as_string":"2017-02-09T09:01:00.000Z","key":1486630860000,"doc_count":13},{"key_as_string":"2017-02-09T09:02:00.000Z","key":1486630920000,"doc_count":17},{"key_as_string":"2017-02-09T09:03:00.000Z","key":1486630980000,"doc_count":10},{"key_as_string":"2017-02-09T09:04:00.000Z","key":1486631040000,"doc_count":12},{"key_as_string":"2017-02-09T09:05:00.000Z","key":1486631100000,"doc_count":12},{"key_as_string":"2017-02-09T09:06:00.000Z","key":1486631160000,"doc_count":10},{"key_as_string":"2017-02-09T09:07:00.000Z","key":1486631220000,"doc_count":13},{"key_as_string":"2017-02-09T09:08:00.000Z","key":1486631280000,"doc_count":15},{"key_as_string":"2017-02-09T09:09:00.000Z","key":1486631340000,"doc_count":10},{"key_as_string":"2017-02-09T09:10:00.000Z","key":1486631400000,"doc_count":17},{"key_as_string":"2017-02-09T09:11:00.000Z","key":1486631460000,"doc_count":14},{"key_as_string":"2017-02-09T09:12:00.000Z","key":1486631520000,"doc_count":10},{"key_as_string":"2017-02-09T09:13:00.000Z","key":1486631580000,"doc_count":15},{"key_as_string":"2017-02-09T09:14:00.000Z","key":1486631640000,"doc_count":14},{"key_as_string":"2017-02-09T09:15:00.000Z","key":1486631700000,"doc_count":16},{"key_as_string":"2017-02-09T09:16:00.000Z","key":1486631760000,"doc_count":11},{"key_as_string":"2017-02-09T09:17:00.000Z","key":1486631820000,"doc_count":16},{"key_as_string":"2017-02-09T09:18:00.000Z","key":1486631880000,"doc_count":11},{"key_as_string":"2017-02-09T09:19:00.000Z","key":1486631940000,"doc_count":11},{"key_as_string":"2017-02-09T09:20:00.000Z","key":1486632000000,"doc_count":18},{"key_as_string":"2017-02-09T09:21:00.000Z","key":1486632060000,"doc_count":10},{"key_as_string":"2017-02-09T09:22:00.000Z","key":1486632120000,"doc_count":10},{"key_as_string":"2017-02-09T09:23:00.000Z","key":1486632180000,"doc_count":14},{"key_as_string":"2017-02-09T09:24:00.000Z","key":1486632240000,"doc_count":18},{"key_as_string":"2017-02-09T09:25:00.000Z","key":1486632300000,"doc_count":12},{"key_as_string":"2017-02-09T09:26:00.000Z","key":1486632360000,"doc_count":16},{"key_as_string":"2017-02-09T09:27:00.000Z","key":1486632420000,"doc_count":15},{"key_as_string":"2017-02-09T09:28:00.000Z","key":1486632480000,"doc_count":25},{"key_as_string":"2017-02-09T09:29:00.000Z","key":1486632540000,"doc_count":13},{"key_as_string":"2017-02-09T09:30:00.000Z","key":1486632600000,"doc_count":11},{"key_as_string":"2017-02-09T09:31:00.000Z","key":1486632660000,"doc_count":12},{"key_as_string":"2017-02-09T09:32:00.000Z","key":1486632720000,"doc_count":16},{"key_as_string":"2017-02-09T09:33:00.000Z","key":1486632780000,"doc_count":10},{"key_as_string":"2017-02-09T09:34:00.000Z","key":1486632840000,"doc_count":14},{"key_as_string":"2017-02-09T09:35:00.000Z","key":1486632900000,"doc_count":14},{"key_as_string":"2017-02-09T09:36:00.000Z","key":1486632960000,"doc_count":16},{"key_as_string":"2017-02-09T09:37:00.000Z","key":1486633020000,"doc_count":19},{"key_as_string":"2017-02-09T09:38:00.000Z","key":1486633080000,"doc_count":15},{"key_as_string":"2017-02-09T09:39:00.000Z","key":1486633140000,"doc_count":13},{"key_as_string":"2017-02-09T09:40:00.000Z","key":1486633200000,"doc_count":10},{"key_as_string":"2017-02-09T09:41:00.000Z","key":1486633260000,"doc_count":16},{"key_as_string":"2017-02-09T09:42:00.000Z","key":1486633320000,"doc_count":20},{"key_as_string":"2017-02-09T09:43:00.000Z","key":1486633380000,"doc_count":7},{"key_as_string":"2017-02-09T09:44:00.000Z","key":1486633440000,"doc_count":16},{"key_as_string":"2017-02-09T09:45:00.000Z","key":1486633500000,"doc_count":10},{"key_as_string":"2017-02-09T09:46:00.000Z","key":1486633560000,"doc_count":15},{"key_as_string":"2017-02-09T09:47:00.000Z","key":1486633620000,"doc_count":10},{"key_as_string":"2017-02-09T09:48:00.000Z","key":1486633680000,"doc_count":19},{"key_as_string":"2017-02-09T09:49:00.000Z","key":1486633740000,"doc_count":11},{"key_as_string":"2017-02-09T09:50:00.000Z","key":1486633800000,"doc_count":12},{"key_as_string":"2017-02-09T09:51:00.000Z","key":1486633860000,"doc_count":13},{"key_as_string":"2017-02-09T09:52:00.000Z","key":1486633920000,"doc_count":10},{"key_as_string":"2017-02-09T09:53:00.000Z","key":1486633980000,"doc_count":15},{"key_as_string":"2017-02-09T09:54:00.000Z","key":1486634040000,"doc_count":11},{"key_as_string":"2017-02-09T09:55:00.000Z","key":1486634100000,"doc_count":15},{"key_as_string":"2017-02-09T09:56:00.000Z","key":1486634160000,"doc_count":14},{"key_as_string":"2017-02-09T09:57:00.000Z","key":1486634220000,"doc_count":11},{"key_as_string":"2017-02-09T09:58:00.000Z","key":1486634280000,"doc_count":9},{"key_as_string":"2017-02-09T09:59:00.000Z","key":1486634340000,"doc_count":18},{"key_as_string":"2017-02-09T10:00:00.000Z","key":1486634400000,"doc_count":13},{"key_as_string":"2017-02-09T10:01:00.000Z","key":1486634460000,"doc_count":13},{"key_as_string":"2017-02-09T10:02:00.000Z","key":1486634520000,"doc_count":11},{"key_as_string":"2017-02-09T10:03:00.000Z","key":1486634580000,"doc_count":15},{"key_as_string":"2017-02-09T10:04:00.000Z","key":1486634640000,"doc_count":11},{"key_as_string":"2017-02-09T10:05:00.000Z","key":1486634700000,"doc_count":16},{"key_as_string":"2017-02-09T10:06:00.000Z","key":1486634760000,"doc_count":15},{"key_as_string":"2017-02-09T10:07:00.000Z","key":1486634820000,"doc_count":9},{"key_as_string":"2017-02-09T10:08:00.000Z","key":1486634880000,"doc_count":14},{"key_as_string":"2017-02-09T10:09:00.000Z","key":1486634940000,"doc_count":16},{"key_as_string":"2017-02-09T10:10:00.000Z","key":1486635000000,"doc_count":16},{"key_as_string":"2017-02-09T10:11:00.000Z","key":1486635060000,"doc_count":13},{"key_as_string":"2017-02-09T10:12:00.000Z","key":1486635120000,"doc_count":16},{"key_as_string":"2017-02-09T10:13:00.000Z","key":1486635180000,"doc_count":12},{"key_as_string":"2017-02-09T10:14:00.000Z","key":1486635240000,"doc_count":12},{"key_as_string":"2017-02-09T10:15:00.000Z","key":1486635300000,"doc_count":14},{"key_as_string":"2017-02-09T10:16:00.000Z","key":1486635360000,"doc_count":12},{"key_as_string":"2017-02-09T10:17:00.000Z","key":1486635420000,"doc_count":18},{"key_as_string":"2017-02-09T10:18:00.000Z","key":1486635480000,"doc_count":19},{"key_as_string":"2017-02-09T10:19:00.000Z","key":1486635540000,"doc_count":8},{"key_as_string":"2017-02-09T10:20:00.000Z","key":1486635600000,"doc_count":12},{"key_as_string":"2017-02-09T10:21:00.000Z","key":1486635660000,"doc_count":13},{"key_as_string":"2017-02-09T10:22:00.000Z","key":1486635720000,"doc_count":16},{"key_as_string":"2017-02-09T10:23:00.000Z","key":1486635780000,"doc_count":13},{"key_as_string":"2017-02-09T10:24:00.000Z","key":1486635840000,"doc_count":9},{"key_as_string":"2017-02-09T10:25:00.000Z","key":1486635900000,"doc_count":17},{"key_as_string":"2017-02-09T10:26:00.000Z","key":1486635960000,"doc_count":16},{"key_as_string":"2017-02-09T10:27:00.000Z","key":1486636020000,"doc_count":14},{"key_as_string":"2017-02-09T10:28:00.000Z","key":1486636080000,"doc_count":11},{"key_as_string":"2017-02-09T10:29:00.000Z","key":1486636140000,"doc_count":12},{"key_as_string":"2017-02-09T10:30:00.000Z","key":1486636200000,"doc_count":19},{"key_as_string":"2017-02-09T10:31:00.000Z","key":1486636260000,"doc_count":16},{"key_as_string":"2017-02-09T10:32:00.000Z","key":1486636320000,"doc_count":12},{"key_as_string":"2017-02-09T10:33:00.000Z","key":1486636380000,"doc_count":14},{"key_as_string":"2017-02-09T10:34:00.000Z","key":1486636440000,"doc_count":11},{"key_as_string":"2017-02-09T10:35:00.000Z","key":1486636500000,"doc_count":15},{"key_as_string":"2017-02-09T10:36:00.000Z","key":1486636560000,"doc_count":18},{"key_as_string":"2017-02-09T10:37:00.000Z","key":1486636620000,"doc_count":15},{"key_as_string":"2017-02-09T10:38:00.000Z","key":1486636680000,"doc_count":12},{"key_as_string":"2017-02-09T10:39:00.000Z","key":1486636740000,"doc_count":14},{"key_as_string":"2017-02-09T10:40:00.000Z","key":1486636800000,"doc_count":14},{"key_as_string":"2017-02-09T10:41:00.000Z","key":1486636860000,"doc_count":17},{"key_as_string":"2017-02-09T10:42:00.000Z","key":1486636920000,"doc_count":13},{"key_as_string":"2017-02-09T10:43:00.000Z","key":1486636980000,"doc_count":9},{"key_as_string":"2017-02-09T10:44:00.000Z","key":1486637040000,"doc_count":11},{"key_as_string":"2017-02-09T10:45:00.000Z","key":1486637100000,"doc_count":14},{"key_as_string":"2017-02-09T10:46:00.000Z","key":1486637160000,"doc_count":15},{"key_as_string":"2017-02-09T10:47:00.000Z","key":1486637220000,"doc_count":14},{"key_as_string":"2017-02-09T10:48:00.000Z","key":1486637280000,"doc_count":13},{"key_as_string":"2017-02-09T10:49:00.000Z","key":1486637340000,"doc_count":16},{"key_as_string":"2017-02-09T10:50:00.000Z","key":1486637400000,"doc_count":11},{"key_as_string":"2017-02-09T10:51:00.000Z","key":1486637460000,"doc_count":15},{"key_as_string":"2017-02-09T10:52:00.000Z","key":1486637520000,"doc_count":16},{"key_as_string":"2017-02-09T10:53:00.000Z","key":1486637580000,"doc_count":14},{"key_as_string":"2017-02-09T10:54:00.000Z","key":1486637640000,"doc_count":13},{"key_as_string":"2017-02-09T10:55:00.000Z","key":1486637700000,"doc_count":12},{"key_as_string":"2017-02-09T10:56:00.000Z","key":1486637760000,"doc_count":14},{"key_as_string":"2017-02-09T10:57:00.000Z","key":1486637820000,"doc_count":14},{"key_as_string":"2017-02-09T10:58:00.000Z","key":1486637880000,"doc_count":15},{"key_as_string":"2017-02-09T10:59:00.000Z","key":1486637940000,"doc_count":11},{"key_as_string":"2017-02-09T11:00:00.000Z","key":1486638000000,"doc_count":14},{"key_as_string":"2017-02-09T11:01:00.000Z","key":1486638060000,"doc_count":12},{"key_as_string":"2017-02-09T11:02:00.000Z","key":1486638120000,"doc_count":17},{"key_as_string":"2017-02-09T11:03:00.000Z","key":1486638180000,"doc_count":10},{"key_as_string":"2017-02-09T11:04:00.000Z","key":1486638240000,"doc_count":14},{"key_as_string":"2017-02-09T11:05:00.000Z","key":1486638300000,"doc_count":13},{"key_as_string":"2017-02-09T11:06:00.000Z","key":1486638360000,"doc_count":11},{"key_as_string":"2017-02-09T11:07:00.000Z","key":1486638420000,"doc_count":14},{"key_as_string":"2017-02-09T11:08:00.000Z","key":1486638480000,"doc_count":8},{"key_as_string":"2017-02-09T11:09:00.000Z","key":1486638540000,"doc_count":20},{"key_as_string":"2017-02-09T11:10:00.000Z","key":1486638600000,"doc_count":15},{"key_as_string":"2017-02-09T11:11:00.000Z","key":1486638660000,"doc_count":17},{"key_as_string":"2017-02-09T11:12:00.000Z","key":1486638720000,"doc_count":14},{"key_as_string":"2017-02-09T11:13:00.000Z","key":1486638780000,"doc_count":12},{"key_as_string":"2017-02-09T11:14:00.000Z","key":1486638840000,"doc_count":12},{"key_as_string":"2017-02-09T11:15:00.000Z","key":1486638900000,"doc_count":18},{"key_as_string":"2017-02-09T11:16:00.000Z","key":1486638960000,"doc_count":17},{"key_as_string":"2017-02-09T11:17:00.000Z","key":1486639020000,"doc_count":16},{"key_as_string":"2017-02-09T11:18:00.000Z","key":1486639080000,"doc_count":11},{"key_as_string":"2017-02-09T11:19:00.000Z","key":1486639140000,"doc_count":14},{"key_as_string":"2017-02-09T11:20:00.000Z","key":1486639200000,"doc_count":17},{"key_as_string":"2017-02-09T11:21:00.000Z","key":1486639260000,"doc_count":16},{"key_as_string":"2017-02-09T11:22:00.000Z","key":1486639320000,"doc_count":13},{"key_as_string":"2017-02-09T11:23:00.000Z","key":1486639380000,"doc_count":15},{"key_as_string":"2017-02-09T11:24:00.000Z","key":1486639440000,"doc_count":11},{"key_as_string":"2017-02-09T11:25:00.000Z","key":1486639500000,"doc_count":12},{"key_as_string":"2017-02-09T11:26:00.000Z","key":1486639560000,"doc_count":20},{"key_as_string":"2017-02-09T11:27:00.000Z","key":1486639620000,"doc_count":13},{"key_as_string":"2017-02-09T11:28:00.000Z","key":1486639680000,"doc_count":15},{"key_as_string":"2017-02-09T11:29:00.000Z","key":1486639740000,"doc_count":19},{"key_as_string":"2017-02-09T11:30:00.000Z","key":1486639800000,"doc_count":12},{"key_as_string":"2017-02-09T11:31:00.000Z","key":1486639860000,"doc_count":12},{"key_as_string":"2017-02-09T11:32:00.000Z","key":1486639920000,"doc_count":13},{"key_as_string":"2017-02-09T11:33:00.000Z","key":1486639980000,"doc_count":15},{"key_as_string":"2017-02-09T11:34:00.000Z","key":1486640040000,"doc_count":14},{"key_as_string":"2017-02-09T11:35:00.000Z","key":1486640100000,"doc_count":16},{"key_as_string":"2017-02-09T11:36:00.000Z","key":1486640160000,"doc_count":18},{"key_as_string":"2017-02-09T11:37:00.000Z","key":1486640220000,"doc_count":13},{"key_as_string":"2017-02-09T11:38:00.000Z","key":1486640280000,"doc_count":11},{"key_as_string":"2017-02-09T11:39:00.000Z","key":1486640340000,"doc_count":18},{"key_as_string":"2017-02-09T11:40:00.000Z","key":1486640400000,"doc_count":10},{"key_as_string":"2017-02-09T11:41:00.000Z","key":1486640460000,"doc_count":16},{"key_as_string":"2017-02-09T11:42:00.000Z","key":1486640520000,"doc_count":16},{"key_as_string":"2017-02-09T11:43:00.000Z","key":1486640580000,"doc_count":10},{"key_as_string":"2017-02-09T11:44:00.000Z","key":1486640640000,"doc_count":8},{"key_as_string":"2017-02-09T11:45:00.000Z","key":1486640700000,"doc_count":17},{"key_as_string":"2017-02-09T11:46:00.000Z","key":1486640760000,"doc_count":15},{"key_as_string":"2017-02-09T11:47:00.000Z","key":1486640820000,"doc_count":11},{"key_as_string":"2017-02-09T11:48:00.000Z","key":1486640880000,"doc_count":14},{"key_as_string":"2017-02-09T11:49:00.000Z","key":1486640940000,"doc_count":16},{"key_as_string":"2017-02-09T11:50:00.000Z","key":1486641000000,"doc_count":15},{"key_as_string":"2017-02-09T11:51:00.000Z","key":1486641060000,"doc_count":16},{"key_as_string":"2017-02-09T11:52:00.000Z","key":1486641120000,"doc_count":19},{"key_as_string":"2017-02-09T11:53:00.000Z","key":1486641180000,"doc_count":14},{"key_as_string":"2017-02-09T11:54:00.000Z","key":1486641240000,"doc_count":11},{"key_as_string":"2017-02-09T11:55:00.000Z","key":1486641300000,"doc_count":7},{"key_as_string":"2017-02-09T11:56:00.000Z","key":1486641360000,"doc_count":15},{"key_as_string":"2017-02-09T11:57:00.000Z","key":1486641420000,"doc_count":10},{"key_as_string":"2017-02-09T11:58:00.000Z","key":1486641480000,"doc_count":11},{"key_as_string":"2017-02-09T11:59:00.000Z","key":1486641540000,"doc_count":16},{"key_as_string":"2017-02-09T12:00:00.000Z","key":1486641600000,"doc_count":18},{"key_as_string":"2017-02-09T12:01:00.000Z","key":1486641660000,"doc_count":11},{"key_as_string":"2017-02-09T12:02:00.000Z","key":1486641720000,"doc_count":16},{"key_as_string":"2017-02-09T12:03:00.000Z","key":1486641780000,"doc_count":12},{"key_as_string":"2017-02-09T12:04:00.000Z","key":1486641840000,"doc_count":14},{"key_as_string":"2017-02-09T12:05:00.000Z","key":1486641900000,"doc_count":13},{"key_as_string":"2017-02-09T12:06:00.000Z","key":1486641960000,"doc_count":11},{"key_as_string":"2017-02-09T12:07:00.000Z","key":1486642020000,"doc_count":19},{"key_as_string":"2017-02-09T12:08:00.000Z","key":1486642080000,"doc_count":19},{"key_as_string":"2017-02-09T12:09:00.000Z","key":1486642140000,"doc_count":9},{"key_as_string":"2017-02-09T12:10:00.000Z","key":1486642200000,"doc_count":16},{"key_as_string":"2017-02-09T12:11:00.000Z","key":1486642260000,"doc_count":14},{"key_as_string":"2017-02-09T12:12:00.000Z","key":1486642320000,"doc_count":12},{"key_as_string":"2017-02-09T12:13:00.000Z","key":1486642380000,"doc_count":19},{"key_as_string":"2017-02-09T12:14:00.000Z","key":1486642440000,"doc_count":16},{"key_as_string":"2017-02-09T12:15:00.000Z","key":1486642500000,"doc_count":15},{"key_as_string":"2017-02-09T12:16:00.000Z","key":1486642560000,"doc_count":13},{"key_as_string":"2017-02-09T12:17:00.000Z","key":1486642620000,"doc_count":10},{"key_as_string":"2017-02-09T12:18:00.000Z","key":1486642680000,"doc_count":13},{"key_as_string":"2017-02-09T12:19:00.000Z","key":1486642740000,"doc_count":13},{"key_as_string":"2017-02-09T12:20:00.000Z","key":1486642800000,"doc_count":11},{"key_as_string":"2017-02-09T12:21:00.000Z","key":1486642860000,"doc_count":19},{"key_as_string":"2017-02-09T12:22:00.000Z","key":1486642920000,"doc_count":13},{"key_as_string":"2017-02-09T12:23:00.000Z","key":1486642980000,"doc_count":17},{"key_as_string":"2017-02-09T12:24:00.000Z","key":1486643040000,"doc_count":10},{"key_as_string":"2017-02-09T12:25:00.000Z","key":1486643100000,"doc_count":12},{"key_as_string":"2017-02-09T12:26:00.000Z","key":1486643160000,"doc_count":13},{"key_as_string":"2017-02-09T12:27:00.000Z","key":1486643220000,"doc_count":12},{"key_as_string":"2017-02-09T12:28:00.000Z","key":1486643280000,"doc_count":16},{"key_as_string":"2017-02-09T12:29:00.000Z","key":1486643340000,"doc_count":15},{"key_as_string":"2017-02-09T12:30:00.000Z","key":1486643400000,"doc_count":14},{"key_as_string":"2017-02-09T12:31:00.000Z","key":1486643460000,"doc_count":18},{"key_as_string":"2017-02-09T12:32:00.000Z","key":1486643520000,"doc_count":10},{"key_as_string":"2017-02-09T12:33:00.000Z","key":1486643580000,"doc_count":13},{"key_as_string":"2017-02-09T12:34:00.000Z","key":1486643640000,"doc_count":9},{"key_as_string":"2017-02-09T12:35:00.000Z","key":1486643700000,"doc_count":16},{"key_as_string":"2017-02-09T12:36:00.000Z","key":1486643760000,"doc_count":12},{"key_as_string":"2017-02-09T12:37:00.000Z","key":1486643820000,"doc_count":13},{"key_as_string":"2017-02-09T12:38:00.000Z","key":1486643880000,"doc_count":16},{"key_as_string":"2017-02-09T12:39:00.000Z","key":1486643940000,"doc_count":9},{"key_as_string":"2017-02-09T12:40:00.000Z","key":1486644000000,"doc_count":12},{"key_as_string":"2017-02-09T12:41:00.000Z","key":1486644060000,"doc_count":11},{"key_as_string":"2017-02-09T12:42:00.000Z","key":1486644120000,"doc_count":16},{"key_as_string":"2017-02-09T12:43:00.000Z","key":1486644180000,"doc_count":13},{"key_as_string":"2017-02-09T12:44:00.000Z","key":1486644240000,"doc_count":15},{"key_as_string":"2017-02-09T12:45:00.000Z","key":1486644300000,"doc_count":13},{"key_as_string":"2017-02-09T12:46:00.000Z","key":1486644360000,"doc_count":15},{"key_as_string":"2017-02-09T12:47:00.000Z","key":1486644420000,"doc_count":13},{"key_as_string":"2017-02-09T12:48:00.000Z","key":1486644480000,"doc_count":9},{"key_as_string":"2017-02-09T12:49:00.000Z","key":1486644540000,"doc_count":18},{"key_as_string":"2017-02-09T12:50:00.000Z","key":1486644600000,"doc_count":13},{"key_as_string":"2017-02-09T12:51:00.000Z","key":1486644660000,"doc_count":13},{"key_as_string":"2017-02-09T12:52:00.000Z","key":1486644720000,"doc_count":13},{"key_as_string":"2017-02-09T12:53:00.000Z","key":1486644780000,"doc_count":11},{"key_as_string":"2017-02-09T12:54:00.000Z","key":1486644840000,"doc_count":19},{"key_as_string":"2017-02-09T12:55:00.000Z","key":1486644900000,"doc_count":12},{"key_as_string":"2017-02-09T12:56:00.000Z","key":1486644960000,"doc_count":15},{"key_as_string":"2017-02-09T12:57:00.000Z","key":1486645020000,"doc_count":14},{"key_as_string":"2017-02-09T12:58:00.000Z","key":1486645080000,"doc_count":17},{"key_as_string":"2017-02-09T12:59:00.000Z","key":1486645140000,"doc_count":12},{"key_as_string":"2017-02-09T13:00:00.000Z","key":1486645200000,"doc_count":17},{"key_as_string":"2017-02-09T13:01:00.000Z","key":1486645260000,"doc_count":13},{"key_as_string":"2017-02-09T13:02:00.000Z","key":1486645320000,"doc_count":12},{"key_as_string":"2017-02-09T13:03:00.000Z","key":1486645380000,"doc_count":11},{"key_as_string":"2017-02-09T13:04:00.000Z","key":1486645440000,"doc_count":14},{"key_as_string":"2017-02-09T13:05:00.000Z","key":1486645500000,"doc_count":18},{"key_as_string":"2017-02-09T13:06:00.000Z","key":1486645560000,"doc_count":10},{"key_as_string":"2017-02-09T13:07:00.000Z","key":1486645620000,"doc_count":14},{"key_as_string":"2017-02-09T13:08:00.000Z","key":1486645680000,"doc_count":15},{"key_as_string":"2017-02-09T13:09:00.000Z","key":1486645740000,"doc_count":11},{"key_as_string":"2017-02-09T13:10:00.000Z","key":1486645800000,"doc_count":15},{"key_as_string":"2017-02-09T13:11:00.000Z","key":1486645860000,"doc_count":14},{"key_as_string":"2017-02-09T13:12:00.000Z","key":1486645920000,"doc_count":9},{"key_as_string":"2017-02-09T13:13:00.000Z","key":1486645980000,"doc_count":16},{"key_as_string":"2017-02-09T13:14:00.000Z","key":1486646040000,"doc_count":16},{"key_as_string":"2017-02-09T13:15:00.000Z","key":1486646100000,"doc_count":13},{"key_as_string":"2017-02-09T13:16:00.000Z","key":1486646160000,"doc_count":9},{"key_as_string":"2017-02-09T13:17:00.000Z","key":1486646220000,"doc_count":11},{"key_as_string":"2017-02-09T13:18:00.000Z","key":1486646280000,"doc_count":14},{"key_as_string":"2017-02-09T13:19:00.000Z","key":1486646340000,"doc_count":15},{"key_as_string":"2017-02-09T13:20:00.000Z","key":1486646400000,"doc_count":16},{"key_as_string":"2017-02-09T13:21:00.000Z","key":1486646460000,"doc_count":9},{"key_as_string":"2017-02-09T13:22:00.000Z","key":1486646520000,"doc_count":16},{"key_as_string":"2017-02-09T13:23:00.000Z","key":1486646580000,"doc_count":13},{"key_as_string":"2017-02-09T13:24:00.000Z","key":1486646640000,"doc_count":11},{"key_as_string":"2017-02-09T13:25:00.000Z","key":1486646700000,"doc_count":13},{"key_as_string":"2017-02-09T13:26:00.000Z","key":1486646760000,"doc_count":10},{"key_as_string":"2017-02-09T13:27:00.000Z","key":1486646820000,"doc_count":18},{"key_as_string":"2017-02-09T13:28:00.000Z","key":1486646880000,"doc_count":13},{"key_as_string":"2017-02-09T13:29:00.000Z","key":1486646940000,"doc_count":13},{"key_as_string":"2017-02-09T13:30:00.000Z","key":1486647000000,"doc_count":18},{"key_as_string":"2017-02-09T13:31:00.000Z","key":1486647060000,"doc_count":10},{"key_as_string":"2017-02-09T13:32:00.000Z","key":1486647120000,"doc_count":15},{"key_as_string":"2017-02-09T13:33:00.000Z","key":1486647180000,"doc_count":15},{"key_as_string":"2017-02-09T13:34:00.000Z","key":1486647240000,"doc_count":18},{"key_as_string":"2017-02-09T13:35:00.000Z","key":1486647300000,"doc_count":15},{"key_as_string":"2017-02-09T13:36:00.000Z","key":1486647360000,"doc_count":20},{"key_as_string":"2017-02-09T13:37:00.000Z","key":1486647420000,"doc_count":13},{"key_as_string":"2017-02-09T13:38:00.000Z","key":1486647480000,"doc_count":15},{"key_as_string":"2017-02-09T13:39:00.000Z","key":1486647540000,"doc_count":15},{"key_as_string":"2017-02-09T13:40:00.000Z","key":1486647600000,"doc_count":16},{"key_as_string":"2017-02-09T13:41:00.000Z","key":1486647660000,"doc_count":7},{"key_as_string":"2017-02-09T13:42:00.000Z","key":1486647720000,"doc_count":17},{"key_as_string":"2017-02-09T13:43:00.000Z","key":1486647780000,"doc_count":12},{"key_as_string":"2017-02-09T13:44:00.000Z","key":1486647840000,"doc_count":15},{"key_as_string":"2017-02-09T13:45:00.000Z","key":1486647900000,"doc_count":16},{"key_as_string":"2017-02-09T13:46:00.000Z","key":1486647960000,"doc_count":14},{"key_as_string":"2017-02-09T13:47:00.000Z","key":1486648020000,"doc_count":18},{"key_as_string":"2017-02-09T13:48:00.000Z","key":1486648080000,"doc_count":17},{"key_as_string":"2017-02-09T13:49:00.000Z","key":1486648140000,"doc_count":16},{"key_as_string":"2017-02-09T13:50:00.000Z","key":1486648200000,"doc_count":9},{"key_as_string":"2017-02-09T13:51:00.000Z","key":1486648260000,"doc_count":14},{"key_as_string":"2017-02-09T13:52:00.000Z","key":1486648320000,"doc_count":14},{"key_as_string":"2017-02-09T13:53:00.000Z","key":1486648380000,"doc_count":20},{"key_as_string":"2017-02-09T13:54:00.000Z","key":1486648440000,"doc_count":9},{"key_as_string":"2017-02-09T13:55:00.000Z","key":1486648500000,"doc_count":12},{"key_as_string":"2017-02-09T13:56:00.000Z","key":1486648560000,"doc_count":15},{"key_as_string":"2017-02-09T13:57:00.000Z","key":1486648620000,"doc_count":11},{"key_as_string":"2017-02-09T13:58:00.000Z","key":1486648680000,"doc_count":15},{"key_as_string":"2017-02-09T13:59:00.000Z","key":1486648740000,"doc_count":13},{"key_as_string":"2017-02-09T14:00:00.000Z","key":1486648800000,"doc_count":10},{"key_as_string":"2017-02-09T14:01:00.000Z","key":1486648860000,"doc_count":14},{"key_as_string":"2017-02-09T14:02:00.000Z","key":1486648920000,"doc_count":14},{"key_as_string":"2017-02-09T14:03:00.000Z","key":1486648980000,"doc_count":16},{"key_as_string":"2017-02-09T14:04:00.000Z","key":1486649040000,"doc_count":12},{"key_as_string":"2017-02-09T14:05:00.000Z","key":1486649100000,"doc_count":9},{"key_as_string":"2017-02-09T14:06:00.000Z","key":1486649160000,"doc_count":11},{"key_as_string":"2017-02-09T14:07:00.000Z","key":1486649220000,"doc_count":15},{"key_as_string":"2017-02-09T14:08:00.000Z","key":1486649280000,"doc_count":12},{"key_as_string":"2017-02-09T14:09:00.000Z","key":1486649340000,"doc_count":19},{"key_as_string":"2017-02-09T14:10:00.000Z","key":1486649400000,"doc_count":14},{"key_as_string":"2017-02-09T14:11:00.000Z","key":1486649460000,"doc_count":17},{"key_as_string":"2017-02-09T14:12:00.000Z","key":1486649520000,"doc_count":7},{"key_as_string":"2017-02-09T14:13:00.000Z","key":1486649580000,"doc_count":20},{"key_as_string":"2017-02-09T14:14:00.000Z","key":1486649640000,"doc_count":9},{"key_as_string":"2017-02-09T14:15:00.000Z","key":1486649700000,"doc_count":17},{"key_as_string":"2017-02-09T14:16:00.000Z","key":1486649760000,"doc_count":16},{"key_as_string":"2017-02-09T14:17:00.000Z","key":1486649820000,"doc_count":15},{"key_as_string":"2017-02-09T14:18:00.000Z","key":1486649880000,"doc_count":15},{"key_as_string":"2017-02-09T14:19:00.000Z","key":1486649940000,"doc_count":12},{"key_as_string":"2017-02-09T14:20:00.000Z","key":1486650000000,"doc_count":8},{"key_as_string":"2017-02-09T14:21:00.000Z","key":1486650060000,"doc_count":17},{"key_as_string":"2017-02-09T14:22:00.000Z","key":1486650120000,"doc_count":10},{"key_as_string":"2017-02-09T14:23:00.000Z","key":1486650180000,"doc_count":11},{"key_as_string":"2017-02-09T14:24:00.000Z","key":1486650240000,"doc_count":11},{"key_as_string":"2017-02-09T14:25:00.000Z","key":1486650300000,"doc_count":14},{"key_as_string":"2017-02-09T14:26:00.000Z","key":1486650360000,"doc_count":16},{"key_as_string":"2017-02-09T14:27:00.000Z","key":1486650420000,"doc_count":12},{"key_as_string":"2017-02-09T14:28:00.000Z","key":1486650480000,"doc_count":14},{"key_as_string":"2017-02-09T14:29:00.000Z","key":1486650540000,"doc_count":11},{"key_as_string":"2017-02-09T14:30:00.000Z","key":1486650600000,"doc_count":13},{"key_as_string":"2017-02-09T14:31:00.000Z","key":1486650660000,"doc_count":13},{"key_as_string":"2017-02-09T14:32:00.000Z","key":1486650720000,"doc_count":19},{"key_as_string":"2017-02-09T14:33:00.000Z","key":1486650780000,"doc_count":13},{"key_as_string":"2017-02-09T14:34:00.000Z","key":1486650840000,"doc_count":15},{"key_as_string":"2017-02-09T14:35:00.000Z","key":1486650900000,"doc_count":11},{"key_as_string":"2017-02-09T14:36:00.000Z","key":1486650960000,"doc_count":15},{"key_as_string":"2017-02-09T14:37:00.000Z","key":1486651020000,"doc_count":12},{"key_as_string":"2017-02-09T14:38:00.000Z","key":1486651080000,"doc_count":11},{"key_as_string":"2017-02-09T14:39:00.000Z","key":1486651140000,"doc_count":18},{"key_as_string":"2017-02-09T14:40:00.000Z","key":1486651200000,"doc_count":9},{"key_as_string":"2017-02-09T14:41:00.000Z","key":1486651260000,"doc_count":15},{"key_as_string":"2017-02-09T14:42:00.000Z","key":1486651320000,"doc_count":12},{"key_as_string":"2017-02-09T14:43:00.000Z","key":1486651380000,"doc_count":15},{"key_as_string":"2017-02-09T14:44:00.000Z","key":1486651440000,"doc_count":12},{"key_as_string":"2017-02-09T14:45:00.000Z","key":1486651500000,"doc_count":13},{"key_as_string":"2017-02-09T14:46:00.000Z","key":1486651560000,"doc_count":12},{"key_as_string":"2017-02-09T14:47:00.000Z","key":1486651620000,"doc_count":14},{"key_as_string":"2017-02-09T14:48:00.000Z","key":1486651680000,"doc_count":13},{"key_as_string":"2017-02-09T14:49:00.000Z","key":1486651740000,"doc_count":17},{"key_as_string":"2017-02-09T14:50:00.000Z","key":1486651800000,"doc_count":9},{"key_as_string":"2017-02-09T14:51:00.000Z","key":1486651860000,"doc_count":12},{"key_as_string":"2017-02-09T14:52:00.000Z","key":1486651920000,"doc_count":16},{"key_as_string":"2017-02-09T14:53:00.000Z","key":1486651980000,"doc_count":19},{"key_as_string":"2017-02-09T14:54:00.000Z","key":1486652040000,"doc_count":15},{"key_as_string":"2017-02-09T14:55:00.000Z","key":1486652100000,"doc_count":11},{"key_as_string":"2017-02-09T14:56:00.000Z","key":1486652160000,"doc_count":15},{"key_as_string":"2017-02-09T14:57:00.000Z","key":1486652220000,"doc_count":11},{"key_as_string":"2017-02-09T14:58:00.000Z","key":1486652280000,"doc_count":12},{"key_as_string":"2017-02-09T14:59:00.000Z","key":1486652340000,"doc_count":11},{"key_as_string":"2017-02-09T15:00:00.000Z","key":1486652400000,"doc_count":13},{"key_as_string":"2017-02-09T15:01:00.000Z","key":1486652460000,"doc_count":10},{"key_as_string":"2017-02-09T15:02:00.000Z","key":1486652520000,"doc_count":17},{"key_as_string":"2017-02-09T15:03:00.000Z","key":1486652580000,"doc_count":12},{"key_as_string":"2017-02-09T15:04:00.000Z","key":1486652640000,"doc_count":13},{"key_as_string":"2017-02-09T15:05:00.000Z","key":1486652700000,"doc_count":13},{"key_as_string":"2017-02-09T15:06:00.000Z","key":1486652760000,"doc_count":15},{"key_as_string":"2017-02-09T15:07:00.000Z","key":1486652820000,"doc_count":12},{"key_as_string":"2017-02-09T15:08:00.000Z","key":1486652880000,"doc_count":12},{"key_as_string":"2017-02-09T15:09:00.000Z","key":1486652940000,"doc_count":13},{"key_as_string":"2017-02-09T15:10:00.000Z","key":1486653000000,"doc_count":15},{"key_as_string":"2017-02-09T15:11:00.000Z","key":1486653060000,"doc_count":20},{"key_as_string":"2017-02-09T15:12:00.000Z","key":1486653120000,"doc_count":10},{"key_as_string":"2017-02-09T15:13:00.000Z","key":1486653180000,"doc_count":12},{"key_as_string":"2017-02-09T15:14:00.000Z","key":1486653240000,"doc_count":8},{"key_as_string":"2017-02-09T15:15:00.000Z","key":1486653300000,"doc_count":18},{"key_as_string":"2017-02-09T15:16:00.000Z","key":1486653360000,"doc_count":16},{"key_as_string":"2017-02-09T15:17:00.000Z","key":1486653420000,"doc_count":13},{"key_as_string":"2017-02-09T15:18:00.000Z","key":1486653480000,"doc_count":14},{"key_as_string":"2017-02-09T15:19:00.000Z","key":1486653540000,"doc_count":14},{"key_as_string":"2017-02-09T15:20:00.000Z","key":1486653600000,"doc_count":14},{"key_as_string":"2017-02-09T15:21:00.000Z","key":1486653660000,"doc_count":11},{"key_as_string":"2017-02-09T15:22:00.000Z","key":1486653720000,"doc_count":13},{"key_as_string":"2017-02-09T15:23:00.000Z","key":1486653780000,"doc_count":11},{"key_as_string":"2017-02-09T15:24:00.000Z","key":1486653840000,"doc_count":14},{"key_as_string":"2017-02-09T15:25:00.000Z","key":1486653900000,"doc_count":15},{"key_as_string":"2017-02-09T15:26:00.000Z","key":1486653960000,"doc_count":12},{"key_as_string":"2017-02-09T15:27:00.000Z","key":1486654020000,"doc_count":9},{"key_as_string":"2017-02-09T15:28:00.000Z","key":1486654080000,"doc_count":17},{"key_as_string":"2017-02-09T15:29:00.000Z","key":1486654140000,"doc_count":10},{"key_as_string":"2017-02-09T15:30:00.000Z","key":1486654200000,"doc_count":15},{"key_as_string":"2017-02-09T15:31:00.000Z","key":1486654260000,"doc_count":13},{"key_as_string":"2017-02-09T15:32:00.000Z","key":1486654320000,"doc_count":10},{"key_as_string":"2017-02-09T15:33:00.000Z","key":1486654380000,"doc_count":19},{"key_as_string":"2017-02-09T15:34:00.000Z","key":1486654440000,"doc_count":13},{"key_as_string":"2017-02-09T15:35:00.000Z","key":1486654500000,"doc_count":13},{"key_as_string":"2017-02-09T15:36:00.000Z","key":1486654560000,"doc_count":11},{"key_as_string":"2017-02-09T15:37:00.000Z","key":1486654620000,"doc_count":10},{"key_as_string":"2017-02-09T15:38:00.000Z","key":1486654680000,"doc_count":14},{"key_as_string":"2017-02-09T15:39:00.000Z","key":1486654740000,"doc_count":19},{"key_as_string":"2017-02-09T15:40:00.000Z","key":1486654800000,"doc_count":14},{"key_as_string":"2017-02-09T15:41:00.000Z","key":1486654860000,"doc_count":14},{"key_as_string":"2017-02-09T15:42:00.000Z","key":1486654920000,"doc_count":11},{"key_as_string":"2017-02-09T15:43:00.000Z","key":1486654980000,"doc_count":12},{"key_as_string":"2017-02-09T15:44:00.000Z","key":1486655040000,"doc_count":10},{"key_as_string":"2017-02-09T15:45:00.000Z","key":1486655100000,"doc_count":14},{"key_as_string":"2017-02-09T15:46:00.000Z","key":1486655160000,"doc_count":13},{"key_as_string":"2017-02-09T15:47:00.000Z","key":1486655220000,"doc_count":10},{"key_as_string":"2017-02-09T15:48:00.000Z","key":1486655280000,"doc_count":12},{"key_as_string":"2017-02-09T15:49:00.000Z","key":1486655340000,"doc_count":18},{"key_as_string":"2017-02-09T15:50:00.000Z","key":1486655400000,"doc_count":18},{"key_as_string":"2017-02-09T15:51:00.000Z","key":1486655460000,"doc_count":12},{"key_as_string":"2017-02-09T15:52:00.000Z","key":1486655520000,"doc_count":12},{"key_as_string":"2017-02-09T15:53:00.000Z","key":1486655580000,"doc_count":18},{"key_as_string":"2017-02-09T15:54:00.000Z","key":1486655640000,"doc_count":9},{"key_as_string":"2017-02-09T15:55:00.000Z","key":1486655700000,"doc_count":11},{"key_as_string":"2017-02-09T15:56:00.000Z","key":1486655760000,"doc_count":14},{"key_as_string":"2017-02-09T15:57:00.000Z","key":1486655820000,"doc_count":14},{"key_as_string":"2017-02-09T15:58:00.000Z","key":1486655880000,"doc_count":15},{"key_as_string":"2017-02-09T15:59:00.000Z","key":1486655940000,"doc_count":13},{"key_as_string":"2017-02-09T16:00:00.000Z","key":1486656000000,"doc_count":13},{"key_as_string":"2017-02-09T16:01:00.000Z","key":1486656060000,"doc_count":11},{"key_as_string":"2017-02-09T16:02:00.000Z","key":1486656120000,"doc_count":10},{"key_as_string":"2017-02-09T16:03:00.000Z","key":1486656180000,"doc_count":18},{"key_as_string":"2017-02-09T16:04:00.000Z","key":1486656240000,"doc_count":6},{"key_as_string":"2017-02-09T16:05:00.000Z","key":1486656300000,"doc_count":14},{"key_as_string":"2017-02-09T16:06:00.000Z","key":1486656360000,"doc_count":16},{"key_as_string":"2017-02-09T16:07:00.000Z","key":1486656420000,"doc_count":12},{"key_as_string":"2017-02-09T16:08:00.000Z","key":1486656480000,"doc_count":15},{"key_as_string":"2017-02-09T16:09:00.000Z","key":1486656540000,"doc_count":13},{"key_as_string":"2017-02-09T16:10:00.000Z","key":1486656600000,"doc_count":13},{"key_as_string":"2017-02-09T16:11:00.000Z","key":1486656660000,"doc_count":7},{"key_as_string":"2017-02-09T16:12:00.000Z","key":1486656720000,"doc_count":16},{"key_as_string":"2017-02-09T16:13:00.000Z","key":1486656780000,"doc_count":10},{"key_as_string":"2017-02-09T16:14:00.000Z","key":1486656840000,"doc_count":52},{"key_as_string":"2017-02-09T16:15:00.000Z","key":1486656900000,"doc_count":130},{"key_as_string":"2017-02-09T16:16:00.000Z","key":1486656960000,"doc_count":17},{"key_as_string":"2017-02-09T16:17:00.000Z","key":1486657020000,"doc_count":13},{"key_as_string":"2017-02-09T16:18:00.000Z","key":1486657080000,"doc_count":10},{"key_as_string":"2017-02-09T16:19:00.000Z","key":1486657140000,"doc_count":9},{"key_as_string":"2017-02-09T16:20:00.000Z","key":1486657200000,"doc_count":9},{"key_as_string":"2017-02-09T16:21:00.000Z","key":1486657260000,"doc_count":17},{"key_as_string":"2017-02-09T16:22:00.000Z","key":1486657320000,"doc_count":13},{"key_as_string":"2017-02-09T16:23:00.000Z","key":1486657380000,"doc_count":10},{"key_as_string":"2017-02-09T16:24:00.000Z","key":1486657440000,"doc_count":11},{"key_as_string":"2017-02-09T16:25:00.000Z","key":1486657500000,"doc_count":9},{"key_as_string":"2017-02-09T16:26:00.000Z","key":1486657560000,"doc_count":12},{"key_as_string":"2017-02-09T16:27:00.000Z","key":1486657620000,"doc_count":15},{"key_as_string":"2017-02-09T16:28:00.000Z","key":1486657680000,"doc_count":8},{"key_as_string":"2017-02-09T16:29:00.000Z","key":1486657740000,"doc_count":12},{"key_as_string":"2017-02-09T16:30:00.000Z","key":1486657800000,"doc_count":12},{"key_as_string":"2017-02-09T16:31:00.000Z","key":1486657860000,"doc_count":15},{"key_as_string":"2017-02-09T16:32:00.000Z","key":1486657920000,"doc_count":10},{"key_as_string":"2017-02-09T16:33:00.000Z","key":1486657980000,"doc_count":13},{"key_as_string":"2017-02-09T16:34:00.000Z","key":1486658040000,"doc_count":13},{"key_as_string":"2017-02-09T16:35:00.000Z","key":1486658100000,"doc_count":14},{"key_as_string":"2017-02-09T16:36:00.000Z","key":1486658160000,"doc_count":14},{"key_as_string":"2017-02-09T16:37:00.000Z","key":1486658220000,"doc_count":11},{"key_as_string":"2017-02-09T16:38:00.000Z","key":1486658280000,"doc_count":12},{"key_as_string":"2017-02-09T16:39:00.000Z","key":1486658340000,"doc_count":11},{"key_as_string":"2017-02-09T16:40:00.000Z","key":1486658400000,"doc_count":10},{"key_as_string":"2017-02-09T16:41:00.000Z","key":1486658460000,"doc_count":10},{"key_as_string":"2017-02-09T16:42:00.000Z","key":1486658520000,"doc_count":13},{"key_as_string":"2017-02-09T16:43:00.000Z","key":1486658580000,"doc_count":16},{"key_as_string":"2017-02-09T16:44:00.000Z","key":1486658640000,"doc_count":14},{"key_as_string":"2017-02-09T16:45:00.000Z","key":1486658700000,"doc_count":15},{"key_as_string":"2017-02-09T16:46:00.000Z","key":1486658760000,"doc_count":13},{"key_as_string":"2017-02-09T16:47:00.000Z","key":1486658820000,"doc_count":14},{"key_as_string":"2017-02-09T16:48:00.000Z","key":1486658880000,"doc_count":9},{"key_as_string":"2017-02-09T16:49:00.000Z","key":1486658940000,"doc_count":15},{"key_as_string":"2017-02-09T16:50:00.000Z","key":1486659000000,"doc_count":13},{"key_as_string":"2017-02-09T16:51:00.000Z","key":1486659060000,"doc_count":15},{"key_as_string":"2017-02-09T16:52:00.000Z","key":1486659120000,"doc_count":13},{"key_as_string":"2017-02-09T16:53:00.000Z","key":1486659180000,"doc_count":16},{"key_as_string":"2017-02-09T16:54:00.000Z","key":1486659240000,"doc_count":11},{"key_as_string":"2017-02-09T16:55:00.000Z","key":1486659300000,"doc_count":18},{"key_as_string":"2017-02-09T16:56:00.000Z","key":1486659360000,"doc_count":9},{"key_as_string":"2017-02-09T16:57:00.000Z","key":1486659420000,"doc_count":19},{"key_as_string":"2017-02-09T16:58:00.000Z","key":1486659480000,"doc_count":8},{"key_as_string":"2017-02-09T16:59:00.000Z","key":1486659540000,"doc_count":12},{"key_as_string":"2017-02-09T17:00:00.000Z","key":1486659600000,"doc_count":17},{"key_as_string":"2017-02-09T17:01:00.000Z","key":1486659660000,"doc_count":14},{"key_as_string":"2017-02-09T17:02:00.000Z","key":1486659720000,"doc_count":13},{"key_as_string":"2017-02-09T17:03:00.000Z","key":1486659780000,"doc_count":9},{"key_as_string":"2017-02-09T17:04:00.000Z","key":1486659840000,"doc_count":14},{"key_as_string":"2017-02-09T17:05:00.000Z","key":1486659900000,"doc_count":15},{"key_as_string":"2017-02-09T17:06:00.000Z","key":1486659960000,"doc_count":13},{"key_as_string":"2017-02-09T17:07:00.000Z","key":1486660020000,"doc_count":9},{"key_as_string":"2017-02-09T17:08:00.000Z","key":1486660080000,"doc_count":8},{"key_as_string":"2017-02-09T17:09:00.000Z","key":1486660140000,"doc_count":11},{"key_as_string":"2017-02-09T17:10:00.000Z","key":1486660200000,"doc_count":11},{"key_as_string":"2017-02-09T17:11:00.000Z","key":1486660260000,"doc_count":12},{"key_as_string":"2017-02-09T17:12:00.000Z","key":1486660320000,"doc_count":12},{"key_as_string":"2017-02-09T17:13:00.000Z","key":1486660380000,"doc_count":9},{"key_as_string":"2017-02-09T17:14:00.000Z","key":1486660440000,"doc_count":15},{"key_as_string":"2017-02-09T17:15:00.000Z","key":1486660500000,"doc_count":11},{"key_as_string":"2017-02-09T17:16:00.000Z","key":1486660560000,"doc_count":11},{"key_as_string":"2017-02-09T17:17:00.000Z","key":1486660620000,"doc_count":11},{"key_as_string":"2017-02-09T17:18:00.000Z","key":1486660680000,"doc_count":11},{"key_as_string":"2017-02-09T17:19:00.000Z","key":1486660740000,"doc_count":15},{"key_as_string":"2017-02-09T17:20:00.000Z","key":1486660800000,"doc_count":7},{"key_as_string":"2017-02-09T17:21:00.000Z","key":1486660860000,"doc_count":15},{"key_as_string":"2017-02-09T17:22:00.000Z","key":1486660920000,"doc_count":13},{"key_as_string":"2017-02-09T17:23:00.000Z","key":1486660980000,"doc_count":10},{"key_as_string":"2017-02-09T17:24:00.000Z","key":1486661040000,"doc_count":18},{"key_as_string":"2017-02-09T17:25:00.000Z","key":1486661100000,"doc_count":9},{"key_as_string":"2017-02-09T17:26:00.000Z","key":1486661160000,"doc_count":12},{"key_as_string":"2017-02-09T17:27:00.000Z","key":1486661220000,"doc_count":8},{"key_as_string":"2017-02-09T17:28:00.000Z","key":1486661280000,"doc_count":11},{"key_as_string":"2017-02-09T17:29:00.000Z","key":1486661340000,"doc_count":10},{"key_as_string":"2017-02-09T17:30:00.000Z","key":1486661400000,"doc_count":19},{"key_as_string":"2017-02-09T17:31:00.000Z","key":1486661460000,"doc_count":10},{"key_as_string":"2017-02-09T17:32:00.000Z","key":1486661520000,"doc_count":11},{"key_as_string":"2017-02-09T17:33:00.000Z","key":1486661580000,"doc_count":12},{"key_as_string":"2017-02-09T17:34:00.000Z","key":1486661640000,"doc_count":12},{"key_as_string":"2017-02-09T17:35:00.000Z","key":1486661700000,"doc_count":15},{"key_as_string":"2017-02-09T17:36:00.000Z","key":1486661760000,"doc_count":11},{"key_as_string":"2017-02-09T17:37:00.000Z","key":1486661820000,"doc_count":12},{"key_as_string":"2017-02-09T17:38:00.000Z","key":1486661880000,"doc_count":12},{"key_as_string":"2017-02-09T17:39:00.000Z","key":1486661940000,"doc_count":14},{"key_as_string":"2017-02-09T17:40:00.000Z","key":1486662000000,"doc_count":10},{"key_as_string":"2017-02-09T17:41:00.000Z","key":1486662060000,"doc_count":13},{"key_as_string":"2017-02-09T17:42:00.000Z","key":1486662120000,"doc_count":11},{"key_as_string":"2017-02-09T17:43:00.000Z","key":1486662180000,"doc_count":16},{"key_as_string":"2017-02-09T17:44:00.000Z","key":1486662240000,"doc_count":13},{"key_as_string":"2017-02-09T17:45:00.000Z","key":1486662300000,"doc_count":7},{"key_as_string":"2017-02-09T17:46:00.000Z","key":1486662360000,"doc_count":15},{"key_as_string":"2017-02-09T17:47:00.000Z","key":1486662420000,"doc_count":11},{"key_as_string":"2017-02-09T17:48:00.000Z","key":1486662480000,"doc_count":10},{"key_as_string":"2017-02-09T17:49:00.000Z","key":1486662540000,"doc_count":13},{"key_as_string":"2017-02-09T17:50:00.000Z","key":1486662600000,"doc_count":11},{"key_as_string":"2017-02-09T17:51:00.000Z","key":1486662660000,"doc_count":19},{"key_as_string":"2017-02-09T17:52:00.000Z","key":1486662720000,"doc_count":8},{"key_as_string":"2017-02-09T17:53:00.000Z","key":1486662780000,"doc_count":12},{"key_as_string":"2017-02-09T17:54:00.000Z","key":1486662840000,"doc_count":15},{"key_as_string":"2017-02-09T17:55:00.000Z","key":1486662900000,"doc_count":9},{"key_as_string":"2017-02-09T17:56:00.000Z","key":1486662960000,"doc_count":11},{"key_as_string":"2017-02-09T17:57:00.000Z","key":1486663020000,"doc_count":14},{"key_as_string":"2017-02-09T17:58:00.000Z","key":1486663080000,"doc_count":11},{"key_as_string":"2017-02-09T17:59:00.000Z","key":1486663140000,"doc_count":18},{"key_as_string":"2017-02-09T18:00:00.000Z","key":1486663200000,"doc_count":14},{"key_as_string":"2017-02-09T18:01:00.000Z","key":1486663260000,"doc_count":11},{"key_as_string":"2017-02-09T18:02:00.000Z","key":1486663320000,"doc_count":11},{"key_as_string":"2017-02-09T18:03:00.000Z","key":1486663380000,"doc_count":13},{"key_as_string":"2017-02-09T18:04:00.000Z","key":1486663440000,"doc_count":15},{"key_as_string":"2017-02-09T18:05:00.000Z","key":1486663500000,"doc_count":10},{"key_as_string":"2017-02-09T18:06:00.000Z","key":1486663560000,"doc_count":17},{"key_as_string":"2017-02-09T18:07:00.000Z","key":1486663620000,"doc_count":14},{"key_as_string":"2017-02-09T18:08:00.000Z","key":1486663680000,"doc_count":11},{"key_as_string":"2017-02-09T18:09:00.000Z","key":1486663740000,"doc_count":15},{"key_as_string":"2017-02-09T18:10:00.000Z","key":1486663800000,"doc_count":12},{"key_as_string":"2017-02-09T18:11:00.000Z","key":1486663860000,"doc_count":7},{"key_as_string":"2017-02-09T18:12:00.000Z","key":1486663920000,"doc_count":17},{"key_as_string":"2017-02-09T18:13:00.000Z","key":1486663980000,"doc_count":14},{"key_as_string":"2017-02-09T18:14:00.000Z","key":1486664040000,"doc_count":10},{"key_as_string":"2017-02-09T18:15:00.000Z","key":1486664100000,"doc_count":13},{"key_as_string":"2017-02-09T18:16:00.000Z","key":1486664160000,"doc_count":18},{"key_as_string":"2017-02-09T18:17:00.000Z","key":1486664220000,"doc_count":7},{"key_as_string":"2017-02-09T18:18:00.000Z","key":1486664280000,"doc_count":17},{"key_as_string":"2017-02-09T18:19:00.000Z","key":1486664340000,"doc_count":10},{"key_as_string":"2017-02-09T18:20:00.000Z","key":1486664400000,"doc_count":7},{"key_as_string":"2017-02-09T18:21:00.000Z","key":1486664460000,"doc_count":12},{"key_as_string":"2017-02-09T18:22:00.000Z","key":1486664520000,"doc_count":14},{"key_as_string":"2017-02-09T18:23:00.000Z","key":1486664580000,"doc_count":14},{"key_as_string":"2017-02-09T18:24:00.000Z","key":1486664640000,"doc_count":11},{"key_as_string":"2017-02-09T18:25:00.000Z","key":1486664700000,"doc_count":13},{"key_as_string":"2017-02-09T18:26:00.000Z","key":1486664760000,"doc_count":15},{"key_as_string":"2017-02-09T18:27:00.000Z","key":1486664820000,"doc_count":6},{"key_as_string":"2017-02-09T18:28:00.000Z","key":1486664880000,"doc_count":12},{"key_as_string":"2017-02-09T18:29:00.000Z","key":1486664940000,"doc_count":15},{"key_as_string":"2017-02-09T18:30:00.000Z","key":1486665000000,"doc_count":9},{"key_as_string":"2017-02-09T18:31:00.000Z","key":1486665060000,"doc_count":13},{"key_as_string":"2017-02-09T18:32:00.000Z","key":1486665120000,"doc_count":13},{"key_as_string":"2017-02-09T18:33:00.000Z","key":1486665180000,"doc_count":14},{"key_as_string":"2017-02-09T18:34:00.000Z","key":1486665240000,"doc_count":8},{"key_as_string":"2017-02-09T18:35:00.000Z","key":1486665300000,"doc_count":9},{"key_as_string":"2017-02-09T18:36:00.000Z","key":1486665360000,"doc_count":11},{"key_as_string":"2017-02-09T18:37:00.000Z","key":1486665420000,"doc_count":12},{"key_as_string":"2017-02-09T18:38:00.000Z","key":1486665480000,"doc_count":11},{"key_as_string":"2017-02-09T18:39:00.000Z","key":1486665540000,"doc_count":12},{"key_as_string":"2017-02-09T18:40:00.000Z","key":1486665600000,"doc_count":16},{"key_as_string":"2017-02-09T18:41:00.000Z","key":1486665660000,"doc_count":7},{"key_as_string":"2017-02-09T18:42:00.000Z","key":1486665720000,"doc_count":13},{"key_as_string":"2017-02-09T18:43:00.000Z","key":1486665780000,"doc_count":13},{"key_as_string":"2017-02-09T18:44:00.000Z","key":1486665840000,"doc_count":14},{"key_as_string":"2017-02-09T18:45:00.000Z","key":1486665900000,"doc_count":7},{"key_as_string":"2017-02-09T18:46:00.000Z","key":1486665960000,"doc_count":9},{"key_as_string":"2017-02-09T18:47:00.000Z","key":1486666020000,"doc_count":11},{"key_as_string":"2017-02-09T18:48:00.000Z","key":1486666080000,"doc_count":11},{"key_as_string":"2017-02-09T18:49:00.000Z","key":1486666140000,"doc_count":11},{"key_as_string":"2017-02-09T18:50:00.000Z","key":1486666200000,"doc_count":8},{"key_as_string":"2017-02-09T18:51:00.000Z","key":1486666260000,"doc_count":15},{"key_as_string":"2017-02-09T18:52:00.000Z","key":1486666320000,"doc_count":8},{"key_as_string":"2017-02-09T18:53:00.000Z","key":1486666380000,"doc_count":13},{"key_as_string":"2017-02-09T18:54:00.000Z","key":1486666440000,"doc_count":13},{"key_as_string":"2017-02-09T18:55:00.000Z","key":1486666500000,"doc_count":11},{"key_as_string":"2017-02-09T18:56:00.000Z","key":1486666560000,"doc_count":16},{"key_as_string":"2017-02-09T18:57:00.000Z","key":1486666620000,"doc_count":6},{"key_as_string":"2017-02-09T18:58:00.000Z","key":1486666680000,"doc_count":12},{"key_as_string":"2017-02-09T18:59:00.000Z","key":1486666740000,"doc_count":12},{"key_as_string":"2017-02-09T19:00:00.000Z","key":1486666800000,"doc_count":9},{"key_as_string":"2017-02-09T19:01:00.000Z","key":1486666860000,"doc_count":12},{"key_as_string":"2017-02-09T19:02:00.000Z","key":1486666920000,"doc_count":11},{"key_as_string":"2017-02-09T19:03:00.000Z","key":1486666980000,"doc_count":14},{"key_as_string":"2017-02-09T19:04:00.000Z","key":1486667040000,"doc_count":10},{"key_as_string":"2017-02-09T19:05:00.000Z","key":1486667100000,"doc_count":9},{"key_as_string":"2017-02-09T19:06:00.000Z","key":1486667160000,"doc_count":8},{"key_as_string":"2017-02-09T19:07:00.000Z","key":1486667220000,"doc_count":19},{"key_as_string":"2017-02-09T19:08:00.000Z","key":1486667280000,"doc_count":8},{"key_as_string":"2017-02-09T19:09:00.000Z","key":1486667340000,"doc_count":12},{"key_as_string":"2017-02-09T19:10:00.000Z","key":1486667400000,"doc_count":10},{"key_as_string":"2017-02-09T19:11:00.000Z","key":1486667460000,"doc_count":9},{"key_as_string":"2017-02-09T19:12:00.000Z","key":1486667520000,"doc_count":10},{"key_as_string":"2017-02-09T19:13:00.000Z","key":1486667580000,"doc_count":7},{"key_as_string":"2017-02-09T19:14:00.000Z","key":1486667640000,"doc_count":7},{"key_as_string":"2017-02-09T19:15:00.000Z","key":1486667700000,"doc_count":15},{"key_as_string":"2017-02-09T19:16:00.000Z","key":1486667760000,"doc_count":8},{"key_as_string":"2017-02-09T19:17:00.000Z","key":1486667820000,"doc_count":9},{"key_as_string":"2017-02-09T19:18:00.000Z","key":1486667880000,"doc_count":14},{"key_as_string":"2017-02-09T19:19:00.000Z","key":1486667940000,"doc_count":10},{"key_as_string":"2017-02-09T19:20:00.000Z","key":1486668000000,"doc_count":8},{"key_as_string":"2017-02-09T19:21:00.000Z","key":1486668060000,"doc_count":19},{"key_as_string":"2017-02-09T19:22:00.000Z","key":1486668120000,"doc_count":7},{"key_as_string":"2017-02-09T19:23:00.000Z","key":1486668180000,"doc_count":9},{"key_as_string":"2017-02-09T19:24:00.000Z","key":1486668240000,"doc_count":9},{"key_as_string":"2017-02-09T19:25:00.000Z","key":1486668300000,"doc_count":14},{"key_as_string":"2017-02-09T19:26:00.000Z","key":1486668360000,"doc_count":15},{"key_as_string":"2017-02-09T19:27:00.000Z","key":1486668420000,"doc_count":13},{"key_as_string":"2017-02-09T19:28:00.000Z","key":1486668480000,"doc_count":15},{"key_as_string":"2017-02-09T19:29:00.000Z","key":1486668540000,"doc_count":9},{"key_as_string":"2017-02-09T19:30:00.000Z","key":1486668600000,"doc_count":7},{"key_as_string":"2017-02-09T19:31:00.000Z","key":1486668660000,"doc_count":9},{"key_as_string":"2017-02-09T19:32:00.000Z","key":1486668720000,"doc_count":6},{"key_as_string":"2017-02-09T19:33:00.000Z","key":1486668780000,"doc_count":16},{"key_as_string":"2017-02-09T19:34:00.000Z","key":1486668840000,"doc_count":14},{"key_as_string":"2017-02-09T19:35:00.000Z","key":1486668900000,"doc_count":12},{"key_as_string":"2017-02-09T19:36:00.000Z","key":1486668960000,"doc_count":12},{"key_as_string":"2017-02-09T19:37:00.000Z","key":1486669020000,"doc_count":11},{"key_as_string":"2017-02-09T19:38:00.000Z","key":1486669080000,"doc_count":12},{"key_as_string":"2017-02-09T19:39:00.000Z","key":1486669140000,"doc_count":13},{"key_as_string":"2017-02-09T19:40:00.000Z","key":1486669200000,"doc_count":6},{"key_as_string":"2017-02-09T19:41:00.000Z","key":1486669260000,"doc_count":14},{"key_as_string":"2017-02-09T19:42:00.000Z","key":1486669320000,"doc_count":15},{"key_as_string":"2017-02-09T19:43:00.000Z","key":1486669380000,"doc_count":9},{"key_as_string":"2017-02-09T19:44:00.000Z","key":1486669440000,"doc_count":7},{"key_as_string":"2017-02-09T19:45:00.000Z","key":1486669500000,"doc_count":15},{"key_as_string":"2017-02-09T19:46:00.000Z","key":1486669560000,"doc_count":10},{"key_as_string":"2017-02-09T19:47:00.000Z","key":1486669620000,"doc_count":9},{"key_as_string":"2017-02-09T19:48:00.000Z","key":1486669680000,"doc_count":9},{"key_as_string":"2017-02-09T19:49:00.000Z","key":1486669740000,"doc_count":14},{"key_as_string":"2017-02-09T19:50:00.000Z","key":1486669800000,"doc_count":8},{"key_as_string":"2017-02-09T19:51:00.000Z","key":1486669860000,"doc_count":12},{"key_as_string":"2017-02-09T19:52:00.000Z","key":1486669920000,"doc_count":8},{"key_as_string":"2017-02-09T19:53:00.000Z","key":1486669980000,"doc_count":6},{"key_as_string":"2017-02-09T19:54:00.000Z","key":1486670040000,"doc_count":13},{"key_as_string":"2017-02-09T19:55:00.000Z","key":1486670100000,"doc_count":14},{"key_as_string":"2017-02-09T19:56:00.000Z","key":1486670160000,"doc_count":10},{"key_as_string":"2017-02-09T19:57:00.000Z","key":1486670220000,"doc_count":15},{"key_as_string":"2017-02-09T19:58:00.000Z","key":1486670280000,"doc_count":11},{"key_as_string":"2017-02-09T19:59:00.000Z","key":1486670340000,"doc_count":11},{"key_as_string":"2017-02-09T20:00:00.000Z","key":1486670400000,"doc_count":14},{"key_as_string":"2017-02-09T20:01:00.000Z","key":1486670460000,"doc_count":16},{"key_as_string":"2017-02-09T20:02:00.000Z","key":1486670520000,"doc_count":11},{"key_as_string":"2017-02-09T20:03:00.000Z","key":1486670580000,"doc_count":11},{"key_as_string":"2017-02-09T20:04:00.000Z","key":1486670640000,"doc_count":14},{"key_as_string":"2017-02-09T20:05:00.000Z","key":1486670700000,"doc_count":6},{"key_as_string":"2017-02-09T20:06:00.000Z","key":1486670760000,"doc_count":12},{"key_as_string":"2017-02-09T20:07:00.000Z","key":1486670820000,"doc_count":14},{"key_as_string":"2017-02-09T20:08:00.000Z","key":1486670880000,"doc_count":11},{"key_as_string":"2017-02-09T20:09:00.000Z","key":1486670940000,"doc_count":15},{"key_as_string":"2017-02-09T20:10:00.000Z","key":1486671000000,"doc_count":14},{"key_as_string":"2017-02-09T20:11:00.000Z","key":1486671060000,"doc_count":13},{"key_as_string":"2017-02-09T20:12:00.000Z","key":1486671120000,"doc_count":10},{"key_as_string":"2017-02-09T20:13:00.000Z","key":1486671180000,"doc_count":12},{"key_as_string":"2017-02-09T20:14:00.000Z","key":1486671240000,"doc_count":10},{"key_as_string":"2017-02-09T20:15:00.000Z","key":1486671300000,"doc_count":9},{"key_as_string":"2017-02-09T20:16:00.000Z","key":1486671360000,"doc_count":12},{"key_as_string":"2017-02-09T20:17:00.000Z","key":1486671420000,"doc_count":9},{"key_as_string":"2017-02-09T20:18:00.000Z","key":1486671480000,"doc_count":14},{"key_as_string":"2017-02-09T20:19:00.000Z","key":1486671540000,"doc_count":12},{"key_as_string":"2017-02-09T20:20:00.000Z","key":1486671600000,"doc_count":11},{"key_as_string":"2017-02-09T20:21:00.000Z","key":1486671660000,"doc_count":10},{"key_as_string":"2017-02-09T20:22:00.000Z","key":1486671720000,"doc_count":14},{"key_as_string":"2017-02-09T20:23:00.000Z","key":1486671780000,"doc_count":10},{"key_as_string":"2017-02-09T20:24:00.000Z","key":1486671840000,"doc_count":12},{"key_as_string":"2017-02-09T20:25:00.000Z","key":1486671900000,"doc_count":8},{"key_as_string":"2017-02-09T20:26:00.000Z","key":1486671960000,"doc_count":14},{"key_as_string":"2017-02-09T20:27:00.000Z","key":1486672020000,"doc_count":7},{"key_as_string":"2017-02-09T20:28:00.000Z","key":1486672080000,"doc_count":12},{"key_as_string":"2017-02-09T20:29:00.000Z","key":1486672140000,"doc_count":11},{"key_as_string":"2017-02-09T20:30:00.000Z","key":1486672200000,"doc_count":15},{"key_as_string":"2017-02-09T20:31:00.000Z","key":1486672260000,"doc_count":11},{"key_as_string":"2017-02-09T20:32:00.000Z","key":1486672320000,"doc_count":11},{"key_as_string":"2017-02-09T20:33:00.000Z","key":1486672380000,"doc_count":7},{"key_as_string":"2017-02-09T20:34:00.000Z","key":1486672440000,"doc_count":10},{"key_as_string":"2017-02-09T20:35:00.000Z","key":1486672500000,"doc_count":13},{"key_as_string":"2017-02-09T20:36:00.000Z","key":1486672560000,"doc_count":6},{"key_as_string":"2017-02-09T20:37:00.000Z","key":1486672620000,"doc_count":9},{"key_as_string":"2017-02-09T20:38:00.000Z","key":1486672680000,"doc_count":7},{"key_as_string":"2017-02-09T20:39:00.000Z","key":1486672740000,"doc_count":10},{"key_as_string":"2017-02-09T20:40:00.000Z","key":1486672800000,"doc_count":8},{"key_as_string":"2017-02-09T20:41:00.000Z","key":1486672860000,"doc_count":12},{"key_as_string":"2017-02-09T20:42:00.000Z","key":1486672920000,"doc_count":6},{"key_as_string":"2017-02-09T20:43:00.000Z","key":1486672980000,"doc_count":14},{"key_as_string":"2017-02-09T20:44:00.000Z","key":1486673040000,"doc_count":6},{"key_as_string":"2017-02-09T20:45:00.000Z","key":1486673100000,"doc_count":8},{"key_as_string":"2017-02-09T20:46:00.000Z","key":1486673160000,"doc_count":14},{"key_as_string":"2017-02-09T20:47:00.000Z","key":1486673220000,"doc_count":10},{"key_as_string":"2017-02-09T20:48:00.000Z","key":1486673280000,"doc_count":9},{"key_as_string":"2017-02-09T20:49:00.000Z","key":1486673340000,"doc_count":11},{"key_as_string":"2017-02-09T20:50:00.000Z","key":1486673400000,"doc_count":14},{"key_as_string":"2017-02-09T20:51:00.000Z","key":1486673460000,"doc_count":6},{"key_as_string":"2017-02-09T20:52:00.000Z","key":1486673520000,"doc_count":9},{"key_as_string":"2017-02-09T20:53:00.000Z","key":1486673580000,"doc_count":10},{"key_as_string":"2017-02-09T20:54:00.000Z","key":1486673640000,"doc_count":13},{"key_as_string":"2017-02-09T20:55:00.000Z","key":1486673700000,"doc_count":11},{"key_as_string":"2017-02-09T20:56:00.000Z","key":1486673760000,"doc_count":6},{"key_as_string":"2017-02-09T20:57:00.000Z","key":1486673820000,"doc_count":10},{"key_as_string":"2017-02-09T20:58:00.000Z","key":1486673880000,"doc_count":10},{"key_as_string":"2017-02-09T20:59:00.000Z","key":1486673940000,"doc_count":9},{"key_as_string":"2017-02-09T21:00:00.000Z","key":1486674000000,"doc_count":17},{"key_as_string":"2017-02-09T21:01:00.000Z","key":1486674060000,"doc_count":11},{"key_as_string":"2017-02-09T21:02:00.000Z","key":1486674120000,"doc_count":10},{"key_as_string":"2017-02-09T21:03:00.000Z","key":1486674180000,"doc_count":9},{"key_as_string":"2017-02-09T21:04:00.000Z","key":1486674240000,"doc_count":14},{"key_as_string":"2017-02-09T21:05:00.000Z","key":1486674300000,"doc_count":10},{"key_as_string":"2017-02-09T21:06:00.000Z","key":1486674360000,"doc_count":12},{"key_as_string":"2017-02-09T21:07:00.000Z","key":1486674420000,"doc_count":9},{"key_as_string":"2017-02-09T21:08:00.000Z","key":1486674480000,"doc_count":11},{"key_as_string":"2017-02-09T21:09:00.000Z","key":1486674540000,"doc_count":11},{"key_as_string":"2017-02-09T21:10:00.000Z","key":1486674600000,"doc_count":11},{"key_as_string":"2017-02-09T21:11:00.000Z","key":1486674660000,"doc_count":10},{"key_as_string":"2017-02-09T21:12:00.000Z","key":1486674720000,"doc_count":9},{"key_as_string":"2017-02-09T21:13:00.000Z","key":1486674780000,"doc_count":13},{"key_as_string":"2017-02-09T21:14:00.000Z","key":1486674840000,"doc_count":9},{"key_as_string":"2017-02-09T21:15:00.000Z","key":1486674900000,"doc_count":8},{"key_as_string":"2017-02-09T21:16:00.000Z","key":1486674960000,"doc_count":11},{"key_as_string":"2017-02-09T21:17:00.000Z","key":1486675020000,"doc_count":12},{"key_as_string":"2017-02-09T21:18:00.000Z","key":1486675080000,"doc_count":7},{"key_as_string":"2017-02-09T21:19:00.000Z","key":1486675140000,"doc_count":14},{"key_as_string":"2017-02-09T21:20:00.000Z","key":1486675200000,"doc_count":15},{"key_as_string":"2017-02-09T21:21:00.000Z","key":1486675260000,"doc_count":5},{"key_as_string":"2017-02-09T21:22:00.000Z","key":1486675320000,"doc_count":8},{"key_as_string":"2017-02-09T21:23:00.000Z","key":1486675380000,"doc_count":15},{"key_as_string":"2017-02-09T21:24:00.000Z","key":1486675440000,"doc_count":9},{"key_as_string":"2017-02-09T21:25:00.000Z","key":1486675500000,"doc_count":14},{"key_as_string":"2017-02-09T21:26:00.000Z","key":1486675560000,"doc_count":12},{"key_as_string":"2017-02-09T21:27:00.000Z","key":1486675620000,"doc_count":8},{"key_as_string":"2017-02-09T21:28:00.000Z","key":1486675680000,"doc_count":12},{"key_as_string":"2017-02-09T21:29:00.000Z","key":1486675740000,"doc_count":10},{"key_as_string":"2017-02-09T21:30:00.000Z","key":1486675800000,"doc_count":10},{"key_as_string":"2017-02-09T21:31:00.000Z","key":1486675860000,"doc_count":11},{"key_as_string":"2017-02-09T21:32:00.000Z","key":1486675920000,"doc_count":10},{"key_as_string":"2017-02-09T21:33:00.000Z","key":1486675980000,"doc_count":9},{"key_as_string":"2017-02-09T21:34:00.000Z","key":1486676040000,"doc_count":10},{"key_as_string":"2017-02-09T21:35:00.000Z","key":1486676100000,"doc_count":11},{"key_as_string":"2017-02-09T21:36:00.000Z","key":1486676160000,"doc_count":11},{"key_as_string":"2017-02-09T21:37:00.000Z","key":1486676220000,"doc_count":8},{"key_as_string":"2017-02-09T21:38:00.000Z","key":1486676280000,"doc_count":12},{"key_as_string":"2017-02-09T21:39:00.000Z","key":1486676340000,"doc_count":9},{"key_as_string":"2017-02-09T21:40:00.000Z","key":1486676400000,"doc_count":8},{"key_as_string":"2017-02-09T21:41:00.000Z","key":1486676460000,"doc_count":10},{"key_as_string":"2017-02-09T21:42:00.000Z","key":1486676520000,"doc_count":8},{"key_as_string":"2017-02-09T21:43:00.000Z","key":1486676580000,"doc_count":12},{"key_as_string":"2017-02-09T21:44:00.000Z","key":1486676640000,"doc_count":10},{"key_as_string":"2017-02-09T21:45:00.000Z","key":1486676700000,"doc_count":14},{"key_as_string":"2017-02-09T21:46:00.000Z","key":1486676760000,"doc_count":11},{"key_as_string":"2017-02-09T21:47:00.000Z","key":1486676820000,"doc_count":8},{"key_as_string":"2017-02-09T21:48:00.000Z","key":1486676880000,"doc_count":12},{"key_as_string":"2017-02-09T21:49:00.000Z","key":1486676940000,"doc_count":12},{"key_as_string":"2017-02-09T21:50:00.000Z","key":1486677000000,"doc_count":9},{"key_as_string":"2017-02-09T21:51:00.000Z","key":1486677060000,"doc_count":11},{"key_as_string":"2017-02-09T21:52:00.000Z","key":1486677120000,"doc_count":10},{"key_as_string":"2017-02-09T21:53:00.000Z","key":1486677180000,"doc_count":11},{"key_as_string":"2017-02-09T21:54:00.000Z","key":1486677240000,"doc_count":14},{"key_as_string":"2017-02-09T21:55:00.000Z","key":1486677300000,"doc_count":9},{"key_as_string":"2017-02-09T21:56:00.000Z","key":1486677360000,"doc_count":8},{"key_as_string":"2017-02-09T21:57:00.000Z","key":1486677420000,"doc_count":10},{"key_as_string":"2017-02-09T21:58:00.000Z","key":1486677480000,"doc_count":8},{"key_as_string":"2017-02-09T21:59:00.000Z","key":1486677540000,"doc_count":16},{"key_as_string":"2017-02-09T22:00:00.000Z","key":1486677600000,"doc_count":11},{"key_as_string":"2017-02-09T22:01:00.000Z","key":1486677660000,"doc_count":7},{"key_as_string":"2017-02-09T22:02:00.000Z","key":1486677720000,"doc_count":13},{"key_as_string":"2017-02-09T22:03:00.000Z","key":1486677780000,"doc_count":12},{"key_as_string":"2017-02-09T22:04:00.000Z","key":1486677840000,"doc_count":9},{"key_as_string":"2017-02-09T22:05:00.000Z","key":1486677900000,"doc_count":14},{"key_as_string":"2017-02-09T22:06:00.000Z","key":1486677960000,"doc_count":8},{"key_as_string":"2017-02-09T22:07:00.000Z","key":1486678020000,"doc_count":9},{"key_as_string":"2017-02-09T22:08:00.000Z","key":1486678080000,"doc_count":15},{"key_as_string":"2017-02-09T22:09:00.000Z","key":1486678140000,"doc_count":10},{"key_as_string":"2017-02-09T22:10:00.000Z","key":1486678200000,"doc_count":7},{"key_as_string":"2017-02-09T22:11:00.000Z","key":1486678260000,"doc_count":11},{"key_as_string":"2017-02-09T22:12:00.000Z","key":1486678320000,"doc_count":8},{"key_as_string":"2017-02-09T22:13:00.000Z","key":1486678380000,"doc_count":13},{"key_as_string":"2017-02-09T22:14:00.000Z","key":1486678440000,"doc_count":12},{"key_as_string":"2017-02-09T22:15:00.000Z","key":1486678500000,"doc_count":6},{"key_as_string":"2017-02-09T22:16:00.000Z","key":1486678560000,"doc_count":9},{"key_as_string":"2017-02-09T22:17:00.000Z","key":1486678620000,"doc_count":13},{"key_as_string":"2017-02-09T22:18:00.000Z","key":1486678680000,"doc_count":12},{"key_as_string":"2017-02-09T22:19:00.000Z","key":1486678740000,"doc_count":9},{"key_as_string":"2017-02-09T22:20:00.000Z","key":1486678800000,"doc_count":7},{"key_as_string":"2017-02-09T22:21:00.000Z","key":1486678860000,"doc_count":8},{"key_as_string":"2017-02-09T22:22:00.000Z","key":1486678920000,"doc_count":12},{"key_as_string":"2017-02-09T22:23:00.000Z","key":1486678980000,"doc_count":7},{"key_as_string":"2017-02-09T22:24:00.000Z","key":1486679040000,"doc_count":15},{"key_as_string":"2017-02-09T22:25:00.000Z","key":1486679100000,"doc_count":12},{"key_as_string":"2017-02-09T22:26:00.000Z","key":1486679160000,"doc_count":12},{"key_as_string":"2017-02-09T22:27:00.000Z","key":1486679220000,"doc_count":12},{"key_as_string":"2017-02-09T22:28:00.000Z","key":1486679280000,"doc_count":11},{"key_as_string":"2017-02-09T22:29:00.000Z","key":1486679340000,"doc_count":7},{"key_as_string":"2017-02-09T22:30:00.000Z","key":1486679400000,"doc_count":9},{"key_as_string":"2017-02-09T22:31:00.000Z","key":1486679460000,"doc_count":10},{"key_as_string":"2017-02-09T22:32:00.000Z","key":1486679520000,"doc_count":14},{"key_as_string":"2017-02-09T22:33:00.000Z","key":1486679580000,"doc_count":10},{"key_as_string":"2017-02-09T22:34:00.000Z","key":1486679640000,"doc_count":14},{"key_as_string":"2017-02-09T22:35:00.000Z","key":1486679700000,"doc_count":13},{"key_as_string":"2017-02-09T22:36:00.000Z","key":1486679760000,"doc_count":9},{"key_as_string":"2017-02-09T22:37:00.000Z","key":1486679820000,"doc_count":7},{"key_as_string":"2017-02-09T22:38:00.000Z","key":1486679880000,"doc_count":11},{"key_as_string":"2017-02-09T22:39:00.000Z","key":1486679940000,"doc_count":8},{"key_as_string":"2017-02-09T22:40:00.000Z","key":1486680000000,"doc_count":9},{"key_as_string":"2017-02-09T22:41:00.000Z","key":1486680060000,"doc_count":9},{"key_as_string":"2017-02-09T22:42:00.000Z","key":1486680120000,"doc_count":15},{"key_as_string":"2017-02-09T22:43:00.000Z","key":1486680180000,"doc_count":8},{"key_as_string":"2017-02-09T22:44:00.000Z","key":1486680240000,"doc_count":7},{"key_as_string":"2017-02-09T22:45:00.000Z","key":1486680300000,"doc_count":10},{"key_as_string":"2017-02-09T22:46:00.000Z","key":1486680360000,"doc_count":13},{"key_as_string":"2017-02-09T22:47:00.000Z","key":1486680420000,"doc_count":14},{"key_as_string":"2017-02-09T22:48:00.000Z","key":1486680480000,"doc_count":7},{"key_as_string":"2017-02-09T22:49:00.000Z","key":1486680540000,"doc_count":8},{"key_as_string":"2017-02-09T22:50:00.000Z","key":1486680600000,"doc_count":12},{"key_as_string":"2017-02-09T22:51:00.000Z","key":1486680660000,"doc_count":9},{"key_as_string":"2017-02-09T22:52:00.000Z","key":1486680720000,"doc_count":9},{"key_as_string":"2017-02-09T22:53:00.000Z","key":1486680780000,"doc_count":6},{"key_as_string":"2017-02-09T22:54:00.000Z","key":1486680840000,"doc_count":17},{"key_as_string":"2017-02-09T22:55:00.000Z","key":1486680900000,"doc_count":10},{"key_as_string":"2017-02-09T22:56:00.000Z","key":1486680960000,"doc_count":9},{"key_as_string":"2017-02-09T22:57:00.000Z","key":1486681020000,"doc_count":12},{"key_as_string":"2017-02-09T22:58:00.000Z","key":1486681080000,"doc_count":10},{"key_as_string":"2017-02-09T22:59:00.000Z","key":1486681140000,"doc_count":11},{"key_as_string":"2017-02-09T23:00:00.000Z","key":1486681200000,"doc_count":6},{"key_as_string":"2017-02-09T23:01:00.000Z","key":1486681260000,"doc_count":11},{"key_as_string":"2017-02-09T23:02:00.000Z","key":1486681320000,"doc_count":11},{"key_as_string":"2017-02-09T23:03:00.000Z","key":1486681380000,"doc_count":13},{"key_as_string":"2017-02-09T23:04:00.000Z","key":1486681440000,"doc_count":16},{"key_as_string":"2017-02-09T23:05:00.000Z","key":1486681500000,"doc_count":10},{"key_as_string":"2017-02-09T23:06:00.000Z","key":1486681560000,"doc_count":9},{"key_as_string":"2017-02-09T23:07:00.000Z","key":1486681620000,"doc_count":6},{"key_as_string":"2017-02-09T23:08:00.000Z","key":1486681680000,"doc_count":11},{"key_as_string":"2017-02-09T23:09:00.000Z","key":1486681740000,"doc_count":12},{"key_as_string":"2017-02-09T23:10:00.000Z","key":1486681800000,"doc_count":4},{"key_as_string":"2017-02-09T23:11:00.000Z","key":1486681860000,"doc_count":12},{"key_as_string":"2017-02-09T23:12:00.000Z","key":1486681920000,"doc_count":12},{"key_as_string":"2017-02-09T23:13:00.000Z","key":1486681980000,"doc_count":8},{"key_as_string":"2017-02-09T23:14:00.000Z","key":1486682040000,"doc_count":12},{"key_as_string":"2017-02-09T23:15:00.000Z","key":1486682100000,"doc_count":8},{"key_as_string":"2017-02-09T23:16:00.000Z","key":1486682160000,"doc_count":11},{"key_as_string":"2017-02-09T23:17:00.000Z","key":1486682220000,"doc_count":12},{"key_as_string":"2017-02-09T23:18:00.000Z","key":1486682280000,"doc_count":6},{"key_as_string":"2017-02-09T23:19:00.000Z","key":1486682340000,"doc_count":13},{"key_as_string":"2017-02-09T23:20:00.000Z","key":1486682400000,"doc_count":9},{"key_as_string":"2017-02-09T23:21:00.000Z","key":1486682460000,"doc_count":7},{"key_as_string":"2017-02-09T23:22:00.000Z","key":1486682520000,"doc_count":18},{"key_as_string":"2017-02-09T23:23:00.000Z","key":1486682580000,"doc_count":6},{"key_as_string":"2017-02-09T23:24:00.000Z","key":1486682640000,"doc_count":10},{"key_as_string":"2017-02-09T23:25:00.000Z","key":1486682700000,"doc_count":10},{"key_as_string":"2017-02-09T23:26:00.000Z","key":1486682760000,"doc_count":13},{"key_as_string":"2017-02-09T23:27:00.000Z","key":1486682820000,"doc_count":12},{"key_as_string":"2017-02-09T23:28:00.000Z","key":1486682880000,"doc_count":14},{"key_as_string":"2017-02-09T23:29:00.000Z","key":1486682940000,"doc_count":7},{"key_as_string":"2017-02-09T23:30:00.000Z","key":1486683000000,"doc_count":8},{"key_as_string":"2017-02-09T23:31:00.000Z","key":1486683060000,"doc_count":13},{"key_as_string":"2017-02-09T23:32:00.000Z","key":1486683120000,"doc_count":7},{"key_as_string":"2017-02-09T23:33:00.000Z","key":1486683180000,"doc_count":10},{"key_as_string":"2017-02-09T23:34:00.000Z","key":1486683240000,"doc_count":9},{"key_as_string":"2017-02-09T23:35:00.000Z","key":1486683300000,"doc_count":8},{"key_as_string":"2017-02-09T23:36:00.000Z","key":1486683360000,"doc_count":11},{"key_as_string":"2017-02-09T23:37:00.000Z","key":1486683420000,"doc_count":14},{"key_as_string":"2017-02-09T23:38:00.000Z","key":1486683480000,"doc_count":11},{"key_as_string":"2017-02-09T23:39:00.000Z","key":1486683540000,"doc_count":8},{"key_as_string":"2017-02-09T23:40:00.000Z","key":1486683600000,"doc_count":12},{"key_as_string":"2017-02-09T23:41:00.000Z","key":1486683660000,"doc_count":12},{"key_as_string":"2017-02-09T23:42:00.000Z","key":1486683720000,"doc_count":9},{"key_as_string":"2017-02-09T23:43:00.000Z","key":1486683780000,"doc_count":16},{"key_as_string":"2017-02-09T23:44:00.000Z","key":1486683840000,"doc_count":11},{"key_as_string":"2017-02-09T23:45:00.000Z","key":1486683900000,"doc_count":7},{"key_as_string":"2017-02-09T23:46:00.000Z","key":1486683960000,"doc_count":12},{"key_as_string":"2017-02-09T23:47:00.000Z","key":1486684020000,"doc_count":15},{"key_as_string":"2017-02-09T23:48:00.000Z","key":1486684080000,"doc_count":7},{"key_as_string":"2017-02-09T23:49:00.000Z","key":1486684140000,"doc_count":10},{"key_as_string":"2017-02-09T23:50:00.000Z","key":1486684200000,"doc_count":15},{"key_as_string":"2017-02-09T23:51:00.000Z","key":1486684260000,"doc_count":12},{"key_as_string":"2017-02-09T23:52:00.000Z","key":1486684320000,"doc_count":9},{"key_as_string":"2017-02-09T23:53:00.000Z","key":1486684380000,"doc_count":7},{"key_as_string":"2017-02-09T23:54:00.000Z","key":1486684440000,"doc_count":8},{"key_as_string":"2017-02-09T23:55:00.000Z","key":1486684500000,"doc_count":8},{"key_as_string":"2017-02-09T23:56:00.000Z","key":1486684560000,"doc_count":13},{"key_as_string":"2017-02-09T23:57:00.000Z","key":1486684620000,"doc_count":12},{"key_as_string":"2017-02-09T23:58:00.000Z","key":1486684680000,"doc_count":12},{"key_as_string":"2017-02-09T23:59:00.000Z","key":1486684740000,"doc_count":9},{"key_as_string":"2017-02-10T00:00:00.000Z","key":1486684800000,"doc_count":8},{"key_as_string":"2017-02-10T00:01:00.000Z","key":1486684860000,"doc_count":10},{"key_as_string":"2017-02-10T00:02:00.000Z","key":1486684920000,"doc_count":12},{"key_as_string":"2017-02-10T00:03:00.000Z","key":1486684980000,"doc_count":11},{"key_as_string":"2017-02-10T00:04:00.000Z","key":1486685040000,"doc_count":11},{"key_as_string":"2017-02-10T00:05:00.000Z","key":1486685100000,"doc_count":12},{"key_as_string":"2017-02-10T00:06:00.000Z","key":1486685160000,"doc_count":9},{"key_as_string":"2017-02-10T00:07:00.000Z","key":1486685220000,"doc_count":11},{"key_as_string":"2017-02-10T00:08:00.000Z","key":1486685280000,"doc_count":8},{"key_as_string":"2017-02-10T00:09:00.000Z","key":1486685340000,"doc_count":11},{"key_as_string":"2017-02-10T00:10:00.000Z","key":1486685400000,"doc_count":10},{"key_as_string":"2017-02-10T00:11:00.000Z","key":1486685460000,"doc_count":14},{"key_as_string":"2017-02-10T00:12:00.000Z","key":1486685520000,"doc_count":5},{"key_as_string":"2017-02-10T00:13:00.000Z","key":1486685580000,"doc_count":6},{"key_as_string":"2017-02-10T00:14:00.000Z","key":1486685640000,"doc_count":8},{"key_as_string":"2017-02-10T00:15:00.000Z","key":1486685700000,"doc_count":11},{"key_as_string":"2017-02-10T00:16:00.000Z","key":1486685760000,"doc_count":15},{"key_as_string":"2017-02-10T00:17:00.000Z","key":1486685820000,"doc_count":8},{"key_as_string":"2017-02-10T00:18:00.000Z","key":1486685880000,"doc_count":12},{"key_as_string":"2017-02-10T00:19:00.000Z","key":1486685940000,"doc_count":7},{"key_as_string":"2017-02-10T00:20:00.000Z","key":1486686000000,"doc_count":11},{"key_as_string":"2017-02-10T00:21:00.000Z","key":1486686060000,"doc_count":20},{"key_as_string":"2017-02-10T00:22:00.000Z","key":1486686120000,"doc_count":7},{"key_as_string":"2017-02-10T00:23:00.000Z","key":1486686180000,"doc_count":11},{"key_as_string":"2017-02-10T00:24:00.000Z","key":1486686240000,"doc_count":8},{"key_as_string":"2017-02-10T00:25:00.000Z","key":1486686300000,"doc_count":9},{"key_as_string":"2017-02-10T00:26:00.000Z","key":1486686360000,"doc_count":15},{"key_as_string":"2017-02-10T00:27:00.000Z","key":1486686420000,"doc_count":12},{"key_as_string":"2017-02-10T00:28:00.000Z","key":1486686480000,"doc_count":13},{"key_as_string":"2017-02-10T00:29:00.000Z","key":1486686540000,"doc_count":10},{"key_as_string":"2017-02-10T00:30:00.000Z","key":1486686600000,"doc_count":14},{"key_as_string":"2017-02-10T00:31:00.000Z","key":1486686660000,"doc_count":9},{"key_as_string":"2017-02-10T00:32:00.000Z","key":1486686720000,"doc_count":6},{"key_as_string":"2017-02-10T00:33:00.000Z","key":1486686780000,"doc_count":13},{"key_as_string":"2017-02-10T00:34:00.000Z","key":1486686840000,"doc_count":8},{"key_as_string":"2017-02-10T00:35:00.000Z","key":1486686900000,"doc_count":12},{"key_as_string":"2017-02-10T00:36:00.000Z","key":1486686960000,"doc_count":10},{"key_as_string":"2017-02-10T00:37:00.000Z","key":1486687020000,"doc_count":11},{"key_as_string":"2017-02-10T00:38:00.000Z","key":1486687080000,"doc_count":12},{"key_as_string":"2017-02-10T00:39:00.000Z","key":1486687140000,"doc_count":11},{"key_as_string":"2017-02-10T00:40:00.000Z","key":1486687200000,"doc_count":9},{"key_as_string":"2017-02-10T00:41:00.000Z","key":1486687260000,"doc_count":15},{"key_as_string":"2017-02-10T00:42:00.000Z","key":1486687320000,"doc_count":11},{"key_as_string":"2017-02-10T00:43:00.000Z","key":1486687380000,"doc_count":10},{"key_as_string":"2017-02-10T00:44:00.000Z","key":1486687440000,"doc_count":6},{"key_as_string":"2017-02-10T00:45:00.000Z","key":1486687500000,"doc_count":9},{"key_as_string":"2017-02-10T00:46:00.000Z","key":1486687560000,"doc_count":6},{"key_as_string":"2017-02-10T00:47:00.000Z","key":1486687620000,"doc_count":15},{"key_as_string":"2017-02-10T00:48:00.000Z","key":1486687680000,"doc_count":5},{"key_as_string":"2017-02-10T00:49:00.000Z","key":1486687740000,"doc_count":8},{"key_as_string":"2017-02-10T00:50:00.000Z","key":1486687800000,"doc_count":14},{"key_as_string":"2017-02-10T00:51:00.000Z","key":1486687860000,"doc_count":8},{"key_as_string":"2017-02-10T00:52:00.000Z","key":1486687920000,"doc_count":10},{"key_as_string":"2017-02-10T00:53:00.000Z","key":1486687980000,"doc_count":11},{"key_as_string":"2017-02-10T00:54:00.000Z","key":1486688040000,"doc_count":11},{"key_as_string":"2017-02-10T00:55:00.000Z","key":1486688100000,"doc_count":14},{"key_as_string":"2017-02-10T00:56:00.000Z","key":1486688160000,"doc_count":11},{"key_as_string":"2017-02-10T00:57:00.000Z","key":1486688220000,"doc_count":9},{"key_as_string":"2017-02-10T00:58:00.000Z","key":1486688280000,"doc_count":10},{"key_as_string":"2017-02-10T00:59:00.000Z","key":1486688340000,"doc_count":12},{"key_as_string":"2017-02-10T01:00:00.000Z","key":1486688400000,"doc_count":8},{"key_as_string":"2017-02-10T01:01:00.000Z","key":1486688460000,"doc_count":14},{"key_as_string":"2017-02-10T01:02:00.000Z","key":1486688520000,"doc_count":10},{"key_as_string":"2017-02-10T01:03:00.000Z","key":1486688580000,"doc_count":7},{"key_as_string":"2017-02-10T01:04:00.000Z","key":1486688640000,"doc_count":14},{"key_as_string":"2017-02-10T01:05:00.000Z","key":1486688700000,"doc_count":5},{"key_as_string":"2017-02-10T01:06:00.000Z","key":1486688760000,"doc_count":19},{"key_as_string":"2017-02-10T01:07:00.000Z","key":1486688820000,"doc_count":7},{"key_as_string":"2017-02-10T01:08:00.000Z","key":1486688880000,"doc_count":14},{"key_as_string":"2017-02-10T01:09:00.000Z","key":1486688940000,"doc_count":6},{"key_as_string":"2017-02-10T01:10:00.000Z","key":1486689000000,"doc_count":11},{"key_as_string":"2017-02-10T01:11:00.000Z","key":1486689060000,"doc_count":16},{"key_as_string":"2017-02-10T01:12:00.000Z","key":1486689120000,"doc_count":11},{"key_as_string":"2017-02-10T01:13:00.000Z","key":1486689180000,"doc_count":6},{"key_as_string":"2017-02-10T01:14:00.000Z","key":1486689240000,"doc_count":10},{"key_as_string":"2017-02-10T01:15:00.000Z","key":1486689300000,"doc_count":10},{"key_as_string":"2017-02-10T01:16:00.000Z","key":1486689360000,"doc_count":10},{"key_as_string":"2017-02-10T01:17:00.000Z","key":1486689420000,"doc_count":11},{"key_as_string":"2017-02-10T01:18:00.000Z","key":1486689480000,"doc_count":7},{"key_as_string":"2017-02-10T01:19:00.000Z","key":1486689540000,"doc_count":8},{"key_as_string":"2017-02-10T01:20:00.000Z","key":1486689600000,"doc_count":17},{"key_as_string":"2017-02-10T01:21:00.000Z","key":1486689660000,"doc_count":12},{"key_as_string":"2017-02-10T01:22:00.000Z","key":1486689720000,"doc_count":12},{"key_as_string":"2017-02-10T01:23:00.000Z","key":1486689780000,"doc_count":12},{"key_as_string":"2017-02-10T01:24:00.000Z","key":1486689840000,"doc_count":13},{"key_as_string":"2017-02-10T01:25:00.000Z","key":1486689900000,"doc_count":9},{"key_as_string":"2017-02-10T01:26:00.000Z","key":1486689960000,"doc_count":8},{"key_as_string":"2017-02-10T01:27:00.000Z","key":1486690020000,"doc_count":9},{"key_as_string":"2017-02-10T01:28:00.000Z","key":1486690080000,"doc_count":10},{"key_as_string":"2017-02-10T01:29:00.000Z","key":1486690140000,"doc_count":11},{"key_as_string":"2017-02-10T01:30:00.000Z","key":1486690200000,"doc_count":5},{"key_as_string":"2017-02-10T01:31:00.000Z","key":1486690260000,"doc_count":12},{"key_as_string":"2017-02-10T01:32:00.000Z","key":1486690320000,"doc_count":8},{"key_as_string":"2017-02-10T01:33:00.000Z","key":1486690380000,"doc_count":8},{"key_as_string":"2017-02-10T01:34:00.000Z","key":1486690440000,"doc_count":11},{"key_as_string":"2017-02-10T01:35:00.000Z","key":1486690500000,"doc_count":7},{"key_as_string":"2017-02-10T01:36:00.000Z","key":1486690560000,"doc_count":16},{"key_as_string":"2017-02-10T01:37:00.000Z","key":1486690620000,"doc_count":9},{"key_as_string":"2017-02-10T01:38:00.000Z","key":1486690680000,"doc_count":3},{"key_as_string":"2017-02-10T01:39:00.000Z","key":1486690740000,"doc_count":14},{"key_as_string":"2017-02-10T01:40:00.000Z","key":1486690800000,"doc_count":3},{"key_as_string":"2017-02-10T01:41:00.000Z","key":1486690860000,"doc_count":14},{"key_as_string":"2017-02-10T01:42:00.000Z","key":1486690920000,"doc_count":11},{"key_as_string":"2017-02-10T01:43:00.000Z","key":1486690980000,"doc_count":8},{"key_as_string":"2017-02-10T01:44:00.000Z","key":1486691040000,"doc_count":13},{"key_as_string":"2017-02-10T01:45:00.000Z","key":1486691100000,"doc_count":6},{"key_as_string":"2017-02-10T01:46:00.000Z","key":1486691160000,"doc_count":16},{"key_as_string":"2017-02-10T01:47:00.000Z","key":1486691220000,"doc_count":12},{"key_as_string":"2017-02-10T01:48:00.000Z","key":1486691280000,"doc_count":8},{"key_as_string":"2017-02-10T01:49:00.000Z","key":1486691340000,"doc_count":17},{"key_as_string":"2017-02-10T01:50:00.000Z","key":1486691400000,"doc_count":9},{"key_as_string":"2017-02-10T01:51:00.000Z","key":1486691460000,"doc_count":11},{"key_as_string":"2017-02-10T01:52:00.000Z","key":1486691520000,"doc_count":10},{"key_as_string":"2017-02-10T01:53:00.000Z","key":1486691580000,"doc_count":13},{"key_as_string":"2017-02-10T01:54:00.000Z","key":1486691640000,"doc_count":11},{"key_as_string":"2017-02-10T01:55:00.000Z","key":1486691700000,"doc_count":9},{"key_as_string":"2017-02-10T01:56:00.000Z","key":1486691760000,"doc_count":11},{"key_as_string":"2017-02-10T01:57:00.000Z","key":1486691820000,"doc_count":8},{"key_as_string":"2017-02-10T01:58:00.000Z","key":1486691880000,"doc_count":14},{"key_as_string":"2017-02-10T01:59:00.000Z","key":1486691940000,"doc_count":8},{"key_as_string":"2017-02-10T02:00:00.000Z","key":1486692000000,"doc_count":4},{"key_as_string":"2017-02-10T02:01:00.000Z","key":1486692060000,"doc_count":13},{"key_as_string":"2017-02-10T02:02:00.000Z","key":1486692120000,"doc_count":8},{"key_as_string":"2017-02-10T02:03:00.000Z","key":1486692180000,"doc_count":9},{"key_as_string":"2017-02-10T02:04:00.000Z","key":1486692240000,"doc_count":9},{"key_as_string":"2017-02-10T02:05:00.000Z","key":1486692300000,"doc_count":14},{"key_as_string":"2017-02-10T02:06:00.000Z","key":1486692360000,"doc_count":7},{"key_as_string":"2017-02-10T02:07:00.000Z","key":1486692420000,"doc_count":9},{"key_as_string":"2017-02-10T02:08:00.000Z","key":1486692480000,"doc_count":16},{"key_as_string":"2017-02-10T02:09:00.000Z","key":1486692540000,"doc_count":10},{"key_as_string":"2017-02-10T02:10:00.000Z","key":1486692600000,"doc_count":11},{"key_as_string":"2017-02-10T02:11:00.000Z","key":1486692660000,"doc_count":7},{"key_as_string":"2017-02-10T02:12:00.000Z","key":1486692720000,"doc_count":12},{"key_as_string":"2017-02-10T02:13:00.000Z","key":1486692780000,"doc_count":11},{"key_as_string":"2017-02-10T02:14:00.000Z","key":1486692840000,"doc_count":5},{"key_as_string":"2017-02-10T02:15:00.000Z","key":1486692900000,"doc_count":14},{"key_as_string":"2017-02-10T02:16:00.000Z","key":1486692960000,"doc_count":13},{"key_as_string":"2017-02-10T02:17:00.000Z","key":1486693020000,"doc_count":7},{"key_as_string":"2017-02-10T02:18:00.000Z","key":1486693080000,"doc_count":11},{"key_as_string":"2017-02-10T02:19:00.000Z","key":1486693140000,"doc_count":10},{"key_as_string":"2017-02-10T02:20:00.000Z","key":1486693200000,"doc_count":8},{"key_as_string":"2017-02-10T02:21:00.000Z","key":1486693260000,"doc_count":9},{"key_as_string":"2017-02-10T02:22:00.000Z","key":1486693320000,"doc_count":12},{"key_as_string":"2017-02-10T02:23:00.000Z","key":1486693380000,"doc_count":14},{"key_as_string":"2017-02-10T02:24:00.000Z","key":1486693440000,"doc_count":8},{"key_as_string":"2017-02-10T02:25:00.000Z","key":1486693500000,"doc_count":10},{"key_as_string":"2017-02-10T02:26:00.000Z","key":1486693560000,"doc_count":10},{"key_as_string":"2017-02-10T02:27:00.000Z","key":1486693620000,"doc_count":8},{"key_as_string":"2017-02-10T02:28:00.000Z","key":1486693680000,"doc_count":7},{"key_as_string":"2017-02-10T02:29:00.000Z","key":1486693740000,"doc_count":7},{"key_as_string":"2017-02-10T02:30:00.000Z","key":1486693800000,"doc_count":13},{"key_as_string":"2017-02-10T02:31:00.000Z","key":1486693860000,"doc_count":7},{"key_as_string":"2017-02-10T02:32:00.000Z","key":1486693920000,"doc_count":14},{"key_as_string":"2017-02-10T02:33:00.000Z","key":1486693980000,"doc_count":8},{"key_as_string":"2017-02-10T02:34:00.000Z","key":1486694040000,"doc_count":10},{"key_as_string":"2017-02-10T02:35:00.000Z","key":1486694100000,"doc_count":10},{"key_as_string":"2017-02-10T02:36:00.000Z","key":1486694160000,"doc_count":10},{"key_as_string":"2017-02-10T02:37:00.000Z","key":1486694220000,"doc_count":13},{"key_as_string":"2017-02-10T02:38:00.000Z","key":1486694280000,"doc_count":7},{"key_as_string":"2017-02-10T02:39:00.000Z","key":1486694340000,"doc_count":13},{"key_as_string":"2017-02-10T02:40:00.000Z","key":1486694400000,"doc_count":14},{"key_as_string":"2017-02-10T02:41:00.000Z","key":1486694460000,"doc_count":12},{"key_as_string":"2017-02-10T02:42:00.000Z","key":1486694520000,"doc_count":9},{"key_as_string":"2017-02-10T02:43:00.000Z","key":1486694580000,"doc_count":9},{"key_as_string":"2017-02-10T02:44:00.000Z","key":1486694640000,"doc_count":10},{"key_as_string":"2017-02-10T02:45:00.000Z","key":1486694700000,"doc_count":15},{"key_as_string":"2017-02-10T02:46:00.000Z","key":1486694760000,"doc_count":8},{"key_as_string":"2017-02-10T02:47:00.000Z","key":1486694820000,"doc_count":11},{"key_as_string":"2017-02-10T02:48:00.000Z","key":1486694880000,"doc_count":12},{"key_as_string":"2017-02-10T02:49:00.000Z","key":1486694940000,"doc_count":10},{"key_as_string":"2017-02-10T02:50:00.000Z","key":1486695000000,"doc_count":9},{"key_as_string":"2017-02-10T02:51:00.000Z","key":1486695060000,"doc_count":16},{"key_as_string":"2017-02-10T02:52:00.000Z","key":1486695120000,"doc_count":8},{"key_as_string":"2017-02-10T02:53:00.000Z","key":1486695180000,"doc_count":9},{"key_as_string":"2017-02-10T02:54:00.000Z","key":1486695240000,"doc_count":15},{"key_as_string":"2017-02-10T02:55:00.000Z","key":1486695300000,"doc_count":9},{"key_as_string":"2017-02-10T02:56:00.000Z","key":1486695360000,"doc_count":9},{"key_as_string":"2017-02-10T02:57:00.000Z","key":1486695420000,"doc_count":9},{"key_as_string":"2017-02-10T02:58:00.000Z","key":1486695480000,"doc_count":10},{"key_as_string":"2017-02-10T02:59:00.000Z","key":1486695540000,"doc_count":10},{"key_as_string":"2017-02-10T03:00:00.000Z","key":1486695600000,"doc_count":16},{"key_as_string":"2017-02-10T03:01:00.000Z","key":1486695660000,"doc_count":7},{"key_as_string":"2017-02-10T03:02:00.000Z","key":1486695720000,"doc_count":11},{"key_as_string":"2017-02-10T03:03:00.000Z","key":1486695780000,"doc_count":15},{"key_as_string":"2017-02-10T03:04:00.000Z","key":1486695840000,"doc_count":7},{"key_as_string":"2017-02-10T03:05:00.000Z","key":1486695900000,"doc_count":9},{"key_as_string":"2017-02-10T03:06:00.000Z","key":1486695960000,"doc_count":9},{"key_as_string":"2017-02-10T03:07:00.000Z","key":1486696020000,"doc_count":10},{"key_as_string":"2017-02-10T03:08:00.000Z","key":1486696080000,"doc_count":10},{"key_as_string":"2017-02-10T03:09:00.000Z","key":1486696140000,"doc_count":18},{"key_as_string":"2017-02-10T03:10:00.000Z","key":1486696200000,"doc_count":13},{"key_as_string":"2017-02-10T03:11:00.000Z","key":1486696260000,"doc_count":8},{"key_as_string":"2017-02-10T03:12:00.000Z","key":1486696320000,"doc_count":11},{"key_as_string":"2017-02-10T03:13:00.000Z","key":1486696380000,"doc_count":9},{"key_as_string":"2017-02-10T03:14:00.000Z","key":1486696440000,"doc_count":10},{"key_as_string":"2017-02-10T03:15:00.000Z","key":1486696500000,"doc_count":16},{"key_as_string":"2017-02-10T03:16:00.000Z","key":1486696560000,"doc_count":10},{"key_as_string":"2017-02-10T03:17:00.000Z","key":1486696620000,"doc_count":13},{"key_as_string":"2017-02-10T03:18:00.000Z","key":1486696680000,"doc_count":7},{"key_as_string":"2017-02-10T03:19:00.000Z","key":1486696740000,"doc_count":13},{"key_as_string":"2017-02-10T03:20:00.000Z","key":1486696800000,"doc_count":9},{"key_as_string":"2017-02-10T03:21:00.000Z","key":1486696860000,"doc_count":8},{"key_as_string":"2017-02-10T03:22:00.000Z","key":1486696920000,"doc_count":16},{"key_as_string":"2017-02-10T03:23:00.000Z","key":1486696980000,"doc_count":9},{"key_as_string":"2017-02-10T03:24:00.000Z","key":1486697040000,"doc_count":14},{"key_as_string":"2017-02-10T03:25:00.000Z","key":1486697100000,"doc_count":11},{"key_as_string":"2017-02-10T03:26:00.000Z","key":1486697160000,"doc_count":11},{"key_as_string":"2017-02-10T03:27:00.000Z","key":1486697220000,"doc_count":9},{"key_as_string":"2017-02-10T03:28:00.000Z","key":1486697280000,"doc_count":9},{"key_as_string":"2017-02-10T03:29:00.000Z","key":1486697340000,"doc_count":11},{"key_as_string":"2017-02-10T03:30:00.000Z","key":1486697400000,"doc_count":7},{"key_as_string":"2017-02-10T03:31:00.000Z","key":1486697460000,"doc_count":14},{"key_as_string":"2017-02-10T03:32:00.000Z","key":1486697520000,"doc_count":7},{"key_as_string":"2017-02-10T03:33:00.000Z","key":1486697580000,"doc_count":14},{"key_as_string":"2017-02-10T03:34:00.000Z","key":1486697640000,"doc_count":8},{"key_as_string":"2017-02-10T03:35:00.000Z","key":1486697700000,"doc_count":8},{"key_as_string":"2017-02-10T03:36:00.000Z","key":1486697760000,"doc_count":15},{"key_as_string":"2017-02-10T03:37:00.000Z","key":1486697820000,"doc_count":9},{"key_as_string":"2017-02-10T03:38:00.000Z","key":1486697880000,"doc_count":12},{"key_as_string":"2017-02-10T03:39:00.000Z","key":1486697940000,"doc_count":15},{"key_as_string":"2017-02-10T03:40:00.000Z","key":1486698000000,"doc_count":12},{"key_as_string":"2017-02-10T03:41:00.000Z","key":1486698060000,"doc_count":12},{"key_as_string":"2017-02-10T03:42:00.000Z","key":1486698120000,"doc_count":10},{"key_as_string":"2017-02-10T03:43:00.000Z","key":1486698180000,"doc_count":11},{"key_as_string":"2017-02-10T03:44:00.000Z","key":1486698240000,"doc_count":12},{"key_as_string":"2017-02-10T03:45:00.000Z","key":1486698300000,"doc_count":9},{"key_as_string":"2017-02-10T03:46:00.000Z","key":1486698360000,"doc_count":13},{"key_as_string":"2017-02-10T03:47:00.000Z","key":1486698420000,"doc_count":8},{"key_as_string":"2017-02-10T03:48:00.000Z","key":1486698480000,"doc_count":15},{"key_as_string":"2017-02-10T03:49:00.000Z","key":1486698540000,"doc_count":8},{"key_as_string":"2017-02-10T03:50:00.000Z","key":1486698600000,"doc_count":12},{"key_as_string":"2017-02-10T03:51:00.000Z","key":1486698660000,"doc_count":16},{"key_as_string":"2017-02-10T03:52:00.000Z","key":1486698720000,"doc_count":7},{"key_as_string":"2017-02-10T03:53:00.000Z","key":1486698780000,"doc_count":12},{"key_as_string":"2017-02-10T03:54:00.000Z","key":1486698840000,"doc_count":8},{"key_as_string":"2017-02-10T03:55:00.000Z","key":1486698900000,"doc_count":7},{"key_as_string":"2017-02-10T03:56:00.000Z","key":1486698960000,"doc_count":13},{"key_as_string":"2017-02-10T03:57:00.000Z","key":1486699020000,"doc_count":8},{"key_as_string":"2017-02-10T03:58:00.000Z","key":1486699080000,"doc_count":10},{"key_as_string":"2017-02-10T03:59:00.000Z","key":1486699140000,"doc_count":13},{"key_as_string":"2017-02-10T04:00:00.000Z","key":1486699200000,"doc_count":11},{"key_as_string":"2017-02-10T04:01:00.000Z","key":1486699260000,"doc_count":10},{"key_as_string":"2017-02-10T04:02:00.000Z","key":1486699320000,"doc_count":12},{"key_as_string":"2017-02-10T04:03:00.000Z","key":1486699380000,"doc_count":9},{"key_as_string":"2017-02-10T04:04:00.000Z","key":1486699440000,"doc_count":13},{"key_as_string":"2017-02-10T04:05:00.000Z","key":1486699500000,"doc_count":8},{"key_as_string":"2017-02-10T04:06:00.000Z","key":1486699560000,"doc_count":15},{"key_as_string":"2017-02-10T04:07:00.000Z","key":1486699620000,"doc_count":11},{"key_as_string":"2017-02-10T04:08:00.000Z","key":1486699680000,"doc_count":11},{"key_as_string":"2017-02-10T04:09:00.000Z","key":1486699740000,"doc_count":16},{"key_as_string":"2017-02-10T04:10:00.000Z","key":1486699800000,"doc_count":8},{"key_as_string":"2017-02-10T04:11:00.000Z","key":1486699860000,"doc_count":15},{"key_as_string":"2017-02-10T04:12:00.000Z","key":1486699920000,"doc_count":8},{"key_as_string":"2017-02-10T04:13:00.000Z","key":1486699980000,"doc_count":11},{"key_as_string":"2017-02-10T04:14:00.000Z","key":1486700040000,"doc_count":11},{"key_as_string":"2017-02-10T04:15:00.000Z","key":1486700100000,"doc_count":13},{"key_as_string":"2017-02-10T04:16:00.000Z","key":1486700160000,"doc_count":6},{"key_as_string":"2017-02-10T04:17:00.000Z","key":1486700220000,"doc_count":11},{"key_as_string":"2017-02-10T04:18:00.000Z","key":1486700280000,"doc_count":11},{"key_as_string":"2017-02-10T04:19:00.000Z","key":1486700340000,"doc_count":9},{"key_as_string":"2017-02-10T04:20:00.000Z","key":1486700400000,"doc_count":17},{"key_as_string":"2017-02-10T04:21:00.000Z","key":1486700460000,"doc_count":7},{"key_as_string":"2017-02-10T04:22:00.000Z","key":1486700520000,"doc_count":14},{"key_as_string":"2017-02-10T04:23:00.000Z","key":1486700580000,"doc_count":13},{"key_as_string":"2017-02-10T04:24:00.000Z","key":1486700640000,"doc_count":7},{"key_as_string":"2017-02-10T04:25:00.000Z","key":1486700700000,"doc_count":11},{"key_as_string":"2017-02-10T04:26:00.000Z","key":1486700760000,"doc_count":12},{"key_as_string":"2017-02-10T04:27:00.000Z","key":1486700820000,"doc_count":11},{"key_as_string":"2017-02-10T04:28:00.000Z","key":1486700880000,"doc_count":9},{"key_as_string":"2017-02-10T04:29:00.000Z","key":1486700940000,"doc_count":9},{"key_as_string":"2017-02-10T04:30:00.000Z","key":1486701000000,"doc_count":10},{"key_as_string":"2017-02-10T04:31:00.000Z","key":1486701060000,"doc_count":10},{"key_as_string":"2017-02-10T04:32:00.000Z","key":1486701120000,"doc_count":10},{"key_as_string":"2017-02-10T04:33:00.000Z","key":1486701180000,"doc_count":11},{"key_as_string":"2017-02-10T04:34:00.000Z","key":1486701240000,"doc_count":13},{"key_as_string":"2017-02-10T04:35:00.000Z","key":1486701300000,"doc_count":6},{"key_as_string":"2017-02-10T04:36:00.000Z","key":1486701360000,"doc_count":8},{"key_as_string":"2017-02-10T04:37:00.000Z","key":1486701420000,"doc_count":14},{"key_as_string":"2017-02-10T04:38:00.000Z","key":1486701480000,"doc_count":9},{"key_as_string":"2017-02-10T04:39:00.000Z","key":1486701540000,"doc_count":12},{"key_as_string":"2017-02-10T04:40:00.000Z","key":1486701600000,"doc_count":10},{"key_as_string":"2017-02-10T04:41:00.000Z","key":1486701660000,"doc_count":9},{"key_as_string":"2017-02-10T04:42:00.000Z","key":1486701720000,"doc_count":10},{"key_as_string":"2017-02-10T04:43:00.000Z","key":1486701780000,"doc_count":9},{"key_as_string":"2017-02-10T04:44:00.000Z","key":1486701840000,"doc_count":11},{"key_as_string":"2017-02-10T04:45:00.000Z","key":1486701900000,"doc_count":10},{"key_as_string":"2017-02-10T04:46:00.000Z","key":1486701960000,"doc_count":19},{"key_as_string":"2017-02-10T04:47:00.000Z","key":1486702020000,"doc_count":11},{"key_as_string":"2017-02-10T04:48:00.000Z","key":1486702080000,"doc_count":10},{"key_as_string":"2017-02-10T04:49:00.000Z","key":1486702140000,"doc_count":10},{"key_as_string":"2017-02-10T04:50:00.000Z","key":1486702200000,"doc_count":10},{"key_as_string":"2017-02-10T04:51:00.000Z","key":1486702260000,"doc_count":11},{"key_as_string":"2017-02-10T04:52:00.000Z","key":1486702320000,"doc_count":17},{"key_as_string":"2017-02-10T04:53:00.000Z","key":1486702380000,"doc_count":6},{"key_as_string":"2017-02-10T04:54:00.000Z","key":1486702440000,"doc_count":7},{"key_as_string":"2017-02-10T04:55:00.000Z","key":1486702500000,"doc_count":10},{"key_as_string":"2017-02-10T04:56:00.000Z","key":1486702560000,"doc_count":10},{"key_as_string":"2017-02-10T04:57:00.000Z","key":1486702620000,"doc_count":10},{"key_as_string":"2017-02-10T04:58:00.000Z","key":1486702680000,"doc_count":11},{"key_as_string":"2017-02-10T04:59:00.000Z","key":1486702740000,"doc_count":10},{"key_as_string":"2017-02-10T05:00:00.000Z","key":1486702800000,"doc_count":8},{"key_as_string":"2017-02-10T05:01:00.000Z","key":1486702860000,"doc_count":13},{"key_as_string":"2017-02-10T05:02:00.000Z","key":1486702920000,"doc_count":11},{"key_as_string":"2017-02-10T05:03:00.000Z","key":1486702980000,"doc_count":7},{"key_as_string":"2017-02-10T05:04:00.000Z","key":1486703040000,"doc_count":10},{"key_as_string":"2017-02-10T05:05:00.000Z","key":1486703100000,"doc_count":10},{"key_as_string":"2017-02-10T05:06:00.000Z","key":1486703160000,"doc_count":10},{"key_as_string":"2017-02-10T05:07:00.000Z","key":1486703220000,"doc_count":9},{"key_as_string":"2017-02-10T05:08:00.000Z","key":1486703280000,"doc_count":9},{"key_as_string":"2017-02-10T05:09:00.000Z","key":1486703340000,"doc_count":15},{"key_as_string":"2017-02-10T05:10:00.000Z","key":1486703400000,"doc_count":12},{"key_as_string":"2017-02-10T05:11:00.000Z","key":1486703460000,"doc_count":11},{"key_as_string":"2017-02-10T05:12:00.000Z","key":1486703520000,"doc_count":11},{"key_as_string":"2017-02-10T05:13:00.000Z","key":1486703580000,"doc_count":10},{"key_as_string":"2017-02-10T05:14:00.000Z","key":1486703640000,"doc_count":14},{"key_as_string":"2017-02-10T05:15:00.000Z","key":1486703700000,"doc_count":9},{"key_as_string":"2017-02-10T05:16:00.000Z","key":1486703760000,"doc_count":11},{"key_as_string":"2017-02-10T05:17:00.000Z","key":1486703820000,"doc_count":8},{"key_as_string":"2017-02-10T05:18:00.000Z","key":1486703880000,"doc_count":11},{"key_as_string":"2017-02-10T05:19:00.000Z","key":1486703940000,"doc_count":7},{"key_as_string":"2017-02-10T05:20:00.000Z","key":1486704000000,"doc_count":13},{"key_as_string":"2017-02-10T05:21:00.000Z","key":1486704060000,"doc_count":10},{"key_as_string":"2017-02-10T05:22:00.000Z","key":1486704120000,"doc_count":13},{"key_as_string":"2017-02-10T05:23:00.000Z","key":1486704180000,"doc_count":11},{"key_as_string":"2017-02-10T05:24:00.000Z","key":1486704240000,"doc_count":10},{"key_as_string":"2017-02-10T05:25:00.000Z","key":1486704300000,"doc_count":16},{"key_as_string":"2017-02-10T05:26:00.000Z","key":1486704360000,"doc_count":10},{"key_as_string":"2017-02-10T05:27:00.000Z","key":1486704420000,"doc_count":12},{"key_as_string":"2017-02-10T05:28:00.000Z","key":1486704480000,"doc_count":15},{"key_as_string":"2017-02-10T05:29:00.000Z","key":1486704540000,"doc_count":9},{"key_as_string":"2017-02-10T05:30:00.000Z","key":1486704600000,"doc_count":11},{"key_as_string":"2017-02-10T05:31:00.000Z","key":1486704660000,"doc_count":8},{"key_as_string":"2017-02-10T05:32:00.000Z","key":1486704720000,"doc_count":10},{"key_as_string":"2017-02-10T05:33:00.000Z","key":1486704780000,"doc_count":12},{"key_as_string":"2017-02-10T05:34:00.000Z","key":1486704840000,"doc_count":11},{"key_as_string":"2017-02-10T05:35:00.000Z","key":1486704900000,"doc_count":8},{"key_as_string":"2017-02-10T05:36:00.000Z","key":1486704960000,"doc_count":12},{"key_as_string":"2017-02-10T05:37:00.000Z","key":1486705020000,"doc_count":8},{"key_as_string":"2017-02-10T05:38:00.000Z","key":1486705080000,"doc_count":8},{"key_as_string":"2017-02-10T05:39:00.000Z","key":1486705140000,"doc_count":12},{"key_as_string":"2017-02-10T05:40:00.000Z","key":1486705200000,"doc_count":14},{"key_as_string":"2017-02-10T05:41:00.000Z","key":1486705260000,"doc_count":15},{"key_as_string":"2017-02-10T05:42:00.000Z","key":1486705320000,"doc_count":5},{"key_as_string":"2017-02-10T05:43:00.000Z","key":1486705380000,"doc_count":11},{"key_as_string":"2017-02-10T05:44:00.000Z","key":1486705440000,"doc_count":12},{"key_as_string":"2017-02-10T05:45:00.000Z","key":1486705500000,"doc_count":6},{"key_as_string":"2017-02-10T05:46:00.000Z","key":1486705560000,"doc_count":12},{"key_as_string":"2017-02-10T05:47:00.000Z","key":1486705620000,"doc_count":10},{"key_as_string":"2017-02-10T05:48:00.000Z","key":1486705680000,"doc_count":12},{"key_as_string":"2017-02-10T05:49:00.000Z","key":1486705740000,"doc_count":17},{"key_as_string":"2017-02-10T05:50:00.000Z","key":1486705800000,"doc_count":10},{"key_as_string":"2017-02-10T05:51:00.000Z","key":1486705860000,"doc_count":13},{"key_as_string":"2017-02-10T05:52:00.000Z","key":1486705920000,"doc_count":13},{"key_as_string":"2017-02-10T05:53:00.000Z","key":1486705980000,"doc_count":10},{"key_as_string":"2017-02-10T05:54:00.000Z","key":1486706040000,"doc_count":10},{"key_as_string":"2017-02-10T05:55:00.000Z","key":1486706100000,"doc_count":15},{"key_as_string":"2017-02-10T05:56:00.000Z","key":1486706160000,"doc_count":8},{"key_as_string":"2017-02-10T05:57:00.000Z","key":1486706220000,"doc_count":10},{"key_as_string":"2017-02-10T05:58:00.000Z","key":1486706280000,"doc_count":11},{"key_as_string":"2017-02-10T05:59:00.000Z","key":1486706340000,"doc_count":10},{"key_as_string":"2017-02-10T06:00:00.000Z","key":1486706400000,"doc_count":19},{"key_as_string":"2017-02-10T06:01:00.000Z","key":1486706460000,"doc_count":13},{"key_as_string":"2017-02-10T06:02:00.000Z","key":1486706520000,"doc_count":14},{"key_as_string":"2017-02-10T06:03:00.000Z","key":1486706580000,"doc_count":11},{"key_as_string":"2017-02-10T06:04:00.000Z","key":1486706640000,"doc_count":13},{"key_as_string":"2017-02-10T06:05:00.000Z","key":1486706700000,"doc_count":6},{"key_as_string":"2017-02-10T06:06:00.000Z","key":1486706760000,"doc_count":12},{"key_as_string":"2017-02-10T06:07:00.000Z","key":1486706820000,"doc_count":14},{"key_as_string":"2017-02-10T06:08:00.000Z","key":1486706880000,"doc_count":12},{"key_as_string":"2017-02-10T06:09:00.000Z","key":1486706940000,"doc_count":14},{"key_as_string":"2017-02-10T06:10:00.000Z","key":1486707000000,"doc_count":8},{"key_as_string":"2017-02-10T06:11:00.000Z","key":1486707060000,"doc_count":6},{"key_as_string":"2017-02-10T06:12:00.000Z","key":1486707120000,"doc_count":17},{"key_as_string":"2017-02-10T06:13:00.000Z","key":1486707180000,"doc_count":14},{"key_as_string":"2017-02-10T06:14:00.000Z","key":1486707240000,"doc_count":5},{"key_as_string":"2017-02-10T06:15:00.000Z","key":1486707300000,"doc_count":17},{"key_as_string":"2017-02-10T06:16:00.000Z","key":1486707360000,"doc_count":9},{"key_as_string":"2017-02-10T06:17:00.000Z","key":1486707420000,"doc_count":13},{"key_as_string":"2017-02-10T06:18:00.000Z","key":1486707480000,"doc_count":8},{"key_as_string":"2017-02-10T06:19:00.000Z","key":1486707540000,"doc_count":14},{"key_as_string":"2017-02-10T06:20:00.000Z","key":1486707600000,"doc_count":8},{"key_as_string":"2017-02-10T06:21:00.000Z","key":1486707660000,"doc_count":11},{"key_as_string":"2017-02-10T06:22:00.000Z","key":1486707720000,"doc_count":15},{"key_as_string":"2017-02-10T06:23:00.000Z","key":1486707780000,"doc_count":16},{"key_as_string":"2017-02-10T06:24:00.000Z","key":1486707840000,"doc_count":11},{"key_as_string":"2017-02-10T06:25:00.000Z","key":1486707900000,"doc_count":10},{"key_as_string":"2017-02-10T06:26:00.000Z","key":1486707960000,"doc_count":8},{"key_as_string":"2017-02-10T06:27:00.000Z","key":1486708020000,"doc_count":18},{"key_as_string":"2017-02-10T06:28:00.000Z","key":1486708080000,"doc_count":11},{"key_as_string":"2017-02-10T06:29:00.000Z","key":1486708140000,"doc_count":10},{"key_as_string":"2017-02-10T06:30:00.000Z","key":1486708200000,"doc_count":9},{"key_as_string":"2017-02-10T06:31:00.000Z","key":1486708260000,"doc_count":13},{"key_as_string":"2017-02-10T06:32:00.000Z","key":1486708320000,"doc_count":10},{"key_as_string":"2017-02-10T06:33:00.000Z","key":1486708380000,"doc_count":12},{"key_as_string":"2017-02-10T06:34:00.000Z","key":1486708440000,"doc_count":10},{"key_as_string":"2017-02-10T06:35:00.000Z","key":1486708500000,"doc_count":9},{"key_as_string":"2017-02-10T06:36:00.000Z","key":1486708560000,"doc_count":17},{"key_as_string":"2017-02-10T06:37:00.000Z","key":1486708620000,"doc_count":15},{"key_as_string":"2017-02-10T06:38:00.000Z","key":1486708680000,"doc_count":11},{"key_as_string":"2017-02-10T06:39:00.000Z","key":1486708740000,"doc_count":12},{"key_as_string":"2017-02-10T06:40:00.000Z","key":1486708800000,"doc_count":11},{"key_as_string":"2017-02-10T06:41:00.000Z","key":1486708860000,"doc_count":13},{"key_as_string":"2017-02-10T06:42:00.000Z","key":1486708920000,"doc_count":10},{"key_as_string":"2017-02-10T06:43:00.000Z","key":1486708980000,"doc_count":12},{"key_as_string":"2017-02-10T06:44:00.000Z","key":1486709040000,"doc_count":14},{"key_as_string":"2017-02-10T06:45:00.000Z","key":1486709100000,"doc_count":7},{"key_as_string":"2017-02-10T06:46:00.000Z","key":1486709160000,"doc_count":17},{"key_as_string":"2017-02-10T06:47:00.000Z","key":1486709220000,"doc_count":9},{"key_as_string":"2017-02-10T06:48:00.000Z","key":1486709280000,"doc_count":12},{"key_as_string":"2017-02-10T06:49:00.000Z","key":1486709340000,"doc_count":14},{"key_as_string":"2017-02-10T06:50:00.000Z","key":1486709400000,"doc_count":15},{"key_as_string":"2017-02-10T06:51:00.000Z","key":1486709460000,"doc_count":12},{"key_as_string":"2017-02-10T06:52:00.000Z","key":1486709520000,"doc_count":8},{"key_as_string":"2017-02-10T06:53:00.000Z","key":1486709580000,"doc_count":13},{"key_as_string":"2017-02-10T06:54:00.000Z","key":1486709640000,"doc_count":15},{"key_as_string":"2017-02-10T06:55:00.000Z","key":1486709700000,"doc_count":8},{"key_as_string":"2017-02-10T06:56:00.000Z","key":1486709760000,"doc_count":7},{"key_as_string":"2017-02-10T06:57:00.000Z","key":1486709820000,"doc_count":18},{"key_as_string":"2017-02-10T06:58:00.000Z","key":1486709880000,"doc_count":11},{"key_as_string":"2017-02-10T06:59:00.000Z","key":1486709940000,"doc_count":14},{"key_as_string":"2017-02-10T07:00:00.000Z","key":1486710000000,"doc_count":8},{"key_as_string":"2017-02-10T07:01:00.000Z","key":1486710060000,"doc_count":12},{"key_as_string":"2017-02-10T07:02:00.000Z","key":1486710120000,"doc_count":14},{"key_as_string":"2017-02-10T07:03:00.000Z","key":1486710180000,"doc_count":9},{"key_as_string":"2017-02-10T07:04:00.000Z","key":1486710240000,"doc_count":13},{"key_as_string":"2017-02-10T07:05:00.000Z","key":1486710300000,"doc_count":12},{"key_as_string":"2017-02-10T07:06:00.000Z","key":1486710360000,"doc_count":15},{"key_as_string":"2017-02-10T07:07:00.000Z","key":1486710420000,"doc_count":19},{"key_as_string":"2017-02-10T07:08:00.000Z","key":1486710480000,"doc_count":11},{"key_as_string":"2017-02-10T07:09:00.000Z","key":1486710540000,"doc_count":16},{"key_as_string":"2017-02-10T07:10:00.000Z","key":1486710600000,"doc_count":11},{"key_as_string":"2017-02-10T07:11:00.000Z","key":1486710660000,"doc_count":13},{"key_as_string":"2017-02-10T07:12:00.000Z","key":1486710720000,"doc_count":12},{"key_as_string":"2017-02-10T07:13:00.000Z","key":1486710780000,"doc_count":9},{"key_as_string":"2017-02-10T07:14:00.000Z","key":1486710840000,"doc_count":21},{"key_as_string":"2017-02-10T07:15:00.000Z","key":1486710900000,"doc_count":11},{"key_as_string":"2017-02-10T07:16:00.000Z","key":1486710960000,"doc_count":6},{"key_as_string":"2017-02-10T07:17:00.000Z","key":1486711020000,"doc_count":16},{"key_as_string":"2017-02-10T07:18:00.000Z","key":1486711080000,"doc_count":15},{"key_as_string":"2017-02-10T07:19:00.000Z","key":1486711140000,"doc_count":13},{"key_as_string":"2017-02-10T07:20:00.000Z","key":1486711200000,"doc_count":15},{"key_as_string":"2017-02-10T07:21:00.000Z","key":1486711260000,"doc_count":14},{"key_as_string":"2017-02-10T07:22:00.000Z","key":1486711320000,"doc_count":14},{"key_as_string":"2017-02-10T07:23:00.000Z","key":1486711380000,"doc_count":13},{"key_as_string":"2017-02-10T07:24:00.000Z","key":1486711440000,"doc_count":10},{"key_as_string":"2017-02-10T07:25:00.000Z","key":1486711500000,"doc_count":11},{"key_as_string":"2017-02-10T07:26:00.000Z","key":1486711560000,"doc_count":12},{"key_as_string":"2017-02-10T07:27:00.000Z","key":1486711620000,"doc_count":15},{"key_as_string":"2017-02-10T07:28:00.000Z","key":1486711680000,"doc_count":7},{"key_as_string":"2017-02-10T07:29:00.000Z","key":1486711740000,"doc_count":18},{"key_as_string":"2017-02-10T07:30:00.000Z","key":1486711800000,"doc_count":14},{"key_as_string":"2017-02-10T07:31:00.000Z","key":1486711860000,"doc_count":12},{"key_as_string":"2017-02-10T07:32:00.000Z","key":1486711920000,"doc_count":16},{"key_as_string":"2017-02-10T07:33:00.000Z","key":1486711980000,"doc_count":12},{"key_as_string":"2017-02-10T07:34:00.000Z","key":1486712040000,"doc_count":15},{"key_as_string":"2017-02-10T07:35:00.000Z","key":1486712100000,"doc_count":12},{"key_as_string":"2017-02-10T07:36:00.000Z","key":1486712160000,"doc_count":10},{"key_as_string":"2017-02-10T07:37:00.000Z","key":1486712220000,"doc_count":12},{"key_as_string":"2017-02-10T07:38:00.000Z","key":1486712280000,"doc_count":13},{"key_as_string":"2017-02-10T07:39:00.000Z","key":1486712340000,"doc_count":8},{"key_as_string":"2017-02-10T07:40:00.000Z","key":1486712400000,"doc_count":11},{"key_as_string":"2017-02-10T07:41:00.000Z","key":1486712460000,"doc_count":13},{"key_as_string":"2017-02-10T07:42:00.000Z","key":1486712520000,"doc_count":19},{"key_as_string":"2017-02-10T07:43:00.000Z","key":1486712580000,"doc_count":10},{"key_as_string":"2017-02-10T07:44:00.000Z","key":1486712640000,"doc_count":19},{"key_as_string":"2017-02-10T07:45:00.000Z","key":1486712700000,"doc_count":8},{"key_as_string":"2017-02-10T07:46:00.000Z","key":1486712760000,"doc_count":13},{"key_as_string":"2017-02-10T07:47:00.000Z","key":1486712820000,"doc_count":17},{"key_as_string":"2017-02-10T07:48:00.000Z","key":1486712880000,"doc_count":14},{"key_as_string":"2017-02-10T07:49:00.000Z","key":1486712940000,"doc_count":13},{"key_as_string":"2017-02-10T07:50:00.000Z","key":1486713000000,"doc_count":14},{"key_as_string":"2017-02-10T07:51:00.000Z","key":1486713060000,"doc_count":11},{"key_as_string":"2017-02-10T07:52:00.000Z","key":1486713120000,"doc_count":16},{"key_as_string":"2017-02-10T07:53:00.000Z","key":1486713180000,"doc_count":13},{"key_as_string":"2017-02-10T07:54:00.000Z","key":1486713240000,"doc_count":12},{"key_as_string":"2017-02-10T07:55:00.000Z","key":1486713300000,"doc_count":13},{"key_as_string":"2017-02-10T07:56:00.000Z","key":1486713360000,"doc_count":11},{"key_as_string":"2017-02-10T07:57:00.000Z","key":1486713420000,"doc_count":9},{"key_as_string":"2017-02-10T07:58:00.000Z","key":1486713480000,"doc_count":11},{"key_as_string":"2017-02-10T07:59:00.000Z","key":1486713540000,"doc_count":14},{"key_as_string":"2017-02-10T08:00:00.000Z","key":1486713600000,"doc_count":9},{"key_as_string":"2017-02-10T08:01:00.000Z","key":1486713660000,"doc_count":13},{"key_as_string":"2017-02-10T08:02:00.000Z","key":1486713720000,"doc_count":13},{"key_as_string":"2017-02-10T08:03:00.000Z","key":1486713780000,"doc_count":12},{"key_as_string":"2017-02-10T08:04:00.000Z","key":1486713840000,"doc_count":19},{"key_as_string":"2017-02-10T08:05:00.000Z","key":1486713900000,"doc_count":9},{"key_as_string":"2017-02-10T08:06:00.000Z","key":1486713960000,"doc_count":15},{"key_as_string":"2017-02-10T08:07:00.000Z","key":1486714020000,"doc_count":9},{"key_as_string":"2017-02-10T08:08:00.000Z","key":1486714080000,"doc_count":15},{"key_as_string":"2017-02-10T08:09:00.000Z","key":1486714140000,"doc_count":11},{"key_as_string":"2017-02-10T08:10:00.000Z","key":1486714200000,"doc_count":10},{"key_as_string":"2017-02-10T08:11:00.000Z","key":1486714260000,"doc_count":13},{"key_as_string":"2017-02-10T08:12:00.000Z","key":1486714320000,"doc_count":8},{"key_as_string":"2017-02-10T08:13:00.000Z","key":1486714380000,"doc_count":13},{"key_as_string":"2017-02-10T08:14:00.000Z","key":1486714440000,"doc_count":15},{"key_as_string":"2017-02-10T08:15:00.000Z","key":1486714500000,"doc_count":17},{"key_as_string":"2017-02-10T08:16:00.000Z","key":1486714560000,"doc_count":13},{"key_as_string":"2017-02-10T08:17:00.000Z","key":1486714620000,"doc_count":17},{"key_as_string":"2017-02-10T08:18:00.000Z","key":1486714680000,"doc_count":12},{"key_as_string":"2017-02-10T08:19:00.000Z","key":1486714740000,"doc_count":17},{"key_as_string":"2017-02-10T08:20:00.000Z","key":1486714800000,"doc_count":15},{"key_as_string":"2017-02-10T08:21:00.000Z","key":1486714860000,"doc_count":12},{"key_as_string":"2017-02-10T08:22:00.000Z","key":1486714920000,"doc_count":12},{"key_as_string":"2017-02-10T08:23:00.000Z","key":1486714980000,"doc_count":14},{"key_as_string":"2017-02-10T08:24:00.000Z","key":1486715040000,"doc_count":15},{"key_as_string":"2017-02-10T08:25:00.000Z","key":1486715100000,"doc_count":13},{"key_as_string":"2017-02-10T08:26:00.000Z","key":1486715160000,"doc_count":11},{"key_as_string":"2017-02-10T08:27:00.000Z","key":1486715220000,"doc_count":15},{"key_as_string":"2017-02-10T08:28:00.000Z","key":1486715280000,"doc_count":11},{"key_as_string":"2017-02-10T08:29:00.000Z","key":1486715340000,"doc_count":13},{"key_as_string":"2017-02-10T08:30:00.000Z","key":1486715400000,"doc_count":12},{"key_as_string":"2017-02-10T08:31:00.000Z","key":1486715460000,"doc_count":12},{"key_as_string":"2017-02-10T08:32:00.000Z","key":1486715520000,"doc_count":16},{"key_as_string":"2017-02-10T08:33:00.000Z","key":1486715580000,"doc_count":12},{"key_as_string":"2017-02-10T08:34:00.000Z","key":1486715640000,"doc_count":12},{"key_as_string":"2017-02-10T08:35:00.000Z","key":1486715700000,"doc_count":13},{"key_as_string":"2017-02-10T08:36:00.000Z","key":1486715760000,"doc_count":11},{"key_as_string":"2017-02-10T08:37:00.000Z","key":1486715820000,"doc_count":17},{"key_as_string":"2017-02-10T08:38:00.000Z","key":1486715880000,"doc_count":14},{"key_as_string":"2017-02-10T08:39:00.000Z","key":1486715940000,"doc_count":7},{"key_as_string":"2017-02-10T08:40:00.000Z","key":1486716000000,"doc_count":22},{"key_as_string":"2017-02-10T08:41:00.000Z","key":1486716060000,"doc_count":12},{"key_as_string":"2017-02-10T08:42:00.000Z","key":1486716120000,"doc_count":17},{"key_as_string":"2017-02-10T08:43:00.000Z","key":1486716180000,"doc_count":13},{"key_as_string":"2017-02-10T08:44:00.000Z","key":1486716240000,"doc_count":17},{"key_as_string":"2017-02-10T08:45:00.000Z","key":1486716300000,"doc_count":14},{"key_as_string":"2017-02-10T08:46:00.000Z","key":1486716360000,"doc_count":11},{"key_as_string":"2017-02-10T08:47:00.000Z","key":1486716420000,"doc_count":18},{"key_as_string":"2017-02-10T08:48:00.000Z","key":1486716480000,"doc_count":11},{"key_as_string":"2017-02-10T08:49:00.000Z","key":1486716540000,"doc_count":18},{"key_as_string":"2017-02-10T08:50:00.000Z","key":1486716600000,"doc_count":13},{"key_as_string":"2017-02-10T08:51:00.000Z","key":1486716660000,"doc_count":12},{"key_as_string":"2017-02-10T08:52:00.000Z","key":1486716720000,"doc_count":13},{"key_as_string":"2017-02-10T08:53:00.000Z","key":1486716780000,"doc_count":14},{"key_as_string":"2017-02-10T08:54:00.000Z","key":1486716840000,"doc_count":18},{"key_as_string":"2017-02-10T08:55:00.000Z","key":1486716900000,"doc_count":10},{"key_as_string":"2017-02-10T08:56:00.000Z","key":1486716960000,"doc_count":17},{"key_as_string":"2017-02-10T08:57:00.000Z","key":1486717020000,"doc_count":13},{"key_as_string":"2017-02-10T08:58:00.000Z","key":1486717080000,"doc_count":14},{"key_as_string":"2017-02-10T08:59:00.000Z","key":1486717140000,"doc_count":11},{"key_as_string":"2017-02-10T09:00:00.000Z","key":1486717200000,"doc_count":11},{"key_as_string":"2017-02-10T09:01:00.000Z","key":1486717260000,"doc_count":12},{"key_as_string":"2017-02-10T09:02:00.000Z","key":1486717320000,"doc_count":10},{"key_as_string":"2017-02-10T09:03:00.000Z","key":1486717380000,"doc_count":16},{"key_as_string":"2017-02-10T09:04:00.000Z","key":1486717440000,"doc_count":9},{"key_as_string":"2017-02-10T09:05:00.000Z","key":1486717500000,"doc_count":15},{"key_as_string":"2017-02-10T09:06:00.000Z","key":1486717560000,"doc_count":15},{"key_as_string":"2017-02-10T09:07:00.000Z","key":1486717620000,"doc_count":17},{"key_as_string":"2017-02-10T09:08:00.000Z","key":1486717680000,"doc_count":10},{"key_as_string":"2017-02-10T09:09:00.000Z","key":1486717740000,"doc_count":14},{"key_as_string":"2017-02-10T09:10:00.000Z","key":1486717800000,"doc_count":12},{"key_as_string":"2017-02-10T09:11:00.000Z","key":1486717860000,"doc_count":16},{"key_as_string":"2017-02-10T09:12:00.000Z","key":1486717920000,"doc_count":9},{"key_as_string":"2017-02-10T09:13:00.000Z","key":1486717980000,"doc_count":14},{"key_as_string":"2017-02-10T09:14:00.000Z","key":1486718040000,"doc_count":14},{"key_as_string":"2017-02-10T09:15:00.000Z","key":1486718100000,"doc_count":18},{"key_as_string":"2017-02-10T09:16:00.000Z","key":1486718160000,"doc_count":16},{"key_as_string":"2017-02-10T09:17:00.000Z","key":1486718220000,"doc_count":16},{"key_as_string":"2017-02-10T09:18:00.000Z","key":1486718280000,"doc_count":13},{"key_as_string":"2017-02-10T09:19:00.000Z","key":1486718340000,"doc_count":11},{"key_as_string":"2017-02-10T09:20:00.000Z","key":1486718400000,"doc_count":14},{"key_as_string":"2017-02-10T09:21:00.000Z","key":1486718460000,"doc_count":12},{"key_as_string":"2017-02-10T09:22:00.000Z","key":1486718520000,"doc_count":10},{"key_as_string":"2017-02-10T09:23:00.000Z","key":1486718580000,"doc_count":12},{"key_as_string":"2017-02-10T09:24:00.000Z","key":1486718640000,"doc_count":15},{"key_as_string":"2017-02-10T09:25:00.000Z","key":1486718700000,"doc_count":9},{"key_as_string":"2017-02-10T09:26:00.000Z","key":1486718760000,"doc_count":16},{"key_as_string":"2017-02-10T09:27:00.000Z","key":1486718820000,"doc_count":17},{"key_as_string":"2017-02-10T09:28:00.000Z","key":1486718880000,"doc_count":12},{"key_as_string":"2017-02-10T09:29:00.000Z","key":1486718940000,"doc_count":10},{"key_as_string":"2017-02-10T09:30:00.000Z","key":1486719000000,"doc_count":12},{"key_as_string":"2017-02-10T09:31:00.000Z","key":1486719060000,"doc_count":13},{"key_as_string":"2017-02-10T09:32:00.000Z","key":1486719120000,"doc_count":13},{"key_as_string":"2017-02-10T09:33:00.000Z","key":1486719180000,"doc_count":11},{"key_as_string":"2017-02-10T09:34:00.000Z","key":1486719240000,"doc_count":11},{"key_as_string":"2017-02-10T09:35:00.000Z","key":1486719300000,"doc_count":15},{"key_as_string":"2017-02-10T09:36:00.000Z","key":1486719360000,"doc_count":10},{"key_as_string":"2017-02-10T09:37:00.000Z","key":1486719420000,"doc_count":12},{"key_as_string":"2017-02-10T09:38:00.000Z","key":1486719480000,"doc_count":19},{"key_as_string":"2017-02-10T09:39:00.000Z","key":1486719540000,"doc_count":12},{"key_as_string":"2017-02-10T09:40:00.000Z","key":1486719600000,"doc_count":19},{"key_as_string":"2017-02-10T09:41:00.000Z","key":1486719660000,"doc_count":16},{"key_as_string":"2017-02-10T09:42:00.000Z","key":1486719720000,"doc_count":19},{"key_as_string":"2017-02-10T09:43:00.000Z","key":1486719780000,"doc_count":7},{"key_as_string":"2017-02-10T09:44:00.000Z","key":1486719840000,"doc_count":18},{"key_as_string":"2017-02-10T09:45:00.000Z","key":1486719900000,"doc_count":12},{"key_as_string":"2017-02-10T09:46:00.000Z","key":1486719960000,"doc_count":14},{"key_as_string":"2017-02-10T09:47:00.000Z","key":1486720020000,"doc_count":14},{"key_as_string":"2017-02-10T09:48:00.000Z","key":1486720080000,"doc_count":11},{"key_as_string":"2017-02-10T09:49:00.000Z","key":1486720140000,"doc_count":14},{"key_as_string":"2017-02-10T09:50:00.000Z","key":1486720200000,"doc_count":9},{"key_as_string":"2017-02-10T09:51:00.000Z","key":1486720260000,"doc_count":17},{"key_as_string":"2017-02-10T09:52:00.000Z","key":1486720320000,"doc_count":20},{"key_as_string":"2017-02-10T09:53:00.000Z","key":1486720380000,"doc_count":13},{"key_as_string":"2017-02-10T09:54:00.000Z","key":1486720440000,"doc_count":7},{"key_as_string":"2017-02-10T09:55:00.000Z","key":1486720500000,"doc_count":16},{"key_as_string":"2017-02-10T09:56:00.000Z","key":1486720560000,"doc_count":13},{"key_as_string":"2017-02-10T09:57:00.000Z","key":1486720620000,"doc_count":12},{"key_as_string":"2017-02-10T09:58:00.000Z","key":1486720680000,"doc_count":13},{"key_as_string":"2017-02-10T09:59:00.000Z","key":1486720740000,"doc_count":10},{"key_as_string":"2017-02-10T10:00:00.000Z","key":1486720800000,"doc_count":15},{"key_as_string":"2017-02-10T10:01:00.000Z","key":1486720860000,"doc_count":13},{"key_as_string":"2017-02-10T10:02:00.000Z","key":1486720920000,"doc_count":23},{"key_as_string":"2017-02-10T10:03:00.000Z","key":1486720980000,"doc_count":11},{"key_as_string":"2017-02-10T10:04:00.000Z","key":1486721040000,"doc_count":11},{"key_as_string":"2017-02-10T10:05:00.000Z","key":1486721100000,"doc_count":17},{"key_as_string":"2017-02-10T10:06:00.000Z","key":1486721160000,"doc_count":10},{"key_as_string":"2017-02-10T10:07:00.000Z","key":1486721220000,"doc_count":15},{"key_as_string":"2017-02-10T10:08:00.000Z","key":1486721280000,"doc_count":13},{"key_as_string":"2017-02-10T10:09:00.000Z","key":1486721340000,"doc_count":15},{"key_as_string":"2017-02-10T10:10:00.000Z","key":1486721400000,"doc_count":17},{"key_as_string":"2017-02-10T10:11:00.000Z","key":1486721460000,"doc_count":12},{"key_as_string":"2017-02-10T10:12:00.000Z","key":1486721520000,"doc_count":11},{"key_as_string":"2017-02-10T10:13:00.000Z","key":1486721580000,"doc_count":19},{"key_as_string":"2017-02-10T10:14:00.000Z","key":1486721640000,"doc_count":12},{"key_as_string":"2017-02-10T10:15:00.000Z","key":1486721700000,"doc_count":17},{"key_as_string":"2017-02-10T10:16:00.000Z","key":1486721760000,"doc_count":13},{"key_as_string":"2017-02-10T10:17:00.000Z","key":1486721820000,"doc_count":15},{"key_as_string":"2017-02-10T10:18:00.000Z","key":1486721880000,"doc_count":13},{"key_as_string":"2017-02-10T10:19:00.000Z","key":1486721940000,"doc_count":15},{"key_as_string":"2017-02-10T10:20:00.000Z","key":1486722000000,"doc_count":15},{"key_as_string":"2017-02-10T10:21:00.000Z","key":1486722060000,"doc_count":15},{"key_as_string":"2017-02-10T10:22:00.000Z","key":1486722120000,"doc_count":14},{"key_as_string":"2017-02-10T10:23:00.000Z","key":1486722180000,"doc_count":18},{"key_as_string":"2017-02-10T10:24:00.000Z","key":1486722240000,"doc_count":16},{"key_as_string":"2017-02-10T10:25:00.000Z","key":1486722300000,"doc_count":11},{"key_as_string":"2017-02-10T10:26:00.000Z","key":1486722360000,"doc_count":12},{"key_as_string":"2017-02-10T10:27:00.000Z","key":1486722420000,"doc_count":21},{"key_as_string":"2017-02-10T10:28:00.000Z","key":1486722480000,"doc_count":12},{"key_as_string":"2017-02-10T10:29:00.000Z","key":1486722540000,"doc_count":10},{"key_as_string":"2017-02-10T10:30:00.000Z","key":1486722600000,"doc_count":13},{"key_as_string":"2017-02-10T10:31:00.000Z","key":1486722660000,"doc_count":12},{"key_as_string":"2017-02-10T10:32:00.000Z","key":1486722720000,"doc_count":14},{"key_as_string":"2017-02-10T10:33:00.000Z","key":1486722780000,"doc_count":10},{"key_as_string":"2017-02-10T10:34:00.000Z","key":1486722840000,"doc_count":16},{"key_as_string":"2017-02-10T10:35:00.000Z","key":1486722900000,"doc_count":10},{"key_as_string":"2017-02-10T10:36:00.000Z","key":1486722960000,"doc_count":19},{"key_as_string":"2017-02-10T10:37:00.000Z","key":1486723020000,"doc_count":6},{"key_as_string":"2017-02-10T10:38:00.000Z","key":1486723080000,"doc_count":21},{"key_as_string":"2017-02-10T10:39:00.000Z","key":1486723140000,"doc_count":13},{"key_as_string":"2017-02-10T10:40:00.000Z","key":1486723200000,"doc_count":18},{"key_as_string":"2017-02-10T10:41:00.000Z","key":1486723260000,"doc_count":12},{"key_as_string":"2017-02-10T10:42:00.000Z","key":1486723320000,"doc_count":16},{"key_as_string":"2017-02-10T10:43:00.000Z","key":1486723380000,"doc_count":6},{"key_as_string":"2017-02-10T10:44:00.000Z","key":1486723440000,"doc_count":16},{"key_as_string":"2017-02-10T10:45:00.000Z","key":1486723500000,"doc_count":10},{"key_as_string":"2017-02-10T10:46:00.000Z","key":1486723560000,"doc_count":17},{"key_as_string":"2017-02-10T10:47:00.000Z","key":1486723620000,"doc_count":11},{"key_as_string":"2017-02-10T10:48:00.000Z","key":1486723680000,"doc_count":17},{"key_as_string":"2017-02-10T10:49:00.000Z","key":1486723740000,"doc_count":11},{"key_as_string":"2017-02-10T10:50:00.000Z","key":1486723800000,"doc_count":12},{"key_as_string":"2017-02-10T10:51:00.000Z","key":1486723860000,"doc_count":12},{"key_as_string":"2017-02-10T10:52:00.000Z","key":1486723920000,"doc_count":18},{"key_as_string":"2017-02-10T10:53:00.000Z","key":1486723980000,"doc_count":15},{"key_as_string":"2017-02-10T10:54:00.000Z","key":1486724040000,"doc_count":15},{"key_as_string":"2017-02-10T10:55:00.000Z","key":1486724100000,"doc_count":16},{"key_as_string":"2017-02-10T10:56:00.000Z","key":1486724160000,"doc_count":8},{"key_as_string":"2017-02-10T10:57:00.000Z","key":1486724220000,"doc_count":19},{"key_as_string":"2017-02-10T10:58:00.000Z","key":1486724280000,"doc_count":12},{"key_as_string":"2017-02-10T10:59:00.000Z","key":1486724340000,"doc_count":16},{"key_as_string":"2017-02-10T11:00:00.000Z","key":1486724400000,"doc_count":16},{"key_as_string":"2017-02-10T11:01:00.000Z","key":1486724460000,"doc_count":11},{"key_as_string":"2017-02-10T11:02:00.000Z","key":1486724520000,"doc_count":11},{"key_as_string":"2017-02-10T11:03:00.000Z","key":1486724580000,"doc_count":16},{"key_as_string":"2017-02-10T11:04:00.000Z","key":1486724640000,"doc_count":15},{"key_as_string":"2017-02-10T11:05:00.000Z","key":1486724700000,"doc_count":12},{"key_as_string":"2017-02-10T11:06:00.000Z","key":1486724760000,"doc_count":20},{"key_as_string":"2017-02-10T11:07:00.000Z","key":1486724820000,"doc_count":14},{"key_as_string":"2017-02-10T11:08:00.000Z","key":1486724880000,"doc_count":11},{"key_as_string":"2017-02-10T11:09:00.000Z","key":1486724940000,"doc_count":11},{"key_as_string":"2017-02-10T11:10:00.000Z","key":1486725000000,"doc_count":11},{"key_as_string":"2017-02-10T11:11:00.000Z","key":1486725060000,"doc_count":16},{"key_as_string":"2017-02-10T11:12:00.000Z","key":1486725120000,"doc_count":12},{"key_as_string":"2017-02-10T11:13:00.000Z","key":1486725180000,"doc_count":15},{"key_as_string":"2017-02-10T11:14:00.000Z","key":1486725240000,"doc_count":12},{"key_as_string":"2017-02-10T11:15:00.000Z","key":1486725300000,"doc_count":12},{"key_as_string":"2017-02-10T11:16:00.000Z","key":1486725360000,"doc_count":17},{"key_as_string":"2017-02-10T11:17:00.000Z","key":1486725420000,"doc_count":15},{"key_as_string":"2017-02-10T11:18:00.000Z","key":1486725480000,"doc_count":12},{"key_as_string":"2017-02-10T11:19:00.000Z","key":1486725540000,"doc_count":13},{"key_as_string":"2017-02-10T11:20:00.000Z","key":1486725600000,"doc_count":12},{"key_as_string":"2017-02-10T11:21:00.000Z","key":1486725660000,"doc_count":12},{"key_as_string":"2017-02-10T11:22:00.000Z","key":1486725720000,"doc_count":9},{"key_as_string":"2017-02-10T11:23:00.000Z","key":1486725780000,"doc_count":15},{"key_as_string":"2017-02-10T11:24:00.000Z","key":1486725840000,"doc_count":21},{"key_as_string":"2017-02-10T11:25:00.000Z","key":1486725900000,"doc_count":13},{"key_as_string":"2017-02-10T11:26:00.000Z","key":1486725960000,"doc_count":15},{"key_as_string":"2017-02-10T11:27:00.000Z","key":1486726020000,"doc_count":14},{"key_as_string":"2017-02-10T11:28:00.000Z","key":1486726080000,"doc_count":10},{"key_as_string":"2017-02-10T11:29:00.000Z","key":1486726140000,"doc_count":16},{"key_as_string":"2017-02-10T11:30:00.000Z","key":1486726200000,"doc_count":12},{"key_as_string":"2017-02-10T11:31:00.000Z","key":1486726260000,"doc_count":18},{"key_as_string":"2017-02-10T11:32:00.000Z","key":1486726320000,"doc_count":11},{"key_as_string":"2017-02-10T11:33:00.000Z","key":1486726380000,"doc_count":15},{"key_as_string":"2017-02-10T11:34:00.000Z","key":1486726440000,"doc_count":16},{"key_as_string":"2017-02-10T11:35:00.000Z","key":1486726500000,"doc_count":19},{"key_as_string":"2017-02-10T11:36:00.000Z","key":1486726560000,"doc_count":9},{"key_as_string":"2017-02-10T11:37:00.000Z","key":1486726620000,"doc_count":14},{"key_as_string":"2017-02-10T11:38:00.000Z","key":1486726680000,"doc_count":12},{"key_as_string":"2017-02-10T11:39:00.000Z","key":1486726740000,"doc_count":15},{"key_as_string":"2017-02-10T11:40:00.000Z","key":1486726800000,"doc_count":13},{"key_as_string":"2017-02-10T11:41:00.000Z","key":1486726860000,"doc_count":14},{"key_as_string":"2017-02-10T11:42:00.000Z","key":1486726920000,"doc_count":11},{"key_as_string":"2017-02-10T11:43:00.000Z","key":1486726980000,"doc_count":16},{"key_as_string":"2017-02-10T11:44:00.000Z","key":1486727040000,"doc_count":10},{"key_as_string":"2017-02-10T11:45:00.000Z","key":1486727100000,"doc_count":12},{"key_as_string":"2017-02-10T11:46:00.000Z","key":1486727160000,"doc_count":9},{"key_as_string":"2017-02-10T11:47:00.000Z","key":1486727220000,"doc_count":16},{"key_as_string":"2017-02-10T11:48:00.000Z","key":1486727280000,"doc_count":8},{"key_as_string":"2017-02-10T11:49:00.000Z","key":1486727340000,"doc_count":13},{"key_as_string":"2017-02-10T11:50:00.000Z","key":1486727400000,"doc_count":16},{"key_as_string":"2017-02-10T11:51:00.000Z","key":1486727460000,"doc_count":13},{"key_as_string":"2017-02-10T11:52:00.000Z","key":1486727520000,"doc_count":12},{"key_as_string":"2017-02-10T11:53:00.000Z","key":1486727580000,"doc_count":23},{"key_as_string":"2017-02-10T11:54:00.000Z","key":1486727640000,"doc_count":11},{"key_as_string":"2017-02-10T11:55:00.000Z","key":1486727700000,"doc_count":12},{"key_as_string":"2017-02-10T11:56:00.000Z","key":1486727760000,"doc_count":14},{"key_as_string":"2017-02-10T11:57:00.000Z","key":1486727820000,"doc_count":15},{"key_as_string":"2017-02-10T11:58:00.000Z","key":1486727880000,"doc_count":14},{"key_as_string":"2017-02-10T11:59:00.000Z","key":1486727940000,"doc_count":14},{"key_as_string":"2017-02-10T12:00:00.000Z","key":1486728000000,"doc_count":13},{"key_as_string":"2017-02-10T12:01:00.000Z","key":1486728060000,"doc_count":15},{"key_as_string":"2017-02-10T12:02:00.000Z","key":1486728120000,"doc_count":10},{"key_as_string":"2017-02-10T12:03:00.000Z","key":1486728180000,"doc_count":14},{"key_as_string":"2017-02-10T12:04:00.000Z","key":1486728240000,"doc_count":14},{"key_as_string":"2017-02-10T12:05:00.000Z","key":1486728300000,"doc_count":15},{"key_as_string":"2017-02-10T12:06:00.000Z","key":1486728360000,"doc_count":10},{"key_as_string":"2017-02-10T12:07:00.000Z","key":1486728420000,"doc_count":16},{"key_as_string":"2017-02-10T12:08:00.000Z","key":1486728480000,"doc_count":17},{"key_as_string":"2017-02-10T12:09:00.000Z","key":1486728540000,"doc_count":11},{"key_as_string":"2017-02-10T12:10:00.000Z","key":1486728600000,"doc_count":16},{"key_as_string":"2017-02-10T12:11:00.000Z","key":1486728660000,"doc_count":16},{"key_as_string":"2017-02-10T12:12:00.000Z","key":1486728720000,"doc_count":8},{"key_as_string":"2017-02-10T12:13:00.000Z","key":1486728780000,"doc_count":19},{"key_as_string":"2017-02-10T12:14:00.000Z","key":1486728840000,"doc_count":21},{"key_as_string":"2017-02-10T12:15:00.000Z","key":1486728900000,"doc_count":15},{"key_as_string":"2017-02-10T12:16:00.000Z","key":1486728960000,"doc_count":12},{"key_as_string":"2017-02-10T12:17:00.000Z","key":1486729020000,"doc_count":16},{"key_as_string":"2017-02-10T12:18:00.000Z","key":1486729080000,"doc_count":14},{"key_as_string":"2017-02-10T12:19:00.000Z","key":1486729140000,"doc_count":17},{"key_as_string":"2017-02-10T12:20:00.000Z","key":1486729200000,"doc_count":16},{"key_as_string":"2017-02-10T12:21:00.000Z","key":1486729260000,"doc_count":13},{"key_as_string":"2017-02-10T12:22:00.000Z","key":1486729320000,"doc_count":9},{"key_as_string":"2017-02-10T12:23:00.000Z","key":1486729380000,"doc_count":14},{"key_as_string":"2017-02-10T12:24:00.000Z","key":1486729440000,"doc_count":14},{"key_as_string":"2017-02-10T12:25:00.000Z","key":1486729500000,"doc_count":12},{"key_as_string":"2017-02-10T12:26:00.000Z","key":1486729560000,"doc_count":15},{"key_as_string":"2017-02-10T12:27:00.000Z","key":1486729620000,"doc_count":11},{"key_as_string":"2017-02-10T12:28:00.000Z","key":1486729680000,"doc_count":11},{"key_as_string":"2017-02-10T12:29:00.000Z","key":1486729740000,"doc_count":13},{"key_as_string":"2017-02-10T12:30:00.000Z","key":1486729800000,"doc_count":9},{"key_as_string":"2017-02-10T12:31:00.000Z","key":1486729860000,"doc_count":16},{"key_as_string":"2017-02-10T12:32:00.000Z","key":1486729920000,"doc_count":7},{"key_as_string":"2017-02-10T12:33:00.000Z","key":1486729980000,"doc_count":15},{"key_as_string":"2017-02-10T12:34:00.000Z","key":1486730040000,"doc_count":10},{"key_as_string":"2017-02-10T12:35:00.000Z","key":1486730100000,"doc_count":15},{"key_as_string":"2017-02-10T12:36:00.000Z","key":1486730160000,"doc_count":15},{"key_as_string":"2017-02-10T12:37:00.000Z","key":1486730220000,"doc_count":17},{"key_as_string":"2017-02-10T12:38:00.000Z","key":1486730280000,"doc_count":15},{"key_as_string":"2017-02-10T12:39:00.000Z","key":1486730340000,"doc_count":13},{"key_as_string":"2017-02-10T12:40:00.000Z","key":1486730400000,"doc_count":12},{"key_as_string":"2017-02-10T12:41:00.000Z","key":1486730460000,"doc_count":10},{"key_as_string":"2017-02-10T12:42:00.000Z","key":1486730520000,"doc_count":11},{"key_as_string":"2017-02-10T12:43:00.000Z","key":1486730580000,"doc_count":15},{"key_as_string":"2017-02-10T12:44:00.000Z","key":1486730640000,"doc_count":14},{"key_as_string":"2017-02-10T12:45:00.000Z","key":1486730700000,"doc_count":15},{"key_as_string":"2017-02-10T12:46:00.000Z","key":1486730760000,"doc_count":12},{"key_as_string":"2017-02-10T12:47:00.000Z","key":1486730820000,"doc_count":14},{"key_as_string":"2017-02-10T12:48:00.000Z","key":1486730880000,"doc_count":15},{"key_as_string":"2017-02-10T12:49:00.000Z","key":1486730940000,"doc_count":14},{"key_as_string":"2017-02-10T12:50:00.000Z","key":1486731000000,"doc_count":14},{"key_as_string":"2017-02-10T12:51:00.000Z","key":1486731060000,"doc_count":13},{"key_as_string":"2017-02-10T12:52:00.000Z","key":1486731120000,"doc_count":17},{"key_as_string":"2017-02-10T12:53:00.000Z","key":1486731180000,"doc_count":10},{"key_as_string":"2017-02-10T12:54:00.000Z","key":1486731240000,"doc_count":12},{"key_as_string":"2017-02-10T12:55:00.000Z","key":1486731300000,"doc_count":16},{"key_as_string":"2017-02-10T12:56:00.000Z","key":1486731360000,"doc_count":8},{"key_as_string":"2017-02-10T12:57:00.000Z","key":1486731420000,"doc_count":12},{"key_as_string":"2017-02-10T12:58:00.000Z","key":1486731480000,"doc_count":22},{"key_as_string":"2017-02-10T12:59:00.000Z","key":1486731540000,"doc_count":13},{"key_as_string":"2017-02-10T13:00:00.000Z","key":1486731600000,"doc_count":15},{"key_as_string":"2017-02-10T13:01:00.000Z","key":1486731660000,"doc_count":8},{"key_as_string":"2017-02-10T13:02:00.000Z","key":1486731720000,"doc_count":19},{"key_as_string":"2017-02-10T13:03:00.000Z","key":1486731780000,"doc_count":9},{"key_as_string":"2017-02-10T13:04:00.000Z","key":1486731840000,"doc_count":12},{"key_as_string":"2017-02-10T13:05:00.000Z","key":1486731900000,"doc_count":15},{"key_as_string":"2017-02-10T13:06:00.000Z","key":1486731960000,"doc_count":15},{"key_as_string":"2017-02-10T13:07:00.000Z","key":1486732020000,"doc_count":16},{"key_as_string":"2017-02-10T13:08:00.000Z","key":1486732080000,"doc_count":14},{"key_as_string":"2017-02-10T13:09:00.000Z","key":1486732140000,"doc_count":15},{"key_as_string":"2017-02-10T13:10:00.000Z","key":1486732200000,"doc_count":9},{"key_as_string":"2017-02-10T13:11:00.000Z","key":1486732260000,"doc_count":14},{"key_as_string":"2017-02-10T13:12:00.000Z","key":1486732320000,"doc_count":15},{"key_as_string":"2017-02-10T13:13:00.000Z","key":1486732380000,"doc_count":12},{"key_as_string":"2017-02-10T13:14:00.000Z","key":1486732440000,"doc_count":13},{"key_as_string":"2017-02-10T13:15:00.000Z","key":1486732500000,"doc_count":22},{"key_as_string":"2017-02-10T13:16:00.000Z","key":1486732560000,"doc_count":9},{"key_as_string":"2017-02-10T13:17:00.000Z","key":1486732620000,"doc_count":13},{"key_as_string":"2017-02-10T13:18:00.000Z","key":1486732680000,"doc_count":14},{"key_as_string":"2017-02-10T13:19:00.000Z","key":1486732740000,"doc_count":9},{"key_as_string":"2017-02-10T13:20:00.000Z","key":1486732800000,"doc_count":11},{"key_as_string":"2017-02-10T13:21:00.000Z","key":1486732860000,"doc_count":12},{"key_as_string":"2017-02-10T13:22:00.000Z","key":1486732920000,"doc_count":16},{"key_as_string":"2017-02-10T13:23:00.000Z","key":1486732980000,"doc_count":15},{"key_as_string":"2017-02-10T13:24:00.000Z","key":1486733040000,"doc_count":9},{"key_as_string":"2017-02-10T13:25:00.000Z","key":1486733100000,"doc_count":12},{"key_as_string":"2017-02-10T13:26:00.000Z","key":1486733160000,"doc_count":14},{"key_as_string":"2017-02-10T13:27:00.000Z","key":1486733220000,"doc_count":17},{"key_as_string":"2017-02-10T13:28:00.000Z","key":1486733280000,"doc_count":5},{"key_as_string":"2017-02-10T13:29:00.000Z","key":1486733340000,"doc_count":16},{"key_as_string":"2017-02-10T13:30:00.000Z","key":1486733400000,"doc_count":9},{"key_as_string":"2017-02-10T13:31:00.000Z","key":1486733460000,"doc_count":17},{"key_as_string":"2017-02-10T13:32:00.000Z","key":1486733520000,"doc_count":12},{"key_as_string":"2017-02-10T13:33:00.000Z","key":1486733580000,"doc_count":10},{"key_as_string":"2017-02-10T13:34:00.000Z","key":1486733640000,"doc_count":18},{"key_as_string":"2017-02-10T13:35:00.000Z","key":1486733700000,"doc_count":5},{"key_as_string":"2017-02-10T13:36:00.000Z","key":1486733760000,"doc_count":13},{"key_as_string":"2017-02-10T13:37:00.000Z","key":1486733820000,"doc_count":18},{"key_as_string":"2017-02-10T13:38:00.000Z","key":1486733880000,"doc_count":17},{"key_as_string":"2017-02-10T13:39:00.000Z","key":1486733940000,"doc_count":15},{"key_as_string":"2017-02-10T13:40:00.000Z","key":1486734000000,"doc_count":16},{"key_as_string":"2017-02-10T13:41:00.000Z","key":1486734060000,"doc_count":8},{"key_as_string":"2017-02-10T13:42:00.000Z","key":1486734120000,"doc_count":17},{"key_as_string":"2017-02-10T13:43:00.000Z","key":1486734180000,"doc_count":14},{"key_as_string":"2017-02-10T13:44:00.000Z","key":1486734240000,"doc_count":14},{"key_as_string":"2017-02-10T13:45:00.000Z","key":1486734300000,"doc_count":17},{"key_as_string":"2017-02-10T13:46:00.000Z","key":1486734360000,"doc_count":14},{"key_as_string":"2017-02-10T13:47:00.000Z","key":1486734420000,"doc_count":16},{"key_as_string":"2017-02-10T13:48:00.000Z","key":1486734480000,"doc_count":16},{"key_as_string":"2017-02-10T13:49:00.000Z","key":1486734540000,"doc_count":21},{"key_as_string":"2017-02-10T13:50:00.000Z","key":1486734600000,"doc_count":12},{"key_as_string":"2017-02-10T13:51:00.000Z","key":1486734660000,"doc_count":12},{"key_as_string":"2017-02-10T13:52:00.000Z","key":1486734720000,"doc_count":8},{"key_as_string":"2017-02-10T13:53:00.000Z","key":1486734780000,"doc_count":15},{"key_as_string":"2017-02-10T13:54:00.000Z","key":1486734840000,"doc_count":13},{"key_as_string":"2017-02-10T13:55:00.000Z","key":1486734900000,"doc_count":14},{"key_as_string":"2017-02-10T13:56:00.000Z","key":1486734960000,"doc_count":13},{"key_as_string":"2017-02-10T13:57:00.000Z","key":1486735020000,"doc_count":12},{"key_as_string":"2017-02-10T13:58:00.000Z","key":1486735080000,"doc_count":14},{"key_as_string":"2017-02-10T13:59:00.000Z","key":1486735140000,"doc_count":13},{"key_as_string":"2017-02-10T14:00:00.000Z","key":1486735200000,"doc_count":16},{"key_as_string":"2017-02-10T14:01:00.000Z","key":1486735260000,"doc_count":9},{"key_as_string":"2017-02-10T14:02:00.000Z","key":1486735320000,"doc_count":20},{"key_as_string":"2017-02-10T14:03:00.000Z","key":1486735380000,"doc_count":15},{"key_as_string":"2017-02-10T14:04:00.000Z","key":1486735440000,"doc_count":13},{"key_as_string":"2017-02-10T14:05:00.000Z","key":1486735500000,"doc_count":10},{"key_as_string":"2017-02-10T14:06:00.000Z","key":1486735560000,"doc_count":11},{"key_as_string":"2017-02-10T14:07:00.000Z","key":1486735620000,"doc_count":9},{"key_as_string":"2017-02-10T14:08:00.000Z","key":1486735680000,"doc_count":15},{"key_as_string":"2017-02-10T14:09:00.000Z","key":1486735740000,"doc_count":17},{"key_as_string":"2017-02-10T14:10:00.000Z","key":1486735800000,"doc_count":13},{"key_as_string":"2017-02-10T14:11:00.000Z","key":1486735860000,"doc_count":15},{"key_as_string":"2017-02-10T14:12:00.000Z","key":1486735920000,"doc_count":10},{"key_as_string":"2017-02-10T14:13:00.000Z","key":1486735980000,"doc_count":12},{"key_as_string":"2017-02-10T14:14:00.000Z","key":1486736040000,"doc_count":15},{"key_as_string":"2017-02-10T14:15:00.000Z","key":1486736100000,"doc_count":13},{"key_as_string":"2017-02-10T14:16:00.000Z","key":1486736160000,"doc_count":13},{"key_as_string":"2017-02-10T14:17:00.000Z","key":1486736220000,"doc_count":15},{"key_as_string":"2017-02-10T14:18:00.000Z","key":1486736280000,"doc_count":14},{"key_as_string":"2017-02-10T14:19:00.000Z","key":1486736340000,"doc_count":9},{"key_as_string":"2017-02-10T14:20:00.000Z","key":1486736400000,"doc_count":15},{"key_as_string":"2017-02-10T14:21:00.000Z","key":1486736460000,"doc_count":12},{"key_as_string":"2017-02-10T14:22:00.000Z","key":1486736520000,"doc_count":12},{"key_as_string":"2017-02-10T14:23:00.000Z","key":1486736580000,"doc_count":16},{"key_as_string":"2017-02-10T14:24:00.000Z","key":1486736640000,"doc_count":4},{"key_as_string":"2017-02-10T14:25:00.000Z","key":1486736700000,"doc_count":12},{"key_as_string":"2017-02-10T14:26:00.000Z","key":1486736760000,"doc_count":15},{"key_as_string":"2017-02-10T14:27:00.000Z","key":1486736820000,"doc_count":17},{"key_as_string":"2017-02-10T14:28:00.000Z","key":1486736880000,"doc_count":15},{"key_as_string":"2017-02-10T14:29:00.000Z","key":1486736940000,"doc_count":13},{"key_as_string":"2017-02-10T14:30:00.000Z","key":1486737000000,"doc_count":9},{"key_as_string":"2017-02-10T14:31:00.000Z","key":1486737060000,"doc_count":17},{"key_as_string":"2017-02-10T14:32:00.000Z","key":1486737120000,"doc_count":14},{"key_as_string":"2017-02-10T14:33:00.000Z","key":1486737180000,"doc_count":11},{"key_as_string":"2017-02-10T14:34:00.000Z","key":1486737240000,"doc_count":10},{"key_as_string":"2017-02-10T14:35:00.000Z","key":1486737300000,"doc_count":10},{"key_as_string":"2017-02-10T14:36:00.000Z","key":1486737360000,"doc_count":12},{"key_as_string":"2017-02-10T14:37:00.000Z","key":1486737420000,"doc_count":14},{"key_as_string":"2017-02-10T14:38:00.000Z","key":1486737480000,"doc_count":15},{"key_as_string":"2017-02-10T14:39:00.000Z","key":1486737540000,"doc_count":8},{"key_as_string":"2017-02-10T14:40:00.000Z","key":1486737600000,"doc_count":15},{"key_as_string":"2017-02-10T14:41:00.000Z","key":1486737660000,"doc_count":10},{"key_as_string":"2017-02-10T14:42:00.000Z","key":1486737720000,"doc_count":14},{"key_as_string":"2017-02-10T14:43:00.000Z","key":1486737780000,"doc_count":11},{"key_as_string":"2017-02-10T14:44:00.000Z","key":1486737840000,"doc_count":12},{"key_as_string":"2017-02-10T14:45:00.000Z","key":1486737900000,"doc_count":18},{"key_as_string":"2017-02-10T14:46:00.000Z","key":1486737960000,"doc_count":12},{"key_as_string":"2017-02-10T14:47:00.000Z","key":1486738020000,"doc_count":14},{"key_as_string":"2017-02-10T14:48:00.000Z","key":1486738080000,"doc_count":13},{"key_as_string":"2017-02-10T14:49:00.000Z","key":1486738140000,"doc_count":9},{"key_as_string":"2017-02-10T14:50:00.000Z","key":1486738200000,"doc_count":20},{"key_as_string":"2017-02-10T14:51:00.000Z","key":1486738260000,"doc_count":11},{"key_as_string":"2017-02-10T14:52:00.000Z","key":1486738320000,"doc_count":9},{"key_as_string":"2017-02-10T14:53:00.000Z","key":1486738380000,"doc_count":14},{"key_as_string":"2017-02-10T14:54:00.000Z","key":1486738440000,"doc_count":15},{"key_as_string":"2017-02-10T14:55:00.000Z","key":1486738500000,"doc_count":13},{"key_as_string":"2017-02-10T14:56:00.000Z","key":1486738560000,"doc_count":12},{"key_as_string":"2017-02-10T14:57:00.000Z","key":1486738620000,"doc_count":15},{"key_as_string":"2017-02-10T14:58:00.000Z","key":1486738680000,"doc_count":9},{"key_as_string":"2017-02-10T14:59:00.000Z","key":1486738740000,"doc_count":12},{"key_as_string":"2017-02-10T15:00:00.000Z","key":1486738800000,"doc_count":15},{"key_as_string":"2017-02-10T15:01:00.000Z","key":1486738860000,"doc_count":11},{"key_as_string":"2017-02-10T15:02:00.000Z","key":1486738920000,"doc_count":14},{"key_as_string":"2017-02-10T15:03:00.000Z","key":1486738980000,"doc_count":11},{"key_as_string":"2017-02-10T15:04:00.000Z","key":1486739040000,"doc_count":12},{"key_as_string":"2017-02-10T15:05:00.000Z","key":1486739100000,"doc_count":11},{"key_as_string":"2017-02-10T15:06:00.000Z","key":1486739160000,"doc_count":17},{"key_as_string":"2017-02-10T15:07:00.000Z","key":1486739220000,"doc_count":12},{"key_as_string":"2017-02-10T15:08:00.000Z","key":1486739280000,"doc_count":10},{"key_as_string":"2017-02-10T15:09:00.000Z","key":1486739340000,"doc_count":19},{"key_as_string":"2017-02-10T15:10:00.000Z","key":1486739400000,"doc_count":10},{"key_as_string":"2017-02-10T15:11:00.000Z","key":1486739460000,"doc_count":10},{"key_as_string":"2017-02-10T15:12:00.000Z","key":1486739520000,"doc_count":18},{"key_as_string":"2017-02-10T15:13:00.000Z","key":1486739580000,"doc_count":14},{"key_as_string":"2017-02-10T15:14:00.000Z","key":1486739640000,"doc_count":11},{"key_as_string":"2017-02-10T15:15:00.000Z","key":1486739700000,"doc_count":16},{"key_as_string":"2017-02-10T15:16:00.000Z","key":1486739760000,"doc_count":13},{"key_as_string":"2017-02-10T15:17:00.000Z","key":1486739820000,"doc_count":20},{"key_as_string":"2017-02-10T15:18:00.000Z","key":1486739880000,"doc_count":10},{"key_as_string":"2017-02-10T15:19:00.000Z","key":1486739940000,"doc_count":16},{"key_as_string":"2017-02-10T15:20:00.000Z","key":1486740000000,"doc_count":15},{"key_as_string":"2017-02-10T15:21:00.000Z","key":1486740060000,"doc_count":16},{"key_as_string":"2017-02-10T15:22:00.000Z","key":1486740120000,"doc_count":20},{"key_as_string":"2017-02-10T15:23:00.000Z","key":1486740180000,"doc_count":12},{"key_as_string":"2017-02-10T15:24:00.000Z","key":1486740240000,"doc_count":15},{"key_as_string":"2017-02-10T15:25:00.000Z","key":1486740300000,"doc_count":12},{"key_as_string":"2017-02-10T15:26:00.000Z","key":1486740360000,"doc_count":16},{"key_as_string":"2017-02-10T15:27:00.000Z","key":1486740420000,"doc_count":14},{"key_as_string":"2017-02-10T15:28:00.000Z","key":1486740480000,"doc_count":12},{"key_as_string":"2017-02-10T15:29:00.000Z","key":1486740540000,"doc_count":10},{"key_as_string":"2017-02-10T15:30:00.000Z","key":1486740600000,"doc_count":16},{"key_as_string":"2017-02-10T15:31:00.000Z","key":1486740660000,"doc_count":13},{"key_as_string":"2017-02-10T15:32:00.000Z","key":1486740720000,"doc_count":14},{"key_as_string":"2017-02-10T15:33:00.000Z","key":1486740780000,"doc_count":11},{"key_as_string":"2017-02-10T15:34:00.000Z","key":1486740840000,"doc_count":12},{"key_as_string":"2017-02-10T15:35:00.000Z","key":1486740900000,"doc_count":12},{"key_as_string":"2017-02-10T15:36:00.000Z","key":1486740960000,"doc_count":11},{"key_as_string":"2017-02-10T15:37:00.000Z","key":1486741020000,"doc_count":13},{"key_as_string":"2017-02-10T15:38:00.000Z","key":1486741080000,"doc_count":11},{"key_as_string":"2017-02-10T15:39:00.000Z","key":1486741140000,"doc_count":11},{"key_as_string":"2017-02-10T15:40:00.000Z","key":1486741200000,"doc_count":12},{"key_as_string":"2017-02-10T15:41:00.000Z","key":1486741260000,"doc_count":16},{"key_as_string":"2017-02-10T15:42:00.000Z","key":1486741320000,"doc_count":15},{"key_as_string":"2017-02-10T15:43:00.000Z","key":1486741380000,"doc_count":15},{"key_as_string":"2017-02-10T15:44:00.000Z","key":1486741440000,"doc_count":15},{"key_as_string":"2017-02-10T15:45:00.000Z","key":1486741500000,"doc_count":15},{"key_as_string":"2017-02-10T15:46:00.000Z","key":1486741560000,"doc_count":11},{"key_as_string":"2017-02-10T15:47:00.000Z","key":1486741620000,"doc_count":14},{"key_as_string":"2017-02-10T15:48:00.000Z","key":1486741680000,"doc_count":15},{"key_as_string":"2017-02-10T15:49:00.000Z","key":1486741740000,"doc_count":12},{"key_as_string":"2017-02-10T15:50:00.000Z","key":1486741800000,"doc_count":12},{"key_as_string":"2017-02-10T15:51:00.000Z","key":1486741860000,"doc_count":12},{"key_as_string":"2017-02-10T15:52:00.000Z","key":1486741920000,"doc_count":19},{"key_as_string":"2017-02-10T15:53:00.000Z","key":1486741980000,"doc_count":14},{"key_as_string":"2017-02-10T15:54:00.000Z","key":1486742040000,"doc_count":18},{"key_as_string":"2017-02-10T15:55:00.000Z","key":1486742100000,"doc_count":11},{"key_as_string":"2017-02-10T15:56:00.000Z","key":1486742160000,"doc_count":16},{"key_as_string":"2017-02-10T15:57:00.000Z","key":1486742220000,"doc_count":11},{"key_as_string":"2017-02-10T15:58:00.000Z","key":1486742280000,"doc_count":10},{"key_as_string":"2017-02-10T15:59:00.000Z","key":1486742340000,"doc_count":12},{"key_as_string":"2017-02-10T16:00:00.000Z","key":1486742400000,"doc_count":16},{"key_as_string":"2017-02-10T16:01:00.000Z","key":1486742460000,"doc_count":12},{"key_as_string":"2017-02-10T16:02:00.000Z","key":1486742520000,"doc_count":16},{"key_as_string":"2017-02-10T16:03:00.000Z","key":1486742580000,"doc_count":11},{"key_as_string":"2017-02-10T16:04:00.000Z","key":1486742640000,"doc_count":13},{"key_as_string":"2017-02-10T16:05:00.000Z","key":1486742700000,"doc_count":15},{"key_as_string":"2017-02-10T16:06:00.000Z","key":1486742760000,"doc_count":13},{"key_as_string":"2017-02-10T16:07:00.000Z","key":1486742820000,"doc_count":14},{"key_as_string":"2017-02-10T16:08:00.000Z","key":1486742880000,"doc_count":16},{"key_as_string":"2017-02-10T16:09:00.000Z","key":1486742940000,"doc_count":8},{"key_as_string":"2017-02-10T16:10:00.000Z","key":1486743000000,"doc_count":13},{"key_as_string":"2017-02-10T16:11:00.000Z","key":1486743060000,"doc_count":13},{"key_as_string":"2017-02-10T16:12:00.000Z","key":1486743120000,"doc_count":15},{"key_as_string":"2017-02-10T16:13:00.000Z","key":1486743180000,"doc_count":20},{"key_as_string":"2017-02-10T16:14:00.000Z","key":1486743240000,"doc_count":12},{"key_as_string":"2017-02-10T16:15:00.000Z","key":1486743300000,"doc_count":10},{"key_as_string":"2017-02-10T16:16:00.000Z","key":1486743360000,"doc_count":12},{"key_as_string":"2017-02-10T16:17:00.000Z","key":1486743420000,"doc_count":12},{"key_as_string":"2017-02-10T16:18:00.000Z","key":1486743480000,"doc_count":15},{"key_as_string":"2017-02-10T16:19:00.000Z","key":1486743540000,"doc_count":11},{"key_as_string":"2017-02-10T16:20:00.000Z","key":1486743600000,"doc_count":10},{"key_as_string":"2017-02-10T16:21:00.000Z","key":1486743660000,"doc_count":13},{"key_as_string":"2017-02-10T16:22:00.000Z","key":1486743720000,"doc_count":12},{"key_as_string":"2017-02-10T16:23:00.000Z","key":1486743780000,"doc_count":15},{"key_as_string":"2017-02-10T16:24:00.000Z","key":1486743840000,"doc_count":17},{"key_as_string":"2017-02-10T16:25:00.000Z","key":1486743900000,"doc_count":12},{"key_as_string":"2017-02-10T16:26:00.000Z","key":1486743960000,"doc_count":13},{"key_as_string":"2017-02-10T16:27:00.000Z","key":1486744020000,"doc_count":11},{"key_as_string":"2017-02-10T16:28:00.000Z","key":1486744080000,"doc_count":8},{"key_as_string":"2017-02-10T16:29:00.000Z","key":1486744140000,"doc_count":14},{"key_as_string":"2017-02-10T16:30:00.000Z","key":1486744200000,"doc_count":12},{"key_as_string":"2017-02-10T16:31:00.000Z","key":1486744260000,"doc_count":12},{"key_as_string":"2017-02-10T16:32:00.000Z","key":1486744320000,"doc_count":12},{"key_as_string":"2017-02-10T16:33:00.000Z","key":1486744380000,"doc_count":8},{"key_as_string":"2017-02-10T16:34:00.000Z","key":1486744440000,"doc_count":18},{"key_as_string":"2017-02-10T16:35:00.000Z","key":1486744500000,"doc_count":14},{"key_as_string":"2017-02-10T16:36:00.000Z","key":1486744560000,"doc_count":12},{"key_as_string":"2017-02-10T16:37:00.000Z","key":1486744620000,"doc_count":10},{"key_as_string":"2017-02-10T16:38:00.000Z","key":1486744680000,"doc_count":19},{"key_as_string":"2017-02-10T16:39:00.000Z","key":1486744740000,"doc_count":8},{"key_as_string":"2017-02-10T16:40:00.000Z","key":1486744800000,"doc_count":12},{"key_as_string":"2017-02-10T16:41:00.000Z","key":1486744860000,"doc_count":16},{"key_as_string":"2017-02-10T16:42:00.000Z","key":1486744920000,"doc_count":11},{"key_as_string":"2017-02-10T16:43:00.000Z","key":1486744980000,"doc_count":15},{"key_as_string":"2017-02-10T16:44:00.000Z","key":1486745040000,"doc_count":9},{"key_as_string":"2017-02-10T16:45:00.000Z","key":1486745100000,"doc_count":15},{"key_as_string":"2017-02-10T16:46:00.000Z","key":1486745160000,"doc_count":11},{"key_as_string":"2017-02-10T16:47:00.000Z","key":1486745220000,"doc_count":16},{"key_as_string":"2017-02-10T16:48:00.000Z","key":1486745280000,"doc_count":17},{"key_as_string":"2017-02-10T16:49:00.000Z","key":1486745340000,"doc_count":10},{"key_as_string":"2017-02-10T16:50:00.000Z","key":1486745400000,"doc_count":11},{"key_as_string":"2017-02-10T16:51:00.000Z","key":1486745460000,"doc_count":13},{"key_as_string":"2017-02-10T16:52:00.000Z","key":1486745520000,"doc_count":7},{"key_as_string":"2017-02-10T16:53:00.000Z","key":1486745580000,"doc_count":13},{"key_as_string":"2017-02-10T16:54:00.000Z","key":1486745640000,"doc_count":12},{"key_as_string":"2017-02-10T16:55:00.000Z","key":1486745700000,"doc_count":18},{"key_as_string":"2017-02-10T16:56:00.000Z","key":1486745760000,"doc_count":6},{"key_as_string":"2017-02-10T16:57:00.000Z","key":1486745820000,"doc_count":11},{"key_as_string":"2017-02-10T16:58:00.000Z","key":1486745880000,"doc_count":10},{"key_as_string":"2017-02-10T16:59:00.000Z","key":1486745940000,"doc_count":12},{"key_as_string":"2017-02-10T17:00:00.000Z","key":1486746000000,"doc_count":13},{"key_as_string":"2017-02-10T17:01:00.000Z","key":1486746060000,"doc_count":9},{"key_as_string":"2017-02-10T17:02:00.000Z","key":1486746120000,"doc_count":14},{"key_as_string":"2017-02-10T17:03:00.000Z","key":1486746180000,"doc_count":13},{"key_as_string":"2017-02-10T17:04:00.000Z","key":1486746240000,"doc_count":12},{"key_as_string":"2017-02-10T17:05:00.000Z","key":1486746300000,"doc_count":9},{"key_as_string":"2017-02-10T17:06:00.000Z","key":1486746360000,"doc_count":14},{"key_as_string":"2017-02-10T17:07:00.000Z","key":1486746420000,"doc_count":15},{"key_as_string":"2017-02-10T17:08:00.000Z","key":1486746480000,"doc_count":11},{"key_as_string":"2017-02-10T17:09:00.000Z","key":1486746540000,"doc_count":8},{"key_as_string":"2017-02-10T17:10:00.000Z","key":1486746600000,"doc_count":9},{"key_as_string":"2017-02-10T17:11:00.000Z","key":1486746660000,"doc_count":12},{"key_as_string":"2017-02-10T17:12:00.000Z","key":1486746720000,"doc_count":15},{"key_as_string":"2017-02-10T17:13:00.000Z","key":1486746780000,"doc_count":13},{"key_as_string":"2017-02-10T17:14:00.000Z","key":1486746840000,"doc_count":14},{"key_as_string":"2017-02-10T17:15:00.000Z","key":1486746900000,"doc_count":10},{"key_as_string":"2017-02-10T17:16:00.000Z","key":1486746960000,"doc_count":12},{"key_as_string":"2017-02-10T17:17:00.000Z","key":1486747020000,"doc_count":10},{"key_as_string":"2017-02-10T17:18:00.000Z","key":1486747080000,"doc_count":14},{"key_as_string":"2017-02-10T17:19:00.000Z","key":1486747140000,"doc_count":7},{"key_as_string":"2017-02-10T17:20:00.000Z","key":1486747200000,"doc_count":9},{"key_as_string":"2017-02-10T17:21:00.000Z","key":1486747260000,"doc_count":10},{"key_as_string":"2017-02-10T17:22:00.000Z","key":1486747320000,"doc_count":13},{"key_as_string":"2017-02-10T17:23:00.000Z","key":1486747380000,"doc_count":16},{"key_as_string":"2017-02-10T17:24:00.000Z","key":1486747440000,"doc_count":11},{"key_as_string":"2017-02-10T17:25:00.000Z","key":1486747500000,"doc_count":14},{"key_as_string":"2017-02-10T17:26:00.000Z","key":1486747560000,"doc_count":12},{"key_as_string":"2017-02-10T17:27:00.000Z","key":1486747620000,"doc_count":12},{"key_as_string":"2017-02-10T17:28:00.000Z","key":1486747680000,"doc_count":9},{"key_as_string":"2017-02-10T17:29:00.000Z","key":1486747740000,"doc_count":16},{"key_as_string":"2017-02-10T17:30:00.000Z","key":1486747800000,"doc_count":14},{"key_as_string":"2017-02-10T17:31:00.000Z","key":1486747860000,"doc_count":10},{"key_as_string":"2017-02-10T17:32:00.000Z","key":1486747920000,"doc_count":8},{"key_as_string":"2017-02-10T17:33:00.000Z","key":1486747980000,"doc_count":9},{"key_as_string":"2017-02-10T17:34:00.000Z","key":1486748040000,"doc_count":15},{"key_as_string":"2017-02-10T17:35:00.000Z","key":1486748100000,"doc_count":9},{"key_as_string":"2017-02-10T17:36:00.000Z","key":1486748160000,"doc_count":13},{"key_as_string":"2017-02-10T17:37:00.000Z","key":1486748220000,"doc_count":9},{"key_as_string":"2017-02-10T17:38:00.000Z","key":1486748280000,"doc_count":7},{"key_as_string":"2017-02-10T17:39:00.000Z","key":1486748340000,"doc_count":18},{"key_as_string":"2017-02-10T17:40:00.000Z","key":1486748400000,"doc_count":14},{"key_as_string":"2017-02-10T17:41:00.000Z","key":1486748460000,"doc_count":9},{"key_as_string":"2017-02-10T17:42:00.000Z","key":1486748520000,"doc_count":12},{"key_as_string":"2017-02-10T17:43:00.000Z","key":1486748580000,"doc_count":9},{"key_as_string":"2017-02-10T17:44:00.000Z","key":1486748640000,"doc_count":14},{"key_as_string":"2017-02-10T17:45:00.000Z","key":1486748700000,"doc_count":11},{"key_as_string":"2017-02-10T17:46:00.000Z","key":1486748760000,"doc_count":11},{"key_as_string":"2017-02-10T17:47:00.000Z","key":1486748820000,"doc_count":12},{"key_as_string":"2017-02-10T17:48:00.000Z","key":1486748880000,"doc_count":16},{"key_as_string":"2017-02-10T17:49:00.000Z","key":1486748940000,"doc_count":10},{"key_as_string":"2017-02-10T17:50:00.000Z","key":1486749000000,"doc_count":14},{"key_as_string":"2017-02-10T17:51:00.000Z","key":1486749060000,"doc_count":8},{"key_as_string":"2017-02-10T17:52:00.000Z","key":1486749120000,"doc_count":16},{"key_as_string":"2017-02-10T17:53:00.000Z","key":1486749180000,"doc_count":9},{"key_as_string":"2017-02-10T17:54:00.000Z","key":1486749240000,"doc_count":11},{"key_as_string":"2017-02-10T17:55:00.000Z","key":1486749300000,"doc_count":9},{"key_as_string":"2017-02-10T17:56:00.000Z","key":1486749360000,"doc_count":12},{"key_as_string":"2017-02-10T17:57:00.000Z","key":1486749420000,"doc_count":13},{"key_as_string":"2017-02-10T17:58:00.000Z","key":1486749480000,"doc_count":12},{"key_as_string":"2017-02-10T17:59:00.000Z","key":1486749540000,"doc_count":15},{"key_as_string":"2017-02-10T18:00:00.000Z","key":1486749600000,"doc_count":10},{"key_as_string":"2017-02-10T18:01:00.000Z","key":1486749660000,"doc_count":10},{"key_as_string":"2017-02-10T18:02:00.000Z","key":1486749720000,"doc_count":10},{"key_as_string":"2017-02-10T18:03:00.000Z","key":1486749780000,"doc_count":9},{"key_as_string":"2017-02-10T18:04:00.000Z","key":1486749840000,"doc_count":12},{"key_as_string":"2017-02-10T18:05:00.000Z","key":1486749900000,"doc_count":14},{"key_as_string":"2017-02-10T18:06:00.000Z","key":1486749960000,"doc_count":16},{"key_as_string":"2017-02-10T18:07:00.000Z","key":1486750020000,"doc_count":12},{"key_as_string":"2017-02-10T18:08:00.000Z","key":1486750080000,"doc_count":10},{"key_as_string":"2017-02-10T18:09:00.000Z","key":1486750140000,"doc_count":11},{"key_as_string":"2017-02-10T18:10:00.000Z","key":1486750200000,"doc_count":12},{"key_as_string":"2017-02-10T18:11:00.000Z","key":1486750260000,"doc_count":10},{"key_as_string":"2017-02-10T18:12:00.000Z","key":1486750320000,"doc_count":13},{"key_as_string":"2017-02-10T18:13:00.000Z","key":1486750380000,"doc_count":12},{"key_as_string":"2017-02-10T18:14:00.000Z","key":1486750440000,"doc_count":14},{"key_as_string":"2017-02-10T18:15:00.000Z","key":1486750500000,"doc_count":11},{"key_as_string":"2017-02-10T18:16:00.000Z","key":1486750560000,"doc_count":12},{"key_as_string":"2017-02-10T18:17:00.000Z","key":1486750620000,"doc_count":10},{"key_as_string":"2017-02-10T18:18:00.000Z","key":1486750680000,"doc_count":9},{"key_as_string":"2017-02-10T18:19:00.000Z","key":1486750740000,"doc_count":14},{"key_as_string":"2017-02-10T18:20:00.000Z","key":1486750800000,"doc_count":6},{"key_as_string":"2017-02-10T18:21:00.000Z","key":1486750860000,"doc_count":13},{"key_as_string":"2017-02-10T18:22:00.000Z","key":1486750920000,"doc_count":14},{"key_as_string":"2017-02-10T18:23:00.000Z","key":1486750980000,"doc_count":9},{"key_as_string":"2017-02-10T18:24:00.000Z","key":1486751040000,"doc_count":9},{"key_as_string":"2017-02-10T18:25:00.000Z","key":1486751100000,"doc_count":10},{"key_as_string":"2017-02-10T18:26:00.000Z","key":1486751160000,"doc_count":9},{"key_as_string":"2017-02-10T18:27:00.000Z","key":1486751220000,"doc_count":12},{"key_as_string":"2017-02-10T18:28:00.000Z","key":1486751280000,"doc_count":7},{"key_as_string":"2017-02-10T18:29:00.000Z","key":1486751340000,"doc_count":12},{"key_as_string":"2017-02-10T18:30:00.000Z","key":1486751400000,"doc_count":13},{"key_as_string":"2017-02-10T18:31:00.000Z","key":1486751460000,"doc_count":11},{"key_as_string":"2017-02-10T18:32:00.000Z","key":1486751520000,"doc_count":13},{"key_as_string":"2017-02-10T18:33:00.000Z","key":1486751580000,"doc_count":4},{"key_as_string":"2017-02-10T18:34:00.000Z","key":1486751640000,"doc_count":12},{"key_as_string":"2017-02-10T18:35:00.000Z","key":1486751700000,"doc_count":12},{"key_as_string":"2017-02-10T18:36:00.000Z","key":1486751760000,"doc_count":9},{"key_as_string":"2017-02-10T18:37:00.000Z","key":1486751820000,"doc_count":14},{"key_as_string":"2017-02-10T18:38:00.000Z","key":1486751880000,"doc_count":9},{"key_as_string":"2017-02-10T18:39:00.000Z","key":1486751940000,"doc_count":12},{"key_as_string":"2017-02-10T18:40:00.000Z","key":1486752000000,"doc_count":10},{"key_as_string":"2017-02-10T18:41:00.000Z","key":1486752060000,"doc_count":15},{"key_as_string":"2017-02-10T18:42:00.000Z","key":1486752120000,"doc_count":13},{"key_as_string":"2017-02-10T18:43:00.000Z","key":1486752180000,"doc_count":16},{"key_as_string":"2017-02-10T18:44:00.000Z","key":1486752240000,"doc_count":12},{"key_as_string":"2017-02-10T18:45:00.000Z","key":1486752300000,"doc_count":11},{"key_as_string":"2017-02-10T18:46:00.000Z","key":1486752360000,"doc_count":13},{"key_as_string":"2017-02-10T18:47:00.000Z","key":1486752420000,"doc_count":15},{"key_as_string":"2017-02-10T18:48:00.000Z","key":1486752480000,"doc_count":6},{"key_as_string":"2017-02-10T18:49:00.000Z","key":1486752540000,"doc_count":9},{"key_as_string":"2017-02-10T18:50:00.000Z","key":1486752600000,"doc_count":19},{"key_as_string":"2017-02-10T18:51:00.000Z","key":1486752660000,"doc_count":11},{"key_as_string":"2017-02-10T18:52:00.000Z","key":1486752720000,"doc_count":11},{"key_as_string":"2017-02-10T18:53:00.000Z","key":1486752780000,"doc_count":11},{"key_as_string":"2017-02-10T18:54:00.000Z","key":1486752840000,"doc_count":12},{"key_as_string":"2017-02-10T18:55:00.000Z","key":1486752900000,"doc_count":11},{"key_as_string":"2017-02-10T18:56:00.000Z","key":1486752960000,"doc_count":12},{"key_as_string":"2017-02-10T18:57:00.000Z","key":1486753020000,"doc_count":11},{"key_as_string":"2017-02-10T18:58:00.000Z","key":1486753080000,"doc_count":13},{"key_as_string":"2017-02-10T18:59:00.000Z","key":1486753140000,"doc_count":12},{"key_as_string":"2017-02-10T19:00:00.000Z","key":1486753200000,"doc_count":10},{"key_as_string":"2017-02-10T19:01:00.000Z","key":1486753260000,"doc_count":7},{"key_as_string":"2017-02-10T19:02:00.000Z","key":1486753320000,"doc_count":15},{"key_as_string":"2017-02-10T19:03:00.000Z","key":1486753380000,"doc_count":10},{"key_as_string":"2017-02-10T19:04:00.000Z","key":1486753440000,"doc_count":11},{"key_as_string":"2017-02-10T19:05:00.000Z","key":1486753500000,"doc_count":10},{"key_as_string":"2017-02-10T19:06:00.000Z","key":1486753560000,"doc_count":15},{"key_as_string":"2017-02-10T19:07:00.000Z","key":1486753620000,"doc_count":12},{"key_as_string":"2017-02-10T19:08:00.000Z","key":1486753680000,"doc_count":7},{"key_as_string":"2017-02-10T19:09:00.000Z","key":1486753740000,"doc_count":11},{"key_as_string":"2017-02-10T19:10:00.000Z","key":1486753800000,"doc_count":9},{"key_as_string":"2017-02-10T19:11:00.000Z","key":1486753860000,"doc_count":11},{"key_as_string":"2017-02-10T19:12:00.000Z","key":1486753920000,"doc_count":10},{"key_as_string":"2017-02-10T19:13:00.000Z","key":1486753980000,"doc_count":11},{"key_as_string":"2017-02-10T19:14:00.000Z","key":1486754040000,"doc_count":14},{"key_as_string":"2017-02-10T19:15:00.000Z","key":1486754100000,"doc_count":10},{"key_as_string":"2017-02-10T19:16:00.000Z","key":1486754160000,"doc_count":12},{"key_as_string":"2017-02-10T19:17:00.000Z","key":1486754220000,"doc_count":12},{"key_as_string":"2017-02-10T19:18:00.000Z","key":1486754280000,"doc_count":11},{"key_as_string":"2017-02-10T19:19:00.000Z","key":1486754340000,"doc_count":11},{"key_as_string":"2017-02-10T19:20:00.000Z","key":1486754400000,"doc_count":10},{"key_as_string":"2017-02-10T19:21:00.000Z","key":1486754460000,"doc_count":15},{"key_as_string":"2017-02-10T19:22:00.000Z","key":1486754520000,"doc_count":8},{"key_as_string":"2017-02-10T19:23:00.000Z","key":1486754580000,"doc_count":7},{"key_as_string":"2017-02-10T19:24:00.000Z","key":1486754640000,"doc_count":20},{"key_as_string":"2017-02-10T19:25:00.000Z","key":1486754700000,"doc_count":10},{"key_as_string":"2017-02-10T19:26:00.000Z","key":1486754760000,"doc_count":9},{"key_as_string":"2017-02-10T19:27:00.000Z","key":1486754820000,"doc_count":13},{"key_as_string":"2017-02-10T19:28:00.000Z","key":1486754880000,"doc_count":12},{"key_as_string":"2017-02-10T19:29:00.000Z","key":1486754940000,"doc_count":10},{"key_as_string":"2017-02-10T19:30:00.000Z","key":1486755000000,"doc_count":11},{"key_as_string":"2017-02-10T19:31:00.000Z","key":1486755060000,"doc_count":10},{"key_as_string":"2017-02-10T19:32:00.000Z","key":1486755120000,"doc_count":10},{"key_as_string":"2017-02-10T19:33:00.000Z","key":1486755180000,"doc_count":11},{"key_as_string":"2017-02-10T19:34:00.000Z","key":1486755240000,"doc_count":12},{"key_as_string":"2017-02-10T19:35:00.000Z","key":1486755300000,"doc_count":8},{"key_as_string":"2017-02-10T19:36:00.000Z","key":1486755360000,"doc_count":10},{"key_as_string":"2017-02-10T19:37:00.000Z","key":1486755420000,"doc_count":13},{"key_as_string":"2017-02-10T19:38:00.000Z","key":1486755480000,"doc_count":11},{"key_as_string":"2017-02-10T19:39:00.000Z","key":1486755540000,"doc_count":7},{"key_as_string":"2017-02-10T19:40:00.000Z","key":1486755600000,"doc_count":17},{"key_as_string":"2017-02-10T19:41:00.000Z","key":1486755660000,"doc_count":8},{"key_as_string":"2017-02-10T19:42:00.000Z","key":1486755720000,"doc_count":15},{"key_as_string":"2017-02-10T19:43:00.000Z","key":1486755780000,"doc_count":11},{"key_as_string":"2017-02-10T19:44:00.000Z","key":1486755840000,"doc_count":11},{"key_as_string":"2017-02-10T19:45:00.000Z","key":1486755900000,"doc_count":8},{"key_as_string":"2017-02-10T19:46:00.000Z","key":1486755960000,"doc_count":8},{"key_as_string":"2017-02-10T19:47:00.000Z","key":1486756020000,"doc_count":15},{"key_as_string":"2017-02-10T19:48:00.000Z","key":1486756080000,"doc_count":15},{"key_as_string":"2017-02-10T19:49:00.000Z","key":1486756140000,"doc_count":11},{"key_as_string":"2017-02-10T19:50:00.000Z","key":1486756200000,"doc_count":15},{"key_as_string":"2017-02-10T19:51:00.000Z","key":1486756260000,"doc_count":9},{"key_as_string":"2017-02-10T19:52:00.000Z","key":1486756320000,"doc_count":10},{"key_as_string":"2017-02-10T19:53:00.000Z","key":1486756380000,"doc_count":9},{"key_as_string":"2017-02-10T19:54:00.000Z","key":1486756440000,"doc_count":12},{"key_as_string":"2017-02-10T19:55:00.000Z","key":1486756500000,"doc_count":9},{"key_as_string":"2017-02-10T19:56:00.000Z","key":1486756560000,"doc_count":13},{"key_as_string":"2017-02-10T19:57:00.000Z","key":1486756620000,"doc_count":12},{"key_as_string":"2017-02-10T19:58:00.000Z","key":1486756680000,"doc_count":10},{"key_as_string":"2017-02-10T19:59:00.000Z","key":1486756740000,"doc_count":7},{"key_as_string":"2017-02-10T20:00:00.000Z","key":1486756800000,"doc_count":12},{"key_as_string":"2017-02-10T20:01:00.000Z","key":1486756860000,"doc_count":12},{"key_as_string":"2017-02-10T20:02:00.000Z","key":1486756920000,"doc_count":12},{"key_as_string":"2017-02-10T20:03:00.000Z","key":1486756980000,"doc_count":8},{"key_as_string":"2017-02-10T20:04:00.000Z","key":1486757040000,"doc_count":20},{"key_as_string":"2017-02-10T20:05:00.000Z","key":1486757100000,"doc_count":7},{"key_as_string":"2017-02-10T20:06:00.000Z","key":1486757160000,"doc_count":16},{"key_as_string":"2017-02-10T20:07:00.000Z","key":1486757220000,"doc_count":13},{"key_as_string":"2017-02-10T20:08:00.000Z","key":1486757280000,"doc_count":9},{"key_as_string":"2017-02-10T20:09:00.000Z","key":1486757340000,"doc_count":12},{"key_as_string":"2017-02-10T20:10:00.000Z","key":1486757400000,"doc_count":7},{"key_as_string":"2017-02-10T20:11:00.000Z","key":1486757460000,"doc_count":8},{"key_as_string":"2017-02-10T20:12:00.000Z","key":1486757520000,"doc_count":10},{"key_as_string":"2017-02-10T20:13:00.000Z","key":1486757580000,"doc_count":8},{"key_as_string":"2017-02-10T20:14:00.000Z","key":1486757640000,"doc_count":17},{"key_as_string":"2017-02-10T20:15:00.000Z","key":1486757700000,"doc_count":11},{"key_as_string":"2017-02-10T20:16:00.000Z","key":1486757760000,"doc_count":12},{"key_as_string":"2017-02-10T20:17:00.000Z","key":1486757820000,"doc_count":12},{"key_as_string":"2017-02-10T20:18:00.000Z","key":1486757880000,"doc_count":12},{"key_as_string":"2017-02-10T20:19:00.000Z","key":1486757940000,"doc_count":15},{"key_as_string":"2017-02-10T20:20:00.000Z","key":1486758000000,"doc_count":7},{"key_as_string":"2017-02-10T20:21:00.000Z","key":1486758060000,"doc_count":11},{"key_as_string":"2017-02-10T20:22:00.000Z","key":1486758120000,"doc_count":10},{"key_as_string":"2017-02-10T20:23:00.000Z","key":1486758180000,"doc_count":14},{"key_as_string":"2017-02-10T20:24:00.000Z","key":1486758240000,"doc_count":11},{"key_as_string":"2017-02-10T20:25:00.000Z","key":1486758300000,"doc_count":9},{"key_as_string":"2017-02-10T20:26:00.000Z","key":1486758360000,"doc_count":7},{"key_as_string":"2017-02-10T20:27:00.000Z","key":1486758420000,"doc_count":10},{"key_as_string":"2017-02-10T20:28:00.000Z","key":1486758480000,"doc_count":14},{"key_as_string":"2017-02-10T20:29:00.000Z","key":1486758540000,"doc_count":12},{"key_as_string":"2017-02-10T20:30:00.000Z","key":1486758600000,"doc_count":10},{"key_as_string":"2017-02-10T20:31:00.000Z","key":1486758660000,"doc_count":11},{"key_as_string":"2017-02-10T20:32:00.000Z","key":1486758720000,"doc_count":12},{"key_as_string":"2017-02-10T20:33:00.000Z","key":1486758780000,"doc_count":15},{"key_as_string":"2017-02-10T20:34:00.000Z","key":1486758840000,"doc_count":12},{"key_as_string":"2017-02-10T20:35:00.000Z","key":1486758900000,"doc_count":14},{"key_as_string":"2017-02-10T20:36:00.000Z","key":1486758960000,"doc_count":6},{"key_as_string":"2017-02-10T20:37:00.000Z","key":1486759020000,"doc_count":11},{"key_as_string":"2017-02-10T20:38:00.000Z","key":1486759080000,"doc_count":15},{"key_as_string":"2017-02-10T20:39:00.000Z","key":1486759140000,"doc_count":11},{"key_as_string":"2017-02-10T20:40:00.000Z","key":1486759200000,"doc_count":10},{"key_as_string":"2017-02-10T20:41:00.000Z","key":1486759260000,"doc_count":10},{"key_as_string":"2017-02-10T20:42:00.000Z","key":1486759320000,"doc_count":8},{"key_as_string":"2017-02-10T20:43:00.000Z","key":1486759380000,"doc_count":10},{"key_as_string":"2017-02-10T20:44:00.000Z","key":1486759440000,"doc_count":10},{"key_as_string":"2017-02-10T20:45:00.000Z","key":1486759500000,"doc_count":9},{"key_as_string":"2017-02-10T20:46:00.000Z","key":1486759560000,"doc_count":12},{"key_as_string":"2017-02-10T20:47:00.000Z","key":1486759620000,"doc_count":11},{"key_as_string":"2017-02-10T20:48:00.000Z","key":1486759680000,"doc_count":13},{"key_as_string":"2017-02-10T20:49:00.000Z","key":1486759740000,"doc_count":8},{"key_as_string":"2017-02-10T20:50:00.000Z","key":1486759800000,"doc_count":10},{"key_as_string":"2017-02-10T20:51:00.000Z","key":1486759860000,"doc_count":10},{"key_as_string":"2017-02-10T20:52:00.000Z","key":1486759920000,"doc_count":14},{"key_as_string":"2017-02-10T20:53:00.000Z","key":1486759980000,"doc_count":10},{"key_as_string":"2017-02-10T20:54:00.000Z","key":1486760040000,"doc_count":17},{"key_as_string":"2017-02-10T20:55:00.000Z","key":1486760100000,"doc_count":8},{"key_as_string":"2017-02-10T20:56:00.000Z","key":1486760160000,"doc_count":10},{"key_as_string":"2017-02-10T20:57:00.000Z","key":1486760220000,"doc_count":11},{"key_as_string":"2017-02-10T20:58:00.000Z","key":1486760280000,"doc_count":9},{"key_as_string":"2017-02-10T20:59:00.000Z","key":1486760340000,"doc_count":14},{"key_as_string":"2017-02-10T21:00:00.000Z","key":1486760400000,"doc_count":11},{"key_as_string":"2017-02-10T21:01:00.000Z","key":1486760460000,"doc_count":13},{"key_as_string":"2017-02-10T21:02:00.000Z","key":1486760520000,"doc_count":8},{"key_as_string":"2017-02-10T21:03:00.000Z","key":1486760580000,"doc_count":13},{"key_as_string":"2017-02-10T21:04:00.000Z","key":1486760640000,"doc_count":10},{"key_as_string":"2017-02-10T21:05:00.000Z","key":1486760700000,"doc_count":11},{"key_as_string":"2017-02-10T21:06:00.000Z","key":1486760760000,"doc_count":5},{"key_as_string":"2017-02-10T21:07:00.000Z","key":1486760820000,"doc_count":11},{"key_as_string":"2017-02-10T21:08:00.000Z","key":1486760880000,"doc_count":12},{"key_as_string":"2017-02-10T21:09:00.000Z","key":1486760940000,"doc_count":7},{"key_as_string":"2017-02-10T21:10:00.000Z","key":1486761000000,"doc_count":13},{"key_as_string":"2017-02-10T21:11:00.000Z","key":1486761060000,"doc_count":10},{"key_as_string":"2017-02-10T21:12:00.000Z","key":1486761120000,"doc_count":13},{"key_as_string":"2017-02-10T21:13:00.000Z","key":1486761180000,"doc_count":11},{"key_as_string":"2017-02-10T21:14:00.000Z","key":1486761240000,"doc_count":11},{"key_as_string":"2017-02-10T21:15:00.000Z","key":1486761300000,"doc_count":9},{"key_as_string":"2017-02-10T21:16:00.000Z","key":1486761360000,"doc_count":13},{"key_as_string":"2017-02-10T21:17:00.000Z","key":1486761420000,"doc_count":10},{"key_as_string":"2017-02-10T21:18:00.000Z","key":1486761480000,"doc_count":12},{"key_as_string":"2017-02-10T21:19:00.000Z","key":1486761540000,"doc_count":8},{"key_as_string":"2017-02-10T21:20:00.000Z","key":1486761600000,"doc_count":11},{"key_as_string":"2017-02-10T21:21:00.000Z","key":1486761660000,"doc_count":13},{"key_as_string":"2017-02-10T21:22:00.000Z","key":1486761720000,"doc_count":9},{"key_as_string":"2017-02-10T21:23:00.000Z","key":1486761780000,"doc_count":13},{"key_as_string":"2017-02-10T21:24:00.000Z","key":1486761840000,"doc_count":8},{"key_as_string":"2017-02-10T21:25:00.000Z","key":1486761900000,"doc_count":8},{"key_as_string":"2017-02-10T21:26:00.000Z","key":1486761960000,"doc_count":12},{"key_as_string":"2017-02-10T21:27:00.000Z","key":1486762020000,"doc_count":10},{"key_as_string":"2017-02-10T21:28:00.000Z","key":1486762080000,"doc_count":16},{"key_as_string":"2017-02-10T21:29:00.000Z","key":1486762140000,"doc_count":7},{"key_as_string":"2017-02-10T21:30:00.000Z","key":1486762200000,"doc_count":10},{"key_as_string":"2017-02-10T21:31:00.000Z","key":1486762260000,"doc_count":16},{"key_as_string":"2017-02-10T21:32:00.000Z","key":1486762320000,"doc_count":14},{"key_as_string":"2017-02-10T21:33:00.000Z","key":1486762380000,"doc_count":6},{"key_as_string":"2017-02-10T21:34:00.000Z","key":1486762440000,"doc_count":9},{"key_as_string":"2017-02-10T21:35:00.000Z","key":1486762500000,"doc_count":11},{"key_as_string":"2017-02-10T21:36:00.000Z","key":1486762560000,"doc_count":12},{"key_as_string":"2017-02-10T21:37:00.000Z","key":1486762620000,"doc_count":16},{"key_as_string":"2017-02-10T21:38:00.000Z","key":1486762680000,"doc_count":11},{"key_as_string":"2017-02-10T21:39:00.000Z","key":1486762740000,"doc_count":10},{"key_as_string":"2017-02-10T21:40:00.000Z","key":1486762800000,"doc_count":11},{"key_as_string":"2017-02-10T21:41:00.000Z","key":1486762860000,"doc_count":11},{"key_as_string":"2017-02-10T21:42:00.000Z","key":1486762920000,"doc_count":13},{"key_as_string":"2017-02-10T21:43:00.000Z","key":1486762980000,"doc_count":11},{"key_as_string":"2017-02-10T21:44:00.000Z","key":1486763040000,"doc_count":14},{"key_as_string":"2017-02-10T21:45:00.000Z","key":1486763100000,"doc_count":9},{"key_as_string":"2017-02-10T21:46:00.000Z","key":1486763160000,"doc_count":9},{"key_as_string":"2017-02-10T21:47:00.000Z","key":1486763220000,"doc_count":16},{"key_as_string":"2017-02-10T21:48:00.000Z","key":1486763280000,"doc_count":6},{"key_as_string":"2017-02-10T21:49:00.000Z","key":1486763340000,"doc_count":12},{"key_as_string":"2017-02-10T21:50:00.000Z","key":1486763400000,"doc_count":10},{"key_as_string":"2017-02-10T21:51:00.000Z","key":1486763460000,"doc_count":11},{"key_as_string":"2017-02-10T21:52:00.000Z","key":1486763520000,"doc_count":11},{"key_as_string":"2017-02-10T21:53:00.000Z","key":1486763580000,"doc_count":12},{"key_as_string":"2017-02-10T21:54:00.000Z","key":1486763640000,"doc_count":15},{"key_as_string":"2017-02-10T21:55:00.000Z","key":1486763700000,"doc_count":12},{"key_as_string":"2017-02-10T21:56:00.000Z","key":1486763760000,"doc_count":9},{"key_as_string":"2017-02-10T21:57:00.000Z","key":1486763820000,"doc_count":13},{"key_as_string":"2017-02-10T21:58:00.000Z","key":1486763880000,"doc_count":8},{"key_as_string":"2017-02-10T21:59:00.000Z","key":1486763940000,"doc_count":9},{"key_as_string":"2017-02-10T22:00:00.000Z","key":1486764000000,"doc_count":20},{"key_as_string":"2017-02-10T22:01:00.000Z","key":1486764060000,"doc_count":11},{"key_as_string":"2017-02-10T22:02:00.000Z","key":1486764120000,"doc_count":14},{"key_as_string":"2017-02-10T22:03:00.000Z","key":1486764180000,"doc_count":8},{"key_as_string":"2017-02-10T22:04:00.000Z","key":1486764240000,"doc_count":13},{"key_as_string":"2017-02-10T22:05:00.000Z","key":1486764300000,"doc_count":8},{"key_as_string":"2017-02-10T22:06:00.000Z","key":1486764360000,"doc_count":14},{"key_as_string":"2017-02-10T22:07:00.000Z","key":1486764420000,"doc_count":9},{"key_as_string":"2017-02-10T22:08:00.000Z","key":1486764480000,"doc_count":8},{"key_as_string":"2017-02-10T22:09:00.000Z","key":1486764540000,"doc_count":10},{"key_as_string":"2017-02-10T22:10:00.000Z","key":1486764600000,"doc_count":18},{"key_as_string":"2017-02-10T22:11:00.000Z","key":1486764660000,"doc_count":8},{"key_as_string":"2017-02-10T22:12:00.000Z","key":1486764720000,"doc_count":9},{"key_as_string":"2017-02-10T22:13:00.000Z","key":1486764780000,"doc_count":13},{"key_as_string":"2017-02-10T22:14:00.000Z","key":1486764840000,"doc_count":9},{"key_as_string":"2017-02-10T22:15:00.000Z","key":1486764900000,"doc_count":12},{"key_as_string":"2017-02-10T22:16:00.000Z","key":1486764960000,"doc_count":7},{"key_as_string":"2017-02-10T22:17:00.000Z","key":1486765020000,"doc_count":11},{"key_as_string":"2017-02-10T22:18:00.000Z","key":1486765080000,"doc_count":9},{"key_as_string":"2017-02-10T22:19:00.000Z","key":1486765140000,"doc_count":6},{"key_as_string":"2017-02-10T22:20:00.000Z","key":1486765200000,"doc_count":10},{"key_as_string":"2017-02-10T22:21:00.000Z","key":1486765260000,"doc_count":9},{"key_as_string":"2017-02-10T22:22:00.000Z","key":1486765320000,"doc_count":12},{"key_as_string":"2017-02-10T22:23:00.000Z","key":1486765380000,"doc_count":13},{"key_as_string":"2017-02-10T22:24:00.000Z","key":1486765440000,"doc_count":12},{"key_as_string":"2017-02-10T22:25:00.000Z","key":1486765500000,"doc_count":9},{"key_as_string":"2017-02-10T22:26:00.000Z","key":1486765560000,"doc_count":17},{"key_as_string":"2017-02-10T22:27:00.000Z","key":1486765620000,"doc_count":8},{"key_as_string":"2017-02-10T22:28:00.000Z","key":1486765680000,"doc_count":15},{"key_as_string":"2017-02-10T22:29:00.000Z","key":1486765740000,"doc_count":10},{"key_as_string":"2017-02-10T22:30:00.000Z","key":1486765800000,"doc_count":7},{"key_as_string":"2017-02-10T22:31:00.000Z","key":1486765860000,"doc_count":15},{"key_as_string":"2017-02-10T22:32:00.000Z","key":1486765920000,"doc_count":8},{"key_as_string":"2017-02-10T22:33:00.000Z","key":1486765980000,"doc_count":10},{"key_as_string":"2017-02-10T22:34:00.000Z","key":1486766040000,"doc_count":13},{"key_as_string":"2017-02-10T22:35:00.000Z","key":1486766100000,"doc_count":12},{"key_as_string":"2017-02-10T22:36:00.000Z","key":1486766160000,"doc_count":10},{"key_as_string":"2017-02-10T22:37:00.000Z","key":1486766220000,"doc_count":13},{"key_as_string":"2017-02-10T22:38:00.000Z","key":1486766280000,"doc_count":8},{"key_as_string":"2017-02-10T22:39:00.000Z","key":1486766340000,"doc_count":14},{"key_as_string":"2017-02-10T22:40:00.000Z","key":1486766400000,"doc_count":14},{"key_as_string":"2017-02-10T22:41:00.000Z","key":1486766460000,"doc_count":13},{"key_as_string":"2017-02-10T22:42:00.000Z","key":1486766520000,"doc_count":9},{"key_as_string":"2017-02-10T22:43:00.000Z","key":1486766580000,"doc_count":11},{"key_as_string":"2017-02-10T22:44:00.000Z","key":1486766640000,"doc_count":12},{"key_as_string":"2017-02-10T22:45:00.000Z","key":1486766700000,"doc_count":11},{"key_as_string":"2017-02-10T22:46:00.000Z","key":1486766760000,"doc_count":5},{"key_as_string":"2017-02-10T22:47:00.000Z","key":1486766820000,"doc_count":12},{"key_as_string":"2017-02-10T22:48:00.000Z","key":1486766880000,"doc_count":8},{"key_as_string":"2017-02-10T22:49:00.000Z","key":1486766940000,"doc_count":13},{"key_as_string":"2017-02-10T22:50:00.000Z","key":1486767000000,"doc_count":9},{"key_as_string":"2017-02-10T22:51:00.000Z","key":1486767060000,"doc_count":14},{"key_as_string":"2017-02-10T22:52:00.000Z","key":1486767120000,"doc_count":8},{"key_as_string":"2017-02-10T22:53:00.000Z","key":1486767180000,"doc_count":14},{"key_as_string":"2017-02-10T22:54:00.000Z","key":1486767240000,"doc_count":5},{"key_as_string":"2017-02-10T22:55:00.000Z","key":1486767300000,"doc_count":15},{"key_as_string":"2017-02-10T22:56:00.000Z","key":1486767360000,"doc_count":10},{"key_as_string":"2017-02-10T22:57:00.000Z","key":1486767420000,"doc_count":17},{"key_as_string":"2017-02-10T22:58:00.000Z","key":1486767480000,"doc_count":10},{"key_as_string":"2017-02-10T22:59:00.000Z","key":1486767540000,"doc_count":14},{"key_as_string":"2017-02-10T23:00:00.000Z","key":1486767600000,"doc_count":5},{"key_as_string":"2017-02-10T23:01:00.000Z","key":1486767660000,"doc_count":12},{"key_as_string":"2017-02-10T23:02:00.000Z","key":1486767720000,"doc_count":12},{"key_as_string":"2017-02-10T23:03:00.000Z","key":1486767780000,"doc_count":9},{"key_as_string":"2017-02-10T23:04:00.000Z","key":1486767840000,"doc_count":7},{"key_as_string":"2017-02-10T23:05:00.000Z","key":1486767900000,"doc_count":12},{"key_as_string":"2017-02-10T23:06:00.000Z","key":1486767960000,"doc_count":7},{"key_as_string":"2017-02-10T23:07:00.000Z","key":1486768020000,"doc_count":14},{"key_as_string":"2017-02-10T23:08:00.000Z","key":1486768080000,"doc_count":10},{"key_as_string":"2017-02-10T23:09:00.000Z","key":1486768140000,"doc_count":9},{"key_as_string":"2017-02-10T23:10:00.000Z","key":1486768200000,"doc_count":15},{"key_as_string":"2017-02-10T23:11:00.000Z","key":1486768260000,"doc_count":13},{"key_as_string":"2017-02-10T23:12:00.000Z","key":1486768320000,"doc_count":10},{"key_as_string":"2017-02-10T23:13:00.000Z","key":1486768380000,"doc_count":8},{"key_as_string":"2017-02-10T23:14:00.000Z","key":1486768440000,"doc_count":10},{"key_as_string":"2017-02-10T23:15:00.000Z","key":1486768500000,"doc_count":13},{"key_as_string":"2017-02-10T23:16:00.000Z","key":1486768560000,"doc_count":9},{"key_as_string":"2017-02-10T23:17:00.000Z","key":1486768620000,"doc_count":8},{"key_as_string":"2017-02-10T23:18:00.000Z","key":1486768680000,"doc_count":7},{"key_as_string":"2017-02-10T23:19:00.000Z","key":1486768740000,"doc_count":12},{"key_as_string":"2017-02-10T23:20:00.000Z","key":1486768800000,"doc_count":9},{"key_as_string":"2017-02-10T23:21:00.000Z","key":1486768860000,"doc_count":11},{"key_as_string":"2017-02-10T23:22:00.000Z","key":1486768920000,"doc_count":8},{"key_as_string":"2017-02-10T23:23:00.000Z","key":1486768980000,"doc_count":9},{"key_as_string":"2017-02-10T23:24:00.000Z","key":1486769040000,"doc_count":14},{"key_as_string":"2017-02-10T23:25:00.000Z","key":1486769100000,"doc_count":9},{"key_as_string":"2017-02-10T23:26:00.000Z","key":1486769160000,"doc_count":8},{"key_as_string":"2017-02-10T23:27:00.000Z","key":1486769220000,"doc_count":7},{"key_as_string":"2017-02-10T23:28:00.000Z","key":1486769280000,"doc_count":17},{"key_as_string":"2017-02-10T23:29:00.000Z","key":1486769340000,"doc_count":5},{"key_as_string":"2017-02-10T23:30:00.000Z","key":1486769400000,"doc_count":16},{"key_as_string":"2017-02-10T23:31:00.000Z","key":1486769460000,"doc_count":14},{"key_as_string":"2017-02-10T23:32:00.000Z","key":1486769520000,"doc_count":6},{"key_as_string":"2017-02-10T23:33:00.000Z","key":1486769580000,"doc_count":8},{"key_as_string":"2017-02-10T23:34:00.000Z","key":1486769640000,"doc_count":15},{"key_as_string":"2017-02-10T23:35:00.000Z","key":1486769700000,"doc_count":9},{"key_as_string":"2017-02-10T23:36:00.000Z","key":1486769760000,"doc_count":11},{"key_as_string":"2017-02-10T23:37:00.000Z","key":1486769820000,"doc_count":13},{"key_as_string":"2017-02-10T23:38:00.000Z","key":1486769880000,"doc_count":12},{"key_as_string":"2017-02-10T23:39:00.000Z","key":1486769940000,"doc_count":12},{"key_as_string":"2017-02-10T23:40:00.000Z","key":1486770000000,"doc_count":9},{"key_as_string":"2017-02-10T23:41:00.000Z","key":1486770060000,"doc_count":11},{"key_as_string":"2017-02-10T23:42:00.000Z","key":1486770120000,"doc_count":10},{"key_as_string":"2017-02-10T23:43:00.000Z","key":1486770180000,"doc_count":16},{"key_as_string":"2017-02-10T23:44:00.000Z","key":1486770240000,"doc_count":8},{"key_as_string":"2017-02-10T23:45:00.000Z","key":1486770300000,"doc_count":8},{"key_as_string":"2017-02-10T23:46:00.000Z","key":1486770360000,"doc_count":8},{"key_as_string":"2017-02-10T23:47:00.000Z","key":1486770420000,"doc_count":11},{"key_as_string":"2017-02-10T23:48:00.000Z","key":1486770480000,"doc_count":10},{"key_as_string":"2017-02-10T23:49:00.000Z","key":1486770540000,"doc_count":10},{"key_as_string":"2017-02-10T23:50:00.000Z","key":1486770600000,"doc_count":13},{"key_as_string":"2017-02-10T23:51:00.000Z","key":1486770660000,"doc_count":6},{"key_as_string":"2017-02-10T23:52:00.000Z","key":1486770720000,"doc_count":16},{"key_as_string":"2017-02-10T23:53:00.000Z","key":1486770780000,"doc_count":10},{"key_as_string":"2017-02-10T23:54:00.000Z","key":1486770840000,"doc_count":11},{"key_as_string":"2017-02-10T23:55:00.000Z","key":1486770900000,"doc_count":14},{"key_as_string":"2017-02-10T23:56:00.000Z","key":1486770960000,"doc_count":9},{"key_as_string":"2017-02-10T23:57:00.000Z","key":1486771020000,"doc_count":9},{"key_as_string":"2017-02-10T23:58:00.000Z","key":1486771080000,"doc_count":11},{"key_as_string":"2017-02-10T23:59:00.000Z","key":1486771140000,"doc_count":6},{"key_as_string":"2017-02-11T00:00:00.000Z","key":1486771200000,"doc_count":12},{"key_as_string":"2017-02-11T00:01:00.000Z","key":1486771260000,"doc_count":14},{"key_as_string":"2017-02-11T00:02:00.000Z","key":1486771320000,"doc_count":9},{"key_as_string":"2017-02-11T00:03:00.000Z","key":1486771380000,"doc_count":3},{"key_as_string":"2017-02-11T00:04:00.000Z","key":1486771440000,"doc_count":15},{"key_as_string":"2017-02-11T00:05:00.000Z","key":1486771500000,"doc_count":10},{"key_as_string":"2017-02-11T00:06:00.000Z","key":1486771560000,"doc_count":11},{"key_as_string":"2017-02-11T00:07:00.000Z","key":1486771620000,"doc_count":6},{"key_as_string":"2017-02-11T00:08:00.000Z","key":1486771680000,"doc_count":11},{"key_as_string":"2017-02-11T00:09:00.000Z","key":1486771740000,"doc_count":10},{"key_as_string":"2017-02-11T00:10:00.000Z","key":1486771800000,"doc_count":7},{"key_as_string":"2017-02-11T00:11:00.000Z","key":1486771860000,"doc_count":13},{"key_as_string":"2017-02-11T00:12:00.000Z","key":1486771920000,"doc_count":9},{"key_as_string":"2017-02-11T00:13:00.000Z","key":1486771980000,"doc_count":10},{"key_as_string":"2017-02-11T00:14:00.000Z","key":1486772040000,"doc_count":17},{"key_as_string":"2017-02-11T00:15:00.000Z","key":1486772100000,"doc_count":7},{"key_as_string":"2017-02-11T00:16:00.000Z","key":1486772160000,"doc_count":12},{"key_as_string":"2017-02-11T00:17:00.000Z","key":1486772220000,"doc_count":13},{"key_as_string":"2017-02-11T00:18:00.000Z","key":1486772280000,"doc_count":4},{"key_as_string":"2017-02-11T00:19:00.000Z","key":1486772340000,"doc_count":15},{"key_as_string":"2017-02-11T00:20:00.000Z","key":1486772400000,"doc_count":13},{"key_as_string":"2017-02-11T00:21:00.000Z","key":1486772460000,"doc_count":8},{"key_as_string":"2017-02-11T00:22:00.000Z","key":1486772520000,"doc_count":8},{"key_as_string":"2017-02-11T00:23:00.000Z","key":1486772580000,"doc_count":12},{"key_as_string":"2017-02-11T00:24:00.000Z","key":1486772640000,"doc_count":9},{"key_as_string":"2017-02-11T00:25:00.000Z","key":1486772700000,"doc_count":8},{"key_as_string":"2017-02-11T00:26:00.000Z","key":1486772760000,"doc_count":13},{"key_as_string":"2017-02-11T00:27:00.000Z","key":1486772820000,"doc_count":10},{"key_as_string":"2017-02-11T00:28:00.000Z","key":1486772880000,"doc_count":11},{"key_as_string":"2017-02-11T00:29:00.000Z","key":1486772940000,"doc_count":7},{"key_as_string":"2017-02-11T00:30:00.000Z","key":1486773000000,"doc_count":14},{"key_as_string":"2017-02-11T00:31:00.000Z","key":1486773060000,"doc_count":8},{"key_as_string":"2017-02-11T00:32:00.000Z","key":1486773120000,"doc_count":9},{"key_as_string":"2017-02-11T00:33:00.000Z","key":1486773180000,"doc_count":14},{"key_as_string":"2017-02-11T00:34:00.000Z","key":1486773240000,"doc_count":7},{"key_as_string":"2017-02-11T00:35:00.000Z","key":1486773300000,"doc_count":10},{"key_as_string":"2017-02-11T00:36:00.000Z","key":1486773360000,"doc_count":11},{"key_as_string":"2017-02-11T00:37:00.000Z","key":1486773420000,"doc_count":15},{"key_as_string":"2017-02-11T00:38:00.000Z","key":1486773480000,"doc_count":9},{"key_as_string":"2017-02-11T00:39:00.000Z","key":1486773540000,"doc_count":11},{"key_as_string":"2017-02-11T00:40:00.000Z","key":1486773600000,"doc_count":8},{"key_as_string":"2017-02-11T00:41:00.000Z","key":1486773660000,"doc_count":9},{"key_as_string":"2017-02-11T00:42:00.000Z","key":1486773720000,"doc_count":10},{"key_as_string":"2017-02-11T00:43:00.000Z","key":1486773780000,"doc_count":14},{"key_as_string":"2017-02-11T00:44:00.000Z","key":1486773840000,"doc_count":7},{"key_as_string":"2017-02-11T00:45:00.000Z","key":1486773900000,"doc_count":12},{"key_as_string":"2017-02-11T00:46:00.000Z","key":1486773960000,"doc_count":12},{"key_as_string":"2017-02-11T00:47:00.000Z","key":1486774020000,"doc_count":9},{"key_as_string":"2017-02-11T00:48:00.000Z","key":1486774080000,"doc_count":11},{"key_as_string":"2017-02-11T00:49:00.000Z","key":1486774140000,"doc_count":6},{"key_as_string":"2017-02-11T00:50:00.000Z","key":1486774200000,"doc_count":11},{"key_as_string":"2017-02-11T00:51:00.000Z","key":1486774260000,"doc_count":14},{"key_as_string":"2017-02-11T00:52:00.000Z","key":1486774320000,"doc_count":6},{"key_as_string":"2017-02-11T00:53:00.000Z","key":1486774380000,"doc_count":14},{"key_as_string":"2017-02-11T00:54:00.000Z","key":1486774440000,"doc_count":9},{"key_as_string":"2017-02-11T00:55:00.000Z","key":1486774500000,"doc_count":7},{"key_as_string":"2017-02-11T00:56:00.000Z","key":1486774560000,"doc_count":9},{"key_as_string":"2017-02-11T00:57:00.000Z","key":1486774620000,"doc_count":11},{"key_as_string":"2017-02-11T00:58:00.000Z","key":1486774680000,"doc_count":11},{"key_as_string":"2017-02-11T00:59:00.000Z","key":1486774740000,"doc_count":9},{"key_as_string":"2017-02-11T01:00:00.000Z","key":1486774800000,"doc_count":9},{"key_as_string":"2017-02-11T01:01:00.000Z","key":1486774860000,"doc_count":9},{"key_as_string":"2017-02-11T01:02:00.000Z","key":1486774920000,"doc_count":9},{"key_as_string":"2017-02-11T01:03:00.000Z","key":1486774980000,"doc_count":13},{"key_as_string":"2017-02-11T01:04:00.000Z","key":1486775040000,"doc_count":8},{"key_as_string":"2017-02-11T01:05:00.000Z","key":1486775100000,"doc_count":14},{"key_as_string":"2017-02-11T01:06:00.000Z","key":1486775160000,"doc_count":7},{"key_as_string":"2017-02-11T01:07:00.000Z","key":1486775220000,"doc_count":13},{"key_as_string":"2017-02-11T01:08:00.000Z","key":1486775280000,"doc_count":9},{"key_as_string":"2017-02-11T01:09:00.000Z","key":1486775340000,"doc_count":11},{"key_as_string":"2017-02-11T01:10:00.000Z","key":1486775400000,"doc_count":11},{"key_as_string":"2017-02-11T01:11:00.000Z","key":1486775460000,"doc_count":15},{"key_as_string":"2017-02-11T01:12:00.000Z","key":1486775520000,"doc_count":8},{"key_as_string":"2017-02-11T01:13:00.000Z","key":1486775580000,"doc_count":7},{"key_as_string":"2017-02-11T01:14:00.000Z","key":1486775640000,"doc_count":16},{"key_as_string":"2017-02-11T01:15:00.000Z","key":1486775700000,"doc_count":6},{"key_as_string":"2017-02-11T01:16:00.000Z","key":1486775760000,"doc_count":13},{"key_as_string":"2017-02-11T01:17:00.000Z","key":1486775820000,"doc_count":9},{"key_as_string":"2017-02-11T01:18:00.000Z","key":1486775880000,"doc_count":7},{"key_as_string":"2017-02-11T01:19:00.000Z","key":1486775940000,"doc_count":12},{"key_as_string":"2017-02-11T01:20:00.000Z","key":1486776000000,"doc_count":8},{"key_as_string":"2017-02-11T01:21:00.000Z","key":1486776060000,"doc_count":12},{"key_as_string":"2017-02-11T01:22:00.000Z","key":1486776120000,"doc_count":16},{"key_as_string":"2017-02-11T01:23:00.000Z","key":1486776180000,"doc_count":9},{"key_as_string":"2017-02-11T01:24:00.000Z","key":1486776240000,"doc_count":6},{"key_as_string":"2017-02-11T01:25:00.000Z","key":1486776300000,"doc_count":13},{"key_as_string":"2017-02-11T01:26:00.000Z","key":1486776360000,"doc_count":12},{"key_as_string":"2017-02-11T01:27:00.000Z","key":1486776420000,"doc_count":10},{"key_as_string":"2017-02-11T01:28:00.000Z","key":1486776480000,"doc_count":6},{"key_as_string":"2017-02-11T01:29:00.000Z","key":1486776540000,"doc_count":13},{"key_as_string":"2017-02-11T01:30:00.000Z","key":1486776600000,"doc_count":8},{"key_as_string":"2017-02-11T01:31:00.000Z","key":1486776660000,"doc_count":16},{"key_as_string":"2017-02-11T01:32:00.000Z","key":1486776720000,"doc_count":8},{"key_as_string":"2017-02-11T01:33:00.000Z","key":1486776780000,"doc_count":4},{"key_as_string":"2017-02-11T01:34:00.000Z","key":1486776840000,"doc_count":9},{"key_as_string":"2017-02-11T01:35:00.000Z","key":1486776900000,"doc_count":11},{"key_as_string":"2017-02-11T01:36:00.000Z","key":1486776960000,"doc_count":10},{"key_as_string":"2017-02-11T01:37:00.000Z","key":1486777020000,"doc_count":17},{"key_as_string":"2017-02-11T01:38:00.000Z","key":1486777080000,"doc_count":11},{"key_as_string":"2017-02-11T01:39:00.000Z","key":1486777140000,"doc_count":10},{"key_as_string":"2017-02-11T01:40:00.000Z","key":1486777200000,"doc_count":12},{"key_as_string":"2017-02-11T01:41:00.000Z","key":1486777260000,"doc_count":11},{"key_as_string":"2017-02-11T01:42:00.000Z","key":1486777320000,"doc_count":11},{"key_as_string":"2017-02-11T01:43:00.000Z","key":1486777380000,"doc_count":6},{"key_as_string":"2017-02-11T01:44:00.000Z","key":1486777440000,"doc_count":13},{"key_as_string":"2017-02-11T01:45:00.000Z","key":1486777500000,"doc_count":12},{"key_as_string":"2017-02-11T01:46:00.000Z","key":1486777560000,"doc_count":12},{"key_as_string":"2017-02-11T01:47:00.000Z","key":1486777620000,"doc_count":7},{"key_as_string":"2017-02-11T01:48:00.000Z","key":1486777680000,"doc_count":12},{"key_as_string":"2017-02-11T01:49:00.000Z","key":1486777740000,"doc_count":11},{"key_as_string":"2017-02-11T01:50:00.000Z","key":1486777800000,"doc_count":13},{"key_as_string":"2017-02-11T01:51:00.000Z","key":1486777860000,"doc_count":13},{"key_as_string":"2017-02-11T01:52:00.000Z","key":1486777920000,"doc_count":11},{"key_as_string":"2017-02-11T01:53:00.000Z","key":1486777980000,"doc_count":11},{"key_as_string":"2017-02-11T01:54:00.000Z","key":1486778040000,"doc_count":7},{"key_as_string":"2017-02-11T01:55:00.000Z","key":1486778100000,"doc_count":13},{"key_as_string":"2017-02-11T01:56:00.000Z","key":1486778160000,"doc_count":12},{"key_as_string":"2017-02-11T01:57:00.000Z","key":1486778220000,"doc_count":12},{"key_as_string":"2017-02-11T01:58:00.000Z","key":1486778280000,"doc_count":10},{"key_as_string":"2017-02-11T01:59:00.000Z","key":1486778340000,"doc_count":13},{"key_as_string":"2017-02-11T02:00:00.000Z","key":1486778400000,"doc_count":10},{"key_as_string":"2017-02-11T02:01:00.000Z","key":1486778460000,"doc_count":8},{"key_as_string":"2017-02-11T02:02:00.000Z","key":1486778520000,"doc_count":8},{"key_as_string":"2017-02-11T02:03:00.000Z","key":1486778580000,"doc_count":10},{"key_as_string":"2017-02-11T02:04:00.000Z","key":1486778640000,"doc_count":10},{"key_as_string":"2017-02-11T02:05:00.000Z","key":1486778700000,"doc_count":6},{"key_as_string":"2017-02-11T02:06:00.000Z","key":1486778760000,"doc_count":12},{"key_as_string":"2017-02-11T02:07:00.000Z","key":1486778820000,"doc_count":11},{"key_as_string":"2017-02-11T02:08:00.000Z","key":1486778880000,"doc_count":7},{"key_as_string":"2017-02-11T02:09:00.000Z","key":1486778940000,"doc_count":13},{"key_as_string":"2017-02-11T02:10:00.000Z","key":1486779000000,"doc_count":9},{"key_as_string":"2017-02-11T02:11:00.000Z","key":1486779060000,"doc_count":14},{"key_as_string":"2017-02-11T02:12:00.000Z","key":1486779120000,"doc_count":9},{"key_as_string":"2017-02-11T02:13:00.000Z","key":1486779180000,"doc_count":10},{"key_as_string":"2017-02-11T02:14:00.000Z","key":1486779240000,"doc_count":12},{"key_as_string":"2017-02-11T02:15:00.000Z","key":1486779300000,"doc_count":5},{"key_as_string":"2017-02-11T02:16:00.000Z","key":1486779360000,"doc_count":9},{"key_as_string":"2017-02-11T02:17:00.000Z","key":1486779420000,"doc_count":14},{"key_as_string":"2017-02-11T02:18:00.000Z","key":1486779480000,"doc_count":5},{"key_as_string":"2017-02-11T02:19:00.000Z","key":1486779540000,"doc_count":18},{"key_as_string":"2017-02-11T02:20:00.000Z","key":1486779600000,"doc_count":9},{"key_as_string":"2017-02-11T02:21:00.000Z","key":1486779660000,"doc_count":7},{"key_as_string":"2017-02-11T02:22:00.000Z","key":1486779720000,"doc_count":14},{"key_as_string":"2017-02-11T02:23:00.000Z","key":1486779780000,"doc_count":8},{"key_as_string":"2017-02-11T02:24:00.000Z","key":1486779840000,"doc_count":9},{"key_as_string":"2017-02-11T02:25:00.000Z","key":1486779900000,"doc_count":10},{"key_as_string":"2017-02-11T02:26:00.000Z","key":1486779960000,"doc_count":15},{"key_as_string":"2017-02-11T02:27:00.000Z","key":1486780020000,"doc_count":12},{"key_as_string":"2017-02-11T02:28:00.000Z","key":1486780080000,"doc_count":8},{"key_as_string":"2017-02-11T02:29:00.000Z","key":1486780140000,"doc_count":7},{"key_as_string":"2017-02-11T02:30:00.000Z","key":1486780200000,"doc_count":13},{"key_as_string":"2017-02-11T02:31:00.000Z","key":1486780260000,"doc_count":9},{"key_as_string":"2017-02-11T02:32:00.000Z","key":1486780320000,"doc_count":11},{"key_as_string":"2017-02-11T02:33:00.000Z","key":1486780380000,"doc_count":9},{"key_as_string":"2017-02-11T02:34:00.000Z","key":1486780440000,"doc_count":12},{"key_as_string":"2017-02-11T02:35:00.000Z","key":1486780500000,"doc_count":11},{"key_as_string":"2017-02-11T02:36:00.000Z","key":1486780560000,"doc_count":4},{"key_as_string":"2017-02-11T02:37:00.000Z","key":1486780620000,"doc_count":12},{"key_as_string":"2017-02-11T02:38:00.000Z","key":1486780680000,"doc_count":6},{"key_as_string":"2017-02-11T02:39:00.000Z","key":1486780740000,"doc_count":12},{"key_as_string":"2017-02-11T02:40:00.000Z","key":1486780800000,"doc_count":12},{"key_as_string":"2017-02-11T02:41:00.000Z","key":1486780860000,"doc_count":12},{"key_as_string":"2017-02-11T02:42:00.000Z","key":1486780920000,"doc_count":13},{"key_as_string":"2017-02-11T02:43:00.000Z","key":1486780980000,"doc_count":12},{"key_as_string":"2017-02-11T02:44:00.000Z","key":1486781040000,"doc_count":13},{"key_as_string":"2017-02-11T02:45:00.000Z","key":1486781100000,"doc_count":11},{"key_as_string":"2017-02-11T02:46:00.000Z","key":1486781160000,"doc_count":5},{"key_as_string":"2017-02-11T02:47:00.000Z","key":1486781220000,"doc_count":14},{"key_as_string":"2017-02-11T02:48:00.000Z","key":1486781280000,"doc_count":8},{"key_as_string":"2017-02-11T02:49:00.000Z","key":1486781340000,"doc_count":14},{"key_as_string":"2017-02-11T02:50:00.000Z","key":1486781400000,"doc_count":16},{"key_as_string":"2017-02-11T02:51:00.000Z","key":1486781460000,"doc_count":7},{"key_as_string":"2017-02-11T02:52:00.000Z","key":1486781520000,"doc_count":7},{"key_as_string":"2017-02-11T02:53:00.000Z","key":1486781580000,"doc_count":15},{"key_as_string":"2017-02-11T02:54:00.000Z","key":1486781640000,"doc_count":13},{"key_as_string":"2017-02-11T02:55:00.000Z","key":1486781700000,"doc_count":5},{"key_as_string":"2017-02-11T02:56:00.000Z","key":1486781760000,"doc_count":8},{"key_as_string":"2017-02-11T02:57:00.000Z","key":1486781820000,"doc_count":8},{"key_as_string":"2017-02-11T02:58:00.000Z","key":1486781880000,"doc_count":16},{"key_as_string":"2017-02-11T02:59:00.000Z","key":1486781940000,"doc_count":9},{"key_as_string":"2017-02-11T03:00:00.000Z","key":1486782000000,"doc_count":9},{"key_as_string":"2017-02-11T03:01:00.000Z","key":1486782060000,"doc_count":13},{"key_as_string":"2017-02-11T03:02:00.000Z","key":1486782120000,"doc_count":14},{"key_as_string":"2017-02-11T03:03:00.000Z","key":1486782180000,"doc_count":10},{"key_as_string":"2017-02-11T03:04:00.000Z","key":1486782240000,"doc_count":8},{"key_as_string":"2017-02-11T03:05:00.000Z","key":1486782300000,"doc_count":14},{"key_as_string":"2017-02-11T03:06:00.000Z","key":1486782360000,"doc_count":11},{"key_as_string":"2017-02-11T03:07:00.000Z","key":1486782420000,"doc_count":11},{"key_as_string":"2017-02-11T03:08:00.000Z","key":1486782480000,"doc_count":8},{"key_as_string":"2017-02-11T03:09:00.000Z","key":1486782540000,"doc_count":13},{"key_as_string":"2017-02-11T03:10:00.000Z","key":1486782600000,"doc_count":12},{"key_as_string":"2017-02-11T03:11:00.000Z","key":1486782660000,"doc_count":9},{"key_as_string":"2017-02-11T03:12:00.000Z","key":1486782720000,"doc_count":9},{"key_as_string":"2017-02-11T03:13:00.000Z","key":1486782780000,"doc_count":9},{"key_as_string":"2017-02-11T03:14:00.000Z","key":1486782840000,"doc_count":11},{"key_as_string":"2017-02-11T03:15:00.000Z","key":1486782900000,"doc_count":9},{"key_as_string":"2017-02-11T03:16:00.000Z","key":1486782960000,"doc_count":20},{"key_as_string":"2017-02-11T03:17:00.000Z","key":1486783020000,"doc_count":7},{"key_as_string":"2017-02-11T03:18:00.000Z","key":1486783080000,"doc_count":11},{"key_as_string":"2017-02-11T03:19:00.000Z","key":1486783140000,"doc_count":10},{"key_as_string":"2017-02-11T03:20:00.000Z","key":1486783200000,"doc_count":8},{"key_as_string":"2017-02-11T03:21:00.000Z","key":1486783260000,"doc_count":16},{"key_as_string":"2017-02-11T03:22:00.000Z","key":1486783320000,"doc_count":5},{"key_as_string":"2017-02-11T03:23:00.000Z","key":1486783380000,"doc_count":12},{"key_as_string":"2017-02-11T03:24:00.000Z","key":1486783440000,"doc_count":8},{"key_as_string":"2017-02-11T03:25:00.000Z","key":1486783500000,"doc_count":17},{"key_as_string":"2017-02-11T03:26:00.000Z","key":1486783560000,"doc_count":8},{"key_as_string":"2017-02-11T03:27:00.000Z","key":1486783620000,"doc_count":14},{"key_as_string":"2017-02-11T03:28:00.000Z","key":1486783680000,"doc_count":7},{"key_as_string":"2017-02-11T03:29:00.000Z","key":1486783740000,"doc_count":12},{"key_as_string":"2017-02-11T03:30:00.000Z","key":1486783800000,"doc_count":13},{"key_as_string":"2017-02-11T03:31:00.000Z","key":1486783860000,"doc_count":9},{"key_as_string":"2017-02-11T03:32:00.000Z","key":1486783920000,"doc_count":5},{"key_as_string":"2017-02-11T03:33:00.000Z","key":1486783980000,"doc_count":10},{"key_as_string":"2017-02-11T03:34:00.000Z","key":1486784040000,"doc_count":14},{"key_as_string":"2017-02-11T03:35:00.000Z","key":1486784100000,"doc_count":13},{"key_as_string":"2017-02-11T03:36:00.000Z","key":1486784160000,"doc_count":9},{"key_as_string":"2017-02-11T03:37:00.000Z","key":1486784220000,"doc_count":10},{"key_as_string":"2017-02-11T03:38:00.000Z","key":1486784280000,"doc_count":10},{"key_as_string":"2017-02-11T03:39:00.000Z","key":1486784340000,"doc_count":12},{"key_as_string":"2017-02-11T03:40:00.000Z","key":1486784400000,"doc_count":11},{"key_as_string":"2017-02-11T03:41:00.000Z","key":1486784460000,"doc_count":11},{"key_as_string":"2017-02-11T03:42:00.000Z","key":1486784520000,"doc_count":7},{"key_as_string":"2017-02-11T03:43:00.000Z","key":1486784580000,"doc_count":18},{"key_as_string":"2017-02-11T03:44:00.000Z","key":1486784640000,"doc_count":6},{"key_as_string":"2017-02-11T03:45:00.000Z","key":1486784700000,"doc_count":12},{"key_as_string":"2017-02-11T03:46:00.000Z","key":1486784760000,"doc_count":13},{"key_as_string":"2017-02-11T03:47:00.000Z","key":1486784820000,"doc_count":13},{"key_as_string":"2017-02-11T03:48:00.000Z","key":1486784880000,"doc_count":15},{"key_as_string":"2017-02-11T03:49:00.000Z","key":1486784940000,"doc_count":11},{"key_as_string":"2017-02-11T03:50:00.000Z","key":1486785000000,"doc_count":9},{"key_as_string":"2017-02-11T03:51:00.000Z","key":1486785060000,"doc_count":14},{"key_as_string":"2017-02-11T03:52:00.000Z","key":1486785120000,"doc_count":7},{"key_as_string":"2017-02-11T03:53:00.000Z","key":1486785180000,"doc_count":11},{"key_as_string":"2017-02-11T03:54:00.000Z","key":1486785240000,"doc_count":8},{"key_as_string":"2017-02-11T03:55:00.000Z","key":1486785300000,"doc_count":7},{"key_as_string":"2017-02-11T03:56:00.000Z","key":1486785360000,"doc_count":10},{"key_as_string":"2017-02-11T03:57:00.000Z","key":1486785420000,"doc_count":13},{"key_as_string":"2017-02-11T03:58:00.000Z","key":1486785480000,"doc_count":11},{"key_as_string":"2017-02-11T03:59:00.000Z","key":1486785540000,"doc_count":8},{"key_as_string":"2017-02-11T04:00:00.000Z","key":1486785600000,"doc_count":11},{"key_as_string":"2017-02-11T04:01:00.000Z","key":1486785660000,"doc_count":9},{"key_as_string":"2017-02-11T04:02:00.000Z","key":1486785720000,"doc_count":13},{"key_as_string":"2017-02-11T04:03:00.000Z","key":1486785780000,"doc_count":14},{"key_as_string":"2017-02-11T04:04:00.000Z","key":1486785840000,"doc_count":13},{"key_as_string":"2017-02-11T04:05:00.000Z","key":1486785900000,"doc_count":9},{"key_as_string":"2017-02-11T04:06:00.000Z","key":1486785960000,"doc_count":8},{"key_as_string":"2017-02-11T04:07:00.000Z","key":1486786020000,"doc_count":8},{"key_as_string":"2017-02-11T04:08:00.000Z","key":1486786080000,"doc_count":14},{"key_as_string":"2017-02-11T04:09:00.000Z","key":1486786140000,"doc_count":10},{"key_as_string":"2017-02-11T04:10:00.000Z","key":1486786200000,"doc_count":12},{"key_as_string":"2017-02-11T04:11:00.000Z","key":1486786260000,"doc_count":9},{"key_as_string":"2017-02-11T04:12:00.000Z","key":1486786320000,"doc_count":11},{"key_as_string":"2017-02-11T04:13:00.000Z","key":1486786380000,"doc_count":19},{"key_as_string":"2017-02-11T04:14:00.000Z","key":1486786440000,"doc_count":9},{"key_as_string":"2017-02-11T04:15:00.000Z","key":1486786500000,"doc_count":9},{"key_as_string":"2017-02-11T04:16:00.000Z","key":1486786560000,"doc_count":15},{"key_as_string":"2017-02-11T04:17:00.000Z","key":1486786620000,"doc_count":17},{"key_as_string":"2017-02-11T04:18:00.000Z","key":1486786680000,"doc_count":15},{"key_as_string":"2017-02-11T04:19:00.000Z","key":1486786740000,"doc_count":8},{"key_as_string":"2017-02-11T04:20:00.000Z","key":1486786800000,"doc_count":11},{"key_as_string":"2017-02-11T04:21:00.000Z","key":1486786860000,"doc_count":13},{"key_as_string":"2017-02-11T04:22:00.000Z","key":1486786920000,"doc_count":11},{"key_as_string":"2017-02-11T04:23:00.000Z","key":1486786980000,"doc_count":7},{"key_as_string":"2017-02-11T04:24:00.000Z","key":1486787040000,"doc_count":14},{"key_as_string":"2017-02-11T04:25:00.000Z","key":1486787100000,"doc_count":11},{"key_as_string":"2017-02-11T04:26:00.000Z","key":1486787160000,"doc_count":9},{"key_as_string":"2017-02-11T04:27:00.000Z","key":1486787220000,"doc_count":6},{"key_as_string":"2017-02-11T04:28:00.000Z","key":1486787280000,"doc_count":17},{"key_as_string":"2017-02-11T04:29:00.000Z","key":1486787340000,"doc_count":9},{"key_as_string":"2017-02-11T04:30:00.000Z","key":1486787400000,"doc_count":9},{"key_as_string":"2017-02-11T04:31:00.000Z","key":1486787460000,"doc_count":8},{"key_as_string":"2017-02-11T04:32:00.000Z","key":1486787520000,"doc_count":12},{"key_as_string":"2017-02-11T04:33:00.000Z","key":1486787580000,"doc_count":11},{"key_as_string":"2017-02-11T04:34:00.000Z","key":1486787640000,"doc_count":10},{"key_as_string":"2017-02-11T04:35:00.000Z","key":1486787700000,"doc_count":11},{"key_as_string":"2017-02-11T04:36:00.000Z","key":1486787760000,"doc_count":11},{"key_as_string":"2017-02-11T04:37:00.000Z","key":1486787820000,"doc_count":15},{"key_as_string":"2017-02-11T04:38:00.000Z","key":1486787880000,"doc_count":11},{"key_as_string":"2017-02-11T04:39:00.000Z","key":1486787940000,"doc_count":10},{"key_as_string":"2017-02-11T04:40:00.000Z","key":1486788000000,"doc_count":10},{"key_as_string":"2017-02-11T04:41:00.000Z","key":1486788060000,"doc_count":10},{"key_as_string":"2017-02-11T04:42:00.000Z","key":1486788120000,"doc_count":8},{"key_as_string":"2017-02-11T04:43:00.000Z","key":1486788180000,"doc_count":9},{"key_as_string":"2017-02-11T04:44:00.000Z","key":1486788240000,"doc_count":8},{"key_as_string":"2017-02-11T04:45:00.000Z","key":1486788300000,"doc_count":19},{"key_as_string":"2017-02-11T04:46:00.000Z","key":1486788360000,"doc_count":11},{"key_as_string":"2017-02-11T04:47:00.000Z","key":1486788420000,"doc_count":11},{"key_as_string":"2017-02-11T04:48:00.000Z","key":1486788480000,"doc_count":10},{"key_as_string":"2017-02-11T04:49:00.000Z","key":1486788540000,"doc_count":9},{"key_as_string":"2017-02-11T04:50:00.000Z","key":1486788600000,"doc_count":9},{"key_as_string":"2017-02-11T04:51:00.000Z","key":1486788660000,"doc_count":15},{"key_as_string":"2017-02-11T04:52:00.000Z","key":1486788720000,"doc_count":11},{"key_as_string":"2017-02-11T04:53:00.000Z","key":1486788780000,"doc_count":11},{"key_as_string":"2017-02-11T04:54:00.000Z","key":1486788840000,"doc_count":12},{"key_as_string":"2017-02-11T04:55:00.000Z","key":1486788900000,"doc_count":12},{"key_as_string":"2017-02-11T04:56:00.000Z","key":1486788960000,"doc_count":9},{"key_as_string":"2017-02-11T04:57:00.000Z","key":1486789020000,"doc_count":16},{"key_as_string":"2017-02-11T04:58:00.000Z","key":1486789080000,"doc_count":11},{"key_as_string":"2017-02-11T04:59:00.000Z","key":1486789140000,"doc_count":10},{"key_as_string":"2017-02-11T05:00:00.000Z","key":1486789200000,"doc_count":9},{"key_as_string":"2017-02-11T05:01:00.000Z","key":1486789260000,"doc_count":14},{"key_as_string":"2017-02-11T05:02:00.000Z","key":1486789320000,"doc_count":10},{"key_as_string":"2017-02-11T05:03:00.000Z","key":1486789380000,"doc_count":11},{"key_as_string":"2017-02-11T05:04:00.000Z","key":1486789440000,"doc_count":11},{"key_as_string":"2017-02-11T05:05:00.000Z","key":1486789500000,"doc_count":6},{"key_as_string":"2017-02-11T05:06:00.000Z","key":1486789560000,"doc_count":19},{"key_as_string":"2017-02-11T05:07:00.000Z","key":1486789620000,"doc_count":11},{"key_as_string":"2017-02-11T05:08:00.000Z","key":1486789680000,"doc_count":15},{"key_as_string":"2017-02-11T05:09:00.000Z","key":1486789740000,"doc_count":10},{"key_as_string":"2017-02-11T05:10:00.000Z","key":1486789800000,"doc_count":13},{"key_as_string":"2017-02-11T05:11:00.000Z","key":1486789860000,"doc_count":12},{"key_as_string":"2017-02-11T05:12:00.000Z","key":1486789920000,"doc_count":14},{"key_as_string":"2017-02-11T05:13:00.000Z","key":1486789980000,"doc_count":12},{"key_as_string":"2017-02-11T05:14:00.000Z","key":1486790040000,"doc_count":13},{"key_as_string":"2017-02-11T05:15:00.000Z","key":1486790100000,"doc_count":7},{"key_as_string":"2017-02-11T05:16:00.000Z","key":1486790160000,"doc_count":10},{"key_as_string":"2017-02-11T05:17:00.000Z","key":1486790220000,"doc_count":12},{"key_as_string":"2017-02-11T05:18:00.000Z","key":1486790280000,"doc_count":15},{"key_as_string":"2017-02-11T05:19:00.000Z","key":1486790340000,"doc_count":10},{"key_as_string":"2017-02-11T05:20:00.000Z","key":1486790400000,"doc_count":9},{"key_as_string":"2017-02-11T05:21:00.000Z","key":1486790460000,"doc_count":10},{"key_as_string":"2017-02-11T05:22:00.000Z","key":1486790520000,"doc_count":15},{"key_as_string":"2017-02-11T05:23:00.000Z","key":1486790580000,"doc_count":9},{"key_as_string":"2017-02-11T05:24:00.000Z","key":1486790640000,"doc_count":13},{"key_as_string":"2017-02-11T05:25:00.000Z","key":1486790700000,"doc_count":12},{"key_as_string":"2017-02-11T05:26:00.000Z","key":1486790760000,"doc_count":9},{"key_as_string":"2017-02-11T05:27:00.000Z","key":1486790820000,"doc_count":15},{"key_as_string":"2017-02-11T05:28:00.000Z","key":1486790880000,"doc_count":11},{"key_as_string":"2017-02-11T05:29:00.000Z","key":1486790940000,"doc_count":14},{"key_as_string":"2017-02-11T05:30:00.000Z","key":1486791000000,"doc_count":14},{"key_as_string":"2017-02-11T05:31:00.000Z","key":1486791060000,"doc_count":15},{"key_as_string":"2017-02-11T05:32:00.000Z","key":1486791120000,"doc_count":7},{"key_as_string":"2017-02-11T05:33:00.000Z","key":1486791180000,"doc_count":7},{"key_as_string":"2017-02-11T05:34:00.000Z","key":1486791240000,"doc_count":9},{"key_as_string":"2017-02-11T05:35:00.000Z","key":1486791300000,"doc_count":13},{"key_as_string":"2017-02-11T05:36:00.000Z","key":1486791360000,"doc_count":11},{"key_as_string":"2017-02-11T05:37:00.000Z","key":1486791420000,"doc_count":11},{"key_as_string":"2017-02-11T05:38:00.000Z","key":1486791480000,"doc_count":10},{"key_as_string":"2017-02-11T05:39:00.000Z","key":1486791540000,"doc_count":7},{"key_as_string":"2017-02-11T05:40:00.000Z","key":1486791600000,"doc_count":12},{"key_as_string":"2017-02-11T05:41:00.000Z","key":1486791660000,"doc_count":11},{"key_as_string":"2017-02-11T05:42:00.000Z","key":1486791720000,"doc_count":16},{"key_as_string":"2017-02-11T05:43:00.000Z","key":1486791780000,"doc_count":12},{"key_as_string":"2017-02-11T05:44:00.000Z","key":1486791840000,"doc_count":8},{"key_as_string":"2017-02-11T05:45:00.000Z","key":1486791900000,"doc_count":13},{"key_as_string":"2017-02-11T05:46:00.000Z","key":1486791960000,"doc_count":17},{"key_as_string":"2017-02-11T05:47:00.000Z","key":1486792020000,"doc_count":8},{"key_as_string":"2017-02-11T05:48:00.000Z","key":1486792080000,"doc_count":9},{"key_as_string":"2017-02-11T05:49:00.000Z","key":1486792140000,"doc_count":9},{"key_as_string":"2017-02-11T05:50:00.000Z","key":1486792200000,"doc_count":13},{"key_as_string":"2017-02-11T05:51:00.000Z","key":1486792260000,"doc_count":7},{"key_as_string":"2017-02-11T05:52:00.000Z","key":1486792320000,"doc_count":13},{"key_as_string":"2017-02-11T05:53:00.000Z","key":1486792380000,"doc_count":8},{"key_as_string":"2017-02-11T05:54:00.000Z","key":1486792440000,"doc_count":12},{"key_as_string":"2017-02-11T05:55:00.000Z","key":1486792500000,"doc_count":9},{"key_as_string":"2017-02-11T05:56:00.000Z","key":1486792560000,"doc_count":15},{"key_as_string":"2017-02-11T05:57:00.000Z","key":1486792620000,"doc_count":11},{"key_as_string":"2017-02-11T05:58:00.000Z","key":1486792680000,"doc_count":14},{"key_as_string":"2017-02-11T05:59:00.000Z","key":1486792740000,"doc_count":10},{"key_as_string":"2017-02-11T06:00:00.000Z","key":1486792800000,"doc_count":15},{"key_as_string":"2017-02-11T06:01:00.000Z","key":1486792860000,"doc_count":10},{"key_as_string":"2017-02-11T06:02:00.000Z","key":1486792920000,"doc_count":9},{"key_as_string":"2017-02-11T06:03:00.000Z","key":1486792980000,"doc_count":16},{"key_as_string":"2017-02-11T06:04:00.000Z","key":1486793040000,"doc_count":12},{"key_as_string":"2017-02-11T06:05:00.000Z","key":1486793100000,"doc_count":13},{"key_as_string":"2017-02-11T06:06:00.000Z","key":1486793160000,"doc_count":14},{"key_as_string":"2017-02-11T06:07:00.000Z","key":1486793220000,"doc_count":11},{"key_as_string":"2017-02-11T06:08:00.000Z","key":1486793280000,"doc_count":16},{"key_as_string":"2017-02-11T06:09:00.000Z","key":1486793340000,"doc_count":9},{"key_as_string":"2017-02-11T06:10:00.000Z","key":1486793400000,"doc_count":15},{"key_as_string":"2017-02-11T06:11:00.000Z","key":1486793460000,"doc_count":9},{"key_as_string":"2017-02-11T06:12:00.000Z","key":1486793520000,"doc_count":9},{"key_as_string":"2017-02-11T06:13:00.000Z","key":1486793580000,"doc_count":13},{"key_as_string":"2017-02-11T06:14:00.000Z","key":1486793640000,"doc_count":12},{"key_as_string":"2017-02-11T06:15:00.000Z","key":1486793700000,"doc_count":11},{"key_as_string":"2017-02-11T06:16:00.000Z","key":1486793760000,"doc_count":14},{"key_as_string":"2017-02-11T06:17:00.000Z","key":1486793820000,"doc_count":16},{"key_as_string":"2017-02-11T06:18:00.000Z","key":1486793880000,"doc_count":7},{"key_as_string":"2017-02-11T06:19:00.000Z","key":1486793940000,"doc_count":18},{"key_as_string":"2017-02-11T06:20:00.000Z","key":1486794000000,"doc_count":15},{"key_as_string":"2017-02-11T06:21:00.000Z","key":1486794060000,"doc_count":10},{"key_as_string":"2017-02-11T06:22:00.000Z","key":1486794120000,"doc_count":10},{"key_as_string":"2017-02-11T06:23:00.000Z","key":1486794180000,"doc_count":11},{"key_as_string":"2017-02-11T06:24:00.000Z","key":1486794240000,"doc_count":7},{"key_as_string":"2017-02-11T06:25:00.000Z","key":1486794300000,"doc_count":12},{"key_as_string":"2017-02-11T06:26:00.000Z","key":1486794360000,"doc_count":10},{"key_as_string":"2017-02-11T06:27:00.000Z","key":1486794420000,"doc_count":11},{"key_as_string":"2017-02-11T06:28:00.000Z","key":1486794480000,"doc_count":13},{"key_as_string":"2017-02-11T06:29:00.000Z","key":1486794540000,"doc_count":11},{"key_as_string":"2017-02-11T06:30:00.000Z","key":1486794600000,"doc_count":13},{"key_as_string":"2017-02-11T06:31:00.000Z","key":1486794660000,"doc_count":10},{"key_as_string":"2017-02-11T06:32:00.000Z","key":1486794720000,"doc_count":13},{"key_as_string":"2017-02-11T06:33:00.000Z","key":1486794780000,"doc_count":14},{"key_as_string":"2017-02-11T06:34:00.000Z","key":1486794840000,"doc_count":15},{"key_as_string":"2017-02-11T06:35:00.000Z","key":1486794900000,"doc_count":11},{"key_as_string":"2017-02-11T06:36:00.000Z","key":1486794960000,"doc_count":14},{"key_as_string":"2017-02-11T06:37:00.000Z","key":1486795020000,"doc_count":10},{"key_as_string":"2017-02-11T06:38:00.000Z","key":1486795080000,"doc_count":13},{"key_as_string":"2017-02-11T06:39:00.000Z","key":1486795140000,"doc_count":7},{"key_as_string":"2017-02-11T06:40:00.000Z","key":1486795200000,"doc_count":12},{"key_as_string":"2017-02-11T06:41:00.000Z","key":1486795260000,"doc_count":12},{"key_as_string":"2017-02-11T06:42:00.000Z","key":1486795320000,"doc_count":10},{"key_as_string":"2017-02-11T06:43:00.000Z","key":1486795380000,"doc_count":14},{"key_as_string":"2017-02-11T06:44:00.000Z","key":1486795440000,"doc_count":15},{"key_as_string":"2017-02-11T06:45:00.000Z","key":1486795500000,"doc_count":10},{"key_as_string":"2017-02-11T06:46:00.000Z","key":1486795560000,"doc_count":12},{"key_as_string":"2017-02-11T06:47:00.000Z","key":1486795620000,"doc_count":14},{"key_as_string":"2017-02-11T06:48:00.000Z","key":1486795680000,"doc_count":15},{"key_as_string":"2017-02-11T06:49:00.000Z","key":1486795740000,"doc_count":11},{"key_as_string":"2017-02-11T06:50:00.000Z","key":1486795800000,"doc_count":14},{"key_as_string":"2017-02-11T06:51:00.000Z","key":1486795860000,"doc_count":9},{"key_as_string":"2017-02-11T06:52:00.000Z","key":1486795920000,"doc_count":15},{"key_as_string":"2017-02-11T06:53:00.000Z","key":1486795980000,"doc_count":6},{"key_as_string":"2017-02-11T06:54:00.000Z","key":1486796040000,"doc_count":15},{"key_as_string":"2017-02-11T06:55:00.000Z","key":1486796100000,"doc_count":12},{"key_as_string":"2017-02-11T06:56:00.000Z","key":1486796160000,"doc_count":11},{"key_as_string":"2017-02-11T06:57:00.000Z","key":1486796220000,"doc_count":15},{"key_as_string":"2017-02-11T06:58:00.000Z","key":1486796280000,"doc_count":12},{"key_as_string":"2017-02-11T06:59:00.000Z","key":1486796340000,"doc_count":9},{"key_as_string":"2017-02-11T07:00:00.000Z","key":1486796400000,"doc_count":17},{"key_as_string":"2017-02-11T07:01:00.000Z","key":1486796460000,"doc_count":11},{"key_as_string":"2017-02-11T07:02:00.000Z","key":1486796520000,"doc_count":12},{"key_as_string":"2017-02-11T07:03:00.000Z","key":1486796580000,"doc_count":15},{"key_as_string":"2017-02-11T07:04:00.000Z","key":1486796640000,"doc_count":16},{"key_as_string":"2017-02-11T07:05:00.000Z","key":1486796700000,"doc_count":13},{"key_as_string":"2017-02-11T07:06:00.000Z","key":1486796760000,"doc_count":12},{"key_as_string":"2017-02-11T07:07:00.000Z","key":1486796820000,"doc_count":10},{"key_as_string":"2017-02-11T07:08:00.000Z","key":1486796880000,"doc_count":18},{"key_as_string":"2017-02-11T07:09:00.000Z","key":1486796940000,"doc_count":10},{"key_as_string":"2017-02-11T07:10:00.000Z","key":1486797000000,"doc_count":12},{"key_as_string":"2017-02-11T07:11:00.000Z","key":1486797060000,"doc_count":16},{"key_as_string":"2017-02-11T07:12:00.000Z","key":1486797120000,"doc_count":13},{"key_as_string":"2017-02-11T07:13:00.000Z","key":1486797180000,"doc_count":9},{"key_as_string":"2017-02-11T07:14:00.000Z","key":1486797240000,"doc_count":12},{"key_as_string":"2017-02-11T07:15:00.000Z","key":1486797300000,"doc_count":9},{"key_as_string":"2017-02-11T07:16:00.000Z","key":1486797360000,"doc_count":11},{"key_as_string":"2017-02-11T07:17:00.000Z","key":1486797420000,"doc_count":12},{"key_as_string":"2017-02-11T07:18:00.000Z","key":1486797480000,"doc_count":13},{"key_as_string":"2017-02-11T07:19:00.000Z","key":1486797540000,"doc_count":14},{"key_as_string":"2017-02-11T07:20:00.000Z","key":1486797600000,"doc_count":11},{"key_as_string":"2017-02-11T07:21:00.000Z","key":1486797660000,"doc_count":16},{"key_as_string":"2017-02-11T07:22:00.000Z","key":1486797720000,"doc_count":9},{"key_as_string":"2017-02-11T07:23:00.000Z","key":1486797780000,"doc_count":14},{"key_as_string":"2017-02-11T07:24:00.000Z","key":1486797840000,"doc_count":11},{"key_as_string":"2017-02-11T07:25:00.000Z","key":1486797900000,"doc_count":14},{"key_as_string":"2017-02-11T07:26:00.000Z","key":1486797960000,"doc_count":12},{"key_as_string":"2017-02-11T07:27:00.000Z","key":1486798020000,"doc_count":15},{"key_as_string":"2017-02-11T07:28:00.000Z","key":1486798080000,"doc_count":8},{"key_as_string":"2017-02-11T07:29:00.000Z","key":1486798140000,"doc_count":12},{"key_as_string":"2017-02-11T07:30:00.000Z","key":1486798200000,"doc_count":13},{"key_as_string":"2017-02-11T07:31:00.000Z","key":1486798260000,"doc_count":11},{"key_as_string":"2017-02-11T07:32:00.000Z","key":1486798320000,"doc_count":12},{"key_as_string":"2017-02-11T07:33:00.000Z","key":1486798380000,"doc_count":12},{"key_as_string":"2017-02-11T07:34:00.000Z","key":1486798440000,"doc_count":12},{"key_as_string":"2017-02-11T07:35:00.000Z","key":1486798500000,"doc_count":12},{"key_as_string":"2017-02-11T07:36:00.000Z","key":1486798560000,"doc_count":13},{"key_as_string":"2017-02-11T07:37:00.000Z","key":1486798620000,"doc_count":9},{"key_as_string":"2017-02-11T07:38:00.000Z","key":1486798680000,"doc_count":13},{"key_as_string":"2017-02-11T07:39:00.000Z","key":1486798740000,"doc_count":9},{"key_as_string":"2017-02-11T07:40:00.000Z","key":1486798800000,"doc_count":12},{"key_as_string":"2017-02-11T07:41:00.000Z","key":1486798860000,"doc_count":12},{"key_as_string":"2017-02-11T07:42:00.000Z","key":1486798920000,"doc_count":17},{"key_as_string":"2017-02-11T07:43:00.000Z","key":1486798980000,"doc_count":12},{"key_as_string":"2017-02-11T07:44:00.000Z","key":1486799040000,"doc_count":11},{"key_as_string":"2017-02-11T07:45:00.000Z","key":1486799100000,"doc_count":14},{"key_as_string":"2017-02-11T07:46:00.000Z","key":1486799160000,"doc_count":14},{"key_as_string":"2017-02-11T07:47:00.000Z","key":1486799220000,"doc_count":9},{"key_as_string":"2017-02-11T07:48:00.000Z","key":1486799280000,"doc_count":11},{"key_as_string":"2017-02-11T07:49:00.000Z","key":1486799340000,"doc_count":11},{"key_as_string":"2017-02-11T07:50:00.000Z","key":1486799400000,"doc_count":9},{"key_as_string":"2017-02-11T07:51:00.000Z","key":1486799460000,"doc_count":12},{"key_as_string":"2017-02-11T07:52:00.000Z","key":1486799520000,"doc_count":12},{"key_as_string":"2017-02-11T07:53:00.000Z","key":1486799580000,"doc_count":7},{"key_as_string":"2017-02-11T07:54:00.000Z","key":1486799640000,"doc_count":17},{"key_as_string":"2017-02-11T07:55:00.000Z","key":1486799700000,"doc_count":13},{"key_as_string":"2017-02-11T07:56:00.000Z","key":1486799760000,"doc_count":12},{"key_as_string":"2017-02-11T07:57:00.000Z","key":1486799820000,"doc_count":11},{"key_as_string":"2017-02-11T07:58:00.000Z","key":1486799880000,"doc_count":13},{"key_as_string":"2017-02-11T07:59:00.000Z","key":1486799940000,"doc_count":11},{"key_as_string":"2017-02-11T08:00:00.000Z","key":1486800000000,"doc_count":16},{"key_as_string":"2017-02-11T08:01:00.000Z","key":1486800060000,"doc_count":15},{"key_as_string":"2017-02-11T08:02:00.000Z","key":1486800120000,"doc_count":14},{"key_as_string":"2017-02-11T08:03:00.000Z","key":1486800180000,"doc_count":16},{"key_as_string":"2017-02-11T08:04:00.000Z","key":1486800240000,"doc_count":12},{"key_as_string":"2017-02-11T08:05:00.000Z","key":1486800300000,"doc_count":14},{"key_as_string":"2017-02-11T08:06:00.000Z","key":1486800360000,"doc_count":13},{"key_as_string":"2017-02-11T08:07:00.000Z","key":1486800420000,"doc_count":16},{"key_as_string":"2017-02-11T08:08:00.000Z","key":1486800480000,"doc_count":17},{"key_as_string":"2017-02-11T08:09:00.000Z","key":1486800540000,"doc_count":20},{"key_as_string":"2017-02-11T08:10:00.000Z","key":1486800600000,"doc_count":13},{"key_as_string":"2017-02-11T08:11:00.000Z","key":1486800660000,"doc_count":15},{"key_as_string":"2017-02-11T08:12:00.000Z","key":1486800720000,"doc_count":10},{"key_as_string":"2017-02-11T08:13:00.000Z","key":1486800780000,"doc_count":16},{"key_as_string":"2017-02-11T08:14:00.000Z","key":1486800840000,"doc_count":5},{"key_as_string":"2017-02-11T08:15:00.000Z","key":1486800900000,"doc_count":14},{"key_as_string":"2017-02-11T08:16:00.000Z","key":1486800960000,"doc_count":18},{"key_as_string":"2017-02-11T08:17:00.000Z","key":1486801020000,"doc_count":11},{"key_as_string":"2017-02-11T08:18:00.000Z","key":1486801080000,"doc_count":16},{"key_as_string":"2017-02-11T08:19:00.000Z","key":1486801140000,"doc_count":10},{"key_as_string":"2017-02-11T08:20:00.000Z","key":1486801200000,"doc_count":15},{"key_as_string":"2017-02-11T08:21:00.000Z","key":1486801260000,"doc_count":10},{"key_as_string":"2017-02-11T08:22:00.000Z","key":1486801320000,"doc_count":14},{"key_as_string":"2017-02-11T08:23:00.000Z","key":1486801380000,"doc_count":10},{"key_as_string":"2017-02-11T08:24:00.000Z","key":1486801440000,"doc_count":19},{"key_as_string":"2017-02-11T08:25:00.000Z","key":1486801500000,"doc_count":14},{"key_as_string":"2017-02-11T08:26:00.000Z","key":1486801560000,"doc_count":13},{"key_as_string":"2017-02-11T08:27:00.000Z","key":1486801620000,"doc_count":10},{"key_as_string":"2017-02-11T08:28:00.000Z","key":1486801680000,"doc_count":15},{"key_as_string":"2017-02-11T08:29:00.000Z","key":1486801740000,"doc_count":10},{"key_as_string":"2017-02-11T08:30:00.000Z","key":1486801800000,"doc_count":11},{"key_as_string":"2017-02-11T08:31:00.000Z","key":1486801860000,"doc_count":9},{"key_as_string":"2017-02-11T08:32:00.000Z","key":1486801920000,"doc_count":14},{"key_as_string":"2017-02-11T08:33:00.000Z","key":1486801980000,"doc_count":10},{"key_as_string":"2017-02-11T08:34:00.000Z","key":1486802040000,"doc_count":12},{"key_as_string":"2017-02-11T08:35:00.000Z","key":1486802100000,"doc_count":16},{"key_as_string":"2017-02-11T08:36:00.000Z","key":1486802160000,"doc_count":19},{"key_as_string":"2017-02-11T08:37:00.000Z","key":1486802220000,"doc_count":13},{"key_as_string":"2017-02-11T08:38:00.000Z","key":1486802280000,"doc_count":11},{"key_as_string":"2017-02-11T08:39:00.000Z","key":1486802340000,"doc_count":16},{"key_as_string":"2017-02-11T08:40:00.000Z","key":1486802400000,"doc_count":13},{"key_as_string":"2017-02-11T08:41:00.000Z","key":1486802460000,"doc_count":10},{"key_as_string":"2017-02-11T08:42:00.000Z","key":1486802520000,"doc_count":12},{"key_as_string":"2017-02-11T08:43:00.000Z","key":1486802580000,"doc_count":11},{"key_as_string":"2017-02-11T08:44:00.000Z","key":1486802640000,"doc_count":9},{"key_as_string":"2017-02-11T08:45:00.000Z","key":1486802700000,"doc_count":12},{"key_as_string":"2017-02-11T08:46:00.000Z","key":1486802760000,"doc_count":11},{"key_as_string":"2017-02-11T08:47:00.000Z","key":1486802820000,"doc_count":15},{"key_as_string":"2017-02-11T08:48:00.000Z","key":1486802880000,"doc_count":9},{"key_as_string":"2017-02-11T08:49:00.000Z","key":1486802940000,"doc_count":17},{"key_as_string":"2017-02-11T08:50:00.000Z","key":1486803000000,"doc_count":14},{"key_as_string":"2017-02-11T08:51:00.000Z","key":1486803060000,"doc_count":14},{"key_as_string":"2017-02-11T08:52:00.000Z","key":1486803120000,"doc_count":11},{"key_as_string":"2017-02-11T08:53:00.000Z","key":1486803180000,"doc_count":13},{"key_as_string":"2017-02-11T08:54:00.000Z","key":1486803240000,"doc_count":17},{"key_as_string":"2017-02-11T08:55:00.000Z","key":1486803300000,"doc_count":13},{"key_as_string":"2017-02-11T08:56:00.000Z","key":1486803360000,"doc_count":15},{"key_as_string":"2017-02-11T08:57:00.000Z","key":1486803420000,"doc_count":15},{"key_as_string":"2017-02-11T08:58:00.000Z","key":1486803480000,"doc_count":14},{"key_as_string":"2017-02-11T08:59:00.000Z","key":1486803540000,"doc_count":6},{"key_as_string":"2017-02-11T09:00:00.000Z","key":1486803600000,"doc_count":15},{"key_as_string":"2017-02-11T09:01:00.000Z","key":1486803660000,"doc_count":9},{"key_as_string":"2017-02-11T09:02:00.000Z","key":1486803720000,"doc_count":15},{"key_as_string":"2017-02-11T09:03:00.000Z","key":1486803780000,"doc_count":10},{"key_as_string":"2017-02-11T09:04:00.000Z","key":1486803840000,"doc_count":11},{"key_as_string":"2017-02-11T09:05:00.000Z","key":1486803900000,"doc_count":17},{"key_as_string":"2017-02-11T09:06:00.000Z","key":1486803960000,"doc_count":10},{"key_as_string":"2017-02-11T09:07:00.000Z","key":1486804020000,"doc_count":13},{"key_as_string":"2017-02-11T09:08:00.000Z","key":1486804080000,"doc_count":15},{"key_as_string":"2017-02-11T09:09:00.000Z","key":1486804140000,"doc_count":10},{"key_as_string":"2017-02-11T09:10:00.000Z","key":1486804200000,"doc_count":16},{"key_as_string":"2017-02-11T09:11:00.000Z","key":1486804260000,"doc_count":18},{"key_as_string":"2017-02-11T09:12:00.000Z","key":1486804320000,"doc_count":10},{"key_as_string":"2017-02-11T09:13:00.000Z","key":1486804380000,"doc_count":14},{"key_as_string":"2017-02-11T09:14:00.000Z","key":1486804440000,"doc_count":9},{"key_as_string":"2017-02-11T09:15:00.000Z","key":1486804500000,"doc_count":17},{"key_as_string":"2017-02-11T09:16:00.000Z","key":1486804560000,"doc_count":18},{"key_as_string":"2017-02-11T09:17:00.000Z","key":1486804620000,"doc_count":12},{"key_as_string":"2017-02-11T09:18:00.000Z","key":1486804680000,"doc_count":15},{"key_as_string":"2017-02-11T09:19:00.000Z","key":1486804740000,"doc_count":10},{"key_as_string":"2017-02-11T09:20:00.000Z","key":1486804800000,"doc_count":14},{"key_as_string":"2017-02-11T09:21:00.000Z","key":1486804860000,"doc_count":15},{"key_as_string":"2017-02-11T09:22:00.000Z","key":1486804920000,"doc_count":12},{"key_as_string":"2017-02-11T09:23:00.000Z","key":1486804980000,"doc_count":17},{"key_as_string":"2017-02-11T09:24:00.000Z","key":1486805040000,"doc_count":13},{"key_as_string":"2017-02-11T09:25:00.000Z","key":1486805100000,"doc_count":17},{"key_as_string":"2017-02-11T09:26:00.000Z","key":1486805160000,"doc_count":11},{"key_as_string":"2017-02-11T09:27:00.000Z","key":1486805220000,"doc_count":11},{"key_as_string":"2017-02-11T09:28:00.000Z","key":1486805280000,"doc_count":13},{"key_as_string":"2017-02-11T09:29:00.000Z","key":1486805340000,"doc_count":9},{"key_as_string":"2017-02-11T09:30:00.000Z","key":1486805400000,"doc_count":20},{"key_as_string":"2017-02-11T09:31:00.000Z","key":1486805460000,"doc_count":13},{"key_as_string":"2017-02-11T09:32:00.000Z","key":1486805520000,"doc_count":17},{"key_as_string":"2017-02-11T09:33:00.000Z","key":1486805580000,"doc_count":16},{"key_as_string":"2017-02-11T09:34:00.000Z","key":1486805640000,"doc_count":11},{"key_as_string":"2017-02-11T09:35:00.000Z","key":1486805700000,"doc_count":18},{"key_as_string":"2017-02-11T09:36:00.000Z","key":1486805760000,"doc_count":14},{"key_as_string":"2017-02-11T09:37:00.000Z","key":1486805820000,"doc_count":17},{"key_as_string":"2017-02-11T09:38:00.000Z","key":1486805880000,"doc_count":12},{"key_as_string":"2017-02-11T09:39:00.000Z","key":1486805940000,"doc_count":12},{"key_as_string":"2017-02-11T09:40:00.000Z","key":1486806000000,"doc_count":14},{"key_as_string":"2017-02-11T09:41:00.000Z","key":1486806060000,"doc_count":11},{"key_as_string":"2017-02-11T09:42:00.000Z","key":1486806120000,"doc_count":12},{"key_as_string":"2017-02-11T09:43:00.000Z","key":1486806180000,"doc_count":14},{"key_as_string":"2017-02-11T09:44:00.000Z","key":1486806240000,"doc_count":16},{"key_as_string":"2017-02-11T09:45:00.000Z","key":1486806300000,"doc_count":17},{"key_as_string":"2017-02-11T09:46:00.000Z","key":1486806360000,"doc_count":12},{"key_as_string":"2017-02-11T09:47:00.000Z","key":1486806420000,"doc_count":15},{"key_as_string":"2017-02-11T09:48:00.000Z","key":1486806480000,"doc_count":13},{"key_as_string":"2017-02-11T09:49:00.000Z","key":1486806540000,"doc_count":14},{"key_as_string":"2017-02-11T09:50:00.000Z","key":1486806600000,"doc_count":17},{"key_as_string":"2017-02-11T09:51:00.000Z","key":1486806660000,"doc_count":15},{"key_as_string":"2017-02-11T09:52:00.000Z","key":1486806720000,"doc_count":9},{"key_as_string":"2017-02-11T09:53:00.000Z","key":1486806780000,"doc_count":20},{"key_as_string":"2017-02-11T09:54:00.000Z","key":1486806840000,"doc_count":15},{"key_as_string":"2017-02-11T09:55:00.000Z","key":1486806900000,"doc_count":19},{"key_as_string":"2017-02-11T09:56:00.000Z","key":1486806960000,"doc_count":10},{"key_as_string":"2017-02-11T09:57:00.000Z","key":1486807020000,"doc_count":14},{"key_as_string":"2017-02-11T09:58:00.000Z","key":1486807080000,"doc_count":15},{"key_as_string":"2017-02-11T09:59:00.000Z","key":1486807140000,"doc_count":20},{"key_as_string":"2017-02-11T10:00:00.000Z","key":1486807200000,"doc_count":14},{"key_as_string":"2017-02-11T10:01:00.000Z","key":1486807260000,"doc_count":14},{"key_as_string":"2017-02-11T10:02:00.000Z","key":1486807320000,"doc_count":13},{"key_as_string":"2017-02-11T10:03:00.000Z","key":1486807380000,"doc_count":13},{"key_as_string":"2017-02-11T10:04:00.000Z","key":1486807440000,"doc_count":17},{"key_as_string":"2017-02-11T10:05:00.000Z","key":1486807500000,"doc_count":10},{"key_as_string":"2017-02-11T10:06:00.000Z","key":1486807560000,"doc_count":20},{"key_as_string":"2017-02-11T10:07:00.000Z","key":1486807620000,"doc_count":14},{"key_as_string":"2017-02-11T10:08:00.000Z","key":1486807680000,"doc_count":12},{"key_as_string":"2017-02-11T10:09:00.000Z","key":1486807740000,"doc_count":22},{"key_as_string":"2017-02-11T10:10:00.000Z","key":1486807800000,"doc_count":18},{"key_as_string":"2017-02-11T10:11:00.000Z","key":1486807860000,"doc_count":9},{"key_as_string":"2017-02-11T10:12:00.000Z","key":1486807920000,"doc_count":16},{"key_as_string":"2017-02-11T10:13:00.000Z","key":1486807980000,"doc_count":13},{"key_as_string":"2017-02-11T10:14:00.000Z","key":1486808040000,"doc_count":14},{"key_as_string":"2017-02-11T10:15:00.000Z","key":1486808100000,"doc_count":13},{"key_as_string":"2017-02-11T10:16:00.000Z","key":1486808160000,"doc_count":15},{"key_as_string":"2017-02-11T10:17:00.000Z","key":1486808220000,"doc_count":15},{"key_as_string":"2017-02-11T10:18:00.000Z","key":1486808280000,"doc_count":13},{"key_as_string":"2017-02-11T10:19:00.000Z","key":1486808340000,"doc_count":12},{"key_as_string":"2017-02-11T10:20:00.000Z","key":1486808400000,"doc_count":8},{"key_as_string":"2017-02-11T10:21:00.000Z","key":1486808460000,"doc_count":18},{"key_as_string":"2017-02-11T10:22:00.000Z","key":1486808520000,"doc_count":14},{"key_as_string":"2017-02-11T10:23:00.000Z","key":1486808580000,"doc_count":17},{"key_as_string":"2017-02-11T10:24:00.000Z","key":1486808640000,"doc_count":22},{"key_as_string":"2017-02-11T10:25:00.000Z","key":1486808700000,"doc_count":12},{"key_as_string":"2017-02-11T10:26:00.000Z","key":1486808760000,"doc_count":13},{"key_as_string":"2017-02-11T10:27:00.000Z","key":1486808820000,"doc_count":17},{"key_as_string":"2017-02-11T10:28:00.000Z","key":1486808880000,"doc_count":14},{"key_as_string":"2017-02-11T10:29:00.000Z","key":1486808940000,"doc_count":13},{"key_as_string":"2017-02-11T10:30:00.000Z","key":1486809000000,"doc_count":11},{"key_as_string":"2017-02-11T10:31:00.000Z","key":1486809060000,"doc_count":15},{"key_as_string":"2017-02-11T10:32:00.000Z","key":1486809120000,"doc_count":17},{"key_as_string":"2017-02-11T10:33:00.000Z","key":1486809180000,"doc_count":14},{"key_as_string":"2017-02-11T10:34:00.000Z","key":1486809240000,"doc_count":12},{"key_as_string":"2017-02-11T10:35:00.000Z","key":1486809300000,"doc_count":10},{"key_as_string":"2017-02-11T10:36:00.000Z","key":1486809360000,"doc_count":12},{"key_as_string":"2017-02-11T10:37:00.000Z","key":1486809420000,"doc_count":16},{"key_as_string":"2017-02-11T10:38:00.000Z","key":1486809480000,"doc_count":18},{"key_as_string":"2017-02-11T10:39:00.000Z","key":1486809540000,"doc_count":15},{"key_as_string":"2017-02-11T10:40:00.000Z","key":1486809600000,"doc_count":16},{"key_as_string":"2017-02-11T10:41:00.000Z","key":1486809660000,"doc_count":15},{"key_as_string":"2017-02-11T10:42:00.000Z","key":1486809720000,"doc_count":15},{"key_as_string":"2017-02-11T10:43:00.000Z","key":1486809780000,"doc_count":11},{"key_as_string":"2017-02-11T10:44:00.000Z","key":1486809840000,"doc_count":11},{"key_as_string":"2017-02-11T10:45:00.000Z","key":1486809900000,"doc_count":19},{"key_as_string":"2017-02-11T10:46:00.000Z","key":1486809960000,"doc_count":12},{"key_as_string":"2017-02-11T10:47:00.000Z","key":1486810020000,"doc_count":12},{"key_as_string":"2017-02-11T10:48:00.000Z","key":1486810080000,"doc_count":12},{"key_as_string":"2017-02-11T10:49:00.000Z","key":1486810140000,"doc_count":12},{"key_as_string":"2017-02-11T10:50:00.000Z","key":1486810200000,"doc_count":21},{"key_as_string":"2017-02-11T10:51:00.000Z","key":1486810260000,"doc_count":13},{"key_as_string":"2017-02-11T10:52:00.000Z","key":1486810320000,"doc_count":13},{"key_as_string":"2017-02-11T10:53:00.000Z","key":1486810380000,"doc_count":14},{"key_as_string":"2017-02-11T10:54:00.000Z","key":1486810440000,"doc_count":14},{"key_as_string":"2017-02-11T10:55:00.000Z","key":1486810500000,"doc_count":10},{"key_as_string":"2017-02-11T10:56:00.000Z","key":1486810560000,"doc_count":12},{"key_as_string":"2017-02-11T10:57:00.000Z","key":1486810620000,"doc_count":15},{"key_as_string":"2017-02-11T10:58:00.000Z","key":1486810680000,"doc_count":13},{"key_as_string":"2017-02-11T10:59:00.000Z","key":1486810740000,"doc_count":11},{"key_as_string":"2017-02-11T11:00:00.000Z","key":1486810800000,"doc_count":18},{"key_as_string":"2017-02-11T11:01:00.000Z","key":1486810860000,"doc_count":14},{"key_as_string":"2017-02-11T11:02:00.000Z","key":1486810920000,"doc_count":18},{"key_as_string":"2017-02-11T11:03:00.000Z","key":1486810980000,"doc_count":18},{"key_as_string":"2017-02-11T11:04:00.000Z","key":1486811040000,"doc_count":14},{"key_as_string":"2017-02-11T11:05:00.000Z","key":1486811100000,"doc_count":21},{"key_as_string":"2017-02-11T11:06:00.000Z","key":1486811160000,"doc_count":8},{"key_as_string":"2017-02-11T11:07:00.000Z","key":1486811220000,"doc_count":14},{"key_as_string":"2017-02-11T11:08:00.000Z","key":1486811280000,"doc_count":9},{"key_as_string":"2017-02-11T11:09:00.000Z","key":1486811340000,"doc_count":13},{"key_as_string":"2017-02-11T11:10:00.000Z","key":1486811400000,"doc_count":19},{"key_as_string":"2017-02-11T11:11:00.000Z","key":1486811460000,"doc_count":12},{"key_as_string":"2017-02-11T11:12:00.000Z","key":1486811520000,"doc_count":15},{"key_as_string":"2017-02-11T11:13:00.000Z","key":1486811580000,"doc_count":16},{"key_as_string":"2017-02-11T11:14:00.000Z","key":1486811640000,"doc_count":11},{"key_as_string":"2017-02-11T11:15:00.000Z","key":1486811700000,"doc_count":12},{"key_as_string":"2017-02-11T11:16:00.000Z","key":1486811760000,"doc_count":16},{"key_as_string":"2017-02-11T11:17:00.000Z","key":1486811820000,"doc_count":14},{"key_as_string":"2017-02-11T11:18:00.000Z","key":1486811880000,"doc_count":13},{"key_as_string":"2017-02-11T11:19:00.000Z","key":1486811940000,"doc_count":14},{"key_as_string":"2017-02-11T11:20:00.000Z","key":1486812000000,"doc_count":14},{"key_as_string":"2017-02-11T11:21:00.000Z","key":1486812060000,"doc_count":11},{"key_as_string":"2017-02-11T11:22:00.000Z","key":1486812120000,"doc_count":14},{"key_as_string":"2017-02-11T11:23:00.000Z","key":1486812180000,"doc_count":13},{"key_as_string":"2017-02-11T11:24:00.000Z","key":1486812240000,"doc_count":13},{"key_as_string":"2017-02-11T11:25:00.000Z","key":1486812300000,"doc_count":13},{"key_as_string":"2017-02-11T11:26:00.000Z","key":1486812360000,"doc_count":6},{"key_as_string":"2017-02-11T11:27:00.000Z","key":1486812420000,"doc_count":21},{"key_as_string":"2017-02-11T11:28:00.000Z","key":1486812480000,"doc_count":10},{"key_as_string":"2017-02-11T11:29:00.000Z","key":1486812540000,"doc_count":19},{"key_as_string":"2017-02-11T11:30:00.000Z","key":1486812600000,"doc_count":10},{"key_as_string":"2017-02-11T11:31:00.000Z","key":1486812660000,"doc_count":10},{"key_as_string":"2017-02-11T11:32:00.000Z","key":1486812720000,"doc_count":14},{"key_as_string":"2017-02-11T11:33:00.000Z","key":1486812780000,"doc_count":13},{"key_as_string":"2017-02-11T11:34:00.000Z","key":1486812840000,"doc_count":9},{"key_as_string":"2017-02-11T11:35:00.000Z","key":1486812900000,"doc_count":16},{"key_as_string":"2017-02-11T11:36:00.000Z","key":1486812960000,"doc_count":9},{"key_as_string":"2017-02-11T11:37:00.000Z","key":1486813020000,"doc_count":14},{"key_as_string":"2017-02-11T11:38:00.000Z","key":1486813080000,"doc_count":8},{"key_as_string":"2017-02-11T11:39:00.000Z","key":1486813140000,"doc_count":16},{"key_as_string":"2017-02-11T11:40:00.000Z","key":1486813200000,"doc_count":17},{"key_as_string":"2017-02-11T11:41:00.000Z","key":1486813260000,"doc_count":11},{"key_as_string":"2017-02-11T11:42:00.000Z","key":1486813320000,"doc_count":13},{"key_as_string":"2017-02-11T11:43:00.000Z","key":1486813380000,"doc_count":14},{"key_as_string":"2017-02-11T11:44:00.000Z","key":1486813440000,"doc_count":17},{"key_as_string":"2017-02-11T11:45:00.000Z","key":1486813500000,"doc_count":11},{"key_as_string":"2017-02-11T11:46:00.000Z","key":1486813560000,"doc_count":16},{"key_as_string":"2017-02-11T11:47:00.000Z","key":1486813620000,"doc_count":12},{"key_as_string":"2017-02-11T11:48:00.000Z","key":1486813680000,"doc_count":13},{"key_as_string":"2017-02-11T11:49:00.000Z","key":1486813740000,"doc_count":19},{"key_as_string":"2017-02-11T11:50:00.000Z","key":1486813800000,"doc_count":12},{"key_as_string":"2017-02-11T11:51:00.000Z","key":1486813860000,"doc_count":15},{"key_as_string":"2017-02-11T11:52:00.000Z","key":1486813920000,"doc_count":12},{"key_as_string":"2017-02-11T11:53:00.000Z","key":1486813980000,"doc_count":8},{"key_as_string":"2017-02-11T11:54:00.000Z","key":1486814040000,"doc_count":15},{"key_as_string":"2017-02-11T11:55:00.000Z","key":1486814100000,"doc_count":16},{"key_as_string":"2017-02-11T11:56:00.000Z","key":1486814160000,"doc_count":10},{"key_as_string":"2017-02-11T11:57:00.000Z","key":1486814220000,"doc_count":12},{"key_as_string":"2017-02-11T11:58:00.000Z","key":1486814280000,"doc_count":17},{"key_as_string":"2017-02-11T11:59:00.000Z","key":1486814340000,"doc_count":18},{"key_as_string":"2017-02-11T12:00:00.000Z","key":1486814400000,"doc_count":13},{"key_as_string":"2017-02-11T12:01:00.000Z","key":1486814460000,"doc_count":13},{"key_as_string":"2017-02-11T12:02:00.000Z","key":1486814520000,"doc_count":9},{"key_as_string":"2017-02-11T12:03:00.000Z","key":1486814580000,"doc_count":14},{"key_as_string":"2017-02-11T12:04:00.000Z","key":1486814640000,"doc_count":11},{"key_as_string":"2017-02-11T12:05:00.000Z","key":1486814700000,"doc_count":9},{"key_as_string":"2017-02-11T12:06:00.000Z","key":1486814760000,"doc_count":18},{"key_as_string":"2017-02-11T12:07:00.000Z","key":1486814820000,"doc_count":14},{"key_as_string":"2017-02-11T12:08:00.000Z","key":1486814880000,"doc_count":9},{"key_as_string":"2017-02-11T12:09:00.000Z","key":1486814940000,"doc_count":15},{"key_as_string":"2017-02-11T12:10:00.000Z","key":1486815000000,"doc_count":18},{"key_as_string":"2017-02-11T12:11:00.000Z","key":1486815060000,"doc_count":14},{"key_as_string":"2017-02-11T12:12:00.000Z","key":1486815120000,"doc_count":16},{"key_as_string":"2017-02-11T12:13:00.000Z","key":1486815180000,"doc_count":14},{"key_as_string":"2017-02-11T12:14:00.000Z","key":1486815240000,"doc_count":12},{"key_as_string":"2017-02-11T12:15:00.000Z","key":1486815300000,"doc_count":15},{"key_as_string":"2017-02-11T12:16:00.000Z","key":1486815360000,"doc_count":12},{"key_as_string":"2017-02-11T12:17:00.000Z","key":1486815420000,"doc_count":12},{"key_as_string":"2017-02-11T12:18:00.000Z","key":1486815480000,"doc_count":16},{"key_as_string":"2017-02-11T12:19:00.000Z","key":1486815540000,"doc_count":9},{"key_as_string":"2017-02-11T12:20:00.000Z","key":1486815600000,"doc_count":14},{"key_as_string":"2017-02-11T12:21:00.000Z","key":1486815660000,"doc_count":11},{"key_as_string":"2017-02-11T12:22:00.000Z","key":1486815720000,"doc_count":16},{"key_as_string":"2017-02-11T12:23:00.000Z","key":1486815780000,"doc_count":14},{"key_as_string":"2017-02-11T12:24:00.000Z","key":1486815840000,"doc_count":10},{"key_as_string":"2017-02-11T12:25:00.000Z","key":1486815900000,"doc_count":16},{"key_as_string":"2017-02-11T12:26:00.000Z","key":1486815960000,"doc_count":18},{"key_as_string":"2017-02-11T12:27:00.000Z","key":1486816020000,"doc_count":15},{"key_as_string":"2017-02-11T12:28:00.000Z","key":1486816080000,"doc_count":10},{"key_as_string":"2017-02-11T12:29:00.000Z","key":1486816140000,"doc_count":12},{"key_as_string":"2017-02-11T12:30:00.000Z","key":1486816200000,"doc_count":11},{"key_as_string":"2017-02-11T12:31:00.000Z","key":1486816260000,"doc_count":16},{"key_as_string":"2017-02-11T12:32:00.000Z","key":1486816320000,"doc_count":11},{"key_as_string":"2017-02-11T12:33:00.000Z","key":1486816380000,"doc_count":11},{"key_as_string":"2017-02-11T12:34:00.000Z","key":1486816440000,"doc_count":19},{"key_as_string":"2017-02-11T12:35:00.000Z","key":1486816500000,"doc_count":17},{"key_as_string":"2017-02-11T12:36:00.000Z","key":1486816560000,"doc_count":19},{"key_as_string":"2017-02-11T12:37:00.000Z","key":1486816620000,"doc_count":11},{"key_as_string":"2017-02-11T12:38:00.000Z","key":1486816680000,"doc_count":18},{"key_as_string":"2017-02-11T12:39:00.000Z","key":1486816740000,"doc_count":11},{"key_as_string":"2017-02-11T12:40:00.000Z","key":1486816800000,"doc_count":12},{"key_as_string":"2017-02-11T12:41:00.000Z","key":1486816860000,"doc_count":15},{"key_as_string":"2017-02-11T12:42:00.000Z","key":1486816920000,"doc_count":15},{"key_as_string":"2017-02-11T12:43:00.000Z","key":1486816980000,"doc_count":7},{"key_as_string":"2017-02-11T12:44:00.000Z","key":1486817040000,"doc_count":19},{"key_as_string":"2017-02-11T12:45:00.000Z","key":1486817100000,"doc_count":12},{"key_as_string":"2017-02-11T12:46:00.000Z","key":1486817160000,"doc_count":16},{"key_as_string":"2017-02-11T12:47:00.000Z","key":1486817220000,"doc_count":8},{"key_as_string":"2017-02-11T12:48:00.000Z","key":1486817280000,"doc_count":15},{"key_as_string":"2017-02-11T12:49:00.000Z","key":1486817340000,"doc_count":12},{"key_as_string":"2017-02-11T12:50:00.000Z","key":1486817400000,"doc_count":12},{"key_as_string":"2017-02-11T12:51:00.000Z","key":1486817460000,"doc_count":16},{"key_as_string":"2017-02-11T12:52:00.000Z","key":1486817520000,"doc_count":13},{"key_as_string":"2017-02-11T12:53:00.000Z","key":1486817580000,"doc_count":13},{"key_as_string":"2017-02-11T12:54:00.000Z","key":1486817640000,"doc_count":15},{"key_as_string":"2017-02-11T12:55:00.000Z","key":1486817700000,"doc_count":16},{"key_as_string":"2017-02-11T12:56:00.000Z","key":1486817760000,"doc_count":17},{"key_as_string":"2017-02-11T12:57:00.000Z","key":1486817820000,"doc_count":13},{"key_as_string":"2017-02-11T12:58:00.000Z","key":1486817880000,"doc_count":12},{"key_as_string":"2017-02-11T12:59:00.000Z","key":1486817940000,"doc_count":17},{"key_as_string":"2017-02-11T13:00:00.000Z","key":1486818000000,"doc_count":16},{"key_as_string":"2017-02-11T13:01:00.000Z","key":1486818060000,"doc_count":14},{"key_as_string":"2017-02-11T13:02:00.000Z","key":1486818120000,"doc_count":8},{"key_as_string":"2017-02-11T13:03:00.000Z","key":1486818180000,"doc_count":15},{"key_as_string":"2017-02-11T13:04:00.000Z","key":1486818240000,"doc_count":14},{"key_as_string":"2017-02-11T13:05:00.000Z","key":1486818300000,"doc_count":16},{"key_as_string":"2017-02-11T13:06:00.000Z","key":1486818360000,"doc_count":20},{"key_as_string":"2017-02-11T13:07:00.000Z","key":1486818420000,"doc_count":10},{"key_as_string":"2017-02-11T13:08:00.000Z","key":1486818480000,"doc_count":15},{"key_as_string":"2017-02-11T13:09:00.000Z","key":1486818540000,"doc_count":12},{"key_as_string":"2017-02-11T13:10:00.000Z","key":1486818600000,"doc_count":12},{"key_as_string":"2017-02-11T13:11:00.000Z","key":1486818660000,"doc_count":8},{"key_as_string":"2017-02-11T13:12:00.000Z","key":1486818720000,"doc_count":17},{"key_as_string":"2017-02-11T13:13:00.000Z","key":1486818780000,"doc_count":8},{"key_as_string":"2017-02-11T13:14:00.000Z","key":1486818840000,"doc_count":15},{"key_as_string":"2017-02-11T13:15:00.000Z","key":1486818900000,"doc_count":13},{"key_as_string":"2017-02-11T13:16:00.000Z","key":1486818960000,"doc_count":15},{"key_as_string":"2017-02-11T13:17:00.000Z","key":1486819020000,"doc_count":15},{"key_as_string":"2017-02-11T13:18:00.000Z","key":1486819080000,"doc_count":11},{"key_as_string":"2017-02-11T13:19:00.000Z","key":1486819140000,"doc_count":17},{"key_as_string":"2017-02-11T13:20:00.000Z","key":1486819200000,"doc_count":11},{"key_as_string":"2017-02-11T13:21:00.000Z","key":1486819260000,"doc_count":14},{"key_as_string":"2017-02-11T13:22:00.000Z","key":1486819320000,"doc_count":10},{"key_as_string":"2017-02-11T13:23:00.000Z","key":1486819380000,"doc_count":15},{"key_as_string":"2017-02-11T13:24:00.000Z","key":1486819440000,"doc_count":14},{"key_as_string":"2017-02-11T13:25:00.000Z","key":1486819500000,"doc_count":11},{"key_as_string":"2017-02-11T13:26:00.000Z","key":1486819560000,"doc_count":12},{"key_as_string":"2017-02-11T13:27:00.000Z","key":1486819620000,"doc_count":13},{"key_as_string":"2017-02-11T13:28:00.000Z","key":1486819680000,"doc_count":16},{"key_as_string":"2017-02-11T13:29:00.000Z","key":1486819740000,"doc_count":8},{"key_as_string":"2017-02-11T13:30:00.000Z","key":1486819800000,"doc_count":12},{"key_as_string":"2017-02-11T13:31:00.000Z","key":1486819860000,"doc_count":10},{"key_as_string":"2017-02-11T13:32:00.000Z","key":1486819920000,"doc_count":15},{"key_as_string":"2017-02-11T13:33:00.000Z","key":1486819980000,"doc_count":13},{"key_as_string":"2017-02-11T13:34:00.000Z","key":1486820040000,"doc_count":15},{"key_as_string":"2017-02-11T13:35:00.000Z","key":1486820100000,"doc_count":13},{"key_as_string":"2017-02-11T13:36:00.000Z","key":1486820160000,"doc_count":15},{"key_as_string":"2017-02-11T13:37:00.000Z","key":1486820220000,"doc_count":19},{"key_as_string":"2017-02-11T13:38:00.000Z","key":1486820280000,"doc_count":13},{"key_as_string":"2017-02-11T13:39:00.000Z","key":1486820340000,"doc_count":15},{"key_as_string":"2017-02-11T13:40:00.000Z","key":1486820400000,"doc_count":16},{"key_as_string":"2017-02-11T13:41:00.000Z","key":1486820460000,"doc_count":14},{"key_as_string":"2017-02-11T13:42:00.000Z","key":1486820520000,"doc_count":18},{"key_as_string":"2017-02-11T13:43:00.000Z","key":1486820580000,"doc_count":11},{"key_as_string":"2017-02-11T13:44:00.000Z","key":1486820640000,"doc_count":14},{"key_as_string":"2017-02-11T13:45:00.000Z","key":1486820700000,"doc_count":14},{"key_as_string":"2017-02-11T13:46:00.000Z","key":1486820760000,"doc_count":13},{"key_as_string":"2017-02-11T13:47:00.000Z","key":1486820820000,"doc_count":9},{"key_as_string":"2017-02-11T13:48:00.000Z","key":1486820880000,"doc_count":11},{"key_as_string":"2017-02-11T13:49:00.000Z","key":1486820940000,"doc_count":20},{"key_as_string":"2017-02-11T13:50:00.000Z","key":1486821000000,"doc_count":9},{"key_as_string":"2017-02-11T13:51:00.000Z","key":1486821060000,"doc_count":8},{"key_as_string":"2017-02-11T13:52:00.000Z","key":1486821120000,"doc_count":20},{"key_as_string":"2017-02-11T13:53:00.000Z","key":1486821180000,"doc_count":11},{"key_as_string":"2017-02-11T13:54:00.000Z","key":1486821240000,"doc_count":16},{"key_as_string":"2017-02-11T13:55:00.000Z","key":1486821300000,"doc_count":15},{"key_as_string":"2017-02-11T13:56:00.000Z","key":1486821360000,"doc_count":14},{"key_as_string":"2017-02-11T13:57:00.000Z","key":1486821420000,"doc_count":15},{"key_as_string":"2017-02-11T13:58:00.000Z","key":1486821480000,"doc_count":15},{"key_as_string":"2017-02-11T13:59:00.000Z","key":1486821540000,"doc_count":9},{"key_as_string":"2017-02-11T14:00:00.000Z","key":1486821600000,"doc_count":12},{"key_as_string":"2017-02-11T14:01:00.000Z","key":1486821660000,"doc_count":13},{"key_as_string":"2017-02-11T14:02:00.000Z","key":1486821720000,"doc_count":15},{"key_as_string":"2017-02-11T14:03:00.000Z","key":1486821780000,"doc_count":12},{"key_as_string":"2017-02-11T14:04:00.000Z","key":1486821840000,"doc_count":16},{"key_as_string":"2017-02-11T14:05:00.000Z","key":1486821900000,"doc_count":10},{"key_as_string":"2017-02-11T14:06:00.000Z","key":1486821960000,"doc_count":12},{"key_as_string":"2017-02-11T14:07:00.000Z","key":1486822020000,"doc_count":13},{"key_as_string":"2017-02-11T14:08:00.000Z","key":1486822080000,"doc_count":9},{"key_as_string":"2017-02-11T14:09:00.000Z","key":1486822140000,"doc_count":16},{"key_as_string":"2017-02-11T14:10:00.000Z","key":1486822200000,"doc_count":15},{"key_as_string":"2017-02-11T14:11:00.000Z","key":1486822260000,"doc_count":14},{"key_as_string":"2017-02-11T14:12:00.000Z","key":1486822320000,"doc_count":10},{"key_as_string":"2017-02-11T14:13:00.000Z","key":1486822380000,"doc_count":10},{"key_as_string":"2017-02-11T14:14:00.000Z","key":1486822440000,"doc_count":15},{"key_as_string":"2017-02-11T14:15:00.000Z","key":1486822500000,"doc_count":10},{"key_as_string":"2017-02-11T14:16:00.000Z","key":1486822560000,"doc_count":13},{"key_as_string":"2017-02-11T14:17:00.000Z","key":1486822620000,"doc_count":14},{"key_as_string":"2017-02-11T14:18:00.000Z","key":1486822680000,"doc_count":14},{"key_as_string":"2017-02-11T14:19:00.000Z","key":1486822740000,"doc_count":17},{"key_as_string":"2017-02-11T14:20:00.000Z","key":1486822800000,"doc_count":13},{"key_as_string":"2017-02-11T14:21:00.000Z","key":1486822860000,"doc_count":14},{"key_as_string":"2017-02-11T14:22:00.000Z","key":1486822920000,"doc_count":12},{"key_as_string":"2017-02-11T14:23:00.000Z","key":1486822980000,"doc_count":21},{"key_as_string":"2017-02-11T14:24:00.000Z","key":1486823040000,"doc_count":14},{"key_as_string":"2017-02-11T14:25:00.000Z","key":1486823100000,"doc_count":9},{"key_as_string":"2017-02-11T14:26:00.000Z","key":1486823160000,"doc_count":8},{"key_as_string":"2017-02-11T14:27:00.000Z","key":1486823220000,"doc_count":14},{"key_as_string":"2017-02-11T14:28:00.000Z","key":1486823280000,"doc_count":10},{"key_as_string":"2017-02-11T14:29:00.000Z","key":1486823340000,"doc_count":12},{"key_as_string":"2017-02-11T14:30:00.000Z","key":1486823400000,"doc_count":12},{"key_as_string":"2017-02-11T14:31:00.000Z","key":1486823460000,"doc_count":14},{"key_as_string":"2017-02-11T14:32:00.000Z","key":1486823520000,"doc_count":15},{"key_as_string":"2017-02-11T14:33:00.000Z","key":1486823580000,"doc_count":14},{"key_as_string":"2017-02-11T14:34:00.000Z","key":1486823640000,"doc_count":9},{"key_as_string":"2017-02-11T14:35:00.000Z","key":1486823700000,"doc_count":14},{"key_as_string":"2017-02-11T14:36:00.000Z","key":1486823760000,"doc_count":12},{"key_as_string":"2017-02-11T14:37:00.000Z","key":1486823820000,"doc_count":17},{"key_as_string":"2017-02-11T14:38:00.000Z","key":1486823880000,"doc_count":11},{"key_as_string":"2017-02-11T14:39:00.000Z","key":1486823940000,"doc_count":12},{"key_as_string":"2017-02-11T14:40:00.000Z","key":1486824000000,"doc_count":15},{"key_as_string":"2017-02-11T14:41:00.000Z","key":1486824060000,"doc_count":11},{"key_as_string":"2017-02-11T14:42:00.000Z","key":1486824120000,"doc_count":13},{"key_as_string":"2017-02-11T14:43:00.000Z","key":1486824180000,"doc_count":18},{"key_as_string":"2017-02-11T14:44:00.000Z","key":1486824240000,"doc_count":10},{"key_as_string":"2017-02-11T14:45:00.000Z","key":1486824300000,"doc_count":13},{"key_as_string":"2017-02-11T14:46:00.000Z","key":1486824360000,"doc_count":9},{"key_as_string":"2017-02-11T14:47:00.000Z","key":1486824420000,"doc_count":14},{"key_as_string":"2017-02-11T14:48:00.000Z","key":1486824480000,"doc_count":16},{"key_as_string":"2017-02-11T14:49:00.000Z","key":1486824540000,"doc_count":14},{"key_as_string":"2017-02-11T14:50:00.000Z","key":1486824600000,"doc_count":13},{"key_as_string":"2017-02-11T14:51:00.000Z","key":1486824660000,"doc_count":12},{"key_as_string":"2017-02-11T14:52:00.000Z","key":1486824720000,"doc_count":11},{"key_as_string":"2017-02-11T14:53:00.000Z","key":1486824780000,"doc_count":16},{"key_as_string":"2017-02-11T14:54:00.000Z","key":1486824840000,"doc_count":12},{"key_as_string":"2017-02-11T14:55:00.000Z","key":1486824900000,"doc_count":11},{"key_as_string":"2017-02-11T14:56:00.000Z","key":1486824960000,"doc_count":14},{"key_as_string":"2017-02-11T14:57:00.000Z","key":1486825020000,"doc_count":15},{"key_as_string":"2017-02-11T14:58:00.000Z","key":1486825080000,"doc_count":10},{"key_as_string":"2017-02-11T14:59:00.000Z","key":1486825140000,"doc_count":18},{"key_as_string":"2017-02-11T15:00:00.000Z","key":1486825200000,"doc_count":15},{"key_as_string":"2017-02-11T15:01:00.000Z","key":1486825260000,"doc_count":10},{"key_as_string":"2017-02-11T15:02:00.000Z","key":1486825320000,"doc_count":17},{"key_as_string":"2017-02-11T15:03:00.000Z","key":1486825380000,"doc_count":12},{"key_as_string":"2017-02-11T15:04:00.000Z","key":1486825440000,"doc_count":13},{"key_as_string":"2017-02-11T15:05:00.000Z","key":1486825500000,"doc_count":14},{"key_as_string":"2017-02-11T15:06:00.000Z","key":1486825560000,"doc_count":10},{"key_as_string":"2017-02-11T15:07:00.000Z","key":1486825620000,"doc_count":13},{"key_as_string":"2017-02-11T15:08:00.000Z","key":1486825680000,"doc_count":12},{"key_as_string":"2017-02-11T15:09:00.000Z","key":1486825740000,"doc_count":13},{"key_as_string":"2017-02-11T15:10:00.000Z","key":1486825800000,"doc_count":11},{"key_as_string":"2017-02-11T15:11:00.000Z","key":1486825860000,"doc_count":16},{"key_as_string":"2017-02-11T15:12:00.000Z","key":1486825920000,"doc_count":10},{"key_as_string":"2017-02-11T15:13:00.000Z","key":1486825980000,"doc_count":11},{"key_as_string":"2017-02-11T15:14:00.000Z","key":1486826040000,"doc_count":18},{"key_as_string":"2017-02-11T15:15:00.000Z","key":1486826100000,"doc_count":15},{"key_as_string":"2017-02-11T15:16:00.000Z","key":1486826160000,"doc_count":12},{"key_as_string":"2017-02-11T15:17:00.000Z","key":1486826220000,"doc_count":18},{"key_as_string":"2017-02-11T15:18:00.000Z","key":1486826280000,"doc_count":11},{"key_as_string":"2017-02-11T15:19:00.000Z","key":1486826340000,"doc_count":9},{"key_as_string":"2017-02-11T15:20:00.000Z","key":1486826400000,"doc_count":19},{"key_as_string":"2017-02-11T15:21:00.000Z","key":1486826460000,"doc_count":11},{"key_as_string":"2017-02-11T15:22:00.000Z","key":1486826520000,"doc_count":9},{"key_as_string":"2017-02-11T15:23:00.000Z","key":1486826580000,"doc_count":16},{"key_as_string":"2017-02-11T15:24:00.000Z","key":1486826640000,"doc_count":14},{"key_as_string":"2017-02-11T15:25:00.000Z","key":1486826700000,"doc_count":17},{"key_as_string":"2017-02-11T15:26:00.000Z","key":1486826760000,"doc_count":14},{"key_as_string":"2017-02-11T15:27:00.000Z","key":1486826820000,"doc_count":17},{"key_as_string":"2017-02-11T15:28:00.000Z","key":1486826880000,"doc_count":10},{"key_as_string":"2017-02-11T15:29:00.000Z","key":1486826940000,"doc_count":20},{"key_as_string":"2017-02-11T15:30:00.000Z","key":1486827000000,"doc_count":7},{"key_as_string":"2017-02-11T15:31:00.000Z","key":1486827060000,"doc_count":12},{"key_as_string":"2017-02-11T15:32:00.000Z","key":1486827120000,"doc_count":12},{"key_as_string":"2017-02-11T15:33:00.000Z","key":1486827180000,"doc_count":10},{"key_as_string":"2017-02-11T15:34:00.000Z","key":1486827240000,"doc_count":16},{"key_as_string":"2017-02-11T15:35:00.000Z","key":1486827300000,"doc_count":13},{"key_as_string":"2017-02-11T15:36:00.000Z","key":1486827360000,"doc_count":9},{"key_as_string":"2017-02-11T15:37:00.000Z","key":1486827420000,"doc_count":12},{"key_as_string":"2017-02-11T15:38:00.000Z","key":1486827480000,"doc_count":17},{"key_as_string":"2017-02-11T15:39:00.000Z","key":1486827540000,"doc_count":11},{"key_as_string":"2017-02-11T15:40:00.000Z","key":1486827600000,"doc_count":17},{"key_as_string":"2017-02-11T15:41:00.000Z","key":1486827660000,"doc_count":12},{"key_as_string":"2017-02-11T15:42:00.000Z","key":1486827720000,"doc_count":11},{"key_as_string":"2017-02-11T15:43:00.000Z","key":1486827780000,"doc_count":10},{"key_as_string":"2017-02-11T15:44:00.000Z","key":1486827840000,"doc_count":15},{"key_as_string":"2017-02-11T15:45:00.000Z","key":1486827900000,"doc_count":11},{"key_as_string":"2017-02-11T15:46:00.000Z","key":1486827960000,"doc_count":19},{"key_as_string":"2017-02-11T15:47:00.000Z","key":1486828020000,"doc_count":12},{"key_as_string":"2017-02-11T15:48:00.000Z","key":1486828080000,"doc_count":9},{"key_as_string":"2017-02-11T15:49:00.000Z","key":1486828140000,"doc_count":12},{"key_as_string":"2017-02-11T15:50:00.000Z","key":1486828200000,"doc_count":15},{"key_as_string":"2017-02-11T15:51:00.000Z","key":1486828260000,"doc_count":11},{"key_as_string":"2017-02-11T15:52:00.000Z","key":1486828320000,"doc_count":19},{"key_as_string":"2017-02-11T15:53:00.000Z","key":1486828380000,"doc_count":8},{"key_as_string":"2017-02-11T15:54:00.000Z","key":1486828440000,"doc_count":14},{"key_as_string":"2017-02-11T15:55:00.000Z","key":1486828500000,"doc_count":22},{"key_as_string":"2017-02-11T15:56:00.000Z","key":1486828560000,"doc_count":12},{"key_as_string":"2017-02-11T15:57:00.000Z","key":1486828620000,"doc_count":15},{"key_as_string":"2017-02-11T15:58:00.000Z","key":1486828680000,"doc_count":15},{"key_as_string":"2017-02-11T15:59:00.000Z","key":1486828740000,"doc_count":12},{"key_as_string":"2017-02-11T16:00:00.000Z","key":1486828800000,"doc_count":13},{"key_as_string":"2017-02-11T16:01:00.000Z","key":1486828860000,"doc_count":19},{"key_as_string":"2017-02-11T16:02:00.000Z","key":1486828920000,"doc_count":18},{"key_as_string":"2017-02-11T16:03:00.000Z","key":1486828980000,"doc_count":11},{"key_as_string":"2017-02-11T16:04:00.000Z","key":1486829040000,"doc_count":12},{"key_as_string":"2017-02-11T16:05:00.000Z","key":1486829100000,"doc_count":14},{"key_as_string":"2017-02-11T16:06:00.000Z","key":1486829160000,"doc_count":18},{"key_as_string":"2017-02-11T16:07:00.000Z","key":1486829220000,"doc_count":14},{"key_as_string":"2017-02-11T16:08:00.000Z","key":1486829280000,"doc_count":13},{"key_as_string":"2017-02-11T16:09:00.000Z","key":1486829340000,"doc_count":12},{"key_as_string":"2017-02-11T16:10:00.000Z","key":1486829400000,"doc_count":8},{"key_as_string":"2017-02-11T16:11:00.000Z","key":1486829460000,"doc_count":12},{"key_as_string":"2017-02-11T16:12:00.000Z","key":1486829520000,"doc_count":18},{"key_as_string":"2017-02-11T16:13:00.000Z","key":1486829580000,"doc_count":11},{"key_as_string":"2017-02-11T16:14:00.000Z","key":1486829640000,"doc_count":13},{"key_as_string":"2017-02-11T16:15:00.000Z","key":1486829700000,"doc_count":9},{"key_as_string":"2017-02-11T16:16:00.000Z","key":1486829760000,"doc_count":12},{"key_as_string":"2017-02-11T16:17:00.000Z","key":1486829820000,"doc_count":8},{"key_as_string":"2017-02-11T16:18:00.000Z","key":1486829880000,"doc_count":15},{"key_as_string":"2017-02-11T16:19:00.000Z","key":1486829940000,"doc_count":12},{"key_as_string":"2017-02-11T16:20:00.000Z","key":1486830000000,"doc_count":18},{"key_as_string":"2017-02-11T16:21:00.000Z","key":1486830060000,"doc_count":12},{"key_as_string":"2017-02-11T16:22:00.000Z","key":1486830120000,"doc_count":15},{"key_as_string":"2017-02-11T16:23:00.000Z","key":1486830180000,"doc_count":9},{"key_as_string":"2017-02-11T16:24:00.000Z","key":1486830240000,"doc_count":19},{"key_as_string":"2017-02-11T16:25:00.000Z","key":1486830300000,"doc_count":10},{"key_as_string":"2017-02-11T16:26:00.000Z","key":1486830360000,"doc_count":13},{"key_as_string":"2017-02-11T16:27:00.000Z","key":1486830420000,"doc_count":11},{"key_as_string":"2017-02-11T16:28:00.000Z","key":1486830480000,"doc_count":8},{"key_as_string":"2017-02-11T16:29:00.000Z","key":1486830540000,"doc_count":16},{"key_as_string":"2017-02-11T16:30:00.000Z","key":1486830600000,"doc_count":14},{"key_as_string":"2017-02-11T16:31:00.000Z","key":1486830660000,"doc_count":12},{"key_as_string":"2017-02-11T16:32:00.000Z","key":1486830720000,"doc_count":6},{"key_as_string":"2017-02-11T16:33:00.000Z","key":1486830780000,"doc_count":13},{"key_as_string":"2017-02-11T16:34:00.000Z","key":1486830840000,"doc_count":12},{"key_as_string":"2017-02-11T16:35:00.000Z","key":1486830900000,"doc_count":15},{"key_as_string":"2017-02-11T16:36:00.000Z","key":1486830960000,"doc_count":8},{"key_as_string":"2017-02-11T16:37:00.000Z","key":1486831020000,"doc_count":11},{"key_as_string":"2017-02-11T16:38:00.000Z","key":1486831080000,"doc_count":17},{"key_as_string":"2017-02-11T16:39:00.000Z","key":1486831140000,"doc_count":11},{"key_as_string":"2017-02-11T16:40:00.000Z","key":1486831200000,"doc_count":15},{"key_as_string":"2017-02-11T16:41:00.000Z","key":1486831260000,"doc_count":15},{"key_as_string":"2017-02-11T16:42:00.000Z","key":1486831320000,"doc_count":14},{"key_as_string":"2017-02-11T16:43:00.000Z","key":1486831380000,"doc_count":11},{"key_as_string":"2017-02-11T16:44:00.000Z","key":1486831440000,"doc_count":13},{"key_as_string":"2017-02-11T16:45:00.000Z","key":1486831500000,"doc_count":12},{"key_as_string":"2017-02-11T16:46:00.000Z","key":1486831560000,"doc_count":14},{"key_as_string":"2017-02-11T16:47:00.000Z","key":1486831620000,"doc_count":10},{"key_as_string":"2017-02-11T16:48:00.000Z","key":1486831680000,"doc_count":11},{"key_as_string":"2017-02-11T16:49:00.000Z","key":1486831740000,"doc_count":14},{"key_as_string":"2017-02-11T16:50:00.000Z","key":1486831800000,"doc_count":16},{"key_as_string":"2017-02-11T16:51:00.000Z","key":1486831860000,"doc_count":11},{"key_as_string":"2017-02-11T16:52:00.000Z","key":1486831920000,"doc_count":9},{"key_as_string":"2017-02-11T16:53:00.000Z","key":1486831980000,"doc_count":13},{"key_as_string":"2017-02-11T16:54:00.000Z","key":1486832040000,"doc_count":13},{"key_as_string":"2017-02-11T16:55:00.000Z","key":1486832100000,"doc_count":16},{"key_as_string":"2017-02-11T16:56:00.000Z","key":1486832160000,"doc_count":10},{"key_as_string":"2017-02-11T16:57:00.000Z","key":1486832220000,"doc_count":9},{"key_as_string":"2017-02-11T16:58:00.000Z","key":1486832280000,"doc_count":22},{"key_as_string":"2017-02-11T16:59:00.000Z","key":1486832340000,"doc_count":12},{"key_as_string":"2017-02-11T17:00:00.000Z","key":1486832400000,"doc_count":8},{"key_as_string":"2017-02-11T17:01:00.000Z","key":1486832460000,"doc_count":13},{"key_as_string":"2017-02-11T17:02:00.000Z","key":1486832520000,"doc_count":13},{"key_as_string":"2017-02-11T17:03:00.000Z","key":1486832580000,"doc_count":9},{"key_as_string":"2017-02-11T17:04:00.000Z","key":1486832640000,"doc_count":11},{"key_as_string":"2017-02-11T17:05:00.000Z","key":1486832700000,"doc_count":10},{"key_as_string":"2017-02-11T17:06:00.000Z","key":1486832760000,"doc_count":15},{"key_as_string":"2017-02-11T17:07:00.000Z","key":1486832820000,"doc_count":12},{"key_as_string":"2017-02-11T17:08:00.000Z","key":1486832880000,"doc_count":10},{"key_as_string":"2017-02-11T17:09:00.000Z","key":1486832940000,"doc_count":16},{"key_as_string":"2017-02-11T17:10:00.000Z","key":1486833000000,"doc_count":14},{"key_as_string":"2017-02-11T17:11:00.000Z","key":1486833060000,"doc_count":13},{"key_as_string":"2017-02-11T17:12:00.000Z","key":1486833120000,"doc_count":16},{"key_as_string":"2017-02-11T17:13:00.000Z","key":1486833180000,"doc_count":9},{"key_as_string":"2017-02-11T17:14:00.000Z","key":1486833240000,"doc_count":5},{"key_as_string":"2017-02-11T17:15:00.000Z","key":1486833300000,"doc_count":15},{"key_as_string":"2017-02-11T17:16:00.000Z","key":1486833360000,"doc_count":14},{"key_as_string":"2017-02-11T17:17:00.000Z","key":1486833420000,"doc_count":8},{"key_as_string":"2017-02-11T17:18:00.000Z","key":1486833480000,"doc_count":12},{"key_as_string":"2017-02-11T17:19:00.000Z","key":1486833540000,"doc_count":13},{"key_as_string":"2017-02-11T17:20:00.000Z","key":1486833600000,"doc_count":13},{"key_as_string":"2017-02-11T17:21:00.000Z","key":1486833660000,"doc_count":13},{"key_as_string":"2017-02-11T17:22:00.000Z","key":1486833720000,"doc_count":11},{"key_as_string":"2017-02-11T17:23:00.000Z","key":1486833780000,"doc_count":11},{"key_as_string":"2017-02-11T17:24:00.000Z","key":1486833840000,"doc_count":14},{"key_as_string":"2017-02-11T17:25:00.000Z","key":1486833900000,"doc_count":7},{"key_as_string":"2017-02-11T17:26:00.000Z","key":1486833960000,"doc_count":15},{"key_as_string":"2017-02-11T17:27:00.000Z","key":1486834020000,"doc_count":11},{"key_as_string":"2017-02-11T17:28:00.000Z","key":1486834080000,"doc_count":9},{"key_as_string":"2017-02-11T17:29:00.000Z","key":1486834140000,"doc_count":13},{"key_as_string":"2017-02-11T17:30:00.000Z","key":1486834200000,"doc_count":11},{"key_as_string":"2017-02-11T17:31:00.000Z","key":1486834260000,"doc_count":7},{"key_as_string":"2017-02-11T17:32:00.000Z","key":1486834320000,"doc_count":14},{"key_as_string":"2017-02-11T17:33:00.000Z","key":1486834380000,"doc_count":13},{"key_as_string":"2017-02-11T17:34:00.000Z","key":1486834440000,"doc_count":10},{"key_as_string":"2017-02-11T17:35:00.000Z","key":1486834500000,"doc_count":13},{"key_as_string":"2017-02-11T17:36:00.000Z","key":1486834560000,"doc_count":12},{"key_as_string":"2017-02-11T17:37:00.000Z","key":1486834620000,"doc_count":13},{"key_as_string":"2017-02-11T17:38:00.000Z","key":1486834680000,"doc_count":12},{"key_as_string":"2017-02-11T17:39:00.000Z","key":1486834740000,"doc_count":11},{"key_as_string":"2017-02-11T17:40:00.000Z","key":1486834800000,"doc_count":15},{"key_as_string":"2017-02-11T17:41:00.000Z","key":1486834860000,"doc_count":15},{"key_as_string":"2017-02-11T17:42:00.000Z","key":1486834920000,"doc_count":14},{"key_as_string":"2017-02-11T17:43:00.000Z","key":1486834980000,"doc_count":10},{"key_as_string":"2017-02-11T17:44:00.000Z","key":1486835040000,"doc_count":8},{"key_as_string":"2017-02-11T17:45:00.000Z","key":1486835100000,"doc_count":14},{"key_as_string":"2017-02-11T17:46:00.000Z","key":1486835160000,"doc_count":8},{"key_as_string":"2017-02-11T17:47:00.000Z","key":1486835220000,"doc_count":11},{"key_as_string":"2017-02-11T17:48:00.000Z","key":1486835280000,"doc_count":13},{"key_as_string":"2017-02-11T17:49:00.000Z","key":1486835340000,"doc_count":13},{"key_as_string":"2017-02-11T17:50:00.000Z","key":1486835400000,"doc_count":10},{"key_as_string":"2017-02-11T17:51:00.000Z","key":1486835460000,"doc_count":11},{"key_as_string":"2017-02-11T17:52:00.000Z","key":1486835520000,"doc_count":22},{"key_as_string":"2017-02-11T17:53:00.000Z","key":1486835580000,"doc_count":14},{"key_as_string":"2017-02-11T17:54:00.000Z","key":1486835640000,"doc_count":11},{"key_as_string":"2017-02-11T17:55:00.000Z","key":1486835700000,"doc_count":11},{"key_as_string":"2017-02-11T17:56:00.000Z","key":1486835760000,"doc_count":10},{"key_as_string":"2017-02-11T17:57:00.000Z","key":1486835820000,"doc_count":13},{"key_as_string":"2017-02-11T17:58:00.000Z","key":1486835880000,"doc_count":6},{"key_as_string":"2017-02-11T17:59:00.000Z","key":1486835940000,"doc_count":16},{"key_as_string":"2017-02-11T18:00:00.000Z","key":1486836000000,"doc_count":11},{"key_as_string":"2017-02-11T18:01:00.000Z","key":1486836060000,"doc_count":15},{"key_as_string":"2017-02-11T18:02:00.000Z","key":1486836120000,"doc_count":8},{"key_as_string":"2017-02-11T18:03:00.000Z","key":1486836180000,"doc_count":12},{"key_as_string":"2017-02-11T18:04:00.000Z","key":1486836240000,"doc_count":14},{"key_as_string":"2017-02-11T18:05:00.000Z","key":1486836300000,"doc_count":11},{"key_as_string":"2017-02-11T18:06:00.000Z","key":1486836360000,"doc_count":15},{"key_as_string":"2017-02-11T18:07:00.000Z","key":1486836420000,"doc_count":9},{"key_as_string":"2017-02-11T18:08:00.000Z","key":1486836480000,"doc_count":11},{"key_as_string":"2017-02-11T18:09:00.000Z","key":1486836540000,"doc_count":9},{"key_as_string":"2017-02-11T18:10:00.000Z","key":1486836600000,"doc_count":10},{"key_as_string":"2017-02-11T18:11:00.000Z","key":1486836660000,"doc_count":12},{"key_as_string":"2017-02-11T18:12:00.000Z","key":1486836720000,"doc_count":10},{"key_as_string":"2017-02-11T18:13:00.000Z","key":1486836780000,"doc_count":11},{"key_as_string":"2017-02-11T18:14:00.000Z","key":1486836840000,"doc_count":12},{"key_as_string":"2017-02-11T18:15:00.000Z","key":1486836900000,"doc_count":11},{"key_as_string":"2017-02-11T18:16:00.000Z","key":1486836960000,"doc_count":9},{"key_as_string":"2017-02-11T18:17:00.000Z","key":1486837020000,"doc_count":7},{"key_as_string":"2017-02-11T18:18:00.000Z","key":1486837080000,"doc_count":16},{"key_as_string":"2017-02-11T18:19:00.000Z","key":1486837140000,"doc_count":10},{"key_as_string":"2017-02-11T18:20:00.000Z","key":1486837200000,"doc_count":14},{"key_as_string":"2017-02-11T18:21:00.000Z","key":1486837260000,"doc_count":5},{"key_as_string":"2017-02-11T18:22:00.000Z","key":1486837320000,"doc_count":12},{"key_as_string":"2017-02-11T18:23:00.000Z","key":1486837380000,"doc_count":13},{"key_as_string":"2017-02-11T18:24:00.000Z","key":1486837440000,"doc_count":12},{"key_as_string":"2017-02-11T18:25:00.000Z","key":1486837500000,"doc_count":9},{"key_as_string":"2017-02-11T18:26:00.000Z","key":1486837560000,"doc_count":12},{"key_as_string":"2017-02-11T18:27:00.000Z","key":1486837620000,"doc_count":11},{"key_as_string":"2017-02-11T18:28:00.000Z","key":1486837680000,"doc_count":12},{"key_as_string":"2017-02-11T18:29:00.000Z","key":1486837740000,"doc_count":10},{"key_as_string":"2017-02-11T18:30:00.000Z","key":1486837800000,"doc_count":11},{"key_as_string":"2017-02-11T18:31:00.000Z","key":1486837860000,"doc_count":9},{"key_as_string":"2017-02-11T18:32:00.000Z","key":1486837920000,"doc_count":13},{"key_as_string":"2017-02-11T18:33:00.000Z","key":1486837980000,"doc_count":11},{"key_as_string":"2017-02-11T18:34:00.000Z","key":1486838040000,"doc_count":13},{"key_as_string":"2017-02-11T18:35:00.000Z","key":1486838100000,"doc_count":12},{"key_as_string":"2017-02-11T18:36:00.000Z","key":1486838160000,"doc_count":8},{"key_as_string":"2017-02-11T18:37:00.000Z","key":1486838220000,"doc_count":10},{"key_as_string":"2017-02-11T18:38:00.000Z","key":1486838280000,"doc_count":10},{"key_as_string":"2017-02-11T18:39:00.000Z","key":1486838340000,"doc_count":10},{"key_as_string":"2017-02-11T18:40:00.000Z","key":1486838400000,"doc_count":14},{"key_as_string":"2017-02-11T18:41:00.000Z","key":1486838460000,"doc_count":13},{"key_as_string":"2017-02-11T18:42:00.000Z","key":1486838520000,"doc_count":15},{"key_as_string":"2017-02-11T18:43:00.000Z","key":1486838580000,"doc_count":9},{"key_as_string":"2017-02-11T18:44:00.000Z","key":1486838640000,"doc_count":10},{"key_as_string":"2017-02-11T18:45:00.000Z","key":1486838700000,"doc_count":14},{"key_as_string":"2017-02-11T18:46:00.000Z","key":1486838760000,"doc_count":9},{"key_as_string":"2017-02-11T18:47:00.000Z","key":1486838820000,"doc_count":14},{"key_as_string":"2017-02-11T18:48:00.000Z","key":1486838880000,"doc_count":8},{"key_as_string":"2017-02-11T18:49:00.000Z","key":1486838940000,"doc_count":10},{"key_as_string":"2017-02-11T18:50:00.000Z","key":1486839000000,"doc_count":15},{"key_as_string":"2017-02-11T18:51:00.000Z","key":1486839060000,"doc_count":9},{"key_as_string":"2017-02-11T18:52:00.000Z","key":1486839120000,"doc_count":13},{"key_as_string":"2017-02-11T18:53:00.000Z","key":1486839180000,"doc_count":14},{"key_as_string":"2017-02-11T18:54:00.000Z","key":1486839240000,"doc_count":9},{"key_as_string":"2017-02-11T18:55:00.000Z","key":1486839300000,"doc_count":9},{"key_as_string":"2017-02-11T18:56:00.000Z","key":1486839360000,"doc_count":9},{"key_as_string":"2017-02-11T18:57:00.000Z","key":1486839420000,"doc_count":12},{"key_as_string":"2017-02-11T18:58:00.000Z","key":1486839480000,"doc_count":14},{"key_as_string":"2017-02-11T18:59:00.000Z","key":1486839540000,"doc_count":9},{"key_as_string":"2017-02-11T19:00:00.000Z","key":1486839600000,"doc_count":14},{"key_as_string":"2017-02-11T19:01:00.000Z","key":1486839660000,"doc_count":13},{"key_as_string":"2017-02-11T19:02:00.000Z","key":1486839720000,"doc_count":13},{"key_as_string":"2017-02-11T19:03:00.000Z","key":1486839780000,"doc_count":15},{"key_as_string":"2017-02-11T19:04:00.000Z","key":1486839840000,"doc_count":11},{"key_as_string":"2017-02-11T19:05:00.000Z","key":1486839900000,"doc_count":11},{"key_as_string":"2017-02-11T19:06:00.000Z","key":1486839960000,"doc_count":10},{"key_as_string":"2017-02-11T19:07:00.000Z","key":1486840020000,"doc_count":11},{"key_as_string":"2017-02-11T19:08:00.000Z","key":1486840080000,"doc_count":15},{"key_as_string":"2017-02-11T19:09:00.000Z","key":1486840140000,"doc_count":13},{"key_as_string":"2017-02-11T19:10:00.000Z","key":1486840200000,"doc_count":17},{"key_as_string":"2017-02-11T19:11:00.000Z","key":1486840260000,"doc_count":9},{"key_as_string":"2017-02-11T19:12:00.000Z","key":1486840320000,"doc_count":10},{"key_as_string":"2017-02-11T19:13:00.000Z","key":1486840380000,"doc_count":8},{"key_as_string":"2017-02-11T19:14:00.000Z","key":1486840440000,"doc_count":17},{"key_as_string":"2017-02-11T19:15:00.000Z","key":1486840500000,"doc_count":8},{"key_as_string":"2017-02-11T19:16:00.000Z","key":1486840560000,"doc_count":13},{"key_as_string":"2017-02-11T19:17:00.000Z","key":1486840620000,"doc_count":10},{"key_as_string":"2017-02-11T19:18:00.000Z","key":1486840680000,"doc_count":9},{"key_as_string":"2017-02-11T19:19:00.000Z","key":1486840740000,"doc_count":13},{"key_as_string":"2017-02-11T19:20:00.000Z","key":1486840800000,"doc_count":12},{"key_as_string":"2017-02-11T19:21:00.000Z","key":1486840860000,"doc_count":18},{"key_as_string":"2017-02-11T19:22:00.000Z","key":1486840920000,"doc_count":14},{"key_as_string":"2017-02-11T19:23:00.000Z","key":1486840980000,"doc_count":10},{"key_as_string":"2017-02-11T19:24:00.000Z","key":1486841040000,"doc_count":11},{"key_as_string":"2017-02-11T19:25:00.000Z","key":1486841100000,"doc_count":12},{"key_as_string":"2017-02-11T19:26:00.000Z","key":1486841160000,"doc_count":16},{"key_as_string":"2017-02-11T19:27:00.000Z","key":1486841220000,"doc_count":10},{"key_as_string":"2017-02-11T19:28:00.000Z","key":1486841280000,"doc_count":16},{"key_as_string":"2017-02-11T19:29:00.000Z","key":1486841340000,"doc_count":6},{"key_as_string":"2017-02-11T19:30:00.000Z","key":1486841400000,"doc_count":12},{"key_as_string":"2017-02-11T19:31:00.000Z","key":1486841460000,"doc_count":10},{"key_as_string":"2017-02-11T19:32:00.000Z","key":1486841520000,"doc_count":15},{"key_as_string":"2017-02-11T19:33:00.000Z","key":1486841580000,"doc_count":16},{"key_as_string":"2017-02-11T19:34:00.000Z","key":1486841640000,"doc_count":14},{"key_as_string":"2017-02-11T19:35:00.000Z","key":1486841700000,"doc_count":5},{"key_as_string":"2017-02-11T19:36:00.000Z","key":1486841760000,"doc_count":15},{"key_as_string":"2017-02-11T19:37:00.000Z","key":1486841820000,"doc_count":9},{"key_as_string":"2017-02-11T19:38:00.000Z","key":1486841880000,"doc_count":11},{"key_as_string":"2017-02-11T19:39:00.000Z","key":1486841940000,"doc_count":9},{"key_as_string":"2017-02-11T19:40:00.000Z","key":1486842000000,"doc_count":14},{"key_as_string":"2017-02-11T19:41:00.000Z","key":1486842060000,"doc_count":8},{"key_as_string":"2017-02-11T19:42:00.000Z","key":1486842120000,"doc_count":7},{"key_as_string":"2017-02-11T19:43:00.000Z","key":1486842180000,"doc_count":8},{"key_as_string":"2017-02-11T19:44:00.000Z","key":1486842240000,"doc_count":12},{"key_as_string":"2017-02-11T19:45:00.000Z","key":1486842300000,"doc_count":12},{"key_as_string":"2017-02-11T19:46:00.000Z","key":1486842360000,"doc_count":11},{"key_as_string":"2017-02-11T19:47:00.000Z","key":1486842420000,"doc_count":10},{"key_as_string":"2017-02-11T19:48:00.000Z","key":1486842480000,"doc_count":8},{"key_as_string":"2017-02-11T19:49:00.000Z","key":1486842540000,"doc_count":11},{"key_as_string":"2017-02-11T19:50:00.000Z","key":1486842600000,"doc_count":12},{"key_as_string":"2017-02-11T19:51:00.000Z","key":1486842660000,"doc_count":10},{"key_as_string":"2017-02-11T19:52:00.000Z","key":1486842720000,"doc_count":11},{"key_as_string":"2017-02-11T19:53:00.000Z","key":1486842780000,"doc_count":17},{"key_as_string":"2017-02-11T19:54:00.000Z","key":1486842840000,"doc_count":11},{"key_as_string":"2017-02-11T19:55:00.000Z","key":1486842900000,"doc_count":11},{"key_as_string":"2017-02-11T19:56:00.000Z","key":1486842960000,"doc_count":14},{"key_as_string":"2017-02-11T19:57:00.000Z","key":1486843020000,"doc_count":5},{"key_as_string":"2017-02-11T19:58:00.000Z","key":1486843080000,"doc_count":17},{"key_as_string":"2017-02-11T19:59:00.000Z","key":1486843140000,"doc_count":7},{"key_as_string":"2017-02-11T20:00:00.000Z","key":1486843200000,"doc_count":12},{"key_as_string":"2017-02-11T20:01:00.000Z","key":1486843260000,"doc_count":12},{"key_as_string":"2017-02-11T20:02:00.000Z","key":1486843320000,"doc_count":15},{"key_as_string":"2017-02-11T20:03:00.000Z","key":1486843380000,"doc_count":8},{"key_as_string":"2017-02-11T20:04:00.000Z","key":1486843440000,"doc_count":10},{"key_as_string":"2017-02-11T20:05:00.000Z","key":1486843500000,"doc_count":10},{"key_as_string":"2017-02-11T20:06:00.000Z","key":1486843560000,"doc_count":10},{"key_as_string":"2017-02-11T20:07:00.000Z","key":1486843620000,"doc_count":14},{"key_as_string":"2017-02-11T20:08:00.000Z","key":1486843680000,"doc_count":11},{"key_as_string":"2017-02-11T20:09:00.000Z","key":1486843740000,"doc_count":9},{"key_as_string":"2017-02-11T20:10:00.000Z","key":1486843800000,"doc_count":7},{"key_as_string":"2017-02-11T20:11:00.000Z","key":1486843860000,"doc_count":17},{"key_as_string":"2017-02-11T20:12:00.000Z","key":1486843920000,"doc_count":11},{"key_as_string":"2017-02-11T20:13:00.000Z","key":1486843980000,"doc_count":15},{"key_as_string":"2017-02-11T20:14:00.000Z","key":1486844040000,"doc_count":12},{"key_as_string":"2017-02-11T20:15:00.000Z","key":1486844100000,"doc_count":9},{"key_as_string":"2017-02-11T20:16:00.000Z","key":1486844160000,"doc_count":7},{"key_as_string":"2017-02-11T20:17:00.000Z","key":1486844220000,"doc_count":9},{"key_as_string":"2017-02-11T20:18:00.000Z","key":1486844280000,"doc_count":14},{"key_as_string":"2017-02-11T20:19:00.000Z","key":1486844340000,"doc_count":9},{"key_as_string":"2017-02-11T20:20:00.000Z","key":1486844400000,"doc_count":13},{"key_as_string":"2017-02-11T20:21:00.000Z","key":1486844460000,"doc_count":11},{"key_as_string":"2017-02-11T20:22:00.000Z","key":1486844520000,"doc_count":15},{"key_as_string":"2017-02-11T20:23:00.000Z","key":1486844580000,"doc_count":13},{"key_as_string":"2017-02-11T20:24:00.000Z","key":1486844640000,"doc_count":11},{"key_as_string":"2017-02-11T20:25:00.000Z","key":1486844700000,"doc_count":7},{"key_as_string":"2017-02-11T20:26:00.000Z","key":1486844760000,"doc_count":7},{"key_as_string":"2017-02-11T20:27:00.000Z","key":1486844820000,"doc_count":13},{"key_as_string":"2017-02-11T20:28:00.000Z","key":1486844880000,"doc_count":8},{"key_as_string":"2017-02-11T20:29:00.000Z","key":1486844940000,"doc_count":12},{"key_as_string":"2017-02-11T20:30:00.000Z","key":1486845000000,"doc_count":12},{"key_as_string":"2017-02-11T20:31:00.000Z","key":1486845060000,"doc_count":11},{"key_as_string":"2017-02-11T20:32:00.000Z","key":1486845120000,"doc_count":11},{"key_as_string":"2017-02-11T20:33:00.000Z","key":1486845180000,"doc_count":10},{"key_as_string":"2017-02-11T20:34:00.000Z","key":1486845240000,"doc_count":15},{"key_as_string":"2017-02-11T20:35:00.000Z","key":1486845300000,"doc_count":5},{"key_as_string":"2017-02-11T20:36:00.000Z","key":1486845360000,"doc_count":9},{"key_as_string":"2017-02-11T20:37:00.000Z","key":1486845420000,"doc_count":11},{"key_as_string":"2017-02-11T20:38:00.000Z","key":1486845480000,"doc_count":9},{"key_as_string":"2017-02-11T20:39:00.000Z","key":1486845540000,"doc_count":12},{"key_as_string":"2017-02-11T20:40:00.000Z","key":1486845600000,"doc_count":16},{"key_as_string":"2017-02-11T20:41:00.000Z","key":1486845660000,"doc_count":6},{"key_as_string":"2017-02-11T20:42:00.000Z","key":1486845720000,"doc_count":11},{"key_as_string":"2017-02-11T20:43:00.000Z","key":1486845780000,"doc_count":13},{"key_as_string":"2017-02-11T20:44:00.000Z","key":1486845840000,"doc_count":7},{"key_as_string":"2017-02-11T20:45:00.000Z","key":1486845900000,"doc_count":11},{"key_as_string":"2017-02-11T20:46:00.000Z","key":1486845960000,"doc_count":7},{"key_as_string":"2017-02-11T20:47:00.000Z","key":1486846020000,"doc_count":9},{"key_as_string":"2017-02-11T20:48:00.000Z","key":1486846080000,"doc_count":14},{"key_as_string":"2017-02-11T20:49:00.000Z","key":1486846140000,"doc_count":9},{"key_as_string":"2017-02-11T20:50:00.000Z","key":1486846200000,"doc_count":12},{"key_as_string":"2017-02-11T20:51:00.000Z","key":1486846260000,"doc_count":17},{"key_as_string":"2017-02-11T20:52:00.000Z","key":1486846320000,"doc_count":13},{"key_as_string":"2017-02-11T20:53:00.000Z","key":1486846380000,"doc_count":7},{"key_as_string":"2017-02-11T20:54:00.000Z","key":1486846440000,"doc_count":15},{"key_as_string":"2017-02-11T20:55:00.000Z","key":1486846500000,"doc_count":13},{"key_as_string":"2017-02-11T20:56:00.000Z","key":1486846560000,"doc_count":16},{"key_as_string":"2017-02-11T20:57:00.000Z","key":1486846620000,"doc_count":12},{"key_as_string":"2017-02-11T20:58:00.000Z","key":1486846680000,"doc_count":8},{"key_as_string":"2017-02-11T20:59:00.000Z","key":1486846740000,"doc_count":14},{"key_as_string":"2017-02-11T21:00:00.000Z","key":1486846800000,"doc_count":11},{"key_as_string":"2017-02-11T21:01:00.000Z","key":1486846860000,"doc_count":8},{"key_as_string":"2017-02-11T21:02:00.000Z","key":1486846920000,"doc_count":13},{"key_as_string":"2017-02-11T21:03:00.000Z","key":1486846980000,"doc_count":8},{"key_as_string":"2017-02-11T21:04:00.000Z","key":1486847040000,"doc_count":9},{"key_as_string":"2017-02-11T21:05:00.000Z","key":1486847100000,"doc_count":12},{"key_as_string":"2017-02-11T21:06:00.000Z","key":1486847160000,"doc_count":11},{"key_as_string":"2017-02-11T21:07:00.000Z","key":1486847220000,"doc_count":15},{"key_as_string":"2017-02-11T21:08:00.000Z","key":1486847280000,"doc_count":6},{"key_as_string":"2017-02-11T21:09:00.000Z","key":1486847340000,"doc_count":14},{"key_as_string":"2017-02-11T21:10:00.000Z","key":1486847400000,"doc_count":5},{"key_as_string":"2017-02-11T21:11:00.000Z","key":1486847460000,"doc_count":11},{"key_as_string":"2017-02-11T21:12:00.000Z","key":1486847520000,"doc_count":12},{"key_as_string":"2017-02-11T21:13:00.000Z","key":1486847580000,"doc_count":10},{"key_as_string":"2017-02-11T21:14:00.000Z","key":1486847640000,"doc_count":7},{"key_as_string":"2017-02-11T21:15:00.000Z","key":1486847700000,"doc_count":9},{"key_as_string":"2017-02-11T21:16:00.000Z","key":1486847760000,"doc_count":12},{"key_as_string":"2017-02-11T21:17:00.000Z","key":1486847820000,"doc_count":11},{"key_as_string":"2017-02-11T21:18:00.000Z","key":1486847880000,"doc_count":12},{"key_as_string":"2017-02-11T21:19:00.000Z","key":1486847940000,"doc_count":14},{"key_as_string":"2017-02-11T21:20:00.000Z","key":1486848000000,"doc_count":10},{"key_as_string":"2017-02-11T21:21:00.000Z","key":1486848060000,"doc_count":9},{"key_as_string":"2017-02-11T21:22:00.000Z","key":1486848120000,"doc_count":16},{"key_as_string":"2017-02-11T21:23:00.000Z","key":1486848180000,"doc_count":10},{"key_as_string":"2017-02-11T21:24:00.000Z","key":1486848240000,"doc_count":10},{"key_as_string":"2017-02-11T21:25:00.000Z","key":1486848300000,"doc_count":11},{"key_as_string":"2017-02-11T21:26:00.000Z","key":1486848360000,"doc_count":12},{"key_as_string":"2017-02-11T21:27:00.000Z","key":1486848420000,"doc_count":6},{"key_as_string":"2017-02-11T21:28:00.000Z","key":1486848480000,"doc_count":14},{"key_as_string":"2017-02-11T21:29:00.000Z","key":1486848540000,"doc_count":10},{"key_as_string":"2017-02-11T21:30:00.000Z","key":1486848600000,"doc_count":12},{"key_as_string":"2017-02-11T21:31:00.000Z","key":1486848660000,"doc_count":7},{"key_as_string":"2017-02-11T21:32:00.000Z","key":1486848720000,"doc_count":11},{"key_as_string":"2017-02-11T21:33:00.000Z","key":1486848780000,"doc_count":11},{"key_as_string":"2017-02-11T21:34:00.000Z","key":1486848840000,"doc_count":11},{"key_as_string":"2017-02-11T21:35:00.000Z","key":1486848900000,"doc_count":5},{"key_as_string":"2017-02-11T21:36:00.000Z","key":1486848960000,"doc_count":15},{"key_as_string":"2017-02-11T21:37:00.000Z","key":1486849020000,"doc_count":8},{"key_as_string":"2017-02-11T21:38:00.000Z","key":1486849080000,"doc_count":11},{"key_as_string":"2017-02-11T21:39:00.000Z","key":1486849140000,"doc_count":9},{"key_as_string":"2017-02-11T21:40:00.000Z","key":1486849200000,"doc_count":9},{"key_as_string":"2017-02-11T21:41:00.000Z","key":1486849260000,"doc_count":10},{"key_as_string":"2017-02-11T21:42:00.000Z","key":1486849320000,"doc_count":7},{"key_as_string":"2017-02-11T21:43:00.000Z","key":1486849380000,"doc_count":13},{"key_as_string":"2017-02-11T21:44:00.000Z","key":1486849440000,"doc_count":10},{"key_as_string":"2017-02-11T21:45:00.000Z","key":1486849500000,"doc_count":10},{"key_as_string":"2017-02-11T21:46:00.000Z","key":1486849560000,"doc_count":11},{"key_as_string":"2017-02-11T21:47:00.000Z","key":1486849620000,"doc_count":10},{"key_as_string":"2017-02-11T21:48:00.000Z","key":1486849680000,"doc_count":7},{"key_as_string":"2017-02-11T21:49:00.000Z","key":1486849740000,"doc_count":8},{"key_as_string":"2017-02-11T21:50:00.000Z","key":1486849800000,"doc_count":12},{"key_as_string":"2017-02-11T21:51:00.000Z","key":1486849860000,"doc_count":8},{"key_as_string":"2017-02-11T21:52:00.000Z","key":1486849920000,"doc_count":7},{"key_as_string":"2017-02-11T21:53:00.000Z","key":1486849980000,"doc_count":15},{"key_as_string":"2017-02-11T21:54:00.000Z","key":1486850040000,"doc_count":14},{"key_as_string":"2017-02-11T21:55:00.000Z","key":1486850100000,"doc_count":9},{"key_as_string":"2017-02-11T21:56:00.000Z","key":1486850160000,"doc_count":9},{"key_as_string":"2017-02-11T21:57:00.000Z","key":1486850220000,"doc_count":9},{"key_as_string":"2017-02-11T21:58:00.000Z","key":1486850280000,"doc_count":13},{"key_as_string":"2017-02-11T21:59:00.000Z","key":1486850340000,"doc_count":13},{"key_as_string":"2017-02-11T22:00:00.000Z","key":1486850400000,"doc_count":11},{"key_as_string":"2017-02-11T22:01:00.000Z","key":1486850460000,"doc_count":12},{"key_as_string":"2017-02-11T22:02:00.000Z","key":1486850520000,"doc_count":12},{"key_as_string":"2017-02-11T22:03:00.000Z","key":1486850580000,"doc_count":11},{"key_as_string":"2017-02-11T22:04:00.000Z","key":1486850640000,"doc_count":7},{"key_as_string":"2017-02-11T22:05:00.000Z","key":1486850700000,"doc_count":9},{"key_as_string":"2017-02-11T22:06:00.000Z","key":1486850760000,"doc_count":12},{"key_as_string":"2017-02-11T22:07:00.000Z","key":1486850820000,"doc_count":13},{"key_as_string":"2017-02-11T22:08:00.000Z","key":1486850880000,"doc_count":11},{"key_as_string":"2017-02-11T22:09:00.000Z","key":1486850940000,"doc_count":8},{"key_as_string":"2017-02-11T22:10:00.000Z","key":1486851000000,"doc_count":6},{"key_as_string":"2017-02-11T22:11:00.000Z","key":1486851060000,"doc_count":9},{"key_as_string":"2017-02-11T22:12:00.000Z","key":1486851120000,"doc_count":15},{"key_as_string":"2017-02-11T22:13:00.000Z","key":1486851180000,"doc_count":12},{"key_as_string":"2017-02-11T22:14:00.000Z","key":1486851240000,"doc_count":12},{"key_as_string":"2017-02-11T22:15:00.000Z","key":1486851300000,"doc_count":9},{"key_as_string":"2017-02-11T22:16:00.000Z","key":1486851360000,"doc_count":11},{"key_as_string":"2017-02-11T22:17:00.000Z","key":1486851420000,"doc_count":9},{"key_as_string":"2017-02-11T22:18:00.000Z","key":1486851480000,"doc_count":13},{"key_as_string":"2017-02-11T22:19:00.000Z","key":1486851540000,"doc_count":10},{"key_as_string":"2017-02-11T22:20:00.000Z","key":1486851600000,"doc_count":16},{"key_as_string":"2017-02-11T22:21:00.000Z","key":1486851660000,"doc_count":10},{"key_as_string":"2017-02-11T22:22:00.000Z","key":1486851720000,"doc_count":7},{"key_as_string":"2017-02-11T22:23:00.000Z","key":1486851780000,"doc_count":8},{"key_as_string":"2017-02-11T22:24:00.000Z","key":1486851840000,"doc_count":13},{"key_as_string":"2017-02-11T22:25:00.000Z","key":1486851900000,"doc_count":11},{"key_as_string":"2017-02-11T22:26:00.000Z","key":1486851960000,"doc_count":11},{"key_as_string":"2017-02-11T22:27:00.000Z","key":1486852020000,"doc_count":15},{"key_as_string":"2017-02-11T22:28:00.000Z","key":1486852080000,"doc_count":10},{"key_as_string":"2017-02-11T22:29:00.000Z","key":1486852140000,"doc_count":13},{"key_as_string":"2017-02-11T22:30:00.000Z","key":1486852200000,"doc_count":3},{"key_as_string":"2017-02-11T22:31:00.000Z","key":1486852260000,"doc_count":16},{"key_as_string":"2017-02-11T22:32:00.000Z","key":1486852320000,"doc_count":8},{"key_as_string":"2017-02-11T22:33:00.000Z","key":1486852380000,"doc_count":13},{"key_as_string":"2017-02-11T22:34:00.000Z","key":1486852440000,"doc_count":10},{"key_as_string":"2017-02-11T22:35:00.000Z","key":1486852500000,"doc_count":10},{"key_as_string":"2017-02-11T22:36:00.000Z","key":1486852560000,"doc_count":15},{"key_as_string":"2017-02-11T22:37:00.000Z","key":1486852620000,"doc_count":10},{"key_as_string":"2017-02-11T22:38:00.000Z","key":1486852680000,"doc_count":9},{"key_as_string":"2017-02-11T22:39:00.000Z","key":1486852740000,"doc_count":11},{"key_as_string":"2017-02-11T22:40:00.000Z","key":1486852800000,"doc_count":11},{"key_as_string":"2017-02-11T22:41:00.000Z","key":1486852860000,"doc_count":8},{"key_as_string":"2017-02-11T22:42:00.000Z","key":1486852920000,"doc_count":10},{"key_as_string":"2017-02-11T22:43:00.000Z","key":1486852980000,"doc_count":12},{"key_as_string":"2017-02-11T22:44:00.000Z","key":1486853040000,"doc_count":8},{"key_as_string":"2017-02-11T22:45:00.000Z","key":1486853100000,"doc_count":14},{"key_as_string":"2017-02-11T22:46:00.000Z","key":1486853160000,"doc_count":9},{"key_as_string":"2017-02-11T22:47:00.000Z","key":1486853220000,"doc_count":10},{"key_as_string":"2017-02-11T22:48:00.000Z","key":1486853280000,"doc_count":12},{"key_as_string":"2017-02-11T22:49:00.000Z","key":1486853340000,"doc_count":13},{"key_as_string":"2017-02-11T22:50:00.000Z","key":1486853400000,"doc_count":13},{"key_as_string":"2017-02-11T22:51:00.000Z","key":1486853460000,"doc_count":5},{"key_as_string":"2017-02-11T22:52:00.000Z","key":1486853520000,"doc_count":10},{"key_as_string":"2017-02-11T22:53:00.000Z","key":1486853580000,"doc_count":8},{"key_as_string":"2017-02-11T22:54:00.000Z","key":1486853640000,"doc_count":12},{"key_as_string":"2017-02-11T22:55:00.000Z","key":1486853700000,"doc_count":6},{"key_as_string":"2017-02-11T22:56:00.000Z","key":1486853760000,"doc_count":15},{"key_as_string":"2017-02-11T22:57:00.000Z","key":1486853820000,"doc_count":8},{"key_as_string":"2017-02-11T22:58:00.000Z","key":1486853880000,"doc_count":11},{"key_as_string":"2017-02-11T22:59:00.000Z","key":1486853940000,"doc_count":10},{"key_as_string":"2017-02-11T23:00:00.000Z","key":1486854000000,"doc_count":8},{"key_as_string":"2017-02-11T23:01:00.000Z","key":1486854060000,"doc_count":9},{"key_as_string":"2017-02-11T23:02:00.000Z","key":1486854120000,"doc_count":11},{"key_as_string":"2017-02-11T23:03:00.000Z","key":1486854180000,"doc_count":15},{"key_as_string":"2017-02-11T23:04:00.000Z","key":1486854240000,"doc_count":9},{"key_as_string":"2017-02-11T23:05:00.000Z","key":1486854300000,"doc_count":14},{"key_as_string":"2017-02-11T23:06:00.000Z","key":1486854360000,"doc_count":8},{"key_as_string":"2017-02-11T23:07:00.000Z","key":1486854420000,"doc_count":10},{"key_as_string":"2017-02-11T23:08:00.000Z","key":1486854480000,"doc_count":8},{"key_as_string":"2017-02-11T23:09:00.000Z","key":1486854540000,"doc_count":13},{"key_as_string":"2017-02-11T23:10:00.000Z","key":1486854600000,"doc_count":11},{"key_as_string":"2017-02-11T23:11:00.000Z","key":1486854660000,"doc_count":12},{"key_as_string":"2017-02-11T23:12:00.000Z","key":1486854720000,"doc_count":11},{"key_as_string":"2017-02-11T23:13:00.000Z","key":1486854780000,"doc_count":6},{"key_as_string":"2017-02-11T23:14:00.000Z","key":1486854840000,"doc_count":14},{"key_as_string":"2017-02-11T23:15:00.000Z","key":1486854900000,"doc_count":14},{"key_as_string":"2017-02-11T23:16:00.000Z","key":1486854960000,"doc_count":14},{"key_as_string":"2017-02-11T23:17:00.000Z","key":1486855020000,"doc_count":11},{"key_as_string":"2017-02-11T23:18:00.000Z","key":1486855080000,"doc_count":9},{"key_as_string":"2017-02-11T23:19:00.000Z","key":1486855140000,"doc_count":10},{"key_as_string":"2017-02-11T23:20:00.000Z","key":1486855200000,"doc_count":8},{"key_as_string":"2017-02-11T23:21:00.000Z","key":1486855260000,"doc_count":13},{"key_as_string":"2017-02-11T23:22:00.000Z","key":1486855320000,"doc_count":12},{"key_as_string":"2017-02-11T23:23:00.000Z","key":1486855380000,"doc_count":10},{"key_as_string":"2017-02-11T23:24:00.000Z","key":1486855440000,"doc_count":13},{"key_as_string":"2017-02-11T23:25:00.000Z","key":1486855500000,"doc_count":11},{"key_as_string":"2017-02-11T23:26:00.000Z","key":1486855560000,"doc_count":11},{"key_as_string":"2017-02-11T23:27:00.000Z","key":1486855620000,"doc_count":9},{"key_as_string":"2017-02-11T23:28:00.000Z","key":1486855680000,"doc_count":13},{"key_as_string":"2017-02-11T23:29:00.000Z","key":1486855740000,"doc_count":3},{"key_as_string":"2017-02-11T23:30:00.000Z","key":1486855800000,"doc_count":10},{"key_as_string":"2017-02-11T23:31:00.000Z","key":1486855860000,"doc_count":9},{"key_as_string":"2017-02-11T23:32:00.000Z","key":1486855920000,"doc_count":7},{"key_as_string":"2017-02-11T23:33:00.000Z","key":1486855980000,"doc_count":15},{"key_as_string":"2017-02-11T23:34:00.000Z","key":1486856040000,"doc_count":12},{"key_as_string":"2017-02-11T23:35:00.000Z","key":1486856100000,"doc_count":17},{"key_as_string":"2017-02-11T23:36:00.000Z","key":1486856160000,"doc_count":9},{"key_as_string":"2017-02-11T23:37:00.000Z","key":1486856220000,"doc_count":8},{"key_as_string":"2017-02-11T23:38:00.000Z","key":1486856280000,"doc_count":9},{"key_as_string":"2017-02-11T23:39:00.000Z","key":1486856340000,"doc_count":14},{"key_as_string":"2017-02-11T23:40:00.000Z","key":1486856400000,"doc_count":9},{"key_as_string":"2017-02-11T23:41:00.000Z","key":1486856460000,"doc_count":7},{"key_as_string":"2017-02-11T23:42:00.000Z","key":1486856520000,"doc_count":10},{"key_as_string":"2017-02-11T23:43:00.000Z","key":1486856580000,"doc_count":7},{"key_as_string":"2017-02-11T23:44:00.000Z","key":1486856640000,"doc_count":12},{"key_as_string":"2017-02-11T23:45:00.000Z","key":1486856700000,"doc_count":10},{"key_as_string":"2017-02-11T23:46:00.000Z","key":1486856760000,"doc_count":10},{"key_as_string":"2017-02-11T23:47:00.000Z","key":1486856820000,"doc_count":9},{"key_as_string":"2017-02-11T23:48:00.000Z","key":1486856880000,"doc_count":7},{"key_as_string":"2017-02-11T23:49:00.000Z","key":1486856940000,"doc_count":9},{"key_as_string":"2017-02-11T23:50:00.000Z","key":1486857000000,"doc_count":11},{"key_as_string":"2017-02-11T23:51:00.000Z","key":1486857060000,"doc_count":10},{"key_as_string":"2017-02-11T23:52:00.000Z","key":1486857120000,"doc_count":11},{"key_as_string":"2017-02-11T23:53:00.000Z","key":1486857180000,"doc_count":10},{"key_as_string":"2017-02-11T23:54:00.000Z","key":1486857240000,"doc_count":15},{"key_as_string":"2017-02-11T23:55:00.000Z","key":1486857300000,"doc_count":5},{"key_as_string":"2017-02-11T23:56:00.000Z","key":1486857360000,"doc_count":7},{"key_as_string":"2017-02-11T23:57:00.000Z","key":1486857420000,"doc_count":14},{"key_as_string":"2017-02-11T23:58:00.000Z","key":1486857480000,"doc_count":10},{"key_as_string":"2017-02-11T23:59:00.000Z","key":1486857540000,"doc_count":9}]}}} +{"took":41,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value": 86274,"relation":"eq"},"max_score":0,"hits":[]},"aggregations":{"non_empty_buckets":{"buckets":[{"key_as_string":"2017-02-07T00:00:00.000Z","key":1486425600000,"doc_count":23},{"key_as_string":"2017-02-07T00:01:00.000Z","key":1486425660000,"doc_count":10},{"key_as_string":"2017-02-07T00:02:00.000Z","key":1486425720000,"doc_count":6},{"key_as_string":"2017-02-07T00:03:00.000Z","key":1486425780000,"doc_count":11},{"key_as_string":"2017-02-07T00:04:00.000Z","key":1486425840000,"doc_count":11},{"key_as_string":"2017-02-07T00:05:00.000Z","key":1486425900000,"doc_count":11},{"key_as_string":"2017-02-07T00:06:00.000Z","key":1486425960000,"doc_count":11},{"key_as_string":"2017-02-07T00:07:00.000Z","key":1486426020000,"doc_count":11},{"key_as_string":"2017-02-07T00:08:00.000Z","key":1486426080000,"doc_count":8},{"key_as_string":"2017-02-07T00:09:00.000Z","key":1486426140000,"doc_count":11},{"key_as_string":"2017-02-07T00:10:00.000Z","key":1486426200000,"doc_count":10},{"key_as_string":"2017-02-07T00:11:00.000Z","key":1486426260000,"doc_count":9},{"key_as_string":"2017-02-07T00:12:00.000Z","key":1486426320000,"doc_count":12},{"key_as_string":"2017-02-07T00:13:00.000Z","key":1486426380000,"doc_count":9},{"key_as_string":"2017-02-07T00:14:00.000Z","key":1486426440000,"doc_count":8},{"key_as_string":"2017-02-07T00:15:00.000Z","key":1486426500000,"doc_count":14},{"key_as_string":"2017-02-07T00:16:00.000Z","key":1486426560000,"doc_count":9},{"key_as_string":"2017-02-07T00:17:00.000Z","key":1486426620000,"doc_count":8},{"key_as_string":"2017-02-07T00:18:00.000Z","key":1486426680000,"doc_count":13},{"key_as_string":"2017-02-07T00:19:00.000Z","key":1486426740000,"doc_count":9},{"key_as_string":"2017-02-07T00:20:00.000Z","key":1486426800000,"doc_count":11},{"key_as_string":"2017-02-07T00:21:00.000Z","key":1486426860000,"doc_count":9},{"key_as_string":"2017-02-07T00:22:00.000Z","key":1486426920000,"doc_count":9},{"key_as_string":"2017-02-07T00:23:00.000Z","key":1486426980000,"doc_count":12},{"key_as_string":"2017-02-07T00:24:00.000Z","key":1486427040000,"doc_count":11},{"key_as_string":"2017-02-07T00:25:00.000Z","key":1486427100000,"doc_count":11},{"key_as_string":"2017-02-07T00:26:00.000Z","key":1486427160000,"doc_count":8},{"key_as_string":"2017-02-07T00:27:00.000Z","key":1486427220000,"doc_count":12},{"key_as_string":"2017-02-07T00:28:00.000Z","key":1486427280000,"doc_count":7},{"key_as_string":"2017-02-07T00:29:00.000Z","key":1486427340000,"doc_count":12},{"key_as_string":"2017-02-07T00:30:00.000Z","key":1486427400000,"doc_count":13},{"key_as_string":"2017-02-07T00:31:00.000Z","key":1486427460000,"doc_count":10},{"key_as_string":"2017-02-07T00:32:00.000Z","key":1486427520000,"doc_count":13},{"key_as_string":"2017-02-07T00:33:00.000Z","key":1486427580000,"doc_count":13},{"key_as_string":"2017-02-07T00:34:00.000Z","key":1486427640000,"doc_count":11},{"key_as_string":"2017-02-07T00:35:00.000Z","key":1486427700000,"doc_count":9},{"key_as_string":"2017-02-07T00:36:00.000Z","key":1486427760000,"doc_count":11},{"key_as_string":"2017-02-07T00:37:00.000Z","key":1486427820000,"doc_count":15},{"key_as_string":"2017-02-07T00:38:00.000Z","key":1486427880000,"doc_count":7},{"key_as_string":"2017-02-07T00:39:00.000Z","key":1486427940000,"doc_count":13},{"key_as_string":"2017-02-07T00:40:00.000Z","key":1486428000000,"doc_count":9},{"key_as_string":"2017-02-07T00:41:00.000Z","key":1486428060000,"doc_count":12},{"key_as_string":"2017-02-07T00:42:00.000Z","key":1486428120000,"doc_count":16},{"key_as_string":"2017-02-07T00:43:00.000Z","key":1486428180000,"doc_count":7},{"key_as_string":"2017-02-07T00:44:00.000Z","key":1486428240000,"doc_count":6},{"key_as_string":"2017-02-07T00:45:00.000Z","key":1486428300000,"doc_count":12},{"key_as_string":"2017-02-07T00:46:00.000Z","key":1486428360000,"doc_count":11},{"key_as_string":"2017-02-07T00:47:00.000Z","key":1486428420000,"doc_count":12},{"key_as_string":"2017-02-07T00:48:00.000Z","key":1486428480000,"doc_count":13},{"key_as_string":"2017-02-07T00:49:00.000Z","key":1486428540000,"doc_count":10},{"key_as_string":"2017-02-07T00:50:00.000Z","key":1486428600000,"doc_count":13},{"key_as_string":"2017-02-07T00:51:00.000Z","key":1486428660000,"doc_count":7},{"key_as_string":"2017-02-07T00:52:00.000Z","key":1486428720000,"doc_count":11},{"key_as_string":"2017-02-07T00:53:00.000Z","key":1486428780000,"doc_count":12},{"key_as_string":"2017-02-07T00:54:00.000Z","key":1486428840000,"doc_count":16},{"key_as_string":"2017-02-07T00:55:00.000Z","key":1486428900000,"doc_count":8},{"key_as_string":"2017-02-07T00:56:00.000Z","key":1486428960000,"doc_count":12},{"key_as_string":"2017-02-07T00:57:00.000Z","key":1486429020000,"doc_count":12},{"key_as_string":"2017-02-07T00:58:00.000Z","key":1486429080000,"doc_count":8},{"key_as_string":"2017-02-07T00:59:00.000Z","key":1486429140000,"doc_count":11},{"key_as_string":"2017-02-07T01:00:00.000Z","key":1486429200000,"doc_count":8},{"key_as_string":"2017-02-07T01:01:00.000Z","key":1486429260000,"doc_count":7},{"key_as_string":"2017-02-07T01:02:00.000Z","key":1486429320000,"doc_count":6},{"key_as_string":"2017-02-07T01:03:00.000Z","key":1486429380000,"doc_count":15},{"key_as_string":"2017-02-07T01:04:00.000Z","key":1486429440000,"doc_count":12},{"key_as_string":"2017-02-07T01:05:00.000Z","key":1486429500000,"doc_count":5},{"key_as_string":"2017-02-07T01:06:00.000Z","key":1486429560000,"doc_count":11},{"key_as_string":"2017-02-07T01:07:00.000Z","key":1486429620000,"doc_count":15},{"key_as_string":"2017-02-07T01:08:00.000Z","key":1486429680000,"doc_count":8},{"key_as_string":"2017-02-07T01:09:00.000Z","key":1486429740000,"doc_count":14},{"key_as_string":"2017-02-07T01:10:00.000Z","key":1486429800000,"doc_count":8},{"key_as_string":"2017-02-07T01:11:00.000Z","key":1486429860000,"doc_count":6},{"key_as_string":"2017-02-07T01:12:00.000Z","key":1486429920000,"doc_count":16},{"key_as_string":"2017-02-07T01:13:00.000Z","key":1486429980000,"doc_count":10},{"key_as_string":"2017-02-07T01:14:00.000Z","key":1486430040000,"doc_count":8},{"key_as_string":"2017-02-07T01:15:00.000Z","key":1486430100000,"doc_count":12},{"key_as_string":"2017-02-07T01:16:00.000Z","key":1486430160000,"doc_count":13},{"key_as_string":"2017-02-07T01:17:00.000Z","key":1486430220000,"doc_count":10},{"key_as_string":"2017-02-07T01:18:00.000Z","key":1486430280000,"doc_count":11},{"key_as_string":"2017-02-07T01:19:00.000Z","key":1486430340000,"doc_count":12},{"key_as_string":"2017-02-07T01:20:00.000Z","key":1486430400000,"doc_count":12},{"key_as_string":"2017-02-07T01:21:00.000Z","key":1486430460000,"doc_count":12},{"key_as_string":"2017-02-07T01:22:00.000Z","key":1486430520000,"doc_count":7},{"key_as_string":"2017-02-07T01:23:00.000Z","key":1486430580000,"doc_count":13},{"key_as_string":"2017-02-07T01:24:00.000Z","key":1486430640000,"doc_count":5},{"key_as_string":"2017-02-07T01:25:00.000Z","key":1486430700000,"doc_count":11},{"key_as_string":"2017-02-07T01:26:00.000Z","key":1486430760000,"doc_count":11},{"key_as_string":"2017-02-07T01:27:00.000Z","key":1486430820000,"doc_count":9},{"key_as_string":"2017-02-07T01:28:00.000Z","key":1486430880000,"doc_count":11},{"key_as_string":"2017-02-07T01:29:00.000Z","key":1486430940000,"doc_count":10},{"key_as_string":"2017-02-07T01:30:00.000Z","key":1486431000000,"doc_count":10},{"key_as_string":"2017-02-07T01:31:00.000Z","key":1486431060000,"doc_count":12},{"key_as_string":"2017-02-07T01:32:00.000Z","key":1486431120000,"doc_count":12},{"key_as_string":"2017-02-07T01:33:00.000Z","key":1486431180000,"doc_count":10},{"key_as_string":"2017-02-07T01:34:00.000Z","key":1486431240000,"doc_count":10},{"key_as_string":"2017-02-07T01:35:00.000Z","key":1486431300000,"doc_count":10},{"key_as_string":"2017-02-07T01:36:00.000Z","key":1486431360000,"doc_count":14},{"key_as_string":"2017-02-07T01:37:00.000Z","key":1486431420000,"doc_count":9},{"key_as_string":"2017-02-07T01:38:00.000Z","key":1486431480000,"doc_count":8},{"key_as_string":"2017-02-07T01:39:00.000Z","key":1486431540000,"doc_count":16},{"key_as_string":"2017-02-07T01:40:00.000Z","key":1486431600000,"doc_count":8},{"key_as_string":"2017-02-07T01:41:00.000Z","key":1486431660000,"doc_count":11},{"key_as_string":"2017-02-07T01:42:00.000Z","key":1486431720000,"doc_count":12},{"key_as_string":"2017-02-07T01:43:00.000Z","key":1486431780000,"doc_count":10},{"key_as_string":"2017-02-07T01:44:00.000Z","key":1486431840000,"doc_count":16},{"key_as_string":"2017-02-07T01:45:00.000Z","key":1486431900000,"doc_count":10},{"key_as_string":"2017-02-07T01:46:00.000Z","key":1486431960000,"doc_count":7},{"key_as_string":"2017-02-07T01:47:00.000Z","key":1486432020000,"doc_count":10},{"key_as_string":"2017-02-07T01:48:00.000Z","key":1486432080000,"doc_count":5},{"key_as_string":"2017-02-07T01:49:00.000Z","key":1486432140000,"doc_count":11},{"key_as_string":"2017-02-07T01:50:00.000Z","key":1486432200000,"doc_count":7},{"key_as_string":"2017-02-07T01:51:00.000Z","key":1486432260000,"doc_count":16},{"key_as_string":"2017-02-07T01:52:00.000Z","key":1486432320000,"doc_count":8},{"key_as_string":"2017-02-07T01:53:00.000Z","key":1486432380000,"doc_count":14},{"key_as_string":"2017-02-07T01:54:00.000Z","key":1486432440000,"doc_count":10},{"key_as_string":"2017-02-07T01:55:00.000Z","key":1486432500000,"doc_count":8},{"key_as_string":"2017-02-07T01:56:00.000Z","key":1486432560000,"doc_count":12},{"key_as_string":"2017-02-07T01:57:00.000Z","key":1486432620000,"doc_count":14},{"key_as_string":"2017-02-07T01:58:00.000Z","key":1486432680000,"doc_count":9},{"key_as_string":"2017-02-07T01:59:00.000Z","key":1486432740000,"doc_count":10},{"key_as_string":"2017-02-07T02:00:00.000Z","key":1486432800000,"doc_count":9},{"key_as_string":"2017-02-07T02:01:00.000Z","key":1486432860000,"doc_count":14},{"key_as_string":"2017-02-07T02:02:00.000Z","key":1486432920000,"doc_count":10},{"key_as_string":"2017-02-07T02:03:00.000Z","key":1486432980000,"doc_count":7},{"key_as_string":"2017-02-07T02:04:00.000Z","key":1486433040000,"doc_count":8},{"key_as_string":"2017-02-07T02:05:00.000Z","key":1486433100000,"doc_count":8},{"key_as_string":"2017-02-07T02:06:00.000Z","key":1486433160000,"doc_count":14},{"key_as_string":"2017-02-07T02:07:00.000Z","key":1486433220000,"doc_count":10},{"key_as_string":"2017-02-07T02:08:00.000Z","key":1486433280000,"doc_count":7},{"key_as_string":"2017-02-07T02:09:00.000Z","key":1486433340000,"doc_count":11},{"key_as_string":"2017-02-07T02:10:00.000Z","key":1486433400000,"doc_count":6},{"key_as_string":"2017-02-07T02:11:00.000Z","key":1486433460000,"doc_count":8},{"key_as_string":"2017-02-07T02:12:00.000Z","key":1486433520000,"doc_count":7},{"key_as_string":"2017-02-07T02:13:00.000Z","key":1486433580000,"doc_count":15},{"key_as_string":"2017-02-07T02:14:00.000Z","key":1486433640000,"doc_count":8},{"key_as_string":"2017-02-07T02:15:00.000Z","key":1486433700000,"doc_count":14},{"key_as_string":"2017-02-07T02:16:00.000Z","key":1486433760000,"doc_count":5},{"key_as_string":"2017-02-07T02:17:00.000Z","key":1486433820000,"doc_count":9},{"key_as_string":"2017-02-07T02:18:00.000Z","key":1486433880000,"doc_count":7},{"key_as_string":"2017-02-07T02:19:00.000Z","key":1486433940000,"doc_count":8},{"key_as_string":"2017-02-07T02:20:00.000Z","key":1486434000000,"doc_count":13},{"key_as_string":"2017-02-07T02:21:00.000Z","key":1486434060000,"doc_count":13},{"key_as_string":"2017-02-07T02:22:00.000Z","key":1486434120000,"doc_count":13},{"key_as_string":"2017-02-07T02:23:00.000Z","key":1486434180000,"doc_count":8},{"key_as_string":"2017-02-07T02:24:00.000Z","key":1486434240000,"doc_count":11},{"key_as_string":"2017-02-07T02:25:00.000Z","key":1486434300000,"doc_count":9},{"key_as_string":"2017-02-07T02:26:00.000Z","key":1486434360000,"doc_count":11},{"key_as_string":"2017-02-07T02:27:00.000Z","key":1486434420000,"doc_count":14},{"key_as_string":"2017-02-07T02:28:00.000Z","key":1486434480000,"doc_count":9},{"key_as_string":"2017-02-07T02:29:00.000Z","key":1486434540000,"doc_count":15},{"key_as_string":"2017-02-07T02:30:00.000Z","key":1486434600000,"doc_count":13},{"key_as_string":"2017-02-07T02:31:00.000Z","key":1486434660000,"doc_count":6},{"key_as_string":"2017-02-07T02:32:00.000Z","key":1486434720000,"doc_count":16},{"key_as_string":"2017-02-07T02:33:00.000Z","key":1486434780000,"doc_count":11},{"key_as_string":"2017-02-07T02:34:00.000Z","key":1486434840000,"doc_count":9},{"key_as_string":"2017-02-07T02:35:00.000Z","key":1486434900000,"doc_count":11},{"key_as_string":"2017-02-07T02:36:00.000Z","key":1486434960000,"doc_count":15},{"key_as_string":"2017-02-07T02:37:00.000Z","key":1486435020000,"doc_count":6},{"key_as_string":"2017-02-07T02:38:00.000Z","key":1486435080000,"doc_count":11},{"key_as_string":"2017-02-07T02:39:00.000Z","key":1486435140000,"doc_count":5},{"key_as_string":"2017-02-07T02:40:00.000Z","key":1486435200000,"doc_count":14},{"key_as_string":"2017-02-07T02:41:00.000Z","key":1486435260000,"doc_count":9},{"key_as_string":"2017-02-07T02:42:00.000Z","key":1486435320000,"doc_count":9},{"key_as_string":"2017-02-07T02:43:00.000Z","key":1486435380000,"doc_count":9},{"key_as_string":"2017-02-07T02:44:00.000Z","key":1486435440000,"doc_count":16},{"key_as_string":"2017-02-07T02:45:00.000Z","key":1486435500000,"doc_count":10},{"key_as_string":"2017-02-07T02:46:00.000Z","key":1486435560000,"doc_count":8},{"key_as_string":"2017-02-07T02:47:00.000Z","key":1486435620000,"doc_count":10},{"key_as_string":"2017-02-07T02:48:00.000Z","key":1486435680000,"doc_count":11},{"key_as_string":"2017-02-07T02:49:00.000Z","key":1486435740000,"doc_count":13},{"key_as_string":"2017-02-07T02:50:00.000Z","key":1486435800000,"doc_count":9},{"key_as_string":"2017-02-07T02:51:00.000Z","key":1486435860000,"doc_count":14},{"key_as_string":"2017-02-07T02:52:00.000Z","key":1486435920000,"doc_count":17},{"key_as_string":"2017-02-07T02:53:00.000Z","key":1486435980000,"doc_count":10},{"key_as_string":"2017-02-07T02:54:00.000Z","key":1486436040000,"doc_count":8},{"key_as_string":"2017-02-07T02:55:00.000Z","key":1486436100000,"doc_count":10},{"key_as_string":"2017-02-07T02:56:00.000Z","key":1486436160000,"doc_count":9},{"key_as_string":"2017-02-07T02:57:00.000Z","key":1486436220000,"doc_count":9},{"key_as_string":"2017-02-07T02:58:00.000Z","key":1486436280000,"doc_count":12},{"key_as_string":"2017-02-07T02:59:00.000Z","key":1486436340000,"doc_count":8},{"key_as_string":"2017-02-07T03:00:00.000Z","key":1486436400000,"doc_count":11},{"key_as_string":"2017-02-07T03:01:00.000Z","key":1486436460000,"doc_count":12},{"key_as_string":"2017-02-07T03:02:00.000Z","key":1486436520000,"doc_count":7},{"key_as_string":"2017-02-07T03:03:00.000Z","key":1486436580000,"doc_count":16},{"key_as_string":"2017-02-07T03:04:00.000Z","key":1486436640000,"doc_count":13},{"key_as_string":"2017-02-07T03:05:00.000Z","key":1486436700000,"doc_count":10},{"key_as_string":"2017-02-07T03:06:00.000Z","key":1486436760000,"doc_count":11},{"key_as_string":"2017-02-07T03:07:00.000Z","key":1486436820000,"doc_count":6},{"key_as_string":"2017-02-07T03:08:00.000Z","key":1486436880000,"doc_count":9},{"key_as_string":"2017-02-07T03:09:00.000Z","key":1486436940000,"doc_count":7},{"key_as_string":"2017-02-07T03:10:00.000Z","key":1486437000000,"doc_count":14},{"key_as_string":"2017-02-07T03:11:00.000Z","key":1486437060000,"doc_count":9},{"key_as_string":"2017-02-07T03:12:00.000Z","key":1486437120000,"doc_count":12},{"key_as_string":"2017-02-07T03:13:00.000Z","key":1486437180000,"doc_count":10},{"key_as_string":"2017-02-07T03:14:00.000Z","key":1486437240000,"doc_count":9},{"key_as_string":"2017-02-07T03:15:00.000Z","key":1486437300000,"doc_count":12},{"key_as_string":"2017-02-07T03:16:00.000Z","key":1486437360000,"doc_count":12},{"key_as_string":"2017-02-07T03:17:00.000Z","key":1486437420000,"doc_count":8},{"key_as_string":"2017-02-07T03:18:00.000Z","key":1486437480000,"doc_count":13},{"key_as_string":"2017-02-07T03:19:00.000Z","key":1486437540000,"doc_count":12},{"key_as_string":"2017-02-07T03:20:00.000Z","key":1486437600000,"doc_count":8},{"key_as_string":"2017-02-07T03:21:00.000Z","key":1486437660000,"doc_count":20},{"key_as_string":"2017-02-07T03:22:00.000Z","key":1486437720000,"doc_count":8},{"key_as_string":"2017-02-07T03:23:00.000Z","key":1486437780000,"doc_count":9},{"key_as_string":"2017-02-07T03:24:00.000Z","key":1486437840000,"doc_count":12},{"key_as_string":"2017-02-07T03:25:00.000Z","key":1486437900000,"doc_count":9},{"key_as_string":"2017-02-07T03:26:00.000Z","key":1486437960000,"doc_count":9},{"key_as_string":"2017-02-07T03:27:00.000Z","key":1486438020000,"doc_count":12},{"key_as_string":"2017-02-07T03:28:00.000Z","key":1486438080000,"doc_count":12},{"key_as_string":"2017-02-07T03:29:00.000Z","key":1486438140000,"doc_count":7},{"key_as_string":"2017-02-07T03:30:00.000Z","key":1486438200000,"doc_count":12},{"key_as_string":"2017-02-07T03:31:00.000Z","key":1486438260000,"doc_count":15},{"key_as_string":"2017-02-07T03:32:00.000Z","key":1486438320000,"doc_count":12},{"key_as_string":"2017-02-07T03:33:00.000Z","key":1486438380000,"doc_count":9},{"key_as_string":"2017-02-07T03:34:00.000Z","key":1486438440000,"doc_count":9},{"key_as_string":"2017-02-07T03:35:00.000Z","key":1486438500000,"doc_count":12},{"key_as_string":"2017-02-07T03:36:00.000Z","key":1486438560000,"doc_count":8},{"key_as_string":"2017-02-07T03:37:00.000Z","key":1486438620000,"doc_count":12},{"key_as_string":"2017-02-07T03:38:00.000Z","key":1486438680000,"doc_count":13},{"key_as_string":"2017-02-07T03:39:00.000Z","key":1486438740000,"doc_count":10},{"key_as_string":"2017-02-07T03:40:00.000Z","key":1486438800000,"doc_count":8},{"key_as_string":"2017-02-07T03:41:00.000Z","key":1486438860000,"doc_count":10},{"key_as_string":"2017-02-07T03:42:00.000Z","key":1486438920000,"doc_count":12},{"key_as_string":"2017-02-07T03:43:00.000Z","key":1486438980000,"doc_count":9},{"key_as_string":"2017-02-07T03:44:00.000Z","key":1486439040000,"doc_count":13},{"key_as_string":"2017-02-07T03:45:00.000Z","key":1486439100000,"doc_count":11},{"key_as_string":"2017-02-07T03:46:00.000Z","key":1486439160000,"doc_count":16},{"key_as_string":"2017-02-07T03:47:00.000Z","key":1486439220000,"doc_count":10},{"key_as_string":"2017-02-07T03:48:00.000Z","key":1486439280000,"doc_count":10},{"key_as_string":"2017-02-07T03:49:00.000Z","key":1486439340000,"doc_count":10},{"key_as_string":"2017-02-07T03:50:00.000Z","key":1486439400000,"doc_count":10},{"key_as_string":"2017-02-07T03:51:00.000Z","key":1486439460000,"doc_count":8},{"key_as_string":"2017-02-07T03:52:00.000Z","key":1486439520000,"doc_count":8},{"key_as_string":"2017-02-07T03:53:00.000Z","key":1486439580000,"doc_count":14},{"key_as_string":"2017-02-07T03:54:00.000Z","key":1486439640000,"doc_count":12},{"key_as_string":"2017-02-07T03:55:00.000Z","key":1486439700000,"doc_count":9},{"key_as_string":"2017-02-07T03:56:00.000Z","key":1486439760000,"doc_count":10},{"key_as_string":"2017-02-07T03:57:00.000Z","key":1486439820000,"doc_count":15},{"key_as_string":"2017-02-07T03:58:00.000Z","key":1486439880000,"doc_count":8},{"key_as_string":"2017-02-07T03:59:00.000Z","key":1486439940000,"doc_count":13},{"key_as_string":"2017-02-07T04:00:00.000Z","key":1486440000000,"doc_count":9},{"key_as_string":"2017-02-07T04:01:00.000Z","key":1486440060000,"doc_count":13},{"key_as_string":"2017-02-07T04:02:00.000Z","key":1486440120000,"doc_count":7},{"key_as_string":"2017-02-07T04:03:00.000Z","key":1486440180000,"doc_count":10},{"key_as_string":"2017-02-07T04:04:00.000Z","key":1486440240000,"doc_count":15},{"key_as_string":"2017-02-07T04:05:00.000Z","key":1486440300000,"doc_count":12},{"key_as_string":"2017-02-07T04:06:00.000Z","key":1486440360000,"doc_count":10},{"key_as_string":"2017-02-07T04:07:00.000Z","key":1486440420000,"doc_count":9},{"key_as_string":"2017-02-07T04:08:00.000Z","key":1486440480000,"doc_count":8},{"key_as_string":"2017-02-07T04:09:00.000Z","key":1486440540000,"doc_count":12},{"key_as_string":"2017-02-07T04:10:00.000Z","key":1486440600000,"doc_count":10},{"key_as_string":"2017-02-07T04:11:00.000Z","key":1486440660000,"doc_count":11},{"key_as_string":"2017-02-07T04:12:00.000Z","key":1486440720000,"doc_count":9},{"key_as_string":"2017-02-07T04:13:00.000Z","key":1486440780000,"doc_count":14},{"key_as_string":"2017-02-07T04:14:00.000Z","key":1486440840000,"doc_count":16},{"key_as_string":"2017-02-07T04:15:00.000Z","key":1486440900000,"doc_count":12},{"key_as_string":"2017-02-07T04:16:00.000Z","key":1486440960000,"doc_count":12},{"key_as_string":"2017-02-07T04:17:00.000Z","key":1486441020000,"doc_count":12},{"key_as_string":"2017-02-07T04:18:00.000Z","key":1486441080000,"doc_count":10},{"key_as_string":"2017-02-07T04:19:00.000Z","key":1486441140000,"doc_count":14},{"key_as_string":"2017-02-07T04:20:00.000Z","key":1486441200000,"doc_count":10},{"key_as_string":"2017-02-07T04:21:00.000Z","key":1486441260000,"doc_count":13},{"key_as_string":"2017-02-07T04:22:00.000Z","key":1486441320000,"doc_count":13},{"key_as_string":"2017-02-07T04:23:00.000Z","key":1486441380000,"doc_count":8},{"key_as_string":"2017-02-07T04:24:00.000Z","key":1486441440000,"doc_count":10},{"key_as_string":"2017-02-07T04:25:00.000Z","key":1486441500000,"doc_count":14},{"key_as_string":"2017-02-07T04:26:00.000Z","key":1486441560000,"doc_count":6},{"key_as_string":"2017-02-07T04:27:00.000Z","key":1486441620000,"doc_count":15},{"key_as_string":"2017-02-07T04:28:00.000Z","key":1486441680000,"doc_count":12},{"key_as_string":"2017-02-07T04:29:00.000Z","key":1486441740000,"doc_count":11},{"key_as_string":"2017-02-07T04:30:00.000Z","key":1486441800000,"doc_count":8},{"key_as_string":"2017-02-07T04:31:00.000Z","key":1486441860000,"doc_count":8},{"key_as_string":"2017-02-07T04:32:00.000Z","key":1486441920000,"doc_count":14},{"key_as_string":"2017-02-07T04:33:00.000Z","key":1486441980000,"doc_count":10},{"key_as_string":"2017-02-07T04:34:00.000Z","key":1486442040000,"doc_count":12},{"key_as_string":"2017-02-07T04:35:00.000Z","key":1486442100000,"doc_count":13},{"key_as_string":"2017-02-07T04:36:00.000Z","key":1486442160000,"doc_count":7},{"key_as_string":"2017-02-07T04:37:00.000Z","key":1486442220000,"doc_count":11},{"key_as_string":"2017-02-07T04:38:00.000Z","key":1486442280000,"doc_count":10},{"key_as_string":"2017-02-07T04:39:00.000Z","key":1486442340000,"doc_count":13},{"key_as_string":"2017-02-07T04:40:00.000Z","key":1486442400000,"doc_count":10},{"key_as_string":"2017-02-07T04:41:00.000Z","key":1486442460000,"doc_count":17},{"key_as_string":"2017-02-07T04:42:00.000Z","key":1486442520000,"doc_count":9},{"key_as_string":"2017-02-07T04:43:00.000Z","key":1486442580000,"doc_count":14},{"key_as_string":"2017-02-07T04:44:00.000Z","key":1486442640000,"doc_count":11},{"key_as_string":"2017-02-07T04:45:00.000Z","key":1486442700000,"doc_count":12},{"key_as_string":"2017-02-07T04:46:00.000Z","key":1486442760000,"doc_count":10},{"key_as_string":"2017-02-07T04:47:00.000Z","key":1486442820000,"doc_count":17},{"key_as_string":"2017-02-07T04:48:00.000Z","key":1486442880000,"doc_count":7},{"key_as_string":"2017-02-07T04:49:00.000Z","key":1486442940000,"doc_count":12},{"key_as_string":"2017-02-07T04:50:00.000Z","key":1486443000000,"doc_count":7},{"key_as_string":"2017-02-07T04:51:00.000Z","key":1486443060000,"doc_count":12},{"key_as_string":"2017-02-07T04:52:00.000Z","key":1486443120000,"doc_count":14},{"key_as_string":"2017-02-07T04:53:00.000Z","key":1486443180000,"doc_count":6},{"key_as_string":"2017-02-07T04:54:00.000Z","key":1486443240000,"doc_count":10},{"key_as_string":"2017-02-07T04:55:00.000Z","key":1486443300000,"doc_count":16},{"key_as_string":"2017-02-07T04:56:00.000Z","key":1486443360000,"doc_count":7},{"key_as_string":"2017-02-07T04:57:00.000Z","key":1486443420000,"doc_count":6},{"key_as_string":"2017-02-07T04:58:00.000Z","key":1486443480000,"doc_count":11},{"key_as_string":"2017-02-07T04:59:00.000Z","key":1486443540000,"doc_count":14},{"key_as_string":"2017-02-07T05:00:00.000Z","key":1486443600000,"doc_count":10},{"key_as_string":"2017-02-07T05:01:00.000Z","key":1486443660000,"doc_count":9},{"key_as_string":"2017-02-07T05:02:00.000Z","key":1486443720000,"doc_count":6},{"key_as_string":"2017-02-07T05:03:00.000Z","key":1486443780000,"doc_count":11},{"key_as_string":"2017-02-07T05:04:00.000Z","key":1486443840000,"doc_count":14},{"key_as_string":"2017-02-07T05:05:00.000Z","key":1486443900000,"doc_count":12},{"key_as_string":"2017-02-07T05:06:00.000Z","key":1486443960000,"doc_count":7},{"key_as_string":"2017-02-07T05:07:00.000Z","key":1486444020000,"doc_count":15},{"key_as_string":"2017-02-07T05:08:00.000Z","key":1486444080000,"doc_count":12},{"key_as_string":"2017-02-07T05:09:00.000Z","key":1486444140000,"doc_count":7},{"key_as_string":"2017-02-07T05:10:00.000Z","key":1486444200000,"doc_count":14},{"key_as_string":"2017-02-07T05:11:00.000Z","key":1486444260000,"doc_count":10},{"key_as_string":"2017-02-07T05:12:00.000Z","key":1486444320000,"doc_count":12},{"key_as_string":"2017-02-07T05:13:00.000Z","key":1486444380000,"doc_count":12},{"key_as_string":"2017-02-07T05:14:00.000Z","key":1486444440000,"doc_count":12},{"key_as_string":"2017-02-07T05:15:00.000Z","key":1486444500000,"doc_count":11},{"key_as_string":"2017-02-07T05:16:00.000Z","key":1486444560000,"doc_count":10},{"key_as_string":"2017-02-07T05:17:00.000Z","key":1486444620000,"doc_count":12},{"key_as_string":"2017-02-07T05:18:00.000Z","key":1486444680000,"doc_count":9},{"key_as_string":"2017-02-07T05:19:00.000Z","key":1486444740000,"doc_count":14},{"key_as_string":"2017-02-07T05:20:00.000Z","key":1486444800000,"doc_count":7},{"key_as_string":"2017-02-07T05:21:00.000Z","key":1486444860000,"doc_count":12},{"key_as_string":"2017-02-07T05:22:00.000Z","key":1486444920000,"doc_count":10},{"key_as_string":"2017-02-07T05:23:00.000Z","key":1486444980000,"doc_count":14},{"key_as_string":"2017-02-07T05:24:00.000Z","key":1486445040000,"doc_count":14},{"key_as_string":"2017-02-07T05:25:00.000Z","key":1486445100000,"doc_count":5},{"key_as_string":"2017-02-07T05:26:00.000Z","key":1486445160000,"doc_count":10},{"key_as_string":"2017-02-07T05:27:00.000Z","key":1486445220000,"doc_count":10},{"key_as_string":"2017-02-07T05:28:00.000Z","key":1486445280000,"doc_count":13},{"key_as_string":"2017-02-07T05:29:00.000Z","key":1486445340000,"doc_count":12},{"key_as_string":"2017-02-07T05:30:00.000Z","key":1486445400000,"doc_count":13},{"key_as_string":"2017-02-07T05:31:00.000Z","key":1486445460000,"doc_count":13},{"key_as_string":"2017-02-07T05:32:00.000Z","key":1486445520000,"doc_count":13},{"key_as_string":"2017-02-07T05:33:00.000Z","key":1486445580000,"doc_count":16},{"key_as_string":"2017-02-07T05:34:00.000Z","key":1486445640000,"doc_count":10},{"key_as_string":"2017-02-07T05:35:00.000Z","key":1486445700000,"doc_count":16},{"key_as_string":"2017-02-07T05:36:00.000Z","key":1486445760000,"doc_count":14},{"key_as_string":"2017-02-07T05:37:00.000Z","key":1486445820000,"doc_count":10},{"key_as_string":"2017-02-07T05:38:00.000Z","key":1486445880000,"doc_count":11},{"key_as_string":"2017-02-07T05:39:00.000Z","key":1486445940000,"doc_count":13},{"key_as_string":"2017-02-07T05:40:00.000Z","key":1486446000000,"doc_count":16},{"key_as_string":"2017-02-07T05:41:00.000Z","key":1486446060000,"doc_count":9},{"key_as_string":"2017-02-07T05:42:00.000Z","key":1486446120000,"doc_count":10},{"key_as_string":"2017-02-07T05:43:00.000Z","key":1486446180000,"doc_count":16},{"key_as_string":"2017-02-07T05:44:00.000Z","key":1486446240000,"doc_count":18},{"key_as_string":"2017-02-07T05:45:00.000Z","key":1486446300000,"doc_count":10},{"key_as_string":"2017-02-07T05:46:00.000Z","key":1486446360000,"doc_count":9},{"key_as_string":"2017-02-07T05:47:00.000Z","key":1486446420000,"doc_count":7},{"key_as_string":"2017-02-07T05:48:00.000Z","key":1486446480000,"doc_count":10},{"key_as_string":"2017-02-07T05:49:00.000Z","key":1486446540000,"doc_count":17},{"key_as_string":"2017-02-07T05:50:00.000Z","key":1486446600000,"doc_count":8},{"key_as_string":"2017-02-07T05:51:00.000Z","key":1486446660000,"doc_count":10},{"key_as_string":"2017-02-07T05:52:00.000Z","key":1486446720000,"doc_count":10},{"key_as_string":"2017-02-07T05:53:00.000Z","key":1486446780000,"doc_count":13},{"key_as_string":"2017-02-07T05:54:00.000Z","key":1486446840000,"doc_count":9},{"key_as_string":"2017-02-07T05:55:00.000Z","key":1486446900000,"doc_count":11},{"key_as_string":"2017-02-07T05:56:00.000Z","key":1486446960000,"doc_count":14},{"key_as_string":"2017-02-07T05:57:00.000Z","key":1486447020000,"doc_count":15},{"key_as_string":"2017-02-07T05:58:00.000Z","key":1486447080000,"doc_count":14},{"key_as_string":"2017-02-07T05:59:00.000Z","key":1486447140000,"doc_count":6},{"key_as_string":"2017-02-07T06:00:00.000Z","key":1486447200000,"doc_count":14},{"key_as_string":"2017-02-07T06:01:00.000Z","key":1486447260000,"doc_count":18},{"key_as_string":"2017-02-07T06:02:00.000Z","key":1486447320000,"doc_count":9},{"key_as_string":"2017-02-07T06:03:00.000Z","key":1486447380000,"doc_count":14},{"key_as_string":"2017-02-07T06:04:00.000Z","key":1486447440000,"doc_count":12},{"key_as_string":"2017-02-07T06:05:00.000Z","key":1486447500000,"doc_count":14},{"key_as_string":"2017-02-07T06:06:00.000Z","key":1486447560000,"doc_count":11},{"key_as_string":"2017-02-07T06:07:00.000Z","key":1486447620000,"doc_count":12},{"key_as_string":"2017-02-07T06:08:00.000Z","key":1486447680000,"doc_count":20},{"key_as_string":"2017-02-07T06:09:00.000Z","key":1486447740000,"doc_count":9},{"key_as_string":"2017-02-07T06:10:00.000Z","key":1486447800000,"doc_count":10},{"key_as_string":"2017-02-07T06:11:00.000Z","key":1486447860000,"doc_count":13},{"key_as_string":"2017-02-07T06:12:00.000Z","key":1486447920000,"doc_count":10},{"key_as_string":"2017-02-07T06:13:00.000Z","key":1486447980000,"doc_count":13},{"key_as_string":"2017-02-07T06:14:00.000Z","key":1486448040000,"doc_count":10},{"key_as_string":"2017-02-07T06:15:00.000Z","key":1486448100000,"doc_count":17},{"key_as_string":"2017-02-07T06:16:00.000Z","key":1486448160000,"doc_count":7},{"key_as_string":"2017-02-07T06:17:00.000Z","key":1486448220000,"doc_count":9},{"key_as_string":"2017-02-07T06:18:00.000Z","key":1486448280000,"doc_count":12},{"key_as_string":"2017-02-07T06:19:00.000Z","key":1486448340000,"doc_count":8},{"key_as_string":"2017-02-07T06:20:00.000Z","key":1486448400000,"doc_count":21},{"key_as_string":"2017-02-07T06:21:00.000Z","key":1486448460000,"doc_count":10},{"key_as_string":"2017-02-07T06:22:00.000Z","key":1486448520000,"doc_count":13},{"key_as_string":"2017-02-07T06:23:00.000Z","key":1486448580000,"doc_count":12},{"key_as_string":"2017-02-07T06:24:00.000Z","key":1486448640000,"doc_count":13},{"key_as_string":"2017-02-07T06:25:00.000Z","key":1486448700000,"doc_count":11},{"key_as_string":"2017-02-07T06:26:00.000Z","key":1486448760000,"doc_count":16},{"key_as_string":"2017-02-07T06:27:00.000Z","key":1486448820000,"doc_count":5},{"key_as_string":"2017-02-07T06:28:00.000Z","key":1486448880000,"doc_count":11},{"key_as_string":"2017-02-07T06:29:00.000Z","key":1486448940000,"doc_count":14},{"key_as_string":"2017-02-07T06:30:00.000Z","key":1486449000000,"doc_count":8},{"key_as_string":"2017-02-07T06:31:00.000Z","key":1486449060000,"doc_count":13},{"key_as_string":"2017-02-07T06:32:00.000Z","key":1486449120000,"doc_count":17},{"key_as_string":"2017-02-07T06:33:00.000Z","key":1486449180000,"doc_count":15},{"key_as_string":"2017-02-07T06:34:00.000Z","key":1486449240000,"doc_count":6},{"key_as_string":"2017-02-07T06:35:00.000Z","key":1486449300000,"doc_count":13},{"key_as_string":"2017-02-07T06:36:00.000Z","key":1486449360000,"doc_count":8},{"key_as_string":"2017-02-07T06:37:00.000Z","key":1486449420000,"doc_count":12},{"key_as_string":"2017-02-07T06:38:00.000Z","key":1486449480000,"doc_count":13},{"key_as_string":"2017-02-07T06:39:00.000Z","key":1486449540000,"doc_count":12},{"key_as_string":"2017-02-07T06:40:00.000Z","key":1486449600000,"doc_count":11},{"key_as_string":"2017-02-07T06:41:00.000Z","key":1486449660000,"doc_count":14},{"key_as_string":"2017-02-07T06:42:00.000Z","key":1486449720000,"doc_count":6},{"key_as_string":"2017-02-07T06:43:00.000Z","key":1486449780000,"doc_count":13},{"key_as_string":"2017-02-07T06:44:00.000Z","key":1486449840000,"doc_count":11},{"key_as_string":"2017-02-07T06:45:00.000Z","key":1486449900000,"doc_count":11},{"key_as_string":"2017-02-07T06:46:00.000Z","key":1486449960000,"doc_count":21},{"key_as_string":"2017-02-07T06:47:00.000Z","key":1486450020000,"doc_count":9},{"key_as_string":"2017-02-07T06:48:00.000Z","key":1486450080000,"doc_count":11},{"key_as_string":"2017-02-07T06:49:00.000Z","key":1486450140000,"doc_count":10},{"key_as_string":"2017-02-07T06:50:00.000Z","key":1486450200000,"doc_count":11},{"key_as_string":"2017-02-07T06:51:00.000Z","key":1486450260000,"doc_count":11},{"key_as_string":"2017-02-07T06:52:00.000Z","key":1486450320000,"doc_count":12},{"key_as_string":"2017-02-07T06:53:00.000Z","key":1486450380000,"doc_count":8},{"key_as_string":"2017-02-07T06:54:00.000Z","key":1486450440000,"doc_count":13},{"key_as_string":"2017-02-07T06:55:00.000Z","key":1486450500000,"doc_count":7},{"key_as_string":"2017-02-07T06:56:00.000Z","key":1486450560000,"doc_count":9},{"key_as_string":"2017-02-07T06:57:00.000Z","key":1486450620000,"doc_count":7},{"key_as_string":"2017-02-07T06:58:00.000Z","key":1486450680000,"doc_count":10},{"key_as_string":"2017-02-07T06:59:00.000Z","key":1486450740000,"doc_count":19},{"key_as_string":"2017-02-07T07:00:00.000Z","key":1486450800000,"doc_count":11},{"key_as_string":"2017-02-07T07:01:00.000Z","key":1486450860000,"doc_count":9},{"key_as_string":"2017-02-07T07:02:00.000Z","key":1486450920000,"doc_count":14},{"key_as_string":"2017-02-07T07:03:00.000Z","key":1486450980000,"doc_count":13},{"key_as_string":"2017-02-07T07:04:00.000Z","key":1486451040000,"doc_count":14},{"key_as_string":"2017-02-07T07:05:00.000Z","key":1486451100000,"doc_count":10},{"key_as_string":"2017-02-07T07:06:00.000Z","key":1486451160000,"doc_count":14},{"key_as_string":"2017-02-07T07:07:00.000Z","key":1486451220000,"doc_count":8},{"key_as_string":"2017-02-07T07:08:00.000Z","key":1486451280000,"doc_count":10},{"key_as_string":"2017-02-07T07:09:00.000Z","key":1486451340000,"doc_count":15},{"key_as_string":"2017-02-07T07:10:00.000Z","key":1486451400000,"doc_count":17},{"key_as_string":"2017-02-07T07:11:00.000Z","key":1486451460000,"doc_count":10},{"key_as_string":"2017-02-07T07:12:00.000Z","key":1486451520000,"doc_count":10},{"key_as_string":"2017-02-07T07:13:00.000Z","key":1486451580000,"doc_count":10},{"key_as_string":"2017-02-07T07:14:00.000Z","key":1486451640000,"doc_count":10},{"key_as_string":"2017-02-07T07:15:00.000Z","key":1486451700000,"doc_count":12},{"key_as_string":"2017-02-07T07:16:00.000Z","key":1486451760000,"doc_count":12},{"key_as_string":"2017-02-07T07:17:00.000Z","key":1486451820000,"doc_count":17},{"key_as_string":"2017-02-07T07:18:00.000Z","key":1486451880000,"doc_count":10},{"key_as_string":"2017-02-07T07:19:00.000Z","key":1486451940000,"doc_count":13},{"key_as_string":"2017-02-07T07:20:00.000Z","key":1486452000000,"doc_count":12},{"key_as_string":"2017-02-07T07:21:00.000Z","key":1486452060000,"doc_count":13},{"key_as_string":"2017-02-07T07:22:00.000Z","key":1486452120000,"doc_count":15},{"key_as_string":"2017-02-07T07:23:00.000Z","key":1486452180000,"doc_count":13},{"key_as_string":"2017-02-07T07:24:00.000Z","key":1486452240000,"doc_count":12},{"key_as_string":"2017-02-07T07:25:00.000Z","key":1486452300000,"doc_count":12},{"key_as_string":"2017-02-07T07:26:00.000Z","key":1486452360000,"doc_count":11},{"key_as_string":"2017-02-07T07:27:00.000Z","key":1486452420000,"doc_count":11},{"key_as_string":"2017-02-07T07:28:00.000Z","key":1486452480000,"doc_count":14},{"key_as_string":"2017-02-07T07:29:00.000Z","key":1486452540000,"doc_count":16},{"key_as_string":"2017-02-07T07:30:00.000Z","key":1486452600000,"doc_count":9},{"key_as_string":"2017-02-07T07:31:00.000Z","key":1486452660000,"doc_count":12},{"key_as_string":"2017-02-07T07:32:00.000Z","key":1486452720000,"doc_count":17},{"key_as_string":"2017-02-07T07:33:00.000Z","key":1486452780000,"doc_count":9},{"key_as_string":"2017-02-07T07:34:00.000Z","key":1486452840000,"doc_count":15},{"key_as_string":"2017-02-07T07:35:00.000Z","key":1486452900000,"doc_count":13},{"key_as_string":"2017-02-07T07:36:00.000Z","key":1486452960000,"doc_count":14},{"key_as_string":"2017-02-07T07:37:00.000Z","key":1486453020000,"doc_count":14},{"key_as_string":"2017-02-07T07:38:00.000Z","key":1486453080000,"doc_count":9},{"key_as_string":"2017-02-07T07:39:00.000Z","key":1486453140000,"doc_count":10},{"key_as_string":"2017-02-07T07:40:00.000Z","key":1486453200000,"doc_count":12},{"key_as_string":"2017-02-07T07:41:00.000Z","key":1486453260000,"doc_count":11},{"key_as_string":"2017-02-07T07:42:00.000Z","key":1486453320000,"doc_count":18},{"key_as_string":"2017-02-07T07:43:00.000Z","key":1486453380000,"doc_count":7},{"key_as_string":"2017-02-07T07:44:00.000Z","key":1486453440000,"doc_count":13},{"key_as_string":"2017-02-07T07:45:00.000Z","key":1486453500000,"doc_count":14},{"key_as_string":"2017-02-07T07:46:00.000Z","key":1486453560000,"doc_count":13},{"key_as_string":"2017-02-07T07:47:00.000Z","key":1486453620000,"doc_count":15},{"key_as_string":"2017-02-07T07:48:00.000Z","key":1486453680000,"doc_count":13},{"key_as_string":"2017-02-07T07:49:00.000Z","key":1486453740000,"doc_count":15},{"key_as_string":"2017-02-07T07:50:00.000Z","key":1486453800000,"doc_count":12},{"key_as_string":"2017-02-07T07:51:00.000Z","key":1486453860000,"doc_count":15},{"key_as_string":"2017-02-07T07:52:00.000Z","key":1486453920000,"doc_count":12},{"key_as_string":"2017-02-07T07:53:00.000Z","key":1486453980000,"doc_count":9},{"key_as_string":"2017-02-07T07:54:00.000Z","key":1486454040000,"doc_count":12},{"key_as_string":"2017-02-07T07:55:00.000Z","key":1486454100000,"doc_count":13},{"key_as_string":"2017-02-07T07:56:00.000Z","key":1486454160000,"doc_count":12},{"key_as_string":"2017-02-07T07:57:00.000Z","key":1486454220000,"doc_count":9},{"key_as_string":"2017-02-07T07:58:00.000Z","key":1486454280000,"doc_count":12},{"key_as_string":"2017-02-07T07:59:00.000Z","key":1486454340000,"doc_count":12},{"key_as_string":"2017-02-07T08:00:00.000Z","key":1486454400000,"doc_count":14},{"key_as_string":"2017-02-07T08:01:00.000Z","key":1486454460000,"doc_count":13},{"key_as_string":"2017-02-07T08:02:00.000Z","key":1486454520000,"doc_count":11},{"key_as_string":"2017-02-07T08:03:00.000Z","key":1486454580000,"doc_count":14},{"key_as_string":"2017-02-07T08:04:00.000Z","key":1486454640000,"doc_count":6},{"key_as_string":"2017-02-07T08:05:00.000Z","key":1486454700000,"doc_count":13},{"key_as_string":"2017-02-07T08:06:00.000Z","key":1486454760000,"doc_count":11},{"key_as_string":"2017-02-07T08:07:00.000Z","key":1486454820000,"doc_count":14},{"key_as_string":"2017-02-07T08:08:00.000Z","key":1486454880000,"doc_count":14},{"key_as_string":"2017-02-07T08:09:00.000Z","key":1486454940000,"doc_count":9},{"key_as_string":"2017-02-07T08:10:00.000Z","key":1486455000000,"doc_count":11},{"key_as_string":"2017-02-07T08:11:00.000Z","key":1486455060000,"doc_count":8},{"key_as_string":"2017-02-07T08:12:00.000Z","key":1486455120000,"doc_count":14},{"key_as_string":"2017-02-07T08:13:00.000Z","key":1486455180000,"doc_count":9},{"key_as_string":"2017-02-07T08:14:00.000Z","key":1486455240000,"doc_count":10},{"key_as_string":"2017-02-07T08:15:00.000Z","key":1486455300000,"doc_count":14},{"key_as_string":"2017-02-07T08:16:00.000Z","key":1486455360000,"doc_count":12},{"key_as_string":"2017-02-07T08:17:00.000Z","key":1486455420000,"doc_count":11},{"key_as_string":"2017-02-07T08:18:00.000Z","key":1486455480000,"doc_count":18},{"key_as_string":"2017-02-07T08:19:00.000Z","key":1486455540000,"doc_count":13},{"key_as_string":"2017-02-07T08:20:00.000Z","key":1486455600000,"doc_count":13},{"key_as_string":"2017-02-07T08:21:00.000Z","key":1486455660000,"doc_count":10},{"key_as_string":"2017-02-07T08:22:00.000Z","key":1486455720000,"doc_count":10},{"key_as_string":"2017-02-07T08:23:00.000Z","key":1486455780000,"doc_count":13},{"key_as_string":"2017-02-07T08:24:00.000Z","key":1486455840000,"doc_count":11},{"key_as_string":"2017-02-07T08:25:00.000Z","key":1486455900000,"doc_count":12},{"key_as_string":"2017-02-07T08:26:00.000Z","key":1486455960000,"doc_count":20},{"key_as_string":"2017-02-07T08:27:00.000Z","key":1486456020000,"doc_count":15},{"key_as_string":"2017-02-07T08:28:00.000Z","key":1486456080000,"doc_count":12},{"key_as_string":"2017-02-07T08:29:00.000Z","key":1486456140000,"doc_count":14},{"key_as_string":"2017-02-07T08:30:00.000Z","key":1486456200000,"doc_count":9},{"key_as_string":"2017-02-07T08:31:00.000Z","key":1486456260000,"doc_count":17},{"key_as_string":"2017-02-07T08:32:00.000Z","key":1486456320000,"doc_count":11},{"key_as_string":"2017-02-07T08:33:00.000Z","key":1486456380000,"doc_count":15},{"key_as_string":"2017-02-07T08:34:00.000Z","key":1486456440000,"doc_count":11},{"key_as_string":"2017-02-07T08:35:00.000Z","key":1486456500000,"doc_count":15},{"key_as_string":"2017-02-07T08:36:00.000Z","key":1486456560000,"doc_count":17},{"key_as_string":"2017-02-07T08:37:00.000Z","key":1486456620000,"doc_count":8},{"key_as_string":"2017-02-07T08:38:00.000Z","key":1486456680000,"doc_count":13},{"key_as_string":"2017-02-07T08:39:00.000Z","key":1486456740000,"doc_count":10},{"key_as_string":"2017-02-07T08:40:00.000Z","key":1486456800000,"doc_count":11},{"key_as_string":"2017-02-07T08:41:00.000Z","key":1486456860000,"doc_count":12},{"key_as_string":"2017-02-07T08:42:00.000Z","key":1486456920000,"doc_count":15},{"key_as_string":"2017-02-07T08:43:00.000Z","key":1486456980000,"doc_count":12},{"key_as_string":"2017-02-07T08:44:00.000Z","key":1486457040000,"doc_count":14},{"key_as_string":"2017-02-07T08:45:00.000Z","key":1486457100000,"doc_count":14},{"key_as_string":"2017-02-07T08:46:00.000Z","key":1486457160000,"doc_count":15},{"key_as_string":"2017-02-07T08:47:00.000Z","key":1486457220000,"doc_count":13},{"key_as_string":"2017-02-07T08:48:00.000Z","key":1486457280000,"doc_count":10},{"key_as_string":"2017-02-07T08:49:00.000Z","key":1486457340000,"doc_count":12},{"key_as_string":"2017-02-07T08:50:00.000Z","key":1486457400000,"doc_count":14},{"key_as_string":"2017-02-07T08:51:00.000Z","key":1486457460000,"doc_count":13},{"key_as_string":"2017-02-07T08:52:00.000Z","key":1486457520000,"doc_count":11},{"key_as_string":"2017-02-07T08:53:00.000Z","key":1486457580000,"doc_count":14},{"key_as_string":"2017-02-07T08:54:00.000Z","key":1486457640000,"doc_count":14},{"key_as_string":"2017-02-07T08:55:00.000Z","key":1486457700000,"doc_count":9},{"key_as_string":"2017-02-07T08:56:00.000Z","key":1486457760000,"doc_count":13},{"key_as_string":"2017-02-07T08:57:00.000Z","key":1486457820000,"doc_count":16},{"key_as_string":"2017-02-07T08:58:00.000Z","key":1486457880000,"doc_count":14},{"key_as_string":"2017-02-07T08:59:00.000Z","key":1486457940000,"doc_count":9},{"key_as_string":"2017-02-07T09:00:00.000Z","key":1486458000000,"doc_count":15},{"key_as_string":"2017-02-07T09:01:00.000Z","key":1486458060000,"doc_count":13},{"key_as_string":"2017-02-07T09:02:00.000Z","key":1486458120000,"doc_count":11},{"key_as_string":"2017-02-07T09:03:00.000Z","key":1486458180000,"doc_count":23},{"key_as_string":"2017-02-07T09:04:00.000Z","key":1486458240000,"doc_count":14},{"key_as_string":"2017-02-07T09:05:00.000Z","key":1486458300000,"doc_count":6},{"key_as_string":"2017-02-07T09:06:00.000Z","key":1486458360000,"doc_count":14},{"key_as_string":"2017-02-07T09:07:00.000Z","key":1486458420000,"doc_count":15},{"key_as_string":"2017-02-07T09:08:00.000Z","key":1486458480000,"doc_count":15},{"key_as_string":"2017-02-07T09:09:00.000Z","key":1486458540000,"doc_count":11},{"key_as_string":"2017-02-07T09:10:00.000Z","key":1486458600000,"doc_count":17},{"key_as_string":"2017-02-07T09:11:00.000Z","key":1486458660000,"doc_count":16},{"key_as_string":"2017-02-07T09:12:00.000Z","key":1486458720000,"doc_count":15},{"key_as_string":"2017-02-07T09:13:00.000Z","key":1486458780000,"doc_count":15},{"key_as_string":"2017-02-07T09:14:00.000Z","key":1486458840000,"doc_count":18},{"key_as_string":"2017-02-07T09:15:00.000Z","key":1486458900000,"doc_count":13},{"key_as_string":"2017-02-07T09:16:00.000Z","key":1486458960000,"doc_count":9},{"key_as_string":"2017-02-07T09:17:00.000Z","key":1486459020000,"doc_count":19},{"key_as_string":"2017-02-07T09:18:00.000Z","key":1486459080000,"doc_count":11},{"key_as_string":"2017-02-07T09:19:00.000Z","key":1486459140000,"doc_count":8},{"key_as_string":"2017-02-07T09:20:00.000Z","key":1486459200000,"doc_count":18},{"key_as_string":"2017-02-07T09:21:00.000Z","key":1486459260000,"doc_count":16},{"key_as_string":"2017-02-07T09:22:00.000Z","key":1486459320000,"doc_count":13},{"key_as_string":"2017-02-07T09:23:00.000Z","key":1486459380000,"doc_count":14},{"key_as_string":"2017-02-07T09:24:00.000Z","key":1486459440000,"doc_count":16},{"key_as_string":"2017-02-07T09:25:00.000Z","key":1486459500000,"doc_count":13},{"key_as_string":"2017-02-07T09:26:00.000Z","key":1486459560000,"doc_count":13},{"key_as_string":"2017-02-07T09:27:00.000Z","key":1486459620000,"doc_count":16},{"key_as_string":"2017-02-07T09:28:00.000Z","key":1486459680000,"doc_count":13},{"key_as_string":"2017-02-07T09:29:00.000Z","key":1486459740000,"doc_count":14},{"key_as_string":"2017-02-07T09:30:00.000Z","key":1486459800000,"doc_count":13},{"key_as_string":"2017-02-07T09:31:00.000Z","key":1486459860000,"doc_count":16},{"key_as_string":"2017-02-07T09:32:00.000Z","key":1486459920000,"doc_count":18},{"key_as_string":"2017-02-07T09:33:00.000Z","key":1486459980000,"doc_count":7},{"key_as_string":"2017-02-07T09:34:00.000Z","key":1486460040000,"doc_count":14},{"key_as_string":"2017-02-07T09:35:00.000Z","key":1486460100000,"doc_count":15},{"key_as_string":"2017-02-07T09:36:00.000Z","key":1486460160000,"doc_count":13},{"key_as_string":"2017-02-07T09:37:00.000Z","key":1486460220000,"doc_count":16},{"key_as_string":"2017-02-07T09:38:00.000Z","key":1486460280000,"doc_count":15},{"key_as_string":"2017-02-07T09:39:00.000Z","key":1486460340000,"doc_count":12},{"key_as_string":"2017-02-07T09:40:00.000Z","key":1486460400000,"doc_count":15},{"key_as_string":"2017-02-07T09:41:00.000Z","key":1486460460000,"doc_count":13},{"key_as_string":"2017-02-07T09:42:00.000Z","key":1486460520000,"doc_count":10},{"key_as_string":"2017-02-07T09:43:00.000Z","key":1486460580000,"doc_count":17},{"key_as_string":"2017-02-07T09:44:00.000Z","key":1486460640000,"doc_count":16},{"key_as_string":"2017-02-07T09:45:00.000Z","key":1486460700000,"doc_count":16},{"key_as_string":"2017-02-07T09:46:00.000Z","key":1486460760000,"doc_count":12},{"key_as_string":"2017-02-07T09:47:00.000Z","key":1486460820000,"doc_count":14},{"key_as_string":"2017-02-07T09:48:00.000Z","key":1486460880000,"doc_count":14},{"key_as_string":"2017-02-07T09:49:00.000Z","key":1486460940000,"doc_count":10},{"key_as_string":"2017-02-07T09:50:00.000Z","key":1486461000000,"doc_count":14},{"key_as_string":"2017-02-07T09:51:00.000Z","key":1486461060000,"doc_count":16},{"key_as_string":"2017-02-07T09:52:00.000Z","key":1486461120000,"doc_count":14},{"key_as_string":"2017-02-07T09:53:00.000Z","key":1486461180000,"doc_count":11},{"key_as_string":"2017-02-07T09:54:00.000Z","key":1486461240000,"doc_count":11},{"key_as_string":"2017-02-07T09:55:00.000Z","key":1486461300000,"doc_count":14},{"key_as_string":"2017-02-07T09:56:00.000Z","key":1486461360000,"doc_count":14},{"key_as_string":"2017-02-07T09:57:00.000Z","key":1486461420000,"doc_count":13},{"key_as_string":"2017-02-07T09:58:00.000Z","key":1486461480000,"doc_count":14},{"key_as_string":"2017-02-07T09:59:00.000Z","key":1486461540000,"doc_count":13},{"key_as_string":"2017-02-07T10:00:00.000Z","key":1486461600000,"doc_count":17},{"key_as_string":"2017-02-07T10:01:00.000Z","key":1486461660000,"doc_count":17},{"key_as_string":"2017-02-07T10:02:00.000Z","key":1486461720000,"doc_count":6},{"key_as_string":"2017-02-07T10:03:00.000Z","key":1486461780000,"doc_count":13},{"key_as_string":"2017-02-07T10:04:00.000Z","key":1486461840000,"doc_count":15},{"key_as_string":"2017-02-07T10:05:00.000Z","key":1486461900000,"doc_count":10},{"key_as_string":"2017-02-07T10:06:00.000Z","key":1486461960000,"doc_count":11},{"key_as_string":"2017-02-07T10:07:00.000Z","key":1486462020000,"doc_count":15},{"key_as_string":"2017-02-07T10:08:00.000Z","key":1486462080000,"doc_count":14},{"key_as_string":"2017-02-07T10:09:00.000Z","key":1486462140000,"doc_count":11},{"key_as_string":"2017-02-07T10:10:00.000Z","key":1486462200000,"doc_count":19},{"key_as_string":"2017-02-07T10:11:00.000Z","key":1486462260000,"doc_count":10},{"key_as_string":"2017-02-07T10:12:00.000Z","key":1486462320000,"doc_count":12},{"key_as_string":"2017-02-07T10:13:00.000Z","key":1486462380000,"doc_count":12},{"key_as_string":"2017-02-07T10:14:00.000Z","key":1486462440000,"doc_count":20},{"key_as_string":"2017-02-07T10:15:00.000Z","key":1486462500000,"doc_count":15},{"key_as_string":"2017-02-07T10:16:00.000Z","key":1486462560000,"doc_count":13},{"key_as_string":"2017-02-07T10:17:00.000Z","key":1486462620000,"doc_count":16},{"key_as_string":"2017-02-07T10:18:00.000Z","key":1486462680000,"doc_count":14},{"key_as_string":"2017-02-07T10:19:00.000Z","key":1486462740000,"doc_count":11},{"key_as_string":"2017-02-07T10:20:00.000Z","key":1486462800000,"doc_count":15},{"key_as_string":"2017-02-07T10:21:00.000Z","key":1486462860000,"doc_count":14},{"key_as_string":"2017-02-07T10:22:00.000Z","key":1486462920000,"doc_count":11},{"key_as_string":"2017-02-07T10:23:00.000Z","key":1486462980000,"doc_count":12},{"key_as_string":"2017-02-07T10:24:00.000Z","key":1486463040000,"doc_count":16},{"key_as_string":"2017-02-07T10:25:00.000Z","key":1486463100000,"doc_count":14},{"key_as_string":"2017-02-07T10:26:00.000Z","key":1486463160000,"doc_count":18},{"key_as_string":"2017-02-07T10:27:00.000Z","key":1486463220000,"doc_count":13},{"key_as_string":"2017-02-07T10:28:00.000Z","key":1486463280000,"doc_count":18},{"key_as_string":"2017-02-07T10:29:00.000Z","key":1486463340000,"doc_count":14},{"key_as_string":"2017-02-07T10:30:00.000Z","key":1486463400000,"doc_count":15},{"key_as_string":"2017-02-07T10:31:00.000Z","key":1486463460000,"doc_count":16},{"key_as_string":"2017-02-07T10:32:00.000Z","key":1486463520000,"doc_count":16},{"key_as_string":"2017-02-07T10:33:00.000Z","key":1486463580000,"doc_count":16},{"key_as_string":"2017-02-07T10:34:00.000Z","key":1486463640000,"doc_count":9},{"key_as_string":"2017-02-07T10:35:00.000Z","key":1486463700000,"doc_count":13},{"key_as_string":"2017-02-07T10:36:00.000Z","key":1486463760000,"doc_count":16},{"key_as_string":"2017-02-07T10:37:00.000Z","key":1486463820000,"doc_count":14},{"key_as_string":"2017-02-07T10:38:00.000Z","key":1486463880000,"doc_count":14},{"key_as_string":"2017-02-07T10:39:00.000Z","key":1486463940000,"doc_count":12},{"key_as_string":"2017-02-07T10:40:00.000Z","key":1486464000000,"doc_count":12},{"key_as_string":"2017-02-07T10:41:00.000Z","key":1486464060000,"doc_count":15},{"key_as_string":"2017-02-07T10:42:00.000Z","key":1486464120000,"doc_count":10},{"key_as_string":"2017-02-07T10:43:00.000Z","key":1486464180000,"doc_count":11},{"key_as_string":"2017-02-07T10:44:00.000Z","key":1486464240000,"doc_count":14},{"key_as_string":"2017-02-07T10:45:00.000Z","key":1486464300000,"doc_count":11},{"key_as_string":"2017-02-07T10:46:00.000Z","key":1486464360000,"doc_count":16},{"key_as_string":"2017-02-07T10:47:00.000Z","key":1486464420000,"doc_count":17},{"key_as_string":"2017-02-07T10:48:00.000Z","key":1486464480000,"doc_count":14},{"key_as_string":"2017-02-07T10:49:00.000Z","key":1486464540000,"doc_count":17},{"key_as_string":"2017-02-07T10:50:00.000Z","key":1486464600000,"doc_count":14},{"key_as_string":"2017-02-07T10:51:00.000Z","key":1486464660000,"doc_count":14},{"key_as_string":"2017-02-07T10:52:00.000Z","key":1486464720000,"doc_count":13},{"key_as_string":"2017-02-07T10:53:00.000Z","key":1486464780000,"doc_count":14},{"key_as_string":"2017-02-07T10:54:00.000Z","key":1486464840000,"doc_count":13},{"key_as_string":"2017-02-07T10:55:00.000Z","key":1486464900000,"doc_count":10},{"key_as_string":"2017-02-07T10:56:00.000Z","key":1486464960000,"doc_count":14},{"key_as_string":"2017-02-07T10:57:00.000Z","key":1486465020000,"doc_count":9},{"key_as_string":"2017-02-07T10:58:00.000Z","key":1486465080000,"doc_count":19},{"key_as_string":"2017-02-07T10:59:00.000Z","key":1486465140000,"doc_count":12},{"key_as_string":"2017-02-07T11:00:00.000Z","key":1486465200000,"doc_count":20},{"key_as_string":"2017-02-07T11:01:00.000Z","key":1486465260000,"doc_count":11},{"key_as_string":"2017-02-07T11:02:00.000Z","key":1486465320000,"doc_count":16},{"key_as_string":"2017-02-07T11:03:00.000Z","key":1486465380000,"doc_count":14},{"key_as_string":"2017-02-07T11:04:00.000Z","key":1486465440000,"doc_count":14},{"key_as_string":"2017-02-07T11:05:00.000Z","key":1486465500000,"doc_count":11},{"key_as_string":"2017-02-07T11:06:00.000Z","key":1486465560000,"doc_count":11},{"key_as_string":"2017-02-07T11:07:00.000Z","key":1486465620000,"doc_count":18},{"key_as_string":"2017-02-07T11:08:00.000Z","key":1486465680000,"doc_count":14},{"key_as_string":"2017-02-07T11:09:00.000Z","key":1486465740000,"doc_count":14},{"key_as_string":"2017-02-07T11:10:00.000Z","key":1486465800000,"doc_count":9},{"key_as_string":"2017-02-07T11:11:00.000Z","key":1486465860000,"doc_count":18},{"key_as_string":"2017-02-07T11:12:00.000Z","key":1486465920000,"doc_count":18},{"key_as_string":"2017-02-07T11:13:00.000Z","key":1486465980000,"doc_count":10},{"key_as_string":"2017-02-07T11:14:00.000Z","key":1486466040000,"doc_count":10},{"key_as_string":"2017-02-07T11:15:00.000Z","key":1486466100000,"doc_count":17},{"key_as_string":"2017-02-07T11:16:00.000Z","key":1486466160000,"doc_count":16},{"key_as_string":"2017-02-07T11:17:00.000Z","key":1486466220000,"doc_count":15},{"key_as_string":"2017-02-07T11:18:00.000Z","key":1486466280000,"doc_count":17},{"key_as_string":"2017-02-07T11:19:00.000Z","key":1486466340000,"doc_count":18},{"key_as_string":"2017-02-07T11:20:00.000Z","key":1486466400000,"doc_count":11},{"key_as_string":"2017-02-07T11:21:00.000Z","key":1486466460000,"doc_count":18},{"key_as_string":"2017-02-07T11:22:00.000Z","key":1486466520000,"doc_count":13},{"key_as_string":"2017-02-07T11:23:00.000Z","key":1486466580000,"doc_count":10},{"key_as_string":"2017-02-07T11:24:00.000Z","key":1486466640000,"doc_count":12},{"key_as_string":"2017-02-07T11:25:00.000Z","key":1486466700000,"doc_count":13},{"key_as_string":"2017-02-07T11:26:00.000Z","key":1486466760000,"doc_count":16},{"key_as_string":"2017-02-07T11:27:00.000Z","key":1486466820000,"doc_count":12},{"key_as_string":"2017-02-07T11:28:00.000Z","key":1486466880000,"doc_count":12},{"key_as_string":"2017-02-07T11:29:00.000Z","key":1486466940000,"doc_count":18},{"key_as_string":"2017-02-07T11:30:00.000Z","key":1486467000000,"doc_count":11},{"key_as_string":"2017-02-07T11:31:00.000Z","key":1486467060000,"doc_count":13},{"key_as_string":"2017-02-07T11:32:00.000Z","key":1486467120000,"doc_count":13},{"key_as_string":"2017-02-07T11:33:00.000Z","key":1486467180000,"doc_count":24},{"key_as_string":"2017-02-07T11:34:00.000Z","key":1486467240000,"doc_count":12},{"key_as_string":"2017-02-07T11:35:00.000Z","key":1486467300000,"doc_count":13},{"key_as_string":"2017-02-07T11:36:00.000Z","key":1486467360000,"doc_count":16},{"key_as_string":"2017-02-07T11:37:00.000Z","key":1486467420000,"doc_count":16},{"key_as_string":"2017-02-07T11:38:00.000Z","key":1486467480000,"doc_count":14},{"key_as_string":"2017-02-07T11:39:00.000Z","key":1486467540000,"doc_count":12},{"key_as_string":"2017-02-07T11:40:00.000Z","key":1486467600000,"doc_count":14},{"key_as_string":"2017-02-07T11:41:00.000Z","key":1486467660000,"doc_count":14},{"key_as_string":"2017-02-07T11:42:00.000Z","key":1486467720000,"doc_count":16},{"key_as_string":"2017-02-07T11:43:00.000Z","key":1486467780000,"doc_count":19},{"key_as_string":"2017-02-07T11:44:00.000Z","key":1486467840000,"doc_count":9},{"key_as_string":"2017-02-07T11:45:00.000Z","key":1486467900000,"doc_count":14},{"key_as_string":"2017-02-07T11:46:00.000Z","key":1486467960000,"doc_count":8},{"key_as_string":"2017-02-07T11:47:00.000Z","key":1486468020000,"doc_count":14},{"key_as_string":"2017-02-07T11:48:00.000Z","key":1486468080000,"doc_count":11},{"key_as_string":"2017-02-07T11:49:00.000Z","key":1486468140000,"doc_count":10},{"key_as_string":"2017-02-07T11:50:00.000Z","key":1486468200000,"doc_count":13},{"key_as_string":"2017-02-07T11:51:00.000Z","key":1486468260000,"doc_count":14},{"key_as_string":"2017-02-07T11:52:00.000Z","key":1486468320000,"doc_count":13},{"key_as_string":"2017-02-07T11:53:00.000Z","key":1486468380000,"doc_count":15},{"key_as_string":"2017-02-07T11:54:00.000Z","key":1486468440000,"doc_count":11},{"key_as_string":"2017-02-07T11:55:00.000Z","key":1486468500000,"doc_count":11},{"key_as_string":"2017-02-07T11:56:00.000Z","key":1486468560000,"doc_count":13},{"key_as_string":"2017-02-07T11:57:00.000Z","key":1486468620000,"doc_count":17},{"key_as_string":"2017-02-07T11:58:00.000Z","key":1486468680000,"doc_count":19},{"key_as_string":"2017-02-07T11:59:00.000Z","key":1486468740000,"doc_count":15},{"key_as_string":"2017-02-07T12:00:00.000Z","key":1486468800000,"doc_count":14},{"key_as_string":"2017-02-07T12:01:00.000Z","key":1486468860000,"doc_count":14},{"key_as_string":"2017-02-07T12:02:00.000Z","key":1486468920000,"doc_count":19},{"key_as_string":"2017-02-07T12:03:00.000Z","key":1486468980000,"doc_count":16},{"key_as_string":"2017-02-07T12:04:00.000Z","key":1486469040000,"doc_count":13},{"key_as_string":"2017-02-07T12:05:00.000Z","key":1486469100000,"doc_count":20},{"key_as_string":"2017-02-07T12:06:00.000Z","key":1486469160000,"doc_count":9},{"key_as_string":"2017-02-07T12:07:00.000Z","key":1486469220000,"doc_count":12},{"key_as_string":"2017-02-07T12:08:00.000Z","key":1486469280000,"doc_count":14},{"key_as_string":"2017-02-07T12:09:00.000Z","key":1486469340000,"doc_count":18},{"key_as_string":"2017-02-07T12:10:00.000Z","key":1486469400000,"doc_count":10},{"key_as_string":"2017-02-07T12:11:00.000Z","key":1486469460000,"doc_count":11},{"key_as_string":"2017-02-07T12:12:00.000Z","key":1486469520000,"doc_count":15},{"key_as_string":"2017-02-07T12:13:00.000Z","key":1486469580000,"doc_count":10},{"key_as_string":"2017-02-07T12:14:00.000Z","key":1486469640000,"doc_count":14},{"key_as_string":"2017-02-07T12:15:00.000Z","key":1486469700000,"doc_count":18},{"key_as_string":"2017-02-07T12:16:00.000Z","key":1486469760000,"doc_count":15},{"key_as_string":"2017-02-07T12:17:00.000Z","key":1486469820000,"doc_count":12},{"key_as_string":"2017-02-07T12:18:00.000Z","key":1486469880000,"doc_count":7},{"key_as_string":"2017-02-07T12:19:00.000Z","key":1486469940000,"doc_count":17},{"key_as_string":"2017-02-07T12:20:00.000Z","key":1486470000000,"doc_count":14},{"key_as_string":"2017-02-07T12:21:00.000Z","key":1486470060000,"doc_count":15},{"key_as_string":"2017-02-07T12:22:00.000Z","key":1486470120000,"doc_count":17},{"key_as_string":"2017-02-07T12:23:00.000Z","key":1486470180000,"doc_count":17},{"key_as_string":"2017-02-07T12:24:00.000Z","key":1486470240000,"doc_count":12},{"key_as_string":"2017-02-07T12:25:00.000Z","key":1486470300000,"doc_count":15},{"key_as_string":"2017-02-07T12:26:00.000Z","key":1486470360000,"doc_count":8},{"key_as_string":"2017-02-07T12:27:00.000Z","key":1486470420000,"doc_count":19},{"key_as_string":"2017-02-07T12:28:00.000Z","key":1486470480000,"doc_count":10},{"key_as_string":"2017-02-07T12:29:00.000Z","key":1486470540000,"doc_count":13},{"key_as_string":"2017-02-07T12:30:00.000Z","key":1486470600000,"doc_count":14},{"key_as_string":"2017-02-07T12:31:00.000Z","key":1486470660000,"doc_count":17},{"key_as_string":"2017-02-07T12:32:00.000Z","key":1486470720000,"doc_count":12},{"key_as_string":"2017-02-07T12:33:00.000Z","key":1486470780000,"doc_count":11},{"key_as_string":"2017-02-07T12:34:00.000Z","key":1486470840000,"doc_count":18},{"key_as_string":"2017-02-07T12:35:00.000Z","key":1486470900000,"doc_count":16},{"key_as_string":"2017-02-07T12:36:00.000Z","key":1486470960000,"doc_count":17},{"key_as_string":"2017-02-07T12:37:00.000Z","key":1486471020000,"doc_count":18},{"key_as_string":"2017-02-07T12:38:00.000Z","key":1486471080000,"doc_count":16},{"key_as_string":"2017-02-07T12:39:00.000Z","key":1486471140000,"doc_count":15},{"key_as_string":"2017-02-07T12:40:00.000Z","key":1486471200000,"doc_count":16},{"key_as_string":"2017-02-07T12:41:00.000Z","key":1486471260000,"doc_count":22},{"key_as_string":"2017-02-07T12:42:00.000Z","key":1486471320000,"doc_count":14},{"key_as_string":"2017-02-07T12:43:00.000Z","key":1486471380000,"doc_count":13},{"key_as_string":"2017-02-07T12:44:00.000Z","key":1486471440000,"doc_count":10},{"key_as_string":"2017-02-07T12:45:00.000Z","key":1486471500000,"doc_count":13},{"key_as_string":"2017-02-07T12:46:00.000Z","key":1486471560000,"doc_count":19},{"key_as_string":"2017-02-07T12:47:00.000Z","key":1486471620000,"doc_count":12},{"key_as_string":"2017-02-07T12:48:00.000Z","key":1486471680000,"doc_count":12},{"key_as_string":"2017-02-07T12:49:00.000Z","key":1486471740000,"doc_count":14},{"key_as_string":"2017-02-07T12:50:00.000Z","key":1486471800000,"doc_count":17},{"key_as_string":"2017-02-07T12:51:00.000Z","key":1486471860000,"doc_count":14},{"key_as_string":"2017-02-07T12:52:00.000Z","key":1486471920000,"doc_count":9},{"key_as_string":"2017-02-07T12:53:00.000Z","key":1486471980000,"doc_count":21},{"key_as_string":"2017-02-07T12:54:00.000Z","key":1486472040000,"doc_count":14},{"key_as_string":"2017-02-07T12:55:00.000Z","key":1486472100000,"doc_count":11},{"key_as_string":"2017-02-07T12:56:00.000Z","key":1486472160000,"doc_count":13},{"key_as_string":"2017-02-07T12:57:00.000Z","key":1486472220000,"doc_count":13},{"key_as_string":"2017-02-07T12:58:00.000Z","key":1486472280000,"doc_count":12},{"key_as_string":"2017-02-07T12:59:00.000Z","key":1486472340000,"doc_count":19},{"key_as_string":"2017-02-07T13:00:00.000Z","key":1486472400000,"doc_count":10},{"key_as_string":"2017-02-07T13:01:00.000Z","key":1486472460000,"doc_count":13},{"key_as_string":"2017-02-07T13:02:00.000Z","key":1486472520000,"doc_count":12},{"key_as_string":"2017-02-07T13:03:00.000Z","key":1486472580000,"doc_count":9},{"key_as_string":"2017-02-07T13:04:00.000Z","key":1486472640000,"doc_count":17},{"key_as_string":"2017-02-07T13:05:00.000Z","key":1486472700000,"doc_count":14},{"key_as_string":"2017-02-07T13:06:00.000Z","key":1486472760000,"doc_count":13},{"key_as_string":"2017-02-07T13:07:00.000Z","key":1486472820000,"doc_count":18},{"key_as_string":"2017-02-07T13:08:00.000Z","key":1486472880000,"doc_count":16},{"key_as_string":"2017-02-07T13:09:00.000Z","key":1486472940000,"doc_count":11},{"key_as_string":"2017-02-07T13:10:00.000Z","key":1486473000000,"doc_count":9},{"key_as_string":"2017-02-07T13:11:00.000Z","key":1486473060000,"doc_count":14},{"key_as_string":"2017-02-07T13:12:00.000Z","key":1486473120000,"doc_count":11},{"key_as_string":"2017-02-07T13:13:00.000Z","key":1486473180000,"doc_count":17},{"key_as_string":"2017-02-07T13:14:00.000Z","key":1486473240000,"doc_count":14},{"key_as_string":"2017-02-07T13:15:00.000Z","key":1486473300000,"doc_count":17},{"key_as_string":"2017-02-07T13:16:00.000Z","key":1486473360000,"doc_count":14},{"key_as_string":"2017-02-07T13:17:00.000Z","key":1486473420000,"doc_count":18},{"key_as_string":"2017-02-07T13:18:00.000Z","key":1486473480000,"doc_count":13},{"key_as_string":"2017-02-07T13:19:00.000Z","key":1486473540000,"doc_count":24},{"key_as_string":"2017-02-07T13:20:00.000Z","key":1486473600000,"doc_count":6},{"key_as_string":"2017-02-07T13:21:00.000Z","key":1486473660000,"doc_count":16},{"key_as_string":"2017-02-07T13:22:00.000Z","key":1486473720000,"doc_count":19},{"key_as_string":"2017-02-07T13:23:00.000Z","key":1486473780000,"doc_count":12},{"key_as_string":"2017-02-07T13:24:00.000Z","key":1486473840000,"doc_count":18},{"key_as_string":"2017-02-07T13:25:00.000Z","key":1486473900000,"doc_count":11},{"key_as_string":"2017-02-07T13:26:00.000Z","key":1486473960000,"doc_count":14},{"key_as_string":"2017-02-07T13:27:00.000Z","key":1486474020000,"doc_count":13},{"key_as_string":"2017-02-07T13:28:00.000Z","key":1486474080000,"doc_count":13},{"key_as_string":"2017-02-07T13:29:00.000Z","key":1486474140000,"doc_count":12},{"key_as_string":"2017-02-07T13:30:00.000Z","key":1486474200000,"doc_count":12},{"key_as_string":"2017-02-07T13:31:00.000Z","key":1486474260000,"doc_count":10},{"key_as_string":"2017-02-07T13:32:00.000Z","key":1486474320000,"doc_count":15},{"key_as_string":"2017-02-07T13:33:00.000Z","key":1486474380000,"doc_count":11},{"key_as_string":"2017-02-07T13:34:00.000Z","key":1486474440000,"doc_count":15},{"key_as_string":"2017-02-07T13:35:00.000Z","key":1486474500000,"doc_count":6},{"key_as_string":"2017-02-07T13:36:00.000Z","key":1486474560000,"doc_count":20},{"key_as_string":"2017-02-07T13:37:00.000Z","key":1486474620000,"doc_count":9},{"key_as_string":"2017-02-07T13:38:00.000Z","key":1486474680000,"doc_count":15},{"key_as_string":"2017-02-07T13:39:00.000Z","key":1486474740000,"doc_count":18},{"key_as_string":"2017-02-07T13:40:00.000Z","key":1486474800000,"doc_count":14},{"key_as_string":"2017-02-07T13:41:00.000Z","key":1486474860000,"doc_count":11},{"key_as_string":"2017-02-07T13:42:00.000Z","key":1486474920000,"doc_count":15},{"key_as_string":"2017-02-07T13:43:00.000Z","key":1486474980000,"doc_count":10},{"key_as_string":"2017-02-07T13:44:00.000Z","key":1486475040000,"doc_count":14},{"key_as_string":"2017-02-07T13:45:00.000Z","key":1486475100000,"doc_count":13},{"key_as_string":"2017-02-07T13:46:00.000Z","key":1486475160000,"doc_count":16},{"key_as_string":"2017-02-07T13:47:00.000Z","key":1486475220000,"doc_count":10},{"key_as_string":"2017-02-07T13:48:00.000Z","key":1486475280000,"doc_count":13},{"key_as_string":"2017-02-07T13:49:00.000Z","key":1486475340000,"doc_count":14},{"key_as_string":"2017-02-07T13:50:00.000Z","key":1486475400000,"doc_count":12},{"key_as_string":"2017-02-07T13:51:00.000Z","key":1486475460000,"doc_count":12},{"key_as_string":"2017-02-07T13:52:00.000Z","key":1486475520000,"doc_count":11},{"key_as_string":"2017-02-07T13:53:00.000Z","key":1486475580000,"doc_count":15},{"key_as_string":"2017-02-07T13:54:00.000Z","key":1486475640000,"doc_count":13},{"key_as_string":"2017-02-07T13:55:00.000Z","key":1486475700000,"doc_count":14},{"key_as_string":"2017-02-07T13:56:00.000Z","key":1486475760000,"doc_count":18},{"key_as_string":"2017-02-07T13:57:00.000Z","key":1486475820000,"doc_count":6},{"key_as_string":"2017-02-07T13:58:00.000Z","key":1486475880000,"doc_count":19},{"key_as_string":"2017-02-07T13:59:00.000Z","key":1486475940000,"doc_count":13},{"key_as_string":"2017-02-07T14:00:00.000Z","key":1486476000000,"doc_count":9},{"key_as_string":"2017-02-07T14:01:00.000Z","key":1486476060000,"doc_count":10},{"key_as_string":"2017-02-07T14:02:00.000Z","key":1486476120000,"doc_count":14},{"key_as_string":"2017-02-07T14:03:00.000Z","key":1486476180000,"doc_count":13},{"key_as_string":"2017-02-07T14:04:00.000Z","key":1486476240000,"doc_count":19},{"key_as_string":"2017-02-07T14:05:00.000Z","key":1486476300000,"doc_count":15},{"key_as_string":"2017-02-07T14:06:00.000Z","key":1486476360000,"doc_count":12},{"key_as_string":"2017-02-07T14:07:00.000Z","key":1486476420000,"doc_count":11},{"key_as_string":"2017-02-07T14:08:00.000Z","key":1486476480000,"doc_count":15},{"key_as_string":"2017-02-07T14:09:00.000Z","key":1486476540000,"doc_count":10},{"key_as_string":"2017-02-07T14:10:00.000Z","key":1486476600000,"doc_count":13},{"key_as_string":"2017-02-07T14:11:00.000Z","key":1486476660000,"doc_count":18},{"key_as_string":"2017-02-07T14:12:00.000Z","key":1486476720000,"doc_count":10},{"key_as_string":"2017-02-07T14:13:00.000Z","key":1486476780000,"doc_count":13},{"key_as_string":"2017-02-07T14:14:00.000Z","key":1486476840000,"doc_count":15},{"key_as_string":"2017-02-07T14:15:00.000Z","key":1486476900000,"doc_count":18},{"key_as_string":"2017-02-07T14:16:00.000Z","key":1486476960000,"doc_count":14},{"key_as_string":"2017-02-07T14:17:00.000Z","key":1486477020000,"doc_count":13},{"key_as_string":"2017-02-07T14:18:00.000Z","key":1486477080000,"doc_count":12},{"key_as_string":"2017-02-07T14:19:00.000Z","key":1486477140000,"doc_count":18},{"key_as_string":"2017-02-07T14:20:00.000Z","key":1486477200000,"doc_count":13},{"key_as_string":"2017-02-07T14:21:00.000Z","key":1486477260000,"doc_count":14},{"key_as_string":"2017-02-07T14:22:00.000Z","key":1486477320000,"doc_count":8},{"key_as_string":"2017-02-07T14:23:00.000Z","key":1486477380000,"doc_count":16},{"key_as_string":"2017-02-07T14:24:00.000Z","key":1486477440000,"doc_count":12},{"key_as_string":"2017-02-07T14:25:00.000Z","key":1486477500000,"doc_count":17},{"key_as_string":"2017-02-07T14:26:00.000Z","key":1486477560000,"doc_count":11},{"key_as_string":"2017-02-07T14:27:00.000Z","key":1486477620000,"doc_count":17},{"key_as_string":"2017-02-07T14:28:00.000Z","key":1486477680000,"doc_count":17},{"key_as_string":"2017-02-07T14:29:00.000Z","key":1486477740000,"doc_count":14},{"key_as_string":"2017-02-07T14:30:00.000Z","key":1486477800000,"doc_count":15},{"key_as_string":"2017-02-07T14:31:00.000Z","key":1486477860000,"doc_count":13},{"key_as_string":"2017-02-07T14:32:00.000Z","key":1486477920000,"doc_count":9},{"key_as_string":"2017-02-07T14:33:00.000Z","key":1486477980000,"doc_count":17},{"key_as_string":"2017-02-07T14:34:00.000Z","key":1486478040000,"doc_count":12},{"key_as_string":"2017-02-07T14:35:00.000Z","key":1486478100000,"doc_count":14},{"key_as_string":"2017-02-07T14:36:00.000Z","key":1486478160000,"doc_count":14},{"key_as_string":"2017-02-07T14:37:00.000Z","key":1486478220000,"doc_count":13},{"key_as_string":"2017-02-07T14:38:00.000Z","key":1486478280000,"doc_count":13},{"key_as_string":"2017-02-07T14:39:00.000Z","key":1486478340000,"doc_count":11},{"key_as_string":"2017-02-07T14:40:00.000Z","key":1486478400000,"doc_count":20},{"key_as_string":"2017-02-07T14:41:00.000Z","key":1486478460000,"doc_count":12},{"key_as_string":"2017-02-07T14:42:00.000Z","key":1486478520000,"doc_count":14},{"key_as_string":"2017-02-07T14:43:00.000Z","key":1486478580000,"doc_count":14},{"key_as_string":"2017-02-07T14:44:00.000Z","key":1486478640000,"doc_count":13},{"key_as_string":"2017-02-07T14:45:00.000Z","key":1486478700000,"doc_count":16},{"key_as_string":"2017-02-07T14:46:00.000Z","key":1486478760000,"doc_count":16},{"key_as_string":"2017-02-07T14:47:00.000Z","key":1486478820000,"doc_count":12},{"key_as_string":"2017-02-07T14:48:00.000Z","key":1486478880000,"doc_count":11},{"key_as_string":"2017-02-07T14:49:00.000Z","key":1486478940000,"doc_count":16},{"key_as_string":"2017-02-07T14:50:00.000Z","key":1486479000000,"doc_count":12},{"key_as_string":"2017-02-07T14:51:00.000Z","key":1486479060000,"doc_count":9},{"key_as_string":"2017-02-07T14:52:00.000Z","key":1486479120000,"doc_count":13},{"key_as_string":"2017-02-07T14:53:00.000Z","key":1486479180000,"doc_count":12},{"key_as_string":"2017-02-07T14:54:00.000Z","key":1486479240000,"doc_count":19},{"key_as_string":"2017-02-07T14:55:00.000Z","key":1486479300000,"doc_count":10},{"key_as_string":"2017-02-07T14:56:00.000Z","key":1486479360000,"doc_count":15},{"key_as_string":"2017-02-07T14:57:00.000Z","key":1486479420000,"doc_count":16},{"key_as_string":"2017-02-07T14:58:00.000Z","key":1486479480000,"doc_count":14},{"key_as_string":"2017-02-07T14:59:00.000Z","key":1486479540000,"doc_count":12},{"key_as_string":"2017-02-07T15:00:00.000Z","key":1486479600000,"doc_count":14},{"key_as_string":"2017-02-07T15:01:00.000Z","key":1486479660000,"doc_count":12},{"key_as_string":"2017-02-07T15:02:00.000Z","key":1486479720000,"doc_count":11},{"key_as_string":"2017-02-07T15:03:00.000Z","key":1486479780000,"doc_count":13},{"key_as_string":"2017-02-07T15:04:00.000Z","key":1486479840000,"doc_count":14},{"key_as_string":"2017-02-07T15:05:00.000Z","key":1486479900000,"doc_count":10},{"key_as_string":"2017-02-07T15:06:00.000Z","key":1486479960000,"doc_count":9},{"key_as_string":"2017-02-07T15:07:00.000Z","key":1486480020000,"doc_count":10},{"key_as_string":"2017-02-07T15:08:00.000Z","key":1486480080000,"doc_count":15},{"key_as_string":"2017-02-07T15:09:00.000Z","key":1486480140000,"doc_count":13},{"key_as_string":"2017-02-07T15:10:00.000Z","key":1486480200000,"doc_count":12},{"key_as_string":"2017-02-07T15:11:00.000Z","key":1486480260000,"doc_count":13},{"key_as_string":"2017-02-07T15:12:00.000Z","key":1486480320000,"doc_count":12},{"key_as_string":"2017-02-07T15:13:00.000Z","key":1486480380000,"doc_count":13},{"key_as_string":"2017-02-07T15:14:00.000Z","key":1486480440000,"doc_count":15},{"key_as_string":"2017-02-07T15:15:00.000Z","key":1486480500000,"doc_count":15},{"key_as_string":"2017-02-07T15:16:00.000Z","key":1486480560000,"doc_count":14},{"key_as_string":"2017-02-07T15:17:00.000Z","key":1486480620000,"doc_count":7},{"key_as_string":"2017-02-07T15:18:00.000Z","key":1486480680000,"doc_count":16},{"key_as_string":"2017-02-07T15:19:00.000Z","key":1486480740000,"doc_count":13},{"key_as_string":"2017-02-07T15:20:00.000Z","key":1486480800000,"doc_count":14},{"key_as_string":"2017-02-07T15:21:00.000Z","key":1486480860000,"doc_count":13},{"key_as_string":"2017-02-07T15:22:00.000Z","key":1486480920000,"doc_count":12},{"key_as_string":"2017-02-07T15:23:00.000Z","key":1486480980000,"doc_count":16},{"key_as_string":"2017-02-07T15:24:00.000Z","key":1486481040000,"doc_count":15},{"key_as_string":"2017-02-07T15:25:00.000Z","key":1486481100000,"doc_count":8},{"key_as_string":"2017-02-07T15:26:00.000Z","key":1486481160000,"doc_count":15},{"key_as_string":"2017-02-07T15:27:00.000Z","key":1486481220000,"doc_count":11},{"key_as_string":"2017-02-07T15:28:00.000Z","key":1486481280000,"doc_count":14},{"key_as_string":"2017-02-07T15:29:00.000Z","key":1486481340000,"doc_count":14},{"key_as_string":"2017-02-07T15:30:00.000Z","key":1486481400000,"doc_count":12},{"key_as_string":"2017-02-07T15:31:00.000Z","key":1486481460000,"doc_count":19},{"key_as_string":"2017-02-07T15:32:00.000Z","key":1486481520000,"doc_count":15},{"key_as_string":"2017-02-07T15:33:00.000Z","key":1486481580000,"doc_count":15},{"key_as_string":"2017-02-07T15:34:00.000Z","key":1486481640000,"doc_count":11},{"key_as_string":"2017-02-07T15:35:00.000Z","key":1486481700000,"doc_count":14},{"key_as_string":"2017-02-07T15:36:00.000Z","key":1486481760000,"doc_count":13},{"key_as_string":"2017-02-07T15:37:00.000Z","key":1486481820000,"doc_count":18},{"key_as_string":"2017-02-07T15:38:00.000Z","key":1486481880000,"doc_count":8},{"key_as_string":"2017-02-07T15:39:00.000Z","key":1486481940000,"doc_count":14},{"key_as_string":"2017-02-07T15:40:00.000Z","key":1486482000000,"doc_count":11},{"key_as_string":"2017-02-07T15:41:00.000Z","key":1486482060000,"doc_count":10},{"key_as_string":"2017-02-07T15:42:00.000Z","key":1486482120000,"doc_count":10},{"key_as_string":"2017-02-07T15:43:00.000Z","key":1486482180000,"doc_count":14},{"key_as_string":"2017-02-07T15:44:00.000Z","key":1486482240000,"doc_count":10},{"key_as_string":"2017-02-07T15:45:00.000Z","key":1486482300000,"doc_count":13},{"key_as_string":"2017-02-07T15:46:00.000Z","key":1486482360000,"doc_count":15},{"key_as_string":"2017-02-07T15:47:00.000Z","key":1486482420000,"doc_count":11},{"key_as_string":"2017-02-07T15:48:00.000Z","key":1486482480000,"doc_count":13},{"key_as_string":"2017-02-07T15:49:00.000Z","key":1486482540000,"doc_count":10},{"key_as_string":"2017-02-07T15:50:00.000Z","key":1486482600000,"doc_count":17},{"key_as_string":"2017-02-07T15:51:00.000Z","key":1486482660000,"doc_count":11},{"key_as_string":"2017-02-07T15:52:00.000Z","key":1486482720000,"doc_count":15},{"key_as_string":"2017-02-07T15:53:00.000Z","key":1486482780000,"doc_count":10},{"key_as_string":"2017-02-07T15:54:00.000Z","key":1486482840000,"doc_count":11},{"key_as_string":"2017-02-07T15:55:00.000Z","key":1486482900000,"doc_count":14},{"key_as_string":"2017-02-07T15:56:00.000Z","key":1486482960000,"doc_count":16},{"key_as_string":"2017-02-07T15:57:00.000Z","key":1486483020000,"doc_count":15},{"key_as_string":"2017-02-07T15:58:00.000Z","key":1486483080000,"doc_count":13},{"key_as_string":"2017-02-07T15:59:00.000Z","key":1486483140000,"doc_count":10},{"key_as_string":"2017-02-07T16:00:00.000Z","key":1486483200000,"doc_count":18},{"key_as_string":"2017-02-07T16:01:00.000Z","key":1486483260000,"doc_count":11},{"key_as_string":"2017-02-07T16:02:00.000Z","key":1486483320000,"doc_count":14},{"key_as_string":"2017-02-07T16:03:00.000Z","key":1486483380000,"doc_count":16},{"key_as_string":"2017-02-07T16:04:00.000Z","key":1486483440000,"doc_count":10},{"key_as_string":"2017-02-07T16:05:00.000Z","key":1486483500000,"doc_count":12},{"key_as_string":"2017-02-07T16:06:00.000Z","key":1486483560000,"doc_count":11},{"key_as_string":"2017-02-07T16:07:00.000Z","key":1486483620000,"doc_count":14},{"key_as_string":"2017-02-07T16:08:00.000Z","key":1486483680000,"doc_count":12},{"key_as_string":"2017-02-07T16:09:00.000Z","key":1486483740000,"doc_count":8},{"key_as_string":"2017-02-07T16:10:00.000Z","key":1486483800000,"doc_count":13},{"key_as_string":"2017-02-07T16:11:00.000Z","key":1486483860000,"doc_count":15},{"key_as_string":"2017-02-07T16:12:00.000Z","key":1486483920000,"doc_count":9},{"key_as_string":"2017-02-07T16:13:00.000Z","key":1486483980000,"doc_count":14},{"key_as_string":"2017-02-07T16:14:00.000Z","key":1486484040000,"doc_count":11},{"key_as_string":"2017-02-07T16:15:00.000Z","key":1486484100000,"doc_count":10},{"key_as_string":"2017-02-07T16:16:00.000Z","key":1486484160000,"doc_count":14},{"key_as_string":"2017-02-07T16:17:00.000Z","key":1486484220000,"doc_count":10},{"key_as_string":"2017-02-07T16:18:00.000Z","key":1486484280000,"doc_count":10},{"key_as_string":"2017-02-07T16:19:00.000Z","key":1486484340000,"doc_count":17},{"key_as_string":"2017-02-07T16:20:00.000Z","key":1486484400000,"doc_count":11},{"key_as_string":"2017-02-07T16:21:00.000Z","key":1486484460000,"doc_count":14},{"key_as_string":"2017-02-07T16:22:00.000Z","key":1486484520000,"doc_count":15},{"key_as_string":"2017-02-07T16:23:00.000Z","key":1486484580000,"doc_count":8},{"key_as_string":"2017-02-07T16:24:00.000Z","key":1486484640000,"doc_count":14},{"key_as_string":"2017-02-07T16:25:00.000Z","key":1486484700000,"doc_count":10},{"key_as_string":"2017-02-07T16:26:00.000Z","key":1486484760000,"doc_count":10},{"key_as_string":"2017-02-07T16:27:00.000Z","key":1486484820000,"doc_count":14},{"key_as_string":"2017-02-07T16:28:00.000Z","key":1486484880000,"doc_count":19},{"key_as_string":"2017-02-07T16:29:00.000Z","key":1486484940000,"doc_count":9},{"key_as_string":"2017-02-07T16:30:00.000Z","key":1486485000000,"doc_count":15},{"key_as_string":"2017-02-07T16:31:00.000Z","key":1486485060000,"doc_count":13},{"key_as_string":"2017-02-07T16:32:00.000Z","key":1486485120000,"doc_count":10},{"key_as_string":"2017-02-07T16:33:00.000Z","key":1486485180000,"doc_count":12},{"key_as_string":"2017-02-07T16:34:00.000Z","key":1486485240000,"doc_count":12},{"key_as_string":"2017-02-07T16:35:00.000Z","key":1486485300000,"doc_count":17},{"key_as_string":"2017-02-07T16:36:00.000Z","key":1486485360000,"doc_count":8},{"key_as_string":"2017-02-07T16:37:00.000Z","key":1486485420000,"doc_count":17},{"key_as_string":"2017-02-07T16:38:00.000Z","key":1486485480000,"doc_count":13},{"key_as_string":"2017-02-07T16:39:00.000Z","key":1486485540000,"doc_count":7},{"key_as_string":"2017-02-07T16:40:00.000Z","key":1486485600000,"doc_count":11},{"key_as_string":"2017-02-07T16:41:00.000Z","key":1486485660000,"doc_count":14},{"key_as_string":"2017-02-07T16:42:00.000Z","key":1486485720000,"doc_count":16},{"key_as_string":"2017-02-07T16:43:00.000Z","key":1486485780000,"doc_count":11},{"key_as_string":"2017-02-07T16:44:00.000Z","key":1486485840000,"doc_count":15},{"key_as_string":"2017-02-07T16:45:00.000Z","key":1486485900000,"doc_count":15},{"key_as_string":"2017-02-07T16:46:00.000Z","key":1486485960000,"doc_count":11},{"key_as_string":"2017-02-07T16:47:00.000Z","key":1486486020000,"doc_count":11},{"key_as_string":"2017-02-07T16:48:00.000Z","key":1486486080000,"doc_count":12},{"key_as_string":"2017-02-07T16:49:00.000Z","key":1486486140000,"doc_count":12},{"key_as_string":"2017-02-07T16:50:00.000Z","key":1486486200000,"doc_count":11},{"key_as_string":"2017-02-07T16:51:00.000Z","key":1486486260000,"doc_count":12},{"key_as_string":"2017-02-07T16:52:00.000Z","key":1486486320000,"doc_count":12},{"key_as_string":"2017-02-07T16:53:00.000Z","key":1486486380000,"doc_count":14},{"key_as_string":"2017-02-07T16:54:00.000Z","key":1486486440000,"doc_count":10},{"key_as_string":"2017-02-07T16:55:00.000Z","key":1486486500000,"doc_count":12},{"key_as_string":"2017-02-07T16:56:00.000Z","key":1486486560000,"doc_count":15},{"key_as_string":"2017-02-07T16:57:00.000Z","key":1486486620000,"doc_count":14},{"key_as_string":"2017-02-07T16:58:00.000Z","key":1486486680000,"doc_count":9},{"key_as_string":"2017-02-07T16:59:00.000Z","key":1486486740000,"doc_count":15},{"key_as_string":"2017-02-07T17:00:00.000Z","key":1486486800000,"doc_count":10},{"key_as_string":"2017-02-07T17:01:00.000Z","key":1486486860000,"doc_count":9},{"key_as_string":"2017-02-07T17:02:00.000Z","key":1486486920000,"doc_count":15},{"key_as_string":"2017-02-07T17:03:00.000Z","key":1486486980000,"doc_count":11},{"key_as_string":"2017-02-07T17:04:00.000Z","key":1486487040000,"doc_count":11},{"key_as_string":"2017-02-07T17:05:00.000Z","key":1486487100000,"doc_count":6},{"key_as_string":"2017-02-07T17:06:00.000Z","key":1486487160000,"doc_count":20},{"key_as_string":"2017-02-07T17:07:00.000Z","key":1486487220000,"doc_count":12},{"key_as_string":"2017-02-07T17:08:00.000Z","key":1486487280000,"doc_count":10},{"key_as_string":"2017-02-07T17:09:00.000Z","key":1486487340000,"doc_count":15},{"key_as_string":"2017-02-07T17:10:00.000Z","key":1486487400000,"doc_count":15},{"key_as_string":"2017-02-07T17:11:00.000Z","key":1486487460000,"doc_count":12},{"key_as_string":"2017-02-07T17:12:00.000Z","key":1486487520000,"doc_count":10},{"key_as_string":"2017-02-07T17:13:00.000Z","key":1486487580000,"doc_count":14},{"key_as_string":"2017-02-07T17:14:00.000Z","key":1486487640000,"doc_count":11},{"key_as_string":"2017-02-07T17:15:00.000Z","key":1486487700000,"doc_count":15},{"key_as_string":"2017-02-07T17:16:00.000Z","key":1486487760000,"doc_count":9},{"key_as_string":"2017-02-07T17:17:00.000Z","key":1486487820000,"doc_count":15},{"key_as_string":"2017-02-07T17:18:00.000Z","key":1486487880000,"doc_count":10},{"key_as_string":"2017-02-07T17:19:00.000Z","key":1486487940000,"doc_count":15},{"key_as_string":"2017-02-07T17:20:00.000Z","key":1486488000000,"doc_count":8},{"key_as_string":"2017-02-07T17:21:00.000Z","key":1486488060000,"doc_count":9},{"key_as_string":"2017-02-07T17:22:00.000Z","key":1486488120000,"doc_count":13},{"key_as_string":"2017-02-07T17:23:00.000Z","key":1486488180000,"doc_count":12},{"key_as_string":"2017-02-07T17:24:00.000Z","key":1486488240000,"doc_count":12},{"key_as_string":"2017-02-07T17:25:00.000Z","key":1486488300000,"doc_count":13},{"key_as_string":"2017-02-07T17:26:00.000Z","key":1486488360000,"doc_count":12},{"key_as_string":"2017-02-07T17:27:00.000Z","key":1486488420000,"doc_count":13},{"key_as_string":"2017-02-07T17:28:00.000Z","key":1486488480000,"doc_count":13},{"key_as_string":"2017-02-07T17:29:00.000Z","key":1486488540000,"doc_count":13},{"key_as_string":"2017-02-07T17:30:00.000Z","key":1486488600000,"doc_count":15},{"key_as_string":"2017-02-07T17:31:00.000Z","key":1486488660000,"doc_count":11},{"key_as_string":"2017-02-07T17:32:00.000Z","key":1486488720000,"doc_count":10},{"key_as_string":"2017-02-07T17:33:00.000Z","key":1486488780000,"doc_count":10},{"key_as_string":"2017-02-07T17:34:00.000Z","key":1486488840000,"doc_count":10},{"key_as_string":"2017-02-07T17:35:00.000Z","key":1486488900000,"doc_count":12},{"key_as_string":"2017-02-07T17:36:00.000Z","key":1486488960000,"doc_count":15},{"key_as_string":"2017-02-07T17:37:00.000Z","key":1486489020000,"doc_count":8},{"key_as_string":"2017-02-07T17:38:00.000Z","key":1486489080000,"doc_count":15},{"key_as_string":"2017-02-07T17:39:00.000Z","key":1486489140000,"doc_count":11},{"key_as_string":"2017-02-07T17:40:00.000Z","key":1486489200000,"doc_count":8},{"key_as_string":"2017-02-07T17:41:00.000Z","key":1486489260000,"doc_count":17},{"key_as_string":"2017-02-07T17:42:00.000Z","key":1486489320000,"doc_count":16},{"key_as_string":"2017-02-07T17:43:00.000Z","key":1486489380000,"doc_count":12},{"key_as_string":"2017-02-07T17:44:00.000Z","key":1486489440000,"doc_count":8},{"key_as_string":"2017-02-07T17:45:00.000Z","key":1486489500000,"doc_count":12},{"key_as_string":"2017-02-07T17:46:00.000Z","key":1486489560000,"doc_count":13},{"key_as_string":"2017-02-07T17:47:00.000Z","key":1486489620000,"doc_count":8},{"key_as_string":"2017-02-07T17:48:00.000Z","key":1486489680000,"doc_count":7},{"key_as_string":"2017-02-07T17:49:00.000Z","key":1486489740000,"doc_count":16},{"key_as_string":"2017-02-07T17:50:00.000Z","key":1486489800000,"doc_count":13},{"key_as_string":"2017-02-07T17:51:00.000Z","key":1486489860000,"doc_count":11},{"key_as_string":"2017-02-07T17:52:00.000Z","key":1486489920000,"doc_count":14},{"key_as_string":"2017-02-07T17:53:00.000Z","key":1486489980000,"doc_count":8},{"key_as_string":"2017-02-07T17:54:00.000Z","key":1486490040000,"doc_count":10},{"key_as_string":"2017-02-07T17:55:00.000Z","key":1486490100000,"doc_count":12},{"key_as_string":"2017-02-07T17:56:00.000Z","key":1486490160000,"doc_count":11},{"key_as_string":"2017-02-07T17:57:00.000Z","key":1486490220000,"doc_count":9},{"key_as_string":"2017-02-07T17:58:00.000Z","key":1486490280000,"doc_count":10},{"key_as_string":"2017-02-07T17:59:00.000Z","key":1486490340000,"doc_count":11},{"key_as_string":"2017-02-07T18:00:00.000Z","key":1486490400000,"doc_count":8},{"key_as_string":"2017-02-07T18:01:00.000Z","key":1486490460000,"doc_count":13},{"key_as_string":"2017-02-07T18:02:00.000Z","key":1486490520000,"doc_count":19},{"key_as_string":"2017-02-07T18:03:00.000Z","key":1486490580000,"doc_count":7},{"key_as_string":"2017-02-07T18:04:00.000Z","key":1486490640000,"doc_count":11},{"key_as_string":"2017-02-07T18:05:00.000Z","key":1486490700000,"doc_count":11},{"key_as_string":"2017-02-07T18:06:00.000Z","key":1486490760000,"doc_count":9},{"key_as_string":"2017-02-07T18:07:00.000Z","key":1486490820000,"doc_count":16},{"key_as_string":"2017-02-07T18:08:00.000Z","key":1486490880000,"doc_count":13},{"key_as_string":"2017-02-07T18:09:00.000Z","key":1486490940000,"doc_count":9},{"key_as_string":"2017-02-07T18:10:00.000Z","key":1486491000000,"doc_count":14},{"key_as_string":"2017-02-07T18:11:00.000Z","key":1486491060000,"doc_count":9},{"key_as_string":"2017-02-07T18:12:00.000Z","key":1486491120000,"doc_count":12},{"key_as_string":"2017-02-07T18:13:00.000Z","key":1486491180000,"doc_count":12},{"key_as_string":"2017-02-07T18:14:00.000Z","key":1486491240000,"doc_count":10},{"key_as_string":"2017-02-07T18:15:00.000Z","key":1486491300000,"doc_count":13},{"key_as_string":"2017-02-07T18:16:00.000Z","key":1486491360000,"doc_count":11},{"key_as_string":"2017-02-07T18:17:00.000Z","key":1486491420000,"doc_count":13},{"key_as_string":"2017-02-07T18:18:00.000Z","key":1486491480000,"doc_count":10},{"key_as_string":"2017-02-07T18:19:00.000Z","key":1486491540000,"doc_count":10},{"key_as_string":"2017-02-07T18:20:00.000Z","key":1486491600000,"doc_count":8},{"key_as_string":"2017-02-07T18:21:00.000Z","key":1486491660000,"doc_count":15},{"key_as_string":"2017-02-07T18:22:00.000Z","key":1486491720000,"doc_count":16},{"key_as_string":"2017-02-07T18:23:00.000Z","key":1486491780000,"doc_count":14},{"key_as_string":"2017-02-07T18:24:00.000Z","key":1486491840000,"doc_count":17},{"key_as_string":"2017-02-07T18:25:00.000Z","key":1486491900000,"doc_count":11},{"key_as_string":"2017-02-07T18:26:00.000Z","key":1486491960000,"doc_count":13},{"key_as_string":"2017-02-07T18:27:00.000Z","key":1486492020000,"doc_count":15},{"key_as_string":"2017-02-07T18:28:00.000Z","key":1486492080000,"doc_count":13},{"key_as_string":"2017-02-07T18:29:00.000Z","key":1486492140000,"doc_count":13},{"key_as_string":"2017-02-07T18:30:00.000Z","key":1486492200000,"doc_count":12},{"key_as_string":"2017-02-07T18:31:00.000Z","key":1486492260000,"doc_count":14},{"key_as_string":"2017-02-07T18:32:00.000Z","key":1486492320000,"doc_count":13},{"key_as_string":"2017-02-07T18:33:00.000Z","key":1486492380000,"doc_count":6},{"key_as_string":"2017-02-07T18:34:00.000Z","key":1486492440000,"doc_count":14},{"key_as_string":"2017-02-07T18:35:00.000Z","key":1486492500000,"doc_count":14},{"key_as_string":"2017-02-07T18:36:00.000Z","key":1486492560000,"doc_count":9},{"key_as_string":"2017-02-07T18:37:00.000Z","key":1486492620000,"doc_count":12},{"key_as_string":"2017-02-07T18:38:00.000Z","key":1486492680000,"doc_count":8},{"key_as_string":"2017-02-07T18:39:00.000Z","key":1486492740000,"doc_count":13},{"key_as_string":"2017-02-07T18:40:00.000Z","key":1486492800000,"doc_count":6},{"key_as_string":"2017-02-07T18:41:00.000Z","key":1486492860000,"doc_count":16},{"key_as_string":"2017-02-07T18:42:00.000Z","key":1486492920000,"doc_count":12},{"key_as_string":"2017-02-07T18:43:00.000Z","key":1486492980000,"doc_count":9},{"key_as_string":"2017-02-07T18:44:00.000Z","key":1486493040000,"doc_count":14},{"key_as_string":"2017-02-07T18:45:00.000Z","key":1486493100000,"doc_count":14},{"key_as_string":"2017-02-07T18:46:00.000Z","key":1486493160000,"doc_count":8},{"key_as_string":"2017-02-07T18:47:00.000Z","key":1486493220000,"doc_count":12},{"key_as_string":"2017-02-07T18:48:00.000Z","key":1486493280000,"doc_count":11},{"key_as_string":"2017-02-07T18:49:00.000Z","key":1486493340000,"doc_count":14},{"key_as_string":"2017-02-07T18:50:00.000Z","key":1486493400000,"doc_count":10},{"key_as_string":"2017-02-07T18:51:00.000Z","key":1486493460000,"doc_count":11},{"key_as_string":"2017-02-07T18:52:00.000Z","key":1486493520000,"doc_count":17},{"key_as_string":"2017-02-07T18:53:00.000Z","key":1486493580000,"doc_count":11},{"key_as_string":"2017-02-07T18:54:00.000Z","key":1486493640000,"doc_count":12},{"key_as_string":"2017-02-07T18:55:00.000Z","key":1486493700000,"doc_count":10},{"key_as_string":"2017-02-07T18:56:00.000Z","key":1486493760000,"doc_count":10},{"key_as_string":"2017-02-07T18:57:00.000Z","key":1486493820000,"doc_count":11},{"key_as_string":"2017-02-07T18:58:00.000Z","key":1486493880000,"doc_count":11},{"key_as_string":"2017-02-07T18:59:00.000Z","key":1486493940000,"doc_count":13},{"key_as_string":"2017-02-07T19:00:00.000Z","key":1486494000000,"doc_count":9},{"key_as_string":"2017-02-07T19:01:00.000Z","key":1486494060000,"doc_count":15},{"key_as_string":"2017-02-07T19:02:00.000Z","key":1486494120000,"doc_count":10},{"key_as_string":"2017-02-07T19:03:00.000Z","key":1486494180000,"doc_count":11},{"key_as_string":"2017-02-07T19:04:00.000Z","key":1486494240000,"doc_count":10},{"key_as_string":"2017-02-07T19:05:00.000Z","key":1486494300000,"doc_count":10},{"key_as_string":"2017-02-07T19:06:00.000Z","key":1486494360000,"doc_count":15},{"key_as_string":"2017-02-07T19:07:00.000Z","key":1486494420000,"doc_count":14},{"key_as_string":"2017-02-07T19:08:00.000Z","key":1486494480000,"doc_count":7},{"key_as_string":"2017-02-07T19:09:00.000Z","key":1486494540000,"doc_count":14},{"key_as_string":"2017-02-07T19:10:00.000Z","key":1486494600000,"doc_count":8},{"key_as_string":"2017-02-07T19:11:00.000Z","key":1486494660000,"doc_count":11},{"key_as_string":"2017-02-07T19:12:00.000Z","key":1486494720000,"doc_count":10},{"key_as_string":"2017-02-07T19:13:00.000Z","key":1486494780000,"doc_count":11},{"key_as_string":"2017-02-07T19:14:00.000Z","key":1486494840000,"doc_count":13},{"key_as_string":"2017-02-07T19:15:00.000Z","key":1486494900000,"doc_count":16},{"key_as_string":"2017-02-07T19:16:00.000Z","key":1486494960000,"doc_count":5},{"key_as_string":"2017-02-07T19:17:00.000Z","key":1486495020000,"doc_count":14},{"key_as_string":"2017-02-07T19:18:00.000Z","key":1486495080000,"doc_count":13},{"key_as_string":"2017-02-07T19:19:00.000Z","key":1486495140000,"doc_count":10},{"key_as_string":"2017-02-07T19:20:00.000Z","key":1486495200000,"doc_count":13},{"key_as_string":"2017-02-07T19:21:00.000Z","key":1486495260000,"doc_count":10},{"key_as_string":"2017-02-07T19:22:00.000Z","key":1486495320000,"doc_count":12},{"key_as_string":"2017-02-07T19:23:00.000Z","key":1486495380000,"doc_count":13},{"key_as_string":"2017-02-07T19:24:00.000Z","key":1486495440000,"doc_count":10},{"key_as_string":"2017-02-07T19:25:00.000Z","key":1486495500000,"doc_count":10},{"key_as_string":"2017-02-07T19:26:00.000Z","key":1486495560000,"doc_count":11},{"key_as_string":"2017-02-07T19:27:00.000Z","key":1486495620000,"doc_count":9},{"key_as_string":"2017-02-07T19:28:00.000Z","key":1486495680000,"doc_count":10},{"key_as_string":"2017-02-07T19:29:00.000Z","key":1486495740000,"doc_count":14},{"key_as_string":"2017-02-07T19:30:00.000Z","key":1486495800000,"doc_count":14},{"key_as_string":"2017-02-07T19:31:00.000Z","key":1486495860000,"doc_count":12},{"key_as_string":"2017-02-07T19:32:00.000Z","key":1486495920000,"doc_count":6},{"key_as_string":"2017-02-07T19:33:00.000Z","key":1486495980000,"doc_count":11},{"key_as_string":"2017-02-07T19:34:00.000Z","key":1486496040000,"doc_count":12},{"key_as_string":"2017-02-07T19:35:00.000Z","key":1486496100000,"doc_count":9},{"key_as_string":"2017-02-07T19:36:00.000Z","key":1486496160000,"doc_count":11},{"key_as_string":"2017-02-07T19:37:00.000Z","key":1486496220000,"doc_count":14},{"key_as_string":"2017-02-07T19:38:00.000Z","key":1486496280000,"doc_count":9},{"key_as_string":"2017-02-07T19:39:00.000Z","key":1486496340000,"doc_count":10},{"key_as_string":"2017-02-07T19:40:00.000Z","key":1486496400000,"doc_count":10},{"key_as_string":"2017-02-07T19:41:00.000Z","key":1486496460000,"doc_count":9},{"key_as_string":"2017-02-07T19:42:00.000Z","key":1486496520000,"doc_count":12},{"key_as_string":"2017-02-07T19:43:00.000Z","key":1486496580000,"doc_count":10},{"key_as_string":"2017-02-07T19:44:00.000Z","key":1486496640000,"doc_count":10},{"key_as_string":"2017-02-07T19:45:00.000Z","key":1486496700000,"doc_count":14},{"key_as_string":"2017-02-07T19:46:00.000Z","key":1486496760000,"doc_count":7},{"key_as_string":"2017-02-07T19:47:00.000Z","key":1486496820000,"doc_count":14},{"key_as_string":"2017-02-07T19:48:00.000Z","key":1486496880000,"doc_count":12},{"key_as_string":"2017-02-07T19:49:00.000Z","key":1486496940000,"doc_count":8},{"key_as_string":"2017-02-07T19:50:00.000Z","key":1486497000000,"doc_count":14},{"key_as_string":"2017-02-07T19:51:00.000Z","key":1486497060000,"doc_count":7},{"key_as_string":"2017-02-07T19:52:00.000Z","key":1486497120000,"doc_count":14},{"key_as_string":"2017-02-07T19:53:00.000Z","key":1486497180000,"doc_count":10},{"key_as_string":"2017-02-07T19:54:00.000Z","key":1486497240000,"doc_count":9},{"key_as_string":"2017-02-07T19:55:00.000Z","key":1486497300000,"doc_count":13},{"key_as_string":"2017-02-07T19:56:00.000Z","key":1486497360000,"doc_count":6},{"key_as_string":"2017-02-07T19:57:00.000Z","key":1486497420000,"doc_count":7},{"key_as_string":"2017-02-07T19:58:00.000Z","key":1486497480000,"doc_count":13},{"key_as_string":"2017-02-07T19:59:00.000Z","key":1486497540000,"doc_count":14},{"key_as_string":"2017-02-07T20:00:00.000Z","key":1486497600000,"doc_count":9},{"key_as_string":"2017-02-07T20:01:00.000Z","key":1486497660000,"doc_count":12},{"key_as_string":"2017-02-07T20:02:00.000Z","key":1486497720000,"doc_count":9},{"key_as_string":"2017-02-07T20:03:00.000Z","key":1486497780000,"doc_count":11},{"key_as_string":"2017-02-07T20:04:00.000Z","key":1486497840000,"doc_count":12},{"key_as_string":"2017-02-07T20:05:00.000Z","key":1486497900000,"doc_count":15},{"key_as_string":"2017-02-07T20:06:00.000Z","key":1486497960000,"doc_count":8},{"key_as_string":"2017-02-07T20:07:00.000Z","key":1486498020000,"doc_count":3},{"key_as_string":"2017-02-07T20:08:00.000Z","key":1486498080000,"doc_count":12},{"key_as_string":"2017-02-07T20:09:00.000Z","key":1486498140000,"doc_count":12},{"key_as_string":"2017-02-07T20:10:00.000Z","key":1486498200000,"doc_count":10},{"key_as_string":"2017-02-07T20:11:00.000Z","key":1486498260000,"doc_count":16},{"key_as_string":"2017-02-07T20:12:00.000Z","key":1486498320000,"doc_count":12},{"key_as_string":"2017-02-07T20:13:00.000Z","key":1486498380000,"doc_count":6},{"key_as_string":"2017-02-07T20:14:00.000Z","key":1486498440000,"doc_count":12},{"key_as_string":"2017-02-07T20:15:00.000Z","key":1486498500000,"doc_count":7},{"key_as_string":"2017-02-07T20:16:00.000Z","key":1486498560000,"doc_count":12},{"key_as_string":"2017-02-07T20:17:00.000Z","key":1486498620000,"doc_count":9},{"key_as_string":"2017-02-07T20:18:00.000Z","key":1486498680000,"doc_count":13},{"key_as_string":"2017-02-07T20:19:00.000Z","key":1486498740000,"doc_count":11},{"key_as_string":"2017-02-07T20:20:00.000Z","key":1486498800000,"doc_count":8},{"key_as_string":"2017-02-07T20:21:00.000Z","key":1486498860000,"doc_count":11},{"key_as_string":"2017-02-07T20:22:00.000Z","key":1486498920000,"doc_count":7},{"key_as_string":"2017-02-07T20:23:00.000Z","key":1486498980000,"doc_count":11},{"key_as_string":"2017-02-07T20:24:00.000Z","key":1486499040000,"doc_count":11},{"key_as_string":"2017-02-07T20:25:00.000Z","key":1486499100000,"doc_count":7},{"key_as_string":"2017-02-07T20:26:00.000Z","key":1486499160000,"doc_count":11},{"key_as_string":"2017-02-07T20:27:00.000Z","key":1486499220000,"doc_count":12},{"key_as_string":"2017-02-07T20:28:00.000Z","key":1486499280000,"doc_count":13},{"key_as_string":"2017-02-07T20:29:00.000Z","key":1486499340000,"doc_count":11},{"key_as_string":"2017-02-07T20:30:00.000Z","key":1486499400000,"doc_count":6},{"key_as_string":"2017-02-07T20:31:00.000Z","key":1486499460000,"doc_count":12},{"key_as_string":"2017-02-07T20:32:00.000Z","key":1486499520000,"doc_count":9},{"key_as_string":"2017-02-07T20:33:00.000Z","key":1486499580000,"doc_count":13},{"key_as_string":"2017-02-07T20:34:00.000Z","key":1486499640000,"doc_count":11},{"key_as_string":"2017-02-07T20:35:00.000Z","key":1486499700000,"doc_count":16},{"key_as_string":"2017-02-07T20:36:00.000Z","key":1486499760000,"doc_count":9},{"key_as_string":"2017-02-07T20:37:00.000Z","key":1486499820000,"doc_count":7},{"key_as_string":"2017-02-07T20:38:00.000Z","key":1486499880000,"doc_count":14},{"key_as_string":"2017-02-07T20:39:00.000Z","key":1486499940000,"doc_count":10},{"key_as_string":"2017-02-07T20:40:00.000Z","key":1486500000000,"doc_count":9},{"key_as_string":"2017-02-07T20:41:00.000Z","key":1486500060000,"doc_count":11},{"key_as_string":"2017-02-07T20:42:00.000Z","key":1486500120000,"doc_count":15},{"key_as_string":"2017-02-07T20:43:00.000Z","key":1486500180000,"doc_count":8},{"key_as_string":"2017-02-07T20:44:00.000Z","key":1486500240000,"doc_count":16},{"key_as_string":"2017-02-07T20:45:00.000Z","key":1486500300000,"doc_count":8},{"key_as_string":"2017-02-07T20:46:00.000Z","key":1486500360000,"doc_count":12},{"key_as_string":"2017-02-07T20:47:00.000Z","key":1486500420000,"doc_count":11},{"key_as_string":"2017-02-07T20:48:00.000Z","key":1486500480000,"doc_count":6},{"key_as_string":"2017-02-07T20:49:00.000Z","key":1486500540000,"doc_count":10},{"key_as_string":"2017-02-07T20:50:00.000Z","key":1486500600000,"doc_count":8},{"key_as_string":"2017-02-07T20:51:00.000Z","key":1486500660000,"doc_count":15},{"key_as_string":"2017-02-07T20:52:00.000Z","key":1486500720000,"doc_count":9},{"key_as_string":"2017-02-07T20:53:00.000Z","key":1486500780000,"doc_count":11},{"key_as_string":"2017-02-07T20:54:00.000Z","key":1486500840000,"doc_count":13},{"key_as_string":"2017-02-07T20:55:00.000Z","key":1486500900000,"doc_count":9},{"key_as_string":"2017-02-07T20:56:00.000Z","key":1486500960000,"doc_count":5},{"key_as_string":"2017-02-07T20:57:00.000Z","key":1486501020000,"doc_count":10},{"key_as_string":"2017-02-07T20:58:00.000Z","key":1486501080000,"doc_count":13},{"key_as_string":"2017-02-07T20:59:00.000Z","key":1486501140000,"doc_count":14},{"key_as_string":"2017-02-07T21:00:00.000Z","key":1486501200000,"doc_count":13},{"key_as_string":"2017-02-07T21:01:00.000Z","key":1486501260000,"doc_count":8},{"key_as_string":"2017-02-07T21:02:00.000Z","key":1486501320000,"doc_count":11},{"key_as_string":"2017-02-07T21:03:00.000Z","key":1486501380000,"doc_count":9},{"key_as_string":"2017-02-07T21:04:00.000Z","key":1486501440000,"doc_count":16},{"key_as_string":"2017-02-07T21:05:00.000Z","key":1486501500000,"doc_count":10},{"key_as_string":"2017-02-07T21:06:00.000Z","key":1486501560000,"doc_count":8},{"key_as_string":"2017-02-07T21:07:00.000Z","key":1486501620000,"doc_count":16},{"key_as_string":"2017-02-07T21:08:00.000Z","key":1486501680000,"doc_count":13},{"key_as_string":"2017-02-07T21:09:00.000Z","key":1486501740000,"doc_count":10},{"key_as_string":"2017-02-07T21:10:00.000Z","key":1486501800000,"doc_count":11},{"key_as_string":"2017-02-07T21:11:00.000Z","key":1486501860000,"doc_count":8},{"key_as_string":"2017-02-07T21:12:00.000Z","key":1486501920000,"doc_count":12},{"key_as_string":"2017-02-07T21:13:00.000Z","key":1486501980000,"doc_count":17},{"key_as_string":"2017-02-07T21:14:00.000Z","key":1486502040000,"doc_count":6},{"key_as_string":"2017-02-07T21:15:00.000Z","key":1486502100000,"doc_count":12},{"key_as_string":"2017-02-07T21:16:00.000Z","key":1486502160000,"doc_count":9},{"key_as_string":"2017-02-07T21:17:00.000Z","key":1486502220000,"doc_count":8},{"key_as_string":"2017-02-07T21:18:00.000Z","key":1486502280000,"doc_count":8},{"key_as_string":"2017-02-07T21:19:00.000Z","key":1486502340000,"doc_count":11},{"key_as_string":"2017-02-07T21:20:00.000Z","key":1486502400000,"doc_count":11},{"key_as_string":"2017-02-07T21:21:00.000Z","key":1486502460000,"doc_count":10},{"key_as_string":"2017-02-07T21:22:00.000Z","key":1486502520000,"doc_count":10},{"key_as_string":"2017-02-07T21:23:00.000Z","key":1486502580000,"doc_count":13},{"key_as_string":"2017-02-07T21:24:00.000Z","key":1486502640000,"doc_count":10},{"key_as_string":"2017-02-07T21:25:00.000Z","key":1486502700000,"doc_count":11},{"key_as_string":"2017-02-07T21:26:00.000Z","key":1486502760000,"doc_count":7},{"key_as_string":"2017-02-07T21:27:00.000Z","key":1486502820000,"doc_count":15},{"key_as_string":"2017-02-07T21:28:00.000Z","key":1486502880000,"doc_count":14},{"key_as_string":"2017-02-07T21:29:00.000Z","key":1486502940000,"doc_count":8},{"key_as_string":"2017-02-07T21:30:00.000Z","key":1486503000000,"doc_count":7},{"key_as_string":"2017-02-07T21:31:00.000Z","key":1486503060000,"doc_count":12},{"key_as_string":"2017-02-07T21:32:00.000Z","key":1486503120000,"doc_count":10},{"key_as_string":"2017-02-07T21:33:00.000Z","key":1486503180000,"doc_count":10},{"key_as_string":"2017-02-07T21:34:00.000Z","key":1486503240000,"doc_count":14},{"key_as_string":"2017-02-07T21:35:00.000Z","key":1486503300000,"doc_count":9},{"key_as_string":"2017-02-07T21:36:00.000Z","key":1486503360000,"doc_count":9},{"key_as_string":"2017-02-07T21:37:00.000Z","key":1486503420000,"doc_count":13},{"key_as_string":"2017-02-07T21:38:00.000Z","key":1486503480000,"doc_count":7},{"key_as_string":"2017-02-07T21:39:00.000Z","key":1486503540000,"doc_count":6},{"key_as_string":"2017-02-07T21:40:00.000Z","key":1486503600000,"doc_count":16},{"key_as_string":"2017-02-07T21:41:00.000Z","key":1486503660000,"doc_count":13},{"key_as_string":"2017-02-07T21:42:00.000Z","key":1486503720000,"doc_count":9},{"key_as_string":"2017-02-07T21:43:00.000Z","key":1486503780000,"doc_count":10},{"key_as_string":"2017-02-07T21:44:00.000Z","key":1486503840000,"doc_count":9},{"key_as_string":"2017-02-07T21:45:00.000Z","key":1486503900000,"doc_count":10},{"key_as_string":"2017-02-07T21:46:00.000Z","key":1486503960000,"doc_count":13},{"key_as_string":"2017-02-07T21:47:00.000Z","key":1486504020000,"doc_count":11},{"key_as_string":"2017-02-07T21:48:00.000Z","key":1486504080000,"doc_count":8},{"key_as_string":"2017-02-07T21:49:00.000Z","key":1486504140000,"doc_count":11},{"key_as_string":"2017-02-07T21:50:00.000Z","key":1486504200000,"doc_count":14},{"key_as_string":"2017-02-07T21:51:00.000Z","key":1486504260000,"doc_count":7},{"key_as_string":"2017-02-07T21:52:00.000Z","key":1486504320000,"doc_count":11},{"key_as_string":"2017-02-07T21:53:00.000Z","key":1486504380000,"doc_count":9},{"key_as_string":"2017-02-07T21:54:00.000Z","key":1486504440000,"doc_count":10},{"key_as_string":"2017-02-07T21:55:00.000Z","key":1486504500000,"doc_count":11},{"key_as_string":"2017-02-07T21:56:00.000Z","key":1486504560000,"doc_count":12},{"key_as_string":"2017-02-07T21:57:00.000Z","key":1486504620000,"doc_count":14},{"key_as_string":"2017-02-07T21:58:00.000Z","key":1486504680000,"doc_count":9},{"key_as_string":"2017-02-07T21:59:00.000Z","key":1486504740000,"doc_count":7},{"key_as_string":"2017-02-07T22:00:00.000Z","key":1486504800000,"doc_count":14},{"key_as_string":"2017-02-07T22:01:00.000Z","key":1486504860000,"doc_count":12},{"key_as_string":"2017-02-07T22:02:00.000Z","key":1486504920000,"doc_count":7},{"key_as_string":"2017-02-07T22:03:00.000Z","key":1486504980000,"doc_count":16},{"key_as_string":"2017-02-07T22:04:00.000Z","key":1486505040000,"doc_count":9},{"key_as_string":"2017-02-07T22:05:00.000Z","key":1486505100000,"doc_count":10},{"key_as_string":"2017-02-07T22:06:00.000Z","key":1486505160000,"doc_count":11},{"key_as_string":"2017-02-07T22:07:00.000Z","key":1486505220000,"doc_count":16},{"key_as_string":"2017-02-07T22:08:00.000Z","key":1486505280000,"doc_count":9},{"key_as_string":"2017-02-07T22:09:00.000Z","key":1486505340000,"doc_count":7},{"key_as_string":"2017-02-07T22:10:00.000Z","key":1486505400000,"doc_count":15},{"key_as_string":"2017-02-07T22:11:00.000Z","key":1486505460000,"doc_count":12},{"key_as_string":"2017-02-07T22:12:00.000Z","key":1486505520000,"doc_count":8},{"key_as_string":"2017-02-07T22:13:00.000Z","key":1486505580000,"doc_count":12},{"key_as_string":"2017-02-07T22:14:00.000Z","key":1486505640000,"doc_count":15},{"key_as_string":"2017-02-07T22:15:00.000Z","key":1486505700000,"doc_count":10},{"key_as_string":"2017-02-07T22:16:00.000Z","key":1486505760000,"doc_count":11},{"key_as_string":"2017-02-07T22:17:00.000Z","key":1486505820000,"doc_count":6},{"key_as_string":"2017-02-07T22:18:00.000Z","key":1486505880000,"doc_count":13},{"key_as_string":"2017-02-07T22:19:00.000Z","key":1486505940000,"doc_count":8},{"key_as_string":"2017-02-07T22:20:00.000Z","key":1486506000000,"doc_count":5},{"key_as_string":"2017-02-07T22:21:00.000Z","key":1486506060000,"doc_count":15},{"key_as_string":"2017-02-07T22:22:00.000Z","key":1486506120000,"doc_count":10},{"key_as_string":"2017-02-07T22:23:00.000Z","key":1486506180000,"doc_count":10},{"key_as_string":"2017-02-07T22:24:00.000Z","key":1486506240000,"doc_count":14},{"key_as_string":"2017-02-07T22:25:00.000Z","key":1486506300000,"doc_count":8},{"key_as_string":"2017-02-07T22:26:00.000Z","key":1486506360000,"doc_count":12},{"key_as_string":"2017-02-07T22:27:00.000Z","key":1486506420000,"doc_count":6},{"key_as_string":"2017-02-07T22:28:00.000Z","key":1486506480000,"doc_count":12},{"key_as_string":"2017-02-07T22:29:00.000Z","key":1486506540000,"doc_count":14},{"key_as_string":"2017-02-07T22:30:00.000Z","key":1486506600000,"doc_count":8},{"key_as_string":"2017-02-07T22:31:00.000Z","key":1486506660000,"doc_count":10},{"key_as_string":"2017-02-07T22:32:00.000Z","key":1486506720000,"doc_count":15},{"key_as_string":"2017-02-07T22:33:00.000Z","key":1486506780000,"doc_count":9},{"key_as_string":"2017-02-07T22:34:00.000Z","key":1486506840000,"doc_count":7},{"key_as_string":"2017-02-07T22:35:00.000Z","key":1486506900000,"doc_count":12},{"key_as_string":"2017-02-07T22:36:00.000Z","key":1486506960000,"doc_count":9},{"key_as_string":"2017-02-07T22:37:00.000Z","key":1486507020000,"doc_count":15},{"key_as_string":"2017-02-07T22:38:00.000Z","key":1486507080000,"doc_count":6},{"key_as_string":"2017-02-07T22:39:00.000Z","key":1486507140000,"doc_count":12},{"key_as_string":"2017-02-07T22:40:00.000Z","key":1486507200000,"doc_count":13},{"key_as_string":"2017-02-07T22:41:00.000Z","key":1486507260000,"doc_count":8},{"key_as_string":"2017-02-07T22:42:00.000Z","key":1486507320000,"doc_count":13},{"key_as_string":"2017-02-07T22:43:00.000Z","key":1486507380000,"doc_count":7},{"key_as_string":"2017-02-07T22:44:00.000Z","key":1486507440000,"doc_count":10},{"key_as_string":"2017-02-07T22:45:00.000Z","key":1486507500000,"doc_count":7},{"key_as_string":"2017-02-07T22:46:00.000Z","key":1486507560000,"doc_count":9},{"key_as_string":"2017-02-07T22:47:00.000Z","key":1486507620000,"doc_count":12},{"key_as_string":"2017-02-07T22:48:00.000Z","key":1486507680000,"doc_count":9},{"key_as_string":"2017-02-07T22:49:00.000Z","key":1486507740000,"doc_count":6},{"key_as_string":"2017-02-07T22:50:00.000Z","key":1486507800000,"doc_count":12},{"key_as_string":"2017-02-07T22:51:00.000Z","key":1486507860000,"doc_count":12},{"key_as_string":"2017-02-07T22:52:00.000Z","key":1486507920000,"doc_count":9},{"key_as_string":"2017-02-07T22:53:00.000Z","key":1486507980000,"doc_count":10},{"key_as_string":"2017-02-07T22:54:00.000Z","key":1486508040000,"doc_count":12},{"key_as_string":"2017-02-07T22:55:00.000Z","key":1486508100000,"doc_count":8},{"key_as_string":"2017-02-07T22:56:00.000Z","key":1486508160000,"doc_count":9},{"key_as_string":"2017-02-07T22:57:00.000Z","key":1486508220000,"doc_count":10},{"key_as_string":"2017-02-07T22:58:00.000Z","key":1486508280000,"doc_count":13},{"key_as_string":"2017-02-07T22:59:00.000Z","key":1486508340000,"doc_count":12},{"key_as_string":"2017-02-07T23:00:00.000Z","key":1486508400000,"doc_count":9},{"key_as_string":"2017-02-07T23:01:00.000Z","key":1486508460000,"doc_count":9},{"key_as_string":"2017-02-07T23:02:00.000Z","key":1486508520000,"doc_count":10},{"key_as_string":"2017-02-07T23:03:00.000Z","key":1486508580000,"doc_count":14},{"key_as_string":"2017-02-07T23:04:00.000Z","key":1486508640000,"doc_count":9},{"key_as_string":"2017-02-07T23:05:00.000Z","key":1486508700000,"doc_count":11},{"key_as_string":"2017-02-07T23:06:00.000Z","key":1486508760000,"doc_count":10},{"key_as_string":"2017-02-07T23:07:00.000Z","key":1486508820000,"doc_count":16},{"key_as_string":"2017-02-07T23:08:00.000Z","key":1486508880000,"doc_count":12},{"key_as_string":"2017-02-07T23:09:00.000Z","key":1486508940000,"doc_count":11},{"key_as_string":"2017-02-07T23:10:00.000Z","key":1486509000000,"doc_count":9},{"key_as_string":"2017-02-07T23:11:00.000Z","key":1486509060000,"doc_count":13},{"key_as_string":"2017-02-07T23:12:00.000Z","key":1486509120000,"doc_count":5},{"key_as_string":"2017-02-07T23:13:00.000Z","key":1486509180000,"doc_count":9},{"key_as_string":"2017-02-07T23:14:00.000Z","key":1486509240000,"doc_count":11},{"key_as_string":"2017-02-07T23:15:00.000Z","key":1486509300000,"doc_count":14},{"key_as_string":"2017-02-07T23:16:00.000Z","key":1486509360000,"doc_count":11},{"key_as_string":"2017-02-07T23:17:00.000Z","key":1486509420000,"doc_count":8},{"key_as_string":"2017-02-07T23:18:00.000Z","key":1486509480000,"doc_count":12},{"key_as_string":"2017-02-07T23:19:00.000Z","key":1486509540000,"doc_count":8},{"key_as_string":"2017-02-07T23:20:00.000Z","key":1486509600000,"doc_count":7},{"key_as_string":"2017-02-07T23:21:00.000Z","key":1486509660000,"doc_count":13},{"key_as_string":"2017-02-07T23:22:00.000Z","key":1486509720000,"doc_count":13},{"key_as_string":"2017-02-07T23:23:00.000Z","key":1486509780000,"doc_count":5},{"key_as_string":"2017-02-07T23:24:00.000Z","key":1486509840000,"doc_count":13},{"key_as_string":"2017-02-07T23:25:00.000Z","key":1486509900000,"doc_count":5},{"key_as_string":"2017-02-07T23:26:00.000Z","key":1486509960000,"doc_count":11},{"key_as_string":"2017-02-07T23:27:00.000Z","key":1486510020000,"doc_count":11},{"key_as_string":"2017-02-07T23:28:00.000Z","key":1486510080000,"doc_count":12},{"key_as_string":"2017-02-07T23:29:00.000Z","key":1486510140000,"doc_count":5},{"key_as_string":"2017-02-07T23:30:00.000Z","key":1486510200000,"doc_count":11},{"key_as_string":"2017-02-07T23:31:00.000Z","key":1486510260000,"doc_count":6},{"key_as_string":"2017-02-07T23:32:00.000Z","key":1486510320000,"doc_count":15},{"key_as_string":"2017-02-07T23:33:00.000Z","key":1486510380000,"doc_count":13},{"key_as_string":"2017-02-07T23:34:00.000Z","key":1486510440000,"doc_count":15},{"key_as_string":"2017-02-07T23:35:00.000Z","key":1486510500000,"doc_count":8},{"key_as_string":"2017-02-07T23:36:00.000Z","key":1486510560000,"doc_count":11},{"key_as_string":"2017-02-07T23:37:00.000Z","key":1486510620000,"doc_count":15},{"key_as_string":"2017-02-07T23:38:00.000Z","key":1486510680000,"doc_count":7},{"key_as_string":"2017-02-07T23:39:00.000Z","key":1486510740000,"doc_count":11},{"key_as_string":"2017-02-07T23:40:00.000Z","key":1486510800000,"doc_count":7},{"key_as_string":"2017-02-07T23:41:00.000Z","key":1486510860000,"doc_count":9},{"key_as_string":"2017-02-07T23:42:00.000Z","key":1486510920000,"doc_count":11},{"key_as_string":"2017-02-07T23:43:00.000Z","key":1486510980000,"doc_count":12},{"key_as_string":"2017-02-07T23:44:00.000Z","key":1486511040000,"doc_count":19},{"key_as_string":"2017-02-07T23:45:00.000Z","key":1486511100000,"doc_count":6},{"key_as_string":"2017-02-07T23:46:00.000Z","key":1486511160000,"doc_count":12},{"key_as_string":"2017-02-07T23:47:00.000Z","key":1486511220000,"doc_count":7},{"key_as_string":"2017-02-07T23:48:00.000Z","key":1486511280000,"doc_count":19},{"key_as_string":"2017-02-07T23:49:00.000Z","key":1486511340000,"doc_count":4},{"key_as_string":"2017-02-07T23:50:00.000Z","key":1486511400000,"doc_count":15},{"key_as_string":"2017-02-07T23:51:00.000Z","key":1486511460000,"doc_count":9},{"key_as_string":"2017-02-07T23:52:00.000Z","key":1486511520000,"doc_count":7},{"key_as_string":"2017-02-07T23:53:00.000Z","key":1486511580000,"doc_count":11},{"key_as_string":"2017-02-07T23:54:00.000Z","key":1486511640000,"doc_count":11},{"key_as_string":"2017-02-07T23:55:00.000Z","key":1486511700000,"doc_count":10},{"key_as_string":"2017-02-07T23:56:00.000Z","key":1486511760000,"doc_count":7},{"key_as_string":"2017-02-07T23:57:00.000Z","key":1486511820000,"doc_count":16},{"key_as_string":"2017-02-07T23:58:00.000Z","key":1486511880000,"doc_count":9},{"key_as_string":"2017-02-07T23:59:00.000Z","key":1486511940000,"doc_count":13},{"key_as_string":"2017-02-08T00:00:00.000Z","key":1486512000000,"doc_count":11},{"key_as_string":"2017-02-08T00:01:00.000Z","key":1486512060000,"doc_count":8},{"key_as_string":"2017-02-08T00:02:00.000Z","key":1486512120000,"doc_count":11},{"key_as_string":"2017-02-08T00:03:00.000Z","key":1486512180000,"doc_count":11},{"key_as_string":"2017-02-08T00:04:00.000Z","key":1486512240000,"doc_count":10},{"key_as_string":"2017-02-08T00:05:00.000Z","key":1486512300000,"doc_count":11},{"key_as_string":"2017-02-08T00:06:00.000Z","key":1486512360000,"doc_count":9},{"key_as_string":"2017-02-08T00:07:00.000Z","key":1486512420000,"doc_count":10},{"key_as_string":"2017-02-08T00:08:00.000Z","key":1486512480000,"doc_count":9},{"key_as_string":"2017-02-08T00:09:00.000Z","key":1486512540000,"doc_count":12},{"key_as_string":"2017-02-08T00:10:00.000Z","key":1486512600000,"doc_count":7},{"key_as_string":"2017-02-08T00:11:00.000Z","key":1486512660000,"doc_count":14},{"key_as_string":"2017-02-08T00:12:00.000Z","key":1486512720000,"doc_count":10},{"key_as_string":"2017-02-08T00:13:00.000Z","key":1486512780000,"doc_count":8},{"key_as_string":"2017-02-08T00:14:00.000Z","key":1486512840000,"doc_count":7},{"key_as_string":"2017-02-08T00:15:00.000Z","key":1486512900000,"doc_count":10},{"key_as_string":"2017-02-08T00:16:00.000Z","key":1486512960000,"doc_count":12},{"key_as_string":"2017-02-08T00:17:00.000Z","key":1486513020000,"doc_count":13},{"key_as_string":"2017-02-08T00:18:00.000Z","key":1486513080000,"doc_count":7},{"key_as_string":"2017-02-08T00:19:00.000Z","key":1486513140000,"doc_count":7},{"key_as_string":"2017-02-08T00:20:00.000Z","key":1486513200000,"doc_count":7},{"key_as_string":"2017-02-08T00:21:00.000Z","key":1486513260000,"doc_count":9},{"key_as_string":"2017-02-08T00:22:00.000Z","key":1486513320000,"doc_count":13},{"key_as_string":"2017-02-08T00:23:00.000Z","key":1486513380000,"doc_count":10},{"key_as_string":"2017-02-08T00:24:00.000Z","key":1486513440000,"doc_count":8},{"key_as_string":"2017-02-08T00:25:00.000Z","key":1486513500000,"doc_count":13},{"key_as_string":"2017-02-08T00:26:00.000Z","key":1486513560000,"doc_count":10},{"key_as_string":"2017-02-08T00:27:00.000Z","key":1486513620000,"doc_count":8},{"key_as_string":"2017-02-08T00:28:00.000Z","key":1486513680000,"doc_count":15},{"key_as_string":"2017-02-08T00:29:00.000Z","key":1486513740000,"doc_count":7},{"key_as_string":"2017-02-08T00:30:00.000Z","key":1486513800000,"doc_count":9},{"key_as_string":"2017-02-08T00:31:00.000Z","key":1486513860000,"doc_count":13},{"key_as_string":"2017-02-08T00:32:00.000Z","key":1486513920000,"doc_count":8},{"key_as_string":"2017-02-08T00:33:00.000Z","key":1486513980000,"doc_count":12},{"key_as_string":"2017-02-08T00:34:00.000Z","key":1486514040000,"doc_count":13},{"key_as_string":"2017-02-08T00:35:00.000Z","key":1486514100000,"doc_count":9},{"key_as_string":"2017-02-08T00:36:00.000Z","key":1486514160000,"doc_count":12},{"key_as_string":"2017-02-08T00:37:00.000Z","key":1486514220000,"doc_count":9},{"key_as_string":"2017-02-08T00:38:00.000Z","key":1486514280000,"doc_count":9},{"key_as_string":"2017-02-08T00:39:00.000Z","key":1486514340000,"doc_count":16},{"key_as_string":"2017-02-08T00:40:00.000Z","key":1486514400000,"doc_count":10},{"key_as_string":"2017-02-08T00:41:00.000Z","key":1486514460000,"doc_count":13},{"key_as_string":"2017-02-08T00:42:00.000Z","key":1486514520000,"doc_count":6},{"key_as_string":"2017-02-08T00:43:00.000Z","key":1486514580000,"doc_count":16},{"key_as_string":"2017-02-08T00:44:00.000Z","key":1486514640000,"doc_count":16},{"key_as_string":"2017-02-08T00:45:00.000Z","key":1486514700000,"doc_count":6},{"key_as_string":"2017-02-08T00:46:00.000Z","key":1486514760000,"doc_count":11},{"key_as_string":"2017-02-08T00:47:00.000Z","key":1486514820000,"doc_count":11},{"key_as_string":"2017-02-08T00:48:00.000Z","key":1486514880000,"doc_count":9},{"key_as_string":"2017-02-08T00:49:00.000Z","key":1486514940000,"doc_count":11},{"key_as_string":"2017-02-08T00:50:00.000Z","key":1486515000000,"doc_count":9},{"key_as_string":"2017-02-08T00:51:00.000Z","key":1486515060000,"doc_count":12},{"key_as_string":"2017-02-08T00:52:00.000Z","key":1486515120000,"doc_count":10},{"key_as_string":"2017-02-08T00:53:00.000Z","key":1486515180000,"doc_count":13},{"key_as_string":"2017-02-08T00:54:00.000Z","key":1486515240000,"doc_count":9},{"key_as_string":"2017-02-08T00:55:00.000Z","key":1486515300000,"doc_count":15},{"key_as_string":"2017-02-08T00:56:00.000Z","key":1486515360000,"doc_count":11},{"key_as_string":"2017-02-08T00:57:00.000Z","key":1486515420000,"doc_count":12},{"key_as_string":"2017-02-08T00:58:00.000Z","key":1486515480000,"doc_count":17},{"key_as_string":"2017-02-08T00:59:00.000Z","key":1486515540000,"doc_count":11},{"key_as_string":"2017-02-08T01:00:00.000Z","key":1486515600000,"doc_count":14},{"key_as_string":"2017-02-08T01:01:00.000Z","key":1486515660000,"doc_count":12},{"key_as_string":"2017-02-08T01:02:00.000Z","key":1486515720000,"doc_count":8},{"key_as_string":"2017-02-08T01:03:00.000Z","key":1486515780000,"doc_count":12},{"key_as_string":"2017-02-08T01:04:00.000Z","key":1486515840000,"doc_count":8},{"key_as_string":"2017-02-08T01:05:00.000Z","key":1486515900000,"doc_count":13},{"key_as_string":"2017-02-08T01:06:00.000Z","key":1486515960000,"doc_count":9},{"key_as_string":"2017-02-08T01:07:00.000Z","key":1486516020000,"doc_count":7},{"key_as_string":"2017-02-08T01:08:00.000Z","key":1486516080000,"doc_count":14},{"key_as_string":"2017-02-08T01:09:00.000Z","key":1486516140000,"doc_count":9},{"key_as_string":"2017-02-08T01:10:00.000Z","key":1486516200000,"doc_count":10},{"key_as_string":"2017-02-08T01:11:00.000Z","key":1486516260000,"doc_count":12},{"key_as_string":"2017-02-08T01:12:00.000Z","key":1486516320000,"doc_count":8},{"key_as_string":"2017-02-08T01:13:00.000Z","key":1486516380000,"doc_count":9},{"key_as_string":"2017-02-08T01:14:00.000Z","key":1486516440000,"doc_count":11},{"key_as_string":"2017-02-08T01:15:00.000Z","key":1486516500000,"doc_count":10},{"key_as_string":"2017-02-08T01:16:00.000Z","key":1486516560000,"doc_count":16},{"key_as_string":"2017-02-08T01:17:00.000Z","key":1486516620000,"doc_count":12},{"key_as_string":"2017-02-08T01:18:00.000Z","key":1486516680000,"doc_count":7},{"key_as_string":"2017-02-08T01:19:00.000Z","key":1486516740000,"doc_count":7},{"key_as_string":"2017-02-08T01:20:00.000Z","key":1486516800000,"doc_count":12},{"key_as_string":"2017-02-08T01:21:00.000Z","key":1486516860000,"doc_count":10},{"key_as_string":"2017-02-08T01:22:00.000Z","key":1486516920000,"doc_count":15},{"key_as_string":"2017-02-08T01:23:00.000Z","key":1486516980000,"doc_count":9},{"key_as_string":"2017-02-08T01:24:00.000Z","key":1486517040000,"doc_count":15},{"key_as_string":"2017-02-08T01:25:00.000Z","key":1486517100000,"doc_count":9},{"key_as_string":"2017-02-08T01:26:00.000Z","key":1486517160000,"doc_count":15},{"key_as_string":"2017-02-08T01:27:00.000Z","key":1486517220000,"doc_count":11},{"key_as_string":"2017-02-08T01:28:00.000Z","key":1486517280000,"doc_count":15},{"key_as_string":"2017-02-08T01:29:00.000Z","key":1486517340000,"doc_count":17},{"key_as_string":"2017-02-08T01:30:00.000Z","key":1486517400000,"doc_count":5},{"key_as_string":"2017-02-08T01:31:00.000Z","key":1486517460000,"doc_count":10},{"key_as_string":"2017-02-08T01:32:00.000Z","key":1486517520000,"doc_count":9},{"key_as_string":"2017-02-08T01:33:00.000Z","key":1486517580000,"doc_count":13},{"key_as_string":"2017-02-08T01:34:00.000Z","key":1486517640000,"doc_count":17},{"key_as_string":"2017-02-08T01:35:00.000Z","key":1486517700000,"doc_count":8},{"key_as_string":"2017-02-08T01:36:00.000Z","key":1486517760000,"doc_count":7},{"key_as_string":"2017-02-08T01:37:00.000Z","key":1486517820000,"doc_count":14},{"key_as_string":"2017-02-08T01:38:00.000Z","key":1486517880000,"doc_count":11},{"key_as_string":"2017-02-08T01:39:00.000Z","key":1486517940000,"doc_count":4},{"key_as_string":"2017-02-08T01:40:00.000Z","key":1486518000000,"doc_count":13},{"key_as_string":"2017-02-08T01:41:00.000Z","key":1486518060000,"doc_count":13},{"key_as_string":"2017-02-08T01:42:00.000Z","key":1486518120000,"doc_count":6},{"key_as_string":"2017-02-08T01:43:00.000Z","key":1486518180000,"doc_count":12},{"key_as_string":"2017-02-08T01:44:00.000Z","key":1486518240000,"doc_count":13},{"key_as_string":"2017-02-08T01:45:00.000Z","key":1486518300000,"doc_count":9},{"key_as_string":"2017-02-08T01:46:00.000Z","key":1486518360000,"doc_count":15},{"key_as_string":"2017-02-08T01:47:00.000Z","key":1486518420000,"doc_count":14},{"key_as_string":"2017-02-08T01:48:00.000Z","key":1486518480000,"doc_count":7},{"key_as_string":"2017-02-08T01:49:00.000Z","key":1486518540000,"doc_count":15},{"key_as_string":"2017-02-08T01:50:00.000Z","key":1486518600000,"doc_count":10},{"key_as_string":"2017-02-08T01:51:00.000Z","key":1486518660000,"doc_count":9},{"key_as_string":"2017-02-08T01:52:00.000Z","key":1486518720000,"doc_count":7},{"key_as_string":"2017-02-08T01:53:00.000Z","key":1486518780000,"doc_count":14},{"key_as_string":"2017-02-08T01:54:00.000Z","key":1486518840000,"doc_count":10},{"key_as_string":"2017-02-08T01:55:00.000Z","key":1486518900000,"doc_count":9},{"key_as_string":"2017-02-08T01:56:00.000Z","key":1486518960000,"doc_count":11},{"key_as_string":"2017-02-08T01:57:00.000Z","key":1486519020000,"doc_count":7},{"key_as_string":"2017-02-08T01:58:00.000Z","key":1486519080000,"doc_count":12},{"key_as_string":"2017-02-08T01:59:00.000Z","key":1486519140000,"doc_count":7},{"key_as_string":"2017-02-08T02:00:00.000Z","key":1486519200000,"doc_count":16},{"key_as_string":"2017-02-08T02:01:00.000Z","key":1486519260000,"doc_count":8},{"key_as_string":"2017-02-08T02:02:00.000Z","key":1486519320000,"doc_count":5},{"key_as_string":"2017-02-08T02:03:00.000Z","key":1486519380000,"doc_count":12},{"key_as_string":"2017-02-08T02:04:00.000Z","key":1486519440000,"doc_count":11},{"key_as_string":"2017-02-08T02:05:00.000Z","key":1486519500000,"doc_count":12},{"key_as_string":"2017-02-08T02:06:00.000Z","key":1486519560000,"doc_count":12},{"key_as_string":"2017-02-08T02:07:00.000Z","key":1486519620000,"doc_count":9},{"key_as_string":"2017-02-08T02:08:00.000Z","key":1486519680000,"doc_count":11},{"key_as_string":"2017-02-08T02:09:00.000Z","key":1486519740000,"doc_count":16},{"key_as_string":"2017-02-08T02:10:00.000Z","key":1486519800000,"doc_count":9},{"key_as_string":"2017-02-08T02:11:00.000Z","key":1486519860000,"doc_count":8},{"key_as_string":"2017-02-08T02:12:00.000Z","key":1486519920000,"doc_count":9},{"key_as_string":"2017-02-08T02:13:00.000Z","key":1486519980000,"doc_count":8},{"key_as_string":"2017-02-08T02:14:00.000Z","key":1486520040000,"doc_count":12},{"key_as_string":"2017-02-08T02:15:00.000Z","key":1486520100000,"doc_count":8},{"key_as_string":"2017-02-08T02:16:00.000Z","key":1486520160000,"doc_count":9},{"key_as_string":"2017-02-08T02:17:00.000Z","key":1486520220000,"doc_count":11},{"key_as_string":"2017-02-08T02:18:00.000Z","key":1486520280000,"doc_count":8},{"key_as_string":"2017-02-08T02:19:00.000Z","key":1486520340000,"doc_count":9},{"key_as_string":"2017-02-08T02:20:00.000Z","key":1486520400000,"doc_count":7},{"key_as_string":"2017-02-08T02:21:00.000Z","key":1486520460000,"doc_count":15},{"key_as_string":"2017-02-08T02:22:00.000Z","key":1486520520000,"doc_count":6},{"key_as_string":"2017-02-08T02:23:00.000Z","key":1486520580000,"doc_count":11},{"key_as_string":"2017-02-08T02:24:00.000Z","key":1486520640000,"doc_count":14},{"key_as_string":"2017-02-08T02:25:00.000Z","key":1486520700000,"doc_count":8},{"key_as_string":"2017-02-08T02:26:00.000Z","key":1486520760000,"doc_count":11},{"key_as_string":"2017-02-08T02:27:00.000Z","key":1486520820000,"doc_count":15},{"key_as_string":"2017-02-08T02:28:00.000Z","key":1486520880000,"doc_count":6},{"key_as_string":"2017-02-08T02:29:00.000Z","key":1486520940000,"doc_count":5},{"key_as_string":"2017-02-08T02:30:00.000Z","key":1486521000000,"doc_count":18},{"key_as_string":"2017-02-08T02:31:00.000Z","key":1486521060000,"doc_count":7},{"key_as_string":"2017-02-08T02:32:00.000Z","key":1486521120000,"doc_count":6},{"key_as_string":"2017-02-08T02:33:00.000Z","key":1486521180000,"doc_count":15},{"key_as_string":"2017-02-08T02:34:00.000Z","key":1486521240000,"doc_count":11},{"key_as_string":"2017-02-08T02:35:00.000Z","key":1486521300000,"doc_count":13},{"key_as_string":"2017-02-08T02:36:00.000Z","key":1486521360000,"doc_count":12},{"key_as_string":"2017-02-08T02:37:00.000Z","key":1486521420000,"doc_count":9},{"key_as_string":"2017-02-08T02:38:00.000Z","key":1486521480000,"doc_count":14},{"key_as_string":"2017-02-08T02:39:00.000Z","key":1486521540000,"doc_count":9},{"key_as_string":"2017-02-08T02:40:00.000Z","key":1486521600000,"doc_count":12},{"key_as_string":"2017-02-08T02:41:00.000Z","key":1486521660000,"doc_count":10},{"key_as_string":"2017-02-08T02:42:00.000Z","key":1486521720000,"doc_count":12},{"key_as_string":"2017-02-08T02:43:00.000Z","key":1486521780000,"doc_count":8},{"key_as_string":"2017-02-08T02:44:00.000Z","key":1486521840000,"doc_count":15},{"key_as_string":"2017-02-08T02:45:00.000Z","key":1486521900000,"doc_count":6},{"key_as_string":"2017-02-08T02:46:00.000Z","key":1486521960000,"doc_count":12},{"key_as_string":"2017-02-08T02:47:00.000Z","key":1486522020000,"doc_count":10},{"key_as_string":"2017-02-08T02:48:00.000Z","key":1486522080000,"doc_count":13},{"key_as_string":"2017-02-08T02:49:00.000Z","key":1486522140000,"doc_count":14},{"key_as_string":"2017-02-08T02:50:00.000Z","key":1486522200000,"doc_count":8},{"key_as_string":"2017-02-08T02:51:00.000Z","key":1486522260000,"doc_count":12},{"key_as_string":"2017-02-08T02:52:00.000Z","key":1486522320000,"doc_count":6},{"key_as_string":"2017-02-08T02:53:00.000Z","key":1486522380000,"doc_count":14},{"key_as_string":"2017-02-08T02:54:00.000Z","key":1486522440000,"doc_count":12},{"key_as_string":"2017-02-08T02:55:00.000Z","key":1486522500000,"doc_count":11},{"key_as_string":"2017-02-08T02:56:00.000Z","key":1486522560000,"doc_count":14},{"key_as_string":"2017-02-08T02:57:00.000Z","key":1486522620000,"doc_count":13},{"key_as_string":"2017-02-08T02:58:00.000Z","key":1486522680000,"doc_count":7},{"key_as_string":"2017-02-08T02:59:00.000Z","key":1486522740000,"doc_count":9},{"key_as_string":"2017-02-08T03:00:00.000Z","key":1486522800000,"doc_count":9},{"key_as_string":"2017-02-08T03:01:00.000Z","key":1486522860000,"doc_count":13},{"key_as_string":"2017-02-08T03:02:00.000Z","key":1486522920000,"doc_count":10},{"key_as_string":"2017-02-08T03:03:00.000Z","key":1486522980000,"doc_count":12},{"key_as_string":"2017-02-08T03:04:00.000Z","key":1486523040000,"doc_count":4},{"key_as_string":"2017-02-08T03:05:00.000Z","key":1486523100000,"doc_count":12},{"key_as_string":"2017-02-08T03:06:00.000Z","key":1486523160000,"doc_count":10},{"key_as_string":"2017-02-08T03:07:00.000Z","key":1486523220000,"doc_count":8},{"key_as_string":"2017-02-08T03:08:00.000Z","key":1486523280000,"doc_count":12},{"key_as_string":"2017-02-08T03:09:00.000Z","key":1486523340000,"doc_count":12},{"key_as_string":"2017-02-08T03:10:00.000Z","key":1486523400000,"doc_count":9},{"key_as_string":"2017-02-08T03:11:00.000Z","key":1486523460000,"doc_count":12},{"key_as_string":"2017-02-08T03:12:00.000Z","key":1486523520000,"doc_count":6},{"key_as_string":"2017-02-08T03:13:00.000Z","key":1486523580000,"doc_count":11},{"key_as_string":"2017-02-08T03:14:00.000Z","key":1486523640000,"doc_count":8},{"key_as_string":"2017-02-08T03:15:00.000Z","key":1486523700000,"doc_count":11},{"key_as_string":"2017-02-08T03:16:00.000Z","key":1486523760000,"doc_count":9},{"key_as_string":"2017-02-08T03:17:00.000Z","key":1486523820000,"doc_count":9},{"key_as_string":"2017-02-08T03:18:00.000Z","key":1486523880000,"doc_count":16},{"key_as_string":"2017-02-08T03:19:00.000Z","key":1486523940000,"doc_count":6},{"key_as_string":"2017-02-08T03:20:00.000Z","key":1486524000000,"doc_count":10},{"key_as_string":"2017-02-08T03:21:00.000Z","key":1486524060000,"doc_count":14},{"key_as_string":"2017-02-08T03:22:00.000Z","key":1486524120000,"doc_count":3},{"key_as_string":"2017-02-08T03:23:00.000Z","key":1486524180000,"doc_count":11},{"key_as_string":"2017-02-08T03:24:00.000Z","key":1486524240000,"doc_count":13},{"key_as_string":"2017-02-08T03:25:00.000Z","key":1486524300000,"doc_count":11},{"key_as_string":"2017-02-08T03:26:00.000Z","key":1486524360000,"doc_count":18},{"key_as_string":"2017-02-08T03:27:00.000Z","key":1486524420000,"doc_count":12},{"key_as_string":"2017-02-08T03:28:00.000Z","key":1486524480000,"doc_count":11},{"key_as_string":"2017-02-08T03:29:00.000Z","key":1486524540000,"doc_count":8},{"key_as_string":"2017-02-08T03:30:00.000Z","key":1486524600000,"doc_count":18},{"key_as_string":"2017-02-08T03:31:00.000Z","key":1486524660000,"doc_count":12},{"key_as_string":"2017-02-08T03:32:00.000Z","key":1486524720000,"doc_count":13},{"key_as_string":"2017-02-08T03:33:00.000Z","key":1486524780000,"doc_count":12},{"key_as_string":"2017-02-08T03:34:00.000Z","key":1486524840000,"doc_count":10},{"key_as_string":"2017-02-08T03:35:00.000Z","key":1486524900000,"doc_count":10},{"key_as_string":"2017-02-08T03:36:00.000Z","key":1486524960000,"doc_count":10},{"key_as_string":"2017-02-08T03:37:00.000Z","key":1486525020000,"doc_count":9},{"key_as_string":"2017-02-08T03:38:00.000Z","key":1486525080000,"doc_count":20},{"key_as_string":"2017-02-08T03:39:00.000Z","key":1486525140000,"doc_count":8},{"key_as_string":"2017-02-08T03:40:00.000Z","key":1486525200000,"doc_count":7},{"key_as_string":"2017-02-08T03:41:00.000Z","key":1486525260000,"doc_count":10},{"key_as_string":"2017-02-08T03:42:00.000Z","key":1486525320000,"doc_count":12},{"key_as_string":"2017-02-08T03:43:00.000Z","key":1486525380000,"doc_count":9},{"key_as_string":"2017-02-08T03:44:00.000Z","key":1486525440000,"doc_count":7},{"key_as_string":"2017-02-08T03:45:00.000Z","key":1486525500000,"doc_count":8},{"key_as_string":"2017-02-08T03:46:00.000Z","key":1486525560000,"doc_count":10},{"key_as_string":"2017-02-08T03:47:00.000Z","key":1486525620000,"doc_count":10},{"key_as_string":"2017-02-08T03:48:00.000Z","key":1486525680000,"doc_count":7},{"key_as_string":"2017-02-08T03:49:00.000Z","key":1486525740000,"doc_count":9},{"key_as_string":"2017-02-08T03:50:00.000Z","key":1486525800000,"doc_count":11},{"key_as_string":"2017-02-08T03:51:00.000Z","key":1486525860000,"doc_count":8},{"key_as_string":"2017-02-08T03:52:00.000Z","key":1486525920000,"doc_count":10},{"key_as_string":"2017-02-08T03:53:00.000Z","key":1486525980000,"doc_count":12},{"key_as_string":"2017-02-08T03:54:00.000Z","key":1486526040000,"doc_count":14},{"key_as_string":"2017-02-08T03:55:00.000Z","key":1486526100000,"doc_count":9},{"key_as_string":"2017-02-08T03:56:00.000Z","key":1486526160000,"doc_count":11},{"key_as_string":"2017-02-08T03:57:00.000Z","key":1486526220000,"doc_count":7},{"key_as_string":"2017-02-08T03:58:00.000Z","key":1486526280000,"doc_count":11},{"key_as_string":"2017-02-08T03:59:00.000Z","key":1486526340000,"doc_count":14},{"key_as_string":"2017-02-08T04:00:00.000Z","key":1486526400000,"doc_count":10},{"key_as_string":"2017-02-08T04:01:00.000Z","key":1486526460000,"doc_count":11},{"key_as_string":"2017-02-08T04:02:00.000Z","key":1486526520000,"doc_count":12},{"key_as_string":"2017-02-08T04:03:00.000Z","key":1486526580000,"doc_count":8},{"key_as_string":"2017-02-08T04:04:00.000Z","key":1486526640000,"doc_count":11},{"key_as_string":"2017-02-08T04:05:00.000Z","key":1486526700000,"doc_count":15},{"key_as_string":"2017-02-08T04:06:00.000Z","key":1486526760000,"doc_count":8},{"key_as_string":"2017-02-08T04:07:00.000Z","key":1486526820000,"doc_count":13},{"key_as_string":"2017-02-08T04:08:00.000Z","key":1486526880000,"doc_count":12},{"key_as_string":"2017-02-08T04:09:00.000Z","key":1486526940000,"doc_count":11},{"key_as_string":"2017-02-08T04:10:00.000Z","key":1486527000000,"doc_count":12},{"key_as_string":"2017-02-08T04:11:00.000Z","key":1486527060000,"doc_count":10},{"key_as_string":"2017-02-08T04:12:00.000Z","key":1486527120000,"doc_count":13},{"key_as_string":"2017-02-08T04:13:00.000Z","key":1486527180000,"doc_count":5},{"key_as_string":"2017-02-08T04:14:00.000Z","key":1486527240000,"doc_count":6},{"key_as_string":"2017-02-08T04:15:00.000Z","key":1486527300000,"doc_count":16},{"key_as_string":"2017-02-08T04:16:00.000Z","key":1486527360000,"doc_count":12},{"key_as_string":"2017-02-08T04:17:00.000Z","key":1486527420000,"doc_count":17},{"key_as_string":"2017-02-08T04:18:00.000Z","key":1486527480000,"doc_count":11},{"key_as_string":"2017-02-08T04:19:00.000Z","key":1486527540000,"doc_count":16},{"key_as_string":"2017-02-08T04:20:00.000Z","key":1486527600000,"doc_count":8},{"key_as_string":"2017-02-08T04:21:00.000Z","key":1486527660000,"doc_count":10},{"key_as_string":"2017-02-08T04:22:00.000Z","key":1486527720000,"doc_count":14},{"key_as_string":"2017-02-08T04:23:00.000Z","key":1486527780000,"doc_count":10},{"key_as_string":"2017-02-08T04:24:00.000Z","key":1486527840000,"doc_count":9},{"key_as_string":"2017-02-08T04:25:00.000Z","key":1486527900000,"doc_count":13},{"key_as_string":"2017-02-08T04:26:00.000Z","key":1486527960000,"doc_count":8},{"key_as_string":"2017-02-08T04:27:00.000Z","key":1486528020000,"doc_count":13},{"key_as_string":"2017-02-08T04:28:00.000Z","key":1486528080000,"doc_count":16},{"key_as_string":"2017-02-08T04:29:00.000Z","key":1486528140000,"doc_count":8},{"key_as_string":"2017-02-08T04:30:00.000Z","key":1486528200000,"doc_count":13},{"key_as_string":"2017-02-08T04:31:00.000Z","key":1486528260000,"doc_count":12},{"key_as_string":"2017-02-08T04:32:00.000Z","key":1486528320000,"doc_count":9},{"key_as_string":"2017-02-08T04:33:00.000Z","key":1486528380000,"doc_count":14},{"key_as_string":"2017-02-08T04:34:00.000Z","key":1486528440000,"doc_count":8},{"key_as_string":"2017-02-08T04:35:00.000Z","key":1486528500000,"doc_count":9},{"key_as_string":"2017-02-08T04:36:00.000Z","key":1486528560000,"doc_count":19},{"key_as_string":"2017-02-08T04:37:00.000Z","key":1486528620000,"doc_count":8},{"key_as_string":"2017-02-08T04:38:00.000Z","key":1486528680000,"doc_count":12},{"key_as_string":"2017-02-08T04:39:00.000Z","key":1486528740000,"doc_count":13},{"key_as_string":"2017-02-08T04:40:00.000Z","key":1486528800000,"doc_count":13},{"key_as_string":"2017-02-08T04:41:00.000Z","key":1486528860000,"doc_count":9},{"key_as_string":"2017-02-08T04:42:00.000Z","key":1486528920000,"doc_count":8},{"key_as_string":"2017-02-08T04:43:00.000Z","key":1486528980000,"doc_count":8},{"key_as_string":"2017-02-08T04:44:00.000Z","key":1486529040000,"doc_count":11},{"key_as_string":"2017-02-08T04:45:00.000Z","key":1486529100000,"doc_count":11},{"key_as_string":"2017-02-08T04:46:00.000Z","key":1486529160000,"doc_count":14},{"key_as_string":"2017-02-08T04:47:00.000Z","key":1486529220000,"doc_count":9},{"key_as_string":"2017-02-08T04:48:00.000Z","key":1486529280000,"doc_count":11},{"key_as_string":"2017-02-08T04:49:00.000Z","key":1486529340000,"doc_count":16},{"key_as_string":"2017-02-08T04:50:00.000Z","key":1486529400000,"doc_count":6},{"key_as_string":"2017-02-08T04:51:00.000Z","key":1486529460000,"doc_count":14},{"key_as_string":"2017-02-08T04:52:00.000Z","key":1486529520000,"doc_count":12},{"key_as_string":"2017-02-08T04:53:00.000Z","key":1486529580000,"doc_count":13},{"key_as_string":"2017-02-08T04:54:00.000Z","key":1486529640000,"doc_count":12},{"key_as_string":"2017-02-08T04:55:00.000Z","key":1486529700000,"doc_count":12},{"key_as_string":"2017-02-08T04:56:00.000Z","key":1486529760000,"doc_count":15},{"key_as_string":"2017-02-08T04:57:00.000Z","key":1486529820000,"doc_count":12},{"key_as_string":"2017-02-08T04:58:00.000Z","key":1486529880000,"doc_count":11},{"key_as_string":"2017-02-08T04:59:00.000Z","key":1486529940000,"doc_count":7},{"key_as_string":"2017-02-08T05:00:00.000Z","key":1486530000000,"doc_count":10},{"key_as_string":"2017-02-08T05:01:00.000Z","key":1486530060000,"doc_count":15},{"key_as_string":"2017-02-08T05:02:00.000Z","key":1486530120000,"doc_count":15},{"key_as_string":"2017-02-08T05:03:00.000Z","key":1486530180000,"doc_count":11},{"key_as_string":"2017-02-08T05:04:00.000Z","key":1486530240000,"doc_count":11},{"key_as_string":"2017-02-08T05:05:00.000Z","key":1486530300000,"doc_count":14},{"key_as_string":"2017-02-08T05:06:00.000Z","key":1486530360000,"doc_count":9},{"key_as_string":"2017-02-08T05:07:00.000Z","key":1486530420000,"doc_count":15},{"key_as_string":"2017-02-08T05:08:00.000Z","key":1486530480000,"doc_count":8},{"key_as_string":"2017-02-08T05:09:00.000Z","key":1486530540000,"doc_count":13},{"key_as_string":"2017-02-08T05:10:00.000Z","key":1486530600000,"doc_count":12},{"key_as_string":"2017-02-08T05:11:00.000Z","key":1486530660000,"doc_count":7},{"key_as_string":"2017-02-08T05:12:00.000Z","key":1486530720000,"doc_count":9},{"key_as_string":"2017-02-08T05:13:00.000Z","key":1486530780000,"doc_count":12},{"key_as_string":"2017-02-08T05:14:00.000Z","key":1486530840000,"doc_count":14},{"key_as_string":"2017-02-08T05:15:00.000Z","key":1486530900000,"doc_count":15},{"key_as_string":"2017-02-08T05:16:00.000Z","key":1486530960000,"doc_count":7},{"key_as_string":"2017-02-08T05:17:00.000Z","key":1486531020000,"doc_count":10},{"key_as_string":"2017-02-08T05:18:00.000Z","key":1486531080000,"doc_count":10},{"key_as_string":"2017-02-08T05:19:00.000Z","key":1486531140000,"doc_count":12},{"key_as_string":"2017-02-08T05:20:00.000Z","key":1486531200000,"doc_count":7},{"key_as_string":"2017-02-08T05:21:00.000Z","key":1486531260000,"doc_count":9},{"key_as_string":"2017-02-08T05:22:00.000Z","key":1486531320000,"doc_count":13},{"key_as_string":"2017-02-08T05:23:00.000Z","key":1486531380000,"doc_count":9},{"key_as_string":"2017-02-08T05:24:00.000Z","key":1486531440000,"doc_count":10},{"key_as_string":"2017-02-08T05:25:00.000Z","key":1486531500000,"doc_count":12},{"key_as_string":"2017-02-08T05:26:00.000Z","key":1486531560000,"doc_count":7},{"key_as_string":"2017-02-08T05:27:00.000Z","key":1486531620000,"doc_count":16},{"key_as_string":"2017-02-08T05:28:00.000Z","key":1486531680000,"doc_count":12},{"key_as_string":"2017-02-08T05:29:00.000Z","key":1486531740000,"doc_count":13},{"key_as_string":"2017-02-08T05:30:00.000Z","key":1486531800000,"doc_count":10},{"key_as_string":"2017-02-08T05:31:00.000Z","key":1486531860000,"doc_count":12},{"key_as_string":"2017-02-08T05:32:00.000Z","key":1486531920000,"doc_count":6},{"key_as_string":"2017-02-08T05:33:00.000Z","key":1486531980000,"doc_count":16},{"key_as_string":"2017-02-08T05:34:00.000Z","key":1486532040000,"doc_count":11},{"key_as_string":"2017-02-08T05:35:00.000Z","key":1486532100000,"doc_count":13},{"key_as_string":"2017-02-08T05:36:00.000Z","key":1486532160000,"doc_count":12},{"key_as_string":"2017-02-08T05:37:00.000Z","key":1486532220000,"doc_count":14},{"key_as_string":"2017-02-08T05:38:00.000Z","key":1486532280000,"doc_count":9},{"key_as_string":"2017-02-08T05:39:00.000Z","key":1486532340000,"doc_count":9},{"key_as_string":"2017-02-08T05:40:00.000Z","key":1486532400000,"doc_count":11},{"key_as_string":"2017-02-08T05:41:00.000Z","key":1486532460000,"doc_count":17},{"key_as_string":"2017-02-08T05:42:00.000Z","key":1486532520000,"doc_count":13},{"key_as_string":"2017-02-08T05:43:00.000Z","key":1486532580000,"doc_count":10},{"key_as_string":"2017-02-08T05:44:00.000Z","key":1486532640000,"doc_count":12},{"key_as_string":"2017-02-08T05:45:00.000Z","key":1486532700000,"doc_count":17},{"key_as_string":"2017-02-08T05:46:00.000Z","key":1486532760000,"doc_count":7},{"key_as_string":"2017-02-08T05:47:00.000Z","key":1486532820000,"doc_count":11},{"key_as_string":"2017-02-08T05:48:00.000Z","key":1486532880000,"doc_count":10},{"key_as_string":"2017-02-08T05:49:00.000Z","key":1486532940000,"doc_count":7},{"key_as_string":"2017-02-08T05:50:00.000Z","key":1486533000000,"doc_count":12},{"key_as_string":"2017-02-08T05:51:00.000Z","key":1486533060000,"doc_count":12},{"key_as_string":"2017-02-08T05:52:00.000Z","key":1486533120000,"doc_count":6},{"key_as_string":"2017-02-08T05:53:00.000Z","key":1486533180000,"doc_count":11},{"key_as_string":"2017-02-08T05:54:00.000Z","key":1486533240000,"doc_count":14},{"key_as_string":"2017-02-08T05:55:00.000Z","key":1486533300000,"doc_count":10},{"key_as_string":"2017-02-08T05:56:00.000Z","key":1486533360000,"doc_count":11},{"key_as_string":"2017-02-08T05:57:00.000Z","key":1486533420000,"doc_count":14},{"key_as_string":"2017-02-08T05:58:00.000Z","key":1486533480000,"doc_count":5},{"key_as_string":"2017-02-08T05:59:00.000Z","key":1486533540000,"doc_count":16},{"key_as_string":"2017-02-08T06:00:00.000Z","key":1486533600000,"doc_count":9},{"key_as_string":"2017-02-08T06:01:00.000Z","key":1486533660000,"doc_count":12},{"key_as_string":"2017-02-08T06:02:00.000Z","key":1486533720000,"doc_count":10},{"key_as_string":"2017-02-08T06:03:00.000Z","key":1486533780000,"doc_count":13},{"key_as_string":"2017-02-08T06:04:00.000Z","key":1486533840000,"doc_count":14},{"key_as_string":"2017-02-08T06:05:00.000Z","key":1486533900000,"doc_count":11},{"key_as_string":"2017-02-08T06:06:00.000Z","key":1486533960000,"doc_count":9},{"key_as_string":"2017-02-08T06:07:00.000Z","key":1486534020000,"doc_count":10},{"key_as_string":"2017-02-08T06:08:00.000Z","key":1486534080000,"doc_count":7},{"key_as_string":"2017-02-08T06:09:00.000Z","key":1486534140000,"doc_count":14},{"key_as_string":"2017-02-08T06:10:00.000Z","key":1486534200000,"doc_count":13},{"key_as_string":"2017-02-08T06:11:00.000Z","key":1486534260000,"doc_count":15},{"key_as_string":"2017-02-08T06:12:00.000Z","key":1486534320000,"doc_count":9},{"key_as_string":"2017-02-08T06:13:00.000Z","key":1486534380000,"doc_count":8},{"key_as_string":"2017-02-08T06:14:00.000Z","key":1486534440000,"doc_count":7},{"key_as_string":"2017-02-08T06:15:00.000Z","key":1486534500000,"doc_count":15},{"key_as_string":"2017-02-08T06:16:00.000Z","key":1486534560000,"doc_count":11},{"key_as_string":"2017-02-08T06:17:00.000Z","key":1486534620000,"doc_count":15},{"key_as_string":"2017-02-08T06:18:00.000Z","key":1486534680000,"doc_count":14},{"key_as_string":"2017-02-08T06:19:00.000Z","key":1486534740000,"doc_count":12},{"key_as_string":"2017-02-08T06:20:00.000Z","key":1486534800000,"doc_count":15},{"key_as_string":"2017-02-08T06:21:00.000Z","key":1486534860000,"doc_count":13},{"key_as_string":"2017-02-08T06:22:00.000Z","key":1486534920000,"doc_count":10},{"key_as_string":"2017-02-08T06:23:00.000Z","key":1486534980000,"doc_count":14},{"key_as_string":"2017-02-08T06:24:00.000Z","key":1486535040000,"doc_count":15},{"key_as_string":"2017-02-08T06:25:00.000Z","key":1486535100000,"doc_count":14},{"key_as_string":"2017-02-08T06:26:00.000Z","key":1486535160000,"doc_count":11},{"key_as_string":"2017-02-08T06:27:00.000Z","key":1486535220000,"doc_count":13},{"key_as_string":"2017-02-08T06:28:00.000Z","key":1486535280000,"doc_count":11},{"key_as_string":"2017-02-08T06:29:00.000Z","key":1486535340000,"doc_count":16},{"key_as_string":"2017-02-08T06:30:00.000Z","key":1486535400000,"doc_count":12},{"key_as_string":"2017-02-08T06:31:00.000Z","key":1486535460000,"doc_count":11},{"key_as_string":"2017-02-08T06:32:00.000Z","key":1486535520000,"doc_count":10},{"key_as_string":"2017-02-08T06:33:00.000Z","key":1486535580000,"doc_count":8},{"key_as_string":"2017-02-08T06:34:00.000Z","key":1486535640000,"doc_count":14},{"key_as_string":"2017-02-08T06:35:00.000Z","key":1486535700000,"doc_count":9},{"key_as_string":"2017-02-08T06:36:00.000Z","key":1486535760000,"doc_count":16},{"key_as_string":"2017-02-08T06:37:00.000Z","key":1486535820000,"doc_count":13},{"key_as_string":"2017-02-08T06:38:00.000Z","key":1486535880000,"doc_count":10},{"key_as_string":"2017-02-08T06:39:00.000Z","key":1486535940000,"doc_count":13},{"key_as_string":"2017-02-08T06:40:00.000Z","key":1486536000000,"doc_count":13},{"key_as_string":"2017-02-08T06:41:00.000Z","key":1486536060000,"doc_count":10},{"key_as_string":"2017-02-08T06:42:00.000Z","key":1486536120000,"doc_count":12},{"key_as_string":"2017-02-08T06:43:00.000Z","key":1486536180000,"doc_count":10},{"key_as_string":"2017-02-08T06:44:00.000Z","key":1486536240000,"doc_count":15},{"key_as_string":"2017-02-08T06:45:00.000Z","key":1486536300000,"doc_count":10},{"key_as_string":"2017-02-08T06:46:00.000Z","key":1486536360000,"doc_count":8},{"key_as_string":"2017-02-08T06:47:00.000Z","key":1486536420000,"doc_count":15},{"key_as_string":"2017-02-08T06:48:00.000Z","key":1486536480000,"doc_count":14},{"key_as_string":"2017-02-08T06:49:00.000Z","key":1486536540000,"doc_count":8},{"key_as_string":"2017-02-08T06:50:00.000Z","key":1486536600000,"doc_count":10},{"key_as_string":"2017-02-08T06:51:00.000Z","key":1486536660000,"doc_count":12},{"key_as_string":"2017-02-08T06:52:00.000Z","key":1486536720000,"doc_count":19},{"key_as_string":"2017-02-08T06:53:00.000Z","key":1486536780000,"doc_count":10},{"key_as_string":"2017-02-08T06:54:00.000Z","key":1486536840000,"doc_count":12},{"key_as_string":"2017-02-08T06:55:00.000Z","key":1486536900000,"doc_count":13},{"key_as_string":"2017-02-08T06:56:00.000Z","key":1486536960000,"doc_count":12},{"key_as_string":"2017-02-08T06:57:00.000Z","key":1486537020000,"doc_count":10},{"key_as_string":"2017-02-08T06:58:00.000Z","key":1486537080000,"doc_count":13},{"key_as_string":"2017-02-08T06:59:00.000Z","key":1486537140000,"doc_count":9},{"key_as_string":"2017-02-08T07:00:00.000Z","key":1486537200000,"doc_count":17},{"key_as_string":"2017-02-08T07:01:00.000Z","key":1486537260000,"doc_count":14},{"key_as_string":"2017-02-08T07:02:00.000Z","key":1486537320000,"doc_count":11},{"key_as_string":"2017-02-08T07:03:00.000Z","key":1486537380000,"doc_count":13},{"key_as_string":"2017-02-08T07:04:00.000Z","key":1486537440000,"doc_count":15},{"key_as_string":"2017-02-08T07:05:00.000Z","key":1486537500000,"doc_count":16},{"key_as_string":"2017-02-08T07:06:00.000Z","key":1486537560000,"doc_count":11},{"key_as_string":"2017-02-08T07:07:00.000Z","key":1486537620000,"doc_count":7},{"key_as_string":"2017-02-08T07:08:00.000Z","key":1486537680000,"doc_count":12},{"key_as_string":"2017-02-08T07:09:00.000Z","key":1486537740000,"doc_count":14},{"key_as_string":"2017-02-08T07:10:00.000Z","key":1486537800000,"doc_count":9},{"key_as_string":"2017-02-08T07:11:00.000Z","key":1486537860000,"doc_count":11},{"key_as_string":"2017-02-08T07:12:00.000Z","key":1486537920000,"doc_count":12},{"key_as_string":"2017-02-08T07:13:00.000Z","key":1486537980000,"doc_count":7},{"key_as_string":"2017-02-08T07:14:00.000Z","key":1486538040000,"doc_count":15},{"key_as_string":"2017-02-08T07:15:00.000Z","key":1486538100000,"doc_count":13},{"key_as_string":"2017-02-08T07:16:00.000Z","key":1486538160000,"doc_count":10},{"key_as_string":"2017-02-08T07:17:00.000Z","key":1486538220000,"doc_count":8},{"key_as_string":"2017-02-08T07:18:00.000Z","key":1486538280000,"doc_count":16},{"key_as_string":"2017-02-08T07:19:00.000Z","key":1486538340000,"doc_count":12},{"key_as_string":"2017-02-08T07:20:00.000Z","key":1486538400000,"doc_count":13},{"key_as_string":"2017-02-08T07:21:00.000Z","key":1486538460000,"doc_count":15},{"key_as_string":"2017-02-08T07:22:00.000Z","key":1486538520000,"doc_count":12},{"key_as_string":"2017-02-08T07:23:00.000Z","key":1486538580000,"doc_count":17},{"key_as_string":"2017-02-08T07:24:00.000Z","key":1486538640000,"doc_count":10},{"key_as_string":"2017-02-08T07:25:00.000Z","key":1486538700000,"doc_count":11},{"key_as_string":"2017-02-08T07:26:00.000Z","key":1486538760000,"doc_count":11},{"key_as_string":"2017-02-08T07:27:00.000Z","key":1486538820000,"doc_count":13},{"key_as_string":"2017-02-08T07:28:00.000Z","key":1486538880000,"doc_count":10},{"key_as_string":"2017-02-08T07:29:00.000Z","key":1486538940000,"doc_count":13},{"key_as_string":"2017-02-08T07:30:00.000Z","key":1486539000000,"doc_count":11},{"key_as_string":"2017-02-08T07:31:00.000Z","key":1486539060000,"doc_count":17},{"key_as_string":"2017-02-08T07:32:00.000Z","key":1486539120000,"doc_count":12},{"key_as_string":"2017-02-08T07:33:00.000Z","key":1486539180000,"doc_count":11},{"key_as_string":"2017-02-08T07:34:00.000Z","key":1486539240000,"doc_count":11},{"key_as_string":"2017-02-08T07:35:00.000Z","key":1486539300000,"doc_count":17},{"key_as_string":"2017-02-08T07:36:00.000Z","key":1486539360000,"doc_count":12},{"key_as_string":"2017-02-08T07:37:00.000Z","key":1486539420000,"doc_count":15},{"key_as_string":"2017-02-08T07:38:00.000Z","key":1486539480000,"doc_count":12},{"key_as_string":"2017-02-08T07:39:00.000Z","key":1486539540000,"doc_count":19},{"key_as_string":"2017-02-08T07:40:00.000Z","key":1486539600000,"doc_count":10},{"key_as_string":"2017-02-08T07:41:00.000Z","key":1486539660000,"doc_count":10},{"key_as_string":"2017-02-08T07:42:00.000Z","key":1486539720000,"doc_count":13},{"key_as_string":"2017-02-08T07:43:00.000Z","key":1486539780000,"doc_count":17},{"key_as_string":"2017-02-08T07:44:00.000Z","key":1486539840000,"doc_count":15},{"key_as_string":"2017-02-08T07:45:00.000Z","key":1486539900000,"doc_count":8},{"key_as_string":"2017-02-08T07:46:00.000Z","key":1486539960000,"doc_count":13},{"key_as_string":"2017-02-08T07:47:00.000Z","key":1486540020000,"doc_count":9},{"key_as_string":"2017-02-08T07:48:00.000Z","key":1486540080000,"doc_count":10},{"key_as_string":"2017-02-08T07:49:00.000Z","key":1486540140000,"doc_count":10},{"key_as_string":"2017-02-08T07:50:00.000Z","key":1486540200000,"doc_count":15},{"key_as_string":"2017-02-08T07:51:00.000Z","key":1486540260000,"doc_count":13},{"key_as_string":"2017-02-08T07:52:00.000Z","key":1486540320000,"doc_count":14},{"key_as_string":"2017-02-08T07:53:00.000Z","key":1486540380000,"doc_count":13},{"key_as_string":"2017-02-08T07:54:00.000Z","key":1486540440000,"doc_count":14},{"key_as_string":"2017-02-08T07:55:00.000Z","key":1486540500000,"doc_count":11},{"key_as_string":"2017-02-08T07:56:00.000Z","key":1486540560000,"doc_count":10},{"key_as_string":"2017-02-08T07:57:00.000Z","key":1486540620000,"doc_count":9},{"key_as_string":"2017-02-08T07:58:00.000Z","key":1486540680000,"doc_count":16},{"key_as_string":"2017-02-08T07:59:00.000Z","key":1486540740000,"doc_count":17},{"key_as_string":"2017-02-08T08:00:00.000Z","key":1486540800000,"doc_count":14},{"key_as_string":"2017-02-08T08:01:00.000Z","key":1486540860000,"doc_count":12},{"key_as_string":"2017-02-08T08:02:00.000Z","key":1486540920000,"doc_count":15},{"key_as_string":"2017-02-08T08:03:00.000Z","key":1486540980000,"doc_count":15},{"key_as_string":"2017-02-08T08:04:00.000Z","key":1486541040000,"doc_count":10},{"key_as_string":"2017-02-08T08:05:00.000Z","key":1486541100000,"doc_count":12},{"key_as_string":"2017-02-08T08:06:00.000Z","key":1486541160000,"doc_count":6},{"key_as_string":"2017-02-08T08:07:00.000Z","key":1486541220000,"doc_count":17},{"key_as_string":"2017-02-08T08:08:00.000Z","key":1486541280000,"doc_count":15},{"key_as_string":"2017-02-08T08:09:00.000Z","key":1486541340000,"doc_count":14},{"key_as_string":"2017-02-08T08:10:00.000Z","key":1486541400000,"doc_count":12},{"key_as_string":"2017-02-08T08:11:00.000Z","key":1486541460000,"doc_count":18},{"key_as_string":"2017-02-08T08:12:00.000Z","key":1486541520000,"doc_count":9},{"key_as_string":"2017-02-08T08:13:00.000Z","key":1486541580000,"doc_count":12},{"key_as_string":"2017-02-08T08:14:00.000Z","key":1486541640000,"doc_count":11},{"key_as_string":"2017-02-08T08:15:00.000Z","key":1486541700000,"doc_count":19},{"key_as_string":"2017-02-08T08:16:00.000Z","key":1486541760000,"doc_count":12},{"key_as_string":"2017-02-08T08:17:00.000Z","key":1486541820000,"doc_count":10},{"key_as_string":"2017-02-08T08:18:00.000Z","key":1486541880000,"doc_count":16},{"key_as_string":"2017-02-08T08:19:00.000Z","key":1486541940000,"doc_count":12},{"key_as_string":"2017-02-08T08:20:00.000Z","key":1486542000000,"doc_count":15},{"key_as_string":"2017-02-08T08:21:00.000Z","key":1486542060000,"doc_count":14},{"key_as_string":"2017-02-08T08:22:00.000Z","key":1486542120000,"doc_count":15},{"key_as_string":"2017-02-08T08:23:00.000Z","key":1486542180000,"doc_count":12},{"key_as_string":"2017-02-08T08:24:00.000Z","key":1486542240000,"doc_count":15},{"key_as_string":"2017-02-08T08:25:00.000Z","key":1486542300000,"doc_count":7},{"key_as_string":"2017-02-08T08:26:00.000Z","key":1486542360000,"doc_count":10},{"key_as_string":"2017-02-08T08:27:00.000Z","key":1486542420000,"doc_count":12},{"key_as_string":"2017-02-08T08:28:00.000Z","key":1486542480000,"doc_count":10},{"key_as_string":"2017-02-08T08:29:00.000Z","key":1486542540000,"doc_count":12},{"key_as_string":"2017-02-08T08:30:00.000Z","key":1486542600000,"doc_count":17},{"key_as_string":"2017-02-08T08:31:00.000Z","key":1486542660000,"doc_count":13},{"key_as_string":"2017-02-08T08:32:00.000Z","key":1486542720000,"doc_count":14},{"key_as_string":"2017-02-08T08:33:00.000Z","key":1486542780000,"doc_count":10},{"key_as_string":"2017-02-08T08:34:00.000Z","key":1486542840000,"doc_count":12},{"key_as_string":"2017-02-08T08:35:00.000Z","key":1486542900000,"doc_count":14},{"key_as_string":"2017-02-08T08:36:00.000Z","key":1486542960000,"doc_count":11},{"key_as_string":"2017-02-08T08:37:00.000Z","key":1486543020000,"doc_count":16},{"key_as_string":"2017-02-08T08:38:00.000Z","key":1486543080000,"doc_count":13},{"key_as_string":"2017-02-08T08:39:00.000Z","key":1486543140000,"doc_count":11},{"key_as_string":"2017-02-08T08:40:00.000Z","key":1486543200000,"doc_count":9},{"key_as_string":"2017-02-08T08:41:00.000Z","key":1486543260000,"doc_count":15},{"key_as_string":"2017-02-08T08:42:00.000Z","key":1486543320000,"doc_count":12},{"key_as_string":"2017-02-08T08:43:00.000Z","key":1486543380000,"doc_count":9},{"key_as_string":"2017-02-08T08:44:00.000Z","key":1486543440000,"doc_count":15},{"key_as_string":"2017-02-08T08:45:00.000Z","key":1486543500000,"doc_count":17},{"key_as_string":"2017-02-08T08:46:00.000Z","key":1486543560000,"doc_count":5},{"key_as_string":"2017-02-08T08:47:00.000Z","key":1486543620000,"doc_count":19},{"key_as_string":"2017-02-08T08:48:00.000Z","key":1486543680000,"doc_count":14},{"key_as_string":"2017-02-08T08:49:00.000Z","key":1486543740000,"doc_count":13},{"key_as_string":"2017-02-08T08:50:00.000Z","key":1486543800000,"doc_count":16},{"key_as_string":"2017-02-08T08:51:00.000Z","key":1486543860000,"doc_count":14},{"key_as_string":"2017-02-08T08:52:00.000Z","key":1486543920000,"doc_count":17},{"key_as_string":"2017-02-08T08:53:00.000Z","key":1486543980000,"doc_count":12},{"key_as_string":"2017-02-08T08:54:00.000Z","key":1486544040000,"doc_count":13},{"key_as_string":"2017-02-08T08:55:00.000Z","key":1486544100000,"doc_count":17},{"key_as_string":"2017-02-08T08:56:00.000Z","key":1486544160000,"doc_count":11},{"key_as_string":"2017-02-08T08:57:00.000Z","key":1486544220000,"doc_count":10},{"key_as_string":"2017-02-08T08:58:00.000Z","key":1486544280000,"doc_count":13},{"key_as_string":"2017-02-08T08:59:00.000Z","key":1486544340000,"doc_count":11},{"key_as_string":"2017-02-08T09:00:00.000Z","key":1486544400000,"doc_count":12},{"key_as_string":"2017-02-08T09:01:00.000Z","key":1486544460000,"doc_count":15},{"key_as_string":"2017-02-08T09:02:00.000Z","key":1486544520000,"doc_count":8},{"key_as_string":"2017-02-08T09:03:00.000Z","key":1486544580000,"doc_count":14},{"key_as_string":"2017-02-08T09:04:00.000Z","key":1486544640000,"doc_count":13},{"key_as_string":"2017-02-08T09:05:00.000Z","key":1486544700000,"doc_count":12},{"key_as_string":"2017-02-08T09:06:00.000Z","key":1486544760000,"doc_count":15},{"key_as_string":"2017-02-08T09:07:00.000Z","key":1486544820000,"doc_count":13},{"key_as_string":"2017-02-08T09:08:00.000Z","key":1486544880000,"doc_count":19},{"key_as_string":"2017-02-08T09:09:00.000Z","key":1486544940000,"doc_count":14},{"key_as_string":"2017-02-08T09:10:00.000Z","key":1486545000000,"doc_count":11},{"key_as_string":"2017-02-08T09:11:00.000Z","key":1486545060000,"doc_count":15},{"key_as_string":"2017-02-08T09:12:00.000Z","key":1486545120000,"doc_count":15},{"key_as_string":"2017-02-08T09:13:00.000Z","key":1486545180000,"doc_count":10},{"key_as_string":"2017-02-08T09:14:00.000Z","key":1486545240000,"doc_count":17},{"key_as_string":"2017-02-08T09:15:00.000Z","key":1486545300000,"doc_count":18},{"key_as_string":"2017-02-08T09:16:00.000Z","key":1486545360000,"doc_count":15},{"key_as_string":"2017-02-08T09:17:00.000Z","key":1486545420000,"doc_count":13},{"key_as_string":"2017-02-08T09:18:00.000Z","key":1486545480000,"doc_count":9},{"key_as_string":"2017-02-08T09:19:00.000Z","key":1486545540000,"doc_count":15},{"key_as_string":"2017-02-08T09:20:00.000Z","key":1486545600000,"doc_count":10},{"key_as_string":"2017-02-08T09:21:00.000Z","key":1486545660000,"doc_count":9},{"key_as_string":"2017-02-08T09:22:00.000Z","key":1486545720000,"doc_count":13},{"key_as_string":"2017-02-08T09:23:00.000Z","key":1486545780000,"doc_count":18},{"key_as_string":"2017-02-08T09:24:00.000Z","key":1486545840000,"doc_count":12},{"key_as_string":"2017-02-08T09:25:00.000Z","key":1486545900000,"doc_count":15},{"key_as_string":"2017-02-08T09:26:00.000Z","key":1486545960000,"doc_count":10},{"key_as_string":"2017-02-08T09:27:00.000Z","key":1486546020000,"doc_count":16},{"key_as_string":"2017-02-08T09:28:00.000Z","key":1486546080000,"doc_count":17},{"key_as_string":"2017-02-08T09:29:00.000Z","key":1486546140000,"doc_count":14},{"key_as_string":"2017-02-08T09:30:00.000Z","key":1486546200000,"doc_count":13},{"key_as_string":"2017-02-08T09:31:00.000Z","key":1486546260000,"doc_count":14},{"key_as_string":"2017-02-08T09:32:00.000Z","key":1486546320000,"doc_count":11},{"key_as_string":"2017-02-08T09:33:00.000Z","key":1486546380000,"doc_count":13},{"key_as_string":"2017-02-08T09:34:00.000Z","key":1486546440000,"doc_count":10},{"key_as_string":"2017-02-08T09:35:00.000Z","key":1486546500000,"doc_count":15},{"key_as_string":"2017-02-08T09:36:00.000Z","key":1486546560000,"doc_count":15},{"key_as_string":"2017-02-08T09:37:00.000Z","key":1486546620000,"doc_count":11},{"key_as_string":"2017-02-08T09:38:00.000Z","key":1486546680000,"doc_count":13},{"key_as_string":"2017-02-08T09:39:00.000Z","key":1486546740000,"doc_count":12},{"key_as_string":"2017-02-08T09:40:00.000Z","key":1486546800000,"doc_count":12},{"key_as_string":"2017-02-08T09:41:00.000Z","key":1486546860000,"doc_count":11},{"key_as_string":"2017-02-08T09:42:00.000Z","key":1486546920000,"doc_count":10},{"key_as_string":"2017-02-08T09:43:00.000Z","key":1486546980000,"doc_count":15},{"key_as_string":"2017-02-08T09:44:00.000Z","key":1486547040000,"doc_count":12},{"key_as_string":"2017-02-08T09:45:00.000Z","key":1486547100000,"doc_count":11},{"key_as_string":"2017-02-08T09:46:00.000Z","key":1486547160000,"doc_count":12},{"key_as_string":"2017-02-08T09:47:00.000Z","key":1486547220000,"doc_count":12},{"key_as_string":"2017-02-08T09:48:00.000Z","key":1486547280000,"doc_count":10},{"key_as_string":"2017-02-08T09:49:00.000Z","key":1486547340000,"doc_count":18},{"key_as_string":"2017-02-08T09:50:00.000Z","key":1486547400000,"doc_count":16},{"key_as_string":"2017-02-08T09:51:00.000Z","key":1486547460000,"doc_count":20},{"key_as_string":"2017-02-08T09:52:00.000Z","key":1486547520000,"doc_count":12},{"key_as_string":"2017-02-08T09:53:00.000Z","key":1486547580000,"doc_count":13},{"key_as_string":"2017-02-08T09:54:00.000Z","key":1486547640000,"doc_count":16},{"key_as_string":"2017-02-08T09:55:00.000Z","key":1486547700000,"doc_count":14},{"key_as_string":"2017-02-08T09:56:00.000Z","key":1486547760000,"doc_count":12},{"key_as_string":"2017-02-08T09:57:00.000Z","key":1486547820000,"doc_count":18},{"key_as_string":"2017-02-08T09:58:00.000Z","key":1486547880000,"doc_count":11},{"key_as_string":"2017-02-08T09:59:00.000Z","key":1486547940000,"doc_count":17},{"key_as_string":"2017-02-08T10:00:00.000Z","key":1486548000000,"doc_count":12},{"key_as_string":"2017-02-08T10:01:00.000Z","key":1486548060000,"doc_count":13},{"key_as_string":"2017-02-08T10:02:00.000Z","key":1486548120000,"doc_count":21},{"key_as_string":"2017-02-08T10:03:00.000Z","key":1486548180000,"doc_count":17},{"key_as_string":"2017-02-08T10:04:00.000Z","key":1486548240000,"doc_count":16},{"key_as_string":"2017-02-08T10:05:00.000Z","key":1486548300000,"doc_count":11},{"key_as_string":"2017-02-08T10:06:00.000Z","key":1486548360000,"doc_count":16},{"key_as_string":"2017-02-08T10:07:00.000Z","key":1486548420000,"doc_count":11},{"key_as_string":"2017-02-08T10:08:00.000Z","key":1486548480000,"doc_count":15},{"key_as_string":"2017-02-08T10:09:00.000Z","key":1486548540000,"doc_count":12},{"key_as_string":"2017-02-08T10:10:00.000Z","key":1486548600000,"doc_count":14},{"key_as_string":"2017-02-08T10:11:00.000Z","key":1486548660000,"doc_count":11},{"key_as_string":"2017-02-08T10:12:00.000Z","key":1486548720000,"doc_count":19},{"key_as_string":"2017-02-08T10:13:00.000Z","key":1486548780000,"doc_count":13},{"key_as_string":"2017-02-08T10:14:00.000Z","key":1486548840000,"doc_count":16},{"key_as_string":"2017-02-08T10:15:00.000Z","key":1486548900000,"doc_count":10},{"key_as_string":"2017-02-08T10:16:00.000Z","key":1486548960000,"doc_count":13},{"key_as_string":"2017-02-08T10:17:00.000Z","key":1486549020000,"doc_count":8},{"key_as_string":"2017-02-08T10:18:00.000Z","key":1486549080000,"doc_count":15},{"key_as_string":"2017-02-08T10:19:00.000Z","key":1486549140000,"doc_count":14},{"key_as_string":"2017-02-08T10:20:00.000Z","key":1486549200000,"doc_count":14},{"key_as_string":"2017-02-08T10:21:00.000Z","key":1486549260000,"doc_count":10},{"key_as_string":"2017-02-08T10:22:00.000Z","key":1486549320000,"doc_count":15},{"key_as_string":"2017-02-08T10:23:00.000Z","key":1486549380000,"doc_count":10},{"key_as_string":"2017-02-08T10:24:00.000Z","key":1486549440000,"doc_count":13},{"key_as_string":"2017-02-08T10:25:00.000Z","key":1486549500000,"doc_count":14},{"key_as_string":"2017-02-08T10:26:00.000Z","key":1486549560000,"doc_count":14},{"key_as_string":"2017-02-08T10:27:00.000Z","key":1486549620000,"doc_count":17},{"key_as_string":"2017-02-08T10:28:00.000Z","key":1486549680000,"doc_count":10},{"key_as_string":"2017-02-08T10:29:00.000Z","key":1486549740000,"doc_count":13},{"key_as_string":"2017-02-08T10:30:00.000Z","key":1486549800000,"doc_count":16},{"key_as_string":"2017-02-08T10:31:00.000Z","key":1486549860000,"doc_count":14},{"key_as_string":"2017-02-08T10:32:00.000Z","key":1486549920000,"doc_count":16},{"key_as_string":"2017-02-08T10:33:00.000Z","key":1486549980000,"doc_count":15},{"key_as_string":"2017-02-08T10:34:00.000Z","key":1486550040000,"doc_count":15},{"key_as_string":"2017-02-08T10:35:00.000Z","key":1486550100000,"doc_count":15},{"key_as_string":"2017-02-08T10:36:00.000Z","key":1486550160000,"doc_count":10},{"key_as_string":"2017-02-08T10:37:00.000Z","key":1486550220000,"doc_count":15},{"key_as_string":"2017-02-08T10:38:00.000Z","key":1486550280000,"doc_count":14},{"key_as_string":"2017-02-08T10:39:00.000Z","key":1486550340000,"doc_count":17},{"key_as_string":"2017-02-08T10:40:00.000Z","key":1486550400000,"doc_count":15},{"key_as_string":"2017-02-08T10:41:00.000Z","key":1486550460000,"doc_count":19},{"key_as_string":"2017-02-08T10:42:00.000Z","key":1486550520000,"doc_count":9},{"key_as_string":"2017-02-08T10:43:00.000Z","key":1486550580000,"doc_count":14},{"key_as_string":"2017-02-08T10:44:00.000Z","key":1486550640000,"doc_count":10},{"key_as_string":"2017-02-08T10:45:00.000Z","key":1486550700000,"doc_count":20},{"key_as_string":"2017-02-08T10:46:00.000Z","key":1486550760000,"doc_count":10},{"key_as_string":"2017-02-08T10:47:00.000Z","key":1486550820000,"doc_count":16},{"key_as_string":"2017-02-08T10:48:00.000Z","key":1486550880000,"doc_count":13},{"key_as_string":"2017-02-08T10:49:00.000Z","key":1486550940000,"doc_count":14},{"key_as_string":"2017-02-08T10:50:00.000Z","key":1486551000000,"doc_count":10},{"key_as_string":"2017-02-08T10:51:00.000Z","key":1486551060000,"doc_count":17},{"key_as_string":"2017-02-08T10:52:00.000Z","key":1486551120000,"doc_count":16},{"key_as_string":"2017-02-08T10:53:00.000Z","key":1486551180000,"doc_count":9},{"key_as_string":"2017-02-08T10:54:00.000Z","key":1486551240000,"doc_count":15},{"key_as_string":"2017-02-08T10:55:00.000Z","key":1486551300000,"doc_count":16},{"key_as_string":"2017-02-08T10:56:00.000Z","key":1486551360000,"doc_count":5},{"key_as_string":"2017-02-08T10:57:00.000Z","key":1486551420000,"doc_count":15},{"key_as_string":"2017-02-08T10:58:00.000Z","key":1486551480000,"doc_count":9},{"key_as_string":"2017-02-08T10:59:00.000Z","key":1486551540000,"doc_count":14},{"key_as_string":"2017-02-08T11:00:00.000Z","key":1486551600000,"doc_count":16},{"key_as_string":"2017-02-08T11:01:00.000Z","key":1486551660000,"doc_count":9},{"key_as_string":"2017-02-08T11:02:00.000Z","key":1486551720000,"doc_count":17},{"key_as_string":"2017-02-08T11:03:00.000Z","key":1486551780000,"doc_count":9},{"key_as_string":"2017-02-08T11:04:00.000Z","key":1486551840000,"doc_count":18},{"key_as_string":"2017-02-08T11:05:00.000Z","key":1486551900000,"doc_count":12},{"key_as_string":"2017-02-08T11:06:00.000Z","key":1486551960000,"doc_count":16},{"key_as_string":"2017-02-08T11:07:00.000Z","key":1486552020000,"doc_count":13},{"key_as_string":"2017-02-08T11:08:00.000Z","key":1486552080000,"doc_count":14},{"key_as_string":"2017-02-08T11:09:00.000Z","key":1486552140000,"doc_count":13},{"key_as_string":"2017-02-08T11:10:00.000Z","key":1486552200000,"doc_count":17},{"key_as_string":"2017-02-08T11:11:00.000Z","key":1486552260000,"doc_count":12},{"key_as_string":"2017-02-08T11:12:00.000Z","key":1486552320000,"doc_count":11},{"key_as_string":"2017-02-08T11:13:00.000Z","key":1486552380000,"doc_count":15},{"key_as_string":"2017-02-08T11:14:00.000Z","key":1486552440000,"doc_count":10},{"key_as_string":"2017-02-08T11:15:00.000Z","key":1486552500000,"doc_count":9},{"key_as_string":"2017-02-08T11:16:00.000Z","key":1486552560000,"doc_count":14},{"key_as_string":"2017-02-08T11:17:00.000Z","key":1486552620000,"doc_count":16},{"key_as_string":"2017-02-08T11:18:00.000Z","key":1486552680000,"doc_count":19},{"key_as_string":"2017-02-08T11:19:00.000Z","key":1486552740000,"doc_count":14},{"key_as_string":"2017-02-08T11:20:00.000Z","key":1486552800000,"doc_count":10},{"key_as_string":"2017-02-08T11:21:00.000Z","key":1486552860000,"doc_count":14},{"key_as_string":"2017-02-08T11:22:00.000Z","key":1486552920000,"doc_count":13},{"key_as_string":"2017-02-08T11:23:00.000Z","key":1486552980000,"doc_count":16},{"key_as_string":"2017-02-08T11:24:00.000Z","key":1486553040000,"doc_count":15},{"key_as_string":"2017-02-08T11:25:00.000Z","key":1486553100000,"doc_count":16},{"key_as_string":"2017-02-08T11:26:00.000Z","key":1486553160000,"doc_count":18},{"key_as_string":"2017-02-08T11:27:00.000Z","key":1486553220000,"doc_count":13},{"key_as_string":"2017-02-08T11:28:00.000Z","key":1486553280000,"doc_count":13},{"key_as_string":"2017-02-08T11:29:00.000Z","key":1486553340000,"doc_count":16},{"key_as_string":"2017-02-08T11:30:00.000Z","key":1486553400000,"doc_count":13},{"key_as_string":"2017-02-08T11:31:00.000Z","key":1486553460000,"doc_count":16},{"key_as_string":"2017-02-08T11:32:00.000Z","key":1486553520000,"doc_count":13},{"key_as_string":"2017-02-08T11:33:00.000Z","key":1486553580000,"doc_count":18},{"key_as_string":"2017-02-08T11:34:00.000Z","key":1486553640000,"doc_count":12},{"key_as_string":"2017-02-08T11:35:00.000Z","key":1486553700000,"doc_count":11},{"key_as_string":"2017-02-08T11:36:00.000Z","key":1486553760000,"doc_count":16},{"key_as_string":"2017-02-08T11:37:00.000Z","key":1486553820000,"doc_count":18},{"key_as_string":"2017-02-08T11:38:00.000Z","key":1486553880000,"doc_count":10},{"key_as_string":"2017-02-08T11:39:00.000Z","key":1486553940000,"doc_count":17},{"key_as_string":"2017-02-08T11:40:00.000Z","key":1486554000000,"doc_count":11},{"key_as_string":"2017-02-08T11:41:00.000Z","key":1486554060000,"doc_count":20},{"key_as_string":"2017-02-08T11:42:00.000Z","key":1486554120000,"doc_count":10},{"key_as_string":"2017-02-08T11:43:00.000Z","key":1486554180000,"doc_count":17},{"key_as_string":"2017-02-08T11:44:00.000Z","key":1486554240000,"doc_count":21},{"key_as_string":"2017-02-08T11:45:00.000Z","key":1486554300000,"doc_count":13},{"key_as_string":"2017-02-08T11:46:00.000Z","key":1486554360000,"doc_count":12},{"key_as_string":"2017-02-08T11:47:00.000Z","key":1486554420000,"doc_count":11},{"key_as_string":"2017-02-08T11:48:00.000Z","key":1486554480000,"doc_count":14},{"key_as_string":"2017-02-08T11:49:00.000Z","key":1486554540000,"doc_count":11},{"key_as_string":"2017-02-08T11:50:00.000Z","key":1486554600000,"doc_count":9},{"key_as_string":"2017-02-08T11:51:00.000Z","key":1486554660000,"doc_count":14},{"key_as_string":"2017-02-08T11:52:00.000Z","key":1486554720000,"doc_count":13},{"key_as_string":"2017-02-08T11:53:00.000Z","key":1486554780000,"doc_count":12},{"key_as_string":"2017-02-08T11:54:00.000Z","key":1486554840000,"doc_count":13},{"key_as_string":"2017-02-08T11:55:00.000Z","key":1486554900000,"doc_count":18},{"key_as_string":"2017-02-08T11:56:00.000Z","key":1486554960000,"doc_count":18},{"key_as_string":"2017-02-08T11:57:00.000Z","key":1486555020000,"doc_count":13},{"key_as_string":"2017-02-08T11:58:00.000Z","key":1486555080000,"doc_count":13},{"key_as_string":"2017-02-08T11:59:00.000Z","key":1486555140000,"doc_count":14},{"key_as_string":"2017-02-08T12:00:00.000Z","key":1486555200000,"doc_count":18},{"key_as_string":"2017-02-08T12:01:00.000Z","key":1486555260000,"doc_count":14},{"key_as_string":"2017-02-08T12:02:00.000Z","key":1486555320000,"doc_count":14},{"key_as_string":"2017-02-08T12:03:00.000Z","key":1486555380000,"doc_count":13},{"key_as_string":"2017-02-08T12:04:00.000Z","key":1486555440000,"doc_count":18},{"key_as_string":"2017-02-08T12:05:00.000Z","key":1486555500000,"doc_count":13},{"key_as_string":"2017-02-08T12:06:00.000Z","key":1486555560000,"doc_count":16},{"key_as_string":"2017-02-08T12:07:00.000Z","key":1486555620000,"doc_count":13},{"key_as_string":"2017-02-08T12:08:00.000Z","key":1486555680000,"doc_count":14},{"key_as_string":"2017-02-08T12:09:00.000Z","key":1486555740000,"doc_count":16},{"key_as_string":"2017-02-08T12:10:00.000Z","key":1486555800000,"doc_count":13},{"key_as_string":"2017-02-08T12:11:00.000Z","key":1486555860000,"doc_count":13},{"key_as_string":"2017-02-08T12:12:00.000Z","key":1486555920000,"doc_count":15},{"key_as_string":"2017-02-08T12:13:00.000Z","key":1486555980000,"doc_count":11},{"key_as_string":"2017-02-08T12:14:00.000Z","key":1486556040000,"doc_count":15},{"key_as_string":"2017-02-08T12:15:00.000Z","key":1486556100000,"doc_count":12},{"key_as_string":"2017-02-08T12:16:00.000Z","key":1486556160000,"doc_count":14},{"key_as_string":"2017-02-08T12:17:00.000Z","key":1486556220000,"doc_count":13},{"key_as_string":"2017-02-08T12:18:00.000Z","key":1486556280000,"doc_count":19},{"key_as_string":"2017-02-08T12:19:00.000Z","key":1486556340000,"doc_count":13},{"key_as_string":"2017-02-08T12:20:00.000Z","key":1486556400000,"doc_count":14},{"key_as_string":"2017-02-08T12:21:00.000Z","key":1486556460000,"doc_count":12},{"key_as_string":"2017-02-08T12:22:00.000Z","key":1486556520000,"doc_count":15},{"key_as_string":"2017-02-08T12:23:00.000Z","key":1486556580000,"doc_count":17},{"key_as_string":"2017-02-08T12:24:00.000Z","key":1486556640000,"doc_count":14},{"key_as_string":"2017-02-08T12:25:00.000Z","key":1486556700000,"doc_count":10},{"key_as_string":"2017-02-08T12:26:00.000Z","key":1486556760000,"doc_count":13},{"key_as_string":"2017-02-08T12:27:00.000Z","key":1486556820000,"doc_count":14},{"key_as_string":"2017-02-08T12:28:00.000Z","key":1486556880000,"doc_count":10},{"key_as_string":"2017-02-08T12:29:00.000Z","key":1486556940000,"doc_count":13},{"key_as_string":"2017-02-08T12:30:00.000Z","key":1486557000000,"doc_count":16},{"key_as_string":"2017-02-08T12:31:00.000Z","key":1486557060000,"doc_count":15},{"key_as_string":"2017-02-08T12:32:00.000Z","key":1486557120000,"doc_count":9},{"key_as_string":"2017-02-08T12:33:00.000Z","key":1486557180000,"doc_count":16},{"key_as_string":"2017-02-08T12:34:00.000Z","key":1486557240000,"doc_count":16},{"key_as_string":"2017-02-08T12:35:00.000Z","key":1486557300000,"doc_count":9},{"key_as_string":"2017-02-08T12:36:00.000Z","key":1486557360000,"doc_count":11},{"key_as_string":"2017-02-08T12:37:00.000Z","key":1486557420000,"doc_count":12},{"key_as_string":"2017-02-08T12:38:00.000Z","key":1486557480000,"doc_count":16},{"key_as_string":"2017-02-08T12:39:00.000Z","key":1486557540000,"doc_count":13},{"key_as_string":"2017-02-08T12:40:00.000Z","key":1486557600000,"doc_count":12},{"key_as_string":"2017-02-08T12:41:00.000Z","key":1486557660000,"doc_count":15},{"key_as_string":"2017-02-08T12:42:00.000Z","key":1486557720000,"doc_count":12},{"key_as_string":"2017-02-08T12:43:00.000Z","key":1486557780000,"doc_count":13},{"key_as_string":"2017-02-08T12:44:00.000Z","key":1486557840000,"doc_count":13},{"key_as_string":"2017-02-08T12:45:00.000Z","key":1486557900000,"doc_count":15},{"key_as_string":"2017-02-08T12:46:00.000Z","key":1486557960000,"doc_count":15},{"key_as_string":"2017-02-08T12:47:00.000Z","key":1486558020000,"doc_count":12},{"key_as_string":"2017-02-08T12:48:00.000Z","key":1486558080000,"doc_count":13},{"key_as_string":"2017-02-08T12:49:00.000Z","key":1486558140000,"doc_count":15},{"key_as_string":"2017-02-08T12:50:00.000Z","key":1486558200000,"doc_count":16},{"key_as_string":"2017-02-08T12:51:00.000Z","key":1486558260000,"doc_count":14},{"key_as_string":"2017-02-08T12:52:00.000Z","key":1486558320000,"doc_count":11},{"key_as_string":"2017-02-08T12:53:00.000Z","key":1486558380000,"doc_count":10},{"key_as_string":"2017-02-08T12:54:00.000Z","key":1486558440000,"doc_count":14},{"key_as_string":"2017-02-08T12:55:00.000Z","key":1486558500000,"doc_count":11},{"key_as_string":"2017-02-08T12:56:00.000Z","key":1486558560000,"doc_count":9},{"key_as_string":"2017-02-08T12:57:00.000Z","key":1486558620000,"doc_count":13},{"key_as_string":"2017-02-08T12:58:00.000Z","key":1486558680000,"doc_count":13},{"key_as_string":"2017-02-08T12:59:00.000Z","key":1486558740000,"doc_count":13},{"key_as_string":"2017-02-08T13:00:00.000Z","key":1486558800000,"doc_count":18},{"key_as_string":"2017-02-08T13:01:00.000Z","key":1486558860000,"doc_count":13},{"key_as_string":"2017-02-08T13:02:00.000Z","key":1486558920000,"doc_count":20},{"key_as_string":"2017-02-08T13:03:00.000Z","key":1486558980000,"doc_count":10},{"key_as_string":"2017-02-08T13:04:00.000Z","key":1486559040000,"doc_count":16},{"key_as_string":"2017-02-08T13:05:00.000Z","key":1486559100000,"doc_count":11},{"key_as_string":"2017-02-08T13:06:00.000Z","key":1486559160000,"doc_count":18},{"key_as_string":"2017-02-08T13:07:00.000Z","key":1486559220000,"doc_count":10},{"key_as_string":"2017-02-08T13:08:00.000Z","key":1486559280000,"doc_count":15},{"key_as_string":"2017-02-08T13:09:00.000Z","key":1486559340000,"doc_count":17},{"key_as_string":"2017-02-08T13:10:00.000Z","key":1486559400000,"doc_count":6},{"key_as_string":"2017-02-08T13:11:00.000Z","key":1486559460000,"doc_count":19},{"key_as_string":"2017-02-08T13:12:00.000Z","key":1486559520000,"doc_count":12},{"key_as_string":"2017-02-08T13:13:00.000Z","key":1486559580000,"doc_count":11},{"key_as_string":"2017-02-08T13:14:00.000Z","key":1486559640000,"doc_count":15},{"key_as_string":"2017-02-08T13:15:00.000Z","key":1486559700000,"doc_count":10},{"key_as_string":"2017-02-08T13:16:00.000Z","key":1486559760000,"doc_count":16},{"key_as_string":"2017-02-08T13:17:00.000Z","key":1486559820000,"doc_count":16},{"key_as_string":"2017-02-08T13:18:00.000Z","key":1486559880000,"doc_count":14},{"key_as_string":"2017-02-08T13:19:00.000Z","key":1486559940000,"doc_count":12},{"key_as_string":"2017-02-08T13:20:00.000Z","key":1486560000000,"doc_count":10},{"key_as_string":"2017-02-08T13:21:00.000Z","key":1486560060000,"doc_count":18},{"key_as_string":"2017-02-08T13:22:00.000Z","key":1486560120000,"doc_count":14},{"key_as_string":"2017-02-08T13:23:00.000Z","key":1486560180000,"doc_count":11},{"key_as_string":"2017-02-08T13:24:00.000Z","key":1486560240000,"doc_count":15},{"key_as_string":"2017-02-08T13:25:00.000Z","key":1486560300000,"doc_count":17},{"key_as_string":"2017-02-08T13:26:00.000Z","key":1486560360000,"doc_count":10},{"key_as_string":"2017-02-08T13:27:00.000Z","key":1486560420000,"doc_count":14},{"key_as_string":"2017-02-08T13:28:00.000Z","key":1486560480000,"doc_count":14},{"key_as_string":"2017-02-08T13:29:00.000Z","key":1486560540000,"doc_count":13},{"key_as_string":"2017-02-08T13:30:00.000Z","key":1486560600000,"doc_count":15},{"key_as_string":"2017-02-08T13:31:00.000Z","key":1486560660000,"doc_count":16},{"key_as_string":"2017-02-08T13:32:00.000Z","key":1486560720000,"doc_count":13},{"key_as_string":"2017-02-08T13:33:00.000Z","key":1486560780000,"doc_count":13},{"key_as_string":"2017-02-08T13:34:00.000Z","key":1486560840000,"doc_count":15},{"key_as_string":"2017-02-08T13:35:00.000Z","key":1486560900000,"doc_count":8},{"key_as_string":"2017-02-08T13:36:00.000Z","key":1486560960000,"doc_count":18},{"key_as_string":"2017-02-08T13:37:00.000Z","key":1486561020000,"doc_count":13},{"key_as_string":"2017-02-08T13:38:00.000Z","key":1486561080000,"doc_count":14},{"key_as_string":"2017-02-08T13:39:00.000Z","key":1486561140000,"doc_count":14},{"key_as_string":"2017-02-08T13:40:00.000Z","key":1486561200000,"doc_count":17},{"key_as_string":"2017-02-08T13:41:00.000Z","key":1486561260000,"doc_count":12},{"key_as_string":"2017-02-08T13:42:00.000Z","key":1486561320000,"doc_count":10},{"key_as_string":"2017-02-08T13:43:00.000Z","key":1486561380000,"doc_count":17},{"key_as_string":"2017-02-08T13:44:00.000Z","key":1486561440000,"doc_count":12},{"key_as_string":"2017-02-08T13:45:00.000Z","key":1486561500000,"doc_count":9},{"key_as_string":"2017-02-08T13:46:00.000Z","key":1486561560000,"doc_count":21},{"key_as_string":"2017-02-08T13:47:00.000Z","key":1486561620000,"doc_count":16},{"key_as_string":"2017-02-08T13:48:00.000Z","key":1486561680000,"doc_count":17},{"key_as_string":"2017-02-08T13:49:00.000Z","key":1486561740000,"doc_count":11},{"key_as_string":"2017-02-08T13:50:00.000Z","key":1486561800000,"doc_count":17},{"key_as_string":"2017-02-08T13:51:00.000Z","key":1486561860000,"doc_count":9},{"key_as_string":"2017-02-08T13:52:00.000Z","key":1486561920000,"doc_count":14},{"key_as_string":"2017-02-08T13:53:00.000Z","key":1486561980000,"doc_count":10},{"key_as_string":"2017-02-08T13:54:00.000Z","key":1486562040000,"doc_count":9},{"key_as_string":"2017-02-08T13:55:00.000Z","key":1486562100000,"doc_count":21},{"key_as_string":"2017-02-08T13:56:00.000Z","key":1486562160000,"doc_count":14},{"key_as_string":"2017-02-08T13:57:00.000Z","key":1486562220000,"doc_count":11},{"key_as_string":"2017-02-08T13:58:00.000Z","key":1486562280000,"doc_count":15},{"key_as_string":"2017-02-08T13:59:00.000Z","key":1486562340000,"doc_count":10},{"key_as_string":"2017-02-08T14:00:00.000Z","key":1486562400000,"doc_count":12},{"key_as_string":"2017-02-08T14:01:00.000Z","key":1486562460000,"doc_count":15},{"key_as_string":"2017-02-08T14:02:00.000Z","key":1486562520000,"doc_count":11},{"key_as_string":"2017-02-08T14:03:00.000Z","key":1486562580000,"doc_count":14},{"key_as_string":"2017-02-08T14:04:00.000Z","key":1486562640000,"doc_count":18},{"key_as_string":"2017-02-08T14:05:00.000Z","key":1486562700000,"doc_count":11},{"key_as_string":"2017-02-08T14:06:00.000Z","key":1486562760000,"doc_count":11},{"key_as_string":"2017-02-08T14:07:00.000Z","key":1486562820000,"doc_count":16},{"key_as_string":"2017-02-08T14:08:00.000Z","key":1486562880000,"doc_count":10},{"key_as_string":"2017-02-08T14:09:00.000Z","key":1486562940000,"doc_count":14},{"key_as_string":"2017-02-08T14:10:00.000Z","key":1486563000000,"doc_count":14},{"key_as_string":"2017-02-08T14:11:00.000Z","key":1486563060000,"doc_count":9},{"key_as_string":"2017-02-08T14:12:00.000Z","key":1486563120000,"doc_count":15},{"key_as_string":"2017-02-08T14:13:00.000Z","key":1486563180000,"doc_count":17},{"key_as_string":"2017-02-08T14:14:00.000Z","key":1486563240000,"doc_count":5},{"key_as_string":"2017-02-08T14:15:00.000Z","key":1486563300000,"doc_count":15},{"key_as_string":"2017-02-08T14:16:00.000Z","key":1486563360000,"doc_count":15},{"key_as_string":"2017-02-08T14:17:00.000Z","key":1486563420000,"doc_count":13},{"key_as_string":"2017-02-08T14:18:00.000Z","key":1486563480000,"doc_count":15},{"key_as_string":"2017-02-08T14:19:00.000Z","key":1486563540000,"doc_count":14},{"key_as_string":"2017-02-08T14:20:00.000Z","key":1486563600000,"doc_count":8},{"key_as_string":"2017-02-08T14:21:00.000Z","key":1486563660000,"doc_count":14},{"key_as_string":"2017-02-08T14:22:00.000Z","key":1486563720000,"doc_count":11},{"key_as_string":"2017-02-08T14:23:00.000Z","key":1486563780000,"doc_count":14},{"key_as_string":"2017-02-08T14:24:00.000Z","key":1486563840000,"doc_count":15},{"key_as_string":"2017-02-08T14:25:00.000Z","key":1486563900000,"doc_count":9},{"key_as_string":"2017-02-08T14:26:00.000Z","key":1486563960000,"doc_count":16},{"key_as_string":"2017-02-08T14:27:00.000Z","key":1486564020000,"doc_count":15},{"key_as_string":"2017-02-08T14:28:00.000Z","key":1486564080000,"doc_count":13},{"key_as_string":"2017-02-08T14:29:00.000Z","key":1486564140000,"doc_count":14},{"key_as_string":"2017-02-08T14:30:00.000Z","key":1486564200000,"doc_count":10},{"key_as_string":"2017-02-08T14:31:00.000Z","key":1486564260000,"doc_count":15},{"key_as_string":"2017-02-08T14:32:00.000Z","key":1486564320000,"doc_count":15},{"key_as_string":"2017-02-08T14:33:00.000Z","key":1486564380000,"doc_count":11},{"key_as_string":"2017-02-08T14:34:00.000Z","key":1486564440000,"doc_count":13},{"key_as_string":"2017-02-08T14:35:00.000Z","key":1486564500000,"doc_count":14},{"key_as_string":"2017-02-08T14:36:00.000Z","key":1486564560000,"doc_count":11},{"key_as_string":"2017-02-08T14:37:00.000Z","key":1486564620000,"doc_count":10},{"key_as_string":"2017-02-08T14:38:00.000Z","key":1486564680000,"doc_count":18},{"key_as_string":"2017-02-08T14:39:00.000Z","key":1486564740000,"doc_count":12},{"key_as_string":"2017-02-08T14:40:00.000Z","key":1486564800000,"doc_count":14},{"key_as_string":"2017-02-08T14:41:00.000Z","key":1486564860000,"doc_count":15},{"key_as_string":"2017-02-08T14:42:00.000Z","key":1486564920000,"doc_count":17},{"key_as_string":"2017-02-08T14:43:00.000Z","key":1486564980000,"doc_count":9},{"key_as_string":"2017-02-08T14:44:00.000Z","key":1486565040000,"doc_count":10},{"key_as_string":"2017-02-08T14:45:00.000Z","key":1486565100000,"doc_count":9},{"key_as_string":"2017-02-08T14:46:00.000Z","key":1486565160000,"doc_count":15},{"key_as_string":"2017-02-08T14:47:00.000Z","key":1486565220000,"doc_count":12},{"key_as_string":"2017-02-08T14:48:00.000Z","key":1486565280000,"doc_count":10},{"key_as_string":"2017-02-08T14:49:00.000Z","key":1486565340000,"doc_count":18},{"key_as_string":"2017-02-08T14:50:00.000Z","key":1486565400000,"doc_count":9},{"key_as_string":"2017-02-08T14:51:00.000Z","key":1486565460000,"doc_count":15},{"key_as_string":"2017-02-08T14:52:00.000Z","key":1486565520000,"doc_count":19},{"key_as_string":"2017-02-08T14:53:00.000Z","key":1486565580000,"doc_count":11},{"key_as_string":"2017-02-08T14:54:00.000Z","key":1486565640000,"doc_count":12},{"key_as_string":"2017-02-08T14:55:00.000Z","key":1486565700000,"doc_count":10},{"key_as_string":"2017-02-08T14:56:00.000Z","key":1486565760000,"doc_count":9},{"key_as_string":"2017-02-08T14:57:00.000Z","key":1486565820000,"doc_count":21},{"key_as_string":"2017-02-08T14:58:00.000Z","key":1486565880000,"doc_count":13},{"key_as_string":"2017-02-08T14:59:00.000Z","key":1486565940000,"doc_count":16},{"key_as_string":"2017-02-08T15:00:00.000Z","key":1486566000000,"doc_count":9},{"key_as_string":"2017-02-08T15:01:00.000Z","key":1486566060000,"doc_count":16},{"key_as_string":"2017-02-08T15:02:00.000Z","key":1486566120000,"doc_count":11},{"key_as_string":"2017-02-08T15:03:00.000Z","key":1486566180000,"doc_count":14},{"key_as_string":"2017-02-08T15:04:00.000Z","key":1486566240000,"doc_count":16},{"key_as_string":"2017-02-08T15:05:00.000Z","key":1486566300000,"doc_count":10},{"key_as_string":"2017-02-08T15:06:00.000Z","key":1486566360000,"doc_count":14},{"key_as_string":"2017-02-08T15:07:00.000Z","key":1486566420000,"doc_count":9},{"key_as_string":"2017-02-08T15:08:00.000Z","key":1486566480000,"doc_count":13},{"key_as_string":"2017-02-08T15:09:00.000Z","key":1486566540000,"doc_count":13},{"key_as_string":"2017-02-08T15:10:00.000Z","key":1486566600000,"doc_count":14},{"key_as_string":"2017-02-08T15:11:00.000Z","key":1486566660000,"doc_count":15},{"key_as_string":"2017-02-08T15:12:00.000Z","key":1486566720000,"doc_count":15},{"key_as_string":"2017-02-08T15:13:00.000Z","key":1486566780000,"doc_count":11},{"key_as_string":"2017-02-08T15:14:00.000Z","key":1486566840000,"doc_count":7},{"key_as_string":"2017-02-08T15:15:00.000Z","key":1486566900000,"doc_count":20},{"key_as_string":"2017-02-08T15:16:00.000Z","key":1486566960000,"doc_count":11},{"key_as_string":"2017-02-08T15:17:00.000Z","key":1486567020000,"doc_count":15},{"key_as_string":"2017-02-08T15:18:00.000Z","key":1486567080000,"doc_count":14},{"key_as_string":"2017-02-08T15:19:00.000Z","key":1486567140000,"doc_count":11},{"key_as_string":"2017-02-08T15:20:00.000Z","key":1486567200000,"doc_count":18},{"key_as_string":"2017-02-08T15:21:00.000Z","key":1486567260000,"doc_count":11},{"key_as_string":"2017-02-08T15:22:00.000Z","key":1486567320000,"doc_count":12},{"key_as_string":"2017-02-08T15:23:00.000Z","key":1486567380000,"doc_count":12},{"key_as_string":"2017-02-08T15:24:00.000Z","key":1486567440000,"doc_count":8},{"key_as_string":"2017-02-08T15:25:00.000Z","key":1486567500000,"doc_count":11},{"key_as_string":"2017-02-08T15:26:00.000Z","key":1486567560000,"doc_count":12},{"key_as_string":"2017-02-08T15:27:00.000Z","key":1486567620000,"doc_count":12},{"key_as_string":"2017-02-08T15:28:00.000Z","key":1486567680000,"doc_count":14},{"key_as_string":"2017-02-08T15:29:00.000Z","key":1486567740000,"doc_count":13},{"key_as_string":"2017-02-08T15:30:00.000Z","key":1486567800000,"doc_count":13},{"key_as_string":"2017-02-08T15:31:00.000Z","key":1486567860000,"doc_count":14},{"key_as_string":"2017-02-08T15:32:00.000Z","key":1486567920000,"doc_count":15},{"key_as_string":"2017-02-08T15:33:00.000Z","key":1486567980000,"doc_count":12},{"key_as_string":"2017-02-08T15:34:00.000Z","key":1486568040000,"doc_count":15},{"key_as_string":"2017-02-08T15:35:00.000Z","key":1486568100000,"doc_count":20},{"key_as_string":"2017-02-08T15:36:00.000Z","key":1486568160000,"doc_count":11},{"key_as_string":"2017-02-08T15:37:00.000Z","key":1486568220000,"doc_count":13},{"key_as_string":"2017-02-08T15:38:00.000Z","key":1486568280000,"doc_count":13},{"key_as_string":"2017-02-08T15:39:00.000Z","key":1486568340000,"doc_count":10},{"key_as_string":"2017-02-08T15:40:00.000Z","key":1486568400000,"doc_count":14},{"key_as_string":"2017-02-08T15:41:00.000Z","key":1486568460000,"doc_count":16},{"key_as_string":"2017-02-08T15:42:00.000Z","key":1486568520000,"doc_count":17},{"key_as_string":"2017-02-08T15:43:00.000Z","key":1486568580000,"doc_count":15},{"key_as_string":"2017-02-08T15:44:00.000Z","key":1486568640000,"doc_count":14},{"key_as_string":"2017-02-08T15:45:00.000Z","key":1486568700000,"doc_count":14},{"key_as_string":"2017-02-08T15:46:00.000Z","key":1486568760000,"doc_count":12},{"key_as_string":"2017-02-08T15:47:00.000Z","key":1486568820000,"doc_count":16},{"key_as_string":"2017-02-08T15:48:00.000Z","key":1486568880000,"doc_count":16},{"key_as_string":"2017-02-08T15:49:00.000Z","key":1486568940000,"doc_count":12},{"key_as_string":"2017-02-08T15:50:00.000Z","key":1486569000000,"doc_count":15},{"key_as_string":"2017-02-08T15:51:00.000Z","key":1486569060000,"doc_count":10},{"key_as_string":"2017-02-08T15:52:00.000Z","key":1486569120000,"doc_count":12},{"key_as_string":"2017-02-08T15:53:00.000Z","key":1486569180000,"doc_count":12},{"key_as_string":"2017-02-08T15:54:00.000Z","key":1486569240000,"doc_count":16},{"key_as_string":"2017-02-08T15:55:00.000Z","key":1486569300000,"doc_count":12},{"key_as_string":"2017-02-08T15:56:00.000Z","key":1486569360000,"doc_count":9},{"key_as_string":"2017-02-08T15:57:00.000Z","key":1486569420000,"doc_count":11},{"key_as_string":"2017-02-08T15:58:00.000Z","key":1486569480000,"doc_count":10},{"key_as_string":"2017-02-08T15:59:00.000Z","key":1486569540000,"doc_count":12},{"key_as_string":"2017-02-08T16:00:00.000Z","key":1486569600000,"doc_count":12},{"key_as_string":"2017-02-08T16:01:00.000Z","key":1486569660000,"doc_count":14},{"key_as_string":"2017-02-08T16:02:00.000Z","key":1486569720000,"doc_count":13},{"key_as_string":"2017-02-08T16:03:00.000Z","key":1486569780000,"doc_count":11},{"key_as_string":"2017-02-08T16:04:00.000Z","key":1486569840000,"doc_count":12},{"key_as_string":"2017-02-08T16:05:00.000Z","key":1486569900000,"doc_count":16},{"key_as_string":"2017-02-08T16:06:00.000Z","key":1486569960000,"doc_count":13},{"key_as_string":"2017-02-08T16:07:00.000Z","key":1486570020000,"doc_count":12},{"key_as_string":"2017-02-08T16:08:00.000Z","key":1486570080000,"doc_count":15},{"key_as_string":"2017-02-08T16:09:00.000Z","key":1486570140000,"doc_count":7},{"key_as_string":"2017-02-08T16:10:00.000Z","key":1486570200000,"doc_count":15},{"key_as_string":"2017-02-08T16:11:00.000Z","key":1486570260000,"doc_count":13},{"key_as_string":"2017-02-08T16:12:00.000Z","key":1486570320000,"doc_count":10},{"key_as_string":"2017-02-08T16:13:00.000Z","key":1486570380000,"doc_count":13},{"key_as_string":"2017-02-08T16:14:00.000Z","key":1486570440000,"doc_count":13},{"key_as_string":"2017-02-08T16:15:00.000Z","key":1486570500000,"doc_count":7},{"key_as_string":"2017-02-08T16:16:00.000Z","key":1486570560000,"doc_count":12},{"key_as_string":"2017-02-08T16:17:00.000Z","key":1486570620000,"doc_count":11},{"key_as_string":"2017-02-08T16:18:00.000Z","key":1486570680000,"doc_count":10},{"key_as_string":"2017-02-08T16:19:00.000Z","key":1486570740000,"doc_count":8},{"key_as_string":"2017-02-08T16:20:00.000Z","key":1486570800000,"doc_count":13},{"key_as_string":"2017-02-08T16:21:00.000Z","key":1486570860000,"doc_count":12},{"key_as_string":"2017-02-08T16:22:00.000Z","key":1486570920000,"doc_count":12},{"key_as_string":"2017-02-08T16:23:00.000Z","key":1486570980000,"doc_count":9},{"key_as_string":"2017-02-08T16:24:00.000Z","key":1486571040000,"doc_count":12},{"key_as_string":"2017-02-08T16:25:00.000Z","key":1486571100000,"doc_count":13},{"key_as_string":"2017-02-08T16:26:00.000Z","key":1486571160000,"doc_count":17},{"key_as_string":"2017-02-08T16:27:00.000Z","key":1486571220000,"doc_count":15},{"key_as_string":"2017-02-08T16:28:00.000Z","key":1486571280000,"doc_count":14},{"key_as_string":"2017-02-08T16:29:00.000Z","key":1486571340000,"doc_count":15},{"key_as_string":"2017-02-08T16:30:00.000Z","key":1486571400000,"doc_count":12},{"key_as_string":"2017-02-08T16:31:00.000Z","key":1486571460000,"doc_count":11},{"key_as_string":"2017-02-08T16:32:00.000Z","key":1486571520000,"doc_count":16},{"key_as_string":"2017-02-08T16:33:00.000Z","key":1486571580000,"doc_count":9},{"key_as_string":"2017-02-08T16:34:00.000Z","key":1486571640000,"doc_count":10},{"key_as_string":"2017-02-08T16:35:00.000Z","key":1486571700000,"doc_count":16},{"key_as_string":"2017-02-08T16:36:00.000Z","key":1486571760000,"doc_count":18},{"key_as_string":"2017-02-08T16:37:00.000Z","key":1486571820000,"doc_count":13},{"key_as_string":"2017-02-08T16:38:00.000Z","key":1486571880000,"doc_count":12},{"key_as_string":"2017-02-08T16:39:00.000Z","key":1486571940000,"doc_count":12},{"key_as_string":"2017-02-08T16:40:00.000Z","key":1486572000000,"doc_count":15},{"key_as_string":"2017-02-08T16:41:00.000Z","key":1486572060000,"doc_count":14},{"key_as_string":"2017-02-08T16:42:00.000Z","key":1486572120000,"doc_count":9},{"key_as_string":"2017-02-08T16:43:00.000Z","key":1486572180000,"doc_count":10},{"key_as_string":"2017-02-08T16:44:00.000Z","key":1486572240000,"doc_count":14},{"key_as_string":"2017-02-08T16:45:00.000Z","key":1486572300000,"doc_count":15},{"key_as_string":"2017-02-08T16:46:00.000Z","key":1486572360000,"doc_count":18},{"key_as_string":"2017-02-08T16:47:00.000Z","key":1486572420000,"doc_count":8},{"key_as_string":"2017-02-08T16:48:00.000Z","key":1486572480000,"doc_count":14},{"key_as_string":"2017-02-08T16:49:00.000Z","key":1486572540000,"doc_count":11},{"key_as_string":"2017-02-08T16:50:00.000Z","key":1486572600000,"doc_count":12},{"key_as_string":"2017-02-08T16:51:00.000Z","key":1486572660000,"doc_count":8},{"key_as_string":"2017-02-08T16:52:00.000Z","key":1486572720000,"doc_count":13},{"key_as_string":"2017-02-08T16:53:00.000Z","key":1486572780000,"doc_count":12},{"key_as_string":"2017-02-08T16:54:00.000Z","key":1486572840000,"doc_count":15},{"key_as_string":"2017-02-08T16:55:00.000Z","key":1486572900000,"doc_count":15},{"key_as_string":"2017-02-08T16:56:00.000Z","key":1486572960000,"doc_count":12},{"key_as_string":"2017-02-08T16:57:00.000Z","key":1486573020000,"doc_count":10},{"key_as_string":"2017-02-08T16:58:00.000Z","key":1486573080000,"doc_count":11},{"key_as_string":"2017-02-08T16:59:00.000Z","key":1486573140000,"doc_count":18},{"key_as_string":"2017-02-08T17:00:00.000Z","key":1486573200000,"doc_count":11},{"key_as_string":"2017-02-08T17:01:00.000Z","key":1486573260000,"doc_count":10},{"key_as_string":"2017-02-08T17:02:00.000Z","key":1486573320000,"doc_count":14},{"key_as_string":"2017-02-08T17:03:00.000Z","key":1486573380000,"doc_count":11},{"key_as_string":"2017-02-08T17:04:00.000Z","key":1486573440000,"doc_count":14},{"key_as_string":"2017-02-08T17:05:00.000Z","key":1486573500000,"doc_count":7},{"key_as_string":"2017-02-08T17:06:00.000Z","key":1486573560000,"doc_count":17},{"key_as_string":"2017-02-08T17:07:00.000Z","key":1486573620000,"doc_count":6},{"key_as_string":"2017-02-08T17:08:00.000Z","key":1486573680000,"doc_count":12},{"key_as_string":"2017-02-08T17:09:00.000Z","key":1486573740000,"doc_count":7},{"key_as_string":"2017-02-08T17:10:00.000Z","key":1486573800000,"doc_count":17},{"key_as_string":"2017-02-08T17:11:00.000Z","key":1486573860000,"doc_count":19},{"key_as_string":"2017-02-08T17:12:00.000Z","key":1486573920000,"doc_count":13},{"key_as_string":"2017-02-08T17:13:00.000Z","key":1486573980000,"doc_count":9},{"key_as_string":"2017-02-08T17:14:00.000Z","key":1486574040000,"doc_count":16},{"key_as_string":"2017-02-08T17:15:00.000Z","key":1486574100000,"doc_count":15},{"key_as_string":"2017-02-08T17:16:00.000Z","key":1486574160000,"doc_count":11},{"key_as_string":"2017-02-08T17:17:00.000Z","key":1486574220000,"doc_count":18},{"key_as_string":"2017-02-08T17:18:00.000Z","key":1486574280000,"doc_count":13},{"key_as_string":"2017-02-08T17:19:00.000Z","key":1486574340000,"doc_count":16},{"key_as_string":"2017-02-08T17:20:00.000Z","key":1486574400000,"doc_count":14},{"key_as_string":"2017-02-08T17:21:00.000Z","key":1486574460000,"doc_count":13},{"key_as_string":"2017-02-08T17:22:00.000Z","key":1486574520000,"doc_count":13},{"key_as_string":"2017-02-08T17:23:00.000Z","key":1486574580000,"doc_count":11},{"key_as_string":"2017-02-08T17:24:00.000Z","key":1486574640000,"doc_count":8},{"key_as_string":"2017-02-08T17:25:00.000Z","key":1486574700000,"doc_count":9},{"key_as_string":"2017-02-08T17:26:00.000Z","key":1486574760000,"doc_count":16},{"key_as_string":"2017-02-08T17:27:00.000Z","key":1486574820000,"doc_count":13},{"key_as_string":"2017-02-08T17:28:00.000Z","key":1486574880000,"doc_count":9},{"key_as_string":"2017-02-08T17:29:00.000Z","key":1486574940000,"doc_count":13},{"key_as_string":"2017-02-08T17:30:00.000Z","key":1486575000000,"doc_count":13},{"key_as_string":"2017-02-08T17:31:00.000Z","key":1486575060000,"doc_count":15},{"key_as_string":"2017-02-08T17:32:00.000Z","key":1486575120000,"doc_count":10},{"key_as_string":"2017-02-08T17:33:00.000Z","key":1486575180000,"doc_count":14},{"key_as_string":"2017-02-08T17:34:00.000Z","key":1486575240000,"doc_count":10},{"key_as_string":"2017-02-08T17:35:00.000Z","key":1486575300000,"doc_count":14},{"key_as_string":"2017-02-08T17:36:00.000Z","key":1486575360000,"doc_count":10},{"key_as_string":"2017-02-08T17:37:00.000Z","key":1486575420000,"doc_count":9},{"key_as_string":"2017-02-08T17:38:00.000Z","key":1486575480000,"doc_count":11},{"key_as_string":"2017-02-08T17:39:00.000Z","key":1486575540000,"doc_count":12},{"key_as_string":"2017-02-08T17:40:00.000Z","key":1486575600000,"doc_count":10},{"key_as_string":"2017-02-08T17:41:00.000Z","key":1486575660000,"doc_count":15},{"key_as_string":"2017-02-08T17:42:00.000Z","key":1486575720000,"doc_count":18},{"key_as_string":"2017-02-08T17:43:00.000Z","key":1486575780000,"doc_count":9},{"key_as_string":"2017-02-08T17:44:00.000Z","key":1486575840000,"doc_count":14},{"key_as_string":"2017-02-08T17:45:00.000Z","key":1486575900000,"doc_count":9},{"key_as_string":"2017-02-08T17:46:00.000Z","key":1486575960000,"doc_count":11},{"key_as_string":"2017-02-08T17:47:00.000Z","key":1486576020000,"doc_count":13},{"key_as_string":"2017-02-08T17:48:00.000Z","key":1486576080000,"doc_count":10},{"key_as_string":"2017-02-08T17:49:00.000Z","key":1486576140000,"doc_count":9},{"key_as_string":"2017-02-08T17:50:00.000Z","key":1486576200000,"doc_count":13},{"key_as_string":"2017-02-08T17:51:00.000Z","key":1486576260000,"doc_count":12},{"key_as_string":"2017-02-08T17:52:00.000Z","key":1486576320000,"doc_count":11},{"key_as_string":"2017-02-08T17:53:00.000Z","key":1486576380000,"doc_count":12},{"key_as_string":"2017-02-08T17:54:00.000Z","key":1486576440000,"doc_count":11},{"key_as_string":"2017-02-08T17:55:00.000Z","key":1486576500000,"doc_count":14},{"key_as_string":"2017-02-08T17:56:00.000Z","key":1486576560000,"doc_count":17},{"key_as_string":"2017-02-08T17:57:00.000Z","key":1486576620000,"doc_count":12},{"key_as_string":"2017-02-08T17:58:00.000Z","key":1486576680000,"doc_count":8},{"key_as_string":"2017-02-08T17:59:00.000Z","key":1486576740000,"doc_count":12},{"key_as_string":"2017-02-08T18:00:00.000Z","key":1486576800000,"doc_count":15},{"key_as_string":"2017-02-08T18:01:00.000Z","key":1486576860000,"doc_count":10},{"key_as_string":"2017-02-08T18:02:00.000Z","key":1486576920000,"doc_count":11},{"key_as_string":"2017-02-08T18:03:00.000Z","key":1486576980000,"doc_count":11},{"key_as_string":"2017-02-08T18:04:00.000Z","key":1486577040000,"doc_count":13},{"key_as_string":"2017-02-08T18:05:00.000Z","key":1486577100000,"doc_count":11},{"key_as_string":"2017-02-08T18:06:00.000Z","key":1486577160000,"doc_count":10},{"key_as_string":"2017-02-08T18:07:00.000Z","key":1486577220000,"doc_count":12},{"key_as_string":"2017-02-08T18:08:00.000Z","key":1486577280000,"doc_count":13},{"key_as_string":"2017-02-08T18:09:00.000Z","key":1486577340000,"doc_count":8},{"key_as_string":"2017-02-08T18:10:00.000Z","key":1486577400000,"doc_count":6},{"key_as_string":"2017-02-08T18:11:00.000Z","key":1486577460000,"doc_count":17},{"key_as_string":"2017-02-08T18:12:00.000Z","key":1486577520000,"doc_count":11},{"key_as_string":"2017-02-08T18:13:00.000Z","key":1486577580000,"doc_count":13},{"key_as_string":"2017-02-08T18:14:00.000Z","key":1486577640000,"doc_count":10},{"key_as_string":"2017-02-08T18:15:00.000Z","key":1486577700000,"doc_count":11},{"key_as_string":"2017-02-08T18:16:00.000Z","key":1486577760000,"doc_count":13},{"key_as_string":"2017-02-08T18:17:00.000Z","key":1486577820000,"doc_count":12},{"key_as_string":"2017-02-08T18:18:00.000Z","key":1486577880000,"doc_count":15},{"key_as_string":"2017-02-08T18:19:00.000Z","key":1486577940000,"doc_count":10},{"key_as_string":"2017-02-08T18:20:00.000Z","key":1486578000000,"doc_count":10},{"key_as_string":"2017-02-08T18:21:00.000Z","key":1486578060000,"doc_count":12},{"key_as_string":"2017-02-08T18:22:00.000Z","key":1486578120000,"doc_count":16},{"key_as_string":"2017-02-08T18:23:00.000Z","key":1486578180000,"doc_count":7},{"key_as_string":"2017-02-08T18:24:00.000Z","key":1486578240000,"doc_count":12},{"key_as_string":"2017-02-08T18:25:00.000Z","key":1486578300000,"doc_count":10},{"key_as_string":"2017-02-08T18:26:00.000Z","key":1486578360000,"doc_count":8},{"key_as_string":"2017-02-08T18:27:00.000Z","key":1486578420000,"doc_count":15},{"key_as_string":"2017-02-08T18:28:00.000Z","key":1486578480000,"doc_count":10},{"key_as_string":"2017-02-08T18:29:00.000Z","key":1486578540000,"doc_count":13},{"key_as_string":"2017-02-08T18:30:00.000Z","key":1486578600000,"doc_count":10},{"key_as_string":"2017-02-08T18:31:00.000Z","key":1486578660000,"doc_count":11},{"key_as_string":"2017-02-08T18:32:00.000Z","key":1486578720000,"doc_count":12},{"key_as_string":"2017-02-08T18:33:00.000Z","key":1486578780000,"doc_count":10},{"key_as_string":"2017-02-08T18:34:00.000Z","key":1486578840000,"doc_count":15},{"key_as_string":"2017-02-08T18:35:00.000Z","key":1486578900000,"doc_count":13},{"key_as_string":"2017-02-08T18:36:00.000Z","key":1486578960000,"doc_count":13},{"key_as_string":"2017-02-08T18:37:00.000Z","key":1486579020000,"doc_count":11},{"key_as_string":"2017-02-08T18:38:00.000Z","key":1486579080000,"doc_count":9},{"key_as_string":"2017-02-08T18:39:00.000Z","key":1486579140000,"doc_count":14},{"key_as_string":"2017-02-08T18:40:00.000Z","key":1486579200000,"doc_count":12},{"key_as_string":"2017-02-08T18:41:00.000Z","key":1486579260000,"doc_count":14},{"key_as_string":"2017-02-08T18:42:00.000Z","key":1486579320000,"doc_count":13},{"key_as_string":"2017-02-08T18:43:00.000Z","key":1486579380000,"doc_count":11},{"key_as_string":"2017-02-08T18:44:00.000Z","key":1486579440000,"doc_count":11},{"key_as_string":"2017-02-08T18:45:00.000Z","key":1486579500000,"doc_count":11},{"key_as_string":"2017-02-08T18:46:00.000Z","key":1486579560000,"doc_count":9},{"key_as_string":"2017-02-08T18:47:00.000Z","key":1486579620000,"doc_count":14},{"key_as_string":"2017-02-08T18:48:00.000Z","key":1486579680000,"doc_count":9},{"key_as_string":"2017-02-08T18:49:00.000Z","key":1486579740000,"doc_count":13},{"key_as_string":"2017-02-08T18:50:00.000Z","key":1486579800000,"doc_count":16},{"key_as_string":"2017-02-08T18:51:00.000Z","key":1486579860000,"doc_count":10},{"key_as_string":"2017-02-08T18:52:00.000Z","key":1486579920000,"doc_count":9},{"key_as_string":"2017-02-08T18:53:00.000Z","key":1486579980000,"doc_count":9},{"key_as_string":"2017-02-08T18:54:00.000Z","key":1486580040000,"doc_count":11},{"key_as_string":"2017-02-08T18:55:00.000Z","key":1486580100000,"doc_count":13},{"key_as_string":"2017-02-08T18:56:00.000Z","key":1486580160000,"doc_count":11},{"key_as_string":"2017-02-08T18:57:00.000Z","key":1486580220000,"doc_count":16},{"key_as_string":"2017-02-08T18:58:00.000Z","key":1486580280000,"doc_count":11},{"key_as_string":"2017-02-08T18:59:00.000Z","key":1486580340000,"doc_count":14},{"key_as_string":"2017-02-08T19:00:00.000Z","key":1486580400000,"doc_count":14},{"key_as_string":"2017-02-08T19:01:00.000Z","key":1486580460000,"doc_count":7},{"key_as_string":"2017-02-08T19:02:00.000Z","key":1486580520000,"doc_count":12},{"key_as_string":"2017-02-08T19:03:00.000Z","key":1486580580000,"doc_count":12},{"key_as_string":"2017-02-08T19:04:00.000Z","key":1486580640000,"doc_count":8},{"key_as_string":"2017-02-08T19:05:00.000Z","key":1486580700000,"doc_count":7},{"key_as_string":"2017-02-08T19:06:00.000Z","key":1486580760000,"doc_count":17},{"key_as_string":"2017-02-08T19:07:00.000Z","key":1486580820000,"doc_count":8},{"key_as_string":"2017-02-08T19:08:00.000Z","key":1486580880000,"doc_count":15},{"key_as_string":"2017-02-08T19:09:00.000Z","key":1486580940000,"doc_count":11},{"key_as_string":"2017-02-08T19:10:00.000Z","key":1486581000000,"doc_count":9},{"key_as_string":"2017-02-08T19:11:00.000Z","key":1486581060000,"doc_count":14},{"key_as_string":"2017-02-08T19:12:00.000Z","key":1486581120000,"doc_count":15},{"key_as_string":"2017-02-08T19:13:00.000Z","key":1486581180000,"doc_count":12},{"key_as_string":"2017-02-08T19:14:00.000Z","key":1486581240000,"doc_count":7},{"key_as_string":"2017-02-08T19:15:00.000Z","key":1486581300000,"doc_count":10},{"key_as_string":"2017-02-08T19:16:00.000Z","key":1486581360000,"doc_count":13},{"key_as_string":"2017-02-08T19:17:00.000Z","key":1486581420000,"doc_count":13},{"key_as_string":"2017-02-08T19:18:00.000Z","key":1486581480000,"doc_count":8},{"key_as_string":"2017-02-08T19:19:00.000Z","key":1486581540000,"doc_count":9},{"key_as_string":"2017-02-08T19:20:00.000Z","key":1486581600000,"doc_count":12},{"key_as_string":"2017-02-08T19:21:00.000Z","key":1486581660000,"doc_count":8},{"key_as_string":"2017-02-08T19:22:00.000Z","key":1486581720000,"doc_count":16},{"key_as_string":"2017-02-08T19:23:00.000Z","key":1486581780000,"doc_count":10},{"key_as_string":"2017-02-08T19:24:00.000Z","key":1486581840000,"doc_count":12},{"key_as_string":"2017-02-08T19:25:00.000Z","key":1486581900000,"doc_count":11},{"key_as_string":"2017-02-08T19:26:00.000Z","key":1486581960000,"doc_count":8},{"key_as_string":"2017-02-08T19:27:00.000Z","key":1486582020000,"doc_count":11},{"key_as_string":"2017-02-08T19:28:00.000Z","key":1486582080000,"doc_count":19},{"key_as_string":"2017-02-08T19:29:00.000Z","key":1486582140000,"doc_count":8},{"key_as_string":"2017-02-08T19:30:00.000Z","key":1486582200000,"doc_count":13},{"key_as_string":"2017-02-08T19:31:00.000Z","key":1486582260000,"doc_count":17},{"key_as_string":"2017-02-08T19:32:00.000Z","key":1486582320000,"doc_count":11},{"key_as_string":"2017-02-08T19:33:00.000Z","key":1486582380000,"doc_count":9},{"key_as_string":"2017-02-08T19:34:00.000Z","key":1486582440000,"doc_count":9},{"key_as_string":"2017-02-08T19:35:00.000Z","key":1486582500000,"doc_count":18},{"key_as_string":"2017-02-08T19:36:00.000Z","key":1486582560000,"doc_count":8},{"key_as_string":"2017-02-08T19:37:00.000Z","key":1486582620000,"doc_count":9},{"key_as_string":"2017-02-08T19:38:00.000Z","key":1486582680000,"doc_count":12},{"key_as_string":"2017-02-08T19:39:00.000Z","key":1486582740000,"doc_count":11},{"key_as_string":"2017-02-08T19:40:00.000Z","key":1486582800000,"doc_count":13},{"key_as_string":"2017-02-08T19:41:00.000Z","key":1486582860000,"doc_count":8},{"key_as_string":"2017-02-08T19:42:00.000Z","key":1486582920000,"doc_count":10},{"key_as_string":"2017-02-08T19:43:00.000Z","key":1486582980000,"doc_count":10},{"key_as_string":"2017-02-08T19:44:00.000Z","key":1486583040000,"doc_count":15},{"key_as_string":"2017-02-08T19:45:00.000Z","key":1486583100000,"doc_count":7},{"key_as_string":"2017-02-08T19:46:00.000Z","key":1486583160000,"doc_count":12},{"key_as_string":"2017-02-08T19:47:00.000Z","key":1486583220000,"doc_count":8},{"key_as_string":"2017-02-08T19:48:00.000Z","key":1486583280000,"doc_count":11},{"key_as_string":"2017-02-08T19:49:00.000Z","key":1486583340000,"doc_count":10},{"key_as_string":"2017-02-08T19:50:00.000Z","key":1486583400000,"doc_count":10},{"key_as_string":"2017-02-08T19:51:00.000Z","key":1486583460000,"doc_count":9},{"key_as_string":"2017-02-08T19:52:00.000Z","key":1486583520000,"doc_count":13},{"key_as_string":"2017-02-08T19:53:00.000Z","key":1486583580000,"doc_count":6},{"key_as_string":"2017-02-08T19:54:00.000Z","key":1486583640000,"doc_count":16},{"key_as_string":"2017-02-08T19:55:00.000Z","key":1486583700000,"doc_count":15},{"key_as_string":"2017-02-08T19:56:00.000Z","key":1486583760000,"doc_count":14},{"key_as_string":"2017-02-08T19:57:00.000Z","key":1486583820000,"doc_count":6},{"key_as_string":"2017-02-08T19:58:00.000Z","key":1486583880000,"doc_count":13},{"key_as_string":"2017-02-08T19:59:00.000Z","key":1486583940000,"doc_count":11},{"key_as_string":"2017-02-08T20:00:00.000Z","key":1486584000000,"doc_count":9},{"key_as_string":"2017-02-08T20:01:00.000Z","key":1486584060000,"doc_count":11},{"key_as_string":"2017-02-08T20:02:00.000Z","key":1486584120000,"doc_count":16},{"key_as_string":"2017-02-08T20:03:00.000Z","key":1486584180000,"doc_count":8},{"key_as_string":"2017-02-08T20:04:00.000Z","key":1486584240000,"doc_count":9},{"key_as_string":"2017-02-08T20:05:00.000Z","key":1486584300000,"doc_count":8},{"key_as_string":"2017-02-08T20:06:00.000Z","key":1486584360000,"doc_count":13},{"key_as_string":"2017-02-08T20:07:00.000Z","key":1486584420000,"doc_count":15},{"key_as_string":"2017-02-08T20:08:00.000Z","key":1486584480000,"doc_count":7},{"key_as_string":"2017-02-08T20:09:00.000Z","key":1486584540000,"doc_count":13},{"key_as_string":"2017-02-08T20:10:00.000Z","key":1486584600000,"doc_count":12},{"key_as_string":"2017-02-08T20:11:00.000Z","key":1486584660000,"doc_count":6},{"key_as_string":"2017-02-08T20:12:00.000Z","key":1486584720000,"doc_count":9},{"key_as_string":"2017-02-08T20:13:00.000Z","key":1486584780000,"doc_count":12},{"key_as_string":"2017-02-08T20:14:00.000Z","key":1486584840000,"doc_count":13},{"key_as_string":"2017-02-08T20:15:00.000Z","key":1486584900000,"doc_count":13},{"key_as_string":"2017-02-08T20:16:00.000Z","key":1486584960000,"doc_count":10},{"key_as_string":"2017-02-08T20:17:00.000Z","key":1486585020000,"doc_count":8},{"key_as_string":"2017-02-08T20:18:00.000Z","key":1486585080000,"doc_count":12},{"key_as_string":"2017-02-08T20:19:00.000Z","key":1486585140000,"doc_count":12},{"key_as_string":"2017-02-08T20:20:00.000Z","key":1486585200000,"doc_count":14},{"key_as_string":"2017-02-08T20:21:00.000Z","key":1486585260000,"doc_count":11},{"key_as_string":"2017-02-08T20:22:00.000Z","key":1486585320000,"doc_count":13},{"key_as_string":"2017-02-08T20:23:00.000Z","key":1486585380000,"doc_count":13},{"key_as_string":"2017-02-08T20:24:00.000Z","key":1486585440000,"doc_count":9},{"key_as_string":"2017-02-08T20:25:00.000Z","key":1486585500000,"doc_count":11},{"key_as_string":"2017-02-08T20:26:00.000Z","key":1486585560000,"doc_count":9},{"key_as_string":"2017-02-08T20:27:00.000Z","key":1486585620000,"doc_count":20},{"key_as_string":"2017-02-08T20:28:00.000Z","key":1486585680000,"doc_count":6},{"key_as_string":"2017-02-08T20:29:00.000Z","key":1486585740000,"doc_count":12},{"key_as_string":"2017-02-08T20:30:00.000Z","key":1486585800000,"doc_count":11},{"key_as_string":"2017-02-08T20:31:00.000Z","key":1486585860000,"doc_count":9},{"key_as_string":"2017-02-08T20:32:00.000Z","key":1486585920000,"doc_count":12},{"key_as_string":"2017-02-08T20:33:00.000Z","key":1486585980000,"doc_count":8},{"key_as_string":"2017-02-08T20:34:00.000Z","key":1486586040000,"doc_count":12},{"key_as_string":"2017-02-08T20:35:00.000Z","key":1486586100000,"doc_count":11},{"key_as_string":"2017-02-08T20:36:00.000Z","key":1486586160000,"doc_count":9},{"key_as_string":"2017-02-08T20:37:00.000Z","key":1486586220000,"doc_count":14},{"key_as_string":"2017-02-08T20:38:00.000Z","key":1486586280000,"doc_count":12},{"key_as_string":"2017-02-08T20:39:00.000Z","key":1486586340000,"doc_count":8},{"key_as_string":"2017-02-08T20:40:00.000Z","key":1486586400000,"doc_count":11},{"key_as_string":"2017-02-08T20:41:00.000Z","key":1486586460000,"doc_count":10},{"key_as_string":"2017-02-08T20:42:00.000Z","key":1486586520000,"doc_count":8},{"key_as_string":"2017-02-08T20:43:00.000Z","key":1486586580000,"doc_count":11},{"key_as_string":"2017-02-08T20:44:00.000Z","key":1486586640000,"doc_count":16},{"key_as_string":"2017-02-08T20:45:00.000Z","key":1486586700000,"doc_count":9},{"key_as_string":"2017-02-08T20:46:00.000Z","key":1486586760000,"doc_count":9},{"key_as_string":"2017-02-08T20:47:00.000Z","key":1486586820000,"doc_count":8},{"key_as_string":"2017-02-08T20:48:00.000Z","key":1486586880000,"doc_count":13},{"key_as_string":"2017-02-08T20:49:00.000Z","key":1486586940000,"doc_count":10},{"key_as_string":"2017-02-08T20:50:00.000Z","key":1486587000000,"doc_count":9},{"key_as_string":"2017-02-08T20:51:00.000Z","key":1486587060000,"doc_count":10},{"key_as_string":"2017-02-08T20:52:00.000Z","key":1486587120000,"doc_count":10},{"key_as_string":"2017-02-08T20:53:00.000Z","key":1486587180000,"doc_count":10},{"key_as_string":"2017-02-08T20:54:00.000Z","key":1486587240000,"doc_count":12},{"key_as_string":"2017-02-08T20:55:00.000Z","key":1486587300000,"doc_count":8},{"key_as_string":"2017-02-08T20:56:00.000Z","key":1486587360000,"doc_count":10},{"key_as_string":"2017-02-08T20:57:00.000Z","key":1486587420000,"doc_count":11},{"key_as_string":"2017-02-08T20:58:00.000Z","key":1486587480000,"doc_count":9},{"key_as_string":"2017-02-08T20:59:00.000Z","key":1486587540000,"doc_count":15},{"key_as_string":"2017-02-08T21:00:00.000Z","key":1486587600000,"doc_count":12},{"key_as_string":"2017-02-08T21:01:00.000Z","key":1486587660000,"doc_count":13},{"key_as_string":"2017-02-08T21:02:00.000Z","key":1486587720000,"doc_count":10},{"key_as_string":"2017-02-08T21:03:00.000Z","key":1486587780000,"doc_count":7},{"key_as_string":"2017-02-08T21:04:00.000Z","key":1486587840000,"doc_count":9},{"key_as_string":"2017-02-08T21:05:00.000Z","key":1486587900000,"doc_count":13},{"key_as_string":"2017-02-08T21:06:00.000Z","key":1486587960000,"doc_count":9},{"key_as_string":"2017-02-08T21:07:00.000Z","key":1486588020000,"doc_count":12},{"key_as_string":"2017-02-08T21:08:00.000Z","key":1486588080000,"doc_count":6},{"key_as_string":"2017-02-08T21:09:00.000Z","key":1486588140000,"doc_count":17},{"key_as_string":"2017-02-08T21:10:00.000Z","key":1486588200000,"doc_count":4},{"key_as_string":"2017-02-08T21:11:00.000Z","key":1486588260000,"doc_count":13},{"key_as_string":"2017-02-08T21:12:00.000Z","key":1486588320000,"doc_count":9},{"key_as_string":"2017-02-08T21:13:00.000Z","key":1486588380000,"doc_count":13},{"key_as_string":"2017-02-08T21:14:00.000Z","key":1486588440000,"doc_count":10},{"key_as_string":"2017-02-08T21:15:00.000Z","key":1486588500000,"doc_count":8},{"key_as_string":"2017-02-08T21:16:00.000Z","key":1486588560000,"doc_count":8},{"key_as_string":"2017-02-08T21:17:00.000Z","key":1486588620000,"doc_count":10},{"key_as_string":"2017-02-08T21:18:00.000Z","key":1486588680000,"doc_count":12},{"key_as_string":"2017-02-08T21:19:00.000Z","key":1486588740000,"doc_count":10},{"key_as_string":"2017-02-08T21:20:00.000Z","key":1486588800000,"doc_count":13},{"key_as_string":"2017-02-08T21:21:00.000Z","key":1486588860000,"doc_count":14},{"key_as_string":"2017-02-08T21:22:00.000Z","key":1486588920000,"doc_count":9},{"key_as_string":"2017-02-08T21:23:00.000Z","key":1486588980000,"doc_count":9},{"key_as_string":"2017-02-08T21:24:00.000Z","key":1486589040000,"doc_count":12},{"key_as_string":"2017-02-08T21:25:00.000Z","key":1486589100000,"doc_count":12},{"key_as_string":"2017-02-08T21:26:00.000Z","key":1486589160000,"doc_count":19},{"key_as_string":"2017-02-08T21:27:00.000Z","key":1486589220000,"doc_count":6},{"key_as_string":"2017-02-08T21:28:00.000Z","key":1486589280000,"doc_count":15},{"key_as_string":"2017-02-08T21:29:00.000Z","key":1486589340000,"doc_count":10},{"key_as_string":"2017-02-08T21:30:00.000Z","key":1486589400000,"doc_count":9},{"key_as_string":"2017-02-08T21:31:00.000Z","key":1486589460000,"doc_count":9},{"key_as_string":"2017-02-08T21:32:00.000Z","key":1486589520000,"doc_count":12},{"key_as_string":"2017-02-08T21:33:00.000Z","key":1486589580000,"doc_count":10},{"key_as_string":"2017-02-08T21:34:00.000Z","key":1486589640000,"doc_count":11},{"key_as_string":"2017-02-08T21:35:00.000Z","key":1486589700000,"doc_count":10},{"key_as_string":"2017-02-08T21:36:00.000Z","key":1486589760000,"doc_count":15},{"key_as_string":"2017-02-08T21:37:00.000Z","key":1486589820000,"doc_count":8},{"key_as_string":"2017-02-08T21:38:00.000Z","key":1486589880000,"doc_count":11},{"key_as_string":"2017-02-08T21:39:00.000Z","key":1486589940000,"doc_count":9},{"key_as_string":"2017-02-08T21:40:00.000Z","key":1486590000000,"doc_count":9},{"key_as_string":"2017-02-08T21:41:00.000Z","key":1486590060000,"doc_count":10},{"key_as_string":"2017-02-08T21:42:00.000Z","key":1486590120000,"doc_count":8},{"key_as_string":"2017-02-08T21:43:00.000Z","key":1486590180000,"doc_count":13},{"key_as_string":"2017-02-08T21:44:00.000Z","key":1486590240000,"doc_count":13},{"key_as_string":"2017-02-08T21:45:00.000Z","key":1486590300000,"doc_count":15},{"key_as_string":"2017-02-08T21:46:00.000Z","key":1486590360000,"doc_count":8},{"key_as_string":"2017-02-08T21:47:00.000Z","key":1486590420000,"doc_count":7},{"key_as_string":"2017-02-08T21:48:00.000Z","key":1486590480000,"doc_count":14},{"key_as_string":"2017-02-08T21:49:00.000Z","key":1486590540000,"doc_count":8},{"key_as_string":"2017-02-08T21:50:00.000Z","key":1486590600000,"doc_count":11},{"key_as_string":"2017-02-08T21:51:00.000Z","key":1486590660000,"doc_count":12},{"key_as_string":"2017-02-08T21:52:00.000Z","key":1486590720000,"doc_count":9},{"key_as_string":"2017-02-08T21:53:00.000Z","key":1486590780000,"doc_count":11},{"key_as_string":"2017-02-08T21:54:00.000Z","key":1486590840000,"doc_count":9},{"key_as_string":"2017-02-08T21:55:00.000Z","key":1486590900000,"doc_count":7},{"key_as_string":"2017-02-08T21:56:00.000Z","key":1486590960000,"doc_count":13},{"key_as_string":"2017-02-08T21:57:00.000Z","key":1486591020000,"doc_count":10},{"key_as_string":"2017-02-08T21:58:00.000Z","key":1486591080000,"doc_count":12},{"key_as_string":"2017-02-08T21:59:00.000Z","key":1486591140000,"doc_count":15},{"key_as_string":"2017-02-08T22:00:00.000Z","key":1486591200000,"doc_count":13},{"key_as_string":"2017-02-08T22:01:00.000Z","key":1486591260000,"doc_count":14},{"key_as_string":"2017-02-08T22:02:00.000Z","key":1486591320000,"doc_count":7},{"key_as_string":"2017-02-08T22:03:00.000Z","key":1486591380000,"doc_count":12},{"key_as_string":"2017-02-08T22:04:00.000Z","key":1486591440000,"doc_count":11},{"key_as_string":"2017-02-08T22:05:00.000Z","key":1486591500000,"doc_count":11},{"key_as_string":"2017-02-08T22:06:00.000Z","key":1486591560000,"doc_count":11},{"key_as_string":"2017-02-08T22:07:00.000Z","key":1486591620000,"doc_count":8},{"key_as_string":"2017-02-08T22:08:00.000Z","key":1486591680000,"doc_count":14},{"key_as_string":"2017-02-08T22:09:00.000Z","key":1486591740000,"doc_count":11},{"key_as_string":"2017-02-08T22:10:00.000Z","key":1486591800000,"doc_count":16},{"key_as_string":"2017-02-08T22:11:00.000Z","key":1486591860000,"doc_count":8},{"key_as_string":"2017-02-08T22:12:00.000Z","key":1486591920000,"doc_count":15},{"key_as_string":"2017-02-08T22:13:00.000Z","key":1486591980000,"doc_count":11},{"key_as_string":"2017-02-08T22:14:00.000Z","key":1486592040000,"doc_count":6},{"key_as_string":"2017-02-08T22:15:00.000Z","key":1486592100000,"doc_count":11},{"key_as_string":"2017-02-08T22:16:00.000Z","key":1486592160000,"doc_count":9},{"key_as_string":"2017-02-08T22:17:00.000Z","key":1486592220000,"doc_count":15},{"key_as_string":"2017-02-08T22:18:00.000Z","key":1486592280000,"doc_count":10},{"key_as_string":"2017-02-08T22:19:00.000Z","key":1486592340000,"doc_count":7},{"key_as_string":"2017-02-08T22:20:00.000Z","key":1486592400000,"doc_count":11},{"key_as_string":"2017-02-08T22:21:00.000Z","key":1486592460000,"doc_count":8},{"key_as_string":"2017-02-08T22:22:00.000Z","key":1486592520000,"doc_count":11},{"key_as_string":"2017-02-08T22:23:00.000Z","key":1486592580000,"doc_count":5},{"key_as_string":"2017-02-08T22:24:00.000Z","key":1486592640000,"doc_count":13},{"key_as_string":"2017-02-08T22:25:00.000Z","key":1486592700000,"doc_count":11},{"key_as_string":"2017-02-08T22:26:00.000Z","key":1486592760000,"doc_count":13},{"key_as_string":"2017-02-08T22:27:00.000Z","key":1486592820000,"doc_count":15},{"key_as_string":"2017-02-08T22:28:00.000Z","key":1486592880000,"doc_count":12},{"key_as_string":"2017-02-08T22:29:00.000Z","key":1486592940000,"doc_count":7},{"key_as_string":"2017-02-08T22:30:00.000Z","key":1486593000000,"doc_count":14},{"key_as_string":"2017-02-08T22:31:00.000Z","key":1486593060000,"doc_count":13},{"key_as_string":"2017-02-08T22:32:00.000Z","key":1486593120000,"doc_count":13},{"key_as_string":"2017-02-08T22:33:00.000Z","key":1486593180000,"doc_count":9},{"key_as_string":"2017-02-08T22:34:00.000Z","key":1486593240000,"doc_count":13},{"key_as_string":"2017-02-08T22:35:00.000Z","key":1486593300000,"doc_count":14},{"key_as_string":"2017-02-08T22:36:00.000Z","key":1486593360000,"doc_count":9},{"key_as_string":"2017-02-08T22:37:00.000Z","key":1486593420000,"doc_count":11},{"key_as_string":"2017-02-08T22:38:00.000Z","key":1486593480000,"doc_count":8},{"key_as_string":"2017-02-08T22:39:00.000Z","key":1486593540000,"doc_count":14},{"key_as_string":"2017-02-08T22:40:00.000Z","key":1486593600000,"doc_count":16},{"key_as_string":"2017-02-08T22:41:00.000Z","key":1486593660000,"doc_count":7},{"key_as_string":"2017-02-08T22:42:00.000Z","key":1486593720000,"doc_count":14},{"key_as_string":"2017-02-08T22:43:00.000Z","key":1486593780000,"doc_count":10},{"key_as_string":"2017-02-08T22:44:00.000Z","key":1486593840000,"doc_count":12},{"key_as_string":"2017-02-08T22:45:00.000Z","key":1486593900000,"doc_count":7},{"key_as_string":"2017-02-08T22:46:00.000Z","key":1486593960000,"doc_count":13},{"key_as_string":"2017-02-08T22:47:00.000Z","key":1486594020000,"doc_count":11},{"key_as_string":"2017-02-08T22:48:00.000Z","key":1486594080000,"doc_count":18},{"key_as_string":"2017-02-08T22:49:00.000Z","key":1486594140000,"doc_count":4},{"key_as_string":"2017-02-08T22:50:00.000Z","key":1486594200000,"doc_count":5},{"key_as_string":"2017-02-08T22:51:00.000Z","key":1486594260000,"doc_count":16},{"key_as_string":"2017-02-08T22:52:00.000Z","key":1486594320000,"doc_count":8},{"key_as_string":"2017-02-08T22:53:00.000Z","key":1486594380000,"doc_count":11},{"key_as_string":"2017-02-08T22:54:00.000Z","key":1486594440000,"doc_count":10},{"key_as_string":"2017-02-08T22:55:00.000Z","key":1486594500000,"doc_count":10},{"key_as_string":"2017-02-08T22:56:00.000Z","key":1486594560000,"doc_count":15},{"key_as_string":"2017-02-08T22:57:00.000Z","key":1486594620000,"doc_count":7},{"key_as_string":"2017-02-08T22:58:00.000Z","key":1486594680000,"doc_count":14},{"key_as_string":"2017-02-08T22:59:00.000Z","key":1486594740000,"doc_count":14},{"key_as_string":"2017-02-08T23:00:00.000Z","key":1486594800000,"doc_count":6},{"key_as_string":"2017-02-08T23:01:00.000Z","key":1486594860000,"doc_count":9},{"key_as_string":"2017-02-08T23:02:00.000Z","key":1486594920000,"doc_count":14},{"key_as_string":"2017-02-08T23:03:00.000Z","key":1486594980000,"doc_count":9},{"key_as_string":"2017-02-08T23:04:00.000Z","key":1486595040000,"doc_count":11},{"key_as_string":"2017-02-08T23:05:00.000Z","key":1486595100000,"doc_count":14},{"key_as_string":"2017-02-08T23:06:00.000Z","key":1486595160000,"doc_count":6},{"key_as_string":"2017-02-08T23:07:00.000Z","key":1486595220000,"doc_count":10},{"key_as_string":"2017-02-08T23:08:00.000Z","key":1486595280000,"doc_count":9},{"key_as_string":"2017-02-08T23:09:00.000Z","key":1486595340000,"doc_count":5},{"key_as_string":"2017-02-08T23:10:00.000Z","key":1486595400000,"doc_count":12},{"key_as_string":"2017-02-08T23:11:00.000Z","key":1486595460000,"doc_count":11},{"key_as_string":"2017-02-08T23:12:00.000Z","key":1486595520000,"doc_count":8},{"key_as_string":"2017-02-08T23:13:00.000Z","key":1486595580000,"doc_count":10},{"key_as_string":"2017-02-08T23:14:00.000Z","key":1486595640000,"doc_count":14},{"key_as_string":"2017-02-08T23:15:00.000Z","key":1486595700000,"doc_count":6},{"key_as_string":"2017-02-08T23:16:00.000Z","key":1486595760000,"doc_count":9},{"key_as_string":"2017-02-08T23:17:00.000Z","key":1486595820000,"doc_count":12},{"key_as_string":"2017-02-08T23:18:00.000Z","key":1486595880000,"doc_count":12},{"key_as_string":"2017-02-08T23:19:00.000Z","key":1486595940000,"doc_count":5},{"key_as_string":"2017-02-08T23:20:00.000Z","key":1486596000000,"doc_count":12},{"key_as_string":"2017-02-08T23:21:00.000Z","key":1486596060000,"doc_count":10},{"key_as_string":"2017-02-08T23:22:00.000Z","key":1486596120000,"doc_count":13},{"key_as_string":"2017-02-08T23:23:00.000Z","key":1486596180000,"doc_count":10},{"key_as_string":"2017-02-08T23:24:00.000Z","key":1486596240000,"doc_count":8},{"key_as_string":"2017-02-08T23:25:00.000Z","key":1486596300000,"doc_count":11},{"key_as_string":"2017-02-08T23:26:00.000Z","key":1486596360000,"doc_count":11},{"key_as_string":"2017-02-08T23:27:00.000Z","key":1486596420000,"doc_count":5},{"key_as_string":"2017-02-08T23:28:00.000Z","key":1486596480000,"doc_count":9},{"key_as_string":"2017-02-08T23:29:00.000Z","key":1486596540000,"doc_count":12},{"key_as_string":"2017-02-08T23:30:00.000Z","key":1486596600000,"doc_count":7},{"key_as_string":"2017-02-08T23:31:00.000Z","key":1486596660000,"doc_count":14},{"key_as_string":"2017-02-08T23:32:00.000Z","key":1486596720000,"doc_count":12},{"key_as_string":"2017-02-08T23:33:00.000Z","key":1486596780000,"doc_count":12},{"key_as_string":"2017-02-08T23:34:00.000Z","key":1486596840000,"doc_count":18},{"key_as_string":"2017-02-08T23:35:00.000Z","key":1486596900000,"doc_count":6},{"key_as_string":"2017-02-08T23:36:00.000Z","key":1486596960000,"doc_count":7},{"key_as_string":"2017-02-08T23:37:00.000Z","key":1486597020000,"doc_count":12},{"key_as_string":"2017-02-08T23:38:00.000Z","key":1486597080000,"doc_count":11},{"key_as_string":"2017-02-08T23:39:00.000Z","key":1486597140000,"doc_count":7},{"key_as_string":"2017-02-08T23:40:00.000Z","key":1486597200000,"doc_count":12},{"key_as_string":"2017-02-08T23:41:00.000Z","key":1486597260000,"doc_count":16},{"key_as_string":"2017-02-08T23:42:00.000Z","key":1486597320000,"doc_count":8},{"key_as_string":"2017-02-08T23:43:00.000Z","key":1486597380000,"doc_count":11},{"key_as_string":"2017-02-08T23:44:00.000Z","key":1486597440000,"doc_count":8},{"key_as_string":"2017-02-08T23:45:00.000Z","key":1486597500000,"doc_count":11},{"key_as_string":"2017-02-08T23:46:00.000Z","key":1486597560000,"doc_count":11},{"key_as_string":"2017-02-08T23:47:00.000Z","key":1486597620000,"doc_count":9},{"key_as_string":"2017-02-08T23:48:00.000Z","key":1486597680000,"doc_count":7},{"key_as_string":"2017-02-08T23:49:00.000Z","key":1486597740000,"doc_count":11},{"key_as_string":"2017-02-08T23:50:00.000Z","key":1486597800000,"doc_count":11},{"key_as_string":"2017-02-08T23:51:00.000Z","key":1486597860000,"doc_count":8},{"key_as_string":"2017-02-08T23:52:00.000Z","key":1486597920000,"doc_count":11},{"key_as_string":"2017-02-08T23:53:00.000Z","key":1486597980000,"doc_count":10},{"key_as_string":"2017-02-08T23:54:00.000Z","key":1486598040000,"doc_count":11},{"key_as_string":"2017-02-08T23:55:00.000Z","key":1486598100000,"doc_count":9},{"key_as_string":"2017-02-08T23:56:00.000Z","key":1486598160000,"doc_count":6},{"key_as_string":"2017-02-08T23:57:00.000Z","key":1486598220000,"doc_count":13},{"key_as_string":"2017-02-08T23:58:00.000Z","key":1486598280000,"doc_count":10},{"key_as_string":"2017-02-08T23:59:00.000Z","key":1486598340000,"doc_count":9},{"key_as_string":"2017-02-09T00:00:00.000Z","key":1486598400000,"doc_count":14},{"key_as_string":"2017-02-09T00:01:00.000Z","key":1486598460000,"doc_count":7},{"key_as_string":"2017-02-09T00:02:00.000Z","key":1486598520000,"doc_count":11},{"key_as_string":"2017-02-09T00:03:00.000Z","key":1486598580000,"doc_count":14},{"key_as_string":"2017-02-09T00:04:00.000Z","key":1486598640000,"doc_count":7},{"key_as_string":"2017-02-09T00:05:00.000Z","key":1486598700000,"doc_count":15},{"key_as_string":"2017-02-09T00:06:00.000Z","key":1486598760000,"doc_count":4},{"key_as_string":"2017-02-09T00:07:00.000Z","key":1486598820000,"doc_count":14},{"key_as_string":"2017-02-09T00:08:00.000Z","key":1486598880000,"doc_count":11},{"key_as_string":"2017-02-09T00:09:00.000Z","key":1486598940000,"doc_count":8},{"key_as_string":"2017-02-09T00:10:00.000Z","key":1486599000000,"doc_count":9},{"key_as_string":"2017-02-09T00:11:00.000Z","key":1486599060000,"doc_count":13},{"key_as_string":"2017-02-09T00:12:00.000Z","key":1486599120000,"doc_count":8},{"key_as_string":"2017-02-09T00:13:00.000Z","key":1486599180000,"doc_count":9},{"key_as_string":"2017-02-09T00:14:00.000Z","key":1486599240000,"doc_count":14},{"key_as_string":"2017-02-09T00:15:00.000Z","key":1486599300000,"doc_count":13},{"key_as_string":"2017-02-09T00:16:00.000Z","key":1486599360000,"doc_count":8},{"key_as_string":"2017-02-09T00:17:00.000Z","key":1486599420000,"doc_count":6},{"key_as_string":"2017-02-09T00:18:00.000Z","key":1486599480000,"doc_count":14},{"key_as_string":"2017-02-09T00:19:00.000Z","key":1486599540000,"doc_count":15},{"key_as_string":"2017-02-09T00:20:00.000Z","key":1486599600000,"doc_count":9},{"key_as_string":"2017-02-09T00:21:00.000Z","key":1486599660000,"doc_count":6},{"key_as_string":"2017-02-09T00:22:00.000Z","key":1486599720000,"doc_count":9},{"key_as_string":"2017-02-09T00:23:00.000Z","key":1486599780000,"doc_count":15},{"key_as_string":"2017-02-09T00:24:00.000Z","key":1486599840000,"doc_count":10},{"key_as_string":"2017-02-09T00:25:00.000Z","key":1486599900000,"doc_count":9},{"key_as_string":"2017-02-09T00:26:00.000Z","key":1486599960000,"doc_count":11},{"key_as_string":"2017-02-09T00:27:00.000Z","key":1486600020000,"doc_count":10},{"key_as_string":"2017-02-09T00:28:00.000Z","key":1486600080000,"doc_count":11},{"key_as_string":"2017-02-09T00:29:00.000Z","key":1486600140000,"doc_count":8},{"key_as_string":"2017-02-09T00:30:00.000Z","key":1486600200000,"doc_count":5},{"key_as_string":"2017-02-09T00:31:00.000Z","key":1486600260000,"doc_count":15},{"key_as_string":"2017-02-09T00:32:00.000Z","key":1486600320000,"doc_count":5},{"key_as_string":"2017-02-09T00:33:00.000Z","key":1486600380000,"doc_count":12},{"key_as_string":"2017-02-09T00:34:00.000Z","key":1486600440000,"doc_count":11},{"key_as_string":"2017-02-09T00:35:00.000Z","key":1486600500000,"doc_count":8},{"key_as_string":"2017-02-09T00:36:00.000Z","key":1486600560000,"doc_count":10},{"key_as_string":"2017-02-09T00:37:00.000Z","key":1486600620000,"doc_count":11},{"key_as_string":"2017-02-09T00:38:00.000Z","key":1486600680000,"doc_count":11},{"key_as_string":"2017-02-09T00:39:00.000Z","key":1486600740000,"doc_count":7},{"key_as_string":"2017-02-09T00:40:00.000Z","key":1486600800000,"doc_count":8},{"key_as_string":"2017-02-09T00:41:00.000Z","key":1486600860000,"doc_count":10},{"key_as_string":"2017-02-09T00:42:00.000Z","key":1486600920000,"doc_count":11},{"key_as_string":"2017-02-09T00:43:00.000Z","key":1486600980000,"doc_count":10},{"key_as_string":"2017-02-09T00:44:00.000Z","key":1486601040000,"doc_count":9},{"key_as_string":"2017-02-09T00:45:00.000Z","key":1486601100000,"doc_count":10},{"key_as_string":"2017-02-09T00:46:00.000Z","key":1486601160000,"doc_count":9},{"key_as_string":"2017-02-09T00:47:00.000Z","key":1486601220000,"doc_count":9},{"key_as_string":"2017-02-09T00:48:00.000Z","key":1486601280000,"doc_count":11},{"key_as_string":"2017-02-09T00:49:00.000Z","key":1486601340000,"doc_count":6},{"key_as_string":"2017-02-09T00:50:00.000Z","key":1486601400000,"doc_count":13},{"key_as_string":"2017-02-09T00:51:00.000Z","key":1486601460000,"doc_count":8},{"key_as_string":"2017-02-09T00:52:00.000Z","key":1486601520000,"doc_count":9},{"key_as_string":"2017-02-09T00:53:00.000Z","key":1486601580000,"doc_count":12},{"key_as_string":"2017-02-09T00:54:00.000Z","key":1486601640000,"doc_count":11},{"key_as_string":"2017-02-09T00:55:00.000Z","key":1486601700000,"doc_count":7},{"key_as_string":"2017-02-09T00:56:00.000Z","key":1486601760000,"doc_count":16},{"key_as_string":"2017-02-09T00:57:00.000Z","key":1486601820000,"doc_count":11},{"key_as_string":"2017-02-09T00:58:00.000Z","key":1486601880000,"doc_count":7},{"key_as_string":"2017-02-09T00:59:00.000Z","key":1486601940000,"doc_count":9},{"key_as_string":"2017-02-09T01:00:00.000Z","key":1486602000000,"doc_count":14},{"key_as_string":"2017-02-09T01:01:00.000Z","key":1486602060000,"doc_count":9},{"key_as_string":"2017-02-09T01:02:00.000Z","key":1486602120000,"doc_count":15},{"key_as_string":"2017-02-09T01:03:00.000Z","key":1486602180000,"doc_count":10},{"key_as_string":"2017-02-09T01:04:00.000Z","key":1486602240000,"doc_count":14},{"key_as_string":"2017-02-09T01:05:00.000Z","key":1486602300000,"doc_count":8},{"key_as_string":"2017-02-09T01:06:00.000Z","key":1486602360000,"doc_count":13},{"key_as_string":"2017-02-09T01:07:00.000Z","key":1486602420000,"doc_count":10},{"key_as_string":"2017-02-09T01:08:00.000Z","key":1486602480000,"doc_count":7},{"key_as_string":"2017-02-09T01:09:00.000Z","key":1486602540000,"doc_count":15},{"key_as_string":"2017-02-09T01:10:00.000Z","key":1486602600000,"doc_count":10},{"key_as_string":"2017-02-09T01:11:00.000Z","key":1486602660000,"doc_count":7},{"key_as_string":"2017-02-09T01:12:00.000Z","key":1486602720000,"doc_count":14},{"key_as_string":"2017-02-09T01:13:00.000Z","key":1486602780000,"doc_count":11},{"key_as_string":"2017-02-09T01:14:00.000Z","key":1486602840000,"doc_count":10},{"key_as_string":"2017-02-09T01:15:00.000Z","key":1486602900000,"doc_count":12},{"key_as_string":"2017-02-09T01:16:00.000Z","key":1486602960000,"doc_count":10},{"key_as_string":"2017-02-09T01:17:00.000Z","key":1486603020000,"doc_count":9},{"key_as_string":"2017-02-09T01:18:00.000Z","key":1486603080000,"doc_count":12},{"key_as_string":"2017-02-09T01:19:00.000Z","key":1486603140000,"doc_count":6},{"key_as_string":"2017-02-09T01:20:00.000Z","key":1486603200000,"doc_count":12},{"key_as_string":"2017-02-09T01:21:00.000Z","key":1486603260000,"doc_count":7},{"key_as_string":"2017-02-09T01:22:00.000Z","key":1486603320000,"doc_count":11},{"key_as_string":"2017-02-09T01:23:00.000Z","key":1486603380000,"doc_count":6},{"key_as_string":"2017-02-09T01:24:00.000Z","key":1486603440000,"doc_count":14},{"key_as_string":"2017-02-09T01:25:00.000Z","key":1486603500000,"doc_count":6},{"key_as_string":"2017-02-09T01:26:00.000Z","key":1486603560000,"doc_count":9},{"key_as_string":"2017-02-09T01:27:00.000Z","key":1486603620000,"doc_count":14},{"key_as_string":"2017-02-09T01:28:00.000Z","key":1486603680000,"doc_count":9},{"key_as_string":"2017-02-09T01:29:00.000Z","key":1486603740000,"doc_count":13},{"key_as_string":"2017-02-09T01:30:00.000Z","key":1486603800000,"doc_count":9},{"key_as_string":"2017-02-09T01:31:00.000Z","key":1486603860000,"doc_count":11},{"key_as_string":"2017-02-09T01:32:00.000Z","key":1486603920000,"doc_count":13},{"key_as_string":"2017-02-09T01:33:00.000Z","key":1486603980000,"doc_count":6},{"key_as_string":"2017-02-09T01:34:00.000Z","key":1486604040000,"doc_count":13},{"key_as_string":"2017-02-09T01:35:00.000Z","key":1486604100000,"doc_count":7},{"key_as_string":"2017-02-09T01:36:00.000Z","key":1486604160000,"doc_count":11},{"key_as_string":"2017-02-09T01:37:00.000Z","key":1486604220000,"doc_count":10},{"key_as_string":"2017-02-09T01:38:00.000Z","key":1486604280000,"doc_count":6},{"key_as_string":"2017-02-09T01:39:00.000Z","key":1486604340000,"doc_count":14},{"key_as_string":"2017-02-09T01:40:00.000Z","key":1486604400000,"doc_count":5},{"key_as_string":"2017-02-09T01:41:00.000Z","key":1486604460000,"doc_count":8},{"key_as_string":"2017-02-09T01:42:00.000Z","key":1486604520000,"doc_count":12},{"key_as_string":"2017-02-09T01:43:00.000Z","key":1486604580000,"doc_count":16},{"key_as_string":"2017-02-09T01:44:00.000Z","key":1486604640000,"doc_count":8},{"key_as_string":"2017-02-09T01:45:00.000Z","key":1486604700000,"doc_count":5},{"key_as_string":"2017-02-09T01:46:00.000Z","key":1486604760000,"doc_count":13},{"key_as_string":"2017-02-09T01:47:00.000Z","key":1486604820000,"doc_count":7},{"key_as_string":"2017-02-09T01:48:00.000Z","key":1486604880000,"doc_count":8},{"key_as_string":"2017-02-09T01:49:00.000Z","key":1486604940000,"doc_count":17},{"key_as_string":"2017-02-09T01:50:00.000Z","key":1486605000000,"doc_count":7},{"key_as_string":"2017-02-09T01:51:00.000Z","key":1486605060000,"doc_count":10},{"key_as_string":"2017-02-09T01:52:00.000Z","key":1486605120000,"doc_count":13},{"key_as_string":"2017-02-09T01:53:00.000Z","key":1486605180000,"doc_count":15},{"key_as_string":"2017-02-09T01:54:00.000Z","key":1486605240000,"doc_count":12},{"key_as_string":"2017-02-09T01:55:00.000Z","key":1486605300000,"doc_count":6},{"key_as_string":"2017-02-09T01:56:00.000Z","key":1486605360000,"doc_count":14},{"key_as_string":"2017-02-09T01:57:00.000Z","key":1486605420000,"doc_count":13},{"key_as_string":"2017-02-09T01:58:00.000Z","key":1486605480000,"doc_count":12},{"key_as_string":"2017-02-09T01:59:00.000Z","key":1486605540000,"doc_count":11},{"key_as_string":"2017-02-09T02:00:00.000Z","key":1486605600000,"doc_count":12},{"key_as_string":"2017-02-09T02:01:00.000Z","key":1486605660000,"doc_count":15},{"key_as_string":"2017-02-09T02:02:00.000Z","key":1486605720000,"doc_count":6},{"key_as_string":"2017-02-09T02:03:00.000Z","key":1486605780000,"doc_count":15},{"key_as_string":"2017-02-09T02:04:00.000Z","key":1486605840000,"doc_count":4},{"key_as_string":"2017-02-09T02:05:00.000Z","key":1486605900000,"doc_count":14},{"key_as_string":"2017-02-09T02:06:00.000Z","key":1486605960000,"doc_count":15},{"key_as_string":"2017-02-09T02:07:00.000Z","key":1486606020000,"doc_count":8},{"key_as_string":"2017-02-09T02:08:00.000Z","key":1486606080000,"doc_count":9},{"key_as_string":"2017-02-09T02:09:00.000Z","key":1486606140000,"doc_count":13},{"key_as_string":"2017-02-09T02:10:00.000Z","key":1486606200000,"doc_count":8},{"key_as_string":"2017-02-09T02:11:00.000Z","key":1486606260000,"doc_count":12},{"key_as_string":"2017-02-09T02:12:00.000Z","key":1486606320000,"doc_count":12},{"key_as_string":"2017-02-09T02:13:00.000Z","key":1486606380000,"doc_count":16},{"key_as_string":"2017-02-09T02:14:00.000Z","key":1486606440000,"doc_count":9},{"key_as_string":"2017-02-09T02:15:00.000Z","key":1486606500000,"doc_count":10},{"key_as_string":"2017-02-09T02:16:00.000Z","key":1486606560000,"doc_count":12},{"key_as_string":"2017-02-09T02:17:00.000Z","key":1486606620000,"doc_count":11},{"key_as_string":"2017-02-09T02:18:00.000Z","key":1486606680000,"doc_count":10},{"key_as_string":"2017-02-09T02:19:00.000Z","key":1486606740000,"doc_count":10},{"key_as_string":"2017-02-09T02:20:00.000Z","key":1486606800000,"doc_count":9},{"key_as_string":"2017-02-09T02:21:00.000Z","key":1486606860000,"doc_count":16},{"key_as_string":"2017-02-09T02:22:00.000Z","key":1486606920000,"doc_count":11},{"key_as_string":"2017-02-09T02:23:00.000Z","key":1486606980000,"doc_count":10},{"key_as_string":"2017-02-09T02:24:00.000Z","key":1486607040000,"doc_count":10},{"key_as_string":"2017-02-09T02:25:00.000Z","key":1486607100000,"doc_count":11},{"key_as_string":"2017-02-09T02:26:00.000Z","key":1486607160000,"doc_count":7},{"key_as_string":"2017-02-09T02:27:00.000Z","key":1486607220000,"doc_count":12},{"key_as_string":"2017-02-09T02:28:00.000Z","key":1486607280000,"doc_count":9},{"key_as_string":"2017-02-09T02:29:00.000Z","key":1486607340000,"doc_count":6},{"key_as_string":"2017-02-09T02:30:00.000Z","key":1486607400000,"doc_count":10},{"key_as_string":"2017-02-09T02:31:00.000Z","key":1486607460000,"doc_count":8},{"key_as_string":"2017-02-09T02:32:00.000Z","key":1486607520000,"doc_count":14},{"key_as_string":"2017-02-09T02:33:00.000Z","key":1486607580000,"doc_count":9},{"key_as_string":"2017-02-09T02:34:00.000Z","key":1486607640000,"doc_count":10},{"key_as_string":"2017-02-09T02:35:00.000Z","key":1486607700000,"doc_count":9},{"key_as_string":"2017-02-09T02:36:00.000Z","key":1486607760000,"doc_count":11},{"key_as_string":"2017-02-09T02:37:00.000Z","key":1486607820000,"doc_count":11},{"key_as_string":"2017-02-09T02:38:00.000Z","key":1486607880000,"doc_count":6},{"key_as_string":"2017-02-09T02:39:00.000Z","key":1486607940000,"doc_count":20},{"key_as_string":"2017-02-09T02:40:00.000Z","key":1486608000000,"doc_count":11},{"key_as_string":"2017-02-09T02:41:00.000Z","key":1486608060000,"doc_count":11},{"key_as_string":"2017-02-09T02:42:00.000Z","key":1486608120000,"doc_count":11},{"key_as_string":"2017-02-09T02:43:00.000Z","key":1486608180000,"doc_count":5},{"key_as_string":"2017-02-09T02:44:00.000Z","key":1486608240000,"doc_count":10},{"key_as_string":"2017-02-09T02:45:00.000Z","key":1486608300000,"doc_count":10},{"key_as_string":"2017-02-09T02:46:00.000Z","key":1486608360000,"doc_count":14},{"key_as_string":"2017-02-09T02:47:00.000Z","key":1486608420000,"doc_count":10},{"key_as_string":"2017-02-09T02:48:00.000Z","key":1486608480000,"doc_count":13},{"key_as_string":"2017-02-09T02:49:00.000Z","key":1486608540000,"doc_count":9},{"key_as_string":"2017-02-09T02:50:00.000Z","key":1486608600000,"doc_count":10},{"key_as_string":"2017-02-09T02:51:00.000Z","key":1486608660000,"doc_count":9},{"key_as_string":"2017-02-09T02:52:00.000Z","key":1486608720000,"doc_count":13},{"key_as_string":"2017-02-09T02:53:00.000Z","key":1486608780000,"doc_count":16},{"key_as_string":"2017-02-09T02:54:00.000Z","key":1486608840000,"doc_count":5},{"key_as_string":"2017-02-09T02:55:00.000Z","key":1486608900000,"doc_count":8},{"key_as_string":"2017-02-09T02:56:00.000Z","key":1486608960000,"doc_count":13},{"key_as_string":"2017-02-09T02:57:00.000Z","key":1486609020000,"doc_count":10},{"key_as_string":"2017-02-09T02:58:00.000Z","key":1486609080000,"doc_count":11},{"key_as_string":"2017-02-09T02:59:00.000Z","key":1486609140000,"doc_count":9},{"key_as_string":"2017-02-09T03:00:00.000Z","key":1486609200000,"doc_count":14},{"key_as_string":"2017-02-09T03:01:00.000Z","key":1486609260000,"doc_count":7},{"key_as_string":"2017-02-09T03:02:00.000Z","key":1486609320000,"doc_count":9},{"key_as_string":"2017-02-09T03:03:00.000Z","key":1486609380000,"doc_count":11},{"key_as_string":"2017-02-09T03:04:00.000Z","key":1486609440000,"doc_count":21},{"key_as_string":"2017-02-09T03:05:00.000Z","key":1486609500000,"doc_count":12},{"key_as_string":"2017-02-09T03:06:00.000Z","key":1486609560000,"doc_count":14},{"key_as_string":"2017-02-09T03:07:00.000Z","key":1486609620000,"doc_count":9},{"key_as_string":"2017-02-09T03:08:00.000Z","key":1486609680000,"doc_count":12},{"key_as_string":"2017-02-09T03:09:00.000Z","key":1486609740000,"doc_count":12},{"key_as_string":"2017-02-09T03:10:00.000Z","key":1486609800000,"doc_count":10},{"key_as_string":"2017-02-09T03:11:00.000Z","key":1486609860000,"doc_count":7},{"key_as_string":"2017-02-09T03:12:00.000Z","key":1486609920000,"doc_count":11},{"key_as_string":"2017-02-09T03:13:00.000Z","key":1486609980000,"doc_count":9},{"key_as_string":"2017-02-09T03:14:00.000Z","key":1486610040000,"doc_count":5},{"key_as_string":"2017-02-09T03:15:00.000Z","key":1486610100000,"doc_count":14},{"key_as_string":"2017-02-09T03:16:00.000Z","key":1486610160000,"doc_count":7},{"key_as_string":"2017-02-09T03:17:00.000Z","key":1486610220000,"doc_count":11},{"key_as_string":"2017-02-09T03:18:00.000Z","key":1486610280000,"doc_count":14},{"key_as_string":"2017-02-09T03:19:00.000Z","key":1486610340000,"doc_count":12},{"key_as_string":"2017-02-09T03:20:00.000Z","key":1486610400000,"doc_count":7},{"key_as_string":"2017-02-09T03:21:00.000Z","key":1486610460000,"doc_count":15},{"key_as_string":"2017-02-09T03:22:00.000Z","key":1486610520000,"doc_count":12},{"key_as_string":"2017-02-09T03:23:00.000Z","key":1486610580000,"doc_count":10},{"key_as_string":"2017-02-09T03:24:00.000Z","key":1486610640000,"doc_count":6},{"key_as_string":"2017-02-09T03:25:00.000Z","key":1486610700000,"doc_count":11},{"key_as_string":"2017-02-09T03:26:00.000Z","key":1486610760000,"doc_count":10},{"key_as_string":"2017-02-09T03:27:00.000Z","key":1486610820000,"doc_count":11},{"key_as_string":"2017-02-09T03:28:00.000Z","key":1486610880000,"doc_count":12},{"key_as_string":"2017-02-09T03:29:00.000Z","key":1486610940000,"doc_count":11},{"key_as_string":"2017-02-09T03:30:00.000Z","key":1486611000000,"doc_count":15},{"key_as_string":"2017-02-09T03:31:00.000Z","key":1486611060000,"doc_count":10},{"key_as_string":"2017-02-09T03:32:00.000Z","key":1486611120000,"doc_count":14},{"key_as_string":"2017-02-09T03:33:00.000Z","key":1486611180000,"doc_count":10},{"key_as_string":"2017-02-09T03:34:00.000Z","key":1486611240000,"doc_count":10},{"key_as_string":"2017-02-09T03:35:00.000Z","key":1486611300000,"doc_count":15},{"key_as_string":"2017-02-09T03:36:00.000Z","key":1486611360000,"doc_count":8},{"key_as_string":"2017-02-09T03:37:00.000Z","key":1486611420000,"doc_count":8},{"key_as_string":"2017-02-09T03:38:00.000Z","key":1486611480000,"doc_count":15},{"key_as_string":"2017-02-09T03:39:00.000Z","key":1486611540000,"doc_count":7},{"key_as_string":"2017-02-09T03:40:00.000Z","key":1486611600000,"doc_count":15},{"key_as_string":"2017-02-09T03:41:00.000Z","key":1486611660000,"doc_count":7},{"key_as_string":"2017-02-09T03:42:00.000Z","key":1486611720000,"doc_count":14},{"key_as_string":"2017-02-09T03:43:00.000Z","key":1486611780000,"doc_count":8},{"key_as_string":"2017-02-09T03:44:00.000Z","key":1486611840000,"doc_count":9},{"key_as_string":"2017-02-09T03:45:00.000Z","key":1486611900000,"doc_count":11},{"key_as_string":"2017-02-09T03:46:00.000Z","key":1486611960000,"doc_count":15},{"key_as_string":"2017-02-09T03:47:00.000Z","key":1486612020000,"doc_count":6},{"key_as_string":"2017-02-09T03:48:00.000Z","key":1486612080000,"doc_count":9},{"key_as_string":"2017-02-09T03:49:00.000Z","key":1486612140000,"doc_count":13},{"key_as_string":"2017-02-09T03:50:00.000Z","key":1486612200000,"doc_count":9},{"key_as_string":"2017-02-09T03:51:00.000Z","key":1486612260000,"doc_count":11},{"key_as_string":"2017-02-09T03:52:00.000Z","key":1486612320000,"doc_count":12},{"key_as_string":"2017-02-09T03:53:00.000Z","key":1486612380000,"doc_count":13},{"key_as_string":"2017-02-09T03:54:00.000Z","key":1486612440000,"doc_count":7},{"key_as_string":"2017-02-09T03:55:00.000Z","key":1486612500000,"doc_count":14},{"key_as_string":"2017-02-09T03:56:00.000Z","key":1486612560000,"doc_count":10},{"key_as_string":"2017-02-09T03:57:00.000Z","key":1486612620000,"doc_count":8},{"key_as_string":"2017-02-09T03:58:00.000Z","key":1486612680000,"doc_count":6},{"key_as_string":"2017-02-09T03:59:00.000Z","key":1486612740000,"doc_count":11},{"key_as_string":"2017-02-09T04:00:00.000Z","key":1486612800000,"doc_count":8},{"key_as_string":"2017-02-09T04:01:00.000Z","key":1486612860000,"doc_count":12},{"key_as_string":"2017-02-09T04:02:00.000Z","key":1486612920000,"doc_count":13},{"key_as_string":"2017-02-09T04:03:00.000Z","key":1486612980000,"doc_count":10},{"key_as_string":"2017-02-09T04:04:00.000Z","key":1486613040000,"doc_count":12},{"key_as_string":"2017-02-09T04:05:00.000Z","key":1486613100000,"doc_count":9},{"key_as_string":"2017-02-09T04:06:00.000Z","key":1486613160000,"doc_count":16},{"key_as_string":"2017-02-09T04:07:00.000Z","key":1486613220000,"doc_count":12},{"key_as_string":"2017-02-09T04:08:00.000Z","key":1486613280000,"doc_count":16},{"key_as_string":"2017-02-09T04:09:00.000Z","key":1486613340000,"doc_count":10},{"key_as_string":"2017-02-09T04:10:00.000Z","key":1486613400000,"doc_count":9},{"key_as_string":"2017-02-09T04:11:00.000Z","key":1486613460000,"doc_count":9},{"key_as_string":"2017-02-09T04:12:00.000Z","key":1486613520000,"doc_count":11},{"key_as_string":"2017-02-09T04:13:00.000Z","key":1486613580000,"doc_count":8},{"key_as_string":"2017-02-09T04:14:00.000Z","key":1486613640000,"doc_count":11},{"key_as_string":"2017-02-09T04:15:00.000Z","key":1486613700000,"doc_count":7},{"key_as_string":"2017-02-09T04:16:00.000Z","key":1486613760000,"doc_count":9},{"key_as_string":"2017-02-09T04:17:00.000Z","key":1486613820000,"doc_count":14},{"key_as_string":"2017-02-09T04:18:00.000Z","key":1486613880000,"doc_count":12},{"key_as_string":"2017-02-09T04:19:00.000Z","key":1486613940000,"doc_count":12},{"key_as_string":"2017-02-09T04:20:00.000Z","key":1486614000000,"doc_count":11},{"key_as_string":"2017-02-09T04:21:00.000Z","key":1486614060000,"doc_count":15},{"key_as_string":"2017-02-09T04:22:00.000Z","key":1486614120000,"doc_count":15},{"key_as_string":"2017-02-09T04:23:00.000Z","key":1486614180000,"doc_count":14},{"key_as_string":"2017-02-09T04:24:00.000Z","key":1486614240000,"doc_count":10},{"key_as_string":"2017-02-09T04:25:00.000Z","key":1486614300000,"doc_count":8},{"key_as_string":"2017-02-09T04:26:00.000Z","key":1486614360000,"doc_count":8},{"key_as_string":"2017-02-09T04:27:00.000Z","key":1486614420000,"doc_count":14},{"key_as_string":"2017-02-09T04:28:00.000Z","key":1486614480000,"doc_count":9},{"key_as_string":"2017-02-09T04:29:00.000Z","key":1486614540000,"doc_count":16},{"key_as_string":"2017-02-09T04:30:00.000Z","key":1486614600000,"doc_count":11},{"key_as_string":"2017-02-09T04:31:00.000Z","key":1486614660000,"doc_count":13},{"key_as_string":"2017-02-09T04:32:00.000Z","key":1486614720000,"doc_count":9},{"key_as_string":"2017-02-09T04:33:00.000Z","key":1486614780000,"doc_count":16},{"key_as_string":"2017-02-09T04:34:00.000Z","key":1486614840000,"doc_count":11},{"key_as_string":"2017-02-09T04:35:00.000Z","key":1486614900000,"doc_count":9},{"key_as_string":"2017-02-09T04:36:00.000Z","key":1486614960000,"doc_count":11},{"key_as_string":"2017-02-09T04:37:00.000Z","key":1486615020000,"doc_count":14},{"key_as_string":"2017-02-09T04:38:00.000Z","key":1486615080000,"doc_count":14},{"key_as_string":"2017-02-09T04:39:00.000Z","key":1486615140000,"doc_count":10},{"key_as_string":"2017-02-09T04:40:00.000Z","key":1486615200000,"doc_count":7},{"key_as_string":"2017-02-09T04:41:00.000Z","key":1486615260000,"doc_count":13},{"key_as_string":"2017-02-09T04:42:00.000Z","key":1486615320000,"doc_count":10},{"key_as_string":"2017-02-09T04:43:00.000Z","key":1486615380000,"doc_count":17},{"key_as_string":"2017-02-09T04:44:00.000Z","key":1486615440000,"doc_count":12},{"key_as_string":"2017-02-09T04:45:00.000Z","key":1486615500000,"doc_count":9},{"key_as_string":"2017-02-09T04:46:00.000Z","key":1486615560000,"doc_count":7},{"key_as_string":"2017-02-09T04:47:00.000Z","key":1486615620000,"doc_count":14},{"key_as_string":"2017-02-09T04:48:00.000Z","key":1486615680000,"doc_count":11},{"key_as_string":"2017-02-09T04:49:00.000Z","key":1486615740000,"doc_count":15},{"key_as_string":"2017-02-09T04:50:00.000Z","key":1486615800000,"doc_count":12},{"key_as_string":"2017-02-09T04:51:00.000Z","key":1486615860000,"doc_count":11},{"key_as_string":"2017-02-09T04:52:00.000Z","key":1486615920000,"doc_count":10},{"key_as_string":"2017-02-09T04:53:00.000Z","key":1486615980000,"doc_count":10},{"key_as_string":"2017-02-09T04:54:00.000Z","key":1486616040000,"doc_count":12},{"key_as_string":"2017-02-09T04:55:00.000Z","key":1486616100000,"doc_count":10},{"key_as_string":"2017-02-09T04:56:00.000Z","key":1486616160000,"doc_count":13},{"key_as_string":"2017-02-09T04:57:00.000Z","key":1486616220000,"doc_count":10},{"key_as_string":"2017-02-09T04:58:00.000Z","key":1486616280000,"doc_count":12},{"key_as_string":"2017-02-09T04:59:00.000Z","key":1486616340000,"doc_count":13},{"key_as_string":"2017-02-09T05:00:00.000Z","key":1486616400000,"doc_count":11},{"key_as_string":"2017-02-09T05:01:00.000Z","key":1486616460000,"doc_count":14},{"key_as_string":"2017-02-09T05:02:00.000Z","key":1486616520000,"doc_count":10},{"key_as_string":"2017-02-09T05:03:00.000Z","key":1486616580000,"doc_count":13},{"key_as_string":"2017-02-09T05:04:00.000Z","key":1486616640000,"doc_count":11},{"key_as_string":"2017-02-09T05:05:00.000Z","key":1486616700000,"doc_count":11},{"key_as_string":"2017-02-09T05:06:00.000Z","key":1486616760000,"doc_count":12},{"key_as_string":"2017-02-09T05:07:00.000Z","key":1486616820000,"doc_count":21},{"key_as_string":"2017-02-09T05:08:00.000Z","key":1486616880000,"doc_count":7},{"key_as_string":"2017-02-09T05:09:00.000Z","key":1486616940000,"doc_count":14},{"key_as_string":"2017-02-09T05:10:00.000Z","key":1486617000000,"doc_count":9},{"key_as_string":"2017-02-09T05:11:00.000Z","key":1486617060000,"doc_count":7},{"key_as_string":"2017-02-09T05:12:00.000Z","key":1486617120000,"doc_count":15},{"key_as_string":"2017-02-09T05:13:00.000Z","key":1486617180000,"doc_count":12},{"key_as_string":"2017-02-09T05:14:00.000Z","key":1486617240000,"doc_count":15},{"key_as_string":"2017-02-09T05:15:00.000Z","key":1486617300000,"doc_count":12},{"key_as_string":"2017-02-09T05:16:00.000Z","key":1486617360000,"doc_count":15},{"key_as_string":"2017-02-09T05:17:00.000Z","key":1486617420000,"doc_count":11},{"key_as_string":"2017-02-09T05:18:00.000Z","key":1486617480000,"doc_count":16},{"key_as_string":"2017-02-09T05:19:00.000Z","key":1486617540000,"doc_count":8},{"key_as_string":"2017-02-09T05:20:00.000Z","key":1486617600000,"doc_count":12},{"key_as_string":"2017-02-09T05:21:00.000Z","key":1486617660000,"doc_count":12},{"key_as_string":"2017-02-09T05:22:00.000Z","key":1486617720000,"doc_count":11},{"key_as_string":"2017-02-09T05:23:00.000Z","key":1486617780000,"doc_count":10},{"key_as_string":"2017-02-09T05:24:00.000Z","key":1486617840000,"doc_count":15},{"key_as_string":"2017-02-09T05:25:00.000Z","key":1486617900000,"doc_count":8},{"key_as_string":"2017-02-09T05:26:00.000Z","key":1486617960000,"doc_count":13},{"key_as_string":"2017-02-09T05:27:00.000Z","key":1486618020000,"doc_count":14},{"key_as_string":"2017-02-09T05:28:00.000Z","key":1486618080000,"doc_count":7},{"key_as_string":"2017-02-09T05:29:00.000Z","key":1486618140000,"doc_count":9},{"key_as_string":"2017-02-09T05:30:00.000Z","key":1486618200000,"doc_count":10},{"key_as_string":"2017-02-09T05:31:00.000Z","key":1486618260000,"doc_count":11},{"key_as_string":"2017-02-09T05:32:00.000Z","key":1486618320000,"doc_count":8},{"key_as_string":"2017-02-09T05:33:00.000Z","key":1486618380000,"doc_count":12},{"key_as_string":"2017-02-09T05:34:00.000Z","key":1486618440000,"doc_count":13},{"key_as_string":"2017-02-09T05:35:00.000Z","key":1486618500000,"doc_count":10},{"key_as_string":"2017-02-09T05:36:00.000Z","key":1486618560000,"doc_count":13},{"key_as_string":"2017-02-09T05:37:00.000Z","key":1486618620000,"doc_count":5},{"key_as_string":"2017-02-09T05:38:00.000Z","key":1486618680000,"doc_count":13},{"key_as_string":"2017-02-09T05:39:00.000Z","key":1486618740000,"doc_count":5},{"key_as_string":"2017-02-09T05:40:00.000Z","key":1486618800000,"doc_count":13},{"key_as_string":"2017-02-09T05:41:00.000Z","key":1486618860000,"doc_count":12},{"key_as_string":"2017-02-09T05:42:00.000Z","key":1486618920000,"doc_count":21},{"key_as_string":"2017-02-09T05:43:00.000Z","key":1486618980000,"doc_count":6},{"key_as_string":"2017-02-09T05:44:00.000Z","key":1486619040000,"doc_count":16},{"key_as_string":"2017-02-09T05:45:00.000Z","key":1486619100000,"doc_count":11},{"key_as_string":"2017-02-09T05:46:00.000Z","key":1486619160000,"doc_count":10},{"key_as_string":"2017-02-09T05:47:00.000Z","key":1486619220000,"doc_count":10},{"key_as_string":"2017-02-09T05:48:00.000Z","key":1486619280000,"doc_count":12},{"key_as_string":"2017-02-09T05:49:00.000Z","key":1486619340000,"doc_count":11},{"key_as_string":"2017-02-09T05:50:00.000Z","key":1486619400000,"doc_count":13},{"key_as_string":"2017-02-09T05:51:00.000Z","key":1486619460000,"doc_count":12},{"key_as_string":"2017-02-09T05:52:00.000Z","key":1486619520000,"doc_count":6},{"key_as_string":"2017-02-09T05:53:00.000Z","key":1486619580000,"doc_count":13},{"key_as_string":"2017-02-09T05:54:00.000Z","key":1486619640000,"doc_count":11},{"key_as_string":"2017-02-09T05:55:00.000Z","key":1486619700000,"doc_count":13},{"key_as_string":"2017-02-09T05:56:00.000Z","key":1486619760000,"doc_count":13},{"key_as_string":"2017-02-09T05:57:00.000Z","key":1486619820000,"doc_count":13},{"key_as_string":"2017-02-09T05:58:00.000Z","key":1486619880000,"doc_count":9},{"key_as_string":"2017-02-09T05:59:00.000Z","key":1486619940000,"doc_count":12},{"key_as_string":"2017-02-09T06:00:00.000Z","key":1486620000000,"doc_count":12},{"key_as_string":"2017-02-09T06:01:00.000Z","key":1486620060000,"doc_count":17},{"key_as_string":"2017-02-09T06:02:00.000Z","key":1486620120000,"doc_count":14},{"key_as_string":"2017-02-09T06:03:00.000Z","key":1486620180000,"doc_count":7},{"key_as_string":"2017-02-09T06:04:00.000Z","key":1486620240000,"doc_count":9},{"key_as_string":"2017-02-09T06:05:00.000Z","key":1486620300000,"doc_count":15},{"key_as_string":"2017-02-09T06:06:00.000Z","key":1486620360000,"doc_count":11},{"key_as_string":"2017-02-09T06:07:00.000Z","key":1486620420000,"doc_count":10},{"key_as_string":"2017-02-09T06:08:00.000Z","key":1486620480000,"doc_count":11},{"key_as_string":"2017-02-09T06:09:00.000Z","key":1486620540000,"doc_count":8},{"key_as_string":"2017-02-09T06:10:00.000Z","key":1486620600000,"doc_count":12},{"key_as_string":"2017-02-09T06:11:00.000Z","key":1486620660000,"doc_count":16},{"key_as_string":"2017-02-09T06:12:00.000Z","key":1486620720000,"doc_count":11},{"key_as_string":"2017-02-09T06:13:00.000Z","key":1486620780000,"doc_count":8},{"key_as_string":"2017-02-09T06:14:00.000Z","key":1486620840000,"doc_count":11},{"key_as_string":"2017-02-09T06:15:00.000Z","key":1486620900000,"doc_count":16},{"key_as_string":"2017-02-09T06:16:00.000Z","key":1486620960000,"doc_count":12},{"key_as_string":"2017-02-09T06:17:00.000Z","key":1486621020000,"doc_count":10},{"key_as_string":"2017-02-09T06:18:00.000Z","key":1486621080000,"doc_count":10},{"key_as_string":"2017-02-09T06:19:00.000Z","key":1486621140000,"doc_count":18},{"key_as_string":"2017-02-09T06:20:00.000Z","key":1486621200000,"doc_count":8},{"key_as_string":"2017-02-09T06:21:00.000Z","key":1486621260000,"doc_count":13},{"key_as_string":"2017-02-09T06:22:00.000Z","key":1486621320000,"doc_count":10},{"key_as_string":"2017-02-09T06:23:00.000Z","key":1486621380000,"doc_count":15},{"key_as_string":"2017-02-09T06:24:00.000Z","key":1486621440000,"doc_count":13},{"key_as_string":"2017-02-09T06:25:00.000Z","key":1486621500000,"doc_count":10},{"key_as_string":"2017-02-09T06:26:00.000Z","key":1486621560000,"doc_count":11},{"key_as_string":"2017-02-09T06:27:00.000Z","key":1486621620000,"doc_count":10},{"key_as_string":"2017-02-09T06:28:00.000Z","key":1486621680000,"doc_count":11},{"key_as_string":"2017-02-09T06:29:00.000Z","key":1486621740000,"doc_count":14},{"key_as_string":"2017-02-09T06:30:00.000Z","key":1486621800000,"doc_count":7},{"key_as_string":"2017-02-09T06:31:00.000Z","key":1486621860000,"doc_count":13},{"key_as_string":"2017-02-09T06:32:00.000Z","key":1486621920000,"doc_count":10},{"key_as_string":"2017-02-09T06:33:00.000Z","key":1486621980000,"doc_count":7},{"key_as_string":"2017-02-09T06:34:00.000Z","key":1486622040000,"doc_count":15},{"key_as_string":"2017-02-09T06:35:00.000Z","key":1486622100000,"doc_count":10},{"key_as_string":"2017-02-09T06:36:00.000Z","key":1486622160000,"doc_count":14},{"key_as_string":"2017-02-09T06:37:00.000Z","key":1486622220000,"doc_count":10},{"key_as_string":"2017-02-09T06:38:00.000Z","key":1486622280000,"doc_count":8},{"key_as_string":"2017-02-09T06:39:00.000Z","key":1486622340000,"doc_count":7},{"key_as_string":"2017-02-09T06:40:00.000Z","key":1486622400000,"doc_count":13},{"key_as_string":"2017-02-09T06:41:00.000Z","key":1486622460000,"doc_count":13},{"key_as_string":"2017-02-09T06:42:00.000Z","key":1486622520000,"doc_count":7},{"key_as_string":"2017-02-09T06:43:00.000Z","key":1486622580000,"doc_count":12},{"key_as_string":"2017-02-09T06:44:00.000Z","key":1486622640000,"doc_count":11},{"key_as_string":"2017-02-09T06:45:00.000Z","key":1486622700000,"doc_count":10},{"key_as_string":"2017-02-09T06:46:00.000Z","key":1486622760000,"doc_count":16},{"key_as_string":"2017-02-09T06:47:00.000Z","key":1486622820000,"doc_count":17},{"key_as_string":"2017-02-09T06:48:00.000Z","key":1486622880000,"doc_count":13},{"key_as_string":"2017-02-09T06:49:00.000Z","key":1486622940000,"doc_count":11},{"key_as_string":"2017-02-09T06:50:00.000Z","key":1486623000000,"doc_count":8},{"key_as_string":"2017-02-09T06:51:00.000Z","key":1486623060000,"doc_count":6},{"key_as_string":"2017-02-09T06:52:00.000Z","key":1486623120000,"doc_count":17},{"key_as_string":"2017-02-09T06:53:00.000Z","key":1486623180000,"doc_count":11},{"key_as_string":"2017-02-09T06:54:00.000Z","key":1486623240000,"doc_count":11},{"key_as_string":"2017-02-09T06:55:00.000Z","key":1486623300000,"doc_count":14},{"key_as_string":"2017-02-09T06:56:00.000Z","key":1486623360000,"doc_count":10},{"key_as_string":"2017-02-09T06:57:00.000Z","key":1486623420000,"doc_count":14},{"key_as_string":"2017-02-09T06:58:00.000Z","key":1486623480000,"doc_count":8},{"key_as_string":"2017-02-09T06:59:00.000Z","key":1486623540000,"doc_count":10},{"key_as_string":"2017-02-09T07:00:00.000Z","key":1486623600000,"doc_count":11},{"key_as_string":"2017-02-09T07:01:00.000Z","key":1486623660000,"doc_count":16},{"key_as_string":"2017-02-09T07:02:00.000Z","key":1486623720000,"doc_count":17},{"key_as_string":"2017-02-09T07:03:00.000Z","key":1486623780000,"doc_count":16},{"key_as_string":"2017-02-09T07:04:00.000Z","key":1486623840000,"doc_count":15},{"key_as_string":"2017-02-09T07:05:00.000Z","key":1486623900000,"doc_count":12},{"key_as_string":"2017-02-09T07:06:00.000Z","key":1486623960000,"doc_count":9},{"key_as_string":"2017-02-09T07:07:00.000Z","key":1486624020000,"doc_count":11},{"key_as_string":"2017-02-09T07:08:00.000Z","key":1486624080000,"doc_count":11},{"key_as_string":"2017-02-09T07:09:00.000Z","key":1486624140000,"doc_count":20},{"key_as_string":"2017-02-09T07:10:00.000Z","key":1486624200000,"doc_count":9},{"key_as_string":"2017-02-09T07:11:00.000Z","key":1486624260000,"doc_count":17},{"key_as_string":"2017-02-09T07:12:00.000Z","key":1486624320000,"doc_count":13},{"key_as_string":"2017-02-09T07:13:00.000Z","key":1486624380000,"doc_count":18},{"key_as_string":"2017-02-09T07:14:00.000Z","key":1486624440000,"doc_count":8},{"key_as_string":"2017-02-09T07:15:00.000Z","key":1486624500000,"doc_count":14},{"key_as_string":"2017-02-09T07:16:00.000Z","key":1486624560000,"doc_count":9},{"key_as_string":"2017-02-09T07:17:00.000Z","key":1486624620000,"doc_count":15},{"key_as_string":"2017-02-09T07:18:00.000Z","key":1486624680000,"doc_count":15},{"key_as_string":"2017-02-09T07:19:00.000Z","key":1486624740000,"doc_count":15},{"key_as_string":"2017-02-09T07:20:00.000Z","key":1486624800000,"doc_count":17},{"key_as_string":"2017-02-09T07:21:00.000Z","key":1486624860000,"doc_count":13},{"key_as_string":"2017-02-09T07:22:00.000Z","key":1486624920000,"doc_count":10},{"key_as_string":"2017-02-09T07:23:00.000Z","key":1486624980000,"doc_count":10},{"key_as_string":"2017-02-09T07:24:00.000Z","key":1486625040000,"doc_count":9},{"key_as_string":"2017-02-09T07:25:00.000Z","key":1486625100000,"doc_count":16},{"key_as_string":"2017-02-09T07:26:00.000Z","key":1486625160000,"doc_count":14},{"key_as_string":"2017-02-09T07:27:00.000Z","key":1486625220000,"doc_count":13},{"key_as_string":"2017-02-09T07:28:00.000Z","key":1486625280000,"doc_count":14},{"key_as_string":"2017-02-09T07:29:00.000Z","key":1486625340000,"doc_count":14},{"key_as_string":"2017-02-09T07:30:00.000Z","key":1486625400000,"doc_count":14},{"key_as_string":"2017-02-09T07:31:00.000Z","key":1486625460000,"doc_count":16},{"key_as_string":"2017-02-09T07:32:00.000Z","key":1486625520000,"doc_count":13},{"key_as_string":"2017-02-09T07:33:00.000Z","key":1486625580000,"doc_count":12},{"key_as_string":"2017-02-09T07:34:00.000Z","key":1486625640000,"doc_count":15},{"key_as_string":"2017-02-09T07:35:00.000Z","key":1486625700000,"doc_count":13},{"key_as_string":"2017-02-09T07:36:00.000Z","key":1486625760000,"doc_count":15},{"key_as_string":"2017-02-09T07:37:00.000Z","key":1486625820000,"doc_count":12},{"key_as_string":"2017-02-09T07:38:00.000Z","key":1486625880000,"doc_count":9},{"key_as_string":"2017-02-09T07:39:00.000Z","key":1486625940000,"doc_count":20},{"key_as_string":"2017-02-09T07:40:00.000Z","key":1486626000000,"doc_count":13},{"key_as_string":"2017-02-09T07:41:00.000Z","key":1486626060000,"doc_count":17},{"key_as_string":"2017-02-09T07:42:00.000Z","key":1486626120000,"doc_count":10},{"key_as_string":"2017-02-09T07:43:00.000Z","key":1486626180000,"doc_count":15},{"key_as_string":"2017-02-09T07:44:00.000Z","key":1486626240000,"doc_count":11},{"key_as_string":"2017-02-09T07:45:00.000Z","key":1486626300000,"doc_count":11},{"key_as_string":"2017-02-09T07:46:00.000Z","key":1486626360000,"doc_count":13},{"key_as_string":"2017-02-09T07:47:00.000Z","key":1486626420000,"doc_count":14},{"key_as_string":"2017-02-09T07:48:00.000Z","key":1486626480000,"doc_count":13},{"key_as_string":"2017-02-09T07:49:00.000Z","key":1486626540000,"doc_count":13},{"key_as_string":"2017-02-09T07:50:00.000Z","key":1486626600000,"doc_count":12},{"key_as_string":"2017-02-09T07:51:00.000Z","key":1486626660000,"doc_count":15},{"key_as_string":"2017-02-09T07:52:00.000Z","key":1486626720000,"doc_count":15},{"key_as_string":"2017-02-09T07:53:00.000Z","key":1486626780000,"doc_count":15},{"key_as_string":"2017-02-09T07:54:00.000Z","key":1486626840000,"doc_count":12},{"key_as_string":"2017-02-09T07:55:00.000Z","key":1486626900000,"doc_count":11},{"key_as_string":"2017-02-09T07:56:00.000Z","key":1486626960000,"doc_count":14},{"key_as_string":"2017-02-09T07:57:00.000Z","key":1486627020000,"doc_count":8},{"key_as_string":"2017-02-09T07:58:00.000Z","key":1486627080000,"doc_count":17},{"key_as_string":"2017-02-09T07:59:00.000Z","key":1486627140000,"doc_count":13},{"key_as_string":"2017-02-09T08:00:00.000Z","key":1486627200000,"doc_count":13},{"key_as_string":"2017-02-09T08:01:00.000Z","key":1486627260000,"doc_count":12},{"key_as_string":"2017-02-09T08:02:00.000Z","key":1486627320000,"doc_count":19},{"key_as_string":"2017-02-09T08:03:00.000Z","key":1486627380000,"doc_count":15},{"key_as_string":"2017-02-09T08:04:00.000Z","key":1486627440000,"doc_count":9},{"key_as_string":"2017-02-09T08:05:00.000Z","key":1486627500000,"doc_count":14},{"key_as_string":"2017-02-09T08:06:00.000Z","key":1486627560000,"doc_count":14},{"key_as_string":"2017-02-09T08:07:00.000Z","key":1486627620000,"doc_count":13},{"key_as_string":"2017-02-09T08:08:00.000Z","key":1486627680000,"doc_count":10},{"key_as_string":"2017-02-09T08:09:00.000Z","key":1486627740000,"doc_count":14},{"key_as_string":"2017-02-09T08:10:00.000Z","key":1486627800000,"doc_count":11},{"key_as_string":"2017-02-09T08:11:00.000Z","key":1486627860000,"doc_count":12},{"key_as_string":"2017-02-09T08:12:00.000Z","key":1486627920000,"doc_count":15},{"key_as_string":"2017-02-09T08:13:00.000Z","key":1486627980000,"doc_count":13},{"key_as_string":"2017-02-09T08:14:00.000Z","key":1486628040000,"doc_count":12},{"key_as_string":"2017-02-09T08:15:00.000Z","key":1486628100000,"doc_count":11},{"key_as_string":"2017-02-09T08:16:00.000Z","key":1486628160000,"doc_count":21},{"key_as_string":"2017-02-09T08:17:00.000Z","key":1486628220000,"doc_count":16},{"key_as_string":"2017-02-09T08:18:00.000Z","key":1486628280000,"doc_count":16},{"key_as_string":"2017-02-09T08:19:00.000Z","key":1486628340000,"doc_count":11},{"key_as_string":"2017-02-09T08:20:00.000Z","key":1486628400000,"doc_count":14},{"key_as_string":"2017-02-09T08:21:00.000Z","key":1486628460000,"doc_count":14},{"key_as_string":"2017-02-09T08:22:00.000Z","key":1486628520000,"doc_count":13},{"key_as_string":"2017-02-09T08:23:00.000Z","key":1486628580000,"doc_count":13},{"key_as_string":"2017-02-09T08:24:00.000Z","key":1486628640000,"doc_count":12},{"key_as_string":"2017-02-09T08:25:00.000Z","key":1486628700000,"doc_count":16},{"key_as_string":"2017-02-09T08:26:00.000Z","key":1486628760000,"doc_count":12},{"key_as_string":"2017-02-09T08:27:00.000Z","key":1486628820000,"doc_count":10},{"key_as_string":"2017-02-09T08:28:00.000Z","key":1486628880000,"doc_count":15},{"key_as_string":"2017-02-09T08:29:00.000Z","key":1486628940000,"doc_count":17},{"key_as_string":"2017-02-09T08:30:00.000Z","key":1486629000000,"doc_count":12},{"key_as_string":"2017-02-09T08:31:00.000Z","key":1486629060000,"doc_count":13},{"key_as_string":"2017-02-09T08:32:00.000Z","key":1486629120000,"doc_count":14},{"key_as_string":"2017-02-09T08:33:00.000Z","key":1486629180000,"doc_count":14},{"key_as_string":"2017-02-09T08:34:00.000Z","key":1486629240000,"doc_count":14},{"key_as_string":"2017-02-09T08:35:00.000Z","key":1486629300000,"doc_count":12},{"key_as_string":"2017-02-09T08:36:00.000Z","key":1486629360000,"doc_count":14},{"key_as_string":"2017-02-09T08:37:00.000Z","key":1486629420000,"doc_count":14},{"key_as_string":"2017-02-09T08:38:00.000Z","key":1486629480000,"doc_count":12},{"key_as_string":"2017-02-09T08:39:00.000Z","key":1486629540000,"doc_count":7},{"key_as_string":"2017-02-09T08:40:00.000Z","key":1486629600000,"doc_count":18},{"key_as_string":"2017-02-09T08:41:00.000Z","key":1486629660000,"doc_count":10},{"key_as_string":"2017-02-09T08:42:00.000Z","key":1486629720000,"doc_count":13},{"key_as_string":"2017-02-09T08:43:00.000Z","key":1486629780000,"doc_count":14},{"key_as_string":"2017-02-09T08:44:00.000Z","key":1486629840000,"doc_count":16},{"key_as_string":"2017-02-09T08:45:00.000Z","key":1486629900000,"doc_count":14},{"key_as_string":"2017-02-09T08:46:00.000Z","key":1486629960000,"doc_count":13},{"key_as_string":"2017-02-09T08:47:00.000Z","key":1486630020000,"doc_count":15},{"key_as_string":"2017-02-09T08:48:00.000Z","key":1486630080000,"doc_count":14},{"key_as_string":"2017-02-09T08:49:00.000Z","key":1486630140000,"doc_count":16},{"key_as_string":"2017-02-09T08:50:00.000Z","key":1486630200000,"doc_count":11},{"key_as_string":"2017-02-09T08:51:00.000Z","key":1486630260000,"doc_count":15},{"key_as_string":"2017-02-09T08:52:00.000Z","key":1486630320000,"doc_count":15},{"key_as_string":"2017-02-09T08:53:00.000Z","key":1486630380000,"doc_count":12},{"key_as_string":"2017-02-09T08:54:00.000Z","key":1486630440000,"doc_count":13},{"key_as_string":"2017-02-09T08:55:00.000Z","key":1486630500000,"doc_count":11},{"key_as_string":"2017-02-09T08:56:00.000Z","key":1486630560000,"doc_count":7},{"key_as_string":"2017-02-09T08:57:00.000Z","key":1486630620000,"doc_count":14},{"key_as_string":"2017-02-09T08:58:00.000Z","key":1486630680000,"doc_count":12},{"key_as_string":"2017-02-09T08:59:00.000Z","key":1486630740000,"doc_count":8},{"key_as_string":"2017-02-09T09:00:00.000Z","key":1486630800000,"doc_count":15},{"key_as_string":"2017-02-09T09:01:00.000Z","key":1486630860000,"doc_count":13},{"key_as_string":"2017-02-09T09:02:00.000Z","key":1486630920000,"doc_count":17},{"key_as_string":"2017-02-09T09:03:00.000Z","key":1486630980000,"doc_count":10},{"key_as_string":"2017-02-09T09:04:00.000Z","key":1486631040000,"doc_count":12},{"key_as_string":"2017-02-09T09:05:00.000Z","key":1486631100000,"doc_count":12},{"key_as_string":"2017-02-09T09:06:00.000Z","key":1486631160000,"doc_count":10},{"key_as_string":"2017-02-09T09:07:00.000Z","key":1486631220000,"doc_count":13},{"key_as_string":"2017-02-09T09:08:00.000Z","key":1486631280000,"doc_count":15},{"key_as_string":"2017-02-09T09:09:00.000Z","key":1486631340000,"doc_count":10},{"key_as_string":"2017-02-09T09:10:00.000Z","key":1486631400000,"doc_count":17},{"key_as_string":"2017-02-09T09:11:00.000Z","key":1486631460000,"doc_count":14},{"key_as_string":"2017-02-09T09:12:00.000Z","key":1486631520000,"doc_count":10},{"key_as_string":"2017-02-09T09:13:00.000Z","key":1486631580000,"doc_count":15},{"key_as_string":"2017-02-09T09:14:00.000Z","key":1486631640000,"doc_count":14},{"key_as_string":"2017-02-09T09:15:00.000Z","key":1486631700000,"doc_count":16},{"key_as_string":"2017-02-09T09:16:00.000Z","key":1486631760000,"doc_count":11},{"key_as_string":"2017-02-09T09:17:00.000Z","key":1486631820000,"doc_count":16},{"key_as_string":"2017-02-09T09:18:00.000Z","key":1486631880000,"doc_count":11},{"key_as_string":"2017-02-09T09:19:00.000Z","key":1486631940000,"doc_count":11},{"key_as_string":"2017-02-09T09:20:00.000Z","key":1486632000000,"doc_count":18},{"key_as_string":"2017-02-09T09:21:00.000Z","key":1486632060000,"doc_count":10},{"key_as_string":"2017-02-09T09:22:00.000Z","key":1486632120000,"doc_count":10},{"key_as_string":"2017-02-09T09:23:00.000Z","key":1486632180000,"doc_count":14},{"key_as_string":"2017-02-09T09:24:00.000Z","key":1486632240000,"doc_count":18},{"key_as_string":"2017-02-09T09:25:00.000Z","key":1486632300000,"doc_count":12},{"key_as_string":"2017-02-09T09:26:00.000Z","key":1486632360000,"doc_count":16},{"key_as_string":"2017-02-09T09:27:00.000Z","key":1486632420000,"doc_count":15},{"key_as_string":"2017-02-09T09:28:00.000Z","key":1486632480000,"doc_count":25},{"key_as_string":"2017-02-09T09:29:00.000Z","key":1486632540000,"doc_count":13},{"key_as_string":"2017-02-09T09:30:00.000Z","key":1486632600000,"doc_count":11},{"key_as_string":"2017-02-09T09:31:00.000Z","key":1486632660000,"doc_count":12},{"key_as_string":"2017-02-09T09:32:00.000Z","key":1486632720000,"doc_count":16},{"key_as_string":"2017-02-09T09:33:00.000Z","key":1486632780000,"doc_count":10},{"key_as_string":"2017-02-09T09:34:00.000Z","key":1486632840000,"doc_count":14},{"key_as_string":"2017-02-09T09:35:00.000Z","key":1486632900000,"doc_count":14},{"key_as_string":"2017-02-09T09:36:00.000Z","key":1486632960000,"doc_count":16},{"key_as_string":"2017-02-09T09:37:00.000Z","key":1486633020000,"doc_count":19},{"key_as_string":"2017-02-09T09:38:00.000Z","key":1486633080000,"doc_count":15},{"key_as_string":"2017-02-09T09:39:00.000Z","key":1486633140000,"doc_count":13},{"key_as_string":"2017-02-09T09:40:00.000Z","key":1486633200000,"doc_count":10},{"key_as_string":"2017-02-09T09:41:00.000Z","key":1486633260000,"doc_count":16},{"key_as_string":"2017-02-09T09:42:00.000Z","key":1486633320000,"doc_count":20},{"key_as_string":"2017-02-09T09:43:00.000Z","key":1486633380000,"doc_count":7},{"key_as_string":"2017-02-09T09:44:00.000Z","key":1486633440000,"doc_count":16},{"key_as_string":"2017-02-09T09:45:00.000Z","key":1486633500000,"doc_count":10},{"key_as_string":"2017-02-09T09:46:00.000Z","key":1486633560000,"doc_count":15},{"key_as_string":"2017-02-09T09:47:00.000Z","key":1486633620000,"doc_count":10},{"key_as_string":"2017-02-09T09:48:00.000Z","key":1486633680000,"doc_count":19},{"key_as_string":"2017-02-09T09:49:00.000Z","key":1486633740000,"doc_count":11},{"key_as_string":"2017-02-09T09:50:00.000Z","key":1486633800000,"doc_count":12},{"key_as_string":"2017-02-09T09:51:00.000Z","key":1486633860000,"doc_count":13},{"key_as_string":"2017-02-09T09:52:00.000Z","key":1486633920000,"doc_count":10},{"key_as_string":"2017-02-09T09:53:00.000Z","key":1486633980000,"doc_count":15},{"key_as_string":"2017-02-09T09:54:00.000Z","key":1486634040000,"doc_count":11},{"key_as_string":"2017-02-09T09:55:00.000Z","key":1486634100000,"doc_count":15},{"key_as_string":"2017-02-09T09:56:00.000Z","key":1486634160000,"doc_count":14},{"key_as_string":"2017-02-09T09:57:00.000Z","key":1486634220000,"doc_count":11},{"key_as_string":"2017-02-09T09:58:00.000Z","key":1486634280000,"doc_count":9},{"key_as_string":"2017-02-09T09:59:00.000Z","key":1486634340000,"doc_count":18},{"key_as_string":"2017-02-09T10:00:00.000Z","key":1486634400000,"doc_count":13},{"key_as_string":"2017-02-09T10:01:00.000Z","key":1486634460000,"doc_count":13},{"key_as_string":"2017-02-09T10:02:00.000Z","key":1486634520000,"doc_count":11},{"key_as_string":"2017-02-09T10:03:00.000Z","key":1486634580000,"doc_count":15},{"key_as_string":"2017-02-09T10:04:00.000Z","key":1486634640000,"doc_count":11},{"key_as_string":"2017-02-09T10:05:00.000Z","key":1486634700000,"doc_count":16},{"key_as_string":"2017-02-09T10:06:00.000Z","key":1486634760000,"doc_count":15},{"key_as_string":"2017-02-09T10:07:00.000Z","key":1486634820000,"doc_count":9},{"key_as_string":"2017-02-09T10:08:00.000Z","key":1486634880000,"doc_count":14},{"key_as_string":"2017-02-09T10:09:00.000Z","key":1486634940000,"doc_count":16},{"key_as_string":"2017-02-09T10:10:00.000Z","key":1486635000000,"doc_count":16},{"key_as_string":"2017-02-09T10:11:00.000Z","key":1486635060000,"doc_count":13},{"key_as_string":"2017-02-09T10:12:00.000Z","key":1486635120000,"doc_count":16},{"key_as_string":"2017-02-09T10:13:00.000Z","key":1486635180000,"doc_count":12},{"key_as_string":"2017-02-09T10:14:00.000Z","key":1486635240000,"doc_count":12},{"key_as_string":"2017-02-09T10:15:00.000Z","key":1486635300000,"doc_count":14},{"key_as_string":"2017-02-09T10:16:00.000Z","key":1486635360000,"doc_count":12},{"key_as_string":"2017-02-09T10:17:00.000Z","key":1486635420000,"doc_count":18},{"key_as_string":"2017-02-09T10:18:00.000Z","key":1486635480000,"doc_count":19},{"key_as_string":"2017-02-09T10:19:00.000Z","key":1486635540000,"doc_count":8},{"key_as_string":"2017-02-09T10:20:00.000Z","key":1486635600000,"doc_count":12},{"key_as_string":"2017-02-09T10:21:00.000Z","key":1486635660000,"doc_count":13},{"key_as_string":"2017-02-09T10:22:00.000Z","key":1486635720000,"doc_count":16},{"key_as_string":"2017-02-09T10:23:00.000Z","key":1486635780000,"doc_count":13},{"key_as_string":"2017-02-09T10:24:00.000Z","key":1486635840000,"doc_count":9},{"key_as_string":"2017-02-09T10:25:00.000Z","key":1486635900000,"doc_count":17},{"key_as_string":"2017-02-09T10:26:00.000Z","key":1486635960000,"doc_count":16},{"key_as_string":"2017-02-09T10:27:00.000Z","key":1486636020000,"doc_count":14},{"key_as_string":"2017-02-09T10:28:00.000Z","key":1486636080000,"doc_count":11},{"key_as_string":"2017-02-09T10:29:00.000Z","key":1486636140000,"doc_count":12},{"key_as_string":"2017-02-09T10:30:00.000Z","key":1486636200000,"doc_count":19},{"key_as_string":"2017-02-09T10:31:00.000Z","key":1486636260000,"doc_count":16},{"key_as_string":"2017-02-09T10:32:00.000Z","key":1486636320000,"doc_count":12},{"key_as_string":"2017-02-09T10:33:00.000Z","key":1486636380000,"doc_count":14},{"key_as_string":"2017-02-09T10:34:00.000Z","key":1486636440000,"doc_count":11},{"key_as_string":"2017-02-09T10:35:00.000Z","key":1486636500000,"doc_count":15},{"key_as_string":"2017-02-09T10:36:00.000Z","key":1486636560000,"doc_count":18},{"key_as_string":"2017-02-09T10:37:00.000Z","key":1486636620000,"doc_count":15},{"key_as_string":"2017-02-09T10:38:00.000Z","key":1486636680000,"doc_count":12},{"key_as_string":"2017-02-09T10:39:00.000Z","key":1486636740000,"doc_count":14},{"key_as_string":"2017-02-09T10:40:00.000Z","key":1486636800000,"doc_count":14},{"key_as_string":"2017-02-09T10:41:00.000Z","key":1486636860000,"doc_count":17},{"key_as_string":"2017-02-09T10:42:00.000Z","key":1486636920000,"doc_count":13},{"key_as_string":"2017-02-09T10:43:00.000Z","key":1486636980000,"doc_count":9},{"key_as_string":"2017-02-09T10:44:00.000Z","key":1486637040000,"doc_count":11},{"key_as_string":"2017-02-09T10:45:00.000Z","key":1486637100000,"doc_count":14},{"key_as_string":"2017-02-09T10:46:00.000Z","key":1486637160000,"doc_count":15},{"key_as_string":"2017-02-09T10:47:00.000Z","key":1486637220000,"doc_count":14},{"key_as_string":"2017-02-09T10:48:00.000Z","key":1486637280000,"doc_count":13},{"key_as_string":"2017-02-09T10:49:00.000Z","key":1486637340000,"doc_count":16},{"key_as_string":"2017-02-09T10:50:00.000Z","key":1486637400000,"doc_count":11},{"key_as_string":"2017-02-09T10:51:00.000Z","key":1486637460000,"doc_count":15},{"key_as_string":"2017-02-09T10:52:00.000Z","key":1486637520000,"doc_count":16},{"key_as_string":"2017-02-09T10:53:00.000Z","key":1486637580000,"doc_count":14},{"key_as_string":"2017-02-09T10:54:00.000Z","key":1486637640000,"doc_count":13},{"key_as_string":"2017-02-09T10:55:00.000Z","key":1486637700000,"doc_count":12},{"key_as_string":"2017-02-09T10:56:00.000Z","key":1486637760000,"doc_count":14},{"key_as_string":"2017-02-09T10:57:00.000Z","key":1486637820000,"doc_count":14},{"key_as_string":"2017-02-09T10:58:00.000Z","key":1486637880000,"doc_count":15},{"key_as_string":"2017-02-09T10:59:00.000Z","key":1486637940000,"doc_count":11},{"key_as_string":"2017-02-09T11:00:00.000Z","key":1486638000000,"doc_count":14},{"key_as_string":"2017-02-09T11:01:00.000Z","key":1486638060000,"doc_count":12},{"key_as_string":"2017-02-09T11:02:00.000Z","key":1486638120000,"doc_count":17},{"key_as_string":"2017-02-09T11:03:00.000Z","key":1486638180000,"doc_count":10},{"key_as_string":"2017-02-09T11:04:00.000Z","key":1486638240000,"doc_count":14},{"key_as_string":"2017-02-09T11:05:00.000Z","key":1486638300000,"doc_count":13},{"key_as_string":"2017-02-09T11:06:00.000Z","key":1486638360000,"doc_count":11},{"key_as_string":"2017-02-09T11:07:00.000Z","key":1486638420000,"doc_count":14},{"key_as_string":"2017-02-09T11:08:00.000Z","key":1486638480000,"doc_count":8},{"key_as_string":"2017-02-09T11:09:00.000Z","key":1486638540000,"doc_count":20},{"key_as_string":"2017-02-09T11:10:00.000Z","key":1486638600000,"doc_count":15},{"key_as_string":"2017-02-09T11:11:00.000Z","key":1486638660000,"doc_count":17},{"key_as_string":"2017-02-09T11:12:00.000Z","key":1486638720000,"doc_count":14},{"key_as_string":"2017-02-09T11:13:00.000Z","key":1486638780000,"doc_count":12},{"key_as_string":"2017-02-09T11:14:00.000Z","key":1486638840000,"doc_count":12},{"key_as_string":"2017-02-09T11:15:00.000Z","key":1486638900000,"doc_count":18},{"key_as_string":"2017-02-09T11:16:00.000Z","key":1486638960000,"doc_count":17},{"key_as_string":"2017-02-09T11:17:00.000Z","key":1486639020000,"doc_count":16},{"key_as_string":"2017-02-09T11:18:00.000Z","key":1486639080000,"doc_count":11},{"key_as_string":"2017-02-09T11:19:00.000Z","key":1486639140000,"doc_count":14},{"key_as_string":"2017-02-09T11:20:00.000Z","key":1486639200000,"doc_count":17},{"key_as_string":"2017-02-09T11:21:00.000Z","key":1486639260000,"doc_count":16},{"key_as_string":"2017-02-09T11:22:00.000Z","key":1486639320000,"doc_count":13},{"key_as_string":"2017-02-09T11:23:00.000Z","key":1486639380000,"doc_count":15},{"key_as_string":"2017-02-09T11:24:00.000Z","key":1486639440000,"doc_count":11},{"key_as_string":"2017-02-09T11:25:00.000Z","key":1486639500000,"doc_count":12},{"key_as_string":"2017-02-09T11:26:00.000Z","key":1486639560000,"doc_count":20},{"key_as_string":"2017-02-09T11:27:00.000Z","key":1486639620000,"doc_count":13},{"key_as_string":"2017-02-09T11:28:00.000Z","key":1486639680000,"doc_count":15},{"key_as_string":"2017-02-09T11:29:00.000Z","key":1486639740000,"doc_count":19},{"key_as_string":"2017-02-09T11:30:00.000Z","key":1486639800000,"doc_count":12},{"key_as_string":"2017-02-09T11:31:00.000Z","key":1486639860000,"doc_count":12},{"key_as_string":"2017-02-09T11:32:00.000Z","key":1486639920000,"doc_count":13},{"key_as_string":"2017-02-09T11:33:00.000Z","key":1486639980000,"doc_count":15},{"key_as_string":"2017-02-09T11:34:00.000Z","key":1486640040000,"doc_count":14},{"key_as_string":"2017-02-09T11:35:00.000Z","key":1486640100000,"doc_count":16},{"key_as_string":"2017-02-09T11:36:00.000Z","key":1486640160000,"doc_count":18},{"key_as_string":"2017-02-09T11:37:00.000Z","key":1486640220000,"doc_count":13},{"key_as_string":"2017-02-09T11:38:00.000Z","key":1486640280000,"doc_count":11},{"key_as_string":"2017-02-09T11:39:00.000Z","key":1486640340000,"doc_count":18},{"key_as_string":"2017-02-09T11:40:00.000Z","key":1486640400000,"doc_count":10},{"key_as_string":"2017-02-09T11:41:00.000Z","key":1486640460000,"doc_count":16},{"key_as_string":"2017-02-09T11:42:00.000Z","key":1486640520000,"doc_count":16},{"key_as_string":"2017-02-09T11:43:00.000Z","key":1486640580000,"doc_count":10},{"key_as_string":"2017-02-09T11:44:00.000Z","key":1486640640000,"doc_count":8},{"key_as_string":"2017-02-09T11:45:00.000Z","key":1486640700000,"doc_count":17},{"key_as_string":"2017-02-09T11:46:00.000Z","key":1486640760000,"doc_count":15},{"key_as_string":"2017-02-09T11:47:00.000Z","key":1486640820000,"doc_count":11},{"key_as_string":"2017-02-09T11:48:00.000Z","key":1486640880000,"doc_count":14},{"key_as_string":"2017-02-09T11:49:00.000Z","key":1486640940000,"doc_count":16},{"key_as_string":"2017-02-09T11:50:00.000Z","key":1486641000000,"doc_count":15},{"key_as_string":"2017-02-09T11:51:00.000Z","key":1486641060000,"doc_count":16},{"key_as_string":"2017-02-09T11:52:00.000Z","key":1486641120000,"doc_count":19},{"key_as_string":"2017-02-09T11:53:00.000Z","key":1486641180000,"doc_count":14},{"key_as_string":"2017-02-09T11:54:00.000Z","key":1486641240000,"doc_count":11},{"key_as_string":"2017-02-09T11:55:00.000Z","key":1486641300000,"doc_count":7},{"key_as_string":"2017-02-09T11:56:00.000Z","key":1486641360000,"doc_count":15},{"key_as_string":"2017-02-09T11:57:00.000Z","key":1486641420000,"doc_count":10},{"key_as_string":"2017-02-09T11:58:00.000Z","key":1486641480000,"doc_count":11},{"key_as_string":"2017-02-09T11:59:00.000Z","key":1486641540000,"doc_count":16},{"key_as_string":"2017-02-09T12:00:00.000Z","key":1486641600000,"doc_count":18},{"key_as_string":"2017-02-09T12:01:00.000Z","key":1486641660000,"doc_count":11},{"key_as_string":"2017-02-09T12:02:00.000Z","key":1486641720000,"doc_count":16},{"key_as_string":"2017-02-09T12:03:00.000Z","key":1486641780000,"doc_count":12},{"key_as_string":"2017-02-09T12:04:00.000Z","key":1486641840000,"doc_count":14},{"key_as_string":"2017-02-09T12:05:00.000Z","key":1486641900000,"doc_count":13},{"key_as_string":"2017-02-09T12:06:00.000Z","key":1486641960000,"doc_count":11},{"key_as_string":"2017-02-09T12:07:00.000Z","key":1486642020000,"doc_count":19},{"key_as_string":"2017-02-09T12:08:00.000Z","key":1486642080000,"doc_count":19},{"key_as_string":"2017-02-09T12:09:00.000Z","key":1486642140000,"doc_count":9},{"key_as_string":"2017-02-09T12:10:00.000Z","key":1486642200000,"doc_count":16},{"key_as_string":"2017-02-09T12:11:00.000Z","key":1486642260000,"doc_count":14},{"key_as_string":"2017-02-09T12:12:00.000Z","key":1486642320000,"doc_count":12},{"key_as_string":"2017-02-09T12:13:00.000Z","key":1486642380000,"doc_count":19},{"key_as_string":"2017-02-09T12:14:00.000Z","key":1486642440000,"doc_count":16},{"key_as_string":"2017-02-09T12:15:00.000Z","key":1486642500000,"doc_count":15},{"key_as_string":"2017-02-09T12:16:00.000Z","key":1486642560000,"doc_count":13},{"key_as_string":"2017-02-09T12:17:00.000Z","key":1486642620000,"doc_count":10},{"key_as_string":"2017-02-09T12:18:00.000Z","key":1486642680000,"doc_count":13},{"key_as_string":"2017-02-09T12:19:00.000Z","key":1486642740000,"doc_count":13},{"key_as_string":"2017-02-09T12:20:00.000Z","key":1486642800000,"doc_count":11},{"key_as_string":"2017-02-09T12:21:00.000Z","key":1486642860000,"doc_count":19},{"key_as_string":"2017-02-09T12:22:00.000Z","key":1486642920000,"doc_count":13},{"key_as_string":"2017-02-09T12:23:00.000Z","key":1486642980000,"doc_count":17},{"key_as_string":"2017-02-09T12:24:00.000Z","key":1486643040000,"doc_count":10},{"key_as_string":"2017-02-09T12:25:00.000Z","key":1486643100000,"doc_count":12},{"key_as_string":"2017-02-09T12:26:00.000Z","key":1486643160000,"doc_count":13},{"key_as_string":"2017-02-09T12:27:00.000Z","key":1486643220000,"doc_count":12},{"key_as_string":"2017-02-09T12:28:00.000Z","key":1486643280000,"doc_count":16},{"key_as_string":"2017-02-09T12:29:00.000Z","key":1486643340000,"doc_count":15},{"key_as_string":"2017-02-09T12:30:00.000Z","key":1486643400000,"doc_count":14},{"key_as_string":"2017-02-09T12:31:00.000Z","key":1486643460000,"doc_count":18},{"key_as_string":"2017-02-09T12:32:00.000Z","key":1486643520000,"doc_count":10},{"key_as_string":"2017-02-09T12:33:00.000Z","key":1486643580000,"doc_count":13},{"key_as_string":"2017-02-09T12:34:00.000Z","key":1486643640000,"doc_count":9},{"key_as_string":"2017-02-09T12:35:00.000Z","key":1486643700000,"doc_count":16},{"key_as_string":"2017-02-09T12:36:00.000Z","key":1486643760000,"doc_count":12},{"key_as_string":"2017-02-09T12:37:00.000Z","key":1486643820000,"doc_count":13},{"key_as_string":"2017-02-09T12:38:00.000Z","key":1486643880000,"doc_count":16},{"key_as_string":"2017-02-09T12:39:00.000Z","key":1486643940000,"doc_count":9},{"key_as_string":"2017-02-09T12:40:00.000Z","key":1486644000000,"doc_count":12},{"key_as_string":"2017-02-09T12:41:00.000Z","key":1486644060000,"doc_count":11},{"key_as_string":"2017-02-09T12:42:00.000Z","key":1486644120000,"doc_count":16},{"key_as_string":"2017-02-09T12:43:00.000Z","key":1486644180000,"doc_count":13},{"key_as_string":"2017-02-09T12:44:00.000Z","key":1486644240000,"doc_count":15},{"key_as_string":"2017-02-09T12:45:00.000Z","key":1486644300000,"doc_count":13},{"key_as_string":"2017-02-09T12:46:00.000Z","key":1486644360000,"doc_count":15},{"key_as_string":"2017-02-09T12:47:00.000Z","key":1486644420000,"doc_count":13},{"key_as_string":"2017-02-09T12:48:00.000Z","key":1486644480000,"doc_count":9},{"key_as_string":"2017-02-09T12:49:00.000Z","key":1486644540000,"doc_count":18},{"key_as_string":"2017-02-09T12:50:00.000Z","key":1486644600000,"doc_count":13},{"key_as_string":"2017-02-09T12:51:00.000Z","key":1486644660000,"doc_count":13},{"key_as_string":"2017-02-09T12:52:00.000Z","key":1486644720000,"doc_count":13},{"key_as_string":"2017-02-09T12:53:00.000Z","key":1486644780000,"doc_count":11},{"key_as_string":"2017-02-09T12:54:00.000Z","key":1486644840000,"doc_count":19},{"key_as_string":"2017-02-09T12:55:00.000Z","key":1486644900000,"doc_count":12},{"key_as_string":"2017-02-09T12:56:00.000Z","key":1486644960000,"doc_count":15},{"key_as_string":"2017-02-09T12:57:00.000Z","key":1486645020000,"doc_count":14},{"key_as_string":"2017-02-09T12:58:00.000Z","key":1486645080000,"doc_count":17},{"key_as_string":"2017-02-09T12:59:00.000Z","key":1486645140000,"doc_count":12},{"key_as_string":"2017-02-09T13:00:00.000Z","key":1486645200000,"doc_count":17},{"key_as_string":"2017-02-09T13:01:00.000Z","key":1486645260000,"doc_count":13},{"key_as_string":"2017-02-09T13:02:00.000Z","key":1486645320000,"doc_count":12},{"key_as_string":"2017-02-09T13:03:00.000Z","key":1486645380000,"doc_count":11},{"key_as_string":"2017-02-09T13:04:00.000Z","key":1486645440000,"doc_count":14},{"key_as_string":"2017-02-09T13:05:00.000Z","key":1486645500000,"doc_count":18},{"key_as_string":"2017-02-09T13:06:00.000Z","key":1486645560000,"doc_count":10},{"key_as_string":"2017-02-09T13:07:00.000Z","key":1486645620000,"doc_count":14},{"key_as_string":"2017-02-09T13:08:00.000Z","key":1486645680000,"doc_count":15},{"key_as_string":"2017-02-09T13:09:00.000Z","key":1486645740000,"doc_count":11},{"key_as_string":"2017-02-09T13:10:00.000Z","key":1486645800000,"doc_count":15},{"key_as_string":"2017-02-09T13:11:00.000Z","key":1486645860000,"doc_count":14},{"key_as_string":"2017-02-09T13:12:00.000Z","key":1486645920000,"doc_count":9},{"key_as_string":"2017-02-09T13:13:00.000Z","key":1486645980000,"doc_count":16},{"key_as_string":"2017-02-09T13:14:00.000Z","key":1486646040000,"doc_count":16},{"key_as_string":"2017-02-09T13:15:00.000Z","key":1486646100000,"doc_count":13},{"key_as_string":"2017-02-09T13:16:00.000Z","key":1486646160000,"doc_count":9},{"key_as_string":"2017-02-09T13:17:00.000Z","key":1486646220000,"doc_count":11},{"key_as_string":"2017-02-09T13:18:00.000Z","key":1486646280000,"doc_count":14},{"key_as_string":"2017-02-09T13:19:00.000Z","key":1486646340000,"doc_count":15},{"key_as_string":"2017-02-09T13:20:00.000Z","key":1486646400000,"doc_count":16},{"key_as_string":"2017-02-09T13:21:00.000Z","key":1486646460000,"doc_count":9},{"key_as_string":"2017-02-09T13:22:00.000Z","key":1486646520000,"doc_count":16},{"key_as_string":"2017-02-09T13:23:00.000Z","key":1486646580000,"doc_count":13},{"key_as_string":"2017-02-09T13:24:00.000Z","key":1486646640000,"doc_count":11},{"key_as_string":"2017-02-09T13:25:00.000Z","key":1486646700000,"doc_count":13},{"key_as_string":"2017-02-09T13:26:00.000Z","key":1486646760000,"doc_count":10},{"key_as_string":"2017-02-09T13:27:00.000Z","key":1486646820000,"doc_count":18},{"key_as_string":"2017-02-09T13:28:00.000Z","key":1486646880000,"doc_count":13},{"key_as_string":"2017-02-09T13:29:00.000Z","key":1486646940000,"doc_count":13},{"key_as_string":"2017-02-09T13:30:00.000Z","key":1486647000000,"doc_count":18},{"key_as_string":"2017-02-09T13:31:00.000Z","key":1486647060000,"doc_count":10},{"key_as_string":"2017-02-09T13:32:00.000Z","key":1486647120000,"doc_count":15},{"key_as_string":"2017-02-09T13:33:00.000Z","key":1486647180000,"doc_count":15},{"key_as_string":"2017-02-09T13:34:00.000Z","key":1486647240000,"doc_count":18},{"key_as_string":"2017-02-09T13:35:00.000Z","key":1486647300000,"doc_count":15},{"key_as_string":"2017-02-09T13:36:00.000Z","key":1486647360000,"doc_count":20},{"key_as_string":"2017-02-09T13:37:00.000Z","key":1486647420000,"doc_count":13},{"key_as_string":"2017-02-09T13:38:00.000Z","key":1486647480000,"doc_count":15},{"key_as_string":"2017-02-09T13:39:00.000Z","key":1486647540000,"doc_count":15},{"key_as_string":"2017-02-09T13:40:00.000Z","key":1486647600000,"doc_count":16},{"key_as_string":"2017-02-09T13:41:00.000Z","key":1486647660000,"doc_count":7},{"key_as_string":"2017-02-09T13:42:00.000Z","key":1486647720000,"doc_count":17},{"key_as_string":"2017-02-09T13:43:00.000Z","key":1486647780000,"doc_count":12},{"key_as_string":"2017-02-09T13:44:00.000Z","key":1486647840000,"doc_count":15},{"key_as_string":"2017-02-09T13:45:00.000Z","key":1486647900000,"doc_count":16},{"key_as_string":"2017-02-09T13:46:00.000Z","key":1486647960000,"doc_count":14},{"key_as_string":"2017-02-09T13:47:00.000Z","key":1486648020000,"doc_count":18},{"key_as_string":"2017-02-09T13:48:00.000Z","key":1486648080000,"doc_count":17},{"key_as_string":"2017-02-09T13:49:00.000Z","key":1486648140000,"doc_count":16},{"key_as_string":"2017-02-09T13:50:00.000Z","key":1486648200000,"doc_count":9},{"key_as_string":"2017-02-09T13:51:00.000Z","key":1486648260000,"doc_count":14},{"key_as_string":"2017-02-09T13:52:00.000Z","key":1486648320000,"doc_count":14},{"key_as_string":"2017-02-09T13:53:00.000Z","key":1486648380000,"doc_count":20},{"key_as_string":"2017-02-09T13:54:00.000Z","key":1486648440000,"doc_count":9},{"key_as_string":"2017-02-09T13:55:00.000Z","key":1486648500000,"doc_count":12},{"key_as_string":"2017-02-09T13:56:00.000Z","key":1486648560000,"doc_count":15},{"key_as_string":"2017-02-09T13:57:00.000Z","key":1486648620000,"doc_count":11},{"key_as_string":"2017-02-09T13:58:00.000Z","key":1486648680000,"doc_count":15},{"key_as_string":"2017-02-09T13:59:00.000Z","key":1486648740000,"doc_count":13},{"key_as_string":"2017-02-09T14:00:00.000Z","key":1486648800000,"doc_count":10},{"key_as_string":"2017-02-09T14:01:00.000Z","key":1486648860000,"doc_count":14},{"key_as_string":"2017-02-09T14:02:00.000Z","key":1486648920000,"doc_count":14},{"key_as_string":"2017-02-09T14:03:00.000Z","key":1486648980000,"doc_count":16},{"key_as_string":"2017-02-09T14:04:00.000Z","key":1486649040000,"doc_count":12},{"key_as_string":"2017-02-09T14:05:00.000Z","key":1486649100000,"doc_count":9},{"key_as_string":"2017-02-09T14:06:00.000Z","key":1486649160000,"doc_count":11},{"key_as_string":"2017-02-09T14:07:00.000Z","key":1486649220000,"doc_count":15},{"key_as_string":"2017-02-09T14:08:00.000Z","key":1486649280000,"doc_count":12},{"key_as_string":"2017-02-09T14:09:00.000Z","key":1486649340000,"doc_count":19},{"key_as_string":"2017-02-09T14:10:00.000Z","key":1486649400000,"doc_count":14},{"key_as_string":"2017-02-09T14:11:00.000Z","key":1486649460000,"doc_count":17},{"key_as_string":"2017-02-09T14:12:00.000Z","key":1486649520000,"doc_count":7},{"key_as_string":"2017-02-09T14:13:00.000Z","key":1486649580000,"doc_count":20},{"key_as_string":"2017-02-09T14:14:00.000Z","key":1486649640000,"doc_count":9},{"key_as_string":"2017-02-09T14:15:00.000Z","key":1486649700000,"doc_count":17},{"key_as_string":"2017-02-09T14:16:00.000Z","key":1486649760000,"doc_count":16},{"key_as_string":"2017-02-09T14:17:00.000Z","key":1486649820000,"doc_count":15},{"key_as_string":"2017-02-09T14:18:00.000Z","key":1486649880000,"doc_count":15},{"key_as_string":"2017-02-09T14:19:00.000Z","key":1486649940000,"doc_count":12},{"key_as_string":"2017-02-09T14:20:00.000Z","key":1486650000000,"doc_count":8},{"key_as_string":"2017-02-09T14:21:00.000Z","key":1486650060000,"doc_count":17},{"key_as_string":"2017-02-09T14:22:00.000Z","key":1486650120000,"doc_count":10},{"key_as_string":"2017-02-09T14:23:00.000Z","key":1486650180000,"doc_count":11},{"key_as_string":"2017-02-09T14:24:00.000Z","key":1486650240000,"doc_count":11},{"key_as_string":"2017-02-09T14:25:00.000Z","key":1486650300000,"doc_count":14},{"key_as_string":"2017-02-09T14:26:00.000Z","key":1486650360000,"doc_count":16},{"key_as_string":"2017-02-09T14:27:00.000Z","key":1486650420000,"doc_count":12},{"key_as_string":"2017-02-09T14:28:00.000Z","key":1486650480000,"doc_count":14},{"key_as_string":"2017-02-09T14:29:00.000Z","key":1486650540000,"doc_count":11},{"key_as_string":"2017-02-09T14:30:00.000Z","key":1486650600000,"doc_count":13},{"key_as_string":"2017-02-09T14:31:00.000Z","key":1486650660000,"doc_count":13},{"key_as_string":"2017-02-09T14:32:00.000Z","key":1486650720000,"doc_count":19},{"key_as_string":"2017-02-09T14:33:00.000Z","key":1486650780000,"doc_count":13},{"key_as_string":"2017-02-09T14:34:00.000Z","key":1486650840000,"doc_count":15},{"key_as_string":"2017-02-09T14:35:00.000Z","key":1486650900000,"doc_count":11},{"key_as_string":"2017-02-09T14:36:00.000Z","key":1486650960000,"doc_count":15},{"key_as_string":"2017-02-09T14:37:00.000Z","key":1486651020000,"doc_count":12},{"key_as_string":"2017-02-09T14:38:00.000Z","key":1486651080000,"doc_count":11},{"key_as_string":"2017-02-09T14:39:00.000Z","key":1486651140000,"doc_count":18},{"key_as_string":"2017-02-09T14:40:00.000Z","key":1486651200000,"doc_count":9},{"key_as_string":"2017-02-09T14:41:00.000Z","key":1486651260000,"doc_count":15},{"key_as_string":"2017-02-09T14:42:00.000Z","key":1486651320000,"doc_count":12},{"key_as_string":"2017-02-09T14:43:00.000Z","key":1486651380000,"doc_count":15},{"key_as_string":"2017-02-09T14:44:00.000Z","key":1486651440000,"doc_count":12},{"key_as_string":"2017-02-09T14:45:00.000Z","key":1486651500000,"doc_count":13},{"key_as_string":"2017-02-09T14:46:00.000Z","key":1486651560000,"doc_count":12},{"key_as_string":"2017-02-09T14:47:00.000Z","key":1486651620000,"doc_count":14},{"key_as_string":"2017-02-09T14:48:00.000Z","key":1486651680000,"doc_count":13},{"key_as_string":"2017-02-09T14:49:00.000Z","key":1486651740000,"doc_count":17},{"key_as_string":"2017-02-09T14:50:00.000Z","key":1486651800000,"doc_count":9},{"key_as_string":"2017-02-09T14:51:00.000Z","key":1486651860000,"doc_count":12},{"key_as_string":"2017-02-09T14:52:00.000Z","key":1486651920000,"doc_count":16},{"key_as_string":"2017-02-09T14:53:00.000Z","key":1486651980000,"doc_count":19},{"key_as_string":"2017-02-09T14:54:00.000Z","key":1486652040000,"doc_count":15},{"key_as_string":"2017-02-09T14:55:00.000Z","key":1486652100000,"doc_count":11},{"key_as_string":"2017-02-09T14:56:00.000Z","key":1486652160000,"doc_count":15},{"key_as_string":"2017-02-09T14:57:00.000Z","key":1486652220000,"doc_count":11},{"key_as_string":"2017-02-09T14:58:00.000Z","key":1486652280000,"doc_count":12},{"key_as_string":"2017-02-09T14:59:00.000Z","key":1486652340000,"doc_count":11},{"key_as_string":"2017-02-09T15:00:00.000Z","key":1486652400000,"doc_count":13},{"key_as_string":"2017-02-09T15:01:00.000Z","key":1486652460000,"doc_count":10},{"key_as_string":"2017-02-09T15:02:00.000Z","key":1486652520000,"doc_count":17},{"key_as_string":"2017-02-09T15:03:00.000Z","key":1486652580000,"doc_count":12},{"key_as_string":"2017-02-09T15:04:00.000Z","key":1486652640000,"doc_count":13},{"key_as_string":"2017-02-09T15:05:00.000Z","key":1486652700000,"doc_count":13},{"key_as_string":"2017-02-09T15:06:00.000Z","key":1486652760000,"doc_count":15},{"key_as_string":"2017-02-09T15:07:00.000Z","key":1486652820000,"doc_count":12},{"key_as_string":"2017-02-09T15:08:00.000Z","key":1486652880000,"doc_count":12},{"key_as_string":"2017-02-09T15:09:00.000Z","key":1486652940000,"doc_count":13},{"key_as_string":"2017-02-09T15:10:00.000Z","key":1486653000000,"doc_count":15},{"key_as_string":"2017-02-09T15:11:00.000Z","key":1486653060000,"doc_count":20},{"key_as_string":"2017-02-09T15:12:00.000Z","key":1486653120000,"doc_count":10},{"key_as_string":"2017-02-09T15:13:00.000Z","key":1486653180000,"doc_count":12},{"key_as_string":"2017-02-09T15:14:00.000Z","key":1486653240000,"doc_count":8},{"key_as_string":"2017-02-09T15:15:00.000Z","key":1486653300000,"doc_count":18},{"key_as_string":"2017-02-09T15:16:00.000Z","key":1486653360000,"doc_count":16},{"key_as_string":"2017-02-09T15:17:00.000Z","key":1486653420000,"doc_count":13},{"key_as_string":"2017-02-09T15:18:00.000Z","key":1486653480000,"doc_count":14},{"key_as_string":"2017-02-09T15:19:00.000Z","key":1486653540000,"doc_count":14},{"key_as_string":"2017-02-09T15:20:00.000Z","key":1486653600000,"doc_count":14},{"key_as_string":"2017-02-09T15:21:00.000Z","key":1486653660000,"doc_count":11},{"key_as_string":"2017-02-09T15:22:00.000Z","key":1486653720000,"doc_count":13},{"key_as_string":"2017-02-09T15:23:00.000Z","key":1486653780000,"doc_count":11},{"key_as_string":"2017-02-09T15:24:00.000Z","key":1486653840000,"doc_count":14},{"key_as_string":"2017-02-09T15:25:00.000Z","key":1486653900000,"doc_count":15},{"key_as_string":"2017-02-09T15:26:00.000Z","key":1486653960000,"doc_count":12},{"key_as_string":"2017-02-09T15:27:00.000Z","key":1486654020000,"doc_count":9},{"key_as_string":"2017-02-09T15:28:00.000Z","key":1486654080000,"doc_count":17},{"key_as_string":"2017-02-09T15:29:00.000Z","key":1486654140000,"doc_count":10},{"key_as_string":"2017-02-09T15:30:00.000Z","key":1486654200000,"doc_count":15},{"key_as_string":"2017-02-09T15:31:00.000Z","key":1486654260000,"doc_count":13},{"key_as_string":"2017-02-09T15:32:00.000Z","key":1486654320000,"doc_count":10},{"key_as_string":"2017-02-09T15:33:00.000Z","key":1486654380000,"doc_count":19},{"key_as_string":"2017-02-09T15:34:00.000Z","key":1486654440000,"doc_count":13},{"key_as_string":"2017-02-09T15:35:00.000Z","key":1486654500000,"doc_count":13},{"key_as_string":"2017-02-09T15:36:00.000Z","key":1486654560000,"doc_count":11},{"key_as_string":"2017-02-09T15:37:00.000Z","key":1486654620000,"doc_count":10},{"key_as_string":"2017-02-09T15:38:00.000Z","key":1486654680000,"doc_count":14},{"key_as_string":"2017-02-09T15:39:00.000Z","key":1486654740000,"doc_count":19},{"key_as_string":"2017-02-09T15:40:00.000Z","key":1486654800000,"doc_count":14},{"key_as_string":"2017-02-09T15:41:00.000Z","key":1486654860000,"doc_count":14},{"key_as_string":"2017-02-09T15:42:00.000Z","key":1486654920000,"doc_count":11},{"key_as_string":"2017-02-09T15:43:00.000Z","key":1486654980000,"doc_count":12},{"key_as_string":"2017-02-09T15:44:00.000Z","key":1486655040000,"doc_count":10},{"key_as_string":"2017-02-09T15:45:00.000Z","key":1486655100000,"doc_count":14},{"key_as_string":"2017-02-09T15:46:00.000Z","key":1486655160000,"doc_count":13},{"key_as_string":"2017-02-09T15:47:00.000Z","key":1486655220000,"doc_count":10},{"key_as_string":"2017-02-09T15:48:00.000Z","key":1486655280000,"doc_count":12},{"key_as_string":"2017-02-09T15:49:00.000Z","key":1486655340000,"doc_count":18},{"key_as_string":"2017-02-09T15:50:00.000Z","key":1486655400000,"doc_count":18},{"key_as_string":"2017-02-09T15:51:00.000Z","key":1486655460000,"doc_count":12},{"key_as_string":"2017-02-09T15:52:00.000Z","key":1486655520000,"doc_count":12},{"key_as_string":"2017-02-09T15:53:00.000Z","key":1486655580000,"doc_count":18},{"key_as_string":"2017-02-09T15:54:00.000Z","key":1486655640000,"doc_count":9},{"key_as_string":"2017-02-09T15:55:00.000Z","key":1486655700000,"doc_count":11},{"key_as_string":"2017-02-09T15:56:00.000Z","key":1486655760000,"doc_count":14},{"key_as_string":"2017-02-09T15:57:00.000Z","key":1486655820000,"doc_count":14},{"key_as_string":"2017-02-09T15:58:00.000Z","key":1486655880000,"doc_count":15},{"key_as_string":"2017-02-09T15:59:00.000Z","key":1486655940000,"doc_count":13},{"key_as_string":"2017-02-09T16:00:00.000Z","key":1486656000000,"doc_count":13},{"key_as_string":"2017-02-09T16:01:00.000Z","key":1486656060000,"doc_count":11},{"key_as_string":"2017-02-09T16:02:00.000Z","key":1486656120000,"doc_count":10},{"key_as_string":"2017-02-09T16:03:00.000Z","key":1486656180000,"doc_count":18},{"key_as_string":"2017-02-09T16:04:00.000Z","key":1486656240000,"doc_count":6},{"key_as_string":"2017-02-09T16:05:00.000Z","key":1486656300000,"doc_count":14},{"key_as_string":"2017-02-09T16:06:00.000Z","key":1486656360000,"doc_count":16},{"key_as_string":"2017-02-09T16:07:00.000Z","key":1486656420000,"doc_count":12},{"key_as_string":"2017-02-09T16:08:00.000Z","key":1486656480000,"doc_count":15},{"key_as_string":"2017-02-09T16:09:00.000Z","key":1486656540000,"doc_count":13},{"key_as_string":"2017-02-09T16:10:00.000Z","key":1486656600000,"doc_count":13},{"key_as_string":"2017-02-09T16:11:00.000Z","key":1486656660000,"doc_count":7},{"key_as_string":"2017-02-09T16:12:00.000Z","key":1486656720000,"doc_count":16},{"key_as_string":"2017-02-09T16:13:00.000Z","key":1486656780000,"doc_count":10},{"key_as_string":"2017-02-09T16:14:00.000Z","key":1486656840000,"doc_count":52},{"key_as_string":"2017-02-09T16:15:00.000Z","key":1486656900000,"doc_count":130},{"key_as_string":"2017-02-09T16:16:00.000Z","key":1486656960000,"doc_count":17},{"key_as_string":"2017-02-09T16:17:00.000Z","key":1486657020000,"doc_count":13},{"key_as_string":"2017-02-09T16:18:00.000Z","key":1486657080000,"doc_count":10},{"key_as_string":"2017-02-09T16:19:00.000Z","key":1486657140000,"doc_count":9},{"key_as_string":"2017-02-09T16:20:00.000Z","key":1486657200000,"doc_count":9},{"key_as_string":"2017-02-09T16:21:00.000Z","key":1486657260000,"doc_count":17},{"key_as_string":"2017-02-09T16:22:00.000Z","key":1486657320000,"doc_count":13},{"key_as_string":"2017-02-09T16:23:00.000Z","key":1486657380000,"doc_count":10},{"key_as_string":"2017-02-09T16:24:00.000Z","key":1486657440000,"doc_count":11},{"key_as_string":"2017-02-09T16:25:00.000Z","key":1486657500000,"doc_count":9},{"key_as_string":"2017-02-09T16:26:00.000Z","key":1486657560000,"doc_count":12},{"key_as_string":"2017-02-09T16:27:00.000Z","key":1486657620000,"doc_count":15},{"key_as_string":"2017-02-09T16:28:00.000Z","key":1486657680000,"doc_count":8},{"key_as_string":"2017-02-09T16:29:00.000Z","key":1486657740000,"doc_count":12},{"key_as_string":"2017-02-09T16:30:00.000Z","key":1486657800000,"doc_count":12},{"key_as_string":"2017-02-09T16:31:00.000Z","key":1486657860000,"doc_count":15},{"key_as_string":"2017-02-09T16:32:00.000Z","key":1486657920000,"doc_count":10},{"key_as_string":"2017-02-09T16:33:00.000Z","key":1486657980000,"doc_count":13},{"key_as_string":"2017-02-09T16:34:00.000Z","key":1486658040000,"doc_count":13},{"key_as_string":"2017-02-09T16:35:00.000Z","key":1486658100000,"doc_count":14},{"key_as_string":"2017-02-09T16:36:00.000Z","key":1486658160000,"doc_count":14},{"key_as_string":"2017-02-09T16:37:00.000Z","key":1486658220000,"doc_count":11},{"key_as_string":"2017-02-09T16:38:00.000Z","key":1486658280000,"doc_count":12},{"key_as_string":"2017-02-09T16:39:00.000Z","key":1486658340000,"doc_count":11},{"key_as_string":"2017-02-09T16:40:00.000Z","key":1486658400000,"doc_count":10},{"key_as_string":"2017-02-09T16:41:00.000Z","key":1486658460000,"doc_count":10},{"key_as_string":"2017-02-09T16:42:00.000Z","key":1486658520000,"doc_count":13},{"key_as_string":"2017-02-09T16:43:00.000Z","key":1486658580000,"doc_count":16},{"key_as_string":"2017-02-09T16:44:00.000Z","key":1486658640000,"doc_count":14},{"key_as_string":"2017-02-09T16:45:00.000Z","key":1486658700000,"doc_count":15},{"key_as_string":"2017-02-09T16:46:00.000Z","key":1486658760000,"doc_count":13},{"key_as_string":"2017-02-09T16:47:00.000Z","key":1486658820000,"doc_count":14},{"key_as_string":"2017-02-09T16:48:00.000Z","key":1486658880000,"doc_count":9},{"key_as_string":"2017-02-09T16:49:00.000Z","key":1486658940000,"doc_count":15},{"key_as_string":"2017-02-09T16:50:00.000Z","key":1486659000000,"doc_count":13},{"key_as_string":"2017-02-09T16:51:00.000Z","key":1486659060000,"doc_count":15},{"key_as_string":"2017-02-09T16:52:00.000Z","key":1486659120000,"doc_count":13},{"key_as_string":"2017-02-09T16:53:00.000Z","key":1486659180000,"doc_count":16},{"key_as_string":"2017-02-09T16:54:00.000Z","key":1486659240000,"doc_count":11},{"key_as_string":"2017-02-09T16:55:00.000Z","key":1486659300000,"doc_count":18},{"key_as_string":"2017-02-09T16:56:00.000Z","key":1486659360000,"doc_count":9},{"key_as_string":"2017-02-09T16:57:00.000Z","key":1486659420000,"doc_count":19},{"key_as_string":"2017-02-09T16:58:00.000Z","key":1486659480000,"doc_count":8},{"key_as_string":"2017-02-09T16:59:00.000Z","key":1486659540000,"doc_count":12},{"key_as_string":"2017-02-09T17:00:00.000Z","key":1486659600000,"doc_count":17},{"key_as_string":"2017-02-09T17:01:00.000Z","key":1486659660000,"doc_count":14},{"key_as_string":"2017-02-09T17:02:00.000Z","key":1486659720000,"doc_count":13},{"key_as_string":"2017-02-09T17:03:00.000Z","key":1486659780000,"doc_count":9},{"key_as_string":"2017-02-09T17:04:00.000Z","key":1486659840000,"doc_count":14},{"key_as_string":"2017-02-09T17:05:00.000Z","key":1486659900000,"doc_count":15},{"key_as_string":"2017-02-09T17:06:00.000Z","key":1486659960000,"doc_count":13},{"key_as_string":"2017-02-09T17:07:00.000Z","key":1486660020000,"doc_count":9},{"key_as_string":"2017-02-09T17:08:00.000Z","key":1486660080000,"doc_count":8},{"key_as_string":"2017-02-09T17:09:00.000Z","key":1486660140000,"doc_count":11},{"key_as_string":"2017-02-09T17:10:00.000Z","key":1486660200000,"doc_count":11},{"key_as_string":"2017-02-09T17:11:00.000Z","key":1486660260000,"doc_count":12},{"key_as_string":"2017-02-09T17:12:00.000Z","key":1486660320000,"doc_count":12},{"key_as_string":"2017-02-09T17:13:00.000Z","key":1486660380000,"doc_count":9},{"key_as_string":"2017-02-09T17:14:00.000Z","key":1486660440000,"doc_count":15},{"key_as_string":"2017-02-09T17:15:00.000Z","key":1486660500000,"doc_count":11},{"key_as_string":"2017-02-09T17:16:00.000Z","key":1486660560000,"doc_count":11},{"key_as_string":"2017-02-09T17:17:00.000Z","key":1486660620000,"doc_count":11},{"key_as_string":"2017-02-09T17:18:00.000Z","key":1486660680000,"doc_count":11},{"key_as_string":"2017-02-09T17:19:00.000Z","key":1486660740000,"doc_count":15},{"key_as_string":"2017-02-09T17:20:00.000Z","key":1486660800000,"doc_count":7},{"key_as_string":"2017-02-09T17:21:00.000Z","key":1486660860000,"doc_count":15},{"key_as_string":"2017-02-09T17:22:00.000Z","key":1486660920000,"doc_count":13},{"key_as_string":"2017-02-09T17:23:00.000Z","key":1486660980000,"doc_count":10},{"key_as_string":"2017-02-09T17:24:00.000Z","key":1486661040000,"doc_count":18},{"key_as_string":"2017-02-09T17:25:00.000Z","key":1486661100000,"doc_count":9},{"key_as_string":"2017-02-09T17:26:00.000Z","key":1486661160000,"doc_count":12},{"key_as_string":"2017-02-09T17:27:00.000Z","key":1486661220000,"doc_count":8},{"key_as_string":"2017-02-09T17:28:00.000Z","key":1486661280000,"doc_count":11},{"key_as_string":"2017-02-09T17:29:00.000Z","key":1486661340000,"doc_count":10},{"key_as_string":"2017-02-09T17:30:00.000Z","key":1486661400000,"doc_count":19},{"key_as_string":"2017-02-09T17:31:00.000Z","key":1486661460000,"doc_count":10},{"key_as_string":"2017-02-09T17:32:00.000Z","key":1486661520000,"doc_count":11},{"key_as_string":"2017-02-09T17:33:00.000Z","key":1486661580000,"doc_count":12},{"key_as_string":"2017-02-09T17:34:00.000Z","key":1486661640000,"doc_count":12},{"key_as_string":"2017-02-09T17:35:00.000Z","key":1486661700000,"doc_count":15},{"key_as_string":"2017-02-09T17:36:00.000Z","key":1486661760000,"doc_count":11},{"key_as_string":"2017-02-09T17:37:00.000Z","key":1486661820000,"doc_count":12},{"key_as_string":"2017-02-09T17:38:00.000Z","key":1486661880000,"doc_count":12},{"key_as_string":"2017-02-09T17:39:00.000Z","key":1486661940000,"doc_count":14},{"key_as_string":"2017-02-09T17:40:00.000Z","key":1486662000000,"doc_count":10},{"key_as_string":"2017-02-09T17:41:00.000Z","key":1486662060000,"doc_count":13},{"key_as_string":"2017-02-09T17:42:00.000Z","key":1486662120000,"doc_count":11},{"key_as_string":"2017-02-09T17:43:00.000Z","key":1486662180000,"doc_count":16},{"key_as_string":"2017-02-09T17:44:00.000Z","key":1486662240000,"doc_count":13},{"key_as_string":"2017-02-09T17:45:00.000Z","key":1486662300000,"doc_count":7},{"key_as_string":"2017-02-09T17:46:00.000Z","key":1486662360000,"doc_count":15},{"key_as_string":"2017-02-09T17:47:00.000Z","key":1486662420000,"doc_count":11},{"key_as_string":"2017-02-09T17:48:00.000Z","key":1486662480000,"doc_count":10},{"key_as_string":"2017-02-09T17:49:00.000Z","key":1486662540000,"doc_count":13},{"key_as_string":"2017-02-09T17:50:00.000Z","key":1486662600000,"doc_count":11},{"key_as_string":"2017-02-09T17:51:00.000Z","key":1486662660000,"doc_count":19},{"key_as_string":"2017-02-09T17:52:00.000Z","key":1486662720000,"doc_count":8},{"key_as_string":"2017-02-09T17:53:00.000Z","key":1486662780000,"doc_count":12},{"key_as_string":"2017-02-09T17:54:00.000Z","key":1486662840000,"doc_count":15},{"key_as_string":"2017-02-09T17:55:00.000Z","key":1486662900000,"doc_count":9},{"key_as_string":"2017-02-09T17:56:00.000Z","key":1486662960000,"doc_count":11},{"key_as_string":"2017-02-09T17:57:00.000Z","key":1486663020000,"doc_count":14},{"key_as_string":"2017-02-09T17:58:00.000Z","key":1486663080000,"doc_count":11},{"key_as_string":"2017-02-09T17:59:00.000Z","key":1486663140000,"doc_count":18},{"key_as_string":"2017-02-09T18:00:00.000Z","key":1486663200000,"doc_count":14},{"key_as_string":"2017-02-09T18:01:00.000Z","key":1486663260000,"doc_count":11},{"key_as_string":"2017-02-09T18:02:00.000Z","key":1486663320000,"doc_count":11},{"key_as_string":"2017-02-09T18:03:00.000Z","key":1486663380000,"doc_count":13},{"key_as_string":"2017-02-09T18:04:00.000Z","key":1486663440000,"doc_count":15},{"key_as_string":"2017-02-09T18:05:00.000Z","key":1486663500000,"doc_count":10},{"key_as_string":"2017-02-09T18:06:00.000Z","key":1486663560000,"doc_count":17},{"key_as_string":"2017-02-09T18:07:00.000Z","key":1486663620000,"doc_count":14},{"key_as_string":"2017-02-09T18:08:00.000Z","key":1486663680000,"doc_count":11},{"key_as_string":"2017-02-09T18:09:00.000Z","key":1486663740000,"doc_count":15},{"key_as_string":"2017-02-09T18:10:00.000Z","key":1486663800000,"doc_count":12},{"key_as_string":"2017-02-09T18:11:00.000Z","key":1486663860000,"doc_count":7},{"key_as_string":"2017-02-09T18:12:00.000Z","key":1486663920000,"doc_count":17},{"key_as_string":"2017-02-09T18:13:00.000Z","key":1486663980000,"doc_count":14},{"key_as_string":"2017-02-09T18:14:00.000Z","key":1486664040000,"doc_count":10},{"key_as_string":"2017-02-09T18:15:00.000Z","key":1486664100000,"doc_count":13},{"key_as_string":"2017-02-09T18:16:00.000Z","key":1486664160000,"doc_count":18},{"key_as_string":"2017-02-09T18:17:00.000Z","key":1486664220000,"doc_count":7},{"key_as_string":"2017-02-09T18:18:00.000Z","key":1486664280000,"doc_count":17},{"key_as_string":"2017-02-09T18:19:00.000Z","key":1486664340000,"doc_count":10},{"key_as_string":"2017-02-09T18:20:00.000Z","key":1486664400000,"doc_count":7},{"key_as_string":"2017-02-09T18:21:00.000Z","key":1486664460000,"doc_count":12},{"key_as_string":"2017-02-09T18:22:00.000Z","key":1486664520000,"doc_count":14},{"key_as_string":"2017-02-09T18:23:00.000Z","key":1486664580000,"doc_count":14},{"key_as_string":"2017-02-09T18:24:00.000Z","key":1486664640000,"doc_count":11},{"key_as_string":"2017-02-09T18:25:00.000Z","key":1486664700000,"doc_count":13},{"key_as_string":"2017-02-09T18:26:00.000Z","key":1486664760000,"doc_count":15},{"key_as_string":"2017-02-09T18:27:00.000Z","key":1486664820000,"doc_count":6},{"key_as_string":"2017-02-09T18:28:00.000Z","key":1486664880000,"doc_count":12},{"key_as_string":"2017-02-09T18:29:00.000Z","key":1486664940000,"doc_count":15},{"key_as_string":"2017-02-09T18:30:00.000Z","key":1486665000000,"doc_count":9},{"key_as_string":"2017-02-09T18:31:00.000Z","key":1486665060000,"doc_count":13},{"key_as_string":"2017-02-09T18:32:00.000Z","key":1486665120000,"doc_count":13},{"key_as_string":"2017-02-09T18:33:00.000Z","key":1486665180000,"doc_count":14},{"key_as_string":"2017-02-09T18:34:00.000Z","key":1486665240000,"doc_count":8},{"key_as_string":"2017-02-09T18:35:00.000Z","key":1486665300000,"doc_count":9},{"key_as_string":"2017-02-09T18:36:00.000Z","key":1486665360000,"doc_count":11},{"key_as_string":"2017-02-09T18:37:00.000Z","key":1486665420000,"doc_count":12},{"key_as_string":"2017-02-09T18:38:00.000Z","key":1486665480000,"doc_count":11},{"key_as_string":"2017-02-09T18:39:00.000Z","key":1486665540000,"doc_count":12},{"key_as_string":"2017-02-09T18:40:00.000Z","key":1486665600000,"doc_count":16},{"key_as_string":"2017-02-09T18:41:00.000Z","key":1486665660000,"doc_count":7},{"key_as_string":"2017-02-09T18:42:00.000Z","key":1486665720000,"doc_count":13},{"key_as_string":"2017-02-09T18:43:00.000Z","key":1486665780000,"doc_count":13},{"key_as_string":"2017-02-09T18:44:00.000Z","key":1486665840000,"doc_count":14},{"key_as_string":"2017-02-09T18:45:00.000Z","key":1486665900000,"doc_count":7},{"key_as_string":"2017-02-09T18:46:00.000Z","key":1486665960000,"doc_count":9},{"key_as_string":"2017-02-09T18:47:00.000Z","key":1486666020000,"doc_count":11},{"key_as_string":"2017-02-09T18:48:00.000Z","key":1486666080000,"doc_count":11},{"key_as_string":"2017-02-09T18:49:00.000Z","key":1486666140000,"doc_count":11},{"key_as_string":"2017-02-09T18:50:00.000Z","key":1486666200000,"doc_count":8},{"key_as_string":"2017-02-09T18:51:00.000Z","key":1486666260000,"doc_count":15},{"key_as_string":"2017-02-09T18:52:00.000Z","key":1486666320000,"doc_count":8},{"key_as_string":"2017-02-09T18:53:00.000Z","key":1486666380000,"doc_count":13},{"key_as_string":"2017-02-09T18:54:00.000Z","key":1486666440000,"doc_count":13},{"key_as_string":"2017-02-09T18:55:00.000Z","key":1486666500000,"doc_count":11},{"key_as_string":"2017-02-09T18:56:00.000Z","key":1486666560000,"doc_count":16},{"key_as_string":"2017-02-09T18:57:00.000Z","key":1486666620000,"doc_count":6},{"key_as_string":"2017-02-09T18:58:00.000Z","key":1486666680000,"doc_count":12},{"key_as_string":"2017-02-09T18:59:00.000Z","key":1486666740000,"doc_count":12},{"key_as_string":"2017-02-09T19:00:00.000Z","key":1486666800000,"doc_count":9},{"key_as_string":"2017-02-09T19:01:00.000Z","key":1486666860000,"doc_count":12},{"key_as_string":"2017-02-09T19:02:00.000Z","key":1486666920000,"doc_count":11},{"key_as_string":"2017-02-09T19:03:00.000Z","key":1486666980000,"doc_count":14},{"key_as_string":"2017-02-09T19:04:00.000Z","key":1486667040000,"doc_count":10},{"key_as_string":"2017-02-09T19:05:00.000Z","key":1486667100000,"doc_count":9},{"key_as_string":"2017-02-09T19:06:00.000Z","key":1486667160000,"doc_count":8},{"key_as_string":"2017-02-09T19:07:00.000Z","key":1486667220000,"doc_count":19},{"key_as_string":"2017-02-09T19:08:00.000Z","key":1486667280000,"doc_count":8},{"key_as_string":"2017-02-09T19:09:00.000Z","key":1486667340000,"doc_count":12},{"key_as_string":"2017-02-09T19:10:00.000Z","key":1486667400000,"doc_count":10},{"key_as_string":"2017-02-09T19:11:00.000Z","key":1486667460000,"doc_count":9},{"key_as_string":"2017-02-09T19:12:00.000Z","key":1486667520000,"doc_count":10},{"key_as_string":"2017-02-09T19:13:00.000Z","key":1486667580000,"doc_count":7},{"key_as_string":"2017-02-09T19:14:00.000Z","key":1486667640000,"doc_count":7},{"key_as_string":"2017-02-09T19:15:00.000Z","key":1486667700000,"doc_count":15},{"key_as_string":"2017-02-09T19:16:00.000Z","key":1486667760000,"doc_count":8},{"key_as_string":"2017-02-09T19:17:00.000Z","key":1486667820000,"doc_count":9},{"key_as_string":"2017-02-09T19:18:00.000Z","key":1486667880000,"doc_count":14},{"key_as_string":"2017-02-09T19:19:00.000Z","key":1486667940000,"doc_count":10},{"key_as_string":"2017-02-09T19:20:00.000Z","key":1486668000000,"doc_count":8},{"key_as_string":"2017-02-09T19:21:00.000Z","key":1486668060000,"doc_count":19},{"key_as_string":"2017-02-09T19:22:00.000Z","key":1486668120000,"doc_count":7},{"key_as_string":"2017-02-09T19:23:00.000Z","key":1486668180000,"doc_count":9},{"key_as_string":"2017-02-09T19:24:00.000Z","key":1486668240000,"doc_count":9},{"key_as_string":"2017-02-09T19:25:00.000Z","key":1486668300000,"doc_count":14},{"key_as_string":"2017-02-09T19:26:00.000Z","key":1486668360000,"doc_count":15},{"key_as_string":"2017-02-09T19:27:00.000Z","key":1486668420000,"doc_count":13},{"key_as_string":"2017-02-09T19:28:00.000Z","key":1486668480000,"doc_count":15},{"key_as_string":"2017-02-09T19:29:00.000Z","key":1486668540000,"doc_count":9},{"key_as_string":"2017-02-09T19:30:00.000Z","key":1486668600000,"doc_count":7},{"key_as_string":"2017-02-09T19:31:00.000Z","key":1486668660000,"doc_count":9},{"key_as_string":"2017-02-09T19:32:00.000Z","key":1486668720000,"doc_count":6},{"key_as_string":"2017-02-09T19:33:00.000Z","key":1486668780000,"doc_count":16},{"key_as_string":"2017-02-09T19:34:00.000Z","key":1486668840000,"doc_count":14},{"key_as_string":"2017-02-09T19:35:00.000Z","key":1486668900000,"doc_count":12},{"key_as_string":"2017-02-09T19:36:00.000Z","key":1486668960000,"doc_count":12},{"key_as_string":"2017-02-09T19:37:00.000Z","key":1486669020000,"doc_count":11},{"key_as_string":"2017-02-09T19:38:00.000Z","key":1486669080000,"doc_count":12},{"key_as_string":"2017-02-09T19:39:00.000Z","key":1486669140000,"doc_count":13},{"key_as_string":"2017-02-09T19:40:00.000Z","key":1486669200000,"doc_count":6},{"key_as_string":"2017-02-09T19:41:00.000Z","key":1486669260000,"doc_count":14},{"key_as_string":"2017-02-09T19:42:00.000Z","key":1486669320000,"doc_count":15},{"key_as_string":"2017-02-09T19:43:00.000Z","key":1486669380000,"doc_count":9},{"key_as_string":"2017-02-09T19:44:00.000Z","key":1486669440000,"doc_count":7},{"key_as_string":"2017-02-09T19:45:00.000Z","key":1486669500000,"doc_count":15},{"key_as_string":"2017-02-09T19:46:00.000Z","key":1486669560000,"doc_count":10},{"key_as_string":"2017-02-09T19:47:00.000Z","key":1486669620000,"doc_count":9},{"key_as_string":"2017-02-09T19:48:00.000Z","key":1486669680000,"doc_count":9},{"key_as_string":"2017-02-09T19:49:00.000Z","key":1486669740000,"doc_count":14},{"key_as_string":"2017-02-09T19:50:00.000Z","key":1486669800000,"doc_count":8},{"key_as_string":"2017-02-09T19:51:00.000Z","key":1486669860000,"doc_count":12},{"key_as_string":"2017-02-09T19:52:00.000Z","key":1486669920000,"doc_count":8},{"key_as_string":"2017-02-09T19:53:00.000Z","key":1486669980000,"doc_count":6},{"key_as_string":"2017-02-09T19:54:00.000Z","key":1486670040000,"doc_count":13},{"key_as_string":"2017-02-09T19:55:00.000Z","key":1486670100000,"doc_count":14},{"key_as_string":"2017-02-09T19:56:00.000Z","key":1486670160000,"doc_count":10},{"key_as_string":"2017-02-09T19:57:00.000Z","key":1486670220000,"doc_count":15},{"key_as_string":"2017-02-09T19:58:00.000Z","key":1486670280000,"doc_count":11},{"key_as_string":"2017-02-09T19:59:00.000Z","key":1486670340000,"doc_count":11},{"key_as_string":"2017-02-09T20:00:00.000Z","key":1486670400000,"doc_count":14},{"key_as_string":"2017-02-09T20:01:00.000Z","key":1486670460000,"doc_count":16},{"key_as_string":"2017-02-09T20:02:00.000Z","key":1486670520000,"doc_count":11},{"key_as_string":"2017-02-09T20:03:00.000Z","key":1486670580000,"doc_count":11},{"key_as_string":"2017-02-09T20:04:00.000Z","key":1486670640000,"doc_count":14},{"key_as_string":"2017-02-09T20:05:00.000Z","key":1486670700000,"doc_count":6},{"key_as_string":"2017-02-09T20:06:00.000Z","key":1486670760000,"doc_count":12},{"key_as_string":"2017-02-09T20:07:00.000Z","key":1486670820000,"doc_count":14},{"key_as_string":"2017-02-09T20:08:00.000Z","key":1486670880000,"doc_count":11},{"key_as_string":"2017-02-09T20:09:00.000Z","key":1486670940000,"doc_count":15},{"key_as_string":"2017-02-09T20:10:00.000Z","key":1486671000000,"doc_count":14},{"key_as_string":"2017-02-09T20:11:00.000Z","key":1486671060000,"doc_count":13},{"key_as_string":"2017-02-09T20:12:00.000Z","key":1486671120000,"doc_count":10},{"key_as_string":"2017-02-09T20:13:00.000Z","key":1486671180000,"doc_count":12},{"key_as_string":"2017-02-09T20:14:00.000Z","key":1486671240000,"doc_count":10},{"key_as_string":"2017-02-09T20:15:00.000Z","key":1486671300000,"doc_count":9},{"key_as_string":"2017-02-09T20:16:00.000Z","key":1486671360000,"doc_count":12},{"key_as_string":"2017-02-09T20:17:00.000Z","key":1486671420000,"doc_count":9},{"key_as_string":"2017-02-09T20:18:00.000Z","key":1486671480000,"doc_count":14},{"key_as_string":"2017-02-09T20:19:00.000Z","key":1486671540000,"doc_count":12},{"key_as_string":"2017-02-09T20:20:00.000Z","key":1486671600000,"doc_count":11},{"key_as_string":"2017-02-09T20:21:00.000Z","key":1486671660000,"doc_count":10},{"key_as_string":"2017-02-09T20:22:00.000Z","key":1486671720000,"doc_count":14},{"key_as_string":"2017-02-09T20:23:00.000Z","key":1486671780000,"doc_count":10},{"key_as_string":"2017-02-09T20:24:00.000Z","key":1486671840000,"doc_count":12},{"key_as_string":"2017-02-09T20:25:00.000Z","key":1486671900000,"doc_count":8},{"key_as_string":"2017-02-09T20:26:00.000Z","key":1486671960000,"doc_count":14},{"key_as_string":"2017-02-09T20:27:00.000Z","key":1486672020000,"doc_count":7},{"key_as_string":"2017-02-09T20:28:00.000Z","key":1486672080000,"doc_count":12},{"key_as_string":"2017-02-09T20:29:00.000Z","key":1486672140000,"doc_count":11},{"key_as_string":"2017-02-09T20:30:00.000Z","key":1486672200000,"doc_count":15},{"key_as_string":"2017-02-09T20:31:00.000Z","key":1486672260000,"doc_count":11},{"key_as_string":"2017-02-09T20:32:00.000Z","key":1486672320000,"doc_count":11},{"key_as_string":"2017-02-09T20:33:00.000Z","key":1486672380000,"doc_count":7},{"key_as_string":"2017-02-09T20:34:00.000Z","key":1486672440000,"doc_count":10},{"key_as_string":"2017-02-09T20:35:00.000Z","key":1486672500000,"doc_count":13},{"key_as_string":"2017-02-09T20:36:00.000Z","key":1486672560000,"doc_count":6},{"key_as_string":"2017-02-09T20:37:00.000Z","key":1486672620000,"doc_count":9},{"key_as_string":"2017-02-09T20:38:00.000Z","key":1486672680000,"doc_count":7},{"key_as_string":"2017-02-09T20:39:00.000Z","key":1486672740000,"doc_count":10},{"key_as_string":"2017-02-09T20:40:00.000Z","key":1486672800000,"doc_count":8},{"key_as_string":"2017-02-09T20:41:00.000Z","key":1486672860000,"doc_count":12},{"key_as_string":"2017-02-09T20:42:00.000Z","key":1486672920000,"doc_count":6},{"key_as_string":"2017-02-09T20:43:00.000Z","key":1486672980000,"doc_count":14},{"key_as_string":"2017-02-09T20:44:00.000Z","key":1486673040000,"doc_count":6},{"key_as_string":"2017-02-09T20:45:00.000Z","key":1486673100000,"doc_count":8},{"key_as_string":"2017-02-09T20:46:00.000Z","key":1486673160000,"doc_count":14},{"key_as_string":"2017-02-09T20:47:00.000Z","key":1486673220000,"doc_count":10},{"key_as_string":"2017-02-09T20:48:00.000Z","key":1486673280000,"doc_count":9},{"key_as_string":"2017-02-09T20:49:00.000Z","key":1486673340000,"doc_count":11},{"key_as_string":"2017-02-09T20:50:00.000Z","key":1486673400000,"doc_count":14},{"key_as_string":"2017-02-09T20:51:00.000Z","key":1486673460000,"doc_count":6},{"key_as_string":"2017-02-09T20:52:00.000Z","key":1486673520000,"doc_count":9},{"key_as_string":"2017-02-09T20:53:00.000Z","key":1486673580000,"doc_count":10},{"key_as_string":"2017-02-09T20:54:00.000Z","key":1486673640000,"doc_count":13},{"key_as_string":"2017-02-09T20:55:00.000Z","key":1486673700000,"doc_count":11},{"key_as_string":"2017-02-09T20:56:00.000Z","key":1486673760000,"doc_count":6},{"key_as_string":"2017-02-09T20:57:00.000Z","key":1486673820000,"doc_count":10},{"key_as_string":"2017-02-09T20:58:00.000Z","key":1486673880000,"doc_count":10},{"key_as_string":"2017-02-09T20:59:00.000Z","key":1486673940000,"doc_count":9},{"key_as_string":"2017-02-09T21:00:00.000Z","key":1486674000000,"doc_count":17},{"key_as_string":"2017-02-09T21:01:00.000Z","key":1486674060000,"doc_count":11},{"key_as_string":"2017-02-09T21:02:00.000Z","key":1486674120000,"doc_count":10},{"key_as_string":"2017-02-09T21:03:00.000Z","key":1486674180000,"doc_count":9},{"key_as_string":"2017-02-09T21:04:00.000Z","key":1486674240000,"doc_count":14},{"key_as_string":"2017-02-09T21:05:00.000Z","key":1486674300000,"doc_count":10},{"key_as_string":"2017-02-09T21:06:00.000Z","key":1486674360000,"doc_count":12},{"key_as_string":"2017-02-09T21:07:00.000Z","key":1486674420000,"doc_count":9},{"key_as_string":"2017-02-09T21:08:00.000Z","key":1486674480000,"doc_count":11},{"key_as_string":"2017-02-09T21:09:00.000Z","key":1486674540000,"doc_count":11},{"key_as_string":"2017-02-09T21:10:00.000Z","key":1486674600000,"doc_count":11},{"key_as_string":"2017-02-09T21:11:00.000Z","key":1486674660000,"doc_count":10},{"key_as_string":"2017-02-09T21:12:00.000Z","key":1486674720000,"doc_count":9},{"key_as_string":"2017-02-09T21:13:00.000Z","key":1486674780000,"doc_count":13},{"key_as_string":"2017-02-09T21:14:00.000Z","key":1486674840000,"doc_count":9},{"key_as_string":"2017-02-09T21:15:00.000Z","key":1486674900000,"doc_count":8},{"key_as_string":"2017-02-09T21:16:00.000Z","key":1486674960000,"doc_count":11},{"key_as_string":"2017-02-09T21:17:00.000Z","key":1486675020000,"doc_count":12},{"key_as_string":"2017-02-09T21:18:00.000Z","key":1486675080000,"doc_count":7},{"key_as_string":"2017-02-09T21:19:00.000Z","key":1486675140000,"doc_count":14},{"key_as_string":"2017-02-09T21:20:00.000Z","key":1486675200000,"doc_count":15},{"key_as_string":"2017-02-09T21:21:00.000Z","key":1486675260000,"doc_count":5},{"key_as_string":"2017-02-09T21:22:00.000Z","key":1486675320000,"doc_count":8},{"key_as_string":"2017-02-09T21:23:00.000Z","key":1486675380000,"doc_count":15},{"key_as_string":"2017-02-09T21:24:00.000Z","key":1486675440000,"doc_count":9},{"key_as_string":"2017-02-09T21:25:00.000Z","key":1486675500000,"doc_count":14},{"key_as_string":"2017-02-09T21:26:00.000Z","key":1486675560000,"doc_count":12},{"key_as_string":"2017-02-09T21:27:00.000Z","key":1486675620000,"doc_count":8},{"key_as_string":"2017-02-09T21:28:00.000Z","key":1486675680000,"doc_count":12},{"key_as_string":"2017-02-09T21:29:00.000Z","key":1486675740000,"doc_count":10},{"key_as_string":"2017-02-09T21:30:00.000Z","key":1486675800000,"doc_count":10},{"key_as_string":"2017-02-09T21:31:00.000Z","key":1486675860000,"doc_count":11},{"key_as_string":"2017-02-09T21:32:00.000Z","key":1486675920000,"doc_count":10},{"key_as_string":"2017-02-09T21:33:00.000Z","key":1486675980000,"doc_count":9},{"key_as_string":"2017-02-09T21:34:00.000Z","key":1486676040000,"doc_count":10},{"key_as_string":"2017-02-09T21:35:00.000Z","key":1486676100000,"doc_count":11},{"key_as_string":"2017-02-09T21:36:00.000Z","key":1486676160000,"doc_count":11},{"key_as_string":"2017-02-09T21:37:00.000Z","key":1486676220000,"doc_count":8},{"key_as_string":"2017-02-09T21:38:00.000Z","key":1486676280000,"doc_count":12},{"key_as_string":"2017-02-09T21:39:00.000Z","key":1486676340000,"doc_count":9},{"key_as_string":"2017-02-09T21:40:00.000Z","key":1486676400000,"doc_count":8},{"key_as_string":"2017-02-09T21:41:00.000Z","key":1486676460000,"doc_count":10},{"key_as_string":"2017-02-09T21:42:00.000Z","key":1486676520000,"doc_count":8},{"key_as_string":"2017-02-09T21:43:00.000Z","key":1486676580000,"doc_count":12},{"key_as_string":"2017-02-09T21:44:00.000Z","key":1486676640000,"doc_count":10},{"key_as_string":"2017-02-09T21:45:00.000Z","key":1486676700000,"doc_count":14},{"key_as_string":"2017-02-09T21:46:00.000Z","key":1486676760000,"doc_count":11},{"key_as_string":"2017-02-09T21:47:00.000Z","key":1486676820000,"doc_count":8},{"key_as_string":"2017-02-09T21:48:00.000Z","key":1486676880000,"doc_count":12},{"key_as_string":"2017-02-09T21:49:00.000Z","key":1486676940000,"doc_count":12},{"key_as_string":"2017-02-09T21:50:00.000Z","key":1486677000000,"doc_count":9},{"key_as_string":"2017-02-09T21:51:00.000Z","key":1486677060000,"doc_count":11},{"key_as_string":"2017-02-09T21:52:00.000Z","key":1486677120000,"doc_count":10},{"key_as_string":"2017-02-09T21:53:00.000Z","key":1486677180000,"doc_count":11},{"key_as_string":"2017-02-09T21:54:00.000Z","key":1486677240000,"doc_count":14},{"key_as_string":"2017-02-09T21:55:00.000Z","key":1486677300000,"doc_count":9},{"key_as_string":"2017-02-09T21:56:00.000Z","key":1486677360000,"doc_count":8},{"key_as_string":"2017-02-09T21:57:00.000Z","key":1486677420000,"doc_count":10},{"key_as_string":"2017-02-09T21:58:00.000Z","key":1486677480000,"doc_count":8},{"key_as_string":"2017-02-09T21:59:00.000Z","key":1486677540000,"doc_count":16},{"key_as_string":"2017-02-09T22:00:00.000Z","key":1486677600000,"doc_count":11},{"key_as_string":"2017-02-09T22:01:00.000Z","key":1486677660000,"doc_count":7},{"key_as_string":"2017-02-09T22:02:00.000Z","key":1486677720000,"doc_count":13},{"key_as_string":"2017-02-09T22:03:00.000Z","key":1486677780000,"doc_count":12},{"key_as_string":"2017-02-09T22:04:00.000Z","key":1486677840000,"doc_count":9},{"key_as_string":"2017-02-09T22:05:00.000Z","key":1486677900000,"doc_count":14},{"key_as_string":"2017-02-09T22:06:00.000Z","key":1486677960000,"doc_count":8},{"key_as_string":"2017-02-09T22:07:00.000Z","key":1486678020000,"doc_count":9},{"key_as_string":"2017-02-09T22:08:00.000Z","key":1486678080000,"doc_count":15},{"key_as_string":"2017-02-09T22:09:00.000Z","key":1486678140000,"doc_count":10},{"key_as_string":"2017-02-09T22:10:00.000Z","key":1486678200000,"doc_count":7},{"key_as_string":"2017-02-09T22:11:00.000Z","key":1486678260000,"doc_count":11},{"key_as_string":"2017-02-09T22:12:00.000Z","key":1486678320000,"doc_count":8},{"key_as_string":"2017-02-09T22:13:00.000Z","key":1486678380000,"doc_count":13},{"key_as_string":"2017-02-09T22:14:00.000Z","key":1486678440000,"doc_count":12},{"key_as_string":"2017-02-09T22:15:00.000Z","key":1486678500000,"doc_count":6},{"key_as_string":"2017-02-09T22:16:00.000Z","key":1486678560000,"doc_count":9},{"key_as_string":"2017-02-09T22:17:00.000Z","key":1486678620000,"doc_count":13},{"key_as_string":"2017-02-09T22:18:00.000Z","key":1486678680000,"doc_count":12},{"key_as_string":"2017-02-09T22:19:00.000Z","key":1486678740000,"doc_count":9},{"key_as_string":"2017-02-09T22:20:00.000Z","key":1486678800000,"doc_count":7},{"key_as_string":"2017-02-09T22:21:00.000Z","key":1486678860000,"doc_count":8},{"key_as_string":"2017-02-09T22:22:00.000Z","key":1486678920000,"doc_count":12},{"key_as_string":"2017-02-09T22:23:00.000Z","key":1486678980000,"doc_count":7},{"key_as_string":"2017-02-09T22:24:00.000Z","key":1486679040000,"doc_count":15},{"key_as_string":"2017-02-09T22:25:00.000Z","key":1486679100000,"doc_count":12},{"key_as_string":"2017-02-09T22:26:00.000Z","key":1486679160000,"doc_count":12},{"key_as_string":"2017-02-09T22:27:00.000Z","key":1486679220000,"doc_count":12},{"key_as_string":"2017-02-09T22:28:00.000Z","key":1486679280000,"doc_count":11},{"key_as_string":"2017-02-09T22:29:00.000Z","key":1486679340000,"doc_count":7},{"key_as_string":"2017-02-09T22:30:00.000Z","key":1486679400000,"doc_count":9},{"key_as_string":"2017-02-09T22:31:00.000Z","key":1486679460000,"doc_count":10},{"key_as_string":"2017-02-09T22:32:00.000Z","key":1486679520000,"doc_count":14},{"key_as_string":"2017-02-09T22:33:00.000Z","key":1486679580000,"doc_count":10},{"key_as_string":"2017-02-09T22:34:00.000Z","key":1486679640000,"doc_count":14},{"key_as_string":"2017-02-09T22:35:00.000Z","key":1486679700000,"doc_count":13},{"key_as_string":"2017-02-09T22:36:00.000Z","key":1486679760000,"doc_count":9},{"key_as_string":"2017-02-09T22:37:00.000Z","key":1486679820000,"doc_count":7},{"key_as_string":"2017-02-09T22:38:00.000Z","key":1486679880000,"doc_count":11},{"key_as_string":"2017-02-09T22:39:00.000Z","key":1486679940000,"doc_count":8},{"key_as_string":"2017-02-09T22:40:00.000Z","key":1486680000000,"doc_count":9},{"key_as_string":"2017-02-09T22:41:00.000Z","key":1486680060000,"doc_count":9},{"key_as_string":"2017-02-09T22:42:00.000Z","key":1486680120000,"doc_count":15},{"key_as_string":"2017-02-09T22:43:00.000Z","key":1486680180000,"doc_count":8},{"key_as_string":"2017-02-09T22:44:00.000Z","key":1486680240000,"doc_count":7},{"key_as_string":"2017-02-09T22:45:00.000Z","key":1486680300000,"doc_count":10},{"key_as_string":"2017-02-09T22:46:00.000Z","key":1486680360000,"doc_count":13},{"key_as_string":"2017-02-09T22:47:00.000Z","key":1486680420000,"doc_count":14},{"key_as_string":"2017-02-09T22:48:00.000Z","key":1486680480000,"doc_count":7},{"key_as_string":"2017-02-09T22:49:00.000Z","key":1486680540000,"doc_count":8},{"key_as_string":"2017-02-09T22:50:00.000Z","key":1486680600000,"doc_count":12},{"key_as_string":"2017-02-09T22:51:00.000Z","key":1486680660000,"doc_count":9},{"key_as_string":"2017-02-09T22:52:00.000Z","key":1486680720000,"doc_count":9},{"key_as_string":"2017-02-09T22:53:00.000Z","key":1486680780000,"doc_count":6},{"key_as_string":"2017-02-09T22:54:00.000Z","key":1486680840000,"doc_count":17},{"key_as_string":"2017-02-09T22:55:00.000Z","key":1486680900000,"doc_count":10},{"key_as_string":"2017-02-09T22:56:00.000Z","key":1486680960000,"doc_count":9},{"key_as_string":"2017-02-09T22:57:00.000Z","key":1486681020000,"doc_count":12},{"key_as_string":"2017-02-09T22:58:00.000Z","key":1486681080000,"doc_count":10},{"key_as_string":"2017-02-09T22:59:00.000Z","key":1486681140000,"doc_count":11},{"key_as_string":"2017-02-09T23:00:00.000Z","key":1486681200000,"doc_count":6},{"key_as_string":"2017-02-09T23:01:00.000Z","key":1486681260000,"doc_count":11},{"key_as_string":"2017-02-09T23:02:00.000Z","key":1486681320000,"doc_count":11},{"key_as_string":"2017-02-09T23:03:00.000Z","key":1486681380000,"doc_count":13},{"key_as_string":"2017-02-09T23:04:00.000Z","key":1486681440000,"doc_count":16},{"key_as_string":"2017-02-09T23:05:00.000Z","key":1486681500000,"doc_count":10},{"key_as_string":"2017-02-09T23:06:00.000Z","key":1486681560000,"doc_count":9},{"key_as_string":"2017-02-09T23:07:00.000Z","key":1486681620000,"doc_count":6},{"key_as_string":"2017-02-09T23:08:00.000Z","key":1486681680000,"doc_count":11},{"key_as_string":"2017-02-09T23:09:00.000Z","key":1486681740000,"doc_count":12},{"key_as_string":"2017-02-09T23:10:00.000Z","key":1486681800000,"doc_count":4},{"key_as_string":"2017-02-09T23:11:00.000Z","key":1486681860000,"doc_count":12},{"key_as_string":"2017-02-09T23:12:00.000Z","key":1486681920000,"doc_count":12},{"key_as_string":"2017-02-09T23:13:00.000Z","key":1486681980000,"doc_count":8},{"key_as_string":"2017-02-09T23:14:00.000Z","key":1486682040000,"doc_count":12},{"key_as_string":"2017-02-09T23:15:00.000Z","key":1486682100000,"doc_count":8},{"key_as_string":"2017-02-09T23:16:00.000Z","key":1486682160000,"doc_count":11},{"key_as_string":"2017-02-09T23:17:00.000Z","key":1486682220000,"doc_count":12},{"key_as_string":"2017-02-09T23:18:00.000Z","key":1486682280000,"doc_count":6},{"key_as_string":"2017-02-09T23:19:00.000Z","key":1486682340000,"doc_count":13},{"key_as_string":"2017-02-09T23:20:00.000Z","key":1486682400000,"doc_count":9},{"key_as_string":"2017-02-09T23:21:00.000Z","key":1486682460000,"doc_count":7},{"key_as_string":"2017-02-09T23:22:00.000Z","key":1486682520000,"doc_count":18},{"key_as_string":"2017-02-09T23:23:00.000Z","key":1486682580000,"doc_count":6},{"key_as_string":"2017-02-09T23:24:00.000Z","key":1486682640000,"doc_count":10},{"key_as_string":"2017-02-09T23:25:00.000Z","key":1486682700000,"doc_count":10},{"key_as_string":"2017-02-09T23:26:00.000Z","key":1486682760000,"doc_count":13},{"key_as_string":"2017-02-09T23:27:00.000Z","key":1486682820000,"doc_count":12},{"key_as_string":"2017-02-09T23:28:00.000Z","key":1486682880000,"doc_count":14},{"key_as_string":"2017-02-09T23:29:00.000Z","key":1486682940000,"doc_count":7},{"key_as_string":"2017-02-09T23:30:00.000Z","key":1486683000000,"doc_count":8},{"key_as_string":"2017-02-09T23:31:00.000Z","key":1486683060000,"doc_count":13},{"key_as_string":"2017-02-09T23:32:00.000Z","key":1486683120000,"doc_count":7},{"key_as_string":"2017-02-09T23:33:00.000Z","key":1486683180000,"doc_count":10},{"key_as_string":"2017-02-09T23:34:00.000Z","key":1486683240000,"doc_count":9},{"key_as_string":"2017-02-09T23:35:00.000Z","key":1486683300000,"doc_count":8},{"key_as_string":"2017-02-09T23:36:00.000Z","key":1486683360000,"doc_count":11},{"key_as_string":"2017-02-09T23:37:00.000Z","key":1486683420000,"doc_count":14},{"key_as_string":"2017-02-09T23:38:00.000Z","key":1486683480000,"doc_count":11},{"key_as_string":"2017-02-09T23:39:00.000Z","key":1486683540000,"doc_count":8},{"key_as_string":"2017-02-09T23:40:00.000Z","key":1486683600000,"doc_count":12},{"key_as_string":"2017-02-09T23:41:00.000Z","key":1486683660000,"doc_count":12},{"key_as_string":"2017-02-09T23:42:00.000Z","key":1486683720000,"doc_count":9},{"key_as_string":"2017-02-09T23:43:00.000Z","key":1486683780000,"doc_count":16},{"key_as_string":"2017-02-09T23:44:00.000Z","key":1486683840000,"doc_count":11},{"key_as_string":"2017-02-09T23:45:00.000Z","key":1486683900000,"doc_count":7},{"key_as_string":"2017-02-09T23:46:00.000Z","key":1486683960000,"doc_count":12},{"key_as_string":"2017-02-09T23:47:00.000Z","key":1486684020000,"doc_count":15},{"key_as_string":"2017-02-09T23:48:00.000Z","key":1486684080000,"doc_count":7},{"key_as_string":"2017-02-09T23:49:00.000Z","key":1486684140000,"doc_count":10},{"key_as_string":"2017-02-09T23:50:00.000Z","key":1486684200000,"doc_count":15},{"key_as_string":"2017-02-09T23:51:00.000Z","key":1486684260000,"doc_count":12},{"key_as_string":"2017-02-09T23:52:00.000Z","key":1486684320000,"doc_count":9},{"key_as_string":"2017-02-09T23:53:00.000Z","key":1486684380000,"doc_count":7},{"key_as_string":"2017-02-09T23:54:00.000Z","key":1486684440000,"doc_count":8},{"key_as_string":"2017-02-09T23:55:00.000Z","key":1486684500000,"doc_count":8},{"key_as_string":"2017-02-09T23:56:00.000Z","key":1486684560000,"doc_count":13},{"key_as_string":"2017-02-09T23:57:00.000Z","key":1486684620000,"doc_count":12},{"key_as_string":"2017-02-09T23:58:00.000Z","key":1486684680000,"doc_count":12},{"key_as_string":"2017-02-09T23:59:00.000Z","key":1486684740000,"doc_count":9},{"key_as_string":"2017-02-10T00:00:00.000Z","key":1486684800000,"doc_count":8},{"key_as_string":"2017-02-10T00:01:00.000Z","key":1486684860000,"doc_count":10},{"key_as_string":"2017-02-10T00:02:00.000Z","key":1486684920000,"doc_count":12},{"key_as_string":"2017-02-10T00:03:00.000Z","key":1486684980000,"doc_count":11},{"key_as_string":"2017-02-10T00:04:00.000Z","key":1486685040000,"doc_count":11},{"key_as_string":"2017-02-10T00:05:00.000Z","key":1486685100000,"doc_count":12},{"key_as_string":"2017-02-10T00:06:00.000Z","key":1486685160000,"doc_count":9},{"key_as_string":"2017-02-10T00:07:00.000Z","key":1486685220000,"doc_count":11},{"key_as_string":"2017-02-10T00:08:00.000Z","key":1486685280000,"doc_count":8},{"key_as_string":"2017-02-10T00:09:00.000Z","key":1486685340000,"doc_count":11},{"key_as_string":"2017-02-10T00:10:00.000Z","key":1486685400000,"doc_count":10},{"key_as_string":"2017-02-10T00:11:00.000Z","key":1486685460000,"doc_count":14},{"key_as_string":"2017-02-10T00:12:00.000Z","key":1486685520000,"doc_count":5},{"key_as_string":"2017-02-10T00:13:00.000Z","key":1486685580000,"doc_count":6},{"key_as_string":"2017-02-10T00:14:00.000Z","key":1486685640000,"doc_count":8},{"key_as_string":"2017-02-10T00:15:00.000Z","key":1486685700000,"doc_count":11},{"key_as_string":"2017-02-10T00:16:00.000Z","key":1486685760000,"doc_count":15},{"key_as_string":"2017-02-10T00:17:00.000Z","key":1486685820000,"doc_count":8},{"key_as_string":"2017-02-10T00:18:00.000Z","key":1486685880000,"doc_count":12},{"key_as_string":"2017-02-10T00:19:00.000Z","key":1486685940000,"doc_count":7},{"key_as_string":"2017-02-10T00:20:00.000Z","key":1486686000000,"doc_count":11},{"key_as_string":"2017-02-10T00:21:00.000Z","key":1486686060000,"doc_count":20},{"key_as_string":"2017-02-10T00:22:00.000Z","key":1486686120000,"doc_count":7},{"key_as_string":"2017-02-10T00:23:00.000Z","key":1486686180000,"doc_count":11},{"key_as_string":"2017-02-10T00:24:00.000Z","key":1486686240000,"doc_count":8},{"key_as_string":"2017-02-10T00:25:00.000Z","key":1486686300000,"doc_count":9},{"key_as_string":"2017-02-10T00:26:00.000Z","key":1486686360000,"doc_count":15},{"key_as_string":"2017-02-10T00:27:00.000Z","key":1486686420000,"doc_count":12},{"key_as_string":"2017-02-10T00:28:00.000Z","key":1486686480000,"doc_count":13},{"key_as_string":"2017-02-10T00:29:00.000Z","key":1486686540000,"doc_count":10},{"key_as_string":"2017-02-10T00:30:00.000Z","key":1486686600000,"doc_count":14},{"key_as_string":"2017-02-10T00:31:00.000Z","key":1486686660000,"doc_count":9},{"key_as_string":"2017-02-10T00:32:00.000Z","key":1486686720000,"doc_count":6},{"key_as_string":"2017-02-10T00:33:00.000Z","key":1486686780000,"doc_count":13},{"key_as_string":"2017-02-10T00:34:00.000Z","key":1486686840000,"doc_count":8},{"key_as_string":"2017-02-10T00:35:00.000Z","key":1486686900000,"doc_count":12},{"key_as_string":"2017-02-10T00:36:00.000Z","key":1486686960000,"doc_count":10},{"key_as_string":"2017-02-10T00:37:00.000Z","key":1486687020000,"doc_count":11},{"key_as_string":"2017-02-10T00:38:00.000Z","key":1486687080000,"doc_count":12},{"key_as_string":"2017-02-10T00:39:00.000Z","key":1486687140000,"doc_count":11},{"key_as_string":"2017-02-10T00:40:00.000Z","key":1486687200000,"doc_count":9},{"key_as_string":"2017-02-10T00:41:00.000Z","key":1486687260000,"doc_count":15},{"key_as_string":"2017-02-10T00:42:00.000Z","key":1486687320000,"doc_count":11},{"key_as_string":"2017-02-10T00:43:00.000Z","key":1486687380000,"doc_count":10},{"key_as_string":"2017-02-10T00:44:00.000Z","key":1486687440000,"doc_count":6},{"key_as_string":"2017-02-10T00:45:00.000Z","key":1486687500000,"doc_count":9},{"key_as_string":"2017-02-10T00:46:00.000Z","key":1486687560000,"doc_count":6},{"key_as_string":"2017-02-10T00:47:00.000Z","key":1486687620000,"doc_count":15},{"key_as_string":"2017-02-10T00:48:00.000Z","key":1486687680000,"doc_count":5},{"key_as_string":"2017-02-10T00:49:00.000Z","key":1486687740000,"doc_count":8},{"key_as_string":"2017-02-10T00:50:00.000Z","key":1486687800000,"doc_count":14},{"key_as_string":"2017-02-10T00:51:00.000Z","key":1486687860000,"doc_count":8},{"key_as_string":"2017-02-10T00:52:00.000Z","key":1486687920000,"doc_count":10},{"key_as_string":"2017-02-10T00:53:00.000Z","key":1486687980000,"doc_count":11},{"key_as_string":"2017-02-10T00:54:00.000Z","key":1486688040000,"doc_count":11},{"key_as_string":"2017-02-10T00:55:00.000Z","key":1486688100000,"doc_count":14},{"key_as_string":"2017-02-10T00:56:00.000Z","key":1486688160000,"doc_count":11},{"key_as_string":"2017-02-10T00:57:00.000Z","key":1486688220000,"doc_count":9},{"key_as_string":"2017-02-10T00:58:00.000Z","key":1486688280000,"doc_count":10},{"key_as_string":"2017-02-10T00:59:00.000Z","key":1486688340000,"doc_count":12},{"key_as_string":"2017-02-10T01:00:00.000Z","key":1486688400000,"doc_count":8},{"key_as_string":"2017-02-10T01:01:00.000Z","key":1486688460000,"doc_count":14},{"key_as_string":"2017-02-10T01:02:00.000Z","key":1486688520000,"doc_count":10},{"key_as_string":"2017-02-10T01:03:00.000Z","key":1486688580000,"doc_count":7},{"key_as_string":"2017-02-10T01:04:00.000Z","key":1486688640000,"doc_count":14},{"key_as_string":"2017-02-10T01:05:00.000Z","key":1486688700000,"doc_count":5},{"key_as_string":"2017-02-10T01:06:00.000Z","key":1486688760000,"doc_count":19},{"key_as_string":"2017-02-10T01:07:00.000Z","key":1486688820000,"doc_count":7},{"key_as_string":"2017-02-10T01:08:00.000Z","key":1486688880000,"doc_count":14},{"key_as_string":"2017-02-10T01:09:00.000Z","key":1486688940000,"doc_count":6},{"key_as_string":"2017-02-10T01:10:00.000Z","key":1486689000000,"doc_count":11},{"key_as_string":"2017-02-10T01:11:00.000Z","key":1486689060000,"doc_count":16},{"key_as_string":"2017-02-10T01:12:00.000Z","key":1486689120000,"doc_count":11},{"key_as_string":"2017-02-10T01:13:00.000Z","key":1486689180000,"doc_count":6},{"key_as_string":"2017-02-10T01:14:00.000Z","key":1486689240000,"doc_count":10},{"key_as_string":"2017-02-10T01:15:00.000Z","key":1486689300000,"doc_count":10},{"key_as_string":"2017-02-10T01:16:00.000Z","key":1486689360000,"doc_count":10},{"key_as_string":"2017-02-10T01:17:00.000Z","key":1486689420000,"doc_count":11},{"key_as_string":"2017-02-10T01:18:00.000Z","key":1486689480000,"doc_count":7},{"key_as_string":"2017-02-10T01:19:00.000Z","key":1486689540000,"doc_count":8},{"key_as_string":"2017-02-10T01:20:00.000Z","key":1486689600000,"doc_count":17},{"key_as_string":"2017-02-10T01:21:00.000Z","key":1486689660000,"doc_count":12},{"key_as_string":"2017-02-10T01:22:00.000Z","key":1486689720000,"doc_count":12},{"key_as_string":"2017-02-10T01:23:00.000Z","key":1486689780000,"doc_count":12},{"key_as_string":"2017-02-10T01:24:00.000Z","key":1486689840000,"doc_count":13},{"key_as_string":"2017-02-10T01:25:00.000Z","key":1486689900000,"doc_count":9},{"key_as_string":"2017-02-10T01:26:00.000Z","key":1486689960000,"doc_count":8},{"key_as_string":"2017-02-10T01:27:00.000Z","key":1486690020000,"doc_count":9},{"key_as_string":"2017-02-10T01:28:00.000Z","key":1486690080000,"doc_count":10},{"key_as_string":"2017-02-10T01:29:00.000Z","key":1486690140000,"doc_count":11},{"key_as_string":"2017-02-10T01:30:00.000Z","key":1486690200000,"doc_count":5},{"key_as_string":"2017-02-10T01:31:00.000Z","key":1486690260000,"doc_count":12},{"key_as_string":"2017-02-10T01:32:00.000Z","key":1486690320000,"doc_count":8},{"key_as_string":"2017-02-10T01:33:00.000Z","key":1486690380000,"doc_count":8},{"key_as_string":"2017-02-10T01:34:00.000Z","key":1486690440000,"doc_count":11},{"key_as_string":"2017-02-10T01:35:00.000Z","key":1486690500000,"doc_count":7},{"key_as_string":"2017-02-10T01:36:00.000Z","key":1486690560000,"doc_count":16},{"key_as_string":"2017-02-10T01:37:00.000Z","key":1486690620000,"doc_count":9},{"key_as_string":"2017-02-10T01:38:00.000Z","key":1486690680000,"doc_count":3},{"key_as_string":"2017-02-10T01:39:00.000Z","key":1486690740000,"doc_count":14},{"key_as_string":"2017-02-10T01:40:00.000Z","key":1486690800000,"doc_count":3},{"key_as_string":"2017-02-10T01:41:00.000Z","key":1486690860000,"doc_count":14},{"key_as_string":"2017-02-10T01:42:00.000Z","key":1486690920000,"doc_count":11},{"key_as_string":"2017-02-10T01:43:00.000Z","key":1486690980000,"doc_count":8},{"key_as_string":"2017-02-10T01:44:00.000Z","key":1486691040000,"doc_count":13},{"key_as_string":"2017-02-10T01:45:00.000Z","key":1486691100000,"doc_count":6},{"key_as_string":"2017-02-10T01:46:00.000Z","key":1486691160000,"doc_count":16},{"key_as_string":"2017-02-10T01:47:00.000Z","key":1486691220000,"doc_count":12},{"key_as_string":"2017-02-10T01:48:00.000Z","key":1486691280000,"doc_count":8},{"key_as_string":"2017-02-10T01:49:00.000Z","key":1486691340000,"doc_count":17},{"key_as_string":"2017-02-10T01:50:00.000Z","key":1486691400000,"doc_count":9},{"key_as_string":"2017-02-10T01:51:00.000Z","key":1486691460000,"doc_count":11},{"key_as_string":"2017-02-10T01:52:00.000Z","key":1486691520000,"doc_count":10},{"key_as_string":"2017-02-10T01:53:00.000Z","key":1486691580000,"doc_count":13},{"key_as_string":"2017-02-10T01:54:00.000Z","key":1486691640000,"doc_count":11},{"key_as_string":"2017-02-10T01:55:00.000Z","key":1486691700000,"doc_count":9},{"key_as_string":"2017-02-10T01:56:00.000Z","key":1486691760000,"doc_count":11},{"key_as_string":"2017-02-10T01:57:00.000Z","key":1486691820000,"doc_count":8},{"key_as_string":"2017-02-10T01:58:00.000Z","key":1486691880000,"doc_count":14},{"key_as_string":"2017-02-10T01:59:00.000Z","key":1486691940000,"doc_count":8},{"key_as_string":"2017-02-10T02:00:00.000Z","key":1486692000000,"doc_count":4},{"key_as_string":"2017-02-10T02:01:00.000Z","key":1486692060000,"doc_count":13},{"key_as_string":"2017-02-10T02:02:00.000Z","key":1486692120000,"doc_count":8},{"key_as_string":"2017-02-10T02:03:00.000Z","key":1486692180000,"doc_count":9},{"key_as_string":"2017-02-10T02:04:00.000Z","key":1486692240000,"doc_count":9},{"key_as_string":"2017-02-10T02:05:00.000Z","key":1486692300000,"doc_count":14},{"key_as_string":"2017-02-10T02:06:00.000Z","key":1486692360000,"doc_count":7},{"key_as_string":"2017-02-10T02:07:00.000Z","key":1486692420000,"doc_count":9},{"key_as_string":"2017-02-10T02:08:00.000Z","key":1486692480000,"doc_count":16},{"key_as_string":"2017-02-10T02:09:00.000Z","key":1486692540000,"doc_count":10},{"key_as_string":"2017-02-10T02:10:00.000Z","key":1486692600000,"doc_count":11},{"key_as_string":"2017-02-10T02:11:00.000Z","key":1486692660000,"doc_count":7},{"key_as_string":"2017-02-10T02:12:00.000Z","key":1486692720000,"doc_count":12},{"key_as_string":"2017-02-10T02:13:00.000Z","key":1486692780000,"doc_count":11},{"key_as_string":"2017-02-10T02:14:00.000Z","key":1486692840000,"doc_count":5},{"key_as_string":"2017-02-10T02:15:00.000Z","key":1486692900000,"doc_count":14},{"key_as_string":"2017-02-10T02:16:00.000Z","key":1486692960000,"doc_count":13},{"key_as_string":"2017-02-10T02:17:00.000Z","key":1486693020000,"doc_count":7},{"key_as_string":"2017-02-10T02:18:00.000Z","key":1486693080000,"doc_count":11},{"key_as_string":"2017-02-10T02:19:00.000Z","key":1486693140000,"doc_count":10},{"key_as_string":"2017-02-10T02:20:00.000Z","key":1486693200000,"doc_count":8},{"key_as_string":"2017-02-10T02:21:00.000Z","key":1486693260000,"doc_count":9},{"key_as_string":"2017-02-10T02:22:00.000Z","key":1486693320000,"doc_count":12},{"key_as_string":"2017-02-10T02:23:00.000Z","key":1486693380000,"doc_count":14},{"key_as_string":"2017-02-10T02:24:00.000Z","key":1486693440000,"doc_count":8},{"key_as_string":"2017-02-10T02:25:00.000Z","key":1486693500000,"doc_count":10},{"key_as_string":"2017-02-10T02:26:00.000Z","key":1486693560000,"doc_count":10},{"key_as_string":"2017-02-10T02:27:00.000Z","key":1486693620000,"doc_count":8},{"key_as_string":"2017-02-10T02:28:00.000Z","key":1486693680000,"doc_count":7},{"key_as_string":"2017-02-10T02:29:00.000Z","key":1486693740000,"doc_count":7},{"key_as_string":"2017-02-10T02:30:00.000Z","key":1486693800000,"doc_count":13},{"key_as_string":"2017-02-10T02:31:00.000Z","key":1486693860000,"doc_count":7},{"key_as_string":"2017-02-10T02:32:00.000Z","key":1486693920000,"doc_count":14},{"key_as_string":"2017-02-10T02:33:00.000Z","key":1486693980000,"doc_count":8},{"key_as_string":"2017-02-10T02:34:00.000Z","key":1486694040000,"doc_count":10},{"key_as_string":"2017-02-10T02:35:00.000Z","key":1486694100000,"doc_count":10},{"key_as_string":"2017-02-10T02:36:00.000Z","key":1486694160000,"doc_count":10},{"key_as_string":"2017-02-10T02:37:00.000Z","key":1486694220000,"doc_count":13},{"key_as_string":"2017-02-10T02:38:00.000Z","key":1486694280000,"doc_count":7},{"key_as_string":"2017-02-10T02:39:00.000Z","key":1486694340000,"doc_count":13},{"key_as_string":"2017-02-10T02:40:00.000Z","key":1486694400000,"doc_count":14},{"key_as_string":"2017-02-10T02:41:00.000Z","key":1486694460000,"doc_count":12},{"key_as_string":"2017-02-10T02:42:00.000Z","key":1486694520000,"doc_count":9},{"key_as_string":"2017-02-10T02:43:00.000Z","key":1486694580000,"doc_count":9},{"key_as_string":"2017-02-10T02:44:00.000Z","key":1486694640000,"doc_count":10},{"key_as_string":"2017-02-10T02:45:00.000Z","key":1486694700000,"doc_count":15},{"key_as_string":"2017-02-10T02:46:00.000Z","key":1486694760000,"doc_count":8},{"key_as_string":"2017-02-10T02:47:00.000Z","key":1486694820000,"doc_count":11},{"key_as_string":"2017-02-10T02:48:00.000Z","key":1486694880000,"doc_count":12},{"key_as_string":"2017-02-10T02:49:00.000Z","key":1486694940000,"doc_count":10},{"key_as_string":"2017-02-10T02:50:00.000Z","key":1486695000000,"doc_count":9},{"key_as_string":"2017-02-10T02:51:00.000Z","key":1486695060000,"doc_count":16},{"key_as_string":"2017-02-10T02:52:00.000Z","key":1486695120000,"doc_count":8},{"key_as_string":"2017-02-10T02:53:00.000Z","key":1486695180000,"doc_count":9},{"key_as_string":"2017-02-10T02:54:00.000Z","key":1486695240000,"doc_count":15},{"key_as_string":"2017-02-10T02:55:00.000Z","key":1486695300000,"doc_count":9},{"key_as_string":"2017-02-10T02:56:00.000Z","key":1486695360000,"doc_count":9},{"key_as_string":"2017-02-10T02:57:00.000Z","key":1486695420000,"doc_count":9},{"key_as_string":"2017-02-10T02:58:00.000Z","key":1486695480000,"doc_count":10},{"key_as_string":"2017-02-10T02:59:00.000Z","key":1486695540000,"doc_count":10},{"key_as_string":"2017-02-10T03:00:00.000Z","key":1486695600000,"doc_count":16},{"key_as_string":"2017-02-10T03:01:00.000Z","key":1486695660000,"doc_count":7},{"key_as_string":"2017-02-10T03:02:00.000Z","key":1486695720000,"doc_count":11},{"key_as_string":"2017-02-10T03:03:00.000Z","key":1486695780000,"doc_count":15},{"key_as_string":"2017-02-10T03:04:00.000Z","key":1486695840000,"doc_count":7},{"key_as_string":"2017-02-10T03:05:00.000Z","key":1486695900000,"doc_count":9},{"key_as_string":"2017-02-10T03:06:00.000Z","key":1486695960000,"doc_count":9},{"key_as_string":"2017-02-10T03:07:00.000Z","key":1486696020000,"doc_count":10},{"key_as_string":"2017-02-10T03:08:00.000Z","key":1486696080000,"doc_count":10},{"key_as_string":"2017-02-10T03:09:00.000Z","key":1486696140000,"doc_count":18},{"key_as_string":"2017-02-10T03:10:00.000Z","key":1486696200000,"doc_count":13},{"key_as_string":"2017-02-10T03:11:00.000Z","key":1486696260000,"doc_count":8},{"key_as_string":"2017-02-10T03:12:00.000Z","key":1486696320000,"doc_count":11},{"key_as_string":"2017-02-10T03:13:00.000Z","key":1486696380000,"doc_count":9},{"key_as_string":"2017-02-10T03:14:00.000Z","key":1486696440000,"doc_count":10},{"key_as_string":"2017-02-10T03:15:00.000Z","key":1486696500000,"doc_count":16},{"key_as_string":"2017-02-10T03:16:00.000Z","key":1486696560000,"doc_count":10},{"key_as_string":"2017-02-10T03:17:00.000Z","key":1486696620000,"doc_count":13},{"key_as_string":"2017-02-10T03:18:00.000Z","key":1486696680000,"doc_count":7},{"key_as_string":"2017-02-10T03:19:00.000Z","key":1486696740000,"doc_count":13},{"key_as_string":"2017-02-10T03:20:00.000Z","key":1486696800000,"doc_count":9},{"key_as_string":"2017-02-10T03:21:00.000Z","key":1486696860000,"doc_count":8},{"key_as_string":"2017-02-10T03:22:00.000Z","key":1486696920000,"doc_count":16},{"key_as_string":"2017-02-10T03:23:00.000Z","key":1486696980000,"doc_count":9},{"key_as_string":"2017-02-10T03:24:00.000Z","key":1486697040000,"doc_count":14},{"key_as_string":"2017-02-10T03:25:00.000Z","key":1486697100000,"doc_count":11},{"key_as_string":"2017-02-10T03:26:00.000Z","key":1486697160000,"doc_count":11},{"key_as_string":"2017-02-10T03:27:00.000Z","key":1486697220000,"doc_count":9},{"key_as_string":"2017-02-10T03:28:00.000Z","key":1486697280000,"doc_count":9},{"key_as_string":"2017-02-10T03:29:00.000Z","key":1486697340000,"doc_count":11},{"key_as_string":"2017-02-10T03:30:00.000Z","key":1486697400000,"doc_count":7},{"key_as_string":"2017-02-10T03:31:00.000Z","key":1486697460000,"doc_count":14},{"key_as_string":"2017-02-10T03:32:00.000Z","key":1486697520000,"doc_count":7},{"key_as_string":"2017-02-10T03:33:00.000Z","key":1486697580000,"doc_count":14},{"key_as_string":"2017-02-10T03:34:00.000Z","key":1486697640000,"doc_count":8},{"key_as_string":"2017-02-10T03:35:00.000Z","key":1486697700000,"doc_count":8},{"key_as_string":"2017-02-10T03:36:00.000Z","key":1486697760000,"doc_count":15},{"key_as_string":"2017-02-10T03:37:00.000Z","key":1486697820000,"doc_count":9},{"key_as_string":"2017-02-10T03:38:00.000Z","key":1486697880000,"doc_count":12},{"key_as_string":"2017-02-10T03:39:00.000Z","key":1486697940000,"doc_count":15},{"key_as_string":"2017-02-10T03:40:00.000Z","key":1486698000000,"doc_count":12},{"key_as_string":"2017-02-10T03:41:00.000Z","key":1486698060000,"doc_count":12},{"key_as_string":"2017-02-10T03:42:00.000Z","key":1486698120000,"doc_count":10},{"key_as_string":"2017-02-10T03:43:00.000Z","key":1486698180000,"doc_count":11},{"key_as_string":"2017-02-10T03:44:00.000Z","key":1486698240000,"doc_count":12},{"key_as_string":"2017-02-10T03:45:00.000Z","key":1486698300000,"doc_count":9},{"key_as_string":"2017-02-10T03:46:00.000Z","key":1486698360000,"doc_count":13},{"key_as_string":"2017-02-10T03:47:00.000Z","key":1486698420000,"doc_count":8},{"key_as_string":"2017-02-10T03:48:00.000Z","key":1486698480000,"doc_count":15},{"key_as_string":"2017-02-10T03:49:00.000Z","key":1486698540000,"doc_count":8},{"key_as_string":"2017-02-10T03:50:00.000Z","key":1486698600000,"doc_count":12},{"key_as_string":"2017-02-10T03:51:00.000Z","key":1486698660000,"doc_count":16},{"key_as_string":"2017-02-10T03:52:00.000Z","key":1486698720000,"doc_count":7},{"key_as_string":"2017-02-10T03:53:00.000Z","key":1486698780000,"doc_count":12},{"key_as_string":"2017-02-10T03:54:00.000Z","key":1486698840000,"doc_count":8},{"key_as_string":"2017-02-10T03:55:00.000Z","key":1486698900000,"doc_count":7},{"key_as_string":"2017-02-10T03:56:00.000Z","key":1486698960000,"doc_count":13},{"key_as_string":"2017-02-10T03:57:00.000Z","key":1486699020000,"doc_count":8},{"key_as_string":"2017-02-10T03:58:00.000Z","key":1486699080000,"doc_count":10},{"key_as_string":"2017-02-10T03:59:00.000Z","key":1486699140000,"doc_count":13},{"key_as_string":"2017-02-10T04:00:00.000Z","key":1486699200000,"doc_count":11},{"key_as_string":"2017-02-10T04:01:00.000Z","key":1486699260000,"doc_count":10},{"key_as_string":"2017-02-10T04:02:00.000Z","key":1486699320000,"doc_count":12},{"key_as_string":"2017-02-10T04:03:00.000Z","key":1486699380000,"doc_count":9},{"key_as_string":"2017-02-10T04:04:00.000Z","key":1486699440000,"doc_count":13},{"key_as_string":"2017-02-10T04:05:00.000Z","key":1486699500000,"doc_count":8},{"key_as_string":"2017-02-10T04:06:00.000Z","key":1486699560000,"doc_count":15},{"key_as_string":"2017-02-10T04:07:00.000Z","key":1486699620000,"doc_count":11},{"key_as_string":"2017-02-10T04:08:00.000Z","key":1486699680000,"doc_count":11},{"key_as_string":"2017-02-10T04:09:00.000Z","key":1486699740000,"doc_count":16},{"key_as_string":"2017-02-10T04:10:00.000Z","key":1486699800000,"doc_count":8},{"key_as_string":"2017-02-10T04:11:00.000Z","key":1486699860000,"doc_count":15},{"key_as_string":"2017-02-10T04:12:00.000Z","key":1486699920000,"doc_count":8},{"key_as_string":"2017-02-10T04:13:00.000Z","key":1486699980000,"doc_count":11},{"key_as_string":"2017-02-10T04:14:00.000Z","key":1486700040000,"doc_count":11},{"key_as_string":"2017-02-10T04:15:00.000Z","key":1486700100000,"doc_count":13},{"key_as_string":"2017-02-10T04:16:00.000Z","key":1486700160000,"doc_count":6},{"key_as_string":"2017-02-10T04:17:00.000Z","key":1486700220000,"doc_count":11},{"key_as_string":"2017-02-10T04:18:00.000Z","key":1486700280000,"doc_count":11},{"key_as_string":"2017-02-10T04:19:00.000Z","key":1486700340000,"doc_count":9},{"key_as_string":"2017-02-10T04:20:00.000Z","key":1486700400000,"doc_count":17},{"key_as_string":"2017-02-10T04:21:00.000Z","key":1486700460000,"doc_count":7},{"key_as_string":"2017-02-10T04:22:00.000Z","key":1486700520000,"doc_count":14},{"key_as_string":"2017-02-10T04:23:00.000Z","key":1486700580000,"doc_count":13},{"key_as_string":"2017-02-10T04:24:00.000Z","key":1486700640000,"doc_count":7},{"key_as_string":"2017-02-10T04:25:00.000Z","key":1486700700000,"doc_count":11},{"key_as_string":"2017-02-10T04:26:00.000Z","key":1486700760000,"doc_count":12},{"key_as_string":"2017-02-10T04:27:00.000Z","key":1486700820000,"doc_count":11},{"key_as_string":"2017-02-10T04:28:00.000Z","key":1486700880000,"doc_count":9},{"key_as_string":"2017-02-10T04:29:00.000Z","key":1486700940000,"doc_count":9},{"key_as_string":"2017-02-10T04:30:00.000Z","key":1486701000000,"doc_count":10},{"key_as_string":"2017-02-10T04:31:00.000Z","key":1486701060000,"doc_count":10},{"key_as_string":"2017-02-10T04:32:00.000Z","key":1486701120000,"doc_count":10},{"key_as_string":"2017-02-10T04:33:00.000Z","key":1486701180000,"doc_count":11},{"key_as_string":"2017-02-10T04:34:00.000Z","key":1486701240000,"doc_count":13},{"key_as_string":"2017-02-10T04:35:00.000Z","key":1486701300000,"doc_count":6},{"key_as_string":"2017-02-10T04:36:00.000Z","key":1486701360000,"doc_count":8},{"key_as_string":"2017-02-10T04:37:00.000Z","key":1486701420000,"doc_count":14},{"key_as_string":"2017-02-10T04:38:00.000Z","key":1486701480000,"doc_count":9},{"key_as_string":"2017-02-10T04:39:00.000Z","key":1486701540000,"doc_count":12},{"key_as_string":"2017-02-10T04:40:00.000Z","key":1486701600000,"doc_count":10},{"key_as_string":"2017-02-10T04:41:00.000Z","key":1486701660000,"doc_count":9},{"key_as_string":"2017-02-10T04:42:00.000Z","key":1486701720000,"doc_count":10},{"key_as_string":"2017-02-10T04:43:00.000Z","key":1486701780000,"doc_count":9},{"key_as_string":"2017-02-10T04:44:00.000Z","key":1486701840000,"doc_count":11},{"key_as_string":"2017-02-10T04:45:00.000Z","key":1486701900000,"doc_count":10},{"key_as_string":"2017-02-10T04:46:00.000Z","key":1486701960000,"doc_count":19},{"key_as_string":"2017-02-10T04:47:00.000Z","key":1486702020000,"doc_count":11},{"key_as_string":"2017-02-10T04:48:00.000Z","key":1486702080000,"doc_count":10},{"key_as_string":"2017-02-10T04:49:00.000Z","key":1486702140000,"doc_count":10},{"key_as_string":"2017-02-10T04:50:00.000Z","key":1486702200000,"doc_count":10},{"key_as_string":"2017-02-10T04:51:00.000Z","key":1486702260000,"doc_count":11},{"key_as_string":"2017-02-10T04:52:00.000Z","key":1486702320000,"doc_count":17},{"key_as_string":"2017-02-10T04:53:00.000Z","key":1486702380000,"doc_count":6},{"key_as_string":"2017-02-10T04:54:00.000Z","key":1486702440000,"doc_count":7},{"key_as_string":"2017-02-10T04:55:00.000Z","key":1486702500000,"doc_count":10},{"key_as_string":"2017-02-10T04:56:00.000Z","key":1486702560000,"doc_count":10},{"key_as_string":"2017-02-10T04:57:00.000Z","key":1486702620000,"doc_count":10},{"key_as_string":"2017-02-10T04:58:00.000Z","key":1486702680000,"doc_count":11},{"key_as_string":"2017-02-10T04:59:00.000Z","key":1486702740000,"doc_count":10},{"key_as_string":"2017-02-10T05:00:00.000Z","key":1486702800000,"doc_count":8},{"key_as_string":"2017-02-10T05:01:00.000Z","key":1486702860000,"doc_count":13},{"key_as_string":"2017-02-10T05:02:00.000Z","key":1486702920000,"doc_count":11},{"key_as_string":"2017-02-10T05:03:00.000Z","key":1486702980000,"doc_count":7},{"key_as_string":"2017-02-10T05:04:00.000Z","key":1486703040000,"doc_count":10},{"key_as_string":"2017-02-10T05:05:00.000Z","key":1486703100000,"doc_count":10},{"key_as_string":"2017-02-10T05:06:00.000Z","key":1486703160000,"doc_count":10},{"key_as_string":"2017-02-10T05:07:00.000Z","key":1486703220000,"doc_count":9},{"key_as_string":"2017-02-10T05:08:00.000Z","key":1486703280000,"doc_count":9},{"key_as_string":"2017-02-10T05:09:00.000Z","key":1486703340000,"doc_count":15},{"key_as_string":"2017-02-10T05:10:00.000Z","key":1486703400000,"doc_count":12},{"key_as_string":"2017-02-10T05:11:00.000Z","key":1486703460000,"doc_count":11},{"key_as_string":"2017-02-10T05:12:00.000Z","key":1486703520000,"doc_count":11},{"key_as_string":"2017-02-10T05:13:00.000Z","key":1486703580000,"doc_count":10},{"key_as_string":"2017-02-10T05:14:00.000Z","key":1486703640000,"doc_count":14},{"key_as_string":"2017-02-10T05:15:00.000Z","key":1486703700000,"doc_count":9},{"key_as_string":"2017-02-10T05:16:00.000Z","key":1486703760000,"doc_count":11},{"key_as_string":"2017-02-10T05:17:00.000Z","key":1486703820000,"doc_count":8},{"key_as_string":"2017-02-10T05:18:00.000Z","key":1486703880000,"doc_count":11},{"key_as_string":"2017-02-10T05:19:00.000Z","key":1486703940000,"doc_count":7},{"key_as_string":"2017-02-10T05:20:00.000Z","key":1486704000000,"doc_count":13},{"key_as_string":"2017-02-10T05:21:00.000Z","key":1486704060000,"doc_count":10},{"key_as_string":"2017-02-10T05:22:00.000Z","key":1486704120000,"doc_count":13},{"key_as_string":"2017-02-10T05:23:00.000Z","key":1486704180000,"doc_count":11},{"key_as_string":"2017-02-10T05:24:00.000Z","key":1486704240000,"doc_count":10},{"key_as_string":"2017-02-10T05:25:00.000Z","key":1486704300000,"doc_count":16},{"key_as_string":"2017-02-10T05:26:00.000Z","key":1486704360000,"doc_count":10},{"key_as_string":"2017-02-10T05:27:00.000Z","key":1486704420000,"doc_count":12},{"key_as_string":"2017-02-10T05:28:00.000Z","key":1486704480000,"doc_count":15},{"key_as_string":"2017-02-10T05:29:00.000Z","key":1486704540000,"doc_count":9},{"key_as_string":"2017-02-10T05:30:00.000Z","key":1486704600000,"doc_count":11},{"key_as_string":"2017-02-10T05:31:00.000Z","key":1486704660000,"doc_count":8},{"key_as_string":"2017-02-10T05:32:00.000Z","key":1486704720000,"doc_count":10},{"key_as_string":"2017-02-10T05:33:00.000Z","key":1486704780000,"doc_count":12},{"key_as_string":"2017-02-10T05:34:00.000Z","key":1486704840000,"doc_count":11},{"key_as_string":"2017-02-10T05:35:00.000Z","key":1486704900000,"doc_count":8},{"key_as_string":"2017-02-10T05:36:00.000Z","key":1486704960000,"doc_count":12},{"key_as_string":"2017-02-10T05:37:00.000Z","key":1486705020000,"doc_count":8},{"key_as_string":"2017-02-10T05:38:00.000Z","key":1486705080000,"doc_count":8},{"key_as_string":"2017-02-10T05:39:00.000Z","key":1486705140000,"doc_count":12},{"key_as_string":"2017-02-10T05:40:00.000Z","key":1486705200000,"doc_count":14},{"key_as_string":"2017-02-10T05:41:00.000Z","key":1486705260000,"doc_count":15},{"key_as_string":"2017-02-10T05:42:00.000Z","key":1486705320000,"doc_count":5},{"key_as_string":"2017-02-10T05:43:00.000Z","key":1486705380000,"doc_count":11},{"key_as_string":"2017-02-10T05:44:00.000Z","key":1486705440000,"doc_count":12},{"key_as_string":"2017-02-10T05:45:00.000Z","key":1486705500000,"doc_count":6},{"key_as_string":"2017-02-10T05:46:00.000Z","key":1486705560000,"doc_count":12},{"key_as_string":"2017-02-10T05:47:00.000Z","key":1486705620000,"doc_count":10},{"key_as_string":"2017-02-10T05:48:00.000Z","key":1486705680000,"doc_count":12},{"key_as_string":"2017-02-10T05:49:00.000Z","key":1486705740000,"doc_count":17},{"key_as_string":"2017-02-10T05:50:00.000Z","key":1486705800000,"doc_count":10},{"key_as_string":"2017-02-10T05:51:00.000Z","key":1486705860000,"doc_count":13},{"key_as_string":"2017-02-10T05:52:00.000Z","key":1486705920000,"doc_count":13},{"key_as_string":"2017-02-10T05:53:00.000Z","key":1486705980000,"doc_count":10},{"key_as_string":"2017-02-10T05:54:00.000Z","key":1486706040000,"doc_count":10},{"key_as_string":"2017-02-10T05:55:00.000Z","key":1486706100000,"doc_count":15},{"key_as_string":"2017-02-10T05:56:00.000Z","key":1486706160000,"doc_count":8},{"key_as_string":"2017-02-10T05:57:00.000Z","key":1486706220000,"doc_count":10},{"key_as_string":"2017-02-10T05:58:00.000Z","key":1486706280000,"doc_count":11},{"key_as_string":"2017-02-10T05:59:00.000Z","key":1486706340000,"doc_count":10},{"key_as_string":"2017-02-10T06:00:00.000Z","key":1486706400000,"doc_count":19},{"key_as_string":"2017-02-10T06:01:00.000Z","key":1486706460000,"doc_count":13},{"key_as_string":"2017-02-10T06:02:00.000Z","key":1486706520000,"doc_count":14},{"key_as_string":"2017-02-10T06:03:00.000Z","key":1486706580000,"doc_count":11},{"key_as_string":"2017-02-10T06:04:00.000Z","key":1486706640000,"doc_count":13},{"key_as_string":"2017-02-10T06:05:00.000Z","key":1486706700000,"doc_count":6},{"key_as_string":"2017-02-10T06:06:00.000Z","key":1486706760000,"doc_count":12},{"key_as_string":"2017-02-10T06:07:00.000Z","key":1486706820000,"doc_count":14},{"key_as_string":"2017-02-10T06:08:00.000Z","key":1486706880000,"doc_count":12},{"key_as_string":"2017-02-10T06:09:00.000Z","key":1486706940000,"doc_count":14},{"key_as_string":"2017-02-10T06:10:00.000Z","key":1486707000000,"doc_count":8},{"key_as_string":"2017-02-10T06:11:00.000Z","key":1486707060000,"doc_count":6},{"key_as_string":"2017-02-10T06:12:00.000Z","key":1486707120000,"doc_count":17},{"key_as_string":"2017-02-10T06:13:00.000Z","key":1486707180000,"doc_count":14},{"key_as_string":"2017-02-10T06:14:00.000Z","key":1486707240000,"doc_count":5},{"key_as_string":"2017-02-10T06:15:00.000Z","key":1486707300000,"doc_count":17},{"key_as_string":"2017-02-10T06:16:00.000Z","key":1486707360000,"doc_count":9},{"key_as_string":"2017-02-10T06:17:00.000Z","key":1486707420000,"doc_count":13},{"key_as_string":"2017-02-10T06:18:00.000Z","key":1486707480000,"doc_count":8},{"key_as_string":"2017-02-10T06:19:00.000Z","key":1486707540000,"doc_count":14},{"key_as_string":"2017-02-10T06:20:00.000Z","key":1486707600000,"doc_count":8},{"key_as_string":"2017-02-10T06:21:00.000Z","key":1486707660000,"doc_count":11},{"key_as_string":"2017-02-10T06:22:00.000Z","key":1486707720000,"doc_count":15},{"key_as_string":"2017-02-10T06:23:00.000Z","key":1486707780000,"doc_count":16},{"key_as_string":"2017-02-10T06:24:00.000Z","key":1486707840000,"doc_count":11},{"key_as_string":"2017-02-10T06:25:00.000Z","key":1486707900000,"doc_count":10},{"key_as_string":"2017-02-10T06:26:00.000Z","key":1486707960000,"doc_count":8},{"key_as_string":"2017-02-10T06:27:00.000Z","key":1486708020000,"doc_count":18},{"key_as_string":"2017-02-10T06:28:00.000Z","key":1486708080000,"doc_count":11},{"key_as_string":"2017-02-10T06:29:00.000Z","key":1486708140000,"doc_count":10},{"key_as_string":"2017-02-10T06:30:00.000Z","key":1486708200000,"doc_count":9},{"key_as_string":"2017-02-10T06:31:00.000Z","key":1486708260000,"doc_count":13},{"key_as_string":"2017-02-10T06:32:00.000Z","key":1486708320000,"doc_count":10},{"key_as_string":"2017-02-10T06:33:00.000Z","key":1486708380000,"doc_count":12},{"key_as_string":"2017-02-10T06:34:00.000Z","key":1486708440000,"doc_count":10},{"key_as_string":"2017-02-10T06:35:00.000Z","key":1486708500000,"doc_count":9},{"key_as_string":"2017-02-10T06:36:00.000Z","key":1486708560000,"doc_count":17},{"key_as_string":"2017-02-10T06:37:00.000Z","key":1486708620000,"doc_count":15},{"key_as_string":"2017-02-10T06:38:00.000Z","key":1486708680000,"doc_count":11},{"key_as_string":"2017-02-10T06:39:00.000Z","key":1486708740000,"doc_count":12},{"key_as_string":"2017-02-10T06:40:00.000Z","key":1486708800000,"doc_count":11},{"key_as_string":"2017-02-10T06:41:00.000Z","key":1486708860000,"doc_count":13},{"key_as_string":"2017-02-10T06:42:00.000Z","key":1486708920000,"doc_count":10},{"key_as_string":"2017-02-10T06:43:00.000Z","key":1486708980000,"doc_count":12},{"key_as_string":"2017-02-10T06:44:00.000Z","key":1486709040000,"doc_count":14},{"key_as_string":"2017-02-10T06:45:00.000Z","key":1486709100000,"doc_count":7},{"key_as_string":"2017-02-10T06:46:00.000Z","key":1486709160000,"doc_count":17},{"key_as_string":"2017-02-10T06:47:00.000Z","key":1486709220000,"doc_count":9},{"key_as_string":"2017-02-10T06:48:00.000Z","key":1486709280000,"doc_count":12},{"key_as_string":"2017-02-10T06:49:00.000Z","key":1486709340000,"doc_count":14},{"key_as_string":"2017-02-10T06:50:00.000Z","key":1486709400000,"doc_count":15},{"key_as_string":"2017-02-10T06:51:00.000Z","key":1486709460000,"doc_count":12},{"key_as_string":"2017-02-10T06:52:00.000Z","key":1486709520000,"doc_count":8},{"key_as_string":"2017-02-10T06:53:00.000Z","key":1486709580000,"doc_count":13},{"key_as_string":"2017-02-10T06:54:00.000Z","key":1486709640000,"doc_count":15},{"key_as_string":"2017-02-10T06:55:00.000Z","key":1486709700000,"doc_count":8},{"key_as_string":"2017-02-10T06:56:00.000Z","key":1486709760000,"doc_count":7},{"key_as_string":"2017-02-10T06:57:00.000Z","key":1486709820000,"doc_count":18},{"key_as_string":"2017-02-10T06:58:00.000Z","key":1486709880000,"doc_count":11},{"key_as_string":"2017-02-10T06:59:00.000Z","key":1486709940000,"doc_count":14},{"key_as_string":"2017-02-10T07:00:00.000Z","key":1486710000000,"doc_count":8},{"key_as_string":"2017-02-10T07:01:00.000Z","key":1486710060000,"doc_count":12},{"key_as_string":"2017-02-10T07:02:00.000Z","key":1486710120000,"doc_count":14},{"key_as_string":"2017-02-10T07:03:00.000Z","key":1486710180000,"doc_count":9},{"key_as_string":"2017-02-10T07:04:00.000Z","key":1486710240000,"doc_count":13},{"key_as_string":"2017-02-10T07:05:00.000Z","key":1486710300000,"doc_count":12},{"key_as_string":"2017-02-10T07:06:00.000Z","key":1486710360000,"doc_count":15},{"key_as_string":"2017-02-10T07:07:00.000Z","key":1486710420000,"doc_count":19},{"key_as_string":"2017-02-10T07:08:00.000Z","key":1486710480000,"doc_count":11},{"key_as_string":"2017-02-10T07:09:00.000Z","key":1486710540000,"doc_count":16},{"key_as_string":"2017-02-10T07:10:00.000Z","key":1486710600000,"doc_count":11},{"key_as_string":"2017-02-10T07:11:00.000Z","key":1486710660000,"doc_count":13},{"key_as_string":"2017-02-10T07:12:00.000Z","key":1486710720000,"doc_count":12},{"key_as_string":"2017-02-10T07:13:00.000Z","key":1486710780000,"doc_count":9},{"key_as_string":"2017-02-10T07:14:00.000Z","key":1486710840000,"doc_count":21},{"key_as_string":"2017-02-10T07:15:00.000Z","key":1486710900000,"doc_count":11},{"key_as_string":"2017-02-10T07:16:00.000Z","key":1486710960000,"doc_count":6},{"key_as_string":"2017-02-10T07:17:00.000Z","key":1486711020000,"doc_count":16},{"key_as_string":"2017-02-10T07:18:00.000Z","key":1486711080000,"doc_count":15},{"key_as_string":"2017-02-10T07:19:00.000Z","key":1486711140000,"doc_count":13},{"key_as_string":"2017-02-10T07:20:00.000Z","key":1486711200000,"doc_count":15},{"key_as_string":"2017-02-10T07:21:00.000Z","key":1486711260000,"doc_count":14},{"key_as_string":"2017-02-10T07:22:00.000Z","key":1486711320000,"doc_count":14},{"key_as_string":"2017-02-10T07:23:00.000Z","key":1486711380000,"doc_count":13},{"key_as_string":"2017-02-10T07:24:00.000Z","key":1486711440000,"doc_count":10},{"key_as_string":"2017-02-10T07:25:00.000Z","key":1486711500000,"doc_count":11},{"key_as_string":"2017-02-10T07:26:00.000Z","key":1486711560000,"doc_count":12},{"key_as_string":"2017-02-10T07:27:00.000Z","key":1486711620000,"doc_count":15},{"key_as_string":"2017-02-10T07:28:00.000Z","key":1486711680000,"doc_count":7},{"key_as_string":"2017-02-10T07:29:00.000Z","key":1486711740000,"doc_count":18},{"key_as_string":"2017-02-10T07:30:00.000Z","key":1486711800000,"doc_count":14},{"key_as_string":"2017-02-10T07:31:00.000Z","key":1486711860000,"doc_count":12},{"key_as_string":"2017-02-10T07:32:00.000Z","key":1486711920000,"doc_count":16},{"key_as_string":"2017-02-10T07:33:00.000Z","key":1486711980000,"doc_count":12},{"key_as_string":"2017-02-10T07:34:00.000Z","key":1486712040000,"doc_count":15},{"key_as_string":"2017-02-10T07:35:00.000Z","key":1486712100000,"doc_count":12},{"key_as_string":"2017-02-10T07:36:00.000Z","key":1486712160000,"doc_count":10},{"key_as_string":"2017-02-10T07:37:00.000Z","key":1486712220000,"doc_count":12},{"key_as_string":"2017-02-10T07:38:00.000Z","key":1486712280000,"doc_count":13},{"key_as_string":"2017-02-10T07:39:00.000Z","key":1486712340000,"doc_count":8},{"key_as_string":"2017-02-10T07:40:00.000Z","key":1486712400000,"doc_count":11},{"key_as_string":"2017-02-10T07:41:00.000Z","key":1486712460000,"doc_count":13},{"key_as_string":"2017-02-10T07:42:00.000Z","key":1486712520000,"doc_count":19},{"key_as_string":"2017-02-10T07:43:00.000Z","key":1486712580000,"doc_count":10},{"key_as_string":"2017-02-10T07:44:00.000Z","key":1486712640000,"doc_count":19},{"key_as_string":"2017-02-10T07:45:00.000Z","key":1486712700000,"doc_count":8},{"key_as_string":"2017-02-10T07:46:00.000Z","key":1486712760000,"doc_count":13},{"key_as_string":"2017-02-10T07:47:00.000Z","key":1486712820000,"doc_count":17},{"key_as_string":"2017-02-10T07:48:00.000Z","key":1486712880000,"doc_count":14},{"key_as_string":"2017-02-10T07:49:00.000Z","key":1486712940000,"doc_count":13},{"key_as_string":"2017-02-10T07:50:00.000Z","key":1486713000000,"doc_count":14},{"key_as_string":"2017-02-10T07:51:00.000Z","key":1486713060000,"doc_count":11},{"key_as_string":"2017-02-10T07:52:00.000Z","key":1486713120000,"doc_count":16},{"key_as_string":"2017-02-10T07:53:00.000Z","key":1486713180000,"doc_count":13},{"key_as_string":"2017-02-10T07:54:00.000Z","key":1486713240000,"doc_count":12},{"key_as_string":"2017-02-10T07:55:00.000Z","key":1486713300000,"doc_count":13},{"key_as_string":"2017-02-10T07:56:00.000Z","key":1486713360000,"doc_count":11},{"key_as_string":"2017-02-10T07:57:00.000Z","key":1486713420000,"doc_count":9},{"key_as_string":"2017-02-10T07:58:00.000Z","key":1486713480000,"doc_count":11},{"key_as_string":"2017-02-10T07:59:00.000Z","key":1486713540000,"doc_count":14},{"key_as_string":"2017-02-10T08:00:00.000Z","key":1486713600000,"doc_count":9},{"key_as_string":"2017-02-10T08:01:00.000Z","key":1486713660000,"doc_count":13},{"key_as_string":"2017-02-10T08:02:00.000Z","key":1486713720000,"doc_count":13},{"key_as_string":"2017-02-10T08:03:00.000Z","key":1486713780000,"doc_count":12},{"key_as_string":"2017-02-10T08:04:00.000Z","key":1486713840000,"doc_count":19},{"key_as_string":"2017-02-10T08:05:00.000Z","key":1486713900000,"doc_count":9},{"key_as_string":"2017-02-10T08:06:00.000Z","key":1486713960000,"doc_count":15},{"key_as_string":"2017-02-10T08:07:00.000Z","key":1486714020000,"doc_count":9},{"key_as_string":"2017-02-10T08:08:00.000Z","key":1486714080000,"doc_count":15},{"key_as_string":"2017-02-10T08:09:00.000Z","key":1486714140000,"doc_count":11},{"key_as_string":"2017-02-10T08:10:00.000Z","key":1486714200000,"doc_count":10},{"key_as_string":"2017-02-10T08:11:00.000Z","key":1486714260000,"doc_count":13},{"key_as_string":"2017-02-10T08:12:00.000Z","key":1486714320000,"doc_count":8},{"key_as_string":"2017-02-10T08:13:00.000Z","key":1486714380000,"doc_count":13},{"key_as_string":"2017-02-10T08:14:00.000Z","key":1486714440000,"doc_count":15},{"key_as_string":"2017-02-10T08:15:00.000Z","key":1486714500000,"doc_count":17},{"key_as_string":"2017-02-10T08:16:00.000Z","key":1486714560000,"doc_count":13},{"key_as_string":"2017-02-10T08:17:00.000Z","key":1486714620000,"doc_count":17},{"key_as_string":"2017-02-10T08:18:00.000Z","key":1486714680000,"doc_count":12},{"key_as_string":"2017-02-10T08:19:00.000Z","key":1486714740000,"doc_count":17},{"key_as_string":"2017-02-10T08:20:00.000Z","key":1486714800000,"doc_count":15},{"key_as_string":"2017-02-10T08:21:00.000Z","key":1486714860000,"doc_count":12},{"key_as_string":"2017-02-10T08:22:00.000Z","key":1486714920000,"doc_count":12},{"key_as_string":"2017-02-10T08:23:00.000Z","key":1486714980000,"doc_count":14},{"key_as_string":"2017-02-10T08:24:00.000Z","key":1486715040000,"doc_count":15},{"key_as_string":"2017-02-10T08:25:00.000Z","key":1486715100000,"doc_count":13},{"key_as_string":"2017-02-10T08:26:00.000Z","key":1486715160000,"doc_count":11},{"key_as_string":"2017-02-10T08:27:00.000Z","key":1486715220000,"doc_count":15},{"key_as_string":"2017-02-10T08:28:00.000Z","key":1486715280000,"doc_count":11},{"key_as_string":"2017-02-10T08:29:00.000Z","key":1486715340000,"doc_count":13},{"key_as_string":"2017-02-10T08:30:00.000Z","key":1486715400000,"doc_count":12},{"key_as_string":"2017-02-10T08:31:00.000Z","key":1486715460000,"doc_count":12},{"key_as_string":"2017-02-10T08:32:00.000Z","key":1486715520000,"doc_count":16},{"key_as_string":"2017-02-10T08:33:00.000Z","key":1486715580000,"doc_count":12},{"key_as_string":"2017-02-10T08:34:00.000Z","key":1486715640000,"doc_count":12},{"key_as_string":"2017-02-10T08:35:00.000Z","key":1486715700000,"doc_count":13},{"key_as_string":"2017-02-10T08:36:00.000Z","key":1486715760000,"doc_count":11},{"key_as_string":"2017-02-10T08:37:00.000Z","key":1486715820000,"doc_count":17},{"key_as_string":"2017-02-10T08:38:00.000Z","key":1486715880000,"doc_count":14},{"key_as_string":"2017-02-10T08:39:00.000Z","key":1486715940000,"doc_count":7},{"key_as_string":"2017-02-10T08:40:00.000Z","key":1486716000000,"doc_count":22},{"key_as_string":"2017-02-10T08:41:00.000Z","key":1486716060000,"doc_count":12},{"key_as_string":"2017-02-10T08:42:00.000Z","key":1486716120000,"doc_count":17},{"key_as_string":"2017-02-10T08:43:00.000Z","key":1486716180000,"doc_count":13},{"key_as_string":"2017-02-10T08:44:00.000Z","key":1486716240000,"doc_count":17},{"key_as_string":"2017-02-10T08:45:00.000Z","key":1486716300000,"doc_count":14},{"key_as_string":"2017-02-10T08:46:00.000Z","key":1486716360000,"doc_count":11},{"key_as_string":"2017-02-10T08:47:00.000Z","key":1486716420000,"doc_count":18},{"key_as_string":"2017-02-10T08:48:00.000Z","key":1486716480000,"doc_count":11},{"key_as_string":"2017-02-10T08:49:00.000Z","key":1486716540000,"doc_count":18},{"key_as_string":"2017-02-10T08:50:00.000Z","key":1486716600000,"doc_count":13},{"key_as_string":"2017-02-10T08:51:00.000Z","key":1486716660000,"doc_count":12},{"key_as_string":"2017-02-10T08:52:00.000Z","key":1486716720000,"doc_count":13},{"key_as_string":"2017-02-10T08:53:00.000Z","key":1486716780000,"doc_count":14},{"key_as_string":"2017-02-10T08:54:00.000Z","key":1486716840000,"doc_count":18},{"key_as_string":"2017-02-10T08:55:00.000Z","key":1486716900000,"doc_count":10},{"key_as_string":"2017-02-10T08:56:00.000Z","key":1486716960000,"doc_count":17},{"key_as_string":"2017-02-10T08:57:00.000Z","key":1486717020000,"doc_count":13},{"key_as_string":"2017-02-10T08:58:00.000Z","key":1486717080000,"doc_count":14},{"key_as_string":"2017-02-10T08:59:00.000Z","key":1486717140000,"doc_count":11},{"key_as_string":"2017-02-10T09:00:00.000Z","key":1486717200000,"doc_count":11},{"key_as_string":"2017-02-10T09:01:00.000Z","key":1486717260000,"doc_count":12},{"key_as_string":"2017-02-10T09:02:00.000Z","key":1486717320000,"doc_count":10},{"key_as_string":"2017-02-10T09:03:00.000Z","key":1486717380000,"doc_count":16},{"key_as_string":"2017-02-10T09:04:00.000Z","key":1486717440000,"doc_count":9},{"key_as_string":"2017-02-10T09:05:00.000Z","key":1486717500000,"doc_count":15},{"key_as_string":"2017-02-10T09:06:00.000Z","key":1486717560000,"doc_count":15},{"key_as_string":"2017-02-10T09:07:00.000Z","key":1486717620000,"doc_count":17},{"key_as_string":"2017-02-10T09:08:00.000Z","key":1486717680000,"doc_count":10},{"key_as_string":"2017-02-10T09:09:00.000Z","key":1486717740000,"doc_count":14},{"key_as_string":"2017-02-10T09:10:00.000Z","key":1486717800000,"doc_count":12},{"key_as_string":"2017-02-10T09:11:00.000Z","key":1486717860000,"doc_count":16},{"key_as_string":"2017-02-10T09:12:00.000Z","key":1486717920000,"doc_count":9},{"key_as_string":"2017-02-10T09:13:00.000Z","key":1486717980000,"doc_count":14},{"key_as_string":"2017-02-10T09:14:00.000Z","key":1486718040000,"doc_count":14},{"key_as_string":"2017-02-10T09:15:00.000Z","key":1486718100000,"doc_count":18},{"key_as_string":"2017-02-10T09:16:00.000Z","key":1486718160000,"doc_count":16},{"key_as_string":"2017-02-10T09:17:00.000Z","key":1486718220000,"doc_count":16},{"key_as_string":"2017-02-10T09:18:00.000Z","key":1486718280000,"doc_count":13},{"key_as_string":"2017-02-10T09:19:00.000Z","key":1486718340000,"doc_count":11},{"key_as_string":"2017-02-10T09:20:00.000Z","key":1486718400000,"doc_count":14},{"key_as_string":"2017-02-10T09:21:00.000Z","key":1486718460000,"doc_count":12},{"key_as_string":"2017-02-10T09:22:00.000Z","key":1486718520000,"doc_count":10},{"key_as_string":"2017-02-10T09:23:00.000Z","key":1486718580000,"doc_count":12},{"key_as_string":"2017-02-10T09:24:00.000Z","key":1486718640000,"doc_count":15},{"key_as_string":"2017-02-10T09:25:00.000Z","key":1486718700000,"doc_count":9},{"key_as_string":"2017-02-10T09:26:00.000Z","key":1486718760000,"doc_count":16},{"key_as_string":"2017-02-10T09:27:00.000Z","key":1486718820000,"doc_count":17},{"key_as_string":"2017-02-10T09:28:00.000Z","key":1486718880000,"doc_count":12},{"key_as_string":"2017-02-10T09:29:00.000Z","key":1486718940000,"doc_count":10},{"key_as_string":"2017-02-10T09:30:00.000Z","key":1486719000000,"doc_count":12},{"key_as_string":"2017-02-10T09:31:00.000Z","key":1486719060000,"doc_count":13},{"key_as_string":"2017-02-10T09:32:00.000Z","key":1486719120000,"doc_count":13},{"key_as_string":"2017-02-10T09:33:00.000Z","key":1486719180000,"doc_count":11},{"key_as_string":"2017-02-10T09:34:00.000Z","key":1486719240000,"doc_count":11},{"key_as_string":"2017-02-10T09:35:00.000Z","key":1486719300000,"doc_count":15},{"key_as_string":"2017-02-10T09:36:00.000Z","key":1486719360000,"doc_count":10},{"key_as_string":"2017-02-10T09:37:00.000Z","key":1486719420000,"doc_count":12},{"key_as_string":"2017-02-10T09:38:00.000Z","key":1486719480000,"doc_count":19},{"key_as_string":"2017-02-10T09:39:00.000Z","key":1486719540000,"doc_count":12},{"key_as_string":"2017-02-10T09:40:00.000Z","key":1486719600000,"doc_count":19},{"key_as_string":"2017-02-10T09:41:00.000Z","key":1486719660000,"doc_count":16},{"key_as_string":"2017-02-10T09:42:00.000Z","key":1486719720000,"doc_count":19},{"key_as_string":"2017-02-10T09:43:00.000Z","key":1486719780000,"doc_count":7},{"key_as_string":"2017-02-10T09:44:00.000Z","key":1486719840000,"doc_count":18},{"key_as_string":"2017-02-10T09:45:00.000Z","key":1486719900000,"doc_count":12},{"key_as_string":"2017-02-10T09:46:00.000Z","key":1486719960000,"doc_count":14},{"key_as_string":"2017-02-10T09:47:00.000Z","key":1486720020000,"doc_count":14},{"key_as_string":"2017-02-10T09:48:00.000Z","key":1486720080000,"doc_count":11},{"key_as_string":"2017-02-10T09:49:00.000Z","key":1486720140000,"doc_count":14},{"key_as_string":"2017-02-10T09:50:00.000Z","key":1486720200000,"doc_count":9},{"key_as_string":"2017-02-10T09:51:00.000Z","key":1486720260000,"doc_count":17},{"key_as_string":"2017-02-10T09:52:00.000Z","key":1486720320000,"doc_count":20},{"key_as_string":"2017-02-10T09:53:00.000Z","key":1486720380000,"doc_count":13},{"key_as_string":"2017-02-10T09:54:00.000Z","key":1486720440000,"doc_count":7},{"key_as_string":"2017-02-10T09:55:00.000Z","key":1486720500000,"doc_count":16},{"key_as_string":"2017-02-10T09:56:00.000Z","key":1486720560000,"doc_count":13},{"key_as_string":"2017-02-10T09:57:00.000Z","key":1486720620000,"doc_count":12},{"key_as_string":"2017-02-10T09:58:00.000Z","key":1486720680000,"doc_count":13},{"key_as_string":"2017-02-10T09:59:00.000Z","key":1486720740000,"doc_count":10},{"key_as_string":"2017-02-10T10:00:00.000Z","key":1486720800000,"doc_count":15},{"key_as_string":"2017-02-10T10:01:00.000Z","key":1486720860000,"doc_count":13},{"key_as_string":"2017-02-10T10:02:00.000Z","key":1486720920000,"doc_count":23},{"key_as_string":"2017-02-10T10:03:00.000Z","key":1486720980000,"doc_count":11},{"key_as_string":"2017-02-10T10:04:00.000Z","key":1486721040000,"doc_count":11},{"key_as_string":"2017-02-10T10:05:00.000Z","key":1486721100000,"doc_count":17},{"key_as_string":"2017-02-10T10:06:00.000Z","key":1486721160000,"doc_count":10},{"key_as_string":"2017-02-10T10:07:00.000Z","key":1486721220000,"doc_count":15},{"key_as_string":"2017-02-10T10:08:00.000Z","key":1486721280000,"doc_count":13},{"key_as_string":"2017-02-10T10:09:00.000Z","key":1486721340000,"doc_count":15},{"key_as_string":"2017-02-10T10:10:00.000Z","key":1486721400000,"doc_count":17},{"key_as_string":"2017-02-10T10:11:00.000Z","key":1486721460000,"doc_count":12},{"key_as_string":"2017-02-10T10:12:00.000Z","key":1486721520000,"doc_count":11},{"key_as_string":"2017-02-10T10:13:00.000Z","key":1486721580000,"doc_count":19},{"key_as_string":"2017-02-10T10:14:00.000Z","key":1486721640000,"doc_count":12},{"key_as_string":"2017-02-10T10:15:00.000Z","key":1486721700000,"doc_count":17},{"key_as_string":"2017-02-10T10:16:00.000Z","key":1486721760000,"doc_count":13},{"key_as_string":"2017-02-10T10:17:00.000Z","key":1486721820000,"doc_count":15},{"key_as_string":"2017-02-10T10:18:00.000Z","key":1486721880000,"doc_count":13},{"key_as_string":"2017-02-10T10:19:00.000Z","key":1486721940000,"doc_count":15},{"key_as_string":"2017-02-10T10:20:00.000Z","key":1486722000000,"doc_count":15},{"key_as_string":"2017-02-10T10:21:00.000Z","key":1486722060000,"doc_count":15},{"key_as_string":"2017-02-10T10:22:00.000Z","key":1486722120000,"doc_count":14},{"key_as_string":"2017-02-10T10:23:00.000Z","key":1486722180000,"doc_count":18},{"key_as_string":"2017-02-10T10:24:00.000Z","key":1486722240000,"doc_count":16},{"key_as_string":"2017-02-10T10:25:00.000Z","key":1486722300000,"doc_count":11},{"key_as_string":"2017-02-10T10:26:00.000Z","key":1486722360000,"doc_count":12},{"key_as_string":"2017-02-10T10:27:00.000Z","key":1486722420000,"doc_count":21},{"key_as_string":"2017-02-10T10:28:00.000Z","key":1486722480000,"doc_count":12},{"key_as_string":"2017-02-10T10:29:00.000Z","key":1486722540000,"doc_count":10},{"key_as_string":"2017-02-10T10:30:00.000Z","key":1486722600000,"doc_count":13},{"key_as_string":"2017-02-10T10:31:00.000Z","key":1486722660000,"doc_count":12},{"key_as_string":"2017-02-10T10:32:00.000Z","key":1486722720000,"doc_count":14},{"key_as_string":"2017-02-10T10:33:00.000Z","key":1486722780000,"doc_count":10},{"key_as_string":"2017-02-10T10:34:00.000Z","key":1486722840000,"doc_count":16},{"key_as_string":"2017-02-10T10:35:00.000Z","key":1486722900000,"doc_count":10},{"key_as_string":"2017-02-10T10:36:00.000Z","key":1486722960000,"doc_count":19},{"key_as_string":"2017-02-10T10:37:00.000Z","key":1486723020000,"doc_count":6},{"key_as_string":"2017-02-10T10:38:00.000Z","key":1486723080000,"doc_count":21},{"key_as_string":"2017-02-10T10:39:00.000Z","key":1486723140000,"doc_count":13},{"key_as_string":"2017-02-10T10:40:00.000Z","key":1486723200000,"doc_count":18},{"key_as_string":"2017-02-10T10:41:00.000Z","key":1486723260000,"doc_count":12},{"key_as_string":"2017-02-10T10:42:00.000Z","key":1486723320000,"doc_count":16},{"key_as_string":"2017-02-10T10:43:00.000Z","key":1486723380000,"doc_count":6},{"key_as_string":"2017-02-10T10:44:00.000Z","key":1486723440000,"doc_count":16},{"key_as_string":"2017-02-10T10:45:00.000Z","key":1486723500000,"doc_count":10},{"key_as_string":"2017-02-10T10:46:00.000Z","key":1486723560000,"doc_count":17},{"key_as_string":"2017-02-10T10:47:00.000Z","key":1486723620000,"doc_count":11},{"key_as_string":"2017-02-10T10:48:00.000Z","key":1486723680000,"doc_count":17},{"key_as_string":"2017-02-10T10:49:00.000Z","key":1486723740000,"doc_count":11},{"key_as_string":"2017-02-10T10:50:00.000Z","key":1486723800000,"doc_count":12},{"key_as_string":"2017-02-10T10:51:00.000Z","key":1486723860000,"doc_count":12},{"key_as_string":"2017-02-10T10:52:00.000Z","key":1486723920000,"doc_count":18},{"key_as_string":"2017-02-10T10:53:00.000Z","key":1486723980000,"doc_count":15},{"key_as_string":"2017-02-10T10:54:00.000Z","key":1486724040000,"doc_count":15},{"key_as_string":"2017-02-10T10:55:00.000Z","key":1486724100000,"doc_count":16},{"key_as_string":"2017-02-10T10:56:00.000Z","key":1486724160000,"doc_count":8},{"key_as_string":"2017-02-10T10:57:00.000Z","key":1486724220000,"doc_count":19},{"key_as_string":"2017-02-10T10:58:00.000Z","key":1486724280000,"doc_count":12},{"key_as_string":"2017-02-10T10:59:00.000Z","key":1486724340000,"doc_count":16},{"key_as_string":"2017-02-10T11:00:00.000Z","key":1486724400000,"doc_count":16},{"key_as_string":"2017-02-10T11:01:00.000Z","key":1486724460000,"doc_count":11},{"key_as_string":"2017-02-10T11:02:00.000Z","key":1486724520000,"doc_count":11},{"key_as_string":"2017-02-10T11:03:00.000Z","key":1486724580000,"doc_count":16},{"key_as_string":"2017-02-10T11:04:00.000Z","key":1486724640000,"doc_count":15},{"key_as_string":"2017-02-10T11:05:00.000Z","key":1486724700000,"doc_count":12},{"key_as_string":"2017-02-10T11:06:00.000Z","key":1486724760000,"doc_count":20},{"key_as_string":"2017-02-10T11:07:00.000Z","key":1486724820000,"doc_count":14},{"key_as_string":"2017-02-10T11:08:00.000Z","key":1486724880000,"doc_count":11},{"key_as_string":"2017-02-10T11:09:00.000Z","key":1486724940000,"doc_count":11},{"key_as_string":"2017-02-10T11:10:00.000Z","key":1486725000000,"doc_count":11},{"key_as_string":"2017-02-10T11:11:00.000Z","key":1486725060000,"doc_count":16},{"key_as_string":"2017-02-10T11:12:00.000Z","key":1486725120000,"doc_count":12},{"key_as_string":"2017-02-10T11:13:00.000Z","key":1486725180000,"doc_count":15},{"key_as_string":"2017-02-10T11:14:00.000Z","key":1486725240000,"doc_count":12},{"key_as_string":"2017-02-10T11:15:00.000Z","key":1486725300000,"doc_count":12},{"key_as_string":"2017-02-10T11:16:00.000Z","key":1486725360000,"doc_count":17},{"key_as_string":"2017-02-10T11:17:00.000Z","key":1486725420000,"doc_count":15},{"key_as_string":"2017-02-10T11:18:00.000Z","key":1486725480000,"doc_count":12},{"key_as_string":"2017-02-10T11:19:00.000Z","key":1486725540000,"doc_count":13},{"key_as_string":"2017-02-10T11:20:00.000Z","key":1486725600000,"doc_count":12},{"key_as_string":"2017-02-10T11:21:00.000Z","key":1486725660000,"doc_count":12},{"key_as_string":"2017-02-10T11:22:00.000Z","key":1486725720000,"doc_count":9},{"key_as_string":"2017-02-10T11:23:00.000Z","key":1486725780000,"doc_count":15},{"key_as_string":"2017-02-10T11:24:00.000Z","key":1486725840000,"doc_count":21},{"key_as_string":"2017-02-10T11:25:00.000Z","key":1486725900000,"doc_count":13},{"key_as_string":"2017-02-10T11:26:00.000Z","key":1486725960000,"doc_count":15},{"key_as_string":"2017-02-10T11:27:00.000Z","key":1486726020000,"doc_count":14},{"key_as_string":"2017-02-10T11:28:00.000Z","key":1486726080000,"doc_count":10},{"key_as_string":"2017-02-10T11:29:00.000Z","key":1486726140000,"doc_count":16},{"key_as_string":"2017-02-10T11:30:00.000Z","key":1486726200000,"doc_count":12},{"key_as_string":"2017-02-10T11:31:00.000Z","key":1486726260000,"doc_count":18},{"key_as_string":"2017-02-10T11:32:00.000Z","key":1486726320000,"doc_count":11},{"key_as_string":"2017-02-10T11:33:00.000Z","key":1486726380000,"doc_count":15},{"key_as_string":"2017-02-10T11:34:00.000Z","key":1486726440000,"doc_count":16},{"key_as_string":"2017-02-10T11:35:00.000Z","key":1486726500000,"doc_count":19},{"key_as_string":"2017-02-10T11:36:00.000Z","key":1486726560000,"doc_count":9},{"key_as_string":"2017-02-10T11:37:00.000Z","key":1486726620000,"doc_count":14},{"key_as_string":"2017-02-10T11:38:00.000Z","key":1486726680000,"doc_count":12},{"key_as_string":"2017-02-10T11:39:00.000Z","key":1486726740000,"doc_count":15},{"key_as_string":"2017-02-10T11:40:00.000Z","key":1486726800000,"doc_count":13},{"key_as_string":"2017-02-10T11:41:00.000Z","key":1486726860000,"doc_count":14},{"key_as_string":"2017-02-10T11:42:00.000Z","key":1486726920000,"doc_count":11},{"key_as_string":"2017-02-10T11:43:00.000Z","key":1486726980000,"doc_count":16},{"key_as_string":"2017-02-10T11:44:00.000Z","key":1486727040000,"doc_count":10},{"key_as_string":"2017-02-10T11:45:00.000Z","key":1486727100000,"doc_count":12},{"key_as_string":"2017-02-10T11:46:00.000Z","key":1486727160000,"doc_count":9},{"key_as_string":"2017-02-10T11:47:00.000Z","key":1486727220000,"doc_count":16},{"key_as_string":"2017-02-10T11:48:00.000Z","key":1486727280000,"doc_count":8},{"key_as_string":"2017-02-10T11:49:00.000Z","key":1486727340000,"doc_count":13},{"key_as_string":"2017-02-10T11:50:00.000Z","key":1486727400000,"doc_count":16},{"key_as_string":"2017-02-10T11:51:00.000Z","key":1486727460000,"doc_count":13},{"key_as_string":"2017-02-10T11:52:00.000Z","key":1486727520000,"doc_count":12},{"key_as_string":"2017-02-10T11:53:00.000Z","key":1486727580000,"doc_count":23},{"key_as_string":"2017-02-10T11:54:00.000Z","key":1486727640000,"doc_count":11},{"key_as_string":"2017-02-10T11:55:00.000Z","key":1486727700000,"doc_count":12},{"key_as_string":"2017-02-10T11:56:00.000Z","key":1486727760000,"doc_count":14},{"key_as_string":"2017-02-10T11:57:00.000Z","key":1486727820000,"doc_count":15},{"key_as_string":"2017-02-10T11:58:00.000Z","key":1486727880000,"doc_count":14},{"key_as_string":"2017-02-10T11:59:00.000Z","key":1486727940000,"doc_count":14},{"key_as_string":"2017-02-10T12:00:00.000Z","key":1486728000000,"doc_count":13},{"key_as_string":"2017-02-10T12:01:00.000Z","key":1486728060000,"doc_count":15},{"key_as_string":"2017-02-10T12:02:00.000Z","key":1486728120000,"doc_count":10},{"key_as_string":"2017-02-10T12:03:00.000Z","key":1486728180000,"doc_count":14},{"key_as_string":"2017-02-10T12:04:00.000Z","key":1486728240000,"doc_count":14},{"key_as_string":"2017-02-10T12:05:00.000Z","key":1486728300000,"doc_count":15},{"key_as_string":"2017-02-10T12:06:00.000Z","key":1486728360000,"doc_count":10},{"key_as_string":"2017-02-10T12:07:00.000Z","key":1486728420000,"doc_count":16},{"key_as_string":"2017-02-10T12:08:00.000Z","key":1486728480000,"doc_count":17},{"key_as_string":"2017-02-10T12:09:00.000Z","key":1486728540000,"doc_count":11},{"key_as_string":"2017-02-10T12:10:00.000Z","key":1486728600000,"doc_count":16},{"key_as_string":"2017-02-10T12:11:00.000Z","key":1486728660000,"doc_count":16},{"key_as_string":"2017-02-10T12:12:00.000Z","key":1486728720000,"doc_count":8},{"key_as_string":"2017-02-10T12:13:00.000Z","key":1486728780000,"doc_count":19},{"key_as_string":"2017-02-10T12:14:00.000Z","key":1486728840000,"doc_count":21},{"key_as_string":"2017-02-10T12:15:00.000Z","key":1486728900000,"doc_count":15},{"key_as_string":"2017-02-10T12:16:00.000Z","key":1486728960000,"doc_count":12},{"key_as_string":"2017-02-10T12:17:00.000Z","key":1486729020000,"doc_count":16},{"key_as_string":"2017-02-10T12:18:00.000Z","key":1486729080000,"doc_count":14},{"key_as_string":"2017-02-10T12:19:00.000Z","key":1486729140000,"doc_count":17},{"key_as_string":"2017-02-10T12:20:00.000Z","key":1486729200000,"doc_count":16},{"key_as_string":"2017-02-10T12:21:00.000Z","key":1486729260000,"doc_count":13},{"key_as_string":"2017-02-10T12:22:00.000Z","key":1486729320000,"doc_count":9},{"key_as_string":"2017-02-10T12:23:00.000Z","key":1486729380000,"doc_count":14},{"key_as_string":"2017-02-10T12:24:00.000Z","key":1486729440000,"doc_count":14},{"key_as_string":"2017-02-10T12:25:00.000Z","key":1486729500000,"doc_count":12},{"key_as_string":"2017-02-10T12:26:00.000Z","key":1486729560000,"doc_count":15},{"key_as_string":"2017-02-10T12:27:00.000Z","key":1486729620000,"doc_count":11},{"key_as_string":"2017-02-10T12:28:00.000Z","key":1486729680000,"doc_count":11},{"key_as_string":"2017-02-10T12:29:00.000Z","key":1486729740000,"doc_count":13},{"key_as_string":"2017-02-10T12:30:00.000Z","key":1486729800000,"doc_count":9},{"key_as_string":"2017-02-10T12:31:00.000Z","key":1486729860000,"doc_count":16},{"key_as_string":"2017-02-10T12:32:00.000Z","key":1486729920000,"doc_count":7},{"key_as_string":"2017-02-10T12:33:00.000Z","key":1486729980000,"doc_count":15},{"key_as_string":"2017-02-10T12:34:00.000Z","key":1486730040000,"doc_count":10},{"key_as_string":"2017-02-10T12:35:00.000Z","key":1486730100000,"doc_count":15},{"key_as_string":"2017-02-10T12:36:00.000Z","key":1486730160000,"doc_count":15},{"key_as_string":"2017-02-10T12:37:00.000Z","key":1486730220000,"doc_count":17},{"key_as_string":"2017-02-10T12:38:00.000Z","key":1486730280000,"doc_count":15},{"key_as_string":"2017-02-10T12:39:00.000Z","key":1486730340000,"doc_count":13},{"key_as_string":"2017-02-10T12:40:00.000Z","key":1486730400000,"doc_count":12},{"key_as_string":"2017-02-10T12:41:00.000Z","key":1486730460000,"doc_count":10},{"key_as_string":"2017-02-10T12:42:00.000Z","key":1486730520000,"doc_count":11},{"key_as_string":"2017-02-10T12:43:00.000Z","key":1486730580000,"doc_count":15},{"key_as_string":"2017-02-10T12:44:00.000Z","key":1486730640000,"doc_count":14},{"key_as_string":"2017-02-10T12:45:00.000Z","key":1486730700000,"doc_count":15},{"key_as_string":"2017-02-10T12:46:00.000Z","key":1486730760000,"doc_count":12},{"key_as_string":"2017-02-10T12:47:00.000Z","key":1486730820000,"doc_count":14},{"key_as_string":"2017-02-10T12:48:00.000Z","key":1486730880000,"doc_count":15},{"key_as_string":"2017-02-10T12:49:00.000Z","key":1486730940000,"doc_count":14},{"key_as_string":"2017-02-10T12:50:00.000Z","key":1486731000000,"doc_count":14},{"key_as_string":"2017-02-10T12:51:00.000Z","key":1486731060000,"doc_count":13},{"key_as_string":"2017-02-10T12:52:00.000Z","key":1486731120000,"doc_count":17},{"key_as_string":"2017-02-10T12:53:00.000Z","key":1486731180000,"doc_count":10},{"key_as_string":"2017-02-10T12:54:00.000Z","key":1486731240000,"doc_count":12},{"key_as_string":"2017-02-10T12:55:00.000Z","key":1486731300000,"doc_count":16},{"key_as_string":"2017-02-10T12:56:00.000Z","key":1486731360000,"doc_count":8},{"key_as_string":"2017-02-10T12:57:00.000Z","key":1486731420000,"doc_count":12},{"key_as_string":"2017-02-10T12:58:00.000Z","key":1486731480000,"doc_count":22},{"key_as_string":"2017-02-10T12:59:00.000Z","key":1486731540000,"doc_count":13},{"key_as_string":"2017-02-10T13:00:00.000Z","key":1486731600000,"doc_count":15},{"key_as_string":"2017-02-10T13:01:00.000Z","key":1486731660000,"doc_count":8},{"key_as_string":"2017-02-10T13:02:00.000Z","key":1486731720000,"doc_count":19},{"key_as_string":"2017-02-10T13:03:00.000Z","key":1486731780000,"doc_count":9},{"key_as_string":"2017-02-10T13:04:00.000Z","key":1486731840000,"doc_count":12},{"key_as_string":"2017-02-10T13:05:00.000Z","key":1486731900000,"doc_count":15},{"key_as_string":"2017-02-10T13:06:00.000Z","key":1486731960000,"doc_count":15},{"key_as_string":"2017-02-10T13:07:00.000Z","key":1486732020000,"doc_count":16},{"key_as_string":"2017-02-10T13:08:00.000Z","key":1486732080000,"doc_count":14},{"key_as_string":"2017-02-10T13:09:00.000Z","key":1486732140000,"doc_count":15},{"key_as_string":"2017-02-10T13:10:00.000Z","key":1486732200000,"doc_count":9},{"key_as_string":"2017-02-10T13:11:00.000Z","key":1486732260000,"doc_count":14},{"key_as_string":"2017-02-10T13:12:00.000Z","key":1486732320000,"doc_count":15},{"key_as_string":"2017-02-10T13:13:00.000Z","key":1486732380000,"doc_count":12},{"key_as_string":"2017-02-10T13:14:00.000Z","key":1486732440000,"doc_count":13},{"key_as_string":"2017-02-10T13:15:00.000Z","key":1486732500000,"doc_count":22},{"key_as_string":"2017-02-10T13:16:00.000Z","key":1486732560000,"doc_count":9},{"key_as_string":"2017-02-10T13:17:00.000Z","key":1486732620000,"doc_count":13},{"key_as_string":"2017-02-10T13:18:00.000Z","key":1486732680000,"doc_count":14},{"key_as_string":"2017-02-10T13:19:00.000Z","key":1486732740000,"doc_count":9},{"key_as_string":"2017-02-10T13:20:00.000Z","key":1486732800000,"doc_count":11},{"key_as_string":"2017-02-10T13:21:00.000Z","key":1486732860000,"doc_count":12},{"key_as_string":"2017-02-10T13:22:00.000Z","key":1486732920000,"doc_count":16},{"key_as_string":"2017-02-10T13:23:00.000Z","key":1486732980000,"doc_count":15},{"key_as_string":"2017-02-10T13:24:00.000Z","key":1486733040000,"doc_count":9},{"key_as_string":"2017-02-10T13:25:00.000Z","key":1486733100000,"doc_count":12},{"key_as_string":"2017-02-10T13:26:00.000Z","key":1486733160000,"doc_count":14},{"key_as_string":"2017-02-10T13:27:00.000Z","key":1486733220000,"doc_count":17},{"key_as_string":"2017-02-10T13:28:00.000Z","key":1486733280000,"doc_count":5},{"key_as_string":"2017-02-10T13:29:00.000Z","key":1486733340000,"doc_count":16},{"key_as_string":"2017-02-10T13:30:00.000Z","key":1486733400000,"doc_count":9},{"key_as_string":"2017-02-10T13:31:00.000Z","key":1486733460000,"doc_count":17},{"key_as_string":"2017-02-10T13:32:00.000Z","key":1486733520000,"doc_count":12},{"key_as_string":"2017-02-10T13:33:00.000Z","key":1486733580000,"doc_count":10},{"key_as_string":"2017-02-10T13:34:00.000Z","key":1486733640000,"doc_count":18},{"key_as_string":"2017-02-10T13:35:00.000Z","key":1486733700000,"doc_count":5},{"key_as_string":"2017-02-10T13:36:00.000Z","key":1486733760000,"doc_count":13},{"key_as_string":"2017-02-10T13:37:00.000Z","key":1486733820000,"doc_count":18},{"key_as_string":"2017-02-10T13:38:00.000Z","key":1486733880000,"doc_count":17},{"key_as_string":"2017-02-10T13:39:00.000Z","key":1486733940000,"doc_count":15},{"key_as_string":"2017-02-10T13:40:00.000Z","key":1486734000000,"doc_count":16},{"key_as_string":"2017-02-10T13:41:00.000Z","key":1486734060000,"doc_count":8},{"key_as_string":"2017-02-10T13:42:00.000Z","key":1486734120000,"doc_count":17},{"key_as_string":"2017-02-10T13:43:00.000Z","key":1486734180000,"doc_count":14},{"key_as_string":"2017-02-10T13:44:00.000Z","key":1486734240000,"doc_count":14},{"key_as_string":"2017-02-10T13:45:00.000Z","key":1486734300000,"doc_count":17},{"key_as_string":"2017-02-10T13:46:00.000Z","key":1486734360000,"doc_count":14},{"key_as_string":"2017-02-10T13:47:00.000Z","key":1486734420000,"doc_count":16},{"key_as_string":"2017-02-10T13:48:00.000Z","key":1486734480000,"doc_count":16},{"key_as_string":"2017-02-10T13:49:00.000Z","key":1486734540000,"doc_count":21},{"key_as_string":"2017-02-10T13:50:00.000Z","key":1486734600000,"doc_count":12},{"key_as_string":"2017-02-10T13:51:00.000Z","key":1486734660000,"doc_count":12},{"key_as_string":"2017-02-10T13:52:00.000Z","key":1486734720000,"doc_count":8},{"key_as_string":"2017-02-10T13:53:00.000Z","key":1486734780000,"doc_count":15},{"key_as_string":"2017-02-10T13:54:00.000Z","key":1486734840000,"doc_count":13},{"key_as_string":"2017-02-10T13:55:00.000Z","key":1486734900000,"doc_count":14},{"key_as_string":"2017-02-10T13:56:00.000Z","key":1486734960000,"doc_count":13},{"key_as_string":"2017-02-10T13:57:00.000Z","key":1486735020000,"doc_count":12},{"key_as_string":"2017-02-10T13:58:00.000Z","key":1486735080000,"doc_count":14},{"key_as_string":"2017-02-10T13:59:00.000Z","key":1486735140000,"doc_count":13},{"key_as_string":"2017-02-10T14:00:00.000Z","key":1486735200000,"doc_count":16},{"key_as_string":"2017-02-10T14:01:00.000Z","key":1486735260000,"doc_count":9},{"key_as_string":"2017-02-10T14:02:00.000Z","key":1486735320000,"doc_count":20},{"key_as_string":"2017-02-10T14:03:00.000Z","key":1486735380000,"doc_count":15},{"key_as_string":"2017-02-10T14:04:00.000Z","key":1486735440000,"doc_count":13},{"key_as_string":"2017-02-10T14:05:00.000Z","key":1486735500000,"doc_count":10},{"key_as_string":"2017-02-10T14:06:00.000Z","key":1486735560000,"doc_count":11},{"key_as_string":"2017-02-10T14:07:00.000Z","key":1486735620000,"doc_count":9},{"key_as_string":"2017-02-10T14:08:00.000Z","key":1486735680000,"doc_count":15},{"key_as_string":"2017-02-10T14:09:00.000Z","key":1486735740000,"doc_count":17},{"key_as_string":"2017-02-10T14:10:00.000Z","key":1486735800000,"doc_count":13},{"key_as_string":"2017-02-10T14:11:00.000Z","key":1486735860000,"doc_count":15},{"key_as_string":"2017-02-10T14:12:00.000Z","key":1486735920000,"doc_count":10},{"key_as_string":"2017-02-10T14:13:00.000Z","key":1486735980000,"doc_count":12},{"key_as_string":"2017-02-10T14:14:00.000Z","key":1486736040000,"doc_count":15},{"key_as_string":"2017-02-10T14:15:00.000Z","key":1486736100000,"doc_count":13},{"key_as_string":"2017-02-10T14:16:00.000Z","key":1486736160000,"doc_count":13},{"key_as_string":"2017-02-10T14:17:00.000Z","key":1486736220000,"doc_count":15},{"key_as_string":"2017-02-10T14:18:00.000Z","key":1486736280000,"doc_count":14},{"key_as_string":"2017-02-10T14:19:00.000Z","key":1486736340000,"doc_count":9},{"key_as_string":"2017-02-10T14:20:00.000Z","key":1486736400000,"doc_count":15},{"key_as_string":"2017-02-10T14:21:00.000Z","key":1486736460000,"doc_count":12},{"key_as_string":"2017-02-10T14:22:00.000Z","key":1486736520000,"doc_count":12},{"key_as_string":"2017-02-10T14:23:00.000Z","key":1486736580000,"doc_count":16},{"key_as_string":"2017-02-10T14:24:00.000Z","key":1486736640000,"doc_count":4},{"key_as_string":"2017-02-10T14:25:00.000Z","key":1486736700000,"doc_count":12},{"key_as_string":"2017-02-10T14:26:00.000Z","key":1486736760000,"doc_count":15},{"key_as_string":"2017-02-10T14:27:00.000Z","key":1486736820000,"doc_count":17},{"key_as_string":"2017-02-10T14:28:00.000Z","key":1486736880000,"doc_count":15},{"key_as_string":"2017-02-10T14:29:00.000Z","key":1486736940000,"doc_count":13},{"key_as_string":"2017-02-10T14:30:00.000Z","key":1486737000000,"doc_count":9},{"key_as_string":"2017-02-10T14:31:00.000Z","key":1486737060000,"doc_count":17},{"key_as_string":"2017-02-10T14:32:00.000Z","key":1486737120000,"doc_count":14},{"key_as_string":"2017-02-10T14:33:00.000Z","key":1486737180000,"doc_count":11},{"key_as_string":"2017-02-10T14:34:00.000Z","key":1486737240000,"doc_count":10},{"key_as_string":"2017-02-10T14:35:00.000Z","key":1486737300000,"doc_count":10},{"key_as_string":"2017-02-10T14:36:00.000Z","key":1486737360000,"doc_count":12},{"key_as_string":"2017-02-10T14:37:00.000Z","key":1486737420000,"doc_count":14},{"key_as_string":"2017-02-10T14:38:00.000Z","key":1486737480000,"doc_count":15},{"key_as_string":"2017-02-10T14:39:00.000Z","key":1486737540000,"doc_count":8},{"key_as_string":"2017-02-10T14:40:00.000Z","key":1486737600000,"doc_count":15},{"key_as_string":"2017-02-10T14:41:00.000Z","key":1486737660000,"doc_count":10},{"key_as_string":"2017-02-10T14:42:00.000Z","key":1486737720000,"doc_count":14},{"key_as_string":"2017-02-10T14:43:00.000Z","key":1486737780000,"doc_count":11},{"key_as_string":"2017-02-10T14:44:00.000Z","key":1486737840000,"doc_count":12},{"key_as_string":"2017-02-10T14:45:00.000Z","key":1486737900000,"doc_count":18},{"key_as_string":"2017-02-10T14:46:00.000Z","key":1486737960000,"doc_count":12},{"key_as_string":"2017-02-10T14:47:00.000Z","key":1486738020000,"doc_count":14},{"key_as_string":"2017-02-10T14:48:00.000Z","key":1486738080000,"doc_count":13},{"key_as_string":"2017-02-10T14:49:00.000Z","key":1486738140000,"doc_count":9},{"key_as_string":"2017-02-10T14:50:00.000Z","key":1486738200000,"doc_count":20},{"key_as_string":"2017-02-10T14:51:00.000Z","key":1486738260000,"doc_count":11},{"key_as_string":"2017-02-10T14:52:00.000Z","key":1486738320000,"doc_count":9},{"key_as_string":"2017-02-10T14:53:00.000Z","key":1486738380000,"doc_count":14},{"key_as_string":"2017-02-10T14:54:00.000Z","key":1486738440000,"doc_count":15},{"key_as_string":"2017-02-10T14:55:00.000Z","key":1486738500000,"doc_count":13},{"key_as_string":"2017-02-10T14:56:00.000Z","key":1486738560000,"doc_count":12},{"key_as_string":"2017-02-10T14:57:00.000Z","key":1486738620000,"doc_count":15},{"key_as_string":"2017-02-10T14:58:00.000Z","key":1486738680000,"doc_count":9},{"key_as_string":"2017-02-10T14:59:00.000Z","key":1486738740000,"doc_count":12},{"key_as_string":"2017-02-10T15:00:00.000Z","key":1486738800000,"doc_count":15},{"key_as_string":"2017-02-10T15:01:00.000Z","key":1486738860000,"doc_count":11},{"key_as_string":"2017-02-10T15:02:00.000Z","key":1486738920000,"doc_count":14},{"key_as_string":"2017-02-10T15:03:00.000Z","key":1486738980000,"doc_count":11},{"key_as_string":"2017-02-10T15:04:00.000Z","key":1486739040000,"doc_count":12},{"key_as_string":"2017-02-10T15:05:00.000Z","key":1486739100000,"doc_count":11},{"key_as_string":"2017-02-10T15:06:00.000Z","key":1486739160000,"doc_count":17},{"key_as_string":"2017-02-10T15:07:00.000Z","key":1486739220000,"doc_count":12},{"key_as_string":"2017-02-10T15:08:00.000Z","key":1486739280000,"doc_count":10},{"key_as_string":"2017-02-10T15:09:00.000Z","key":1486739340000,"doc_count":19},{"key_as_string":"2017-02-10T15:10:00.000Z","key":1486739400000,"doc_count":10},{"key_as_string":"2017-02-10T15:11:00.000Z","key":1486739460000,"doc_count":10},{"key_as_string":"2017-02-10T15:12:00.000Z","key":1486739520000,"doc_count":18},{"key_as_string":"2017-02-10T15:13:00.000Z","key":1486739580000,"doc_count":14},{"key_as_string":"2017-02-10T15:14:00.000Z","key":1486739640000,"doc_count":11},{"key_as_string":"2017-02-10T15:15:00.000Z","key":1486739700000,"doc_count":16},{"key_as_string":"2017-02-10T15:16:00.000Z","key":1486739760000,"doc_count":13},{"key_as_string":"2017-02-10T15:17:00.000Z","key":1486739820000,"doc_count":20},{"key_as_string":"2017-02-10T15:18:00.000Z","key":1486739880000,"doc_count":10},{"key_as_string":"2017-02-10T15:19:00.000Z","key":1486739940000,"doc_count":16},{"key_as_string":"2017-02-10T15:20:00.000Z","key":1486740000000,"doc_count":15},{"key_as_string":"2017-02-10T15:21:00.000Z","key":1486740060000,"doc_count":16},{"key_as_string":"2017-02-10T15:22:00.000Z","key":1486740120000,"doc_count":20},{"key_as_string":"2017-02-10T15:23:00.000Z","key":1486740180000,"doc_count":12},{"key_as_string":"2017-02-10T15:24:00.000Z","key":1486740240000,"doc_count":15},{"key_as_string":"2017-02-10T15:25:00.000Z","key":1486740300000,"doc_count":12},{"key_as_string":"2017-02-10T15:26:00.000Z","key":1486740360000,"doc_count":16},{"key_as_string":"2017-02-10T15:27:00.000Z","key":1486740420000,"doc_count":14},{"key_as_string":"2017-02-10T15:28:00.000Z","key":1486740480000,"doc_count":12},{"key_as_string":"2017-02-10T15:29:00.000Z","key":1486740540000,"doc_count":10},{"key_as_string":"2017-02-10T15:30:00.000Z","key":1486740600000,"doc_count":16},{"key_as_string":"2017-02-10T15:31:00.000Z","key":1486740660000,"doc_count":13},{"key_as_string":"2017-02-10T15:32:00.000Z","key":1486740720000,"doc_count":14},{"key_as_string":"2017-02-10T15:33:00.000Z","key":1486740780000,"doc_count":11},{"key_as_string":"2017-02-10T15:34:00.000Z","key":1486740840000,"doc_count":12},{"key_as_string":"2017-02-10T15:35:00.000Z","key":1486740900000,"doc_count":12},{"key_as_string":"2017-02-10T15:36:00.000Z","key":1486740960000,"doc_count":11},{"key_as_string":"2017-02-10T15:37:00.000Z","key":1486741020000,"doc_count":13},{"key_as_string":"2017-02-10T15:38:00.000Z","key":1486741080000,"doc_count":11},{"key_as_string":"2017-02-10T15:39:00.000Z","key":1486741140000,"doc_count":11},{"key_as_string":"2017-02-10T15:40:00.000Z","key":1486741200000,"doc_count":12},{"key_as_string":"2017-02-10T15:41:00.000Z","key":1486741260000,"doc_count":16},{"key_as_string":"2017-02-10T15:42:00.000Z","key":1486741320000,"doc_count":15},{"key_as_string":"2017-02-10T15:43:00.000Z","key":1486741380000,"doc_count":15},{"key_as_string":"2017-02-10T15:44:00.000Z","key":1486741440000,"doc_count":15},{"key_as_string":"2017-02-10T15:45:00.000Z","key":1486741500000,"doc_count":15},{"key_as_string":"2017-02-10T15:46:00.000Z","key":1486741560000,"doc_count":11},{"key_as_string":"2017-02-10T15:47:00.000Z","key":1486741620000,"doc_count":14},{"key_as_string":"2017-02-10T15:48:00.000Z","key":1486741680000,"doc_count":15},{"key_as_string":"2017-02-10T15:49:00.000Z","key":1486741740000,"doc_count":12},{"key_as_string":"2017-02-10T15:50:00.000Z","key":1486741800000,"doc_count":12},{"key_as_string":"2017-02-10T15:51:00.000Z","key":1486741860000,"doc_count":12},{"key_as_string":"2017-02-10T15:52:00.000Z","key":1486741920000,"doc_count":19},{"key_as_string":"2017-02-10T15:53:00.000Z","key":1486741980000,"doc_count":14},{"key_as_string":"2017-02-10T15:54:00.000Z","key":1486742040000,"doc_count":18},{"key_as_string":"2017-02-10T15:55:00.000Z","key":1486742100000,"doc_count":11},{"key_as_string":"2017-02-10T15:56:00.000Z","key":1486742160000,"doc_count":16},{"key_as_string":"2017-02-10T15:57:00.000Z","key":1486742220000,"doc_count":11},{"key_as_string":"2017-02-10T15:58:00.000Z","key":1486742280000,"doc_count":10},{"key_as_string":"2017-02-10T15:59:00.000Z","key":1486742340000,"doc_count":12},{"key_as_string":"2017-02-10T16:00:00.000Z","key":1486742400000,"doc_count":16},{"key_as_string":"2017-02-10T16:01:00.000Z","key":1486742460000,"doc_count":12},{"key_as_string":"2017-02-10T16:02:00.000Z","key":1486742520000,"doc_count":16},{"key_as_string":"2017-02-10T16:03:00.000Z","key":1486742580000,"doc_count":11},{"key_as_string":"2017-02-10T16:04:00.000Z","key":1486742640000,"doc_count":13},{"key_as_string":"2017-02-10T16:05:00.000Z","key":1486742700000,"doc_count":15},{"key_as_string":"2017-02-10T16:06:00.000Z","key":1486742760000,"doc_count":13},{"key_as_string":"2017-02-10T16:07:00.000Z","key":1486742820000,"doc_count":14},{"key_as_string":"2017-02-10T16:08:00.000Z","key":1486742880000,"doc_count":16},{"key_as_string":"2017-02-10T16:09:00.000Z","key":1486742940000,"doc_count":8},{"key_as_string":"2017-02-10T16:10:00.000Z","key":1486743000000,"doc_count":13},{"key_as_string":"2017-02-10T16:11:00.000Z","key":1486743060000,"doc_count":13},{"key_as_string":"2017-02-10T16:12:00.000Z","key":1486743120000,"doc_count":15},{"key_as_string":"2017-02-10T16:13:00.000Z","key":1486743180000,"doc_count":20},{"key_as_string":"2017-02-10T16:14:00.000Z","key":1486743240000,"doc_count":12},{"key_as_string":"2017-02-10T16:15:00.000Z","key":1486743300000,"doc_count":10},{"key_as_string":"2017-02-10T16:16:00.000Z","key":1486743360000,"doc_count":12},{"key_as_string":"2017-02-10T16:17:00.000Z","key":1486743420000,"doc_count":12},{"key_as_string":"2017-02-10T16:18:00.000Z","key":1486743480000,"doc_count":15},{"key_as_string":"2017-02-10T16:19:00.000Z","key":1486743540000,"doc_count":11},{"key_as_string":"2017-02-10T16:20:00.000Z","key":1486743600000,"doc_count":10},{"key_as_string":"2017-02-10T16:21:00.000Z","key":1486743660000,"doc_count":13},{"key_as_string":"2017-02-10T16:22:00.000Z","key":1486743720000,"doc_count":12},{"key_as_string":"2017-02-10T16:23:00.000Z","key":1486743780000,"doc_count":15},{"key_as_string":"2017-02-10T16:24:00.000Z","key":1486743840000,"doc_count":17},{"key_as_string":"2017-02-10T16:25:00.000Z","key":1486743900000,"doc_count":12},{"key_as_string":"2017-02-10T16:26:00.000Z","key":1486743960000,"doc_count":13},{"key_as_string":"2017-02-10T16:27:00.000Z","key":1486744020000,"doc_count":11},{"key_as_string":"2017-02-10T16:28:00.000Z","key":1486744080000,"doc_count":8},{"key_as_string":"2017-02-10T16:29:00.000Z","key":1486744140000,"doc_count":14},{"key_as_string":"2017-02-10T16:30:00.000Z","key":1486744200000,"doc_count":12},{"key_as_string":"2017-02-10T16:31:00.000Z","key":1486744260000,"doc_count":12},{"key_as_string":"2017-02-10T16:32:00.000Z","key":1486744320000,"doc_count":12},{"key_as_string":"2017-02-10T16:33:00.000Z","key":1486744380000,"doc_count":8},{"key_as_string":"2017-02-10T16:34:00.000Z","key":1486744440000,"doc_count":18},{"key_as_string":"2017-02-10T16:35:00.000Z","key":1486744500000,"doc_count":14},{"key_as_string":"2017-02-10T16:36:00.000Z","key":1486744560000,"doc_count":12},{"key_as_string":"2017-02-10T16:37:00.000Z","key":1486744620000,"doc_count":10},{"key_as_string":"2017-02-10T16:38:00.000Z","key":1486744680000,"doc_count":19},{"key_as_string":"2017-02-10T16:39:00.000Z","key":1486744740000,"doc_count":8},{"key_as_string":"2017-02-10T16:40:00.000Z","key":1486744800000,"doc_count":12},{"key_as_string":"2017-02-10T16:41:00.000Z","key":1486744860000,"doc_count":16},{"key_as_string":"2017-02-10T16:42:00.000Z","key":1486744920000,"doc_count":11},{"key_as_string":"2017-02-10T16:43:00.000Z","key":1486744980000,"doc_count":15},{"key_as_string":"2017-02-10T16:44:00.000Z","key":1486745040000,"doc_count":9},{"key_as_string":"2017-02-10T16:45:00.000Z","key":1486745100000,"doc_count":15},{"key_as_string":"2017-02-10T16:46:00.000Z","key":1486745160000,"doc_count":11},{"key_as_string":"2017-02-10T16:47:00.000Z","key":1486745220000,"doc_count":16},{"key_as_string":"2017-02-10T16:48:00.000Z","key":1486745280000,"doc_count":17},{"key_as_string":"2017-02-10T16:49:00.000Z","key":1486745340000,"doc_count":10},{"key_as_string":"2017-02-10T16:50:00.000Z","key":1486745400000,"doc_count":11},{"key_as_string":"2017-02-10T16:51:00.000Z","key":1486745460000,"doc_count":13},{"key_as_string":"2017-02-10T16:52:00.000Z","key":1486745520000,"doc_count":7},{"key_as_string":"2017-02-10T16:53:00.000Z","key":1486745580000,"doc_count":13},{"key_as_string":"2017-02-10T16:54:00.000Z","key":1486745640000,"doc_count":12},{"key_as_string":"2017-02-10T16:55:00.000Z","key":1486745700000,"doc_count":18},{"key_as_string":"2017-02-10T16:56:00.000Z","key":1486745760000,"doc_count":6},{"key_as_string":"2017-02-10T16:57:00.000Z","key":1486745820000,"doc_count":11},{"key_as_string":"2017-02-10T16:58:00.000Z","key":1486745880000,"doc_count":10},{"key_as_string":"2017-02-10T16:59:00.000Z","key":1486745940000,"doc_count":12},{"key_as_string":"2017-02-10T17:00:00.000Z","key":1486746000000,"doc_count":13},{"key_as_string":"2017-02-10T17:01:00.000Z","key":1486746060000,"doc_count":9},{"key_as_string":"2017-02-10T17:02:00.000Z","key":1486746120000,"doc_count":14},{"key_as_string":"2017-02-10T17:03:00.000Z","key":1486746180000,"doc_count":13},{"key_as_string":"2017-02-10T17:04:00.000Z","key":1486746240000,"doc_count":12},{"key_as_string":"2017-02-10T17:05:00.000Z","key":1486746300000,"doc_count":9},{"key_as_string":"2017-02-10T17:06:00.000Z","key":1486746360000,"doc_count":14},{"key_as_string":"2017-02-10T17:07:00.000Z","key":1486746420000,"doc_count":15},{"key_as_string":"2017-02-10T17:08:00.000Z","key":1486746480000,"doc_count":11},{"key_as_string":"2017-02-10T17:09:00.000Z","key":1486746540000,"doc_count":8},{"key_as_string":"2017-02-10T17:10:00.000Z","key":1486746600000,"doc_count":9},{"key_as_string":"2017-02-10T17:11:00.000Z","key":1486746660000,"doc_count":12},{"key_as_string":"2017-02-10T17:12:00.000Z","key":1486746720000,"doc_count":15},{"key_as_string":"2017-02-10T17:13:00.000Z","key":1486746780000,"doc_count":13},{"key_as_string":"2017-02-10T17:14:00.000Z","key":1486746840000,"doc_count":14},{"key_as_string":"2017-02-10T17:15:00.000Z","key":1486746900000,"doc_count":10},{"key_as_string":"2017-02-10T17:16:00.000Z","key":1486746960000,"doc_count":12},{"key_as_string":"2017-02-10T17:17:00.000Z","key":1486747020000,"doc_count":10},{"key_as_string":"2017-02-10T17:18:00.000Z","key":1486747080000,"doc_count":14},{"key_as_string":"2017-02-10T17:19:00.000Z","key":1486747140000,"doc_count":7},{"key_as_string":"2017-02-10T17:20:00.000Z","key":1486747200000,"doc_count":9},{"key_as_string":"2017-02-10T17:21:00.000Z","key":1486747260000,"doc_count":10},{"key_as_string":"2017-02-10T17:22:00.000Z","key":1486747320000,"doc_count":13},{"key_as_string":"2017-02-10T17:23:00.000Z","key":1486747380000,"doc_count":16},{"key_as_string":"2017-02-10T17:24:00.000Z","key":1486747440000,"doc_count":11},{"key_as_string":"2017-02-10T17:25:00.000Z","key":1486747500000,"doc_count":14},{"key_as_string":"2017-02-10T17:26:00.000Z","key":1486747560000,"doc_count":12},{"key_as_string":"2017-02-10T17:27:00.000Z","key":1486747620000,"doc_count":12},{"key_as_string":"2017-02-10T17:28:00.000Z","key":1486747680000,"doc_count":9},{"key_as_string":"2017-02-10T17:29:00.000Z","key":1486747740000,"doc_count":16},{"key_as_string":"2017-02-10T17:30:00.000Z","key":1486747800000,"doc_count":14},{"key_as_string":"2017-02-10T17:31:00.000Z","key":1486747860000,"doc_count":10},{"key_as_string":"2017-02-10T17:32:00.000Z","key":1486747920000,"doc_count":8},{"key_as_string":"2017-02-10T17:33:00.000Z","key":1486747980000,"doc_count":9},{"key_as_string":"2017-02-10T17:34:00.000Z","key":1486748040000,"doc_count":15},{"key_as_string":"2017-02-10T17:35:00.000Z","key":1486748100000,"doc_count":9},{"key_as_string":"2017-02-10T17:36:00.000Z","key":1486748160000,"doc_count":13},{"key_as_string":"2017-02-10T17:37:00.000Z","key":1486748220000,"doc_count":9},{"key_as_string":"2017-02-10T17:38:00.000Z","key":1486748280000,"doc_count":7},{"key_as_string":"2017-02-10T17:39:00.000Z","key":1486748340000,"doc_count":18},{"key_as_string":"2017-02-10T17:40:00.000Z","key":1486748400000,"doc_count":14},{"key_as_string":"2017-02-10T17:41:00.000Z","key":1486748460000,"doc_count":9},{"key_as_string":"2017-02-10T17:42:00.000Z","key":1486748520000,"doc_count":12},{"key_as_string":"2017-02-10T17:43:00.000Z","key":1486748580000,"doc_count":9},{"key_as_string":"2017-02-10T17:44:00.000Z","key":1486748640000,"doc_count":14},{"key_as_string":"2017-02-10T17:45:00.000Z","key":1486748700000,"doc_count":11},{"key_as_string":"2017-02-10T17:46:00.000Z","key":1486748760000,"doc_count":11},{"key_as_string":"2017-02-10T17:47:00.000Z","key":1486748820000,"doc_count":12},{"key_as_string":"2017-02-10T17:48:00.000Z","key":1486748880000,"doc_count":16},{"key_as_string":"2017-02-10T17:49:00.000Z","key":1486748940000,"doc_count":10},{"key_as_string":"2017-02-10T17:50:00.000Z","key":1486749000000,"doc_count":14},{"key_as_string":"2017-02-10T17:51:00.000Z","key":1486749060000,"doc_count":8},{"key_as_string":"2017-02-10T17:52:00.000Z","key":1486749120000,"doc_count":16},{"key_as_string":"2017-02-10T17:53:00.000Z","key":1486749180000,"doc_count":9},{"key_as_string":"2017-02-10T17:54:00.000Z","key":1486749240000,"doc_count":11},{"key_as_string":"2017-02-10T17:55:00.000Z","key":1486749300000,"doc_count":9},{"key_as_string":"2017-02-10T17:56:00.000Z","key":1486749360000,"doc_count":12},{"key_as_string":"2017-02-10T17:57:00.000Z","key":1486749420000,"doc_count":13},{"key_as_string":"2017-02-10T17:58:00.000Z","key":1486749480000,"doc_count":12},{"key_as_string":"2017-02-10T17:59:00.000Z","key":1486749540000,"doc_count":15},{"key_as_string":"2017-02-10T18:00:00.000Z","key":1486749600000,"doc_count":10},{"key_as_string":"2017-02-10T18:01:00.000Z","key":1486749660000,"doc_count":10},{"key_as_string":"2017-02-10T18:02:00.000Z","key":1486749720000,"doc_count":10},{"key_as_string":"2017-02-10T18:03:00.000Z","key":1486749780000,"doc_count":9},{"key_as_string":"2017-02-10T18:04:00.000Z","key":1486749840000,"doc_count":12},{"key_as_string":"2017-02-10T18:05:00.000Z","key":1486749900000,"doc_count":14},{"key_as_string":"2017-02-10T18:06:00.000Z","key":1486749960000,"doc_count":16},{"key_as_string":"2017-02-10T18:07:00.000Z","key":1486750020000,"doc_count":12},{"key_as_string":"2017-02-10T18:08:00.000Z","key":1486750080000,"doc_count":10},{"key_as_string":"2017-02-10T18:09:00.000Z","key":1486750140000,"doc_count":11},{"key_as_string":"2017-02-10T18:10:00.000Z","key":1486750200000,"doc_count":12},{"key_as_string":"2017-02-10T18:11:00.000Z","key":1486750260000,"doc_count":10},{"key_as_string":"2017-02-10T18:12:00.000Z","key":1486750320000,"doc_count":13},{"key_as_string":"2017-02-10T18:13:00.000Z","key":1486750380000,"doc_count":12},{"key_as_string":"2017-02-10T18:14:00.000Z","key":1486750440000,"doc_count":14},{"key_as_string":"2017-02-10T18:15:00.000Z","key":1486750500000,"doc_count":11},{"key_as_string":"2017-02-10T18:16:00.000Z","key":1486750560000,"doc_count":12},{"key_as_string":"2017-02-10T18:17:00.000Z","key":1486750620000,"doc_count":10},{"key_as_string":"2017-02-10T18:18:00.000Z","key":1486750680000,"doc_count":9},{"key_as_string":"2017-02-10T18:19:00.000Z","key":1486750740000,"doc_count":14},{"key_as_string":"2017-02-10T18:20:00.000Z","key":1486750800000,"doc_count":6},{"key_as_string":"2017-02-10T18:21:00.000Z","key":1486750860000,"doc_count":13},{"key_as_string":"2017-02-10T18:22:00.000Z","key":1486750920000,"doc_count":14},{"key_as_string":"2017-02-10T18:23:00.000Z","key":1486750980000,"doc_count":9},{"key_as_string":"2017-02-10T18:24:00.000Z","key":1486751040000,"doc_count":9},{"key_as_string":"2017-02-10T18:25:00.000Z","key":1486751100000,"doc_count":10},{"key_as_string":"2017-02-10T18:26:00.000Z","key":1486751160000,"doc_count":9},{"key_as_string":"2017-02-10T18:27:00.000Z","key":1486751220000,"doc_count":12},{"key_as_string":"2017-02-10T18:28:00.000Z","key":1486751280000,"doc_count":7},{"key_as_string":"2017-02-10T18:29:00.000Z","key":1486751340000,"doc_count":12},{"key_as_string":"2017-02-10T18:30:00.000Z","key":1486751400000,"doc_count":13},{"key_as_string":"2017-02-10T18:31:00.000Z","key":1486751460000,"doc_count":11},{"key_as_string":"2017-02-10T18:32:00.000Z","key":1486751520000,"doc_count":13},{"key_as_string":"2017-02-10T18:33:00.000Z","key":1486751580000,"doc_count":4},{"key_as_string":"2017-02-10T18:34:00.000Z","key":1486751640000,"doc_count":12},{"key_as_string":"2017-02-10T18:35:00.000Z","key":1486751700000,"doc_count":12},{"key_as_string":"2017-02-10T18:36:00.000Z","key":1486751760000,"doc_count":9},{"key_as_string":"2017-02-10T18:37:00.000Z","key":1486751820000,"doc_count":14},{"key_as_string":"2017-02-10T18:38:00.000Z","key":1486751880000,"doc_count":9},{"key_as_string":"2017-02-10T18:39:00.000Z","key":1486751940000,"doc_count":12},{"key_as_string":"2017-02-10T18:40:00.000Z","key":1486752000000,"doc_count":10},{"key_as_string":"2017-02-10T18:41:00.000Z","key":1486752060000,"doc_count":15},{"key_as_string":"2017-02-10T18:42:00.000Z","key":1486752120000,"doc_count":13},{"key_as_string":"2017-02-10T18:43:00.000Z","key":1486752180000,"doc_count":16},{"key_as_string":"2017-02-10T18:44:00.000Z","key":1486752240000,"doc_count":12},{"key_as_string":"2017-02-10T18:45:00.000Z","key":1486752300000,"doc_count":11},{"key_as_string":"2017-02-10T18:46:00.000Z","key":1486752360000,"doc_count":13},{"key_as_string":"2017-02-10T18:47:00.000Z","key":1486752420000,"doc_count":15},{"key_as_string":"2017-02-10T18:48:00.000Z","key":1486752480000,"doc_count":6},{"key_as_string":"2017-02-10T18:49:00.000Z","key":1486752540000,"doc_count":9},{"key_as_string":"2017-02-10T18:50:00.000Z","key":1486752600000,"doc_count":19},{"key_as_string":"2017-02-10T18:51:00.000Z","key":1486752660000,"doc_count":11},{"key_as_string":"2017-02-10T18:52:00.000Z","key":1486752720000,"doc_count":11},{"key_as_string":"2017-02-10T18:53:00.000Z","key":1486752780000,"doc_count":11},{"key_as_string":"2017-02-10T18:54:00.000Z","key":1486752840000,"doc_count":12},{"key_as_string":"2017-02-10T18:55:00.000Z","key":1486752900000,"doc_count":11},{"key_as_string":"2017-02-10T18:56:00.000Z","key":1486752960000,"doc_count":12},{"key_as_string":"2017-02-10T18:57:00.000Z","key":1486753020000,"doc_count":11},{"key_as_string":"2017-02-10T18:58:00.000Z","key":1486753080000,"doc_count":13},{"key_as_string":"2017-02-10T18:59:00.000Z","key":1486753140000,"doc_count":12},{"key_as_string":"2017-02-10T19:00:00.000Z","key":1486753200000,"doc_count":10},{"key_as_string":"2017-02-10T19:01:00.000Z","key":1486753260000,"doc_count":7},{"key_as_string":"2017-02-10T19:02:00.000Z","key":1486753320000,"doc_count":15},{"key_as_string":"2017-02-10T19:03:00.000Z","key":1486753380000,"doc_count":10},{"key_as_string":"2017-02-10T19:04:00.000Z","key":1486753440000,"doc_count":11},{"key_as_string":"2017-02-10T19:05:00.000Z","key":1486753500000,"doc_count":10},{"key_as_string":"2017-02-10T19:06:00.000Z","key":1486753560000,"doc_count":15},{"key_as_string":"2017-02-10T19:07:00.000Z","key":1486753620000,"doc_count":12},{"key_as_string":"2017-02-10T19:08:00.000Z","key":1486753680000,"doc_count":7},{"key_as_string":"2017-02-10T19:09:00.000Z","key":1486753740000,"doc_count":11},{"key_as_string":"2017-02-10T19:10:00.000Z","key":1486753800000,"doc_count":9},{"key_as_string":"2017-02-10T19:11:00.000Z","key":1486753860000,"doc_count":11},{"key_as_string":"2017-02-10T19:12:00.000Z","key":1486753920000,"doc_count":10},{"key_as_string":"2017-02-10T19:13:00.000Z","key":1486753980000,"doc_count":11},{"key_as_string":"2017-02-10T19:14:00.000Z","key":1486754040000,"doc_count":14},{"key_as_string":"2017-02-10T19:15:00.000Z","key":1486754100000,"doc_count":10},{"key_as_string":"2017-02-10T19:16:00.000Z","key":1486754160000,"doc_count":12},{"key_as_string":"2017-02-10T19:17:00.000Z","key":1486754220000,"doc_count":12},{"key_as_string":"2017-02-10T19:18:00.000Z","key":1486754280000,"doc_count":11},{"key_as_string":"2017-02-10T19:19:00.000Z","key":1486754340000,"doc_count":11},{"key_as_string":"2017-02-10T19:20:00.000Z","key":1486754400000,"doc_count":10},{"key_as_string":"2017-02-10T19:21:00.000Z","key":1486754460000,"doc_count":15},{"key_as_string":"2017-02-10T19:22:00.000Z","key":1486754520000,"doc_count":8},{"key_as_string":"2017-02-10T19:23:00.000Z","key":1486754580000,"doc_count":7},{"key_as_string":"2017-02-10T19:24:00.000Z","key":1486754640000,"doc_count":20},{"key_as_string":"2017-02-10T19:25:00.000Z","key":1486754700000,"doc_count":10},{"key_as_string":"2017-02-10T19:26:00.000Z","key":1486754760000,"doc_count":9},{"key_as_string":"2017-02-10T19:27:00.000Z","key":1486754820000,"doc_count":13},{"key_as_string":"2017-02-10T19:28:00.000Z","key":1486754880000,"doc_count":12},{"key_as_string":"2017-02-10T19:29:00.000Z","key":1486754940000,"doc_count":10},{"key_as_string":"2017-02-10T19:30:00.000Z","key":1486755000000,"doc_count":11},{"key_as_string":"2017-02-10T19:31:00.000Z","key":1486755060000,"doc_count":10},{"key_as_string":"2017-02-10T19:32:00.000Z","key":1486755120000,"doc_count":10},{"key_as_string":"2017-02-10T19:33:00.000Z","key":1486755180000,"doc_count":11},{"key_as_string":"2017-02-10T19:34:00.000Z","key":1486755240000,"doc_count":12},{"key_as_string":"2017-02-10T19:35:00.000Z","key":1486755300000,"doc_count":8},{"key_as_string":"2017-02-10T19:36:00.000Z","key":1486755360000,"doc_count":10},{"key_as_string":"2017-02-10T19:37:00.000Z","key":1486755420000,"doc_count":13},{"key_as_string":"2017-02-10T19:38:00.000Z","key":1486755480000,"doc_count":11},{"key_as_string":"2017-02-10T19:39:00.000Z","key":1486755540000,"doc_count":7},{"key_as_string":"2017-02-10T19:40:00.000Z","key":1486755600000,"doc_count":17},{"key_as_string":"2017-02-10T19:41:00.000Z","key":1486755660000,"doc_count":8},{"key_as_string":"2017-02-10T19:42:00.000Z","key":1486755720000,"doc_count":15},{"key_as_string":"2017-02-10T19:43:00.000Z","key":1486755780000,"doc_count":11},{"key_as_string":"2017-02-10T19:44:00.000Z","key":1486755840000,"doc_count":11},{"key_as_string":"2017-02-10T19:45:00.000Z","key":1486755900000,"doc_count":8},{"key_as_string":"2017-02-10T19:46:00.000Z","key":1486755960000,"doc_count":8},{"key_as_string":"2017-02-10T19:47:00.000Z","key":1486756020000,"doc_count":15},{"key_as_string":"2017-02-10T19:48:00.000Z","key":1486756080000,"doc_count":15},{"key_as_string":"2017-02-10T19:49:00.000Z","key":1486756140000,"doc_count":11},{"key_as_string":"2017-02-10T19:50:00.000Z","key":1486756200000,"doc_count":15},{"key_as_string":"2017-02-10T19:51:00.000Z","key":1486756260000,"doc_count":9},{"key_as_string":"2017-02-10T19:52:00.000Z","key":1486756320000,"doc_count":10},{"key_as_string":"2017-02-10T19:53:00.000Z","key":1486756380000,"doc_count":9},{"key_as_string":"2017-02-10T19:54:00.000Z","key":1486756440000,"doc_count":12},{"key_as_string":"2017-02-10T19:55:00.000Z","key":1486756500000,"doc_count":9},{"key_as_string":"2017-02-10T19:56:00.000Z","key":1486756560000,"doc_count":13},{"key_as_string":"2017-02-10T19:57:00.000Z","key":1486756620000,"doc_count":12},{"key_as_string":"2017-02-10T19:58:00.000Z","key":1486756680000,"doc_count":10},{"key_as_string":"2017-02-10T19:59:00.000Z","key":1486756740000,"doc_count":7},{"key_as_string":"2017-02-10T20:00:00.000Z","key":1486756800000,"doc_count":12},{"key_as_string":"2017-02-10T20:01:00.000Z","key":1486756860000,"doc_count":12},{"key_as_string":"2017-02-10T20:02:00.000Z","key":1486756920000,"doc_count":12},{"key_as_string":"2017-02-10T20:03:00.000Z","key":1486756980000,"doc_count":8},{"key_as_string":"2017-02-10T20:04:00.000Z","key":1486757040000,"doc_count":20},{"key_as_string":"2017-02-10T20:05:00.000Z","key":1486757100000,"doc_count":7},{"key_as_string":"2017-02-10T20:06:00.000Z","key":1486757160000,"doc_count":16},{"key_as_string":"2017-02-10T20:07:00.000Z","key":1486757220000,"doc_count":13},{"key_as_string":"2017-02-10T20:08:00.000Z","key":1486757280000,"doc_count":9},{"key_as_string":"2017-02-10T20:09:00.000Z","key":1486757340000,"doc_count":12},{"key_as_string":"2017-02-10T20:10:00.000Z","key":1486757400000,"doc_count":7},{"key_as_string":"2017-02-10T20:11:00.000Z","key":1486757460000,"doc_count":8},{"key_as_string":"2017-02-10T20:12:00.000Z","key":1486757520000,"doc_count":10},{"key_as_string":"2017-02-10T20:13:00.000Z","key":1486757580000,"doc_count":8},{"key_as_string":"2017-02-10T20:14:00.000Z","key":1486757640000,"doc_count":17},{"key_as_string":"2017-02-10T20:15:00.000Z","key":1486757700000,"doc_count":11},{"key_as_string":"2017-02-10T20:16:00.000Z","key":1486757760000,"doc_count":12},{"key_as_string":"2017-02-10T20:17:00.000Z","key":1486757820000,"doc_count":12},{"key_as_string":"2017-02-10T20:18:00.000Z","key":1486757880000,"doc_count":12},{"key_as_string":"2017-02-10T20:19:00.000Z","key":1486757940000,"doc_count":15},{"key_as_string":"2017-02-10T20:20:00.000Z","key":1486758000000,"doc_count":7},{"key_as_string":"2017-02-10T20:21:00.000Z","key":1486758060000,"doc_count":11},{"key_as_string":"2017-02-10T20:22:00.000Z","key":1486758120000,"doc_count":10},{"key_as_string":"2017-02-10T20:23:00.000Z","key":1486758180000,"doc_count":14},{"key_as_string":"2017-02-10T20:24:00.000Z","key":1486758240000,"doc_count":11},{"key_as_string":"2017-02-10T20:25:00.000Z","key":1486758300000,"doc_count":9},{"key_as_string":"2017-02-10T20:26:00.000Z","key":1486758360000,"doc_count":7},{"key_as_string":"2017-02-10T20:27:00.000Z","key":1486758420000,"doc_count":10},{"key_as_string":"2017-02-10T20:28:00.000Z","key":1486758480000,"doc_count":14},{"key_as_string":"2017-02-10T20:29:00.000Z","key":1486758540000,"doc_count":12},{"key_as_string":"2017-02-10T20:30:00.000Z","key":1486758600000,"doc_count":10},{"key_as_string":"2017-02-10T20:31:00.000Z","key":1486758660000,"doc_count":11},{"key_as_string":"2017-02-10T20:32:00.000Z","key":1486758720000,"doc_count":12},{"key_as_string":"2017-02-10T20:33:00.000Z","key":1486758780000,"doc_count":15},{"key_as_string":"2017-02-10T20:34:00.000Z","key":1486758840000,"doc_count":12},{"key_as_string":"2017-02-10T20:35:00.000Z","key":1486758900000,"doc_count":14},{"key_as_string":"2017-02-10T20:36:00.000Z","key":1486758960000,"doc_count":6},{"key_as_string":"2017-02-10T20:37:00.000Z","key":1486759020000,"doc_count":11},{"key_as_string":"2017-02-10T20:38:00.000Z","key":1486759080000,"doc_count":15},{"key_as_string":"2017-02-10T20:39:00.000Z","key":1486759140000,"doc_count":11},{"key_as_string":"2017-02-10T20:40:00.000Z","key":1486759200000,"doc_count":10},{"key_as_string":"2017-02-10T20:41:00.000Z","key":1486759260000,"doc_count":10},{"key_as_string":"2017-02-10T20:42:00.000Z","key":1486759320000,"doc_count":8},{"key_as_string":"2017-02-10T20:43:00.000Z","key":1486759380000,"doc_count":10},{"key_as_string":"2017-02-10T20:44:00.000Z","key":1486759440000,"doc_count":10},{"key_as_string":"2017-02-10T20:45:00.000Z","key":1486759500000,"doc_count":9},{"key_as_string":"2017-02-10T20:46:00.000Z","key":1486759560000,"doc_count":12},{"key_as_string":"2017-02-10T20:47:00.000Z","key":1486759620000,"doc_count":11},{"key_as_string":"2017-02-10T20:48:00.000Z","key":1486759680000,"doc_count":13},{"key_as_string":"2017-02-10T20:49:00.000Z","key":1486759740000,"doc_count":8},{"key_as_string":"2017-02-10T20:50:00.000Z","key":1486759800000,"doc_count":10},{"key_as_string":"2017-02-10T20:51:00.000Z","key":1486759860000,"doc_count":10},{"key_as_string":"2017-02-10T20:52:00.000Z","key":1486759920000,"doc_count":14},{"key_as_string":"2017-02-10T20:53:00.000Z","key":1486759980000,"doc_count":10},{"key_as_string":"2017-02-10T20:54:00.000Z","key":1486760040000,"doc_count":17},{"key_as_string":"2017-02-10T20:55:00.000Z","key":1486760100000,"doc_count":8},{"key_as_string":"2017-02-10T20:56:00.000Z","key":1486760160000,"doc_count":10},{"key_as_string":"2017-02-10T20:57:00.000Z","key":1486760220000,"doc_count":11},{"key_as_string":"2017-02-10T20:58:00.000Z","key":1486760280000,"doc_count":9},{"key_as_string":"2017-02-10T20:59:00.000Z","key":1486760340000,"doc_count":14},{"key_as_string":"2017-02-10T21:00:00.000Z","key":1486760400000,"doc_count":11},{"key_as_string":"2017-02-10T21:01:00.000Z","key":1486760460000,"doc_count":13},{"key_as_string":"2017-02-10T21:02:00.000Z","key":1486760520000,"doc_count":8},{"key_as_string":"2017-02-10T21:03:00.000Z","key":1486760580000,"doc_count":13},{"key_as_string":"2017-02-10T21:04:00.000Z","key":1486760640000,"doc_count":10},{"key_as_string":"2017-02-10T21:05:00.000Z","key":1486760700000,"doc_count":11},{"key_as_string":"2017-02-10T21:06:00.000Z","key":1486760760000,"doc_count":5},{"key_as_string":"2017-02-10T21:07:00.000Z","key":1486760820000,"doc_count":11},{"key_as_string":"2017-02-10T21:08:00.000Z","key":1486760880000,"doc_count":12},{"key_as_string":"2017-02-10T21:09:00.000Z","key":1486760940000,"doc_count":7},{"key_as_string":"2017-02-10T21:10:00.000Z","key":1486761000000,"doc_count":13},{"key_as_string":"2017-02-10T21:11:00.000Z","key":1486761060000,"doc_count":10},{"key_as_string":"2017-02-10T21:12:00.000Z","key":1486761120000,"doc_count":13},{"key_as_string":"2017-02-10T21:13:00.000Z","key":1486761180000,"doc_count":11},{"key_as_string":"2017-02-10T21:14:00.000Z","key":1486761240000,"doc_count":11},{"key_as_string":"2017-02-10T21:15:00.000Z","key":1486761300000,"doc_count":9},{"key_as_string":"2017-02-10T21:16:00.000Z","key":1486761360000,"doc_count":13},{"key_as_string":"2017-02-10T21:17:00.000Z","key":1486761420000,"doc_count":10},{"key_as_string":"2017-02-10T21:18:00.000Z","key":1486761480000,"doc_count":12},{"key_as_string":"2017-02-10T21:19:00.000Z","key":1486761540000,"doc_count":8},{"key_as_string":"2017-02-10T21:20:00.000Z","key":1486761600000,"doc_count":11},{"key_as_string":"2017-02-10T21:21:00.000Z","key":1486761660000,"doc_count":13},{"key_as_string":"2017-02-10T21:22:00.000Z","key":1486761720000,"doc_count":9},{"key_as_string":"2017-02-10T21:23:00.000Z","key":1486761780000,"doc_count":13},{"key_as_string":"2017-02-10T21:24:00.000Z","key":1486761840000,"doc_count":8},{"key_as_string":"2017-02-10T21:25:00.000Z","key":1486761900000,"doc_count":8},{"key_as_string":"2017-02-10T21:26:00.000Z","key":1486761960000,"doc_count":12},{"key_as_string":"2017-02-10T21:27:00.000Z","key":1486762020000,"doc_count":10},{"key_as_string":"2017-02-10T21:28:00.000Z","key":1486762080000,"doc_count":16},{"key_as_string":"2017-02-10T21:29:00.000Z","key":1486762140000,"doc_count":7},{"key_as_string":"2017-02-10T21:30:00.000Z","key":1486762200000,"doc_count":10},{"key_as_string":"2017-02-10T21:31:00.000Z","key":1486762260000,"doc_count":16},{"key_as_string":"2017-02-10T21:32:00.000Z","key":1486762320000,"doc_count":14},{"key_as_string":"2017-02-10T21:33:00.000Z","key":1486762380000,"doc_count":6},{"key_as_string":"2017-02-10T21:34:00.000Z","key":1486762440000,"doc_count":9},{"key_as_string":"2017-02-10T21:35:00.000Z","key":1486762500000,"doc_count":11},{"key_as_string":"2017-02-10T21:36:00.000Z","key":1486762560000,"doc_count":12},{"key_as_string":"2017-02-10T21:37:00.000Z","key":1486762620000,"doc_count":16},{"key_as_string":"2017-02-10T21:38:00.000Z","key":1486762680000,"doc_count":11},{"key_as_string":"2017-02-10T21:39:00.000Z","key":1486762740000,"doc_count":10},{"key_as_string":"2017-02-10T21:40:00.000Z","key":1486762800000,"doc_count":11},{"key_as_string":"2017-02-10T21:41:00.000Z","key":1486762860000,"doc_count":11},{"key_as_string":"2017-02-10T21:42:00.000Z","key":1486762920000,"doc_count":13},{"key_as_string":"2017-02-10T21:43:00.000Z","key":1486762980000,"doc_count":11},{"key_as_string":"2017-02-10T21:44:00.000Z","key":1486763040000,"doc_count":14},{"key_as_string":"2017-02-10T21:45:00.000Z","key":1486763100000,"doc_count":9},{"key_as_string":"2017-02-10T21:46:00.000Z","key":1486763160000,"doc_count":9},{"key_as_string":"2017-02-10T21:47:00.000Z","key":1486763220000,"doc_count":16},{"key_as_string":"2017-02-10T21:48:00.000Z","key":1486763280000,"doc_count":6},{"key_as_string":"2017-02-10T21:49:00.000Z","key":1486763340000,"doc_count":12},{"key_as_string":"2017-02-10T21:50:00.000Z","key":1486763400000,"doc_count":10},{"key_as_string":"2017-02-10T21:51:00.000Z","key":1486763460000,"doc_count":11},{"key_as_string":"2017-02-10T21:52:00.000Z","key":1486763520000,"doc_count":11},{"key_as_string":"2017-02-10T21:53:00.000Z","key":1486763580000,"doc_count":12},{"key_as_string":"2017-02-10T21:54:00.000Z","key":1486763640000,"doc_count":15},{"key_as_string":"2017-02-10T21:55:00.000Z","key":1486763700000,"doc_count":12},{"key_as_string":"2017-02-10T21:56:00.000Z","key":1486763760000,"doc_count":9},{"key_as_string":"2017-02-10T21:57:00.000Z","key":1486763820000,"doc_count":13},{"key_as_string":"2017-02-10T21:58:00.000Z","key":1486763880000,"doc_count":8},{"key_as_string":"2017-02-10T21:59:00.000Z","key":1486763940000,"doc_count":9},{"key_as_string":"2017-02-10T22:00:00.000Z","key":1486764000000,"doc_count":20},{"key_as_string":"2017-02-10T22:01:00.000Z","key":1486764060000,"doc_count":11},{"key_as_string":"2017-02-10T22:02:00.000Z","key":1486764120000,"doc_count":14},{"key_as_string":"2017-02-10T22:03:00.000Z","key":1486764180000,"doc_count":8},{"key_as_string":"2017-02-10T22:04:00.000Z","key":1486764240000,"doc_count":13},{"key_as_string":"2017-02-10T22:05:00.000Z","key":1486764300000,"doc_count":8},{"key_as_string":"2017-02-10T22:06:00.000Z","key":1486764360000,"doc_count":14},{"key_as_string":"2017-02-10T22:07:00.000Z","key":1486764420000,"doc_count":9},{"key_as_string":"2017-02-10T22:08:00.000Z","key":1486764480000,"doc_count":8},{"key_as_string":"2017-02-10T22:09:00.000Z","key":1486764540000,"doc_count":10},{"key_as_string":"2017-02-10T22:10:00.000Z","key":1486764600000,"doc_count":18},{"key_as_string":"2017-02-10T22:11:00.000Z","key":1486764660000,"doc_count":8},{"key_as_string":"2017-02-10T22:12:00.000Z","key":1486764720000,"doc_count":9},{"key_as_string":"2017-02-10T22:13:00.000Z","key":1486764780000,"doc_count":13},{"key_as_string":"2017-02-10T22:14:00.000Z","key":1486764840000,"doc_count":9},{"key_as_string":"2017-02-10T22:15:00.000Z","key":1486764900000,"doc_count":12},{"key_as_string":"2017-02-10T22:16:00.000Z","key":1486764960000,"doc_count":7},{"key_as_string":"2017-02-10T22:17:00.000Z","key":1486765020000,"doc_count":11},{"key_as_string":"2017-02-10T22:18:00.000Z","key":1486765080000,"doc_count":9},{"key_as_string":"2017-02-10T22:19:00.000Z","key":1486765140000,"doc_count":6},{"key_as_string":"2017-02-10T22:20:00.000Z","key":1486765200000,"doc_count":10},{"key_as_string":"2017-02-10T22:21:00.000Z","key":1486765260000,"doc_count":9},{"key_as_string":"2017-02-10T22:22:00.000Z","key":1486765320000,"doc_count":12},{"key_as_string":"2017-02-10T22:23:00.000Z","key":1486765380000,"doc_count":13},{"key_as_string":"2017-02-10T22:24:00.000Z","key":1486765440000,"doc_count":12},{"key_as_string":"2017-02-10T22:25:00.000Z","key":1486765500000,"doc_count":9},{"key_as_string":"2017-02-10T22:26:00.000Z","key":1486765560000,"doc_count":17},{"key_as_string":"2017-02-10T22:27:00.000Z","key":1486765620000,"doc_count":8},{"key_as_string":"2017-02-10T22:28:00.000Z","key":1486765680000,"doc_count":15},{"key_as_string":"2017-02-10T22:29:00.000Z","key":1486765740000,"doc_count":10},{"key_as_string":"2017-02-10T22:30:00.000Z","key":1486765800000,"doc_count":7},{"key_as_string":"2017-02-10T22:31:00.000Z","key":1486765860000,"doc_count":15},{"key_as_string":"2017-02-10T22:32:00.000Z","key":1486765920000,"doc_count":8},{"key_as_string":"2017-02-10T22:33:00.000Z","key":1486765980000,"doc_count":10},{"key_as_string":"2017-02-10T22:34:00.000Z","key":1486766040000,"doc_count":13},{"key_as_string":"2017-02-10T22:35:00.000Z","key":1486766100000,"doc_count":12},{"key_as_string":"2017-02-10T22:36:00.000Z","key":1486766160000,"doc_count":10},{"key_as_string":"2017-02-10T22:37:00.000Z","key":1486766220000,"doc_count":13},{"key_as_string":"2017-02-10T22:38:00.000Z","key":1486766280000,"doc_count":8},{"key_as_string":"2017-02-10T22:39:00.000Z","key":1486766340000,"doc_count":14},{"key_as_string":"2017-02-10T22:40:00.000Z","key":1486766400000,"doc_count":14},{"key_as_string":"2017-02-10T22:41:00.000Z","key":1486766460000,"doc_count":13},{"key_as_string":"2017-02-10T22:42:00.000Z","key":1486766520000,"doc_count":9},{"key_as_string":"2017-02-10T22:43:00.000Z","key":1486766580000,"doc_count":11},{"key_as_string":"2017-02-10T22:44:00.000Z","key":1486766640000,"doc_count":12},{"key_as_string":"2017-02-10T22:45:00.000Z","key":1486766700000,"doc_count":11},{"key_as_string":"2017-02-10T22:46:00.000Z","key":1486766760000,"doc_count":5},{"key_as_string":"2017-02-10T22:47:00.000Z","key":1486766820000,"doc_count":12},{"key_as_string":"2017-02-10T22:48:00.000Z","key":1486766880000,"doc_count":8},{"key_as_string":"2017-02-10T22:49:00.000Z","key":1486766940000,"doc_count":13},{"key_as_string":"2017-02-10T22:50:00.000Z","key":1486767000000,"doc_count":9},{"key_as_string":"2017-02-10T22:51:00.000Z","key":1486767060000,"doc_count":14},{"key_as_string":"2017-02-10T22:52:00.000Z","key":1486767120000,"doc_count":8},{"key_as_string":"2017-02-10T22:53:00.000Z","key":1486767180000,"doc_count":14},{"key_as_string":"2017-02-10T22:54:00.000Z","key":1486767240000,"doc_count":5},{"key_as_string":"2017-02-10T22:55:00.000Z","key":1486767300000,"doc_count":15},{"key_as_string":"2017-02-10T22:56:00.000Z","key":1486767360000,"doc_count":10},{"key_as_string":"2017-02-10T22:57:00.000Z","key":1486767420000,"doc_count":17},{"key_as_string":"2017-02-10T22:58:00.000Z","key":1486767480000,"doc_count":10},{"key_as_string":"2017-02-10T22:59:00.000Z","key":1486767540000,"doc_count":14},{"key_as_string":"2017-02-10T23:00:00.000Z","key":1486767600000,"doc_count":5},{"key_as_string":"2017-02-10T23:01:00.000Z","key":1486767660000,"doc_count":12},{"key_as_string":"2017-02-10T23:02:00.000Z","key":1486767720000,"doc_count":12},{"key_as_string":"2017-02-10T23:03:00.000Z","key":1486767780000,"doc_count":9},{"key_as_string":"2017-02-10T23:04:00.000Z","key":1486767840000,"doc_count":7},{"key_as_string":"2017-02-10T23:05:00.000Z","key":1486767900000,"doc_count":12},{"key_as_string":"2017-02-10T23:06:00.000Z","key":1486767960000,"doc_count":7},{"key_as_string":"2017-02-10T23:07:00.000Z","key":1486768020000,"doc_count":14},{"key_as_string":"2017-02-10T23:08:00.000Z","key":1486768080000,"doc_count":10},{"key_as_string":"2017-02-10T23:09:00.000Z","key":1486768140000,"doc_count":9},{"key_as_string":"2017-02-10T23:10:00.000Z","key":1486768200000,"doc_count":15},{"key_as_string":"2017-02-10T23:11:00.000Z","key":1486768260000,"doc_count":13},{"key_as_string":"2017-02-10T23:12:00.000Z","key":1486768320000,"doc_count":10},{"key_as_string":"2017-02-10T23:13:00.000Z","key":1486768380000,"doc_count":8},{"key_as_string":"2017-02-10T23:14:00.000Z","key":1486768440000,"doc_count":10},{"key_as_string":"2017-02-10T23:15:00.000Z","key":1486768500000,"doc_count":13},{"key_as_string":"2017-02-10T23:16:00.000Z","key":1486768560000,"doc_count":9},{"key_as_string":"2017-02-10T23:17:00.000Z","key":1486768620000,"doc_count":8},{"key_as_string":"2017-02-10T23:18:00.000Z","key":1486768680000,"doc_count":7},{"key_as_string":"2017-02-10T23:19:00.000Z","key":1486768740000,"doc_count":12},{"key_as_string":"2017-02-10T23:20:00.000Z","key":1486768800000,"doc_count":9},{"key_as_string":"2017-02-10T23:21:00.000Z","key":1486768860000,"doc_count":11},{"key_as_string":"2017-02-10T23:22:00.000Z","key":1486768920000,"doc_count":8},{"key_as_string":"2017-02-10T23:23:00.000Z","key":1486768980000,"doc_count":9},{"key_as_string":"2017-02-10T23:24:00.000Z","key":1486769040000,"doc_count":14},{"key_as_string":"2017-02-10T23:25:00.000Z","key":1486769100000,"doc_count":9},{"key_as_string":"2017-02-10T23:26:00.000Z","key":1486769160000,"doc_count":8},{"key_as_string":"2017-02-10T23:27:00.000Z","key":1486769220000,"doc_count":7},{"key_as_string":"2017-02-10T23:28:00.000Z","key":1486769280000,"doc_count":17},{"key_as_string":"2017-02-10T23:29:00.000Z","key":1486769340000,"doc_count":5},{"key_as_string":"2017-02-10T23:30:00.000Z","key":1486769400000,"doc_count":16},{"key_as_string":"2017-02-10T23:31:00.000Z","key":1486769460000,"doc_count":14},{"key_as_string":"2017-02-10T23:32:00.000Z","key":1486769520000,"doc_count":6},{"key_as_string":"2017-02-10T23:33:00.000Z","key":1486769580000,"doc_count":8},{"key_as_string":"2017-02-10T23:34:00.000Z","key":1486769640000,"doc_count":15},{"key_as_string":"2017-02-10T23:35:00.000Z","key":1486769700000,"doc_count":9},{"key_as_string":"2017-02-10T23:36:00.000Z","key":1486769760000,"doc_count":11},{"key_as_string":"2017-02-10T23:37:00.000Z","key":1486769820000,"doc_count":13},{"key_as_string":"2017-02-10T23:38:00.000Z","key":1486769880000,"doc_count":12},{"key_as_string":"2017-02-10T23:39:00.000Z","key":1486769940000,"doc_count":12},{"key_as_string":"2017-02-10T23:40:00.000Z","key":1486770000000,"doc_count":9},{"key_as_string":"2017-02-10T23:41:00.000Z","key":1486770060000,"doc_count":11},{"key_as_string":"2017-02-10T23:42:00.000Z","key":1486770120000,"doc_count":10},{"key_as_string":"2017-02-10T23:43:00.000Z","key":1486770180000,"doc_count":16},{"key_as_string":"2017-02-10T23:44:00.000Z","key":1486770240000,"doc_count":8},{"key_as_string":"2017-02-10T23:45:00.000Z","key":1486770300000,"doc_count":8},{"key_as_string":"2017-02-10T23:46:00.000Z","key":1486770360000,"doc_count":8},{"key_as_string":"2017-02-10T23:47:00.000Z","key":1486770420000,"doc_count":11},{"key_as_string":"2017-02-10T23:48:00.000Z","key":1486770480000,"doc_count":10},{"key_as_string":"2017-02-10T23:49:00.000Z","key":1486770540000,"doc_count":10},{"key_as_string":"2017-02-10T23:50:00.000Z","key":1486770600000,"doc_count":13},{"key_as_string":"2017-02-10T23:51:00.000Z","key":1486770660000,"doc_count":6},{"key_as_string":"2017-02-10T23:52:00.000Z","key":1486770720000,"doc_count":16},{"key_as_string":"2017-02-10T23:53:00.000Z","key":1486770780000,"doc_count":10},{"key_as_string":"2017-02-10T23:54:00.000Z","key":1486770840000,"doc_count":11},{"key_as_string":"2017-02-10T23:55:00.000Z","key":1486770900000,"doc_count":14},{"key_as_string":"2017-02-10T23:56:00.000Z","key":1486770960000,"doc_count":9},{"key_as_string":"2017-02-10T23:57:00.000Z","key":1486771020000,"doc_count":9},{"key_as_string":"2017-02-10T23:58:00.000Z","key":1486771080000,"doc_count":11},{"key_as_string":"2017-02-10T23:59:00.000Z","key":1486771140000,"doc_count":6},{"key_as_string":"2017-02-11T00:00:00.000Z","key":1486771200000,"doc_count":12},{"key_as_string":"2017-02-11T00:01:00.000Z","key":1486771260000,"doc_count":14},{"key_as_string":"2017-02-11T00:02:00.000Z","key":1486771320000,"doc_count":9},{"key_as_string":"2017-02-11T00:03:00.000Z","key":1486771380000,"doc_count":3},{"key_as_string":"2017-02-11T00:04:00.000Z","key":1486771440000,"doc_count":15},{"key_as_string":"2017-02-11T00:05:00.000Z","key":1486771500000,"doc_count":10},{"key_as_string":"2017-02-11T00:06:00.000Z","key":1486771560000,"doc_count":11},{"key_as_string":"2017-02-11T00:07:00.000Z","key":1486771620000,"doc_count":6},{"key_as_string":"2017-02-11T00:08:00.000Z","key":1486771680000,"doc_count":11},{"key_as_string":"2017-02-11T00:09:00.000Z","key":1486771740000,"doc_count":10},{"key_as_string":"2017-02-11T00:10:00.000Z","key":1486771800000,"doc_count":7},{"key_as_string":"2017-02-11T00:11:00.000Z","key":1486771860000,"doc_count":13},{"key_as_string":"2017-02-11T00:12:00.000Z","key":1486771920000,"doc_count":9},{"key_as_string":"2017-02-11T00:13:00.000Z","key":1486771980000,"doc_count":10},{"key_as_string":"2017-02-11T00:14:00.000Z","key":1486772040000,"doc_count":17},{"key_as_string":"2017-02-11T00:15:00.000Z","key":1486772100000,"doc_count":7},{"key_as_string":"2017-02-11T00:16:00.000Z","key":1486772160000,"doc_count":12},{"key_as_string":"2017-02-11T00:17:00.000Z","key":1486772220000,"doc_count":13},{"key_as_string":"2017-02-11T00:18:00.000Z","key":1486772280000,"doc_count":4},{"key_as_string":"2017-02-11T00:19:00.000Z","key":1486772340000,"doc_count":15},{"key_as_string":"2017-02-11T00:20:00.000Z","key":1486772400000,"doc_count":13},{"key_as_string":"2017-02-11T00:21:00.000Z","key":1486772460000,"doc_count":8},{"key_as_string":"2017-02-11T00:22:00.000Z","key":1486772520000,"doc_count":8},{"key_as_string":"2017-02-11T00:23:00.000Z","key":1486772580000,"doc_count":12},{"key_as_string":"2017-02-11T00:24:00.000Z","key":1486772640000,"doc_count":9},{"key_as_string":"2017-02-11T00:25:00.000Z","key":1486772700000,"doc_count":8},{"key_as_string":"2017-02-11T00:26:00.000Z","key":1486772760000,"doc_count":13},{"key_as_string":"2017-02-11T00:27:00.000Z","key":1486772820000,"doc_count":10},{"key_as_string":"2017-02-11T00:28:00.000Z","key":1486772880000,"doc_count":11},{"key_as_string":"2017-02-11T00:29:00.000Z","key":1486772940000,"doc_count":7},{"key_as_string":"2017-02-11T00:30:00.000Z","key":1486773000000,"doc_count":14},{"key_as_string":"2017-02-11T00:31:00.000Z","key":1486773060000,"doc_count":8},{"key_as_string":"2017-02-11T00:32:00.000Z","key":1486773120000,"doc_count":9},{"key_as_string":"2017-02-11T00:33:00.000Z","key":1486773180000,"doc_count":14},{"key_as_string":"2017-02-11T00:34:00.000Z","key":1486773240000,"doc_count":7},{"key_as_string":"2017-02-11T00:35:00.000Z","key":1486773300000,"doc_count":10},{"key_as_string":"2017-02-11T00:36:00.000Z","key":1486773360000,"doc_count":11},{"key_as_string":"2017-02-11T00:37:00.000Z","key":1486773420000,"doc_count":15},{"key_as_string":"2017-02-11T00:38:00.000Z","key":1486773480000,"doc_count":9},{"key_as_string":"2017-02-11T00:39:00.000Z","key":1486773540000,"doc_count":11},{"key_as_string":"2017-02-11T00:40:00.000Z","key":1486773600000,"doc_count":8},{"key_as_string":"2017-02-11T00:41:00.000Z","key":1486773660000,"doc_count":9},{"key_as_string":"2017-02-11T00:42:00.000Z","key":1486773720000,"doc_count":10},{"key_as_string":"2017-02-11T00:43:00.000Z","key":1486773780000,"doc_count":14},{"key_as_string":"2017-02-11T00:44:00.000Z","key":1486773840000,"doc_count":7},{"key_as_string":"2017-02-11T00:45:00.000Z","key":1486773900000,"doc_count":12},{"key_as_string":"2017-02-11T00:46:00.000Z","key":1486773960000,"doc_count":12},{"key_as_string":"2017-02-11T00:47:00.000Z","key":1486774020000,"doc_count":9},{"key_as_string":"2017-02-11T00:48:00.000Z","key":1486774080000,"doc_count":11},{"key_as_string":"2017-02-11T00:49:00.000Z","key":1486774140000,"doc_count":6},{"key_as_string":"2017-02-11T00:50:00.000Z","key":1486774200000,"doc_count":11},{"key_as_string":"2017-02-11T00:51:00.000Z","key":1486774260000,"doc_count":14},{"key_as_string":"2017-02-11T00:52:00.000Z","key":1486774320000,"doc_count":6},{"key_as_string":"2017-02-11T00:53:00.000Z","key":1486774380000,"doc_count":14},{"key_as_string":"2017-02-11T00:54:00.000Z","key":1486774440000,"doc_count":9},{"key_as_string":"2017-02-11T00:55:00.000Z","key":1486774500000,"doc_count":7},{"key_as_string":"2017-02-11T00:56:00.000Z","key":1486774560000,"doc_count":9},{"key_as_string":"2017-02-11T00:57:00.000Z","key":1486774620000,"doc_count":11},{"key_as_string":"2017-02-11T00:58:00.000Z","key":1486774680000,"doc_count":11},{"key_as_string":"2017-02-11T00:59:00.000Z","key":1486774740000,"doc_count":9},{"key_as_string":"2017-02-11T01:00:00.000Z","key":1486774800000,"doc_count":9},{"key_as_string":"2017-02-11T01:01:00.000Z","key":1486774860000,"doc_count":9},{"key_as_string":"2017-02-11T01:02:00.000Z","key":1486774920000,"doc_count":9},{"key_as_string":"2017-02-11T01:03:00.000Z","key":1486774980000,"doc_count":13},{"key_as_string":"2017-02-11T01:04:00.000Z","key":1486775040000,"doc_count":8},{"key_as_string":"2017-02-11T01:05:00.000Z","key":1486775100000,"doc_count":14},{"key_as_string":"2017-02-11T01:06:00.000Z","key":1486775160000,"doc_count":7},{"key_as_string":"2017-02-11T01:07:00.000Z","key":1486775220000,"doc_count":13},{"key_as_string":"2017-02-11T01:08:00.000Z","key":1486775280000,"doc_count":9},{"key_as_string":"2017-02-11T01:09:00.000Z","key":1486775340000,"doc_count":11},{"key_as_string":"2017-02-11T01:10:00.000Z","key":1486775400000,"doc_count":11},{"key_as_string":"2017-02-11T01:11:00.000Z","key":1486775460000,"doc_count":15},{"key_as_string":"2017-02-11T01:12:00.000Z","key":1486775520000,"doc_count":8},{"key_as_string":"2017-02-11T01:13:00.000Z","key":1486775580000,"doc_count":7},{"key_as_string":"2017-02-11T01:14:00.000Z","key":1486775640000,"doc_count":16},{"key_as_string":"2017-02-11T01:15:00.000Z","key":1486775700000,"doc_count":6},{"key_as_string":"2017-02-11T01:16:00.000Z","key":1486775760000,"doc_count":13},{"key_as_string":"2017-02-11T01:17:00.000Z","key":1486775820000,"doc_count":9},{"key_as_string":"2017-02-11T01:18:00.000Z","key":1486775880000,"doc_count":7},{"key_as_string":"2017-02-11T01:19:00.000Z","key":1486775940000,"doc_count":12},{"key_as_string":"2017-02-11T01:20:00.000Z","key":1486776000000,"doc_count":8},{"key_as_string":"2017-02-11T01:21:00.000Z","key":1486776060000,"doc_count":12},{"key_as_string":"2017-02-11T01:22:00.000Z","key":1486776120000,"doc_count":16},{"key_as_string":"2017-02-11T01:23:00.000Z","key":1486776180000,"doc_count":9},{"key_as_string":"2017-02-11T01:24:00.000Z","key":1486776240000,"doc_count":6},{"key_as_string":"2017-02-11T01:25:00.000Z","key":1486776300000,"doc_count":13},{"key_as_string":"2017-02-11T01:26:00.000Z","key":1486776360000,"doc_count":12},{"key_as_string":"2017-02-11T01:27:00.000Z","key":1486776420000,"doc_count":10},{"key_as_string":"2017-02-11T01:28:00.000Z","key":1486776480000,"doc_count":6},{"key_as_string":"2017-02-11T01:29:00.000Z","key":1486776540000,"doc_count":13},{"key_as_string":"2017-02-11T01:30:00.000Z","key":1486776600000,"doc_count":8},{"key_as_string":"2017-02-11T01:31:00.000Z","key":1486776660000,"doc_count":16},{"key_as_string":"2017-02-11T01:32:00.000Z","key":1486776720000,"doc_count":8},{"key_as_string":"2017-02-11T01:33:00.000Z","key":1486776780000,"doc_count":4},{"key_as_string":"2017-02-11T01:34:00.000Z","key":1486776840000,"doc_count":9},{"key_as_string":"2017-02-11T01:35:00.000Z","key":1486776900000,"doc_count":11},{"key_as_string":"2017-02-11T01:36:00.000Z","key":1486776960000,"doc_count":10},{"key_as_string":"2017-02-11T01:37:00.000Z","key":1486777020000,"doc_count":17},{"key_as_string":"2017-02-11T01:38:00.000Z","key":1486777080000,"doc_count":11},{"key_as_string":"2017-02-11T01:39:00.000Z","key":1486777140000,"doc_count":10},{"key_as_string":"2017-02-11T01:40:00.000Z","key":1486777200000,"doc_count":12},{"key_as_string":"2017-02-11T01:41:00.000Z","key":1486777260000,"doc_count":11},{"key_as_string":"2017-02-11T01:42:00.000Z","key":1486777320000,"doc_count":11},{"key_as_string":"2017-02-11T01:43:00.000Z","key":1486777380000,"doc_count":6},{"key_as_string":"2017-02-11T01:44:00.000Z","key":1486777440000,"doc_count":13},{"key_as_string":"2017-02-11T01:45:00.000Z","key":1486777500000,"doc_count":12},{"key_as_string":"2017-02-11T01:46:00.000Z","key":1486777560000,"doc_count":12},{"key_as_string":"2017-02-11T01:47:00.000Z","key":1486777620000,"doc_count":7},{"key_as_string":"2017-02-11T01:48:00.000Z","key":1486777680000,"doc_count":12},{"key_as_string":"2017-02-11T01:49:00.000Z","key":1486777740000,"doc_count":11},{"key_as_string":"2017-02-11T01:50:00.000Z","key":1486777800000,"doc_count":13},{"key_as_string":"2017-02-11T01:51:00.000Z","key":1486777860000,"doc_count":13},{"key_as_string":"2017-02-11T01:52:00.000Z","key":1486777920000,"doc_count":11},{"key_as_string":"2017-02-11T01:53:00.000Z","key":1486777980000,"doc_count":11},{"key_as_string":"2017-02-11T01:54:00.000Z","key":1486778040000,"doc_count":7},{"key_as_string":"2017-02-11T01:55:00.000Z","key":1486778100000,"doc_count":13},{"key_as_string":"2017-02-11T01:56:00.000Z","key":1486778160000,"doc_count":12},{"key_as_string":"2017-02-11T01:57:00.000Z","key":1486778220000,"doc_count":12},{"key_as_string":"2017-02-11T01:58:00.000Z","key":1486778280000,"doc_count":10},{"key_as_string":"2017-02-11T01:59:00.000Z","key":1486778340000,"doc_count":13},{"key_as_string":"2017-02-11T02:00:00.000Z","key":1486778400000,"doc_count":10},{"key_as_string":"2017-02-11T02:01:00.000Z","key":1486778460000,"doc_count":8},{"key_as_string":"2017-02-11T02:02:00.000Z","key":1486778520000,"doc_count":8},{"key_as_string":"2017-02-11T02:03:00.000Z","key":1486778580000,"doc_count":10},{"key_as_string":"2017-02-11T02:04:00.000Z","key":1486778640000,"doc_count":10},{"key_as_string":"2017-02-11T02:05:00.000Z","key":1486778700000,"doc_count":6},{"key_as_string":"2017-02-11T02:06:00.000Z","key":1486778760000,"doc_count":12},{"key_as_string":"2017-02-11T02:07:00.000Z","key":1486778820000,"doc_count":11},{"key_as_string":"2017-02-11T02:08:00.000Z","key":1486778880000,"doc_count":7},{"key_as_string":"2017-02-11T02:09:00.000Z","key":1486778940000,"doc_count":13},{"key_as_string":"2017-02-11T02:10:00.000Z","key":1486779000000,"doc_count":9},{"key_as_string":"2017-02-11T02:11:00.000Z","key":1486779060000,"doc_count":14},{"key_as_string":"2017-02-11T02:12:00.000Z","key":1486779120000,"doc_count":9},{"key_as_string":"2017-02-11T02:13:00.000Z","key":1486779180000,"doc_count":10},{"key_as_string":"2017-02-11T02:14:00.000Z","key":1486779240000,"doc_count":12},{"key_as_string":"2017-02-11T02:15:00.000Z","key":1486779300000,"doc_count":5},{"key_as_string":"2017-02-11T02:16:00.000Z","key":1486779360000,"doc_count":9},{"key_as_string":"2017-02-11T02:17:00.000Z","key":1486779420000,"doc_count":14},{"key_as_string":"2017-02-11T02:18:00.000Z","key":1486779480000,"doc_count":5},{"key_as_string":"2017-02-11T02:19:00.000Z","key":1486779540000,"doc_count":18},{"key_as_string":"2017-02-11T02:20:00.000Z","key":1486779600000,"doc_count":9},{"key_as_string":"2017-02-11T02:21:00.000Z","key":1486779660000,"doc_count":7},{"key_as_string":"2017-02-11T02:22:00.000Z","key":1486779720000,"doc_count":14},{"key_as_string":"2017-02-11T02:23:00.000Z","key":1486779780000,"doc_count":8},{"key_as_string":"2017-02-11T02:24:00.000Z","key":1486779840000,"doc_count":9},{"key_as_string":"2017-02-11T02:25:00.000Z","key":1486779900000,"doc_count":10},{"key_as_string":"2017-02-11T02:26:00.000Z","key":1486779960000,"doc_count":15},{"key_as_string":"2017-02-11T02:27:00.000Z","key":1486780020000,"doc_count":12},{"key_as_string":"2017-02-11T02:28:00.000Z","key":1486780080000,"doc_count":8},{"key_as_string":"2017-02-11T02:29:00.000Z","key":1486780140000,"doc_count":7},{"key_as_string":"2017-02-11T02:30:00.000Z","key":1486780200000,"doc_count":13},{"key_as_string":"2017-02-11T02:31:00.000Z","key":1486780260000,"doc_count":9},{"key_as_string":"2017-02-11T02:32:00.000Z","key":1486780320000,"doc_count":11},{"key_as_string":"2017-02-11T02:33:00.000Z","key":1486780380000,"doc_count":9},{"key_as_string":"2017-02-11T02:34:00.000Z","key":1486780440000,"doc_count":12},{"key_as_string":"2017-02-11T02:35:00.000Z","key":1486780500000,"doc_count":11},{"key_as_string":"2017-02-11T02:36:00.000Z","key":1486780560000,"doc_count":4},{"key_as_string":"2017-02-11T02:37:00.000Z","key":1486780620000,"doc_count":12},{"key_as_string":"2017-02-11T02:38:00.000Z","key":1486780680000,"doc_count":6},{"key_as_string":"2017-02-11T02:39:00.000Z","key":1486780740000,"doc_count":12},{"key_as_string":"2017-02-11T02:40:00.000Z","key":1486780800000,"doc_count":12},{"key_as_string":"2017-02-11T02:41:00.000Z","key":1486780860000,"doc_count":12},{"key_as_string":"2017-02-11T02:42:00.000Z","key":1486780920000,"doc_count":13},{"key_as_string":"2017-02-11T02:43:00.000Z","key":1486780980000,"doc_count":12},{"key_as_string":"2017-02-11T02:44:00.000Z","key":1486781040000,"doc_count":13},{"key_as_string":"2017-02-11T02:45:00.000Z","key":1486781100000,"doc_count":11},{"key_as_string":"2017-02-11T02:46:00.000Z","key":1486781160000,"doc_count":5},{"key_as_string":"2017-02-11T02:47:00.000Z","key":1486781220000,"doc_count":14},{"key_as_string":"2017-02-11T02:48:00.000Z","key":1486781280000,"doc_count":8},{"key_as_string":"2017-02-11T02:49:00.000Z","key":1486781340000,"doc_count":14},{"key_as_string":"2017-02-11T02:50:00.000Z","key":1486781400000,"doc_count":16},{"key_as_string":"2017-02-11T02:51:00.000Z","key":1486781460000,"doc_count":7},{"key_as_string":"2017-02-11T02:52:00.000Z","key":1486781520000,"doc_count":7},{"key_as_string":"2017-02-11T02:53:00.000Z","key":1486781580000,"doc_count":15},{"key_as_string":"2017-02-11T02:54:00.000Z","key":1486781640000,"doc_count":13},{"key_as_string":"2017-02-11T02:55:00.000Z","key":1486781700000,"doc_count":5},{"key_as_string":"2017-02-11T02:56:00.000Z","key":1486781760000,"doc_count":8},{"key_as_string":"2017-02-11T02:57:00.000Z","key":1486781820000,"doc_count":8},{"key_as_string":"2017-02-11T02:58:00.000Z","key":1486781880000,"doc_count":16},{"key_as_string":"2017-02-11T02:59:00.000Z","key":1486781940000,"doc_count":9},{"key_as_string":"2017-02-11T03:00:00.000Z","key":1486782000000,"doc_count":9},{"key_as_string":"2017-02-11T03:01:00.000Z","key":1486782060000,"doc_count":13},{"key_as_string":"2017-02-11T03:02:00.000Z","key":1486782120000,"doc_count":14},{"key_as_string":"2017-02-11T03:03:00.000Z","key":1486782180000,"doc_count":10},{"key_as_string":"2017-02-11T03:04:00.000Z","key":1486782240000,"doc_count":8},{"key_as_string":"2017-02-11T03:05:00.000Z","key":1486782300000,"doc_count":14},{"key_as_string":"2017-02-11T03:06:00.000Z","key":1486782360000,"doc_count":11},{"key_as_string":"2017-02-11T03:07:00.000Z","key":1486782420000,"doc_count":11},{"key_as_string":"2017-02-11T03:08:00.000Z","key":1486782480000,"doc_count":8},{"key_as_string":"2017-02-11T03:09:00.000Z","key":1486782540000,"doc_count":13},{"key_as_string":"2017-02-11T03:10:00.000Z","key":1486782600000,"doc_count":12},{"key_as_string":"2017-02-11T03:11:00.000Z","key":1486782660000,"doc_count":9},{"key_as_string":"2017-02-11T03:12:00.000Z","key":1486782720000,"doc_count":9},{"key_as_string":"2017-02-11T03:13:00.000Z","key":1486782780000,"doc_count":9},{"key_as_string":"2017-02-11T03:14:00.000Z","key":1486782840000,"doc_count":11},{"key_as_string":"2017-02-11T03:15:00.000Z","key":1486782900000,"doc_count":9},{"key_as_string":"2017-02-11T03:16:00.000Z","key":1486782960000,"doc_count":20},{"key_as_string":"2017-02-11T03:17:00.000Z","key":1486783020000,"doc_count":7},{"key_as_string":"2017-02-11T03:18:00.000Z","key":1486783080000,"doc_count":11},{"key_as_string":"2017-02-11T03:19:00.000Z","key":1486783140000,"doc_count":10},{"key_as_string":"2017-02-11T03:20:00.000Z","key":1486783200000,"doc_count":8},{"key_as_string":"2017-02-11T03:21:00.000Z","key":1486783260000,"doc_count":16},{"key_as_string":"2017-02-11T03:22:00.000Z","key":1486783320000,"doc_count":5},{"key_as_string":"2017-02-11T03:23:00.000Z","key":1486783380000,"doc_count":12},{"key_as_string":"2017-02-11T03:24:00.000Z","key":1486783440000,"doc_count":8},{"key_as_string":"2017-02-11T03:25:00.000Z","key":1486783500000,"doc_count":17},{"key_as_string":"2017-02-11T03:26:00.000Z","key":1486783560000,"doc_count":8},{"key_as_string":"2017-02-11T03:27:00.000Z","key":1486783620000,"doc_count":14},{"key_as_string":"2017-02-11T03:28:00.000Z","key":1486783680000,"doc_count":7},{"key_as_string":"2017-02-11T03:29:00.000Z","key":1486783740000,"doc_count":12},{"key_as_string":"2017-02-11T03:30:00.000Z","key":1486783800000,"doc_count":13},{"key_as_string":"2017-02-11T03:31:00.000Z","key":1486783860000,"doc_count":9},{"key_as_string":"2017-02-11T03:32:00.000Z","key":1486783920000,"doc_count":5},{"key_as_string":"2017-02-11T03:33:00.000Z","key":1486783980000,"doc_count":10},{"key_as_string":"2017-02-11T03:34:00.000Z","key":1486784040000,"doc_count":14},{"key_as_string":"2017-02-11T03:35:00.000Z","key":1486784100000,"doc_count":13},{"key_as_string":"2017-02-11T03:36:00.000Z","key":1486784160000,"doc_count":9},{"key_as_string":"2017-02-11T03:37:00.000Z","key":1486784220000,"doc_count":10},{"key_as_string":"2017-02-11T03:38:00.000Z","key":1486784280000,"doc_count":10},{"key_as_string":"2017-02-11T03:39:00.000Z","key":1486784340000,"doc_count":12},{"key_as_string":"2017-02-11T03:40:00.000Z","key":1486784400000,"doc_count":11},{"key_as_string":"2017-02-11T03:41:00.000Z","key":1486784460000,"doc_count":11},{"key_as_string":"2017-02-11T03:42:00.000Z","key":1486784520000,"doc_count":7},{"key_as_string":"2017-02-11T03:43:00.000Z","key":1486784580000,"doc_count":18},{"key_as_string":"2017-02-11T03:44:00.000Z","key":1486784640000,"doc_count":6},{"key_as_string":"2017-02-11T03:45:00.000Z","key":1486784700000,"doc_count":12},{"key_as_string":"2017-02-11T03:46:00.000Z","key":1486784760000,"doc_count":13},{"key_as_string":"2017-02-11T03:47:00.000Z","key":1486784820000,"doc_count":13},{"key_as_string":"2017-02-11T03:48:00.000Z","key":1486784880000,"doc_count":15},{"key_as_string":"2017-02-11T03:49:00.000Z","key":1486784940000,"doc_count":11},{"key_as_string":"2017-02-11T03:50:00.000Z","key":1486785000000,"doc_count":9},{"key_as_string":"2017-02-11T03:51:00.000Z","key":1486785060000,"doc_count":14},{"key_as_string":"2017-02-11T03:52:00.000Z","key":1486785120000,"doc_count":7},{"key_as_string":"2017-02-11T03:53:00.000Z","key":1486785180000,"doc_count":11},{"key_as_string":"2017-02-11T03:54:00.000Z","key":1486785240000,"doc_count":8},{"key_as_string":"2017-02-11T03:55:00.000Z","key":1486785300000,"doc_count":7},{"key_as_string":"2017-02-11T03:56:00.000Z","key":1486785360000,"doc_count":10},{"key_as_string":"2017-02-11T03:57:00.000Z","key":1486785420000,"doc_count":13},{"key_as_string":"2017-02-11T03:58:00.000Z","key":1486785480000,"doc_count":11},{"key_as_string":"2017-02-11T03:59:00.000Z","key":1486785540000,"doc_count":8},{"key_as_string":"2017-02-11T04:00:00.000Z","key":1486785600000,"doc_count":11},{"key_as_string":"2017-02-11T04:01:00.000Z","key":1486785660000,"doc_count":9},{"key_as_string":"2017-02-11T04:02:00.000Z","key":1486785720000,"doc_count":13},{"key_as_string":"2017-02-11T04:03:00.000Z","key":1486785780000,"doc_count":14},{"key_as_string":"2017-02-11T04:04:00.000Z","key":1486785840000,"doc_count":13},{"key_as_string":"2017-02-11T04:05:00.000Z","key":1486785900000,"doc_count":9},{"key_as_string":"2017-02-11T04:06:00.000Z","key":1486785960000,"doc_count":8},{"key_as_string":"2017-02-11T04:07:00.000Z","key":1486786020000,"doc_count":8},{"key_as_string":"2017-02-11T04:08:00.000Z","key":1486786080000,"doc_count":14},{"key_as_string":"2017-02-11T04:09:00.000Z","key":1486786140000,"doc_count":10},{"key_as_string":"2017-02-11T04:10:00.000Z","key":1486786200000,"doc_count":12},{"key_as_string":"2017-02-11T04:11:00.000Z","key":1486786260000,"doc_count":9},{"key_as_string":"2017-02-11T04:12:00.000Z","key":1486786320000,"doc_count":11},{"key_as_string":"2017-02-11T04:13:00.000Z","key":1486786380000,"doc_count":19},{"key_as_string":"2017-02-11T04:14:00.000Z","key":1486786440000,"doc_count":9},{"key_as_string":"2017-02-11T04:15:00.000Z","key":1486786500000,"doc_count":9},{"key_as_string":"2017-02-11T04:16:00.000Z","key":1486786560000,"doc_count":15},{"key_as_string":"2017-02-11T04:17:00.000Z","key":1486786620000,"doc_count":17},{"key_as_string":"2017-02-11T04:18:00.000Z","key":1486786680000,"doc_count":15},{"key_as_string":"2017-02-11T04:19:00.000Z","key":1486786740000,"doc_count":8},{"key_as_string":"2017-02-11T04:20:00.000Z","key":1486786800000,"doc_count":11},{"key_as_string":"2017-02-11T04:21:00.000Z","key":1486786860000,"doc_count":13},{"key_as_string":"2017-02-11T04:22:00.000Z","key":1486786920000,"doc_count":11},{"key_as_string":"2017-02-11T04:23:00.000Z","key":1486786980000,"doc_count":7},{"key_as_string":"2017-02-11T04:24:00.000Z","key":1486787040000,"doc_count":14},{"key_as_string":"2017-02-11T04:25:00.000Z","key":1486787100000,"doc_count":11},{"key_as_string":"2017-02-11T04:26:00.000Z","key":1486787160000,"doc_count":9},{"key_as_string":"2017-02-11T04:27:00.000Z","key":1486787220000,"doc_count":6},{"key_as_string":"2017-02-11T04:28:00.000Z","key":1486787280000,"doc_count":17},{"key_as_string":"2017-02-11T04:29:00.000Z","key":1486787340000,"doc_count":9},{"key_as_string":"2017-02-11T04:30:00.000Z","key":1486787400000,"doc_count":9},{"key_as_string":"2017-02-11T04:31:00.000Z","key":1486787460000,"doc_count":8},{"key_as_string":"2017-02-11T04:32:00.000Z","key":1486787520000,"doc_count":12},{"key_as_string":"2017-02-11T04:33:00.000Z","key":1486787580000,"doc_count":11},{"key_as_string":"2017-02-11T04:34:00.000Z","key":1486787640000,"doc_count":10},{"key_as_string":"2017-02-11T04:35:00.000Z","key":1486787700000,"doc_count":11},{"key_as_string":"2017-02-11T04:36:00.000Z","key":1486787760000,"doc_count":11},{"key_as_string":"2017-02-11T04:37:00.000Z","key":1486787820000,"doc_count":15},{"key_as_string":"2017-02-11T04:38:00.000Z","key":1486787880000,"doc_count":11},{"key_as_string":"2017-02-11T04:39:00.000Z","key":1486787940000,"doc_count":10},{"key_as_string":"2017-02-11T04:40:00.000Z","key":1486788000000,"doc_count":10},{"key_as_string":"2017-02-11T04:41:00.000Z","key":1486788060000,"doc_count":10},{"key_as_string":"2017-02-11T04:42:00.000Z","key":1486788120000,"doc_count":8},{"key_as_string":"2017-02-11T04:43:00.000Z","key":1486788180000,"doc_count":9},{"key_as_string":"2017-02-11T04:44:00.000Z","key":1486788240000,"doc_count":8},{"key_as_string":"2017-02-11T04:45:00.000Z","key":1486788300000,"doc_count":19},{"key_as_string":"2017-02-11T04:46:00.000Z","key":1486788360000,"doc_count":11},{"key_as_string":"2017-02-11T04:47:00.000Z","key":1486788420000,"doc_count":11},{"key_as_string":"2017-02-11T04:48:00.000Z","key":1486788480000,"doc_count":10},{"key_as_string":"2017-02-11T04:49:00.000Z","key":1486788540000,"doc_count":9},{"key_as_string":"2017-02-11T04:50:00.000Z","key":1486788600000,"doc_count":9},{"key_as_string":"2017-02-11T04:51:00.000Z","key":1486788660000,"doc_count":15},{"key_as_string":"2017-02-11T04:52:00.000Z","key":1486788720000,"doc_count":11},{"key_as_string":"2017-02-11T04:53:00.000Z","key":1486788780000,"doc_count":11},{"key_as_string":"2017-02-11T04:54:00.000Z","key":1486788840000,"doc_count":12},{"key_as_string":"2017-02-11T04:55:00.000Z","key":1486788900000,"doc_count":12},{"key_as_string":"2017-02-11T04:56:00.000Z","key":1486788960000,"doc_count":9},{"key_as_string":"2017-02-11T04:57:00.000Z","key":1486789020000,"doc_count":16},{"key_as_string":"2017-02-11T04:58:00.000Z","key":1486789080000,"doc_count":11},{"key_as_string":"2017-02-11T04:59:00.000Z","key":1486789140000,"doc_count":10},{"key_as_string":"2017-02-11T05:00:00.000Z","key":1486789200000,"doc_count":9},{"key_as_string":"2017-02-11T05:01:00.000Z","key":1486789260000,"doc_count":14},{"key_as_string":"2017-02-11T05:02:00.000Z","key":1486789320000,"doc_count":10},{"key_as_string":"2017-02-11T05:03:00.000Z","key":1486789380000,"doc_count":11},{"key_as_string":"2017-02-11T05:04:00.000Z","key":1486789440000,"doc_count":11},{"key_as_string":"2017-02-11T05:05:00.000Z","key":1486789500000,"doc_count":6},{"key_as_string":"2017-02-11T05:06:00.000Z","key":1486789560000,"doc_count":19},{"key_as_string":"2017-02-11T05:07:00.000Z","key":1486789620000,"doc_count":11},{"key_as_string":"2017-02-11T05:08:00.000Z","key":1486789680000,"doc_count":15},{"key_as_string":"2017-02-11T05:09:00.000Z","key":1486789740000,"doc_count":10},{"key_as_string":"2017-02-11T05:10:00.000Z","key":1486789800000,"doc_count":13},{"key_as_string":"2017-02-11T05:11:00.000Z","key":1486789860000,"doc_count":12},{"key_as_string":"2017-02-11T05:12:00.000Z","key":1486789920000,"doc_count":14},{"key_as_string":"2017-02-11T05:13:00.000Z","key":1486789980000,"doc_count":12},{"key_as_string":"2017-02-11T05:14:00.000Z","key":1486790040000,"doc_count":13},{"key_as_string":"2017-02-11T05:15:00.000Z","key":1486790100000,"doc_count":7},{"key_as_string":"2017-02-11T05:16:00.000Z","key":1486790160000,"doc_count":10},{"key_as_string":"2017-02-11T05:17:00.000Z","key":1486790220000,"doc_count":12},{"key_as_string":"2017-02-11T05:18:00.000Z","key":1486790280000,"doc_count":15},{"key_as_string":"2017-02-11T05:19:00.000Z","key":1486790340000,"doc_count":10},{"key_as_string":"2017-02-11T05:20:00.000Z","key":1486790400000,"doc_count":9},{"key_as_string":"2017-02-11T05:21:00.000Z","key":1486790460000,"doc_count":10},{"key_as_string":"2017-02-11T05:22:00.000Z","key":1486790520000,"doc_count":15},{"key_as_string":"2017-02-11T05:23:00.000Z","key":1486790580000,"doc_count":9},{"key_as_string":"2017-02-11T05:24:00.000Z","key":1486790640000,"doc_count":13},{"key_as_string":"2017-02-11T05:25:00.000Z","key":1486790700000,"doc_count":12},{"key_as_string":"2017-02-11T05:26:00.000Z","key":1486790760000,"doc_count":9},{"key_as_string":"2017-02-11T05:27:00.000Z","key":1486790820000,"doc_count":15},{"key_as_string":"2017-02-11T05:28:00.000Z","key":1486790880000,"doc_count":11},{"key_as_string":"2017-02-11T05:29:00.000Z","key":1486790940000,"doc_count":14},{"key_as_string":"2017-02-11T05:30:00.000Z","key":1486791000000,"doc_count":14},{"key_as_string":"2017-02-11T05:31:00.000Z","key":1486791060000,"doc_count":15},{"key_as_string":"2017-02-11T05:32:00.000Z","key":1486791120000,"doc_count":7},{"key_as_string":"2017-02-11T05:33:00.000Z","key":1486791180000,"doc_count":7},{"key_as_string":"2017-02-11T05:34:00.000Z","key":1486791240000,"doc_count":9},{"key_as_string":"2017-02-11T05:35:00.000Z","key":1486791300000,"doc_count":13},{"key_as_string":"2017-02-11T05:36:00.000Z","key":1486791360000,"doc_count":11},{"key_as_string":"2017-02-11T05:37:00.000Z","key":1486791420000,"doc_count":11},{"key_as_string":"2017-02-11T05:38:00.000Z","key":1486791480000,"doc_count":10},{"key_as_string":"2017-02-11T05:39:00.000Z","key":1486791540000,"doc_count":7},{"key_as_string":"2017-02-11T05:40:00.000Z","key":1486791600000,"doc_count":12},{"key_as_string":"2017-02-11T05:41:00.000Z","key":1486791660000,"doc_count":11},{"key_as_string":"2017-02-11T05:42:00.000Z","key":1486791720000,"doc_count":16},{"key_as_string":"2017-02-11T05:43:00.000Z","key":1486791780000,"doc_count":12},{"key_as_string":"2017-02-11T05:44:00.000Z","key":1486791840000,"doc_count":8},{"key_as_string":"2017-02-11T05:45:00.000Z","key":1486791900000,"doc_count":13},{"key_as_string":"2017-02-11T05:46:00.000Z","key":1486791960000,"doc_count":17},{"key_as_string":"2017-02-11T05:47:00.000Z","key":1486792020000,"doc_count":8},{"key_as_string":"2017-02-11T05:48:00.000Z","key":1486792080000,"doc_count":9},{"key_as_string":"2017-02-11T05:49:00.000Z","key":1486792140000,"doc_count":9},{"key_as_string":"2017-02-11T05:50:00.000Z","key":1486792200000,"doc_count":13},{"key_as_string":"2017-02-11T05:51:00.000Z","key":1486792260000,"doc_count":7},{"key_as_string":"2017-02-11T05:52:00.000Z","key":1486792320000,"doc_count":13},{"key_as_string":"2017-02-11T05:53:00.000Z","key":1486792380000,"doc_count":8},{"key_as_string":"2017-02-11T05:54:00.000Z","key":1486792440000,"doc_count":12},{"key_as_string":"2017-02-11T05:55:00.000Z","key":1486792500000,"doc_count":9},{"key_as_string":"2017-02-11T05:56:00.000Z","key":1486792560000,"doc_count":15},{"key_as_string":"2017-02-11T05:57:00.000Z","key":1486792620000,"doc_count":11},{"key_as_string":"2017-02-11T05:58:00.000Z","key":1486792680000,"doc_count":14},{"key_as_string":"2017-02-11T05:59:00.000Z","key":1486792740000,"doc_count":10},{"key_as_string":"2017-02-11T06:00:00.000Z","key":1486792800000,"doc_count":15},{"key_as_string":"2017-02-11T06:01:00.000Z","key":1486792860000,"doc_count":10},{"key_as_string":"2017-02-11T06:02:00.000Z","key":1486792920000,"doc_count":9},{"key_as_string":"2017-02-11T06:03:00.000Z","key":1486792980000,"doc_count":16},{"key_as_string":"2017-02-11T06:04:00.000Z","key":1486793040000,"doc_count":12},{"key_as_string":"2017-02-11T06:05:00.000Z","key":1486793100000,"doc_count":13},{"key_as_string":"2017-02-11T06:06:00.000Z","key":1486793160000,"doc_count":14},{"key_as_string":"2017-02-11T06:07:00.000Z","key":1486793220000,"doc_count":11},{"key_as_string":"2017-02-11T06:08:00.000Z","key":1486793280000,"doc_count":16},{"key_as_string":"2017-02-11T06:09:00.000Z","key":1486793340000,"doc_count":9},{"key_as_string":"2017-02-11T06:10:00.000Z","key":1486793400000,"doc_count":15},{"key_as_string":"2017-02-11T06:11:00.000Z","key":1486793460000,"doc_count":9},{"key_as_string":"2017-02-11T06:12:00.000Z","key":1486793520000,"doc_count":9},{"key_as_string":"2017-02-11T06:13:00.000Z","key":1486793580000,"doc_count":13},{"key_as_string":"2017-02-11T06:14:00.000Z","key":1486793640000,"doc_count":12},{"key_as_string":"2017-02-11T06:15:00.000Z","key":1486793700000,"doc_count":11},{"key_as_string":"2017-02-11T06:16:00.000Z","key":1486793760000,"doc_count":14},{"key_as_string":"2017-02-11T06:17:00.000Z","key":1486793820000,"doc_count":16},{"key_as_string":"2017-02-11T06:18:00.000Z","key":1486793880000,"doc_count":7},{"key_as_string":"2017-02-11T06:19:00.000Z","key":1486793940000,"doc_count":18},{"key_as_string":"2017-02-11T06:20:00.000Z","key":1486794000000,"doc_count":15},{"key_as_string":"2017-02-11T06:21:00.000Z","key":1486794060000,"doc_count":10},{"key_as_string":"2017-02-11T06:22:00.000Z","key":1486794120000,"doc_count":10},{"key_as_string":"2017-02-11T06:23:00.000Z","key":1486794180000,"doc_count":11},{"key_as_string":"2017-02-11T06:24:00.000Z","key":1486794240000,"doc_count":7},{"key_as_string":"2017-02-11T06:25:00.000Z","key":1486794300000,"doc_count":12},{"key_as_string":"2017-02-11T06:26:00.000Z","key":1486794360000,"doc_count":10},{"key_as_string":"2017-02-11T06:27:00.000Z","key":1486794420000,"doc_count":11},{"key_as_string":"2017-02-11T06:28:00.000Z","key":1486794480000,"doc_count":13},{"key_as_string":"2017-02-11T06:29:00.000Z","key":1486794540000,"doc_count":11},{"key_as_string":"2017-02-11T06:30:00.000Z","key":1486794600000,"doc_count":13},{"key_as_string":"2017-02-11T06:31:00.000Z","key":1486794660000,"doc_count":10},{"key_as_string":"2017-02-11T06:32:00.000Z","key":1486794720000,"doc_count":13},{"key_as_string":"2017-02-11T06:33:00.000Z","key":1486794780000,"doc_count":14},{"key_as_string":"2017-02-11T06:34:00.000Z","key":1486794840000,"doc_count":15},{"key_as_string":"2017-02-11T06:35:00.000Z","key":1486794900000,"doc_count":11},{"key_as_string":"2017-02-11T06:36:00.000Z","key":1486794960000,"doc_count":14},{"key_as_string":"2017-02-11T06:37:00.000Z","key":1486795020000,"doc_count":10},{"key_as_string":"2017-02-11T06:38:00.000Z","key":1486795080000,"doc_count":13},{"key_as_string":"2017-02-11T06:39:00.000Z","key":1486795140000,"doc_count":7},{"key_as_string":"2017-02-11T06:40:00.000Z","key":1486795200000,"doc_count":12},{"key_as_string":"2017-02-11T06:41:00.000Z","key":1486795260000,"doc_count":12},{"key_as_string":"2017-02-11T06:42:00.000Z","key":1486795320000,"doc_count":10},{"key_as_string":"2017-02-11T06:43:00.000Z","key":1486795380000,"doc_count":14},{"key_as_string":"2017-02-11T06:44:00.000Z","key":1486795440000,"doc_count":15},{"key_as_string":"2017-02-11T06:45:00.000Z","key":1486795500000,"doc_count":10},{"key_as_string":"2017-02-11T06:46:00.000Z","key":1486795560000,"doc_count":12},{"key_as_string":"2017-02-11T06:47:00.000Z","key":1486795620000,"doc_count":14},{"key_as_string":"2017-02-11T06:48:00.000Z","key":1486795680000,"doc_count":15},{"key_as_string":"2017-02-11T06:49:00.000Z","key":1486795740000,"doc_count":11},{"key_as_string":"2017-02-11T06:50:00.000Z","key":1486795800000,"doc_count":14},{"key_as_string":"2017-02-11T06:51:00.000Z","key":1486795860000,"doc_count":9},{"key_as_string":"2017-02-11T06:52:00.000Z","key":1486795920000,"doc_count":15},{"key_as_string":"2017-02-11T06:53:00.000Z","key":1486795980000,"doc_count":6},{"key_as_string":"2017-02-11T06:54:00.000Z","key":1486796040000,"doc_count":15},{"key_as_string":"2017-02-11T06:55:00.000Z","key":1486796100000,"doc_count":12},{"key_as_string":"2017-02-11T06:56:00.000Z","key":1486796160000,"doc_count":11},{"key_as_string":"2017-02-11T06:57:00.000Z","key":1486796220000,"doc_count":15},{"key_as_string":"2017-02-11T06:58:00.000Z","key":1486796280000,"doc_count":12},{"key_as_string":"2017-02-11T06:59:00.000Z","key":1486796340000,"doc_count":9},{"key_as_string":"2017-02-11T07:00:00.000Z","key":1486796400000,"doc_count":17},{"key_as_string":"2017-02-11T07:01:00.000Z","key":1486796460000,"doc_count":11},{"key_as_string":"2017-02-11T07:02:00.000Z","key":1486796520000,"doc_count":12},{"key_as_string":"2017-02-11T07:03:00.000Z","key":1486796580000,"doc_count":15},{"key_as_string":"2017-02-11T07:04:00.000Z","key":1486796640000,"doc_count":16},{"key_as_string":"2017-02-11T07:05:00.000Z","key":1486796700000,"doc_count":13},{"key_as_string":"2017-02-11T07:06:00.000Z","key":1486796760000,"doc_count":12},{"key_as_string":"2017-02-11T07:07:00.000Z","key":1486796820000,"doc_count":10},{"key_as_string":"2017-02-11T07:08:00.000Z","key":1486796880000,"doc_count":18},{"key_as_string":"2017-02-11T07:09:00.000Z","key":1486796940000,"doc_count":10},{"key_as_string":"2017-02-11T07:10:00.000Z","key":1486797000000,"doc_count":12},{"key_as_string":"2017-02-11T07:11:00.000Z","key":1486797060000,"doc_count":16},{"key_as_string":"2017-02-11T07:12:00.000Z","key":1486797120000,"doc_count":13},{"key_as_string":"2017-02-11T07:13:00.000Z","key":1486797180000,"doc_count":9},{"key_as_string":"2017-02-11T07:14:00.000Z","key":1486797240000,"doc_count":12},{"key_as_string":"2017-02-11T07:15:00.000Z","key":1486797300000,"doc_count":9},{"key_as_string":"2017-02-11T07:16:00.000Z","key":1486797360000,"doc_count":11},{"key_as_string":"2017-02-11T07:17:00.000Z","key":1486797420000,"doc_count":12},{"key_as_string":"2017-02-11T07:18:00.000Z","key":1486797480000,"doc_count":13},{"key_as_string":"2017-02-11T07:19:00.000Z","key":1486797540000,"doc_count":14},{"key_as_string":"2017-02-11T07:20:00.000Z","key":1486797600000,"doc_count":11},{"key_as_string":"2017-02-11T07:21:00.000Z","key":1486797660000,"doc_count":16},{"key_as_string":"2017-02-11T07:22:00.000Z","key":1486797720000,"doc_count":9},{"key_as_string":"2017-02-11T07:23:00.000Z","key":1486797780000,"doc_count":14},{"key_as_string":"2017-02-11T07:24:00.000Z","key":1486797840000,"doc_count":11},{"key_as_string":"2017-02-11T07:25:00.000Z","key":1486797900000,"doc_count":14},{"key_as_string":"2017-02-11T07:26:00.000Z","key":1486797960000,"doc_count":12},{"key_as_string":"2017-02-11T07:27:00.000Z","key":1486798020000,"doc_count":15},{"key_as_string":"2017-02-11T07:28:00.000Z","key":1486798080000,"doc_count":8},{"key_as_string":"2017-02-11T07:29:00.000Z","key":1486798140000,"doc_count":12},{"key_as_string":"2017-02-11T07:30:00.000Z","key":1486798200000,"doc_count":13},{"key_as_string":"2017-02-11T07:31:00.000Z","key":1486798260000,"doc_count":11},{"key_as_string":"2017-02-11T07:32:00.000Z","key":1486798320000,"doc_count":12},{"key_as_string":"2017-02-11T07:33:00.000Z","key":1486798380000,"doc_count":12},{"key_as_string":"2017-02-11T07:34:00.000Z","key":1486798440000,"doc_count":12},{"key_as_string":"2017-02-11T07:35:00.000Z","key":1486798500000,"doc_count":12},{"key_as_string":"2017-02-11T07:36:00.000Z","key":1486798560000,"doc_count":13},{"key_as_string":"2017-02-11T07:37:00.000Z","key":1486798620000,"doc_count":9},{"key_as_string":"2017-02-11T07:38:00.000Z","key":1486798680000,"doc_count":13},{"key_as_string":"2017-02-11T07:39:00.000Z","key":1486798740000,"doc_count":9},{"key_as_string":"2017-02-11T07:40:00.000Z","key":1486798800000,"doc_count":12},{"key_as_string":"2017-02-11T07:41:00.000Z","key":1486798860000,"doc_count":12},{"key_as_string":"2017-02-11T07:42:00.000Z","key":1486798920000,"doc_count":17},{"key_as_string":"2017-02-11T07:43:00.000Z","key":1486798980000,"doc_count":12},{"key_as_string":"2017-02-11T07:44:00.000Z","key":1486799040000,"doc_count":11},{"key_as_string":"2017-02-11T07:45:00.000Z","key":1486799100000,"doc_count":14},{"key_as_string":"2017-02-11T07:46:00.000Z","key":1486799160000,"doc_count":14},{"key_as_string":"2017-02-11T07:47:00.000Z","key":1486799220000,"doc_count":9},{"key_as_string":"2017-02-11T07:48:00.000Z","key":1486799280000,"doc_count":11},{"key_as_string":"2017-02-11T07:49:00.000Z","key":1486799340000,"doc_count":11},{"key_as_string":"2017-02-11T07:50:00.000Z","key":1486799400000,"doc_count":9},{"key_as_string":"2017-02-11T07:51:00.000Z","key":1486799460000,"doc_count":12},{"key_as_string":"2017-02-11T07:52:00.000Z","key":1486799520000,"doc_count":12},{"key_as_string":"2017-02-11T07:53:00.000Z","key":1486799580000,"doc_count":7},{"key_as_string":"2017-02-11T07:54:00.000Z","key":1486799640000,"doc_count":17},{"key_as_string":"2017-02-11T07:55:00.000Z","key":1486799700000,"doc_count":13},{"key_as_string":"2017-02-11T07:56:00.000Z","key":1486799760000,"doc_count":12},{"key_as_string":"2017-02-11T07:57:00.000Z","key":1486799820000,"doc_count":11},{"key_as_string":"2017-02-11T07:58:00.000Z","key":1486799880000,"doc_count":13},{"key_as_string":"2017-02-11T07:59:00.000Z","key":1486799940000,"doc_count":11},{"key_as_string":"2017-02-11T08:00:00.000Z","key":1486800000000,"doc_count":16},{"key_as_string":"2017-02-11T08:01:00.000Z","key":1486800060000,"doc_count":15},{"key_as_string":"2017-02-11T08:02:00.000Z","key":1486800120000,"doc_count":14},{"key_as_string":"2017-02-11T08:03:00.000Z","key":1486800180000,"doc_count":16},{"key_as_string":"2017-02-11T08:04:00.000Z","key":1486800240000,"doc_count":12},{"key_as_string":"2017-02-11T08:05:00.000Z","key":1486800300000,"doc_count":14},{"key_as_string":"2017-02-11T08:06:00.000Z","key":1486800360000,"doc_count":13},{"key_as_string":"2017-02-11T08:07:00.000Z","key":1486800420000,"doc_count":16},{"key_as_string":"2017-02-11T08:08:00.000Z","key":1486800480000,"doc_count":17},{"key_as_string":"2017-02-11T08:09:00.000Z","key":1486800540000,"doc_count":20},{"key_as_string":"2017-02-11T08:10:00.000Z","key":1486800600000,"doc_count":13},{"key_as_string":"2017-02-11T08:11:00.000Z","key":1486800660000,"doc_count":15},{"key_as_string":"2017-02-11T08:12:00.000Z","key":1486800720000,"doc_count":10},{"key_as_string":"2017-02-11T08:13:00.000Z","key":1486800780000,"doc_count":16},{"key_as_string":"2017-02-11T08:14:00.000Z","key":1486800840000,"doc_count":5},{"key_as_string":"2017-02-11T08:15:00.000Z","key":1486800900000,"doc_count":14},{"key_as_string":"2017-02-11T08:16:00.000Z","key":1486800960000,"doc_count":18},{"key_as_string":"2017-02-11T08:17:00.000Z","key":1486801020000,"doc_count":11},{"key_as_string":"2017-02-11T08:18:00.000Z","key":1486801080000,"doc_count":16},{"key_as_string":"2017-02-11T08:19:00.000Z","key":1486801140000,"doc_count":10},{"key_as_string":"2017-02-11T08:20:00.000Z","key":1486801200000,"doc_count":15},{"key_as_string":"2017-02-11T08:21:00.000Z","key":1486801260000,"doc_count":10},{"key_as_string":"2017-02-11T08:22:00.000Z","key":1486801320000,"doc_count":14},{"key_as_string":"2017-02-11T08:23:00.000Z","key":1486801380000,"doc_count":10},{"key_as_string":"2017-02-11T08:24:00.000Z","key":1486801440000,"doc_count":19},{"key_as_string":"2017-02-11T08:25:00.000Z","key":1486801500000,"doc_count":14},{"key_as_string":"2017-02-11T08:26:00.000Z","key":1486801560000,"doc_count":13},{"key_as_string":"2017-02-11T08:27:00.000Z","key":1486801620000,"doc_count":10},{"key_as_string":"2017-02-11T08:28:00.000Z","key":1486801680000,"doc_count":15},{"key_as_string":"2017-02-11T08:29:00.000Z","key":1486801740000,"doc_count":10},{"key_as_string":"2017-02-11T08:30:00.000Z","key":1486801800000,"doc_count":11},{"key_as_string":"2017-02-11T08:31:00.000Z","key":1486801860000,"doc_count":9},{"key_as_string":"2017-02-11T08:32:00.000Z","key":1486801920000,"doc_count":14},{"key_as_string":"2017-02-11T08:33:00.000Z","key":1486801980000,"doc_count":10},{"key_as_string":"2017-02-11T08:34:00.000Z","key":1486802040000,"doc_count":12},{"key_as_string":"2017-02-11T08:35:00.000Z","key":1486802100000,"doc_count":16},{"key_as_string":"2017-02-11T08:36:00.000Z","key":1486802160000,"doc_count":19},{"key_as_string":"2017-02-11T08:37:00.000Z","key":1486802220000,"doc_count":13},{"key_as_string":"2017-02-11T08:38:00.000Z","key":1486802280000,"doc_count":11},{"key_as_string":"2017-02-11T08:39:00.000Z","key":1486802340000,"doc_count":16},{"key_as_string":"2017-02-11T08:40:00.000Z","key":1486802400000,"doc_count":13},{"key_as_string":"2017-02-11T08:41:00.000Z","key":1486802460000,"doc_count":10},{"key_as_string":"2017-02-11T08:42:00.000Z","key":1486802520000,"doc_count":12},{"key_as_string":"2017-02-11T08:43:00.000Z","key":1486802580000,"doc_count":11},{"key_as_string":"2017-02-11T08:44:00.000Z","key":1486802640000,"doc_count":9},{"key_as_string":"2017-02-11T08:45:00.000Z","key":1486802700000,"doc_count":12},{"key_as_string":"2017-02-11T08:46:00.000Z","key":1486802760000,"doc_count":11},{"key_as_string":"2017-02-11T08:47:00.000Z","key":1486802820000,"doc_count":15},{"key_as_string":"2017-02-11T08:48:00.000Z","key":1486802880000,"doc_count":9},{"key_as_string":"2017-02-11T08:49:00.000Z","key":1486802940000,"doc_count":17},{"key_as_string":"2017-02-11T08:50:00.000Z","key":1486803000000,"doc_count":14},{"key_as_string":"2017-02-11T08:51:00.000Z","key":1486803060000,"doc_count":14},{"key_as_string":"2017-02-11T08:52:00.000Z","key":1486803120000,"doc_count":11},{"key_as_string":"2017-02-11T08:53:00.000Z","key":1486803180000,"doc_count":13},{"key_as_string":"2017-02-11T08:54:00.000Z","key":1486803240000,"doc_count":17},{"key_as_string":"2017-02-11T08:55:00.000Z","key":1486803300000,"doc_count":13},{"key_as_string":"2017-02-11T08:56:00.000Z","key":1486803360000,"doc_count":15},{"key_as_string":"2017-02-11T08:57:00.000Z","key":1486803420000,"doc_count":15},{"key_as_string":"2017-02-11T08:58:00.000Z","key":1486803480000,"doc_count":14},{"key_as_string":"2017-02-11T08:59:00.000Z","key":1486803540000,"doc_count":6},{"key_as_string":"2017-02-11T09:00:00.000Z","key":1486803600000,"doc_count":15},{"key_as_string":"2017-02-11T09:01:00.000Z","key":1486803660000,"doc_count":9},{"key_as_string":"2017-02-11T09:02:00.000Z","key":1486803720000,"doc_count":15},{"key_as_string":"2017-02-11T09:03:00.000Z","key":1486803780000,"doc_count":10},{"key_as_string":"2017-02-11T09:04:00.000Z","key":1486803840000,"doc_count":11},{"key_as_string":"2017-02-11T09:05:00.000Z","key":1486803900000,"doc_count":17},{"key_as_string":"2017-02-11T09:06:00.000Z","key":1486803960000,"doc_count":10},{"key_as_string":"2017-02-11T09:07:00.000Z","key":1486804020000,"doc_count":13},{"key_as_string":"2017-02-11T09:08:00.000Z","key":1486804080000,"doc_count":15},{"key_as_string":"2017-02-11T09:09:00.000Z","key":1486804140000,"doc_count":10},{"key_as_string":"2017-02-11T09:10:00.000Z","key":1486804200000,"doc_count":16},{"key_as_string":"2017-02-11T09:11:00.000Z","key":1486804260000,"doc_count":18},{"key_as_string":"2017-02-11T09:12:00.000Z","key":1486804320000,"doc_count":10},{"key_as_string":"2017-02-11T09:13:00.000Z","key":1486804380000,"doc_count":14},{"key_as_string":"2017-02-11T09:14:00.000Z","key":1486804440000,"doc_count":9},{"key_as_string":"2017-02-11T09:15:00.000Z","key":1486804500000,"doc_count":17},{"key_as_string":"2017-02-11T09:16:00.000Z","key":1486804560000,"doc_count":18},{"key_as_string":"2017-02-11T09:17:00.000Z","key":1486804620000,"doc_count":12},{"key_as_string":"2017-02-11T09:18:00.000Z","key":1486804680000,"doc_count":15},{"key_as_string":"2017-02-11T09:19:00.000Z","key":1486804740000,"doc_count":10},{"key_as_string":"2017-02-11T09:20:00.000Z","key":1486804800000,"doc_count":14},{"key_as_string":"2017-02-11T09:21:00.000Z","key":1486804860000,"doc_count":15},{"key_as_string":"2017-02-11T09:22:00.000Z","key":1486804920000,"doc_count":12},{"key_as_string":"2017-02-11T09:23:00.000Z","key":1486804980000,"doc_count":17},{"key_as_string":"2017-02-11T09:24:00.000Z","key":1486805040000,"doc_count":13},{"key_as_string":"2017-02-11T09:25:00.000Z","key":1486805100000,"doc_count":17},{"key_as_string":"2017-02-11T09:26:00.000Z","key":1486805160000,"doc_count":11},{"key_as_string":"2017-02-11T09:27:00.000Z","key":1486805220000,"doc_count":11},{"key_as_string":"2017-02-11T09:28:00.000Z","key":1486805280000,"doc_count":13},{"key_as_string":"2017-02-11T09:29:00.000Z","key":1486805340000,"doc_count":9},{"key_as_string":"2017-02-11T09:30:00.000Z","key":1486805400000,"doc_count":20},{"key_as_string":"2017-02-11T09:31:00.000Z","key":1486805460000,"doc_count":13},{"key_as_string":"2017-02-11T09:32:00.000Z","key":1486805520000,"doc_count":17},{"key_as_string":"2017-02-11T09:33:00.000Z","key":1486805580000,"doc_count":16},{"key_as_string":"2017-02-11T09:34:00.000Z","key":1486805640000,"doc_count":11},{"key_as_string":"2017-02-11T09:35:00.000Z","key":1486805700000,"doc_count":18},{"key_as_string":"2017-02-11T09:36:00.000Z","key":1486805760000,"doc_count":14},{"key_as_string":"2017-02-11T09:37:00.000Z","key":1486805820000,"doc_count":17},{"key_as_string":"2017-02-11T09:38:00.000Z","key":1486805880000,"doc_count":12},{"key_as_string":"2017-02-11T09:39:00.000Z","key":1486805940000,"doc_count":12},{"key_as_string":"2017-02-11T09:40:00.000Z","key":1486806000000,"doc_count":14},{"key_as_string":"2017-02-11T09:41:00.000Z","key":1486806060000,"doc_count":11},{"key_as_string":"2017-02-11T09:42:00.000Z","key":1486806120000,"doc_count":12},{"key_as_string":"2017-02-11T09:43:00.000Z","key":1486806180000,"doc_count":14},{"key_as_string":"2017-02-11T09:44:00.000Z","key":1486806240000,"doc_count":16},{"key_as_string":"2017-02-11T09:45:00.000Z","key":1486806300000,"doc_count":17},{"key_as_string":"2017-02-11T09:46:00.000Z","key":1486806360000,"doc_count":12},{"key_as_string":"2017-02-11T09:47:00.000Z","key":1486806420000,"doc_count":15},{"key_as_string":"2017-02-11T09:48:00.000Z","key":1486806480000,"doc_count":13},{"key_as_string":"2017-02-11T09:49:00.000Z","key":1486806540000,"doc_count":14},{"key_as_string":"2017-02-11T09:50:00.000Z","key":1486806600000,"doc_count":17},{"key_as_string":"2017-02-11T09:51:00.000Z","key":1486806660000,"doc_count":15},{"key_as_string":"2017-02-11T09:52:00.000Z","key":1486806720000,"doc_count":9},{"key_as_string":"2017-02-11T09:53:00.000Z","key":1486806780000,"doc_count":20},{"key_as_string":"2017-02-11T09:54:00.000Z","key":1486806840000,"doc_count":15},{"key_as_string":"2017-02-11T09:55:00.000Z","key":1486806900000,"doc_count":19},{"key_as_string":"2017-02-11T09:56:00.000Z","key":1486806960000,"doc_count":10},{"key_as_string":"2017-02-11T09:57:00.000Z","key":1486807020000,"doc_count":14},{"key_as_string":"2017-02-11T09:58:00.000Z","key":1486807080000,"doc_count":15},{"key_as_string":"2017-02-11T09:59:00.000Z","key":1486807140000,"doc_count":20},{"key_as_string":"2017-02-11T10:00:00.000Z","key":1486807200000,"doc_count":14},{"key_as_string":"2017-02-11T10:01:00.000Z","key":1486807260000,"doc_count":14},{"key_as_string":"2017-02-11T10:02:00.000Z","key":1486807320000,"doc_count":13},{"key_as_string":"2017-02-11T10:03:00.000Z","key":1486807380000,"doc_count":13},{"key_as_string":"2017-02-11T10:04:00.000Z","key":1486807440000,"doc_count":17},{"key_as_string":"2017-02-11T10:05:00.000Z","key":1486807500000,"doc_count":10},{"key_as_string":"2017-02-11T10:06:00.000Z","key":1486807560000,"doc_count":20},{"key_as_string":"2017-02-11T10:07:00.000Z","key":1486807620000,"doc_count":14},{"key_as_string":"2017-02-11T10:08:00.000Z","key":1486807680000,"doc_count":12},{"key_as_string":"2017-02-11T10:09:00.000Z","key":1486807740000,"doc_count":22},{"key_as_string":"2017-02-11T10:10:00.000Z","key":1486807800000,"doc_count":18},{"key_as_string":"2017-02-11T10:11:00.000Z","key":1486807860000,"doc_count":9},{"key_as_string":"2017-02-11T10:12:00.000Z","key":1486807920000,"doc_count":16},{"key_as_string":"2017-02-11T10:13:00.000Z","key":1486807980000,"doc_count":13},{"key_as_string":"2017-02-11T10:14:00.000Z","key":1486808040000,"doc_count":14},{"key_as_string":"2017-02-11T10:15:00.000Z","key":1486808100000,"doc_count":13},{"key_as_string":"2017-02-11T10:16:00.000Z","key":1486808160000,"doc_count":15},{"key_as_string":"2017-02-11T10:17:00.000Z","key":1486808220000,"doc_count":15},{"key_as_string":"2017-02-11T10:18:00.000Z","key":1486808280000,"doc_count":13},{"key_as_string":"2017-02-11T10:19:00.000Z","key":1486808340000,"doc_count":12},{"key_as_string":"2017-02-11T10:20:00.000Z","key":1486808400000,"doc_count":8},{"key_as_string":"2017-02-11T10:21:00.000Z","key":1486808460000,"doc_count":18},{"key_as_string":"2017-02-11T10:22:00.000Z","key":1486808520000,"doc_count":14},{"key_as_string":"2017-02-11T10:23:00.000Z","key":1486808580000,"doc_count":17},{"key_as_string":"2017-02-11T10:24:00.000Z","key":1486808640000,"doc_count":22},{"key_as_string":"2017-02-11T10:25:00.000Z","key":1486808700000,"doc_count":12},{"key_as_string":"2017-02-11T10:26:00.000Z","key":1486808760000,"doc_count":13},{"key_as_string":"2017-02-11T10:27:00.000Z","key":1486808820000,"doc_count":17},{"key_as_string":"2017-02-11T10:28:00.000Z","key":1486808880000,"doc_count":14},{"key_as_string":"2017-02-11T10:29:00.000Z","key":1486808940000,"doc_count":13},{"key_as_string":"2017-02-11T10:30:00.000Z","key":1486809000000,"doc_count":11},{"key_as_string":"2017-02-11T10:31:00.000Z","key":1486809060000,"doc_count":15},{"key_as_string":"2017-02-11T10:32:00.000Z","key":1486809120000,"doc_count":17},{"key_as_string":"2017-02-11T10:33:00.000Z","key":1486809180000,"doc_count":14},{"key_as_string":"2017-02-11T10:34:00.000Z","key":1486809240000,"doc_count":12},{"key_as_string":"2017-02-11T10:35:00.000Z","key":1486809300000,"doc_count":10},{"key_as_string":"2017-02-11T10:36:00.000Z","key":1486809360000,"doc_count":12},{"key_as_string":"2017-02-11T10:37:00.000Z","key":1486809420000,"doc_count":16},{"key_as_string":"2017-02-11T10:38:00.000Z","key":1486809480000,"doc_count":18},{"key_as_string":"2017-02-11T10:39:00.000Z","key":1486809540000,"doc_count":15},{"key_as_string":"2017-02-11T10:40:00.000Z","key":1486809600000,"doc_count":16},{"key_as_string":"2017-02-11T10:41:00.000Z","key":1486809660000,"doc_count":15},{"key_as_string":"2017-02-11T10:42:00.000Z","key":1486809720000,"doc_count":15},{"key_as_string":"2017-02-11T10:43:00.000Z","key":1486809780000,"doc_count":11},{"key_as_string":"2017-02-11T10:44:00.000Z","key":1486809840000,"doc_count":11},{"key_as_string":"2017-02-11T10:45:00.000Z","key":1486809900000,"doc_count":19},{"key_as_string":"2017-02-11T10:46:00.000Z","key":1486809960000,"doc_count":12},{"key_as_string":"2017-02-11T10:47:00.000Z","key":1486810020000,"doc_count":12},{"key_as_string":"2017-02-11T10:48:00.000Z","key":1486810080000,"doc_count":12},{"key_as_string":"2017-02-11T10:49:00.000Z","key":1486810140000,"doc_count":12},{"key_as_string":"2017-02-11T10:50:00.000Z","key":1486810200000,"doc_count":21},{"key_as_string":"2017-02-11T10:51:00.000Z","key":1486810260000,"doc_count":13},{"key_as_string":"2017-02-11T10:52:00.000Z","key":1486810320000,"doc_count":13},{"key_as_string":"2017-02-11T10:53:00.000Z","key":1486810380000,"doc_count":14},{"key_as_string":"2017-02-11T10:54:00.000Z","key":1486810440000,"doc_count":14},{"key_as_string":"2017-02-11T10:55:00.000Z","key":1486810500000,"doc_count":10},{"key_as_string":"2017-02-11T10:56:00.000Z","key":1486810560000,"doc_count":12},{"key_as_string":"2017-02-11T10:57:00.000Z","key":1486810620000,"doc_count":15},{"key_as_string":"2017-02-11T10:58:00.000Z","key":1486810680000,"doc_count":13},{"key_as_string":"2017-02-11T10:59:00.000Z","key":1486810740000,"doc_count":11},{"key_as_string":"2017-02-11T11:00:00.000Z","key":1486810800000,"doc_count":18},{"key_as_string":"2017-02-11T11:01:00.000Z","key":1486810860000,"doc_count":14},{"key_as_string":"2017-02-11T11:02:00.000Z","key":1486810920000,"doc_count":18},{"key_as_string":"2017-02-11T11:03:00.000Z","key":1486810980000,"doc_count":18},{"key_as_string":"2017-02-11T11:04:00.000Z","key":1486811040000,"doc_count":14},{"key_as_string":"2017-02-11T11:05:00.000Z","key":1486811100000,"doc_count":21},{"key_as_string":"2017-02-11T11:06:00.000Z","key":1486811160000,"doc_count":8},{"key_as_string":"2017-02-11T11:07:00.000Z","key":1486811220000,"doc_count":14},{"key_as_string":"2017-02-11T11:08:00.000Z","key":1486811280000,"doc_count":9},{"key_as_string":"2017-02-11T11:09:00.000Z","key":1486811340000,"doc_count":13},{"key_as_string":"2017-02-11T11:10:00.000Z","key":1486811400000,"doc_count":19},{"key_as_string":"2017-02-11T11:11:00.000Z","key":1486811460000,"doc_count":12},{"key_as_string":"2017-02-11T11:12:00.000Z","key":1486811520000,"doc_count":15},{"key_as_string":"2017-02-11T11:13:00.000Z","key":1486811580000,"doc_count":16},{"key_as_string":"2017-02-11T11:14:00.000Z","key":1486811640000,"doc_count":11},{"key_as_string":"2017-02-11T11:15:00.000Z","key":1486811700000,"doc_count":12},{"key_as_string":"2017-02-11T11:16:00.000Z","key":1486811760000,"doc_count":16},{"key_as_string":"2017-02-11T11:17:00.000Z","key":1486811820000,"doc_count":14},{"key_as_string":"2017-02-11T11:18:00.000Z","key":1486811880000,"doc_count":13},{"key_as_string":"2017-02-11T11:19:00.000Z","key":1486811940000,"doc_count":14},{"key_as_string":"2017-02-11T11:20:00.000Z","key":1486812000000,"doc_count":14},{"key_as_string":"2017-02-11T11:21:00.000Z","key":1486812060000,"doc_count":11},{"key_as_string":"2017-02-11T11:22:00.000Z","key":1486812120000,"doc_count":14},{"key_as_string":"2017-02-11T11:23:00.000Z","key":1486812180000,"doc_count":13},{"key_as_string":"2017-02-11T11:24:00.000Z","key":1486812240000,"doc_count":13},{"key_as_string":"2017-02-11T11:25:00.000Z","key":1486812300000,"doc_count":13},{"key_as_string":"2017-02-11T11:26:00.000Z","key":1486812360000,"doc_count":6},{"key_as_string":"2017-02-11T11:27:00.000Z","key":1486812420000,"doc_count":21},{"key_as_string":"2017-02-11T11:28:00.000Z","key":1486812480000,"doc_count":10},{"key_as_string":"2017-02-11T11:29:00.000Z","key":1486812540000,"doc_count":19},{"key_as_string":"2017-02-11T11:30:00.000Z","key":1486812600000,"doc_count":10},{"key_as_string":"2017-02-11T11:31:00.000Z","key":1486812660000,"doc_count":10},{"key_as_string":"2017-02-11T11:32:00.000Z","key":1486812720000,"doc_count":14},{"key_as_string":"2017-02-11T11:33:00.000Z","key":1486812780000,"doc_count":13},{"key_as_string":"2017-02-11T11:34:00.000Z","key":1486812840000,"doc_count":9},{"key_as_string":"2017-02-11T11:35:00.000Z","key":1486812900000,"doc_count":16},{"key_as_string":"2017-02-11T11:36:00.000Z","key":1486812960000,"doc_count":9},{"key_as_string":"2017-02-11T11:37:00.000Z","key":1486813020000,"doc_count":14},{"key_as_string":"2017-02-11T11:38:00.000Z","key":1486813080000,"doc_count":8},{"key_as_string":"2017-02-11T11:39:00.000Z","key":1486813140000,"doc_count":16},{"key_as_string":"2017-02-11T11:40:00.000Z","key":1486813200000,"doc_count":17},{"key_as_string":"2017-02-11T11:41:00.000Z","key":1486813260000,"doc_count":11},{"key_as_string":"2017-02-11T11:42:00.000Z","key":1486813320000,"doc_count":13},{"key_as_string":"2017-02-11T11:43:00.000Z","key":1486813380000,"doc_count":14},{"key_as_string":"2017-02-11T11:44:00.000Z","key":1486813440000,"doc_count":17},{"key_as_string":"2017-02-11T11:45:00.000Z","key":1486813500000,"doc_count":11},{"key_as_string":"2017-02-11T11:46:00.000Z","key":1486813560000,"doc_count":16},{"key_as_string":"2017-02-11T11:47:00.000Z","key":1486813620000,"doc_count":12},{"key_as_string":"2017-02-11T11:48:00.000Z","key":1486813680000,"doc_count":13},{"key_as_string":"2017-02-11T11:49:00.000Z","key":1486813740000,"doc_count":19},{"key_as_string":"2017-02-11T11:50:00.000Z","key":1486813800000,"doc_count":12},{"key_as_string":"2017-02-11T11:51:00.000Z","key":1486813860000,"doc_count":15},{"key_as_string":"2017-02-11T11:52:00.000Z","key":1486813920000,"doc_count":12},{"key_as_string":"2017-02-11T11:53:00.000Z","key":1486813980000,"doc_count":8},{"key_as_string":"2017-02-11T11:54:00.000Z","key":1486814040000,"doc_count":15},{"key_as_string":"2017-02-11T11:55:00.000Z","key":1486814100000,"doc_count":16},{"key_as_string":"2017-02-11T11:56:00.000Z","key":1486814160000,"doc_count":10},{"key_as_string":"2017-02-11T11:57:00.000Z","key":1486814220000,"doc_count":12},{"key_as_string":"2017-02-11T11:58:00.000Z","key":1486814280000,"doc_count":17},{"key_as_string":"2017-02-11T11:59:00.000Z","key":1486814340000,"doc_count":18},{"key_as_string":"2017-02-11T12:00:00.000Z","key":1486814400000,"doc_count":13},{"key_as_string":"2017-02-11T12:01:00.000Z","key":1486814460000,"doc_count":13},{"key_as_string":"2017-02-11T12:02:00.000Z","key":1486814520000,"doc_count":9},{"key_as_string":"2017-02-11T12:03:00.000Z","key":1486814580000,"doc_count":14},{"key_as_string":"2017-02-11T12:04:00.000Z","key":1486814640000,"doc_count":11},{"key_as_string":"2017-02-11T12:05:00.000Z","key":1486814700000,"doc_count":9},{"key_as_string":"2017-02-11T12:06:00.000Z","key":1486814760000,"doc_count":18},{"key_as_string":"2017-02-11T12:07:00.000Z","key":1486814820000,"doc_count":14},{"key_as_string":"2017-02-11T12:08:00.000Z","key":1486814880000,"doc_count":9},{"key_as_string":"2017-02-11T12:09:00.000Z","key":1486814940000,"doc_count":15},{"key_as_string":"2017-02-11T12:10:00.000Z","key":1486815000000,"doc_count":18},{"key_as_string":"2017-02-11T12:11:00.000Z","key":1486815060000,"doc_count":14},{"key_as_string":"2017-02-11T12:12:00.000Z","key":1486815120000,"doc_count":16},{"key_as_string":"2017-02-11T12:13:00.000Z","key":1486815180000,"doc_count":14},{"key_as_string":"2017-02-11T12:14:00.000Z","key":1486815240000,"doc_count":12},{"key_as_string":"2017-02-11T12:15:00.000Z","key":1486815300000,"doc_count":15},{"key_as_string":"2017-02-11T12:16:00.000Z","key":1486815360000,"doc_count":12},{"key_as_string":"2017-02-11T12:17:00.000Z","key":1486815420000,"doc_count":12},{"key_as_string":"2017-02-11T12:18:00.000Z","key":1486815480000,"doc_count":16},{"key_as_string":"2017-02-11T12:19:00.000Z","key":1486815540000,"doc_count":9},{"key_as_string":"2017-02-11T12:20:00.000Z","key":1486815600000,"doc_count":14},{"key_as_string":"2017-02-11T12:21:00.000Z","key":1486815660000,"doc_count":11},{"key_as_string":"2017-02-11T12:22:00.000Z","key":1486815720000,"doc_count":16},{"key_as_string":"2017-02-11T12:23:00.000Z","key":1486815780000,"doc_count":14},{"key_as_string":"2017-02-11T12:24:00.000Z","key":1486815840000,"doc_count":10},{"key_as_string":"2017-02-11T12:25:00.000Z","key":1486815900000,"doc_count":16},{"key_as_string":"2017-02-11T12:26:00.000Z","key":1486815960000,"doc_count":18},{"key_as_string":"2017-02-11T12:27:00.000Z","key":1486816020000,"doc_count":15},{"key_as_string":"2017-02-11T12:28:00.000Z","key":1486816080000,"doc_count":10},{"key_as_string":"2017-02-11T12:29:00.000Z","key":1486816140000,"doc_count":12},{"key_as_string":"2017-02-11T12:30:00.000Z","key":1486816200000,"doc_count":11},{"key_as_string":"2017-02-11T12:31:00.000Z","key":1486816260000,"doc_count":16},{"key_as_string":"2017-02-11T12:32:00.000Z","key":1486816320000,"doc_count":11},{"key_as_string":"2017-02-11T12:33:00.000Z","key":1486816380000,"doc_count":11},{"key_as_string":"2017-02-11T12:34:00.000Z","key":1486816440000,"doc_count":19},{"key_as_string":"2017-02-11T12:35:00.000Z","key":1486816500000,"doc_count":17},{"key_as_string":"2017-02-11T12:36:00.000Z","key":1486816560000,"doc_count":19},{"key_as_string":"2017-02-11T12:37:00.000Z","key":1486816620000,"doc_count":11},{"key_as_string":"2017-02-11T12:38:00.000Z","key":1486816680000,"doc_count":18},{"key_as_string":"2017-02-11T12:39:00.000Z","key":1486816740000,"doc_count":11},{"key_as_string":"2017-02-11T12:40:00.000Z","key":1486816800000,"doc_count":12},{"key_as_string":"2017-02-11T12:41:00.000Z","key":1486816860000,"doc_count":15},{"key_as_string":"2017-02-11T12:42:00.000Z","key":1486816920000,"doc_count":15},{"key_as_string":"2017-02-11T12:43:00.000Z","key":1486816980000,"doc_count":7},{"key_as_string":"2017-02-11T12:44:00.000Z","key":1486817040000,"doc_count":19},{"key_as_string":"2017-02-11T12:45:00.000Z","key":1486817100000,"doc_count":12},{"key_as_string":"2017-02-11T12:46:00.000Z","key":1486817160000,"doc_count":16},{"key_as_string":"2017-02-11T12:47:00.000Z","key":1486817220000,"doc_count":8},{"key_as_string":"2017-02-11T12:48:00.000Z","key":1486817280000,"doc_count":15},{"key_as_string":"2017-02-11T12:49:00.000Z","key":1486817340000,"doc_count":12},{"key_as_string":"2017-02-11T12:50:00.000Z","key":1486817400000,"doc_count":12},{"key_as_string":"2017-02-11T12:51:00.000Z","key":1486817460000,"doc_count":16},{"key_as_string":"2017-02-11T12:52:00.000Z","key":1486817520000,"doc_count":13},{"key_as_string":"2017-02-11T12:53:00.000Z","key":1486817580000,"doc_count":13},{"key_as_string":"2017-02-11T12:54:00.000Z","key":1486817640000,"doc_count":15},{"key_as_string":"2017-02-11T12:55:00.000Z","key":1486817700000,"doc_count":16},{"key_as_string":"2017-02-11T12:56:00.000Z","key":1486817760000,"doc_count":17},{"key_as_string":"2017-02-11T12:57:00.000Z","key":1486817820000,"doc_count":13},{"key_as_string":"2017-02-11T12:58:00.000Z","key":1486817880000,"doc_count":12},{"key_as_string":"2017-02-11T12:59:00.000Z","key":1486817940000,"doc_count":17},{"key_as_string":"2017-02-11T13:00:00.000Z","key":1486818000000,"doc_count":16},{"key_as_string":"2017-02-11T13:01:00.000Z","key":1486818060000,"doc_count":14},{"key_as_string":"2017-02-11T13:02:00.000Z","key":1486818120000,"doc_count":8},{"key_as_string":"2017-02-11T13:03:00.000Z","key":1486818180000,"doc_count":15},{"key_as_string":"2017-02-11T13:04:00.000Z","key":1486818240000,"doc_count":14},{"key_as_string":"2017-02-11T13:05:00.000Z","key":1486818300000,"doc_count":16},{"key_as_string":"2017-02-11T13:06:00.000Z","key":1486818360000,"doc_count":20},{"key_as_string":"2017-02-11T13:07:00.000Z","key":1486818420000,"doc_count":10},{"key_as_string":"2017-02-11T13:08:00.000Z","key":1486818480000,"doc_count":15},{"key_as_string":"2017-02-11T13:09:00.000Z","key":1486818540000,"doc_count":12},{"key_as_string":"2017-02-11T13:10:00.000Z","key":1486818600000,"doc_count":12},{"key_as_string":"2017-02-11T13:11:00.000Z","key":1486818660000,"doc_count":8},{"key_as_string":"2017-02-11T13:12:00.000Z","key":1486818720000,"doc_count":17},{"key_as_string":"2017-02-11T13:13:00.000Z","key":1486818780000,"doc_count":8},{"key_as_string":"2017-02-11T13:14:00.000Z","key":1486818840000,"doc_count":15},{"key_as_string":"2017-02-11T13:15:00.000Z","key":1486818900000,"doc_count":13},{"key_as_string":"2017-02-11T13:16:00.000Z","key":1486818960000,"doc_count":15},{"key_as_string":"2017-02-11T13:17:00.000Z","key":1486819020000,"doc_count":15},{"key_as_string":"2017-02-11T13:18:00.000Z","key":1486819080000,"doc_count":11},{"key_as_string":"2017-02-11T13:19:00.000Z","key":1486819140000,"doc_count":17},{"key_as_string":"2017-02-11T13:20:00.000Z","key":1486819200000,"doc_count":11},{"key_as_string":"2017-02-11T13:21:00.000Z","key":1486819260000,"doc_count":14},{"key_as_string":"2017-02-11T13:22:00.000Z","key":1486819320000,"doc_count":10},{"key_as_string":"2017-02-11T13:23:00.000Z","key":1486819380000,"doc_count":15},{"key_as_string":"2017-02-11T13:24:00.000Z","key":1486819440000,"doc_count":14},{"key_as_string":"2017-02-11T13:25:00.000Z","key":1486819500000,"doc_count":11},{"key_as_string":"2017-02-11T13:26:00.000Z","key":1486819560000,"doc_count":12},{"key_as_string":"2017-02-11T13:27:00.000Z","key":1486819620000,"doc_count":13},{"key_as_string":"2017-02-11T13:28:00.000Z","key":1486819680000,"doc_count":16},{"key_as_string":"2017-02-11T13:29:00.000Z","key":1486819740000,"doc_count":8},{"key_as_string":"2017-02-11T13:30:00.000Z","key":1486819800000,"doc_count":12},{"key_as_string":"2017-02-11T13:31:00.000Z","key":1486819860000,"doc_count":10},{"key_as_string":"2017-02-11T13:32:00.000Z","key":1486819920000,"doc_count":15},{"key_as_string":"2017-02-11T13:33:00.000Z","key":1486819980000,"doc_count":13},{"key_as_string":"2017-02-11T13:34:00.000Z","key":1486820040000,"doc_count":15},{"key_as_string":"2017-02-11T13:35:00.000Z","key":1486820100000,"doc_count":13},{"key_as_string":"2017-02-11T13:36:00.000Z","key":1486820160000,"doc_count":15},{"key_as_string":"2017-02-11T13:37:00.000Z","key":1486820220000,"doc_count":19},{"key_as_string":"2017-02-11T13:38:00.000Z","key":1486820280000,"doc_count":13},{"key_as_string":"2017-02-11T13:39:00.000Z","key":1486820340000,"doc_count":15},{"key_as_string":"2017-02-11T13:40:00.000Z","key":1486820400000,"doc_count":16},{"key_as_string":"2017-02-11T13:41:00.000Z","key":1486820460000,"doc_count":14},{"key_as_string":"2017-02-11T13:42:00.000Z","key":1486820520000,"doc_count":18},{"key_as_string":"2017-02-11T13:43:00.000Z","key":1486820580000,"doc_count":11},{"key_as_string":"2017-02-11T13:44:00.000Z","key":1486820640000,"doc_count":14},{"key_as_string":"2017-02-11T13:45:00.000Z","key":1486820700000,"doc_count":14},{"key_as_string":"2017-02-11T13:46:00.000Z","key":1486820760000,"doc_count":13},{"key_as_string":"2017-02-11T13:47:00.000Z","key":1486820820000,"doc_count":9},{"key_as_string":"2017-02-11T13:48:00.000Z","key":1486820880000,"doc_count":11},{"key_as_string":"2017-02-11T13:49:00.000Z","key":1486820940000,"doc_count":20},{"key_as_string":"2017-02-11T13:50:00.000Z","key":1486821000000,"doc_count":9},{"key_as_string":"2017-02-11T13:51:00.000Z","key":1486821060000,"doc_count":8},{"key_as_string":"2017-02-11T13:52:00.000Z","key":1486821120000,"doc_count":20},{"key_as_string":"2017-02-11T13:53:00.000Z","key":1486821180000,"doc_count":11},{"key_as_string":"2017-02-11T13:54:00.000Z","key":1486821240000,"doc_count":16},{"key_as_string":"2017-02-11T13:55:00.000Z","key":1486821300000,"doc_count":15},{"key_as_string":"2017-02-11T13:56:00.000Z","key":1486821360000,"doc_count":14},{"key_as_string":"2017-02-11T13:57:00.000Z","key":1486821420000,"doc_count":15},{"key_as_string":"2017-02-11T13:58:00.000Z","key":1486821480000,"doc_count":15},{"key_as_string":"2017-02-11T13:59:00.000Z","key":1486821540000,"doc_count":9},{"key_as_string":"2017-02-11T14:00:00.000Z","key":1486821600000,"doc_count":12},{"key_as_string":"2017-02-11T14:01:00.000Z","key":1486821660000,"doc_count":13},{"key_as_string":"2017-02-11T14:02:00.000Z","key":1486821720000,"doc_count":15},{"key_as_string":"2017-02-11T14:03:00.000Z","key":1486821780000,"doc_count":12},{"key_as_string":"2017-02-11T14:04:00.000Z","key":1486821840000,"doc_count":16},{"key_as_string":"2017-02-11T14:05:00.000Z","key":1486821900000,"doc_count":10},{"key_as_string":"2017-02-11T14:06:00.000Z","key":1486821960000,"doc_count":12},{"key_as_string":"2017-02-11T14:07:00.000Z","key":1486822020000,"doc_count":13},{"key_as_string":"2017-02-11T14:08:00.000Z","key":1486822080000,"doc_count":9},{"key_as_string":"2017-02-11T14:09:00.000Z","key":1486822140000,"doc_count":16},{"key_as_string":"2017-02-11T14:10:00.000Z","key":1486822200000,"doc_count":15},{"key_as_string":"2017-02-11T14:11:00.000Z","key":1486822260000,"doc_count":14},{"key_as_string":"2017-02-11T14:12:00.000Z","key":1486822320000,"doc_count":10},{"key_as_string":"2017-02-11T14:13:00.000Z","key":1486822380000,"doc_count":10},{"key_as_string":"2017-02-11T14:14:00.000Z","key":1486822440000,"doc_count":15},{"key_as_string":"2017-02-11T14:15:00.000Z","key":1486822500000,"doc_count":10},{"key_as_string":"2017-02-11T14:16:00.000Z","key":1486822560000,"doc_count":13},{"key_as_string":"2017-02-11T14:17:00.000Z","key":1486822620000,"doc_count":14},{"key_as_string":"2017-02-11T14:18:00.000Z","key":1486822680000,"doc_count":14},{"key_as_string":"2017-02-11T14:19:00.000Z","key":1486822740000,"doc_count":17},{"key_as_string":"2017-02-11T14:20:00.000Z","key":1486822800000,"doc_count":13},{"key_as_string":"2017-02-11T14:21:00.000Z","key":1486822860000,"doc_count":14},{"key_as_string":"2017-02-11T14:22:00.000Z","key":1486822920000,"doc_count":12},{"key_as_string":"2017-02-11T14:23:00.000Z","key":1486822980000,"doc_count":21},{"key_as_string":"2017-02-11T14:24:00.000Z","key":1486823040000,"doc_count":14},{"key_as_string":"2017-02-11T14:25:00.000Z","key":1486823100000,"doc_count":9},{"key_as_string":"2017-02-11T14:26:00.000Z","key":1486823160000,"doc_count":8},{"key_as_string":"2017-02-11T14:27:00.000Z","key":1486823220000,"doc_count":14},{"key_as_string":"2017-02-11T14:28:00.000Z","key":1486823280000,"doc_count":10},{"key_as_string":"2017-02-11T14:29:00.000Z","key":1486823340000,"doc_count":12},{"key_as_string":"2017-02-11T14:30:00.000Z","key":1486823400000,"doc_count":12},{"key_as_string":"2017-02-11T14:31:00.000Z","key":1486823460000,"doc_count":14},{"key_as_string":"2017-02-11T14:32:00.000Z","key":1486823520000,"doc_count":15},{"key_as_string":"2017-02-11T14:33:00.000Z","key":1486823580000,"doc_count":14},{"key_as_string":"2017-02-11T14:34:00.000Z","key":1486823640000,"doc_count":9},{"key_as_string":"2017-02-11T14:35:00.000Z","key":1486823700000,"doc_count":14},{"key_as_string":"2017-02-11T14:36:00.000Z","key":1486823760000,"doc_count":12},{"key_as_string":"2017-02-11T14:37:00.000Z","key":1486823820000,"doc_count":17},{"key_as_string":"2017-02-11T14:38:00.000Z","key":1486823880000,"doc_count":11},{"key_as_string":"2017-02-11T14:39:00.000Z","key":1486823940000,"doc_count":12},{"key_as_string":"2017-02-11T14:40:00.000Z","key":1486824000000,"doc_count":15},{"key_as_string":"2017-02-11T14:41:00.000Z","key":1486824060000,"doc_count":11},{"key_as_string":"2017-02-11T14:42:00.000Z","key":1486824120000,"doc_count":13},{"key_as_string":"2017-02-11T14:43:00.000Z","key":1486824180000,"doc_count":18},{"key_as_string":"2017-02-11T14:44:00.000Z","key":1486824240000,"doc_count":10},{"key_as_string":"2017-02-11T14:45:00.000Z","key":1486824300000,"doc_count":13},{"key_as_string":"2017-02-11T14:46:00.000Z","key":1486824360000,"doc_count":9},{"key_as_string":"2017-02-11T14:47:00.000Z","key":1486824420000,"doc_count":14},{"key_as_string":"2017-02-11T14:48:00.000Z","key":1486824480000,"doc_count":16},{"key_as_string":"2017-02-11T14:49:00.000Z","key":1486824540000,"doc_count":14},{"key_as_string":"2017-02-11T14:50:00.000Z","key":1486824600000,"doc_count":13},{"key_as_string":"2017-02-11T14:51:00.000Z","key":1486824660000,"doc_count":12},{"key_as_string":"2017-02-11T14:52:00.000Z","key":1486824720000,"doc_count":11},{"key_as_string":"2017-02-11T14:53:00.000Z","key":1486824780000,"doc_count":16},{"key_as_string":"2017-02-11T14:54:00.000Z","key":1486824840000,"doc_count":12},{"key_as_string":"2017-02-11T14:55:00.000Z","key":1486824900000,"doc_count":11},{"key_as_string":"2017-02-11T14:56:00.000Z","key":1486824960000,"doc_count":14},{"key_as_string":"2017-02-11T14:57:00.000Z","key":1486825020000,"doc_count":15},{"key_as_string":"2017-02-11T14:58:00.000Z","key":1486825080000,"doc_count":10},{"key_as_string":"2017-02-11T14:59:00.000Z","key":1486825140000,"doc_count":18},{"key_as_string":"2017-02-11T15:00:00.000Z","key":1486825200000,"doc_count":15},{"key_as_string":"2017-02-11T15:01:00.000Z","key":1486825260000,"doc_count":10},{"key_as_string":"2017-02-11T15:02:00.000Z","key":1486825320000,"doc_count":17},{"key_as_string":"2017-02-11T15:03:00.000Z","key":1486825380000,"doc_count":12},{"key_as_string":"2017-02-11T15:04:00.000Z","key":1486825440000,"doc_count":13},{"key_as_string":"2017-02-11T15:05:00.000Z","key":1486825500000,"doc_count":14},{"key_as_string":"2017-02-11T15:06:00.000Z","key":1486825560000,"doc_count":10},{"key_as_string":"2017-02-11T15:07:00.000Z","key":1486825620000,"doc_count":13},{"key_as_string":"2017-02-11T15:08:00.000Z","key":1486825680000,"doc_count":12},{"key_as_string":"2017-02-11T15:09:00.000Z","key":1486825740000,"doc_count":13},{"key_as_string":"2017-02-11T15:10:00.000Z","key":1486825800000,"doc_count":11},{"key_as_string":"2017-02-11T15:11:00.000Z","key":1486825860000,"doc_count":16},{"key_as_string":"2017-02-11T15:12:00.000Z","key":1486825920000,"doc_count":10},{"key_as_string":"2017-02-11T15:13:00.000Z","key":1486825980000,"doc_count":11},{"key_as_string":"2017-02-11T15:14:00.000Z","key":1486826040000,"doc_count":18},{"key_as_string":"2017-02-11T15:15:00.000Z","key":1486826100000,"doc_count":15},{"key_as_string":"2017-02-11T15:16:00.000Z","key":1486826160000,"doc_count":12},{"key_as_string":"2017-02-11T15:17:00.000Z","key":1486826220000,"doc_count":18},{"key_as_string":"2017-02-11T15:18:00.000Z","key":1486826280000,"doc_count":11},{"key_as_string":"2017-02-11T15:19:00.000Z","key":1486826340000,"doc_count":9},{"key_as_string":"2017-02-11T15:20:00.000Z","key":1486826400000,"doc_count":19},{"key_as_string":"2017-02-11T15:21:00.000Z","key":1486826460000,"doc_count":11},{"key_as_string":"2017-02-11T15:22:00.000Z","key":1486826520000,"doc_count":9},{"key_as_string":"2017-02-11T15:23:00.000Z","key":1486826580000,"doc_count":16},{"key_as_string":"2017-02-11T15:24:00.000Z","key":1486826640000,"doc_count":14},{"key_as_string":"2017-02-11T15:25:00.000Z","key":1486826700000,"doc_count":17},{"key_as_string":"2017-02-11T15:26:00.000Z","key":1486826760000,"doc_count":14},{"key_as_string":"2017-02-11T15:27:00.000Z","key":1486826820000,"doc_count":17},{"key_as_string":"2017-02-11T15:28:00.000Z","key":1486826880000,"doc_count":10},{"key_as_string":"2017-02-11T15:29:00.000Z","key":1486826940000,"doc_count":20},{"key_as_string":"2017-02-11T15:30:00.000Z","key":1486827000000,"doc_count":7},{"key_as_string":"2017-02-11T15:31:00.000Z","key":1486827060000,"doc_count":12},{"key_as_string":"2017-02-11T15:32:00.000Z","key":1486827120000,"doc_count":12},{"key_as_string":"2017-02-11T15:33:00.000Z","key":1486827180000,"doc_count":10},{"key_as_string":"2017-02-11T15:34:00.000Z","key":1486827240000,"doc_count":16},{"key_as_string":"2017-02-11T15:35:00.000Z","key":1486827300000,"doc_count":13},{"key_as_string":"2017-02-11T15:36:00.000Z","key":1486827360000,"doc_count":9},{"key_as_string":"2017-02-11T15:37:00.000Z","key":1486827420000,"doc_count":12},{"key_as_string":"2017-02-11T15:38:00.000Z","key":1486827480000,"doc_count":17},{"key_as_string":"2017-02-11T15:39:00.000Z","key":1486827540000,"doc_count":11},{"key_as_string":"2017-02-11T15:40:00.000Z","key":1486827600000,"doc_count":17},{"key_as_string":"2017-02-11T15:41:00.000Z","key":1486827660000,"doc_count":12},{"key_as_string":"2017-02-11T15:42:00.000Z","key":1486827720000,"doc_count":11},{"key_as_string":"2017-02-11T15:43:00.000Z","key":1486827780000,"doc_count":10},{"key_as_string":"2017-02-11T15:44:00.000Z","key":1486827840000,"doc_count":15},{"key_as_string":"2017-02-11T15:45:00.000Z","key":1486827900000,"doc_count":11},{"key_as_string":"2017-02-11T15:46:00.000Z","key":1486827960000,"doc_count":19},{"key_as_string":"2017-02-11T15:47:00.000Z","key":1486828020000,"doc_count":12},{"key_as_string":"2017-02-11T15:48:00.000Z","key":1486828080000,"doc_count":9},{"key_as_string":"2017-02-11T15:49:00.000Z","key":1486828140000,"doc_count":12},{"key_as_string":"2017-02-11T15:50:00.000Z","key":1486828200000,"doc_count":15},{"key_as_string":"2017-02-11T15:51:00.000Z","key":1486828260000,"doc_count":11},{"key_as_string":"2017-02-11T15:52:00.000Z","key":1486828320000,"doc_count":19},{"key_as_string":"2017-02-11T15:53:00.000Z","key":1486828380000,"doc_count":8},{"key_as_string":"2017-02-11T15:54:00.000Z","key":1486828440000,"doc_count":14},{"key_as_string":"2017-02-11T15:55:00.000Z","key":1486828500000,"doc_count":22},{"key_as_string":"2017-02-11T15:56:00.000Z","key":1486828560000,"doc_count":12},{"key_as_string":"2017-02-11T15:57:00.000Z","key":1486828620000,"doc_count":15},{"key_as_string":"2017-02-11T15:58:00.000Z","key":1486828680000,"doc_count":15},{"key_as_string":"2017-02-11T15:59:00.000Z","key":1486828740000,"doc_count":12},{"key_as_string":"2017-02-11T16:00:00.000Z","key":1486828800000,"doc_count":13},{"key_as_string":"2017-02-11T16:01:00.000Z","key":1486828860000,"doc_count":19},{"key_as_string":"2017-02-11T16:02:00.000Z","key":1486828920000,"doc_count":18},{"key_as_string":"2017-02-11T16:03:00.000Z","key":1486828980000,"doc_count":11},{"key_as_string":"2017-02-11T16:04:00.000Z","key":1486829040000,"doc_count":12},{"key_as_string":"2017-02-11T16:05:00.000Z","key":1486829100000,"doc_count":14},{"key_as_string":"2017-02-11T16:06:00.000Z","key":1486829160000,"doc_count":18},{"key_as_string":"2017-02-11T16:07:00.000Z","key":1486829220000,"doc_count":14},{"key_as_string":"2017-02-11T16:08:00.000Z","key":1486829280000,"doc_count":13},{"key_as_string":"2017-02-11T16:09:00.000Z","key":1486829340000,"doc_count":12},{"key_as_string":"2017-02-11T16:10:00.000Z","key":1486829400000,"doc_count":8},{"key_as_string":"2017-02-11T16:11:00.000Z","key":1486829460000,"doc_count":12},{"key_as_string":"2017-02-11T16:12:00.000Z","key":1486829520000,"doc_count":18},{"key_as_string":"2017-02-11T16:13:00.000Z","key":1486829580000,"doc_count":11},{"key_as_string":"2017-02-11T16:14:00.000Z","key":1486829640000,"doc_count":13},{"key_as_string":"2017-02-11T16:15:00.000Z","key":1486829700000,"doc_count":9},{"key_as_string":"2017-02-11T16:16:00.000Z","key":1486829760000,"doc_count":12},{"key_as_string":"2017-02-11T16:17:00.000Z","key":1486829820000,"doc_count":8},{"key_as_string":"2017-02-11T16:18:00.000Z","key":1486829880000,"doc_count":15},{"key_as_string":"2017-02-11T16:19:00.000Z","key":1486829940000,"doc_count":12},{"key_as_string":"2017-02-11T16:20:00.000Z","key":1486830000000,"doc_count":18},{"key_as_string":"2017-02-11T16:21:00.000Z","key":1486830060000,"doc_count":12},{"key_as_string":"2017-02-11T16:22:00.000Z","key":1486830120000,"doc_count":15},{"key_as_string":"2017-02-11T16:23:00.000Z","key":1486830180000,"doc_count":9},{"key_as_string":"2017-02-11T16:24:00.000Z","key":1486830240000,"doc_count":19},{"key_as_string":"2017-02-11T16:25:00.000Z","key":1486830300000,"doc_count":10},{"key_as_string":"2017-02-11T16:26:00.000Z","key":1486830360000,"doc_count":13},{"key_as_string":"2017-02-11T16:27:00.000Z","key":1486830420000,"doc_count":11},{"key_as_string":"2017-02-11T16:28:00.000Z","key":1486830480000,"doc_count":8},{"key_as_string":"2017-02-11T16:29:00.000Z","key":1486830540000,"doc_count":16},{"key_as_string":"2017-02-11T16:30:00.000Z","key":1486830600000,"doc_count":14},{"key_as_string":"2017-02-11T16:31:00.000Z","key":1486830660000,"doc_count":12},{"key_as_string":"2017-02-11T16:32:00.000Z","key":1486830720000,"doc_count":6},{"key_as_string":"2017-02-11T16:33:00.000Z","key":1486830780000,"doc_count":13},{"key_as_string":"2017-02-11T16:34:00.000Z","key":1486830840000,"doc_count":12},{"key_as_string":"2017-02-11T16:35:00.000Z","key":1486830900000,"doc_count":15},{"key_as_string":"2017-02-11T16:36:00.000Z","key":1486830960000,"doc_count":8},{"key_as_string":"2017-02-11T16:37:00.000Z","key":1486831020000,"doc_count":11},{"key_as_string":"2017-02-11T16:38:00.000Z","key":1486831080000,"doc_count":17},{"key_as_string":"2017-02-11T16:39:00.000Z","key":1486831140000,"doc_count":11},{"key_as_string":"2017-02-11T16:40:00.000Z","key":1486831200000,"doc_count":15},{"key_as_string":"2017-02-11T16:41:00.000Z","key":1486831260000,"doc_count":15},{"key_as_string":"2017-02-11T16:42:00.000Z","key":1486831320000,"doc_count":14},{"key_as_string":"2017-02-11T16:43:00.000Z","key":1486831380000,"doc_count":11},{"key_as_string":"2017-02-11T16:44:00.000Z","key":1486831440000,"doc_count":13},{"key_as_string":"2017-02-11T16:45:00.000Z","key":1486831500000,"doc_count":12},{"key_as_string":"2017-02-11T16:46:00.000Z","key":1486831560000,"doc_count":14},{"key_as_string":"2017-02-11T16:47:00.000Z","key":1486831620000,"doc_count":10},{"key_as_string":"2017-02-11T16:48:00.000Z","key":1486831680000,"doc_count":11},{"key_as_string":"2017-02-11T16:49:00.000Z","key":1486831740000,"doc_count":14},{"key_as_string":"2017-02-11T16:50:00.000Z","key":1486831800000,"doc_count":16},{"key_as_string":"2017-02-11T16:51:00.000Z","key":1486831860000,"doc_count":11},{"key_as_string":"2017-02-11T16:52:00.000Z","key":1486831920000,"doc_count":9},{"key_as_string":"2017-02-11T16:53:00.000Z","key":1486831980000,"doc_count":13},{"key_as_string":"2017-02-11T16:54:00.000Z","key":1486832040000,"doc_count":13},{"key_as_string":"2017-02-11T16:55:00.000Z","key":1486832100000,"doc_count":16},{"key_as_string":"2017-02-11T16:56:00.000Z","key":1486832160000,"doc_count":10},{"key_as_string":"2017-02-11T16:57:00.000Z","key":1486832220000,"doc_count":9},{"key_as_string":"2017-02-11T16:58:00.000Z","key":1486832280000,"doc_count":22},{"key_as_string":"2017-02-11T16:59:00.000Z","key":1486832340000,"doc_count":12},{"key_as_string":"2017-02-11T17:00:00.000Z","key":1486832400000,"doc_count":8},{"key_as_string":"2017-02-11T17:01:00.000Z","key":1486832460000,"doc_count":13},{"key_as_string":"2017-02-11T17:02:00.000Z","key":1486832520000,"doc_count":13},{"key_as_string":"2017-02-11T17:03:00.000Z","key":1486832580000,"doc_count":9},{"key_as_string":"2017-02-11T17:04:00.000Z","key":1486832640000,"doc_count":11},{"key_as_string":"2017-02-11T17:05:00.000Z","key":1486832700000,"doc_count":10},{"key_as_string":"2017-02-11T17:06:00.000Z","key":1486832760000,"doc_count":15},{"key_as_string":"2017-02-11T17:07:00.000Z","key":1486832820000,"doc_count":12},{"key_as_string":"2017-02-11T17:08:00.000Z","key":1486832880000,"doc_count":10},{"key_as_string":"2017-02-11T17:09:00.000Z","key":1486832940000,"doc_count":16},{"key_as_string":"2017-02-11T17:10:00.000Z","key":1486833000000,"doc_count":14},{"key_as_string":"2017-02-11T17:11:00.000Z","key":1486833060000,"doc_count":13},{"key_as_string":"2017-02-11T17:12:00.000Z","key":1486833120000,"doc_count":16},{"key_as_string":"2017-02-11T17:13:00.000Z","key":1486833180000,"doc_count":9},{"key_as_string":"2017-02-11T17:14:00.000Z","key":1486833240000,"doc_count":5},{"key_as_string":"2017-02-11T17:15:00.000Z","key":1486833300000,"doc_count":15},{"key_as_string":"2017-02-11T17:16:00.000Z","key":1486833360000,"doc_count":14},{"key_as_string":"2017-02-11T17:17:00.000Z","key":1486833420000,"doc_count":8},{"key_as_string":"2017-02-11T17:18:00.000Z","key":1486833480000,"doc_count":12},{"key_as_string":"2017-02-11T17:19:00.000Z","key":1486833540000,"doc_count":13},{"key_as_string":"2017-02-11T17:20:00.000Z","key":1486833600000,"doc_count":13},{"key_as_string":"2017-02-11T17:21:00.000Z","key":1486833660000,"doc_count":13},{"key_as_string":"2017-02-11T17:22:00.000Z","key":1486833720000,"doc_count":11},{"key_as_string":"2017-02-11T17:23:00.000Z","key":1486833780000,"doc_count":11},{"key_as_string":"2017-02-11T17:24:00.000Z","key":1486833840000,"doc_count":14},{"key_as_string":"2017-02-11T17:25:00.000Z","key":1486833900000,"doc_count":7},{"key_as_string":"2017-02-11T17:26:00.000Z","key":1486833960000,"doc_count":15},{"key_as_string":"2017-02-11T17:27:00.000Z","key":1486834020000,"doc_count":11},{"key_as_string":"2017-02-11T17:28:00.000Z","key":1486834080000,"doc_count":9},{"key_as_string":"2017-02-11T17:29:00.000Z","key":1486834140000,"doc_count":13},{"key_as_string":"2017-02-11T17:30:00.000Z","key":1486834200000,"doc_count":11},{"key_as_string":"2017-02-11T17:31:00.000Z","key":1486834260000,"doc_count":7},{"key_as_string":"2017-02-11T17:32:00.000Z","key":1486834320000,"doc_count":14},{"key_as_string":"2017-02-11T17:33:00.000Z","key":1486834380000,"doc_count":13},{"key_as_string":"2017-02-11T17:34:00.000Z","key":1486834440000,"doc_count":10},{"key_as_string":"2017-02-11T17:35:00.000Z","key":1486834500000,"doc_count":13},{"key_as_string":"2017-02-11T17:36:00.000Z","key":1486834560000,"doc_count":12},{"key_as_string":"2017-02-11T17:37:00.000Z","key":1486834620000,"doc_count":13},{"key_as_string":"2017-02-11T17:38:00.000Z","key":1486834680000,"doc_count":12},{"key_as_string":"2017-02-11T17:39:00.000Z","key":1486834740000,"doc_count":11},{"key_as_string":"2017-02-11T17:40:00.000Z","key":1486834800000,"doc_count":15},{"key_as_string":"2017-02-11T17:41:00.000Z","key":1486834860000,"doc_count":15},{"key_as_string":"2017-02-11T17:42:00.000Z","key":1486834920000,"doc_count":14},{"key_as_string":"2017-02-11T17:43:00.000Z","key":1486834980000,"doc_count":10},{"key_as_string":"2017-02-11T17:44:00.000Z","key":1486835040000,"doc_count":8},{"key_as_string":"2017-02-11T17:45:00.000Z","key":1486835100000,"doc_count":14},{"key_as_string":"2017-02-11T17:46:00.000Z","key":1486835160000,"doc_count":8},{"key_as_string":"2017-02-11T17:47:00.000Z","key":1486835220000,"doc_count":11},{"key_as_string":"2017-02-11T17:48:00.000Z","key":1486835280000,"doc_count":13},{"key_as_string":"2017-02-11T17:49:00.000Z","key":1486835340000,"doc_count":13},{"key_as_string":"2017-02-11T17:50:00.000Z","key":1486835400000,"doc_count":10},{"key_as_string":"2017-02-11T17:51:00.000Z","key":1486835460000,"doc_count":11},{"key_as_string":"2017-02-11T17:52:00.000Z","key":1486835520000,"doc_count":22},{"key_as_string":"2017-02-11T17:53:00.000Z","key":1486835580000,"doc_count":14},{"key_as_string":"2017-02-11T17:54:00.000Z","key":1486835640000,"doc_count":11},{"key_as_string":"2017-02-11T17:55:00.000Z","key":1486835700000,"doc_count":11},{"key_as_string":"2017-02-11T17:56:00.000Z","key":1486835760000,"doc_count":10},{"key_as_string":"2017-02-11T17:57:00.000Z","key":1486835820000,"doc_count":13},{"key_as_string":"2017-02-11T17:58:00.000Z","key":1486835880000,"doc_count":6},{"key_as_string":"2017-02-11T17:59:00.000Z","key":1486835940000,"doc_count":16},{"key_as_string":"2017-02-11T18:00:00.000Z","key":1486836000000,"doc_count":11},{"key_as_string":"2017-02-11T18:01:00.000Z","key":1486836060000,"doc_count":15},{"key_as_string":"2017-02-11T18:02:00.000Z","key":1486836120000,"doc_count":8},{"key_as_string":"2017-02-11T18:03:00.000Z","key":1486836180000,"doc_count":12},{"key_as_string":"2017-02-11T18:04:00.000Z","key":1486836240000,"doc_count":14},{"key_as_string":"2017-02-11T18:05:00.000Z","key":1486836300000,"doc_count":11},{"key_as_string":"2017-02-11T18:06:00.000Z","key":1486836360000,"doc_count":15},{"key_as_string":"2017-02-11T18:07:00.000Z","key":1486836420000,"doc_count":9},{"key_as_string":"2017-02-11T18:08:00.000Z","key":1486836480000,"doc_count":11},{"key_as_string":"2017-02-11T18:09:00.000Z","key":1486836540000,"doc_count":9},{"key_as_string":"2017-02-11T18:10:00.000Z","key":1486836600000,"doc_count":10},{"key_as_string":"2017-02-11T18:11:00.000Z","key":1486836660000,"doc_count":12},{"key_as_string":"2017-02-11T18:12:00.000Z","key":1486836720000,"doc_count":10},{"key_as_string":"2017-02-11T18:13:00.000Z","key":1486836780000,"doc_count":11},{"key_as_string":"2017-02-11T18:14:00.000Z","key":1486836840000,"doc_count":12},{"key_as_string":"2017-02-11T18:15:00.000Z","key":1486836900000,"doc_count":11},{"key_as_string":"2017-02-11T18:16:00.000Z","key":1486836960000,"doc_count":9},{"key_as_string":"2017-02-11T18:17:00.000Z","key":1486837020000,"doc_count":7},{"key_as_string":"2017-02-11T18:18:00.000Z","key":1486837080000,"doc_count":16},{"key_as_string":"2017-02-11T18:19:00.000Z","key":1486837140000,"doc_count":10},{"key_as_string":"2017-02-11T18:20:00.000Z","key":1486837200000,"doc_count":14},{"key_as_string":"2017-02-11T18:21:00.000Z","key":1486837260000,"doc_count":5},{"key_as_string":"2017-02-11T18:22:00.000Z","key":1486837320000,"doc_count":12},{"key_as_string":"2017-02-11T18:23:00.000Z","key":1486837380000,"doc_count":13},{"key_as_string":"2017-02-11T18:24:00.000Z","key":1486837440000,"doc_count":12},{"key_as_string":"2017-02-11T18:25:00.000Z","key":1486837500000,"doc_count":9},{"key_as_string":"2017-02-11T18:26:00.000Z","key":1486837560000,"doc_count":12},{"key_as_string":"2017-02-11T18:27:00.000Z","key":1486837620000,"doc_count":11},{"key_as_string":"2017-02-11T18:28:00.000Z","key":1486837680000,"doc_count":12},{"key_as_string":"2017-02-11T18:29:00.000Z","key":1486837740000,"doc_count":10},{"key_as_string":"2017-02-11T18:30:00.000Z","key":1486837800000,"doc_count":11},{"key_as_string":"2017-02-11T18:31:00.000Z","key":1486837860000,"doc_count":9},{"key_as_string":"2017-02-11T18:32:00.000Z","key":1486837920000,"doc_count":13},{"key_as_string":"2017-02-11T18:33:00.000Z","key":1486837980000,"doc_count":11},{"key_as_string":"2017-02-11T18:34:00.000Z","key":1486838040000,"doc_count":13},{"key_as_string":"2017-02-11T18:35:00.000Z","key":1486838100000,"doc_count":12},{"key_as_string":"2017-02-11T18:36:00.000Z","key":1486838160000,"doc_count":8},{"key_as_string":"2017-02-11T18:37:00.000Z","key":1486838220000,"doc_count":10},{"key_as_string":"2017-02-11T18:38:00.000Z","key":1486838280000,"doc_count":10},{"key_as_string":"2017-02-11T18:39:00.000Z","key":1486838340000,"doc_count":10},{"key_as_string":"2017-02-11T18:40:00.000Z","key":1486838400000,"doc_count":14},{"key_as_string":"2017-02-11T18:41:00.000Z","key":1486838460000,"doc_count":13},{"key_as_string":"2017-02-11T18:42:00.000Z","key":1486838520000,"doc_count":15},{"key_as_string":"2017-02-11T18:43:00.000Z","key":1486838580000,"doc_count":9},{"key_as_string":"2017-02-11T18:44:00.000Z","key":1486838640000,"doc_count":10},{"key_as_string":"2017-02-11T18:45:00.000Z","key":1486838700000,"doc_count":14},{"key_as_string":"2017-02-11T18:46:00.000Z","key":1486838760000,"doc_count":9},{"key_as_string":"2017-02-11T18:47:00.000Z","key":1486838820000,"doc_count":14},{"key_as_string":"2017-02-11T18:48:00.000Z","key":1486838880000,"doc_count":8},{"key_as_string":"2017-02-11T18:49:00.000Z","key":1486838940000,"doc_count":10},{"key_as_string":"2017-02-11T18:50:00.000Z","key":1486839000000,"doc_count":15},{"key_as_string":"2017-02-11T18:51:00.000Z","key":1486839060000,"doc_count":9},{"key_as_string":"2017-02-11T18:52:00.000Z","key":1486839120000,"doc_count":13},{"key_as_string":"2017-02-11T18:53:00.000Z","key":1486839180000,"doc_count":14},{"key_as_string":"2017-02-11T18:54:00.000Z","key":1486839240000,"doc_count":9},{"key_as_string":"2017-02-11T18:55:00.000Z","key":1486839300000,"doc_count":9},{"key_as_string":"2017-02-11T18:56:00.000Z","key":1486839360000,"doc_count":9},{"key_as_string":"2017-02-11T18:57:00.000Z","key":1486839420000,"doc_count":12},{"key_as_string":"2017-02-11T18:58:00.000Z","key":1486839480000,"doc_count":14},{"key_as_string":"2017-02-11T18:59:00.000Z","key":1486839540000,"doc_count":9},{"key_as_string":"2017-02-11T19:00:00.000Z","key":1486839600000,"doc_count":14},{"key_as_string":"2017-02-11T19:01:00.000Z","key":1486839660000,"doc_count":13},{"key_as_string":"2017-02-11T19:02:00.000Z","key":1486839720000,"doc_count":13},{"key_as_string":"2017-02-11T19:03:00.000Z","key":1486839780000,"doc_count":15},{"key_as_string":"2017-02-11T19:04:00.000Z","key":1486839840000,"doc_count":11},{"key_as_string":"2017-02-11T19:05:00.000Z","key":1486839900000,"doc_count":11},{"key_as_string":"2017-02-11T19:06:00.000Z","key":1486839960000,"doc_count":10},{"key_as_string":"2017-02-11T19:07:00.000Z","key":1486840020000,"doc_count":11},{"key_as_string":"2017-02-11T19:08:00.000Z","key":1486840080000,"doc_count":15},{"key_as_string":"2017-02-11T19:09:00.000Z","key":1486840140000,"doc_count":13},{"key_as_string":"2017-02-11T19:10:00.000Z","key":1486840200000,"doc_count":17},{"key_as_string":"2017-02-11T19:11:00.000Z","key":1486840260000,"doc_count":9},{"key_as_string":"2017-02-11T19:12:00.000Z","key":1486840320000,"doc_count":10},{"key_as_string":"2017-02-11T19:13:00.000Z","key":1486840380000,"doc_count":8},{"key_as_string":"2017-02-11T19:14:00.000Z","key":1486840440000,"doc_count":17},{"key_as_string":"2017-02-11T19:15:00.000Z","key":1486840500000,"doc_count":8},{"key_as_string":"2017-02-11T19:16:00.000Z","key":1486840560000,"doc_count":13},{"key_as_string":"2017-02-11T19:17:00.000Z","key":1486840620000,"doc_count":10},{"key_as_string":"2017-02-11T19:18:00.000Z","key":1486840680000,"doc_count":9},{"key_as_string":"2017-02-11T19:19:00.000Z","key":1486840740000,"doc_count":13},{"key_as_string":"2017-02-11T19:20:00.000Z","key":1486840800000,"doc_count":12},{"key_as_string":"2017-02-11T19:21:00.000Z","key":1486840860000,"doc_count":18},{"key_as_string":"2017-02-11T19:22:00.000Z","key":1486840920000,"doc_count":14},{"key_as_string":"2017-02-11T19:23:00.000Z","key":1486840980000,"doc_count":10},{"key_as_string":"2017-02-11T19:24:00.000Z","key":1486841040000,"doc_count":11},{"key_as_string":"2017-02-11T19:25:00.000Z","key":1486841100000,"doc_count":12},{"key_as_string":"2017-02-11T19:26:00.000Z","key":1486841160000,"doc_count":16},{"key_as_string":"2017-02-11T19:27:00.000Z","key":1486841220000,"doc_count":10},{"key_as_string":"2017-02-11T19:28:00.000Z","key":1486841280000,"doc_count":16},{"key_as_string":"2017-02-11T19:29:00.000Z","key":1486841340000,"doc_count":6},{"key_as_string":"2017-02-11T19:30:00.000Z","key":1486841400000,"doc_count":12},{"key_as_string":"2017-02-11T19:31:00.000Z","key":1486841460000,"doc_count":10},{"key_as_string":"2017-02-11T19:32:00.000Z","key":1486841520000,"doc_count":15},{"key_as_string":"2017-02-11T19:33:00.000Z","key":1486841580000,"doc_count":16},{"key_as_string":"2017-02-11T19:34:00.000Z","key":1486841640000,"doc_count":14},{"key_as_string":"2017-02-11T19:35:00.000Z","key":1486841700000,"doc_count":5},{"key_as_string":"2017-02-11T19:36:00.000Z","key":1486841760000,"doc_count":15},{"key_as_string":"2017-02-11T19:37:00.000Z","key":1486841820000,"doc_count":9},{"key_as_string":"2017-02-11T19:38:00.000Z","key":1486841880000,"doc_count":11},{"key_as_string":"2017-02-11T19:39:00.000Z","key":1486841940000,"doc_count":9},{"key_as_string":"2017-02-11T19:40:00.000Z","key":1486842000000,"doc_count":14},{"key_as_string":"2017-02-11T19:41:00.000Z","key":1486842060000,"doc_count":8},{"key_as_string":"2017-02-11T19:42:00.000Z","key":1486842120000,"doc_count":7},{"key_as_string":"2017-02-11T19:43:00.000Z","key":1486842180000,"doc_count":8},{"key_as_string":"2017-02-11T19:44:00.000Z","key":1486842240000,"doc_count":12},{"key_as_string":"2017-02-11T19:45:00.000Z","key":1486842300000,"doc_count":12},{"key_as_string":"2017-02-11T19:46:00.000Z","key":1486842360000,"doc_count":11},{"key_as_string":"2017-02-11T19:47:00.000Z","key":1486842420000,"doc_count":10},{"key_as_string":"2017-02-11T19:48:00.000Z","key":1486842480000,"doc_count":8},{"key_as_string":"2017-02-11T19:49:00.000Z","key":1486842540000,"doc_count":11},{"key_as_string":"2017-02-11T19:50:00.000Z","key":1486842600000,"doc_count":12},{"key_as_string":"2017-02-11T19:51:00.000Z","key":1486842660000,"doc_count":10},{"key_as_string":"2017-02-11T19:52:00.000Z","key":1486842720000,"doc_count":11},{"key_as_string":"2017-02-11T19:53:00.000Z","key":1486842780000,"doc_count":17},{"key_as_string":"2017-02-11T19:54:00.000Z","key":1486842840000,"doc_count":11},{"key_as_string":"2017-02-11T19:55:00.000Z","key":1486842900000,"doc_count":11},{"key_as_string":"2017-02-11T19:56:00.000Z","key":1486842960000,"doc_count":14},{"key_as_string":"2017-02-11T19:57:00.000Z","key":1486843020000,"doc_count":5},{"key_as_string":"2017-02-11T19:58:00.000Z","key":1486843080000,"doc_count":17},{"key_as_string":"2017-02-11T19:59:00.000Z","key":1486843140000,"doc_count":7},{"key_as_string":"2017-02-11T20:00:00.000Z","key":1486843200000,"doc_count":12},{"key_as_string":"2017-02-11T20:01:00.000Z","key":1486843260000,"doc_count":12},{"key_as_string":"2017-02-11T20:02:00.000Z","key":1486843320000,"doc_count":15},{"key_as_string":"2017-02-11T20:03:00.000Z","key":1486843380000,"doc_count":8},{"key_as_string":"2017-02-11T20:04:00.000Z","key":1486843440000,"doc_count":10},{"key_as_string":"2017-02-11T20:05:00.000Z","key":1486843500000,"doc_count":10},{"key_as_string":"2017-02-11T20:06:00.000Z","key":1486843560000,"doc_count":10},{"key_as_string":"2017-02-11T20:07:00.000Z","key":1486843620000,"doc_count":14},{"key_as_string":"2017-02-11T20:08:00.000Z","key":1486843680000,"doc_count":11},{"key_as_string":"2017-02-11T20:09:00.000Z","key":1486843740000,"doc_count":9},{"key_as_string":"2017-02-11T20:10:00.000Z","key":1486843800000,"doc_count":7},{"key_as_string":"2017-02-11T20:11:00.000Z","key":1486843860000,"doc_count":17},{"key_as_string":"2017-02-11T20:12:00.000Z","key":1486843920000,"doc_count":11},{"key_as_string":"2017-02-11T20:13:00.000Z","key":1486843980000,"doc_count":15},{"key_as_string":"2017-02-11T20:14:00.000Z","key":1486844040000,"doc_count":12},{"key_as_string":"2017-02-11T20:15:00.000Z","key":1486844100000,"doc_count":9},{"key_as_string":"2017-02-11T20:16:00.000Z","key":1486844160000,"doc_count":7},{"key_as_string":"2017-02-11T20:17:00.000Z","key":1486844220000,"doc_count":9},{"key_as_string":"2017-02-11T20:18:00.000Z","key":1486844280000,"doc_count":14},{"key_as_string":"2017-02-11T20:19:00.000Z","key":1486844340000,"doc_count":9},{"key_as_string":"2017-02-11T20:20:00.000Z","key":1486844400000,"doc_count":13},{"key_as_string":"2017-02-11T20:21:00.000Z","key":1486844460000,"doc_count":11},{"key_as_string":"2017-02-11T20:22:00.000Z","key":1486844520000,"doc_count":15},{"key_as_string":"2017-02-11T20:23:00.000Z","key":1486844580000,"doc_count":13},{"key_as_string":"2017-02-11T20:24:00.000Z","key":1486844640000,"doc_count":11},{"key_as_string":"2017-02-11T20:25:00.000Z","key":1486844700000,"doc_count":7},{"key_as_string":"2017-02-11T20:26:00.000Z","key":1486844760000,"doc_count":7},{"key_as_string":"2017-02-11T20:27:00.000Z","key":1486844820000,"doc_count":13},{"key_as_string":"2017-02-11T20:28:00.000Z","key":1486844880000,"doc_count":8},{"key_as_string":"2017-02-11T20:29:00.000Z","key":1486844940000,"doc_count":12},{"key_as_string":"2017-02-11T20:30:00.000Z","key":1486845000000,"doc_count":12},{"key_as_string":"2017-02-11T20:31:00.000Z","key":1486845060000,"doc_count":11},{"key_as_string":"2017-02-11T20:32:00.000Z","key":1486845120000,"doc_count":11},{"key_as_string":"2017-02-11T20:33:00.000Z","key":1486845180000,"doc_count":10},{"key_as_string":"2017-02-11T20:34:00.000Z","key":1486845240000,"doc_count":15},{"key_as_string":"2017-02-11T20:35:00.000Z","key":1486845300000,"doc_count":5},{"key_as_string":"2017-02-11T20:36:00.000Z","key":1486845360000,"doc_count":9},{"key_as_string":"2017-02-11T20:37:00.000Z","key":1486845420000,"doc_count":11},{"key_as_string":"2017-02-11T20:38:00.000Z","key":1486845480000,"doc_count":9},{"key_as_string":"2017-02-11T20:39:00.000Z","key":1486845540000,"doc_count":12},{"key_as_string":"2017-02-11T20:40:00.000Z","key":1486845600000,"doc_count":16},{"key_as_string":"2017-02-11T20:41:00.000Z","key":1486845660000,"doc_count":6},{"key_as_string":"2017-02-11T20:42:00.000Z","key":1486845720000,"doc_count":11},{"key_as_string":"2017-02-11T20:43:00.000Z","key":1486845780000,"doc_count":13},{"key_as_string":"2017-02-11T20:44:00.000Z","key":1486845840000,"doc_count":7},{"key_as_string":"2017-02-11T20:45:00.000Z","key":1486845900000,"doc_count":11},{"key_as_string":"2017-02-11T20:46:00.000Z","key":1486845960000,"doc_count":7},{"key_as_string":"2017-02-11T20:47:00.000Z","key":1486846020000,"doc_count":9},{"key_as_string":"2017-02-11T20:48:00.000Z","key":1486846080000,"doc_count":14},{"key_as_string":"2017-02-11T20:49:00.000Z","key":1486846140000,"doc_count":9},{"key_as_string":"2017-02-11T20:50:00.000Z","key":1486846200000,"doc_count":12},{"key_as_string":"2017-02-11T20:51:00.000Z","key":1486846260000,"doc_count":17},{"key_as_string":"2017-02-11T20:52:00.000Z","key":1486846320000,"doc_count":13},{"key_as_string":"2017-02-11T20:53:00.000Z","key":1486846380000,"doc_count":7},{"key_as_string":"2017-02-11T20:54:00.000Z","key":1486846440000,"doc_count":15},{"key_as_string":"2017-02-11T20:55:00.000Z","key":1486846500000,"doc_count":13},{"key_as_string":"2017-02-11T20:56:00.000Z","key":1486846560000,"doc_count":16},{"key_as_string":"2017-02-11T20:57:00.000Z","key":1486846620000,"doc_count":12},{"key_as_string":"2017-02-11T20:58:00.000Z","key":1486846680000,"doc_count":8},{"key_as_string":"2017-02-11T20:59:00.000Z","key":1486846740000,"doc_count":14},{"key_as_string":"2017-02-11T21:00:00.000Z","key":1486846800000,"doc_count":11},{"key_as_string":"2017-02-11T21:01:00.000Z","key":1486846860000,"doc_count":8},{"key_as_string":"2017-02-11T21:02:00.000Z","key":1486846920000,"doc_count":13},{"key_as_string":"2017-02-11T21:03:00.000Z","key":1486846980000,"doc_count":8},{"key_as_string":"2017-02-11T21:04:00.000Z","key":1486847040000,"doc_count":9},{"key_as_string":"2017-02-11T21:05:00.000Z","key":1486847100000,"doc_count":12},{"key_as_string":"2017-02-11T21:06:00.000Z","key":1486847160000,"doc_count":11},{"key_as_string":"2017-02-11T21:07:00.000Z","key":1486847220000,"doc_count":15},{"key_as_string":"2017-02-11T21:08:00.000Z","key":1486847280000,"doc_count":6},{"key_as_string":"2017-02-11T21:09:00.000Z","key":1486847340000,"doc_count":14},{"key_as_string":"2017-02-11T21:10:00.000Z","key":1486847400000,"doc_count":5},{"key_as_string":"2017-02-11T21:11:00.000Z","key":1486847460000,"doc_count":11},{"key_as_string":"2017-02-11T21:12:00.000Z","key":1486847520000,"doc_count":12},{"key_as_string":"2017-02-11T21:13:00.000Z","key":1486847580000,"doc_count":10},{"key_as_string":"2017-02-11T21:14:00.000Z","key":1486847640000,"doc_count":7},{"key_as_string":"2017-02-11T21:15:00.000Z","key":1486847700000,"doc_count":9},{"key_as_string":"2017-02-11T21:16:00.000Z","key":1486847760000,"doc_count":12},{"key_as_string":"2017-02-11T21:17:00.000Z","key":1486847820000,"doc_count":11},{"key_as_string":"2017-02-11T21:18:00.000Z","key":1486847880000,"doc_count":12},{"key_as_string":"2017-02-11T21:19:00.000Z","key":1486847940000,"doc_count":14},{"key_as_string":"2017-02-11T21:20:00.000Z","key":1486848000000,"doc_count":10},{"key_as_string":"2017-02-11T21:21:00.000Z","key":1486848060000,"doc_count":9},{"key_as_string":"2017-02-11T21:22:00.000Z","key":1486848120000,"doc_count":16},{"key_as_string":"2017-02-11T21:23:00.000Z","key":1486848180000,"doc_count":10},{"key_as_string":"2017-02-11T21:24:00.000Z","key":1486848240000,"doc_count":10},{"key_as_string":"2017-02-11T21:25:00.000Z","key":1486848300000,"doc_count":11},{"key_as_string":"2017-02-11T21:26:00.000Z","key":1486848360000,"doc_count":12},{"key_as_string":"2017-02-11T21:27:00.000Z","key":1486848420000,"doc_count":6},{"key_as_string":"2017-02-11T21:28:00.000Z","key":1486848480000,"doc_count":14},{"key_as_string":"2017-02-11T21:29:00.000Z","key":1486848540000,"doc_count":10},{"key_as_string":"2017-02-11T21:30:00.000Z","key":1486848600000,"doc_count":12},{"key_as_string":"2017-02-11T21:31:00.000Z","key":1486848660000,"doc_count":7},{"key_as_string":"2017-02-11T21:32:00.000Z","key":1486848720000,"doc_count":11},{"key_as_string":"2017-02-11T21:33:00.000Z","key":1486848780000,"doc_count":11},{"key_as_string":"2017-02-11T21:34:00.000Z","key":1486848840000,"doc_count":11},{"key_as_string":"2017-02-11T21:35:00.000Z","key":1486848900000,"doc_count":5},{"key_as_string":"2017-02-11T21:36:00.000Z","key":1486848960000,"doc_count":15},{"key_as_string":"2017-02-11T21:37:00.000Z","key":1486849020000,"doc_count":8},{"key_as_string":"2017-02-11T21:38:00.000Z","key":1486849080000,"doc_count":11},{"key_as_string":"2017-02-11T21:39:00.000Z","key":1486849140000,"doc_count":9},{"key_as_string":"2017-02-11T21:40:00.000Z","key":1486849200000,"doc_count":9},{"key_as_string":"2017-02-11T21:41:00.000Z","key":1486849260000,"doc_count":10},{"key_as_string":"2017-02-11T21:42:00.000Z","key":1486849320000,"doc_count":7},{"key_as_string":"2017-02-11T21:43:00.000Z","key":1486849380000,"doc_count":13},{"key_as_string":"2017-02-11T21:44:00.000Z","key":1486849440000,"doc_count":10},{"key_as_string":"2017-02-11T21:45:00.000Z","key":1486849500000,"doc_count":10},{"key_as_string":"2017-02-11T21:46:00.000Z","key":1486849560000,"doc_count":11},{"key_as_string":"2017-02-11T21:47:00.000Z","key":1486849620000,"doc_count":10},{"key_as_string":"2017-02-11T21:48:00.000Z","key":1486849680000,"doc_count":7},{"key_as_string":"2017-02-11T21:49:00.000Z","key":1486849740000,"doc_count":8},{"key_as_string":"2017-02-11T21:50:00.000Z","key":1486849800000,"doc_count":12},{"key_as_string":"2017-02-11T21:51:00.000Z","key":1486849860000,"doc_count":8},{"key_as_string":"2017-02-11T21:52:00.000Z","key":1486849920000,"doc_count":7},{"key_as_string":"2017-02-11T21:53:00.000Z","key":1486849980000,"doc_count":15},{"key_as_string":"2017-02-11T21:54:00.000Z","key":1486850040000,"doc_count":14},{"key_as_string":"2017-02-11T21:55:00.000Z","key":1486850100000,"doc_count":9},{"key_as_string":"2017-02-11T21:56:00.000Z","key":1486850160000,"doc_count":9},{"key_as_string":"2017-02-11T21:57:00.000Z","key":1486850220000,"doc_count":9},{"key_as_string":"2017-02-11T21:58:00.000Z","key":1486850280000,"doc_count":13},{"key_as_string":"2017-02-11T21:59:00.000Z","key":1486850340000,"doc_count":13},{"key_as_string":"2017-02-11T22:00:00.000Z","key":1486850400000,"doc_count":11},{"key_as_string":"2017-02-11T22:01:00.000Z","key":1486850460000,"doc_count":12},{"key_as_string":"2017-02-11T22:02:00.000Z","key":1486850520000,"doc_count":12},{"key_as_string":"2017-02-11T22:03:00.000Z","key":1486850580000,"doc_count":11},{"key_as_string":"2017-02-11T22:04:00.000Z","key":1486850640000,"doc_count":7},{"key_as_string":"2017-02-11T22:05:00.000Z","key":1486850700000,"doc_count":9},{"key_as_string":"2017-02-11T22:06:00.000Z","key":1486850760000,"doc_count":12},{"key_as_string":"2017-02-11T22:07:00.000Z","key":1486850820000,"doc_count":13},{"key_as_string":"2017-02-11T22:08:00.000Z","key":1486850880000,"doc_count":11},{"key_as_string":"2017-02-11T22:09:00.000Z","key":1486850940000,"doc_count":8},{"key_as_string":"2017-02-11T22:10:00.000Z","key":1486851000000,"doc_count":6},{"key_as_string":"2017-02-11T22:11:00.000Z","key":1486851060000,"doc_count":9},{"key_as_string":"2017-02-11T22:12:00.000Z","key":1486851120000,"doc_count":15},{"key_as_string":"2017-02-11T22:13:00.000Z","key":1486851180000,"doc_count":12},{"key_as_string":"2017-02-11T22:14:00.000Z","key":1486851240000,"doc_count":12},{"key_as_string":"2017-02-11T22:15:00.000Z","key":1486851300000,"doc_count":9},{"key_as_string":"2017-02-11T22:16:00.000Z","key":1486851360000,"doc_count":11},{"key_as_string":"2017-02-11T22:17:00.000Z","key":1486851420000,"doc_count":9},{"key_as_string":"2017-02-11T22:18:00.000Z","key":1486851480000,"doc_count":13},{"key_as_string":"2017-02-11T22:19:00.000Z","key":1486851540000,"doc_count":10},{"key_as_string":"2017-02-11T22:20:00.000Z","key":1486851600000,"doc_count":16},{"key_as_string":"2017-02-11T22:21:00.000Z","key":1486851660000,"doc_count":10},{"key_as_string":"2017-02-11T22:22:00.000Z","key":1486851720000,"doc_count":7},{"key_as_string":"2017-02-11T22:23:00.000Z","key":1486851780000,"doc_count":8},{"key_as_string":"2017-02-11T22:24:00.000Z","key":1486851840000,"doc_count":13},{"key_as_string":"2017-02-11T22:25:00.000Z","key":1486851900000,"doc_count":11},{"key_as_string":"2017-02-11T22:26:00.000Z","key":1486851960000,"doc_count":11},{"key_as_string":"2017-02-11T22:27:00.000Z","key":1486852020000,"doc_count":15},{"key_as_string":"2017-02-11T22:28:00.000Z","key":1486852080000,"doc_count":10},{"key_as_string":"2017-02-11T22:29:00.000Z","key":1486852140000,"doc_count":13},{"key_as_string":"2017-02-11T22:30:00.000Z","key":1486852200000,"doc_count":3},{"key_as_string":"2017-02-11T22:31:00.000Z","key":1486852260000,"doc_count":16},{"key_as_string":"2017-02-11T22:32:00.000Z","key":1486852320000,"doc_count":8},{"key_as_string":"2017-02-11T22:33:00.000Z","key":1486852380000,"doc_count":13},{"key_as_string":"2017-02-11T22:34:00.000Z","key":1486852440000,"doc_count":10},{"key_as_string":"2017-02-11T22:35:00.000Z","key":1486852500000,"doc_count":10},{"key_as_string":"2017-02-11T22:36:00.000Z","key":1486852560000,"doc_count":15},{"key_as_string":"2017-02-11T22:37:00.000Z","key":1486852620000,"doc_count":10},{"key_as_string":"2017-02-11T22:38:00.000Z","key":1486852680000,"doc_count":9},{"key_as_string":"2017-02-11T22:39:00.000Z","key":1486852740000,"doc_count":11},{"key_as_string":"2017-02-11T22:40:00.000Z","key":1486852800000,"doc_count":11},{"key_as_string":"2017-02-11T22:41:00.000Z","key":1486852860000,"doc_count":8},{"key_as_string":"2017-02-11T22:42:00.000Z","key":1486852920000,"doc_count":10},{"key_as_string":"2017-02-11T22:43:00.000Z","key":1486852980000,"doc_count":12},{"key_as_string":"2017-02-11T22:44:00.000Z","key":1486853040000,"doc_count":8},{"key_as_string":"2017-02-11T22:45:00.000Z","key":1486853100000,"doc_count":14},{"key_as_string":"2017-02-11T22:46:00.000Z","key":1486853160000,"doc_count":9},{"key_as_string":"2017-02-11T22:47:00.000Z","key":1486853220000,"doc_count":10},{"key_as_string":"2017-02-11T22:48:00.000Z","key":1486853280000,"doc_count":12},{"key_as_string":"2017-02-11T22:49:00.000Z","key":1486853340000,"doc_count":13},{"key_as_string":"2017-02-11T22:50:00.000Z","key":1486853400000,"doc_count":13},{"key_as_string":"2017-02-11T22:51:00.000Z","key":1486853460000,"doc_count":5},{"key_as_string":"2017-02-11T22:52:00.000Z","key":1486853520000,"doc_count":10},{"key_as_string":"2017-02-11T22:53:00.000Z","key":1486853580000,"doc_count":8},{"key_as_string":"2017-02-11T22:54:00.000Z","key":1486853640000,"doc_count":12},{"key_as_string":"2017-02-11T22:55:00.000Z","key":1486853700000,"doc_count":6},{"key_as_string":"2017-02-11T22:56:00.000Z","key":1486853760000,"doc_count":15},{"key_as_string":"2017-02-11T22:57:00.000Z","key":1486853820000,"doc_count":8},{"key_as_string":"2017-02-11T22:58:00.000Z","key":1486853880000,"doc_count":11},{"key_as_string":"2017-02-11T22:59:00.000Z","key":1486853940000,"doc_count":10},{"key_as_string":"2017-02-11T23:00:00.000Z","key":1486854000000,"doc_count":8},{"key_as_string":"2017-02-11T23:01:00.000Z","key":1486854060000,"doc_count":9},{"key_as_string":"2017-02-11T23:02:00.000Z","key":1486854120000,"doc_count":11},{"key_as_string":"2017-02-11T23:03:00.000Z","key":1486854180000,"doc_count":15},{"key_as_string":"2017-02-11T23:04:00.000Z","key":1486854240000,"doc_count":9},{"key_as_string":"2017-02-11T23:05:00.000Z","key":1486854300000,"doc_count":14},{"key_as_string":"2017-02-11T23:06:00.000Z","key":1486854360000,"doc_count":8},{"key_as_string":"2017-02-11T23:07:00.000Z","key":1486854420000,"doc_count":10},{"key_as_string":"2017-02-11T23:08:00.000Z","key":1486854480000,"doc_count":8},{"key_as_string":"2017-02-11T23:09:00.000Z","key":1486854540000,"doc_count":13},{"key_as_string":"2017-02-11T23:10:00.000Z","key":1486854600000,"doc_count":11},{"key_as_string":"2017-02-11T23:11:00.000Z","key":1486854660000,"doc_count":12},{"key_as_string":"2017-02-11T23:12:00.000Z","key":1486854720000,"doc_count":11},{"key_as_string":"2017-02-11T23:13:00.000Z","key":1486854780000,"doc_count":6},{"key_as_string":"2017-02-11T23:14:00.000Z","key":1486854840000,"doc_count":14},{"key_as_string":"2017-02-11T23:15:00.000Z","key":1486854900000,"doc_count":14},{"key_as_string":"2017-02-11T23:16:00.000Z","key":1486854960000,"doc_count":14},{"key_as_string":"2017-02-11T23:17:00.000Z","key":1486855020000,"doc_count":11},{"key_as_string":"2017-02-11T23:18:00.000Z","key":1486855080000,"doc_count":9},{"key_as_string":"2017-02-11T23:19:00.000Z","key":1486855140000,"doc_count":10},{"key_as_string":"2017-02-11T23:20:00.000Z","key":1486855200000,"doc_count":8},{"key_as_string":"2017-02-11T23:21:00.000Z","key":1486855260000,"doc_count":13},{"key_as_string":"2017-02-11T23:22:00.000Z","key":1486855320000,"doc_count":12},{"key_as_string":"2017-02-11T23:23:00.000Z","key":1486855380000,"doc_count":10},{"key_as_string":"2017-02-11T23:24:00.000Z","key":1486855440000,"doc_count":13},{"key_as_string":"2017-02-11T23:25:00.000Z","key":1486855500000,"doc_count":11},{"key_as_string":"2017-02-11T23:26:00.000Z","key":1486855560000,"doc_count":11},{"key_as_string":"2017-02-11T23:27:00.000Z","key":1486855620000,"doc_count":9},{"key_as_string":"2017-02-11T23:28:00.000Z","key":1486855680000,"doc_count":13},{"key_as_string":"2017-02-11T23:29:00.000Z","key":1486855740000,"doc_count":3},{"key_as_string":"2017-02-11T23:30:00.000Z","key":1486855800000,"doc_count":10},{"key_as_string":"2017-02-11T23:31:00.000Z","key":1486855860000,"doc_count":9},{"key_as_string":"2017-02-11T23:32:00.000Z","key":1486855920000,"doc_count":7},{"key_as_string":"2017-02-11T23:33:00.000Z","key":1486855980000,"doc_count":15},{"key_as_string":"2017-02-11T23:34:00.000Z","key":1486856040000,"doc_count":12},{"key_as_string":"2017-02-11T23:35:00.000Z","key":1486856100000,"doc_count":17},{"key_as_string":"2017-02-11T23:36:00.000Z","key":1486856160000,"doc_count":9},{"key_as_string":"2017-02-11T23:37:00.000Z","key":1486856220000,"doc_count":8},{"key_as_string":"2017-02-11T23:38:00.000Z","key":1486856280000,"doc_count":9},{"key_as_string":"2017-02-11T23:39:00.000Z","key":1486856340000,"doc_count":14},{"key_as_string":"2017-02-11T23:40:00.000Z","key":1486856400000,"doc_count":9},{"key_as_string":"2017-02-11T23:41:00.000Z","key":1486856460000,"doc_count":7},{"key_as_string":"2017-02-11T23:42:00.000Z","key":1486856520000,"doc_count":10},{"key_as_string":"2017-02-11T23:43:00.000Z","key":1486856580000,"doc_count":7},{"key_as_string":"2017-02-11T23:44:00.000Z","key":1486856640000,"doc_count":12},{"key_as_string":"2017-02-11T23:45:00.000Z","key":1486856700000,"doc_count":10},{"key_as_string":"2017-02-11T23:46:00.000Z","key":1486856760000,"doc_count":10},{"key_as_string":"2017-02-11T23:47:00.000Z","key":1486856820000,"doc_count":9},{"key_as_string":"2017-02-11T23:48:00.000Z","key":1486856880000,"doc_count":7},{"key_as_string":"2017-02-11T23:49:00.000Z","key":1486856940000,"doc_count":9},{"key_as_string":"2017-02-11T23:50:00.000Z","key":1486857000000,"doc_count":11},{"key_as_string":"2017-02-11T23:51:00.000Z","key":1486857060000,"doc_count":10},{"key_as_string":"2017-02-11T23:52:00.000Z","key":1486857120000,"doc_count":11},{"key_as_string":"2017-02-11T23:53:00.000Z","key":1486857180000,"doc_count":10},{"key_as_string":"2017-02-11T23:54:00.000Z","key":1486857240000,"doc_count":15},{"key_as_string":"2017-02-11T23:55:00.000Z","key":1486857300000,"doc_count":5},{"key_as_string":"2017-02-11T23:56:00.000Z","key":1486857360000,"doc_count":7},{"key_as_string":"2017-02-11T23:57:00.000Z","key":1486857420000,"doc_count":14},{"key_as_string":"2017-02-11T23:58:00.000Z","key":1486857480000,"doc_count":10},{"key_as_string":"2017-02-11T23:59:00.000Z","key":1486857540000,"doc_count":9}]}}} diff --git a/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_it_search_response.json b/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_it_search_response.json index b771fab4dd352..3f3f016cc7ff5 100644 --- a/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_it_search_response.json +++ b/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_it_search_response.json @@ -1 +1 @@ -{"took":3,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":325,"max_score":0,"hits":[]},"aggregations":{"non_empty_buckets":{"buckets":[{"key_as_string":"1485984480000","key":1485984480000,"doc_count":1},{"key_as_string":"1485993300000","key":1485993300000,"doc_count":1},{"key_as_string":"1486020960000","key":1486020960000,"doc_count":3},{"key_as_string":"1486022820000","key":1486022820000,"doc_count":1},{"key_as_string":"1486032720000","key":1486032720000,"doc_count":1},{"key_as_string":"1486036440000","key":1486036440000,"doc_count":1},{"key_as_string":"1486046040000","key":1486046040000,"doc_count":1},{"key_as_string":"1486059780000","key":1486059780000,"doc_count":1},{"key_as_string":"1486063560000","key":1486063560000,"doc_count":1},{"key_as_string":"1486063860000","key":1486063860000,"doc_count":1},{"key_as_string":"1486125420000","key":1486125420000,"doc_count":1},{"key_as_string":"1486129800000","key":1486129800000,"doc_count":1},{"key_as_string":"1486131000000","key":1486131000000,"doc_count":1},{"key_as_string":"1486138740000","key":1486138740000,"doc_count":4},{"key_as_string":"1486141560000","key":1486141560000,"doc_count":2},{"key_as_string":"1486147080000","key":1486147080000,"doc_count":4},{"key_as_string":"1486155720000","key":1486155720000,"doc_count":1},{"key_as_string":"1486165740000","key":1486165740000,"doc_count":3},{"key_as_string":"1486165800000","key":1486165800000,"doc_count":1},{"key_as_string":"1486165920000","key":1486165920000,"doc_count":4},{"key_as_string":"1486179960000","key":1486179960000,"doc_count":3},{"key_as_string":"1486181460000","key":1486181460000,"doc_count":1},{"key_as_string":"1486204860000","key":1486204860000,"doc_count":1},{"key_as_string":"1486225440000","key":1486225440000,"doc_count":1},{"key_as_string":"1486225680000","key":1486225680000,"doc_count":1},{"key_as_string":"1486250220000","key":1486250220000,"doc_count":1},{"key_as_string":"1486286340000","key":1486286340000,"doc_count":3},{"key_as_string":"1486288620000","key":1486288620000,"doc_count":1},{"key_as_string":"1486313760000","key":1486313760000,"doc_count":1},{"key_as_string":"1486316160000","key":1486316160000,"doc_count":1},{"key_as_string":"1486322520000","key":1486322520000,"doc_count":1},{"key_as_string":"1486377960000","key":1486377960000,"doc_count":1},{"key_as_string":"1486398720000","key":1486398720000,"doc_count":1},{"key_as_string":"1486551360000","key":1486551360000,"doc_count":1},{"key_as_string":"1486554120000","key":1486554120000,"doc_count":1},{"key_as_string":"1486564680000","key":1486564680000,"doc_count":1},{"key_as_string":"1486566900000","key":1486566900000,"doc_count":5},{"key_as_string":"1486566960000","key":1486566960000,"doc_count":8},{"key_as_string":"1486567020000","key":1486567020000,"doc_count":12},{"key_as_string":"1486567080000","key":1486567080000,"doc_count":16},{"key_as_string":"1486567140000","key":1486567140000,"doc_count":12},{"key_as_string":"1486567200000","key":1486567200000,"doc_count":16},{"key_as_string":"1486567260000","key":1486567260000,"doc_count":16},{"key_as_string":"1486567320000","key":1486567320000,"doc_count":12},{"key_as_string":"1486567380000","key":1486567380000,"doc_count":16},{"key_as_string":"1486567440000","key":1486567440000,"doc_count":16},{"key_as_string":"1486567500000","key":1486567500000,"doc_count":12},{"key_as_string":"1486567560000","key":1486567560000,"doc_count":16},{"key_as_string":"1486567620000","key":1486567620000,"doc_count":16},{"key_as_string":"1486567680000","key":1486567680000,"doc_count":12},{"key_as_string":"1486567740000","key":1486567740000,"doc_count":16},{"key_as_string":"1486567800000","key":1486567800000,"doc_count":16},{"key_as_string":"1486567860000","key":1486567860000,"doc_count":8},{"key_as_string":"1486567920000","key":1486567920000,"doc_count":3},{"key_as_string":"1486567980000","key":1486567980000,"doc_count":1},{"key_as_string":"1486589280000","key":1486589280000,"doc_count":1},{"key_as_string":"1486598100000","key":1486598100000,"doc_count":1},{"key_as_string":"1486625760000","key":1486625760000,"doc_count":3},{"key_as_string":"1486627620000","key":1486627620000,"doc_count":1},{"key_as_string":"1486637520000","key":1486637520000,"doc_count":1},{"key_as_string":"1486641240000","key":1486641240000,"doc_count":1},{"key_as_string":"1486650840000","key":1486650840000,"doc_count":1},{"key_as_string":"1486664580000","key":1486664580000,"doc_count":1},{"key_as_string":"1486668360000","key":1486668360000,"doc_count":1},{"key_as_string":"1486668660000","key":1486668660000,"doc_count":1},{"key_as_string":"1486730220000","key":1486730220000,"doc_count":1},{"key_as_string":"1486734600000","key":1486734600000,"doc_count":1},{"key_as_string":"1486735800000","key":1486735800000,"doc_count":1},{"key_as_string":"1486743540000","key":1486743540000,"doc_count":4},{"key_as_string":"1486746360000","key":1486746360000,"doc_count":2},{"key_as_string":"1486751880000","key":1486751880000,"doc_count":4},{"key_as_string":"1486760520000","key":1486760520000,"doc_count":1},{"key_as_string":"1486770540000","key":1486770540000,"doc_count":3},{"key_as_string":"1486770600000","key":1486770600000,"doc_count":1},{"key_as_string":"1486770720000","key":1486770720000,"doc_count":4},{"key_as_string":"1486784760000","key":1486784760000,"doc_count":3},{"key_as_string":"1486786260000","key":1486786260000,"doc_count":1},{"key_as_string":"1486809660000","key":1486809660000,"doc_count":1},{"key_as_string":"1486830240000","key":1486830240000,"doc_count":1},{"key_as_string":"1486830480000","key":1486830480000,"doc_count":1},{"key_as_string":"1486855020000","key":1486855020000,"doc_count":1}]}}} +{"took":3,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total": { "value": 325, "relation": "eq" },"max_score":0,"hits":[]},"aggregations":{"non_empty_buckets":{"buckets":[{"key_as_string":"1485984480000","key":1485984480000,"doc_count":1},{"key_as_string":"1485993300000","key":1485993300000,"doc_count":1},{"key_as_string":"1486020960000","key":1486020960000,"doc_count":3},{"key_as_string":"1486022820000","key":1486022820000,"doc_count":1},{"key_as_string":"1486032720000","key":1486032720000,"doc_count":1},{"key_as_string":"1486036440000","key":1486036440000,"doc_count":1},{"key_as_string":"1486046040000","key":1486046040000,"doc_count":1},{"key_as_string":"1486059780000","key":1486059780000,"doc_count":1},{"key_as_string":"1486063560000","key":1486063560000,"doc_count":1},{"key_as_string":"1486063860000","key":1486063860000,"doc_count":1},{"key_as_string":"1486125420000","key":1486125420000,"doc_count":1},{"key_as_string":"1486129800000","key":1486129800000,"doc_count":1},{"key_as_string":"1486131000000","key":1486131000000,"doc_count":1},{"key_as_string":"1486138740000","key":1486138740000,"doc_count":4},{"key_as_string":"1486141560000","key":1486141560000,"doc_count":2},{"key_as_string":"1486147080000","key":1486147080000,"doc_count":4},{"key_as_string":"1486155720000","key":1486155720000,"doc_count":1},{"key_as_string":"1486165740000","key":1486165740000,"doc_count":3},{"key_as_string":"1486165800000","key":1486165800000,"doc_count":1},{"key_as_string":"1486165920000","key":1486165920000,"doc_count":4},{"key_as_string":"1486179960000","key":1486179960000,"doc_count":3},{"key_as_string":"1486181460000","key":1486181460000,"doc_count":1},{"key_as_string":"1486204860000","key":1486204860000,"doc_count":1},{"key_as_string":"1486225440000","key":1486225440000,"doc_count":1},{"key_as_string":"1486225680000","key":1486225680000,"doc_count":1},{"key_as_string":"1486250220000","key":1486250220000,"doc_count":1},{"key_as_string":"1486286340000","key":1486286340000,"doc_count":3},{"key_as_string":"1486288620000","key":1486288620000,"doc_count":1},{"key_as_string":"1486313760000","key":1486313760000,"doc_count":1},{"key_as_string":"1486316160000","key":1486316160000,"doc_count":1},{"key_as_string":"1486322520000","key":1486322520000,"doc_count":1},{"key_as_string":"1486377960000","key":1486377960000,"doc_count":1},{"key_as_string":"1486398720000","key":1486398720000,"doc_count":1},{"key_as_string":"1486551360000","key":1486551360000,"doc_count":1},{"key_as_string":"1486554120000","key":1486554120000,"doc_count":1},{"key_as_string":"1486564680000","key":1486564680000,"doc_count":1},{"key_as_string":"1486566900000","key":1486566900000,"doc_count":5},{"key_as_string":"1486566960000","key":1486566960000,"doc_count":8},{"key_as_string":"1486567020000","key":1486567020000,"doc_count":12},{"key_as_string":"1486567080000","key":1486567080000,"doc_count":16},{"key_as_string":"1486567140000","key":1486567140000,"doc_count":12},{"key_as_string":"1486567200000","key":1486567200000,"doc_count":16},{"key_as_string":"1486567260000","key":1486567260000,"doc_count":16},{"key_as_string":"1486567320000","key":1486567320000,"doc_count":12},{"key_as_string":"1486567380000","key":1486567380000,"doc_count":16},{"key_as_string":"1486567440000","key":1486567440000,"doc_count":16},{"key_as_string":"1486567500000","key":1486567500000,"doc_count":12},{"key_as_string":"1486567560000","key":1486567560000,"doc_count":16},{"key_as_string":"1486567620000","key":1486567620000,"doc_count":16},{"key_as_string":"1486567680000","key":1486567680000,"doc_count":12},{"key_as_string":"1486567740000","key":1486567740000,"doc_count":16},{"key_as_string":"1486567800000","key":1486567800000,"doc_count":16},{"key_as_string":"1486567860000","key":1486567860000,"doc_count":8},{"key_as_string":"1486567920000","key":1486567920000,"doc_count":3},{"key_as_string":"1486567980000","key":1486567980000,"doc_count":1},{"key_as_string":"1486589280000","key":1486589280000,"doc_count":1},{"key_as_string":"1486598100000","key":1486598100000,"doc_count":1},{"key_as_string":"1486625760000","key":1486625760000,"doc_count":3},{"key_as_string":"1486627620000","key":1486627620000,"doc_count":1},{"key_as_string":"1486637520000","key":1486637520000,"doc_count":1},{"key_as_string":"1486641240000","key":1486641240000,"doc_count":1},{"key_as_string":"1486650840000","key":1486650840000,"doc_count":1},{"key_as_string":"1486664580000","key":1486664580000,"doc_count":1},{"key_as_string":"1486668360000","key":1486668360000,"doc_count":1},{"key_as_string":"1486668660000","key":1486668660000,"doc_count":1},{"key_as_string":"1486730220000","key":1486730220000,"doc_count":1},{"key_as_string":"1486734600000","key":1486734600000,"doc_count":1},{"key_as_string":"1486735800000","key":1486735800000,"doc_count":1},{"key_as_string":"1486743540000","key":1486743540000,"doc_count":4},{"key_as_string":"1486746360000","key":1486746360000,"doc_count":2},{"key_as_string":"1486751880000","key":1486751880000,"doc_count":4},{"key_as_string":"1486760520000","key":1486760520000,"doc_count":1},{"key_as_string":"1486770540000","key":1486770540000,"doc_count":3},{"key_as_string":"1486770600000","key":1486770600000,"doc_count":1},{"key_as_string":"1486770720000","key":1486770720000,"doc_count":4},{"key_as_string":"1486784760000","key":1486784760000,"doc_count":3},{"key_as_string":"1486786260000","key":1486786260000,"doc_count":1},{"key_as_string":"1486809660000","key":1486809660000,"doc_count":1},{"key_as_string":"1486830240000","key":1486830240000,"doc_count":1},{"key_as_string":"1486830480000","key":1486830480000,"doc_count":1},{"key_as_string":"1486855020000","key":1486855020000,"doc_count":1}]}}} diff --git a/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_time_range.json b/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_time_range.json index 6eb1808ea7d0c..1a22fc869f354 100644 --- a/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_time_range.json +++ b/x-pack/plugins/ml/server/models/job_validation/__mocks__/mock_time_range.json @@ -1 +1 @@ -{"took":0,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":32017,"max_score":0,"hits":[]},"aggregations":{"earliest":{"value":-252464400000,"value_as_string":"1961-12-31T23:00:00.000Z"},"latest":{"value":1419894000000,"value_as_string":"2014-12-29T23:00:00.000Z"}}} +{"took":0,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":{"value":32017,"relation":"eq"},"max_score":0,"hits":[]},"aggregations":{"earliest":{"value":-252464400000,"value_as_string":"1961-12-31T23:00:00.000Z"},"latest":{"value":1419894000000,"value_as_string":"2014-12-29T23:00:00.000Z"}}} diff --git a/x-pack/plugins/ml/server/models/job_validation/job_validation.test.ts b/x-pack/plugins/ml/server/models/job_validation/job_validation.test.ts index 810d0ae9dcd87..691b039c0ad37 100644 --- a/x-pack/plugins/ml/server/models/job_validation/job_validation.test.ts +++ b/x-pack/plugins/ml/server/models/job_validation/job_validation.test.ts @@ -22,7 +22,7 @@ const callAs = { }, }), }, - search: () => Promise.resolve({ body: {} }), + search: () => Promise.resolve({ body: { hits: { total: { value: 0, relation: 'eq' } } } }), }; const mlClusterClient = ({ diff --git a/x-pack/plugins/ml/server/models/results_service/results_service.ts b/x-pack/plugins/ml/server/models/results_service/results_service.ts index 4c6f9eb405802..abb42a5a18689 100644 --- a/x-pack/plugins/ml/server/models/results_service/results_service.ts +++ b/x-pack/plugins/ml/server/models/results_service/results_service.ts @@ -142,9 +142,8 @@ export function resultsServiceProvider(client: IScopedClusterClient) { }); } - const { body } = await asInternalUser.search>({ + const { body } = await asInternalUser.search({ index: ML_RESULTS_INDEX_PATTERN, - rest_total_hits_as_int: true, size: maxRecords, body: { query: { @@ -176,9 +175,9 @@ export function resultsServiceProvider(client: IScopedClusterClient) { anomalies: [], interval: 'second', }; - if (body.hits.total !== 0) { + if (body.hits.total.value > 0) { let records: AnomalyRecordDoc[] = []; - body.hits.hits.forEach((hit) => { + body.hits.hits.forEach((hit: any) => { records.push(hit._source); }); @@ -380,7 +379,6 @@ export function resultsServiceProvider(client: IScopedClusterClient) { async function getCategoryExamples(jobId: string, categoryIds: any, maxExamples: number) { const { body } = await asInternalUser.search({ index: ML_RESULTS_INDEX_PATTERN, - rest_total_hits_as_int: true, size: ANOMALIES_TABLE_DEFAULT_QUERY_SIZE, // Matches size of records in anomaly summary table. body: { query: { @@ -392,7 +390,7 @@ export function resultsServiceProvider(client: IScopedClusterClient) { }); const examplesByCategoryId: { [key: string]: any } = {}; - if (body.hits.total !== 0) { + if (body.hits.total.value > 0) { body.hits.hits.forEach((hit: any) => { if (maxExamples) { examplesByCategoryId[hit._source.category_id] = slice( @@ -415,7 +413,6 @@ export function resultsServiceProvider(client: IScopedClusterClient) { async function getCategoryDefinition(jobId: string, categoryId: string) { const { body } = await asInternalUser.search({ index: ML_RESULTS_INDEX_PATTERN, - rest_total_hits_as_int: true, size: 1, body: { query: { @@ -427,7 +424,7 @@ export function resultsServiceProvider(client: IScopedClusterClient) { }); const definition = { categoryId, terms: null, regex: null, examples: [] }; - if (body.hits.total !== 0) { + if (body.hits.total.value > 0) { const source = body.hits.hits[0]._source; definition.categoryId = source.category_id; definition.regex = source.regex; diff --git a/x-pack/plugins/transform/server/routes/api/transforms_audit_messages.ts b/x-pack/plugins/transform/server/routes/api/transforms_audit_messages.ts index 20cb6ffb4978b..8c95ab5c786ed 100644 --- a/x-pack/plugins/transform/server/routes/api/transforms_audit_messages.ts +++ b/x-pack/plugins/transform/server/routes/api/transforms_audit_messages.ts @@ -80,7 +80,6 @@ export function registerTransformsAuditMessagesRoutes({ router, license }: Route const resp = await ctx.transform!.dataClient.callAsCurrentUser('search', { index: ML_DF_NOTIFICATION_INDEX_PATTERN, ignore_unavailable: true, - rest_total_hits_as_int: true, size: SIZE, body: { sort: [{ timestamp: { order: 'desc' } }, { transform_id: { order: 'asc' } }], @@ -89,7 +88,7 @@ export function registerTransformsAuditMessagesRoutes({ router, license }: Route }); let messages: TransformMessage[] = []; - if (resp.hits.total !== 0) { + if (resp.hits.total.value > 0) { messages = resp.hits.hits.map((hit: AuditMessage) => hit._source); messages.reverse(); } From a31dd64778f43ebe42e769e847e19c1d31a2785a Mon Sep 17 00:00:00 2001 From: Shahzad Date: Wed, 30 Sep 2020 10:24:38 +0200 Subject: [PATCH 002/142] [UX] Add percentile selector (#78562) --- x-pack/plugins/apm/common/ui_filter.ts | 98 +++++++++++++++++++ .../cypress/integration/csm_dashboard.feature | 4 + .../step_definitions/csm/percentile_select.ts | 29 ++++++ .../step_definitions/csm/url_search_filter.ts | 2 +- .../support/step_definitions/csm/utils.ts | 14 +++ .../app/RumDashboard/ClientMetrics/index.tsx | 16 +-- .../PageLoadDistribution/index.tsx | 4 +- .../app/RumDashboard/PageViewsTrend/index.tsx | 4 +- .../components/app/RumDashboard/RumHome.tsx | 6 +- .../URLFilter/URLSearch/SelectableUrlList.tsx | 7 +- .../URLFilter/URLSearch/index.tsx | 22 +++-- .../app/RumDashboard/URLFilter/index.tsx | 38 ++++--- .../RumDashboard/UXMetrics/KeyUXMetrics.tsx | 15 +-- .../app/RumDashboard/UXMetrics/index.tsx | 18 +--- .../app/RumDashboard/UserPercentile/index.tsx | 97 ++++++++++++++++++ .../RumDashboard/VisitorBreakdown/index.tsx | 4 +- .../VisitorBreakdownMap/EmbeddedMap.tsx | 4 +- .../VisitorBreakdownMap/useMapFilters.ts | 42 +++++--- .../app/RumDashboard/hooks/useUxQuery.ts | 32 ++++++ .../components/app/RumDashboard/index.tsx | 4 +- .../app/RumDashboard/translations.ts | 18 ++++ .../components/shared/Links/url_helpers.ts | 4 +- .../shared/LocalUIFilters/index.tsx | 3 +- .../public/context/UrlParamsContext/index.tsx | 3 +- .../UrlParamsContext/resolveUrlParams.ts | 2 + .../public/context/UrlParamsContext/types.ts | 4 +- .../apm/public/hooks/useLocalUIFilters.ts | 2 +- .../lib/rum_client/get_client_metrics.ts | 12 ++- .../lib/rum_client/get_page_view_trends.ts | 2 + .../server/lib/rum_client/get_url_search.ts | 18 +++- .../lib/rum_client/get_web_core_vitals.ts | 26 +++-- .../lib/ui_filters/local_ui_filters/config.ts | 92 +---------------- .../get_local_filter_query.ts | 3 +- .../lib/ui_filters/local_ui_filters/index.ts | 3 +- .../plugins/apm/server/routes/rum_client.ts | 70 +++++++------ .../plugins/apm/server/routes/ui_filters.ts | 6 +- x-pack/plugins/apm/typings/ui_filters.ts | 3 +- .../typings/fetch_overview_data/index.ts | 2 +- .../plugins/observability/typings/common.ts | 3 +- .../trial/tests/csm/url_search.ts | 6 +- .../trial/tests/csm/web_core_vitals.ts | 4 +- 41 files changed, 504 insertions(+), 242 deletions(-) create mode 100644 x-pack/plugins/apm/common/ui_filter.ts create mode 100644 x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/percentile_select.ts create mode 100644 x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/utils.ts create mode 100644 x-pack/plugins/apm/public/components/app/RumDashboard/UserPercentile/index.tsx create mode 100644 x-pack/plugins/apm/public/components/app/RumDashboard/hooks/useUxQuery.ts diff --git a/x-pack/plugins/apm/common/ui_filter.ts b/x-pack/plugins/apm/common/ui_filter.ts new file mode 100644 index 0000000000000..22463cbdb86d1 --- /dev/null +++ b/x-pack/plugins/apm/common/ui_filter.ts @@ -0,0 +1,98 @@ +/* + * 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 { + AGENT_NAME, + CLIENT_GEO_COUNTRY_ISO_CODE, + CONTAINER_ID, + HOST_NAME, + POD_NAME, + SERVICE_NAME, + SERVICE_VERSION, + TRANSACTION_RESULT, + TRANSACTION_URL, + USER_AGENT_DEVICE, + USER_AGENT_NAME, + USER_AGENT_OS, +} from './elasticsearch_fieldnames'; + +export const filtersByName = { + host: { + title: i18n.translate('xpack.apm.localFilters.titles.host', { + defaultMessage: 'Host', + }), + fieldName: HOST_NAME, + }, + agentName: { + title: i18n.translate('xpack.apm.localFilters.titles.agentName', { + defaultMessage: 'Agent name', + }), + fieldName: AGENT_NAME, + }, + containerId: { + title: i18n.translate('xpack.apm.localFilters.titles.containerId', { + defaultMessage: 'Container ID', + }), + fieldName: CONTAINER_ID, + }, + podName: { + title: i18n.translate('xpack.apm.localFilters.titles.podName', { + defaultMessage: 'Kubernetes pod', + }), + fieldName: POD_NAME, + }, + transactionResult: { + title: i18n.translate('xpack.apm.localFilters.titles.transactionResult', { + defaultMessage: 'Transaction result', + }), + fieldName: TRANSACTION_RESULT, + }, + serviceVersion: { + title: i18n.translate('xpack.apm.localFilters.titles.serviceVersion', { + defaultMessage: 'Service version', + }), + fieldName: SERVICE_VERSION, + }, + transactionUrl: { + title: i18n.translate('xpack.apm.localFilters.titles.transactionUrl', { + defaultMessage: 'Url', + }), + fieldName: TRANSACTION_URL, + }, + browser: { + title: i18n.translate('xpack.apm.localFilters.titles.browser', { + defaultMessage: 'Browser', + }), + fieldName: USER_AGENT_NAME, + }, + device: { + title: i18n.translate('xpack.apm.localFilters.titles.device', { + defaultMessage: 'Device', + }), + fieldName: USER_AGENT_DEVICE, + }, + location: { + title: i18n.translate('xpack.apm.localFilters.titles.location', { + defaultMessage: 'Location', + }), + fieldName: CLIENT_GEO_COUNTRY_ISO_CODE, + }, + os: { + title: i18n.translate('xpack.apm.localFilters.titles.os', { + defaultMessage: 'OS', + }), + fieldName: USER_AGENT_OS, + }, + serviceName: { + title: i18n.translate('xpack.apm.localFilters.titles.serviceName', { + defaultMessage: 'Service name', + }), + fieldName: SERVICE_NAME, + }, +}; + +export type LocalUIFilterName = keyof typeof filtersByName; diff --git a/x-pack/plugins/apm/e2e/cypress/integration/csm_dashboard.feature b/x-pack/plugins/apm/e2e/cypress/integration/csm_dashboard.feature index 7b894b6ca7aac..5dc1d5da0b75c 100644 --- a/x-pack/plugins/apm/e2e/cypress/integration/csm_dashboard.feature +++ b/x-pack/plugins/apm/e2e/cypress/integration/csm_dashboard.feature @@ -9,6 +9,10 @@ Feature: CSM Dashboard When a user browses the APM UI application for RUM Data Then should have correct client metrics + Scenario: Percentile select + When the user changes the selected percentile + Then it displays client metric related to that percentile + Scenario Outline: CSM page filters When the user filters by "" Then it filters the client metrics "" diff --git a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/percentile_select.ts b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/percentile_select.ts new file mode 100644 index 0000000000000..4d2ba4d01ae6c --- /dev/null +++ b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/percentile_select.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. + */ + +import { When, Then } from 'cypress-cucumber-preprocessor/steps'; +import { verifyClientMetrics } from './client_metrics_helper'; +import { getDataTestSubj } from './utils'; + +When('the user changes the selected percentile', () => { + // wait for all loading to finish + cy.get('kbnLoadingIndicator').should('not.be.visible'); + + getDataTestSubj('uxPercentileSelect').click(); + + getDataTestSubj('p95Percentile').click(); +}); + +Then(`it displays client metric related to that percentile`, () => { + const metrics = ['14 ms', '0.13 s', '55 ']; + + verifyClientMetrics(metrics, false); + + // reset to median + getDataTestSubj('uxPercentileSelect').click(); + + getDataTestSubj('p50Percentile').click(); +}); diff --git a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/url_search_filter.ts b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/url_search_filter.ts index 3b5dd70065055..b8bfeffb2293c 100644 --- a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/url_search_filter.ts +++ b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/url_search_filter.ts @@ -24,7 +24,7 @@ Then(`it displays top pages in the suggestion popover`, () => { listOfUrls.should('have.length', 5); const actualUrlsText = [ - 'http://opbeans-node:3000/dashboardPage views: 17Page load duration: 109 ms ', + 'http://opbeans-node:3000/dashboardPage views: 17Page load duration: 109 ms', 'http://opbeans-node:3000/ordersPage views: 14Page load duration: 72 ms', ]; diff --git a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/utils.ts b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/utils.ts new file mode 100644 index 0000000000000..87b3a1d70d073 --- /dev/null +++ b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/utils.ts @@ -0,0 +1,14 @@ +/* + * 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 { DEFAULT_TIMEOUT } from './csm_dashboard'; + +export function getDataTestSubj(dataTestSubj: string) { + // wait for all loading to finish + cy.get('kbnLoadingIndicator').should('not.be.visible'); + + return cy.get(`[data-test-subj=${dataTestSubj}]`, DEFAULT_TIMEOUT); +} diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/ClientMetrics/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/ClientMetrics/index.tsx index bc1e0a86f17db..03f2f31f35817 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/ClientMetrics/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/ClientMetrics/index.tsx @@ -9,8 +9,8 @@ import styled from 'styled-components'; import { useContext, useEffect } from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiStat, EuiToolTip } from '@elastic/eui'; import { useFetcher } from '../../../../hooks/useFetcher'; -import { useUrlParams } from '../../../../hooks/useUrlParams'; import { I18LABELS } from '../translations'; +import { useUxQuery } from '../hooks/useUxQuery'; import { CsmSharedContext } from '../CsmSharedContext'; const ClFlexGroup = styled(EuiFlexGroup)` @@ -22,29 +22,23 @@ const ClFlexGroup = styled(EuiFlexGroup)` `; export function ClientMetrics() { - const { urlParams, uiFilters } = useUrlParams(); - - const { start, end, searchTerm } = urlParams; + const uxQuery = useUxQuery(); const { data, status } = useFetcher( (callApmApi) => { - const { serviceName } = uiFilters; - if (start && end && serviceName) { + if (uxQuery) { return callApmApi({ pathname: '/api/apm/rum/client-metrics', params: { query: { - start, - end, - uiFilters: JSON.stringify(uiFilters), - urlQuery: searchTerm, + ...uxQuery, }, }, }); } return Promise.resolve(null); }, - [start, end, uiFilters, searchTerm] + [uxQuery] ); const { setSharedData } = useContext(CsmSharedContext); diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/index.tsx index c8e45d2b2f672..88d14a0213a96 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/index.tsx @@ -33,7 +33,9 @@ export function PageLoadDistribution() { const { data, status } = useFetcher( (callApmApi) => { - if (start && end) { + const { serviceName } = uiFilters; + + if (start && end && serviceName) { return callApmApi({ pathname: '/api/apm/rum-client/page-load-distribution', params: { diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/PageViewsTrend/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/PageViewsTrend/index.tsx index f2da0955412e7..621098b6028cb 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/PageViewsTrend/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/PageViewsTrend/index.tsx @@ -22,7 +22,9 @@ export function PageViewsTrend() { const { data, status } = useFetcher( (callApmApi) => { - if (start && end) { + const { serviceName } = uiFilters; + + if (start && end && serviceName) { return callApmApi({ pathname: '/api/apm/rum-client/page-view-trends', params: { diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/RumHome.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/RumHome.tsx index 28bb5307b6e8c..71a992ae4df82 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/RumHome.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/RumHome.tsx @@ -9,6 +9,7 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; import { RumOverview } from '../RumDashboard'; import { RumHeader } from './RumHeader'; +import { UserPercentile } from './UserPercentile'; import { CsmSharedContextProvider } from './CsmSharedContext'; export const UX_LABEL = i18n.translate('xpack.apm.ux.title', { @@ -21,11 +22,14 @@ export function RumHome() { - +

{UX_LABEL}

+ + +
diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/URLSearch/SelectableUrlList.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/URLSearch/SelectableUrlList.tsx index 298ec15b8480b..ebca1df17038c 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/URLSearch/SelectableUrlList.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/URLSearch/SelectableUrlList.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import React, { FormEvent, useRef, useState } from 'react'; +import React, { FormEvent, SetStateAction, useRef, useState } from 'react'; import { EuiButtonEmpty, EuiFlexGroup, @@ -33,6 +33,8 @@ interface Props { onChange: (updatedOptions: UrlOption[]) => void; searchValue: string; onClose: () => void; + popoverIsOpen: boolean; + setPopoverIsOpen: React.Dispatch>; } export function SelectableUrlList({ @@ -43,8 +45,9 @@ export function SelectableUrlList({ onChange, searchValue, onClose, + popoverIsOpen, + setPopoverIsOpen, }: Props) { - const [popoverIsOpen, setPopoverIsOpen] = useState(false); const [popoverRef, setPopoverRef] = useState(null); const [searchRef, setSearchRef] = useState(null); diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/URLSearch/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/URLSearch/index.tsx index b88cf29740dcd..5ad666cd466bc 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/URLSearch/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/URLSearch/index.tsx @@ -15,6 +15,7 @@ import { fromQuery, toQuery } from '../../../../shared/Links/url_helpers'; import { formatToSec } from '../../UXMetrics/KeyUXMetrics'; import { SelectableUrlList } from './SelectableUrlList'; import { UrlOption } from './RenderOption'; +import { useUxQuery } from '../../hooks/useUxQuery'; interface Props { onChange: (value: string[]) => void; @@ -23,9 +24,10 @@ interface Props { export function URLSearch({ onChange: onFilterChange }: Props) { const history = useHistory(); - const { urlParams, uiFilters } = useUrlParams(); + const { uiFilters } = useUrlParams(); + + const [popoverIsOpen, setPopoverIsOpen] = useState(false); - const { start, end, serviceName } = urlParams; const [searchValue, setSearchValue] = useState(''); const [debouncedValue, setDebouncedValue] = useState(''); @@ -54,17 +56,18 @@ export function URLSearch({ onChange: onFilterChange }: Props) { const [checkedUrls, setCheckedUrls] = useState([]); + const uxQuery = useUxQuery(); + const { data, status } = useFetcher( (callApmApi) => { - if (start && end && serviceName) { + if (uxQuery && popoverIsOpen) { const { transactionUrl, ...restFilters } = uiFilters; return callApmApi({ pathname: '/api/apm/rum-client/url-search', params: { query: { - start, - end, + ...uxQuery, uiFilters: JSON.stringify(restFilters), urlQuery: searchValue, }, @@ -73,7 +76,8 @@ export function URLSearch({ onChange: onFilterChange }: Props) { } return Promise.resolve(null); }, - [start, end, serviceName, uiFilters, searchValue] + // eslint-disable-next-line react-hooks/exhaustive-deps + [uxQuery, searchValue, popoverIsOpen] ); useEffect(() => { @@ -110,7 +114,9 @@ export function URLSearch({ onChange: onFilterChange }: Props) { }; const onClose = () => { - onFilterChange(checkedUrls); + if (uiFilters.transactionUrl || checkedUrls.length > 0) { + onFilterChange(checkedUrls); + } }; return ( @@ -126,6 +132,8 @@ export function URLSearch({ onChange: onFilterChange }: Props) { onChange={onChange} onClose={onClose} searchValue={searchValue} + popoverIsOpen={popoverIsOpen} + setPopoverIsOpen={setPopoverIsOpen} /> ); diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/index.tsx index 9d3c8d012871f..6456329bdb456 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/index.tsx @@ -5,16 +5,16 @@ */ import { i18n } from '@kbn/i18n'; -import React, { useCallback, useMemo } from 'react'; +import React, { useCallback } from 'react'; import { EuiSpacer, EuiBadge } from '@elastic/eui'; import { useHistory } from 'react-router-dom'; -import { Projection } from '../../../../../common/projections'; -import { useLocalUIFilters } from '../../../../hooks/useLocalUIFilters'; +import { omit } from 'lodash'; import { URLSearch } from './URLSearch'; -import { LocalUIFilters } from '../../../shared/LocalUIFilters'; import { UrlList } from './UrlList'; import { useUrlParams } from '../../../../hooks/useUrlParams'; import { fromQuery, toQuery } from '../../../shared/Links/url_helpers'; +import { removeUndefinedProps } from '../../../../context/UrlParamsContext/helpers'; +import { LocalUIFilterName } from '../../../../../common/ui_filter'; const removeSearchTermLabel = i18n.translate( 'xpack.apm.uiFilter.url.removeSearchTerm', @@ -28,18 +28,19 @@ export function URLFilter() { urlParams: { searchTerm }, } = useUrlParams(); - const localUIFiltersConfig = useMemo(() => { - const config: React.ComponentProps = { - filterNames: ['transactionUrl'], - projection: Projection.rumOverview, - }; + const setFilterValue = (name: LocalUIFilterName, value: string[]) => { + const search = omit(toQuery(history.location.search), name); - return config; - }, []); - - const { filters, setFilterValue } = useLocalUIFilters({ - ...localUIFiltersConfig, - }); + history.push({ + ...history.location, + search: fromQuery( + removeUndefinedProps({ + ...search, + [name]: value.length ? value.join(',') : undefined, + }) + ), + }); + }; const updateSearchTerm = useCallback( (searchTermN?: string) => { @@ -55,7 +56,12 @@ export function URLFilter() { [history] ); - const { name, value: filterValue } = filters[0]; + const name = 'transactionUrl'; + + const { uiFilters } = useUrlParams(); + const { transactionUrl } = uiFilters; + + const filterValue = transactionUrl ?? []; return ( diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/KeyUXMetrics.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/KeyUXMetrics.tsx index 1d8360872afba..37836a2c47d64 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/KeyUXMetrics.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/KeyUXMetrics.tsx @@ -14,8 +14,8 @@ import { SUM_LONG_TASKS, TBT_LABEL, } from '../CoreVitals/translations'; -import { useUrlParams } from '../../../../hooks/useUrlParams'; import { useFetcher } from '../../../../hooks/useFetcher'; +import { useUxQuery } from '../hooks/useUxQuery'; export function formatToSec( value?: number | string, @@ -36,28 +36,23 @@ interface Props { } export function KeyUXMetrics({ data, loading }: Props) { - const { urlParams, uiFilters } = useUrlParams(); - - const { start, end, serviceName, searchTerm } = urlParams; + const uxQuery = useUxQuery(); const { data: longTaskData, status } = useFetcher( (callApmApi) => { - if (start && end && serviceName) { + if (uxQuery) { return callApmApi({ pathname: '/api/apm/rum-client/long-task-metrics', params: { query: { - start, - end, - uiFilters: JSON.stringify(uiFilters), - urlQuery: searchTerm, + ...uxQuery, }, }, }); } return Promise.resolve(null); }, - [start, end, serviceName, uiFilters, searchTerm] + [uxQuery] ); // Note: FCP value is in ms unit diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/index.tsx index 1a95ac50587af..910c37c6ccbaa 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/index.tsx @@ -21,8 +21,8 @@ import { FormattedMessage } from '@kbn/i18n/react'; import { I18LABELS } from '../translations'; import { CoreVitals } from '../CoreVitals'; import { KeyUXMetrics } from './KeyUXMetrics'; -import { useUrlParams } from '../../../../hooks/useUrlParams'; import { useFetcher } from '../../../../hooks/useFetcher'; +import { useUxQuery } from '../hooks/useUxQuery'; export interface UXMetrics { cls: string; @@ -36,29 +36,21 @@ export interface UXMetrics { } export function UXMetrics() { - const { urlParams, uiFilters } = useUrlParams(); - - const { start, end, searchTerm } = urlParams; + const uxQuery = useUxQuery(); const { data, status } = useFetcher( (callApmApi) => { - const { serviceName } = uiFilters; - if (start && end && serviceName) { + if (uxQuery) { return callApmApi({ pathname: '/api/apm/rum-client/web-core-vitals', params: { - query: { - start, - end, - uiFilters: JSON.stringify(uiFilters), - urlQuery: searchTerm, - }, + query: uxQuery, }, }); } return Promise.resolve(null); }, - [start, end, uiFilters, searchTerm] + [uxQuery] ); const [isPopoverOpen, setIsPopoverOpen] = useState(false); diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/UserPercentile/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/UserPercentile/index.tsx new file mode 100644 index 0000000000000..2ce724e7fec85 --- /dev/null +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/UserPercentile/index.tsx @@ -0,0 +1,97 @@ +/* + * 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, { useCallback, useEffect } from 'react'; + +import { EuiSuperSelect } from '@elastic/eui'; +import { useHistory } from 'react-router-dom'; +import styled from 'styled-components'; +import { useUrlParams } from '../../../../hooks/useUrlParams'; +import { fromQuery, toQuery } from '../../../shared/Links/url_helpers'; +import { I18LABELS } from '../translations'; + +const DEFAULT_P = 50; + +const StyledSpan = styled.span` + font-weight: 600; +`; + +export function UserPercentile() { + const history = useHistory(); + + const { + urlParams: { percentile }, + } = useUrlParams(); + + const updatePercentile = useCallback( + (percentileN?: number) => { + const newLocation = { + ...history.location, + search: fromQuery({ + ...toQuery(history.location.search), + percentile: percentileN, + }), + }; + history.push(newLocation); + }, + [history] + ); + + useEffect(() => { + if (!percentile) { + updatePercentile(DEFAULT_P); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const options = [ + { + value: '50', + inputDisplay: I18LABELS.percentile50thMedian, + dropdownDisplay: I18LABELS.percentile50thMedian, + 'data-test-subj': 'p50Percentile', + }, + { + value: '75', + inputDisplay: {I18LABELS.percentile75th}, + dropdownDisplay: I18LABELS.percentile75th, + 'data-test-subj': 'p75Percentile', + }, + { + value: '90', + inputDisplay: {I18LABELS.percentile90th}, + dropdownDisplay: I18LABELS.percentile90th, + 'data-test-subj': 'p90Percentile', + }, + { + value: '95', + inputDisplay: {I18LABELS.percentile95th}, + dropdownDisplay: I18LABELS.percentile95th, + 'data-test-subj': 'p95Percentile', + }, + { + value: '99', + inputDisplay: {I18LABELS.percentile99th}, + dropdownDisplay: I18LABELS.percentile99th, + 'data-test-subj': 'p99Percentile', + }, + ]; + + const onChange = (val: string) => { + updatePercentile(Number(val)); + }; + + return ( + onChange(value)} + /> + ); +} diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdown/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdown/index.tsx index 2db6ef8fa6c06..092c416303bb5 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdown/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdown/index.tsx @@ -18,7 +18,9 @@ export function VisitorBreakdown() { const { data, status } = useFetcher( (callApmApi) => { - if (start && end) { + const { serviceName } = uiFilters; + + if (start && end && serviceName) { return callApmApi({ pathname: '/api/apm/rum-client/visitor-breakdown', params: { diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/EmbeddedMap.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/EmbeddedMap.tsx index 93608a0ccd826..1198c014f5921 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/EmbeddedMap.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/EmbeddedMap.tsx @@ -162,10 +162,10 @@ export function EmbeddedMapComponent() { // We can only render after embeddable has already initialized useEffect(() => { - if (embeddableRoot.current && embeddable) { + if (embeddableRoot.current && embeddable && serviceName) { embeddable.render(embeddableRoot.current); } - }, [embeddable, embeddableRoot]); + }, [embeddable, embeddableRoot, serviceName]); return ( diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/useMapFilters.ts b/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/useMapFilters.ts index 357e04c538e68..774ac23d23196 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/useMapFilters.ts +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/useMapFilters.ts @@ -4,12 +4,13 @@ * you may not use this file except in compliance with the Elastic License. */ -import { useEffect, useState } from 'react'; +import { useMemo } from 'react'; import { useUrlParams } from '../../../../hooks/useUrlParams'; import { FieldFilter as Filter } from '../../../../../../../../src/plugins/data/common'; import { CLIENT_GEO_COUNTRY_ISO_CODE, SERVICE_NAME, + TRANSACTION_URL, USER_AGENT_DEVICE, USER_AGENT_NAME, USER_AGENT_OS, @@ -17,6 +18,21 @@ import { import { APM_STATIC_INDEX_PATTERN_ID } from '../../../../../../../../src/plugins/apm_oss/public'; +const getWildcardFilter = (field: string, value: string): Filter => { + return { + meta: { + index: APM_STATIC_INDEX_PATTERN_ID, + alias: null, + negate: false, + disabled: false, + type: 'term', + key: field, + params: { query: value }, + }, + query: { wildcard: { [field]: { value: `*${value}*` } } }, + }; +}; + const getMatchFilter = (field: string, value: string): Filter => { return { meta: { @@ -28,7 +44,7 @@ const getMatchFilter = (field: string, value: string): Filter => { key: field, params: { query: value }, }, - query: { match_phrase: { [field]: value } }, + query: { term: { [field]: value } }, }; }; @@ -52,14 +68,13 @@ const getMultiMatchFilter = (field: string, values: string[]): Filter => { }, }; }; + export const useMapFilters = (): Filter[] => { const { urlParams, uiFilters } = useUrlParams(); - const { serviceName } = urlParams; - - const { browser, device, os, location } = uiFilters; + const { serviceName, searchTerm } = urlParams; - const [mapFilters, setMapFilters] = useState([]); + const { browser, device, os, location, transactionUrl } = uiFilters; const existFilter: Filter = { meta: { @@ -76,7 +91,7 @@ export const useMapFilters = (): Filter[] => { }, }; - useEffect(() => { + return useMemo(() => { const filters = [existFilter]; if (serviceName) { filters.push(getMatchFilter(SERVICE_NAME, serviceName)); @@ -93,10 +108,15 @@ export const useMapFilters = (): Filter[] => { if (location) { filters.push(getMultiMatchFilter(CLIENT_GEO_COUNTRY_ISO_CODE, location)); } + if (transactionUrl) { + filters.push(getMultiMatchFilter(TRANSACTION_URL, transactionUrl)); + } + if (searchTerm) { + filters.push(getWildcardFilter(TRANSACTION_URL, searchTerm)); + } - setMapFilters(filters); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [serviceName, browser, device, os, location]); + return filters; - return mapFilters; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [serviceName, browser, device, os, location, searchTerm]); }; diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/hooks/useUxQuery.ts b/x-pack/plugins/apm/public/components/app/RumDashboard/hooks/useUxQuery.ts new file mode 100644 index 0000000000000..da2ac52602198 --- /dev/null +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/hooks/useUxQuery.ts @@ -0,0 +1,32 @@ +/* + * 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 { useMemo } from 'react'; +import { useUrlParams } from '../../../../hooks/useUrlParams'; + +export function useUxQuery() { + const { urlParams, uiFilters } = useUrlParams(); + + const { start, end, searchTerm, percentile } = urlParams; + + const queryParams = useMemo(() => { + const { serviceName } = uiFilters; + + if (start && end && serviceName) { + return { + start, + end, + percentile: String(percentile), + urlQuery: searchTerm || undefined, + uiFilters: JSON.stringify(uiFilters), + }; + } + + return null; + }, [start, end, searchTerm, percentile, uiFilters]); + + return queryParams; +} diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/index.tsx index 33a7a23ab086b..a04d145555b19 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/index.tsx @@ -23,8 +23,8 @@ import { LocalUIFilters } from '../../shared/LocalUIFilters'; import { ServiceNameFilter } from './URLFilter/ServiceNameFilter'; export function RumOverview() { - useTrackPageview({ app: 'apm', path: 'rum_overview' }); - useTrackPageview({ app: 'apm', path: 'rum_overview', delay: 15000 }); + useTrackPageview({ app: 'ux', path: 'home' }); + useTrackPageview({ app: 'ux', path: 'home', delay: 15000 }); const localUIFiltersConfig = useMemo(() => { const config: React.ComponentProps = { diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/translations.ts b/x-pack/plugins/apm/public/components/app/RumDashboard/translations.ts index f92a1d5a5945b..dd7721d9f7129 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/translations.ts +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/translations.ts @@ -132,6 +132,24 @@ export const I18LABELS = { defaultMessage: 'Impacted page loads', } ), + percentile: i18n.translate('xpack.apm.ux.percentile.label', { + defaultMessage: 'Percentile', + }), + percentile50thMedian: i18n.translate('xpack.apm.ux.percentile.50thMedian', { + defaultMessage: '50th (Median)', + }), + percentile75th: i18n.translate('xpack.apm.ux.percentile.75th', { + defaultMessage: '75th', + }), + percentile90th: i18n.translate('xpack.apm.ux.percentile.90th', { + defaultMessage: '90th', + }), + percentile95th: i18n.translate('xpack.apm.ux.percentile.95th', { + defaultMessage: '95th', + }), + percentile99th: i18n.translate('xpack.apm.ux.percentile.99th', { + defaultMessage: '99th', + }), }; export const VisitorBreakdownLabel = i18n.translate( diff --git a/x-pack/plugins/apm/public/components/shared/Links/url_helpers.ts b/x-pack/plugins/apm/public/components/shared/Links/url_helpers.ts index 3f98fc449e8c1..991735a450724 100644 --- a/x-pack/plugins/apm/public/components/shared/Links/url_helpers.ts +++ b/x-pack/plugins/apm/public/components/shared/Links/url_helpers.ts @@ -5,9 +5,8 @@ */ import { parse, stringify } from 'query-string'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LocalUIFilterName } from '../../../../server/lib/ui_filters/local_ui_filters/config'; import { url } from '../../../../../../../src/plugins/kibana_utils/public'; +import { LocalUIFilterName } from '../../../../common/ui_filter'; export function toQuery(search?: string): APMQueryParamsRaw { return search ? parse(search.slice(1), { sort: false }) : {}; @@ -41,6 +40,7 @@ export type APMQueryParams = { refreshPaused?: string | boolean; refreshInterval?: string | number; searchTerm?: string; + percentile?: 50 | 75 | 90 | 95 | 99; } & { [key in LocalUIFilterName]?: string }; // forces every value of T[K] to be type: string diff --git a/x-pack/plugins/apm/public/components/shared/LocalUIFilters/index.tsx b/x-pack/plugins/apm/public/components/shared/LocalUIFilters/index.tsx index ba700e68b59bc..65164a43bf10e 100644 --- a/x-pack/plugins/apm/public/components/shared/LocalUIFilters/index.tsx +++ b/x-pack/plugins/apm/public/components/shared/LocalUIFilters/index.tsx @@ -13,11 +13,10 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import styled from 'styled-components'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LocalUIFilterName } from '../../../../server/lib/ui_filters/local_ui_filters/config'; import { Filter } from './Filter'; import { useLocalUIFilters } from '../../../hooks/useLocalUIFilters'; import { Projection } from '../../../../common/projections'; +import { LocalUIFilterName } from '../../../../common/ui_filter'; interface Props { projection: Projection; diff --git a/x-pack/plugins/apm/public/context/UrlParamsContext/index.tsx b/x-pack/plugins/apm/public/context/UrlParamsContext/index.tsx index 6083a216bbf95..9eb4704a2ca29 100644 --- a/x-pack/plugins/apm/public/context/UrlParamsContext/index.tsx +++ b/x-pack/plugins/apm/public/context/UrlParamsContext/index.tsx @@ -19,11 +19,12 @@ import { resolveUrlParams } from './resolveUrlParams'; import { UIFilters } from '../../../typings/ui_filters'; import { localUIFilterNames, - LocalUIFilterName, + // eslint-disable-next-line @kbn/eslint/no-restricted-paths } from '../../../server/lib/ui_filters/local_ui_filters/config'; import { pickKeys } from '../../../common/utils/pick_keys'; import { useDeepObjectIdentity } from '../../hooks/useDeepObjectIdentity'; +import { LocalUIFilterName } from '../../../common/ui_filter'; interface TimeRange { rangeFrom: string; diff --git a/x-pack/plugins/apm/public/context/UrlParamsContext/resolveUrlParams.ts b/x-pack/plugins/apm/public/context/UrlParamsContext/resolveUrlParams.ts index 8feb4ac1858d1..ccc106cc00c9e 100644 --- a/x-pack/plugins/apm/public/context/UrlParamsContext/resolveUrlParams.ts +++ b/x-pack/plugins/apm/public/context/UrlParamsContext/resolveUrlParams.ts @@ -47,6 +47,7 @@ export function resolveUrlParams(location: Location, state: TimeUrlParams) { rangeTo, environment, searchTerm, + percentile, } = query; const localUIFilters = pickKeys(query, ...localUIFilterNames); @@ -75,6 +76,7 @@ export function resolveUrlParams(location: Location, state: TimeUrlParams) { transactionName, transactionType, searchTerm: toString(searchTerm), + percentile: toNumber(percentile), // ui filters environment, diff --git a/x-pack/plugins/apm/public/context/UrlParamsContext/types.ts b/x-pack/plugins/apm/public/context/UrlParamsContext/types.ts index 574eca3b74f70..68ef73e7b7bc6 100644 --- a/x-pack/plugins/apm/public/context/UrlParamsContext/types.ts +++ b/x-pack/plugins/apm/public/context/UrlParamsContext/types.ts @@ -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 { LocalUIFilterName } from '../../../server/lib/ui_filters/local_ui_filters/config'; +import { LocalUIFilterName } from '../../../common/ui_filter'; export type IUrlParams = { detailTab?: string; @@ -28,4 +27,5 @@ export type IUrlParams = { page?: number; pageSize?: number; searchTerm?: string; + percentile?: number; } & Partial>; diff --git a/x-pack/plugins/apm/public/hooks/useLocalUIFilters.ts b/x-pack/plugins/apm/public/hooks/useLocalUIFilters.ts index 0ed26fe089487..da1797fd712b1 100644 --- a/x-pack/plugins/apm/public/hooks/useLocalUIFilters.ts +++ b/x-pack/plugins/apm/public/hooks/useLocalUIFilters.ts @@ -11,7 +11,6 @@ import { pickKeys } from '../../common/utils/pick_keys'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { LocalUIFiltersAPIResponse } from '../../server/lib/ui_filters/local_ui_filters'; import { - LocalUIFilterName, localUIFilters, // eslint-disable-next-line @kbn/eslint/no-restricted-paths } from '../../server/lib/ui_filters/local_ui_filters/config'; @@ -20,6 +19,7 @@ import { removeUndefinedProps } from '../context/UrlParamsContext/helpers'; import { useCallApi } from './useCallApi'; import { useFetcher } from './useFetcher'; import { useUrlParams } from './useUrlParams'; +import { LocalUIFilterName } from '../../common/ui_filter'; const getInitialData = ( filterNames: LocalUIFilterName[] diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts b/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts index cf4a5538a208d..a210c32ceb44e 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts @@ -20,9 +20,11 @@ import { export async function getClientMetrics({ setup, urlQuery, + percentile = 50, }: { setup: Setup & SetupTimeRange & SetupUIFilters; urlQuery?: string; + percentile?: number; }) { const projection = getRumPageLoadTransactionsProjection({ setup, @@ -41,7 +43,7 @@ export async function getClientMetrics({ backEnd: { percentiles: { field: TRANSACTION_TIME_TO_FIRST_BYTE, - percents: [50], + percents: [percentile], hdr: { number_of_significant_value_digits: 3, }, @@ -50,7 +52,7 @@ export async function getClientMetrics({ domInteractive: { percentiles: { field: TRANSACTION_DOM_INTERACTIVE, - percents: [50], + percents: [percentile], hdr: { number_of_significant_value_digits: 3, }, @@ -65,13 +67,15 @@ export async function getClientMetrics({ const response = await apmEventClient.search(params); const { backEnd, domInteractive, pageViews } = response.aggregations!; + const pkey = percentile.toFixed(1); + // Divide by 1000 to convert ms into seconds return { pageViews, - backEnd: { value: (backEnd.values['50.0'] || 0) / 1000 }, + backEnd: { value: (backEnd.values[pkey] || 0) / 1000 }, frontEnd: { value: - ((domInteractive.values['50.0'] || 0) - (backEnd.values['50.0'] || 0)) / + ((domInteractive.values[pkey] || 0) - (backEnd.values[pkey] || 0)) / 1000, }, }; diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_page_view_trends.ts b/x-pack/plugins/apm/server/lib/rum_client/get_page_view_trends.ts index 352a3ecdc3f12..40f8a8bc58a54 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_page_view_trends.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_page_view_trends.ts @@ -15,6 +15,7 @@ import { BreakdownItem } from '../../../typings/ui_filters'; export async function getPageViewTrends({ setup, breakdowns, + urlQuery, }: { setup: Setup & SetupTimeRange & SetupUIFilters; breakdowns?: string; @@ -22,6 +23,7 @@ export async function getPageViewTrends({ }) { const projection = getRumPageLoadTransactionsProjection({ setup, + urlQuery, }); let breakdownItem: BreakdownItem | null = null; if (breakdowns) { diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_url_search.ts b/x-pack/plugins/apm/server/lib/rum_client/get_url_search.ts index a7117f275c17b..6aa39c7ef961f 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_url_search.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_url_search.ts @@ -11,13 +11,19 @@ import { SetupUIFilters, } from '../helpers/setup_request'; import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; +import { + TRANSACTION_DURATION, + TRANSACTION_URL, +} from '../../../common/elasticsearch_fieldnames'; export async function getUrlSearch({ setup, urlQuery, + percentile, }: { setup: Setup & SetupTimeRange & SetupUIFilters; urlQuery?: string; + percentile: number; }) { const projection = getRumPageLoadTransactionsProjection({ setup, @@ -30,19 +36,19 @@ export async function getUrlSearch({ aggs: { totalUrls: { cardinality: { - field: 'url.full', + field: TRANSACTION_URL, }, }, urls: { terms: { - field: 'url.full', + field: TRANSACTION_URL, size: 10, }, aggs: { medianPLD: { percentiles: { - field: 'transaction.duration.us', - percents: [50], + field: TRANSACTION_DURATION, + percents: [percentile], }, }, }, @@ -56,12 +62,14 @@ export async function getUrlSearch({ const response = await apmEventClient.search(params); const { urls, totalUrls } = response.aggregations ?? {}; + const pkey = percentile.toFixed(1); + return { total: totalUrls?.value || 0, items: (urls?.buckets ?? []).map((bucket) => ({ url: bucket.key as string, count: bucket.doc_count, - pld: bucket.medianPLD.values['50.0'] ?? 0, + pld: bucket.medianPLD.values[pkey] ?? 0, })), }; } diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_web_core_vitals.ts b/x-pack/plugins/apm/server/lib/rum_client/get_web_core_vitals.ts index 0828d7ab65190..676b3506397a7 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_web_core_vitals.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_web_core_vitals.ts @@ -23,12 +23,15 @@ import { export async function getWebCoreVitals({ setup, urlQuery, + percentile = 50, }: { setup: Setup & SetupTimeRange & SetupUIFilters; urlQuery?: string; + percentile?: number; }) { const projection = getRumPageLoadTransactionsProjection({ setup, + urlQuery, }); const params = mergeProjection(projection, { @@ -50,31 +53,31 @@ export async function getWebCoreVitals({ lcp: { percentiles: { field: LCP_FIELD, - percents: [50], + percents: [percentile], }, }, fid: { percentiles: { field: FID_FIELD, - percents: [50], + percents: [percentile], }, }, cls: { percentiles: { field: CLS_FIELD, - percents: [50], + percents: [percentile], }, }, tbt: { percentiles: { field: TBT_FIELD, - percents: [50], + percents: [percentile], }, }, fcp: { percentiles: { field: FCP_FIELD, - percents: [50], + percents: [percentile], }, }, lcpRanks: { @@ -124,12 +127,15 @@ export async function getWebCoreVitals({ { value: 0, key: 0 }, ]; + const pkey = percentile.toFixed(1); + + // Divide by 1000 to convert ms into seconds return { - cls: String(cls?.values['50.0']?.toFixed(2) || 0), - fid: fid?.values['50.0'] ?? 0, - lcp: lcp?.values['50.0'] ?? 0, - tbt: tbt?.values['50.0'] ?? 0, - fcp: fcp?.values['50.0'] ?? 0, + cls: String(cls?.values[pkey]?.toFixed(2) || 0), + fid: fid?.values[pkey] ?? 0, + lcp: lcp?.values[pkey] ?? 0, + tbt: tbt?.values[pkey] ?? 0, + fcp: fcp?.values[pkey] ?? 0, lcpRanks: getRanksPercentages(lcpRanks?.values ?? defaultRanks), fidRanks: getRanksPercentages(fidRanks?.values ?? defaultRanks), diff --git a/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/config.ts b/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/config.ts index 9f2483ab8a24e..40744202b804c 100644 --- a/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/config.ts +++ b/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/config.ts @@ -3,98 +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. */ -import { i18n } from '@kbn/i18n'; -import { - CONTAINER_ID, - POD_NAME, - AGENT_NAME, - HOST_NAME, - TRANSACTION_RESULT, - SERVICE_VERSION, - TRANSACTION_URL, - USER_AGENT_NAME, - USER_AGENT_DEVICE, - USER_AGENT_OS, - CLIENT_GEO_COUNTRY_ISO_CODE, - SERVICE_NAME, -} from '../../../../common/elasticsearch_fieldnames'; -const filtersByName = { - host: { - title: i18n.translate('xpack.apm.localFilters.titles.host', { - defaultMessage: 'Host', - }), - fieldName: HOST_NAME, - }, - agentName: { - title: i18n.translate('xpack.apm.localFilters.titles.agentName', { - defaultMessage: 'Agent name', - }), - fieldName: AGENT_NAME, - }, - containerId: { - title: i18n.translate('xpack.apm.localFilters.titles.containerId', { - defaultMessage: 'Container ID', - }), - fieldName: CONTAINER_ID, - }, - podName: { - title: i18n.translate('xpack.apm.localFilters.titles.podName', { - defaultMessage: 'Kubernetes pod', - }), - fieldName: POD_NAME, - }, - transactionResult: { - title: i18n.translate('xpack.apm.localFilters.titles.transactionResult', { - defaultMessage: 'Transaction result', - }), - fieldName: TRANSACTION_RESULT, - }, - serviceVersion: { - title: i18n.translate('xpack.apm.localFilters.titles.serviceVersion', { - defaultMessage: 'Service version', - }), - fieldName: SERVICE_VERSION, - }, - transactionUrl: { - title: i18n.translate('xpack.apm.localFilters.titles.transactionUrl', { - defaultMessage: 'Url', - }), - fieldName: TRANSACTION_URL, - }, - browser: { - title: i18n.translate('xpack.apm.localFilters.titles.browser', { - defaultMessage: 'Browser', - }), - fieldName: USER_AGENT_NAME, - }, - device: { - title: i18n.translate('xpack.apm.localFilters.titles.device', { - defaultMessage: 'Device', - }), - fieldName: USER_AGENT_DEVICE, - }, - location: { - title: i18n.translate('xpack.apm.localFilters.titles.location', { - defaultMessage: 'Location', - }), - fieldName: CLIENT_GEO_COUNTRY_ISO_CODE, - }, - os: { - title: i18n.translate('xpack.apm.localFilters.titles.os', { - defaultMessage: 'OS', - }), - fieldName: USER_AGENT_OS, - }, - serviceName: { - title: i18n.translate('xpack.apm.localFilters.titles.serviceName', { - defaultMessage: 'Service name', - }), - fieldName: SERVICE_NAME, - }, -}; - -export type LocalUIFilterName = keyof typeof filtersByName; +import { filtersByName, LocalUIFilterName } from '../../../../common/ui_filter'; export interface LocalUIFilter { name: LocalUIFilterName; diff --git a/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/get_local_filter_query.ts b/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/get_local_filter_query.ts index cfbd79d37c041..10f6e93c1cfc1 100644 --- a/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/get_local_filter_query.ts +++ b/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/get_local_filter_query.ts @@ -9,7 +9,8 @@ import { mergeProjection } from '../../../projections/util/merge_projection'; import { Projection } from '../../../projections/typings'; import { UIFilters } from '../../../../typings/ui_filters'; import { getUiFiltersES } from '../../helpers/convert_ui_filters/get_ui_filters_es'; -import { localUIFilters, LocalUIFilterName } from './config'; +import { localUIFilters } from './config'; +import { LocalUIFilterName } from '../../../../common/ui_filter'; export const getLocalFilterQuery = ({ uiFilters, diff --git a/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/index.ts b/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/index.ts index 78c4abd75f2ee..20184f1d53ac5 100644 --- a/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/index.ts +++ b/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/index.ts @@ -9,7 +9,8 @@ import { Projection } from '../../../projections/typings'; import { PromiseReturnType } from '../../../../../observability/typings/common'; import { getLocalFilterQuery } from './get_local_filter_query'; import { Setup } from '../../helpers/setup_request'; -import { localUIFilters, LocalUIFilterName } from './config'; +import { localUIFilters } from './config'; +import { LocalUIFilterName } from '../../../../common/ui_filter'; export type LocalUIFiltersAPIResponse = PromiseReturnType< typeof getLocalUIFilters diff --git a/x-pack/plugins/apm/server/routes/rum_client.ts b/x-pack/plugins/apm/server/routes/rum_client.ts index c0351991e4c0d..d86069a3ec27a 100644 --- a/x-pack/plugins/apm/server/routes/rum_client.ts +++ b/x-pack/plugins/apm/server/routes/rum_client.ts @@ -24,33 +24,36 @@ export const percentileRangeRt = t.partial({ maxPercentile: t.string, }); -const urlQueryRt = t.partial({ urlQuery: t.string }); +const uxQueryRt = t.intersection([ + uiFiltersRt, + rangeRt, + t.partial({ urlQuery: t.string, percentile: t.string }), +]); export const rumClientMetricsRoute = createRoute(() => ({ path: '/api/apm/rum/client-metrics', params: { - query: t.intersection([uiFiltersRt, rangeRt, urlQueryRt]), + query: uxQueryRt, }, handler: async ({ context, request }) => { const setup = await setupRequest(context, request); const { - query: { urlQuery }, + query: { urlQuery, percentile }, } = context.params; - return getClientMetrics({ setup, urlQuery }); + return getClientMetrics({ + setup, + urlQuery, + percentile: percentile ? Number(percentile) : undefined, + }); }, })); export const rumPageLoadDistributionRoute = createRoute(() => ({ path: '/api/apm/rum-client/page-load-distribution', params: { - query: t.intersection([ - uiFiltersRt, - rangeRt, - percentileRangeRt, - urlQueryRt, - ]), + query: t.intersection([uxQueryRt, percentileRangeRt]), }, handler: async ({ context, request }) => { const setup = await setupRequest(context, request); @@ -72,10 +75,8 @@ export const rumPageLoadDistBreakdownRoute = createRoute(() => ({ path: '/api/apm/rum-client/page-load-distribution/breakdown', params: { query: t.intersection([ - uiFiltersRt, - rangeRt, + uxQueryRt, percentileRangeRt, - urlQueryRt, t.type({ breakdown: t.string }), ]), }, @@ -99,12 +100,7 @@ export const rumPageLoadDistBreakdownRoute = createRoute(() => ({ export const rumPageViewsTrendRoute = createRoute(() => ({ path: '/api/apm/rum-client/page-view-trends', params: { - query: t.intersection([ - uiFiltersRt, - rangeRt, - urlQueryRt, - t.partial({ breakdowns: t.string }), - ]), + query: t.intersection([uxQueryRt, t.partial({ breakdowns: t.string })]), }, handler: async ({ context, request }) => { const setup = await setupRequest(context, request); @@ -113,7 +109,11 @@ export const rumPageViewsTrendRoute = createRoute(() => ({ query: { breakdowns, urlQuery }, } = context.params; - return getPageViewTrends({ setup, breakdowns, urlQuery }); + return getPageViewTrends({ + setup, + breakdowns, + urlQuery, + }); }, })); @@ -132,7 +132,7 @@ export const rumServicesRoute = createRoute(() => ({ export const rumVisitorsBreakdownRoute = createRoute(() => ({ path: '/api/apm/rum-client/visitor-breakdown', params: { - query: t.intersection([uiFiltersRt, rangeRt, urlQueryRt]), + query: uxQueryRt, }, handler: async ({ context, request }) => { const setup = await setupRequest(context, request); @@ -141,30 +141,37 @@ export const rumVisitorsBreakdownRoute = createRoute(() => ({ query: { urlQuery }, } = context.params; - return getVisitorBreakdown({ setup, urlQuery }); + return getVisitorBreakdown({ + setup, + urlQuery, + }); }, })); export const rumWebCoreVitals = createRoute(() => ({ path: '/api/apm/rum-client/web-core-vitals', params: { - query: t.intersection([uiFiltersRt, rangeRt, urlQueryRt]), + query: uxQueryRt, }, handler: async ({ context, request }) => { const setup = await setupRequest(context, request); const { - query: { urlQuery }, + query: { urlQuery, percentile }, } = context.params; - return getWebCoreVitals({ setup, urlQuery }); + return getWebCoreVitals({ + setup, + urlQuery, + percentile: percentile ? Number(percentile) : undefined, + }); }, })); export const rumLongTaskMetrics = createRoute(() => ({ path: '/api/apm/rum-client/long-task-metrics', params: { - query: t.intersection([uiFiltersRt, rangeRt, urlQueryRt]), + query: uxQueryRt, }, handler: async ({ context, request }) => { const setup = await setupRequest(context, request); @@ -173,23 +180,26 @@ export const rumLongTaskMetrics = createRoute(() => ({ query: { urlQuery }, } = context.params; - return getLongTaskMetrics({ setup, urlQuery }); + return getLongTaskMetrics({ + setup, + urlQuery, + }); }, })); export const rumUrlSearch = createRoute(() => ({ path: '/api/apm/rum-client/url-search', params: { - query: t.intersection([uiFiltersRt, rangeRt, urlQueryRt]), + query: uxQueryRt, }, handler: async ({ context, request }) => { const setup = await setupRequest(context, request); const { - query: { urlQuery }, + query: { urlQuery, percentile }, } = context.params; - return getUrlSearch({ setup, urlQuery }); + return getUrlSearch({ setup, urlQuery, percentile: Number(percentile) }); }, })); diff --git a/x-pack/plugins/apm/server/routes/ui_filters.ts b/x-pack/plugins/apm/server/routes/ui_filters.ts index 8bdd83a8ddda6..936d460102dce 100644 --- a/x-pack/plugins/apm/server/routes/ui_filters.ts +++ b/x-pack/plugins/apm/server/routes/ui_filters.ts @@ -14,10 +14,7 @@ import { } from '../lib/helpers/setup_request'; import { getEnvironments } from '../lib/ui_filters/get_environments'; import { Projection } from '../projections/typings'; -import { - localUIFilterNames, - LocalUIFilterName, -} from '../lib/ui_filters/local_ui_filters/config'; +import { localUIFilterNames } from '../lib/ui_filters/local_ui_filters/config'; import { getUiFiltersES } from '../lib/helpers/convert_ui_filters/get_ui_filters_es'; import { getLocalUIFilters } from '../lib/ui_filters/local_ui_filters'; import { getServicesProjection } from '../projections/services'; @@ -32,6 +29,7 @@ import { getServiceNodesProjection } from '../projections/service_nodes'; import { getRumPageLoadTransactionsProjection } from '../projections/rum_page_load_transactions'; import { getSearchAggregatedTransactions } from '../lib/helpers/aggregated_transactions'; import { APMRequestHandlerContext } from './typings'; +import { LocalUIFilterName } from '../../common/ui_filter'; export const uiFiltersEnvironmentsRoute = createRoute(() => ({ path: '/api/apm/ui_filters/environments', diff --git a/x-pack/plugins/apm/typings/ui_filters.ts b/x-pack/plugins/apm/typings/ui_filters.ts index efba6919778bb..d2b051b63cde2 100644 --- a/x-pack/plugins/apm/typings/ui_filters.ts +++ b/x-pack/plugins/apm/typings/ui_filters.ts @@ -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 { LocalUIFilterName } from '../server/lib/ui_filters/local_ui_filters/config'; +import { LocalUIFilterName } from '../common/ui_filter'; export type UIFilters = { kuery?: string; diff --git a/x-pack/plugins/observability/public/typings/fetch_overview_data/index.ts b/x-pack/plugins/observability/public/typings/fetch_overview_data/index.ts index a87ae3fb26159..41330e878035c 100644 --- a/x-pack/plugins/observability/public/typings/fetch_overview_data/index.ts +++ b/x-pack/plugins/observability/public/typings/fetch_overview_data/index.ts @@ -34,7 +34,7 @@ export type HasData = () => Promise; export type ObservabilityFetchDataPlugins = Exclude< ObservabilityApp, - 'observability' | 'stack_monitoring' + 'observability' | 'stack_monitoring' | 'ux' >; export interface DataHandler< diff --git a/x-pack/plugins/observability/typings/common.ts b/x-pack/plugins/observability/typings/common.ts index 845652031a578..c86eb924a051e 100644 --- a/x-pack/plugins/observability/typings/common.ts +++ b/x-pack/plugins/observability/typings/common.ts @@ -10,7 +10,8 @@ export type ObservabilityApp = | 'apm' | 'uptime' | 'observability' - | 'stack_monitoring'; + | 'stack_monitoring' + | 'ux'; export type PromiseReturnType = Func extends (...args: any[]) => Promise ? Value diff --git a/x-pack/test/apm_api_integration/trial/tests/csm/url_search.ts b/x-pack/test/apm_api_integration/trial/tests/csm/url_search.ts index 76dc758895e32..c887fa3e77648 100644 --- a/x-pack/test/apm_api_integration/trial/tests/csm/url_search.ts +++ b/x-pack/test/apm_api_integration/trial/tests/csm/url_search.ts @@ -16,7 +16,7 @@ export default function rumServicesApiTests({ getService }: FtrProviderContext) describe('when there is no data', () => { it('returns empty list', async () => { const response = await supertest.get( - '/api/apm/rum-client/url-search?start=2020-09-07T20%3A35%3A54.654Z&end=2020-09-14T20%3A35%3A54.654Z&uiFilters=%7B%22serviceName%22%3A%5B%22elastic-co-rum-test%22%5D%7D' + '/api/apm/rum-client/url-search?start=2020-09-07T20%3A35%3A54.654Z&end=2020-09-14T20%3A35%3A54.654Z&uiFilters=%7B%22serviceName%22%3A%5B%22elastic-co-rum-test%22%5D%7D&percentile=50' ); expect(response.status).to.be(200); @@ -41,7 +41,7 @@ export default function rumServicesApiTests({ getService }: FtrProviderContext) it('returns top urls when no query', async () => { const response = await supertest.get( - '/api/apm/rum-client/url-search?start=2020-09-07T20%3A35%3A54.654Z&end=2020-09-16T20%3A35%3A54.654Z&uiFilters=%7B%22serviceName%22%3A%5B%22kibana-frontend-8_0_0%22%5D%7D' + '/api/apm/rum-client/url-search?start=2020-09-07T20%3A35%3A54.654Z&end=2020-09-16T20%3A35%3A54.654Z&uiFilters=%7B%22serviceName%22%3A%5B%22kibana-frontend-8_0_0%22%5D%7D&percentile=50' ); expect(response.status).to.be(200); @@ -67,7 +67,7 @@ export default function rumServicesApiTests({ getService }: FtrProviderContext) it('returns specific results against query', async () => { const response = await supertest.get( - '/api/apm/rum-client/url-search?start=2020-09-07T20%3A35%3A54.654Z&end=2020-09-16T20%3A35%3A54.654Z&uiFilters=%7B%22serviceName%22%3A%5B%22kibana-frontend-8_0_0%22%5D%7D&urlQuery=csm' + '/api/apm/rum-client/url-search?start=2020-09-07T20%3A35%3A54.654Z&end=2020-09-16T20%3A35%3A54.654Z&uiFilters=%7B%22serviceName%22%3A%5B%22kibana-frontend-8_0_0%22%5D%7D&urlQuery=csm&percentile=50' ); expect(response.status).to.be(200); diff --git a/x-pack/test/apm_api_integration/trial/tests/csm/web_core_vitals.ts b/x-pack/test/apm_api_integration/trial/tests/csm/web_core_vitals.ts index 5825c8fc49a6b..efbdb75c47cc1 100644 --- a/x-pack/test/apm_api_integration/trial/tests/csm/web_core_vitals.ts +++ b/x-pack/test/apm_api_integration/trial/tests/csm/web_core_vitals.ts @@ -16,7 +16,7 @@ export default function rumServicesApiTests({ getService }: FtrProviderContext) describe('when there is no data', () => { it('returns empty list', async () => { const response = await supertest.get( - '/api/apm/rum-client/web-core-vitals?start=2020-09-07T20%3A35%3A54.654Z&end=2020-09-14T20%3A35%3A54.654Z&uiFilters=%7B%22serviceName%22%3A%5B%22elastic-co-rum-test%22%5D%7D' + '/api/apm/rum-client/web-core-vitals?start=2020-09-07T20%3A35%3A54.654Z&end=2020-09-14T20%3A35%3A54.654Z&uiFilters=%7B%22serviceName%22%3A%5B%22elastic-co-rum-test%22%5D%7D&percentile=50' ); expect(response.status).to.be(200); @@ -45,7 +45,7 @@ export default function rumServicesApiTests({ getService }: FtrProviderContext) it('returns web core vitals values', async () => { const response = await supertest.get( - '/api/apm/rum-client/web-core-vitals?start=2020-09-07T20%3A35%3A54.654Z&end=2020-09-16T20%3A35%3A54.654Z&uiFilters=%7B%22serviceName%22%3A%5B%22kibana-frontend-8_0_0%22%5D%7D' + '/api/apm/rum-client/web-core-vitals?start=2020-09-07T20%3A35%3A54.654Z&end=2020-09-16T20%3A35%3A54.654Z&uiFilters=%7B%22serviceName%22%3A%5B%22kibana-frontend-8_0_0%22%5D%7D&percentile=50' ); expect(response.status).to.be(200); From f6be7dc2f9f6ff79973f568e329dc544449e0e40 Mon Sep 17 00:00:00 2001 From: Jen Huang Date: Wed, 30 Sep 2020 01:30:32 -0700 Subject: [PATCH 003/142] Fix condition and adjust tests (#78898) (cherry picked from commit 676ce45993109f4bf4a6e57f19e325c08f59da9a) --- .../agents/checkin/state_new_actions.test.ts | 14 +++++++++++--- .../services/agents/checkin/state_new_actions.ts | 15 +++++++++++++-- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/ingest_manager/server/services/agents/checkin/state_new_actions.test.ts b/x-pack/plugins/ingest_manager/server/services/agents/checkin/state_new_actions.test.ts index dd00ba87fded5..f4a2147131570 100644 --- a/x-pack/plugins/ingest_manager/server/services/agents/checkin/state_new_actions.test.ts +++ b/x-pack/plugins/ingest_manager/server/services/agents/checkin/state_new_actions.test.ts @@ -80,7 +80,15 @@ describe('test agent checkin new action services', () => { expect( await createAgentActionFromPolicyAction( mockSavedObjectsClient, - { ...mockAgent, local_metadata: { elastic: { agent: { version: '7.10.1-SNAPSHOT' } } } }, + { ...mockAgent, local_metadata: { elastic: { agent: { version: '7.10.0-SNAPSHOT' } } } }, + mockPolicyAction + ) + ).toEqual(expectedResult); + + expect( + await createAgentActionFromPolicyAction( + mockSavedObjectsClient, + { ...mockAgent, local_metadata: { elastic: { agent: { version: '7.10.2' } } } }, mockPolicyAction ) ).toEqual(expectedResult); @@ -131,7 +139,7 @@ describe('test agent checkin new action services', () => { expect( await createAgentActionFromPolicyAction( mockSavedObjectsClient, - { ...mockAgent, local_metadata: { elastic: { agent: { version: '7.9.1-SNAPSHOT' } } } }, + { ...mockAgent, local_metadata: { elastic: { agent: { version: '7.9.3' } } } }, mockPolicyAction ) ).toEqual(expectedResult); @@ -139,7 +147,7 @@ describe('test agent checkin new action services', () => { expect( await createAgentActionFromPolicyAction( mockSavedObjectsClient, - { ...mockAgent, local_metadata: { elastic: { agent: { version: '7.9.3' } } } }, + { ...mockAgent, local_metadata: { elastic: { agent: { version: '7.9.1-SNAPSHOT' } } } }, mockPolicyAction ) ).toEqual(expectedResult); diff --git a/x-pack/plugins/ingest_manager/server/services/agents/checkin/state_new_actions.ts b/x-pack/plugins/ingest_manager/server/services/agents/checkin/state_new_actions.ts index 89b045c5c0516..51ccdc8eb1c7c 100644 --- a/x-pack/plugins/ingest_manager/server/services/agents/checkin/state_new_actions.ts +++ b/x-pack/plugins/ingest_manager/server/services/agents/checkin/state_new_actions.ts @@ -116,10 +116,21 @@ export async function createAgentActionFromPolicyAction( agent: Agent, policyAction: AgentPolicyAction ) { - // Transform the policy action for agent version <= 7.9 for BWC + // Transform the policy action for agent version <= 7.9.x for BWC const agentVersion = semver.parse((agent.local_metadata?.elastic as any)?.agent?.version); const agentPolicyAction: AgentPolicyAction | AgentPolicyActionV7_9 = - agentVersion && semver.lt(agentVersion, '7.10.0') + agentVersion && + semver.lt( + agentVersion, + // A prerelease tag is added here so that agent versions with prerelease tags can be compared + // correctly using `semvar` + '7.10.0-SNAPSHOT', + // `@types/semvar` is out of date with the version of `semvar` we use and doesn't have a + // corresponding release version we can update the typing to :( so, the typing error is + // suppressed here even though it is supported by `semvar` + // @ts-expect-error + { includePrerelease: true } + ) ? { ...policyAction, type: 'CONFIG_CHANGE', From f8d796aec6be6964e11e03e2b8e378fe69706530 Mon Sep 17 00:00:00 2001 From: Rudolf Meijering Date: Wed, 30 Sep 2020 10:39:08 +0200 Subject: [PATCH 004/142] Remove unused elasticsearch.preserverHost setting (#78608) * Remove unused elasticsearch.preserverHost setting * deprecate and remove elasticsearch.startupTimeout config --- config/kibana.yml | 8 -------- docs/setup/settings.asciidoc | 9 --------- src/core/server/config/deprecation/core_deprecations.ts | 2 ++ src/core/server/elasticsearch/elasticsearch_config.ts | 2 -- src/core/server/mocks.ts | 1 - src/core/server/plugins/plugin_context.test.ts | 1 - src/core/server/plugins/types.ts | 2 +- src/core/server/server.api.md | 2 -- .../docker_generator/resources/bin/kibana-docker | 6 ++---- x-pack/plugins/monitoring/server/config.test.ts | 2 -- 10 files changed, 5 insertions(+), 30 deletions(-) diff --git a/config/kibana.yml b/config/kibana.yml index 72e0764f849a0..58ae8b9346f51 100644 --- a/config/kibana.yml +++ b/config/kibana.yml @@ -27,11 +27,6 @@ # The URLs of the Elasticsearch instances to use for all your queries. #elasticsearch.hosts: ["http://localhost:9200"] -# When this setting's value is true Kibana uses the hostname specified in the server.host -# setting. When the value of this setting is false, Kibana uses the hostname of the host -# that connects to this Kibana instance. -#elasticsearch.preserveHost: true - # Kibana uses an index in Elasticsearch to store saved searches, visualizations and # dashboards. Kibana creates a new index if the index doesn't already exist. #kibana.index: ".kibana" @@ -81,9 +76,6 @@ # Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable. #elasticsearch.shardTimeout: 30000 -# Time in milliseconds to wait for Elasticsearch at Kibana startup before retrying. -#elasticsearch.startupTimeout: 5000 - # Logs queries sent to Elasticsearch. Requires logging.verbose set to true. #elasticsearch.logQueries: false diff --git a/docs/setup/settings.asciidoc b/docs/setup/settings.asciidoc index af68f3e541628..903bb59cef380 100644 --- a/docs/setup/settings.asciidoc +++ b/docs/setup/settings.asciidoc @@ -68,11 +68,6 @@ currently do not have an inspector, for example Timelion and Monitoring. | Time in milliseconds to wait for {es} to respond to pings. *Default: the value of the <> setting* -| `elasticsearch.preserveHost:` - | When the value is `true`, {kib} uses the hostname specified in the -<> setting. When the value is `false`, {kib} uses -the hostname of the host that connects to this {kib} instance. *Default: `true`* - |[[elasticsearch-requestHeadersWhitelist]] `elasticsearch.requestHeadersWhitelist:` | List of {kib} client-side headers to send to {es}. To send *no* client-side headers, set this value to [] (an empty list). Removing the `authorization` @@ -204,10 +199,6 @@ making an outbound SSL/TLS connection to {es}. Valid values are `"full"`, using `"certificate"` skips hostname verification, and using `"none"` skips verification entirely. *Default: `"full"`* -| `elasticsearch.startupTimeout:` - | Time in milliseconds to wait for {es} at {kib} startup before retrying. -*Default: `5000`* - |[[elasticsearch-user-passwd]] `elasticsearch.username:` and `elasticsearch.password:` | If your {es} is protected with basic authentication, these settings provide the username and password that the {kib} server uses to perform maintenance diff --git a/src/core/server/config/deprecation/core_deprecations.ts b/src/core/server/config/deprecation/core_deprecations.ts index 2701edcf44e03..6c85cfbed8e82 100644 --- a/src/core/server/config/deprecation/core_deprecations.ts +++ b/src/core/server/config/deprecation/core_deprecations.ts @@ -136,6 +136,8 @@ export const coreDeprecationProvider: ConfigDeprecationProvider = ({ rename, unu unusedFromRoot('optimize.workers'), unusedFromRoot('optimize.profile'), unusedFromRoot('optimize.validateSyntaxOfNodeModules'), + unusedFromRoot('elasticsearch.preserveHost'), + unusedFromRoot('elasticsearch.startupTimeout'), rename('cpu.cgroup.path.override', 'ops.cGroupOverrides.cpuPath'), rename('cpuacct.cgroup.path.override', 'ops.cGroupOverrides.cpuAcctPath'), configPathDeprecation, diff --git a/src/core/server/elasticsearch/elasticsearch_config.ts b/src/core/server/elasticsearch/elasticsearch_config.ts index cac8c75a04486..cfc1edfbd318e 100644 --- a/src/core/server/elasticsearch/elasticsearch_config.ts +++ b/src/core/server/elasticsearch/elasticsearch_config.ts @@ -45,7 +45,6 @@ export const configSchema = schema.object({ hosts: schema.oneOf([hostURISchema, schema.arrayOf(hostURISchema, { minSize: 1 })], { defaultValue: 'http://localhost:9200', }), - preserveHost: schema.boolean({ defaultValue: true }), username: schema.maybe( schema.conditional( schema.contextRef('dist'), @@ -71,7 +70,6 @@ export const configSchema = schema.object({ shardTimeout: schema.duration({ defaultValue: '30s' }), requestTimeout: schema.duration({ defaultValue: '30s' }), pingTimeout: schema.duration({ defaultValue: schema.siblingRef('requestTimeout') }), - startupTimeout: schema.duration({ defaultValue: '5s' }), logQueries: schema.boolean({ defaultValue: false }), ssl: schema.object( { diff --git a/src/core/server/mocks.ts b/src/core/server/mocks.ts index e9b345317e999..3030cd9f4e0cb 100644 --- a/src/core/server/mocks.ts +++ b/src/core/server/mocks.ts @@ -67,7 +67,6 @@ export function pluginInitializerContextConfigMock(config: T) { shardTimeout: duration('30s'), requestTimeout: duration('30s'), pingTimeout: duration('30s'), - startupTimeout: duration('30s'), }, path: { data: '/tmp' }, savedObjects: { diff --git a/src/core/server/plugins/plugin_context.test.ts b/src/core/server/plugins/plugin_context.test.ts index cb4e8f20be982..7b2a5cd3b35f8 100644 --- a/src/core/server/plugins/plugin_context.test.ts +++ b/src/core/server/plugins/plugin_context.test.ts @@ -91,7 +91,6 @@ describe('createPluginInitializerContext', () => { shardTimeout: duration(30, 's'), requestTimeout: duration(30, 's'), pingTimeout: duration(30, 's'), - startupTimeout: duration(5, 's'), }, path: { data: fromRoot('data') }, savedObjects: { maxImportPayloadBytes: new ByteSizeValue(10485760) }, diff --git a/src/core/server/plugins/types.ts b/src/core/server/plugins/types.ts index 9de181124a349..0dd481687eb59 100644 --- a/src/core/server/plugins/types.ts +++ b/src/core/server/plugins/types.ts @@ -262,7 +262,7 @@ export interface Plugin< export const SharedGlobalConfigKeys = { // We can add more if really needed kibana: ['index', 'autocompleteTerminateAfter', 'autocompleteTimeout'] as const, - elasticsearch: ['shardTimeout', 'requestTimeout', 'pingTimeout', 'startupTimeout'] as const, + elasticsearch: ['shardTimeout', 'requestTimeout', 'pingTimeout'] as const, path: ['data'] as const, savedObjects: ['maxImportPayloadBytes'] as const, }; diff --git a/src/core/server/server.api.md b/src/core/server/server.api.md index cc51d27589ce7..450be3b0e9a6c 100644 --- a/src/core/server/server.api.md +++ b/src/core/server/server.api.md @@ -348,7 +348,6 @@ export const config: { sniffInterval: Type; sniffOnConnectionFault: Type; hosts: Type; - preserveHost: Type; username: Type; password: Type; requestHeadersWhitelist: Type; @@ -356,7 +355,6 @@ export const config: { shardTimeout: Type; requestTimeout: Type; pingTimeout: Type; - startupTimeout: Type; logQueries: Type; ssl: import("@kbn/config-schema").ObjectType<{ verificationMode: Type<"none" | "certificate" | "full">; 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 884e7e38494cc..2770f288b6af8 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 @@ -8,11 +8,11 @@ # # eg. Setting the environment variable: # -# ELASTICSEARCH_STARTUPTIMEOUT=60 +# ELASTICSEARCH_LOGQUERIES=true # # will cause Kibana to be invoked with: # -# --elasticsearch.startupTimeout=60 +# --elasticsearch.logQueries=true kibana_vars=( console.enabled @@ -30,7 +30,6 @@ kibana_vars=( elasticsearch.logQueries elasticsearch.password elasticsearch.pingTimeout - elasticsearch.preserveHost elasticsearch.requestHeadersWhitelist elasticsearch.requestTimeout elasticsearch.shardTimeout @@ -47,7 +46,6 @@ kibana_vars=( elasticsearch.ssl.truststore.path elasticsearch.ssl.truststore.password elasticsearch.ssl.verificationMode - elasticsearch.startupTimeout elasticsearch.username i18n.locale interpreter.enableInVisualize diff --git a/x-pack/plugins/monitoring/server/config.test.ts b/x-pack/plugins/monitoring/server/config.test.ts index f4ccb3f830af1..d264bbd83f561 100644 --- a/x-pack/plugins/monitoring/server/config.test.ts +++ b/x-pack/plugins/monitoring/server/config.test.ts @@ -72,7 +72,6 @@ describe('config schema', () => { "logFetchCount": 10, "logQueries": false, "pingTimeout": "PT30S", - "preserveHost": true, "requestHeadersWhitelist": Array [ "authorization", ], @@ -87,7 +86,6 @@ describe('config schema', () => { "truststore": Object {}, "verificationMode": "full", }, - "startupTimeout": "PT5S", }, "enabled": true, "logs": Object { From 14c7a5e41ae663a8fbf30b008b7c921d2cd24377 Mon Sep 17 00:00:00 2001 From: Tim Roes Date: Wed, 30 Sep 2020 10:46:17 +0200 Subject: [PATCH 005/142] Remove isDeprecated flag on visType (#78820) --- .../region_map/public/region_map_type.js | 1 - src/plugins/tile_map/public/tile_map_type.js | 1 - .../public/vis_types/base_vis_type.ts | 6 +-- .../components/visualize_editor_common.tsx | 45 +++++++++---------- 4 files changed, 22 insertions(+), 31 deletions(-) diff --git a/src/plugins/region_map/public/region_map_type.js b/src/plugins/region_map/public/region_map_type.js index 105554f48f550..4cd30d32698ed 100644 --- a/src/plugins/region_map/public/region_map_type.js +++ b/src/plugins/region_map/public/region_map_type.js @@ -32,7 +32,6 @@ export function createRegionMapTypeDefinition(dependencies) { return { name: 'region_map', - isDeprecated: true, getDeprecationMessage, title: i18n.translate('regionMap.mapVis.regionMapTitle', { defaultMessage: 'Region Map' }), description: i18n.translate('regionMap.mapVis.regionMapDescription', { diff --git a/src/plugins/tile_map/public/tile_map_type.js b/src/plugins/tile_map/public/tile_map_type.js index 7073958a1b318..cc19a8bbcef91 100644 --- a/src/plugins/tile_map/public/tile_map_type.js +++ b/src/plugins/tile_map/public/tile_map_type.js @@ -33,7 +33,6 @@ export function createTileMapTypeDefinition(dependencies) { return { name: 'tile_map', - isDeprecated: true, getDeprecationMessage, title: i18n.translate('tileMap.vis.mapTitle', { defaultMessage: 'Coordinate Map', diff --git a/src/plugins/visualizations/public/vis_types/base_vis_type.ts b/src/plugins/visualizations/public/vis_types/base_vis_type.ts index 149146bf77e73..de1afc254e0d3 100644 --- a/src/plugins/visualizations/public/vis_types/base_vis_type.ts +++ b/src/plugins/visualizations/public/vis_types/base_vis_type.ts @@ -44,7 +44,7 @@ interface CommonBaseVisTypeOptions { useCustomNoDataScreen?: boolean; inspectorAdapters?: Adapters | (() => Adapters); isDeprecated?: boolean; - getDeprecationMessage?: (vis: Vis) => ReactElement; + getDeprecationMessage?: (vis: Vis) => ReactElement<{}>; } interface ExpressionBaseVisTypeOptions extends CommonBaseVisTypeOptions { @@ -84,8 +84,7 @@ export class BaseVisType { useCustomNoDataScreen: boolean; inspectorAdapters?: Adapters | (() => Adapters); toExpressionAst?: VisToExpressionAst; - isDeprecated: boolean; - getDeprecationMessage?: (vis: Vis) => ReactElement; + getDeprecationMessage?: (vis: Vis) => ReactElement<{}>; constructor(opts: BaseVisTypeOptions) { if (!opts.icon && !opts.image) { @@ -123,7 +122,6 @@ export class BaseVisType { this.useCustomNoDataScreen = opts.useCustomNoDataScreen || false; this.inspectorAdapters = opts.inspectorAdapters; this.toExpressionAst = opts.toExpressionAst; - this.isDeprecated = opts.isDeprecated || false; this.getDeprecationMessage = opts.getDeprecationMessage; } diff --git a/src/plugins/visualize/public/application/components/visualize_editor_common.tsx b/src/plugins/visualize/public/application/components/visualize_editor_common.tsx index 4321d7dd1a6ca..4b7b4dae02d0a 100644 --- a/src/plugins/visualize/public/application/components/visualize_editor_common.tsx +++ b/src/plugins/visualize/public/application/components/visualize_editor_common.tsx @@ -79,34 +79,29 @@ export const VisualizeEditorCommon = ({ /> )} {visInstance?.vis?.type?.isExperimental && } - {visInstance?.vis?.type?.isDeprecated && - visInstance?.vis?.type?.getDeprecationMessage && - visInstance.vis.type.getDeprecationMessage(visInstance?.vis)} + {visInstance?.vis?.type?.getDeprecationMessage?.(visInstance.vis)} {visInstance && (

- { - // @ts-expect-error - 'savedVis' in visInstance && visInstance.savedVis.id ? ( - - ) : ( - - ) - } + {'savedVis' in visInstance && visInstance.savedVis.id ? ( + + ) : ( + + )}

)} From 855a33c73305e3c61c82fcd4417451ff69eb3265 Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Wed, 30 Sep 2020 11:38:25 +0200 Subject: [PATCH 006/142] Improve invalid field error message at search.aggs.param_types.field (#78587) --- src/plugins/data/common/search/aggs/param_types/field.ts | 5 +++-- x-pack/plugins/translations/translations/ja-JP.json | 1 - x-pack/plugins/translations/translations/zh-CN.json | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/plugins/data/common/search/aggs/param_types/field.ts b/src/plugins/data/common/search/aggs/param_types/field.ts index 492294bdf4e5f..a0bc71ac8e156 100644 --- a/src/plugins/data/common/search/aggs/param_types/field.ts +++ b/src/plugins/data/common/search/aggs/param_types/field.ts @@ -90,9 +90,10 @@ export class FieldParamType extends BaseParamType { 'data.search.aggs.paramTypes.field.invalidSavedFieldParameterErrorMessage', { defaultMessage: - 'Saved {fieldParameter} parameter is now invalid. Please select a new field.', + 'Saved field "{fieldParameter}" is invalid for use with the "{aggType}" aggregation. Please select a new field.', values: { - fieldParameter: '"field"', + fieldParameter: fieldName, + aggType: aggConfig?.type?.title, }, } ) diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index a26daffcd88d8..550cf35b1e3bf 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -1200,7 +1200,6 @@ "data.search.aggs.metrics.uniqueCountTitle": "ユニークカウント", "data.search.aggs.otherBucket.labelForMissingValuesLabel": "欠測値のラベル", "data.search.aggs.otherBucket.labelForOtherBucketLabel": "他のバケットのラベル", - "data.search.aggs.paramTypes.field.invalidSavedFieldParameterErrorMessage": "保存した {fieldParameter} パラメーターが無効になりました。新しいフィールドを選択してください。", "data.search.aggs.paramTypes.field.requiredFieldParameterErrorMessage": "{fieldParameter} は必須パラメーターです", "data.search.aggs.percentageOfLabel": "{label} の割合", "data.search.aggs.string.customLabel": "カスタムラベル", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 444fff9efa8b7..5f50eb831022b 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -1201,7 +1201,6 @@ "data.search.aggs.metrics.uniqueCountTitle": "唯一计数", "data.search.aggs.otherBucket.labelForMissingValuesLabel": "缺失值的标签", "data.search.aggs.otherBucket.labelForOtherBucketLabel": "其他存储桶的标签", - "data.search.aggs.paramTypes.field.invalidSavedFieldParameterErrorMessage": "保存的 {fieldParameter} 参数现在无效。请选择新字段。", "data.search.aggs.paramTypes.field.requiredFieldParameterErrorMessage": "{fieldParameter} 是必需字段", "data.search.aggs.percentageOfLabel": "{label} 的百分比", "data.search.aggs.string.customLabel": "定制标签", From 7b903336288298f502bdd75fc6614eecf363ff56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Marcondes?= <55978943+cauemarcondes@users.noreply.github.com> Date: Wed, 30 Sep 2020 11:36:55 +0100 Subject: [PATCH 007/142] [APM] Service Map: `Not Defined` option doesn't work properly (#77757) * Service Map: option doesn't work properly * addressing PR comment * addressing PR comment * adding unit tests * addressing PR comment * fixing tests * addressing PR comment * addressing PR comment * addressing PR comment * addressing PR comment * addressing PR comment * add filter by environment * addressing PR comment * fixing API tests Co-authored-by: Elastic Machine --- ...et_service_map_from_trace_ids.test.ts.snap | 222 - .../server/lib/service_map/get_service_map.ts | 23 +- .../get_service_map_from_trace_ids.test.ts | 258 +- .../get_service_map_from_trace_ids.ts | 67 +- ...ce_map_from_trace_ids_script_response.json | 1165 - .../observability_overview.ts | 24 +- .../basic/tests/services/top_services.ts | 54 +- .../tests/settings/agent_configuration.ts | 1 + .../traces/__snapshots__/top_traces.snap | 646 +- .../basic/tests/traces/top_traces.ts | 32 +- .../__snapshots__/breakdown.snap | 802 +- .../__snapshots__/error_rate.snap | 188 +- .../__snapshots__/top_transaction_groups.snap | 138 +- .../__snapshots__/transaction_charts.snap | 1266 +- .../tests/transaction_groups/breakdown.ts | 16 +- .../tests/transaction_groups/error_rate.ts | 6 +- .../top_transaction_groups.ts | 2 +- .../transaction_groups/transaction_charts.ts | 2 +- .../common/archives_metadata.ts | 4 +- .../es_archiver/apm_8.0.0/data.json.gz | Bin 2220093 -> 2527015 bytes .../es_archiver/apm_8.0.0/mappings.json | 18754 ++++++++++++++-- .../__snapshots__/service_maps.snap | 1095 +- .../trial/tests/service_maps/service_maps.ts | 38 +- .../trial/tests/services/top_services.ts | 3 +- 24 files changed, 19895 insertions(+), 4911 deletions(-) delete mode 100644 x-pack/plugins/apm/server/lib/service_map/__snapshots__/get_service_map_from_trace_ids.test.ts.snap delete mode 100644 x-pack/plugins/apm/server/lib/service_map/mock_responses/get_service_map_from_trace_ids_script_response.json diff --git a/x-pack/plugins/apm/server/lib/service_map/__snapshots__/get_service_map_from_trace_ids.test.ts.snap b/x-pack/plugins/apm/server/lib/service_map/__snapshots__/get_service_map_from_trace_ids.test.ts.snap deleted file mode 100644 index 1f4a8a4367fad..0000000000000 --- a/x-pack/plugins/apm/server/lib/service_map/__snapshots__/get_service_map_from_trace_ids.test.ts.snap +++ /dev/null @@ -1,222 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`getConnections transforms a list of paths into a list of connections filtered by service.name and environment 1`] = ` -Array [ - Object { - "destination": Object { - "agent.name": "nodejs", - "service.environment": "production", - "service.name": "opbeans-node", - }, - "source": Object { - "agent.name": "python", - "service.environment": "production", - "service.name": "opbeans-python", - }, - }, - Object { - "destination": Object { - "span.destination.service.resource": "172.18.0.6:3000", - "span.subtype": "http", - "span.type": "external", - }, - "source": Object { - "agent.name": "nodejs", - "service.environment": "production", - "service.name": "opbeans-node", - }, - }, - Object { - "destination": Object { - "agent.name": "python", - "service.environment": "production", - "service.name": "opbeans-python", - }, - "source": Object { - "agent.name": "nodejs", - "service.environment": "production", - "service.name": "opbeans-node", - }, - }, - Object { - "destination": Object { - "agent.name": "ruby", - "service.environment": "production", - "service.name": "opbeans-ruby", - }, - "source": Object { - "agent.name": "python", - "service.environment": "production", - "service.name": "opbeans-python", - }, - }, - Object { - "destination": Object { - "span.destination.service.resource": "postgresql", - "span.subtype": "postgresql", - "span.type": "db", - }, - "source": Object { - "agent.name": "ruby", - "service.environment": "production", - "service.name": "opbeans-ruby", - }, - }, - Object { - "destination": Object { - "agent.name": "ruby", - "service.environment": "production", - "service.name": "opbeans-ruby", - }, - "source": Object { - "agent.name": "nodejs", - "service.environment": "production", - "service.name": "opbeans-node", - }, - }, - Object { - "destination": Object { - "span.destination.service.resource": "opbeans-python:3000", - "span.subtype": "http_rb", - "span.type": "ext", - }, - "source": Object { - "agent.name": "ruby", - "service.environment": "production", - "service.name": "opbeans-ruby", - }, - }, - Object { - "destination": Object { - "agent.name": "nodejs", - "service.environment": "production", - "service.name": "opbeans-node", - }, - "source": Object { - "agent.name": "ruby", - "service.environment": "production", - "service.name": "opbeans-ruby", - }, - }, - Object { - "destination": Object { - "span.destination.service.resource": "opbeans-node:3000", - "span.subtype": "http", - "span.type": "external", - }, - "source": Object { - "agent.name": "python", - "service.environment": "production", - "service.name": "opbeans-python", - }, - }, - Object { - "destination": Object { - "span.destination.service.resource": "172.18.0.7:3000", - "span.subtype": "http", - "span.type": "external", - }, - "source": Object { - "agent.name": "nodejs", - "service.environment": "production", - "service.name": "opbeans-node", - }, - }, - Object { - "destination": Object { - "span.destination.service.resource": "postgresql", - "span.subtype": "postgresql", - "span.type": "db", - }, - "source": Object { - "agent.name": "python", - "service.environment": "production", - "service.name": "opbeans-python", - }, - }, - Object { - "destination": Object { - "agent.name": "python", - "service.environment": "production", - "service.name": "opbeans-python", - }, - "source": Object { - "agent.name": "ruby", - "service.environment": "production", - "service.name": "opbeans-ruby", - }, - }, - Object { - "destination": Object { - "span.destination.service.resource": "postgresql", - "span.subtype": "postgresql", - "span.type": "db", - }, - "source": Object { - "agent.name": "nodejs", - "service.environment": "production", - "service.name": "opbeans-node", - }, - }, - Object { - "destination": Object { - "span.destination.service.resource": "93.184.216.34:80", - "span.subtype": "http", - "span.type": "external", - }, - "source": Object { - "agent.name": "nodejs", - "service.environment": "production", - "service.name": "opbeans-node", - }, - }, - Object { - "destination": Object { - "span.destination.service.resource": "opbeans-ruby:3000", - "span.subtype": "http_rb", - "span.type": "ext", - }, - "source": Object { - "agent.name": "ruby", - "service.environment": "production", - "service.name": "opbeans-ruby", - }, - }, - Object { - "destination": Object { - "span.destination.service.resource": "redis", - "span.subtype": "redis", - "span.type": "cache", - }, - "source": Object { - "agent.name": "nodejs", - "service.environment": "production", - "service.name": "opbeans-node", - }, - }, - Object { - "destination": Object { - "span.destination.service.resource": "opbeans-node:3000", - "span.subtype": "http_rb", - "span.type": "ext", - }, - "source": Object { - "agent.name": "ruby", - "service.environment": "production", - "service.name": "opbeans-ruby", - }, - }, - Object { - "destination": Object { - "span.destination.service.resource": "opbeans-ruby:3000", - "span.subtype": "http", - "span.type": "external", - }, - "source": Object { - "agent.name": "python", - "service.environment": "production", - "service.name": "opbeans-python", - }, - }, -] -`; diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_map.ts b/x-pack/plugins/apm/server/lib/service_map/get_service_map.ts index 402beb1999240..75acebe7ed56c 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_service_map.ts +++ b/x-pack/plugins/apm/server/lib/service_map/get_service_map.ts @@ -14,6 +14,7 @@ import { getServicesProjection } from '../../projections/services'; import { mergeProjection } from '../../projections/util/merge_projection'; import { PromiseReturnType } from '../../../typings/common'; import { Setup, SetupTimeRange } from '../helpers/setup_request'; +import { getEnvironmentUiFilterES } from '../helpers/convert_ui_filters/get_environment_ui_filter_es'; import { transformServiceMapResponses } from './transform_service_map_responses'; import { getServiceMapFromTraceIds } from './get_service_map_from_trace_ids'; import { getTraceSampleIds } from './get_trace_sample_ids'; @@ -85,7 +86,19 @@ async function getServicesData(options: IEnvOptions) { searchAggregatedTransactions, }); - const { filter } = projection.body.query.bool; + let { filter } = projection.body.query.bool; + + if (options.serviceName) { + filter = filter.concat({ + term: { + [SERVICE_NAME]: options.serviceName, + }, + }); + } + + if (options.environment) { + filter = filter.concat(getEnvironmentUiFilterES(options.environment)); + } const params = mergeProjection(projection, { body: { @@ -93,13 +106,7 @@ async function getServicesData(options: IEnvOptions) { query: { bool: { ...projection.body.query.bool, - filter: options.serviceName - ? filter.concat({ - term: { - [SERVICE_NAME]: options.serviceName, - }, - }) - : filter, + filter, }, }, aggs: { diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.test.ts b/x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.test.ts index a3a7e5c995bfe..4cc4d66f0121c 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.test.ts +++ b/x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.test.ts @@ -5,24 +5,248 @@ */ import { getConnections } from './get_service_map_from_trace_ids'; -import serviceMapFromTraceIdsScriptResponse from './mock_responses/get_service_map_from_trace_ids_script_response.json'; -import { PromiseReturnType } from '../../../typings/common'; -import { fetchServicePathsFromTraceIds } from './fetch_service_paths_from_trace_ids'; +import { Connection, ConnectionNode } from '../../../common/service_map'; +import { ENVIRONMENT_NOT_DEFINED } from '../../../common/environment_filter_values'; + +function getConnectionsPairs(connections: Connection[]) { + return connections + .map((conn) => { + const source = `${conn.source['service.name']}:${conn.source['service.environment']}`; + const destination = conn.destination['service.name'] + ? `${conn.destination['service.name']}:${conn.destination['service.environment']}` + : conn.destination['span.type']; + return `${source} -> ${destination}`; + }) + .filter((_) => _); +} describe('getConnections', () => { - it('transforms a list of paths into a list of connections filtered by service.name and environment', () => { - const response = serviceMapFromTraceIdsScriptResponse as PromiseReturnType< - typeof fetchServicePathsFromTraceIds - >; - const serviceName = 'opbeans-node'; - const environment = 'production'; - - const connections = getConnections( - response.aggregations?.service_map.value.paths, - serviceName, - environment - ); - - expect(connections).toMatchSnapshot(); + describe('with environments defined', () => { + const paths = [ + [ + { + 'service.environment': 'testing', + 'service.name': 'opbeans-ruby', + 'agent.name': 'ruby', + }, + { + 'service.environment': null, + 'service.name': 'opbeans-node', + 'agent.name': 'nodejs', + }, + { + 'service.environment': 'production', + 'service.name': 'opbeans-go', + 'agent.name': 'go', + }, + { + 'service.environment': 'production', + 'service.name': 'opbeans-java', + 'agent.name': 'java', + }, + { + 'span.subtype': 'http', + 'span.destination.service.resource': '172.18.0.6:3000', + 'span.type': 'external', + }, + ], + [ + { + 'service.environment': 'testing', + 'service.name': 'opbeans-ruby', + 'agent.name': 'ruby', + }, + { + 'service.environment': 'testing', + 'service.name': 'opbeans-python', + 'agent.name': 'python', + }, + { + 'span.subtype': 'http', + 'span.destination.service.resource': '172.18.0.6:3000', + 'span.type': 'external', + }, + ], + ] as ConnectionNode[][]; + describe('if neither service name or environment is given', () => { + it('includes all connections', () => { + const connections = getConnections({ + paths, + serviceName: undefined, + environment: undefined, + }); + + const connectionsPairs = getConnectionsPairs(connections); + expect(connectionsPairs).toEqual([ + 'opbeans-ruby:testing -> opbeans-node:null', + 'opbeans-node:null -> opbeans-go:production', + 'opbeans-go:production -> opbeans-java:production', + 'opbeans-java:production -> external', + 'opbeans-ruby:testing -> opbeans-python:testing', + 'opbeans-python:testing -> external', + ]); + }); + }); + + describe('if service name and environment are given', () => { + it('shows all connections for opbeans-java and production', () => { + const connections = getConnections({ + paths, + serviceName: 'opbeans-java', + environment: 'production', + }); + + const connectionsPairs = getConnectionsPairs(connections); + + expect(connectionsPairs).toEqual([ + 'opbeans-ruby:testing -> opbeans-node:null', + 'opbeans-node:null -> opbeans-go:production', + 'opbeans-go:production -> opbeans-java:production', + 'opbeans-java:production -> external', + ]); + }); + + it('shows all connections for opbeans-python and testing', () => { + const connections = getConnections({ + paths, + serviceName: 'opbeans-python', + environment: 'testing', + }); + + const connectionsPairs = getConnectionsPairs(connections); + + expect(connectionsPairs).toEqual([ + 'opbeans-ruby:testing -> opbeans-python:testing', + 'opbeans-python:testing -> external', + ]); + }); + }); + + describe('if service name is given', () => { + it('shows all connections for opbeans-node', () => { + const connections = getConnections({ + paths, + serviceName: 'opbeans-node', + environment: undefined, + }); + + const connectionsPairs = getConnectionsPairs(connections); + + expect(connectionsPairs).toEqual([ + 'opbeans-ruby:testing -> opbeans-node:null', + 'opbeans-node:null -> opbeans-go:production', + 'opbeans-go:production -> opbeans-java:production', + 'opbeans-java:production -> external', + ]); + }); + }); + + describe('if environment is given', () => { + it('shows all connections for testing environment', () => { + const connections = getConnections({ + paths, + serviceName: undefined, + environment: 'testing', + }); + + const connectionsPairs = getConnectionsPairs(connections); + + expect(connectionsPairs).toEqual([ + 'opbeans-ruby:testing -> opbeans-node:null', + 'opbeans-node:null -> opbeans-go:production', + 'opbeans-go:production -> opbeans-java:production', + 'opbeans-java:production -> external', + 'opbeans-ruby:testing -> opbeans-python:testing', + 'opbeans-python:testing -> external', + ]); + }); + it('shows all connections for production environment', () => { + const connections = getConnections({ + paths, + serviceName: undefined, + environment: 'production', + }); + + const connectionsPairs = getConnectionsPairs(connections); + + expect(connectionsPairs).toEqual([ + 'opbeans-ruby:testing -> opbeans-node:null', + 'opbeans-node:null -> opbeans-go:production', + 'opbeans-go:production -> opbeans-java:production', + 'opbeans-java:production -> external', + ]); + }); + }); + }); + + describe('environment is "not defined"', () => { + it('shows all connections where environment is not set', () => { + const environmentNotDefinedPaths = [ + [ + { + 'service.environment': 'production', + 'service.name': 'opbeans-go', + 'agent.name': 'go', + }, + { + 'service.environment': 'production', + 'service.name': 'opbeans-java', + 'agent.name': 'java', + }, + { + 'span.subtype': 'http', + 'span.destination.service.resource': '172.18.0.6:3000', + 'span.type': 'external', + }, + ], + [ + { + 'service.environment': null, + 'service.name': 'opbeans-go', + 'agent.name': 'go', + }, + { + 'service.environment': null, + 'service.name': 'opbeans-java', + 'agent.name': 'java', + }, + { + 'span.subtype': 'http', + 'span.destination.service.resource': '172.18.0.6:3000', + 'span.type': 'external', + }, + ], + [ + { + 'service.environment': null, + 'service.name': 'opbeans-python', + 'agent.name': 'python', + }, + { + 'service.environment': null, + 'service.name': 'opbeans-node', + 'agent.name': 'nodejs', + }, + { + 'span.subtype': 'http', + 'span.destination.service.resource': '172.18.0.6:3000', + 'span.type': 'external', + }, + ], + ] as ConnectionNode[][]; + const connections = getConnections({ + paths: environmentNotDefinedPaths, + serviceName: undefined, + environment: ENVIRONMENT_NOT_DEFINED.value, + }); + + const connectionsPairs = getConnectionsPairs(connections); + expect(connectionsPairs).toEqual([ + 'opbeans-go:null -> opbeans-java:null', + 'opbeans-java:null -> external', + 'opbeans-python:null -> opbeans-node:null', + 'opbeans-node:null -> external', + ]); + }); }); }); diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.ts b/x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.ts index a7771d14532d6..14cfece22d053 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.ts +++ b/x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.ts @@ -9,42 +9,47 @@ import { SERVICE_ENVIRONMENT, SERVICE_NAME, } from '../../../common/elasticsearch_fieldnames'; -import { - Connection, - ConnectionNode, - ServiceConnectionNode, -} from '../../../common/service_map'; +import { Connection, ConnectionNode } from '../../../common/service_map'; import { Setup } from '../helpers/setup_request'; import { fetchServicePathsFromTraceIds } from './fetch_service_paths_from_trace_ids'; -export function getConnections( - paths?: ConnectionNode[][], - serviceName?: string, - environment?: string -) { +export function getConnections({ + paths, + serviceName, + environment, +}: { + paths: ConnectionNode[][] | undefined; + serviceName: string | undefined; + environment: string | undefined; +}) { if (!paths) { return []; } if (serviceName || environment) { paths = paths.filter((path) => { - return path.some((node) => { - let matches = true; - if (serviceName) { - matches = - matches && - SERVICE_NAME in node && - (node as ServiceConnectionNode)[SERVICE_NAME] === serviceName; - } - if (environment && environment !== ENVIRONMENT_NOT_DEFINED.value) { - matches = - matches && - SERVICE_ENVIRONMENT in node && - (node as ServiceConnectionNode)[SERVICE_ENVIRONMENT] === - environment; - } - return matches; - }); + return ( + path + // Only apply the filter on node that contains service name, this filters out external nodes + .filter((node) => { + return node[SERVICE_NAME]; + }) + .some((node) => { + if (serviceName && node[SERVICE_NAME] !== serviceName) { + return false; + } + + if (!environment) { + return true; + } + + if (environment === ENVIRONMENT_NOT_DEFINED.value) { + return !node[SERVICE_ENVIRONMENT]; + } + + return node[SERVICE_ENVIRONMENT] === environment; + }) + ); }); } @@ -88,11 +93,11 @@ export async function getServiceMapFromTraceIds({ serviceMapFromTraceIdsScriptResponse.aggregations?.service_map.value; return { - connections: getConnections( - serviceMapScriptedAggValue?.paths, + connections: getConnections({ + paths: serviceMapScriptedAggValue?.paths, serviceName, - environment - ), + environment, + }), discoveredServices: serviceMapScriptedAggValue?.discoveredServices ?? [], }; } diff --git a/x-pack/plugins/apm/server/lib/service_map/mock_responses/get_service_map_from_trace_ids_script_response.json b/x-pack/plugins/apm/server/lib/service_map/mock_responses/get_service_map_from_trace_ids_script_response.json deleted file mode 100644 index 49d8efebbf43b..0000000000000 --- a/x-pack/plugins/apm/server/lib/service_map/mock_responses/get_service_map_from_trace_ids_script_response.json +++ /dev/null @@ -1,1165 +0,0 @@ -{ - "took": 43, - "timed_out": false, - "_shards": { "total": 6, "successful": 6, "skipped": 0, "failed": 0 }, - "hits": { - "total": { "value": 465, "relation": "eq" }, - "max_score": null, - "hits": [] - }, - "aggregations": { - "service_map": { - "value": { - "paths": [ - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "172.18.0.6:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-python:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "172.18.0.6:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "172.18.0.7:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "opbeans-ruby:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "172.18.0.7:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "opbeans-ruby:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "172.18.0.7:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-python:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "93.184.216.34:80", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-ruby:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-python:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "172.18.0.7:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-ruby:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-ruby:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "redis", - "span.destination.service.resource": "redis", - "span.type": "cache" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-python:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "redis", - "span.destination.service.resource": "redis", - "span.type": "cache" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "opbeans-ruby:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "postgresql", - "span.destination.service.resource": "postgresql", - "span.type": "db" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "redis", - "span.destination.service.resource": "redis", - "span.type": "cache" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-python:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "172.18.0.6:3000", - "span.type": "external" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-ruby:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "redis", - "span.destination.service.resource": "redis", - "span.type": "cache" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "ext" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "redis", - "span.destination.service.resource": "redis", - "span.type": "cache" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - }, - { - "span.subtype": "redis", - "span.destination.service.resource": "redis", - "span.type": "cache" - } - ], - [ - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - }, - { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - }, - { - "span.subtype": "http", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "external" - } - ] - ], - "discoveredServices": [ - { - "from": { - "span.subtype": "http", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "external" - }, - "to": { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - } - }, - { - "from": { - "span.subtype": "http", - "span.destination.service.resource": "172.18.0.7:3000", - "span.type": "external" - }, - "to": { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - } - }, - { - "from": { - "span.subtype": "http", - "span.destination.service.resource": "opbeans-ruby:3000", - "span.type": "external" - }, - "to": { - "service.environment": "production", - "service.name": "opbeans-ruby", - "agent.name": "ruby" - } - }, - { - "from": { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-node:3000", - "span.type": "ext" - }, - "to": { - "service.environment": "production", - "service.name": "opbeans-node", - "agent.name": "nodejs" - } - }, - { - "from": { - "span.subtype": "http_rb", - "span.destination.service.resource": "opbeans-python:3000", - "span.type": "ext" - }, - "to": { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - } - }, - { - "from": { - "span.subtype": "http", - "span.destination.service.resource": "172.18.0.6:3000", - "span.type": "external" - }, - "to": { - "service.environment": "production", - "service.name": "opbeans-python", - "agent.name": "python" - } - } - ] - } - } - } -} diff --git a/x-pack/test/apm_api_integration/basic/tests/observability_overview/observability_overview.ts b/x-pack/test/apm_api_integration/basic/tests/observability_overview/observability_overview.ts index 41564af55562a..01fa09630e85a 100644 --- a/x-pack/test/apm_api_integration/basic/tests/observability_overview/observability_overview.ts +++ b/x-pack/test/apm_api_integration/basic/tests/observability_overview/observability_overview.ts @@ -45,9 +45,9 @@ export default function ApiTest({ getService }: FtrProviderContext) { expect(response.body.serviceCount).to.be.greaterThan(0); expect(response.body.transactionCoordinates.length).to.be.greaterThan(0); - expectSnapshot(response.body.serviceCount).toMatchInline(`7`); + expectSnapshot(response.body.serviceCount).toMatchInline(`8`); - expectSnapshot(response.body.transactionCoordinates.length).toMatchInline(`31`); + expectSnapshot(response.body.transactionCoordinates.length).toMatchInline(`30`); expectSnapshot( response.body.transactionCoordinates @@ -59,24 +59,24 @@ export default function ApiTest({ getService }: FtrProviderContext) { ).toMatchInline(` Array [ Object { - "x": "2020-09-15T08:53:00.000Z", - "y": 1, + "x": "2020-09-29T14:30:00.000Z", + "y": 2.26666666666667, }, Object { - "x": "2020-09-15T08:54:00.000Z", - "y": 1.86666666666667, + "x": "2020-09-29T14:31:00.000Z", + "y": 1.03333333333333, }, Object { - "x": "2020-09-15T08:55:00.000Z", - "y": 0.966666666666667, + "x": "2020-09-29T14:32:00.000Z", + "y": 1.9, }, Object { - "x": "2020-09-15T08:56:00.000Z", - "y": 1.93333333333333, + "x": "2020-09-29T14:33:00.000Z", + "y": 0.8, }, Object { - "x": "2020-09-15T08:57:00.000Z", - "y": 1.1, + "x": "2020-09-29T14:34:00.000Z", + "y": 1.9, }, ] `); diff --git a/x-pack/test/apm_api_integration/basic/tests/services/top_services.ts b/x-pack/test/apm_api_integration/basic/tests/services/top_services.ts index 0e0d5cb21b71a..b4bbec1e0f861 100644 --- a/x-pack/test/apm_api_integration/basic/tests/services/top_services.ts +++ b/x-pack/test/apm_api_integration/basic/tests/services/top_services.ts @@ -68,11 +68,12 @@ export default function ApiTest({ getService }: FtrProviderContext) { Array [ "opbeans-python", "opbeans-node", - "opbeans-go", "opbeans-ruby", + "opbeans-go", "opbeans-dotnet", "opbeans-java", "opbeans-rum", + "elastic-co-frontend", ] `); }); @@ -91,76 +92,84 @@ export default function ApiTest({ getService }: FtrProviderContext) { Array [ Object { "avgResponseTime": Object { - "value": 213583.765249538, + "value": 219090.56261343, }, "transactionErrorRate": Object { - "value": 0, + "value": 0.317604355716878, }, "transactionsPerMinute": Object { - "value": 18.0333333333333, + "value": 18.3666666666667, }, }, Object { "avgResponseTime": Object { - "value": 600255.707964602, + "value": 600888.274678112, }, "transactionErrorRate": Object { "value": 0, }, "transactionsPerMinute": Object { - "value": 7.53333333333333, + "value": 7.76666666666667, }, }, Object { "avgResponseTime": Object { - "value": 1818501.06081081, + "value": 120020.290123457, }, "transactionErrorRate": Object { - "value": 0.0202702702702703, + "value": 0.0185185185185185, }, "transactionsPerMinute": Object { - "value": 4.93333333333333, + "value": 5.4, }, }, Object { "avgResponseTime": Object { - "value": 290900.571428571, + "value": 489731.277777778, }, "transactionErrorRate": Object { - "value": 0.0136054421768707, + "value": 0.0238095238095238, }, "transactionsPerMinute": Object { - "value": 4.9, + "value": 4.2, }, }, Object { "avgResponseTime": Object { - "value": 1123903.7027027, + "value": 1250898.95081967, }, "transactionErrorRate": Object { - "value": 0.00900900900900901, + "value": 0.0163934426229508, }, "transactionsPerMinute": Object { - "value": 3.7, + "value": 4.06666666666667, }, }, Object { "avgResponseTime": Object { - "value": 80364.6296296296, + "value": 311287.565217391, }, "transactionErrorRate": Object { - "value": 0.185185185185185, + "value": 0.152173913043478, }, "transactionsPerMinute": Object { - "value": 3.6, + "value": 3.06666666666667, }, }, Object { "avgResponseTime": Object { - "value": 1365102.94117647, + "value": 1827564.51612903, }, "transactionsPerMinute": Object { - "value": 2.26666666666667, + "value": 2.06666666666667, + }, + }, + Object { + "avgResponseTime": Object { + "value": 7480000, + }, + "transactionsPerMinute": Object { + "value": 0.0333333333333333, }, }, ] @@ -178,10 +187,10 @@ export default function ApiTest({ getService }: FtrProviderContext) { "testing", ], Array [ - "testing", + "production", ], Array [ - "production", + "testing", ], Array [ "production", @@ -192,6 +201,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { Array [ "testing", ], + Array [], ] `); }); diff --git a/x-pack/test/apm_api_integration/basic/tests/settings/agent_configuration.ts b/x-pack/test/apm_api_integration/basic/tests/settings/agent_configuration.ts index 70ddf276ab35c..a327f492f45fe 100644 --- a/x-pack/test/apm_api_integration/basic/tests/settings/agent_configuration.ts +++ b/x-pack/test/apm_api_integration/basic/tests/settings/agent_configuration.ts @@ -136,6 +136,7 @@ export default function agentConfigurationTests({ getService }: FtrProviderConte expectSnapshot(body).toMatchInline(` Array [ "ALL_OPTION_VALUE", + "elastic-co-frontend", "opbeans-dotnet", "opbeans-go", "opbeans-java", diff --git a/x-pack/test/apm_api_integration/basic/tests/traces/__snapshots__/top_traces.snap b/x-pack/test/apm_api_integration/basic/tests/traces/__snapshots__/top_traces.snap index 157bbccd109be..9cecb0b3b1dd7 100644 --- a/x-pack/test/apm_api_integration/basic/tests/traces/__snapshots__/top_traces.snap +++ b/x-pack/test/apm_api_integration/basic/tests/traces/__snapshots__/top_traces.snap @@ -3,44 +3,44 @@ exports[`Top traces when data is loaded returns the correct buckets 1`] = ` Array [ Object { - "averageResponseTime": 1137, + "averageResponseTime": 1756, "impact": 0, "key": Object { - "service.name": "opbeans-node", - "transaction.name": "POST /api/orders", + "service.name": "opbeans-java", + "transaction.name": "DispatcherServlet#doPost", }, - "serviceName": "opbeans-node", - "transactionName": "POST /api/orders", + "serviceName": "opbeans-java", + "transactionName": "DispatcherServlet#doPost", "transactionType": "request", "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 3347, - "impact": 0.00355908118244852, + "averageResponseTime": 3251, + "impact": 0.00224063647384788, "key": Object { - "service.name": "opbeans-python", - "transaction.name": "GET opbeans.views.stats", + "service.name": "opbeans-node", + "transaction.name": "GET /api/types", }, - "serviceName": "opbeans-python", - "transactionName": "GET opbeans.views.stats", + "serviceName": "opbeans-node", + "transactionName": "GET /api/types", "transactionType": "request", "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 4479, - "impact": 0.00538210376096966, + "averageResponseTime": 3813, + "impact": 0.00308293593759538, "key": Object { - "service.name": "opbeans-node", - "transaction.name": "GET /api/customers/:id", + "service.name": "opbeans-java", + "transaction.name": "ResourceHttpRequestHandler", }, - "serviceName": "opbeans-node", - "transactionName": "GET /api/customers/:id", + "serviceName": "opbeans-java", + "transactionName": "ResourceHttpRequestHandler", "transactionType": "request", "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 7287, - "impact": 0.00990423043984542, + "averageResponseTime": 7741, + "impact": 0.0089700396628626, "key": Object { "service.name": "opbeans-node", "transaction.name": "GET /api/products/top", @@ -51,20 +51,20 @@ Array [ "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 8023, - "impact": 0.011089517204679, + "averageResponseTime": 7994, + "impact": 0.00934922429689839, "key": Object { - "service.name": "opbeans-ruby", - "transaction.name": "Api::OrdersController#show", + "service.name": "opbeans-go", + "transaction.name": "POST /api/orders", }, - "serviceName": "opbeans-ruby", - "transactionName": "Api::OrdersController#show", + "serviceName": "opbeans-go", + "transactionName": "POST /api/orders", "transactionType": "request", "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 8282, - "impact": 0.0115066221939342, + "averageResponseTime": 10317, + "impact": 0.0128308286639543, "key": Object { "service.name": "opbeans-node", "transaction.name": "GET /api/orders/:id", @@ -75,368 +75,392 @@ Array [ "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 12116, - "impact": 0.0176810643900915, + "averageResponseTime": 10837, + "impact": 0.0136101804809449, "key": Object { - "service.name": "opbeans-ruby", - "transaction.name": "Api::ProductsController#top", + "service.name": "opbeans-java", + "transaction.name": "APIRestController#topProducts", }, - "serviceName": "opbeans-ruby", - "transactionName": "Api::ProductsController#top", + "serviceName": "opbeans-java", + "transactionName": "APIRestController#topProducts", "transactionType": "request", "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 6451, - "impact": 0.018946873353623, + "averageResponseTime": 6495, + "impact": 0.0168369967539847, "key": Object { "service.name": "opbeans-node", - "transaction.name": "GET /api/products", + "transaction.name": "GET /api/products/:id", }, "serviceName": "opbeans-node", - "transactionName": "GET /api/products", + "transactionName": "GET /api/products/:id", "transactionType": "request", "transactionsPerMinute": 0.0666666666666667, }, Object { - "averageResponseTime": 13360, - "impact": 0.019684456693696, + "averageResponseTime": 13952, + "impact": 0.0182787976154172, "key": Object { "service.name": "opbeans-java", - "transaction.name": "APIRestController#customers", + "transaction.name": "APIRestController#stats", }, "serviceName": "opbeans-java", - "transactionName": "APIRestController#customers", + "transactionName": "APIRestController#stats", "transactionType": "request", "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 7903, - "impact": 0.0236236026539988, + "averageResponseTime": 7324.5, + "impact": 0.0193234288008834, "key": Object { "service.name": "opbeans-java", - "transaction.name": "APIRestController#product", + "transaction.name": "APIRestController#customerWhoBought", }, "serviceName": "opbeans-java", - "transactionName": "APIRestController#product", + "transactionName": "APIRestController#customerWhoBought", "transactionType": "request", "transactionsPerMinute": 0.0666666666666667, }, Object { - "averageResponseTime": 17913, - "impact": 0.0270168081071296, + "averageResponseTime": 7089.66666666667, + "impact": 0.0292451769325711, "key": Object { - "service.name": "opbeans-node", - "transaction.name": "GET /api/stats", + "service.name": "opbeans-go", + "transaction.name": "GET /api/customers/:id", }, - "serviceName": "opbeans-node", - "transactionName": "GET /api/stats", + "serviceName": "opbeans-go", + "transactionName": "GET /api/customers/:id", "transactionType": "request", - "transactionsPerMinute": 0.0333333333333333, + "transactionsPerMinute": 0.1, }, Object { - "averageResponseTime": 6065.66666666667, - "impact": 0.0274741741957338, + "averageResponseTime": 11759.5, + "impact": 0.0326173722945495, "key": Object { - "service.name": "opbeans-java", - "transaction.name": "APIRestController#topProducts", + "service.name": "opbeans-node", + "transaction.name": "GET /api/customers/:id", }, - "serviceName": "opbeans-java", - "transactionName": "APIRestController#topProducts", + "serviceName": "opbeans-node", + "transactionName": "GET /api/customers/:id", "transactionType": "request", - "transactionsPerMinute": 0.1, + "transactionsPerMinute": 0.0666666666666667, }, Object { - "averageResponseTime": 2340.875, - "impact": 0.0283277095019319, + "averageResponseTime": 8109.33333333333, + "impact": 0.0338298638713675, "key": Object { "service.name": "opbeans-java", - "transaction.name": "ResourceHttpRequestHandler", + "transaction.name": "APIRestController#customer", }, "serviceName": "opbeans-java", - "transactionName": "ResourceHttpRequestHandler", + "transactionName": "APIRestController#customer", "transactionType": "request", - "transactionsPerMinute": 0.266666666666667, + "transactionsPerMinute": 0.1, }, Object { - "averageResponseTime": 7340.66666666667, - "impact": 0.0336341223961255, + "averageResponseTime": 8677.33333333333, + "impact": 0.0363837398255058, "key": Object { "service.name": "opbeans-java", - "transaction.name": "APIRestController#customerWhoBought", + "transaction.name": "APIRestController#order", }, "serviceName": "opbeans-java", - "transactionName": "APIRestController#customerWhoBought", + "transactionName": "APIRestController#order", "transactionType": "request", "transactionsPerMinute": 0.1, }, Object { - "averageResponseTime": 7689, - "impact": 0.0353170363489122, + "averageResponseTime": 26624, + "impact": 0.0372710018940797, "key": Object { "service.name": "opbeans-node", - "transaction.name": "GET /api/types", + "transaction.name": "GET /api/customers", }, "serviceName": "opbeans-node", - "transactionName": "GET /api/types", + "transactionName": "GET /api/customers", "transactionType": "request", - "transactionsPerMinute": 0.1, + "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 11598, - "impact": 0.0355247836215529, + "averageResponseTime": 5687.8, + "impact": 0.0399912394860756, + "key": Object { + "service.name": "opbeans-go", + "transaction.name": "GET /api/products", + }, + "serviceName": "opbeans-go", + "transactionName": "GET /api/products", + "transactionType": "request", + "transactionsPerMinute": 0.166666666666667, + }, + Object { + "averageResponseTime": 9496.33333333333, + "impact": 0.0400661771607863, "key": Object { "service.name": "opbeans-node", - "transaction.name": "GET /api/products/:id/customers", + "transaction.name": "GET /api/products", }, "serviceName": "opbeans-node", - "transactionName": "GET /api/products/:id/customers", + "transactionName": "GET /api/products", "transactionType": "request", - "transactionsPerMinute": 0.0666666666666667, + "transactionsPerMinute": 0.1, }, Object { - "averageResponseTime": 12077.5, - "impact": 0.0370691993925792, + "averageResponseTime": 10717.3333333333, + "impact": 0.0455561112100871, "key": Object { "service.name": "opbeans-java", - "transaction.name": "APIRestController#order", + "transaction.name": "APIRestController#products", }, "serviceName": "opbeans-java", - "transactionName": "APIRestController#order", + "transactionName": "APIRestController#products", "transactionType": "request", - "transactionsPerMinute": 0.0666666666666667, + "transactionsPerMinute": 0.1, }, Object { - "averageResponseTime": 6296.5, - "impact": 0.0387295671297305, + "averageResponseTime": 8438.75, + "impact": 0.04795861306131, "key": Object { - "service.name": "opbeans-ruby", - "transaction.name": "Api::TypesController#index", + "service.name": "opbeans-node", + "transaction.name": "GET /api/orders", }, - "serviceName": "opbeans-ruby", - "transactionName": "Api::TypesController#index", + "serviceName": "opbeans-node", + "transactionName": "GET /api/orders", "transactionType": "request", "transactionsPerMinute": 0.133333333333333, }, Object { - "averageResponseTime": 28181, - "impact": 0.0435528468317365, + "averageResponseTime": 17322.5, + "impact": 0.0492925036711592, + "key": Object { + "service.name": "opbeans-java", + "transaction.name": "APIRestController#customers", + }, + "serviceName": "opbeans-java", + "transactionName": "APIRestController#customers", + "transactionType": "request", + "transactionsPerMinute": 0.0666666666666667, + }, + Object { + "averageResponseTime": 34696, + "impact": 0.0493689400993641, "key": Object { "service.name": "opbeans-python", - "transaction.name": "GET opbeans.views.customer", + "transaction.name": "GET opbeans.views.product", }, "serviceName": "opbeans-python", - "transactionName": "GET opbeans.views.customer", + "transactionName": "GET opbeans.views.product", "transactionType": "request", "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 7439, - "impact": 0.0460892960907213, + "averageResponseTime": 7321.4, + "impact": 0.0522330580268044, "key": Object { "service.name": "opbeans-go", - "transaction.name": "GET /api/customers/:id", + "transaction.name": "GET /api/types/:id", }, "serviceName": "opbeans-go", - "transactionName": "GET /api/customers/:id", + "transactionName": "GET /api/types/:id", "transactionType": "request", - "transactionsPerMinute": 0.133333333333333, + "transactionsPerMinute": 0.166666666666667, }, Object { - "averageResponseTime": 10471.3333333333, - "impact": 0.0487594121995447, + "averageResponseTime": 9663.5, + "impact": 0.0553010064294577, "key": Object { - "service.name": "opbeans-node", - "transaction.name": "GET /api/types/:id", + "service.name": "opbeans-ruby", + "transaction.name": "Api::OrdersController#show", }, - "serviceName": "opbeans-node", - "transactionName": "GET /api/types/:id", + "serviceName": "opbeans-ruby", + "transactionName": "Api::OrdersController#show", "transactionType": "request", - "transactionsPerMinute": 0.1, + "transactionsPerMinute": 0.133333333333333, }, Object { - "averageResponseTime": 20810.5, - "impact": 0.0651972138417402, + "averageResponseTime": 44819, + "impact": 0.0645408217212785, "key": Object { - "service.name": "opbeans-node", - "transaction.name": "GET /api/customers", + "service.name": "opbeans-python", + "transaction.name": "GET opbeans.views.products", }, - "serviceName": "opbeans-node", - "transactionName": "GET /api/customers", + "serviceName": "opbeans-python", + "transactionName": "GET opbeans.views.products", "transactionType": "request", - "transactionsPerMinute": 0.0666666666666667, + "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 11732.25, - "impact": 0.0737454504555125, + "averageResponseTime": 14944, + "impact": 0.0645603055167033, "key": Object { - "service.name": "opbeans-java", - "transaction.name": "APIRestController#customer", + "service.name": "opbeans-ruby", + "transaction.name": "Api::ProductsController#index", }, - "serviceName": "opbeans-java", - "transactionName": "APIRestController#customer", + "serviceName": "opbeans-ruby", + "transactionName": "Api::ProductsController#index", "transactionType": "request", - "transactionsPerMinute": 0.133333333333333, + "transactionsPerMinute": 0.1, }, Object { - "averageResponseTime": 47646, - "impact": 0.0749001387848408, + "averageResponseTime": 24056, + "impact": 0.0694762169777207, "key": Object { "service.name": "opbeans-python", - "transaction.name": "GET opbeans.views.customers", + "transaction.name": "GET opbeans.views.product_types", }, "serviceName": "opbeans-python", - "transactionName": "GET opbeans.views.customers", + "transactionName": "GET opbeans.views.product_types", "transactionType": "request", - "transactionsPerMinute": 0.0333333333333333, + "transactionsPerMinute": 0.0666666666666667, }, Object { - "averageResponseTime": 13160.75, - "impact": 0.0829475273227119, + "averageResponseTime": 8401.33333333333, + "impact": 0.0729173550004329, "key": Object { - "service.name": "opbeans-python", - "transaction.name": "GET opbeans.views.products", + "service.name": "opbeans-go", + "transaction.name": "GET /api/types", }, - "serviceName": "opbeans-python", - "transactionName": "GET opbeans.views.products", + "serviceName": "opbeans-go", + "transactionName": "GET /api/types", "transactionType": "request", - "transactionsPerMinute": 0.133333333333333, + "transactionsPerMinute": 0.2, }, Object { - "averageResponseTime": 4131.46153846154, - "impact": 0.0846642605989518, + "averageResponseTime": 13182, + "impact": 0.0763944631070062, "key": Object { - "service.name": "opbeans-go", - "transaction.name": "GET /api/types/:id", + "service.name": "opbeans-node", + "transaction.name": "GET /api/products/:id/customers", }, - "serviceName": "opbeans-go", - "transactionName": "GET /api/types/:id", + "serviceName": "opbeans-node", + "transactionName": "GET /api/products/:id/customers", "transactionType": "request", - "transactionsPerMinute": 0.433333333333333, + "transactionsPerMinute": 0.133333333333333, }, Object { - "averageResponseTime": 13869.25, - "impact": 0.0875115255449106, + "averageResponseTime": 7923, + "impact": 0.0804905564066893, "key": Object { "service.name": "opbeans-ruby", - "transaction.name": "Api::StatsController#index", + "transaction.name": "Api::TypesController#index", }, "serviceName": "opbeans-ruby", - "transactionName": "Api::StatsController#index", + "transactionName": "Api::TypesController#index", "transactionType": "request", - "transactionsPerMinute": 0.133333333333333, + "transactionsPerMinute": 0.233333333333333, }, Object { - "averageResponseTime": 20643.3333333333, - "impact": 0.0979037205088655, + "averageResponseTime": 19838.6666666667, + "impact": 0.0865680018257216, "key": Object { "service.name": "opbeans-ruby", - "transaction.name": "Api::ProductsController#show", + "transaction.name": "Api::CustomersController#index", }, "serviceName": "opbeans-ruby", - "transactionName": "Api::ProductsController#show", + "transactionName": "Api::CustomersController#index", "transactionType": "request", "transactionsPerMinute": 0.1, }, Object { - "averageResponseTime": 15596.5, - "impact": 0.0986380829609906, + "averageResponseTime": 7952.33333333333, + "impact": 0.104635475198455, "key": Object { - "service.name": "opbeans-ruby", - "transaction.name": "Api::TypesController#show", + "service.name": "opbeans-go", + "transaction.name": "GET /api/orders/:id", }, - "serviceName": "opbeans-ruby", - "transactionName": "Api::TypesController#show", + "serviceName": "opbeans-go", + "transactionName": "GET /api/orders/:id", "transactionType": "request", - "transactionsPerMinute": 0.133333333333333, + "transactionsPerMinute": 0.3, }, Object { - "averageResponseTime": 20989, - "impact": 0.0995737509098606, + "averageResponseTime": 19666, + "impact": 0.115266133732905, "key": Object { - "service.name": "opbeans-python", - "transaction.name": "GET opbeans.views.orders", + "service.name": "opbeans-node", + "transaction.name": "GET /api/stats", }, - "serviceName": "opbeans-python", - "transactionName": "GET opbeans.views.orders", + "serviceName": "opbeans-node", + "transactionName": "GET /api/stats", "transactionType": "request", - "transactionsPerMinute": 0.1, + "transactionsPerMinute": 0.133333333333333, }, Object { - "averageResponseTime": 74419, - "impact": 0.118016555299635, + "averageResponseTime": 40188.5, + "impact": 0.117833498468491, "key": Object { "service.name": "opbeans-python", - "transaction.name": "GET opbeans.views.product_type", + "transaction.name": "GET opbeans.views.customer", }, "serviceName": "opbeans-python", - "transactionName": "GET opbeans.views.product_type", + "transactionName": "GET opbeans.views.customer", "transactionType": "request", - "transactionsPerMinute": 0.0333333333333333, + "transactionsPerMinute": 0.0666666666666667, }, Object { - "averageResponseTime": 10678.4285714286, - "impact": 0.118548001811041, + "averageResponseTime": 26802.3333333333, + "impact": 0.117878461073318, "key": Object { - "service.name": "opbeans-go", - "transaction.name": "GET /api/orders/:id", + "service.name": "opbeans-ruby", + "transaction.name": "Api::ProductsController#show", }, - "serviceName": "opbeans-go", - "transactionName": "GET /api/orders/:id", + "serviceName": "opbeans-ruby", + "transactionName": "Api::ProductsController#show", "transactionType": "request", - "transactionsPerMinute": 0.233333333333333, + "transactionsPerMinute": 0.1, }, Object { - "averageResponseTime": 27078.6666666667, - "impact": 0.12899495187011, + "averageResponseTime": 14709.3333333333, + "impact": 0.129642177249393, "key": Object { "service.name": "opbeans-ruby", - "transaction.name": "Api::OrdersController#index", + "transaction.name": "Api::StatsController#index", }, "serviceName": "opbeans-ruby", - "transactionName": "Api::OrdersController#index", + "transactionName": "Api::StatsController#index", "transactionType": "request", - "transactionsPerMinute": 0.1, + "transactionsPerMinute": 0.2, }, Object { - "averageResponseTime": 11827.4285714286, - "impact": 0.13150080269359, + "averageResponseTime": 15432, + "impact": 0.136140772400299, "key": Object { - "service.name": "opbeans-go", - "transaction.name": "GET /api/customers", + "service.name": "opbeans-ruby", + "transaction.name": "Api::TypesController#show", }, - "serviceName": "opbeans-go", - "transactionName": "GET /api/customers", + "serviceName": "opbeans-ruby", + "transactionName": "Api::TypesController#show", "transactionType": "request", - "transactionsPerMinute": 0.233333333333333, + "transactionsPerMinute": 0.2, }, Object { - "averageResponseTime": 21770.75, - "impact": 0.138411217785846, + "averageResponseTime": 33266.3333333333, + "impact": 0.146942288833089, "key": Object { "service.name": "opbeans-python", - "transaction.name": "GET opbeans.views.product", + "transaction.name": "GET opbeans.views.orders", }, "serviceName": "opbeans-python", - "transactionName": "GET opbeans.views.product", + "transactionName": "GET opbeans.views.orders", "transactionType": "request", - "transactionsPerMinute": 0.133333333333333, + "transactionsPerMinute": 0.1, }, Object { - "averageResponseTime": 10252, - "impact": 0.146761369790822, + "averageResponseTime": 33445.3333333333, + "impact": 0.147747119459481, "key": Object { - "service.name": "opbeans-go", - "transaction.name": "GET /api/types", + "service.name": "opbeans-python", + "transaction.name": "GET opbeans.views.customers", }, - "serviceName": "opbeans-go", - "transactionName": "GET /api/types", + "serviceName": "opbeans-python", + "transactionName": "GET opbeans.views.customers", "transactionType": "request", - "transactionsPerMinute": 0.3, + "transactionsPerMinute": 0.1, }, Object { - "averageResponseTime": 100570, - "impact": 0.160131275662626, + "averageResponseTime": 107438, + "impact": 0.158391266775379, "key": Object { "service.name": "opbeans-python", "transaction.name": "GET opbeans.views.top_products", @@ -447,44 +471,56 @@ Array [ "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 15505, - "impact": 0.197928395731435, + "averageResponseTime": 27696.75, + "impact": 0.163410592227497, "key": Object { "service.name": "opbeans-ruby", - "transaction.name": "Api::CustomersController#index", + "transaction.name": "Api::ProductsController#top", }, "serviceName": "opbeans-ruby", - "transactionName": "Api::CustomersController#index", + "transactionName": "Api::ProductsController#top", "transactionType": "request", - "transactionsPerMinute": 0.266666666666667, + "transactionsPerMinute": 0.133333333333333, }, Object { - "averageResponseTime": 22856.5, - "impact": 0.219023601346318, + "averageResponseTime": 55832.5, + "impact": 0.164726497795416, "key": Object { - "service.name": "opbeans-go", - "transaction.name": "GET /api/products", + "service.name": "opbeans-python", + "transaction.name": "GET opbeans.views.stats", }, - "serviceName": "opbeans-go", - "transactionName": "GET /api/products", + "serviceName": "opbeans-python", + "transactionName": "GET opbeans.views.stats", "transactionType": "request", - "transactionsPerMinute": 0.2, + "transactionsPerMinute": 0.0666666666666667, }, Object { - "averageResponseTime": 17250.125, - "impact": 0.220411804051871, + "averageResponseTime": 10483.6363636364, + "impact": 0.170204441816763, "key": Object { - "service.name": "opbeans-ruby", - "transaction.name": "Api::ProductsController#index", + "service.name": "opbeans-python", + "transaction.name": "GET opbeans.views.order", }, - "serviceName": "opbeans-ruby", - "transactionName": "Api::ProductsController#index", + "serviceName": "opbeans-python", + "transactionName": "GET opbeans.views.order", "transactionType": "request", - "transactionsPerMinute": 0.266666666666667, + "transactionsPerMinute": 0.366666666666667, + }, + Object { + "averageResponseTime": 24524.5, + "impact": 0.217905269277069, + "key": Object { + "service.name": "opbeans-go", + "transaction.name": "GET /api/customers", + }, + "serviceName": "opbeans-go", + "transactionName": "GET /api/customers", + "transactionType": "request", + "transactionsPerMinute": 0.2, }, Object { - "averageResponseTime": 20089.5555555556, - "impact": 0.289346858357169, + "averageResponseTime": 14822.3, + "impact": 0.219517928036841, "key": Object { "service.name": "opbeans-ruby", "transaction.name": "Api::CustomersController#show", @@ -492,11 +528,11 @@ Array [ "serviceName": "opbeans-ruby", "transactionName": "Api::CustomersController#show", "transactionType": "request", - "transactionsPerMinute": 0.3, + "transactionsPerMinute": 0.333333333333333, }, Object { - "averageResponseTime": 26487.8571428571, - "impact": 0.296769394633144, + "averageResponseTime": 44771.75, + "impact": 0.26577545588222, "key": Object { "service.name": "opbeans-go", "transaction.name": "GET /api/stats", @@ -504,23 +540,35 @@ Array [ "serviceName": "opbeans-go", "transactionName": "GET /api/stats", "transactionType": "request", + "transactionsPerMinute": 0.133333333333333, + }, + Object { + "averageResponseTime": 39421.4285714286, + "impact": 0.410949215592138, + "key": Object { + "service.name": "opbeans-ruby", + "transaction.name": "Api::OrdersController#index", + }, + "serviceName": "opbeans-ruby", + "transactionName": "Api::OrdersController#index", + "transactionType": "request", "transactionsPerMinute": 0.233333333333333, }, Object { - "averageResponseTime": 14957.5384615385, - "impact": 0.311316535049912, + "averageResponseTime": 33513.3076923077, + "impact": 0.650334619948262, "key": Object { "service.name": "opbeans-go", - "transaction.name": "GET /api/products/:id/customers", + "transaction.name": "GET /api/products/:id", }, "serviceName": "opbeans-go", - "transactionName": "GET /api/products/:id/customers", + "transactionName": "GET /api/products/:id", "transactionType": "request", "transactionsPerMinute": 0.433333333333333, }, Object { - "averageResponseTime": 30178.5, - "impact": 0.678579893755146, + "averageResponseTime": 28933.2222222222, + "impact": 0.777916011143112, "key": Object { "service.name": "opbeans-node", "transaction.name": "GET /api", @@ -528,23 +576,23 @@ Array [ "serviceName": "opbeans-node", "transactionName": "GET /api", "transactionType": "request", - "transactionsPerMinute": 0.466666666666667, + "transactionsPerMinute": 0.6, }, Object { - "averageResponseTime": 32625.875, - "impact": 0.838843225823637, + "averageResponseTime": 101613, + "impact": 1.06341806051616, "key": Object { "service.name": "opbeans-go", - "transaction.name": "GET /api/products/:id", + "transaction.name": "GET /api/products/:id/customers", }, "serviceName": "opbeans-go", - "transactionName": "GET /api/products/:id", + "transactionName": "GET /api/products/:id/customers", "transactionType": "request", - "transactionsPerMinute": 0.533333333333333, + "transactionsPerMinute": 0.233333333333333, }, Object { - "averageResponseTime": 121200.833333333, - "impact": 1.16929183528418, + "averageResponseTime": 377325, + "impact": 1.12840251327172, "key": Object { "service.name": "opbeans-python", "transaction.name": "GET opbeans.views.product_customers", @@ -552,11 +600,11 @@ Array [ "serviceName": "opbeans-python", "transactionName": "GET opbeans.views.product_customers", "transactionType": "request", - "transactionsPerMinute": 0.2, + "transactionsPerMinute": 0.0666666666666667, }, Object { - "averageResponseTime": 38025.8666666667, - "impact": 3.67248059487481, + "averageResponseTime": 39452.8333333333, + "impact": 3.54517249775948, "key": Object { "service.name": "opbeans-python", "transaction.name": "opbeans.tasks.sync_orders", @@ -567,20 +615,8 @@ Array [ "transactionsPerMinute": 2, }, Object { - "averageResponseTime": 815238, - "impact": 11.8142250451802, - "key": Object { - "service.name": "opbeans-java", - "transaction.name": "DispatcherServlet#doGet", - }, - "serviceName": "opbeans-java", - "transactionName": "DispatcherServlet#doGet", - "transactionType": "request", - "transactionsPerMinute": 0.3, - }, - Object { - "averageResponseTime": 691636.363636364, - "impact": 12.2504266790787, + "averageResponseTime": 715444.444444444, + "impact": 9.64784193809929, "key": Object { "service.name": "opbeans-rum", "transaction.name": "/customers", @@ -588,11 +624,11 @@ Array [ "serviceName": "opbeans-rum", "transactionName": "/customers", "transactionType": "page-load", - "transactionsPerMinute": 0.366666666666667, + "transactionsPerMinute": 0.3, }, Object { - "averageResponseTime": 1590910.5, - "impact": 20.4947467478614, + "averageResponseTime": 833539.125, + "impact": 9.99152559811767, "key": Object { "service.name": "opbeans-go", "transaction.name": "GET /api/orders", @@ -603,8 +639,20 @@ Array [ "transactionsPerMinute": 0.266666666666667, }, Object { - "averageResponseTime": 303589.162790698, - "impact": 21.0214424495446, + "averageResponseTime": 7480000, + "impact": 11.2080443255746, + "key": Object { + "service.name": "elastic-co-frontend", + "transaction.name": "/community/security", + }, + "serviceName": "elastic-co-frontend", + "transactionName": "/community/security", + "transactionType": "page-load", + "transactionsPerMinute": 0.0333333333333333, + }, + Object { + "averageResponseTime": 171383.519230769, + "impact": 13.354173900338, "key": Object { "service.name": "opbeans-ruby", "transaction.name": "Rack", @@ -612,11 +660,23 @@ Array [ "serviceName": "opbeans-ruby", "transactionName": "Rack", "transactionType": "request", - "transactionsPerMinute": 1.43333333333333, + "transactionsPerMinute": 1.73333333333333, }, Object { - "averageResponseTime": 1180200, - "impact": 28.5078585961908, + "averageResponseTime": 1052468.6, + "impact": 15.7712781068549, + "key": Object { + "service.name": "opbeans-java", + "transaction.name": "DispatcherServlet#doGet", + }, + "serviceName": "opbeans-java", + "transactionName": "DispatcherServlet#doGet", + "transactionType": "request", + "transactionsPerMinute": 0.333333333333333, + }, + Object { + "averageResponseTime": 1413866.66666667, + "impact": 31.7829322941256, "key": Object { "service.name": "opbeans-rum", "transaction.name": "/products", @@ -627,8 +687,8 @@ Array [ "transactionsPerMinute": 0.5, }, Object { - "averageResponseTime": 1073178.57142857, - "impact": 48.3903998986838, + "averageResponseTime": 996583.333333333, + "impact": 35.8445542634419, "key": Object { "service.name": "opbeans-rum", "transaction.name": "/dashboard", @@ -636,23 +696,11 @@ Array [ "serviceName": "opbeans-rum", "transactionName": "/dashboard", "transactionType": "page-load", - "transactionsPerMinute": 0.933333333333333, - }, - Object { - "averageResponseTime": 2676214.28571429, - "impact": 60.3366732975087, - "key": Object { - "service.name": "opbeans-rum", - "transaction.name": "/orders", - }, - "serviceName": "opbeans-rum", - "transactionName": "/orders", - "transactionType": "page-load", - "transactionsPerMinute": 0.466666666666667, + "transactionsPerMinute": 0.8, }, Object { - "averageResponseTime": 928922.434782609, - "impact": 68.8131356442496, + "averageResponseTime": 1046912.60465116, + "impact": 67.4671169361798, "key": Object { "service.name": "opbeans-node", "transaction.name": "Process completed order", @@ -660,23 +708,23 @@ Array [ "serviceName": "opbeans-node", "transactionName": "Process completed order", "transactionType": "Worker", - "transactionsPerMinute": 1.53333333333333, + "transactionsPerMinute": 1.43333333333333, }, Object { - "averageResponseTime": 1012219.09302326, - "impact": 70.0934208886629, + "averageResponseTime": 1142941.8, + "impact": 68.5168888461311, "key": Object { "service.name": "opbeans-node", - "transaction.name": "Process payment", + "transaction.name": "Update shipping status", }, "serviceName": "opbeans-node", - "transactionName": "Process payment", + "transactionName": "Update shipping status", "transactionType": "Worker", - "transactionsPerMinute": 1.43333333333333, + "transactionsPerMinute": 1.33333333333333, }, Object { - "averageResponseTime": 126010.608333333, - "impact": 73.0540578695005, + "averageResponseTime": 128285.213888889, + "impact": 69.2138167147075, "key": Object { "service.name": "opbeans-python", "transaction.name": "opbeans.tasks.update_stats", @@ -687,19 +735,31 @@ Array [ "transactionsPerMinute": 12, }, Object { - "averageResponseTime": 1041680.24444444, - "impact": 75.4887141857793, + "averageResponseTime": 1032979.06666667, + "impact": 69.6655125415468, "key": Object { "service.name": "opbeans-node", - "transaction.name": "Update shipping status", + "transaction.name": "Process payment", }, "serviceName": "opbeans-node", - "transactionName": "Update shipping status", + "transactionName": "Process payment", "transactionType": "Worker", "transactionsPerMinute": 1.5, }, Object { - "averageResponseTime": 1724883.75, + "averageResponseTime": 4410285.71428571, + "impact": 92.5364039355288, + "key": Object { + "service.name": "opbeans-rum", + "transaction.name": "/orders", + }, + "serviceName": "opbeans-rum", + "transactionName": "/orders", + "transactionType": "page-load", + "transactionsPerMinute": 0.466666666666667, + }, + Object { + "averageResponseTime": 1803347.81081081, "impact": 100, "key": Object { "service.name": "opbeans-python", @@ -708,7 +768,7 @@ Array [ "serviceName": "opbeans-python", "transactionName": "opbeans.tasks.sync_customers", "transactionType": "celery", - "transactionsPerMinute": 1.2, + "transactionsPerMinute": 1.23333333333333, }, ] `; diff --git a/x-pack/test/apm_api_integration/basic/tests/traces/top_traces.ts b/x-pack/test/apm_api_integration/basic/tests/traces/top_traces.ts index b6fccf8f5b581..6a3a1ddd0f6ae 100644 --- a/x-pack/test/apm_api_integration/basic/tests/traces/top_traces.ts +++ b/x-pack/test/apm_api_integration/basic/tests/traces/top_traces.ts @@ -49,7 +49,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); it('returns the correct number of buckets', async () => { - expectSnapshot(response.body.items.length).toMatchInline(`59`); + expectSnapshot(response.body.items.length).toMatchInline(`64`); }); it('returns the correct buckets', async () => { @@ -64,14 +64,14 @@ export default function ApiTest({ getService }: FtrProviderContext) { expectSnapshot(firstItem).toMatchInline(` Object { - "averageResponseTime": 1137, + "averageResponseTime": 1756, "impact": 0, "key": Object { - "service.name": "opbeans-node", - "transaction.name": "POST /api/orders", + "service.name": "opbeans-java", + "transaction.name": "DispatcherServlet#doPost", }, - "serviceName": "opbeans-node", - "transactionName": "POST /api/orders", + "serviceName": "opbeans-java", + "transactionName": "DispatcherServlet#doPost", "transactionType": "request", "transactionsPerMinute": 0.0333333333333333, } @@ -79,7 +79,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { expectSnapshot(lastItem).toMatchInline(` Object { - "averageResponseTime": 1724883.75, + "averageResponseTime": 1803347.81081081, "impact": 100, "key": Object { "service.name": "opbeans-python", @@ -88,31 +88,31 @@ export default function ApiTest({ getService }: FtrProviderContext) { "serviceName": "opbeans-python", "transactionName": "opbeans.tasks.sync_customers", "transactionType": "celery", - "transactionsPerMinute": 1.2, + "transactionsPerMinute": 1.23333333333333, } `); expectSnapshot(groups).toMatchInline(` Array [ Object { - "service.name": "opbeans-node", - "transaction.name": "POST /api/orders", + "service.name": "opbeans-java", + "transaction.name": "DispatcherServlet#doPost", }, Object { - "service.name": "opbeans-python", - "transaction.name": "GET opbeans.views.stats", + "service.name": "opbeans-node", + "transaction.name": "GET /api/types", }, Object { - "service.name": "opbeans-node", - "transaction.name": "GET /api/customers/:id", + "service.name": "opbeans-java", + "transaction.name": "ResourceHttpRequestHandler", }, Object { "service.name": "opbeans-node", "transaction.name": "GET /api/products/top", }, Object { - "service.name": "opbeans-ruby", - "transaction.name": "Api::OrdersController#show", + "service.name": "opbeans-go", + "transaction.name": "POST /api/orders", }, ] `); diff --git a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/breakdown.snap b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/breakdown.snap index 87938f6f1f122..5f598ba72cd72 100644 --- a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/breakdown.snap +++ b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/breakdown.snap @@ -7,252 +7,252 @@ Object { "color": "#54b399", "data": Array [ Object { - "x": 1600159980000, - "y": null, + "x": 1601389800000, + "y": 0.0161290322580645, }, Object { - "x": 1600160010000, - "y": null, + "x": 1601389830000, + "y": 0.402597402597403, }, Object { - "x": 1600160040000, - "y": null, + "x": 1601389860000, + "y": 0.0303030303030303, }, Object { - "x": 1600160070000, - "y": 1, + "x": 1601389890000, + "y": null, }, Object { - "x": 1600160100000, - "y": 0.1875, + "x": 1601389920000, + "y": 0.518072289156627, }, Object { - "x": 1600160130000, - "y": 0.2625, + "x": 1601389950000, + "y": 0.120603015075377, }, Object { - "x": 1600160160000, - "y": null, + "x": 1601389980000, + "y": 0.823529411764706, }, Object { - "x": 1600160190000, - "y": 0.482758620689655, + "x": 1601390010000, + "y": null, }, Object { - "x": 1600160220000, - "y": 0.44, + "x": 1601390040000, + "y": 0.273381294964029, }, Object { - "x": 1600160250000, - "y": 1, + "x": 1601390070000, + "y": 0.39047619047619, }, Object { - "x": 1600160280000, + "x": 1601390100000, "y": null, }, Object { - "x": 1600160310000, - "y": 0.171428571428571, + "x": 1601390130000, + "y": 0.733333333333333, }, Object { - "x": 1600160340000, - "y": 0.55, + "x": 1601390160000, + "y": 0.144230769230769, }, Object { - "x": 1600160370000, - "y": 0.5, + "x": 1601390190000, + "y": 0.0688524590163934, }, Object { - "x": 1600160400000, + "x": 1601390220000, "y": null, }, Object { - "x": 1600160430000, - "y": 0.419642857142857, - }, - Object { - "x": 1600160460000, - "y": 0.722222222222222, + "x": 1601390250000, + "y": null, }, Object { - "x": 1600160490000, - "y": 0.833333333333333, + "x": 1601390280000, + "y": 0.0540540540540541, }, Object { - "x": 1600160520000, + "x": 1601390310000, "y": null, }, Object { - "x": 1600160550000, + "x": 1601390340000, "y": null, }, Object { - "x": 1600160580000, - "y": 0.11044776119403, + "x": 1601390370000, + "y": 1, }, Object { - "x": 1600160610000, + "x": 1601390400000, "y": null, }, Object { - "x": 1600160640000, - "y": null, + "x": 1601390430000, + "y": 0.75, + }, + Object { + "x": 1601390460000, + "y": 0.764705882352941, }, Object { - "x": 1600160670000, - "y": 0.15028901734104, + "x": 1601390490000, + "y": 0.117647058823529, }, Object { - "x": 1600160700000, - "y": 0.380952380952381, + "x": 1601390520000, + "y": 0.220588235294118, }, Object { - "x": 1600160730000, - "y": 0.0676156583629893, + "x": 1601390550000, + "y": 0.302325581395349, }, Object { - "x": 1600160760000, + "x": 1601390580000, "y": null, }, Object { - "x": 1600160790000, - "y": 0.263736263736264, + "x": 1601390610000, + "y": null, }, Object { - "x": 1600160820000, + "x": 1601390640000, "y": null, }, Object { - "x": 1600160850000, - "y": 0.529411764705882, + "x": 1601390670000, + "y": 0.215686274509804, }, Object { - "x": 1600160880000, + "x": 1601390700000, "y": null, }, Object { - "x": 1600160910000, - "y": 0.0120967741935484, + "x": 1601390730000, + "y": null, }, Object { - "x": 1600160940000, - "y": 0.261261261261261, + "x": 1601390760000, + "y": 0.217391304347826, }, Object { - "x": 1600160970000, - "y": null, + "x": 1601390790000, + "y": 0.253333333333333, }, Object { - "x": 1600161000000, + "x": 1601390820000, "y": null, }, Object { - "x": 1600161030000, - "y": 0.160714285714286, + "x": 1601390850000, + "y": 0.117647058823529, }, Object { - "x": 1600161060000, - "y": 0.0402684563758389, + "x": 1601390880000, + "y": 0.361111111111111, }, Object { - "x": 1600161090000, - "y": 1, + "x": 1601390910000, + "y": null, }, Object { - "x": 1600161120000, + "x": 1601390940000, "y": null, }, Object { - "x": 1600161150000, - "y": 0.0789473684210526, + "x": 1601390970000, + "y": 0.19047619047619, }, Object { - "x": 1600161180000, - "y": 0.407407407407407, + "x": 1601391000000, + "y": 0.354430379746835, }, Object { - "x": 1600161210000, + "x": 1601391030000, "y": null, }, Object { - "x": 1600161240000, + "x": 1601391060000, "y": null, }, Object { - "x": 1600161270000, - "y": 0.666666666666667, + "x": 1601391090000, + "y": null, }, Object { - "x": 1600161300000, - "y": 0.821428571428571, + "x": 1601391120000, + "y": 0.437956204379562, }, Object { - "x": 1600161330000, - "y": 1, + "x": 1601391150000, + "y": 0.0175438596491228, }, Object { - "x": 1600161360000, + "x": 1601391180000, "y": null, }, Object { - "x": 1600161390000, - "y": 0.173333333333333, + "x": 1601391210000, + "y": 0.277777777777778, }, Object { - "x": 1600161420000, - "y": 0.142857142857143, + "x": 1601391240000, + "y": 1, }, Object { - "x": 1600161450000, - "y": 0.85, + "x": 1601391270000, + "y": 0.885714285714286, }, Object { - "x": 1600161480000, + "x": 1601391300000, "y": null, }, Object { - "x": 1600161510000, - "y": 0.421052631578947, + "x": 1601391330000, + "y": null, }, Object { - "x": 1600161540000, - "y": null, + "x": 1601391360000, + "y": 0.111111111111111, }, Object { - "x": 1600161570000, + "x": 1601391390000, "y": null, }, Object { - "x": 1600161600000, - "y": null, + "x": 1601391420000, + "y": 0.764705882352941, }, Object { - "x": 1600161630000, + "x": 1601391450000, "y": null, }, Object { - "x": 1600161660000, - "y": 0.0185185185185185, + "x": 1601391480000, + "y": 0.0338983050847458, }, Object { - "x": 1600161690000, - "y": 0.0625, + "x": 1601391510000, + "y": 0.293233082706767, }, Object { - "x": 1600161720000, + "x": 1601391540000, "y": null, }, Object { - "x": 1600161750000, - "y": 0.367647058823529, + "x": 1601391570000, + "y": null, }, Object { - "x": 1600161780000, - "y": 0.105263157894737, + "x": 1601391600000, + "y": null, }, ], "hideLegend": false, - "legendValue": "23%", + "legendValue": "25%", "title": "app", "type": "areaStacked", }, @@ -260,252 +260,252 @@ Object { "color": "#6092c0", "data": Array [ Object { - "x": 1600159980000, - "y": null, + "x": 1601389800000, + "y": 0.983870967741935, }, Object { - "x": 1600160010000, - "y": null, + "x": 1601389830000, + "y": 0.545454545454545, }, Object { - "x": 1600160040000, - "y": null, + "x": 1601389860000, + "y": 0.96969696969697, }, Object { - "x": 1600160070000, - "y": 0, + "x": 1601389890000, + "y": null, }, Object { - "x": 1600160100000, - "y": 0.71875, + "x": 1601389920000, + "y": 0.156626506024096, }, Object { - "x": 1600160130000, - "y": 0.4875, + "x": 1601389950000, + "y": 0.85929648241206, }, Object { - "x": 1600160160000, - "y": null, + "x": 1601389980000, + "y": 0, }, Object { - "x": 1600160190000, - "y": 0.413793103448276, + "x": 1601390010000, + "y": null, }, Object { - "x": 1600160220000, - "y": 0, + "x": 1601390040000, + "y": 0.482014388489209, }, Object { - "x": 1600160250000, - "y": 0, + "x": 1601390070000, + "y": 0.361904761904762, }, Object { - "x": 1600160280000, + "x": 1601390100000, "y": null, }, Object { - "x": 1600160310000, - "y": 0.628571428571429, - }, - Object { - "x": 1600160340000, + "x": 1601390130000, "y": 0, }, Object { - "x": 1600160370000, - "y": 0.5, + "x": 1601390160000, + "y": 0.759615384615385, }, Object { - "x": 1600160400000, - "y": null, + "x": 1601390190000, + "y": 0.931147540983607, }, Object { - "x": 1600160430000, - "y": 0.4375, + "x": 1601390220000, + "y": null, }, Object { - "x": 1600160460000, - "y": 0, + "x": 1601390250000, + "y": null, }, Object { - "x": 1600160490000, - "y": 0, + "x": 1601390280000, + "y": 0.945945945945946, }, Object { - "x": 1600160520000, + "x": 1601390310000, "y": null, }, Object { - "x": 1600160550000, + "x": 1601390340000, "y": null, }, Object { - "x": 1600160580000, - "y": 0.88955223880597, + "x": 1601390370000, + "y": 0, }, Object { - "x": 1600160610000, + "x": 1601390400000, "y": null, }, Object { - "x": 1600160640000, - "y": null, + "x": 1601390430000, + "y": 0, + }, + Object { + "x": 1601390460000, + "y": 0, }, Object { - "x": 1600160670000, - "y": 0.705202312138728, + "x": 1601390490000, + "y": 0.784313725490196, }, Object { - "x": 1600160700000, - "y": 0, + "x": 1601390520000, + "y": 0.544117647058823, }, Object { - "x": 1600160730000, - "y": 0.871886120996441, + "x": 1601390550000, + "y": 0.558139534883721, }, Object { - "x": 1600160760000, + "x": 1601390580000, "y": null, }, Object { - "x": 1600160790000, - "y": 0.67032967032967, + "x": 1601390610000, + "y": null, }, Object { - "x": 1600160820000, + "x": 1601390640000, "y": null, }, Object { - "x": 1600160850000, - "y": 0, + "x": 1601390670000, + "y": 0.784313725490196, }, Object { - "x": 1600160880000, + "x": 1601390700000, "y": null, }, Object { - "x": 1600160910000, - "y": 0.987903225806452, + "x": 1601390730000, + "y": null, }, Object { - "x": 1600160940000, - "y": 0.738738738738739, + "x": 1601390760000, + "y": 0.536231884057971, }, Object { - "x": 1600160970000, - "y": null, + "x": 1601390790000, + "y": 0.746666666666667, }, Object { - "x": 1600161000000, + "x": 1601390820000, "y": null, }, Object { - "x": 1600161030000, - "y": 0.794642857142857, + "x": 1601390850000, + "y": 0.735294117647059, }, Object { - "x": 1600161060000, - "y": 0.959731543624161, + "x": 1601390880000, + "y": 0.416666666666667, }, Object { - "x": 1600161090000, - "y": 0, + "x": 1601390910000, + "y": null, }, Object { - "x": 1600161120000, + "x": 1601390940000, "y": null, }, Object { - "x": 1600161150000, - "y": 0.921052631578947, + "x": 1601390970000, + "y": 0.619047619047619, }, Object { - "x": 1600161180000, - "y": 0, + "x": 1601391000000, + "y": 0.518987341772152, }, Object { - "x": 1600161210000, + "x": 1601391030000, "y": null, }, Object { - "x": 1600161240000, + "x": 1601391060000, "y": null, }, Object { - "x": 1600161270000, - "y": 0, + "x": 1601391090000, + "y": null, }, Object { - "x": 1600161300000, - "y": 0, + "x": 1601391120000, + "y": 0.408759124087591, }, Object { - "x": 1600161330000, - "y": 0, + "x": 1601391150000, + "y": 0.982456140350877, }, Object { - "x": 1600161360000, + "x": 1601391180000, "y": null, }, Object { - "x": 1600161390000, - "y": 0.746666666666667, + "x": 1601391210000, + "y": 0.648148148148148, }, Object { - "x": 1600161420000, - "y": 0.857142857142857, + "x": 1601391240000, + "y": 0, }, Object { - "x": 1600161450000, + "x": 1601391270000, "y": 0, }, Object { - "x": 1600161480000, + "x": 1601391300000, "y": null, }, Object { - "x": 1600161510000, - "y": 0.578947368421053, + "x": 1601391330000, + "y": null, }, Object { - "x": 1600161540000, - "y": null, + "x": 1601391360000, + "y": 0.888888888888889, }, Object { - "x": 1600161570000, + "x": 1601391390000, "y": null, }, Object { - "x": 1600161600000, - "y": null, + "x": 1601391420000, + "y": 0, }, Object { - "x": 1600161630000, + "x": 1601391450000, "y": null, }, Object { - "x": 1600161660000, - "y": 0.981481481481482, + "x": 1601391480000, + "y": 0.966101694915254, }, Object { - "x": 1600161690000, - "y": 0.9375, + "x": 1601391510000, + "y": 0.676691729323308, }, Object { - "x": 1600161720000, + "x": 1601391540000, "y": null, }, Object { - "x": 1600161750000, - "y": 0.558823529411765, + "x": 1601391570000, + "y": null, }, Object { - "x": 1600161780000, - "y": 0.894736842105263, + "x": 1601391600000, + "y": null, }, ], "hideLegend": false, - "legendValue": "68%", + "legendValue": "65%", "title": "http", "type": "areaStacked", }, @@ -513,252 +513,252 @@ Object { "color": "#d36086", "data": Array [ Object { - "x": 1600159980000, - "y": null, + "x": 1601389800000, + "y": 0, }, Object { - "x": 1600160010000, - "y": null, + "x": 1601389830000, + "y": 0.051948051948052, }, Object { - "x": 1600160040000, - "y": null, + "x": 1601389860000, + "y": 0, }, Object { - "x": 1600160070000, - "y": 0, + "x": 1601389890000, + "y": null, }, Object { - "x": 1600160100000, - "y": 0.09375, + "x": 1601389920000, + "y": 0.325301204819277, }, Object { - "x": 1600160130000, - "y": 0.25, + "x": 1601389950000, + "y": 0.0201005025125628, }, Object { - "x": 1600160160000, - "y": null, + "x": 1601389980000, + "y": 0.176470588235294, }, Object { - "x": 1600160190000, - "y": 0.103448275862069, + "x": 1601390010000, + "y": null, }, Object { - "x": 1600160220000, - "y": 0.56, + "x": 1601390040000, + "y": 0.244604316546763, }, Object { - "x": 1600160250000, - "y": 0, + "x": 1601390070000, + "y": 0.247619047619048, }, Object { - "x": 1600160280000, + "x": 1601390100000, "y": null, }, Object { - "x": 1600160310000, - "y": 0.2, + "x": 1601390130000, + "y": 0.266666666666667, }, Object { - "x": 1600160340000, - "y": 0.45, + "x": 1601390160000, + "y": 0.0961538461538462, }, Object { - "x": 1600160370000, + "x": 1601390190000, "y": 0, }, Object { - "x": 1600160400000, + "x": 1601390220000, "y": null, }, Object { - "x": 1600160430000, - "y": 0.142857142857143, - }, - Object { - "x": 1600160460000, - "y": 0.277777777777778, + "x": 1601390250000, + "y": null, }, Object { - "x": 1600160490000, - "y": 0.166666666666667, + "x": 1601390280000, + "y": 0, }, Object { - "x": 1600160520000, + "x": 1601390310000, "y": null, }, Object { - "x": 1600160550000, + "x": 1601390340000, "y": null, }, Object { - "x": 1600160580000, + "x": 1601390370000, "y": 0, }, Object { - "x": 1600160610000, + "x": 1601390400000, "y": null, }, Object { - "x": 1600160640000, - "y": null, + "x": 1601390430000, + "y": 0.25, }, Object { - "x": 1600160670000, - "y": 0.144508670520231, + "x": 1601390460000, + "y": 0.235294117647059, }, Object { - "x": 1600160700000, - "y": 0.619047619047619, + "x": 1601390490000, + "y": 0.0980392156862745, + }, + Object { + "x": 1601390520000, + "y": 0.235294117647059, }, Object { - "x": 1600160730000, - "y": 0.0604982206405694, + "x": 1601390550000, + "y": 0.13953488372093, }, Object { - "x": 1600160760000, + "x": 1601390580000, "y": null, }, Object { - "x": 1600160790000, - "y": 0.0659340659340659, + "x": 1601390610000, + "y": null, }, Object { - "x": 1600160820000, + "x": 1601390640000, "y": null, }, Object { - "x": 1600160850000, - "y": 0.470588235294118, + "x": 1601390670000, + "y": 0, }, Object { - "x": 1600160880000, + "x": 1601390700000, "y": null, }, Object { - "x": 1600160910000, - "y": 0, + "x": 1601390730000, + "y": null, }, Object { - "x": 1600160940000, - "y": 0, + "x": 1601390760000, + "y": 0.246376811594203, }, Object { - "x": 1600160970000, - "y": null, + "x": 1601390790000, + "y": 0, }, Object { - "x": 1600161000000, + "x": 1601390820000, "y": null, }, Object { - "x": 1600161030000, - "y": 0.0446428571428571, + "x": 1601390850000, + "y": 0.147058823529412, }, Object { - "x": 1600161060000, - "y": 0, + "x": 1601390880000, + "y": 0.222222222222222, }, Object { - "x": 1600161090000, - "y": 0, + "x": 1601390910000, + "y": null, }, Object { - "x": 1600161120000, + "x": 1601390940000, "y": null, }, Object { - "x": 1600161150000, - "y": 0, + "x": 1601390970000, + "y": 0.19047619047619, }, Object { - "x": 1600161180000, - "y": 0.592592592592593, + "x": 1601391000000, + "y": 0.126582278481013, }, Object { - "x": 1600161210000, + "x": 1601391030000, "y": null, }, Object { - "x": 1600161240000, + "x": 1601391060000, "y": null, }, Object { - "x": 1600161270000, - "y": 0.333333333333333, + "x": 1601391090000, + "y": null, }, Object { - "x": 1600161300000, - "y": 0.178571428571429, + "x": 1601391120000, + "y": 0.153284671532847, }, Object { - "x": 1600161330000, + "x": 1601391150000, "y": 0, }, Object { - "x": 1600161360000, + "x": 1601391180000, "y": null, }, Object { - "x": 1600161390000, - "y": 0.08, + "x": 1601391210000, + "y": 0.0740740740740741, }, Object { - "x": 1600161420000, + "x": 1601391240000, "y": 0, }, Object { - "x": 1600161450000, - "y": 0.15, + "x": 1601391270000, + "y": 0.114285714285714, }, Object { - "x": 1600161480000, + "x": 1601391300000, "y": null, }, Object { - "x": 1600161510000, - "y": 0, + "x": 1601391330000, + "y": null, }, Object { - "x": 1600161540000, - "y": null, + "x": 1601391360000, + "y": 0, }, Object { - "x": 1600161570000, + "x": 1601391390000, "y": null, }, Object { - "x": 1600161600000, - "y": null, + "x": 1601391420000, + "y": 0.235294117647059, }, Object { - "x": 1600161630000, + "x": 1601391450000, "y": null, }, Object { - "x": 1600161660000, + "x": 1601391480000, "y": 0, }, Object { - "x": 1600161690000, - "y": 0, + "x": 1601391510000, + "y": 0.0300751879699248, }, Object { - "x": 1600161720000, + "x": 1601391540000, "y": null, }, Object { - "x": 1600161750000, - "y": 0.0735294117647059, + "x": 1601391570000, + "y": null, }, Object { - "x": 1600161780000, - "y": 0, + "x": 1601391600000, + "y": null, }, ], "hideLegend": false, - "legendValue": "9.3%", + "legendValue": "10%", "title": "postgresql", "type": "areaStacked", }, @@ -769,248 +769,248 @@ Object { exports[`Breakdown when data is loaded returns the transaction breakdown for a transaction group 9`] = ` Array [ Object { - "x": 1600159980000, - "y": null, + "x": 1601389800000, + "y": 1, }, Object { - "x": 1600160010000, - "y": null, + "x": 1601389830000, + "y": 1, }, Object { - "x": 1600160040000, - "y": null, + "x": 1601389860000, + "y": 1, }, Object { - "x": 1600160070000, + "x": 1601389890000, "y": null, }, Object { - "x": 1600160100000, + "x": 1601389920000, "y": 1, }, Object { - "x": 1600160130000, + "x": 1601389950000, "y": 1, }, Object { - "x": 1600160160000, + "x": 1601389980000, + "y": null, + }, + Object { + "x": 1601390010000, "y": null, }, Object { - "x": 1600160190000, + "x": 1601390040000, "y": 1, }, Object { - "x": 1600160220000, - "y": null, + "x": 1601390070000, + "y": 1, }, Object { - "x": 1600160250000, + "x": 1601390100000, "y": null, }, Object { - "x": 1600160280000, + "x": 1601390130000, "y": null, }, Object { - "x": 1600160310000, + "x": 1601390160000, "y": 1, }, Object { - "x": 1600160340000, - "y": null, + "x": 1601390190000, + "y": 1, }, Object { - "x": 1600160370000, - "y": 1, + "x": 1601390220000, + "y": null, }, Object { - "x": 1600160400000, + "x": 1601390250000, "y": null, }, Object { - "x": 1600160430000, + "x": 1601390280000, "y": 1, }, Object { - "x": 1600160460000, + "x": 1601390310000, "y": null, }, Object { - "x": 1600160490000, + "x": 1601390340000, "y": null, }, Object { - "x": 1600160520000, + "x": 1601390370000, "y": null, }, Object { - "x": 1600160550000, + "x": 1601390400000, "y": null, }, Object { - "x": 1600160580000, - "y": 1, - }, - Object { - "x": 1600160610000, + "x": 1601390430000, "y": null, }, Object { - "x": 1600160640000, + "x": 1601390460000, "y": null, }, Object { - "x": 1600160670000, + "x": 1601390490000, "y": 1, }, Object { - "x": 1600160700000, - "y": null, + "x": 1601390520000, + "y": 1, }, Object { - "x": 1600160730000, + "x": 1601390550000, "y": 1, }, Object { - "x": 1600160760000, + "x": 1601390580000, "y": null, }, Object { - "x": 1600160790000, - "y": 1, + "x": 1601390610000, + "y": null, }, Object { - "x": 1600160820000, + "x": 1601390640000, "y": null, }, Object { - "x": 1600160850000, - "y": null, + "x": 1601390670000, + "y": 1, }, Object { - "x": 1600160880000, + "x": 1601390700000, "y": null, }, Object { - "x": 1600160910000, - "y": 1, + "x": 1601390730000, + "y": null, }, Object { - "x": 1600160940000, + "x": 1601390760000, "y": 1, }, Object { - "x": 1600160970000, - "y": null, + "x": 1601390790000, + "y": 1, }, Object { - "x": 1600161000000, + "x": 1601390820000, "y": null, }, Object { - "x": 1600161030000, + "x": 1601390850000, "y": 1, }, Object { - "x": 1600161060000, + "x": 1601390880000, "y": 1, }, Object { - "x": 1600161090000, + "x": 1601390910000, "y": null, }, Object { - "x": 1600161120000, + "x": 1601390940000, "y": null, }, Object { - "x": 1600161150000, + "x": 1601390970000, "y": 1, }, Object { - "x": 1600161180000, - "y": null, + "x": 1601391000000, + "y": 1, }, Object { - "x": 1600161210000, + "x": 1601391030000, "y": null, }, Object { - "x": 1600161240000, + "x": 1601391060000, "y": null, }, Object { - "x": 1600161270000, + "x": 1601391090000, "y": null, }, Object { - "x": 1600161300000, - "y": null, + "x": 1601391120000, + "y": 1, }, Object { - "x": 1600161330000, - "y": null, + "x": 1601391150000, + "y": 1, }, Object { - "x": 1600161360000, + "x": 1601391180000, "y": null, }, Object { - "x": 1600161390000, + "x": 1601391210000, "y": 1, }, Object { - "x": 1600161420000, - "y": 1, + "x": 1601391240000, + "y": null, }, Object { - "x": 1600161450000, + "x": 1601391270000, "y": null, }, Object { - "x": 1600161480000, + "x": 1601391300000, "y": null, }, Object { - "x": 1600161510000, - "y": 1, + "x": 1601391330000, + "y": null, }, Object { - "x": 1600161540000, - "y": null, + "x": 1601391360000, + "y": 1, }, Object { - "x": 1600161570000, + "x": 1601391390000, "y": null, }, Object { - "x": 1600161600000, + "x": 1601391420000, "y": null, }, Object { - "x": 1600161630000, + "x": 1601391450000, "y": null, }, Object { - "x": 1600161660000, + "x": 1601391480000, "y": 1, }, Object { - "x": 1600161690000, + "x": 1601391510000, "y": 1, }, Object { - "x": 1600161720000, + "x": 1601391540000, "y": null, }, Object { - "x": 1600161750000, - "y": 1, + "x": 1601391570000, + "y": null, }, Object { - "x": 1600161780000, - "y": 1, + "x": 1601391600000, + "y": null, }, ] `; diff --git a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/error_rate.snap b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/error_rate.snap index ab228385aaf56..1161beb7f06c0 100644 --- a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/error_rate.snap +++ b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/error_rate.snap @@ -3,247 +3,247 @@ exports[`Error rate when data is loaded returns the transaction error rate has the correct error rate 1`] = ` Array [ Object { - "x": 1600159980000, + "x": 1601389800000, + "y": 0.166666666666667, + }, + Object { + "x": 1601389830000, "y": null, }, Object { - "x": 1600160010000, - "y": 0, + "x": 1601389860000, + "y": null, }, Object { - "x": 1600160040000, - "y": 0.142857142857143, + "x": 1601389890000, + "y": null, }, Object { - "x": 1600160070000, + "x": 1601389920000, "y": 0, }, Object { - "x": 1600160100000, + "x": 1601389950000, "y": 0, }, Object { - "x": 1600160130000, + "x": 1601389980000, "y": null, }, Object { - "x": 1600160160000, + "x": 1601390010000, + "y": null, + }, + Object { + "x": 1601390040000, "y": 0, }, Object { - "x": 1600160190000, + "x": 1601390070000, "y": 0.5, }, Object { - "x": 1600160220000, - "y": 0, + "x": 1601390100000, + "y": null, }, Object { - "x": 1600160250000, + "x": 1601390130000, "y": null, }, Object { - "x": 1600160280000, - "y": 0.166666666666667, + "x": 1601390160000, + "y": 0.285714285714286, }, Object { - "x": 1600160310000, - "y": 0.333333333333333, + "x": 1601390190000, + "y": 0, }, Object { - "x": 1600160340000, - "y": 1, + "x": 1601390220000, + "y": 0, }, Object { - "x": 1600160370000, + "x": 1601390250000, "y": null, }, Object { - "x": 1600160400000, + "x": 1601390280000, "y": null, }, Object { - "x": 1600160430000, + "x": 1601390310000, "y": 0, }, Object { - "x": 1600160460000, - "y": 0, + "x": 1601390340000, + "y": null, }, Object { - "x": 1600160490000, + "x": 1601390370000, "y": null, }, Object { - "x": 1600160520000, - "y": 0.166666666666667, + "x": 1601390400000, + "y": 0, }, Object { - "x": 1600160550000, - "y": 0, + "x": 1601390430000, + "y": null, }, Object { - "x": 1600160580000, - "y": 0, + "x": 1601390460000, + "y": null, }, Object { - "x": 1600160610000, + "x": 1601390490000, "y": null, }, Object { - "x": 1600160640000, + "x": 1601390520000, "y": 0, }, Object { - "x": 1600160670000, - "y": 0, + "x": 1601390550000, + "y": 1, }, Object { - "x": 1600160700000, + "x": 1601390580000, "y": 0, }, Object { - "x": 1600160730000, + "x": 1601390610000, "y": null, }, Object { - "x": 1600160760000, - "y": 0, + "x": 1601390640000, + "y": 1, }, Object { - "x": 1600160790000, - "y": 0.2, + "x": 1601390670000, + "y": 0.5, }, Object { - "x": 1600160820000, - "y": 0.5, + "x": 1601390700000, + "y": null, }, Object { - "x": 1600160850000, + "x": 1601390730000, "y": null, }, Object { - "x": 1600160880000, - "y": 0, + "x": 1601390760000, + "y": 0.25, }, Object { - "x": 1600160910000, + "x": 1601390790000, "y": 0, }, Object { - "x": 1600160940000, - "y": null, + "x": 1601390820000, + "y": 0, }, Object { - "x": 1600160970000, + "x": 1601390850000, "y": null, }, Object { - "x": 1600161000000, - "y": 0, + "x": 1601390880000, + "y": 0.166666666666667, }, Object { - "x": 1600161030000, - "y": 0, + "x": 1601390910000, + "y": null, }, Object { - "x": 1600161060000, - "y": 0.5, + "x": 1601390940000, + "y": 0.333333333333333, }, Object { - "x": 1600161090000, + "x": 1601390970000, "y": null, }, Object { - "x": 1600161120000, + "x": 1601391000000, "y": 0, }, Object { - "x": 1600161150000, - "y": 0, + "x": 1601391030000, + "y": null, }, Object { - "x": 1600161180000, - "y": null, + "x": 1601391060000, + "y": 1, }, Object { - "x": 1600161210000, + "x": 1601391090000, "y": null, }, Object { - "x": 1600161240000, + "x": 1601391120000, "y": 0, }, Object { - "x": 1600161270000, - "y": 0.4, + "x": 1601391150000, + "y": 0, }, Object { - "x": 1600161300000, - "y": 0.5, + "x": 1601391180000, + "y": 0, }, Object { - "x": 1600161330000, + "x": 1601391210000, "y": null, }, Object { - "x": 1600161360000, + "x": 1601391240000, "y": 0, }, Object { - "x": 1600161390000, - "y": 0, + "x": 1601391270000, + "y": null, }, Object { - "x": 1600161420000, + "x": 1601391300000, "y": 0, }, Object { - "x": 1600161450000, + "x": 1601391330000, "y": null, }, Object { - "x": 1600161480000, - "y": 0.1, + "x": 1601391360000, + "y": 0, }, Object { - "x": 1600161510000, - "y": 0.5, + "x": 1601391390000, + "y": null, }, Object { - "x": 1600161540000, + "x": 1601391420000, "y": null, }, Object { - "x": 1600161570000, + "x": 1601391450000, "y": null, }, Object { - "x": 1600161600000, + "x": 1601391480000, "y": 0, }, Object { - "x": 1600161630000, + "x": 1601391510000, "y": 0, }, Object { - "x": 1600161660000, - "y": null, + "x": 1601391540000, + "y": 1, }, Object { - "x": 1600161690000, + "x": 1601391570000, "y": null, }, Object { - "x": 1600161720000, - "y": 0.625, - }, - Object { - "x": 1600161750000, - "y": 0, - }, - Object { - "x": 1600161780000, + "x": 1601391600000, "y": null, }, ] diff --git a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/top_transaction_groups.snap b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/top_transaction_groups.snap index 93f22e67e1a02..9ff2294cdb08f 100644 --- a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/top_transaction_groups.snap +++ b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/top_transaction_groups.snap @@ -3,144 +3,124 @@ exports[`Top transaction groups when data is loaded returns the correct buckets (when ignoring samples) 1`] = ` Array [ Object { - "averageResponseTime": 1137, + "averageResponseTime": 2292, "impact": 0, - "key": "POST /api/orders", - "p95": 1136, - "serviceName": "opbeans-node", - "transactionName": "POST /api/orders", - "transactionType": "request", - "transactionsPerMinute": 0.0333333333333333, - }, - Object { - "averageResponseTime": 4479, - "impact": 0.182527896674573, - "key": "GET /api/customers/:id", - "p95": 4448, - "serviceName": "opbeans-node", - "transactionName": "GET /api/customers/:id", - "transactionType": "request", - "transactionsPerMinute": 0.0333333333333333, - }, - Object { - "averageResponseTime": 2754.5, - "impact": 0.238782754117664, "key": "GET /*", - "p95": 2832, + "p95": 2288, "serviceName": "opbeans-node", "transactionName": "GET /*", "transactionType": "request", - "transactionsPerMinute": 0.0666666666666667, + "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 10841, - "impact": 1.12209324870709, + "averageResponseTime": 10317, + "impact": 0.420340829629707, "key": "GET /api/orders/:id", - "p95": 13376, + "p95": 10304, "serviceName": "opbeans-node", "transactionName": "GET /api/orders/:id", "transactionType": "request", - "transactionsPerMinute": 0.0666666666666667, - }, - Object { - "averageResponseTime": 10551.3333333333, - "impact": 1.66672765494254, - "key": "GET /api/products/top", - "p95": 19552, - "serviceName": "opbeans-node", - "transactionName": "GET /api/products/top", - "transactionType": "request", - "transactionsPerMinute": 0.1, + "transactionsPerMinute": 0.0333333333333333, }, Object { - "averageResponseTime": 15988, - "impact": 1.68431412493931, + "averageResponseTime": 6495, + "impact": 0.560349681667116, "key": "GET /api/products/:id", - "p95": 16000, + "p95": 6720, "serviceName": "opbeans-node", "transactionName": "GET /api/products/:id", "transactionType": "request", "transactionsPerMinute": 0.0666666666666667, }, Object { - "averageResponseTime": 9499, - "impact": 2.01310465096592, + "averageResponseTime": 9825.5, + "impact": 0.909245664989668, "key": "GET /api/types", - "p95": 14944, + "p95": 16496, "serviceName": "opbeans-node", "transactionName": "GET /api/types", "transactionType": "request", - "transactionsPerMinute": 0.133333333333333, + "transactionsPerMinute": 0.0666666666666667, }, Object { - "averageResponseTime": 12228, - "impact": 2.60929690712978, - "key": "GET /api/products/:id/customers", - "p95": 17760, + "averageResponseTime": 9516.83333333333, + "impact": 2.87083620326164, + "key": "GET /api/products", + "p95": 17888, "serviceName": "opbeans-node", - "transactionName": "GET /api/products/:id/customers", + "transactionName": "GET /api/products", "transactionType": "request", - "transactionsPerMinute": 0.133333333333333, + "transactionsPerMinute": 0.2, }, Object { - "averageResponseTime": 22555.6666666667, - "impact": 3.63362685989209, - "key": "GET /api/customers", - "p95": 25984, + "averageResponseTime": 13962.2, + "impact": 3.53657227112376, + "key": "GET /api/products/:id/customers", + "p95": 23264, "serviceName": "opbeans-node", - "transactionName": "GET /api/customers", + "transactionName": "GET /api/products/:id/customers", "transactionType": "request", - "transactionsPerMinute": 0.1, + "transactionsPerMinute": 0.166666666666667, }, Object { - "averageResponseTime": 13852.6, - "impact": 3.72079458074566, - "key": "GET /api/types/:id", - "p95": 21984, + "averageResponseTime": 21129.5, + "impact": 4.3069090413872, + "key": "GET /api/customers/:id", + "p95": 32608, "serviceName": "opbeans-node", - "transactionName": "GET /api/types/:id", + "transactionName": "GET /api/customers/:id", "transactionType": "request", - "transactionsPerMinute": 0.166666666666667, + "transactionsPerMinute": 0.133333333333333, }, Object { - "averageResponseTime": 12228.5, - "impact": 3.94515861412062, + "averageResponseTime": 10137.1111111111, + "impact": 4.65868586528666, "key": "GET /api/orders", - "p95": 16736, + "p95": 21344, "serviceName": "opbeans-node", "transactionName": "GET /api/orders", "transactionType": "request", - "transactionsPerMinute": 0.2, + "transactionsPerMinute": 0.3, }, Object { - "averageResponseTime": 12491.4285714286, - "impact": 4.71355627370009, - "key": "GET /api/products", - "p95": 30448, + "averageResponseTime": 24206.25, + "impact": 4.95153640465858, + "key": "GET /api/customers", + "p95": 36032, "serviceName": "opbeans-node", - "transactionName": "GET /api/products", + "transactionName": "GET /api/customers", "transactionType": "request", - "transactionsPerMinute": 0.233333333333333, + "transactionsPerMinute": 0.133333333333333, }, Object { - "averageResponseTime": 23683.3333333333, - "impact": 11.5793797000797, + "averageResponseTime": 17267.0833333333, + "impact": 10.7331215479018, + "key": "GET /api/products/top", + "p95": 26208, + "serviceName": "opbeans-node", + "transactionName": "GET /api/products/top", + "transactionType": "request", + "transactionsPerMinute": 0.4, + }, + Object { + "averageResponseTime": 20417.7272727273, + "impact": 11.6439909593985, "key": "GET /api/stats", - "p95": 36288, + "p95": 24800, "serviceName": "opbeans-node", "transactionName": "GET /api/stats", "transactionType": "request", - "transactionsPerMinute": 0.3, + "transactionsPerMinute": 0.366666666666667, }, Object { - "averageResponseTime": 42606.7441860465, + "averageResponseTime": 39822.0208333333, "impact": 100, "key": "GET /api", - "p95": 131008, + "p95": 122816, "serviceName": "opbeans-node", "transactionName": "GET /api", "transactionType": "request", - "transactionsPerMinute": 1.43333333333333, + "transactionsPerMinute": 1.6, }, ] `; diff --git a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/transaction_charts.snap b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/transaction_charts.snap index 9ed103b445575..75dc775d887e4 100644 --- a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/transaction_charts.snap +++ b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/__snapshots__/transaction_charts.snap @@ -3,1495 +3,1495 @@ exports[`Transaction charts when data is loaded returns the correct data 4`] = ` Object { "apmTimeseries": Object { - "overallAvgDuration": 600255.707964602, + "overallAvgDuration": 600888.274678112, "responseTimes": Object { "avg": Array [ Object { - "x": 1600159980000, - "y": 961397, + "x": 1601389800000, + "y": 651784.714285714, }, Object { - "x": 1600160010000, - "y": 605527.5, + "x": 1601389830000, + "y": 747797.4, }, Object { - "x": 1600160040000, - "y": 390910, + "x": 1601389860000, + "y": 567568.333333333, }, Object { - "x": 1600160070000, - "y": 556820.6, + "x": 1601389890000, + "y": 1289936, }, Object { - "x": 1600160100000, - "y": 496316.4, + "x": 1601389920000, + "y": 79698.6, }, Object { - "x": 1600160130000, - "y": null, + "x": 1601389950000, + "y": 646660.833333333, }, Object { - "x": 1600160160000, - "y": 467003.666666667, + "x": 1601389980000, + "y": 18095, }, Object { - "x": 1600160190000, - "y": 863809.666666667, + "x": 1601390010000, + "y": 543534, }, Object { - "x": 1600160220000, - "y": 812744, + "x": 1601390040000, + "y": 250234.466666667, }, Object { - "x": 1600160250000, - "y": 1536887, + "x": 1601390070000, + "y": 200435.2, }, Object { - "x": 1600160280000, - "y": 506194.8, + "x": 1601390100000, + "y": 1089389.66666667, }, Object { - "x": 1600160310000, - "y": 459425.5, + "x": 1601390130000, + "y": 1052697.33333333, }, Object { - "x": 1600160340000, - "y": 553661, + "x": 1601390160000, + "y": 27908.8333333333, }, Object { - "x": 1600160370000, - "y": 658207.5, + "x": 1601390190000, + "y": 1078058.25, }, Object { - "x": 1600160400000, - "y": 368087.909090909, + "x": 1601390220000, + "y": 755843.5, }, Object { - "x": 1600160430000, - "y": 115251.8, + "x": 1601390250000, + "y": 1371940.33333333, }, Object { - "x": 1600160460000, - "y": 635499.25, + "x": 1601390280000, + "y": 38056, }, Object { - "x": 1600160490000, - "y": 1224766, + "x": 1601390310000, + "y": 1133161.33333333, }, Object { - "x": 1600160520000, - "y": 826125.5, + "x": 1601390340000, + "y": 1236497, }, Object { - "x": 1600160550000, - "y": 389583.75, + "x": 1601390370000, + "y": 870027, }, Object { - "x": 1600160580000, - "y": 477951, + "x": 1601390400000, + "y": null, }, Object { - "x": 1600160610000, - "y": 882789.666666667, + "x": 1601390430000, + "y": 800475, }, Object { - "x": 1600160640000, - "y": 238075.909090909, + "x": 1601390460000, + "y": 374597.2, }, Object { - "x": 1600160670000, - "y": 608137, + "x": 1601390490000, + "y": 657002, }, Object { - "x": 1600160700000, - "y": 356875.5, + "x": 1601390520000, + "y": 305164.5, }, Object { - "x": 1600160730000, - "y": 1207555.5, + "x": 1601390550000, + "y": 274576.4, }, Object { - "x": 1600160760000, - "y": 282337.166666667, + "x": 1601390580000, + "y": 888533, }, Object { - "x": 1600160790000, - "y": 987012.333333333, + "x": 1601390610000, + "y": 1191308, }, Object { - "x": 1600160820000, - "y": 268791.5, + "x": 1601390640000, + "y": 1521297, }, Object { - "x": 1600160850000, - "y": 1268295.5, + "x": 1601390670000, + "y": 373994.4, }, Object { - "x": 1600160880000, - "y": 442801.5, + "x": 1601390700000, + "y": 1108442, }, Object { - "x": 1600160910000, - "y": 314103.5, + "x": 1601390730000, + "y": 1014666.66666667, }, Object { - "x": 1600160940000, - "y": 1313632.66666667, + "x": 1601390760000, + "y": 184717, }, Object { - "x": 1600160970000, - "y": 888299, + "x": 1601390790000, + "y": 369595.5, }, Object { - "x": 1600161000000, - "y": 611899.142857143, + "x": 1601390820000, + "y": 525805.5, }, Object { - "x": 1600161030000, - "y": 273321.857142857, + "x": 1601390850000, + "y": 583359, }, Object { - "x": 1600161060000, - "y": 407488.75, + "x": 1601390880000, + "y": 315244.25, }, Object { - "x": 1600161090000, - "y": 1446104.66666667, + "x": 1601390910000, + "y": 1133846, }, Object { - "x": 1600161120000, - "y": 650821, + "x": 1601390940000, + "y": 312801, }, Object { - "x": 1600161150000, - "y": 818027.6, + "x": 1601390970000, + "y": 1135768.33333333, }, Object { - "x": 1600161180000, - "y": 1606260.5, + "x": 1601391000000, + "y": 199876, }, Object { - "x": 1600161210000, - "y": 1054428.66666667, + "x": 1601391030000, + "y": 1508216.66666667, }, Object { - "x": 1600161240000, - "y": 816781.333333333, + "x": 1601391060000, + "y": 1481690.5, }, Object { - "x": 1600161270000, - "y": 319174, + "x": 1601391090000, + "y": 659469, }, Object { - "x": 1600161300000, - "y": 683605.5, + "x": 1601391120000, + "y": 225622.666666667, }, Object { - "x": 1600161330000, - "y": 884499.5, + "x": 1601391150000, + "y": 675812.666666667, }, Object { - "x": 1600161360000, - "y": 714202.333333333, + "x": 1601391180000, + "y": 279013.333333333, }, Object { - "x": 1600161390000, - "y": 439751.6, + "x": 1601391210000, + "y": 1327234, }, Object { - "x": 1600161420000, - "y": 576370.2, + "x": 1601391240000, + "y": 487259, }, Object { - "x": 1600161450000, - "y": 836182.333333333, + "x": 1601391270000, + "y": 686597.333333333, }, Object { - "x": 1600161480000, - "y": 19902, + "x": 1601391300000, + "y": 1236063.33333333, }, Object { - "x": 1600161510000, - "y": 615193.333333333, + "x": 1601391330000, + "y": 1322639, }, Object { - "x": 1600161540000, - "y": 946298.666666667, + "x": 1601391360000, + "y": 517955.333333333, }, Object { - "x": 1600161570000, - "y": 1146024, + "x": 1601391390000, + "y": 983213.333333333, }, Object { - "x": 1600161600000, - "y": 823085, + "x": 1601391420000, + "y": 920165.5, }, Object { - "x": 1600161630000, - "y": 460616, + "x": 1601391450000, + "y": 655826, }, Object { - "x": 1600161660000, - "y": 955115.5, + "x": 1601391480000, + "y": 335100.666666667, }, Object { - "x": 1600161690000, - "y": 1684473, + "x": 1601391510000, + "y": 496048.555555556, }, Object { - "x": 1600161720000, - "y": 450557.777777778, + "x": 1601391540000, + "y": 629243, }, Object { - "x": 1600161750000, - "y": 19350, + "x": 1601391570000, + "y": 796819.4, }, Object { - "x": 1600161780000, - "y": 960447, + "x": 1601391600000, + "y": null, }, ], "p95": Array [ Object { - "x": 1600159980000, - "y": 1711104, + "x": 1601389800000, + "y": 1531888, }, Object { - "x": 1600160010000, - "y": 784384, + "x": 1601389830000, + "y": 1695616, }, Object { - "x": 1600160040000, - "y": 389120, + "x": 1601389860000, + "y": 1482496, }, Object { - "x": 1600160070000, - "y": 1581024, + "x": 1601389890000, + "y": 1617920, }, Object { - "x": 1600160100000, - "y": 1277824, + "x": 1601389920000, + "y": 329696, }, Object { - "x": 1600160130000, - "y": null, + "x": 1601389950000, + "y": 1474432, }, Object { - "x": 1600160160000, - "y": 1753072, + "x": 1601389980000, + "y": 18048, }, Object { - "x": 1600160190000, - "y": 1916800, + "x": 1601390010000, + "y": 990720, }, Object { - "x": 1600160220000, - "y": 1228736, + "x": 1601390040000, + "y": 1163232, }, Object { - "x": 1600160250000, - "y": 1671168, + "x": 1601390070000, + "y": 958432, }, Object { - "x": 1600160280000, - "y": 1679328, + "x": 1601390100000, + "y": 1777600, }, Object { - "x": 1600160310000, - "y": 1028064, + "x": 1601390130000, + "y": 1873920, }, Object { - "x": 1600160340000, - "y": 1630144, + "x": 1601390160000, + "y": 55776, }, Object { - "x": 1600160370000, - "y": 972800, + "x": 1601390190000, + "y": 1752064, }, Object { - "x": 1600160400000, - "y": 1359856, + "x": 1601390220000, + "y": 1136640, }, Object { - "x": 1600160430000, - "y": 536568, + "x": 1601390250000, + "y": 1523712, }, Object { - "x": 1600160460000, - "y": 1130368, + "x": 1601390280000, + "y": 37888, }, Object { - "x": 1600160490000, - "y": 1245184, + "x": 1601390310000, + "y": 1196032, }, Object { - "x": 1600160520000, - "y": 1028096, + "x": 1601390340000, + "y": 1810304, }, Object { - "x": 1600160550000, - "y": 1228768, + "x": 1601390370000, + "y": 1007616, }, Object { - "x": 1600160580000, - "y": 790016, + "x": 1601390400000, + "y": null, }, Object { - "x": 1600160610000, - "y": 1416192, + "x": 1601390430000, + "y": 1523584, }, Object { - "x": 1600160640000, - "y": 905184, + "x": 1601390460000, + "y": 1712096, }, Object { - "x": 1600160670000, - "y": 1154816, + "x": 1601390490000, + "y": 679936, }, Object { - "x": 1600160700000, - "y": 1154944, + "x": 1601390520000, + "y": 1163200, }, Object { - "x": 1600160730000, - "y": 1544192, + "x": 1601390550000, + "y": 1171392, }, Object { - "x": 1600160760000, - "y": 888768, + "x": 1601390580000, + "y": 901120, }, Object { - "x": 1600160790000, - "y": 1783808, + "x": 1601390610000, + "y": 1355776, }, Object { - "x": 1600160820000, - "y": 737248, + "x": 1601390640000, + "y": 1515520, }, Object { - "x": 1600160850000, - "y": 1409024, + "x": 1601390670000, + "y": 1097600, }, Object { - "x": 1600160880000, - "y": 843520, + "x": 1601390700000, + "y": 1363968, }, Object { - "x": 1600160910000, - "y": 987072, + "x": 1601390730000, + "y": 1290240, }, Object { - "x": 1600160940000, - "y": 1646592, + "x": 1601390760000, + "y": 663488, }, Object { - "x": 1600160970000, - "y": 884736, + "x": 1601390790000, + "y": 827264, }, Object { - "x": 1600161000000, - "y": 1163200, + "x": 1601390820000, + "y": 1302400, }, Object { - "x": 1600161030000, - "y": 991168, + "x": 1601390850000, + "y": 978912, }, Object { - "x": 1600161060000, - "y": 806784, + "x": 1601390880000, + "y": 1482720, }, Object { - "x": 1600161090000, - "y": 1732608, + "x": 1601390910000, + "y": 1306624, }, Object { - "x": 1600161120000, - "y": 1916864, + "x": 1601390940000, + "y": 1179520, }, Object { - "x": 1600161150000, - "y": 1335168, + "x": 1601390970000, + "y": 1347584, }, Object { - "x": 1600161180000, - "y": 1703936, + "x": 1601391000000, + "y": 1122272, }, Object { - "x": 1600161210000, - "y": 1306624, + "x": 1601391030000, + "y": 1835008, }, Object { - "x": 1600161240000, - "y": 1343424, + "x": 1601391060000, + "y": 1572864, }, Object { - "x": 1600161270000, - "y": 794560, + "x": 1601391090000, + "y": 1343232, }, Object { - "x": 1600161300000, - "y": 1351552, + "x": 1601391120000, + "y": 810880, }, Object { - "x": 1600161330000, - "y": 1275904, + "x": 1601391150000, + "y": 1122048, }, Object { - "x": 1600161360000, - "y": 1515264, + "x": 1601391180000, + "y": 782208, }, Object { - "x": 1600161390000, - "y": 1359808, + "x": 1601391210000, + "y": 1466368, }, Object { - "x": 1600161420000, - "y": 1187808, + "x": 1601391240000, + "y": 1490928, }, Object { - "x": 1600161450000, - "y": 1069056, + "x": 1601391270000, + "y": 1433472, }, Object { - "x": 1600161480000, - "y": 24896, + "x": 1601391300000, + "y": 1677312, }, Object { - "x": 1600161510000, - "y": 804864, + "x": 1601391330000, + "y": 1830912, }, Object { - "x": 1600161540000, - "y": 1347584, + "x": 1601391360000, + "y": 950144, }, Object { - "x": 1600161570000, - "y": 1138688, + "x": 1601391390000, + "y": 1265664, }, Object { - "x": 1600161600000, - "y": 1588224, + "x": 1601391420000, + "y": 1408896, }, Object { - "x": 1600161630000, - "y": 1089280, + "x": 1601391450000, + "y": 1178624, }, Object { - "x": 1600161660000, - "y": 1793920, + "x": 1601391480000, + "y": 946048, }, Object { - "x": 1600161690000, - "y": 1679360, + "x": 1601391510000, + "y": 1761248, }, Object { - "x": 1600161720000, - "y": 1384416, + "x": 1601391540000, + "y": 626688, }, Object { - "x": 1600161750000, - "y": 19328, + "x": 1601391570000, + "y": 1564544, }, Object { - "x": 1600161780000, - "y": 1554432, + "x": 1601391600000, + "y": null, }, ], "p99": Array [ Object { - "x": 1600159980000, - "y": 1711104, + "x": 1601389800000, + "y": 1531888, }, Object { - "x": 1600160010000, - "y": 784384, + "x": 1601389830000, + "y": 1695616, }, Object { - "x": 1600160040000, - "y": 389120, + "x": 1601389860000, + "y": 1482496, }, Object { - "x": 1600160070000, - "y": 1581024, + "x": 1601389890000, + "y": 1617920, }, Object { - "x": 1600160100000, - "y": 1277824, + "x": 1601389920000, + "y": 329696, }, Object { - "x": 1600160130000, - "y": null, + "x": 1601389950000, + "y": 1474432, }, Object { - "x": 1600160160000, - "y": 1753072, + "x": 1601389980000, + "y": 18048, }, Object { - "x": 1600160190000, - "y": 1916800, + "x": 1601390010000, + "y": 990720, }, Object { - "x": 1600160220000, - "y": 1228736, + "x": 1601390040000, + "y": 1318880, }, Object { - "x": 1600160250000, - "y": 1671168, + "x": 1601390070000, + "y": 958432, }, Object { - "x": 1600160280000, - "y": 1679328, + "x": 1601390100000, + "y": 1777600, }, Object { - "x": 1600160310000, - "y": 1028064, + "x": 1601390130000, + "y": 1873920, }, Object { - "x": 1600160340000, - "y": 1630144, + "x": 1601390160000, + "y": 72160, }, Object { - "x": 1600160370000, - "y": 972800, + "x": 1601390190000, + "y": 1752064, }, Object { - "x": 1600160400000, - "y": 1400816, + "x": 1601390220000, + "y": 1136640, }, Object { - "x": 1600160430000, - "y": 536568, + "x": 1601390250000, + "y": 1523712, }, Object { - "x": 1600160460000, - "y": 1130368, + "x": 1601390280000, + "y": 37888, }, Object { - "x": 1600160490000, - "y": 1245184, + "x": 1601390310000, + "y": 1196032, }, Object { - "x": 1600160520000, - "y": 1028096, + "x": 1601390340000, + "y": 1810304, }, Object { - "x": 1600160550000, - "y": 1228768, + "x": 1601390370000, + "y": 1007616, }, Object { - "x": 1600160580000, - "y": 790016, + "x": 1601390400000, + "y": null, }, Object { - "x": 1600160610000, - "y": 1416192, + "x": 1601390430000, + "y": 1523584, }, Object { - "x": 1600160640000, - "y": 1556448, + "x": 1601390460000, + "y": 1712096, }, Object { - "x": 1600160670000, - "y": 1154816, + "x": 1601390490000, + "y": 679936, }, Object { - "x": 1600160700000, - "y": 1154944, + "x": 1601390520000, + "y": 1163200, }, Object { - "x": 1600160730000, - "y": 1544192, + "x": 1601390550000, + "y": 1171392, }, Object { - "x": 1600160760000, - "y": 888768, + "x": 1601390580000, + "y": 901120, }, Object { - "x": 1600160790000, - "y": 1783808, + "x": 1601390610000, + "y": 1355776, }, Object { - "x": 1600160820000, - "y": 737248, + "x": 1601390640000, + "y": 1515520, }, Object { - "x": 1600160850000, - "y": 1409024, + "x": 1601390670000, + "y": 1097600, }, Object { - "x": 1600160880000, - "y": 843520, + "x": 1601390700000, + "y": 1363968, }, Object { - "x": 1600160910000, - "y": 987072, + "x": 1601390730000, + "y": 1290240, }, Object { - "x": 1600160940000, - "y": 1646592, + "x": 1601390760000, + "y": 663488, }, Object { - "x": 1600160970000, - "y": 884736, + "x": 1601390790000, + "y": 827264, }, Object { - "x": 1600161000000, - "y": 1163200, + "x": 1601390820000, + "y": 1302400, }, Object { - "x": 1600161030000, - "y": 991168, + "x": 1601390850000, + "y": 978912, }, Object { - "x": 1600161060000, - "y": 806784, + "x": 1601390880000, + "y": 1482720, }, Object { - "x": 1600161090000, - "y": 1732608, + "x": 1601390910000, + "y": 1306624, }, Object { - "x": 1600161120000, - "y": 1916864, + "x": 1601390940000, + "y": 1179520, }, Object { - "x": 1600161150000, - "y": 1335168, + "x": 1601390970000, + "y": 1347584, }, Object { - "x": 1600161180000, - "y": 1703936, + "x": 1601391000000, + "y": 1122272, }, Object { - "x": 1600161210000, - "y": 1306624, + "x": 1601391030000, + "y": 1835008, }, Object { - "x": 1600161240000, - "y": 1343424, + "x": 1601391060000, + "y": 1572864, }, Object { - "x": 1600161270000, - "y": 794560, + "x": 1601391090000, + "y": 1343232, }, Object { - "x": 1600161300000, - "y": 1351552, + "x": 1601391120000, + "y": 810880, }, Object { - "x": 1600161330000, - "y": 1275904, + "x": 1601391150000, + "y": 1122048, }, Object { - "x": 1600161360000, - "y": 1515264, + "x": 1601391180000, + "y": 782208, }, Object { - "x": 1600161390000, - "y": 1359808, + "x": 1601391210000, + "y": 1466368, }, Object { - "x": 1600161420000, - "y": 1187808, + "x": 1601391240000, + "y": 1490928, }, Object { - "x": 1600161450000, - "y": 1069056, + "x": 1601391270000, + "y": 1433472, }, Object { - "x": 1600161480000, - "y": 24896, + "x": 1601391300000, + "y": 1677312, }, Object { - "x": 1600161510000, - "y": 804864, + "x": 1601391330000, + "y": 1830912, }, Object { - "x": 1600161540000, - "y": 1347584, + "x": 1601391360000, + "y": 950144, }, Object { - "x": 1600161570000, - "y": 1138688, + "x": 1601391390000, + "y": 1265664, }, Object { - "x": 1600161600000, - "y": 1588224, + "x": 1601391420000, + "y": 1408896, }, Object { - "x": 1600161630000, - "y": 1089280, + "x": 1601391450000, + "y": 1178624, }, Object { - "x": 1600161660000, - "y": 1793920, + "x": 1601391480000, + "y": 946048, }, Object { - "x": 1600161690000, - "y": 1679360, + "x": 1601391510000, + "y": 1761248, }, Object { - "x": 1600161720000, - "y": 1384416, + "x": 1601391540000, + "y": 626688, }, Object { - "x": 1600161750000, - "y": 19328, + "x": 1601391570000, + "y": 1564544, }, Object { - "x": 1600161780000, - "y": 1554432, + "x": 1601391600000, + "y": null, }, ], }, "tpmBuckets": Array [ Object { - "avg": 2.83333333333333, + "avg": 3.3, "dataPoints": Array [ Object { - "x": 1600159980000, - "y": 0, + "x": 1601389800000, + "y": 3, }, Object { - "x": 1600160010000, - "y": 0, + "x": 1601389830000, + "y": 2, + }, + Object { + "x": 1601389860000, + "y": 1, }, Object { - "x": 1600160040000, + "x": 1601389890000, "y": 0, }, Object { - "x": 1600160070000, - "y": 3, + "x": 1601389920000, + "y": 4, }, Object { - "x": 1600160100000, - "y": 2, + "x": 1601389950000, + "y": 1, + }, + Object { + "x": 1601389980000, + "y": 1, }, Object { - "x": 1600160130000, + "x": 1601390010000, "y": 0, }, Object { - "x": 1600160160000, - "y": 2, + "x": 1601390040000, + "y": 11, }, Object { - "x": 1600160190000, - "y": 1, + "x": 1601390070000, + "y": 4, }, Object { - "x": 1600160220000, + "x": 1601390100000, "y": 1, }, Object { - "x": 1600160250000, + "x": 1601390130000, "y": 0, }, Object { - "x": 1600160280000, - "y": 3, + "x": 1601390160000, + "y": 10, }, Object { - "x": 1600160310000, - "y": 3, + "x": 1601390190000, + "y": 1, }, Object { - "x": 1600160340000, - "y": 2, + "x": 1601390220000, + "y": 0, }, Object { - "x": 1600160370000, + "x": 1601390250000, "y": 0, }, Object { - "x": 1600160400000, - "y": 8, + "x": 1601390280000, + "y": 1, }, Object { - "x": 1600160430000, - "y": 1, + "x": 1601390310000, + "y": 0, }, Object { - "x": 1600160460000, + "x": 1601390340000, "y": 1, }, Object { - "x": 1600160490000, + "x": 1601390370000, "y": 0, }, Object { - "x": 1600160520000, + "x": 1601390400000, "y": 0, }, Object { - "x": 1600160550000, - "y": 3, + "x": 1601390430000, + "y": 1, }, Object { - "x": 1600160580000, - "y": 0, + "x": 1601390460000, + "y": 4, }, Object { - "x": 1600160610000, + "x": 1601390490000, "y": 0, }, Object { - "x": 1600160640000, - "y": 8, - }, - Object { - "x": 1600160670000, - "y": 1, + "x": 1601390520000, + "y": 3, }, Object { - "x": 1600160700000, + "x": 1601390550000, "y": 3, }, Object { - "x": 1600160730000, + "x": 1601390580000, "y": 0, }, Object { - "x": 1600160760000, - "y": 4, + "x": 1601390610000, + "y": 0, }, Object { - "x": 1600160790000, + "x": 1601390640000, "y": 0, }, Object { - "x": 1600160820000, + "x": 1601390670000, "y": 2, }, Object { - "x": 1600160850000, + "x": 1601390700000, "y": 0, }, Object { - "x": 1600160880000, + "x": 1601390730000, "y": 0, }, Object { - "x": 1600160910000, - "y": 5, - }, - Object { - "x": 1600160940000, - "y": 0, + "x": 1601390760000, + "y": 2, }, Object { - "x": 1600160970000, - "y": 0, + "x": 1601390790000, + "y": 2, }, Object { - "x": 1600161000000, + "x": 1601390820000, "y": 3, }, Object { - "x": 1600161030000, - "y": 5, + "x": 1601390850000, + "y": 1, }, Object { - "x": 1600161060000, - "y": 1, + "x": 1601390880000, + "y": 6, }, Object { - "x": 1600161090000, + "x": 1601390910000, "y": 0, }, Object { - "x": 1600161120000, - "y": 2, + "x": 1601390940000, + "y": 3, }, Object { - "x": 1600161150000, - "y": 1, + "x": 1601390970000, + "y": 0, }, Object { - "x": 1600161180000, + "x": 1601391000000, + "y": 5, + }, + Object { + "x": 1601391030000, "y": 0, }, Object { - "x": 1600161210000, + "x": 1601391060000, "y": 0, }, Object { - "x": 1600161240000, + "x": 1601391090000, "y": 1, }, Object { - "x": 1600161270000, - "y": 2, + "x": 1601391120000, + "y": 4, }, Object { - "x": 1600161300000, + "x": 1601391150000, "y": 1, }, Object { - "x": 1600161330000, - "y": 0, + "x": 1601391180000, + "y": 2, }, Object { - "x": 1600161360000, - "y": 1, + "x": 1601391210000, + "y": 0, }, Object { - "x": 1600161390000, + "x": 1601391240000, "y": 3, }, Object { - "x": 1600161420000, - "y": 2, + "x": 1601391270000, + "y": 1, }, Object { - "x": 1600161450000, + "x": 1601391300000, "y": 0, }, Object { - "x": 1600161480000, - "y": 2, + "x": 1601391330000, + "y": 0, }, Object { - "x": 1600161510000, - "y": 0, + "x": 1601391360000, + "y": 1, }, Object { - "x": 1600161540000, + "x": 1601391390000, "y": 0, }, Object { - "x": 1600161570000, - "y": 0, + "x": 1601391420000, + "y": 1, }, Object { - "x": 1600161600000, + "x": 1601391450000, "y": 0, }, Object { - "x": 1600161630000, - "y": 1, + "x": 1601391480000, + "y": 2, }, Object { - "x": 1600161660000, - "y": 1, + "x": 1601391510000, + "y": 6, }, Object { - "x": 1600161690000, + "x": 1601391540000, "y": 0, }, Object { - "x": 1600161720000, - "y": 5, - }, - Object { - "x": 1600161750000, + "x": 1601391570000, "y": 1, }, Object { - "x": 1600161780000, + "x": 1601391600000, "y": 0, }, ], "key": "HTTP 2xx", }, Object { - "avg": 0.233333333333333, + "avg": 0.2, "dataPoints": Array [ Object { - "x": 1600159980000, + "x": 1601389800000, "y": 0, }, Object { - "x": 1600160010000, + "x": 1601389830000, "y": 0, }, Object { - "x": 1600160040000, + "x": 1601389860000, "y": 0, }, Object { - "x": 1600160070000, + "x": 1601389890000, "y": 0, }, Object { - "x": 1600160100000, + "x": 1601389920000, "y": 0, }, Object { - "x": 1600160130000, - "y": 0, - }, - Object { - "x": 1600160160000, + "x": 1601389950000, "y": 1, }, Object { - "x": 1600160190000, + "x": 1601389980000, "y": 0, }, Object { - "x": 1600160220000, + "x": 1601390010000, "y": 0, }, Object { - "x": 1600160250000, - "y": 0, + "x": 1601390040000, + "y": 1, }, Object { - "x": 1600160280000, + "x": 1601390070000, "y": 0, }, Object { - "x": 1600160310000, + "x": 1601390100000, "y": 0, }, Object { - "x": 1600160340000, + "x": 1601390130000, "y": 0, }, Object { - "x": 1600160370000, - "y": 0, + "x": 1601390160000, + "y": 2, }, Object { - "x": 1600160400000, + "x": 1601390190000, "y": 0, }, Object { - "x": 1600160430000, - "y": 3, + "x": 1601390220000, + "y": 0, }, Object { - "x": 1600160460000, + "x": 1601390250000, "y": 0, }, Object { - "x": 1600160490000, + "x": 1601390280000, "y": 0, }, Object { - "x": 1600160520000, + "x": 1601390310000, "y": 0, }, Object { - "x": 1600160550000, + "x": 1601390340000, "y": 0, }, Object { - "x": 1600160580000, + "x": 1601390370000, "y": 0, }, Object { - "x": 1600160610000, + "x": 1601390400000, "y": 0, }, Object { - "x": 1600160640000, - "y": 1, + "x": 1601390430000, + "y": 0, }, Object { - "x": 1600160670000, + "x": 1601390460000, "y": 0, }, Object { - "x": 1600160700000, + "x": 1601390490000, "y": 0, }, Object { - "x": 1600160730000, + "x": 1601390520000, "y": 0, }, Object { - "x": 1600160760000, + "x": 1601390550000, "y": 0, }, Object { - "x": 1600160790000, + "x": 1601390580000, "y": 0, }, Object { - "x": 1600160820000, + "x": 1601390610000, "y": 0, }, Object { - "x": 1600160850000, + "x": 1601390640000, "y": 0, }, Object { - "x": 1600160880000, + "x": 1601390670000, "y": 1, }, Object { - "x": 1600160910000, + "x": 1601390700000, "y": 0, }, Object { - "x": 1600160940000, + "x": 1601390730000, "y": 0, }, Object { - "x": 1600160970000, + "x": 1601390760000, + "y": 1, + }, + Object { + "x": 1601390790000, "y": 0, }, Object { - "x": 1600161000000, + "x": 1601390820000, "y": 0, }, Object { - "x": 1600161030000, + "x": 1601390850000, "y": 0, }, Object { - "x": 1600161060000, + "x": 1601390880000, "y": 0, }, Object { - "x": 1600161090000, + "x": 1601390910000, "y": 0, }, Object { - "x": 1600161120000, + "x": 1601390940000, "y": 0, }, Object { - "x": 1600161150000, + "x": 1601390970000, "y": 0, }, Object { - "x": 1600161180000, + "x": 1601391000000, "y": 0, }, Object { - "x": 1600161210000, + "x": 1601391030000, "y": 0, }, Object { - "x": 1600161240000, + "x": 1601391060000, "y": 0, }, Object { - "x": 1600161270000, - "y": 1, + "x": 1601391090000, + "y": 0, }, Object { - "x": 1600161300000, + "x": 1601391120000, "y": 0, }, Object { - "x": 1600161330000, + "x": 1601391150000, "y": 0, }, Object { - "x": 1600161360000, + "x": 1601391180000, "y": 0, }, Object { - "x": 1600161390000, + "x": 1601391210000, "y": 0, }, Object { - "x": 1600161420000, + "x": 1601391240000, "y": 0, }, Object { - "x": 1600161450000, + "x": 1601391270000, "y": 0, }, Object { - "x": 1600161480000, + "x": 1601391300000, "y": 0, }, Object { - "x": 1600161510000, + "x": 1601391330000, "y": 0, }, Object { - "x": 1600161540000, + "x": 1601391360000, "y": 0, }, Object { - "x": 1600161570000, + "x": 1601391390000, "y": 0, }, Object { - "x": 1600161600000, + "x": 1601391420000, "y": 0, }, Object { - "x": 1600161630000, + "x": 1601391450000, "y": 0, }, Object { - "x": 1600161660000, + "x": 1601391480000, "y": 0, }, Object { - "x": 1600161690000, + "x": 1601391510000, "y": 0, }, Object { - "x": 1600161720000, + "x": 1601391540000, "y": 0, }, Object { - "x": 1600161750000, + "x": 1601391570000, "y": 0, }, Object { - "x": 1600161780000, + "x": 1601391600000, "y": 0, }, ], "key": "HTTP 4xx", }, Object { - "avg": 4.46666666666667, + "avg": 4.26666666666667, "dataPoints": Array [ Object { - "x": 1600159980000, - "y": 2, + "x": 1601389800000, + "y": 4, }, Object { - "x": 1600160010000, - "y": 2, + "x": 1601389830000, + "y": 3, }, Object { - "x": 1600160040000, - "y": 1, + "x": 1601389860000, + "y": 2, }, Object { - "x": 1600160070000, + "x": 1601389890000, "y": 2, }, Object { - "x": 1600160100000, - "y": 3, + "x": 1601389920000, + "y": 1, }, Object { - "x": 1600160130000, - "y": 0, + "x": 1601389950000, + "y": 4, }, Object { - "x": 1600160160000, - "y": 3, + "x": 1601389980000, + "y": 0, }, Object { - "x": 1600160190000, - "y": 2, + "x": 1601390010000, + "y": 3, }, Object { - "x": 1600160220000, + "x": 1601390040000, "y": 3, }, Object { - "x": 1600160250000, - "y": 2, + "x": 1601390070000, + "y": 1, }, Object { - "x": 1600160280000, + "x": 1601390100000, "y": 2, }, Object { - "x": 1600160310000, + "x": 1601390130000, "y": 3, }, Object { - "x": 1600160340000, - "y": 1, + "x": 1601390160000, + "y": 0, }, Object { - "x": 1600160370000, + "x": 1601390190000, + "y": 3, + }, + Object { + "x": 1601390220000, "y": 2, }, Object { - "x": 1600160400000, + "x": 1601390250000, "y": 3, }, Object { - "x": 1600160430000, - "y": 1, + "x": 1601390280000, + "y": 0, }, Object { - "x": 1600160460000, + "x": 1601390310000, "y": 3, }, Object { - "x": 1600160490000, + "x": 1601390340000, + "y": 3, + }, + Object { + "x": 1601390370000, "y": 2, }, Object { - "x": 1600160520000, - "y": 4, + "x": 1601390400000, + "y": 0, }, Object { - "x": 1600160550000, + "x": 1601390430000, + "y": 3, + }, + Object { + "x": 1601390460000, "y": 1, }, Object { - "x": 1600160580000, + "x": 1601390490000, "y": 3, }, Object { - "x": 1600160610000, - "y": 3, + "x": 1601390520000, + "y": 1, + }, + Object { + "x": 1601390550000, + "y": 2, }, Object { - "x": 1600160640000, + "x": 1601390580000, "y": 2, }, Object { - "x": 1600160670000, + "x": 1601390610000, "y": 2, }, Object { - "x": 1600160700000, + "x": 1601390640000, "y": 1, }, Object { - "x": 1600160730000, + "x": 1601390670000, "y": 2, }, Object { - "x": 1600160760000, + "x": 1601390700000, "y": 2, }, Object { - "x": 1600160790000, + "x": 1601390730000, "y": 3, }, Object { - "x": 1600160820000, - "y": 2, + "x": 1601390760000, + "y": 1, }, Object { - "x": 1600160850000, + "x": 1601390790000, "y": 2, }, Object { - "x": 1600160880000, - "y": 1, - }, - Object { - "x": 1600160910000, + "x": 1601390820000, "y": 3, }, Object { - "x": 1600160940000, - "y": 3, + "x": 1601390850000, + "y": 2, }, Object { - "x": 1600160970000, - "y": 1, + "x": 1601390880000, + "y": 2, }, Object { - "x": 1600161000000, + "x": 1601390910000, "y": 4, }, Object { - "x": 1600161030000, - "y": 2, - }, - Object { - "x": 1600161060000, - "y": 3, + "x": 1601390940000, + "y": 1, }, Object { - "x": 1600161090000, + "x": 1601390970000, "y": 3, }, Object { - "x": 1600161120000, + "x": 1601391000000, "y": 1, }, Object { - "x": 1600161150000, - "y": 4, + "x": 1601391030000, + "y": 3, }, Object { - "x": 1600161180000, + "x": 1601391060000, "y": 2, }, Object { - "x": 1600161210000, + "x": 1601391090000, "y": 3, }, Object { - "x": 1600161240000, + "x": 1601391120000, "y": 2, }, Object { - "x": 1600161270000, + "x": 1601391150000, "y": 2, }, Object { - "x": 1600161300000, + "x": 1601391180000, "y": 1, }, Object { - "x": 1600161330000, + "x": 1601391210000, "y": 2, }, Object { - "x": 1600161360000, + "x": 1601391240000, "y": 2, }, Object { - "x": 1600161390000, + "x": 1601391270000, "y": 2, }, Object { - "x": 1600161420000, + "x": 1601391300000, "y": 3, }, Object { - "x": 1600161450000, - "y": 3, + "x": 1601391330000, + "y": 2, }, Object { - "x": 1600161480000, - "y": 0, + "x": 1601391360000, + "y": 2, }, Object { - "x": 1600161510000, + "x": 1601391390000, "y": 3, }, Object { - "x": 1600161540000, + "x": 1601391420000, "y": 3, }, Object { - "x": 1600161570000, - "y": 1, - }, - Object { - "x": 1600161600000, - "y": 4, + "x": 1601391450000, + "y": 2, }, Object { - "x": 1600161630000, - "y": 2, + "x": 1601391480000, + "y": 1, }, Object { - "x": 1600161660000, + "x": 1601391510000, "y": 3, }, Object { - "x": 1600161690000, + "x": 1601391540000, "y": 1, }, Object { - "x": 1600161720000, + "x": 1601391570000, "y": 4, }, Object { - "x": 1600161750000, + "x": 1601391600000, "y": 0, }, - Object { - "x": 1600161780000, - "y": 2, - }, ], "key": "success", }, diff --git a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/breakdown.ts b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/breakdown.ts index 1c842ee457dae..f2e58718870bf 100644 --- a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/breakdown.ts +++ b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/breakdown.ts @@ -73,23 +73,23 @@ export default function ApiTest({ getService }: FtrProviderContext) { ).toMatchInline(` Array [ Object { - "x": "2020-09-15T08:53:00.000Z", - "y": null, + "x": "2020-09-29T14:30:00.000Z", + "y": 1, }, Object { - "x": "2020-09-15T08:53:30.000Z", - "y": null, + "x": "2020-09-29T14:30:30.000Z", + "y": 1, }, Object { - "x": "2020-09-15T08:54:00.000Z", - "y": null, + "x": "2020-09-29T14:31:00.000Z", + "y": 1, }, Object { - "x": "2020-09-15T08:54:30.000Z", + "x": "2020-09-29T14:31:30.000Z", "y": null, }, Object { - "x": "2020-09-15T08:55:00.000Z", + "x": "2020-09-29T14:32:00.000Z", "y": 1, }, ] diff --git a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/error_rate.ts b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/error_rate.ts index 17ada95ca4958..8ef42052ba951 100644 --- a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/error_rate.ts +++ b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/error_rate.ts @@ -66,13 +66,13 @@ export default function ApiTest({ getService }: FtrProviderContext) { it('has the correct start date', () => { expectSnapshot( new Date(first(errorRateResponse.erroneousTransactionsRate)?.x ?? NaN).toISOString() - ).toMatchInline(`"2020-09-15T08:53:00.000Z"`); + ).toMatchInline(`"2020-09-29T14:30:00.000Z"`); }); it('has the correct end date', () => { expectSnapshot( new Date(last(errorRateResponse.erroneousTransactionsRate)?.x ?? NaN).toISOString() - ).toMatchInline(`"2020-09-15T09:23:00.000Z"`); + ).toMatchInline(`"2020-09-29T15:00:00.000Z"`); }); it('has the correct number of buckets', () => { @@ -80,7 +80,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); it('has the correct calculation for average', () => { - expectSnapshot(errorRateResponse.average).toMatchInline(`0.140863095238095`); + expectSnapshot(errorRateResponse.average).toMatchInline(`0.200076804915515`); }); it('has the correct error rate', () => { diff --git a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/top_transaction_groups.ts b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/top_transaction_groups.ts index c3ac1ed518652..2e802957a95e3 100644 --- a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/top_transaction_groups.ts +++ b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/top_transaction_groups.ts @@ -57,7 +57,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); it('returns the correct number of buckets', () => { - expectSnapshot(response.body.items.length).toMatchInline(`14`); + expectSnapshot(response.body.items.length).toMatchInline(`12`); }); it('returns the correct buckets (when ignoring samples)', async () => { diff --git a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/transaction_charts.ts b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/transaction_charts.ts index ef874695e6046..c9581079b9952 100644 --- a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/transaction_charts.ts +++ b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/transaction_charts.ts @@ -62,7 +62,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { it('returns the correct data', () => { expectSnapshot(response.body.apmTimeseries.overallAvgDuration).toMatchInline( - `600255.707964602` + `600888.274678112` ); expectSnapshot(response.body.apmTimeseries.responseTimes.avg.length).toMatchInline(`61`); expectSnapshot(response.body.apmTimeseries.tpmBuckets.length).toMatchInline(`3`); diff --git a/x-pack/test/apm_api_integration/common/archives_metadata.ts b/x-pack/test/apm_api_integration/common/archives_metadata.ts index 84932310d22d2..48111ced9052e 100644 --- a/x-pack/test/apm_api_integration/common/archives_metadata.ts +++ b/x-pack/test/apm_api_integration/common/archives_metadata.ts @@ -6,7 +6,7 @@ export default { 'apm_8.0.0': { - start: '2020-09-15T08:53:10.777Z', - end: '2020-09-15T09:23:10.777Z', + start: '2020-09-29T14:30:00.000Z', + end: '2020-09-29T15:00:00.000Z', }, }; diff --git a/x-pack/test/apm_api_integration/common/fixtures/es_archiver/apm_8.0.0/data.json.gz b/x-pack/test/apm_api_integration/common/fixtures/es_archiver/apm_8.0.0/data.json.gz index 9b21a59367e80509d8a602f7be1d08e3865f0a73..159123b937857bc6ea6bf8c90f1c472b1eb5ba91 100644 GIT binary patch literal 2527015 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�(9`I(48? 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­owg}^WR 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 z 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

?Hg1cYrHY`mSd-L`jcJSC-4W< z^RbwKHVRF>XFt{ujAx_pU}+Z>qT2#ZI>43ZGz9A zW~Ry_7^zz28D zxxi)Y38B801gSL^2(F$y@aUZFquCV5IxRcLA>UGvPBf#fq;-Be%A61X5~sdgLP*!> zc40rhoCoV`p>66UM`&LfaXv7(2O8g-m9pNS$SO@An1PC~u($DZ$XXmM6f;OaH{)anEyERvbDq zFXy`F9(mM%4(n1*svyi6WGrFvDXvMuiPz@q#<$GEHVYb09-xRBoewLh3M;(GY8MAG zug_JFKg{9vhB?mX0S{Q}fw@eJk+0?aBYI`BnrK;8)u>N?73iN7$E=`Bl(7_>+;QWo zRHmL8vc4yF?vx%HLxvM@97MjEUJs1wLsLt-w`d3B*|v1;LMeXQUNdErh5^wtV7gpS zEKD3IckR^@@t)8pJPtMapS-q?YtrNF|K=o%kk?d`qgV zg4tISIoB737XbOH&Ew2V3 zwE1-Ag#yIUO85Cv#0MuHP$Gq^_uzxn#|98Lf^uiL%NVo0JB>-ArkZ$h+Vg1K&wHv# z3SMVvmwzcppc;ApwYRtHukQ7 zOW;z6KFT2-A8u1m8Br(BrEwON;kY*!lps{UHjLqs8xu|Y|IzgpKy|BM*e|6}+})+P zyGzmH?(XjHR$Pm_vvK$0QlPlIyE_zzyJ^ok|L@-U?!2>Sze#2%*-7S2ves`s552Vd zH=IXeuy(_!PwXSH;<$LwjDwb}4FGMZZ#bI(MVHb(ba)#IGELd!?wg|n>q?_`{3;{w zx6ub`4A`;p-TBgyNx1fCRnU0Ml%HKB{r3UYaG>;X$|=_=KPjA%d)>I8@@Sw8&g#C1 z4}jX%GRTFm^%f}<&s5RBsND58?gMPqGStRI&g4B{(yzKKO#(<9WA)Ti4q@XlEoBWj zqzv?sw>QWcQInJUOXDbLhtvBoUp5PECiX=c1{#VClS#)7%*N2N^PaBMVRLbpW3SZ< zJI6EMuFGsgmfHCV*4oYz_r2T;y@Z(Fv30xGgMf+JTo#OxQt2j!kn7E7g$#nCiiDo^ z`gL7&Xm7T8z871dZOK!4MhH*z8qW0Qk<#d#4x=L>C(98u+JLm zxqu3kd!UI3%2c_2!19zTE$8;?&{~s`Sfy*?{M-7mZKrR>d?(7=qv_z64PO*|%O$;jCD@J79VP*3f%m9iVB$RYTttX0f#Z$ef-QAy~ zLmv1s&_>Hr&5<99v=ippGT9Bc&u$v0%{7oXM^-DrQHi`zvHSm3uK9)QW3W-x0j?= z!7AB_3s-iMrY}(gBuq+@)yUUCqm_aDi8)PtxRFpQj|&%o5zy9Tck)!hshvd&@QJuEKmrPE^#i(a_0usK z$!?;8joe|AiJ<{xVUXmMSar{3^JSm{>?|T zpuZ4y+!w2Ib^VVM$2!<#5qrJ_iLC3Tr|(fxMuYz&O4@Vx9wl8${`xe?Hb{LI=e2YQ zFLO`-SwGo0FT(REw4MX4jt z>cN4sVmHf!FE=y~(4EXlHwxdB-ufORl{fhC9wS}8(?|Ax&Hbt}JH;{l466du#RbK2 zojkE3Ni__cO+CwUeiqR5%d`jLWh-XdDkfP`%Vcyeejo?Sn*p#g9a6m|r}u<{kTC`y zeyd|Y_+xIlWAs(uYg3dIGID*E_e#|jQxEqNWj?~*nFocYUd0=x6A_T0}w7hcz7v@`Th3@=@&_Ui?@#{ zSzak3C@M1Kfdlh^1O;4&P@mbuwa*;yjX=h(ebX-&^<} z@66|iu<@<;vU|iOQR4Z@xuofKI2aMO>2|x(XJt+nBaq9mR=_*vw**%7@}p#Xh3>MP zyqVblE%}m7@hABroO>B1-LT=077Lkh$pzVv^ud`h)m}eO(0}=HzN2D&>wUex8%?*G ziOKD#4-;!1L=vrK+1%uTrHeL+Z0qyWV*9A`q{-(@Lkyo6N?Vn&OA=O;Z!4QzA43Mr zyL@Y1!bVh01K3dqDsS}oQuu!m3JXc*k}l5sKj`@crT!h7S%5<`sP|*YO@6mk_u8Q^ z`?9*JIofL8={_D0!Z^YA{cD`9!Qz1LRQL7Ou23H4iPLfOCAd}gS{j>Clf+d_{gS`i zfNabUgG0Lgf?34|&nAs1SCa?r>yO9DTov@#ENbeb*W#vM9Mm`%t8hd%EN@k`8~c7- zOmoW=ShGD~U#;>sXRav{`DV!CvoC32lcp^W^!1+Cd1->v?Pn2^%U;O5W5k!Q8snAy z=7p(_=4r-!`OKoG0S}=InM?q4u;I4hJQ^vHi~=TfMik<@F;Tv75rbVH6?D14DW@HY z#o0#RbZrhjT`QE7?Q3eW1j&TEe(;xOU&S`KpN(law*a<2Q{KqmS6gkD*T=5pRb1^( zxeUTWk!kv$%i158Es)dCd6LDgBKGf&kToj+7V;bt8YP&6&Pp7K!&5GzdOLcD7V(;B zI@p;ZyoP8ml$=#mhqU1F9;Bg@cf}POLuXWVkH=Cbx4Xv|c_SlK-+o3b8yrPmi)Jar zEm0zb5y3%*2^fSBG3JuEW>8WB-xLZ?5)8GGW>uuYgPWN#QJJ(-lTAokSvtRLUl-w~Lx1~!_3x6<of(sPYAcaF= z`{}3QOs}YohD(<+JVh;@(_^U?hE_^oSHY@|CG>g;ogcMVAYD_ELG~7mOU}nnWyAr_ zHAw@ttm&7u&oyTsL3V{6H0f-#}rebxM2fRZ0sH_yG~zSobdgT3HRe}ew;%r&|*oi|hb!Kj&8x^TI-Y5P3lo^n~2D)Rf?ibya6K)(+?8Yr0CLrR^LxMC-PMpJBVLy5=EMlYEf>Qg4Bn zC}SVSeFE&GB7zGe;O7~LghJO9U+m^@pCaUsiQy9jm((o-{ogn9zO@?n>11h* z%*mc*dB5)?p6YXF(ixuPMQoo-AJ3$j);}wo$@kftqS`}qYaKE@Us+2-jWQ> z<^I0_*IlBZRP_!LUm!x+p3pE0hT7HpX#}3lP@EHjqgV~1=sIMj0JH?)LD66><`Pl` zM^627fIv(Aj=)NjKzsGinA7woNeQ7tRbcayC~aaH!G-^v*FIoc0x>bE%$cbWqIUeC z$dOm!XuPTe&*JWt=Xuh3NU8J+Zn)1vVs!i&;RQUi&T2srKxYVB=Ty-=(??@Mg`&b} zsaBvi^gqPcCgFAX=N-XZRdV4+f(h3eF|y$p=d&oXqH`}jD`&3N#ouCL zPv9a`z{pJ=v3b*rI4k#Qz0;86-p)vp({!w#!R#2+U_Wj_e;F| zH(V2*`s9SruvQSeW?54mxU#Qa5>%D*WAcUyMt747t`)pu*}{3t&TEsFMwt8u$`VXt zy>-aTEY0p@5^-qQ~lW?oruu&|R_0B=X9q64 zo^7h|dla{OBafz=nd!V2a}bkQtFFjtE`P*=^ZBkgj0zk(BJyHIvGv2hZQyVUXQ$*}M$K8*P>Z@_YV9P_KIRT=h3lD)G3eGzi* zc6h=k=LCg1izFfeW8?pqq64B-#ch#jccr=Br_3rVPr)-byOFb1t0cg1;L9nZJ(m?21G>RQ7FM<$=oMS3Lt^};XOLOKY{$kU7Wi`Dvi5B|BgI~bXI}?=4?(+ z9r+KN2SoG~b7#iS?nH4KZI?)z<8@3q#AILjto9Me-WDnns#Qvo6ygLqlyLq2X7Ke1VGOA7i&y!R~qH)EdWdN)s zxLJ9LIH)3C6-lALFrI)!2)nk5U>c-lkVP1QO`s|4zsVb5iom&)=G@W6k}&!Yjc2sN zm7x4T+Kc{!5~xqLOmWhEZn0S)#J_n3zwB=^AemW{Xbp-G`e?v^Q*g*o-Sp`XSP0|` zor=YCRzE@l88;|GXw72me@Hwq5Ij5L(8?eqOaxI>s*3gyd=?k;8iImdMdK z`f5o;TiBIDZ~*b>?~{}LP5Ohk4pRFy&ORxS#G4ZA=OmNo{J)WSzo1G;Z4w~f!M=CC z58g|9VvMMunhxlTbG0Nn6Z`4kYz4fF_QV-@V1s}&>i4}Bwde+ce^J+oZlI79o>NOJ z0PzorCrCXS3kys&{Ef!LHz`b|0-?ozAx!!gSta3B22K1oh@E#0PCZT6@yWbf+ zAc~hw1@L>%=H&ykdC<1&68vx!Oo0_}3c{Z;fO!FHrj`G1S^!K#k4RWWamIIV)-Q4BS!>JH-N0c>lt9M}J_vWp0Y%XlSNLpm)|lj!A32= z@x{LH`U~6E_<0k51D)^FUXk4bz4MjiQ!t7Z?JF*XJuDt;kn_23_SG*tMA!Zb##Acr z8c!#hnqCVc?Pa-|p8)?RsW?etWMTV}ZwuHsmn1tpO2;8L<*cDw58rK+%@k?f^h8KN zjoaV_D~$Ep#v@@+(86nl9$$OaZi)MrdY9U8#63qB>sl5I#{hWa-Ys>yt>VBj<8fYk zO6=(dXIk#t}3(d0!dn2vIt^d%VmX+ z)(|SWPgy_5Mbj4Pr~U)+DT-#M{eK`nY#4hosS_< zp6N*DD?I|j(z$gMgP`+gKez)6(t-*Gt$iQ#>BA)Aht2z%>no0n+nQNky-eeM**@vN z6|NtwH*F8s+>A>lVBrUog{N$lY~Di4OkoeQ!%D*}7jSTSKV3Z$_?!@hh-tbQ>PP;5SK($ zoc@t_`&K-|)B@c0besxhwA^~Tr>hS!pSK3Dur+PbeBFAq!OXI4C%Uaq+Y2i$7?Ob! zxIx0~3Po;14*Mc9P$iv!Y; zt{Kat7ZS@TU`3=r#j2ZrCg>wxTt|k1cAZIN(6MO7X|nrHkxX$O1@mbCRv2RE`hC;J zfwKbhtkD^-0_p7MbF8!!}&94ppG4S1#l+85EAo@`RbN6^d*qtG@Q>L*9=08o_r*b7JDez_I z&U2xt*kM?I(kLm{c`exq^x7LeAi8|tUEY%j3t5F5b3=tfDk7F*(swejXdGHupruQ2 zGfUu&_B;C?P-X!=CMG*@8XF))BM5!wPT8z03RBogve6SbKqrkG!-VryT&aq%pnPUL zRDe0EW?p{+hV?9=-ko76Mbk+ko%4bNg*;Qc!ViHwGdOJ5&L{TC!E=@*W!z`jQm^!QTA z|COe-;*Pg9gpD5vF&6EAoyfU;7-*c%=mW9+5C5*$&6M(_NJ*LZc`welq+E8<*!TGj!NA?nm!ki_ac=iCv2<{Qtqm z(Bm@yuS{I-mL4uI**}>$imtZi@Yd;H&1qg$F`X&-m}_Cddpgi%SnK68t-$$mJMU^TJv^SITK0ag=_4+cmB7uTJ{V*`;X&5&ea5_pRza zj_*-fwPrSHx)5pd!anJznR7*YFe1Zjk3PqlK4N^7pb+LJq^nS z?|R17_Y5+8$)a$#kWWoNV%KzKB?Qye@NT=>l*e^VjPZqzc{|$Ydc4gW;3T79rP`;v zUdQYEQZ@JMdXj%#q!Ug!+3zM-X}mR94mvAjfAaxioZFH&UuLT3`r?_$!>9Bc!1wyl z*9Uj}D?iM0Daf-R$TP^>rk^h6Fy^gvj~FSZK`8fBBks7`@C1}|v zR})TgQ=zX1Jrjz__?Uy%ImFpubV&Mond5OBQJfL#^7L2!3@teXMG=dvZg!W~!`Bh# zKJHD0-YHU)31KY6Rk7p;ppw>mP9}lu`aaT77=S5eB(k+)sS-7E^#ro1;8-!WHjF2` zRlPJXgP*~_p={#;H~K!#kI(n0-h3;gR<2%XMN`MDaSttd79(-N=n(#G6^N2HTNG9cxNMsBL6 zE1d>5A@A;@1eNOcc)EVJz2?+C4I7<2$r0(NzLc%LBL0NgPcZR4;_h08=|vxNuDy&@ z418ZNrBMM(C$*x?vkjIv!Na$LQ-r}$$g2FTrYU?cXls6{f#_8HR7K6!*%3CJz@#v1 zO?zY78tZ5AWDn_t_AuUg4LLVOgg4DOvfrp4ZAm7k=?l8IT)hDlHF_`)m!JEd7Mjvf zRiOzy>IZndQB70#4bH@waYki9$DT=9?&5|V3ZtAX{(;UJf7@*im^V6VuLF|R>uz@# z&Grrr8Sie0X!vXkJLVoxTsKQv?{~bN9u-JXg4It^RoAA&w%B>9!O8n0-iMvUg6SbD z*+PmAk}UqN=3bEP6bQ^XmNV~L2+RxWXXwtJs&yQv%RKaPxGXTkaso-dhMt2IH#lO!uOEli7nlxT!X3I`8)Dcf)I0{qwyo z!!#FNXB%@w-Y*%Vz{Z!s5jA+1A3eS1L5iBRtFMkvOhmjXu&Pqqy0xxD-6}Jh_AX=Q z6bs1yG*c2(0e6P{S}2}vi>O=F4#P#MdAMOKzAw$Sa46V*&Vc7TqJoGj8o8em&2O&* z(|wwEcprqozXC>6u^pYhoe|@k+;~_ZCbL#xy@L#V?K#qOfLhlVd@c4SOxRN(PWICR z1#X?l=8}37ou4jH=K;O5eFwH0egmjwLn$+tTZsvjvgrb2=$6^XP+1!sEN!sZI@cp8 zdT;=VXu@B`N3X`*EUw8(ZPWpQ=>n|=p&|5_69nzHxGsP0c3)#Yp8{Jqoa~lQ?-Db{ zLZ|5YD~*$&2RabxExOo+d<9&b`@R_41Ee8PA2bDotgE0WoSjxov0Xf<)&kZy#u)M| z?Wg^=rWAEQOu|p0ADTET$vzPUtz4QEJ&6t7MJOFsWm~so;;fL5mZ-h6w?y6>8V*l{@wTLJaE+H z${Y27+Bvw4aVa#Xr%PAkaKEj%1liDy+{Aa06y5G=98>UIxi>zvz2I-n%zVwS4EWBj zkSI7oVG=jXb*sk*ftn49ap3dbK1W6Edo+e=)-8lfmn)u`?I&#GV?J2YhT z*rIC#Yz9o?D39Uu2PWvW86EFp9c4Od6W38(gU{7(>rzo)`8020WnZ57rx9YfGl9af z8b^!sQ_*?$b2LzhV=;aH zTm~P+^N|cM<5`#a;aCbOw;3%`hF4tZ)JT`ns_r|WxfO8%~}YhpXr8`fXBSW>Ey&R)k~m{MZ-Yz4Vw^` zMIS?MyUGv|UXatw*p$3&@BJQ)v~&X5oaCrC(C%x!dEt= z*r=3nCOQjr)pFl@+TV{0uTzMgkqj8DQ!amM{Hm~wovhps5^{%oip50OWU!o-*O>7q zo#V*l6RNyIGnAGTTz{o9)Huo)M{V^Nct$WK*_(fTnoGhk?xzJ-$D#gP9Ve8-`K#vV zj)Ml{n$dXlblj=%wMp#Sg9Ub*j|S`FFrF-Bdb_6Oo& zSi^qm5ey;*{SLGIhdlAfvuyGF#G&MU=I}fzGH1>3jci`S8QNy@>K*+F+vH!Z$}Hz( zDd;OqJFAG+-(8p2+Nn)Z*-^N@=6z>L7FTbYN#F63Y^pe6JZYNU>$>Sbs90@4r z;#2TDjysS5*s?2vvb{80m>*Hekkx->N*H0!TOSP`SqEn?Mm?Hr#VifyPzZyEl&-}W zu%Kk&DA|3{>){pWF5Z~n-(FXUGbd)OmPP{5GQ&_RouY{2I}{63acX z?vD|Y@4acl@R_m|qGy_Cio2JN3&$TUWs)Q z9TC1Xe!E#Ne%)73GqN`$#sSor)Y`CA+EHO{6|twxBo%tIo&QXTUNKqA`axp_;>d(@&ISbECgyvtUDQ8sp1Xj3Nt* zHo;n@VB@rmx>FMknE-miEVtDa`=T@AO)YNFdc)fsH_G^9<}`U)PV!+;YONC)s!m2` z?g_dL$p6G4g2ZYaWpy>~zk`Cm}0L>?lxSSrG9zsljkf==S2Br7v*}Jk8f;`-C@02 zCq5|G`I5_8K8nq3v=U#{=h5}!6XPa#7q%tTQ+Wq~@9KlwUb8eafus2$j6_?7>Q{@v zmFDQtJhDZ@#zUbfuF(t}g2&@AS2e*QBhig-c!yi+gT2JXBE7Ie0}#+Y7%T_ zQSlQNY6jM#k&-o?GccXAN$zn9Opsi>cM9qRBn$f)Ua=jTeqwtS{n%vi!{VEH!eIqj#7*Jgz_o$0 zh@2%i?T1Z~Dt^_p);SlIdm$|vYz74+i(;g`gWu%w)sOPo9(_;3KKSl=k4Q~-#Xg&z z=bA5B_D2X`D9~;v!`1V^cq>Y{z-8oY5u=blyJv#NXK!X@3XGfs7aX&A3LaVW7jBz6cZW7O-wjiBJ0VB}6jHa?}}`|OSt zZk_dH;xX&C6sJE@P9(pBlqME4#c=`KP(zNH3%|GW3*~j&U;eKdm-AR^EBjwFt_cYU zmMhBJzN4;`f_%aZ2vJ%uJV{aBQP4doW57Q5_?+V>68Zj^!11(C{SKX6^pe+gpM4oP z9Pl0=DGqL9#s*$=Qg&Y!$*$XE<8$`yejCcaCbbH&JYgNmyz=gieIL{L5kD>4d%d=P z`kejLXrxd!vi4^7h^6ca_baTovAMWLq?hz@<8Hie@v(V+rA@N6eyOAIEX1&=DB_H# zsA!ivz0yMk!tr;&kt0M)dl^s~lvDf3TJ;tqn0>5ey!O7%jv*`l#A>JL`sZ49+S(iS z=0RPzaIAPT8YA)UktEtNcOOme>n&lfPM>P(#{mWPj3&lPDyg^ukyH87P(qm`upe)J z`^r^90On*-bDKrt*=%OEM6~+qaCFtFb_=TN8L`q5gP(GT;WF-r%f7UgEvf8f<+XVO zqwRe=+Z!gO!4i<&%}jN&ls~@ot|jLMa3=RtsXES{-kFW~USADB?Y+Ie9EM$r7O~H_ zvr8LvyxpKUO0|-;*+m}|9BiMKp?tVb0-}_%ixtm?tNJs%zt0R&n7^3FRoaK! zRA)x{g>X(=8F!R^?f&RzOWNs_&2eZqT(PnO39M+se(U4FL0uW*rLxVxYcP#y(;DjM<@7Td2R`8wh) zA-$iOeeZt$yKq>$sWsVM+hG~qsbTPifI!IO8f&Xo$Ub%{x6ZHmix%5wIv85l?*p&K zN+e2jQz=7Rv}p}$%Bd8jwJsp|M-CK64$$+)$wztaH4&&Y;77H0l@aI-yva>~J|a8K zteon$pz0GjHJaS`C<8(o#3Wt}bdyo&Atqd-7kyZB_nxUMe(vAu#m-&OVr3BY>ey8(z?WSMYo^wb-uZ>+g)aQtrF-8j zLT~M(hxs_1|Ent+)UD1|*PwPp$J67lR#^$%$bj=tm3U*KrhrKow}Qd zc)_D}&5J-L)ThBH&O=_gcPP;s!bMQ+>U7)<+tiYYC;ug}F;~LAG@$+qS`M@vcrmDw zIYOzGBOo}Tsan9qg;$G@{}kbqrIa*#1jP*+BEUK{4>mplRNjx`3o0QrBKTy&*RP88 zNRQN;)w8{nj!)Ls_)1=W63buu?D8oLC_&Ktpud3U1gH%e9bzhfzTjgU68*UeyaNi)dXz7A4R*;KPN`#h_n>kB>1=)D8>aCC4l% ztB=w{-Ca^cgoXSB_A%f?H{nkvBFw>4ZHID}Cs2l{ojQh{y838+4rkB`D$G3|>hh_R zm$5n?9PVw_4`ENHh+05XPa8_TG?PuEU?(4U%^I0%S8bNSxgM%9iQz>XUv5fw`$m*a^RUh<{dz1QxG>MOU9FksP6Qa%<;;p9N?y)0rHab2x5M zRt91#Qs}yN-WxF?_PZ9p%oEKd0HlR`wf*77rA^KpSPUX4EjA|g%7sd4JTiv99M(qj z{ejF1I&&OXy#^w6E~7@X0VWe#n0p?RSFAC9j$ND^xOVUy>z*9zXB`jO(o1c+G%Z7E>WMp?Nme>A~U9c_@kZG@;4XmI}KXJfhkQDf;KGE2L| z!U;ioszFdMpV`VOIBKl$V-E*<(TIfwB^y`oW$aVm!;_C!LHA|s!rDn!6MK9DQ!nSN zheMCMVv20gb%RUROAyTBChlViGq~ zOgYEjH&btbye=UNKp9J{pHs+{o=zDLMTuQXIrl+#D*&!3EhS_ZF;FU zZca-KD0;(Q*J2AR>v6$5`k?Ax)-_96IaG-($UF?@z>(gkY^+TV8TSjOM4G1??y_9M zOBV7D7RQmypp~n#@SEgn_JFcTkC@_6_)GW7XD2CM>aeT4pJ0(BKEx;+M?>69YCv<9 z+v;Qs`_izQC5PUU2GPO7Ig2m@A;qaeTC9|WDa3hWE$1Iw5y4G5j$Cw@s)fIkV25T` zlIARov%4QQyzE}H>^o>(=7@k@J`REmgs}mQil=V#AyTwbw1|dJ^xerDk{7!^mjIHv zTWXTcfWI?H(JfCiP}ct*B;IY|Ldbow81TObO}JoSO@vULk^eUE+7RMb40u(5>Rps7 z__pB2Po@hhH?%fr9q_8POR5G9yo)o?D-o{l$&J~k4c*Ud_sOC0!S)G?(752ypkL4J zW{}xQifa~7&{|_YN4(^r;sEqPb-vS!{6!p^|J_%*6Gp#L=7T8u9e$u) zF%ZTfZf?wQFiEko*hFs%gqkf3($t_7Dkvi!1#|p4chN$dU!I#VtJws=6IK{(thX7a zu2_Eb_PPehZzOB?N%3xEGrH838&m1~V!;K+i3@}|+^1boY>FNS_7fpwT-rDGD|5pL zNqboe0l?(@#ZV+EU*sgwaeUcXid%*tDOZC^3x==Dt553gxW})ocpMt!P|tka_K1H& zIDX@muCt5N;9K{Hk(_9y!xoej!BPgmdp<3T4+b@euJL!gmJO!JJR(X5?f{0{DQM5= zqV$Jm?f)6CT-OnI_f5NhPN#bLFI|mxE&&-``$wXY9(iy4vCh^y0aKap=WV|a{Z}gQ zAor}&S~D9J4jsavZO=}4cqBbl+w&4DcITYSO5-wD!HMq!jz9YHL{guw-bAqirjQk< z?UW%Wt?^_&NlgYy{2WGwOnHYHVvjX&|8o7 z2-+sv7mfDTA#@ReexK($l1ZNs1xXZmZOQ1IZV3xI4seGypD*-1v~CXJi@BTu#{7!b zMeG^)s+u45)qvh0r$7AX-ztfJo{^4ywwup8@8G*Si=V>C-)Qx>47ujP$4|zix5it&3;!60|gcDqE(NcU;tw3e1%D z$|`i5ZvT_Ud^;vH;9FAD*&@Sm)I`DDVYf`2v%FLb?fl+#Lq;=OXVx=E(%#*)@BWo_ zer1$Bd(Ev@x)<&WjU2nq=?crHbxP%yg8jhsayakws@&o{M=i0xecQ)hOO!_LadXRi~8*WogoFLsY~dK|<^Du!LTiaf+|VV$NHLIYv3(g{lY50G=}C zA*Ie66g#iu@ELBmjP3`gBVL=w>?k%?v~2`dfOR3`T85w^drpZ8w>;~Fk{J~XTH2C} zw6LVPZ)pOf8$@)!5i2q{hxBkFRvPKk<`GBXLdj5i zD8MHJ%>-F2!}g45#!d7>B4BHGX0!T+N)}xm?MJADO0?Qg4O2|=H@8ZJ`LYu;WgI(F zH8LtaJCW!z=+UG_z<4G>v($8T8LfXnc{_U$Hn|{vzCnA0EkdfJx!J$+oZ-oMsLkftc$DP^sSG5Et-sah@bLcduK;&w=qB8*Ki zbs><1gjin#@sy^6kP#}eK1|*omty_S+#WF%Ub>j3K_i@Gr=u|K{EN#eW4?AS6uHG| z!CqgQWsAz`08?FF1@C7Oy~I$ZgRqO~fiiHIQLSNhq{_0X5`v$Hc4N5oYAKGo-pR?% zX97*Dt~y_*Xwt8f@;Gj(uRvdpuS?sy$~IX%)oxwsxit#JB}90kd2%vUI2tO+pXv8cBRH}(k7R)FZF zcn+56PchZj+YI#Xvg<1$u~!dxdRE2$l*7I002RqoOq1#;7 zd9@%O2(S9HA>1b|A{Hk6D|M2c`S0gn8Ad$6$@3P{-Ub57DA|MXsVfRI&P(qu1D#6_ z!`ZA*w-Z)1%1}u)?5K;)jZ#6`1)EEghge#q^t)9coaZS~A*>{&Lrp~01$RDDqh;CJ zMS(T+VD@9~Pu*(EYur9g$>3-#M@5QOD z$e0h$t!$635^@!^&#mYWt{avYtoPVntB|@?Sv-A5qQwAX?Wc)CbWQGW_J&`-Q4_cH zFD>Q%){K~hsw)#XVxc`Ua%ZswIUm_RpN7*WKrrRpD37u;;hc^9Fa~1k$J~Xr0c$sB zesGVjN~ArM`tmrQRJY>#K?GZFMvx*;NmAx}EC>ZC>W6R;5x=~zLP#Z0B1Xr#RJAI_ zN3pwA2dbTL#J;Gm!5F;kIZyj|Um5c+?b2D2KJ(WnvXDXLqhE*QFiv2a!Loe9US^H5 zrXgwg_(>36nHozB$2?XD{L??SusNR`i&yxy#g&&Gi;Is_q^=Vki$A@N8g*Hr41MRG z6{Ro~#*!h;ftCA2@iF1U5Qwq#t_&7YOGaG3V^NwP(T-FDaxlmI3ZW@90~jVK?1x|w zAqZwk*T=opCj-Bm#um?2#6|In9ek05BuLQz>@b0(azp3V_@q($id`#e;B$eB!gt1S zOX&Z@6SG^y7rUFl2($somm^V$X#?Q`;{N0FhgT3^cv{GtX#{C0f1=x>#GCDUZNgiK zn~#qlUi^H%@IRqGV?}@C7P5bT!h-!Z|9L?L0Uk|_E|Do7&T;zUBDAhJ&=CLlz9h<{vExl+7x z`=KByg{(;kyNl64<4p(&5fLFF!N5Sd7UaI;z)W)B!o`R#>a|h?KIf|BeXowg`iT0U zjp{@$__xMzUPF?P4alA>L@J>FdZ0oqIJ!CNMFsiv|N3Y_`VmW&r1C!xRIpE6GwRiL zJh;ZH%WGfEBCT@R9KJhcOMw342)qGw$`x>!cw44>B77-IJlW2&f%@=2o7DY{z3w!q zSFO)T#fcz46Xnr?LZYA`e|&UvdO>qeMZGIyAEqS^VuKN_Kk)kDe?iEBnD}_WIWv;o zvuEW?kYj1|S|9f<+!yWta3K!qM3`ul5ADdvn>b(3&cd{H;^Kp`@e}ln7F5ubU;!rB zKmKbSJF!U$%8CM$XZzucH5lO;i-du!8BoR)^3QJYhN;O3El%Em%FT#U#H~Q#=Lz}| ze?iKDlmnySYAcp=WH!w1{$g!JXbfiz3k&w&mHW*kCzx0e)?Kiofao(RS}3G{@E4&R zq6tK^gN>rWcaL6l3!+b0s{5iy<+vX|efZ`l&_$>>k*hy(nC=RPn?3X$V@BdRH{4v% zpTCRXp9_q0fwSiH3c(>jV~{@sMy6T~_CFI}2yU39-N{Bpe+~tI4Jd&gOapL2NJKD5 zP_PdHAOa8=U={&B-#^SqJj!b!5&vf;{PB@<2JyRL2(9cl`+^S*asKuCk^cYM%|gOD zRm0vm%RkRGL2ZdaS&+i0o3P0L@%DwJ0Ye9c!CSFXb3`Qhjyxj@nO9j5Oi22_Eqa0h z;YFYw@24@Y%vSg-#tNp-^3`M{QGY_$o$;pI@+%J}EA(`t>o&;=-}z=F6b#zLvOiJ! zCw!40eD~u$+~^Tm9>+ocg=0bbZ1q zd9a(CsyzVfbKViE`+)_X_G){Q)zV5U-)nhgSOE@WY<*#vQo~Dc)1}?_+mK6amkWxk z5DbC6{X`h?PnCJ?EZ6xD+%eiunaT^%6j_$Do-v-xEq3h==Dp9~xyXBO{jm^;&ol3! zh0ZJA;=B(5CB7uB1=phl39qXA&YJ>Gd^pa9KbtZ!z6oHz;X_n; zx4C*w@4}C*4!6;9vcq^R?Y!blpo3d4W;UATk?K#Nn+?BOM(Ec!wybdd5YZOU&8qJ> zn8Ll=pQZ@tV9BS~KqPH0kDL?K&7lXnDn35&I#oPpwQLEe#x^K=5i&rKFzk_nnS_8E z78~0EZIfy3^wg~Hc3%c5pOeVxsBMX;xf9UJO6D#!38|mxsRJq)4w<+=!&)Wb0-R_tn2VN+m z$io8rPJff4jq|c%%LbVxTD3KeNjcT}>{qNyV(jk>+I&c|B->4-kzZsft1Oj7u0ucd zpZVcT(3&7eh1^`knO$d%0^h%D5LG)VtSd<}mA#a=C>tSzD#LWrB85Cu|4pAb{8@NCbZ|Sp z$P1H1L8Bm@*rPj7q1H!5Ha|)&q<&i9<20yLNf2dx4Uc2pwOwpH9cR@{M8pEY$e^-D zn}R=EZ(m+_Ia3l&%S0{0v=xh1v3s1ja_yY?xradot9%kaE)~$#jX%xIAH1spWMeK# zHA(jKh^?>JppS?5EspQ?*D15WMHj$?EJM!-%$TAELmv(CNGJn=i%FybY#5^~adjBeZjrADhRt3p*#j@n`9u@4U;_nPt391BGmkM*X$3|`$oH)@}=kAyFW56LO6L;mM#9ajARcC|iQaFroZ%w_baPt1|%Yu$pU zE%xltxsz*$s5AQIV@1n_H>R^erAsD|;8vKOetgs}^6qI(Y&3V`Hau?7DK(#4MUKU= zzwJXma`kEz@2(T8wwcBGR72rAyh@bz66r+#)}bq2TRkXJ)y*8z(-+Y7_XOHYWPzYez*FcK|QHtjxU6aw7Z7ip^Oqu_!iC zqJAY)fjO0Hs^lHZ@c+ZuSq8()$YKRphmWLT-4HIoRmX7$j35>++;d-AzS{LC;3F*d}fI7 zz3F{=8Gka!7;-na&Uwg-n>OWh!i$vTlQR7{zl*oRoL18MbPEnBPxy#)OyeAh3X77= zdqsr!Z9~dED22m)bumXX_wsQxEKP;6H=TtwEGl*@zD!~FHxe64aaYTkvf(~mEbT;3 zTy=2#%9D!JoV+pKxQo2dDh|%tRrVmPi8Uqs<*~X<480c<7o)s#NQi3d2RXYd&U@VX zayNL??$hPoeSB5N?Sj*@+tXXcFrQkjP9{n^>deqxqdpGG&>Zj-t3rrKn4o|(fVkw{ zLx^+^gfmfV_n;tbFA?S*&(br~9hT%kRD0KYbtkm`xbu9R%R@=}B7@Q&4oO9^r&+20 zi;}e_rQvx&#g@5JV6;Lt0aFpHMD6{6L~XeLC|bw5rOYHe|BIKHHVZUCYTjtsv7nn% z?_4W3xgfcMBUgk-YM!=r@M*Z;5eGa2bi=%$$IkW~KMgy`vgFY)!L?Hw$je%$rNtKy zkA%;nVj})+ABYcp!pX?D*(sZyLubJ$j|Uo8{D1G`xA~0l{h9#8fRB{*VMnj)Q`WJTC#g)neIWSssrWEQ7s5(+-KA%>$ZuN$5G{n z7FwN4k$mk`$#`O5c9qJd$W=@rT)p|Ja}{C=M52pMVpNTv#f6QWEWKUQDEv-P@OP=@{EPe(ashz^;ZusFTgIU^|^$tvfnsAYTV1!X#=>2MpRGn`nxnIuevl_T#0J zX@^YK>zZ0-?-ftu%S6=31ktBDxGZKQvtD)reqj7hF+k#%1NCqgc=gn+m0pu|d>9q6 zN;Sx6{Ib3ACZEOvsF2iwsDaRcVDLd|(O}G)4)L=iYkO#mpeGT~-A1YLt!mGBuOWJX z^*`10D4BjzjRy-@G)!!S1Y!F=b>sHPP>E%sFdf$-plKM`{B&p(Ux6>7Ca!wX(+j9S zy)bCG?c`PP*q76jr#;e00Trll8Oa%Rd8qQLa^R)CuqN(`xjF<+X@quu6(Mlo*_R-9 zTlzB76CFGs)g}Jf`|(1>B8{`w`FyQTT-CcGzj7BNz?)hUfRhJM>L^2U}! zw=|uMdkoVk3Ipcl*JUND*Tl|1W+Aq_nY7)^YapZnC$2G>L(Qd(Hi@c+HVSOK;$fVd zR-HrBFR+L=gpf=|L#tMdkc=A^KCLVPXYbc?+Sy{3XAwSj)ZiZ0_PvAK*gaHAp%%Ws z`R&)w!7s?BI~Ru~_D%WvK8}KQLyzN9aR8Xy4oJveZ6)Ekqw$+wY zmDISZ2-8Ft7J8i!IqyhDqZebTUW^qDT@Ep?k!&P)mxW5z9T0$jAgx z3@|D4xsQXw2gH2GDk>@P z1aoy)7#bC^WgnfyF&xr z;gTggyPJBrkmEYNIY=$nP}RoX-*Zcs_@1rXJS@10w3Pc|?@FqnRQ~wZR%#x{c2UE# z+Wh@(OX#H=9&UUTd$b~lWA1_LedLMXHtg%k&Wzl-9By0Ggpk^$I$*iwwL(5k$`fWY z8L+g-H~~o8=k&%QNhc&A~&?PDw#8iBd?02*-R8c&-FH(u4grJba;J4SzwS znho2(Ckz@Jg0n&|hBtZ=bB}C@aw}w%NBKU&*Lr^?M@r^%6cW~ zriepMXp@9!F^1b=tQe3IzS2XsmlJz)OkgEu$;>- zpCP225#Qdr*G(kOc`GyEX)TR`iJ6i#QKj@kew11rLxM%zTqywEI^>aNIgX*0M)?y< z=zEN1hj&#iHl6=`WKapyO7YKS3*41~PL$YH`rK6#UQu2_FEr(mtimqJ!ac$Dl#*E|tt;d8CzayU~7z}>(t zHYJ?A-Chw|BG>Sa+QGjQ8@b)iHZ?z@?gvkTQ^{OJ8yd$#68VxFdP^P&G9{1Ab&H?S zLP{$9XeWvn&a&_AtgAX?D)z2#_mlJXPGR~4Z=-4<#hm_P@N}y=Qs-|f>t=3VC*|#L zEX$|)(dS$%QQ{5S<0JpbG@|i^y6w<^i*E`ot8%FQ_5y@ijmzIgR%6VSRY&C_q0LL3 z@VfykeOMb*Y7cu}T$pbk0!st?rQ9MeFO$P5u5*x)<8KnlJz z!ml|(X_a{TL`Bij&$fk4=0mr-ehj@S`r|xC($+Y6Jr`55%be+~dM!NV~5bKleD8;Xn(POf)r*uuLf@{8o` zcI6T}im3i52c-l?^$X)4EDjE{z%#9mC4f=|r8>u^g0|4M?+McvsUcKHtO%*u)s+^^ zCa8nd1f@C0q~Q$Pj}G(&9oeV{1;Ef}ObAhe%dX0lAuH8?cSBq{%wHh0P{JD_BD z*;7ppw$DXZ2{JAOadF|qemAu7n)INjN( zKslZ^tYEwBpnBI^rms?SoK;(PlT{iE*rZfPt$}fX2$#zGnBkK|nNx+&%6aIU2whkDbsa0-B8!IS{lI&UCQxx9F z1Op~#cMiR&_BtK{&sX{GeB6!5n;&;ShijR;vvoy%x_~eIA9`Qf_q-G^>}fe>J$hfZ zy)Jp(J}3$w;@UWnWdjn|%PT^QTsEMQ`KfYHr`t@Yk0nFnFFsZJssaw&nHS0&wz(rO zmUL<)E@D*ag8U(Ic=}b;fV5y?01ORk3$!*^6)&o`3X8dl#Hd@oMpq=k5oQdEI5hDF z6Y+wo0~j$_9I%960ly+OcRG9yBUR;ccPA1S2Ooi89c2mXe4FjOMIou6uckm{j;cIW z3F?bSVre2w)tT;>oN3r*LOs-VXqyct8y01H0rr;PJ7CS{P>Wk5XnILQ} zDHIZ)i2=$@OkhB*FgETo{@2)F?E>^OG-%CAWP^82#+0AXW~Nw2B<9}tMf!yMG>tn9 z*gM9lILwt6I(daCPR5;LgmuNOccE-TOjUM01leWl8B7VA%9)foTjt-~gA|D)mi^7=0)@)9`kfSlrN%)A@7VB7f?v6w#)HuOh z#HrpR$e}b7qztyS-n>LH4q5E`kd^t8yh7TvY~DjRD<%O-Q#oKIDg;D9VaQ?v#}(8h zOqom#k${>R$Q`BPH5H2+A$NO%T^Gl+Nb`E){(hFWHM47bYBf zPy`rsnc_8vRzS3oDuw>&tP)R4?S-Br?GYOCyySQZA8h-M7GcX!fKB*Oy})Z0z=qFd zf^CKVs6@bS&{z?Dwzy~j{aK&qD2ZB}eO@VJq)``PSZrHLbqfO1L7+9#O?`8{JL&M{u`*Cbf$YEV zstBs%rcE~nEGQBaJcOTy>3qs{IV32VwygTll=d&OT=4GEpIOX`C9IJYro0t?Jla!X zff23RuYg=K7C3kwJhGF`4%ce`9<8lKZP>AIJcw0qEpPxJZ3;CGi;<5rE(iVtJVezf z9-PBfE&uGFJDQU{9~XKM3YFNSPcL&`N{uOS)%7%h(xcQxl<(4W>{NJO2yrG|=dSGW zc-UYGQgwQOz+`^s{t>RK1uB;(b=QXS+}nNs7mQwOQc6ZmG9i=to+$3vRlb=Fu~=9{ z#R`%Jvt$kCeyS(BQv9B`AY5?$G{gRIVB_+k#)4kR(}8nVRptG>D1A%o!G^9s%iMcf0Xkton_vRK#sN$CE+t>^2YqT zQ$)qE-fctQUVy`g-p0C!T4b{##q1B#?YmnryxMgXq4_1PiAhLWO>hc875`Sx3*QI| zhtIg@rG3dE?i&z2VA)2+_2FwEmO)NG-2-{RIej}dJF*E+-^2e5nDRhy*qaU^1o-p_ z0Mu&)fUxXjx04+NL@rPyPxUE8bBN+^efYOb4S@~ma7w?*2toi+k_bCM!l3N`9}Tr3 zd1V&FG;>l1;wi=Ebb4LKSc*&>plMP_EKo7niJv`fA?BH7tdPuvvcBd4Q#MX2veEilAeuEB4 zlraAjbl_`7^ua)kzy|)qIQafnq^AT-`S5Vt5gTRTjtQVj5^;npcX15le7;UCuw z{PzA6run*v9^6c?c$ht0982+l{}(qim3&H(a*d?WO9i zJ$Ci7r@Rh%yV6ops}Sbzv?$n}Gv~<}ZW_C@rZ&s;rkHge0dnENvw(p~ zb+{%%!?mf}l}ggq_#5TaTYB;yF~y?ic&D}<(;0;zV%3E7j0wg5%@1cPJ{?a8kyPwb zryX2cLmzpCR`XuDIeRv>LD%MA^YrGJ8k)^}JJ;##O8Gk7)Ehs0n_3#5!?FG8jt=nc zW7x%Uh&RQl9cG;U7H9vG6%#8M@ar_=&0NWfyLcvhgyy3YMezpj2p4fe@sJ#grJ9f8rRuS-YCw_?{W zI@4q*TDPS0>NdC-6Rw6bmc%G8dpXVTY)6sO(>mH zyCWNWzAOp8J4)~8j0X^t5ilSD)Ws?b2<~p|!kohLAG}GK`dFHgz8rS`u~t)@SHhy=Zi8qI{4&HT$o;1moN=dh zIADIY9}*TMpqR1+L%a>X`1}Zehzib%jDj;!@2Z%9dC9}tAgWxT|1c@;)VDQh(?Y4J zI#q**0^cK?B*Isj1AFf#y(D*r_BmAEl>f_OiQvjz-$8P*D% z6(rqn0*;ZW)YI(VrC(WG-hu?$UhN3QfHDU`9+Dgs0PEmVL(9lPE>nWu#pcXQLdGS~ z`@8*ha=&p8I4Xfsif4f$MXDn)jX{dV1AhQ|l!FJjpB~KI0%GIEkXI8Gty2BcreKbV z=t>fazZNL@KqCP|`33L`;uFNkJ94baJ|-^QpYT~vZJI>5LgiE0l50;4Fl}RA!n!T0=Zrcm?5{I76e@y1CJ-o zh^1ARM4(p+xJRaLL)Sa~`}J`ylUVM!v5#g1TKNXX)XqzyA!%a30SFVnz#c&Wa59}+ z`x}chghGng3k1^)qnR6xxuF@<3NCx}8TnlF&} zDU>fdgYof*6KYPx&TPH=)HM4!lN&pFcam+-+n(jwrM%=eFF>+0+uLJ?m{MZ4v5l1S zvyCWv6>zyn%;~D6vShuzGGq6W_tcTmKfSs6TI7utf=9NtLMHV@h~!pc7v7|Et@#_p zU*d2kIr53Hi3|NY>ia9>ect2hNxSZ@u>dFK8_SQnd1PUBW1_!$^DoS5T_D--+UDn) zYnUtW_OXs81%&hRMB_7Oa+~edu+h)+RGVbiH$SxKX>BhQ-uisDnxA?0=3T+rZj1Eo zv?gG(9XG;BPcKioGcXn1J-yee9#?S{1w@ROTl(q;krWm%xgaC>C}MoKoHG`k0P%R3>a*8(m~0bo4d}G zQCskzcQ@7zDow8&qcS)iIa;-CXDpW0u2|_p0JME^nUOeDlUHUw7T-+yXgJS)`~I*e zTSiGrM$C>C4s>vT{heNp{ec6WUH!SERvk=5q^|#JE07hNPQoL zZ+K5JWqQGI>P11B;%H8d97MfEW8^gn-}8?nVO|slcoO2kAD|m=zpC25_m!L%HGMJa zi+z_2r#T0ocBXr0K8>pDUD+Um2I_t8IIK%JA+Gb!!uH8ZH~(HvG)w6 zb7p9rGrT)k<#$zq^54gHX3AFHYtgs@6rQe^pd#M?b|>P!A8gglken4!1yn%fKe4xH zwB&3k$MJ()>TkfX3+5|YS?YY=_{{AI_DKXd{&5ZLlX2z()PD>g4)CabJpDr%q03cp zz(?DP4+jGLvGlVEjC8j`50JP@Q<8ZdSpv@kDhe{#uz-yYSil7;$)f`dCqK}Jkah~)O68MtDxE=ky1vYW;3%4b6d&d z!7n-Cbtz4|9zsteAB$X67ncKiOGJEFNGb+%3gZ(fX6L; zv6}gnB-k1(dO3LgBBKa8T_jG?idl>NEvV^y(zx?#dsd3&By)AG(3;4Xml%rBK!B~9g%zUc7}(k>D6J&N|Lsa1Afcg#%WD6ng*8<2U{am#I?(EG~Tsk zl!x~ zl!+*YW9BnlC`#i&HiFV53`2xeSccFHfhk|Ardmp^IVw#m?yEA|k%xVfxhLqdhXfpV z&7wZvul3?24Nce=;1$8pbTxGZivc-35Ch?i9?90 z-h4%f*ZnrzI2Ck?;RG=OY9a?w#GXQm%!wg892u)~JWN>l^IZhJLQWytDhxz6ICR^C z`oCssEP_2_BI2-t>uRh28A*{Q^XQ&DX^5Buo5|yH+c74`4ZT=0rqp7&Ad$s zQ|t6W1g%th_hFXMd$}h`0wGPv$^PCzDKqimMpwYL=)%>rd1?Fyo-SPbp1{xO-TKmZ z$lW%7QpKR8E8p|+IrlD10f&Wg>nGg^n4u-*(m@rqN_D=j$BU)z&NqW!hDoT&qEGBq z7!C%f9Tn-rUrCjI@ztxa*<&FupUJkg5i**+3z+0Jdqz#v3 zae5vfI+7zJ5Z5~uvsQ=(4(sO#;Xp5GWrP6iu|NyPh+ttbVoDsRygp`6bkTD?%@)U5 zS04GMaWbTU(MV%TZsurWS3*gHaGW9ull^mLK`o)X<6K7d^F_^b5=+eE!owh zhz3l%cwNW^pptGb4yZZuHI+?M!GLPL%frBgxt7Rtg%#T!}H{m8Rg#Q|c87i&8`+8mB(OGi81szvvvW19eEOBR%j7G|Ody;&4`1~`y z5&>6+?(=06&uabH9j)SJpMV0^iB8R?ar=o5+8LG)HL^hEXGkMu&Hd(aE3C>}qoj`c z73uD;+=H@$(nn+WDf46i*F!i4ax!@9C;}{TBoCwcsSKicstM)Ew6oQhw(rA}Yy>n? zXiV!EBDX}o?-ymu1V8k2@IxAk1&Ae}SON$`KxYIHjt~V3+TTzB@c#BPW4TeEG0L-K zY=JS?l_d>pQ|DI&To1OXtVZ#utnv3DMRG}8O^Z`oSc1OyApWFpNJr%_fr~a7tt( zoKFC!vGA%hSx4C09M}#8r09hSr8YRcw`(gF0#;M=8;P(vv`cgC&dhkdJlDAio`c;a zOlm2v6((s_uVZ71E6B|ZA>qv+=J_vaa}t$h9^9Hwt`ag#^~aaQxWnOJ@>{AaS^Kg+ zo=~N$YNd737?F3}F_hv9Sc-RR1AK?Dbl?2_$|GfW$RmP>zptebi}WzZb*U5?kGW@j zR4i>~6t_v<%fxPTpOq7u6QY{4UPFp}C&WFs$TF&=Hb^6ZQmU;fGj`Nh=CjFfaX#o_ ze~sM2^V7Y*0@a9ZQw!Hk%zjkfn> z*M}n^pO5ZaT-Mvki{1}Dz1pDt;dQw@-7fRq#0P_x9_}9&b9hCa?rVG$&?Gt|ZADU* zn~6WnhAQ(iuKAWWPWUbK*yj*DRFTi2hI4fhg63fwXFo-HN_y3{naj;8AWWva{9oxE zQX@RZ)_DoJE-U)J314Z~Z+a~LlPfXH?)2-M=tO;o>*mRex&2%6sT7^e8_^0$rtN#qZ8vAN z$J^Dxq-p+S!ei5oA-(wC*50;?trKzUxx>QKuLZuXkLzc5vNN5b%h?f(@cDst-=x!|H$?dPU%{n%UB9}KQ*>+ox1E~f3X5J~iH ze0|P3^vEP_KL&823mDD2xpdL+s;Pc6TJAJ!) zk9Xb3s7o>GZ3|l~E~Y-8a96|Zhhq3HsF6b*jEi6-UH*(%+pbIwDg6Q_DxmK|K`$s- zgaUAp)IU_gkjQ`z=FmXo)67trjnOuWCuRA`6Vrm*bKuxt5zw}ypwqDI zA?*U&uXxzUCb1=iz$>tfiO4KwU&w;A z`k5N?l*P&#+Q(i%OstYr*wJJq%2c9+b+J)RC%g4_Gx5@|H*s`35eZJ!fF`NTAs2`= zu{kl-AHMnH?!wT^bOu%}HVv`*rLA(^u4atu6(I0RB0-H_9o)yBI}7C?jtIuH(_|~ND6%ct+qL) zo_7*%44u155SQBkB)KNBur{4}PGt2(W@*-yH3nau;hO;^-ZobIzeCb5dJ zB;gm@zFlvoxr!SeSA#8`b&rcXz1^Ug7?BNR%Lp_RQb&WtIGRJuso%^$i#?H!|ME)< zGZX2T3&W1U@T&kFSb%Rpx?y@yeNYMGtH%CsfVD5ulwdqVCVloLuUwB{lbwagS-B$9 zD(hJw1FoD%_F^dNq^iE-#%4R1;d|}&H@mkk`?qILyHC7sqnP&>io=l*c~5IO!r`TkQm{>9P|l8BRc0@CuE6ZwfIP}v(%QV(gn zF(l8#*z5cNbQR&iAMwD4$m38VyuNTz{+s$Pb$P=|oX7AZP7dqG?m_Ye@8H!oal3=; zEhOjX%ph63C|M)ucZ!pSyd?64?+9FR;<*98p;2f+^lx?Xt~2_H1yekWW+oXYKn&0S z!>>lx0r*vo-~4Ln!UNC4_xwx3$*or1)S-MI;T5?nvvSj|SL~ZBIV`k*0zt?>WG9fi z+is2gOUY*{>9d8Ucl{c0n0a;*+Z$@%l?O7w6BLT@v%?MNkmOK_ZbEwV<@Lt19wC|Y z6Lb8{=CIciMc$;GJsvU)J~6^!mHG!HNY^4F zxU(rqgR1sCZ@)hJ4TKNj$~Fa)pNXbYSudzQF#V?#AnBSnqe$}RxCN8%I^#sIp&8%F zCO{RZV+*+?2F-V@+0QCk%I^t}lGDE&Pq;CJf17KKeXY|A25xzQbfQv;TjiV)QO z^oOB!JEq3BsPjeCKGRv(e{qDZmOTqV_2zl9r=GYdW}6|mjY2(T_(XLY0QiBrAz`oM zx1WpaY(qjMd_JdepeivM*`shkmdayKuY zwm*CpBOd)|>#+@#+=)EAznK7xpUJ;Z*%6-y?o}Gs(n~e2!_M%#$3GB zu%1A?KzOIPc_Lr956NWq1UDEO{mL_m*_G66Y`HFjy4 zy{hEFm-PT3gDPr+t8n6~$PY(podYo~Tm7o|)$VoG+^lunwN^F3R@g)1-8=xssgzZ}@XXGz$?!i-vxMowBe>=cRKV{+qe2ljA+fiQGAE^gjb< z_bi4gFSX})&yNn7FN{fMHYjAuEnzj2%acVme+`_q#UB36vr~&r`UQZ&0?GawIG=;4 zdArS=OeOw0xg4v9uY!S#j!+K3vIyX4dmHh1NZk1=(9Y)Z+wMvp?qHaQa`)xdL#6i= z`&}j?TxTi&rs_@Kf%ZdQXb>+KJj4SPPxO@S+MRcQMM@}zkc=16ze8uTynlwy@&%Xw zW9TgFVsZfXKyQ(t>{2N`UaFu4Sdv!aO?liYT&rF#xE{S_H2H6UwT)AU!DKOpyl?Y# z!Wj4Y$^B~NW79V3?^L>PaY}z!)N$672gCb|wINzBij24P$@eD!E^Vq?{rF#ySXOd9 zNnoa2@>i>BWc>K`jW)Lj5fHNHZGBd)6wE`&0;zJEGa(f2;)>rPbY;WCH&~t2oeoN9 z-wJO>riu(vSbH1}~w!1R{X zQ7hC8-OF&L!ac-rK$(FxoMSgQ$Oi8J0hmyyq0PKFr$;RWsrD8Dgor!NT@a0_N`cLH zmEN+Kp|U=thmSuT*>89(49GH7CERR?vVzlY=$Jb?7;i2Kgz8!hK#DDTfhPYhon92>cQ_Gt9T~1 zUTINA2+iB8n8$I`mPIRy6mE~kq|QZTsdd69PC8%}wi<^6=}(?3FHZMyYHCY89EZw_ zh7`pql_%CnhR(VIGz5F53l$9mk>GTX;G??6^ipaI!_daK3EusuQ=Z=i7yunBEfS_% z9{!l=__(HV!|QGrPaNyQRT*hpvcBlKwE${o?|yk zPH6Z3gNn_Ey>9Q~Xway6qhZF0q+*ZxVmH(wG3bj$r zgp$^)^0WLm9rhAbJ_KD=(*gbGB!Sgpap>_(P-R0at-SSCMQfa#tjW}$Pe!7R%)R;E z9;&P3NNbgURFO7(Nt%Qm(IBKx6mN^r=raV7mrU@l2oQr}(s zY{LKF!EJy>fQMWW2ASq`W6B`F^F|26@Zv{(kZPI$1(F&xe6nA^&vyS9&N zoGAhOAGPDZX?S#_`l<=;(2~1c4JpXAOoVc+q|>9(Fc1UJ9dwQ z4K#>48V-W^Ke&bu0}^OSWH&b&58JDwJ6;NI2gx7LX{AnDq(vs>!n@N4P@|%wNI&kX zGT2ZLhDSfY8n*}?me94J4Tf<8!yt)=iJ1SK8mX2*G6apvN0Yn%W>82 zZ%Svlm9jHG(9-hyac|kVwuY0g=add>cBX$yGQ0;PW_GU2lr5Jh?bfE8*5NalusH zqT^)2vxHu}mFZ9(m5pq3%V! zYPGJ{wsr0UD3jh8PIlH^-rIL+;23l4A7-+RjHvi?GE8&I9lC6|g-WKq4ry*Jo<5i_ z{ekge&u`4*{t@BB7hi`l?yBn14MJk$LT2r`Zn`J5Xag4&Q~TBhnXUA)Hhw8?$~{c zjW{o+9iagyNz)ohHPD2ilx`i-z*-ey>o|O<`qnB#n1nH@qB2K&4vXI0cKsma!x=>- zXE}4`jygklzXa+a97<^#P+pVPb=ZFn9c#CMQ=-jVA*2E*kO(^ z@-Lvnu6FfKGA2eq2$XPzBV+#DSL+StoEOftE3B~}){Zu?3ad|SA+x}LYxdV0SzmTl zZfUn7DO=sUw5)rVu`4K>qtsFwqttt-woxyk-M~7&tL%Fs9@xmF(rWE4do5~trF>`E zOEQ2aOT!ZV{Kqo>sR&3Z3QK8`mU1jL&QTt*fnmhi7hpZE-tR6ZN# zu2nwUl9fPxSX?60xT$1H#ny|~*Fxs5bzLmJIB_cvb-%ep;E5(-tE};L(OaoAqDB>? z9Ahs+obp8Sj_^B7uSU3HXG5GKg~ZK(ZPBsJts*PeOJ=<@QYSlGkfp>x)^&$X_p3H} zGxpZ&sO6A*KeOEzcKD2J8ORxiNnXGWO*WXnb%S)z)0Oiu@Tdew=H6uAK?;&?bjv}F zd@x3W?4y|w)=TZ~#$^4hGS5?%l3dU4THt9|_$dyW0@m@XS-nm|qe7QTl(t4YtCRea zQq{gNXSVp##8Vt#%`QWp$>j6SHoj%#11%md)x8b2>Xl|b-M4$A52?yuwMO@uxZ!nw0(t~A3S4i8uj3=J)OTrVu0Yc4{i^rE!heiPl> zx-AK!s1N5RdfPX2>O`pu0~NlBiPGik8zc;*QSk$$lS~OvM67n~U)r^h|5uHHnQt5s z={%9blpogUM1_O8SmF@99dv5t@tV+p(4dlWlO4yWOxA5##T7)dIdIm6f3^Im+~q8;^05FM}#u1Vef0WSEWkP${A2 zJcyBvp<=rAh#5=-!;(pCAWy4-tX^Yj@&Ks9WH@=>i6V-UBs7WSc9RsE$KA=vr2+I{ zdT+3~H8tsmPm@tyzSxpM?F@5EWj1C3H&H`>p$nbgGQ`e~G;47@eI|1hG{I2^HdmO?(K;72Wo+O}97~ zTz2II;Zg2b2RoXVV&#<5WB|E);l(7Q^a}i(xLnKOb ztTgQspE~8WAK1zP$t?Oo!YAC1u*dp`ceNUERh0e_>F!n5(vi%pUd)Ck5NdmbgA1aC;gV z!@hhM^UsdR#%hX={Hae>Fc8JLa8bFl8`(7RX-C_0_~pAG5DX&Gz&+JT%bY}A65b52$+pTZsCeKk%q=}wC%vLAeX z@^Z<0i$^`$>TVK?{Uu>BoF(L0Ek4VlOzrHA)V(yt7-ae5FpwB`Pf!Ngf%l>s#RM1UCk@&ep{)R0?o`W_qz)`ACCtU zFXyxiWUn^PjRvvIU+!GPS)bjiWmnDPS)GG^B^A60WJW1urp16ao0qMU9y5D%amzp4 z+kE~h#L3N6B`_O957`o@+&FG98;A5Bz`xO7#jc-m?m-Q~V$bm-#cG&s&;bDyVoX4b z24aGouRQJ>TB|}VXha}&)CNZAS|M{B{rfyvZgpmD*L=mjhYKk`UxTW* znIA{s8VwWU0HhcBNSd$CESK{~-UfI0{aM9@T+qAqB7uA=8q%OP*U7DC3~PA9%ARa`<}VLS+UvQ}$&@*TBPnFaOyXS9 z$jZjPdzHvQMygirmJ}C+TKVWetkD2nGtDOCcskEfl&x^?%;jV(HOqIZ8q0UublC9V9 zBr1~R)K4{Mm>{%Y(vpCqx30EkHC0BOQhM!e+0Q=@cTV^TI|b~FYg&RvdGy=cveYSA z7qg+mR=lL5`DEatKQ!!RiVR*&M(k{};k>FI^x9(IoW8{>2M$FRqk3{pn2@o-akyv| z87h~ha2;>`OiPq=$SOOAegrAhgzda{U_~Td+*HTAPP712) z8yeWKx>Hx%-)Jzr~y#Re{E7)w1)B+K;-%J3C)OFg!u&X?g- zU1iK9@?~Ea_;#$Q0SSPIsnLAAEVNGYk9|oMuz&YNPo?E*8g-H{lj4jb)@k3aaR_S~o6>yo2$5Fdi2i{|$s89L$stA_-Au33H zB_D`4y7aLE$7@KDEN>=Dq4%GlGOfY}?&UDd&AVhP>KP~C+J~Vsg+ee## z@>pSRhl0X#p%E&ebz5aNYg~0^U{(F3`N#Eh;s~9e#*&+eNvf2lG0s*bazU3OLup7ceiwRgOqf4NlJHj^WE_H_`c_i@BDYK?T~@n z4QsDC=XL!6Kn-?aX{aqfs&3hzliWkNwPLwgX(TISxx;J+E%7sodZBk7?^FQ+g_C9( z_&Wgf2L8kZ|A-DAN{BCWaVs>XD0(1^RRo;g<_cs>CnD8k(?86-9qWA6s@FSo7k=AL z4TP3lTT@*q0?uu71vaI+6@CD==g&!wyyORl1yh5nkmBLL$2iGu#qPW;sM>#kpEb%@ zP;?tb8OvY52MV*k`2}?kuctho*z-a8QUR(W);~Ta3h(zouOXX#<*1SGrFo9+-4B$2 z1XJvtXfcDvynPA3ghirS$y2%G%6Qdc7$Zh0cyeQYvJLKjB^FM~%@+<>QA;nrHM0Y#GAu!$`tGd2OcB}Y}}12mihFE-X3C{VQi zv+43mt)s&mLOWRH@oA`E%?L_<|Bll+`ki}fhv9ZRYIbuRrQ9L3dFoY((pPk3TumB| z_LNJAoji26M(GM|fF4L7j`Uxa;f{@ElnR>vk7f83|Ef!&pG`)=nA8Ql&3<~sK56X> zZvJ%0VSwt~xqwUL^Lm&4>FxByIHQpbtWiUjQ$`!KMN!^ReBjZO)n$Q11sGK#ZyI() zD`vQj6R`S&1Kq*yH?us$!00Kf%8SGCS5B((VhL?gKTh^ko`S6HxfOMSjhCtWtZ?d# zUofrQwfrBYTu+xNSRQJ1r0a<6^Fs`W=<{Rq-3*b|!YrL9Pc^S?m&w9Qd&!2=9Bneg zYPbG5v`MZW#WY`HW>{!WJ1ZJbwxV28plmnvYfjL%?!?%EKA#`am=ypbIL%u~J(Jf% z40}*lq99NC>~xZ=OzSn5@R<*^g{TB_dl-or7bUrJzhVps`p4|{{V3ac{*0U|!sp$z z=d+okt*yakp5oZn{$>5yOW5Y~vC`AcW)n`>#RC`1Im9dH=9p)^X9DY;Q%Bf~i`Vc! zl76q%V+b}X5$)$Qh8LrDPZvkm)K~4(A*V*142nXN(ykJF`V#R^?cu9=+E@d0SQ`}0 zCVQwS>oCqUL8?e*#|3o)LL!yBTd3Lk34XOy8@~oR_XE|rcg1%D=T4T%a}wfEPM-KF zT`bxo5M#MuW0+PNZNBD&d=`e<6_d|TK)QBi8M*iEV$#9g?GvkMutb+>AlvPGt=?Kr zKJ6%;ZLY>0?QtEGG-TtBOxnXf-HX7*$%&95WhQ_Q5lu$7goxpdPWBgH>?vY}k3W4> zFn~8P<~JyQC#IOVWSkS5cTrDvQpQ_WKHS?vFyfY``gkw2IBt=FlnUnYOZ&5ARwnXh zx!EcCFY$l-jj-|J%*UA&yd%)0zM?d-({60X{wc%I)1F5=aNK2MJC^RsjqfEOtdueJ zX7haiEOZ;MJ!9qgX^hjJI}v?<^K-_&Lq7nQnjdYi@`Xjy78Fnm2vjwbx)AhLh2(Cs z1jRg`lyQABU>#arWbj4CEoszDeBIN2+_av-mYUlfnG#hIOKo9z#*W$9kntc#C=-wr zIWpY#*dKEI9QrIR>-t5dVO5;+6i-s*rK|VT%WUfKP1I@lkHb={-|hniVwFQr;Tz-f zEJ~T}V<%C(JT!TkBg2zQzWq-qq0@3u~-`EG{y@E%D>;N(n+DCo1xv+>^~i_q_Q6s}47o_*};Dd(Y(+jbVv zp+Wf;{=5PeIDmS3BYAxMe)5fmU~pMPnXUk#0(mb&@ydzmMSuQ}r85@}Y?LKnm)!nG zjYj`T7LmSCI~97rh;+DFTcDjCEcjWK70zOKiHKwmq-(aqc^@x@Jtr- z6e3wVRp}p3<~!?ilTiJvi-_#67Q#1UEE!Dz_lNZPnU&j{Wslk%^xLh#J{a&-eG#4D z>TvME5J8}T{ek#_vUAmOOT)aQ@n*z9V#Db{K>n?2AWod0qNU|^x8=zAZ)E`ls8jqD zf58gifJhca*N!K@vMi;GC>=E$b2QLbZ?B&`0Fr1N$qH@B4HgQTuUsF$6pjS_zigkI zW8tfGU<71E5s1X(b{CPyI{(2%#GxK4+iIl4iL;by5We`UzVRjA9zVIi;Z=>toIown zJ>!EHC0r4)%72J?gEanu-f%uXAF*xurDrPfN7;8-62B`?fviRc)X`Ae9j)3B`sDG^uD0XJ;0z5EmmD4yG8DAeOf_sY z$nxAGsN1AjC(d5ZpcnGXPnD|g-PR1#Y(vS3%a|YMiMlS}%J+~>Y`qm`ll4)JGDK=W z2ntj5_Q)wVyWvn~R5Oa(sh3A678KO@mAKhD&~fdNiR?_-b{19j$(*DrKAdP%36(t@ zm$?`T7jIY8mL0+ztj-BLIbN_W-t;N3yP)@|83bg{l(nBvIjORV)=)5iszi3Y-GEk9 zDtB+SIUUz11Mo`8T}iKMsAtC>99wJ+lZ|mRlB)6dyvf++a19XZe&tctNg^KS7I|C^ zu|BLi{HA|kr8iS4{0Of|vc=~{Br+XWrXvotFsX~tMn#BoCl;Y)tM8F|1FhyHkvb;O?FxH@Koj0mOL$gv&Vdm&~?N*>d!Lad3aY zN62M6#$`M2I9jfAea(l9u@05G_ZFE3vfzRbjVKFF*O&&L5MQ<4{B6X?HY zXm6ftiy4+K$K=B@kx+``RxBsDr7qfN%o%ZvnjUd6U;%G}pNQX}0H$j8)vLW{VZS%8 zE>MjEhJj4kKQ7`o)>I@7D+A4Z`3ook!5eFup&*+l^p`d*;^WJL6sd;Ga5(q@e9^3J zAe{4U7=MyLO4qGEn&S#mv=}^(m;&ts_CDV~l3f6H>OO4nh=9`O3VCNj^kht!E)M)J zJqmedS0-VQGP>{uRMXdIaey~boEGgJxBJJnEAkO&k>}~D6cs4c>&b5(nkU>5mh7-| z{LImI|3{hY*MZ1#|4dKz2yuw(#Z$K4!)v#=r7)i9PIF{wk^Rp%mKyRI6R7&SYic}D zA0bA|UgN6;?Q&VOr3^zHYGiR%ogz*>L*Me)AkLFQk|3VN_6v1VZ@BpUrzw$LGb?HR z4os}KIpQ&?>vlYK9OFIh)4y;t{gcOL|3ZdW(`nD1rFFv@!xP#{^2Ne4;sEl+b>(0; z{IUH@b~a1gg9{5?+qeVWkja`53l8_umF#jx$9xc-p+G|dfSB_9+q@0}{kM7j|0AZd ze<>O307_!!{SCsJ)cxwS+3}2iRz}kcFdDnV#KFkpu);e(u&m!~nmHE0PF#Q%A)GIM zNNej6Q~1)bC+6849Si-mk|QB{m3LfN z?uB=d5koE-m(g-IjPl}M-TE>JXkHAt_1RfAEv?XeZRLEjN(jvNPp~A7N;;smgz<2R z3M5iOoc0>5o3jeHsnQ|=#+;7{E@;jtL$p?4-*>GVJr^Sezc{6a>Ji{beI(|1JC1bW zjC{2^pEjS^3H@4A0>1oVjLE5tfRV=iv=ZQTdEXqi8(6V2l$b~{dsR~pk@N36{Kyd~_43yrMR%$K1<;O3F-^TJ|W}Z6_He(z6o_H*^c9UN(?^)zcJiV5l zGczs9>7`hj$+ZzKMW)vrP5h@77?j{t3^~M+1W=h=rB#Fx{0we`x6{2gjUj^_WO^>f z!jPF@+A`n^l|7A6%W%C~5E{5((WD?{dB!GbT9(5c?It;lNTsGa2RU{}=@8ln;SYl? zfQ$7*#L3r4k5io$8jPc|h8h|*2Ps+|rDWlksL4h!2#d3GKFLh-lartk(14(sB-o#D zJM73Hi8x-{hWc@c1vKBrDfxcL6*Q&FTSO^(8ZQO)3!QeUK#CINL_QyYTr;CVnZf@Q z;!L~|gWW@vBJ_5ZC`yEqG<@4vqL;)VeZKcz&TgZp!vI)pBfeYJwhzbQG8HtIAF3}w zl?8vl6}gRWjOX<%GyU?_?ppqJqvQ2jo<+X{AHSI($wZQgB$N=pnMsde{>%lO_!3ZW zQ(@6ageMIsLJc4Og-5%m$m5m=ThKSG=!YW3NK*!d2KU&MDb*(-M90Cd1z?^!oHBw8 z{87-)oz)h%$!~Hw_wT))aak~e39#TJX=2wxx2_eTVfpbWWki&^e7N{T)9b}beY)1?8&ohp&=hsdSGr? zYKcN5ns5szob<=o=zH{JK`dCf%rJ11Jn32h_{I#E2gl9qe-zdhR?9jvNFtvl4ky?o zE4Rld%vn+>Nw``Bcvg4s%}csnQHhg{QCk&h4~Y_n(A%UFGq0-+`6FRt=;&^^>;8ZH zFYo}{Ux9YGDy@0O1JmKZlt)DOc_Gr(A^Ei#cgEaIrRHcZ+*KHtWQXB+(&0RH+}4t_ z?Zum7%P6*_hkUq9G(F^FkX*&F|Ip~C7cf~$$KD6mI=gLXHB|3Z za^ogi{<| zs@jwtE4MWZEYz=LYG(LjInH%*qAv>Jd0{;H8Wh75LU&Qq zX*2>|e3cLFFBK~j*9UgySP#?-RR}{RGo#}_36n`_ao+$VKm6FFcCz~F==rkq{CK?$ zumqg%IYQbxfhLs}(Lmjf+lD` z7_w#xy6w_lS7Vy3ujx}UTvOvSUsF3~peIackFf5xa~F2Np`t{lWMWCLafC+P9K%~w z-RSnH#F2?0q-JKCy^PWLOjP{~jNW&*HemNs{gWj-ruI#sz&tjY>aqztH_CD!v6wNA z@Koba-54mc>mg&%0jtW z&G6Lo6QDN&{{g?U9IEK9=bFdTc6>Z84}SB!+?+^0yL?+g@BRK`KX4IMJkjD=IdtNE zOu|S<=2Mf{&JOB)Vn8-&dwsT?FS%Y`NPfI$5lL8t7q3N4Xq+pHyQBO#ISK>=lFk-p zq0Fyi7k}A8ezv)U(7MuvS|7s6LJBz+&2ZKXKrg;l(AYFb#cWZrP~io3rXHg<*PGtKYwGH zFzj?9=K_^6|LTc|U4YtrW{u{<&Sva|7mX#jSj z^a4grnf4qHjrr|d?b4^i`?3Zn4!hA1BEkq?qG$;7)7ADLZE1Af?P+k6gGZd7OC9u4 zZe;{byZud*AXH08Tufsg<&qf7HU`!p&hsGp;+nqsQkCTkgd<8X(teM}UQ*?yn5zB? z(#Mb9uXblMoJe;yUE9#^D7;B1ZW4yh_hegg zz%;4o$gN&&S~IwMcP?R1VN;VuG{nM6L1HMq3h7S8=MEk@B4Z$e+g>4wmPNG@ zDM3~F21$z_i5aSmnAX34qrUL{oTpWk0B^h{e-JiG<2IEEww_}!-!)&YKQm4J?YoSU zYkT~%{2b}fUCi0SW$lrN*F?q-`j!z_udB*u8`c9jGP*go>a}9C=FM#Fn(v!UnHu_b zRm)w=!aopTkeq{<(01%oMAim>iChXH`cWY|hsrto=}gokyD zHfhqi@wHpCwzG$*Pp(!Y%h}_?sh9Zc(e>j?@lkYK$1C6dE7yHBOR^{1z3xl^@++$g z6VA;W>l3uPrC__Vez0}Q<9@qdh^PJi$}Mvv&T8{a{vj&vaw$8`@0{ZF44#Xv1BY#h zQ*lNTRx05!I6AH+F`eO-f{E<(xd-oh=OYcHRqK(4@*wEhEV-nRD?A?&Wd zfEqqcL=yVYFNh6>PX&H9unsOe2O9#K@I|!Z@?Bsv;0IIA4(ojt<+PX2-KyGvOpC^L z_rP`>8EsgAoqZ4HD*t|Uc=6yuFaJ8If|E@19#)ery#lH$86D>bh~~oVPP0KD2S)Ep zA^DO~^H(j(v_|u4H+fk(!Sap-xCdL#hl`R&cIRZ-g4erw7mo+RG5=$0VU|VSny=dC z_3e4nx`eYZESqi~JbQnRMSPye&g|kr)lQqK2P1Z!O`ejf6s?smFR}6>qY)eaALfzf zFqb~km1>#Y${#iRoWO0+q0qrS#7#+eGakG7LK&@#?Rm8SfGz3&nSiHt0|8Usoavc+ zrI(%oW&V#xV*g2+dkZZLa%T8DneFsE%4}n@cJ6~uhgRbQ+h+S|xb@yBnCpLFun#_dku-{CayEW#0}E=*moSZaew5FdCs(6$odradkD0%9m!{@EAr zEdD@7TnRfz=XWOY{vIWdbfJE@>92AH48>`en5JY^ft&#%#+Xm}HfxxsdLjz`$hV=; zNH5bUc$pmK3H^$V=}R{oGkEaQE8gwgaISvSpHKR8mo{K7wa~o2cN|S6b#08--EEGR zS?ZokKlEn0`4K-q^u69@D-J#;RR`gX^5jOW;zWlp=hqr(Guz}u!5dEN@^CtzNAj}Q zElzO@cft&*wb$$yUEei9w@e8~dQgEdIk9kgwOmhIrb2MEJ2z^ zSZXL1PpzQk*?+13rW2;z6#lFubb9k>vNuk;DtDNXfkc$S)9|MZIP!tTXEqR->vu!- zlY#Xe=i{wQ!RDk1v&=*DwESY2;uC+z$1UxqCR^`Q!^!sw{TPbS*y&dBW%U+vuMWFk zZ)99m-u$uq3cKp|DtY_f>O>INeA?Bi&=s-Mk|FM|;>Fm7WaH;tTA3#jgicxmr^#$r zbu#1WeDChlA-A4MRh$w8Ky+KtelYVL+YDtnT ztSnvR3f6wI%yDZNPaeA{wZegSq6xFYA)aCu?C&;Dcnc5k8bN4*R+@Dlj@HT!riSq7 zGld-C+k}`WG+p)FSUJrtRUlZlJiy|Z5k=Au=jr@+IS`|tvb@JStc@?o8y_6Xln4wu zJD&IJhrgju(t-F5C-5en3L?mDw-Ym-w==S2IT^a&kB0bemOfvQoe$pC>>A!?xot!n zGT@$~j6w`RSdgSrbd}}te#yd|fHj6-1WnDDQJhU#h@5pDmn{K}Mno=D6XRD)ecH2) zM*Lfs`!39{D~YTtxF4Bkd&)=Ipcoxm{*0mIeyQ$# z=U6QR$n2v8zi84KarmhbxzKczcQM?%>`e2nkQ4}uP#%zArcXi;4hpE$0pY)gh}oC< zWR;~(e#eAjdy5H^qFBfIuf_oxq|aRWAvt^Kfh0pg&=|kN3jY0aB?F1{VUV(z?Z?+W>519okN`zB#UK(ABfum6e z&K0JK0HBp)lFvx~`QJv)TGnFX$ech5F1W8L5dIcyJ+gOQbfO+8*I%DqB(oK}QP%Vq zmfV{mz5xhR5=hl9Yh>!b&7eqn>>^SieqkAGU{ORdaOR1>|JXfeP(Djq!D;K*Tp3Bl z0AW!CQxeo>M+^yIp}(CV_8&zP1jbO!Z@Fl~7^sR%{UJBQ`~x2W zd1KI2U?S~^D*vR7`2?6Qu{My79kFuOX+!ak$xso9LKi?K_W!Ni+SjoO?2|9vmi)qC z1Kb{bi@Mmq^==R_TfaKJ0O!lxcE&lqfc7WxEY zbq1*SlYf)W*xN;AA`t76QDz{)nDBft;zkJRvHt#;iF`+?b3#mg0zxz;g0hipmiwE< z2hhryXidC84?qIf$9NN?DXm*8A|k$L@qqx>=V?VBSet#9QFe`mza19H>=dxrBFImc z_c%jzhT;VK1cKlbWLkmN-tBaXgPesc;*{FA4(a6VaO_ z@HZR(ZG++dZm4>|fV$@abh`LZv&pgG{^r{0!9cb>Z$F0z+=TMXivj~`+@gcTAOEWh z!AJ(i_#MJ2aKo0Nc)1`~o6*p@aGo*NFQJL7-!7CdF4Lj=kNNyrSv@ok`r zz!d)JE{N2sDM<&5y5F^+^!pR2y*I}5o8TK;c!*f&P&*Ql^8^ROo2qu5H{$8VIFLzY{ z)Tn#jYt*D~HR{p-)Tpuk)~IJt{r{;^2mV)$+Bn3aOBQGC|Ey8VQ~jw?hX88S$!|64 z6AO;+d-}19!-$cKqGF_-w;J`ba$h0nfx$S+eeQrd!~D*Ck>^_Fe7WaX(j8OH7ARlh3w~1+X=?$_Qsmz#T`TW;CrhdC&+BAdD#X%%fd`uZ zk>?!;5o;7^Vacn#yN22K>};>@uCrRYF@Bk(`846dNb#)Nac5^0omXlcxAPJ4<^=kP0uL?8WY-3_K?50Q3qz$$e|G%?pAFfN~t=cHTc^>a@u7L7N)W)Sm#Y`>k)MRY~e&bM?-T-^9+ zr}ow+?02EJmJIo}aGr-?byjm=Q)K_C*+$J^fx$()iZTJWt}ZOmY0A&ib|yc8kr`XB z3u7pp*5kf%n@icbYUtB2#B!IwNZGIBuh;2%`he&r=cJ@wvv4;r!{^~uw5A6N-nd2QP;+Kz0FfZLrhUqNnK)XJdKkpa(WyU)4(^ZAN0gJzr=7Lh+ljzOp zVYj)_x2>9~1bfFt$zE^6IRw=9QSB}JR#qv8cJq8M(B8zj3h`E79M%?6NjI7Jxar}o z^9*Qw-8=KlY#dFi;^*KpQVFyf=0Qm3{M=259lWaO22MdPfbYGZ0{Pl?l|J)wC$3!iK1y5zd~67eP8*Dg5v_j^iSivxR`(gRxH zM7~JaeZk=>!^L2LkDbBa1V0mEoO|mCZgGPk`2goo{!9w0v__EP^xFK>d4?UYAZ=eJV6KueXiSN)2ZX&iW+`ze_eE2_bAmEKQ2ygfBMG}huwEC2PFaZo?idvjFUaT($QG79{nzJ#)vB6HQaJD|V z+galvtuhtMOpDL}Aua?@O^z17_*q=h|4S|`;Nu5z@O)pnYIQT=VmW#>H=ojH`MtCY zwTE4aj=5CeJiU6L0AGH-Y$sH4ip_NTKots82ycFt92w9L-~pfRrKocg>f~UuVd(=V z_O)1aZ3deP%7n11iAh4S4eKYvVF*oEgGea!TJ7f*AFGl->q|dYt+s-0`vJ%axLo(a zcp+i1ck?skwjQ1m1zi`btw)z|nVRWXdo!4-FEw8x9FatSg5@_Kz{fvN*L^f~Ib+Qv z$J1|j6Cg!#84|#axc8=v(65lq`ey}Q(gXk64gRUa1y1nosY(k7mLjIvX5|M8hI+r? z6CCt`!1MC&Eh{!F{Mp5LhxmRAKfT_#)|{l)CFa>EW*vm+Yx%zaw+F^h8hzEP#s)k< z;KjZQvQP)`3dIH^Gg{CkpOA$XNkmbJ7a5U9)dpo^QHehwg9DyFS=Luezoxn!O!To= z^pwmj1sT(6azz_4*0)>ER}5HFZsdOvSDf1;qE3I^tn5zb_rv1`d*#yUw!03Ub9Ik% zyY;US$<8&gZt1x))C!u;n)t=!+5P-V{%M$&TjGQq1%s|gq#$@;$&-6GU$L5d6iN{W3U(@sa;+)17 zaOf0q7j$r|%RQ5*WyOk@^EBn#hS86aNLFqds0`xg8+|rrtDGEf9NWR1PjCig7f<_h zJ0z#pJ%uV@VwQXc#76Vx5ZQup1mOwi9b=YqD+f~6+-}eiNb^~ur*K7!4K-vzC<5a7 z#R>AGr}E`W>ba~fc`NF6r_YHUZg#V0#Q=2Qym{D1MA6Eq;I2OryZ z%!=2CEC$}{-sv_*9{X&en`LuEt4mNI_3>L0G)Air(9H2Gmj!$h-L1m;0h6JZNLdPi z=-Kvg?BOl9FW|J&jph4Y_k6ZcC30G#J`FzIYx8NQ;mOU2G>O^Lp}MZ%^TF&ymzmPf^Y?d(Vn z84;R@nlq&ANEwkLqM7qa_fJFd%U^L3s`9sXY3pnt7mdpbKB$XlMN9}A6V;u|j?0=+ zeLrD4@p3sgqNd~4{1g!fRi5n4$^VHUD!PBp=x~|cPC35e-5mfG0wWC6J0B~xg<*K;5z(W#RnyeX#VC&jxuaU0VRtuhVB zAR^m7Zlwe;h<4T$aT>ah;gw<@W7m3{UZPz^;P5eaD4{x4K#rg|T0!*SawVD)K8@fB zrXk~mf0URkl`tBP$uE^}bPc~^k)ZpyJ<5Ec!&vv)>0?fD4J%hp38G{$sUS){mQrv* zv>;3U#>r~qerqq*4(-gG%qSRhHNQo6gN%C7aVW9An3x{S$%(c_b!#(BeZ3sLkKRJo z+n>=K95YwkbgP%So$&6ESErNvTNBttvkl;+4{b~3>&|>CSv+~^MLo=JL6k3O`V8@| zMCAV(BUtCor2yTVR`to%yX$L*E|dL7HL9k8LkYe=PDY&he3BIM*$5SQF7IFMZnt){ z4IQtC$Ia)YR^zj?WWmRVx>VE-vAHDh21{Dz|0{^rlG48==q-qLMZ^5DTiUgXydl&- zChh7iKVap5<_GxvI#D+N)37xh$S+#ucYZ?~ZF!!LVi-6$w6yGlPz-Bh$s}Ml!yotc zTk8xF8eD<=*()8p^II-9btZ;ok3^btjXDWv)}qU=>%CNG=2>_&t`BFF2RXtk zRSle-Ihv{Ai@LI^6m2nYrcD$WwB{}C@A)c!r!8werNA5J(-!2~W4N(Y6p#5)CU5ze zJ>zRQ*V@TjP){zCOEE-{SZ*wAn6;a^1Im;_=k+YX9ba1+_oT&n;HK+N0rmmf=!r*n z2TTQoV5;APm*29PZfz1}A0|z1?`A~%X#%lyq;|b7Iz0^B|DE38Jl9pts5-)$MR>aY zF*}ZV`+VL57n4#p*5b17QQ; z6y0I&Z@qrEF%k{yNI^&$8*N%r7mEGL^JILp;9<~_*k_m%6=^(`fAo{XUL93!Vp=HE zK@vkvVTTWkrtP%i$hKNC3h3AUQhBB$iC@e^X|yRoKN-rPlR!}Oogok2JlWx9uC5T4 zV%=ACULuvjAce4Ol_5`@JSP;lq3(l;l2Rf}=fd}r=$nqW)YG3&fjaFrb7FGexIg2) z2P8CpxV-g5kNRx;ETGZhak;)_`J(a0!1V9G>bK7KE|ku{Z>BXm3MMPBh#>DT8hn88 zSQ!H!$^cb8qGj8%^r#-LxNVMqUIEE#X8dgjQ$XG~ZNN^wZ4%UXN~43V10Yc;9I`^`Vd`qId=Ib*B+!F%E*k{%+34iwkxAC=GSr(omZ*du6R! zYt?Lnf_31dxuAK$vzXyzG(lN6-#KJ7?+<`0V?eXl0SlM+z>wK8`f6{lE0Vb~7EJY7 zGBV`ksHh(RuPUpuMTYLVek`;CMyW9qbxhqjjv?*LTRr4J|vNY;CA9=g*cXwuw@ zJsW7!l@B!t5kwF;2WXPaZ_m?g2b-ulW{Q1JM$S}Ae$+iB<=d!YnCTA6CTv;W&}Xyq zLyAZDupKYuMZP(hm)wIbcPVzIG>7r;trvj#XxsLZou^eoBY>=ba(zRFvoM5Fko}}& zjm>{xjvy{IVNvpTh+8oo^TbrtSSe0W?y7aoNsOB^-CP33kJsn&7RmvUkSg>}0C6%YxI^BH0+dDcQ;;>@BRT zjl!#Ot&Y>oA$Yd?M?m!W?>M|Kw|n|KHqV<|v(~?&yrTT@T;t>i9fC>$t)8=$piED9 zm#I^aQ0exFZs~m!oY=adnXcByDPqT0uMxBmrk9j~Y9lIlalYERQE$Y^ERF?-@j?4lg?3n`Ba zv}<@)toNyN#ZgI9&7f20TxBgu3ia1-?O)smS>wJYUz{#H-G)O^MAVc#fpfq5GR0zE ze*-_M9AyZOj}b)H+h7$l@2Y>pa6fnToXq)S0IH?Lo+Dl4I|MM$dLhj0ReS@4qX7ysTcJ855y#O z;vW!KPVbE|sefZkLg?N|T(b5z$Rup$qmt7B%xQ@EL=H4CmGBl2?0S|r#l z=J%4w25~vdA|YQ6M>S^FPOk9BYLuV48xN&JGgtq1Y^eF#ugIP^#@qN}E5sc>I?~T( z(C7UintgVbTVdOdWlNn&lr337U^?eUOJ%!U!di7QCS{xr)DKdErd4eFd1^UIonT(h z>C{PMl$heN{*nZ-)((6Edh7FuV6ClcL`Gtb*MzVP3Ahq>La%ydB-wOD&QpoOqCs$E|E)OQI~DiU zu`l@)9pekIo-ZKXD@gyVWDy#O7|b6hO9=T6a-Y7Sarub+M)JBnr?ojJLLKe90 zuO;;}uz$k6d{X)YQ`G17IFCwhKLYeC03hzO!dAL0QBM zjzRUI8&w&=#=XUQK`9BUR3n8=SVbSc<#;hiprd^Z#QsmNS3U3aj>CEH4~O$wc?Y~v z8ysmrj&AyoJ2vUi!U+Z;zBDB}c=~Kla13MsrfjZ&ue2fFT3-s}4`KGjSE=D;4yPWv zHgcng#ge7e({I}ukl$6WQ)b#!z;E&=$_u=d@TZ!gqEN`Hzhcmsii61con6QF&(Lrn zAS&;Alb@6U#6?xme~c{S&?@ugZi4xFQAS|y^;q3=h!lyBfatEN0;FP6VO!uoE*AVL zqq=43IhxxOwJO!bgVo$32aE1k!)*QO{@ZtB%(eA|X^6fcRlGS!-TU`DXM`p^d)Oyi zp4dvETH>&N&{+8vF12RbZLRp@mGw^o7Km~tQbmPZPC~Mq#wf_azteDUev_kH?L4It zdm@;Ux$g1-<+so)?7s4fu>46;ARxfv&1^EGpt+`WVw@|>q-fSTdm8;7gT)M|T-?x; zC64yzTO(xqMn7T-TWxk!x#*HnqE;1euf41C@Mntg5n%oy=}>#27kT!`gCyoc`0)BQR9)4j81dS;~F@ciW?K$~%hudbW26|ZRL;hyj#MgC#)ZB7u&`*Yim z14%r6))Bu~!vSmT%xj2<4(N2e>R{lMsWbib{%&ow>6th44j1 zTd`c0-LxXrcr>-i8plD>wJ!T?JY@fbfu9)`m7Fuac^siQ%MqlFL<`X=qPWc!t)|A) z98%%Q3Kw7;UZpwjFg%8UnHyUp47>V&9zW(d##1vmcv#GBHq=0s=QL>U4++mST*p=D zGb^3fSY|LMl)18|(}HPCh5XiL4D(B|MdcZVQ2ZoKfLoHFoBsRNO6zVzJ1VuyG{qW< zrQB4KA+&ZZcShBP3RX|IIKRW~6J`CBu!-eDP1b0a{)lT4hj<|xgY3d;%Wnnu^oVy; zqjs}4MB^8E+Gd7Sl_B)@tNGzx390@tJLC1(F+yZB3gxh*C!VO~jb3vUoqu59Ib@SBkRGcs&}zLE z8#8($P}NlWQD?tw?8EoL;e_uVeY37;;A%Xmg6|{s+(iLHL){acpem;u;XU5;yvi}>H-&iQa~u-p`NuGg}g$$TVuQQ z$(vz-=4M@&!!F2E1A&t8^1#zk5SO^&gkG0KMF5x@K_@z^Cp#;%{B{AZM%&^@J(mk^ z$vM<72s@Xtb{0{pIpfpoH1Enf?oT$tClj^kMi&0Has4D?HR5SB*&^kmJomZMr&b%z z&fm4z$Xr1Hl172TD3QWyu-7sNc8Pid5P}=PQC3fZ4yKy!`C2nLLo`1HfBZ||3&E!* zKBNqHY=obXYoKSHlNUa(xLlQS2t|Mqi)toZ_33IR52aEcry?dLb;7DY7h1~q!xhaX z3xB0XmhabFO8!1%E;Q#cChbWTJ9rS7s~;9awotX19*}ZkJ9cM*qmMNi!~ITARab4; z|7aq-Sz;k}`xp@~J2x>!TQYT1@W{oc!4a4@d~?X1a_dE&A&&;uabrd!B*fuM0f4CS zT6xkCbBO%o7vS+A030K*sdTrCnyg7E)*7evOS1Lq0%vxLwZ4wMCTnGQwVDl) zn*SxB+pi}1HIeA6*b1vvadl{A$Yq~3O~@~lu}7~Lvi|#5jpvz;yHl@c)R(K>Lp7W4 z_U20GxB!g_r6X-ObAyY?6PK>5I`6_hQrzn_0P&ZO1O3S59M1ua+>lJtAl}Cf%PF5wMA`{mRZpKRAWNx zOnU8k;WmVG-R^Hm8As5UBGAt}I*DUm8(THZBfDU#twDnu4qTZ==W+zWhBrl&*W$a* z6ul#UY<6ejZHqFbOhk|+Gl%IiZ8L#ca&$SjqU6H-=QfH527M;pwJ`9K#j&Bmi`FXo z;0aKa*R*YU6DQ>u9>2uf{85f43KtSw6VQj)sMNmnf?JuCuTC;)0Df+C$#;UG>s>R| zN?Dd{O)yQbbFlE5K52LfVuOo(T=UxhWzQL*Xehz zzSe2i2Py#-chhtLY^tPLmPCPi7{Dq3aFbdf8Ra2x8QC~yVo64psZ+`8XUB3=OYt+93$Gm{<*YDcZuKVG;OErScQS>nF- zJM}VsYUERZbgj=4w)E7=Ku5{q@b*=9s|)vI5W45f?7 zN;`uNR0+%Q!e{rd9)CP266=j7sn3=SseNddCa7MHG?_=dS*!ITSvmF_096cfemHR~ z2Fic*_qE;hNU?|lWn#WPQK}fdocaVh)RV%H%uuR%_rN5friLLE@;QcFM?zA0{`Eu7 zo7PVzU=i%%5vkIJOp2z;mqpwOsa(Go8m+j~TgM$)GCU7GLow-xnlBce7Kc2RXf@>& z&MX{?ClC$~Cr;3IYq&zc(AC-=DOR1J1f(xtf6cd%Bo87;XfV;#Ygqw7bOG<;P`+V zC{LzpX&gC@TwG@@Kp5^HGiGF-#L-tzw3874ed@ODJ+`of9sml!8g9IQ{A4xgF)xFu znk}!Nz4un1x4kG-9Xrx8stjzat!>Ho+wkp5Nr-)9#D*fh@X&6cjwY#_T2dR^ZnNbb zzCSecugAign;NR`74@&rf`Kx#z?&OFM?Be}c%O0?6On~DZ4M0I6A6UI>+wFc^t5N7Ges>_Q9n6g6ZB{{u3qzc@LP&2j^dF-`GGir!U~5mplT z^Ka|a)ICOMevHCIno&`SCoP^ODVRcNcJM-z?%CT~|K180VG=p{TOJy9_j%L9vZ`&5 z8vc|mzWDvyVP={EZ5O`zbgoiqa~f68TQi4RN8Hyyy|akIXw<+ zpJo?KwxR%;&UivboO7~2S>trpPz-z%Y1%pNb(bpIy^aH}%hx9`;r<;%#RiO_$^*tw zCouOrr)l=_phTFy;E+I}2}8+KZ4==HSkKs;a$x?3?+UyB(DngY$U_?(7>QAdMm>91 z$)XM0%Oq1F?uDiD<$2TUbakfVb<+#c$J7uk)O23h?-?(eR4~i&lg|`0tV34bhmb2t zay4`xThP`qs2QC(;TKJI;gQT6VnP{3T>@z3R0=~xAAT@XI;5gX>|NMdjb!g%#EvJS z<_n884Z>D!4en}fvK9A8MW?^JVk<1fXzX5p#&*S?^v8~Y5-}piz}D3O!ZQVFV74R* zfz{{z*vo_c7=H)8sD#F8Jc~P&GtW3)b*H+Qnj7y7d*IMv&b8*2hHoE`hcff0{PHIz zCe%?wEEmNW{rZ0eo_{JzB=~}xox#?~KK-5M!?u^I7U^&MGPMqI&(~_od+Fc>{nJH2 z2Kv}#q{3dv+0Nx`EdRyHsA}~z|HarUZFMa|f|-N*M@vS$_AvfQ>FEm!V7i>9)8Dje zoUcFB9c+IpI;u{sr*h;QSvt!M$4`~0ymaV8K;GkVnf|7I=9`K72*GdIRe3oLWU-y8 zh!?yTCH!)HXcDWRXuH1eyR;y)KGp28wGP}F(9i)WO)fWGJPudlhcNkHMfB7Li$u`1%ppz>6XWs3;8N$W?{J)v>AFB53 zt-AL?Rz^-79dU(He7|f-#QGbhz$)0Kx?;5&FK6Az5l2@RVBJT%F>B`1(;vFm_sc*z z6t%?ks+et-KmN|kl^(t#d||*bu(DXt0nZU|2vQO;#p5_72y2M!mbGG4Jyi(;Q0lmD zt4OZq_GR4wOg)&4n!{f7$gtjl**?sQ14n8YE-f#Pl8QSSxXGpQ*2>B@ zk(1T~J5|3J^Jw3u;zk8itpY>M#eH8Jk6kBe&!~sc$U$vN!|my6XNOs~7g#nr&T2@~nH9lM<#+=K!qu-7LrQUp z^?5ZgiM_8*GcTbwO#cn%B6=q9J*`N_IM?}EKayCNMX>gTJdT6>SDfHCoYFevZn!BL zcxXOtAU+F!d>vw={~ABy!u0)>iYOR@k4t&ADj;uPI)SSBNS|l(L^u~I^PGrR<;c)} z)V$BN_g$Z?T(bXBzcw=(VNsk}o?n)t)9~AuD$MtAKsU;?au}wrX!zW%Lmu66q*72` zq}U=gXrVyFF^a$OnLt9)0fg10sPsAt{p8KJ-e^md-|8)wBgAsp)k-4dO91L7Zk-!w z1JQg_l6X}L)j6xbBYB|lv-P1x8WPPV6uBkv5d5Ty*qEYngkb%qxPRHt#h8vfXA$!D z$?OEnimMw}%8PMP6;l!rdJ6E^L7(^7Ou(3vf_7J|EqfncVe*@q2mRep5V|~{z04^Z zUp?8ncQZ(yA+-_LAq}}em+N)(F)4azMqI;Il1U9H$y?$l$r`dXbd$nI+R4augz1+1 z?@8kaAy_oj>F0DmvjX*^8KnyA5=1}!ll=J;|Jy_b`dF%5+(o2k3BvXg8|3o^7S0Sm z{8YG2b~NvQ#^1<-{8HtjYAk_VA%RSZfNXLzSV8{Rv|cMn|0C=zqvG1aHd|bRy96h=y9EdY zcXxMp0>Rzg-Cct_1Pku&?i$?bf|HZ)bl>iA|J5E)gQ6JhTI*fUGpCst(%(FxcU**3 zlf|oUPQzQI@ClPpQ~r<574jVPj$<~zdU*FZ**l7MS`4B(LEJl^@ozaCR~x7Z;*Kvv z=Ho`63?HT-5ES4U!0%GmK3pJ9ZhI!PN*q7xEG0X{8VR#wEYNpA1E8Ed9u47r1OKIi z2nCQr{M1N-{vYKkfY8v?geci98o|$^i2Q(7%m*Me9Q=Ta_XGMjo9EysoBeeh(av8@ z^lOSL3E$Vh$vn;n#0d`usA7JAaW&VUuaiIrksj(@x{7NnV^aBa37^bwxs5MgRNwQ5 zmGEX=wJ*~J5E@QgX^wFjebu1(6l}YYz~20n?|HrP-{9VdS@;GZfHWujgip2^;@>o9 z1S^wBL*K01ch{q+d0zd0{>N~gq{d(PpuY2!gAvj+ z#-RQO2SGdnv&aif$W{~&W)Ox9kvu^_@F$AL`9R5680*lejmmE(10&my+!bsNEAx+N z6WHI2Us#>Ov5{L$JZBW zfaw=e4{ngy=UeGMv?pR*1dmNAcQ$- zp@7v8XrB#Pt^;SV^a~HJK}YyYm9_%^rp!m#VB{gqE$_EJKe7xoAb`i2FjMWqFVI0O zFfDYdE7yds8~FK8&d$p<;+ub21o4ii@Ks?vY91CFs_PD*a!w$FNDhVS;5Lz|cE0yh zy%+NY3NR19QnvEm;L7%_S!S5tE}6}|JisbRQhzqqpb-sgR(K`M9-vR zGP1JtE#Oi=ZD;OdF%-)*ls)HbEW#<())eq{^^4oZ`K7r6@A=%360h;{Z8{QM zTk`zapL4`fP`YMaUGDFH4iXoltPG2axA1qE3Iqs1aDVjxd)N6vL}&KMBKrNp@ZR7* zoZpM1N5e+BlWSrq-UOX2uaZEl!(GAt|Bu*dMD0cNGj+2941xCNuv;FVn`zqV&lG>} z-4D@v?DM3=y_9J`HL;0ID%Ofxf?K8p=xn=1%2yUCM#dOiO>F2iqeeOhS`9_Rbg8}< z8ldcDeUuq?D`3xs!oI(JJ1ShkWVC-RVn=@~Go(%dhF*RHox{J-0YfiKz|OcEwPqQy zBrJRQT4ux5llwz9z(ag!WL!)G|G7{xTvW(*)-}#-b30J10&jKwEktl|oFki}UN5nV zQ6^>xNpq63lYW(zisOhikY{@ev!}*jEGDk~V*Y&$4X>=auNt`F9Fd9Y8<#xy9wt^P zJJsrr;cx7J$_!Spb1^}ObGHU*9W)zH>u9gJfN-1w=$~-h58TnBXm|=Zn|7r%<^QS4 zONnv+H-i{)`JO@S`TqaPApUoLk;riLYJ4`5vLsaPc=C8jg<6ris*R~I>MJ$vPqU=B zlQLZoAf=LVqGD30q4L>Bl`YD?K8r`i(EuX#a-X0=tT{#xXncC2`ZWOL;R=mpgs)AJ zg1^;IVP#*KCR3j5bG@SE3bP!UESwT#dB{lOD!<%kJrxSvYcN@|Gf0t@m4siE6B`lU z2464@E5l#lX4;V?O#@~j1_Jb?CA#g*G0pfE(3h`I_hZnzuP+-XrB~&*bbU3M=Dlu{ z)jlBaC%0U~iSYFKAMcQpB8#}`J;8^KApj@1o`*@&O$5seyhjd=?KQ;H8jJX_CjPyuS*B1Rm}Kf^Vim<=}BXPp(&6t_91r1AJ-bBNdGURWr~^! z)rut$%RE&rOu%IMX7l(tvcpq_r7yV;9zg|%9fCE0^Ahc-r(b}f^l4a+0i|adc~@8| zSRhD7NEA_6;}JMiq!A?pb+V05Oyg?>7VAxAPCnrL%Q5X~hcNBQLGwrIiOr~jV~goc zcCD3yxr-;nu`ZVr(&O{JH%@`Fa{5FqI7N+`tdWRrme##?0uC+$8854k{jGnmQ1u>r zSr<2Zi(tIs&h7fdMX3BKb-GawztTo8!A-8YZm! z9%;@M$g|D~;F*#^8igxx*0TcoLY&)I{Iws6c6+**6aX(RW&MucCmRO%ghqlKZ$I8eIOT(?CJv(p zMB|121x7j;eYP@NWUeGzh2{K9@J6#8Ztr(W%>3t?1&A_r5?}nNMu%~OtXfB>*1%x# z(rtW0bKb!MgtI*`Xu^0zBdY?36qMTieN8h&`DHaFLn}Al|t}v&e?1r0DcjKqP+1L=;tO*gjD?c5<5*nI~nPP5%awx-{?XP3hZ9}_T>g1Cj=KiZ$4U@Y|B z3^6=8@Ea>cUXd6FLk`RB^Ne^p0k2uVzsTfZ0^V7m&p>!O$k`Wo!q?J7)5G8*wCpCd zQ6W&r?ohNq7+x@ltV#Lsm1wL*&5FqJ!}D-GaP=YJ*3r5)<0@HY;|aXw;J`T+++GvI zJUiDw9S^=kw`{h{ypoj#PPcjN z7!>ru^UKXN!m=wKz<7yW*Rz7X847&~AP_-=fO~-S zijpuyipIIrEq`d@eM#uzy9AmGP(L<=#RCG2d4Ke00p98!v&$es2*+dNvemX^na)0C zJ9vBN4`rMtnE#1hO6=TC-1cet;SX@tHJ4>sq==XWK{ zJq7+$KuSuXY1fa5b}cSVdK?x*=;kZrEiszW#P?L1L7jA`TrnzD@7j8axieW~sh^X4 zHhJ0TJH^dNoR1{Wa0S@lZXWl$u7~s4u9}ZjoTKLM9mY+as_(Zf+=U;M3zx1VagFhx zx3mE%ja=v*Ja>jejo?=fmx(i{tw`H*dt(RcCM#RVtH?~xr}HDavB>81p}YM+_Ew44 zz5T0tUYqoXqz30uymT$tG->BD#_a7kwH`-vORWAbPyX(HTjrhb=yBc<;nS&Z2vB=g zgXCxjuzQnN`>~8Rdv$VA1_Y8kHN*K&s!@a4Rrcrjt-R=o><>a$8phK4hv1^ z03vo!Y5udz89|v<$cm@)oT=27)XHw_C=WYL8|Oa_+TX`-osED#?)T1yZ$HXTVp4kU zlXpjY!xP6=#hHc8zT~y->@ZBF{Yo$?@d8Pw+TSlDzXtVpL1|j_ z?}F0cas;rTG%K9?v!H}7QD{Xu)@e0tWUj!UxE^$t2w#kW#S$wq?ssTN0?gM&wbrq< zN%`WO3)txAb|@GbY61k1Q`43Pv$`BS@XqbnaKDuXcGy-bL-96u;0C)oet|SrvBL?{0l*e*$8x@K&L0 zTh5*u-`EBSMpNF}v@M@Vnt*06tM{_ysNQ3&G0z<4@{9a1OD48dE9Ql;;w;f=NP%ckuh*P0)N3wRTdLh%-R_#8J z*SYu4s&&Ke^BCySPv^+a(5+xvAat2fS`|$mCD2KC@JUbrK|3of3b?KslMWF*();zP za((9wV+aMI+ybsL%?e2c5eGUzd18rOAqD_+|FyD!SB#1se>AMupmPeO$HverOgve_ zsOu`S5H&6BG_exd<@g!rv(G38O%m&ayfaR@A=?!`3myIyuaR(52<-og^62;|Cre|P z$0C|WChToVO0jVO|bIfE9_G3dQh+LEKZk4;F+i(MF#I{X{4 z3bv#Bmltu?V(j`Fc7y1$C%4mtkOq1cZ)qtV142g``=mI{z z1+6s1i7Tk3iZ{*et6g{5W^dm&U+&>NMJBy6wR1dXjEcZ{NaQIt)y@TG(9WgeJunhj z1EQ{edtz01^l5AK6fV_OT2Jv4806&nniLx+EA;Ptn4C@;RJh~)h0_?Nmrj$o;2WPk z%{Puz7!OU+>7~i3xV6Pjn}9RPw}iWl;kM7L=_ojoG2-ylO)oT^+s&xxBEa9J-!VbzEa5jJtC=I?$;#V+ZUd8({fZe_&VQKmXRaYhR(^t=CdI zmB%1P-pLZ5ygOaTJ|aT4kZ>}vS?e;F%>ZzGG{w8Z%w=<2&&)bH57yTrp16002U{;{ zjW9T7SPJ?laq1lg6&q(znwmPbjH;91FgW&1f5eeTNEbf3qC=RZ6U*HYTpWFsy!4dP zzYu&GdtEsoIhfq%Of9q%Ledm=c&3QY$VxCLWu!6*uB)z}MEQlKp?gzwC9oSw-i2HI zzSB|8pdZ9e(Z3^!C#&@pp=i6O%Bejb-Eh8zwY+0rd3zH-edtT)(H;jtgj;lSDGkaq;EzBCKgxyiH_;Xk@d7Rz0`JoM6)- z$)JMxG_gjnf8zByO#;ktdk%dpz}i<_WMsxQB~*o`*32R;E6(RDT+qtlI?Og|!oUA$L0$@lV6RU*ZksnF_V4T>45H~l z*K-Zh8=?xKX%J%VtaRtSu;=8OX)dRvVYFw3oIlx|FK5Cw7#a|4nVcNO;;;EQE@wqDF)n99QH!effkv||KSgXc z$aMTczXo^M$BN%9p9R%ikDx9}O@v0TMqIy!YrN6iWEp~4%DCmXstFD=JT_#wFIN*g zGgVzVF=GoT33p(O)fdt79iMJ>zZibe>^$i?^{`){o~Kie34UU7^RD&{j($A4E_R@l z`v%@-L|JeB5CVmB9mO9d$`oN0GMKt^#ax;6nT^nvsMBV?)3|`*2ht*xrQ7(|Jb{v# z+NziJgX=^#6w{}>!{ce^+?p}VXW{h8e&^7M5GsM)2JTTuNA&^+T{c`{@D}@%Ut#~V z!cjZ&_`AaSZoX*mv<9>HaAXl^s~;RI)C=uM#8*~RaX;$nba^r~AG&G&|5@V1O8r^l zj8wW6mbEpt+&6!50xWT=xjwW0gHCk5c^jE^Z{fX<%=os0jYGd}4vosb{9GGVe@U|i zd>U$CBvWpdC1YsqHKRxhT&i*n6Rs0jjjbL%W5{2)tf>56sX?>2k+5Q`{q0y@)T=tA zVh)RBq#lnoU?o%PhG9=<6aHR1o%)z`|I|*{XmVmcr zgeLA-^RxI$Y9Ete7x~i4JfIn&`M)s|15V)ZhOY-KLb%@eEY_rp7iU_m{&VjdbaHl)5 zQ4y`SGTu&_Y&fzRCSKlN0V!oSCWFSu@Lmv1@F}(@$HT3DsXsTHm(D6TYw!_f~^C}9T0c=_I7jo*v@{&uZ!6jb~nnY6p#Qb z`%rbhUGGe-4+>Y%0U-hh0rdm`=O~F`fxho^->#p<=;l|y5h$3Ne{03>w_-;# z{jsiKW7f?ckIctn2zW@zj+XX8%Kb1+?Yn7w&Z0$A%8V4dgG|vTL$k+sHLAcAbQCb0 z5AfiDQXC5PuzNywrWEX`IEy;)a9dWN$*I$CwBnErHpF#btW#d?2dn%u9WFhcTtu70 zMEujqBY^zmeqA(o~Gnh_^S$;9a)^NQV-`y*!BA9_=pQ~%v@ItO~#oU z*)7GAvn!W222oiuTn7>`&BJ-+wj-O|7TsaE9*8XMot# znZp9k+I8c8Gw8y?fj5J`5};g^Ks4%xiZv5&1pg=ED}lJ1jZ{z~k`%%7Ngacs@3|kp zcdxsw=vWEs66amH$Qs7b^zAkK0}v+4`!!KW6M3={3ZYUFvm$aIY+tvmOWlslE@D#^ zKzCs@MK5nh+fc7h^w+xR6p$QA%~cnxdPaCb32L_7kcgHbJVLXI85X!0H6p7vGc@NVU%FB!H(< z3(v{u#ZTTa>EiuL*0CsSewHfe7Vb|217u@ALX^j-4Wa(A|AD9>K&h!Jn$(3 zi2vC|>-3W5kaQ{F<$ejtav1 zmr#J^FgQSPfdH*sI$1KgYwlTLJlnzgNsx#VAhB3v{uIB^+5rqOS$OBYC3=x%_dtrm zsPt1BzP+V)=R}m=^cAT>dTp;yE}o+_)&_htE`Pj)=2ML`h?Eow z&%W>3T^lO1l2Kvxa-{H*Vl{*cB5kyP*5zut;ex9F+7borz6=~v5`vRl&lQ(|i}QB4 zGIdTyR*p)AvvE#obDkac$my!5ndngbKvm(yLY$l+-VsB}W_U!P22ZF6%nys#p#V<+ z5jXFhR5#wc)VZfVj@;|v!o6Sl{&XxEZu2r#HYHV?T$^On#lBAOr%n_$?0$9z>3t1g ztFD~WEQk6|+b)cJ@?|&Y7E7NXib-|r_1-g#{F<+{_y$+ad$l(zto24`o!As=o|Awd zT6VWF3R~~V#@25=-|4_;&^YZBQ>Q+%u}5IIXKzd&%(0^zV3*JA7`%Mq2uSbP6qO77 z1}nPbgJu`G`+R#i27UJLK)Nzj``$3Ubxc*ujyi&hEcG-|R1;&Y&{kGn{x@$0_ADkaK(kVM?iL=4fFTJ z2e`>t-xC>1Y-y*EIc?6KvkxbL`|p$kA{`j)tX`~<3e1dDM=6Bf7O1AUdll_ z_9WGB%8C8NL4y_+I)65HpvdN$7nU3ls_3h#>tE%NZHoWxeer9`C)law#5K1-NE*J4 zV4cg@jM?MCtcfB+hTU#o?h$trv3j3=YD4&2MEJAb3f7EIG;MWU31_An^9_Q{a&w|) zh|SY)Q=@H|D?r_@gt<<=v;x-MznzE0-9Ly~THsJcpFE!4C0;N9BUkoy`T8to1Je_$ zJbL_j6oGDNlr@MqGCkR|HE%L8Y8p{M z>|1S5X*2gqnP^jHD&-)2=sAomMavg66N4kuRc{zB=FxpKx9ub8i+R zjZTo`Ei10u0b>}Jx8etbWAIT6A`n0%fKl{A}yzfl8_&)G$gX9=Cqsb`rnLsh}Fi9VJoTlO{dou!C#~fL6pl- zT8ojc8gVN~jXvQygtR@ZRwOqSa^2_R-{;<$I8PkhYMSFTRfhlSMtL*X`Tf%U7P? zgbj|=^xaD*^9X!6#8#uhlUtfq!L74k^E|%b!?yNg=^;{NI)#C)P99^xLs%~-1EcIP zCGV1NL^8o{0zI#t5IYi4oGfw=(wxUnBIHw<$fBJzy6M~&_!?2}!NobIE&=ZZH50ny zwJWr%ebMO|I@h^)64S4~`?fnf%F%hp2U1#T&sU>x)vmVvE#(c;wY61Yu}K_@x2ivH z#S_vJ`A<@EY8zz-{SW#O@JA!&6Y139*4kHz8%*j^4rAAO759FxRKTHs{dVjedi2Xc9d3#B0qejgbK>4%4vzo*+cO7k)dKc zkW8BqN@dTR#``GqF?TMm&i_Qc!pvIh>1qi7OiS6R!N@g-SM6Z6bs0b3ypXCygFG2E zj$F{BE7$L1In!7sq*Y_{#6X>)?!MR1q6`Hej<^_#IK{J!IQmD=KuTk{iP`A`i@N_H zY8^pEmZxBzoA?xDmsnX`l*U;f*e%Tq$#`2|Y#fenx%!yu@bNMoa!??{fFl(wRFEko z4>AOwYt^`Rl^5~2uF5=q`pL_arR8m=7z%10P2ote>vkO!OR%q~E}~Gm(LP1>k?slw zykrE2*Us|DS$r#^<82ezuE>t&+L@Oz3F*fLgNSaC6g>SE%kg|^LFwsC1SRSwnFmX= z)w$ZlF^FpSdls%?#X2sacge%&bxPq?m_ol6@!XR@`rLE&*3&M!V5?=|X(O1FGa`w_ z&)AIW+9No&#kF|=ak(L&_>`JPxoD(G2E!&h<&Ymss948Q3{``?Q3i6GpP{g3GLaOK zQ4M!pu806j1 z$d6CY8-$wM(X_j9(Ajlh`@za*%|q=dP^H`?u;ILO*>zRsRy;H`(PJ$oS6lYXPdR zbEX+#+xVE;`+N_Edfsx~N7FLz+j1~?OB5OPy!(~UimR#bXGXCP`p9TOBEKv;3`C76 z;9EvNE;kll!Nkm`V#hN{$W)+}{NfKrj92HTbYiu9Bxcik&}75T$rYW+Kq>u0+hyyS z&LCq_IanQayTD^mx^PU?p)qL=h);apff*cPt!^!|HTuF7d{K=^8<)tfR@i#n;%pY~ zffN34R#5bsn|bnuiG6}puHCn$AG#9$d#$zbKzpS~8K@O{1MT-bA-v7l zYqp>ljY}VBrN3(86(_MMbnbZ1|J?cRfX5c;oL4*UfjZ##;99^MD_Fs@XFIpOuW=j= zf;--WfD*#d!(1}DY$frev$+Q?`P6y{`}jiM8U%T!S@Y-Y^E0PtPE^w>VHv$pl+M~< zCo*M?q|IzxE_isgK;pKPL-8fk=iC4np%8N`s1IHI$?I6$9*p|}sx)a?&DP^R0#)-h z5>_-PM!VkFd)SUQ{VbeC{*_WbwV<-uGUt%ke*TrI)OSphM@AaP()z?gVUph(P96#- zn~T$U(U2l3Wt9P3V3Z%yJZ?n+4>F^(=6X>wkk38{*O>T+N7ZAZQn*`PY^2#pRnajn zW9YqdbG4B-`F3!Vp9L3lYn#b&Ili{!5K#~ZfBMy98#C``PJtq1q2m`E9QA)~^yZ{f zBG1H`s}~YUs?Ue|1;2F{x^0|;kDCh*0349fg;cg_JsEE2^EoNpm1Y)bN+WI@(?Yk6 zDP!>6JGWnShe}zWTAi-eGf8A_mK9>X1+G*hw-%&%8Y^KVUEdh97m(3pgLDjB!uOz_ zT-NvYzckk-T=pdm&Hp_h8@wsQy}8WI;&!dP)gJclafz=Fu}ii*WpQejXn$-g8caW9nX_(=}L@`c3>`5K6W@j99kr_R^y$0rQ zi&DOd9`PEScc@HGgVSZC>gk6iiNm5X*%?CvK$DSp7~`*Eo}+ny%g>%U(1bj_V{QOS3oU`nh*ZYeF9v+Xvw|| z{yr3y;XEp7O8poizB#vLAt7gJ=g<+%-NK5`%LDl@{He649@_xA`X3k+!4Qrrax}s= z59_t-<;U}MU@GtUpMyfW`Gj#|q9i|%RiMkjlt8F5A(S9|=R3lx+p^GY4N-_Ad5P`O z0CWipY$C?qJfUr*zoZE+7(${wBmnlw0vrE>Uh)^Hx5r@kJ_xrKhVpB4UK{kMqT z{a4a>(mvmhC|un_3V8C(k^o{Oi_C~K@PaImLGP#t07F6^QdS8`z`y@w{6VLu_Dn*- z6%m2gX~;qp)dEbRfw$@v2ALPYi<&NwEs54Z1Qq+2ALS=r7)Ob#GmS^P!sGuf-mMx_KyQ5$eBKqh;aW&3{zv%g42MhqjaKG@sjGz8w&hRy;>Kbhn zLqn`y*#EMav}*-orVF{Zafd~DG%+mbNeOg_a_^()3PQaCM~D3?(6I0iEI|0IBl14R z)~JdX{SQnex80O>+kzrKoYwl`0QMbA#u`Q$&!R^4PUm{Vl;wPzskoyD2E4VMfpA-2 ziIb0H|B^s@_{&UNqhSo;Z3t%z&1ERx2xZh_hJN(9|3I<;*CGBYPB2w*GSYx=nHge3 z`SASD^qlEz4I}-5d^)(oCZ{w(-b9whZR>GX)mGZJgd1tTp9$%b+tLEr-&RCaWKg1? ztS=Kr!in^m=CJMcq<7&F-}Chc(J3Mx*R`JQI^qcCp%7q)K#bB`c2NV|D}iV)o`kPT zf=tMdMZ$+;djd&Kv>{~^D0cghN1|a{g?8^$yd4+OFve?GLJGfy+Zss!hT8^B-^u9I2HG25oGF3#{X(xh?-)e7a|_Fn&r7r-2POpCyZ?Xpz@g+ z#(o>c?J&MsR;wq#OJhqrW0afh4hWl+@;178qVzpaT@7+f5brZPU~@h@IAF`4LzYhk zAW11+I%13Fz2%o|NBBOkzr2Q;JW~3FUe$u!nYprD`aom611vUP}q71eH=7*ByC(~7kDmCwbwJmuvzz4mvET{fm zJ3`YBPR;-nhZ&t-&>!(9hz{@%AQdmw0I|W*yr@&WdJQ!T40Zw-QOG@0R}C_FcG*o0 zWhxskz`&_RR%&K50lI`D`gOo`*%`H93UGt(4lef``mH(_ z37JmRy+}c{r3;*cAt+i>x? zzHm=uAI*PuV8esC1>4AgM#-K;w49qRa8sv7B2K`_4IhfQ2Z^gJ0P#VQtR}#e!6WY= ziSyhGOe7PtAGJgk8dM|P@mLU?qYbMxMXf2c#z|b_-n@YQ$OEUGo-i&%j*=SX*8^RJ zE|m=Y8RxNl91+FIhxgrxx;QyS<=g+m5jOk?d&uqRgM0SWqWE=$|Sc z+7Gv}vJTfv;<>hj?OXkEy68^NY^MmD7_=TJ&GcJ%Yv}2-PR)!!L(Nkti+9iexCQ8Vf@6%$8e@4XJ<- zDgERK71;49Kd06|%dT~dVDAdl(BI@nA*W!Pfi@f4-=<-=)bA;ngxaAs>#q$GUD;N5 z+-|Y#_olTt1T$9~`s(q_s}17CGQ&Id>TH6i|Y>ZgfYb(#~{htMqwWM(>)glqd9aAG_P&yA#E`A5Ob=4$b zwkv!n6kms&zueMD6xNkfwQY=qW_sLjtsFf}ebgH3JF2L9DUhIrWeA{4fGO+fd`KNB z>(KRqKqjkNT;q|MkT6I%5JC`x=RGqW_-XZk`(Wn1~W;?}1XlroiKwHSKK+Nd%q zLrOXVXhWBfh=J21GAsKWZrA2m3}fCld*5TNg|ZgIXneZK#Dhk622KWO{S-TFIlgL> zk&N$RMkiw6XxN3{)vgUaYY(#+yVKNENpS*+m|*SvhkuM12Beb<63q#NteM5wv>Vsa zHRXN#Dyqvh4Egwb<)wd=&;RVx#x%JYc$bq5uHPAJ6v8*6BzS)QCTWyzeY~^pIMS2% z^ciupR+PFHfhAWrBp^=Vu*=ZDnu?sFVL_armbnjpYNnuJ^HfFKZlZEHjeNHbgM8e9 z#cHo-s?FlV#>jfSC;6No;3B4qM;?os0U)(zOa>^8x>419&k2qoHiFww-K?8-O(>+s zTH7Z|v8I{&9KM)qvZ~{@6K|?unWIZXCRCwe4-w$T3)ggH9UmKipdTAwDRt_f{?y;* zE2Ea1D*|S)R#K%>aMx_3jVGaI2KzW_3;uDvx2^PMn%O#t*&;HSBrj zw+%FH{U$i+TMchfJlqjFY4gZDN^y#P{%@etBio5>tv&2b)add%F**@qMRudoBjp=F z)X3!dUeE#CiE`Kp#7JLVUU557@V$~xJ7|awk@*@<4=6gg^@q&h-WDZtOK&3(NylmH zeT%q&eEGI|u@~0TUL%vurWmQpMAtg%NR|RMT=Q*y?5mLLjn-L5QenrZ891obn8hl8 zbKT}yp*ig^PVMF?7LpmK=2I)%!Xxld9r1?d2qwx%A`3^&HKnRXd=c_IBPj z9vj8*rPbl(4a5cdxR{or5jFd@nY!qg{CG ziFfRh{k7@is~XuT%+e;ieoOYAeF3r&#M4`N)kN<1pq(QxVKvepHBPo$ycVCiJeAAO}W0O}Y}SyYT8$7DX_R z6M`7AdXja|rBf*{-n;v+=X*idkd?zrYTnxQY2Au&clN(%$J7c?ZxSbT-siu8mC%vM zR<%+lI2S*$@QuwiYHH}Gdm303#Mm(=ME(wd*_g@Imyo6ZgM&P16Jr9X)9vB?1Y zA0|rL_iHzbrag@T0W4l*9&-X{4_8}38Sy2px$Dc*TUng2B@$s?xX{BRM=mRx#5YYy>IP z*ZQXxW}DAr(c3RW`(e%g5l>}JOs@#G>&VR(g%PxZ;>z7WTX(bqyiys5s0ekqG%h)m zN5V00p7}Ss-gl8u2bnrEiTRVth|^X1DGq$K8(Bzc;TWTL~3|NY7oJF_>Q%ORE^F-sKYAh122Y|qAz)>|`< z?J0kfvhqbD++W_1VrKX)hjMhD<9uai_p&gSkCcGc9t9E0|6u_GjI6iivAHMO#u7&> zs&_{^Z6>8sa2`LC%(qhC>Cm_Fl$fR_#kfVDO3Gm)MYSsE-^?p1nJay<$U=F#r>2z7 zP$YnEN>8gP&0&dR82|0FvaPPc0RNmSu~fkDHZJ98(t58EUeC%rzEnG*KMVgDOWns4 z-Fi|r@za1&pWCb^dI^;}x0z3Wz3m^R*VQZ12n6fZBjwf2HMs_xDapt!i-#*utetnj z^ga>8OQ0gj$(tFp<)b9+ppX{Hadw(k*IQwZTh2(`SF#T$nk)E7q2|t zINl&7XF?E0`2|q@Do&}vdKVZfGGYF38;ZC4;P7S|()@7zwh0?8-UFFwm3E4+4+OTd z!eQ&{?zG(%aUvsW`QTc=-7$Uw7E70=oj=j|5h3zX+2Uej;mWMgX*c`2SZ16GeyUif zAq`rT^JKQ+glceH=68%$Gfh`G#F0tK#hA*oKnbDR1;}+VAN)5{kCZUL?>(ahz%?4`^_B z;6SghKMB_nZHg*f_{w@S*YUhx1yoG%Ir`I7w-V4Kfibk@-Ow`Q-d#w zKk5Eb$@k*@YY8!xq8ta@oUlRwHzx-yWx$v@uJfz{i73TpqS0x=9@dFjq%ZewAAd{h z8}mbEdCnwP8Rn9>07xZ333rm_p8>eRJg&?=$430;#gb}km=t(WT`!}nhCXw*#A z+EYu@XF_p4KDa`HY>J&2#Aykzzn<=?cQMGBH}7K*Zy08m_y4@SV(TW%xl`KW=jN8D z`oxImiO45eH|Ey;M%@{6e2xUnaPjQ@+@r!#BJPx6o>m}~6Jiu-k~+k{Ie!oo?u1|! zLDHPzl7#GL9RHhwdZZnN+N6XT%*h0m2q?67J2(g|Z~!YBhMsw^e@Q?Cm^Buy z60J+yOiw;9y=X%uR8KN7LATex3K@rO-<7&-DDNWsmL>GYd)x zk;zCc9#c&{cvfJN!0@0u{AG_z$W%S2$^<3*P*ZwGiMu@dY({@>tsN2jsm9!18e>_i zB}7M6wQ{+92WyA+xcwYfPMri?(>VZ;I7zIvV#_T&_?c?H)go{2WUOFYUu)Udy+fuO zB1;@Lkh$II#K80zstut%InlYXZezpF-kM;uop-dm_H7;?!`dP)VzA8F`U9r@Yz@9t zQi~u>qJTXOd0`l4TMn8gfh2s?pcN@r&u;_Kyy&>!VPxnfgDZe8bXdM@%F=~HE2F&p z;+Gworq=k=x>#a+C;T3nu3*MA%KQ)7FRsNQ@f{fS|5uQYLyL~L!W5DvmMLumR|@XZNJ=M`A4Y*-p_oss}CIJx`k5<5fdMVD0CD%O z#2XokbzPOLIZ~qIO4eh|8#Tr7MmshovXeH-o0ZLgM*#oBFPSe;F=;Whz%n;&a%qa$ zvM}~O`IXN@bYe%xCxT5<2LT1_2gLt=ui7t`7(OAuzCv0Mb%o|jp$Z=0_<~3Pg$M=( z0>+K!<1phDVJ1qUT)aH%L|Ss#K5T}ajp=PU?K(d0SdXM}x(y0-yQ8g@z zrZKu|t8Q+sh<92VvwFa&PQ8fW z5sgPPV7xeSbb^OOkx2`+Uu|}q0pTd@78Ja<|4;sRH`V?`XExl{a6tE0b^oka0!I@% zLXk#w;V=LEJ>EbY(oS#-2EMf?{4zGbjX?PDwbRqFtsPj`Z|p}9^OA}o_@0+0{9O@t z+`raaP=Gm3*(%VN&3W`uXcsPFtz^8$-xTEA7&OebIq*s-?n+xX9! zVMrJifbkAa@rUtF3J+68!W{JUDZ+<1X0XSZ;_@cVkI!lI}Ep zz0rbA?kI+Sg_*2aN@vs51_1N^`yKP{0&1@b-~3jmn`q8b59f_{OeYW_qRV6b4aU|} zL;0JVaGAwoI63I#@M+;h`*8KMCnd5_irlWh$3AVg{-LU990m!g&Zplf$;?r_OwRVW z4=z5LC$^O+1-@D@@!wZR490vxFoXXmk?z!$PB?;}?3g?|@?%9cAZIustH=yWf7Ay% zz15F9D0zacFXVv#+a?X*bYb+s^!IQH z{q&wFRXLWFw0=*Nq9)g}7b?kA#3`zMG__xQeB|qI4XK>$wEV4wLl-&pev5PPMWy;* zjJ;)0n_b(s4aKdvYjJlgTHM{;B~U2t?(XjHuEh%!DDKeW6nA&~0#`42?wNPy` zb-_?0INd#@G~E`c0`Bm_^d}DLZMi<<^^WOjJlN4ks#L8feJQBt+wul|)Bb?Wm+obJ z8+pDz(3cbRErtk|FBX-hirUp^ES% zg6sUXE*40(#P|dNr|1Nu@I&nmMc5Fo#1n+JA?8HRfR+WPI999bzTWQ^rxrng^Kuf+ z|KR}<=_i^lnxCXlNoS763XAi)7RaxM*drXic(YkP_gl@V(3mVTbpN!FPZHjgLtGQLZciGz8pS z`atFCC)R$&n{u_qm70xBYwDMx)${lxGU@-8GGw3?m?W%40I24BBwnaBCF8%V77ywX zEoNh`eIm~7z$z11`*%tEj{P^kpbb0xh`GQ}9MrNw2B36mob26FO zK<{8Q+x!f5{ZH|0ydagYP=m^*w!wz7=AwL~F8~ABjRBC_E*)9;`n=#Bh5!#+8Iea{WB2Q|bta(C0?i#fe>n2v3 zpDV&a!W1zFELR}x4M}pgU&qr28mMx>!_h~u$Lr`NQdWhoV!&H|z~54A;>CI^We}$& zdM#xj0G2XT081Hy%l_7?AapbLMjxSpC2|wO8vCEG9;sf&!IE9JIqg_!y)$GP;0p8x zb|i`))_6I=q+mwT`PFUU(0P4Fxv4TF%SvpIL+uW~HU6rJw%gGIwlmmtPBg&^v_HOs z+K9o2-`kC^<8@$EJwvUdN~`nr%3cnPk%VS3n=U%++}*|RkrFg!GOY3VevFx#j1Jk^ zmVRR-<~YB%w(GfyxM7y#CeK^aX`tN2PMFaNPKd`$NJ*B;KDq<;y%{Le2vV-Yo>d+d zlG|C1CSeY>hZif}ZtDHtXjC z)VQ2M!N{#XlsSJw_McZ+5^4a602g($n0!}2gU?E!UK(N|N364V;FXfLV-^Awx$MWX z>V#jb2trtZExwNq-?5dRf@#O%)JrQrQ4;2Q07a`)s=#v&9b88xh=$xnXBald3jgM}W!v zlbW~9-7|UAL-C%O_;$ zM_)D9457T+ym+@a5z{b9Rs5g}4)L*Ru=Cv%hE{rd>l1hZjd6E4AD|NIZay5h$RguE zA>AO!fdJ8AS+YE!08n7b#4#a-INT>5P~dm|4%=mM25!37q;`A6MYzUx4*EU~&LN4u zq#I)Goek($5MX_v944!DyjTHTk-zz{5=?cho6Ur{ev2V&?mHsT7!Yv~(h^V@tipsZ z`Y_#2wIJA#!4VK)=CYhnuR{-rZ|_Eklt;ujMNdA%8np5FMELn{gF;mX<(V?R6)t>A z$q8Z

;)rpJGTyaR`lfzU3Oc<_HET)dM9ougANB@zw?eFa_ekq)qkhf1hjKt*mM6uP~b z&PK(!9iOdUzTnq;!trD;Q^nAy>)x}&_-dIAbULxAmu%OGNU^qamuN!GYe=Ubz#q&0 z0J=MPGzRz4l$2C?WX%Q=XVOw0Wu1Q6I^DP%rqm>id-{%d>SvPTij1HXYJ`yti4%u1 z*=CTkuWJqkAmehvMEpOjQpBUq{v^kR8Um5=T^6B8A`25hi$B7v#s59-AKTPN%EBNS zwwrt54~+~NWYN69DPBVlF$1*FexT-_k0@VZr+Ox3+%YBePH2yBbJQ~Q>A%g!e@Yis zITTn0f5-cBU%d`T<1HMMJ-LZ+KDQP2f-R&KF}3KkY!Mn7fuX?P;X6S z@hi`a*7m-Qaq;9XrQn9Xn%)h@yrnf*P=QV28hZ!{2JZh_Y@pG{@Y(vA#ndFrmNGHZ z%O-4EcBrjtDh5V*ds&gUoXQZjvC30&1My8S`i`=e0qt?pQzInWx?|Q>7#DmmW<7>o z-YyT+o(E4-?GKjn6yXxnhJI>Bwa-Vp#9!b}5IzAdVJ@$hFy#=2|67`1ckIGrla&Q5 zO_<%&kd1sh;AKFxpqfara)h;6Z{hTCISy&XwWWX2>(@oobMLqv{vqXmTymbrfmMG<^{A*k1mhSPpkvacftAVwO~SVWbUx`JP(6VH;L=E(QdykgrAAd zzt@X^{nr)d&1t7&EQwZcs_T+@Aj|6eKKRGeLnL3wV*QQVOJ4;ReSB_FC-Tt83`ua} z2?J?7NA^W-L4C%7{!ptt8ME;r~%2jhvz z^U1GadJn3R*EqDP4KAh!QFZ!D+qBfwmoJZ9q8(6fxjZeq;K+o=uq(U_!GK!J(9q~Mq1^Wv*`1w-A|mA z>z)gVQyX=sz|>k7o*L@6_xA#${_JrV+m1761;}6T_}1ianywlhhDo1Y+1)9G-JV(A zVpvvKv6_1&%6{TN;KFM(>(T}YAqf-TUjU~4^YcnJyf&kM+Yeyo9|@KtnnM6nS?Lg! zam<70|7ORiBFf6?$;lIjR8ky~#4^`AH>jtSft-ceqIK%}1o8K85v|vCZ?}pHn@l2{ zq-Ew+HJpUrh|GgM5fw10)v86RqK%U4^On*AuET_9T7;G9PcSs)TRh zEcOUZgxq8LSIB}q4KT13cJ*vO{j7MASoCDp!xO>M{nOj}3Euh-aX}R@U;PcpTCkz{ zioWFbDZGN(zPvzYP_+_S?JvTD6-E{H5Lx1Dt-@=L%(qzy^)B(MleuQ(Fl z2lwy?xcv4%F$~%?DZ^j>`d!lvxqq`fT)qr zSf&<&=w>B5up@s_NaWtL_`go`_eKrJKCe{VQ2iZCB%YOI1pVJwqS9YcL>VKIk<7Q$OyS2>?fK(|5Juvid@ZS(f8qITR5h#HLj-HI8aspHgF|AyDJlxa{)~0x&dse zkyEiseGuenO~&Q$rmYYxGw(4)zfq05a{#YCIwp!oqVeeV1AB*Go2Dd9#m_j?@y)(7 z8c?bAF`WLwtgz(=&P8A8Nx~)Vnt=g@9OaL#BL^*ueRk=<=~$Zji2aLpxbmD){lQ$^Vl35CIucoZgg^q=)w>kGdz zt6bIf=H!xrIuo=treg;LH8O5owpk!Cec?$K_zwBt>=;rqr)Y{0p?`%*u@eD19AM{? zxLV>--Z#kRe4PH_K`~<~v`o>@#*|Y*SW)GRm7R41lAygxA!mzX9NbolhE*w->x&dY z-}9iJ?hH12!Et+;;ZGaJ_tuyxm+)7E?`;G#7^maXl%$rqmlacjkI6?a*o^amIj|pJ z*o^IWjn8a;^mC8WB#;2jT71XR)sJ&T>KK9wkI(fEqRWH5c+tWB8`e1Y%NzPj;jL$+ zXbG9ezq~faxy{I9gSe) zgSa8sWfzuSkTemCI48-L)Q7H35zz$;RK9Bpfsc|G6_jEs<1KtlLTf-NVccI^LTRCs z#cl^L=E+hDaL*QmwSnb?$WRPb0_M*QY1Ql$sj)C?SF@+ft*^zg7vV9>A?tf!6l6bK zBzgXn5$g@i8)*66s$bQXc@Wxy5iuQHj4z7m|1+B0P~X?a-N(lAz_M*QbJz0pB6w{a z`QYVj{r5cARpJ?j5!#-RIHBPEgz+bvxjddlkNz|Mso)sCnYGK@zZ!KuAopGr?eRlA z{ijanBml_mO$(TL3z&Gg#&5uL>lwST6xU+5Au zVBH`2YLoR*B?HGueH7ITm>b6`ZNg?s4huiB67{IH94V&jg?=+yz69O*X%w=(-PVJ+ z_z1cUc9G4wO|u_CK(T<0I9!O-XxnL*5uZK23^q2dxc#wNacZe7jEhl^`M0pJ@^=rC z(ueLQ#+TRrK&WjF_zQdzO-SG^u-BeJkHg7iE$GiM6p0+W4{s6lGhmAmFoHfxdk}} @@ -70,14 +96,8 @@ export const DataTierAllocationField: FunctionComponent = ({ /> {/* Data tier related warnings */} - - {phaseData.dataTierAllocationType === 'default' && !isCompatible && ( - - )} - - {phaseData.dataTierAllocationType === 'custom' && !hasNodeAttrs && ( - - )} + {renderDefaultAllocationNotice()} + {renderNodeAttributesWarning()} diff --git a/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/phases/warm_phase.tsx b/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/phases/warm_phase.tsx index 16a740b1171c9..b837eed1256c5 100644 --- a/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/phases/warm_phase.tsx +++ b/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/phases/warm_phase.tsx @@ -45,8 +45,7 @@ const i18nTexts = { ), dataTierAllocation: { description: i18n.translate('xpack.indexLifecycleMgmt.warmPhase.dataTier.description', { - defaultMessage: - 'Move warm data to nodes optimized for read-only access. Store warm data on less-expensive hardware.', + defaultMessage: 'Move data to nodes optimized for less-frequent, read-only access.', }), }, }; From 1eb229be2e09709f2bc3aee02cbf007964aa4bdf Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Wed, 30 Sep 2020 12:45:27 +0200 Subject: [PATCH 009/142] Fix warning text doesn't get displayed on filters with custom filter name (#78617) Co-authored-by: Elastic Machine --- .../__snapshots__/filter_label.test.js.snap | 18 -- .../filter_editor/lib/filter_label.test.js | 48 ------ .../filter_editor/lib/filter_label.test.tsx | 156 ++++++++++++++++++ .../filter_editor/lib/filter_label.tsx | 5 +- .../data/public/ui/filter_bar/filter_item.tsx | 10 +- .../ui/filter_bar/filter_view/index.tsx | 11 +- 6 files changed, 177 insertions(+), 71 deletions(-) delete mode 100644 src/plugins/data/public/ui/filter_bar/filter_editor/lib/__snapshots__/filter_label.test.js.snap delete mode 100644 src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.test.js create mode 100644 src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.test.tsx diff --git a/src/plugins/data/public/ui/filter_bar/filter_editor/lib/__snapshots__/filter_label.test.js.snap b/src/plugins/data/public/ui/filter_bar/filter_editor/lib/__snapshots__/filter_label.test.js.snap deleted file mode 100644 index b0bcec12ca3b7..0000000000000 --- a/src/plugins/data/public/ui/filter_bar/filter_editor/lib/__snapshots__/filter_label.test.js.snap +++ /dev/null @@ -1,18 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`alias 1`] = ` - - geo.coordinates in US - -`; - -exports[`negated alias 1`] = ` - - - NOT - - geo.coordinates in US - -`; diff --git a/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.test.js b/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.test.js deleted file mode 100644 index 55df544ad010b..0000000000000 --- a/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.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 React from 'react'; -import { FilterLabel } from './filter_label'; -import { shallow } from 'enzyme'; -import { phraseFilter } from '../../../../stubs'; - -test('alias', () => { - const filter = { - ...phraseFilter, - meta: { - ...phraseFilter.meta, - alias: 'geo.coordinates in US', - }, - }; - const component = shallow(); - expect(component).toMatchSnapshot(); -}); - -test('negated alias', () => { - const filter = { - ...phraseFilter, - meta: { - ...phraseFilter.meta, - alias: 'geo.coordinates in US', - negate: true, - }, - }; - const component = shallow(); - expect(component).toMatchSnapshot(); -}); diff --git a/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.test.tsx b/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.test.tsx new file mode 100644 index 0000000000000..59afc1606adf9 --- /dev/null +++ b/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.test.tsx @@ -0,0 +1,156 @@ +/* + * 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 { FilterLabel } from './filter_label'; +import { render, cleanup } from '@testing-library/react/pure'; +import { phraseFilter } from '../../../../stubs'; + +afterEach(cleanup); + +test('alias', () => { + const filter = { + ...phraseFilter, + meta: { + ...phraseFilter.meta, + alias: 'geo.coordinates in US', + }, + }; + const { container } = render(); + expect(container).toMatchInlineSnapshot(` +
+ + geo.coordinates in US +
+ `); +}); + +test('negated alias', () => { + const filter = { + ...phraseFilter, + meta: { + ...phraseFilter.meta, + alias: 'geo.coordinates in US', + negate: true, + }, + }; + const { container } = render(); + expect(container).toMatchInlineSnapshot(` +
+ + NOT + + geo.coordinates in US +
+ `); +}); + +test('alias with warning status', () => { + const filter = { + ...phraseFilter, + meta: { + ...phraseFilter.meta, + alias: 'geo.coordinates in US', + negate: true, + }, + }; + const { container } = render( + + ); + expect(container).toMatchInlineSnapshot(` +
+ + NOT + + geo.coordinates in US + : + + Warning + +
+ `); +}); + +test('alias with error status', () => { + const filter = { + ...phraseFilter, + meta: { + ...phraseFilter.meta, + alias: 'geo.coordinates in US', + negate: true, + }, + }; + const { container } = render( + + ); + expect(container).toMatchInlineSnapshot(` +
+ + NOT + + geo.coordinates in US + : + + Error + +
+ `); +}); + +test('warning', () => { + const { container } = render(); + expect(container).toMatchInlineSnapshot(` +
+ + machine.os + : + + Warning + +
+ `); +}); + +test('error', () => { + const { container } = render(); + expect(container).toMatchInlineSnapshot(` +
+ + machine.os + : + + Error + +
+ `); +}); diff --git a/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.tsx b/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.tsx index 070631354d8b8..3b85d0753b8c5 100644 --- a/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.tsx +++ b/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_label.tsx @@ -22,13 +22,15 @@ import { EuiTextColor } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { existsOperator, isOneOfOperator } from './filter_operators'; import { Filter, FILTERS } from '../../../../../common'; +import type { FilterLabelStatus } from '../../filter_item'; interface Props { filter: Filter; valueLabel?: string; + filterLabelStatus?: FilterLabelStatus; } -export function FilterLabel({ filter, valueLabel }: Props) { +export function FilterLabel({ filter, valueLabel, filterLabelStatus }: Props) { const prefixText = filter.meta.negate ? ` ${i18n.translate('data.filter.filterBar.negatedFilterPrefix', { defaultMessage: 'NOT ', @@ -50,6 +52,7 @@ export function FilterLabel({ filter, valueLabel }: Props) { {prefix} {filter.meta.alias} + {filterLabelStatus && <>: {getValue(valueLabel)}} ); } diff --git a/src/plugins/data/public/ui/filter_bar/filter_item.tsx b/src/plugins/data/public/ui/filter_bar/filter_item.tsx index 078fc8c9e1a8f..cbff20115f8ea 100644 --- a/src/plugins/data/public/ui/filter_bar/filter_item.tsx +++ b/src/plugins/data/public/ui/filter_bar/filter_item.tsx @@ -49,7 +49,7 @@ interface Props { interface LabelOptions { title: string; - status: string; + status: FilterLabelStatus; message?: string; } @@ -57,6 +57,11 @@ const FILTER_ITEM_OK = ''; const FILTER_ITEM_WARNING = 'warn'; const FILTER_ITEM_ERROR = 'error'; +export type FilterLabelStatus = + | typeof FILTER_ITEM_OK + | typeof FILTER_ITEM_WARNING + | typeof FILTER_ITEM_ERROR; + export function FilterItem(props: Props) { const [isPopoverOpen, setIsPopoverOpen] = useState(false); const [indexPatternExists, setIndexPatternExists] = useState(undefined); @@ -260,7 +265,7 @@ export function FilterItem(props: Props) { } function getValueLabel(): LabelOptions { - const label = { + const label: LabelOptions = { title: '', message: '', status: FILTER_ITEM_OK, @@ -326,6 +331,7 @@ export function FilterItem(props: Props) { props.onRemove()} diff --git a/src/plugins/data/public/ui/filter_bar/filter_view/index.tsx b/src/plugins/data/public/ui/filter_bar/filter_view/index.tsx index f9328875cc910..3f9cbce06b315 100644 --- a/src/plugins/data/public/ui/filter_bar/filter_view/index.tsx +++ b/src/plugins/data/public/ui/filter_bar/filter_view/index.tsx @@ -22,10 +22,12 @@ import { i18n } from '@kbn/i18n'; import React, { FC } from 'react'; import { FilterLabel } from '../filter_editor/lib/filter_label'; import { Filter, isFilterPinned } from '../../../../common'; +import type { FilterLabelStatus } from '../filter_item'; interface Props { filter: Filter; valueLabel: string; + filterLabelStatus: FilterLabelStatus; errorMessage?: string; [propName: string]: any; } @@ -36,6 +38,7 @@ export const FilterView: FC = ({ onClick, valueLabel, errorMessage, + filterLabelStatus, ...rest }: Props) => { const [ref, innerText] = useInnerText(); @@ -65,7 +68,7 @@ export const FilterView: FC = ({ iconType="cross" iconSide="right" closeButtonProps={{ - // Removing tab focus on close button because the same option can be optained through the context menu + // Removing tab focus on close button because the same option can be obtained through the context menu // Also, we may want to add a `DEL` keyboard press functionality tabIndex: -1, }} @@ -80,7 +83,11 @@ export const FilterView: FC = ({ {...rest} > - + ); From b6525cd3b30974bdba8d11362c37acef4ca1eb53 Mon Sep 17 00:00:00 2001 From: Alexey Antonov Date: Wed, 30 Sep 2020 14:52:44 +0300 Subject: [PATCH 010/142] update vega version (#78390) --- package.json | 8 +- .../vega_visualization.test.js.snap | 8 +- yarn.lock | 758 ++++++++++-------- 3 files changed, 418 insertions(+), 356 deletions(-) diff --git a/package.json b/package.json index 3e26ba566f1b3..6122c1090671f 100644 --- a/package.json +++ b/package.json @@ -478,10 +478,10 @@ "tree-kill": "^1.2.2", "typescript": "4.0.2", "ui-select": "0.19.8", - "vega": "^5.13.0", - "vega-lite": "^4.13.1", - "vega-schema-url-parser": "^1.1.0", - "vega-tooltip": "^0.12.0", + "vega": "^5.16.1", + "vega-lite": "^4.16.8", + "vega-schema-url-parser": "^2.1.0", + "vega-tooltip": "^0.24.2", "vinyl-fs": "^3.0.3", "xml2js": "^0.4.22", "xmlbuilder": "13.0.2", diff --git a/src/plugins/vis_type_vega/public/__snapshots__/vega_visualization.test.js.snap b/src/plugins/vis_type_vega/public/__snapshots__/vega_visualization.test.js.snap index 639559dff3091..0d38d9775a4cd 100644 --- a/src/plugins/vis_type_vega/public/__snapshots__/vega_visualization.test.js.snap +++ b/src/plugins/vis_type_vega/public/__snapshots__/vega_visualization.test.js.snap @@ -1,9 +1,9 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`VegaVisualizations VegaVisualization - basics should show vega blank rectangle on top of a map (vegamap) 1`] = `"
"`; +exports[`VegaVisualizations VegaVisualization - basics should show vega blank rectangle on top of a map (vegamap) 1`] = `"
"`; -exports[`VegaVisualizations VegaVisualization - basics should show vega graph (may fail in dev env) 1`] = `"
"`; +exports[`VegaVisualizations VegaVisualization - basics should show vega graph (may fail in dev env) 1`] = `"
"`; -exports[`VegaVisualizations VegaVisualization - basics should show vegalite graph and update on resize (may fail in dev env) 1`] = `"
"`; +exports[`VegaVisualizations VegaVisualization - basics should show vegalite graph and update on resize (may fail in dev env) 1`] = `"
"`; -exports[`VegaVisualizations VegaVisualization - basics should show vegalite graph and update on resize (may fail in dev env) 2`] = `"
"`; +exports[`VegaVisualizations VegaVisualization - basics should show vegalite graph and update on resize (may fail in dev env) 2`] = `"
"`; diff --git a/yarn.lock b/yarn.lock index 03f1471a132df..c84e43942e3cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3883,10 +3883,10 @@ resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.9.tgz#d868b6febb02666330410fe7f58f3c4b8258be7b" integrity sha512-MNl+rT5UmZeilaPxAVs6YaPC2m6aA8rofviZbhbxpPpl61uKodfdQVsBtgJGTqGizEf02oW3tsVe7FYB8kK14A== -"@types/clone@~0.1.30": - version "0.1.30" - resolved "https://registry.yarnpkg.com/@types/clone/-/clone-0.1.30.tgz#e7365648c1b42136a59c7d5040637b3b5c83b614" - integrity sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ= +"@types/clone@~2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/clone/-/clone-2.1.0.tgz#cb888a3fe5319275b566ae3a9bc606e310c533d4" + integrity sha512-d/aS/lPOnUSruPhgNtT8jW39fHRVTLQy9sodysP1kkG8EdAtdZu1vt8NJaYA8w/6Z9j8izkAsx1A/yJhcYR1CA== "@types/cmd-shim@^2.0.0": version "2.0.0" @@ -10585,10 +10585,10 @@ d3-array@1, d3-array@1.2.4, d3-array@^1.1.1, d3-array@^1.2.0, d3-array@^1.2.4: resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== -"d3-array@1.2.0 - 2", d3-array@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.4.0.tgz#87f8b9ad11088769c82b5ea846bcb1cc9393f242" - integrity sha512-KQ41bAF2BMakf/HdKT865ALd4cgND6VcIztVQZUTt0+BH3RWy6ZYnHghVXf6NFjt2ritLr8H1T8LreAAlfiNcw== +"d3-array@1 - 2", d3-array@>=2.5, d3-array@^2.3.0, d3-array@^2.7.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.8.0.tgz#f76e10ad47f1f4f75f33db5fc322eb9ffde5ef23" + integrity sha512-6V272gsOeg7+9pTW1jSYOR1QE37g95I3my1hBmY+vOUNHRrk9yt4OTz/gK7PMkVAVDrYYq4mq3grTiZ8iJdNIw== d3-cloud@1.2.5: version "1.2.5" @@ -10602,11 +10602,16 @@ d3-collection@1, d3-collection@^1.0.3, d3-collection@^1.0.7: resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== -d3-color@1, d3-color@^1.0.3, d3-color@^1.4.0, d3-color@^1.4.1: +d3-color@1, d3-color@^1.0.3, d3-color@^1.4.0: version "1.4.1" resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== +"d3-color@1 - 2", d3-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e" + integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ== + d3-contour@^1.1.0: version "1.3.2" resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3" @@ -10614,7 +10619,7 @@ d3-contour@^1.1.0: dependencies: d3-array "^1.1.1" -d3-delaunay@^5.2.1: +d3-delaunay@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-5.3.0.tgz#b47f05c38f854a4e7b3cea80e0bb12e57398772d" integrity sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w== @@ -10626,10 +10631,15 @@ d3-dispatch@1, d3-dispatch@^1.0.3: resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== -d3-dsv@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c" - integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g== +"d3-dispatch@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-2.0.0.tgz#8a18e16f76dd3fcaef42163c97b926aa9b55e7cf" + integrity sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA== + +d3-dsv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-2.0.0.tgz#b37b194b6df42da513a120d913ad1be22b5fe7c5" + integrity sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w== dependencies: commander "2" iconv-lite "0.4" @@ -10640,58 +10650,87 @@ d3-ease@1: resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.6.tgz#ebdb6da22dfac0a22222f2d4da06f66c416a0ec0" integrity sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ== -d3-force@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-2.0.1.tgz#31750eee8c43535301d571195bf9683beda534e2" - integrity sha512-zh73/N6+MElRojiUG7vmn+3vltaKon7iD5vB/7r9nUaBeftXMzRo5IWEG63DLBCto4/8vr9i3m9lwr1OTJNiCg== +d3-force@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-2.1.1.tgz#f20ccbf1e6c9e80add1926f09b51f686a8bc0937" + integrity sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew== dependencies: - d3-dispatch "1" - d3-quadtree "1" - d3-timer "1" + d3-dispatch "1 - 2" + d3-quadtree "1 - 2" + d3-timer "1 - 2" -d3-format@1, d3-format@^1.2.0, d3-format@^1.4.4: +d3-format@1, d3-format@^1.2.0: version "1.4.4" resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.4.tgz#356925f28d0fd7c7983bfad593726fce46844030" integrity sha512-TWks25e7t8/cqctxCmxpUuzZN11QxIA7YrMbram94zMQ0PXjE4LVIMe/f6a4+xxL8HQ3OsAFULOINQi1pE62Aw== -d3-geo-projection@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz#826db62f748e8ecd67cd00aced4c26a236ec030c" - integrity sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ== +"d3-format@1 - 2", d3-format@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767" + integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA== + +d3-geo-projection@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz#45ad8ce756cdbfa8340b11b2988644d8e1fa42e4" + integrity sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA== dependencies: commander "2" - d3-array "1" - d3-geo "^1.12.0" + d3-array "1 - 2" + d3-geo "1.12.0 - 2" resolve "^1.1.10" -d3-geo@^1.12.0, d3-geo@^1.12.1, d3-geo@^1.6.4: +"d3-geo@1.12.0 - 2", d3-geo@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-2.0.1.tgz#2437fdfed3fe3aba2812bd8f30609cac83a7ee39" + integrity sha512-M6yzGbFRfxzNrVhxDJXzJqSLQ90q1cCyb3EWFZ1LF4eWOBYxFypw7I/NFVBNXKNqxv1bqLathhYvdJ6DC+th3A== + dependencies: + d3-array ">=2.5" + +d3-geo@^1.6.4: version "1.12.1" resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f" integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg== dependencies: d3-array "1" -d3-hierarchy@^1.1.4, d3-hierarchy@^1.1.9: +d3-hierarchy@^1.1.4: version "1.1.9" resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== -d3-interpolate@1, d3-interpolate@^1.1.4, d3-interpolate@^1.2.0, d3-interpolate@^1.4.0: +d3-hierarchy@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz#dab88a58ca3e7a1bc6cab390e89667fcc6d20218" + integrity sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw== + +d3-interpolate@1, d3-interpolate@^1.1.4: version "1.4.0" resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== dependencies: d3-color "1" -d3-path@1, d3-path@^1.0.9: +"d3-interpolate@1.2.0 - 2", d3-interpolate@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163" + integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ== + dependencies: + d3-color "1 - 2" + +d3-path@1: version "1.0.9" resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== -d3-quadtree@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135" - integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA== +"d3-path@1 - 2", d3-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-2.0.0.tgz#55d86ac131a0548adae241eebfb56b4582dd09d8" + integrity sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA== + +"d3-quadtree@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-2.0.0.tgz#edbad045cef88701f6fee3aee8e93fb332d30f9d" + integrity sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw== d3-sankey@^0.7.1: version "0.7.1" @@ -10715,46 +10754,70 @@ d3-scale@1.0.7, d3-scale@^1.0.5, d3-scale@^1.0.7: d3-time "1" d3-time-format "2" -d3-scale@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.2.1.tgz#da1684adce7261b4bc7a76fe193d887f0e909e69" - integrity sha512-huz5byJO/6MPpz6Q8d4lg7GgSpTjIZW/l+1MQkzKfu2u8P6hjaXaStOpmyrD6ymKoW87d2QVFCKvSjLwjzx/rA== +d3-scale@^3.2.2: + version "3.2.3" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.2.3.tgz#be380f57f1f61d4ff2e6cbb65a40593a51649cfd" + integrity sha512-8E37oWEmEzj57bHcnjPVOBS3n4jqakOeuv1EDdQSiSrYnMCBdMd3nc4HtKk7uia8DUHcY/CGuJ42xxgtEYrX0g== dependencies: - d3-array "1.2.0 - 2" - d3-format "1" - d3-interpolate "^1.2.0" - d3-time "1" - d3-time-format "2" + d3-array "^2.3.0" + d3-format "1 - 2" + d3-interpolate "1.2.0 - 2" + d3-time "1 - 2" + d3-time-format "2 - 3" d3-selection@^1.0.2, d3-selection@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.1.tgz#98eedbbe085fbda5bafa2f9e3f3a2f4d7d622a98" integrity sha512-BTIbRjv/m5rcVTfBs4AMBLKs4x8XaaLkwm28KWu9S2vKNqXkXt2AH2Qf0sdPZHjFxcWg/YL53zcqAz+3g4/7PA== -d3-shape@^1.1.0, d3-shape@^1.2.0, d3-shape@^1.3.4, d3-shape@^1.3.7: +d3-shape@^1.1.0, d3-shape@^1.2.0, d3-shape@^1.3.4: version "1.3.7" resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== dependencies: d3-path "1" -d3-time-format@2, d3-time-format@^2.2.3: +d3-shape@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-2.0.0.tgz#2331b62fa784a2a1daac47a7233cfd69301381fd" + integrity sha512-djpGlA779ua+rImicYyyjnOjeubyhql1Jyn1HK0bTyawuH76UQRWXd+pftr67H6Fa8hSwetkgb/0id3agKWykw== + dependencies: + d3-path "1 - 2" + +d3-time-format@2: version "2.2.3" resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.2.3.tgz#0c9a12ee28342b2037e5ea1cf0b9eb4dd75f29cb" integrity sha512-RAHNnD8+XvC4Zc4d2A56Uw0yJoM7bsvOlJR33bclxq399Rak/b9bhvu/InjxdWhPtkgU53JJcleJTGkNRnN6IA== dependencies: d3-time "1" -d3-time@1, d3-time@^1.1.0: +"d3-time-format@2 - 3", d3-time-format@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-3.0.0.tgz#df8056c83659e01f20ac5da5fdeae7c08d5f1bb6" + integrity sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag== + dependencies: + d3-time "1 - 2" + +d3-time@1: version "1.1.0" resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== -d3-timer@1, d3-timer@^1.0.10: +"d3-time@1 - 2", d3-time@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.0.0.tgz#ad7c127d17c67bd57a4c61f3eaecb81108b1e0ab" + integrity sha512-2mvhstTFcMvwStWd9Tj3e6CEqtOivtD8AUiHT8ido/xmzrI9ijrUUihZ6nHuf/vsScRBonagOdj0Vv+SEL5G3Q== + +d3-timer@1: version "1.0.10" resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== +"d3-timer@1 - 2", d3-timer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-2.0.0.tgz#055edb1d170cfe31ab2da8968deee940b56623e6" + integrity sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA== + d3-transition@^1.0.1: version "1.3.2" resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" @@ -13331,7 +13394,7 @@ fancy-log@^1.3.2: color-support "^1.1.3" time-stamp "^1.0.0" -fast-deep-equal@^3.1.1, fast-deep-equal@~3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@~3.1.3: version "3.1.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== @@ -29153,11 +29216,16 @@ tslib@^1, tslib@^1.0.0, tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== -tslib@^2.0.0, tslib@~2.0.0: +tslib@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.0.tgz#18d13fc2dce04051e20f074cc8387fd8089ce4f3" integrity sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g== +tslib@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e" + integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ== + tsutils@^3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" @@ -30153,339 +30221,350 @@ vary@^1, vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -vega-canvas@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/vega-canvas/-/vega-canvas-1.2.2.tgz#f31aae9ac1e1ed01bb7817a1e53099279e2d3d43" - integrity sha512-39h8/fZp4kDwSeDGIEoyEiIgtP3mgY3D08InD1Ldm0FntePpSe1tXzC1zcvoLe/+f7Qprl6Jfwux/ksOXvpj2w== +vega-canvas@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/vega-canvas/-/vega-canvas-1.2.5.tgz#c332bad588893391b583fbeb0c95e1143127f797" + integrity sha512-6+jFEd6s7G088npH0+YuN1JTRxMYsjb1uXbwqcJ8zSP7gFR4f3tg/yA/BHU0+JbvLnxnScr61HYpDXAQ59YW3w== -vega-crossfilter@~4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/vega-crossfilter/-/vega-crossfilter-4.0.2.tgz#739a26eb8eb741b3e1725679d09ee2af56f983b5" - integrity sha512-wlKpqBEUpDd/Y3aaC1u91lebXR+sS7LElYv2jGDDG5pA+RS8lRo3NmSClKVBM5NcY80IeMywG+0a/ogzVeBrPQ== +vega-crossfilter@~4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz#cf6a5fca60821928f976b32f22cf66cfd9cbeeae" + integrity sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg== dependencies: - d3-array "^2.4.0" - vega-dataflow "^5.5.1" - vega-util "^1.13.2" + d3-array "^2.7.1" + vega-dataflow "^5.7.3" + vega-util "^1.15.2" -vega-dataflow@^5.5.1, vega-dataflow@^5.6.0, vega-dataflow@^5.7.0, vega-dataflow@~5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/vega-dataflow/-/vega-dataflow-5.7.0.tgz#811381d946e044cafe093c7c7f8111d366cfbc11" - integrity sha512-W8Q6NBCmk3TCDjTiy/I2PA4JTQljqp3XF6227CiCvZfhmCZCeHchuZKrgwJUBVZ2CoqT+UL2JpCi1SFzrPObIQ== +vega-dataflow@^5.7.3, vega-dataflow@~5.7.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/vega-dataflow/-/vega-dataflow-5.7.3.tgz#66ca06a61f72a210b0732e3b6cc1eec5117197f7" + integrity sha512-2ipzKgQUmbSXcQBH+9XF0BYbXyZrHvjlbJ8ifyRWYQk78w8kMvE6wy/rcdXYK6iVZ6aAbEDDT7jTI+rFt3tGLA== dependencies: - vega-format "^1.0.0" - vega-loader "^4.3.0" - vega-util "^1.14.0" + vega-format "^1.0.4" + vega-loader "^4.3.2" + vega-util "^1.15.2" -vega-encode@~4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/vega-encode/-/vega-encode-4.8.0.tgz#948f3302892360cffc7a76d2107295c421835d12" - integrity sha512-1OYYblMu9oyhuRIiFRK+R7/ChwXn3ckWyl6omK5Q46vkeLZhafBNb8ZdqftPoM/5BnZUTpia0SQ06AGX8VDjHw== +vega-encode@~4.8.3: + version "4.8.3" + resolved "https://registry.yarnpkg.com/vega-encode/-/vega-encode-4.8.3.tgz#b3048fb39845d72f18d8dc302ad697f826e0ff83" + integrity sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg== dependencies: - d3-array "^2.4.0" - d3-interpolate "^1.4.0" - vega-dataflow "^5.7.0" - vega-scale "^7.0.0" - vega-util "^1.14.0" + d3-array "^2.7.1" + d3-interpolate "^2.0.1" + vega-dataflow "^5.7.3" + vega-scale "^7.0.3" + vega-util "^1.15.2" -vega-event-selector@^2.0.3, vega-event-selector@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/vega-event-selector/-/vega-event-selector-2.0.3.tgz#760c61af7ab5c325d3274fd3ab284d067ff16f8c" - integrity sha512-rUnAvBSy5tkk+0MELY7qICTgjMNjH/DDNIH603q3GRi+bBRCd4MlJxWrPYBhwZIYpmr6XCe130lZ90/F5SgVfA== +vega-event-selector@^2.0.6, vega-event-selector@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/vega-event-selector/-/vega-event-selector-2.0.6.tgz#6beb00e066b78371dde1a0f40cb5e0bbaecfd8bc" + integrity sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew== -vega-expression@^2.6.4, vega-expression@^2.6.5, vega-expression@~2.6.5: - version "2.6.5" - resolved "https://registry.yarnpkg.com/vega-expression/-/vega-expression-2.6.5.tgz#7bda7524b9223cbbf9034071695c7c2a9bd81971" - integrity sha512-3hJts0gKomu3ePXYeIb+VAw7yNKoHJ6VqSKsHHFPyoEGNdwmlgI5d9IBblelPCiMCHK4sMt7h1OTWB33cfxZGA== +vega-expression@^3.0.0, vega-expression@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/vega-expression/-/vega-expression-3.0.0.tgz#39179d010b34c57513162bf1ab5a7bff4b31be91" + integrity sha512-/ObjIOK94MB+ziTuh8HZt2eWlKUPT/piRJLal5tx5QL1sQbfRi++7lHKTaKMLXLqc4Xqp9/DewE3PqQ6tYzaUA== dependencies: - vega-util "^1.14.0" + vega-util "^1.15.2" -vega-force@~4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/vega-force/-/vega-force-4.0.4.tgz#b73cba2e169cc248c994c9d981c374eb06aff764" - integrity sha512-ETTezb3lpQIbrk8pdmv4WpoNlChWdIK1Hv5CHL8Q/oOT/lIop/NHnI+JZO4yuzaYv+o3UqNWPcjiY0U5/i51dw== +vega-force@~4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/vega-force/-/vega-force-4.0.7.tgz#6dc39ecb7889d9102661244d62fbc8d8714162ee" + integrity sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA== dependencies: - d3-force "^2.0.1" - vega-dataflow "^5.5.1" - vega-util "^1.13.2" + d3-force "^2.1.1" + vega-dataflow "^5.7.3" + vega-util "^1.15.2" -vega-format@^1.0.0, vega-format@^1.0.1, vega-format@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/vega-format/-/vega-format-1.0.1.tgz#94b5be9eb3d6a8b315fcf3d523ed6a1bb2ea4d71" - integrity sha512-f9IZ+SDHVFFneDDc+d8RfeJhXXvUgquAuM+1MZ2Rjf4xqpg+E8FSNQkh8wjeo82mc6G3KVa9hynSdfN/a0AktQ== +vega-format@^1.0.4, vega-format@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vega-format/-/vega-format-1.0.4.tgz#40c0c252d11128738b845ee73d8173f8064d6626" + integrity sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A== dependencies: - d3-array "^2.4.0" - d3-format "^1.4.4" - d3-time-format "^2.2.3" - vega-time "^2.0.0" - vega-util "^1.14.0" + d3-array "^2.7.1" + d3-format "^2.0.0" + d3-time-format "^3.0.0" + vega-time "^2.0.3" + vega-util "^1.15.2" -vega-functions@^5.7.0, vega-functions@^5.7.1, vega-functions@~5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/vega-functions/-/vega-functions-5.7.1.tgz#4231f013c7a8a6cdcefaa6ee08c96f361c0c9ef5" - integrity sha512-PQUcRkLAJwiRK+Y2o8MZdHJOHZwGcIYKvnYZnes2IY5433lhKYL7b1DmwQhUqyHyKCudqlz/pRnoLpmuL8sAgg== - dependencies: - d3-array "^2.4.0" - d3-color "^1.4.1" - d3-geo "^1.12.1" - vega-dataflow "^5.7.0" - vega-expression "^2.6.5" - vega-scale "^7.0.0" - vega-scenegraph "^4.8.0" - vega-selections "^5.1.1" - vega-statistics "^1.7.5" - vega-time "^2.0.1" - vega-util "^1.14.0" - -vega-geo@~4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/vega-geo/-/vega-geo-4.3.4.tgz#1bd26e438a304ff2596d51f57acee0e119e81313" - integrity sha512-sfMK1XGCLzMnfmy7fBJ2D+h8NG5WDwnSiPvcsjgwwAyonlUgCZWKdrNouAyLaRODy5ICZUEj/GDILSBdlIfUCg== - dependencies: - d3-array "^2.4.0" - d3-color "^1.4.1" - d3-geo "^1.12.1" - vega-canvas "^1.2.2" - vega-dataflow "^5.6.0" - vega-projection "^1.4.2" - vega-statistics "^1.7.5" - vega-util "^1.14.0" - -vega-hierarchy@~4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/vega-hierarchy/-/vega-hierarchy-4.0.6.tgz#e286e917e47f1d4d9bfefa278cfdfa163d9f1225" - integrity sha512-v71NQzz9503aBJgRPnrBEZ/87q58EjwylmAs3uh+SaI5ocMCn9+goE+x5ZwZ0gNT9qJv4Umm5L3GZ9h8LuXjlg== +vega-functions@^5.8.0, vega-functions@~5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/vega-functions/-/vega-functions-5.8.0.tgz#48e02b0e5b14261cd445bda3c4721a18b02c810c" + integrity sha512-xaUqWZHEX+EuJuKfN0Biux3rrCHDEHmMbW7LHYyyEqguR0i6+zhtOSUEWmYqDfzB/+BlIwCk5Vif6q6/mzJxbQ== + dependencies: + d3-array "^2.7.1" + d3-color "^2.0.0" + d3-geo "^2.0.1" + vega-dataflow "^5.7.3" + vega-expression "^3.0.0" + vega-scale "^7.1.1" + vega-scenegraph "^4.9.2" + vega-selections "^5.1.4" + vega-statistics "^1.7.9" + vega-time "^2.0.4" + vega-util "^1.15.2" + +vega-geo@~4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/vega-geo/-/vega-geo-4.3.7.tgz#4220137458a17d422fa15705f24905ba2595ca40" + integrity sha512-5HC1D9Z/WYuM1Gmlk8PxuRKgeN8snNWsfKO4E9PTmR7wo7tuU/2SGlRoE27aTsgwMMpBIrpRbSgKtgh5l/fMUQ== + dependencies: + d3-array "^2.7.1" + d3-color "^2.0.0" + d3-geo "^2.0.1" + vega-canvas "^1.2.5" + vega-dataflow "^5.7.3" + vega-projection "^1.4.5" + vega-statistics "^1.7.9" + vega-util "^1.15.2" + +vega-hierarchy@~4.0.9: + version "4.0.9" + resolved "https://registry.yarnpkg.com/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz#4b4bafbc181a14a280ecdbee8874c0db7e369f47" + integrity sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug== dependencies: - d3-hierarchy "^1.1.9" - vega-dataflow "^5.5.1" - vega-util "^1.13.2" + d3-hierarchy "^2.0.0" + vega-dataflow "^5.7.3" + vega-util "^1.15.2" -vega-lite@^4.13.1: - version "4.13.1" - resolved "https://registry.yarnpkg.com/vega-lite/-/vega-lite-4.13.1.tgz#e9ee31c76cb93565e287a760700e432e57244064" - integrity sha512-OHZSSqVLuikoZ3idz3jIRk0UCKtVU2Lq5gaD6cLNTnJjNetoHKKdfZ023LVj4+Y9yWPz5meb+EJUsfBAGfF4Vw== +vega-label@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vega-label/-/vega-label-1.0.0.tgz#c3bea3a608a62217ca554ecc0f7fe0395d81bd1b" + integrity sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ== + dependencies: + vega-canvas "^1.2.5" + vega-dataflow "^5.7.3" + vega-scenegraph "^4.9.2" + vega-util "^1.15.2" + +vega-lite@^4.16.8: + version "4.16.8" + resolved "https://registry.yarnpkg.com/vega-lite/-/vega-lite-4.16.8.tgz#23a91f9b87a97c7ffc6d754d0ec8f6a3b04d6976" + integrity sha512-WB9OOHbFyIaLvx5k9m8XGEaB2p0sTC9Srtsm9ETQ6EoOksdLQtVesxCalgT+cGaUVtHAiqBNmLh/nQGxZXml7w== dependencies: - "@types/clone" "~0.1.30" + "@types/clone" "~2.1.0" "@types/fast-json-stable-stringify" "^2.0.0" array-flat-polyfill "^1.0.1" clone "~2.1.2" - fast-deep-equal "~3.1.1" + fast-deep-equal "~3.1.3" fast-json-stable-stringify "~2.1.0" json-stringify-pretty-compact "~2.0.0" - tslib "~2.0.0" - vega-event-selector "~2.0.3" - vega-expression "~2.6.5" - vega-util "~1.14.0" - yargs "~15.3.1" - -vega-loader@^4.3.0, vega-loader@~4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/vega-loader/-/vega-loader-4.3.0.tgz#f32d70e2dd57d753e4160aae2e1f48c20e0d00e5" - integrity sha512-XrwwJ1xWnsVS2N2M4vdvzieUdXWegdD31t04sCPQ5C3US58NYlq1ho1Md+5FVrtl0uCd0wG/mk700Jp7yPhN+w== - dependencies: - d3-dsv "^1.2.0" - node-fetch "^2.6.0" + tslib "~2.0.1" + vega-event-selector "~2.0.6" + vega-expression "~3.0.0" + vega-util "~1.15.3" + yargs "~16.0.3" + +vega-loader@^4.3.2, vega-loader@^4.3.3, vega-loader@~4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/vega-loader/-/vega-loader-4.3.3.tgz#1432dabae4dd7ab344f84c5ae6e250234e9c1005" + integrity sha512-ZcAMi6C7yfbA3gpxDnFe3PvsP/jcDwUjgPIpZ2IYsaQS+JijZAj5g3i4mpQCao0Atc+C/g7htg0Ir3twFLPjkQ== + dependencies: + d3-dsv "^2.0.0" + node-fetch "^2.6.1" topojson-client "^3.1.0" - vega-format "^1.0.0" - vega-util "^1.14.0" - -vega-parser@~6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/vega-parser/-/vega-parser-6.0.2.tgz#c76dfd13a38abedacb07658fe75fd0c05a509a1c" - integrity sha512-3337WvsUuuYZ0+H7ew4uZFgn82QWoaWv/9uinlMOH7ncnu8qTuWt4nV3WoUX9RFqie38qIMw/mf6+HK5gfXBoQ== - dependencies: - vega-dataflow "^5.6.0" - vega-event-selector "^2.0.3" - vega-functions "^5.7.0" - vega-scale "^7.0.0" - vega-util "^1.14.0" + vega-format "^1.0.4" + vega-util "^1.15.2" -vega-projection@^1.4.2, vega-projection@~1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/vega-projection/-/vega-projection-1.4.2.tgz#2e5edfffac54e8ba8ab56fba29f174dab0bc98d1" - integrity sha512-eULwc/8TMVjFkGtIVF5IGpJzEksnS0ccbaaCH9QjHtQTyBaR2CA679r5/98x6ur7ZLaYgcm2o082kjReUoyncA== - dependencies: - d3-geo "^1.12.1" - d3-geo-projection "^2.9.0" - -vega-regression@~1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/vega-regression/-/vega-regression-1.0.6.tgz#0081a91328e933c826813c06afe7041915532d4f" - integrity sha512-s4kjsKp23WvDJDHkpIrGNUaLI3/95k6nTURj9RDtM4C6CbUgO2snIaEfki4JfOCnBYtvotwDuZgXKmJInu9hVw== +vega-parser@~6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/vega-parser/-/vega-parser-6.1.0.tgz#485fb6fcd79d14b09efee340e2b55fb510e57e20" + integrity sha512-u14bHXV8vtcuMIJkMNoDAJ4Xu3lwKIkep+YEkPumWvlwl3fClWy26EAcwTneeM3rXu2F6ZJI6W3ddu/If8u13w== dependencies: - d3-array "^2.4.0" - vega-dataflow "^5.5.1" - vega-statistics "^1.7.4" - vega-util "^1.13.2" + vega-dataflow "^5.7.3" + vega-event-selector "^2.0.6" + vega-functions "^5.8.0" + vega-scale "^7.1.1" + vega-util "^1.15.2" -vega-runtime@^6.1.0, vega-runtime@~6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/vega-runtime/-/vega-runtime-6.1.0.tgz#7b3016e616bcea779f971e242065b03e8d3ea6b5" - integrity sha512-wKzymOtUsselAIJZbiC/88zVgeuhB1lHZTdPN7IrB2o1qgxF50DdDa7eNUpKrkFJ2DK6gCJ8JlqLtM3QVr3iXQ== +vega-projection@^1.4.5, vega-projection@~1.4.5: + version "1.4.5" + resolved "https://registry.yarnpkg.com/vega-projection/-/vega-projection-1.4.5.tgz#020cb646b4eaae535359da25f4f48eef8d324af2" + integrity sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag== dependencies: - vega-dataflow "^5.7.0" - vega-util "^1.14.0" + d3-geo "^2.0.1" + d3-geo-projection "^3.0.0" -vega-scale@^7.0.0, vega-scale@~7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/vega-scale/-/vega-scale-7.0.0.tgz#0101802c6da29e2e903887160a269d57d6da479e" - integrity sha512-3oQAQYLRk+PIs6aF6kdb7tbhm5IpxNiwdFVM9fNS+SSsii6v8kFC681EuUMqLVZOHELiklWIE1rZIHaB5dNRXg== +vega-regression@~1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/vega-regression/-/vega-regression-1.0.9.tgz#f33da47fe457e03ad134782c11414bcef7b1da82" + integrity sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA== dependencies: - d3-array "^2.4.0" - d3-interpolate "^1.4.0" - d3-scale "^3.2.1" - vega-time "^2.0.0" - vega-util "^1.14.0" + d3-array "^2.7.1" + vega-dataflow "^5.7.3" + vega-statistics "^1.7.9" + vega-util "^1.15.2" -vega-scenegraph@^4.8.0, vega-scenegraph@^4.8.3, vega-scenegraph@~4.8.3: - version "4.8.3" - resolved "https://registry.yarnpkg.com/vega-scenegraph/-/vega-scenegraph-4.8.3.tgz#11b557019175ec5ddc258c3a5eb7371e64cec5e1" - integrity sha512-2GznqXm/py7/XX9juohFbLYQTKxHY5VNRZLHc0bL35Nd7lShKeOlHY9uVkHw2FoLLCz78UcXFminWM8lddvGxw== +vega-runtime@^6.1.3, vega-runtime@~6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/vega-runtime/-/vega-runtime-6.1.3.tgz#01e18246f7a80cee034a96017ac30113b92c4034" + integrity sha512-gE+sO2IfxMUpV0RkFeQVnHdmPy3K7LjHakISZgUGsDI/ZFs9y+HhBf8KTGSL5pcZPtQsZh3GBQ0UonqL1mp9PA== dependencies: - d3-path "^1.0.9" - d3-shape "^1.3.7" - vega-canvas "^1.2.2" - vega-loader "^4.3.0" - vega-scale "^7.0.0" - vega-util "^1.14.0" + vega-dataflow "^5.7.3" + vega-util "^1.15.2" -vega-schema-url-parser@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vega-schema-url-parser/-/vega-schema-url-parser-1.1.0.tgz#39168ec04e5468ce278a06c16ec0d126035a85b5" - integrity sha512-Tc85J2ofMZZOsxiqDM9sbvfsa+Vdo3GwNLjEEsPOsCDeYqsUHKAlc1IpbbhPLZ6jusyM9Lk0e1izF64GGklFDg== +vega-scale@^7.0.3, vega-scale@^7.1.1, vega-scale@~7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/vega-scale/-/vega-scale-7.1.1.tgz#b69a38d1980f6fc1093390f796e556be63fdc808" + integrity sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA== + dependencies: + d3-array "^2.7.1" + d3-interpolate "^2.0.1" + d3-scale "^3.2.2" + vega-time "^2.0.4" + vega-util "^1.15.2" + +vega-scenegraph@^4.9.2, vega-scenegraph@~4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/vega-scenegraph/-/vega-scenegraph-4.9.2.tgz#83b1dbc34a9ab5595c74d547d6d95849d74451ed" + integrity sha512-epm1CxcB8AucXQlSDeFnmzy0FCj+HV2k9R6ch2lfLRln5lPLEfgJWgFcFhVf5jyheY0FSeHH52Q5zQn1vYI1Ow== + dependencies: + d3-path "^2.0.0" + d3-shape "^2.0.0" + vega-canvas "^1.2.5" + vega-loader "^4.3.3" + vega-scale "^7.1.1" + vega-util "^1.15.2" + +vega-schema-url-parser@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/vega-schema-url-parser/-/vega-schema-url-parser-2.1.0.tgz#847f9cf9f1624f36f8a51abc1adb41ebc6673cb4" + integrity sha512-JHT1PfOyVzOohj89uNunLPirs05Nf59isPT5gnwIkJph96rRgTIBJE7l7yLqndd7fLjr3P8JXHGAryRp74sCaQ== -vega-selections@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/vega-selections/-/vega-selections-5.1.1.tgz#5ea3931bbf7bc13f2ab7c5c5ebf39aed98e4c114" - integrity sha512-ztZUMfDicuIGJHZimSdVvMGzMvaa37ICzUHHvwxS51OhYv096dzKgoSypjx+tsmR7wnhY7ZL+iQgpT1/O29jlA== +vega-selections@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/vega-selections/-/vega-selections-5.1.4.tgz#cc086fac5b4e646f9f1e000777f8786782d8516a" + integrity sha512-L7CHwcIjVf90GoW2tS2x5O496O5Joaerp5A1KM6VJ1uo4z6KfqxY6M/328a/uaAs0LC5qbQgXT3htFbtUrPW/A== dependencies: - vega-expression "^2.6.4" - vega-util "^1.13.2" + vega-expression "^3.0.0" + vega-util "^1.15.2" vega-spec-injector@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/vega-spec-injector/-/vega-spec-injector-0.0.2.tgz#f1d990109dd9d845c524738f818baa4b72a60ca6" integrity sha512-wOMMqmpssn0/ZFPW7wl1v26vbseRX7zHPWzEyS9TwNXTRCu1TcjIBIR+X23lCWocxhoBqFxmqyn8UowMhlGtAg== -vega-statistics@^1.7.4, vega-statistics@^1.7.5, vega-statistics@~1.7.6: - version "1.7.6" - resolved "https://registry.yarnpkg.com/vega-statistics/-/vega-statistics-1.7.6.tgz#6f920c83adbec9a25087ca60c41af272838f85bd" - integrity sha512-w6z5t4p1zYNSvsg3lln4TZakxXlH/tM0w5WAP1EXLYrCYRw0F/SvxqLQ+WqEZVnI/WGQDq2v5xMAn0WvHJ/kUg== +vega-statistics@^1.7.9, vega-statistics@~1.7.9: + version "1.7.9" + resolved "https://registry.yarnpkg.com/vega-statistics/-/vega-statistics-1.7.9.tgz#feec01d463e1b50593d890d20631f72138fcb65d" + integrity sha512-T0sd2Z08k/mHxr1Vb4ajLWytPluLFYnsYqyk4SIS5czzUs4errpP2gUu63QJ0B7CKNu33vnS9WdOMOo/Eprr/Q== dependencies: - d3-array "^2.4.0" + d3-array "^2.7.1" -vega-time@^2.0.0, vega-time@^2.0.1, vega-time@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/vega-time/-/vega-time-2.0.1.tgz#2a91c3acafd091e6724063dea26e4b3fe6061d2f" - integrity sha512-Ij0gmABKDRKAMUTh/1AGSSkU6ocWiteLkIK/cmcnt98u8LiuVcFT5w7gusd0+ibO9EooeMKazn5xPmjvQs0qEg== +vega-time@^2.0.3, vega-time@^2.0.4, vega-time@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vega-time/-/vega-time-2.0.4.tgz#ff308358a831de927caa44e281cdc96f0863ba08" + integrity sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q== dependencies: - d3-array "^2.4.0" - d3-time "^1.1.0" - vega-util "^1.14.0" + d3-array "^2.7.1" + d3-time "^2.0.0" + vega-util "^1.15.2" -vega-tooltip@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/vega-tooltip/-/vega-tooltip-0.12.0.tgz#014b21b08ea5fe14eb59c9b6643614c77a3b3e47" - integrity sha512-0a1gYQ5NjdVxzSm8ameZGnSocDAW9lB3h6e2Us5L2oTlU6tYI6et1+7qU1yRCycBuUQ/oAUsNbeINVwvsV9UIg== +vega-tooltip@^0.24.2: + version "0.24.2" + resolved "https://registry.yarnpkg.com/vega-tooltip/-/vega-tooltip-0.24.2.tgz#da55a171a96ea48a8ff135a728622e1cbb1152af" + integrity sha512-b7IeYQl/piNVsMmTliOgTnwSOhBs67KqoZ9UzP1I3XpH7TKbSuc3YHA7b1CSxkRR0hHKdradby4UI8c9rdH74w== dependencies: - vega-util "^1.7.0" + vega-util "^1.15.2" -vega-transforms@~4.9.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/vega-transforms/-/vega-transforms-4.9.0.tgz#272be37adb8565633ccde68f64079fb5029a8ac9" - integrity sha512-xsgvkHsyKgEWdCB86DVts2Zu6fJ+cGjpc56MpcCWPArNuhcUSugivIoTAFAh8w7QempQBsAtnPrnbaytMYOJ8w== +vega-transforms@~4.9.3: + version "4.9.3" + resolved "https://registry.yarnpkg.com/vega-transforms/-/vega-transforms-4.9.3.tgz#40e5234b956a68eaa03eedf489ed03293075bbfb" + integrity sha512-PdqQd5oPlRyD405M2w+Sz9Bo+i7Rwi8o03SVK7RaeQsJC2FffKGJ6acIaSEgOq+yD1Q2k/1SePmCXcmLUlIiEA== dependencies: - d3-array "^2.4.0" - vega-dataflow "^5.7.0" - vega-statistics "^1.7.5" - vega-time "^2.0.1" - vega-util "^1.14.0" + d3-array "^2.7.1" + vega-dataflow "^5.7.3" + vega-statistics "^1.7.9" + vega-time "^2.0.4" + vega-util "^1.15.2" -vega-typings@~0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/vega-typings/-/vega-typings-0.18.0.tgz#c8f66406cae8418eafed6fbc4c7c63f88eee670d" - integrity sha512-uMSS7EEP8Q2gg4dN7D2xhi4S+dp/IQGTQp3VgieJx8ki8mrm0N43pdUC14nNYTtiUDxDdmup5nyj6JHuboKUmg== +vega-typings@~0.19.0: + version "0.19.1" + resolved "https://registry.yarnpkg.com/vega-typings/-/vega-typings-0.19.1.tgz#a53949143fa37721ae7bd146bbb9add5c78aca52" + integrity sha512-OSyNYwMJ8FayTTNU/gohprbt1EFQBpoiMPP9p2vqo1O9z45XVnotQ92jYHAhraI6gWiMIIfo4OjPbSe/GX7etg== dependencies: - vega-util "^1.14.0" + vega-util "^1.15.2" -vega-util@^1.13.2, vega-util@^1.14.0, vega-util@^1.7.0, vega-util@~1.14.0, vega-util@~1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/vega-util/-/vega-util-1.14.1.tgz#0fb614277764f98738ba0b80e5cdfbe663426183" - integrity sha512-pSKJ8OCkgfgHZDTljyj+gmGltgulceWbk1BV6LWrXqp6P3J8qPA/oZA8+a93YNApYxXZ3yzIVUDOo5O27xk0jw== +vega-util@^1.15.2, vega-util@~1.15.2, vega-util@~1.15.3: + version "1.15.3" + resolved "https://registry.yarnpkg.com/vega-util/-/vega-util-1.15.3.tgz#b42b4fb11f32fbb57fb5cd116d4d3e1827d177aa" + integrity sha512-NCbfCPMVgdP4geLrFtCDN9PTEXrgZgJBBLvpyos7HGv2xSe9bGjDCysv6qcueHrc1myEeCQzrHDFaShny6wXDg== -vega-view-transforms@~4.5.5: - version "4.5.5" - resolved "https://registry.yarnpkg.com/vega-view-transforms/-/vega-view-transforms-4.5.5.tgz#b934da0fc1b41c10039300c036cfa38a56c83631" - integrity sha512-HFTA6j2zFKRlfBlS6b9tmLLDNt7g78ZoyKFAT9fCm3X0KLT6FTn13PiiB4KppMg40nwgm0c2KUQmjnC6fGgIdQ== +vega-view-transforms@~4.5.8: + version "4.5.8" + resolved "https://registry.yarnpkg.com/vega-view-transforms/-/vega-view-transforms-4.5.8.tgz#c8dc42c3c7d4aa725d40b8775180c9f23bc98f4e" + integrity sha512-966m7zbzvItBL8rwmF2nKG14rBp7q+3sLCKWeMSUrxoG+M15Smg5gWEGgwTG3A/RwzrZ7rDX5M1sRaAngRH25g== dependencies: - vega-dataflow "^5.6.0" - vega-scenegraph "^4.8.0" - vega-util "^1.14.0" + vega-dataflow "^5.7.3" + vega-scenegraph "^4.9.2" + vega-util "^1.15.2" -vega-view@~5.8.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/vega-view/-/vega-view-5.8.0.tgz#64ff5acd32855c16b4799cdb4b657d9f3e15b7f9" - integrity sha512-0H+m0olEYpadUq+3z35t6g6ozbr9AzpGqg8KOklHpe+rSmmaaItEF8B+eGr3Ut5i/+u0c7PKa6jEdVG61xbpGA== - dependencies: - d3-array "^2.4.0" - d3-timer "^1.0.10" - vega-dataflow "^5.7.0" - vega-format "^1.0.1" - vega-functions "^5.7.1" - vega-runtime "^6.1.0" - vega-scenegraph "^4.8.3" - vega-util "^1.14.0" - -vega-voronoi@~4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/vega-voronoi/-/vega-voronoi-4.1.2.tgz#459b78f5191fb707e94d9afa7d8c1a68ad9aec7a" - integrity sha512-XXp2UChi4/6jkEqWkLFbjDBVLMizQICWDv4RUkfMeDNhWmhEY/3kPHCU6taqfTVkbxfA7aN20ivbakJzoywiAQ== - dependencies: - d3-delaunay "^5.2.1" - vega-dataflow "^5.5.1" - vega-util "^1.13.2" - -vega-wordcloud@~4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/vega-wordcloud/-/vega-wordcloud-4.1.0.tgz#edf020a99378eb88109cb9ac4702fec0e0ac8cdd" - integrity sha512-WiISiNlHdbTL6QsnxyzxbniUgcPmjzwdwZzu6clQSHXNRz9kThCPhXOyLwYdbFV+9sjd4sJlW0YOaCcx7wMT2Q== +vega-view@~5.9.0: + version "5.9.0" + resolved "https://registry.yarnpkg.com/vega-view/-/vega-view-5.9.0.tgz#ee6d5abd66d2503dec71e05e7ca8cf813465ae3f" + integrity sha512-HqRFuqO2OwoPHHK+CVt8vB8fu2L8GjQerLpmEpglWtCPDns5+gn5B6F7M8Ah8v24WlfqW7cLrY81t9OloPZOyw== + dependencies: + d3-array "^2.7.1" + d3-timer "^2.0.0" + vega-dataflow "^5.7.3" + vega-format "^1.0.4" + vega-functions "^5.8.0" + vega-runtime "^6.1.3" + vega-scenegraph "^4.9.2" + vega-util "^1.15.2" + +vega-voronoi@~4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/vega-voronoi/-/vega-voronoi-4.1.5.tgz#e7af574d4c27fd9cb12d70082f12c6f59b80b445" + integrity sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA== dependencies: - vega-canvas "^1.2.2" - vega-dataflow "^5.6.0" - vega-scale "^7.0.0" - vega-statistics "^1.7.5" - vega-util "^1.14.0" + d3-delaunay "^5.3.0" + vega-dataflow "^5.7.3" + vega-util "^1.15.2" -vega@^5.13.0: - version "5.13.0" - resolved "https://registry.yarnpkg.com/vega/-/vega-5.13.0.tgz#12253667d203e8f82fe317014084c55b479057ee" - integrity sha512-3X6ptCqQrfYg1xdy6rCkywKXOiIQIIJBFESV5JJOXaqm1ye9LRD3NOmZukqenLJXlg6aaPbP6kFFqpjBzmAefg== - dependencies: - vega-crossfilter "~4.0.2" - vega-dataflow "~5.7.0" - vega-encode "~4.8.0" - vega-event-selector "~2.0.3" - vega-expression "~2.6.5" - vega-force "~4.0.4" - vega-format "~1.0.1" - vega-functions "~5.7.1" - vega-geo "~4.3.4" - vega-hierarchy "~4.0.6" - vega-loader "~4.3.0" - vega-parser "~6.0.2" - vega-projection "~1.4.2" - vega-regression "~1.0.6" - vega-runtime "~6.1.0" - vega-scale "~7.0.0" - vega-scenegraph "~4.8.3" - vega-statistics "~1.7.6" - vega-time "~2.0.1" - vega-transforms "~4.9.0" - vega-typings "~0.18.0" - vega-util "~1.14.1" - vega-view "~5.8.0" - vega-view-transforms "~4.5.5" - vega-voronoi "~4.1.2" - vega-wordcloud "~4.1.0" +vega-wordcloud@~4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/vega-wordcloud/-/vega-wordcloud-4.1.3.tgz#ce90900333f4e0d3ee706ba4f36bb0905f8b4a9f" + integrity sha512-is4zYn9FMAyp9T4SAcz2P/U/wqc0Lx3P5YtpWKCbOH02a05vHjUQrQ2TTPOuvmMfAEDCSKvbMSQIJMOE018lJA== + dependencies: + vega-canvas "^1.2.5" + vega-dataflow "^5.7.3" + vega-scale "^7.1.1" + vega-statistics "^1.7.9" + vega-util "^1.15.2" + +vega@^5.16.1: + version "5.16.1" + resolved "https://registry.yarnpkg.com/vega/-/vega-5.16.1.tgz#76a794c28118b685e8578a8f9944c5e239dbe1cd" + integrity sha512-bqovD23iKvIgFnTkP9WqapJbaejhgdED6YjAVWIwG8hsDq5Lf/ZNstJJWPiSDu3j785GQU/o6ZU3RXywdH4dJA== + dependencies: + vega-crossfilter "~4.0.5" + vega-dataflow "~5.7.3" + vega-encode "~4.8.3" + vega-event-selector "~2.0.6" + vega-expression "~3.0.0" + vega-force "~4.0.7" + vega-format "~1.0.4" + vega-functions "~5.8.0" + vega-geo "~4.3.7" + vega-hierarchy "~4.0.9" + vega-label "~1.0.0" + vega-loader "~4.3.3" + vega-parser "~6.1.0" + vega-projection "~1.4.5" + vega-regression "~1.0.9" + vega-runtime "~6.1.3" + vega-scale "~7.1.1" + vega-scenegraph "~4.9.2" + vega-statistics "~1.7.9" + vega-time "~2.0.4" + vega-transforms "~4.9.3" + vega-typings "~0.19.0" + vega-util "~1.15.2" + vega-view "~5.9.0" + vega-view-transforms "~4.5.8" + vega-voronoi "~4.1.5" + vega-wordcloud "~4.1.3" venn.js@0.2.20: version "0.2.20" @@ -31655,7 +31734,7 @@ yargs-parser@^10.0.0: dependencies: camelcase "^4.1.0" -yargs-parser@^18.1.1, yargs-parser@^18.1.2, yargs-parser@^18.1.3: +yargs-parser@^18.1.2, yargs-parser@^18.1.3: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== @@ -31727,7 +31806,7 @@ yargs@^15.0.2, yargs@^15.1.0, yargs@^15.3.1, yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.0.3: +yargs@^16.0.3, yargs@~16.0.3: version "16.0.3" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.0.3.tgz#7a919b9e43c90f80d4a142a89795e85399a7e54c" integrity sha512-6+nLw8xa9uK1BOEOykaiYAJVh6/CjxWXK/q9b5FpRgNslt8s22F2xMBqVIKgCRjNgGvGPBy8Vog7WN7yh4amtA== @@ -31772,23 +31851,6 @@ yargs@^7.0.0, yargs@^7.1.0: y18n "^3.2.1" yargs-parser "5.0.0-security.0" -yargs@~15.3.1: - version "15.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" - integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.1" - yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" From 4306082af50df4f7619ca30647e86a32e8d6d784 Mon Sep 17 00:00:00 2001 From: Alexey Antonov Date: Wed, 30 Sep 2020 15:10:01 +0300 Subject: [PATCH 011/142] Invalid `searchSourceJSON` causes saved object migration to fail (#78535) * Invalid `searchSourceJSON` causes saved object migration to fail Closes: #78530 * 7.8.2 -> 7.9.3 * return migration into 6.7.2 --- .../saved_objects/dashboard_migrations.ts | 1 + .../migrate_match_all_query.test.ts | 17 ++++ .../saved_objects/migrate_match_all_query.ts | 7 ++ .../saved_objects/search_migrations.test.ts | 85 ++++++++++++------ .../server/saved_objects/search_migrations.ts | 8 ++ .../visualization_migrations.test.ts | 86 +++++++++++++------ .../saved_objects/visualization_migrations.ts | 8 ++ 7 files changed, 160 insertions(+), 52 deletions(-) diff --git a/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts b/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts index 1e8356a1ef100..ac91c5a92048a 100644 --- a/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts +++ b/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts @@ -114,4 +114,5 @@ export const dashboardSavedObjectTypeMigrations = { '6.7.2': flow(migrateMatchAllQuery), '7.0.0': flow(migrations700), '7.3.0': flow(migrations730), + '7.9.3': flow(migrateMatchAllQuery), }; diff --git a/src/plugins/dashboard/server/saved_objects/migrate_match_all_query.test.ts b/src/plugins/dashboard/server/saved_objects/migrate_match_all_query.test.ts index 8a91c422eed3d..ce7a5ffcd9fe1 100644 --- a/src/plugins/dashboard/server/saved_objects/migrate_match_all_query.test.ts +++ b/src/plugins/dashboard/server/saved_objects/migrate_match_all_query.test.ts @@ -49,4 +49,21 @@ describe('migrate match_all query', () => { }, }); }); + + it('should return original doc if searchSourceJSON cannot be parsed', () => { + const migratedDoc = migrateMatchAllQuery( + { + attributes: { + kibanaSavedObjectMeta: 'kibanaSavedObjectMeta', + }, + } as Parameters[0], + savedObjectMigrationContext + ); + + expect(migratedDoc).toEqual({ + attributes: { + kibanaSavedObjectMeta: 'kibanaSavedObjectMeta', + }, + }); + }); }); diff --git a/src/plugins/dashboard/server/saved_objects/migrate_match_all_query.ts b/src/plugins/dashboard/server/saved_objects/migrate_match_all_query.ts index 452d68aa92394..3d7aadab5602c 100644 --- a/src/plugins/dashboard/server/saved_objects/migrate_match_all_query.ts +++ b/src/plugins/dashboard/server/saved_objects/migrate_match_all_query.ts @@ -21,6 +21,12 @@ import { SavedObjectMigrationFn } from 'kibana/server'; import { get } from 'lodash'; import { DEFAULT_QUERY_LANGUAGE } from '../../../data/common'; +/** + * This migration script is related to: + * @link https://github.com/elastic/kibana/pull/62194 + * @link https://github.com/elastic/kibana/pull/14644 + * This is only a problem when you import an object from 5.x into 6.x but to be sure that all saved objects migrated we should execute it twice in 6.7.2 and 7.9.3 + */ export const migrateMatchAllQuery: SavedObjectMigrationFn = (doc) => { const searchSourceJSON = get(doc, 'attributes.kibanaSavedObjectMeta.searchSourceJSON'); @@ -31,6 +37,7 @@ export const migrateMatchAllQuery: SavedObjectMigrationFn = (doc) => { searchSource = JSON.parse(searchSourceJSON); } catch (e) { // Let it go, the data is invalid and we'll leave it as is + return doc; } if (searchSource.query?.match_all) { diff --git a/src/plugins/discover/server/saved_objects/search_migrations.test.ts b/src/plugins/discover/server/saved_objects/search_migrations.test.ts index babd25c03dbb2..3324a2d93f5ad 100644 --- a/src/plugins/discover/server/saved_objects/search_migrations.test.ts +++ b/src/plugins/discover/server/saved_objects/search_migrations.test.ts @@ -22,36 +22,61 @@ import { searchMigrations } from './search_migrations'; const savedObjectMigrationContext = (null as unknown) as SavedObjectMigrationContext; +const testMigrateMatchAllQuery = (migrationFn: Function) => { + it('should migrate obsolete match_all query', () => { + const migratedDoc = migrationFn( + { + type: 'search', + attributes: { + kibanaSavedObjectMeta: { + searchSourceJSON: JSON.stringify({ + query: { + match_all: {}, + }, + }), + }, + }, + }, + savedObjectMigrationContext + ); + const migratedSearchSource = JSON.parse( + migratedDoc.attributes.kibanaSavedObjectMeta.searchSourceJSON + ); + + expect(migratedSearchSource).toEqual({ + query: { + query: '', + language: 'kuery', + }, + }); + }); + + it('should return original doc if searchSourceJSON cannot be parsed', () => { + const migratedDoc = migrationFn( + { + type: 'search', + attributes: { + kibanaSavedObjectMeta: 'kibanaSavedObjectMeta', + }, + }, + savedObjectMigrationContext + ); + + expect(migratedDoc).toEqual({ + type: 'search', + attributes: { + kibanaSavedObjectMeta: 'kibanaSavedObjectMeta', + }, + }); + }); +}; + describe('migration search', () => { describe('6.7.2', () => { const migrationFn = searchMigrations['6.7.2']; - it('should migrate obsolete match_all query', () => { - const migratedDoc = migrationFn( - { - type: 'search', - attributes: { - kibanaSavedObjectMeta: { - searchSourceJSON: JSON.stringify({ - query: { - match_all: {}, - }, - }), - }, - }, - }, - savedObjectMigrationContext - ); - const migratedSearchSource = JSON.parse( - migratedDoc.attributes.kibanaSavedObjectMeta.searchSourceJSON - ); - - expect(migratedSearchSource).toEqual({ - query: { - query: '', - language: 'kuery', - }, - }); + describe('migrateMatchAllQuery', () => { + testMigrateMatchAllQuery(migrationFn); }); }); @@ -328,4 +353,12 @@ Object { expect(migratedDoc).toEqual(doc); }); }); + + describe('7.9.3', () => { + const migrationFn = searchMigrations['7.9.3']; + + describe('migrateMatchAllQuery', () => { + testMigrateMatchAllQuery(migrationFn); + }); + }); }); diff --git a/src/plugins/discover/server/saved_objects/search_migrations.ts b/src/plugins/discover/server/saved_objects/search_migrations.ts index 0302159c43c56..fdb086bd17a2d 100644 --- a/src/plugins/discover/server/saved_objects/search_migrations.ts +++ b/src/plugins/discover/server/saved_objects/search_migrations.ts @@ -21,6 +21,12 @@ import { flow, get } from 'lodash'; import { SavedObjectMigrationFn } from 'kibana/server'; import { DEFAULT_QUERY_LANGUAGE } from '../../../data/common'; +/** + * This migration script is related to: + * @link https://github.com/elastic/kibana/pull/62194 + * @link https://github.com/elastic/kibana/pull/14644 + * This is only a problem when you import an object from 5.x into 6.x but to be sure that all saved objects migrated we should execute it twice in 6.7.2 and 7.9.3 + */ const migrateMatchAllQuery: SavedObjectMigrationFn = (doc) => { const searchSourceJSON = get(doc, 'attributes.kibanaSavedObjectMeta.searchSourceJSON'); @@ -31,6 +37,7 @@ const migrateMatchAllQuery: SavedObjectMigrationFn = (doc) => { searchSource = JSON.parse(searchSourceJSON); } catch (e) { // Let it go, the data is invalid and we'll leave it as is + return doc; } if (searchSource.query?.match_all) { @@ -125,4 +132,5 @@ export const searchMigrations = { '6.7.2': flow(migrateMatchAllQuery), '7.0.0': flow(setNewReferences), '7.4.0': flow(migrateSearchSortToNestedArray), + '7.9.3': flow(migrateMatchAllQuery), }; 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 dc8bae69ca377..c4ee92194ec36 100644 --- a/src/plugins/visualizations/server/saved_objects/visualization_migrations.test.ts +++ b/src/plugins/visualizations/server/saved_objects/visualization_migrations.test.ts @@ -22,6 +22,50 @@ import { SavedObjectMigrationContext, SavedObjectMigrationFn } from 'kibana/serv const savedObjectMigrationContext = (null as unknown) as SavedObjectMigrationContext; +const testMigrateMatchAllQuery = (migrate: Function) => { + it('should migrate obsolete match_all query', () => { + const migratedDoc = migrate({ + type: 'area', + attributes: { + kibanaSavedObjectMeta: { + searchSourceJSON: JSON.stringify({ + query: { + match_all: {}, + }, + }), + }, + }, + }); + + const migratedSearchSource = JSON.parse( + migratedDoc.attributes.kibanaSavedObjectMeta.searchSourceJSON + ); + + expect(migratedSearchSource).toEqual({ + query: { + query: '', + language: 'kuery', + }, + }); + }); + + it('should return original doc if searchSourceJSON cannot be parsed', () => { + const migratedDoc = migrate({ + type: 'area', + attributes: { + kibanaSavedObjectMeta: 'kibanaSavedObjectMeta', + }, + }); + + expect(migratedDoc).toEqual({ + type: 'area', + attributes: { + kibanaSavedObjectMeta: 'kibanaSavedObjectMeta', + }, + }); + }); +}; + describe('migration visualization', () => { describe('6.7.2', () => { const migrate = (doc: any) => @@ -31,6 +75,10 @@ describe('migration visualization', () => { ); let doc: any; + describe('migrateMatchAllQuery', () => { + testMigrateMatchAllQuery(migrate); + }); + describe('date histogram time zone removal', () => { beforeEach(() => { doc = { @@ -150,32 +198,6 @@ describe('migration visualization', () => { expect(aggs[3]).not.toHaveProperty('params.customBucket.params.time_zone'); expect(aggs[2]).not.toHaveProperty('params.time_zone'); }); - - it('should migrate obsolete match_all query', () => { - const migratedDoc = migrate({ - ...doc, - attributes: { - ...doc.attributes, - kibanaSavedObjectMeta: { - searchSourceJSON: JSON.stringify({ - query: { - match_all: {}, - }, - }), - }, - }, - }); - const migratedSearchSource = JSON.parse( - migratedDoc.attributes.kibanaSavedObjectMeta.searchSourceJSON - ); - - expect(migratedSearchSource).toEqual({ - query: { - query: '', - language: 'kuery', - }, - }); - }); }); }); @@ -1487,6 +1509,18 @@ describe('migration visualization', () => { }); }); + describe('7.9.3', () => { + const migrate = (doc: any) => + visualizationSavedObjectTypeMigrations['7.9.3']( + doc as Parameters[0], + savedObjectMigrationContext + ); + + describe('migrateMatchAllQuery', () => { + testMigrateMatchAllQuery(migrate); + }); + }); + describe('7.8.0 tsvb split_color_mode', () => { const migrate = (doc: any) => visualizationSavedObjectTypeMigrations['7.8.0']( diff --git a/src/plugins/visualizations/server/saved_objects/visualization_migrations.ts b/src/plugins/visualizations/server/saved_objects/visualization_migrations.ts index 170d7c460b06a..fbeefacf6035f 100644 --- a/src/plugins/visualizations/server/saved_objects/visualization_migrations.ts +++ b/src/plugins/visualizations/server/saved_objects/visualization_migrations.ts @@ -655,6 +655,12 @@ const migrateTableSplits: SavedObjectMigrationFn = (doc) => { } }; +/** + * This migration script is related to: + * @link https://github.com/elastic/kibana/pull/62194 + * @link https://github.com/elastic/kibana/pull/14644 + * This is only a problem when you import an object from 5.x into 6.x but to be sure that all saved objects migrated we should execute it twice in 6.7.2 and 7.9.3 + */ const migrateMatchAllQuery: SavedObjectMigrationFn = (doc) => { const searchSourceJSON = get(doc, 'attributes.kibanaSavedObjectMeta.searchSourceJSON'); @@ -665,6 +671,7 @@ const migrateMatchAllQuery: SavedObjectMigrationFn = (doc) => { searchSource = JSON.parse(searchSourceJSON); } catch (e) { // Let it go, the data is invalid and we'll leave it as is + return doc; } if (searchSource.query?.match_all) { @@ -781,5 +788,6 @@ export const visualizationSavedObjectTypeMigrations = { '7.4.2': flow(transformSplitFiltersStringToQueryObject), '7.7.0': flow(migrateOperatorKeyTypo, migrateSplitByChartRow), '7.8.0': flow(migrateTsvbDefaultColorPalettes), + '7.9.3': flow(migrateMatchAllQuery), '7.10.0': flow(migrateFilterRatioQuery, removeTSVBSearchSource), }; From eebe4ad648e8f11d8e97cef20e64f13b754a1134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Marcondes?= <55978943+cauemarcondes@users.noreply.github.com> Date: Wed, 30 Sep 2020 13:16:16 +0100 Subject: [PATCH 012/142] [Observability] Kibana nav when docked overlaps the content of the pages. (#78593) * adding padding left * adding space left to appSection --- .../public/components/app/header/index.tsx | 2 +- .../public/components/app/layout/with_header.tsx | 4 ---- .../observability/public/pages/landing/index.tsx | 5 +++-- .../observability/public/pages/landing/styles.scss | 12 ++++++++++++ 4 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 x-pack/plugins/observability/public/pages/landing/styles.scss diff --git a/x-pack/plugins/observability/public/components/app/header/index.tsx b/x-pack/plugins/observability/public/components/app/header/index.tsx index e8bd229265e37..543ca2c3b3232 100644 --- a/x-pack/plugins/observability/public/components/app/header/index.tsx +++ b/x-pack/plugins/observability/public/components/app/header/index.tsx @@ -27,7 +27,7 @@ const Wrapper = styled.div<{ restrictWidth?: number }>` max-width: ${(props) => `${props.restrictWidth}px`}; margin: 0 auto; overflow: hidden; - padding: ${(props) => (props.restrictWidth ? 0 : '0 24px')}; + padding: 0 16px; `; interface Props { diff --git a/x-pack/plugins/observability/public/components/app/layout/with_header.tsx b/x-pack/plugins/observability/public/components/app/layout/with_header.tsx index a77487e1244e6..86a8e9089e035 100644 --- a/x-pack/plugins/observability/public/components/app/layout/with_header.tsx +++ b/x-pack/plugins/observability/public/components/app/layout/with_header.tsx @@ -9,12 +9,8 @@ import React from 'react'; import styled from 'styled-components'; import { Header } from '../header/index'; -const getPaddingSize = (props: EuiPageProps) => (props.restrictWidth ? 0 : '24px'); - const Page = styled(EuiPage)` background: transparent; - padding-right: ${getPaddingSize}; - padding-left: ${getPaddingSize}; `; const Container = styled.div<{ color?: string }>` diff --git a/x-pack/plugins/observability/public/pages/landing/index.tsx b/x-pack/plugins/observability/public/pages/landing/index.tsx index 66a52091ae04d..24620f641c204 100644 --- a/x-pack/plugins/observability/public/pages/landing/index.tsx +++ b/x-pack/plugins/observability/public/pages/landing/index.tsx @@ -23,6 +23,7 @@ import { WithHeaderLayout } from '../../components/app/layout/with_header'; import { usePluginContext } from '../../hooks/use_plugin_context'; import { useTrackPageview } from '../../hooks/use_track_metric'; import { appsSection } from '../home/section'; +import './styles.scss'; const EuiCardWithoutPadding = styled(EuiCard)` padding: 0; @@ -43,7 +44,7 @@ export function LandingPage() { > {/* title and description */} - +

{i18n.translate('xpack.observability.home.sectionTitle', { @@ -65,7 +66,7 @@ export function LandingPage() { - + {appsSection.map((app) => ( Date: Wed, 30 Sep 2020 14:16:51 +0200 Subject: [PATCH 013/142] [UiActions] Don't throw an error if there are no compatible actions to execute (#78917) --- .../public/tests/execute_trigger_actions.test.ts | 12 +++++------- .../ui_actions/public/triggers/trigger_internal.ts | 6 ------ 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/plugins/ui_actions/public/tests/execute_trigger_actions.test.ts b/src/plugins/ui_actions/public/tests/execute_trigger_actions.test.ts index 81120990001e3..af2510467ba87 100644 --- a/src/plugins/ui_actions/public/tests/execute_trigger_actions.test.ts +++ b/src/plugins/ui_actions/public/tests/execute_trigger_actions.test.ts @@ -22,7 +22,7 @@ import { openContextMenu } from '../context_menu'; import { uiActionsPluginMock } from '../mocks'; import { Trigger } from '../triggers'; import { TriggerId, ActionType } from '../types'; -import { wait } from '@testing-library/dom'; +import { waitFor } from '@testing-library/dom'; jest.mock('../context_menu'); @@ -85,7 +85,7 @@ test('executes a single action mapped to a trigger', async () => { expect(executeFn).toBeCalledWith(expect.objectContaining(context)); }); -test('throws an error if there are no compatible actions to execute', async () => { +test("doesn't throw an error if there are no compatible actions to execute", async () => { const { setup, doStart } = uiActions; const trigger: Trigger = { id: 'MY-TRIGGER' as TriggerId, @@ -98,9 +98,7 @@ test('throws an error if there are no compatible actions to execute', async () = const start = doStart(); await expect( start.executeTriggerActions('MY-TRIGGER' as TriggerId, context) - ).rejects.toMatchObject( - new Error('No compatible actions found to execute for trigger [triggerId = MY-TRIGGER].') - ); + ).resolves.toBeUndefined(); }); test('does not execute an incompatible action', async () => { @@ -149,7 +147,7 @@ test('shows a context menu when more than one action is mapped to a trigger', as jest.runAllTimers(); - await wait(() => { + await waitFor(() => { expect(executeFn).toBeCalledTimes(0); expect(openContextMenu).toHaveBeenCalledTimes(1); }); @@ -197,7 +195,7 @@ test("doesn't show a context menu for auto executable actions", async () => { jest.runAllTimers(); - await wait(() => { + await waitFor(() => { expect(executeFn).toBeCalledTimes(2); expect(openContextMenu).toHaveBeenCalledTimes(0); }); diff --git a/src/plugins/ui_actions/public/triggers/trigger_internal.ts b/src/plugins/ui_actions/public/triggers/trigger_internal.ts index c91468d31add5..c766b5c798ecb 100644 --- a/src/plugins/ui_actions/public/triggers/trigger_internal.ts +++ b/src/plugins/ui_actions/public/triggers/trigger_internal.ts @@ -35,12 +35,6 @@ export class TriggerInternal { const triggerId = this.trigger.id; const actions = await this.service.getTriggerCompatibleActions!(triggerId, context); - if (!actions.length) { - throw new Error( - `No compatible actions found to execute for trigger [triggerId = ${triggerId}].` - ); - } - await Promise.all([ actions.map((action) => this.service.executionService.execute({ From caa260527bf795f1aa0d26854cb34dbc089749f8 Mon Sep 17 00:00:00 2001 From: Alison Goryachev Date: Wed, 30 Sep 2020 08:38:02 -0400 Subject: [PATCH 014/142] [Ingest pipelines] Address copy review feedback (#78796) --- .../processor_form/processor_output/processor_output.tsx | 5 ++--- .../components/processors_empty_prompt.tsx | 2 +- .../components/processors_header.tsx | 2 +- .../add_documents_accordion/add_documents_accordion.tsx | 4 ++-- .../tab_documents/reset_documents_modal.tsx | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/components/processor_form/processor_output/processor_output.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/components/processor_form/processor_output/processor_output.tsx index bd0ce6ca2cd52..f6b13c2ba7228 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/components/processor_form/processor_output/processor_output.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/components/processor_form/processor_output/processor_output.tsx @@ -32,8 +32,7 @@ export interface Props { const i18nTexts = { tabDescription: i18n.translate('xpack.ingestPipelines.processorOutput.descriptionText', { - defaultMessage: - 'View how the processor affects the ingest document as it passes through the pipeline.', + defaultMessage: 'Preview changes to the test document.', }), skippedCalloutTitle: i18n.translate('xpack.ingestPipelines.processorOutput.skippedCalloutTitle', { defaultMessage: 'The processor was not run.', @@ -68,7 +67,7 @@ const i18nTexts = { processorIgnoredErrorTitle: i18n.translate( 'xpack.ingestPipelines.processorOutput.ignoredErrorCodeBlockLabel', { - defaultMessage: 'There was an error that was ignored', + defaultMessage: 'There was an ignored error', } ), documentsDropdownLabel: i18n.translate( diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/components/processors_empty_prompt.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/components/processors_empty_prompt.tsx index 3750ddda25d10..58d2df518f547 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/components/processors_empty_prompt.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/components/processors_empty_prompt.tsx @@ -35,7 +35,7 @@ export const ProcessorsEmptyPrompt: FunctionComponent = ({ onLoadJson })

= ({ onLoadJson, hasProc Date: Wed, 30 Sep 2020 08:42:29 -0400 Subject: [PATCH 015/142] [Ingest pipelines] Update readmes (#78350) --- x-pack/plugins/ingest_pipelines/README.md | 81 ++++++++++++++++++- .../pipeline_processors_editor/README.md | 35 ++++++-- .../__jest__/test_pipeline.helpers.tsx | 12 +-- .../pipeline_processors_editor/index.ts | 8 +- 4 files changed, 110 insertions(+), 26 deletions(-) diff --git a/x-pack/plugins/ingest_pipelines/README.md b/x-pack/plugins/ingest_pipelines/README.md index a469511bdbbd2..00d4f5a91863d 100644 --- a/x-pack/plugins/ingest_pipelines/README.md +++ b/x-pack/plugins/ingest_pipelines/README.md @@ -11,7 +11,7 @@ It requires a Basic license and the following cluster privileges: `manage_pipeli ## Development -A new app called Ingest Node Pipelines is registered in the Management section and follows a typical CRUD UI pattern. The client-side portion of this app lives in [public/application](public/application) and uses endpoints registered in [server/routes/api](server/routes/api). +A new app called Ingest Node Pipelines is registered in the Management section and follows a typical CRUD UI pattern. The client-side portion of this app lives in [public/application](public/application) and uses endpoints registered in [server/routes/api](server/routes/api). For more information on the pipeline processors editor component, check out the [component readme](public/application/components/pipeline_processors_editor/README.md). See the [kibana contributing guide](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md) for instructions on setting up your development environment. @@ -19,6 +19,83 @@ See the [kibana contributing guide](https://github.com/elastic/kibana/blob/maste The app has the following test coverage: -- Complete API integration tests +- API integration tests - Smoke-level functional test - Client-integration tests + +### Quick steps for manual testing + +You can run the following request in Console to create an ingest node pipeline: + +``` +PUT _ingest/pipeline/test_pipeline +{ + "description": "_description", + "processors": [ + { + "set": { + "field": "field1", + "value": "value1" + } + }, + { + "rename": { + "field": "dont_exist", + "target_field": "field1", + "ignore_failure": true + } + }, + { + "rename": { + "field": "foofield", + "target_field": "new_field", + "on_failure": [ + { + "set": { + "field": "field2", + "value": "value2" + } + } + ] + } + }, + { + "drop": { + "if": "false" + } + }, + { + "drop": { + "if": "true" + } + } + ] +} +``` + +Then, go to the Ingest Node Pipelines UI to edit, delete, clone, or view details of the pipeline. + +To simulate a pipeline, go to the "Edit" page of your pipeline. Click the "Add documents" link under the "Processors" section. You may add the following sample documents to test the pipeline: + +``` +// The first document in this example should trigger the on_failure processor in the pipeline, while the second one should succeed. +[ + { + "_index": "my_index", + "_id": "id1", + "_source": { + "foo": "bar" + } + }, + { + "_index": "my_index", + "_id": "id2", + "_source": { + "foo": "baz", + "foofield": "bar" + } + } +] +``` + +Alternatively, you can add a document from an existing index, or create some sample data of your own. Afterward, click the "Run the pipeline" button to view the output. diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/README.md b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/README.md index d29af67d3179c..4761bd9e6c70b 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/README.md +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/README.md @@ -7,18 +7,37 @@ pipeline. ## Editor components -The top-level API consists of 3 pieces that enable the maximum amount -of flexibility for consuming code to determine overall layout. +The top-level API consists of two pieces: -- PipelineProcessorsEditorContext -- ProcessorsEditor -- GlobalOnFailureProcessorsEditor +- ProcessorsEditorContextProvider +- PipelineProcessorsEditor -The editor components must be wrapped inside of the context component +The editor component must be wrapped inside of the context component as this is where the shared processors state is contained. -## Load JSON button +Example usage from the [PipelineFormFields](../pipeline_form/pipeline_form_fields.tsx) component: -This component is totally standalone. It gives users a button that +``` + + + +``` + +The editor has a dependency on `KibanaContextProvider`, which is defined in the main app's `index.tsx` file. Note that the editor also relies on imports from `public/shared_imports.ts` and `common/types.ts`. + +### ProcessorsEditorContextProvider +This component manages state for the processors, as well as state for the test pipeline functionality. + +### PipelineProcessorsEditor +This component is responsible for building the layout of the processors editor. + +It contains the processor and on-failure processor editors. It also includes the following capabilities that are rendered within the processors header: + +- **Load JSON button:** This component gives users a button that presents a modal for loading a pipeline. It does some basic validation on the JSON to ensure that it is correct. +- **Test pipeline actions:** This component presents users with a toolbar to test a pipeline. It includes a flyout where users can add sample documents. It issues a request to simulate the pipeline and displays the output. Once the request is successful, a user can use the documents dropdown to view the results for a particular document. diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/__jest__/test_pipeline.helpers.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/__jest__/test_pipeline.helpers.tsx index 7f1b203869c70..222e0a491e0d2 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/__jest__/test_pipeline.helpers.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/__jest__/test_pipeline.helpers.tsx @@ -25,13 +25,7 @@ import { apiService, } from '../../../services'; -import { - ProcessorsEditorContextProvider, - Props, - GlobalOnFailureProcessorsEditor, - ProcessorsEditor, -} from '../'; -import { TestPipelineActions } from '../'; +import { ProcessorsEditorContextProvider, Props, PipelineProcessorsEditor } from '../'; import { initHttpRequests } from './http_requests.helpers'; @@ -105,9 +99,7 @@ const testBedSetup = registerTestBed( (props: Props) => ( - - - + ), diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/index.ts b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/index.ts index ca5184da25a07..ae3dd9d673ebe 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/index.ts +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_processors_editor/index.ts @@ -4,16 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -export { PipelineProcessorsContextProvider, Props } from './context'; - -export { ProcessorsEditorContextProvider } from './context'; - -export { ProcessorsEditor, GlobalOnFailureProcessorsEditor } from './editors'; +export { Props, ProcessorsEditorContextProvider } from './context'; export { OnUpdateHandlerArg, OnUpdateHandler } from './types'; export { SerializeResult } from './serialize'; -export { LoadFromJsonButton, OnDoneLoadJsonHandler, TestPipelineActions } from './components'; +export { OnDoneLoadJsonHandler } from './components'; export { PipelineProcessorsEditor } from './pipeline_processors_editor'; From ae8f8e1d108cafcd1ae701595b417a9486d9c547 Mon Sep 17 00:00:00 2001 From: Mikhail Shustov Date: Wed, 30 Sep 2020 16:02:41 +0300 Subject: [PATCH 016/142] Add TS projects for src/plugins & x-pack/plugins (#78440) * bump query-string version to remove manual type definitions * remove manual type declaration * add kibana_utils tsconfig * add refs to kibana_utils tsconfig * add kibana_utils to the project list * add kibana_react project * add support for x-pack/tsconfig.refs.json * add ts project for x-pack licensing plugins * add glob for ts projects in src/plugins & x-pack/plugins * add refs to projects in examples * fix ref paths in x-pack/test * address mistic comments Co-authored-by: Elastic Machine --- examples/bfetch_explorer/tsconfig.json | 3 +- examples/embeddable_examples/tsconfig.json | 3 +- .../state_containers_examples/tsconfig.json | 4 ++- examples/ui_action_examples/tsconfig.json | 3 +- examples/ui_actions_explorer/tsconfig.json | 3 +- package.json | 2 +- src/dev/typescript/build_refs.ts | 29 +++++++++++++++---- src/dev/typescript/projects.ts | 10 +++++-- src/dev/typescript/run_type_check_cli.ts | 4 +-- src/plugins/kibana_react/kibana.json | 1 + src/plugins/kibana_react/tsconfig.json | 17 +++++++++++ src/plugins/kibana_utils/kibana.json | 1 + src/plugins/kibana_utils/tsconfig.json | 22 ++++++++++++++ test/tsconfig.json | 4 ++- tsconfig.json | 8 +++-- tsconfig.refs.json | 6 ++-- .../tsconfig.json | 4 ++- x-pack/package.json | 2 +- x-pack/plugins/licensing/tsconfig.json | 20 +++++++++++++ x-pack/plugins/transform/tsconfig.json | 3 -- x-pack/test/tsconfig.json | 5 +++- x-pack/tsconfig.json | 10 +++++-- x-pack/tsconfig.refs.json | 6 ++++ 23 files changed, 141 insertions(+), 29 deletions(-) create mode 100644 src/plugins/kibana_react/tsconfig.json create mode 100644 src/plugins/kibana_utils/tsconfig.json create mode 100644 x-pack/plugins/licensing/tsconfig.json delete mode 100644 x-pack/plugins/transform/tsconfig.json create mode 100644 x-pack/tsconfig.refs.json diff --git a/examples/bfetch_explorer/tsconfig.json b/examples/bfetch_explorer/tsconfig.json index 86b35c5e4943f..253fdd9ee6c89 100644 --- a/examples/bfetch_explorer/tsconfig.json +++ b/examples/bfetch_explorer/tsconfig.json @@ -13,6 +13,7 @@ ], "exclude": [], "references": [ - { "path": "../../src/core/tsconfig.json" } + { "path": "../../src/core/tsconfig.json" }, + { "path": "../../src/plugins/kibana_react/tsconfig.json" }, ] } diff --git a/examples/embeddable_examples/tsconfig.json b/examples/embeddable_examples/tsconfig.json index 78098339c16f5..a922c6defcd4c 100644 --- a/examples/embeddable_examples/tsconfig.json +++ b/examples/embeddable_examples/tsconfig.json @@ -14,6 +14,7 @@ ], "exclude": [], "references": [ - { "path": "../../src/core/tsconfig.json" } + { "path": "../../src/core/tsconfig.json" }, + { "path": "../../src/plugins/kibana_react/tsconfig.json" }, ] } diff --git a/examples/state_containers_examples/tsconfig.json b/examples/state_containers_examples/tsconfig.json index 6cfb9f9dc2321..442fa08022dc4 100644 --- a/examples/state_containers_examples/tsconfig.json +++ b/examples/state_containers_examples/tsconfig.json @@ -14,6 +14,8 @@ ], "exclude": [], "references": [ - { "path": "../../src/core/tsconfig.json" } + { "path": "../../src/core/tsconfig.json" }, + { "path": "../../src/plugins/kibana_utils/tsconfig.json" }, + { "path": "../../src/plugins/kibana_react/tsconfig.json" }, ] } diff --git a/examples/ui_action_examples/tsconfig.json b/examples/ui_action_examples/tsconfig.json index 86b35c5e4943f..253fdd9ee6c89 100644 --- a/examples/ui_action_examples/tsconfig.json +++ b/examples/ui_action_examples/tsconfig.json @@ -13,6 +13,7 @@ ], "exclude": [], "references": [ - { "path": "../../src/core/tsconfig.json" } + { "path": "../../src/core/tsconfig.json" }, + { "path": "../../src/plugins/kibana_react/tsconfig.json" }, ] } diff --git a/examples/ui_actions_explorer/tsconfig.json b/examples/ui_actions_explorer/tsconfig.json index 782b9cd57fa7b..b4449819b25a6 100644 --- a/examples/ui_actions_explorer/tsconfig.json +++ b/examples/ui_actions_explorer/tsconfig.json @@ -12,6 +12,7 @@ ], "exclude": [], "references": [ - { "path": "../../src/core/tsconfig.json" } + { "path": "../../src/core/tsconfig.json" }, + { "path": "../../src/plugins/kibana_react/tsconfig.json" }, ] } diff --git a/package.json b/package.json index 6122c1090671f..5cd0c276ef76c 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "kbn:watch": "node scripts/kibana --dev --logging.json=false", "build:types": "rm -rf ./target/types && tsc --p tsconfig.types.json", "docs:acceptApiChanges": "node --max-old-space-size=6144 scripts/check_published_api_changes.js --accept", - "kbn:bootstrap": "node scripts/build_ts_refs && node scripts/register_git_hook", + "kbn:bootstrap": "node scripts/build_ts_refs --project tsconfig.refs.json && node scripts/register_git_hook", "spec_to_console": "node scripts/spec_to_console", "backport-skip-ci": "backport --prDescription \"[skip-ci]\"", "storybook": "node scripts/storybook", diff --git a/src/dev/typescript/build_refs.ts b/src/dev/typescript/build_refs.ts index cbb596c185f8b..de006bd674e87 100644 --- a/src/dev/typescript/build_refs.ts +++ b/src/dev/typescript/build_refs.ts @@ -18,12 +18,18 @@ */ import execa from 'execa'; +import Path from 'path'; import { run, ToolingLog } from '@kbn/dev-utils'; -export async function buildRefs(log: ToolingLog) { +export async function buildAllRefs(log: ToolingLog) { + await buildRefs(log, 'tsconfig.refs.json'); + await buildRefs(log, Path.join('x-pack', 'tsconfig.refs.json')); +} + +async function buildRefs(log: ToolingLog, projectPath: string) { try { - log.info('Building TypeScript projects refs...'); - await execa(require.resolve('typescript/bin/tsc'), ['-b', 'tsconfig.refs.json']); + log.debug(`Building TypeScript projects refs for ${projectPath}...`); + await execa(require.resolve('typescript/bin/tsc'), ['-b', projectPath]); } catch (e) { log.error(e); process.exit(1); @@ -31,7 +37,18 @@ export async function buildRefs(log: ToolingLog) { } export async function runBuildRefs() { - run(async ({ log }) => { - await buildRefs(log); - }); + run( + async ({ log, flags }) => { + await buildRefs(log, flags.project as string); + }, + { + description: 'Build TypeScript projects', + flags: { + string: ['project'], + help: ` +--project Required, path to the tsconfig.refs.file + `, + }, + } + ); } diff --git a/src/dev/typescript/projects.ts b/src/dev/typescript/projects.ts index 4d1e549e192b6..9891e9fa02c82 100644 --- a/src/dev/typescript/projects.ts +++ b/src/dev/typescript/projects.ts @@ -24,11 +24,11 @@ import { Project } from './project'; export const PROJECTS = [ new Project(resolve(REPO_ROOT, 'tsconfig.json')), - new Project(resolve(REPO_ROOT, 'src/test_utils/tsconfig.json')), - new Project(resolve(REPO_ROOT, 'src/core/tsconfig.json')), new Project(resolve(REPO_ROOT, 'test/tsconfig.json'), { name: 'kibana/test' }), new Project(resolve(REPO_ROOT, 'x-pack/tsconfig.json')), new Project(resolve(REPO_ROOT, 'x-pack/test/tsconfig.json'), { name: 'x-pack/test' }), + new Project(resolve(REPO_ROOT, 'src/test_utils/tsconfig.json')), + new Project(resolve(REPO_ROOT, 'src/core/tsconfig.json')), new Project(resolve(REPO_ROOT, 'x-pack/plugins/security_solution/cypress/tsconfig.json'), { name: 'security_solution/cypress', }), @@ -47,6 +47,12 @@ export const PROJECTS = [ ...glob .sync('packages/*/tsconfig.json', { cwd: REPO_ROOT }) .map((path) => new Project(resolve(REPO_ROOT, path))), + ...glob + .sync('src/plugins/*/tsconfig.json', { cwd: REPO_ROOT }) + .map((path) => new Project(resolve(REPO_ROOT, path))), + ...glob + .sync('x-pack/plugins/*/tsconfig.json', { cwd: REPO_ROOT }) + .map((path) => new Project(resolve(REPO_ROOT, path))), ...glob .sync('examples/*/tsconfig.json', { cwd: REPO_ROOT }) .map((path) => new Project(resolve(REPO_ROOT, path))), diff --git a/src/dev/typescript/run_type_check_cli.ts b/src/dev/typescript/run_type_check_cli.ts index 00968b7259a30..c52b9454c28be 100644 --- a/src/dev/typescript/run_type_check_cli.ts +++ b/src/dev/typescript/run_type_check_cli.ts @@ -24,7 +24,7 @@ import getopts from 'getopts'; import { execInProjects } from './exec_in_projects'; import { filterProjectsByFlag } from './projects'; -import { buildRefs } from './build_refs'; +import { buildAllRefs } from './build_refs'; export async function runTypeCheckCli() { const extraFlags: string[] = []; @@ -80,7 +80,7 @@ export async function runTypeCheckCli() { process.exit(); } - await buildRefs(log); + await buildAllRefs(log); const tscArgs = [ // composite project cannot be used with --noEmit diff --git a/src/plugins/kibana_react/kibana.json b/src/plugins/kibana_react/kibana.json index a507fe457b633..c05490c349917 100644 --- a/src/plugins/kibana_react/kibana.json +++ b/src/plugins/kibana_react/kibana.json @@ -2,5 +2,6 @@ "id": "kibanaReact", "version": "kibana", "ui": true, + "server": false, "requiredBundles": ["kibanaUtils"] } diff --git a/src/plugins/kibana_react/tsconfig.json b/src/plugins/kibana_react/tsconfig.json new file mode 100644 index 0000000000000..52899f868dbfb --- /dev/null +++ b/src/plugins/kibana_react/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "composite": true, + "outDir": "./target/types", + "emitDeclarationOnly": true, + "declaration": true, + "declarationMap": true + }, + "include": [ + "public/**/*", + "../../../typings/**/*" + ], + "references": [ + { "path": "../kibana_utils/tsconfig.json" } + ] +} diff --git a/src/plugins/kibana_utils/kibana.json b/src/plugins/kibana_utils/kibana.json index 7e2127c27548e..3e20b68bca431 100644 --- a/src/plugins/kibana_utils/kibana.json +++ b/src/plugins/kibana_utils/kibana.json @@ -2,6 +2,7 @@ "id": "kibanaUtils", "version": "kibana", "ui": true, + "server": false, "extraPublicDirs": [ "common", "demos/state_containers/todomvc", diff --git a/src/plugins/kibana_utils/tsconfig.json b/src/plugins/kibana_utils/tsconfig.json new file mode 100644 index 0000000000000..bd65e06c78608 --- /dev/null +++ b/src/plugins/kibana_utils/tsconfig.json @@ -0,0 +1,22 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "composite": true, + "outDir": "./target/types", + "emitDeclarationOnly": true, + "declaration": true, + "declarationMap": true + }, + "include": [ + "common/**/*", + "demos/**/*", + "public/**/*", + "server/**/*", + "index.ts", + "../../../typings/**/*" + ], + "references": [ + { "path": "../../test_utils/tsconfig.json" }, + { "path": "../../core/tsconfig.json" } + ] +} diff --git a/test/tsconfig.json b/test/tsconfig.json index 6e846690d54d9..2c92367f84823 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -18,6 +18,8 @@ "interpreter_functional/plugins/**/*" ], "references": [ - { "path": "../src/core/tsconfig.json" } + { "path": "../src/core/tsconfig.json" }, + { "path": "../src/plugins/kibana_utils/tsconfig.json" }, + { "path": "../src/plugins/kibana_react/tsconfig.json" } ] } diff --git a/tsconfig.json b/tsconfig.json index 11838627c5319..fb57936248cf6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,7 +12,9 @@ "exclude": [ "src/**/__fixtures__/**/*", "src/test_utils/**/*", - "src/core/**/*" + "src/core/**/*", + "src/plugins/kibana_utils/**/*", + "src/plugins/kibana_react/**/*" // In the build we actually exclude **/public/**/* from this config so that // we can run the TSC on both this and the .browser version of this config // file, but if we did it during development IDEs would not be able to find @@ -21,6 +23,8 @@ ], "references": [ { "path": "./src/test_utils/tsconfig.json" }, - { "path": "./src/core/tsconfig.json" } + { "path": "./src/core/tsconfig.json" }, + { "path": "./src/plugins/kibana_utils/tsconfig.json" }, + { "path": "./src/plugins/kibana_react/tsconfig.json" } ] } diff --git a/tsconfig.refs.json b/tsconfig.refs.json index 66282687f633b..54bd07e4b134c 100644 --- a/tsconfig.refs.json +++ b/tsconfig.refs.json @@ -1,7 +1,9 @@ { "include": [], "references": [ - { "path": "./src/test_utils" }, - { "path": "./src/core" }, + { "path": "./src/test_utils/tsconfig.json" }, + { "path": "./src/core/tsconfig.json" }, + { "path": "./src/plugins/kibana_utils/tsconfig.json" }, + { "path": "./src/plugins/kibana_react/tsconfig.json" }, ] } diff --git a/x-pack/examples/ui_actions_enhanced_examples/tsconfig.json b/x-pack/examples/ui_actions_enhanced_examples/tsconfig.json index 9f4f010c20fec..f8c1a6b53dac5 100644 --- a/x-pack/examples/ui_actions_enhanced_examples/tsconfig.json +++ b/x-pack/examples/ui_actions_enhanced_examples/tsconfig.json @@ -13,6 +13,8 @@ ], "exclude": [], "references": [ - { "path": "../../../src/core/tsconfig.json" } + { "path": "../../../src/core/tsconfig.json" }, + { "path": "../../../src/plugins/kibana_utils/tsconfig.json" }, + { "path": "../../../src/plugins/kibana_react/tsconfig.json" }, ] } diff --git a/x-pack/package.json b/x-pack/package.json index cd981b78aea63..97d673290abd1 100644 --- a/x-pack/package.json +++ b/x-pack/package.json @@ -6,7 +6,7 @@ "license": "Elastic-License", "scripts": { "kbn": "node ../scripts/kbn", - "kbn:bootstrap": "node plugins/canvas/scripts/storybook --clean", + "kbn:bootstrap": "node ../scripts/build_ts_refs --project tsconfig.refs.json && node plugins/canvas/scripts/storybook --clean", "start": "node ../scripts/kibana --dev", "build": "gulp build", "testonly": "echo 'Deprecated, use `yarn test`' && gulp test", diff --git a/x-pack/plugins/licensing/tsconfig.json b/x-pack/plugins/licensing/tsconfig.json new file mode 100644 index 0000000000000..9b8eb15dc4a9e --- /dev/null +++ b/x-pack/plugins/licensing/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "composite": true, + "outDir": "./target/types", + "emitDeclarationOnly": true, + "declaration": true, + "declarationMap": true + }, + "include": [ + "public/**/*", + "server/**/*", + "common/**/*", + "../../../typings/**/*" + ], + "references": [ + { "path": "../../../src/core/tsconfig.json" }, + { "path": "../../../src/plugins/kibana_react/tsconfig.json" } + ] +} diff --git a/x-pack/plugins/transform/tsconfig.json b/x-pack/plugins/transform/tsconfig.json deleted file mode 100644 index 6f83eb665f830..0000000000000 --- a/x-pack/plugins/transform/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../tsconfig.json", -} diff --git a/x-pack/test/tsconfig.json b/x-pack/test/tsconfig.json index 3736d957a55a6..628f2edefb079 100644 --- a/x-pack/test/tsconfig.json +++ b/x-pack/test/tsconfig.json @@ -17,6 +17,9 @@ "../typings/jest.d.ts" ], "references": [ - { "path": "../../src/core/tsconfig.json" } + { "path": "../../src/core/tsconfig.json" }, + { "path": "../../src/plugins/kibana_utils/tsconfig.json" }, + { "path": "../../src/plugins/kibana_react/tsconfig.json" }, + { "path": "../plugins/licensing/tsconfig.json" } ] } diff --git a/x-pack/tsconfig.json b/x-pack/tsconfig.json index 7978a89231566..d4722aba4882c 100644 --- a/x-pack/tsconfig.json +++ b/x-pack/tsconfig.json @@ -11,7 +11,8 @@ "test/**/*", "plugins/security_solution/cypress/**/*", "plugins/apm/e2e/cypress/**/*", - "plugins/apm/scripts/**/*" + "plugins/apm/scripts/**/*", + "plugins/licensing/**/*" ], "compilerOptions": { "outDir": ".", @@ -24,5 +25,10 @@ // overhead is too significant "incremental": false }, - "references": [{ "path": "../src/core/tsconfig.json" }] + "references": [ + { "path": "../src/core/tsconfig.json" }, + { "path": "../src/plugins/kibana_utils/tsconfig.json" }, + { "path": "../src/plugins/kibana_react/tsconfig.json" }, + { "path": "./plugins/licensing/tsconfig.json" } + ] } diff --git a/x-pack/tsconfig.refs.json b/x-pack/tsconfig.refs.json new file mode 100644 index 0000000000000..0b4c46b893aa8 --- /dev/null +++ b/x-pack/tsconfig.refs.json @@ -0,0 +1,6 @@ +{ + "include": [], + "references": [ + { "path": "./plugins/licensing/tsconfig.json" } + ] +} From 8e963fdf1a353d5d5f4d03bc7a53fda6d5dfbf96 Mon Sep 17 00:00:00 2001 From: Bhavya RM Date: Wed, 30 Sep 2020 09:34:24 -0400 Subject: [PATCH 017/142] A11y tests for filter panel (#78776) a11y tests for filter panel and some test data un mounting --- .../ui/filter_bar/filter_editor/index.tsx | 7 +- test/accessibility/apps/discover.ts | 4 + test/accessibility/apps/filter_panel.ts | 95 +++++++++++++++++++ test/accessibility/apps/management.ts | 4 + test/accessibility/config.ts | 1 + 5 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 test/accessibility/apps/filter_panel.ts diff --git a/src/plugins/data/public/ui/filter_bar/filter_editor/index.tsx b/src/plugins/data/public/ui/filter_bar/filter_editor/index.tsx index 0e2bcc7581950..7bd4facc9caa9 100644 --- a/src/plugins/data/public/ui/filter_bar/filter_editor/index.tsx +++ b/src/plugins/data/public/ui/filter_bar/filter_editor/index.tsx @@ -106,7 +106,11 @@ class FilterEditorUI extends Component { - + {this.state.isCustomEditorOpen ? ( { { + await esArchiver.unload('logstash_functional'); + }); + it('Discover main page', async () => { await a11y.testAppSnapshot(); }); diff --git a/test/accessibility/apps/filter_panel.ts b/test/accessibility/apps/filter_panel.ts new file mode 100644 index 0000000000000..02f02ca015cac --- /dev/null +++ b/test/accessibility/apps/filter_panel.ts @@ -0,0 +1,95 @@ +/* + * 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 { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const PageObjects = getPageObjects(['common', 'discover', 'home']); + const a11y = getService('a11y'); + const filterBar = getService('filterBar'); + const testSubjects = getService('testSubjects'); + const browser = getService('browser'); + + describe('Filter panel', () => { + before(async () => { + await PageObjects.common.navigateToUrl('home', '/tutorial_directory/sampleData', { + useActualUrl: true, + }); + await PageObjects.home.addSampleDataSet('flights'); + await PageObjects.common.navigateToApp('discover'); + await PageObjects.discover.selectIndexPattern('kibana_sample_data_flights'); + }); + + it('a11y test on add filter panel', async () => { + await PageObjects.discover.openAddFilterPanel(); + await a11y.testAppSnapshot(); + await filterBar.addFilter('OriginCityName', 'is', 'Rome'); + }); + + it('a11y test on filter panel with custom label', async () => { + await filterBar.clickEditFilter('OriginCityName', 'Rome'); + await testSubjects.click('createCustomLabel'); + await a11y.testAppSnapshot(); + }); + + it('a11y test on Edit filter as Query DSL panel', async () => { + await testSubjects.click('editQueryDSL'); + await a11y.testAppSnapshot(); + await browser.pressKeys(browser.keys.ESCAPE); + }); + + // the following tests filter panel options which changes UI + it('a11y test on filter panel options panel', async () => { + await filterBar.addFilter('DestCountry', 'is', 'AU'); + await testSubjects.click('showFilterActions'); + await a11y.testAppSnapshot(); + }); + + it('a11y test on disable all filter options view', async () => { + await testSubjects.click('disableAllFilters'); + await a11y.testAppSnapshot(); + }); + + it('a11y test on pin filters view', async () => { + await testSubjects.click('showFilterActions'); + await testSubjects.click('enableAllFilters'); + await testSubjects.click('showFilterActions'); + await testSubjects.click('pinAllFilters'); + await a11y.testAppSnapshot(); + }); + + it('a11y test on unpin all filters view', async () => { + await testSubjects.click('showFilterActions'); + await testSubjects.click('unpinAllFilters'); + await a11y.testAppSnapshot(); + }); + + it('a11y test on invert inclusion of all filters view', async () => { + await testSubjects.click('showFilterActions'); + await testSubjects.click('invertInclusionAllFilters'); + await a11y.testAppSnapshot(); + }); + + it('a11y test on remove all filtes view', async () => { + await testSubjects.click('showFilterActions'); + await testSubjects.click('removeAllFilters'); + await a11y.testAppSnapshot(); + }); + }); +} diff --git a/test/accessibility/apps/management.ts b/test/accessibility/apps/management.ts index 08177f54ee881..994aa03950437 100644 --- a/test/accessibility/apps/management.ts +++ b/test/accessibility/apps/management.ts @@ -35,6 +35,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.settings.navigateTo(); }); + after(async () => { + await esArchiver.unload('logstash_functional'); + }); + it('main view', async () => { await a11y.testAppSnapshot(); }); diff --git a/test/accessibility/config.ts b/test/accessibility/config.ts index dd366c17a4ba7..9068a7e06defc 100644 --- a/test/accessibility/config.ts +++ b/test/accessibility/config.ts @@ -35,6 +35,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { require.resolve('./apps/management'), require.resolve('./apps/console'), require.resolve('./apps/home'), + require.resolve('./apps/filter_panel'), ], pageObjects, services, From 1ba706c9dd1d0461b60c2c1a45f1a55b136d4e9b Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Wed, 30 Sep 2020 14:57:33 +0100 Subject: [PATCH 018/142] skip failing suite (#78942) --- .../basic/tests/transaction_groups/distribution.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/distribution.ts b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/distribution.ts index 6ea050d2eea3c..bd669600afc14 100644 --- a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/distribution.ts +++ b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/distribution.ts @@ -37,7 +37,8 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); }); - describe('when data is loaded', () => { + // SKIP FAILING TEST to unblock CI: https://github.com/elastic/kibana/issues/78942 + describe.skip('when data is loaded', () => { let response: any; before(async () => { await esArchiver.load(archiveName); From 991e0de22616be0a64ea5d89729736046b6bc4a4 Mon Sep 17 00:00:00 2001 From: Peter Pisljar Date: Wed, 30 Sep 2020 16:44:29 +0200 Subject: [PATCH 019/142] ui_actions service initial docs (#78902) --- docs/developer/plugin-list.asciidoc | 10 +- .../plugins/ui_actions/public/index.md | 12 + ...lugins-ui_actions-public.action.execute.md | 24 ++ ...ui_actions-public.action.getdisplayname.md | 24 ++ ...lugins-ui_actions-public.action.gethref.md | 24 ++ ...ns-ui_actions-public.action.geticontype.md | 24 ++ ...gin-plugins-ui_actions-public.action.id.md | 13 + ...s-ui_actions-public.action.iscompatible.md | 24 ++ ...plugin-plugins-ui_actions-public.action.md | 32 ++ ...ugins-ui_actions-public.action.menuitem.md | 15 + ...-plugins-ui_actions-public.action.order.md | 13 + ...actions-public.action.shouldautoexecute.md | 24 ++ ...n-plugins-ui_actions-public.action.type.md | 13 + ...i_actions-public.action_visualize_field.md | 11 + ...tions-public.action_visualize_geo_field.md | 11 + ...-plugins-ui_actions-public.actionbytype.md | 11 + ..._actions-public.actioncontextmapping.__.md | 11 + ...oncontextmapping.action_visualize_field.md | 11 + ...ntextmapping.action_visualize_geo_field.md | 11 + ...-ui_actions-public.actioncontextmapping.md | 20 ++ ...i_actions-public.actiondefinitionbytype.md | 11 + ...i_actions-public.actionexecutioncontext.md | 13 + ...s-ui_actions-public.actionexecutionmeta.md | 20 ++ ...ions-public.actionexecutionmeta.trigger.md | 13 + ...in-plugins-ui_actions-public.actiontype.md | 11 + ...-ui_actions-public.apply_filter_trigger.md | 11 + ...ns-ui_actions-public.applyfiltertrigger.md | 11 + ...tions-public.buildcontextmenuforactions.md | 24 ++ ...-plugins-ui_actions-public.createaction.md | 22 ++ ...c.incompatibleactionerror._constructor_.md | 13 + ...ons-public.incompatibleactionerror.code.md | 11 + ..._actions-public.incompatibleactionerror.md | 24 ++ ...kibana-plugin-plugins-ui_actions-public.md | 66 ++++ ...plugin-plugins-ui_actions-public.plugin.md | 22 ++ ...-ui_actions-public.select_range_trigger.md | 11 + ...ns-ui_actions-public.selectrangetrigger.md | 11 + ...s-ui_actions-public.trigger.description.md | 13 + ...in-plugins-ui_actions-public.trigger.id.md | 13 + ...lugin-plugins-ui_actions-public.trigger.md | 26 ++ ...plugins-ui_actions-public.trigger.title.md | 13 + ...lugins-ui_actions-public.triggercontext.md | 11 + ...actions-public.triggercontextmapping.__.md | 11 + ...ic.triggercontextmapping.filter_trigger.md | 11 + ...ui_actions-public.triggercontextmapping.md | 23 ++ ...ggercontextmapping.select_range_trigger.md | 11 + ...iggercontextmapping.value_click_trigger.md | 11 + ...rcontextmapping.visualize_field_trigger.md | 11 + ...textmapping.visualize_geo_field_trigger.md | 11 + ...gin-plugins-ui_actions-public.triggerid.md | 11 + ...ublic.uiactionsactiondefinition.execute.md | 24 ++ ...ublic.uiactionsactiondefinition.gethref.md | 24 ++ ...ons-public.uiactionsactiondefinition.id.md | 13 + ....uiactionsactiondefinition.iscompatible.md | 24 ++ ...ctions-public.uiactionsactiondefinition.md | 30 ++ ...tionsactiondefinition.shouldautoexecute.md | 24 ++ ...s-public.uiactionsactiondefinition.type.md | 13 + ...lic.uiactionspresentable.getdisplayname.md | 24 ++ ...ctionspresentable.getdisplaynametooltip.md | 24 ++ ...ons-public.uiactionspresentable.gethref.md | 24 ++ ...public.uiactionspresentable.geticontype.md | 24 ++ ...ns-public.uiactionspresentable.grouping.md | 13 + ..._actions-public.uiactionspresentable.id.md | 13 + ...ublic.uiactionspresentable.iscompatible.md | 24 ++ ...-ui_actions-public.uiactionspresentable.md | 33 ++ ...ns-public.uiactionspresentable.menuitem.md | 15 + ...tions-public.uiactionspresentable.order.md | 13 + ...ons-public.uiactionspresentablegrouping.md | 11 + ...s-public.uiactionsservice._constructor_.md | 20 ++ ...actions-public.uiactionsservice.actions.md | 11 + ...ublic.uiactionsservice.addtriggeraction.md | 15 + ...ns-public.uiactionsservice.attachaction.md | 11 + ...i_actions-public.uiactionsservice.clear.md | 13 + ...ns-public.uiactionsservice.detachaction.md | 11 + ....uiactionsservice.executetriggeractions.md | 16 + ...ublic.uiactionsservice.executionservice.md | 11 + ...ui_actions-public.uiactionsservice.fork.md | 13 + ...tions-public.uiactionsservice.getaction.md | 11 + ...ions-public.uiactionsservice.gettrigger.md | 11 + ...blic.uiactionsservice.gettriggeractions.md | 11 + ...ionsservice.gettriggercompatibleactions.md | 11 + ...tions-public.uiactionsservice.hasaction.md | 11 + ...gins-ui_actions-public.uiactionsservice.md | 41 +++ ...-public.uiactionsservice.registeraction.md | 11 + ...public.uiactionsservice.registertrigger.md | 11 + ...ctions-public.uiactionsservice.triggers.md | 11 + ...ublic.uiactionsservice.triggertoactions.md | 11 + ...ublic.uiactionsservice.unregisteraction.md | 11 + ...s-public.uiactionsserviceparams.actions.md | 11 + ...i_actions-public.uiactionsserviceparams.md | 20 ++ ...-public.uiactionsserviceparams.triggers.md | 11 + ...uiactionsserviceparams.triggertoactions.md | 13 + ...lugins-ui_actions-public.uiactionssetup.md | 11 + ...lugins-ui_actions-public.uiactionsstart.md | 11 + ...s-ui_actions-public.value_click_trigger.md | 11 + ...ins-ui_actions-public.valueclicktrigger.md | 11 + ..._actions-public.visualize_field_trigger.md | 11 + ...ions-public.visualize_geo_field_trigger.md | 11 + ....visualizefieldcontext.contextualfields.md | 11 + ...-public.visualizefieldcontext.fieldname.md | 11 + ...ic.visualizefieldcontext.indexpatternid.md | 11 + ...ui_actions-public.visualizefieldcontext.md | 20 ++ ...ui_actions-public.visualizefieldtrigger.md | 11 + ...actions-public.visualizegeofieldtrigger.md | 11 + src/dev/run_check_published_api_changes.ts | 1 + src/plugins/ui_actions/README.asciidoc | 26 ++ src/plugins/ui_actions/README.md | 10 - src/plugins/ui_actions/public/public.api.md | 337 ++++++++++++++++++ tsconfig.types.json | 5 + 108 files changed, 2014 insertions(+), 11 deletions(-) create mode 100644 docs/development/plugins/ui_actions/public/index.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.execute.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.getdisplayname.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.gethref.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.geticontype.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.id.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.iscompatible.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.menuitem.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.order.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.shouldautoexecute.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.type.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action_visualize_field.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action_visualize_geo_field.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionbytype.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.__.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.action_visualize_field.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.action_visualize_geo_field.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actiondefinitionbytype.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionexecutioncontext.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.trigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actiontype.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.apply_filter_trigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.applyfiltertrigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.buildcontextmenuforactions.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.createaction.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.incompatibleactionerror._constructor_.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.code.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.plugin.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.select_range_trigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.selectrangetrigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.description.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.id.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.title.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontext.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.__.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.filter_trigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.select_range_trigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.value_click_trigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.visualize_field_trigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.visualize_geo_field_trigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggerid.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.execute.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.gethref.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.id.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.iscompatible.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.shouldautoexecute.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.type.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.getdisplayname.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.getdisplaynametooltip.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.gethref.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.geticontype.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.grouping.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.id.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.iscompatible.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.menuitem.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.order.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentablegrouping.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice._constructor_.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.actions.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.addtriggeraction.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.attachaction.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.clear.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.detachaction.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.executetriggeractions.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.executionservice.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.fork.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.getaction.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettrigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettriggeractions.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettriggercompatibleactions.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.hasaction.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.registeraction.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.registertrigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.triggers.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.triggertoactions.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.unregisteraction.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.actions.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.triggers.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.triggertoactions.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionssetup.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsstart.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.value_click_trigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.valueclicktrigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualize_field_trigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualize_geo_field_trigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.contextualfields.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.fieldname.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.indexpatternid.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldtrigger.md create mode 100644 docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizegeofieldtrigger.md create mode 100644 src/plugins/ui_actions/README.asciidoc delete mode 100644 src/plugins/ui_actions/README.md create mode 100644 src/plugins/ui_actions/public/public.api.md diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index 4918a87a3ff76..da62d1707f065 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -180,9 +180,16 @@ It also provides a stateful version of it on the start contract. which also contains the timelion APIs and backend, look at the vis_type_timelion plugin. -|{kib-repo}blob/{branch}/src/plugins/ui_actions/README.md[uiActions] +|<> |An API for: +- creating custom functionality (`actions`) +- creating custom user interaction events (`triggers`) +- attaching and detaching `actions` to `triggers`. +- emitting `trigger` events +- executing `actions` attached to a given `trigger`. +- exposing a context menu for the user to choose the appropriate action when there are multiple actions attached to a single trigger. + |{kib-repo}blob/{branch}/src/plugins/url_forwarding/README.md[urlForwarding] |This plugins contains helpers to redirect legacy URLs. It can be used to forward old URLs to their new counterparts. @@ -524,5 +531,6 @@ in their infrastructure. include::{kibana-root}/src/plugins/dashboard/README.asciidoc[leveloffset=+1] include::{kibana-root}/src/plugins/expressions/README.asciidoc[leveloffset=+1] +include::{kibana-root}/src/plugins/ui_actions/README.asciidoc[leveloffset=+1] include::{kibana-root}/x-pack/plugins/dashboard_enhanced/README.asciidoc[leveloffset=+1] include::{kibana-root}/x-pack/plugins/embeddable_enhanced/README.asciidoc[leveloffset=+1] diff --git a/docs/development/plugins/ui_actions/public/index.md b/docs/development/plugins/ui_actions/public/index.md new file mode 100644 index 0000000000000..cbc7035b880fa --- /dev/null +++ b/docs/development/plugins/ui_actions/public/index.md @@ -0,0 +1,12 @@ + + +[Home](./index.md) + +## API Reference + +## Packages + +| Package | Description | +| --- | --- | +| [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) | | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.execute.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.execute.md new file mode 100644 index 0000000000000..22a520123cf3f --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.execute.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Action](./kibana-plugin-plugins-ui_actions-public.action.md) > [execute](./kibana-plugin-plugins-ui_actions-public.action.execute.md) + +## Action.execute() method + +Executes the action. + +Signature: + +```typescript +execute(context: ActionExecutionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionExecutionContext<Context> | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.getdisplayname.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.getdisplayname.md new file mode 100644 index 0000000000000..cd8cc527e96ec --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.getdisplayname.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Action](./kibana-plugin-plugins-ui_actions-public.action.md) > [getDisplayName](./kibana-plugin-plugins-ui_actions-public.action.getdisplayname.md) + +## Action.getDisplayName() method + +Returns a title to be displayed to the user. + +Signature: + +```typescript +getDisplayName(context: ActionExecutionContext): string; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionExecutionContext<Context> | | + +Returns: + +`string` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.gethref.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.gethref.md new file mode 100644 index 0000000000000..5ad9d5e24cf87 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.gethref.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Action](./kibana-plugin-plugins-ui_actions-public.action.md) > [getHref](./kibana-plugin-plugins-ui_actions-public.action.gethref.md) + +## Action.getHref() method + +This method should return a link if this item can be clicked on. The link is used to navigate user if user middle-clicks it or Ctrl + clicks or right-clicks and selects "Open in new tab". + +Signature: + +```typescript +getHref?(context: ActionExecutionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionExecutionContext<Context> | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.geticontype.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.geticontype.md new file mode 100644 index 0000000000000..34d45c4ec75c2 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.geticontype.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Action](./kibana-plugin-plugins-ui_actions-public.action.md) > [getIconType](./kibana-plugin-plugins-ui_actions-public.action.geticontype.md) + +## Action.getIconType() method + +Optional EUI icon type that can be displayed along with the title. + +Signature: + +```typescript +getIconType(context: ActionExecutionContext): string | undefined; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionExecutionContext<Context> | | + +Returns: + +`string | undefined` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.id.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.id.md new file mode 100644 index 0000000000000..e32a5c8592cce --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.id.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Action](./kibana-plugin-plugins-ui_actions-public.action.md) > [id](./kibana-plugin-plugins-ui_actions-public.action.id.md) + +## Action.id property + +A unique identifier for this action instance. + +Signature: + +```typescript +id: string; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.iscompatible.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.iscompatible.md new file mode 100644 index 0000000000000..7a1f6cd23be17 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.iscompatible.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Action](./kibana-plugin-plugins-ui_actions-public.action.md) > [isCompatible](./kibana-plugin-plugins-ui_actions-public.action.iscompatible.md) + +## Action.isCompatible() method + +Returns a promise that resolves to true if this action is compatible given the context, otherwise resolves to false. + +Signature: + +```typescript +isCompatible(context: ActionExecutionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionExecutionContext<Context> | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.md new file mode 100644 index 0000000000000..19af63a679de8 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.md @@ -0,0 +1,32 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Action](./kibana-plugin-plugins-ui_actions-public.action.md) + +## Action interface + +Signature: + +```typescript +export interface Action extends Partial>> +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [id](./kibana-plugin-plugins-ui_actions-public.action.id.md) | string | A unique identifier for this action instance. | +| [MenuItem](./kibana-plugin-plugins-ui_actions-public.action.menuitem.md) | UiComponent<{
context: ActionExecutionContext<Context>;
}> | UiComponent to render when displaying this action as a context menu item. If not provided, getDisplayName will be used instead. | +| [order](./kibana-plugin-plugins-ui_actions-public.action.order.md) | number | Determined the order when there is more than one action matched to a trigger. Higher numbers are displayed first. | +| [type](./kibana-plugin-plugins-ui_actions-public.action.type.md) | T | The action type is what determines the context shape. | + +## Methods + +| Method | Description | +| --- | --- | +| [execute(context)](./kibana-plugin-plugins-ui_actions-public.action.execute.md) | Executes the action. | +| [getDisplayName(context)](./kibana-plugin-plugins-ui_actions-public.action.getdisplayname.md) | Returns a title to be displayed to the user. | +| [getHref(context)](./kibana-plugin-plugins-ui_actions-public.action.gethref.md) | This method should return a link if this item can be clicked on. The link is used to navigate user if user middle-clicks it or Ctrl + clicks or right-clicks and selects "Open in new tab". | +| [getIconType(context)](./kibana-plugin-plugins-ui_actions-public.action.geticontype.md) | Optional EUI icon type that can be displayed along with the title. | +| [isCompatible(context)](./kibana-plugin-plugins-ui_actions-public.action.iscompatible.md) | Returns a promise that resolves to true if this action is compatible given the context, otherwise resolves to false. | +| [shouldAutoExecute(context)](./kibana-plugin-plugins-ui_actions-public.action.shouldautoexecute.md) | Determines if action should be executed automatically, without first showing up in context menu. false by default. | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.menuitem.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.menuitem.md new file mode 100644 index 0000000000000..ac2168b88e3be --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.menuitem.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Action](./kibana-plugin-plugins-ui_actions-public.action.md) > [MenuItem](./kibana-plugin-plugins-ui_actions-public.action.menuitem.md) + +## Action.MenuItem property + +`UiComponent` to render when displaying this action as a context menu item. If not provided, `getDisplayName` will be used instead. + +Signature: + +```typescript +MenuItem?: UiComponent<{ + context: ActionExecutionContext; + }>; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.order.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.order.md new file mode 100644 index 0000000000000..ce9f66cfe5143 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.order.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Action](./kibana-plugin-plugins-ui_actions-public.action.md) > [order](./kibana-plugin-plugins-ui_actions-public.action.order.md) + +## Action.order property + +Determined the order when there is more than one action matched to a trigger. Higher numbers are displayed first. + +Signature: + +```typescript +order?: number; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.shouldautoexecute.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.shouldautoexecute.md new file mode 100644 index 0000000000000..1a784f5dad2d5 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.shouldautoexecute.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Action](./kibana-plugin-plugins-ui_actions-public.action.md) > [shouldAutoExecute](./kibana-plugin-plugins-ui_actions-public.action.shouldautoexecute.md) + +## Action.shouldAutoExecute() method + +Determines if action should be executed automatically, without first showing up in context menu. false by default. + +Signature: + +```typescript +shouldAutoExecute?(context: ActionExecutionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionExecutionContext<Context> | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.type.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.type.md new file mode 100644 index 0000000000000..c423df9d1324c --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action.type.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Action](./kibana-plugin-plugins-ui_actions-public.action.md) > [type](./kibana-plugin-plugins-ui_actions-public.action.type.md) + +## Action.type property + +The action type is what determines the context shape. + +Signature: + +```typescript +readonly type: T; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action_visualize_field.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action_visualize_field.md new file mode 100644 index 0000000000000..25788d7aecc9f --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action_visualize_field.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [ACTION\_VISUALIZE\_FIELD](./kibana-plugin-plugins-ui_actions-public.action_visualize_field.md) + +## ACTION\_VISUALIZE\_FIELD variable + +Signature: + +```typescript +ACTION_VISUALIZE_FIELD = "ACTION_VISUALIZE_FIELD" +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action_visualize_geo_field.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action_visualize_geo_field.md new file mode 100644 index 0000000000000..c9ef93eff934b --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.action_visualize_geo_field.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [ACTION\_VISUALIZE\_GEO\_FIELD](./kibana-plugin-plugins-ui_actions-public.action_visualize_geo_field.md) + +## ACTION\_VISUALIZE\_GEO\_FIELD variable + +Signature: + +```typescript +ACTION_VISUALIZE_GEO_FIELD = "ACTION_VISUALIZE_GEO_FIELD" +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionbytype.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionbytype.md new file mode 100644 index 0000000000000..3ceb96adadb1a --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionbytype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [ActionByType](./kibana-plugin-plugins-ui_actions-public.actionbytype.md) + +## ActionByType type + +Signature: + +```typescript +export declare type ActionByType = Action; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.__.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.__.md new file mode 100644 index 0000000000000..eb7b1e5954ed2 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.__.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [ActionContextMapping](./kibana-plugin-plugins-ui_actions-public.actioncontextmapping.md) > [""](./kibana-plugin-plugins-ui_actions-public.actioncontextmapping.__.md) + +## ActionContextMapping."" property + +Signature: + +```typescript +[DEFAULT_ACTION]: BaseContext; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.action_visualize_field.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.action_visualize_field.md new file mode 100644 index 0000000000000..eb0547bbf8261 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.action_visualize_field.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [ActionContextMapping](./kibana-plugin-plugins-ui_actions-public.actioncontextmapping.md) > [ACTION\_VISUALIZE\_FIELD](./kibana-plugin-plugins-ui_actions-public.actioncontextmapping.action_visualize_field.md) + +## ActionContextMapping.ACTION\_VISUALIZE\_FIELD property + +Signature: + +```typescript +[ACTION_VISUALIZE_FIELD]: VisualizeFieldContext; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.action_visualize_geo_field.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.action_visualize_geo_field.md new file mode 100644 index 0000000000000..b44ed75106423 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.action_visualize_geo_field.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [ActionContextMapping](./kibana-plugin-plugins-ui_actions-public.actioncontextmapping.md) > [ACTION\_VISUALIZE\_GEO\_FIELD](./kibana-plugin-plugins-ui_actions-public.actioncontextmapping.action_visualize_geo_field.md) + +## ActionContextMapping.ACTION\_VISUALIZE\_GEO\_FIELD property + +Signature: + +```typescript +[ACTION_VISUALIZE_GEO_FIELD]: VisualizeFieldContext; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.md new file mode 100644 index 0000000000000..740e6ac63bfba --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actioncontextmapping.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [ActionContextMapping](./kibana-plugin-plugins-ui_actions-public.actioncontextmapping.md) + +## ActionContextMapping interface + +Signature: + +```typescript +export interface ActionContextMapping +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [""](./kibana-plugin-plugins-ui_actions-public.actioncontextmapping.__.md) | BaseContext | | +| [ACTION\_VISUALIZE\_FIELD](./kibana-plugin-plugins-ui_actions-public.actioncontextmapping.action_visualize_field.md) | VisualizeFieldContext | | +| [ACTION\_VISUALIZE\_GEO\_FIELD](./kibana-plugin-plugins-ui_actions-public.actioncontextmapping.action_visualize_geo_field.md) | VisualizeFieldContext | | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actiondefinitionbytype.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actiondefinitionbytype.md new file mode 100644 index 0000000000000..ba4dc39088fe4 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actiondefinitionbytype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [ActionDefinitionByType](./kibana-plugin-plugins-ui_actions-public.actiondefinitionbytype.md) + +## ActionDefinitionByType type + +Signature: + +```typescript +export declare type ActionDefinitionByType = ActionDefinition; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionexecutioncontext.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionexecutioncontext.md new file mode 100644 index 0000000000000..3271d86779959 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionexecutioncontext.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [ActionExecutionContext](./kibana-plugin-plugins-ui_actions-public.actionexecutioncontext.md) + +## ActionExecutionContext type + +Action methods are executed with Context from trigger + [ActionExecutionMeta](./kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.md) + +Signature: + +```typescript +export declare type ActionExecutionContext = Context & ActionExecutionMeta; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.md new file mode 100644 index 0000000000000..2056d8f9c7fc6 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [ActionExecutionMeta](./kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.md) + +## ActionExecutionMeta interface + +During action execution we can provide additional information, for example, trigger, that caused the action execution + +Signature: + +```typescript +export interface ActionExecutionMeta +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [trigger](./kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.trigger.md) | Trigger | Trigger that executed the action | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.trigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.trigger.md new file mode 100644 index 0000000000000..530c2fe514d2c --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.trigger.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [ActionExecutionMeta](./kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.md) > [trigger](./kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.trigger.md) + +## ActionExecutionMeta.trigger property + +Trigger that executed the action + +Signature: + +```typescript +trigger: Trigger; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actiontype.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actiontype.md new file mode 100644 index 0000000000000..4916585531004 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.actiontype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [ActionType](./kibana-plugin-plugins-ui_actions-public.actiontype.md) + +## ActionType type + +Signature: + +```typescript +export declare type ActionType = keyof ActionContextMapping; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.apply_filter_trigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.apply_filter_trigger.md new file mode 100644 index 0000000000000..94e66bf404f5c --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.apply_filter_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [APPLY\_FILTER\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.apply_filter_trigger.md) + +## APPLY\_FILTER\_TRIGGER variable + +Signature: + +```typescript +APPLY_FILTER_TRIGGER = "FILTER_TRIGGER" +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.applyfiltertrigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.applyfiltertrigger.md new file mode 100644 index 0000000000000..e1fb6d342457e --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.applyfiltertrigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [applyFilterTrigger](./kibana-plugin-plugins-ui_actions-public.applyfiltertrigger.md) + +## applyFilterTrigger variable + +Signature: + +```typescript +applyFilterTrigger: Trigger<'FILTER_TRIGGER'> +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.buildcontextmenuforactions.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.buildcontextmenuforactions.md new file mode 100644 index 0000000000000..2d6c0ff106072 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.buildcontextmenuforactions.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [buildContextMenuForActions](./kibana-plugin-plugins-ui_actions-public.buildcontextmenuforactions.md) + +## buildContextMenuForActions() function + +Transforms an array of Actions to the shape EuiContextMenuPanel expects. + +Signature: + +```typescript +export declare function buildContextMenuForActions({ actions, title, closeMenu, }: BuildContextMenuParams): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| { actions, title, closeMenu, } | BuildContextMenuParams | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.createaction.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.createaction.md new file mode 100644 index 0000000000000..04ab36c2e3f58 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.createaction.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [createAction](./kibana-plugin-plugins-ui_actions-public.createaction.md) + +## createAction() function + +Signature: + +```typescript +export declare function createAction(action: ActionDefinitionByType): ActionByType; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| action | ActionDefinitionByType<T> | | + +Returns: + +`ActionByType` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.incompatibleactionerror._constructor_.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.incompatibleactionerror._constructor_.md new file mode 100644 index 0000000000000..f06bb05270ff0 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.incompatibleactionerror._constructor_.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [IncompatibleActionError](./kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.md) > [(constructor)](./kibana-plugin-plugins-ui_actions-public.incompatibleactionerror._constructor_.md) + +## IncompatibleActionError.(constructor) + +Constructs a new instance of the `IncompatibleActionError` class + +Signature: + +```typescript +constructor(); +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.code.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.code.md new file mode 100644 index 0000000000000..f16aa47438d72 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.code.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [IncompatibleActionError](./kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.md) > [code](./kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.code.md) + +## IncompatibleActionError.code property + +Signature: + +```typescript +code: string; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.md new file mode 100644 index 0000000000000..7c9943a53c2bb --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [IncompatibleActionError](./kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.md) + +## IncompatibleActionError class + +Signature: + +```typescript +export declare class IncompatibleActionError extends Error +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)()](./kibana-plugin-plugins-ui_actions-public.incompatibleactionerror._constructor_.md) | | Constructs a new instance of the IncompatibleActionError class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [code](./kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.code.md) | | string | | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.md new file mode 100644 index 0000000000000..ce4e8c17b9dff --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.md @@ -0,0 +1,66 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) + +## kibana-plugin-plugins-ui\_actions-public package + +## Classes + +| Class | Description | +| --- | --- | +| [IncompatibleActionError](./kibana-plugin-plugins-ui_actions-public.incompatibleactionerror.md) | | +| [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) | | + +## Functions + +| Function | Description | +| --- | --- | +| [buildContextMenuForActions({ actions, title, closeMenu, })](./kibana-plugin-plugins-ui_actions-public.buildcontextmenuforactions.md) | Transforms an array of Actions to the shape EuiContextMenuPanel expects. | +| [createAction(action)](./kibana-plugin-plugins-ui_actions-public.createaction.md) | | +| [plugin(initializerContext)](./kibana-plugin-plugins-ui_actions-public.plugin.md) | | + +## Interfaces + +| Interface | Description | +| --- | --- | +| [Action](./kibana-plugin-plugins-ui_actions-public.action.md) | | +| [ActionContextMapping](./kibana-plugin-plugins-ui_actions-public.actioncontextmapping.md) | | +| [ActionExecutionMeta](./kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.md) | During action execution we can provide additional information, for example, trigger, that caused the action execution | +| [Trigger](./kibana-plugin-plugins-ui_actions-public.trigger.md) | This is a convenience interface used to register a \*trigger\*.Trigger specifies a named anchor to which Action can be attached. When Trigger is being \*called\* it creates a Context object and passes it to the execute method of an Action.More than one action can be attached to a single trigger, in which case when trigger is \*called\* it first displays a context menu for user to pick a single action to execute. | +| [TriggerContextMapping](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.md) | | +| [UiActionsActionDefinition](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.md) | A convenience interface used to register an action. | +| [UiActionsPresentable](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md) | Represents something that can be displayed to user in UI. | +| [UiActionsServiceParams](./kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.md) | | +| [VisualizeFieldContext](./kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.md) | | + +## Variables + +| Variable | Description | +| --- | --- | +| [ACTION\_VISUALIZE\_FIELD](./kibana-plugin-plugins-ui_actions-public.action_visualize_field.md) | | +| [ACTION\_VISUALIZE\_GEO\_FIELD](./kibana-plugin-plugins-ui_actions-public.action_visualize_geo_field.md) | | +| [APPLY\_FILTER\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.apply_filter_trigger.md) | | +| [applyFilterTrigger](./kibana-plugin-plugins-ui_actions-public.applyfiltertrigger.md) | | +| [SELECT\_RANGE\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.select_range_trigger.md) | | +| [selectRangeTrigger](./kibana-plugin-plugins-ui_actions-public.selectrangetrigger.md) | | +| [VALUE\_CLICK\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.value_click_trigger.md) | | +| [valueClickTrigger](./kibana-plugin-plugins-ui_actions-public.valueclicktrigger.md) | | +| [VISUALIZE\_FIELD\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.visualize_field_trigger.md) | | +| [VISUALIZE\_GEO\_FIELD\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.visualize_geo_field_trigger.md) | | +| [visualizeFieldTrigger](./kibana-plugin-plugins-ui_actions-public.visualizefieldtrigger.md) | | +| [visualizeGeoFieldTrigger](./kibana-plugin-plugins-ui_actions-public.visualizegeofieldtrigger.md) | | + +## Type Aliases + +| Type Alias | Description | +| --- | --- | +| [ActionByType](./kibana-plugin-plugins-ui_actions-public.actionbytype.md) | | +| [ActionDefinitionByType](./kibana-plugin-plugins-ui_actions-public.actiondefinitionbytype.md) | | +| [ActionExecutionContext](./kibana-plugin-plugins-ui_actions-public.actionexecutioncontext.md) | Action methods are executed with Context from trigger + [ActionExecutionMeta](./kibana-plugin-plugins-ui_actions-public.actionexecutionmeta.md) | +| [ActionType](./kibana-plugin-plugins-ui_actions-public.actiontype.md) | | +| [TriggerContext](./kibana-plugin-plugins-ui_actions-public.triggercontext.md) | | +| [TriggerId](./kibana-plugin-plugins-ui_actions-public.triggerid.md) | | +| [UiActionsPresentableGrouping](./kibana-plugin-plugins-ui_actions-public.uiactionspresentablegrouping.md) | | +| [UiActionsSetup](./kibana-plugin-plugins-ui_actions-public.uiactionssetup.md) | | +| [UiActionsStart](./kibana-plugin-plugins-ui_actions-public.uiactionsstart.md) | | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.plugin.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.plugin.md new file mode 100644 index 0000000000000..d9427317d4fc6 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.plugin.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [plugin](./kibana-plugin-plugins-ui_actions-public.plugin.md) + +## plugin() function + +Signature: + +```typescript +export declare function plugin(initializerContext: PluginInitializerContext): UiActionsPlugin; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| initializerContext | PluginInitializerContext | | + +Returns: + +`UiActionsPlugin` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.select_range_trigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.select_range_trigger.md new file mode 100644 index 0000000000000..fd784ff17fa84 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.select_range_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [SELECT\_RANGE\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.select_range_trigger.md) + +## SELECT\_RANGE\_TRIGGER variable + +Signature: + +```typescript +SELECT_RANGE_TRIGGER = "SELECT_RANGE_TRIGGER" +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.selectrangetrigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.selectrangetrigger.md new file mode 100644 index 0000000000000..0d9fa2d83ee57 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.selectrangetrigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [selectRangeTrigger](./kibana-plugin-plugins-ui_actions-public.selectrangetrigger.md) + +## selectRangeTrigger variable + +Signature: + +```typescript +selectRangeTrigger: Trigger<'SELECT_RANGE_TRIGGER'> +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.description.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.description.md new file mode 100644 index 0000000000000..76faaf8e1a691 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.description.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Trigger](./kibana-plugin-plugins-ui_actions-public.trigger.md) > [description](./kibana-plugin-plugins-ui_actions-public.trigger.description.md) + +## Trigger.description property + +A longer user friendly description of the trigger. + +Signature: + +```typescript +description?: string; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.id.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.id.md new file mode 100644 index 0000000000000..426f17f9a0352 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.id.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Trigger](./kibana-plugin-plugins-ui_actions-public.trigger.md) > [id](./kibana-plugin-plugins-ui_actions-public.trigger.id.md) + +## Trigger.id property + +Unique name of the trigger as identified in `ui_actions` plugin trigger registry, such as "SELECT\_RANGE\_TRIGGER" or "VALUE\_CLICK\_TRIGGER". + +Signature: + +```typescript +id: ID; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.md new file mode 100644 index 0000000000000..b69bba892f475 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Trigger](./kibana-plugin-plugins-ui_actions-public.trigger.md) + +## Trigger interface + +This is a convenience interface used to register a \*trigger\*. + +`Trigger` specifies a named anchor to which `Action` can be attached. When `Trigger` is being \*called\* it creates a `Context` object and passes it to the `execute` method of an `Action`. + +More than one action can be attached to a single trigger, in which case when trigger is \*called\* it first displays a context menu for user to pick a single action to execute. + +Signature: + +```typescript +export interface Trigger +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [description](./kibana-plugin-plugins-ui_actions-public.trigger.description.md) | string | A longer user friendly description of the trigger. | +| [id](./kibana-plugin-plugins-ui_actions-public.trigger.id.md) | ID | Unique name of the trigger as identified in ui_actions plugin trigger registry, such as "SELECT\_RANGE\_TRIGGER" or "VALUE\_CLICK\_TRIGGER". | +| [title](./kibana-plugin-plugins-ui_actions-public.trigger.title.md) | string | User friendly name of the trigger. | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.title.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.title.md new file mode 100644 index 0000000000000..ded71c8d0c437 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.trigger.title.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [Trigger](./kibana-plugin-plugins-ui_actions-public.trigger.md) > [title](./kibana-plugin-plugins-ui_actions-public.trigger.title.md) + +## Trigger.title property + +User friendly name of the trigger. + +Signature: + +```typescript +title?: string; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontext.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontext.md new file mode 100644 index 0000000000000..4ce95d27ecffa --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontext.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [TriggerContext](./kibana-plugin-plugins-ui_actions-public.triggercontext.md) + +## TriggerContext type + +Signature: + +```typescript +export declare type TriggerContext = T extends TriggerId ? TriggerContextMapping[T] : never; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.__.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.__.md new file mode 100644 index 0000000000000..17ad926f8ee82 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.__.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [TriggerContextMapping](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.md) > [""](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.__.md) + +## TriggerContextMapping."" property + +Signature: + +```typescript +[DEFAULT_TRIGGER]: TriggerContext; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.filter_trigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.filter_trigger.md new file mode 100644 index 0000000000000..0ccf8aa3d7415 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.filter_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [TriggerContextMapping](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.md) > [FILTER\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.filter_trigger.md) + +## TriggerContextMapping.FILTER\_TRIGGER property + +Signature: + +```typescript +[APPLY_FILTER_TRIGGER]: ApplyGlobalFilterActionContext; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.md new file mode 100644 index 0000000000000..9db44d4dc7b05 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [TriggerContextMapping](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.md) + +## TriggerContextMapping interface + +Signature: + +```typescript +export interface TriggerContextMapping +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [""](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.__.md) | TriggerContext | | +| [FILTER\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.filter_trigger.md) | ApplyGlobalFilterActionContext | | +| [SELECT\_RANGE\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.select_range_trigger.md) | RangeSelectContext | | +| [VALUE\_CLICK\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.value_click_trigger.md) | ValueClickContext | | +| [VISUALIZE\_FIELD\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.visualize_field_trigger.md) | VisualizeFieldContext | | +| [VISUALIZE\_GEO\_FIELD\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.visualize_geo_field_trigger.md) | VisualizeFieldContext | | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.select_range_trigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.select_range_trigger.md new file mode 100644 index 0000000000000..c5ef6843390b3 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.select_range_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [TriggerContextMapping](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.md) > [SELECT\_RANGE\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.select_range_trigger.md) + +## TriggerContextMapping.SELECT\_RANGE\_TRIGGER property + +Signature: + +```typescript +[SELECT_RANGE_TRIGGER]: RangeSelectContext; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.value_click_trigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.value_click_trigger.md new file mode 100644 index 0000000000000..129144a66cee5 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.value_click_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [TriggerContextMapping](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.md) > [VALUE\_CLICK\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.value_click_trigger.md) + +## TriggerContextMapping.VALUE\_CLICK\_TRIGGER property + +Signature: + +```typescript +[VALUE_CLICK_TRIGGER]: ValueClickContext; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.visualize_field_trigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.visualize_field_trigger.md new file mode 100644 index 0000000000000..feaaffac8a234 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.visualize_field_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [TriggerContextMapping](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.md) > [VISUALIZE\_FIELD\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.visualize_field_trigger.md) + +## TriggerContextMapping.VISUALIZE\_FIELD\_TRIGGER property + +Signature: + +```typescript +[VISUALIZE_FIELD_TRIGGER]: VisualizeFieldContext; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.visualize_geo_field_trigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.visualize_geo_field_trigger.md new file mode 100644 index 0000000000000..023490a2ae027 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggercontextmapping.visualize_geo_field_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [TriggerContextMapping](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.md) > [VISUALIZE\_GEO\_FIELD\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.triggercontextmapping.visualize_geo_field_trigger.md) + +## TriggerContextMapping.VISUALIZE\_GEO\_FIELD\_TRIGGER property + +Signature: + +```typescript +[VISUALIZE_GEO_FIELD_TRIGGER]: VisualizeFieldContext; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggerid.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggerid.md new file mode 100644 index 0000000000000..6e5a234e286f9 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.triggerid.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [TriggerId](./kibana-plugin-plugins-ui_actions-public.triggerid.md) + +## TriggerId type + +Signature: + +```typescript +export declare type TriggerId = keyof TriggerContextMapping; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.execute.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.execute.md new file mode 100644 index 0000000000000..a2cf61ecc1306 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.execute.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsActionDefinition](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.md) > [execute](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.execute.md) + +## UiActionsActionDefinition.execute() method + +Executes the action. + +Signature: + +```typescript +execute(context: ActionDefinitionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionDefinitionContext<Context> | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.gethref.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.gethref.md new file mode 100644 index 0000000000000..83fee1233a206 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.gethref.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsActionDefinition](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.md) > [getHref](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.gethref.md) + +## UiActionsActionDefinition.getHref() method + +This method should return a link if this item can be clicked on. The link is used to navigate user if user middle-clicks it or Ctrl + clicks or right-clicks and selects "Open in new tab". + +Signature: + +```typescript +getHref?(context: ActionDefinitionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionDefinitionContext<Context> | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.id.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.id.md new file mode 100644 index 0000000000000..01fa6abce3b4a --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.id.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsActionDefinition](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.md) > [id](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.id.md) + +## UiActionsActionDefinition.id property + +ID of the action that uniquely identifies this action in the actions registry. + +Signature: + +```typescript +readonly id: string; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.iscompatible.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.iscompatible.md new file mode 100644 index 0000000000000..736cc40c4243f --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.iscompatible.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsActionDefinition](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.md) > [isCompatible](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.iscompatible.md) + +## UiActionsActionDefinition.isCompatible() method + +Returns a promise that resolves to true if this item is compatible given the context and should be displayed to user, otherwise resolves to false. + +Signature: + +```typescript +isCompatible?(context: ActionDefinitionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionDefinitionContext<Context> | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.md new file mode 100644 index 0000000000000..7c873715795e9 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.md @@ -0,0 +1,30 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsActionDefinition](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.md) + +## UiActionsActionDefinition interface + +A convenience interface used to register an action. + +Signature: + +```typescript +export interface ActionDefinition extends Partial>> +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [id](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.id.md) | string | ID of the action that uniquely identifies this action in the actions registry. | +| [type](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.type.md) | ActionType | ID of the factory for this action. Used to construct dynamic actions. | + +## Methods + +| Method | Description | +| --- | --- | +| [execute(context)](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.execute.md) | Executes the action. | +| [getHref(context)](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.gethref.md) | This method should return a link if this item can be clicked on. The link is used to navigate user if user middle-clicks it or Ctrl + clicks or right-clicks and selects "Open in new tab". | +| [isCompatible(context)](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.iscompatible.md) | Returns a promise that resolves to true if this item is compatible given the context and should be displayed to user, otherwise resolves to false. | +| [shouldAutoExecute(context)](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.shouldautoexecute.md) | Determines if action should be executed automatically, without first showing up in context menu. false by default. | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.shouldautoexecute.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.shouldautoexecute.md new file mode 100644 index 0000000000000..04b9975f3b92e --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.shouldautoexecute.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsActionDefinition](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.md) > [shouldAutoExecute](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.shouldautoexecute.md) + +## UiActionsActionDefinition.shouldAutoExecute() method + +Determines if action should be executed automatically, without first showing up in context menu. false by default. + +Signature: + +```typescript +shouldAutoExecute?(context: ActionDefinitionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionDefinitionContext<Context> | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.type.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.type.md new file mode 100644 index 0000000000000..125f834e9036e --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.type.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsActionDefinition](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.md) > [type](./kibana-plugin-plugins-ui_actions-public.uiactionsactiondefinition.type.md) + +## UiActionsActionDefinition.type property + +ID of the factory for this action. Used to construct dynamic actions. + +Signature: + +```typescript +readonly type?: ActionType; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.getdisplayname.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.getdisplayname.md new file mode 100644 index 0000000000000..986ad4afa5a48 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.getdisplayname.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsPresentable](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md) > [getDisplayName](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.getdisplayname.md) + +## UiActionsPresentable.getDisplayName() method + +Returns a title to be displayed to the user. + +Signature: + +```typescript +getDisplayName(context: Context): string; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | Context | | + +Returns: + +`string` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.getdisplaynametooltip.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.getdisplaynametooltip.md new file mode 100644 index 0000000000000..8fc859d5713e6 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.getdisplaynametooltip.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsPresentable](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md) > [getDisplayNameTooltip](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.getdisplaynametooltip.md) + +## UiActionsPresentable.getDisplayNameTooltip() method + +Returns tooltip text which should be displayed when user hovers this object. Should return empty string if tooltip should not be displayed. + +Signature: + +```typescript +getDisplayNameTooltip(context: Context): string; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | Context | | + +Returns: + +`string` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.gethref.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.gethref.md new file mode 100644 index 0000000000000..0c9bd434ff331 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.gethref.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsPresentable](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md) > [getHref](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.gethref.md) + +## UiActionsPresentable.getHref() method + +This method should return a link if this item can be clicked on. The link is used to navigate user if user middle-clicks it or Ctrl + clicks or right-clicks and selects "Open in new tab". + +Signature: + +```typescript +getHref?(context: Context): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | Context | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.geticontype.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.geticontype.md new file mode 100644 index 0000000000000..8bf5af0f3b7e2 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.geticontype.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsPresentable](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md) > [getIconType](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.geticontype.md) + +## UiActionsPresentable.getIconType() method + +Optional EUI icon type that can be displayed along with the title. + +Signature: + +```typescript +getIconType(context: Context): string | undefined; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | Context | | + +Returns: + +`string | undefined` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.grouping.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.grouping.md new file mode 100644 index 0000000000000..6b160becf1afc --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.grouping.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsPresentable](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md) > [grouping](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.grouping.md) + +## UiActionsPresentable.grouping property + +Grouping where this item should appear as a submenu. Each entry is a new sub-menu level. For example, used to show drilldowns and sharing options in panel context menu in a sub-menu. + +Signature: + +```typescript +readonly grouping?: PresentableGrouping; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.id.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.id.md new file mode 100644 index 0000000000000..e98401d95cba8 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.id.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsPresentable](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md) > [id](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.id.md) + +## UiActionsPresentable.id property + +ID that uniquely identifies this object. + +Signature: + +```typescript +readonly id: string; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.iscompatible.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.iscompatible.md new file mode 100644 index 0000000000000..073f75c840bcd --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.iscompatible.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsPresentable](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md) > [isCompatible](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.iscompatible.md) + +## UiActionsPresentable.isCompatible() method + +Returns a promise that resolves to true if this item is compatible given the context and should be displayed to user, otherwise resolves to false. + +Signature: + +```typescript +isCompatible(context: Context): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | Context | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md new file mode 100644 index 0000000000000..03fa7fb6e447e --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md @@ -0,0 +1,33 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsPresentable](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md) + +## UiActionsPresentable interface + +Represents something that can be displayed to user in UI. + +Signature: + +```typescript +export interface Presentable +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [grouping](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.grouping.md) | PresentableGrouping<Context> | Grouping where this item should appear as a submenu. Each entry is a new sub-menu level. For example, used to show drilldowns and sharing options in panel context menu in a sub-menu. | +| [id](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.id.md) | string | ID that uniquely identifies this object. | +| [MenuItem](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.menuitem.md) | UiComponent<{
context: Context;
}> | UiComponent to render when displaying this entity as a context menu item. If not provided, getDisplayName will be used instead. | +| [order](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.order.md) | number | Determines the display order in relation to other items. Higher numbers are displayed first. | + +## Methods + +| Method | Description | +| --- | --- | +| [getDisplayName(context)](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.getdisplayname.md) | Returns a title to be displayed to the user. | +| [getDisplayNameTooltip(context)](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.getdisplaynametooltip.md) | Returns tooltip text which should be displayed when user hovers this object. Should return empty string if tooltip should not be displayed. | +| [getHref(context)](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.gethref.md) | This method should return a link if this item can be clicked on. The link is used to navigate user if user middle-clicks it or Ctrl + clicks or right-clicks and selects "Open in new tab". | +| [getIconType(context)](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.geticontype.md) | Optional EUI icon type that can be displayed along with the title. | +| [isCompatible(context)](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.iscompatible.md) | Returns a promise that resolves to true if this item is compatible given the context and should be displayed to user, otherwise resolves to false. | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.menuitem.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.menuitem.md new file mode 100644 index 0000000000000..42afe6b8361f0 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.menuitem.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsPresentable](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md) > [MenuItem](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.menuitem.md) + +## UiActionsPresentable.MenuItem property + +`UiComponent` to render when displaying this entity as a context menu item. If not provided, `getDisplayName` will be used instead. + +Signature: + +```typescript +readonly MenuItem?: UiComponent<{ + context: Context; + }>; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.order.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.order.md new file mode 100644 index 0000000000000..0bbf80dc89211 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentable.order.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsPresentable](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.md) > [order](./kibana-plugin-plugins-ui_actions-public.uiactionspresentable.order.md) + +## UiActionsPresentable.order property + +Determines the display order in relation to other items. Higher numbers are displayed first. + +Signature: + +```typescript +readonly order: number; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentablegrouping.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentablegrouping.md new file mode 100644 index 0000000000000..a61ff65e39c69 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionspresentablegrouping.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsPresentableGrouping](./kibana-plugin-plugins-ui_actions-public.uiactionspresentablegrouping.md) + +## UiActionsPresentableGrouping type + +Signature: + +```typescript +export declare type PresentableGrouping = Array>; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice._constructor_.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice._constructor_.md new file mode 100644 index 0000000000000..ff272245dbbf9 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice._constructor_.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [(constructor)](./kibana-plugin-plugins-ui_actions-public.uiactionsservice._constructor_.md) + +## UiActionsService.(constructor) + +Constructs a new instance of the `UiActionsService` class + +Signature: + +```typescript +constructor({ triggers, actions, triggerToActions, }?: UiActionsServiceParams); +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| { triggers, actions, triggerToActions, } | UiActionsServiceParams | | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.actions.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.actions.md new file mode 100644 index 0000000000000..aaf4cebaf841c --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.actions.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [actions](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.actions.md) + +## UiActionsService.actions property + +Signature: + +```typescript +protected readonly actions: ActionRegistry; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.addtriggeraction.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.addtriggeraction.md new file mode 100644 index 0000000000000..1782eef92442c --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.addtriggeraction.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [addTriggerAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.addtriggeraction.md) + +## UiActionsService.addTriggerAction property + +`addTriggerAction` is similar to `attachAction` as it attaches action to a trigger, but it also registers the action, if it has not been registered, yet. + +`addTriggerAction` also infers better typing of the `action` argument. + +Signature: + +```typescript +readonly addTriggerAction: (triggerId: T, action: ActionDefinition | Action) => void; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.attachaction.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.attachaction.md new file mode 100644 index 0000000000000..19f215a96b23b --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.attachaction.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [attachAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.attachaction.md) + +## UiActionsService.attachAction property + +Signature: + +```typescript +readonly attachAction: (triggerId: T, actionId: string) => void; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.clear.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.clear.md new file mode 100644 index 0000000000000..024c7e3c3f85a --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.clear.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [clear](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.clear.md) + +## UiActionsService.clear property + +Removes all registered triggers and actions. + +Signature: + +```typescript +readonly clear: () => void; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.detachaction.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.detachaction.md new file mode 100644 index 0000000000000..a6ff2489c6f0e --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.detachaction.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [detachAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.detachaction.md) + +## UiActionsService.detachAction property + +Signature: + +```typescript +readonly detachAction: (triggerId: TriggerId, actionId: string) => void; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.executetriggeractions.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.executetriggeractions.md new file mode 100644 index 0000000000000..1bb6ca1115248 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.executetriggeractions.md @@ -0,0 +1,16 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [executeTriggerActions](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.executetriggeractions.md) + +## UiActionsService.executeTriggerActions property + +> Warning: This API is now obsolete. +> +> Use `plugins.uiActions.getTrigger(triggerId).exec(params)` instead. +> + +Signature: + +```typescript +readonly executeTriggerActions: (triggerId: T, context: TriggerContext) => Promise; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.executionservice.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.executionservice.md new file mode 100644 index 0000000000000..06384cc110a59 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.executionservice.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [executionService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.executionservice.md) + +## UiActionsService.executionService property + +Signature: + +```typescript +readonly executionService: UiActionsExecutionService; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.fork.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.fork.md new file mode 100644 index 0000000000000..2b7a43a44cca6 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.fork.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [fork](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.fork.md) + +## UiActionsService.fork property + +"Fork" a separate instance of `UiActionsService` that inherits all existing triggers and actions, but going forward all new triggers and actions added to this instance of `UiActionsService` are only available within this instance. + +Signature: + +```typescript +readonly fork: () => UiActionsService; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.getaction.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.getaction.md new file mode 100644 index 0000000000000..0c4584a07b569 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.getaction.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [getAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.getaction.md) + +## UiActionsService.getAction property + +Signature: + +```typescript +readonly getAction: >(id: string) => Action, "" | "ACTION_VISUALIZE_FIELD" | "ACTION_VISUALIZE_GEO_FIELD" | "ACTION_CUSTOMIZE_PANEL" | "ACTION_ADD_PANEL" | "openInspector" | "deletePanel" | "editPanel" | "togglePanel" | "replacePanel" | "clonePanel" | "addToFromLibrary" | "unlinkFromLibrary" | "ACTION_LIBRARY_NOTIFICATION" | "ACTION_GLOBAL_APPLY_FILTER" | "ACTION_SELECT_RANGE" | "ACTION_VALUE_CLICK">; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettrigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettrigger.md new file mode 100644 index 0000000000000..d44dc4e43a52e --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettrigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [getTrigger](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettrigger.md) + +## UiActionsService.getTrigger property + +Signature: + +```typescript +readonly getTrigger: (triggerId: T) => TriggerContract; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettriggeractions.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettriggeractions.md new file mode 100644 index 0000000000000..c65a9a992da2e --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettriggeractions.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [getTriggerActions](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettriggeractions.md) + +## UiActionsService.getTriggerActions property + +Signature: + +```typescript +readonly getTriggerActions: (triggerId: T) => Action[]; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettriggercompatibleactions.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettriggercompatibleactions.md new file mode 100644 index 0000000000000..751abe332b08e --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettriggercompatibleactions.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [getTriggerCompatibleActions](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettriggercompatibleactions.md) + +## UiActionsService.getTriggerCompatibleActions property + +Signature: + +```typescript +readonly getTriggerCompatibleActions: (triggerId: T, context: TriggerContextMapping[T]) => Promise[]>; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.hasaction.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.hasaction.md new file mode 100644 index 0000000000000..2287cb3052864 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.hasaction.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [hasAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.hasaction.md) + +## UiActionsService.hasAction property + +Signature: + +```typescript +readonly hasAction: (actionId: string) => boolean; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.md new file mode 100644 index 0000000000000..c372eb113d682 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.md @@ -0,0 +1,41 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) + +## UiActionsService class + +Signature: + +```typescript +export declare class UiActionsService +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)({ triggers, actions, triggerToActions, })](./kibana-plugin-plugins-ui_actions-public.uiactionsservice._constructor_.md) | | Constructs a new instance of the UiActionsService class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [actions](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.actions.md) | | ActionRegistry | | +| [addTriggerAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.addtriggeraction.md) | | <T extends "" | "SELECT_RANGE_TRIGGER" | "VALUE_CLICK_TRIGGER" | "FILTER_TRIGGER" | "VISUALIZE_FIELD_TRIGGER" | "VISUALIZE_GEO_FIELD_TRIGGER" | "CONTEXT_MENU_TRIGGER" | "PANEL_BADGE_TRIGGER" | "PANEL_NOTIFICATION_TRIGGER">(triggerId: T, action: ActionDefinition<TriggerContextMapping[T]> | Action<TriggerContextMapping[T], "" | "ACTION_VISUALIZE_FIELD" | "ACTION_VISUALIZE_GEO_FIELD" | "ACTION_CUSTOMIZE_PANEL" | "ACTION_ADD_PANEL" | "openInspector" | "deletePanel" | "editPanel" | "togglePanel" | "replacePanel" | "clonePanel" | "addToFromLibrary" | "unlinkFromLibrary" | "ACTION_LIBRARY_NOTIFICATION" | "ACTION_GLOBAL_APPLY_FILTER" | "ACTION_SELECT_RANGE" | "ACTION_VALUE_CLICK">) => void | addTriggerAction is similar to attachAction as it attaches action to a trigger, but it also registers the action, if it has not been registered, yet.addTriggerAction also infers better typing of the action argument. | +| [attachAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.attachaction.md) | | <T extends "" | "SELECT_RANGE_TRIGGER" | "VALUE_CLICK_TRIGGER" | "FILTER_TRIGGER" | "VISUALIZE_FIELD_TRIGGER" | "VISUALIZE_GEO_FIELD_TRIGGER" | "CONTEXT_MENU_TRIGGER" | "PANEL_BADGE_TRIGGER" | "PANEL_NOTIFICATION_TRIGGER">(triggerId: T, actionId: string) => void | | +| [clear](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.clear.md) | | () => void | Removes all registered triggers and actions. | +| [detachAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.detachaction.md) | | (triggerId: TriggerId, actionId: string) => void | | +| [executeTriggerActions](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.executetriggeractions.md) | | <T extends "" | "SELECT_RANGE_TRIGGER" | "VALUE_CLICK_TRIGGER" | "FILTER_TRIGGER" | "VISUALIZE_FIELD_TRIGGER" | "VISUALIZE_GEO_FIELD_TRIGGER" | "CONTEXT_MENU_TRIGGER" | "PANEL_BADGE_TRIGGER" | "PANEL_NOTIFICATION_TRIGGER">(triggerId: T, context: TriggerContext<T>) => Promise<void> | | +| [executionService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.executionservice.md) | | UiActionsExecutionService | | +| [fork](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.fork.md) | | () => UiActionsService | "Fork" a separate instance of UiActionsService that inherits all existing triggers and actions, but going forward all new triggers and actions added to this instance of UiActionsService are only available within this instance. | +| [getAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.getaction.md) | | <T extends ActionDefinition<{}>>(id: string) => Action<ActionContext<T>, "" | "ACTION_VISUALIZE_FIELD" | "ACTION_VISUALIZE_GEO_FIELD" | "ACTION_CUSTOMIZE_PANEL" | "ACTION_ADD_PANEL" | "openInspector" | "deletePanel" | "editPanel" | "togglePanel" | "replacePanel" | "clonePanel" | "addToFromLibrary" | "unlinkFromLibrary" | "ACTION_LIBRARY_NOTIFICATION" | "ACTION_GLOBAL_APPLY_FILTER" | "ACTION_SELECT_RANGE" | "ACTION_VALUE_CLICK"> | | +| [getTrigger](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettrigger.md) | | <T extends "" | "SELECT_RANGE_TRIGGER" | "VALUE_CLICK_TRIGGER" | "FILTER_TRIGGER" | "VISUALIZE_FIELD_TRIGGER" | "VISUALIZE_GEO_FIELD_TRIGGER" | "CONTEXT_MENU_TRIGGER" | "PANEL_BADGE_TRIGGER" | "PANEL_NOTIFICATION_TRIGGER">(triggerId: T) => TriggerContract<T> | | +| [getTriggerActions](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettriggeractions.md) | | <T extends "" | "SELECT_RANGE_TRIGGER" | "VALUE_CLICK_TRIGGER" | "FILTER_TRIGGER" | "VISUALIZE_FIELD_TRIGGER" | "VISUALIZE_GEO_FIELD_TRIGGER" | "CONTEXT_MENU_TRIGGER" | "PANEL_BADGE_TRIGGER" | "PANEL_NOTIFICATION_TRIGGER">(triggerId: T) => Action<TriggerContextMapping[T], "" | "ACTION_VISUALIZE_FIELD" | "ACTION_VISUALIZE_GEO_FIELD" | "ACTION_CUSTOMIZE_PANEL" | "ACTION_ADD_PANEL" | "openInspector" | "deletePanel" | "editPanel" | "togglePanel" | "replacePanel" | "clonePanel" | "addToFromLibrary" | "unlinkFromLibrary" | "ACTION_LIBRARY_NOTIFICATION" | "ACTION_GLOBAL_APPLY_FILTER" | "ACTION_SELECT_RANGE" | "ACTION_VALUE_CLICK">[] | | +| [getTriggerCompatibleActions](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.gettriggercompatibleactions.md) | | <T extends "" | "SELECT_RANGE_TRIGGER" | "VALUE_CLICK_TRIGGER" | "FILTER_TRIGGER" | "VISUALIZE_FIELD_TRIGGER" | "VISUALIZE_GEO_FIELD_TRIGGER" | "CONTEXT_MENU_TRIGGER" | "PANEL_BADGE_TRIGGER" | "PANEL_NOTIFICATION_TRIGGER">(triggerId: T, context: TriggerContextMapping[T]) => Promise<Action<TriggerContextMapping[T], "" | "ACTION_VISUALIZE_FIELD" | "ACTION_VISUALIZE_GEO_FIELD" | "ACTION_CUSTOMIZE_PANEL" | "ACTION_ADD_PANEL" | "openInspector" | "deletePanel" | "editPanel" | "togglePanel" | "replacePanel" | "clonePanel" | "addToFromLibrary" | "unlinkFromLibrary" | "ACTION_LIBRARY_NOTIFICATION" | "ACTION_GLOBAL_APPLY_FILTER" | "ACTION_SELECT_RANGE" | "ACTION_VALUE_CLICK">[]> | | +| [hasAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.hasaction.md) | | (actionId: string) => boolean | | +| [registerAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.registeraction.md) | | <A extends ActionDefinition<{}>>(definition: A) => Action<ActionContext<A>, "" | "ACTION_VISUALIZE_FIELD" | "ACTION_VISUALIZE_GEO_FIELD" | "ACTION_CUSTOMIZE_PANEL" | "ACTION_ADD_PANEL" | "openInspector" | "deletePanel" | "editPanel" | "togglePanel" | "replacePanel" | "clonePanel" | "addToFromLibrary" | "unlinkFromLibrary" | "ACTION_LIBRARY_NOTIFICATION" | "ACTION_GLOBAL_APPLY_FILTER" | "ACTION_SELECT_RANGE" | "ACTION_VALUE_CLICK"> | | +| [registerTrigger](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.registertrigger.md) | | (trigger: Trigger) => void | | +| [triggers](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.triggers.md) | | TriggerRegistry | | +| [triggerToActions](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.triggertoactions.md) | | TriggerToActionsRegistry | | +| [unregisterAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.unregisteraction.md) | | (actionId: string) => void | | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.registeraction.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.registeraction.md new file mode 100644 index 0000000000000..c71e86fc09dc7 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.registeraction.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [registerAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.registeraction.md) + +## UiActionsService.registerAction property + +Signature: + +```typescript +readonly registerAction: >(definition: A) => Action, "" | "ACTION_VISUALIZE_FIELD" | "ACTION_VISUALIZE_GEO_FIELD" | "ACTION_CUSTOMIZE_PANEL" | "ACTION_ADD_PANEL" | "openInspector" | "deletePanel" | "editPanel" | "togglePanel" | "replacePanel" | "clonePanel" | "addToFromLibrary" | "unlinkFromLibrary" | "ACTION_LIBRARY_NOTIFICATION" | "ACTION_GLOBAL_APPLY_FILTER" | "ACTION_SELECT_RANGE" | "ACTION_VALUE_CLICK">; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.registertrigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.registertrigger.md new file mode 100644 index 0000000000000..3002409c02304 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.registertrigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [registerTrigger](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.registertrigger.md) + +## UiActionsService.registerTrigger property + +Signature: + +```typescript +readonly registerTrigger: (trigger: Trigger) => void; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.triggers.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.triggers.md new file mode 100644 index 0000000000000..07d480286e771 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.triggers.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [triggers](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.triggers.md) + +## UiActionsService.triggers property + +Signature: + +```typescript +protected readonly triggers: TriggerRegistry; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.triggertoactions.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.triggertoactions.md new file mode 100644 index 0000000000000..1b79a1dd84593 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.triggertoactions.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [triggerToActions](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.triggertoactions.md) + +## UiActionsService.triggerToActions property + +Signature: + +```typescript +protected readonly triggerToActions: TriggerToActionsRegistry; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.unregisteraction.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.unregisteraction.md new file mode 100644 index 0000000000000..0e0eb971c1a7b --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsservice.unregisteraction.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsService](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.md) > [unregisterAction](./kibana-plugin-plugins-ui_actions-public.uiactionsservice.unregisteraction.md) + +## UiActionsService.unregisterAction property + +Signature: + +```typescript +readonly unregisterAction: (actionId: string) => void; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.actions.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.actions.md new file mode 100644 index 0000000000000..44d2957b0f8ba --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.actions.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsServiceParams](./kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.md) > [actions](./kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.actions.md) + +## UiActionsServiceParams.actions property + +Signature: + +```typescript +readonly actions?: ActionRegistry; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.md new file mode 100644 index 0000000000000..756cd3de92ef8 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsServiceParams](./kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.md) + +## UiActionsServiceParams interface + +Signature: + +```typescript +export interface UiActionsServiceParams +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [actions](./kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.actions.md) | ActionRegistry | | +| [triggers](./kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.triggers.md) | TriggerRegistry | | +| [triggerToActions](./kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.triggertoactions.md) | TriggerToActionsRegistry | A 1-to-N mapping from Trigger to zero or more Action. | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.triggers.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.triggers.md new file mode 100644 index 0000000000000..061aa5eb68c5d --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.triggers.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsServiceParams](./kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.md) > [triggers](./kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.triggers.md) + +## UiActionsServiceParams.triggers property + +Signature: + +```typescript +readonly triggers?: TriggerRegistry; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.triggertoactions.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.triggertoactions.md new file mode 100644 index 0000000000000..bdf1acba484e6 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.triggertoactions.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsServiceParams](./kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.md) > [triggerToActions](./kibana-plugin-plugins-ui_actions-public.uiactionsserviceparams.triggertoactions.md) + +## UiActionsServiceParams.triggerToActions property + +A 1-to-N mapping from `Trigger` to zero or more `Action`. + +Signature: + +```typescript +readonly triggerToActions?: TriggerToActionsRegistry; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionssetup.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionssetup.md new file mode 100644 index 0000000000000..d03d4cf9f1ee2 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionssetup.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsSetup](./kibana-plugin-plugins-ui_actions-public.uiactionssetup.md) + +## UiActionsSetup type + +Signature: + +```typescript +export declare type UiActionsSetup = Pick; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsstart.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsstart.md new file mode 100644 index 0000000000000..41f5bbf705e20 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.uiactionsstart.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [UiActionsStart](./kibana-plugin-plugins-ui_actions-public.uiactionsstart.md) + +## UiActionsStart type + +Signature: + +```typescript +export declare type UiActionsStart = PublicMethodsOf; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.value_click_trigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.value_click_trigger.md new file mode 100644 index 0000000000000..bd8d4dc50b8fd --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.value_click_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [VALUE\_CLICK\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.value_click_trigger.md) + +## VALUE\_CLICK\_TRIGGER variable + +Signature: + +```typescript +VALUE_CLICK_TRIGGER = "VALUE_CLICK_TRIGGER" +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.valueclicktrigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.valueclicktrigger.md new file mode 100644 index 0000000000000..5c4fc284d83b1 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.valueclicktrigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [valueClickTrigger](./kibana-plugin-plugins-ui_actions-public.valueclicktrigger.md) + +## valueClickTrigger variable + +Signature: + +```typescript +valueClickTrigger: Trigger<'VALUE_CLICK_TRIGGER'> +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualize_field_trigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualize_field_trigger.md new file mode 100644 index 0000000000000..c5d9f53557d6f --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualize_field_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [VISUALIZE\_FIELD\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.visualize_field_trigger.md) + +## VISUALIZE\_FIELD\_TRIGGER variable + +Signature: + +```typescript +VISUALIZE_FIELD_TRIGGER = "VISUALIZE_FIELD_TRIGGER" +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualize_geo_field_trigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualize_geo_field_trigger.md new file mode 100644 index 0000000000000..a9396c1905485 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualize_geo_field_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [VISUALIZE\_GEO\_FIELD\_TRIGGER](./kibana-plugin-plugins-ui_actions-public.visualize_geo_field_trigger.md) + +## VISUALIZE\_GEO\_FIELD\_TRIGGER variable + +Signature: + +```typescript +VISUALIZE_GEO_FIELD_TRIGGER = "VISUALIZE_GEO_FIELD_TRIGGER" +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.contextualfields.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.contextualfields.md new file mode 100644 index 0000000000000..681d4127e4030 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.contextualfields.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [VisualizeFieldContext](./kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.md) > [contextualFields](./kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.contextualfields.md) + +## VisualizeFieldContext.contextualFields property + +Signature: + +```typescript +contextualFields?: string[]; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.fieldname.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.fieldname.md new file mode 100644 index 0000000000000..95f45b1fbee4a --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.fieldname.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [VisualizeFieldContext](./kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.md) > [fieldName](./kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.fieldname.md) + +## VisualizeFieldContext.fieldName property + +Signature: + +```typescript +fieldName: string; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.indexpatternid.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.indexpatternid.md new file mode 100644 index 0000000000000..588c115cd9885 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.indexpatternid.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [VisualizeFieldContext](./kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.md) > [indexPatternId](./kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.indexpatternid.md) + +## VisualizeFieldContext.indexPatternId property + +Signature: + +```typescript +indexPatternId: string; +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.md new file mode 100644 index 0000000000000..7aeb254db7771 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [VisualizeFieldContext](./kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.md) + +## VisualizeFieldContext interface + +Signature: + +```typescript +export interface VisualizeFieldContext +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [contextualFields](./kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.contextualfields.md) | string[] | | +| [fieldName](./kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.fieldname.md) | string | | +| [indexPatternId](./kibana-plugin-plugins-ui_actions-public.visualizefieldcontext.indexpatternid.md) | string | | + diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldtrigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldtrigger.md new file mode 100644 index 0000000000000..15510bd3eb4a3 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizefieldtrigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [visualizeFieldTrigger](./kibana-plugin-plugins-ui_actions-public.visualizefieldtrigger.md) + +## visualizeFieldTrigger variable + +Signature: + +```typescript +visualizeFieldTrigger: Trigger<'VISUALIZE_FIELD_TRIGGER'> +``` diff --git a/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizegeofieldtrigger.md b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizegeofieldtrigger.md new file mode 100644 index 0000000000000..faec6a69b71f9 --- /dev/null +++ b/docs/development/plugins/ui_actions/public/kibana-plugin-plugins-ui_actions-public.visualizegeofieldtrigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-ui\_actions-public](./kibana-plugin-plugins-ui_actions-public.md) > [visualizeGeoFieldTrigger](./kibana-plugin-plugins-ui_actions-public.visualizegeofieldtrigger.md) + +## visualizeGeoFieldTrigger variable + +Signature: + +```typescript +visualizeGeoFieldTrigger: Trigger<'VISUALIZE_GEO_FIELD_TRIGGER'> +``` diff --git a/src/dev/run_check_published_api_changes.ts b/src/dev/run_check_published_api_changes.ts index 5a6b6e092da2c..aaac706f991c2 100644 --- a/src/dev/run_check_published_api_changes.ts +++ b/src/dev/run_check_published_api_changes.ts @@ -232,6 +232,7 @@ async function run(folder: string, { opts }: { opts: Options }): Promise Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { CoreSetup } from 'src/core/public'; +import { CoreStart } from 'src/core/public'; +import { EnvironmentMode } from '@kbn/config'; +import { EuiContextMenuPanelDescriptor } from '@elastic/eui'; +import { Observable } from 'rxjs'; +import { PackageInfo } from '@kbn/config'; +import { Plugin } from 'src/core/public'; +import { PluginInitializerContext as PluginInitializerContext_2 } from 'src/core/public'; +import React from 'react'; +import * as Rx from 'rxjs'; +import { UiComponent } from 'src/plugins/kibana_utils/public'; + +// Warning: (ae-forgotten-export) The symbol "BaseContext" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "Action" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface Action extends Partial>> { + execute(context: ActionExecutionContext): Promise; + getDisplayName(context: ActionExecutionContext): string; + getHref?(context: ActionExecutionContext): Promise; + getIconType(context: ActionExecutionContext): string | undefined; + id: string; + isCompatible(context: ActionExecutionContext): Promise; + MenuItem?: UiComponent<{ + context: ActionExecutionContext; + }>; + order?: number; + shouldAutoExecute?(context: ActionExecutionContext): Promise; + readonly type: T; +} + +// Warning: (ae-missing-release-tag) "ACTION_VISUALIZE_FIELD" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const ACTION_VISUALIZE_FIELD = "ACTION_VISUALIZE_FIELD"; + +// Warning: (ae-missing-release-tag) "ACTION_VISUALIZE_GEO_FIELD" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const ACTION_VISUALIZE_GEO_FIELD = "ACTION_VISUALIZE_GEO_FIELD"; + +// Warning: (ae-missing-release-tag) "ActionByType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type ActionByType = Action; + +// Warning: (ae-missing-release-tag) "ActionContextMapping" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface ActionContextMapping { + // Warning: (ae-forgotten-export) The symbol "DEFAULT_ACTION" needs to be exported by the entry point index.d.ts + // + // (undocumented) + [DEFAULT_ACTION]: BaseContext; + // (undocumented) + [ACTION_VISUALIZE_FIELD]: VisualizeFieldContext; + // (undocumented) + [ACTION_VISUALIZE_GEO_FIELD]: VisualizeFieldContext; +} + +// Warning: (ae-missing-release-tag) "ActionDefinitionByType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type ActionDefinitionByType = UiActionsActionDefinition; + +// Warning: (ae-missing-release-tag) "ActionExecutionContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export type ActionExecutionContext = Context & ActionExecutionMeta; + +// Warning: (ae-missing-release-tag) "ActionExecutionMeta" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export interface ActionExecutionMeta { + trigger: Trigger; +} + +// Warning: (ae-missing-release-tag) "ActionType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type ActionType = keyof ActionContextMapping; + +// Warning: (ae-missing-release-tag) "APPLY_FILTER_TRIGGER" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const APPLY_FILTER_TRIGGER = "FILTER_TRIGGER"; + +// Warning: (ae-missing-release-tag) "applyFilterTrigger" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const applyFilterTrigger: Trigger<'FILTER_TRIGGER'>; + +// Warning: (ae-forgotten-export) The symbol "BuildContextMenuParams" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "buildContextMenuForActions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export function buildContextMenuForActions({ actions, title, closeMenu, }: BuildContextMenuParams): Promise; + +// Warning: (ae-forgotten-export) The symbol "ActionDefinitionByType" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "createAction" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export function createAction(action: ActionDefinitionByType_2): ActionByType; + +// Warning: (ae-missing-release-tag) "IncompatibleActionError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class IncompatibleActionError extends Error { + constructor(); + // (undocumented) + code: string; +} + +// Warning: (ae-forgotten-export) The symbol "PluginInitializerContext" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "UiActionsPlugin" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "plugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export function plugin(initializerContext: PluginInitializerContext): UiActionsPlugin; + +// Warning: (ae-missing-release-tag) "SELECT_RANGE_TRIGGER" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const SELECT_RANGE_TRIGGER = "SELECT_RANGE_TRIGGER"; + +// Warning: (ae-missing-release-tag) "selectRangeTrigger" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const selectRangeTrigger: Trigger<'SELECT_RANGE_TRIGGER'>; + +// Warning: (ae-missing-release-tag) "Trigger" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export interface Trigger { + description?: string; + id: ID; + title?: string; +} + +// Warning: (ae-missing-release-tag) "TriggerContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type TriggerContext = T extends TriggerId ? TriggerContextMapping[T] : never; + +// Warning: (ae-missing-release-tag) "TriggerContextMapping" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface TriggerContextMapping { + // Warning: (ae-forgotten-export) The symbol "DEFAULT_TRIGGER" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "TriggerContext" needs to be exported by the entry point index.d.ts + // + // (undocumented) + [DEFAULT_TRIGGER]: TriggerContext_2; + // Warning: (ae-forgotten-export) The symbol "ApplyGlobalFilterActionContext" needs to be exported by the entry point index.d.ts + // + // (undocumented) + [APPLY_FILTER_TRIGGER]: ApplyGlobalFilterActionContext; + // Warning: (ae-forgotten-export) The symbol "RangeSelectContext" needs to be exported by the entry point index.d.ts + // + // (undocumented) + [SELECT_RANGE_TRIGGER]: RangeSelectContext; + // Warning: (ae-forgotten-export) The symbol "ValueClickContext" needs to be exported by the entry point index.d.ts + // + // (undocumented) + [VALUE_CLICK_TRIGGER]: ValueClickContext; + // (undocumented) + [VISUALIZE_FIELD_TRIGGER]: VisualizeFieldContext; + // (undocumented) + [VISUALIZE_GEO_FIELD_TRIGGER]: VisualizeFieldContext; +} + +// Warning: (ae-missing-release-tag) "TriggerId" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type TriggerId = keyof TriggerContextMapping; + +// Warning: (ae-forgotten-export) The symbol "ActionDefinitionContext" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "ActionDefinition" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export interface UiActionsActionDefinition extends Partial>> { + execute(context: ActionDefinitionContext): Promise; + getHref?(context: ActionDefinitionContext): Promise; + readonly id: string; + isCompatible?(context: ActionDefinitionContext): Promise; + shouldAutoExecute?(context: ActionDefinitionContext): Promise; + readonly type?: ActionType; +} + +// Warning: (ae-missing-release-tag) "Presentable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export interface UiActionsPresentable { + getDisplayName(context: Context): string; + getDisplayNameTooltip(context: Context): string; + getHref?(context: Context): Promise; + getIconType(context: Context): string | undefined; + readonly grouping?: UiActionsPresentableGrouping; + readonly id: string; + isCompatible(context: Context): Promise; + readonly MenuItem?: UiComponent<{ + context: Context; + }>; + readonly order: number; +} + +// Warning: (ae-forgotten-export) The symbol "PresentableGroup" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "PresentableGrouping" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type UiActionsPresentableGrouping = Array>; + +// Warning: (ae-missing-release-tag) "UiActionsService" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class UiActionsService { + constructor({ triggers, actions, triggerToActions, }?: UiActionsServiceParams); + // Warning: (ae-forgotten-export) The symbol "ActionRegistry" needs to be exported by the entry point index.d.ts + // + // (undocumented) + protected readonly actions: ActionRegistry; + readonly addTriggerAction: (triggerId: T, action: UiActionsActionDefinition | Action) => void; + // (undocumented) + readonly attachAction: (triggerId: T, actionId: string) => void; + readonly clear: () => void; + // (undocumented) + readonly detachAction: (triggerId: TriggerId, actionId: string) => void; + // @deprecated (undocumented) + readonly executeTriggerActions: (triggerId: T, context: TriggerContext) => Promise; + // Warning: (ae-forgotten-export) The symbol "UiActionsExecutionService" needs to be exported by the entry point index.d.ts + // + // (undocumented) + readonly executionService: UiActionsExecutionService; + readonly fork: () => UiActionsService; + // (undocumented) + readonly getAction: >(id: string) => Action, "" | "ACTION_VISUALIZE_FIELD" | "ACTION_VISUALIZE_GEO_FIELD" | "ACTION_CUSTOMIZE_PANEL" | "ACTION_ADD_PANEL" | "openInspector" | "deletePanel" | "editPanel" | "togglePanel" | "replacePanel" | "clonePanel" | "addToFromLibrary" | "unlinkFromLibrary" | "ACTION_LIBRARY_NOTIFICATION" | "ACTION_GLOBAL_APPLY_FILTER" | "ACTION_SELECT_RANGE" | "ACTION_VALUE_CLICK">; + // Warning: (ae-forgotten-export) The symbol "TriggerContract" needs to be exported by the entry point index.d.ts + // + // (undocumented) + readonly getTrigger: (triggerId: T) => TriggerContract; + // (undocumented) + readonly getTriggerActions: (triggerId: T) => Action[]; + // (undocumented) + readonly getTriggerCompatibleActions: (triggerId: T, context: TriggerContextMapping[T]) => Promise[]>; + // (undocumented) + readonly hasAction: (actionId: string) => boolean; + // Warning: (ae-forgotten-export) The symbol "ActionContext" needs to be exported by the entry point index.d.ts + // + // (undocumented) + readonly registerAction: >(definition: A) => Action, "" | "ACTION_VISUALIZE_FIELD" | "ACTION_VISUALIZE_GEO_FIELD" | "ACTION_CUSTOMIZE_PANEL" | "ACTION_ADD_PANEL" | "openInspector" | "deletePanel" | "editPanel" | "togglePanel" | "replacePanel" | "clonePanel" | "addToFromLibrary" | "unlinkFromLibrary" | "ACTION_LIBRARY_NOTIFICATION" | "ACTION_GLOBAL_APPLY_FILTER" | "ACTION_SELECT_RANGE" | "ACTION_VALUE_CLICK">; + // (undocumented) + readonly registerTrigger: (trigger: Trigger) => void; + // Warning: (ae-forgotten-export) The symbol "TriggerRegistry" needs to be exported by the entry point index.d.ts + // + // (undocumented) + protected readonly triggers: TriggerRegistry; + // Warning: (ae-forgotten-export) The symbol "TriggerToActionsRegistry" needs to be exported by the entry point index.d.ts + // + // (undocumented) + protected readonly triggerToActions: TriggerToActionsRegistry; + // (undocumented) + readonly unregisterAction: (actionId: string) => void; +} + +// Warning: (ae-missing-release-tag) "UiActionsServiceParams" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface UiActionsServiceParams { + // (undocumented) + readonly actions?: ActionRegistry; + // (undocumented) + readonly triggers?: TriggerRegistry; + readonly triggerToActions?: TriggerToActionsRegistry; +} + +// Warning: (ae-missing-release-tag) "UiActionsSetup" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type UiActionsSetup = Pick; + +// Warning: (ae-missing-release-tag) "UiActionsStart" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type UiActionsStart = PublicMethodsOf; + +// Warning: (ae-missing-release-tag) "VALUE_CLICK_TRIGGER" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const VALUE_CLICK_TRIGGER = "VALUE_CLICK_TRIGGER"; + +// Warning: (ae-missing-release-tag) "valueClickTrigger" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const valueClickTrigger: Trigger<'VALUE_CLICK_TRIGGER'>; + +// Warning: (ae-missing-release-tag) "VISUALIZE_FIELD_TRIGGER" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const VISUALIZE_FIELD_TRIGGER = "VISUALIZE_FIELD_TRIGGER"; + +// Warning: (ae-missing-release-tag) "VISUALIZE_GEO_FIELD_TRIGGER" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const VISUALIZE_GEO_FIELD_TRIGGER = "VISUALIZE_GEO_FIELD_TRIGGER"; + +// Warning: (ae-missing-release-tag) "VisualizeFieldContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface VisualizeFieldContext { + // (undocumented) + contextualFields?: string[]; + // (undocumented) + fieldName: string; + // (undocumented) + indexPatternId: string; +} + +// Warning: (ae-missing-release-tag) "visualizeFieldTrigger" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const visualizeFieldTrigger: Trigger<'VISUALIZE_FIELD_TRIGGER'>; + +// Warning: (ae-missing-release-tag) "visualizeGeoFieldTrigger" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const visualizeGeoFieldTrigger: Trigger<'VISUALIZE_GEO_FIELD_TRIGGER'>; + + +// (No @packageDocumentation comment for this package) + +``` diff --git a/tsconfig.types.json b/tsconfig.types.json index 4b7dfa2d014a3..86a45f6db1697 100644 --- a/tsconfig.types.json +++ b/tsconfig.types.json @@ -13,6 +13,11 @@ "src/core/public/index.ts", "src/plugins/data/server/index.ts", "src/plugins/data/public/index.ts", + "src/plugins/embeddable/server/index.ts", + "src/plugins/embeddable/public/index.ts", + "src/plugins/expressions/server/index.ts", + "src/plugins/expressions/public/index.ts", + "src/plugins/ui_actions/public/index.ts", "typings" ] } From f993d2d8e9061d3f6fe1ea533fc9f62475e333e6 Mon Sep 17 00:00:00 2001 From: Tim Roes Date: Wed, 30 Sep 2020 16:47:46 +0200 Subject: [PATCH 020/142] Optimize charts plugin (#78922) * Optimize charts plugin * Fix issues to keep same behavior * Remove dead import * Revert name change --- .../charts/public/services/colors/color_palette.ts | 6 +++--- .../charts/public/services/colors/colors_palette.test.ts | 6 ++++++ .../charts/public/services/colors/mapped_colors.test.ts | 8 ++++---- .../charts/public/services/colors/mapped_colors.ts | 4 ++-- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/plugins/charts/public/services/colors/color_palette.ts b/src/plugins/charts/public/services/colors/color_palette.ts index 464e9e3a66101..e1c32fe68da12 100644 --- a/src/plugins/charts/public/services/colors/color_palette.ts +++ b/src/plugins/charts/public/services/colors/color_palette.ts @@ -17,8 +17,8 @@ * under the License. */ -import d3 from 'd3'; import _ from 'lodash'; +import { hsl } from 'color'; import { seedColors } from './seed_colors'; @@ -49,7 +49,7 @@ const fraction = function (goal: number) { * If the number is greater than the length of seed colors available, * new colors are generated up to the value of the input number. */ -export function createColorPalette(num?: any): string[] { +export function createColorPalette(num: number): string[] { if (!_.isNumber(num)) { throw new TypeError('ColorPaletteUtilService expects a number'); } @@ -58,7 +58,7 @@ export function createColorPalette(num?: any): string[] { const seedLength = seedColors.length; _.times(num - seedLength, function (i) { - colors.push(d3.hsl((fraction(i + seedLength + 1) * 360 + offset) % 360, 0.5, 0.5).toString()); + colors.push(hsl((fraction(i + seedLength + 1) * 360 + offset) % 360, 0.5, 0.5).hex()); }); return colors; diff --git a/src/plugins/charts/public/services/colors/colors_palette.test.ts b/src/plugins/charts/public/services/colors/colors_palette.test.ts index 6612447cefe9e..02ff5a6056d54 100644 --- a/src/plugins/charts/public/services/colors/colors_palette.test.ts +++ b/src/plugins/charts/public/services/colors/colors_palette.test.ts @@ -37,26 +37,32 @@ describe('Color Palette', () => { it('should throw an error if input is not a number', () => { expect(() => { + // @ts-expect-error createColorPalette(string); }).toThrowError(); expect(() => { + // @ts-expect-error createColorPalette(bool); }).toThrowError(); expect(() => { + // @ts-expect-error createColorPalette(nullValue); }).toThrowError(); expect(() => { + // @ts-expect-error createColorPalette(emptyArr); }).toThrowError(); expect(() => { + // @ts-expect-error createColorPalette(emptyObject); }).toThrowError(); expect(() => { + // @ts-expect-error createColorPalette(); }).toThrowError(); }); diff --git a/src/plugins/charts/public/services/colors/mapped_colors.test.ts b/src/plugins/charts/public/services/colors/mapped_colors.test.ts index e97ca8ac257b4..9d00bf098de4c 100644 --- a/src/plugins/charts/public/services/colors/mapped_colors.test.ts +++ b/src/plugins/charts/public/services/colors/mapped_colors.test.ts @@ -18,7 +18,7 @@ */ import _ from 'lodash'; -import d3 from 'd3'; +import Color from 'color'; import { coreMock } from '../../../../../core/public/mocks'; import { COLOR_MAPPING_SETTING } from '../../../common'; @@ -61,7 +61,7 @@ describe('Mapped Colors', () => { mappedColors.mapKeys(arr); const colorValues = _(mappedColors.mapping).values(); - expect(colorValues.includes(seedColors[0])).toBe(false); + expect(colorValues).not.toContain(seedColors[0]); expect(colorValues.uniq().size()).toBe(arr.length); }); @@ -78,8 +78,8 @@ describe('Mapped Colors', () => { }); it('should treat different formats of colors as equal', () => { - const color = d3.rgb(seedColors[0]); - const rgb = `rgb(${color.r}, ${color.g}, ${color.b})`; + const color = new Color(seedColors[0]); + const rgb = `rgb(${color.red()}, ${color.green()}, ${color.blue()})`; const newConfig = { bar: rgb }; config.set(COLOR_MAPPING_SETTING, newConfig); diff --git a/src/plugins/charts/public/services/colors/mapped_colors.ts b/src/plugins/charts/public/services/colors/mapped_colors.ts index 3b9e1501d638d..15f9be32b829c 100644 --- a/src/plugins/charts/public/services/colors/mapped_colors.ts +++ b/src/plugins/charts/public/services/colors/mapped_colors.ts @@ -18,14 +18,14 @@ */ import _ from 'lodash'; -import d3 from 'd3'; +import Color from 'color'; import { CoreSetup } from 'kibana/public'; import { COLOR_MAPPING_SETTING } from '../../../common'; import { createColorPalette } from './color_palette'; -const standardizeColor = (color: string) => d3.rgb(color).toString(); +const standardizeColor = (color: string) => new Color(color).hex().toLowerCase(); /** * Maintains a lookup table that associates the value (key) with a hex color (value) From 1b26c906eb40f703b6c17a4b7ff6558467d715b2 Mon Sep 17 00:00:00 2001 From: Robert Oskamp Date: Wed, 30 Sep 2020 17:07:27 +0200 Subject: [PATCH 021/142] [ML] Skip full ML access permission test --- x-pack/test/functional/apps/ml/permissions/full_ml_access.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/ml/permissions/full_ml_access.ts b/x-pack/test/functional/apps/ml/permissions/full_ml_access.ts index c3dde872fa4a6..7e9b73686a23b 100644 --- a/x-pack/test/functional/apps/ml/permissions/full_ml_access.ts +++ b/x-pack/test/functional/apps/ml/permissions/full_ml_access.ts @@ -16,7 +16,8 @@ export default function ({ getService }: FtrProviderContext) { const testUsers = [USER.ML_POWERUSER, USER.ML_POWERUSER_SPACES]; - describe('for user with full ML access', function () { + // flaky UI behavior makes this test fail, see https://github.com/elastic/kibana/issues/78965 + describe.skip('for user with full ML access', function () { this.tags(['skipFirefox', 'mlqa']); describe('with no data loaded', function () { From 5fd785a5b117285c2d3b97f2b8f3e087c0a4150a Mon Sep 17 00:00:00 2001 From: Mikhail Shustov Date: Wed, 30 Sep 2020 18:07:57 +0300 Subject: [PATCH 022/142] load apm-rum agent lazily (#78760) * load apm-agent-lazily * update docs * remove outdated comment * add test --- src/core/public/apm_system.ts | 75 +++++++++++++++++++ src/core/public/kbn_bootstrap.test.mocks.ts | 50 +++++++++++++ src/core/public/kbn_bootstrap.test.ts | 54 ++++++++++++++ src/core/public/kbn_bootstrap.ts | 80 +++++++-------------- src/core/public/public.api.md | 2 +- 5 files changed, 204 insertions(+), 57 deletions(-) create mode 100644 src/core/public/apm_system.ts create mode 100644 src/core/public/kbn_bootstrap.test.mocks.ts create mode 100644 src/core/public/kbn_bootstrap.test.ts diff --git a/src/core/public/apm_system.ts b/src/core/public/apm_system.ts new file mode 100644 index 0000000000000..0a18f02c97293 --- /dev/null +++ b/src/core/public/apm_system.ts @@ -0,0 +1,75 @@ +/* + * 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. + */ + +/** + * This is the entry point used to boot the frontend when serving a application + * that lives in the Kibana Platform. + * + * Any changes to this file should be kept in sync with + * src/legacy/ui/ui_bundles/app_entry_template.js + */ +import type { InternalApplicationStart } from './application'; + +interface ApmConfig { + // AgentConfigOptions is not exported from @elastic/apm-rum + globalLabels?: Record; +} + +interface StartDeps { + application: InternalApplicationStart; +} + +export class ApmSystem { + private readonly enabled: boolean; + /** + * `apmConfig` would be populated with relevant APM RUM agent + * configuration if server is started with `ELASTIC_APM_ACTIVE=true` + */ + constructor(private readonly apmConfig?: ApmConfig) { + this.enabled = process.env.IS_KIBANA_DISTRIBUTABLE !== 'true' && apmConfig != null; + } + + async setup() { + if (!this.enabled) return; + const { init, apm } = await import('@elastic/apm-rum'); + const { globalLabels, ...apmConfig } = this.apmConfig!; + if (globalLabels) { + apm.addLabels(globalLabels); + } + + init(apmConfig); + } + + async start(start?: StartDeps) { + if (!this.enabled || !start) return; + /** + * Register listeners for navigation changes and capture them as + * route-change transactions after Kibana app is bootstrapped + */ + start.application.currentAppId$.subscribe((appId) => { + const apmInstance = (window as any).elasticApm; + if (appId && apmInstance && typeof apmInstance.startTransaction === 'function') { + apmInstance.startTransaction(`/app/${appId}`, 'route-change', { + managed: true, + canReuse: true, + }); + } + }); + } +} diff --git a/src/core/public/kbn_bootstrap.test.mocks.ts b/src/core/public/kbn_bootstrap.test.mocks.ts new file mode 100644 index 0000000000000..30f292280a135 --- /dev/null +++ b/src/core/public/kbn_bootstrap.test.mocks.ts @@ -0,0 +1,50 @@ +/* + * 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 { applicationServiceMock } from './application/application_service.mock'; +import { fatalErrorsServiceMock } from './fatal_errors/fatal_errors_service.mock'; +export const fatalErrorMock = fatalErrorsServiceMock.createSetupContract(); +export const coreSystemMock = { + setup: jest.fn().mockResolvedValue({ + fatalErrors: fatalErrorMock, + }), + start: jest.fn().mockResolvedValue({ + application: applicationServiceMock.createInternalStartContract(), + }), +}; +jest.doMock('./core_system', () => ({ + CoreSystem: jest.fn().mockImplementation(() => coreSystemMock), +})); + +export const apmSystem = { + setup: jest.fn().mockResolvedValue(undefined), + start: jest.fn().mockResolvedValue(undefined), +}; +export const ApmSystemConstructor = jest.fn().mockImplementation(() => apmSystem); +jest.doMock('./apm_system', () => ({ + ApmSystem: ApmSystemConstructor, +})); + +export const i18nLoad = jest.fn().mockResolvedValue(undefined); +jest.doMock('@kbn/i18n', () => ({ + i18n: { + ...jest.requireActual('@kbn/i18n').i18n, + load: i18nLoad, + }, +})); diff --git a/src/core/public/kbn_bootstrap.test.ts b/src/core/public/kbn_bootstrap.test.ts new file mode 100644 index 0000000000000..9cd16dd6ab9df --- /dev/null +++ b/src/core/public/kbn_bootstrap.test.ts @@ -0,0 +1,54 @@ +/* + * 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 { apmSystem, fatalErrorMock, i18nLoad } from './kbn_bootstrap.test.mocks'; +import { __kbnBootstrap__ } from './'; + +describe('kbn_bootstrap', () => { + beforeAll(() => { + const metadata = { + i18n: { translationsUrl: 'http://localhost' }, + vars: { apmConfig: null }, + }; + // eslint-disable-next-line no-unsanitized/property + document.body.innerHTML = ` +`; + }); + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('does not report a fatal error if apm load fails', async () => { + apmSystem.setup.mockRejectedValueOnce(new Error('reason')); + const consoleSpy = jest.spyOn(console, 'warn').mockImplementationOnce(() => undefined); + + await __kbnBootstrap__(); + + expect(fatalErrorMock.add).toHaveBeenCalledTimes(0); + expect(consoleSpy).toHaveBeenCalledTimes(1); + }); + + it('reports a fatal error if i18n load fails', async () => { + i18nLoad.mockRejectedValueOnce(new Error('reason')); + + await __kbnBootstrap__(); + + expect(fatalErrorMock.add).toHaveBeenCalledTimes(1); + }); +}); diff --git a/src/core/public/kbn_bootstrap.ts b/src/core/public/kbn_bootstrap.ts index a108b5aaa47ec..a083196004cf4 100644 --- a/src/core/public/kbn_bootstrap.ts +++ b/src/core/public/kbn_bootstrap.ts @@ -17,70 +17,38 @@ * under the License. */ -/** - * This is the entry point used to boot the frontend when serving a application - * that lives in the Kibana Platform. - * - * Any changes to this file should be kept in sync with - * src/legacy/ui/ui_bundles/app_entry_template.js - */ - import { i18n } from '@kbn/i18n'; import { CoreSystem } from './core_system'; +import { ApmSystem } from './apm_system'; /** @internal */ -export function __kbnBootstrap__() { +export async function __kbnBootstrap__() { const injectedMetadata = JSON.parse( document.querySelector('kbn-injected-metadata')!.getAttribute('data')! ); - /** - * `apmConfig` would be populated with relavant APM RUM agent - * configuration if server is started with `ELASTIC_APM_ACTIVE=true` - */ - const apmConfig = injectedMetadata.vars.apmConfig; - const APM_ENABLED = process.env.IS_KIBANA_DISTRIBUTABLE !== 'true' && apmConfig != null; - - if (APM_ENABLED) { - // eslint-disable-next-line @typescript-eslint/no-var-requires - const { init, apm } = require('@elastic/apm-rum'); - if (apmConfig.globalLabels) { - apm.addLabels(apmConfig.globalLabels); - } - init(apmConfig); + let i18nError: Error | undefined; + const apmSystem = new ApmSystem(injectedMetadata.vars.apmConfig); + + await Promise.all([ + // eslint-disable-next-line no-console + apmSystem.setup().catch(console.warn), + i18n.load(injectedMetadata.i18n.translationsUrl).catch((error) => { + i18nError = error; + }), + ]); + + const coreSystem = new CoreSystem({ + injectedMetadata, + rootDomElement: document.body, + browserSupportsCsp: !(window as any).__kbnCspNotEnforced__, + }); + + const setup = await coreSystem.setup(); + if (i18nError && setup) { + setup.fatalErrors.add(i18nError); } - i18n - .load(injectedMetadata.i18n.translationsUrl) - .catch((e) => e) - .then(async (i18nError) => { - const coreSystem = new CoreSystem({ - injectedMetadata, - rootDomElement: document.body, - browserSupportsCsp: !(window as any).__kbnCspNotEnforced__, - }); - - const setup = await coreSystem.setup(); - if (i18nError && setup) { - setup.fatalErrors.add(i18nError); - } - - const start = await coreSystem.start(); - - if (APM_ENABLED && start) { - /** - * Register listeners for navigation changes and capture them as - * route-change transactions after Kibana app is bootstrapped - */ - start.application.currentAppId$.subscribe((appId) => { - const apmInstance = (window as any).elasticApm; - if (appId && apmInstance && typeof apmInstance.startTransaction === 'function') { - apmInstance.startTransaction(`/app/${appId}`, 'route-change', { - managed: true, - canReuse: true, - }); - } - }); - } - }); + const start = await coreSystem.start(); + await apmSystem.start(start); } diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md index 7179c6cf8b133..5970c9a8571c4 100644 --- a/src/core/public/public.api.md +++ b/src/core/public/public.api.md @@ -42,7 +42,7 @@ import { UnregisterCallback } from 'history'; import { UserProvidedValues as UserProvidedValues_2 } from 'src/core/server/types'; // @internal (undocumented) -export function __kbnBootstrap__(): void; +export function __kbnBootstrap__(): Promise; // @public (undocumented) export interface App { From 273cf228a4ff1e0b9520f072d247a2023cdd6b2f Mon Sep 17 00:00:00 2001 From: Constance Date: Wed, 30 Sep 2020 08:33:17 -0700 Subject: [PATCH 023/142] Fix plugin doc title (#78880) - Sloppy copy and paste job from https://github.com/elastic/kibana/pull/78231/commits/450c6b7d48b64e9f8b2a59695bc52ecfc8a7b207. Sorry Scotty\! --- x-pack/plugins/enterprise_search/public/plugin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/enterprise_search/public/plugin.ts b/x-pack/plugins/enterprise_search/public/plugin.ts index c63232b0c8a7f..e054a49ef1f74 100644 --- a/x-pack/plugins/enterprise_search/public/plugin.ts +++ b/x-pack/plugins/enterprise_search/public/plugin.ts @@ -100,7 +100,7 @@ export class EnterpriseSearchPlugin implements Plugin { mount: async (params: AppMountParameters) => { const kibanaDeps = await this.getKibanaDeps(core, params); const { chrome, http } = kibanaDeps.core; - chrome.docTitle.change(APP_SEARCH_PLUGIN.NAME); + chrome.docTitle.change(WORKPLACE_SEARCH_PLUGIN.NAME); await this.getInitialData(http); const pluginData = this.getPluginData(); From 9605e291d85636523504d5fb51930c7bc256258c Mon Sep 17 00:00:00 2001 From: Wylie Conlon Date: Wed, 30 Sep 2020 11:38:43 -0400 Subject: [PATCH 024/142] [Lens] Maintain order of operations in dimension panel (#78864) --- .../dimension_panel/dimension_editor.tsx | 64 ++++++++----------- .../dimension_panel/dimension_panel.test.tsx | 2 +- 2 files changed, 29 insertions(+), 37 deletions(-) diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx index 2572f732aa1b3..bd99bd16a63a8 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx @@ -40,19 +40,6 @@ export interface DimensionEditorProps extends IndexPatternDimensionEditorProps { currentIndexPattern: IndexPattern; } -function asOperationOptions(operationTypes: OperationType[], compatibleWithCurrentField: boolean) { - return [...operationTypes] - .sort((opType1, opType2) => { - return operationPanels[opType1].displayName.localeCompare( - operationPanels[opType2].displayName - ); - }) - .map((operationType) => ({ - operationType, - compatibleWithCurrentField, - })); -} - const LabelInput = ({ value, onChange }: { value: string; onChange: (value: string) => void }) => { const [inputValue, setInputValue] = useState(value); @@ -98,7 +85,7 @@ export function DimensionEditor(props: DimensionEditorProps) { currentIndexPattern, hideGrouping, } = props; - const { operationByField, fieldByOperation } = operationSupportMatrix; + const { fieldByOperation, operationWithoutField } = operationSupportMatrix; const [ incompatibleSelectedOperationType, setInvalidOperationType, @@ -117,30 +104,35 @@ export function DimensionEditor(props: DimensionEditorProps) { return fields; }, [currentIndexPattern]); - function getOperationTypes() { - const possibleOperationTypes = Object.keys(fieldByOperation) as OperationType[]; - const validOperationTypes: OperationType[] = []; - - if (!selectedColumn) { - validOperationTypes.push(...(Object.keys(fieldByOperation) as OperationType[])); - } else if (hasField(selectedColumn) && operationByField[selectedColumn.sourceField]) { - validOperationTypes.push(...operationByField[selectedColumn.sourceField]!); - } + const possibleOperations = useMemo(() => { + return Object.values(operationDefinitionMap) + .sort((op1, op2) => { + return op1.displayName.localeCompare(op2.displayName); + }) + .map((def) => def.type) + .filter( + (type) => fieldByOperation[type]?.length || operationWithoutField.indexOf(type) !== -1 + ); + }, [fieldByOperation, operationWithoutField]); - return _.uniqBy( - [ - ...asOperationOptions(validOperationTypes, true), - ...asOperationOptions(possibleOperationTypes, false), - ...asOperationOptions( - operationSupportMatrix.operationWithoutField, - !selectedColumn || !hasField(selectedColumn) - ), - ], - 'operationType' - ); - } + // Operations are compatible if they match inputs. They are always compatible in + // the empty state. Field-based operations are not compatible with field-less operations. + const operationsWithCompatibility = [...possibleOperations].map((operationType) => { + const definition = operationDefinitionMap[operationType]; - const sideNavItems: EuiListGroupItemProps[] = getOperationTypes().map( + return { + operationType, + compatibleWithCurrentField: + !selectedColumn || + (selectedColumn && + hasField(selectedColumn) && + definition.input === 'field' && + fieldByOperation[operationType]?.indexOf(selectedColumn.sourceField) !== -1) || + (selectedColumn && !hasField(selectedColumn) && definition.input !== 'field'), + }; + }); + + const sideNavItems: EuiListGroupItemProps[] = operationsWithCompatibility.map( ({ operationType, compatibleWithCurrentField }) => { const isActive = Boolean( incompatibleSelectedOperationType === operationType || diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx index 2d7539a9e3ee8..270f9d9f67063 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx @@ -960,12 +960,12 @@ describe('IndexPatternDimensionEditorPanel', () => { const items: EuiListGroupItemProps[] = wrapper.find(EuiListGroup).prop('listItems') || []; expect(items.map(({ label }: { label: React.ReactNode }) => label)).toEqual([ - 'Unique count', 'Average', 'Count', 'Maximum', 'Minimum', 'Sum', + 'Unique count', ]); }); From 0f120aad101a3ec3430327250d59a3ebbd3550cb Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Wed, 30 Sep 2020 18:13:55 +0200 Subject: [PATCH 025/142] Fix empty meta fields input in Advanced Settings (#78576) --- .../form/__snapshots__/form.test.tsx.snap | 216 ++++++++++++++++++ .../components/form/form.test.tsx | 66 ++++++ .../management_app/components/form/form.tsx | 4 +- 3 files changed, 285 insertions(+), 1 deletion(-) diff --git a/src/plugins/advanced_settings/public/management_app/components/form/__snapshots__/form.test.tsx.snap b/src/plugins/advanced_settings/public/management_app/components/form/__snapshots__/form.test.tsx.snap index e38ccb6866ab6..ebebf49c5213f 100644 --- a/src/plugins/advanced_settings/public/management_app/components/form/__snapshots__/form.test.tsx.snap +++ b/src/plugins/advanced_settings/public/management_app/components/form/__snapshots__/form.test.tsx.snap @@ -18,6 +18,32 @@ exports[`Form should not render no settings message when instructed not to 1`] = General

+ + + + + + + , + "settingsCount": -1, + } + } + /> + +
+ + + + + + + + , + "settingsCount": -1, + } + } + /> + + + + + + + + + + , + "settingsCount": -1, + } + } + /> + + + + + + + + + + , + "settingsCount": -1, + } + } + /> + + + { }) ); }); + + it('should save an array typed field when user provides an empty string correctly', async () => { + const wrapper = mountWithI18nProvider( +
+ ); + + (wrapper.instance() as Form).setState({ + unsavedChanges: { + 'general:test:array': { + value: '', + }, + }, + }); + + findTestSubject(wrapper.update(), `advancedSetting-saveButton`).simulate('click'); + expect(save).toHaveBeenCalledWith({ 'general:test:array': [] }); + }); + + it('should save an array typed field when user provides a comma separated string correctly', async () => { + const wrapper = mountWithI18nProvider( + + ); + + (wrapper.instance() as Form).setState({ + unsavedChanges: { + 'general:test:array': { + value: 'test1, test2', + }, + }, + }); + + findTestSubject(wrapper.update(), `advancedSetting-saveButton`).simulate('click'); + expect(save).toHaveBeenCalledWith({ 'general:test:array': ['test1', 'test2'] }); + }); }); diff --git a/src/plugins/advanced_settings/public/management_app/components/form/form.tsx b/src/plugins/advanced_settings/public/management_app/components/form/form.tsx index 0378d816fd2c3..497252b75fa58 100644 --- a/src/plugins/advanced_settings/public/management_app/components/form/form.tsx +++ b/src/plugins/advanced_settings/public/management_app/components/form/form.tsx @@ -154,7 +154,9 @@ export class Form extends PureComponent { let equalsToDefault = false; switch (type) { case 'array': - valueToSave = valueToSave.split(',').map((val: string) => val.trim()); + valueToSave = valueToSave.trim(); + valueToSave = + valueToSave === '' ? [] : valueToSave.split(',').map((val: string) => val.trim()); equalsToDefault = valueToSave.join(',') === (defVal as string[]).join(','); break; case 'json': From cae36ce9c12e048556ceb76409b89f1a4193e737 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Wed, 30 Sep 2020 17:15:40 +0100 Subject: [PATCH 026/142] chore(NA): include hjson as a prod dependency (#78941) Co-authored-by: Elastic Machine --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5cd0c276ef76c..e70b0386bf5e7 100644 --- a/package.json +++ b/package.json @@ -174,6 +174,7 @@ "handlebars": "4.7.6", "hapi": "^17.5.3", "hapi-auth-cookie": "^9.0.0", + "hjson": "3.2.1", "hoek": "^5.0.4", "http-proxy-agent": "^2.1.0", "https-proxy-agent": "^5.0.0", @@ -407,7 +408,6 @@ "gulp-sourcemaps": "2.6.5", "has-ansi": "^3.0.0", "history": "^4.9.0", - "hjson": "3.2.1", "iedriver": "^3.14.2", "immer": "^1.5.0", "intl-messageformat-parser": "^1.4.0", From a21a8325423fb9aafcf04c7d1f64df079aeb21d1 Mon Sep 17 00:00:00 2001 From: Ryan Keairns Date: Wed, 30 Sep 2020 11:24:19 -0500 Subject: [PATCH 027/142] Update content on interstitial page (#78881) --- .../components/sample_data/index.tsx | 19 ++++++++++++------ .../public/application/components/welcome.tsx | 6 +++--- .../illustration_integrations_darkmode.png | Bin 0 -> 32083 bytes .../illustration_integrations_lightmode.png | Bin 0 -> 31228 bytes .../assets/illustration_elastic_heart.png | Bin 144681 -> 0 bytes 5 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 src/plugins/home/public/assets/common/illustration_integrations_darkmode.png create mode 100644 src/plugins/home/public/assets/common/illustration_integrations_lightmode.png delete mode 100644 src/plugins/home/public/assets/illustration_elastic_heart.png diff --git a/src/plugins/home/public/application/components/sample_data/index.tsx b/src/plugins/home/public/application/components/sample_data/index.tsx index 2a51b48b08469..5f15994acc1cb 100644 --- a/src/plugins/home/public/application/components/sample_data/index.tsx +++ b/src/plugins/home/public/application/components/sample_data/index.tsx @@ -30,8 +30,8 @@ import { EuiButton, EuiButtonEmpty, } from '@elastic/eui'; - import { FormattedMessage } from '@kbn/i18n/react'; +import { getServices } from '../../kibana_services'; interface Props { urlBasePath: string; @@ -40,22 +40,29 @@ interface Props { } export function SampleDataCard({ urlBasePath, onDecline, onConfirm }: Props) { + const IS_DARK_THEME = getServices().uiSettings.get('theme:darkMode'); + const cardGraphicFile = !IS_DARK_THEME + ? 'illustration_integrations_lightmode.png' + : 'illustration_integrations_darkmode.png'; + const cardGraphicURL = `${urlBasePath}/plugins/home/assets/common/${cardGraphicFile}`; + return ( } + title={ + + } description={ } footer={
- + { } }; - private redirecToSampleData() { - const path = this.services.addBasePath('#/tutorial_directory/sampleData'); + private redirecToAddData() { + const path = this.services.addBasePath('#/tutorial_directory'); window.location.href = path; } @@ -70,7 +70,7 @@ export class Welcome extends React.Component { private onSampleDataConfirm = () => { this.services.trackUiMetric(METRIC_TYPE.CLICK, 'sampleDataConfirm'); - this.redirecToSampleData(); + this.redirecToAddData(); }; componentDidMount() { diff --git a/src/plugins/home/public/assets/common/illustration_integrations_darkmode.png b/src/plugins/home/public/assets/common/illustration_integrations_darkmode.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca4dd25982ae0f38c1cb2941642a23367a43595 GIT binary patch literal 32083 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 R2|$WI;8@N?7o+VQ`+pz9)Ib0L literal 0 HcmV?d00001 diff --git a/src/plugins/home/public/assets/common/illustration_integrations_lightmode.png b/src/plugins/home/public/assets/common/illustration_integrations_lightmode.png new file mode 100644 index 0000000000000000000000000000000000000000..dd1aaeb2d26b3d230bcb24e16600d16b0748b880 GIT binary patch literal 31228 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 ovXNTNTz6V=1XdxO&wCJkaeuJl6{#MCfP}2gt z{m976IC{EL}hpV}IYfEneMC4h8v`^Q`#AJIw;?H$C2 zsngbc^F`wX<{jbmMhgjodX)&W5PgRXvzr_msrPPMyCrdYdo}Kz?46R<27B4W->`jS z!QA+x8;sAqfexV0h^|QP$8f75Bc{bR4STnC_))iZ!H(g}-iw*VQ>KfNc8|z3fXuxJIB_7ulU796>5l!Qt8L9wt5y~my zumRcrPf+rf? zMp66jmycefvy`fqg}U79(#sB>lZesqA#Z`?T^M;c<1Pg|4q+JisFyFQz%bB&TYG!6 z#aI8{*rBWG^z5W5b-t=dCPaJ}_AgY)xEMbQ%?#^4hH!3k09G5g+xX#lv4egw761j- zt&iUlfYuS`KANJ7czO?rNf4XfpUDwvQjd_fAb-Pu1~dy&{gF3xiAt5}zB*``aVzku zLxgja;0SmU6Pd7S`S8HpVii^-ckt7pF90)jQbayPhGWn?XV`7l+woFK6GU9}Az_ht zH{BJw$CVNDybooyNxdIz%sNRJV?Fu=jX`JCkd~9Z&!H4$yusv67+OXEeZ6(b zY)o_?&vIYH3wmIdQHBOuq-)~mc;o|Ai+^p&1t?j_R`I|P9Y|lP#$gDYsrDTH)w+`N zsaNW|e50rlKhE!UkWV390b4RcxqY8xe#|01kZO#iTbnU_rp#i2XMsUJ%q_9CSIj>! zzRgr;bi`}1lVCmjd>J+zMc|GvGP5r({gOxPZdcYYYTBE^@CpB+A2##F^J?z&0G`4_wr)8+!4=|j=Hq>Y%BoT(fBYVS)O4#eXHe+^`r1^!KJTR z^Ym(o`rL__Q!|Y8&G)vtM@>V;?LwQF927AgA6iha>edUpf2x&{aD(C=Q%-PM=a1eM z-(V6gmwPftihjMj9VBf4PaJvoAj!*#awj&~>fh3`9L6M4Ih}84^0l<{ z>fs=^331!qgb-KGkvH4d#-wehtQ#iIQ8jFlXwTIr)Q)DO) z=ex)T5<(TL{%t5%WQZ>!>@akJqX4-h1n&m92F*dhCVKv8z>jU};4YkTky4bLzpN_n zkxw*^^9V%!HRg@14zm1Nf(ATO^@VH&6#3BKTkI5Y6A0=_!`pZz^pv_5Z;oxnR1;2-o=U6aV$c+>X1==q87GRw2(rg3c6xmwcrEJDhBTPmkI(%t8tlhKd0;sY+B zs*}O=*Vl(`(Z>UW$I6a>J(mJUSbae2cnGv9;(<7itVE5EuHV&kx+wD@Tbl zP3vGeYoITiVTF_QDI%EQVc|_5(&yaE-(}XU4f0IMG^@UC!$4@b>)gLyd4SW3*)7(u z|Mw3m?Ky>`YbMp~J-Zg#M*U`DXY@zrTSpoCW7YlJYC2O?=bXj13AUb(mwoqQrw6oj zY3na{MIVJYGe1W5SNa!BGVgWpF4=Tt+}SPj)=malpEIBC z49OBR0ey$W_?vCJwyO$UHP@p2qvn5vYzb40fFBG&s9~X&Kkpnd2p_Iwu@;yrV z_e;u-#qfpid+?tmc937pPMN8bkoj}?rhvco+3)9_Xu9J*_?YGZXzo!^&52?2py^L6wh4D<+0D0(--C&hOv`A^Wdvo7Yl}hfLz6{VcNe&huk-@w>rjGg-@_6Xx^#6TkBVZ^ zBgHNF)lccOeEJ{XhkW}cG9#%^eX^?(jDPmV<9uCiaYkbEj)@!%_TOan4-5#i%02_* zzes!ER-!lXmnvBphx}P1wC=E34Y~c31fmN;!#gL2qDfwOy~S$*H6^Wdf;iXR)8LFo zlrlUY|Y#`*lo zmhLZvH@qP89e-xkXaPNqTO(}u&fZ_774=*Jr*+r?X~jbJ*{TnXIdu3t~QjZ`%rDK+|yZT_1U4Z2i zjCdWaX8WtB1fdr?ouDp`cBGdu>PUZgvlX@oeweC#o^+>kT)rq(V)~03lwT>ZaP;S- z$)+;Cxn%Kux;oWM!|c%dT!+Ta5aYao=o=B{Zjgako!P{B0PhVxLkv#hy+z;7Z3eW3 zNF7)>tYQ>8G|;X?<2^7dwnbtaVUtHf$FBiC9jooFBovD@*CKzZvcQO$q=YzjiW`Fm zddx+F3N@WIaSaU2srP1&+`&i-_RC*d@XfGNy1@0#xy#rYb#n{Tf0`Fcumcyc=-Q%x z`&v{t>MvgfXD#>{$esUw{HcW84mLK@_w4Jnphk$D50Q+ z9*l5Mi&Wr)_8nE6x;QGxvRsQ+RUL4So5hN7Y-$fZRNbw15=Ma!Ro@#jl>R&q8FzdT zJ!%#TJ{1!Tq4&$7;9f6(MW+eVx}_mxsMf(BJU`5>jiqzreLt#iC^!2#cvPQf@AUX{ z`=~MTvgLAdb=|+O@!y|5L$7U6@ubGu-sj{yXfm$YTtM+&S>|i(XJmoZcZXjqCmj8! z_!jw8I@U#RE|p+AMkij3qwY!IVnFJMk5zGn3gWed>kUmwr6>g*6^)vB5*-T>*bQ}E z0Hrqid|z&i^*ki81_dmSMFD-2?b6NroLBqSZ}c@IeHWdacl?Fjv0Tt>IJ{-J@jNc7 zvi`RDhn3-G#9tiXYoNeutCEY4UBD?CO}gI1yWo-Adwa>DV!Gg<4oxjOnTK@^q+m)%x?E+AC4=mp&D|g3jsx)X|kLppD|OGE~On98xD~8 zpXQXi!sV?ERn`Ry2c|vW@-4vD9M~?#==4zB#49OHN1yGpFN4!-vh?kb!D}M6T^Acj z%M-JI18QeF8GVKY2?zaj4gGVhtwQqYgi4H07{~JiJWG;qM@4i7GUn^DUoW?{VE+EE zKRN^HcT9#_JszpIN#Ap-#;GMZ0hoHLM|Ch{L!JQEQn21$wK?=Q(6vzj(5#rIzf|w z{Br0clW&TGoL9A2V=Db;_ORnOk^d^#@qR4qdJ+?sv=ubPo%>DxUk2)Vig@ys5?+19 z4^pvl0C=_b-I?*Uh4;<&aZ63Rd7JWoqGD~ZvCC@Wbn?3MrRkhb*k@( zTMDVM9hKw_CgIU(ZGM|Gj%>{$nZyQh-n7KDeGH7^3A_Z|i1ZQGes`uTU~!@ECToe9|~? z><+EzAambEOx@kJwgEDp^O-Cz5K_yUEadt}=W!yO>s6~`9TtGt<)t~AWBPt<_z61= z$dR6f7M3#Ut4=-U=}3;3bxwwBz&&1OAwKw*thOY0mpiAe&fG;|euLo$*u~ILKz}Lx z5Jx=iPF^qh&!N4wv|v+%a5;_Tr*~p@P)TAAtfRSUp_%TqfoOnlnHburn)e!eZO|Rt zZ}xlUs}VYd?@?(@qtIOA()hZ7=~+wb!23VIA6kqV9|5xrj7;^x3RP)^H!YMg_tuXp zkD_Md@x~4Z_8CF;YiX~)vn+(qn`h{DjLzgti{wo0ns}H_oZ4Uh1C#9W2oo*{#0{Ah zl%yIZYAdSNjWv}d=+rXoYMI;V1Omv4zm?ZfgVZP)*A6u6pI`D-mQad+bhYowEzgLP zGv4D0V%p~xvo#pJ@P1NBR1I1P=;%V*Z;ubc{bu$<8Xe|z+@1V9P(=OA7M3Mirqo_s`AG6IKTEAndV*UEJI2x z{S}}D-}{06EGAi({hn@+KwbJl~mvS3TJ%x+m$Y!~Gkqqn@cW_MAQHFgkm&q{R7 zKq>2wC=Qm-IB*XN2Kq75;OwW11w}Eqb0Xpt!)Zw!Ah->E^gi`YputQRW`P;Ro5Q$F zYy+?DSibHMg4}F#gA}in2TRT-Whr)2EuDP+g?rSPqaq_A9cMaJL#{&lwMWGH8j-7# zzJu-%>I^tP@Qja6(}i^L8x$3AQ$8mEaYIJq299)v|KZA)X7X9mmXf;qH61fjRwO|x z1FcNb0{8XM5;YAfCUv|!fuzw@o4MNjdOjBqqX`4K?XYTr-giVqT{37Zz?t~e zyk~K&(7stjb|S9@ceG6NdVJIKp}(~#178cdCmP~|X=FFoYtOwxMfZ*O*4BHLadpYS zaSL3ZniqmsU(Nh|1JEbqil#)NS5 z35rOaSDH6;lSZ{KM_ymm)Jc{1lXKIe$iUh`-7Q7f7{D>=EC1o6wA?Xe)Jb~RsC0%< z@^Ry<&6UZr=cxZETVEjRP>caC*e`bheQQS2M4zIN!s_J^c}yy3 z2WgGWTg7bj@(JarGyFb~3LR%pc*if$?C~e_dGn+rU59T$jQq<&JXYWFU!NuO+JRJS zjU|$SeNJ!sf?5E=xC>`a<6a!!VzkuTklXfGl|#&8_&G;g@lL6u6GeSUEB@TRSYI2# zpAq3c{(kH@fx((1p1bc!K048#@M;HcF+`p1rlzQ`Jk#BHm*{<;uw;aeV+XZh{a?~f zgvlWI5F`Z$@-mAxd|PD<4syh=r79Ri=uDm`&z}X97ep%TPw>4f>->4W4d7ciD|Bp` z1M$vpOSJi)eU}E@BrR4~XEyaOK4!UIW(FPfK4U$de7xLiC})-+22c^!w|jA#U@*>Nh$#6`(RuUAXXXlys;O1EUm;l?vK7ZU1-A%7dGY zlFIBj$N*2*NUflf%3V_{AZ&YZd2-$1n6Ks`+i1Q4eB*7WrHnqgNTeq}Pvf10bMIY- zNV()EhKBN7Ch7Xs)BuIIcKOt3-qgg`VkK9En8wt4u9$PWD9^9{;S|83h(fi%F=r+u z)Asx3LsgD#K-fQ20}U~!K+j)u8hmDfHyX8Jt~PVp21#DKDb>S~@XnHoLT~|~&ZIKl zkx6|N$w{Y(tp|){+fZJsxC&VBH+z}Xot)1M(}oP@>QICchru14b^B3F&!#3W(_2i~ z0zRlKYrY9TOp3^r#B|6A?M}WZvCy-$Xq|Y)Drtkm@7I@FK?&Uv1~2i?0DU-6(t5+3 zIp<^hzxP_(hX&VT?`_^Qncr!qiHFFy7>7tvxwpFi=A-CBUvVIL8dT(lwkXx6hxjhA zY8B=2My)V{G|T88>@bpc%@)QAri>0Mug)|IZoL9l^|#No^XUiHy}KTb{2vZVT)n9$ zVl_^gviTj-Mns#PR_$+B+~cc^+U7Vy>ald5%1zlFadWSPZ}l$<Z3R-z{uaT_ zr9_=pHMfk31_b7;c6@XY<0q}}TIR50I~iUoo92kFuLDr;W!NfCs|7{{&Jx?STcOsv z1$d0aP4~OM7#r%&>&wdaYR?WhdTt=lHkDNJaoVjWP#33>0L*5dd=;k~QJ}n|R9d`r zUg>#UWk1QlXv<}vlgI{P^`I$By8bKP!Kuh$sdVcQh2mWKHk{D9nN6bATJ~Ec-6{)1 z&+sX)=WyP~^SMUY+UV%q>SuzLqM=*n?y{=4R}gz6#KP&JJh`$d(1&(gEJg70HrFImrpO{v|2S(DnKSBAUVL$PNnxKo-Sl36{PK%!YK|Azy9GS zjEZC5NG8TnAseEe?n*?K{49wP6+>5KbYE%MZHb5YQf4t@Xg4ICMhVkk)9PKUSgU2idx493bMB ze9b)qpMh19lx|W&6`4hKTTh6ly%@$;$vD67)0b6KmJWo6%4Tgvk@-reM*q3FWs9ss zv!_Vo_q!xx3|7xt&?3?Ujb>{12^V4wW93MkNp;_sx^#pRpK3@5YxH`skTp2#;P+Uy zB!jv;3JUKRQ$QXAAm0ODG(;>Y>`N5@ph=*PoXxLO^$5^Hdv731_HC?mfkXlmbNVWl zHz(=ysVm%pG@*Hl{@XQL=k~Syb*IfZ`Qt@=aLm5XOY1y30VMpADEVxIPV@p5pR!%m zj*?!%qLe=VN;Lnn8*SCaqQ2)Pqe+0aviL+&y3>uKrFhnfqVjFbJ((Ne{%s{W$!l|4 z)m7~~B07<)?mJxHxmc!qA_vyV1?W7tRD^OiF$AAIf^81NtrEU|ml&N$6r~r3f#`{l zGOhH37<l2rv78ge~-_^uI801)GRofS&(# z(tQmss2SQ&>6lRHTZeNbB4tNEX!MTzFD){u{TFdRRQisR-Xbm;M4)+pJY!~@ZYr%0 zmHHyXbTh;tdydJ?U_-uxH_*19cUN$rfsq&rEbWy&&#Hi&ZC6Wx9|h8(U3H_F5mmXG zXwf>G`s<2wtVc9Ed&jFLNH}r;TIadsGqf^NmzO zaNY8KJBo$lJEh>1v5YpA14;za6fRX?AQ2ECMNG$6%r274zniWC0f&ZhUU zwW2;`%k~RIY)A3^>I02cV;vpuZ~G+FfS1`m9xCNXIFt)fREj>9cNSB2mYl#gTK)Y0 zZKR8Ij2@@_(qLbacyc5$5nd17CDLN30FH{)aZd}Wl5;PMxVKqA`nzo&4e_taK@)$M<`(ny z=*LX@A2!BTs~jZ}zj!M@!3Cq%2=tk*ygxvymHMm4r1o#gv)(7jIKP{SgSphicnIN` zhw%49`}dpsGndDvHxXMa-!IwScBj&Q2zzFUb% zCTy_3o;HX`q58krz8Nts2XZ<|{le!ZQPIcKW}raYw|kk$?vaeC7sL@)1SDE=mP^yd zlJF66@C_pKmSV~bjh6%@8i_OQBI>cAXpXUKdt~01h5H@quGpHx6;-sYIqA(hdgCo# z#l;#mHIdN<y95pHK~-m|uBY1!^k($9)h7)**X@5Z)1R6-D|a(KB&CqX<4DlBu~w z6rUDs7QOQi&E#KhQ=L}aA>rOR%k3P)!bD_oHR={^f6#Kka5+sBr<|oT1tPu?bBE?+ zCpd4b$ZXqHK`GawIyFrhG-{3=ql#7lR2qY{vrwNsCDdAnR&GF&4H22+a z_UrxkEfwLF|Ls^pf}f~G+7y_LC@^qPA^niRRV6s$^xD;_@$ig8{U<`J2XEK!op7Cr zgZzN-g-H5gbNp$9E*C%|YatxdR+i54-6wCorW$k_ttZKM(ZsYN{0x_pYFHB~hv3Hb zoL}_$<_L%Yf%&&HM8U(q@NQ#F##r(Kq9&-_kI||t)WFcKF z22BfO-YanI@cSltk%*4Awk`=`XPu8uL@2w!wBLW^c07dx7wp4t1*Ua7!t4S(5H$l= zz`5=}ZAg2cAgs%#jn_22gaE^P)0QRTnyf50FDY-bPVbm*D@OS&7j(I4XZ=}Au~Fbq z^)%|^#YH0Hfzj%CzsR_gMHos6fQFvkMCGMris ztDbz49>1_Zh>gf}$-I^$zC0Xb--?-;2tNSeV$*+(50>bjf^HAq?q=S0B;Vzr@F4W0 zB=1zZ5GGBadhx>cIT&t#*3OfBR|Q2{g5V2go~efnV-C64Q*iLNE*BqK|fjM!VDY}BUgVJeAK&O?40Kc#(SCJNKdCA|O9 zVM&{COa{=~;))v?@S8r5N*JsgJ5=aPHnr01FCB*lqW(ZL{G5-D<$=iVTS+%=5!ux1 zN8`>xWYdrRbMT+RyAHExC1IB~D=$jTdIPd+XK{xo;i$E|y&Azi0fWh6EBVlk1v;=7@X zjzSR{SnYdLm}W4jc5CK?f?o$toa0uVx3+n%q3a~~KI{KYMs(W|#-1IT?poWK{$t_! zw8@EA9CMc84VR>N5nvTC0qRUq3SH&eQoCZG7FJxjo$i5X7--Cgh9Q!W5T%pU2npdH zv{&bo2NG761zEo!kbvzwanpzNcX5GeKLyP@bHODYa1RYn(`o4v5Y(mKzk_cVZX)PU zm+e5e5$xvak97HLcaKWAc&wIe`R%s%luEY~Y(!3Ld0oYlH@B*;ZVgq2o;qU#4Kt0qe8bKJM zP|eYLT%v=Pst^S14Ir7~qD21K*-Vxv^ydst4n0=)&7S?6K>^f~2ql~S^AnS)vV)M9 zwJ!1?*4(=E+oj{>bhgG!IAHMyKHb;7u^jX`1V(qY5S|^lm3H6yo9pY}c_QxR-eNbb zv9Ym>+uPJsOqm%&C2Wd8l4Kg+S_PBzYNm36K%ug&hicJ7ZxZ2Fe71jL@>MQc zCiTlBt-hVUX-?)N9a4H!o4XfXN{b7NoAZE~K5o#s9KL3JVSBX4!Aj-FvM6>OGKF!ZCSiBpv8HL{S&{T%_4PA6R z4(<(FhQ*r~VK?iU{sXm1v4Rc(TLC$Zrh&K2rBBxknGfNpb14!)8%La-OCJoctbH zI6%LtyV&^s!0NGp|M-#``dzjAO|8M6iO0uVnjk9+gwcbDK=qB37U>NKTid^#FE=&I z-C@Wr(jCm`Oe`!c|E<;+2E<-m@e*pveG-6uq(WXJjrnK5U|>9>Ib|OuBXKM!4~D*N zr_tqM_()(YQ(Ustj3*D;n<}hgHFYpOiITojz0EkaGc2wADM}>7^=Q&>9p2*lWN`QN zOoFjNj#WO69{f`8z!W^+(;xCXy^HQxVE_;;z*4v`avt?xb$=tDeF`ZWRi8Zw(~16H z8zTq2L>+-Hp+3o_;X;{8s8xMDi{f2y?^M^+gmc#O(mxO29Lf-6ia187%q=)~T^c_w zHbo&13b?)o&vh#9QtViA#2= zGJ~e2nMVr16YhCmNTt!*oefu%>w7xT7|6=Z zTqzk*LIfgmH=a3aAv|d_-f0B&Y#W2t!5bw{;EYe+AN7^e72p^2#f853MXayCYQT!N zuzfbp9C=JT#{BSn9>0LPX8y+wg(d;;T>Q{qBXJSLb>YP&4H|zxRs*5)>vE0_N-n0UikmK8icEBmMHucp zRWbc_@A@G0rExEF&-GHM_U9}11U1gj{%baA+vnaJ9fNBKGRyL^R)FX*O$ujeSYReY zfOogCb=Zearun!1cq6#8RSAGjr~q~1kq{w2hBDV-pxH1o2TgwYNm5E+JrFPkPY~L$ zE@3&C$!tA*mCaRh=pJOvAuW;`yL|5P$?l`+Kgtb3%F^={)pc^Eu%otgF^-=*Uc)D4 z!N3q>y>f)~;JU4`nR=H8cU@WGVWB=YaoxU#NK;M?@JIiaR25PMA^)#n?#%VKJja*>zben`qHcqan9F6aGB_U~Rdq$d$Iw7Z`6!;mf-`PsIW|MK!Z zwd#G%LV%6`wiL%{`V zshvasX8Fer*cF5LbY#tv7Bl_ROgRs1x`IzPsejow3R(c1Wdt()$~VXTuq0!-j3hds zmyP4#1CcgTo_Y-gKt&gNWAkN@HJN6omzM0$f?pp`inE;RPL`X6U`{?h3mMjEPd~mJ zG&|)ekU_jo^!KuKtdDl*=z_b5Oadn1#526g|IVv`ltC)RB@e6{C2wUm(27>|rW`9H z*2~kAg@31aC8&KXn5oBRmt|xO4C(2e9to`B+}9<2TiQl#I8$t>Sc9k2RsA>4$i$9? z;r@@Tw+f1@d%i#!7+|n4I3&n0xN8XR?hb+A4j~ZS-3jjQ?h*(PGz1Cm?(XiAJNbV9 zTXn1M)6|)V^RUm}yH~I7wHgMB6#t2%c#4kx8K#`j0<7BhcSg@x6rK3$7>yqiL90~J zG{&X*e%R?NY<{ZpcxGbq9U6xQwtCTLG=A8`VT}-RKno${)ou;vBnXD z&9i21FdupA8qL@JWMPEe^=+j%wARaQ1eLZbWKqFptx>g^0{cY@Q#522XOjCgtBLNLnYFw z5wB@L@SlFv2Biv{Z3s=oO59j(enitPJp3RI;aUCK>Ma|tMf~p?k8oN)VnVm%B{<;OZ!2p!R$2N;_rx2-<_j+FI^o#N&nJykUt0UH16S^! zH*(zRy4OAvh0ibmgaHEN?^E_z`nUm=VF2_^ggKPhRyJb)8(oXDqtoUlv|68r4Eq8k z19iHIXvAsmD&<4V3JPTlsS=d1Upz@;<@OtydQ+)0r*aZTI5sDGQTNjT#-y`TFNv;W zowGac*jT*vMEr8<+)3Vn!@d6w}*<3Zc75aRit;ha&r27h=z-s=6FxlfK!RUaF6 zy;iQHN0R*}xlQZrrH|`-_UFPcA8hec6_bj~56cwZHa~45Fb{f8>|vglxT{^2ywltx z(`{%w_P&Fakzi~6TRPW+W8rt>Vb;;VN0`mRB?1>Vr#PJAs~;UK9?-lw5p@xf$%^i7JGV{$R3H$uq!oHv7tZfk zwktA{7ExNs(=5xl)pFwL`43~emB_)i_}Mkq`by`&yBrcMWuC)BDDZ$lzb_ZBq1ZQKt5Ht%;T-G%x$fB(St@c#W%>NkB!@sDBhsB+`|>#-$GNdZUu>KXj#ZY8QwYY9S-jkHy3#xa@L+Sw1o=#E|Mx!0Ggr6{V>=5MCO z!uzCy%;sb8@JH)7m_VN!?YXQIJ^*$jx4it>%{4~9Y0pGZF3w>m()ifv(~ibf;H_Uq z3D{-m3o?^RU2{QrJio|z7Ia*~B1P@bY@yj|)d_auKJe<&C)2fnQL$pT(?-ziS>vx* z(@*7hp@3cdvhsQJ?~kW5TmQB-9tBLyq0bgG*@gw{tfvH6{j|cRL=3??PY}wTrvkLM zs-6>M;o#;P=lCJ}_%It=qNxxEQnFEpH>HvV-xH)Vayl=BJ7v6_R>v%e58M59+Txfc zBPEXwt**)6q=0DWo|F+(f}dotKuxQdw82>DH9La5meEh{OO=fjWDgKCLpoO1@B5L! zBDYb=`2Lf3X&ARTjxh^@M@$09g3KCNm)HXp>Wv2Pc5^WfzO6+1t_d0VMy;$Zo6Alp zM?sg%sB6cam@ASFk0IdUa>L$es*9K{pyY8pDpIP8UmY=()H-b>Bm*v$2`G)ak>bWC ztlY(tCck(vRiam$V&{FN+vK=6O5`}!k~RHcmaMd<0YtU%MMXcRISJ(y*oFi)_`?h8{ z7@KO>KF1h)pH>50UNK=3T)Oa+ZZ8h@Kd*Bg3%L88)=IC=AQs zEoIL{{q{!eQbg!-#Gx&rt+=pV?vMEqqXj;x&7$R;PjE@_roZ!9vVr@8oKG+}8DCBB z54H%QlT_{u9#+36?P|7T*v-H7^Py^*;C^5Pf&N!&RyE3pMZl#F z>1dI;@YLkv28D=Mgy~Aj3Alx&IVi(6_F^S0#xP6}aesMPm<`_ia!qYo@!w{=_L* z>h5Q7Dg0G%U9Y~EbQL!8`a|mVsg{M2anq-gI$xo<)5fzmYnC|+e+50gOK0jCWeI%> zlU0_6J(%0Wke|(mM*ja1Rx23@nl=&_bSlnOjW2AJuT!lq&4u@n#mB@kW=o~>M&)cW z452MnM$gn1^A`hj*)!AwAgH@_izFj=i!edfLeoCd(?hp!Bj(M^_~Rj{YkeMr&P0PT z`k=rz&9x4%@3n3KDB0vdb~K{Z89X*~ogj$Bs&GAFm+0Q1UWY?aj_OY5QQk9*c3l)* zP?CAbjq3!gM`vado$la@o9u^=tap!N0SmxsXj2$+yTvVT0Gx^~`T& zqT5(BDbfHg)-&a3`oZb$RC#{33qD)1kSVywn@xVjOHVU)8C|gYiH$`d0=o7~n=BVY z0>yS$0EIyreYa*IoKCJEXSCAM*tkbhO6p|3&g6DC!)`HK!1J@0mzPLajjE7&pb!ZG zocdv?u3h^Km+hkZLA+dJjO!;s+qWsqLKb)nFK8?N_<5iRb)fe!4eF-oYKN!;OC&8^ z$2K!5@f99LKa)CB3LYGFPWXYJZO$h-~8+I^_+6+)SfkbGEE61~bj8FXE;xWrsC*gk72oXAOn zd%doFuet0tE?_-;J{X9P@Ijd%`-3kj4O43=k5G(p`mF1fx`8~xseXEoEgN!c<{fW~u#rj=I$U=pCE#muzVXNo^fyvZDg}e1+6%6?GD6@Ab z$o(G{eFe?|p0Kj%W*aIkWAg81$Ad{UAIogL(MOhfz!~r#hoe~wO#Zs7+wFSdJn}DN zi%juLECQKl!i0losZ%WjIqy?hW&oLn0+rEG%1?^jIQx-#K~_2N{osoU9;*>Jyu;W_ z$uIAjYvK1|%+rrKqy!B^RS|A&jyjB*8;>cO;38VZB8KvYl}q5V7!J{1M&9JHcF3o& zj-lEcuoGZZ8NcH+C=K;aWkE7rf?xKdIAKJdv`U63fmkyr2<2DP#7DKX>TcXI6A zKwW=)WM4;ibzc&`{5`G-jiaKi4({O4qn~Tp^J%f-`I~mcef~c*)Ke{%7oVJ0+oj5z zTiLZ{Eb!p;lO?JO!kM4iOz!3lh<}dVQfcBmXy0jiXx(fO3a=R8Meb%W3a2*mz4;{P zgPrkTBO$EYRStew^8eVSE_hfnE?S%`gIf*U4X@>mCUJxncj4*S@0=KkP{VLZ>GV{W zd*LDkK8s)Ah|&I@n?cUlPvn2}+f1yl_1>D+YhszT=&av;cia6+Q2BxL%lG%HkA;j@ zy3zTs75V`B2weHPui^`h`!Nf7$HByE>1YpVyhY!mbc0EpDntAr8KYlw%7JDYmDz$j zoW=hj=(#-^yr0<;UBi&~!$QZS z$=DxnI>1{kt+Jgoqvx3^IGlyO(m{oDoOp|7Oq-7kt+b2d-Gvkhb-

^R4Q89sN>z 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 From b6db62e5454b543685c5cd67d5c6d072adfa6d5e Mon Sep 17 00:00:00 2001 From: Bohdan Tsymbala Date: Wed, 30 Sep 2020 18:38:01 +0200 Subject: [PATCH 028/142] [SECURITY_SOLUTION] Trusted apps list expand/collapse details (#78601) --- .../__snapshots__/index.test.tsx.snap | 174 + .../conditions_table/index.stories.tsx | 27 + .../conditions_table/index.test.tsx | 38 + .../components/conditions_table/index.tsx | 45 + .../components/conditions_table/test_utils.ts | 20 + .../__snapshots__/index.test.tsx.snap | 206 + .../item_details_card/index.stories.tsx | 38 + .../item_details_card/index.test.tsx | 73 + .../components/item_details_card/index.tsx | 129 + .../trusted_apps_list.test.tsx.snap | 4621 ++++++++++++++++- .../components/create_trusted_app_form.tsx | 2 +- .../__snapshots__/index.test.tsx.snap | 66 + .../trusted_app_card/index.stories.tsx | 61 + .../trusted_app_card/index.test.tsx | 22 + .../components/trusted_app_card/index.tsx | 95 + .../pages/trusted_apps/view/constants.ts | 20 - .../pages/trusted_apps/view/translations.ts | 76 + .../view/trusted_apps_list.test.tsx | 26 +- .../trusted_apps/view/trusted_apps_list.tsx | 175 +- 19 files changed, 5693 insertions(+), 221 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/common/components/conditions_table/__snapshots__/index.test.tsx.snap create mode 100644 x-pack/plugins/security_solution/public/common/components/conditions_table/index.stories.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/conditions_table/index.test.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/conditions_table/index.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/conditions_table/test_utils.ts create mode 100644 x-pack/plugins/security_solution/public/common/components/item_details_card/__snapshots__/index.test.tsx.snap create mode 100644 x-pack/plugins/security_solution/public/common/components/item_details_card/index.stories.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/item_details_card/index.test.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/item_details_card/index.tsx create mode 100644 x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/__snapshots__/index.test.tsx.snap create mode 100644 x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/index.stories.tsx create mode 100644 x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/index.test.tsx create mode 100644 x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/index.tsx delete mode 100644 x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/constants.ts create mode 100644 x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/translations.ts diff --git a/x-pack/plugins/security_solution/public/common/components/conditions_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/conditions_table/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000000..3d37aea431df3 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/conditions_table/__snapshots__/index.test.tsx.snap @@ -0,0 +1,174 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`conditions_table ConditionsTable should render multi item table with and badge correctly 1`] = ` + + + + + + + + + + +`; + +exports[`conditions_table ConditionsTable should render multi item table with or badge correctly 1`] = ` + + + + + + + + + + +`; + +exports[`conditions_table ConditionsTable should render single item table correctly 1`] = ` + + + + + +`; diff --git a/x-pack/plugins/security_solution/public/common/components/conditions_table/index.stories.tsx b/x-pack/plugins/security_solution/public/common/components/conditions_table/index.stories.tsx new file mode 100644 index 0000000000000..b179dbb6a405e --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/conditions_table/index.stories.tsx @@ -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. + */ +import React from 'react'; +import { ThemeProvider } from 'styled-components'; +import { storiesOf, addDecorator } from '@storybook/react'; +import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; + +import { createItems, TEST_COLUMNS } from './test_utils'; +import { ConditionsTable } from '.'; + +addDecorator((storyFn) => ( + ({ eui: euiLightVars, darkMode: false })}>{storyFn()} +)); + +storiesOf('Components|ConditionsTable', module) + .add('single item', () => { + return ; + }) + .add('and', () => { + return ; + }) + .add('or', () => { + return ; + }); diff --git a/x-pack/plugins/security_solution/public/common/components/conditions_table/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/conditions_table/index.test.tsx new file mode 100644 index 0000000000000..e563e3604952a --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/conditions_table/index.test.tsx @@ -0,0 +1,38 @@ +/* + * 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 { shallow } from 'enzyme'; +import React from 'react'; + +import { ConditionsTable } from '.'; +import { createItems, TEST_COLUMNS } from './test_utils'; + +describe('conditions_table', () => { + describe('ConditionsTable', () => { + it('should render single item table correctly', () => { + const element = shallow( + + ); + + expect(element).toMatchSnapshot(); + }); + + it('should render multi item table with and badge correctly', () => { + const element = shallow( + + ); + + expect(element).toMatchSnapshot(); + }); + + it('should render multi item table with or badge correctly', () => { + const element = shallow( + + ); + + expect(element).toMatchSnapshot(); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/conditions_table/index.tsx b/x-pack/plugins/security_solution/public/common/components/conditions_table/index.tsx new file mode 100644 index 0000000000000..c90af8e619ff0 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/conditions_table/index.tsx @@ -0,0 +1,45 @@ +/* + * 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 styled from 'styled-components'; +import { + EuiBasicTableProps, + EuiBasicTable, + EuiFlexGroup, + EuiFlexItem, + EuiHideFor, +} from '@elastic/eui'; + +import { AndOr, AndOrBadge } from '../and_or_badge'; + +const AndOrBadgeContainer = styled(EuiFlexItem)` + padding-top: ${({ theme }) => theme.eui.euiSizeXL}; + padding-bottom: ${({ theme }) => theme.eui.euiSizeS}; +`; + +type ConditionsTableProps = EuiBasicTableProps & { + badge: AndOr; +}; + +export const ConditionsTable = ({ badge, ...props }: ConditionsTableProps) => { + return ( + + {props.items.length > 1 && ( + + + + + + )} + + + + + ); +}; + +ConditionsTable.displayName = 'ConditionsTable'; diff --git a/x-pack/plugins/security_solution/public/common/components/conditions_table/test_utils.ts b/x-pack/plugins/security_solution/public/common/components/conditions_table/test_utils.ts new file mode 100644 index 0000000000000..eee61293ee7b3 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/conditions_table/test_utils.ts @@ -0,0 +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. + */ + +import { EuiTableFieldDataColumnType } from '@elastic/eui'; + +export interface TestItem { + name: string; + value: string; +} + +export const TEST_COLUMNS: Array> = [ + { field: 'name', name: 'Name', textOnly: true, width: '50%' }, + { field: 'value', name: 'Value', textOnly: true, width: '50%' }, +]; + +export const createItems = (count: number): TestItem[] => + [...new Array(count).keys()].map((item) => ({ name: `item ${item}`, value: `value ${item}` })); diff --git a/x-pack/plugins/security_solution/public/common/components/item_details_card/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/item_details_card/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000000..4bd2cd05d49d0 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/item_details_card/__snapshots__/index.test.tsx.snap @@ -0,0 +1,206 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`item_details_card ItemDetailsAction should render correctly 1`] = ` + + + + primary + + + +`; + +exports[`item_details_card ItemDetailsCard should render correctly with actions 1`] = ` + + + + + + + + + + + + + + + some text + + some node + + + + + + + primary + + + + + secondary + + + + + danger + + + + + + + + + + +`; + +exports[`item_details_card ItemDetailsCard should render correctly with no actions 1`] = ` + + + + + + + + + + + + + + + some text + + some node + + + + + + + + + + + +`; + +exports[`item_details_card ItemDetailsPropertySummary should render correctly 1`] = ` + + + name 1 + + + value 1 + + +`; diff --git a/x-pack/plugins/security_solution/public/common/components/item_details_card/index.stories.tsx b/x-pack/plugins/security_solution/public/common/components/item_details_card/index.stories.tsx new file mode 100644 index 0000000000000..b16f4be598866 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/item_details_card/index.stories.tsx @@ -0,0 +1,38 @@ +/* + * 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 { ThemeProvider } from 'styled-components'; +import { storiesOf, addDecorator } from '@storybook/react'; +import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; + +import { ItemDetailsAction, ItemDetailsCard, ItemDetailsPropertySummary } from '.'; + +addDecorator((storyFn) => ( + ({ eui: euiLightVars, darkMode: false })}>{storyFn()} +)); + +storiesOf('Components|ItemDetailsCard', module).add('default', () => { + return ( + + + + + + {'content text'} + {'content node'} + + + {'primary'} + + + {'secondary'} + + + {'danger'} + + + ); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/item_details_card/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/item_details_card/index.test.tsx new file mode 100644 index 0000000000000..3f8578606aab9 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/item_details_card/index.test.tsx @@ -0,0 +1,73 @@ +/* + * 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 { shallow } from 'enzyme'; +import React from 'react'; + +import { ItemDetailsAction, ItemDetailsCard, ItemDetailsPropertySummary } from '.'; + +describe('item_details_card', () => { + describe('ItemDetailsPropertySummary', () => { + it('should render correctly', () => { + const element = shallow(); + + expect(element).toMatchSnapshot(); + }); + }); + + describe('ItemDetailsAction', () => { + it('should render correctly', () => { + const element = shallow( + + {'primary'} + + ); + + expect(element).toMatchSnapshot(); + }); + }); + + describe('ItemDetailsCard', () => { + it('should render correctly with no actions', () => { + const element = shallow( + + + + + + {'some text'} + {'some node'} + + ); + + expect(element).toMatchSnapshot(); + }); + + it('should render correctly with actions', () => { + const element = shallow( + + + + + + {'some text'} + {'some node'} + + + {'primary'} + + + {'secondary'} + + + {'danger'} + + + ); + + expect(element).toMatchSnapshot(); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/item_details_card/index.tsx b/x-pack/plugins/security_solution/public/common/components/item_details_card/index.tsx new file mode 100644 index 0000000000000..ee1c3e1bead1a --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/item_details_card/index.tsx @@ -0,0 +1,129 @@ +/* + * 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, { FC, isValidElement, memo, ReactElement, ReactNode, useMemo } from 'react'; +import styled from 'styled-components'; +import { + EuiPanel, + EuiFlexGroup, + EuiFlexItem, + EuiButton, + EuiDescriptionList, + EuiDescriptionListTitle, + EuiDescriptionListDescription, + EuiButtonProps, + PropsForButton, +} from '@elastic/eui'; + +const OTHER_NODES = {}; + +const groupChildrenByType = ( + children: ReactNode | ReactNode[], + types: Array +) => { + const result = new Map(); + + types.forEach((type) => result.set(type, [])); + result.set(OTHER_NODES, []); + + React.Children.toArray(children).forEach((child) => { + const key = isValidElement(child) ? child.type : OTHER_NODES; + + if (!result.has(key)) { + result.get(OTHER_NODES)?.push(child); + } else { + result.get(key)?.push(child); + } + }); + + return result; +}; + +const SummarySection = styled(EuiFlexItem)` + background-color: ${({ theme }) => theme.eui.euiColorLightestShade}; + padding: ${({ theme }) => theme.eui.euiSize}; +`; + +const DetailsSection = styled(EuiFlexItem)` + padding: ${({ theme }) => theme.eui.euiSize}; +`; + +const DescriptionListTitle = styled(EuiDescriptionListTitle)` + width: 40%; +`; + +const DescriptionListDescription = styled(EuiDescriptionListDescription)` + width: 60%; +`; + +interface ItemDetailsPropertySummaryProps { + name: ReactNode | ReactNode[]; + value: ReactNode | ReactNode[]; +} + +export const ItemDetailsPropertySummary: FC = memo( + ({ name, value }) => ( + <> + {name} + {value} + + ) +); + +ItemDetailsPropertySummary.displayName = 'ItemPropertySummary'; + +export const ItemDetailsAction: FC> = memo( + ({ children, ...rest }) => ( + + + {children} + + + ) +); + +ItemDetailsAction.displayName = 'ItemDetailsAction'; + +export const ItemDetailsCard: FC = memo(({ children }) => { + const childElements = useMemo( + () => groupChildrenByType(children, [ItemDetailsPropertySummary, ItemDetailsAction]), + [children] + ); + + return ( + + + + + + + {childElements.get(ItemDetailsPropertySummary)} + + + + + {childElements.get(OTHER_NODES)} + {childElements.has(ItemDetailsAction) && ( + + + {childElements.get(ItemDetailsAction)?.map((action, index) => ( + + {action} + + ))} + + + )} + + + + + + + ); +}); + +ItemDetailsCard.displayName = 'ItemDetailsCard'; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/__snapshots__/trusted_apps_list.test.tsx.snap b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/__snapshots__/trusted_apps_list.test.tsx.snap index ccd94c63e96c8..d33c74a021f86 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/__snapshots__/trusted_apps_list.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/__snapshots__/trusted_apps_list.test.tsx.snap @@ -115,6 +115,21 @@ exports[`TrustedAppsList renders correctly initially 1`] = ` + +

+ @@ -123,7 +138,7 @@ exports[`TrustedAppsList renders correctly initially 1`] = ` >
+ +
+ +
+ @@ -266,7 +296,7 @@ exports[`TrustedAppsList renders correctly when failed loading data for the firs >
+ +
+ +
+ @@ -414,7 +459,7 @@ exports[`TrustedAppsList renders correctly when failed loading data for the seco >
`; -exports[`TrustedAppsList renders correctly when loaded data 1`] = ` +exports[`TrustedAppsList renders correctly when item details expanded 1`] = ` +.c0 { + background-color: #f5f7fa; + padding: 16px; +} + +.c3 { + padding: 16px; +} + +.c1 { + width: 40%; +} + +.c2 { + width: 60%; +} +
+ +
+ +
+ - Delete + Remove
+ +
+ +
+ + + + +
+
+
+
+
+
+
+
+ Name +
+
+ trusted app 0 +
+
+ OS +
+
+ Windows +
+
+ Date Created +
+
+ 1 minute ago +
+
+ Created By +
+
+ someone +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + +
+
+
+ + Field + +
+
+
+ + Operator + +
+
+
+ + Value + +
+
+
+ + No items found + +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ - Delete + Remove
+ +
+ +
+ - Delete + Remove
+ +
+ +
+ - Delete + Remove
+ +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove - -
- Name + +
+ + + + +
+ Name +
+
+ + trusted app 15 + +
+ + +
+ OS +
+
+ Windows +
+ + +
+ Date Created +
+
+ 1 minute ago +
+ + +
+ Created By +
+
+ + someone + +
+ + +
+ + + + Remove + + +
+ + +
+ +
+ + + + +
+ Name +
+
+ + trusted app 16 + +
+ + +
+ OS +
+
+ Mac OS +
+ + +
+ Date Created +
+
+ 1 minute ago +
+ + +
+ Created By +
+
+ + someone + +
+ + +
+ + + + Remove + + +
+ + +
+ +
+ + + + +
+ Name +
+
+ + trusted app 17 + +
+ + +
+ OS +
+
+ Linux +
+ + +
+ Date Created +
+
+ 1 minute ago +
+ + +
+ Created By +
+
+ + someone + +
+ + +
+ + + + Remove + + +
+ + +
+ +
+ + + + +
+ Name +
+
+ + trusted app 18 + +
+ + +
+ OS +
+
+ Windows +
+ + +
+ Date Created +
+
+ 1 minute ago +
+ + +
+ Created By +
+
+ + someone + +
+ + +
+ + + + Remove + + +
+ + +
+ +
+ + + + +
+ Name +
+
+ + trusted app 19 + +
+ + +
+ OS +
+
+ Mac OS +
+ + +
+ Date Created +
+
+ 1 minute ago +
+ + +
+ Created By +
+
+ + someone + +
+ + +
+ + + + Remove + + +
+ + +
+ +
+ + + + + +
+ +`; + +exports[`TrustedAppsList renders correctly when loaded data 1`] = ` +
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + Name + +
+
+
+ + OS + +
+
+
+ + Date Created + +
+
+
+ + Created By + +
+
+
+ + Actions + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 0 + +
+
+
+ OS +
+
+ Windows +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 1 + +
+
+
+ OS +
+
+ Mac OS +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 2 + +
+
+
+ OS +
+
+ Linux +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 3 + +
+
+
+ OS +
+
+ Windows +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 4 + +
+
+
+ OS +
+
+ Mac OS +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 5 + +
+
+
+ OS +
+
+ Linux +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 6 + +
+
+
+ OS +
+
+ Windows +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 7 + +
+
+
+ OS +
+
+ Mac OS +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 8 + +
+
+
+ OS +
+
+ Linux +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 9 + +
+
+
+ OS +
+
+ Windows +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 10 + +
+
+
+ OS +
+
+ Mac OS +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 11 + +
+
+
+ OS +
+
+ Linux +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 12 + +
+
+
+ OS +
+
+ Windows +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 13 + +
+
+
+ OS +
+
+ Mac OS +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name +
+
+ + trusted app 14 + +
+
+
+ OS +
+
+ Linux +
+
+
+ Date Created +
+
+ 1 minute ago +
+
+
+ Created By +
+
+ + someone + +
+
+
+ + + + Remove + + +
+
+
+ +
+
+
+ Name
- Delete + Remove
+
+ +
+
- Delete + Remove +
+ +
+
- Delete + Remove +
+ +
+
- Delete + Remove +
+ +
+
- Delete + Remove +
+ +
+
@@ -2859,6 +6333,21 @@ exports[`TrustedAppsList renders correctly when loading data for the first time
+ +
+ +
+ @@ -2867,7 +6356,7 @@ exports[`TrustedAppsList renders correctly when loading data for the first time >
+ +
+ +
+ - Delete + Remove
+ +
+ +
+ - Delete + Remove
+ +
+ +
+ - Delete + Remove
+ +
+ +
+ - Delete + Remove
+ +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ @@ -5307,11 +9231,26 @@ exports[`TrustedAppsList renders correctly when new page and page size set (not + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ - Delete + Remove + +
+ +
+ diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.tsx index 32170ed6fc4d8..08cb1835c5363 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.tsx @@ -23,7 +23,7 @@ import { TrustedApp, } from '../../../../../../common/endpoint/types'; import { LogicalConditionBuilderProps } from './logical_condition/logical_condition_builder'; -import { OS_TITLES } from '../constants'; +import { OS_TITLES } from '../translations'; import { isMacosLinuxTrustedAppCondition, isTrustedAppSupportedOs, diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/__snapshots__/index.test.tsx.snap new file mode 100644 index 0000000000000..3928f4ddec837 --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/__snapshots__/index.test.tsx.snap @@ -0,0 +1,66 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`trusted_app_card TrustedAppCard should render correctly 1`] = ` + + + + + } + /> + + + + Remove + + +`; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/index.stories.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/index.stories.tsx new file mode 100644 index 0000000000000..713e5e7095e12 --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/index.stories.tsx @@ -0,0 +1,61 @@ +/* + * 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 { ThemeProvider } from 'styled-components'; +import { storiesOf, addDecorator } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; + +import { KibanaContextProvider } from '../../../../../../../../../../src/plugins/kibana_react/public'; +import { TrustedApp } from '../../../../../../../common/endpoint/types'; + +import { createSampleTrustedApp } from '../../../test_utils'; + +import { TrustedAppCard } from '.'; + +addDecorator((storyFn) => ( + 'MMM D, YYYY @ HH:mm:ss.SSS' } }}> + ({ eui: euiLightVars, darkMode: false })}> + {storyFn()} + + +)); + +storiesOf('TrustedApps|TrustedAppCard', module) + .add('default', () => { + const trustedApp: TrustedApp = createSampleTrustedApp(5); + trustedApp.created_at = '2020-09-17T14:52:33.899Z'; + trustedApp.entries = [ + { + field: 'process.path.text', + operator: 'included', + type: 'match', + value: '/some/path/on/file/system', + }, + ]; + + return ; + }) + .add('multiple entries', () => { + const trustedApp: TrustedApp = createSampleTrustedApp(5); + trustedApp.created_at = '2020-09-17T14:52:33.899Z'; + trustedApp.entries = [ + { + field: 'process.path.text', + operator: 'included', + type: 'match', + value: '/some/path/on/file/system', + }, + { + field: 'process.code_signature', + operator: 'included', + type: 'match', + value: 'Elastic', + }, + ]; + + return ; + }); diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/index.test.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/index.test.tsx new file mode 100644 index 0000000000000..163883b3dc3b8 --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/index.test.tsx @@ -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 { shallow } from 'enzyme'; +import React from 'react'; + +import { TrustedAppCard } from '.'; +import { createSampleTrustedApp } from '../../../test_utils'; + +describe('trusted_app_card', () => { + describe('TrustedAppCard', () => { + it('should render correctly', () => { + const element = shallow( + {}} /> + ); + + expect(element).toMatchSnapshot(); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/index.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/index.tsx new file mode 100644 index 0000000000000..73dbe5482573a --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/trusted_app_card/index.tsx @@ -0,0 +1,95 @@ +/* + * 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, { memo, useCallback, useMemo } from 'react'; +import { i18n } from '@kbn/i18n'; +import { EuiTableFieldDataColumnType } from '@elastic/eui'; + +import { + Immutable, + TrustedApp, + MacosLinuxConditionEntry, + WindowsConditionEntry, +} from '../../../../../../../common/endpoint/types'; + +import { FormattedDate } from '../../../../../../common/components/formatted_date'; +import { ConditionsTable } from '../../../../../../common/components/conditions_table'; +import { + ItemDetailsAction, + ItemDetailsCard, + ItemDetailsPropertySummary, +} from '../../../../../../common/components/item_details_card'; + +import { OS_TITLES, PROPERTY_TITLES, ENTRY_PROPERTY_TITLES } from '../../translations'; + +type Entry = MacosLinuxConditionEntry | WindowsConditionEntry; + +const getEntriesColumnDefinitions = (): Array> => [ + { + field: 'field', + name: ENTRY_PROPERTY_TITLES.field, + sortable: false, + truncateText: true, + textOnly: true, + width: '30%', + }, + { + field: 'operator', + name: ENTRY_PROPERTY_TITLES.operator, + sortable: false, + truncateText: true, + width: '20%', + }, + { + field: 'value', + name: ENTRY_PROPERTY_TITLES.value, + sortable: false, + truncateText: true, + width: '60%', + }, +]; + +interface TrustedAppCardProps { + trustedApp: Immutable; + onDelete: (id: string) => void; +} + +export const TrustedAppCard = memo(({ trustedApp, onDelete }: TrustedAppCardProps) => { + const handleDelete = useCallback(() => onDelete(trustedApp.id), [onDelete, trustedApp.id]); + + return ( + + + + + } + /> + + + getEntriesColumnDefinitions(), [])} + items={useMemo(() => [...trustedApp.entries], [trustedApp.entries])} + badge="and" + responsive + /> + + + {i18n.translate('xpack.securitySolution.trustedapps.card.removeButtonLabel', { + defaultMessage: 'Remove', + })} + + + ); +}); + +TrustedAppCard.displayName = 'TrustedAppCard'; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/constants.ts b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/constants.ts deleted file mode 100644 index d5df8c528511a..0000000000000 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/constants.ts +++ /dev/null @@ -1,20 +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 { TrustedApp } from '../../../../../common/endpoint/types'; - -export const OS_TITLES: Readonly<{ [K in TrustedApp['os']]: string }> = { - windows: i18n.translate('xpack.securitySolution.trustedapps.os.windows', { - defaultMessage: 'Windows', - }), - macos: i18n.translate('xpack.securitySolution.trustedapps.os.macos', { - defaultMessage: 'Mac OS', - }), - linux: i18n.translate('xpack.securitySolution.trustedapps.os.linux', { - defaultMessage: 'Linux', - }), -}; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/translations.ts b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/translations.ts new file mode 100644 index 0000000000000..e16155df6d2db --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/translations.ts @@ -0,0 +1,76 @@ +/* + * 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 { + TrustedApp, + MacosLinuxConditionEntry, + WindowsConditionEntry, +} from '../../../../../common/endpoint/types'; + +export const OS_TITLES: Readonly<{ [K in TrustedApp['os']]: string }> = { + windows: i18n.translate('xpack.securitySolution.trustedapps.os.windows', { + defaultMessage: 'Windows', + }), + macos: i18n.translate('xpack.securitySolution.trustedapps.os.macos', { + defaultMessage: 'Mac OS', + }), + linux: i18n.translate('xpack.securitySolution.trustedapps.os.linux', { + defaultMessage: 'Linux', + }), +}; + +export const PROPERTY_TITLES: Readonly< + { [K in keyof Omit]: string } +> = { + name: i18n.translate('xpack.securitySolution.trustedapps.trustedapp.name', { + defaultMessage: 'Name', + }), + os: i18n.translate('xpack.securitySolution.trustedapps.trustedapp.os', { + defaultMessage: 'OS', + }), + created_at: i18n.translate('xpack.securitySolution.trustedapps.trustedapp.createdAt', { + defaultMessage: 'Date Created', + }), + created_by: i18n.translate('xpack.securitySolution.trustedapps.trustedapp.createdBy', { + defaultMessage: 'Created By', + }), +}; + +export const ENTRY_PROPERTY_TITLES: Readonly< + { [K in keyof Omit]: string } +> = { + field: i18n.translate('xpack.securitySolution.trustedapps.trustedapp.entry.field', { + defaultMessage: 'Field', + }), + operator: i18n.translate('xpack.securitySolution.trustedapps.trustedapp.entry.operator', { + defaultMessage: 'Operator', + }), + value: i18n.translate('xpack.securitySolution.trustedapps.trustedapp.entry.value', { + defaultMessage: 'Value', + }), +}; + +export const ACTIONS_COLUMN_TITLE = i18n.translate( + 'xpack.securitySolution.trustedapps.list.columns.actions', + { + defaultMessage: 'Actions', + } +); + +export const LIST_ACTIONS = { + delete: { + name: i18n.translate('xpack.securitySolution.trustedapps.list.actions.delete', { + defaultMessage: 'Remove', + }), + description: i18n.translate( + 'xpack.securitySolution.trustedapps.list.actions.delete.description', + { + defaultMessage: 'Remove this entry', + } + ), + }, +}; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_list.test.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_list.test.tsx index a457ecd0d088f..1468871a655a5 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_list.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_list.test.tsx @@ -6,6 +6,8 @@ import { render } from '@testing-library/react'; import React from 'react'; import { Provider } from 'react-redux'; +import { ThemeProvider } from 'styled-components'; +import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; import { TrustedAppsList } from './trusted_apps_list'; import { @@ -25,7 +27,13 @@ jest.mock('@elastic/eui/lib/services/accessibility/html_id_generator', () => ({ const now = 111111; const renderList = (store: ReturnType) => { - const Wrapper: React.FC = ({ children }) => {children}; + const Wrapper: React.FC = ({ children }) => ( + + ({ eui: euiLightVars, darkMode: false })}> + {children} + + + ); return render(, { wrapper: Wrapper }); }; @@ -111,6 +119,22 @@ describe('TrustedAppsList', () => { expect(renderList(store).container).toMatchSnapshot(); }); + it('renders correctly when item details expanded', async () => { + const store = createGlobalNoMiddlewareStore(); + + store.dispatch( + createTrustedAppsListResourceStateChangedAction( + createListLoadedResourceState({ index: 0, size: 20 }, 200, now) + ) + ); + + const element = renderList(store); + + (await element.findAllByTestId('trustedAppsListItemExpandButton'))[0].click(); + + expect(element.container).toMatchSnapshot(); + }); + it('triggers deletion dialog when delete action clicked', async () => { const store = createGlobalNoMiddlewareStore(); diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_list.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_list.tsx index 5e5b83ccd8c03..d0c1fb477ea46 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_list.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_list.tsx @@ -5,11 +5,16 @@ */ import { Dispatch } from 'redux'; -import React, { memo, useCallback, useMemo } from 'react'; +import React, { memo, ReactNode, useCallback, useMemo, useState } from 'react'; import { useDispatch } from 'react-redux'; import { useHistory } from 'react-router-dom'; -import { EuiBasicTable, EuiBasicTableColumn, EuiTableActionsColumnType } from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; +import { + EuiBasicTable, + EuiBasicTableColumn, + EuiButtonIcon, + EuiTableActionsColumnType, + RIGHT_ALIGNMENT, +} from '@elastic/eui'; import { Immutable } from '../../../../../common/endpoint/types'; import { AppAction } from '../../../../common/store/actions'; @@ -29,41 +34,51 @@ import { import { useTrustedAppsSelector } from './hooks'; import { FormattedDate } from '../../../../common/components/formatted_date'; -import { OS_TITLES } from './constants'; - -const COLUMN_TITLES: Readonly< - { [K in keyof Omit | 'actions']: string } -> = { - name: i18n.translate('xpack.securitySolution.trustedapps.list.columns.name', { - defaultMessage: 'Name', - }), - os: i18n.translate('xpack.securitySolution.trustedapps.list.columns.os', { - defaultMessage: 'OS', - }), - created_at: i18n.translate('xpack.securitySolution.trustedapps.list.columns.createdAt', { - defaultMessage: 'Date Created', - }), - created_by: i18n.translate('xpack.securitySolution.trustedapps.list.columns.createdBy', { - defaultMessage: 'Created By', - }), - actions: i18n.translate('xpack.securitySolution.trustedapps.list.columns.actions', { - defaultMessage: 'Actions', - }), -}; +import { ACTIONS_COLUMN_TITLE, LIST_ACTIONS, OS_TITLES, PROPERTY_TITLES } from './translations'; +import { TrustedAppCard } from './components/trusted_app_card'; + +interface DetailsMap { + [K: string]: ReactNode; +} + +interface TrustedAppsListContext { + dispatch: Dispatch>; + detailsMapState: [DetailsMap, (value: DetailsMap) => void]; +} +type ColumnsList = Array>>; type ActionsList = EuiTableActionsColumnType>['actions']; -const getActionDefinitions = (dispatch: Dispatch>): ActionsList => [ +const toggleItemDetailsInMap = ( + map: DetailsMap, + item: Immutable, + { dispatch }: TrustedAppsListContext +): DetailsMap => { + const changedMap = { ...map }; + + if (changedMap[item.id]) { + delete changedMap[item.id]; + } else { + changedMap[item.id] = ( + { + dispatch({ + type: 'trustedAppDeletionDialogStarted', + payload: { entry: item }, + }); + }} + /> + ); + } + + return changedMap; +}; + +const getActionDefinitions = ({ dispatch }: TrustedAppsListContext): ActionsList => [ { - name: i18n.translate('xpack.securitySolution.trustedapps.list.actions.delete', { - defaultMessage: 'Delete', - }), - description: i18n.translate( - 'xpack.securitySolution.trustedapps.list.actions.delete.description', - { - defaultMessage: 'Delete this entry', - } - ), + name: LIST_ACTIONS.delete.name, + description: LIST_ACTIONS.delete.description, 'data-test-subj': 'trustedAppDeleteAction', isPrimary: true, icon: 'trash', @@ -78,44 +93,62 @@ const getActionDefinitions = (dispatch: Dispatch>): Actions }, ]; -type ColumnsList = Array>>; +const getColumnDefinitions = (context: TrustedAppsListContext): ColumnsList => { + const [itemDetailsMap, setItemDetailsMap] = context.detailsMapState; -const getColumnDefinitions = (dispatch: Dispatch>): ColumnsList => [ - { - field: 'name', - name: COLUMN_TITLES.name, - }, - { - field: 'os', - name: COLUMN_TITLES.os, - render(value: TrustedApp['os'], record: Immutable) { - return OS_TITLES[value]; + return [ + { + field: 'name', + name: PROPERTY_TITLES.name, }, - }, - { - field: 'created_at', - name: COLUMN_TITLES.created_at, - render(value: TrustedApp['created_at'], record: Immutable) { - return ( - - ); + { + field: 'os', + name: PROPERTY_TITLES.os, + render(value: TrustedApp['os'], record: Immutable) { + return OS_TITLES[value]; + }, }, - }, - { - field: 'created_by', - name: COLUMN_TITLES.created_by, - }, - { - name: COLUMN_TITLES.actions, - actions: getActionDefinitions(dispatch), - }, -]; + { + field: 'created_at', + name: PROPERTY_TITLES.created_at, + render(value: TrustedApp['created_at'], record: Immutable) { + return ( + + ); + }, + }, + { + field: 'created_by', + name: PROPERTY_TITLES.created_by, + }, + { + name: ACTIONS_COLUMN_TITLE, + actions: getActionDefinitions(context), + }, + { + align: RIGHT_ALIGNMENT, + width: '40px', + isExpander: true, + render(item: Immutable) { + return ( + setItemDetailsMap(toggleItemDetailsInMap(itemDetailsMap, item, context))} + aria-label={itemDetailsMap[item.id] ? 'Collapse' : 'Expand'} + iconType={itemDetailsMap[item.id] ? 'arrowUp' : 'arrowDown'} + data-test-subj="trustedAppsListItemExpandButton" + /> + ); + }, + }, + ]; +}; export const TrustedAppsList = memo(() => { + const [detailsMap, setDetailsMap] = useState({}); const pageIndex = useTrustedAppsSelector(getListCurrentPageIndex); const pageSize = useTrustedAppsSelector(getListCurrentPageSize); const totalItemCount = useTrustedAppsSelector(getListTotalItemsCount); @@ -125,10 +158,16 @@ export const TrustedAppsList = memo(() => { return ( getColumnDefinitions(dispatch), [dispatch])} + columns={useMemo( + () => getColumnDefinitions({ dispatch, detailsMapState: [detailsMap, setDetailsMap] }), + [dispatch, detailsMap, setDetailsMap] + )} items={useMemo(() => [...listItems], [listItems])} error={useTrustedAppsSelector(getListErrorMessage)} loading={useTrustedAppsSelector(isListLoading)} + itemId="id" + itemIdToExpandedRowMap={detailsMap} + isExpandable={true} pagination={useMemo( () => ({ pageIndex, From c49d5464a2cfeb9171f8e20a76134de2851e9542 Mon Sep 17 00:00:00 2001 From: igoristic Date: Wed, 30 Sep 2020 12:38:52 -0400 Subject: [PATCH 029/142] [Monitoring] Disk usage alerting (#75419) * Disk usage alert draft * Fixed typings and defaults * Fixed tests * Fixed tests * Addressed code feedback * Fixed disk and cpu usage states * Fixed resolve state and throttle * CR feedback * Fixed links --- x-pack/plugins/monitoring/common/constants.ts | 2 + x-pack/plugins/monitoring/common/types.ts | 5 +- .../duration}/expression.tsx | 8 +- .../duration}/validation.tsx | 17 +- .../cpu_usage_alert/cpu_usage_alert.tsx | 6 +- .../public/alerts/disk_usage_alert/index.tsx | 29 ++ .../public/alerts/lib/replace_tokens.tsx | 8 +- .../cluster/overview/elasticsearch_panel.js | 2 + x-pack/plugins/monitoring/public/plugin.ts | 2 + .../elasticsearch/node/advanced/index.js | 8 +- .../public/views/elasticsearch/node/index.js | 8 +- .../public/views/elasticsearch/nodes/index.js | 3 +- .../monitoring/server/alerts/alerts_common.ts | 82 +++++ .../server/alerts/alerts_factory.test.ts | 2 +- .../server/alerts/alerts_factory.ts | 3 + .../monitoring/server/alerts/base_alert.ts | 9 +- .../alerts/cluster_health_alert.test.ts | 13 +- .../server/alerts/cluster_health_alert.ts | 69 +--- .../server/alerts/cpu_usage_alert.test.ts | 22 +- .../server/alerts/cpu_usage_alert.ts | 121 ++---- .../server/alerts/disk_usage_alert.test.ts | 221 +++++++++++ .../server/alerts/disk_usage_alert.ts | 343 ++++++++++++++++++ ...asticsearch_version_mismatch_alert.test.ts | 19 +- .../elasticsearch_version_mismatch_alert.ts | 76 +--- .../plugins/monitoring/server/alerts/index.ts | 1 + .../kibana_version_mismatch_alert.test.ts | 27 +- .../alerts/kibana_version_mismatch_alert.ts | 69 +--- .../alerts/license_expiration_alert.test.ts | 16 +- .../server/alerts/license_expiration_alert.ts | 72 +--- .../logstash_version_mismatch_alert.test.ts | 19 +- .../alerts/logstash_version_mismatch_alert.ts | 74 +--- .../server/alerts/nodes_changed_alert.test.ts | 17 +- .../server/alerts/nodes_changed_alert.ts | 70 +--- .../monitoring/server/alerts/types.d.ts | 25 +- .../fetch_disk_usage_node_stats.test.ts | 71 ++++ .../lib/alerts/fetch_disk_usage_node_stats.ts | 125 +++++++ .../server/lib/alerts/fetch_status.test.ts | 2 - .../translations/translations/ja-JP.json | 58 +-- .../translations/translations/zh-CN.json | 58 +-- 39 files changed, 1076 insertions(+), 706 deletions(-) rename x-pack/plugins/monitoring/public/alerts/{cpu_usage_alert => components/duration}/expression.tsx (85%) rename x-pack/plugins/monitoring/public/alerts/{cpu_usage_alert => components/duration}/validation.tsx (62%) create mode 100644 x-pack/plugins/monitoring/public/alerts/disk_usage_alert/index.tsx create mode 100644 x-pack/plugins/monitoring/server/alerts/alerts_common.ts create mode 100644 x-pack/plugins/monitoring/server/alerts/disk_usage_alert.test.ts create mode 100644 x-pack/plugins/monitoring/server/alerts/disk_usage_alert.ts create mode 100644 x-pack/plugins/monitoring/server/lib/alerts/fetch_disk_usage_node_stats.test.ts create mode 100644 x-pack/plugins/monitoring/server/lib/alerts/fetch_disk_usage_node_stats.ts diff --git a/x-pack/plugins/monitoring/common/constants.ts b/x-pack/plugins/monitoring/common/constants.ts index 8be0eb0b06823..6eb0d6e93d58a 100644 --- a/x-pack/plugins/monitoring/common/constants.ts +++ b/x-pack/plugins/monitoring/common/constants.ts @@ -231,6 +231,7 @@ export const ALERT_PREFIX = 'monitoring_'; export const ALERT_LICENSE_EXPIRATION = `${ALERT_PREFIX}alert_license_expiration`; export const ALERT_CLUSTER_HEALTH = `${ALERT_PREFIX}alert_cluster_health`; export const ALERT_CPU_USAGE = `${ALERT_PREFIX}alert_cpu_usage`; +export const ALERT_DISK_USAGE = `${ALERT_PREFIX}alert_disk_usage`; export const ALERT_NODES_CHANGED = `${ALERT_PREFIX}alert_nodes_changed`; export const ALERT_ELASTICSEARCH_VERSION_MISMATCH = `${ALERT_PREFIX}alert_elasticsearch_version_mismatch`; export const ALERT_KIBANA_VERSION_MISMATCH = `${ALERT_PREFIX}alert_kibana_version_mismatch`; @@ -243,6 +244,7 @@ export const ALERTS = [ ALERT_LICENSE_EXPIRATION, ALERT_CLUSTER_HEALTH, ALERT_CPU_USAGE, + ALERT_DISK_USAGE, ALERT_NODES_CHANGED, ALERT_ELASTICSEARCH_VERSION_MISMATCH, ALERT_KIBANA_VERSION_MISMATCH, diff --git a/x-pack/plugins/monitoring/common/types.ts b/x-pack/plugins/monitoring/common/types.ts index f5dc85dce32e1..4216a046fef9f 100644 --- a/x-pack/plugins/monitoring/common/types.ts +++ b/x-pack/plugins/monitoring/common/types.ts @@ -27,8 +27,9 @@ export interface CommonAlertState { meta: any; } -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface CommonAlertFilter {} +export interface CommonAlertFilter { + nodeUuid?: string; +} export interface CommonAlertCpuUsageFilter extends CommonAlertFilter { nodeUuid: string; diff --git a/x-pack/plugins/monitoring/public/alerts/cpu_usage_alert/expression.tsx b/x-pack/plugins/monitoring/public/alerts/components/duration/expression.tsx similarity index 85% rename from x-pack/plugins/monitoring/public/alerts/cpu_usage_alert/expression.tsx rename to x-pack/plugins/monitoring/public/alerts/components/duration/expression.tsx index 7dc6155de529e..2df7169efc675 100644 --- a/x-pack/plugins/monitoring/public/alerts/cpu_usage_alert/expression.tsx +++ b/x-pack/plugins/monitoring/public/alerts/components/duration/expression.tsx @@ -6,10 +6,10 @@ import React, { Fragment } from 'react'; import { EuiForm, EuiSpacer } from '@elastic/eui'; -import { CommonAlertParamDetails } from '../../../common/types'; -import { AlertParamDuration } from '../flyout_expressions/alert_param_duration'; -import { AlertParamType } from '../../../common/enums'; -import { AlertParamPercentage } from '../flyout_expressions/alert_param_percentage'; +import { CommonAlertParamDetails } from '../../../../common/types'; +import { AlertParamDuration } from '../../flyout_expressions/alert_param_duration'; +import { AlertParamType } from '../../../../common/enums'; +import { AlertParamPercentage } from '../../flyout_expressions/alert_param_percentage'; export interface Props { alertParams: { [property: string]: any }; diff --git a/x-pack/plugins/monitoring/public/alerts/cpu_usage_alert/validation.tsx b/x-pack/plugins/monitoring/public/alerts/components/duration/validation.tsx similarity index 62% rename from x-pack/plugins/monitoring/public/alerts/cpu_usage_alert/validation.tsx rename to x-pack/plugins/monitoring/public/alerts/components/duration/validation.tsx index 577ec12e634ed..892ee0926ca38 100644 --- a/x-pack/plugins/monitoring/public/alerts/cpu_usage_alert/validation.tsx +++ b/x-pack/plugins/monitoring/public/alerts/components/duration/validation.tsx @@ -6,25 +6,30 @@ import { i18n } from '@kbn/i18n'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ValidationResult } from '../../../../triggers_actions_ui/public/types'; +import { ValidationResult } from '../../../../../triggers_actions_ui/public/types'; -export function validate(opts: any): ValidationResult { +interface ValidateOptions { + duration: string; + threshold: number; +} + +export function validate(inputValues: ValidateOptions): ValidationResult { const validationResult = { errors: {} }; const errors: { [key: string]: string[] } = { duration: [], threshold: [], }; - if (!opts.duration) { + if (!inputValues.duration) { errors.duration.push( - i18n.translate('xpack.monitoring.alerts.cpuUsage.validation.duration', { + i18n.translate('xpack.monitoring.alerts.validation.duration', { defaultMessage: 'A valid duration is required.', }) ); } - if (isNaN(opts.threshold)) { + if (isNaN(inputValues.threshold)) { errors.threshold.push( - i18n.translate('xpack.monitoring.alerts.cpuUsage.validation.threshold', { + i18n.translate('xpack.monitoring.alerts.validation.threshold', { defaultMessage: 'A valid number is required.', }) ); diff --git a/x-pack/plugins/monitoring/public/alerts/cpu_usage_alert/cpu_usage_alert.tsx b/x-pack/plugins/monitoring/public/alerts/cpu_usage_alert/cpu_usage_alert.tsx index c9f82eb521433..fb4ecacf57fd6 100644 --- a/x-pack/plugins/monitoring/public/alerts/cpu_usage_alert/cpu_usage_alert.tsx +++ b/x-pack/plugins/monitoring/public/alerts/cpu_usage_alert/cpu_usage_alert.tsx @@ -6,9 +6,9 @@ import React from 'react'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { AlertTypeModel } from '../../../../triggers_actions_ui/public/types'; -import { validate } from './validation'; import { ALERT_CPU_USAGE } from '../../../common/constants'; -import { Expression } from './expression'; +import { validate } from '../components/duration/validation'; +import { Expression, Props } from '../components/duration/expression'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { CpuUsageAlert } from '../../../server/alerts'; @@ -18,7 +18,7 @@ export function createCpuUsageAlertType(): AlertTypeModel { id: ALERT_CPU_USAGE, name: alert.label, iconClass: 'bell', - alertParamsExpression: (props: any) => ( + alertParamsExpression: (props: Props) => ( ), validate, diff --git a/x-pack/plugins/monitoring/public/alerts/disk_usage_alert/index.tsx b/x-pack/plugins/monitoring/public/alerts/disk_usage_alert/index.tsx new file mode 100644 index 0000000000000..c2abb35612b38 --- /dev/null +++ b/x-pack/plugins/monitoring/public/alerts/disk_usage_alert/index.tsx @@ -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. + */ + +import React from 'react'; +import { validate } from '../components/duration/validation'; +import { Expression, Props } from '../components/duration/expression'; + +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { AlertTypeModel } from '../../../../triggers_actions_ui/public/types'; + +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { DiskUsageAlert } from '../../../server/alerts'; + +export function createDiskUsageAlertType(): AlertTypeModel { + return { + id: DiskUsageAlert.TYPE, + name: DiskUsageAlert.LABEL, + iconClass: 'bell', + alertParamsExpression: (props: Props) => ( + + ), + validate, + defaultActionMessage: '{{context.internalFullMessage}}', + requiresAppContext: true, + }; +} diff --git a/x-pack/plugins/monitoring/public/alerts/lib/replace_tokens.tsx b/x-pack/plugins/monitoring/public/alerts/lib/replace_tokens.tsx index 29e0822ad684d..02f5703f66382 100644 --- a/x-pack/plugins/monitoring/public/alerts/lib/replace_tokens.tsx +++ b/x-pack/plugins/monitoring/public/alerts/lib/replace_tokens.tsx @@ -17,6 +17,7 @@ import { formatTimestampToDuration } from '../../../common'; import { CALCULATE_DURATION_UNTIL } from '../../../common/constants'; import { AlertMessageTokenType } from '../../../common/enums'; import { Legacy } from '../../legacy_shims'; +import { getSafeForExternalLink } from '../../lib/get_safe_for_external_link'; export function replaceTokens(alertMessage: AlertMessage): JSX.Element | string | null { if (!alertMessage) { @@ -58,10 +59,11 @@ export function replaceTokens(alertMessage: AlertMessage): JSX.Element | string const index = text.indexOf(linkPart[0]); const preString = text.substring(0, index); const postString = text.substring(index + linkPart[0].length); + const safeLink = getSafeForExternalLink(`#/${linkToken.url}`); element = ( {preString} - {linkPart[1]} + {linkPart[1]} {postString} ); @@ -83,7 +85,9 @@ export function replaceTokens(alertMessage: AlertMessage): JSX.Element | string element = ( {preString} - {linkPart[1]} + + {linkPart[1]} + {postString} ); diff --git a/x-pack/plugins/monitoring/public/components/cluster/overview/elasticsearch_panel.js b/x-pack/plugins/monitoring/public/components/cluster/overview/elasticsearch_panel.js index 91752be83eb4f..61a24f31ca89a 100644 --- a/x-pack/plugins/monitoring/public/components/cluster/overview/elasticsearch_panel.js +++ b/x-pack/plugins/monitoring/public/components/cluster/overview/elasticsearch_panel.js @@ -40,6 +40,7 @@ import { ALERT_LICENSE_EXPIRATION, ALERT_CLUSTER_HEALTH, ALERT_CPU_USAGE, + ALERT_DISK_USAGE, ALERT_NODES_CHANGED, ALERT_ELASTICSEARCH_VERSION_MISMATCH, } from '../../../../common/constants'; @@ -157,6 +158,7 @@ const OVERVIEW_PANEL_ALERTS = [ALERT_CLUSTER_HEALTH, ALERT_LICENSE_EXPIRATION]; const NODES_PANEL_ALERTS = [ ALERT_CPU_USAGE, + ALERT_DISK_USAGE, ALERT_NODES_CHANGED, ALERT_ELASTICSEARCH_VERSION_MISMATCH, ]; diff --git a/x-pack/plugins/monitoring/public/plugin.ts b/x-pack/plugins/monitoring/public/plugin.ts index 087e7acc4c703..a9c26ca7103a2 100644 --- a/x-pack/plugins/monitoring/public/plugin.ts +++ b/x-pack/plugins/monitoring/public/plugin.ts @@ -24,6 +24,7 @@ import { MonitoringStartPluginDependencies, MonitoringConfig } from './types'; import { TriggersAndActionsUIPublicPluginSetup } from '../../triggers_actions_ui/public'; import { createCpuUsageAlertType } from './alerts/cpu_usage_alert'; import { createLegacyAlertTypes } from './alerts/legacy_alert'; +import { createDiskUsageAlertType } from './alerts/disk_usage_alert'; interface MonitoringSetupPluginDependencies { home?: HomePublicPluginSetup; @@ -71,6 +72,7 @@ export class MonitoringPlugin } plugins.triggers_actions_ui.alertTypeRegistry.register(createCpuUsageAlertType()); + plugins.triggers_actions_ui.alertTypeRegistry.register(createDiskUsageAlertType()); const legacyAlertTypes = createLegacyAlertTypes(); for (const legacyAlertType of legacyAlertTypes) { plugins.triggers_actions_ui.alertTypeRegistry.register(legacyAlertType); diff --git a/x-pack/plugins/monitoring/public/views/elasticsearch/node/advanced/index.js b/x-pack/plugins/monitoring/public/views/elasticsearch/node/advanced/index.js index 5c4b4d28b93cb..8c30e4a2c1b07 100644 --- a/x-pack/plugins/monitoring/public/views/elasticsearch/node/advanced/index.js +++ b/x-pack/plugins/monitoring/public/views/elasticsearch/node/advanced/index.js @@ -17,7 +17,11 @@ import template from './index.html'; import { Legacy } from '../../../../legacy_shims'; import { AdvancedNode } from '../../../../components/elasticsearch/node/advanced'; import { MonitoringViewBaseController } from '../../../base_controller'; -import { CODE_PATH_ELASTICSEARCH, ALERT_CPU_USAGE } from '../../../../../common/constants'; +import { + CODE_PATH_ELASTICSEARCH, + ALERT_CPU_USAGE, + ALERT_DISK_USAGE, +} from '../../../../../common/constants'; function getPageData($injector) { const $http = $injector.get('$http'); @@ -67,7 +71,7 @@ uiRoutes.when('/elasticsearch/nodes/:node/advanced', { alerts: { shouldFetch: true, options: { - alertTypeIds: [ALERT_CPU_USAGE], + alertTypeIds: [ALERT_CPU_USAGE, ALERT_DISK_USAGE], filters: [ { nodeUuid: nodeName, diff --git a/x-pack/plugins/monitoring/public/views/elasticsearch/node/index.js b/x-pack/plugins/monitoring/public/views/elasticsearch/node/index.js index b4b3c7ca55303..ed2603e6dfff3 100644 --- a/x-pack/plugins/monitoring/public/views/elasticsearch/node/index.js +++ b/x-pack/plugins/monitoring/public/views/elasticsearch/node/index.js @@ -18,7 +18,11 @@ import { Node } from '../../../components/elasticsearch/node/node'; import { labels } from '../../../components/elasticsearch/shard_allocation/lib/labels'; import { nodesByIndices } from '../../../components/elasticsearch/shard_allocation/transformers/nodes_by_indices'; import { MonitoringViewBaseController } from '../../base_controller'; -import { CODE_PATH_ELASTICSEARCH, ALERT_CPU_USAGE } from '../../../../common/constants'; +import { + CODE_PATH_ELASTICSEARCH, + ALERT_CPU_USAGE, + ALERT_DISK_USAGE, +} from '../../../../common/constants'; uiRoutes.when('/elasticsearch/nodes/:node', { template, @@ -51,7 +55,7 @@ uiRoutes.when('/elasticsearch/nodes/:node', { alerts: { shouldFetch: true, options: { - alertTypeIds: [ALERT_CPU_USAGE], + alertTypeIds: [ALERT_CPU_USAGE, ALERT_DISK_USAGE], filters: [ { nodeUuid: nodeName, diff --git a/x-pack/plugins/monitoring/public/views/elasticsearch/nodes/index.js b/x-pack/plugins/monitoring/public/views/elasticsearch/nodes/index.js index 33584f802a56e..66fcac43e4fc5 100644 --- a/x-pack/plugins/monitoring/public/views/elasticsearch/nodes/index.js +++ b/x-pack/plugins/monitoring/public/views/elasticsearch/nodes/index.js @@ -19,6 +19,7 @@ import { ELASTICSEARCH_SYSTEM_ID, CODE_PATH_ELASTICSEARCH, ALERT_CPU_USAGE, + ALERT_DISK_USAGE, } from '../../../../common/constants'; uiRoutes.when('/elasticsearch/nodes', { @@ -86,7 +87,7 @@ uiRoutes.when('/elasticsearch/nodes', { alerts: { shouldFetch: true, options: { - alertTypeIds: [ALERT_CPU_USAGE], + alertTypeIds: [ALERT_CPU_USAGE, ALERT_DISK_USAGE], }, }, }); diff --git a/x-pack/plugins/monitoring/server/alerts/alerts_common.ts b/x-pack/plugins/monitoring/server/alerts/alerts_common.ts new file mode 100644 index 0000000000000..41c8bba17df0a --- /dev/null +++ b/x-pack/plugins/monitoring/server/alerts/alerts_common.ts @@ -0,0 +1,82 @@ +/* + * 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 { AlertMessageDocLinkToken } from './types'; +import { AlertMessageTokenType } from '../../common/enums'; + +export class AlertingDefaults { + public static readonly ALERT_STATE = { + resolved: i18n.translate('xpack.monitoring.alerts.state.resolved', { + defaultMessage: 'resolved', + }), + firing: i18n.translate('xpack.monitoring.alerts.state.firing', { + defaultMessage: 'firing', + }), + }; + public static readonly ALERT_TYPE = { + context: { + internalShortMessage: { + name: 'internalShortMessage', + description: i18n.translate( + 'xpack.monitoring.alerts.actionVariables.internalShortMessage', + { + defaultMessage: 'The short internal message generated by Elastic.', + } + ), + }, + internalFullMessage: { + name: 'internalFullMessage', + description: i18n.translate('xpack.monitoring.alerts.actionVariables.internalFullMessage', { + defaultMessage: 'The full internal message generated by Elastic.', + }), + }, + state: { + name: 'state', + description: i18n.translate('xpack.monitoring.alerts.actionVariables.state', { + defaultMessage: 'The current state of the alert.', + }), + }, + clusterName: { + name: 'clusterName', + description: i18n.translate('xpack.monitoring.alerts.actionVariables.clusterName', { + defaultMessage: 'The cluster to which the nodes belong.', + }), + }, + action: { + name: 'action', + description: i18n.translate('xpack.monitoring.alerts.actionVariables.action', { + defaultMessage: 'The recommended action for this alert.', + }), + }, + actionPlain: { + name: 'actionPlain', + description: i18n.translate('xpack.monitoring.alerts.actionVariables.actionPlain', { + defaultMessage: 'The recommended action for this alert, without any markdown.', + }), + }, + }, + }; +} + +export const createLink = ( + linkText: string, + linkURL: string, + type: AlertMessageTokenType = AlertMessageTokenType.DocLink +) => { + const link = type === AlertMessageTokenType.DocLink ? { partialUrl: linkURL } : { url: linkURL }; + return { + text: linkText, + tokens: [ + { + ...link, + startToken: '#start_link', + endToken: '#end_link', + type, + } as AlertMessageDocLinkToken, + ], + }; +}; diff --git a/x-pack/plugins/monitoring/server/alerts/alerts_factory.test.ts b/x-pack/plugins/monitoring/server/alerts/alerts_factory.test.ts index d8fa703c7f785..60693eb42a30e 100644 --- a/x-pack/plugins/monitoring/server/alerts/alerts_factory.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/alerts_factory.test.ts @@ -63,6 +63,6 @@ describe('AlertsFactory', () => { it('should get all', () => { const alerts = AlertsFactory.getAll(); - expect(alerts.length).toBe(7); + expect(alerts.length).toBe(8); }); }); diff --git a/x-pack/plugins/monitoring/server/alerts/alerts_factory.ts b/x-pack/plugins/monitoring/server/alerts/alerts_factory.ts index b91eab05cf912..6b1c0d5fffe18 100644 --- a/x-pack/plugins/monitoring/server/alerts/alerts_factory.ts +++ b/x-pack/plugins/monitoring/server/alerts/alerts_factory.ts @@ -6,6 +6,7 @@ import { CpuUsageAlert, + DiskUsageAlert, NodesChangedAlert, ClusterHealthAlert, LicenseExpirationAlert, @@ -18,6 +19,7 @@ import { ALERT_CLUSTER_HEALTH, ALERT_LICENSE_EXPIRATION, ALERT_CPU_USAGE, + ALERT_DISK_USAGE, ALERT_NODES_CHANGED, ALERT_LOGSTASH_VERSION_MISMATCH, ALERT_KIBANA_VERSION_MISMATCH, @@ -29,6 +31,7 @@ export const BY_TYPE = { [ALERT_CLUSTER_HEALTH]: ClusterHealthAlert, [ALERT_LICENSE_EXPIRATION]: LicenseExpirationAlert, [ALERT_CPU_USAGE]: CpuUsageAlert, + [ALERT_DISK_USAGE]: DiskUsageAlert, [ALERT_NODES_CHANGED]: NodesChangedAlert, [ALERT_LOGSTASH_VERSION_MISMATCH]: LogstashVersionMismatchAlert, [ALERT_KIBANA_VERSION_MISMATCH]: KibanaVersionMismatchAlert, diff --git a/x-pack/plugins/monitoring/server/alerts/base_alert.ts b/x-pack/plugins/monitoring/server/alerts/base_alert.ts index f583b4882f83c..aff84710d27ad 100644 --- a/x-pack/plugins/monitoring/server/alerts/base_alert.ts +++ b/x-pack/plugins/monitoring/server/alerts/base_alert.ts @@ -238,7 +238,7 @@ export class BaseAlert { ); const data = await this.fetchData(params, callCluster, clusters, uiSettings, availableCcs); - this.processData(data, clusters, services, logger); + return await this.processData(data, clusters, services, logger, state); } protected async fetchData( @@ -252,12 +252,13 @@ export class BaseAlert { throw new Error('Child classes must implement `fetchData`'); } - protected processData( + protected async processData( data: AlertData[], clusters: AlertCluster[], services: AlertServices, - logger: Logger - ) { + logger: Logger, + instanceState: unknown + ): Promise> { for (const item of data) { const cluster = clusters.find((c: AlertCluster) => c.clusterUuid === item.clusterUuid); if (!cluster) { diff --git a/x-pack/plugins/monitoring/server/alerts/cluster_health_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/cluster_health_alert.test.ts index 66085b53516a2..22b6c6607016f 100644 --- a/x-pack/plugins/monitoring/server/alerts/cluster_health_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/cluster_health_alert.test.ts @@ -25,6 +25,7 @@ describe('ClusterHealthAlert', () => { expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ + { name: 'clusterHealth', description: 'The health of the cluster.' }, { name: 'internalShortMessage', description: 'The short internal message generated by Elastic.', @@ -34,7 +35,6 @@ describe('ClusterHealthAlert', () => { description: 'The full internal message generated by Elastic.', }, { name: 'state', description: 'The current state of the alert.' }, - { name: 'clusterHealth', description: 'The health of the cluster.' }, { name: 'clusterName', description: 'The cluster to which the nodes belong.' }, { name: 'action', description: 'The recommended action for this alert.' }, { @@ -129,7 +129,7 @@ describe('ClusterHealthAlert', () => { alertStates: [ { cluster: { clusterUuid: 'abc123', clusterName: 'testCluster' }, - ccs: null, + ccs: undefined, ui: { isFiring: true, message: { @@ -157,11 +157,10 @@ describe('ClusterHealthAlert', () => { ], }); expect(scheduleActions).toHaveBeenCalledWith('default', { - action: - '[Allocate missing replica shards.](http://localhost:5601/app/monitoring#elasticsearch/indices?_g=(cluster_uuid:abc123))', + action: '[Allocate missing replica shards.](elasticsearch/indices)', actionPlain: 'Allocate missing replica shards.', internalFullMessage: - 'Cluster health alert is firing for testCluster. Current health is yellow. [Allocate missing replica shards.](http://localhost:5601/app/monitoring#elasticsearch/indices?_g=(cluster_uuid:abc123))', + 'Cluster health alert is firing for testCluster. Current health is yellow. [Allocate missing replica shards.](elasticsearch/indices)', internalShortMessage: 'Cluster health alert is firing for testCluster. Current health is yellow. Allocate missing replica shards.', clusterName, @@ -210,7 +209,7 @@ describe('ClusterHealthAlert', () => { clusterUuid, clusterName, }, - ccs: null, + ccs: undefined, ui: { isFiring: true, message: null, @@ -242,7 +241,7 @@ describe('ClusterHealthAlert', () => { alertStates: [ { cluster: { clusterUuid, clusterName }, - ccs: null, + ccs: undefined, ui: { isFiring: false, message: { diff --git a/x-pack/plugins/monitoring/server/alerts/cluster_health_alert.ts b/x-pack/plugins/monitoring/server/alerts/cluster_health_alert.ts index bb6c471591417..427dd2f86de00 100644 --- a/x-pack/plugins/monitoring/server/alerts/cluster_health_alert.ts +++ b/x-pack/plugins/monitoring/server/alerts/cluster_health_alert.ts @@ -22,6 +22,7 @@ import { AlertMessageTokenType, AlertClusterHealthType } from '../../common/enum import { fetchLegacyAlerts } from '../lib/alerts/fetch_legacy_alerts'; import { mapLegacySeverity } from '../lib/alerts/map_legacy_severity'; import { CommonAlertParams } from '../../common/types'; +import { AlertingDefaults } from './alerts_common'; const RED_STATUS_MESSAGE = i18n.translate('xpack.monitoring.alerts.clusterHealth.redMessage', { defaultMessage: 'Allocate missing primary and replica shards', @@ -44,30 +45,6 @@ export class ClusterHealthAlert extends BaseAlert { public isLegacy = true; protected actionVariables = [ - { - name: 'internalShortMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.clusterHealth.actionVariables.internalShortMessage', - { - defaultMessage: 'The short internal message generated by Elastic.', - } - ), - }, - { - name: 'internalFullMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.clusterHealth.actionVariables.internalFullMessage', - { - defaultMessage: 'The full internal message generated by Elastic.', - } - ), - }, - { - name: 'state', - description: i18n.translate('xpack.monitoring.alerts.clusterHealth.actionVariables.state', { - defaultMessage: 'The current state of the alert.', - }), - }, { name: 'clusterHealth', description: i18n.translate( @@ -77,30 +54,7 @@ export class ClusterHealthAlert extends BaseAlert { } ), }, - { - name: 'clusterName', - description: i18n.translate( - 'xpack.monitoring.alerts.clusterHealth.actionVariables.clusterName', - { - defaultMessage: 'The cluster to which the nodes belong.', - } - ), - }, - { - name: 'action', - description: i18n.translate('xpack.monitoring.alerts.clusterHealth.actionVariables.action', { - defaultMessage: 'The recommended action for this alert.', - }), - }, - { - name: 'actionPlain', - description: i18n.translate( - 'xpack.monitoring.alerts.clusterHealth.actionVariables.actionPlain', - { - defaultMessage: 'The recommended action for this alert, without any markdown.', - } - ), - }, + ...Object.values(AlertingDefaults.ALERT_TYPE.context), ]; protected async fetchData( @@ -128,7 +82,6 @@ export class ClusterHealthAlert extends BaseAlert { shouldFire: !legacyAlert.resolved_timestamp, severity: mapLegacySeverity(legacyAlert.metadata.severity), meta: legacyAlert, - ccs: null, }); return accum; }, []); @@ -214,9 +167,7 @@ export class ClusterHealthAlert extends BaseAlert { }, } ), - state: i18n.translate('xpack.monitoring.alerts.clusterHealth.resolved', { - defaultMessage: `resolved`, - }), + state: AlertingDefaults.ALERT_STATE.resolved, clusterHealth: health, clusterName: cluster.clusterName, }); @@ -229,14 +180,8 @@ export class ClusterHealthAlert extends BaseAlert { : i18n.translate('xpack.monitoring.alerts.clusterHealth.action.warning', { defaultMessage: `Allocate missing replica shards.`, }); - const globalState = [`cluster_uuid:${cluster.clusterUuid}`]; - if (alertState.ccs) { - globalState.push(`ccs:${alertState.ccs}`); - } - const url = `${this.kibanaUrl}/app/monitoring#elasticsearch/indices?_g=(${globalState.join( - ',' - )})`; - const action = `[${actionText}](${url})`; + + const action = `[${actionText}](elasticsearch/indices)`; instance.scheduleActions('default', { internalShortMessage: i18n.translate( 'xpack.monitoring.alerts.clusterHealth.firing.internalShortMessage', @@ -260,9 +205,7 @@ export class ClusterHealthAlert extends BaseAlert { }, } ), - state: i18n.translate('xpack.monitoring.alerts.clusterHealth.firing', { - defaultMessage: `firing`, - }), + state: AlertingDefaults.ALERT_STATE.firing, clusterHealth: health, clusterName: cluster.clusterName, action, diff --git a/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.test.ts index 2705a77e0fce4..495fe993cca1b 100644 --- a/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.test.ts @@ -27,6 +27,8 @@ describe('CpuUsageAlert', () => { expect(alert.defaultParams).toStrictEqual({ threshold: 85, duration: '5m' }); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ + { name: 'nodes', description: 'The list of nodes reporting high cpu usage.' }, + { name: 'count', description: 'The number of nodes reporting high cpu usage.' }, { name: 'internalShortMessage', description: 'The short internal message generated by Elastic.', @@ -36,8 +38,6 @@ describe('CpuUsageAlert', () => { description: 'The full internal message generated by Elastic.', }, { name: 'state', description: 'The current state of the alert.' }, - { name: 'nodes', description: 'The list of nodes reporting high cpu usage.' }, - { name: 'count', description: 'The number of nodes reporting high cpu usage.' }, { name: 'clusterName', description: 'The cluster to which the nodes belong.' }, { name: 'action', description: 'The recommended action for this alert.' }, { @@ -78,6 +78,7 @@ describe('CpuUsageAlert', () => { }; const kibanaUrl = 'http://localhost:5601'; + const hasScheduledActions = jest.fn(); const replaceState = jest.fn(); const scheduleActions = jest.fn(); const getState = jest.fn(); @@ -86,6 +87,7 @@ describe('CpuUsageAlert', () => { callCluster: jest.fn(), alertInstanceFactory: jest.fn().mockImplementation(() => { return { + hasScheduledActions, replaceState, scheduleActions, getState, @@ -133,6 +135,7 @@ describe('CpuUsageAlert', () => { expect(replaceState).toHaveBeenCalledWith({ alertStates: [ { + ccs: undefined, cluster: { clusterUuid, clusterName }, cpuUsage, nodeId, @@ -193,9 +196,9 @@ describe('CpuUsageAlert', () => { ], }); expect(scheduleActions).toHaveBeenCalledWith('default', { - internalFullMessage: `CPU usage alert is firing for ${count} node(s) in cluster: ${clusterName}. [View nodes](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:${clusterUuid}))`, + internalFullMessage: `CPU usage alert is firing for ${count} node(s) in cluster: ${clusterName}. [View nodes](elasticsearch/nodes)`, internalShortMessage: `CPU usage alert is firing for ${count} node(s) in cluster: ${clusterName}. Verify CPU levels across affected nodes.`, - action: `[View nodes](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:${clusterUuid}))`, + action: `[View nodes](elasticsearch/nodes)`, actionPlain: 'Verify CPU levels across affected nodes.', clusterName, count, @@ -370,9 +373,9 @@ describe('CpuUsageAlert', () => { } as any); const count = 1; expect(scheduleActions).toHaveBeenCalledWith('default', { - internalFullMessage: `CPU usage alert is firing for ${count} node(s) in cluster: ${clusterName}. [View nodes](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:${clusterUuid},ccs:${ccs}))`, + internalFullMessage: `CPU usage alert is firing for ${count} node(s) in cluster: ${clusterName}. [View nodes](elasticsearch/nodes)`, internalShortMessage: `CPU usage alert is firing for ${count} node(s) in cluster: ${clusterName}. Verify CPU levels across affected nodes.`, - action: `[View nodes](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:${clusterUuid},ccs:${ccs}))`, + action: `[View nodes](elasticsearch/nodes)`, actionPlain: 'Verify CPU levels across affected nodes.', clusterName, count, @@ -559,11 +562,10 @@ describe('CpuUsageAlert', () => { expect(scheduleActions.mock.calls[0]).toEqual([ 'default', { - action: - '[View nodes](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:abc123))', + action: '[View nodes](elasticsearch/nodes)', actionPlain: 'Verify CPU levels across affected nodes.', internalFullMessage: - 'CPU usage alert is firing for 1 node(s) in cluster: testCluster. [View nodes](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:abc123))', + 'CPU usage alert is firing for 1 node(s) in cluster: testCluster. [View nodes](elasticsearch/nodes)', internalShortMessage: 'CPU usage alert is firing for 1 node(s) in cluster: testCluster. Verify CPU levels across affected nodes.', nodes: 'anotherNode:99.00', @@ -594,7 +596,7 @@ describe('CpuUsageAlert', () => { expect(scheduleActions).toHaveBeenCalledWith('default', { internalFullMessage: `CPU usage alert is firing for ${count} node(s) in cluster: ${clusterName}. Verify CPU levels across affected nodes.`, internalShortMessage: `CPU usage alert is firing for ${count} node(s) in cluster: ${clusterName}. Verify CPU levels across affected nodes.`, - action: `[View nodes](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:${clusterUuid}))`, + action: `[View nodes](elasticsearch/nodes)`, actionPlain: 'Verify CPU levels across affected nodes.', clusterName, count, diff --git a/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.ts b/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.ts index 5bca84e33da3c..4228354f52748 100644 --- a/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.ts +++ b/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.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 { IUiSettingsClient, Logger } from 'kibana/server'; +import { IUiSettingsClient } from 'kibana/server'; import { i18n } from '@kbn/i18n'; import { BaseAlert } from './base_alert'; import { @@ -16,7 +16,6 @@ import { AlertMessageTimeToken, AlertMessageLinkToken, AlertInstanceState, - AlertMessageDocLinkToken, } from './types'; import { AlertInstance, AlertServices } from '../../../alerts/server'; import { INDEX_PATTERN_ELASTICSEARCH, ALERT_CPU_USAGE } from '../../common/constants'; @@ -31,15 +30,9 @@ import { CommonAlertParams, CommonAlertParamDetail, } from '../../common/types'; +import { AlertingDefaults, createLink } from './alerts_common'; import { appendMetricbeatIndex } from '../lib/alerts/append_mb_index'; -const RESOLVED = i18n.translate('xpack.monitoring.alerts.cpuUsage.resolved', { - defaultMessage: 'resolved', -}); -const FIRING = i18n.translate('xpack.monitoring.alerts.cpuUsage.firing', { - defaultMessage: 'firing', -}); - const DEFAULT_THRESHOLD = 85; const DEFAULT_DURATION = '5m'; @@ -75,30 +68,6 @@ export class CpuUsageAlert extends BaseAlert { }; protected actionVariables = [ - { - name: 'internalShortMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.cpuUsage.actionVariables.internalShortMessage', - { - defaultMessage: 'The short internal message generated by Elastic.', - } - ), - }, - { - name: 'internalFullMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.cpuUsage.actionVariables.internalFullMessage', - { - defaultMessage: 'The full internal message generated by Elastic.', - } - ), - }, - { - name: 'state', - description: i18n.translate('xpack.monitoring.alerts.cpuUsage.actionVariables.state', { - defaultMessage: 'The current state of the alert.', - }), - }, { name: 'nodes', description: i18n.translate('xpack.monitoring.alerts.cpuUsage.actionVariables.nodes', { @@ -111,24 +80,7 @@ export class CpuUsageAlert extends BaseAlert { defaultMessage: 'The number of nodes reporting high cpu usage.', }), }, - { - name: 'clusterName', - description: i18n.translate('xpack.monitoring.alerts.cpuUsage.actionVariables.clusterName', { - defaultMessage: 'The cluster to which the nodes belong.', - }), - }, - { - name: 'action', - description: i18n.translate('xpack.monitoring.alerts.cpuUsage.actionVariables.action', { - defaultMessage: 'The recommended action for this alert.', - }), - }, - { - name: 'actionPlain', - description: i18n.translate('xpack.monitoring.alerts.cpuUsage.actionVariables.actionPlain', { - defaultMessage: 'The recommended action for this alert, without any markdown.', - }), - }, + ...Object.values(AlertingDefaults.ALERT_TYPE.context), ]; protected async fetchData( @@ -237,32 +189,18 @@ export class CpuUsageAlert extends BaseAlert { }, }), nextSteps: [ - { - text: i18n.translate('xpack.monitoring.alerts.cpuUsage.ui.nextSteps.hotThreads', { - defaultMessage: `#start_linkCheck hot threads#end_link`, + createLink( + i18n.translate('xpack.monitoring.alerts.cpuUsage.ui.nextSteps.hotThreads', { + defaultMessage: '#start_linkCheck hot threads#end_link', }), - tokens: [ - { - startToken: '#start_link', - endToken: '#end_link', - type: AlertMessageTokenType.DocLink, - partialUrl: `{elasticWebsiteUrl}/guide/en/elasticsearch/reference/{docLinkVersion}/cluster-nodes-hot-threads.html`, - } as AlertMessageDocLinkToken, - ], - }, - { - text: i18n.translate('xpack.monitoring.alerts.cpuUsage.ui.nextSteps.runningTasks', { - defaultMessage: `#start_linkCheck long running tasks#end_link`, + `{elasticWebsiteUrl}/guide/en/elasticsearch/reference/{docLinkVersion}/cluster-nodes-hot-threads.html` + ), + createLink( + i18n.translate('xpack.monitoring.alerts.cpuUsage.ui.nextSteps.runningTasks', { + defaultMessage: '#start_linkCheck long running tasks#end_link', }), - tokens: [ - { - startToken: '#start_link', - endToken: '#end_link', - type: AlertMessageTokenType.DocLink, - partialUrl: `{elasticWebsiteUrl}/guide/en/elasticsearch/reference/{docLinkVersion}/tasks.html`, - } as AlertMessageDocLinkToken, - ], - }, + `{elasticWebsiteUrl}/guide/en/elasticsearch/reference/{docLinkVersion}/tasks.html` + ), ], tokens: [ { @@ -292,13 +230,6 @@ export class CpuUsageAlert extends BaseAlert { return; } - const ccs = instanceState.alertStates.reduce((accum: string, state): string => { - if (state.ccs) { - return state.ccs; - } - return accum; - }, ''); - const firingCount = instanceState.alertStates.filter((alertState) => alertState.ui.isFiring) .length; const firingNodes = instanceState.alertStates @@ -315,14 +246,7 @@ export class CpuUsageAlert extends BaseAlert { const fullActionText = i18n.translate('xpack.monitoring.alerts.cpuUsage.fullAction', { defaultMessage: 'View nodes', }); - const globalState = [`cluster_uuid:${cluster.clusterUuid}`]; - if (ccs) { - globalState.push(`ccs:${ccs}`); - } - const url = `${this.kibanaUrl}/app/monitoring#elasticsearch/nodes?_g=(${globalState.join( - ',' - )})`; - const action = `[${fullActionText}](${url})`; + const action = `[${fullActionText}](elasticsearch/nodes)`; const internalShortMessage = i18n.translate( 'xpack.monitoring.alerts.cpuUsage.firing.internalShortMessage', { @@ -348,7 +272,7 @@ export class CpuUsageAlert extends BaseAlert { instance.scheduleActions('default', { internalShortMessage, internalFullMessage: this.isCloud ? internalShortMessage : internalFullMessage, - state: FIRING, + state: AlertingDefaults.ALERT_STATE.firing, nodes: firingNodes, count: firingCount, clusterName: cluster.clusterName, @@ -388,7 +312,7 @@ export class CpuUsageAlert extends BaseAlert { }, } ), - state: RESOLVED, + state: AlertingDefaults.ALERT_STATE.resolved, nodes: resolvedNodes, count: resolvedCount, clusterName: cluster.clusterName, @@ -397,18 +321,16 @@ export class CpuUsageAlert extends BaseAlert { } } - protected processData( + protected async processData( data: AlertData[], clusters: AlertCluster[], - services: AlertServices, - logger: Logger + services: AlertServices ) { for (const cluster of clusters) { const nodes = data.filter((_item) => _item.clusterUuid === cluster.clusterUuid); if (nodes.length === 0) { continue; } - const firingNodeUuids = nodes.reduce((list: string[], node) => { const stat = node.meta as AlertCpuUsageNodeStats; if (node.shouldFire) { @@ -437,13 +359,14 @@ export class CpuUsageAlert extends BaseAlert { } else { nodeState = this.getDefaultAlertState(cluster, node) as AlertCpuUsageState; } - nodeState.cpuUsage = stat.cpuUsage; nodeState.nodeId = stat.nodeId; nodeState.nodeName = stat.nodeName; if (node.shouldFire) { - nodeState.ui.triggeredMS = new Date().valueOf(); + if (!nodeState.ui.isFiring) { + nodeState.ui.triggeredMS = new Date().valueOf(); + } nodeState.ui.isFiring = true; nodeState.ui.message = this.getUiMessage(nodeState, node); nodeState.ui.severity = node.severity; @@ -455,7 +378,6 @@ export class CpuUsageAlert extends BaseAlert { nodeState.ui.message = this.getUiMessage(nodeState, node); shouldExecuteActions = true; } - if (indexInState === -1) { alertInstanceState.alertStates.push(nodeState); } else { @@ -466,7 +388,6 @@ export class CpuUsageAlert extends BaseAlert { ]; } } - instance.replaceState(alertInstanceState); if (shouldExecuteActions) { this.executeActions(instance, alertInstanceState, null, cluster); diff --git a/x-pack/plugins/monitoring/server/alerts/disk_usage_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/disk_usage_alert.test.ts new file mode 100644 index 0000000000000..546399f666b6c --- /dev/null +++ b/x-pack/plugins/monitoring/server/alerts/disk_usage_alert.test.ts @@ -0,0 +1,221 @@ +/* + * 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 { DiskUsageAlert } from './disk_usage_alert'; +import { ALERT_DISK_USAGE } from '../../common/constants'; +import { fetchDiskUsageNodeStats } from '../lib/alerts/fetch_disk_usage_node_stats'; +import { fetchClusters } from '../lib/alerts/fetch_clusters'; + +type IDiskUsageAlertMock = DiskUsageAlert & { + defaultParams: { + threshold: number; + duration: string; + }; +} & { + actionVariables: Array<{ + name: string; + description: string; + }>; +}; + +const RealDate = Date; + +jest.mock('../lib/alerts/fetch_disk_usage_node_stats', () => ({ + fetchDiskUsageNodeStats: jest.fn(), +})); +jest.mock('../lib/alerts/fetch_clusters', () => ({ + fetchClusters: jest.fn(), +})); + +describe('DiskUsageAlert', () => { + it('should have defaults', () => { + const alert = new DiskUsageAlert() as IDiskUsageAlertMock; + expect(alert.type).toBe(ALERT_DISK_USAGE); + expect(alert.label).toBe('Disk Usage'); + expect(alert.defaultThrottle).toBe('1d'); + expect(alert.defaultParams).toStrictEqual({ threshold: 90, duration: '5m' }); + expect(alert.actionVariables).toStrictEqual([ + { name: 'nodes', description: 'The list of nodes reporting high disk usage.' }, + { name: 'count', description: 'The number of nodes reporting high disk usage.' }, + { + name: 'internalShortMessage', + description: 'The short internal message generated by Elastic.', + }, + { + name: 'internalFullMessage', + description: 'The full internal message generated by Elastic.', + }, + { name: 'state', description: 'The current state of the alert.' }, + { name: 'clusterName', description: 'The cluster to which the nodes belong.' }, + { name: 'action', description: 'The recommended action for this alert.' }, + { + name: 'actionPlain', + description: 'The recommended action for this alert, without any markdown.', + }, + ]); + }); + + describe('execute', () => { + const FakeDate = function () {}; + FakeDate.prototype.valueOf = () => 1; + + const clusterUuid = 'abc123'; + const clusterName = 'testCluster'; + const nodeId = 'myNodeId'; + const nodeName = 'myNodeName'; + const diskUsage = 91; + const stat = { + clusterUuid, + nodeId, + nodeName, + diskUsage, + }; + const getUiSettingsService = () => ({ + asScopedToClient: jest.fn(), + }); + const getLogger = () => ({ + debug: jest.fn(), + }); + const monitoringCluster = null; + const config = { + ui: { + ccs: { enabled: true }, + container: { elasticsearch: { enabled: false } }, + metricbeat: { index: 'metricbeat-*' }, + }, + }; + const kibanaUrl = 'http://localhost:5601'; + + const hasScheduledActions = jest.fn(); + const replaceState = jest.fn(); + const scheduleActions = jest.fn(); + const getState = jest.fn(); + const executorOptions = { + services: { + callCluster: jest.fn(), + alertInstanceFactory: jest.fn().mockImplementation(() => { + return { + hasScheduledActions, + replaceState, + scheduleActions, + getState, + }; + }), + }, + state: {}, + }; + + beforeEach(() => { + Date = FakeDate as DateConstructor; + (fetchDiskUsageNodeStats as jest.Mock).mockImplementation(() => { + return [stat]; + }); + (fetchClusters as jest.Mock).mockImplementation(() => { + return [{ clusterUuid, clusterName }]; + }); + }); + + afterEach(() => { + Date = RealDate; + replaceState.mockReset(); + scheduleActions.mockReset(); + getState.mockReset(); + }); + + it('should fire actions', async () => { + const alert = new DiskUsageAlert() as IDiskUsageAlertMock; + alert.initializeAlertType( + getUiSettingsService as any, + monitoringCluster as any, + getLogger as any, + config as any, + kibanaUrl, + false + ); + const type = alert.getAlertType(); + await type.executor({ + ...executorOptions, + params: alert.defaultParams, + } as any); + const count = 1; + expect(scheduleActions).toHaveBeenCalledWith('default', { + internalFullMessage: `Disk usage alert is firing for ${count} node(s) in cluster: ${clusterName}. [View nodes](elasticsearch/nodes)`, + internalShortMessage: `Disk usage alert is firing for ${count} node(s) in cluster: ${clusterName}. Verify disk usage levels across affected nodes.`, + action: `[View nodes](elasticsearch/nodes)`, + actionPlain: 'Verify disk usage levels across affected nodes.', + clusterName, + count, + nodes: `${nodeName}:${diskUsage.toFixed(2)}`, + state: 'firing', + }); + }); + + it('should handle ccs', async () => { + const ccs = 'testCluster'; + (fetchDiskUsageNodeStats as jest.Mock).mockImplementation(() => { + return [ + { + ...stat, + ccs, + }, + ]; + }); + const alert = new DiskUsageAlert() as IDiskUsageAlertMock; + alert.initializeAlertType( + getUiSettingsService as any, + monitoringCluster as any, + getLogger as any, + config as any, + kibanaUrl, + false + ); + const type = alert.getAlertType(); + await type.executor({ + ...executorOptions, + params: alert.defaultParams, + } as any); + const count = 1; + expect(scheduleActions).toHaveBeenCalledWith('default', { + internalFullMessage: `Disk usage alert is firing for ${count} node(s) in cluster: ${clusterName}. [View nodes](elasticsearch/nodes)`, + internalShortMessage: `Disk usage alert is firing for ${count} node(s) in cluster: ${clusterName}. Verify disk usage levels across affected nodes.`, + action: `[View nodes](elasticsearch/nodes)`, + actionPlain: 'Verify disk usage levels across affected nodes.', + clusterName, + count, + nodes: `${nodeName}:${diskUsage.toFixed(2)}`, + state: 'firing', + }); + }); + + it('should fire with different messaging for cloud', async () => { + const alert = new DiskUsageAlert() as IDiskUsageAlertMock; + alert.initializeAlertType( + getUiSettingsService as any, + monitoringCluster as any, + getLogger as any, + config as any, + kibanaUrl, + true + ); + const type = alert.getAlertType(); + await type.executor({ + ...executorOptions, + params: alert.defaultParams, + } as any); + const count = 1; + expect(scheduleActions).toHaveBeenCalledWith('default', { + internalFullMessage: `Disk usage alert is firing for ${count} node(s) in cluster: ${clusterName}. Verify disk usage levels across affected nodes.`, + internalShortMessage: `Disk usage alert is firing for ${count} node(s) in cluster: ${clusterName}. Verify disk usage levels across affected nodes.`, + action: `[View nodes](elasticsearch/nodes)`, + actionPlain: 'Verify disk usage levels across affected nodes.', + clusterName, + count, + nodes: `${nodeName}:${diskUsage.toFixed(2)}`, + state: 'firing', + }); + }); + }); +}); diff --git a/x-pack/plugins/monitoring/server/alerts/disk_usage_alert.ts b/x-pack/plugins/monitoring/server/alerts/disk_usage_alert.ts new file mode 100644 index 0000000000000..e43dca3ce87b1 --- /dev/null +++ b/x-pack/plugins/monitoring/server/alerts/disk_usage_alert.ts @@ -0,0 +1,343 @@ +/* + * 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 { IUiSettingsClient, Logger } from 'kibana/server'; +import { i18n } from '@kbn/i18n'; +import { BaseAlert } from './base_alert'; +import { + AlertData, + AlertCluster, + AlertState, + AlertMessage, + AlertDiskUsageState, + AlertMessageTimeToken, + AlertMessageLinkToken, + AlertInstanceState, +} from './types'; +import { AlertInstance, AlertServices } from '../../../alerts/server'; +import { INDEX_PATTERN_ELASTICSEARCH, ALERT_DISK_USAGE } from '../../common/constants'; +import { fetchDiskUsageNodeStats } from '../lib/alerts/fetch_disk_usage_node_stats'; +import { getCcsIndexPattern } from '../lib/alerts/get_ccs_index_pattern'; +import { AlertMessageTokenType, AlertSeverity, AlertParamType } from '../../common/enums'; +import { RawAlertInstance } from '../../../alerts/common'; +import { CommonAlertFilter, CommonAlertParams, CommonAlertParamDetail } from '../../common/types'; +import { AlertingDefaults, createLink } from './alerts_common'; +import { appendMetricbeatIndex } from '../lib/alerts/append_mb_index'; + +interface ParamDetails { + [key: string]: CommonAlertParamDetail; +} + +export class DiskUsageAlert extends BaseAlert { + public static readonly PARAM_DETAILS: ParamDetails = { + threshold: { + label: i18n.translate('xpack.monitoring.alerts.diskUsage.paramDetails.threshold.label', { + defaultMessage: `Notify when disk capacity is over`, + }), + type: AlertParamType.Percentage, + }, + duration: { + label: i18n.translate('xpack.monitoring.alerts.diskUsage.paramDetails.duration.label', { + defaultMessage: `Look at the average over`, + }), + type: AlertParamType.Duration, + }, + }; + public static paramDetails = DiskUsageAlert.PARAM_DETAILS; + public static readonly TYPE = ALERT_DISK_USAGE; + public static readonly LABEL = i18n.translate('xpack.monitoring.alerts.diskUsage.label', { + defaultMessage: 'Disk Usage', + }); + public type = DiskUsageAlert.TYPE; + public label = DiskUsageAlert.LABEL; + + protected defaultParams = { + threshold: 90, + duration: '5m', + }; + + protected actionVariables = [ + { + name: 'nodes', + description: i18n.translate('xpack.monitoring.alerts.diskUsage.actionVariables.nodes', { + defaultMessage: 'The list of nodes reporting high disk usage.', + }), + }, + { + name: 'count', + description: i18n.translate('xpack.monitoring.alerts.diskUsage.actionVariables.count', { + defaultMessage: 'The number of nodes reporting high disk usage.', + }), + }, + ...Object.values(AlertingDefaults.ALERT_TYPE.context), + ]; + + protected async fetchData( + params: CommonAlertParams, + callCluster: any, + clusters: AlertCluster[], + uiSettings: IUiSettingsClient, + availableCcs: string[] + ): Promise { + let esIndexPattern = appendMetricbeatIndex(this.config, INDEX_PATTERN_ELASTICSEARCH); + if (availableCcs) { + esIndexPattern = getCcsIndexPattern(esIndexPattern, availableCcs); + } + const { duration, threshold } = params; + const stats = await fetchDiskUsageNodeStats( + callCluster, + clusters, + esIndexPattern, + duration as string, + this.config.ui.max_bucket_size + ); + + return stats.map((stat) => { + const { clusterUuid, nodeId, diskUsage, ccs } = stat; + return { + instanceKey: `${clusterUuid}:${nodeId}`, + shouldFire: diskUsage > threshold, + severity: AlertSeverity.Danger, + meta: stat, + clusterUuid, + ccs, + }; + }); + } + + protected filterAlertInstance(alertInstance: RawAlertInstance, filters: CommonAlertFilter[]) { + const alertInstanceStates = alertInstance.state?.alertStates as AlertDiskUsageState[]; + const nodeUuid = filters?.find((filter) => filter.nodeUuid); + + if (!filters || !filters.length || !alertInstanceStates?.length || !nodeUuid) { + return true; + } + + const nodeAlerts = alertInstanceStates.filter(({ nodeId }) => nodeId === nodeUuid); + return Boolean(nodeAlerts.length); + } + + protected getDefaultAlertState(cluster: AlertCluster, item: AlertData): AlertState { + const currentState = super.getDefaultAlertState(cluster, item); + currentState.ui.severity = AlertSeverity.Warning; + return currentState; + } + + protected getUiMessage(alertState: AlertState, item: AlertData): AlertMessage { + const stat = item.meta as AlertDiskUsageState; + if (!alertState.ui.isFiring) { + return { + text: i18n.translate('xpack.monitoring.alerts.diskUsage.ui.resolvedMessage', { + defaultMessage: `The disk usage on node {nodeName} is now under the threshold, currently reporting at {diskUsage}% as of #resolved`, + values: { + nodeName: stat.nodeName, + diskUsage: stat.diskUsage.toFixed(2), + }, + }), + tokens: [ + { + startToken: '#resolved', + type: AlertMessageTokenType.Time, + isAbsolute: true, + isRelative: false, + timestamp: alertState.ui.resolvedMS, + } as AlertMessageTimeToken, + ], + }; + } + return { + text: i18n.translate('xpack.monitoring.alerts.diskUsage.ui.firingMessage', { + defaultMessage: `Node #start_link{nodeName}#end_link is reporting disk usage of {diskUsage}% at #absolute`, + values: { + nodeName: stat.nodeName, + diskUsage: stat.diskUsage, + }, + }), + nextSteps: [ + createLink( + i18n.translate('xpack.monitoring.alerts.diskUsage.ui.nextSteps.tuneDisk', { + defaultMessage: '#start_linkTune for disk usage#end_link', + }), + `{elasticWebsiteUrl}/guide/en/elasticsearch/reference/{docLinkVersion}/tune-for-disk-usage.html` + ), + createLink( + i18n.translate('xpack.monitoring.alerts.diskUsage.ui.nextSteps.identifyIndices', { + defaultMessage: '#start_linkIdentify large indices#end_link', + }), + 'elasticsearch/indices', + AlertMessageTokenType.Link + ), + createLink( + i18n.translate('xpack.monitoring.alerts.diskUsage.ui.nextSteps.ilmPolicies', { + defaultMessage: '#start_linkImplement ILM policies#end_link', + }), + `{elasticWebsiteUrl}/guide/en/elasticsearch/reference/{docLinkVersion}/index-lifecycle-management.html` + ), + createLink( + i18n.translate('xpack.monitoring.alerts.diskUsage.ui.nextSteps.addMoreNodes', { + defaultMessage: '#start_linkAdd more data nodes#end_link', + }), + `{elasticWebsiteUrl}/guide/en/elasticsearch/reference/{docLinkVersion}/add-elasticsearch-nodes.html` + ), + createLink( + i18n.translate('xpack.monitoring.alerts.diskUsage.ui.nextSteps.resizeYourDeployment', { + defaultMessage: '#start_linkResize your deployment (ECE)#end_link', + }), + `{elasticWebsiteUrl}/guide/en/cloud-enterprise/current/ece-resize-deployment.html` + ), + ], + tokens: [ + { + startToken: '#absolute', + type: AlertMessageTokenType.Time, + isAbsolute: true, + isRelative: false, + timestamp: alertState.ui.triggeredMS, + } as AlertMessageTimeToken, + { + startToken: '#start_link', + endToken: '#end_link', + type: AlertMessageTokenType.Link, + url: `elasticsearch/nodes/${stat.nodeId}`, + } as AlertMessageLinkToken, + ], + }; + } + + protected executeActions( + instance: AlertInstance, + { alertStates }: AlertInstanceState, + item: AlertData | null, + cluster: AlertCluster + ) { + const firingNodes = alertStates.filter( + (alertState) => alertState.ui.isFiring + ) as AlertDiskUsageState[]; + const firingCount = firingNodes.length; + + if (firingCount > 0) { + const shortActionText = i18n.translate('xpack.monitoring.alerts.diskUsage.shortAction', { + defaultMessage: 'Verify disk usage levels across affected nodes.', + }); + const fullActionText = i18n.translate('xpack.monitoring.alerts.diskUsage.fullAction', { + defaultMessage: 'View nodes', + }); + + const action = `[${fullActionText}](elasticsearch/nodes)`; + const internalShortMessage = i18n.translate( + 'xpack.monitoring.alerts.diskUsage.firing.internalShortMessage', + { + defaultMessage: `Disk usage alert is firing for {count} node(s) in cluster: {clusterName}. {shortActionText}`, + values: { + count: firingCount, + clusterName: cluster.clusterName, + shortActionText, + }, + } + ); + const internalFullMessage = i18n.translate( + 'xpack.monitoring.alerts.diskUsage.firing.internalFullMessage', + { + defaultMessage: `Disk usage alert is firing for {count} node(s) in cluster: {clusterName}. {action}`, + values: { + count: firingCount, + clusterName: cluster.clusterName, + action, + }, + } + ); + + instance.scheduleActions('default', { + internalShortMessage, + internalFullMessage: this.isCloud ? internalShortMessage : internalFullMessage, + state: AlertingDefaults.ALERT_STATE.firing, + nodes: firingNodes + .map((state) => `${state.nodeName}:${state.diskUsage.toFixed(2)}`) + .join(','), + count: firingCount, + clusterName: cluster.clusterName, + action, + actionPlain: shortActionText, + }); + } else { + const resolvedNodes = (alertStates as AlertDiskUsageState[]) + .filter((state) => !state.ui.isFiring) + .map((state) => `${state.nodeName}:${state.diskUsage.toFixed(2)}`); + const resolvedCount = resolvedNodes.length; + + if (resolvedCount > 0) { + const internalMessage = i18n.translate( + 'xpack.monitoring.alerts.diskUsage.resolved.internalMessage', + { + defaultMessage: `Disk usage alert is resolved for {count} node(s) in cluster: {clusterName}.`, + values: { + count: resolvedCount, + clusterName: cluster.clusterName, + }, + } + ); + + instance.scheduleActions('default', { + internalShortMessage: internalMessage, + internalFullMessage: internalMessage, + state: AlertingDefaults.ALERT_STATE.resolved, + nodes: resolvedNodes.join(','), + count: resolvedCount, + clusterName: cluster.clusterName, + }); + } + } + } + + protected async processData( + data: AlertData[], + clusters: AlertCluster[], + services: AlertServices, + logger: Logger, + state: any + ) { + const currentUTC = +new Date(); + for (const cluster of clusters) { + const nodes = data.filter((node) => node.clusterUuid === cluster.clusterUuid); + if (!nodes.length) { + continue; + } + + const firingNodeUuids = nodes + .filter((node) => node.shouldFire) + .map((node) => node.meta.nodeId) + .join(','); + const instanceId = `${this.type}:${cluster.clusterUuid}:${firingNodeUuids}`; + const instance = services.alertInstanceFactory(instanceId); + const newAlertStates: AlertDiskUsageState[] = []; + + for (const node of nodes) { + const stat = node.meta as AlertDiskUsageState; + const nodeState = this.getDefaultAlertState(cluster, node) as AlertDiskUsageState; + nodeState.diskUsage = stat.diskUsage; + nodeState.nodeId = stat.nodeId; + nodeState.nodeName = stat.nodeName; + + if (node.shouldFire) { + nodeState.ui.triggeredMS = currentUTC; + nodeState.ui.isFiring = true; + nodeState.ui.severity = node.severity; + newAlertStates.push(nodeState); + } + nodeState.ui.message = this.getUiMessage(nodeState, node); + } + + const alertInstanceState = { alertStates: newAlertStates }; + instance.replaceState(alertInstanceState); + if (newAlertStates.length && !instance.hasScheduledActions()) { + this.executeActions(instance, alertInstanceState, null, cluster); + state.lastExecutedAction = currentUTC; + } + } + + state.lastChecked = currentUTC; + return state; + } +} diff --git a/x-pack/plugins/monitoring/server/alerts/elasticsearch_version_mismatch_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/elasticsearch_version_mismatch_alert.test.ts index 1db85f915d794..3422e8a7c78ad 100644 --- a/x-pack/plugins/monitoring/server/alerts/elasticsearch_version_mismatch_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/elasticsearch_version_mismatch_alert.test.ts @@ -25,6 +25,10 @@ describe('ElasticsearchVersionMismatchAlert', () => { expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ + { + name: 'versionList', + description: 'The versions of Elasticsearch running in this cluster.', + }, { name: 'internalShortMessage', description: 'The short internal message generated by Elastic.', @@ -34,10 +38,6 @@ describe('ElasticsearchVersionMismatchAlert', () => { description: 'The full internal message generated by Elastic.', }, { name: 'state', description: 'The current state of the alert.' }, - { - name: 'versionList', - description: 'The versions of Elasticsearch running in this cluster.', - }, { name: 'clusterName', description: 'The cluster to which the nodes belong.' }, { name: 'action', description: 'The recommended action for this alert.' }, { @@ -132,7 +132,7 @@ describe('ElasticsearchVersionMismatchAlert', () => { alertStates: [ { cluster: { clusterUuid: 'abc123', clusterName: 'testCluster' }, - ccs: null, + ccs: undefined, ui: { isFiring: true, message: { @@ -148,11 +148,10 @@ describe('ElasticsearchVersionMismatchAlert', () => { ], }); expect(scheduleActions).toHaveBeenCalledWith('default', { - action: - '[View nodes](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:abc123))', + action: '[View nodes](elasticsearch/nodes)', actionPlain: 'Verify you have the same version across all nodes.', internalFullMessage: - 'Elasticsearch version mismatch alert is firing for testCluster. Elasticsearch is running [8.0.0, 7.2.1]. [View nodes](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:abc123))', + 'Elasticsearch version mismatch alert is firing for testCluster. Elasticsearch is running [8.0.0, 7.2.1]. [View nodes](elasticsearch/nodes)', internalShortMessage: 'Elasticsearch version mismatch alert is firing for testCluster. Verify you have the same version across all nodes.', versionList: '[8.0.0, 7.2.1]', @@ -201,7 +200,7 @@ describe('ElasticsearchVersionMismatchAlert', () => { clusterUuid, clusterName, }, - ccs: null, + ccs: undefined, ui: { isFiring: true, message: null, @@ -233,7 +232,7 @@ describe('ElasticsearchVersionMismatchAlert', () => { alertStates: [ { cluster: { clusterUuid, clusterName }, - ccs: null, + ccs: undefined, ui: { isFiring: false, message: { diff --git a/x-pack/plugins/monitoring/server/alerts/elasticsearch_version_mismatch_alert.ts b/x-pack/plugins/monitoring/server/alerts/elasticsearch_version_mismatch_alert.ts index e3b952fbbe5d3..f26b21f0c64c5 100644 --- a/x-pack/plugins/monitoring/server/alerts/elasticsearch_version_mismatch_alert.ts +++ b/x-pack/plugins/monitoring/server/alerts/elasticsearch_version_mismatch_alert.ts @@ -20,14 +20,9 @@ import { getCcsIndexPattern } from '../lib/alerts/get_ccs_index_pattern'; import { AlertSeverity } from '../../common/enums'; import { CommonAlertParams } from '../../common/types'; import { fetchLegacyAlerts } from '../lib/alerts/fetch_legacy_alerts'; +import { AlertingDefaults } from './alerts_common'; const WATCH_NAME = 'elasticsearch_version_mismatch'; -const RESOLVED = i18n.translate('xpack.monitoring.alerts.elasticsearchVersionMismatch.resolved', { - defaultMessage: 'resolved', -}); -const FIRING = i18n.translate('xpack.monitoring.alerts.elasticsearchVersionMismatch.firing', { - defaultMessage: 'firing', -}); export class ElasticsearchVersionMismatchAlert extends BaseAlert { public type = ALERT_ELASTICSEARCH_VERSION_MISMATCH; @@ -37,33 +32,6 @@ export class ElasticsearchVersionMismatchAlert extends BaseAlert { public isLegacy = true; protected actionVariables = [ - { - name: 'internalShortMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.internalShortMessage', - { - defaultMessage: 'The short internal message generated by Elastic.', - } - ), - }, - { - name: 'internalFullMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.internalFullMessage', - { - defaultMessage: 'The full internal message generated by Elastic.', - } - ), - }, - { - name: 'state', - description: i18n.translate( - 'xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.state', - { - defaultMessage: 'The current state of the alert.', - } - ), - }, { name: 'versionList', description: i18n.translate( @@ -73,33 +41,7 @@ export class ElasticsearchVersionMismatchAlert extends BaseAlert { } ), }, - { - name: 'clusterName', - description: i18n.translate( - 'xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.clusterName', - { - defaultMessage: 'The cluster to which the nodes belong.', - } - ), - }, - { - name: 'action', - description: i18n.translate( - 'xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.action', - { - defaultMessage: 'The recommended action for this alert.', - } - ), - }, - { - name: 'actionPlain', - description: i18n.translate( - 'xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.actionPlain', - { - defaultMessage: 'The recommended action for this alert, without any markdown.', - } - ), - }, + ...Object.values(AlertingDefaults.ALERT_TYPE.context), ]; protected async fetchData( @@ -131,7 +73,6 @@ export class ElasticsearchVersionMismatchAlert extends BaseAlert { shouldFire: !legacyAlert.resolved_timestamp, severity, meta: legacyAlert, - ccs: null, }); return accum; }, []); @@ -206,7 +147,7 @@ export class ElasticsearchVersionMismatchAlert extends BaseAlert { }, } ), - state: RESOLVED, + state: AlertingDefaults.ALERT_STATE.resolved, clusterName: cluster.clusterName, }); } else { @@ -222,14 +163,7 @@ export class ElasticsearchVersionMismatchAlert extends BaseAlert { defaultMessage: 'View nodes', } ); - const globalState = [`cluster_uuid:${cluster.clusterUuid}`]; - if (alertState.ccs) { - globalState.push(`ccs:${alertState.ccs}`); - } - const url = `${this.kibanaUrl}/app/monitoring#elasticsearch/nodes?_g=(${globalState.join( - ',' - )})`; - const action = `[${fullActionText}](${url})`; + const action = `[${fullActionText}](elasticsearch/nodes)`; instance.scheduleActions('default', { internalShortMessage: i18n.translate( 'xpack.monitoring.alerts.elasticsearchVersionMismatch.firing.internalShortMessage', @@ -252,7 +186,7 @@ export class ElasticsearchVersionMismatchAlert extends BaseAlert { }, } ), - state: FIRING, + state: AlertingDefaults.ALERT_STATE.firing, clusterName: cluster.clusterName, versionList: versions, action, diff --git a/x-pack/plugins/monitoring/server/alerts/index.ts b/x-pack/plugins/monitoring/server/alerts/index.ts index 048e703d2222c..8fdac65514477 100644 --- a/x-pack/plugins/monitoring/server/alerts/index.ts +++ b/x-pack/plugins/monitoring/server/alerts/index.ts @@ -6,6 +6,7 @@ export { BaseAlert } from './base_alert'; export { CpuUsageAlert } from './cpu_usage_alert'; +export { DiskUsageAlert } from './disk_usage_alert'; export { ClusterHealthAlert } from './cluster_health_alert'; export { LicenseExpirationAlert } from './license_expiration_alert'; export { NodesChangedAlert } from './nodes_changed_alert'; diff --git a/x-pack/plugins/monitoring/server/alerts/kibana_version_mismatch_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/kibana_version_mismatch_alert.test.ts index 362532a995f2d..1082e9f6311a4 100644 --- a/x-pack/plugins/monitoring/server/alerts/kibana_version_mismatch_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/kibana_version_mismatch_alert.test.ts @@ -25,6 +25,14 @@ describe('KibanaVersionMismatchAlert', () => { expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ + { + name: 'versionList', + description: 'The versions of Kibana running in this cluster.', + }, + { + name: 'clusterName', + description: 'The cluster to which the instances belong.', + }, { name: 'internalShortMessage', description: 'The short internal message generated by Elastic.', @@ -34,14 +42,6 @@ describe('KibanaVersionMismatchAlert', () => { description: 'The full internal message generated by Elastic.', }, { name: 'state', description: 'The current state of the alert.' }, - { - name: 'versionList', - description: 'The versions of Kibana running in this cluster.', - }, - { - name: 'clusterName', - description: 'The cluster to which the instances belong.', - }, { name: 'action', description: 'The recommended action for this alert.' }, { name: 'actionPlain', @@ -135,7 +135,7 @@ describe('KibanaVersionMismatchAlert', () => { alertStates: [ { cluster: { clusterUuid: 'abc123', clusterName: 'testCluster' }, - ccs: null, + ccs: undefined, ui: { isFiring: true, message: { @@ -150,11 +150,10 @@ describe('KibanaVersionMismatchAlert', () => { ], }); expect(scheduleActions).toHaveBeenCalledWith('default', { - action: - '[View instances](http://localhost:5601/app/monitoring#kibana/instances?_g=(cluster_uuid:abc123))', + action: '[View instances](kibana/instances)', actionPlain: 'Verify you have the same version across all instances.', internalFullMessage: - 'Kibana version mismatch alert is firing for testCluster. Kibana is running [8.0.0, 7.2.1]. [View instances](http://localhost:5601/app/monitoring#kibana/instances?_g=(cluster_uuid:abc123))', + 'Kibana version mismatch alert is firing for testCluster. Kibana is running [8.0.0, 7.2.1]. [View instances](kibana/instances)', internalShortMessage: 'Kibana version mismatch alert is firing for testCluster. Verify you have the same version across all instances.', versionList: '[8.0.0, 7.2.1]', @@ -203,7 +202,7 @@ describe('KibanaVersionMismatchAlert', () => { clusterUuid, clusterName, }, - ccs: null, + ccs: undefined, ui: { isFiring: true, message: null, @@ -235,7 +234,7 @@ describe('KibanaVersionMismatchAlert', () => { alertStates: [ { cluster: { clusterUuid, clusterName }, - ccs: null, + ccs: undefined, ui: { isFiring: false, message: { diff --git a/x-pack/plugins/monitoring/server/alerts/kibana_version_mismatch_alert.ts b/x-pack/plugins/monitoring/server/alerts/kibana_version_mismatch_alert.ts index 80e8701933f56..316f305603964 100644 --- a/x-pack/plugins/monitoring/server/alerts/kibana_version_mismatch_alert.ts +++ b/x-pack/plugins/monitoring/server/alerts/kibana_version_mismatch_alert.ts @@ -20,14 +20,9 @@ import { getCcsIndexPattern } from '../lib/alerts/get_ccs_index_pattern'; import { AlertSeverity } from '../../common/enums'; import { CommonAlertParams } from '../../common/types'; import { fetchLegacyAlerts } from '../lib/alerts/fetch_legacy_alerts'; +import { AlertingDefaults } from './alerts_common'; const WATCH_NAME = 'kibana_version_mismatch'; -const RESOLVED = i18n.translate('xpack.monitoring.alerts.kibanaVersionMismatch.resolved', { - defaultMessage: 'resolved', -}); -const FIRING = i18n.translate('xpack.monitoring.alerts.kibanaVersionMismatch.firing', { - defaultMessage: 'firing', -}); export class KibanaVersionMismatchAlert extends BaseAlert { public type = ALERT_KIBANA_VERSION_MISMATCH; @@ -37,33 +32,6 @@ export class KibanaVersionMismatchAlert extends BaseAlert { public isLegacy = true; protected actionVariables = [ - { - name: 'internalShortMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.internalShortMessage', - { - defaultMessage: 'The short internal message generated by Elastic.', - } - ), - }, - { - name: 'internalFullMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.internalFullMessage', - { - defaultMessage: 'The full internal message generated by Elastic.', - } - ), - }, - { - name: 'state', - description: i18n.translate( - 'xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.state', - { - defaultMessage: 'The current state of the alert.', - } - ), - }, { name: 'versionList', description: i18n.translate( @@ -82,24 +50,11 @@ export class KibanaVersionMismatchAlert extends BaseAlert { } ), }, - { - name: 'action', - description: i18n.translate( - 'xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.action', - { - defaultMessage: 'The recommended action for this alert.', - } - ), - }, - { - name: 'actionPlain', - description: i18n.translate( - 'xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.actionPlain', - { - defaultMessage: 'The recommended action for this alert, without any markdown.', - } - ), - }, + AlertingDefaults.ALERT_TYPE.context.internalShortMessage, + AlertingDefaults.ALERT_TYPE.context.internalFullMessage, + AlertingDefaults.ALERT_TYPE.context.state, + AlertingDefaults.ALERT_TYPE.context.action, + AlertingDefaults.ALERT_TYPE.context.actionPlain, ]; protected async fetchData( @@ -129,7 +84,6 @@ export class KibanaVersionMismatchAlert extends BaseAlert { shouldFire: !legacyAlert.resolved_timestamp, severity, meta: legacyAlert, - ccs: null, }); return accum; }, []); @@ -198,7 +152,7 @@ export class KibanaVersionMismatchAlert extends BaseAlert { }, } ), - state: RESOLVED, + state: AlertingDefaults.ALERT_STATE.resolved, clusterName: cluster.clusterName, }); } else { @@ -214,12 +168,7 @@ export class KibanaVersionMismatchAlert extends BaseAlert { defaultMessage: 'View instances', } ); - const globalState = [`cluster_uuid:${cluster.clusterUuid}`]; - if (alertState.ccs) { - globalState.push(`ccs:${alertState.ccs}`); - } - const url = `${this.kibanaUrl}/app/monitoring#kibana/instances?_g=(${globalState.join(',')})`; - const action = `[${fullActionText}](${url})`; + const action = `[${fullActionText}](kibana/instances)`; instance.scheduleActions('default', { internalShortMessage: i18n.translate( 'xpack.monitoring.alerts.kibanaVersionMismatch.firing.internalShortMessage', @@ -242,7 +191,7 @@ export class KibanaVersionMismatchAlert extends BaseAlert { }, } ), - state: FIRING, + state: AlertingDefaults.ALERT_STATE.firing, clusterName: cluster.clusterName, versionList: versions, action, diff --git a/x-pack/plugins/monitoring/server/alerts/license_expiration_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/license_expiration_alert.test.ts index da94e4af83802..74c300d971898 100644 --- a/x-pack/plugins/monitoring/server/alerts/license_expiration_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/license_expiration_alert.test.ts @@ -32,6 +32,8 @@ describe('LicenseExpirationAlert', () => { expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ + { name: 'expiredDate', description: 'The date when the license expires.' }, + { name: 'clusterName', description: 'The cluster to which the license belong.' }, { name: 'internalShortMessage', description: 'The short internal message generated by Elastic.', @@ -41,9 +43,6 @@ describe('LicenseExpirationAlert', () => { description: 'The full internal message generated by Elastic.', }, { name: 'state', description: 'The current state of the alert.' }, - { name: 'expiredDate', description: 'The date when the license expires.' }, - - { name: 'clusterName', description: 'The cluster to which the license belong.' }, { name: 'action', description: 'The recommended action for this alert.' }, { name: 'actionPlain', @@ -139,7 +138,7 @@ describe('LicenseExpirationAlert', () => { alertStates: [ { cluster: { clusterUuid, clusterName }, - ccs: null, + ccs: undefined, ui: { isFiring: true, message: { @@ -177,11 +176,10 @@ describe('LicenseExpirationAlert', () => { ], }); expect(scheduleActions).toHaveBeenCalledWith('default', { - action: - '[Please update your license.](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:abc123))', + action: '[Please update your license.](elasticsearch/nodes)', actionPlain: 'Please update your license.', internalFullMessage: - 'License expiration alert is firing for testCluster. Your license expires in THE_DATE. [Please update your license.](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:abc123))', + 'License expiration alert is firing for testCluster. Your license expires in THE_DATE. [Please update your license.](elasticsearch/nodes)', internalShortMessage: 'License expiration alert is firing for testCluster. Your license expires in THE_DATE. Please update your license.', clusterName, @@ -230,7 +228,7 @@ describe('LicenseExpirationAlert', () => { clusterUuid, clusterName, }, - ccs: null, + ccs: undefined, ui: { isFiring: true, message: null, @@ -262,7 +260,7 @@ describe('LicenseExpirationAlert', () => { alertStates: [ { cluster: { clusterUuid, clusterName }, - ccs: null, + ccs: undefined, ui: { isFiring: false, message: { diff --git a/x-pack/plugins/monitoring/server/alerts/license_expiration_alert.ts b/x-pack/plugins/monitoring/server/alerts/license_expiration_alert.ts index 7a249db28d2db..f1412ff0fc91a 100644 --- a/x-pack/plugins/monitoring/server/alerts/license_expiration_alert.ts +++ b/x-pack/plugins/monitoring/server/alerts/license_expiration_alert.ts @@ -28,13 +28,7 @@ import { AlertMessageTokenType } from '../../common/enums'; import { CommonAlertParams } from '../../common/types'; import { fetchLegacyAlerts } from '../lib/alerts/fetch_legacy_alerts'; import { mapLegacySeverity } from '../lib/alerts/map_legacy_severity'; - -const RESOLVED = i18n.translate('xpack.monitoring.alerts.licenseExpiration.resolved', { - defaultMessage: 'resolved', -}); -const FIRING = i18n.translate('xpack.monitoring.alerts.licenseExpiration.firing', { - defaultMessage: 'firing', -}); +import { AlertingDefaults } from './alerts_common'; const WATCH_NAME = 'xpack_license_expiration'; @@ -45,33 +39,6 @@ export class LicenseExpirationAlert extends BaseAlert { }); public isLegacy = true; protected actionVariables = [ - { - name: 'internalShortMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.licenseExpiration.actionVariables.internalShortMessage', - { - defaultMessage: 'The short internal message generated by Elastic.', - } - ), - }, - { - name: 'internalFullMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.licenseExpiration.actionVariables.internalFullMessage', - { - defaultMessage: 'The full internal message generated by Elastic.', - } - ), - }, - { - name: 'state', - description: i18n.translate( - 'xpack.monitoring.alerts.licenseExpiration.actionVariables.state', - { - defaultMessage: 'The current state of the alert.', - } - ), - }, { name: 'expiredDate', description: i18n.translate( @@ -90,24 +57,11 @@ export class LicenseExpirationAlert extends BaseAlert { } ), }, - { - name: 'action', - description: i18n.translate( - 'xpack.monitoring.alerts.licenseExpiration.actionVariables.action', - { - defaultMessage: 'The recommended action for this alert.', - } - ), - }, - { - name: 'actionPlain', - description: i18n.translate( - 'xpack.monitoring.alerts.licenseExpiration.actionVariables.actionPlain', - { - defaultMessage: 'The recommended action for this alert, without any markdown.', - } - ), - }, + AlertingDefaults.ALERT_TYPE.context.internalShortMessage, + AlertingDefaults.ALERT_TYPE.context.internalFullMessage, + AlertingDefaults.ALERT_TYPE.context.state, + AlertingDefaults.ALERT_TYPE.context.action, + AlertingDefaults.ALERT_TYPE.context.actionPlain, ]; protected async fetchData( @@ -135,7 +89,6 @@ export class LicenseExpirationAlert extends BaseAlert { shouldFire: !legacyAlert.resolved_timestamp, severity: mapLegacySeverity(legacyAlert.metadata.severity), meta: legacyAlert, - ccs: null, }); return accum; }, []); @@ -211,7 +164,7 @@ export class LicenseExpirationAlert extends BaseAlert { }, } ), - state: RESOLVED, + state: AlertingDefaults.ALERT_STATE.resolved, expiredDate: $expiry.format(FORMAT_DURATION_TEMPLATE_SHORT).trim(), clusterName: cluster.clusterName, }); @@ -219,14 +172,7 @@ export class LicenseExpirationAlert extends BaseAlert { const actionText = i18n.translate('xpack.monitoring.alerts.licenseExpiration.action', { defaultMessage: 'Please update your license.', }); - const globalState = [`cluster_uuid:${cluster.clusterUuid}`]; - if (alertState.ccs) { - globalState.push(`ccs:${alertState.ccs}`); - } - const url = `${this.kibanaUrl}/app/monitoring#elasticsearch/nodes?_g=(${globalState.join( - ',' - )})`; - const action = `[${actionText}](${url})`; + const action = `[${actionText}](elasticsearch/nodes)`; const expiredDate = $expiry.format(FORMAT_DURATION_TEMPLATE_SHORT).trim(); instance.scheduleActions('default', { internalShortMessage: i18n.translate( @@ -251,7 +197,7 @@ export class LicenseExpirationAlert extends BaseAlert { }, } ), - state: FIRING, + state: AlertingDefaults.ALERT_STATE.firing, expiredDate, clusterName: cluster.clusterName, action, diff --git a/x-pack/plugins/monitoring/server/alerts/logstash_version_mismatch_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/logstash_version_mismatch_alert.test.ts index 5ed189014cc6e..d3729660040d8 100644 --- a/x-pack/plugins/monitoring/server/alerts/logstash_version_mismatch_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/logstash_version_mismatch_alert.test.ts @@ -25,6 +25,10 @@ describe('LogstashVersionMismatchAlert', () => { expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ + { + name: 'versionList', + description: 'The versions of Logstash running in this cluster.', + }, { name: 'internalShortMessage', description: 'The short internal message generated by Elastic.', @@ -34,10 +38,6 @@ describe('LogstashVersionMismatchAlert', () => { description: 'The full internal message generated by Elastic.', }, { name: 'state', description: 'The current state of the alert.' }, - { - name: 'versionList', - description: 'The versions of Logstash running in this cluster.', - }, { name: 'clusterName', description: 'The cluster to which the nodes belong.' }, { name: 'action', description: 'The recommended action for this alert.' }, { @@ -132,7 +132,7 @@ describe('LogstashVersionMismatchAlert', () => { alertStates: [ { cluster: { clusterUuid: 'abc123', clusterName: 'testCluster' }, - ccs: null, + ccs: undefined, ui: { isFiring: true, message: { @@ -147,11 +147,10 @@ describe('LogstashVersionMismatchAlert', () => { ], }); expect(scheduleActions).toHaveBeenCalledWith('default', { - action: - '[View nodes](http://localhost:5601/app/monitoring#logstash/nodes?_g=(cluster_uuid:abc123))', + action: '[View nodes](logstash/nodes)', actionPlain: 'Verify you have the same version across all nodes.', internalFullMessage: - 'Logstash version mismatch alert is firing for testCluster. Logstash is running [8.0.0, 7.2.1]. [View nodes](http://localhost:5601/app/monitoring#logstash/nodes?_g=(cluster_uuid:abc123))', + 'Logstash version mismatch alert is firing for testCluster. Logstash is running [8.0.0, 7.2.1]. [View nodes](logstash/nodes)', internalShortMessage: 'Logstash version mismatch alert is firing for testCluster. Verify you have the same version across all nodes.', versionList: '[8.0.0, 7.2.1]', @@ -200,7 +199,7 @@ describe('LogstashVersionMismatchAlert', () => { clusterUuid, clusterName, }, - ccs: null, + ccs: undefined, ui: { isFiring: true, message: null, @@ -232,7 +231,7 @@ describe('LogstashVersionMismatchAlert', () => { alertStates: [ { cluster: { clusterUuid, clusterName }, - ccs: null, + ccs: undefined, ui: { isFiring: false, message: { diff --git a/x-pack/plugins/monitoring/server/alerts/logstash_version_mismatch_alert.ts b/x-pack/plugins/monitoring/server/alerts/logstash_version_mismatch_alert.ts index f996e54de28ef..37515e32e591a 100644 --- a/x-pack/plugins/monitoring/server/alerts/logstash_version_mismatch_alert.ts +++ b/x-pack/plugins/monitoring/server/alerts/logstash_version_mismatch_alert.ts @@ -20,14 +20,9 @@ import { getCcsIndexPattern } from '../lib/alerts/get_ccs_index_pattern'; import { AlertSeverity } from '../../common/enums'; import { CommonAlertParams } from '../../common/types'; import { fetchLegacyAlerts } from '../lib/alerts/fetch_legacy_alerts'; +import { AlertingDefaults } from './alerts_common'; const WATCH_NAME = 'logstash_version_mismatch'; -const RESOLVED = i18n.translate('xpack.monitoring.alerts.logstashVersionMismatch.resolved', { - defaultMessage: 'resolved', -}); -const FIRING = i18n.translate('xpack.monitoring.alerts.logstashVersionMismatch.firing', { - defaultMessage: 'firing', -}); export class LogstashVersionMismatchAlert extends BaseAlert { public type = ALERT_LOGSTASH_VERSION_MISMATCH; @@ -37,33 +32,6 @@ export class LogstashVersionMismatchAlert extends BaseAlert { public isLegacy = true; protected actionVariables = [ - { - name: 'internalShortMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.internalShortMessage', - { - defaultMessage: 'The short internal message generated by Elastic.', - } - ), - }, - { - name: 'internalFullMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.internalFullMessage', - { - defaultMessage: 'The full internal message generated by Elastic.', - } - ), - }, - { - name: 'state', - description: i18n.translate( - 'xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.state', - { - defaultMessage: 'The current state of the alert.', - } - ), - }, { name: 'versionList', description: i18n.translate( @@ -73,33 +41,7 @@ export class LogstashVersionMismatchAlert extends BaseAlert { } ), }, - { - name: 'clusterName', - description: i18n.translate( - 'xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.clusterName', - { - defaultMessage: 'The cluster to which the nodes belong.', - } - ), - }, - { - name: 'action', - description: i18n.translate( - 'xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.action', - { - defaultMessage: 'The recommended action for this alert.', - } - ), - }, - { - name: 'actionPlain', - description: i18n.translate( - 'xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.actionPlain', - { - defaultMessage: 'The recommended action for this alert, without any markdown.', - } - ), - }, + ...Object.values(AlertingDefaults.ALERT_TYPE.context), ]; protected async fetchData( @@ -130,7 +72,6 @@ export class LogstashVersionMismatchAlert extends BaseAlert { shouldFire: !legacyAlert.resolved_timestamp, severity, meta: legacyAlert, - ccs: null, }); return accum; }, []); @@ -202,7 +143,7 @@ export class LogstashVersionMismatchAlert extends BaseAlert { }, } ), - state: RESOLVED, + state: AlertingDefaults.ALERT_STATE.resolved, clusterName: cluster.clusterName, }); } else { @@ -218,12 +159,7 @@ export class LogstashVersionMismatchAlert extends BaseAlert { defaultMessage: 'View nodes', } ); - const globalState = [`cluster_uuid:${cluster.clusterUuid}`]; - if (alertState.ccs) { - globalState.push(`ccs:${alertState.ccs}`); - } - const url = `${this.kibanaUrl}/app/monitoring#logstash/nodes?_g=(${globalState.join(',')})`; - const action = `[${fullActionText}](${url})`; + const action = `[${fullActionText}](logstash/nodes)`; instance.scheduleActions('default', { internalShortMessage: i18n.translate( 'xpack.monitoring.alerts.logstashVersionMismatch.firing.internalShortMessage', @@ -246,7 +182,7 @@ export class LogstashVersionMismatchAlert extends BaseAlert { }, } ), - state: FIRING, + state: AlertingDefaults.ALERT_STATE.firing, clusterName: cluster.clusterName, versionList: versions, action, diff --git a/x-pack/plugins/monitoring/server/alerts/nodes_changed_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/nodes_changed_alert.test.ts index ec2b19eb5dfae..63b061649027a 100644 --- a/x-pack/plugins/monitoring/server/alerts/nodes_changed_alert.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/nodes_changed_alert.test.ts @@ -32,6 +32,9 @@ describe('NodesChangedAlert', () => { expect(alert.defaultThrottle).toBe('1d'); // @ts-ignore expect(alert.actionVariables).toStrictEqual([ + { name: 'added', description: 'The list of nodes added to the cluster.' }, + { name: 'removed', description: 'The list of nodes removed from the cluster.' }, + { name: 'restarted', description: 'The list of nodes restarted in the cluster.' }, { name: 'internalShortMessage', description: 'The short internal message generated by Elastic.', @@ -42,9 +45,6 @@ describe('NodesChangedAlert', () => { }, { name: 'state', description: 'The current state of the alert.' }, { name: 'clusterName', description: 'The cluster to which the nodes belong.' }, - { name: 'added', description: 'The list of nodes added to the cluster.' }, - { name: 'removed', description: 'The list of nodes removed from the cluster.' }, - { name: 'restarted', description: 'The list of nodes restarted in the cluster.' }, { name: 'action', description: 'The recommended action for this alert.' }, { name: 'actionPlain', @@ -145,7 +145,7 @@ describe('NodesChangedAlert', () => { alertStates: [ { cluster: { clusterUuid, clusterName }, - ccs: null, + ccs: undefined, ui: { isFiring: true, message: { @@ -160,11 +160,10 @@ describe('NodesChangedAlert', () => { ], }); expect(scheduleActions).toHaveBeenCalledWith('default', { - action: - '[View nodes](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:abc123))', + action: '[View nodes](elasticsearch/nodes)', actionPlain: 'Verify that you added, removed, or restarted nodes.', internalFullMessage: - 'Nodes changed alert is firing for testCluster. The following Elasticsearch nodes have been added: removed: restarted:test. [View nodes](http://localhost:5601/app/monitoring#elasticsearch/nodes?_g=(cluster_uuid:abc123))', + 'Nodes changed alert is firing for testCluster. The following Elasticsearch nodes have been added: removed: restarted:test. [View nodes](elasticsearch/nodes)', internalShortMessage: 'Nodes changed alert is firing for testCluster. Verify that you added, removed, or restarted nodes.', added: '', @@ -212,7 +211,7 @@ describe('NodesChangedAlert', () => { // clusterUuid, // clusterName, // }, - // ccs: null, + // ccs: undefined, // ui: { // isFiring: true, // message: null, @@ -243,7 +242,7 @@ describe('NodesChangedAlert', () => { // alertStates: [ // { // cluster: { clusterUuid, clusterName }, - // ccs: null, + // ccs: undefined, // ui: { // isFiring: false, // message: { diff --git a/x-pack/plugins/monitoring/server/alerts/nodes_changed_alert.ts b/x-pack/plugins/monitoring/server/alerts/nodes_changed_alert.ts index 73f3ee055c928..e03e6ea53ab4e 100644 --- a/x-pack/plugins/monitoring/server/alerts/nodes_changed_alert.ts +++ b/x-pack/plugins/monitoring/server/alerts/nodes_changed_alert.ts @@ -21,14 +21,9 @@ import { getCcsIndexPattern } from '../lib/alerts/get_ccs_index_pattern'; import { CommonAlertParams } from '../../common/types'; import { fetchLegacyAlerts } from '../lib/alerts/fetch_legacy_alerts'; import { mapLegacySeverity } from '../lib/alerts/map_legacy_severity'; +import { AlertingDefaults } from './alerts_common'; const WATCH_NAME = 'elasticsearch_nodes'; -const RESOLVED = i18n.translate('xpack.monitoring.alerts.nodesChanged.resolved', { - defaultMessage: 'resolved', -}); -const FIRING = i18n.translate('xpack.monitoring.alerts.nodesChanged.firing', { - defaultMessage: 'firing', -}); export class NodesChangedAlert extends BaseAlert { public type = ALERT_NODES_CHANGED; @@ -38,39 +33,6 @@ export class NodesChangedAlert extends BaseAlert { public isLegacy = true; protected actionVariables = [ - { - name: 'internalShortMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.nodesChanged.actionVariables.internalShortMessage', - { - defaultMessage: 'The short internal message generated by Elastic.', - } - ), - }, - { - name: 'internalFullMessage', - description: i18n.translate( - 'xpack.monitoring.alerts.nodesChanged.actionVariables.internalFullMessage', - { - defaultMessage: 'The full internal message generated by Elastic.', - } - ), - }, - { - name: 'state', - description: i18n.translate('xpack.monitoring.alerts.nodesChanged.actionVariables.state', { - defaultMessage: 'The current state of the alert.', - }), - }, - { - name: 'clusterName', - description: i18n.translate( - 'xpack.monitoring.alerts.nodesChanged.actionVariables.clusterName', - { - defaultMessage: 'The cluster to which the nodes belong.', - } - ), - }, { name: 'added', description: i18n.translate('xpack.monitoring.alerts.nodesChanged.actionVariables.added', { @@ -92,21 +54,7 @@ export class NodesChangedAlert extends BaseAlert { } ), }, - { - name: 'action', - description: i18n.translate('xpack.monitoring.alerts.nodesChanged.actionVariables.action', { - defaultMessage: 'The recommended action for this alert.', - }), - }, - { - name: 'actionPlain', - description: i18n.translate( - 'xpack.monitoring.alerts.nodesChanged.actionVariables.actionPlain', - { - defaultMessage: 'The recommended action for this alert, without any markdown.', - } - ), - }, + ...Object.values(AlertingDefaults.ALERT_TYPE.context), ]; private getNodeStates(legacyAlert: LegacyAlert): LegacyAlertNodesChangedList | undefined { @@ -138,7 +86,6 @@ export class NodesChangedAlert extends BaseAlert { shouldFire: true, // This alert always has a resolved timestamp severity: mapLegacySeverity(legacyAlert.metadata.severity), meta: legacyAlert, - ccs: null, }); return accum; }, []); @@ -234,7 +181,7 @@ export class NodesChangedAlert extends BaseAlert { }, } ), - state: RESOLVED, + state: AlertingDefaults.ALERT_STATE.resolved, clusterName: cluster.clusterName, }); } else { @@ -244,14 +191,7 @@ export class NodesChangedAlert extends BaseAlert { const fullActionText = i18n.translate('xpack.monitoring.alerts.nodesChanged.fullAction', { defaultMessage: 'View nodes', }); - const globalState = [`cluster_uuid:${cluster.clusterUuid}`]; - if (alertState.ccs) { - globalState.push(`ccs:${alertState.ccs}`); - } - const url = `${this.kibanaUrl}/app/monitoring#elasticsearch/nodes?_g=(${globalState.join( - ',' - )})`; - const action = `[${fullActionText}](${url})`; + const action = `[${fullActionText}](elasticsearch/nodes)`; const states = this.getNodeStates(legacyAlert) || { added: {}, removed: {}, restarted: {} }; const added = Object.values(states.added).join(','); const removed = Object.values(states.removed).join(','); @@ -280,7 +220,7 @@ export class NodesChangedAlert extends BaseAlert { }, } ), - state: FIRING, + state: AlertingDefaults.ALERT_STATE.firing, clusterName: cluster.clusterName, added, removed, diff --git a/x-pack/plugins/monitoring/server/alerts/types.d.ts b/x-pack/plugins/monitoring/server/alerts/types.d.ts index b6c8427375841..b685dcaed790f 100644 --- a/x-pack/plugins/monitoring/server/alerts/types.d.ts +++ b/x-pack/plugins/monitoring/server/alerts/types.d.ts @@ -11,13 +11,14 @@ export interface AlertEnableAction { config: { [key: string]: any }; } -export interface AlertInstanceState extends BaseAlertInstanceState { - alertStates: AlertState[]; +export interface AlertInstanceState { + alertStates: Array; + [x: string]: unknown; } export interface AlertState { cluster: AlertCluster; - ccs: string | null; + ccs?: string; ui: AlertUiState; } @@ -27,6 +28,12 @@ export interface AlertCpuUsageState extends AlertState { nodeName: string; } +export interface AlertDiskUsageState extends AlertState { + diskUsage: number; + nodeId: string; + nodeName?: string; +} + export interface AlertUiState { isFiring: boolean; severity: AlertSeverity; @@ -75,13 +82,21 @@ export interface AlertCpuUsageNodeStats { containerUsage: number; containerPeriods: number; containerQuota: number; - ccs: string | null; + ccs?: string; +} + +export interface AlertDiskUsageNodeStats { + clusterUuid: string; + nodeId: string; + nodeName: string; + diskUsage: number; + ccs?: string; } export interface AlertData { instanceKey: string; clusterUuid: string; - ccs: string | null; + ccs?: string; shouldFire: boolean; severity: AlertSeverity; meta: any; diff --git a/x-pack/plugins/monitoring/server/lib/alerts/fetch_disk_usage_node_stats.test.ts b/x-pack/plugins/monitoring/server/lib/alerts/fetch_disk_usage_node_stats.test.ts new file mode 100644 index 0000000000000..4e221d3ebb35a --- /dev/null +++ b/x-pack/plugins/monitoring/server/lib/alerts/fetch_disk_usage_node_stats.test.ts @@ -0,0 +1,71 @@ +/* + * 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 { fetchDiskUsageNodeStats } from './fetch_disk_usage_node_stats'; + +describe('fetchDiskUsageNodeStats', () => { + let callCluster = jest.fn(); + const clusters = [ + { + clusterUuid: 'cluster123', + clusterName: 'test-cluster', + }, + ]; + const index = '.monitoring-es-*'; + const duration = '5m'; + const size = 10; + + it('fetch normal stats', async () => { + callCluster = jest.fn().mockImplementation(() => { + return { + aggregations: { + clusters: { + buckets: [ + { + key: clusters[0].clusterUuid, + nodes: { + buckets: [ + { + key: 'theNodeId', + index: { + buckets: [ + { + key: '.monitoring-es-*', + }, + ], + }, + name: { + buckets: [ + { + key: 'theNodeName', + }, + ], + }, + usage_ratio_percentile: { + value: 10, + }, + }, + ], + }, + }, + ], + }, + }, + }; + }); + + const result = await fetchDiskUsageNodeStats(callCluster, clusters, index, duration, size); + expect(result).toEqual([ + { + clusterUuid: clusters[0].clusterUuid, + nodeName: 'theNodeName', + nodeId: 'theNodeId', + diskUsage: 10, + ccs: null, + }, + ]); + }); +}); diff --git a/x-pack/plugins/monitoring/server/lib/alerts/fetch_disk_usage_node_stats.ts b/x-pack/plugins/monitoring/server/lib/alerts/fetch_disk_usage_node_stats.ts new file mode 100644 index 0000000000000..6201204ebebe0 --- /dev/null +++ b/x-pack/plugins/monitoring/server/lib/alerts/fetch_disk_usage_node_stats.ts @@ -0,0 +1,125 @@ +/* + * 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 { get } from 'lodash'; +import { AlertCluster, AlertDiskUsageNodeStats } from '../../alerts/types'; + +export async function fetchDiskUsageNodeStats( + callCluster: any, + clusters: AlertCluster[], + index: string, + duration: string, + size: number +): Promise { + const clustersIds = clusters.map((cluster) => cluster.clusterUuid); + const params = { + index, + filterPath: ['aggregations'], + body: { + size: 0, + query: { + bool: { + filter: [ + { + terms: { + cluster_uuid: clustersIds, + }, + }, + { + term: { + type: 'node_stats', + }, + }, + { + range: { + timestamp: { + gte: `now-${duration}`, + }, + }, + }, + ], + }, + }, + aggs: { + clusters: { + terms: { + field: 'cluster_uuid', + size, + include: clustersIds, + }, + aggs: { + nodes: { + terms: { + field: 'node_stats.node_id', + size, + }, + aggs: { + index: { + terms: { + field: '_index', + size: 1, + }, + }, + total_in_bytes: { + max: { + field: 'node_stats.fs.total.total_in_bytes', + }, + }, + available_in_bytes: { + max: { + field: 'node_stats.fs.total.available_in_bytes', + }, + }, + usage_ratio_percentile: { + bucket_script: { + buckets_path: { + available_in_bytes: 'available_in_bytes', + total_in_bytes: 'total_in_bytes', + }, + script: + '100 - Math.floor((params.available_in_bytes / params.total_in_bytes) * 100)', + }, + }, + name: { + terms: { + field: 'source_node.name', + size: 1, + }, + }, + }, + }, + }, + }, + }, + }, + }; + + const response = await callCluster('search', params); + const stats: AlertDiskUsageNodeStats[] = []; + const { buckets: clusterBuckets = [] } = response.aggregations.clusters; + + if (!clusterBuckets.length) { + return stats; + } + + for (const clusterBucket of clusterBuckets) { + for (const node of clusterBucket.nodes.buckets) { + const indexName = get(node, 'index.buckets[0].key', ''); + const diskUsage = Number(get(node, 'usage_ratio_percentile.value')); + if (isNaN(diskUsage) || diskUsage === undefined || diskUsage === null) { + continue; + } + stats.push({ + diskUsage, + clusterUuid: clusterBucket.key, + nodeId: node.key, + nodeName: get(node, 'name.buckets[0].key'), + ccs: indexName.includes(':') ? indexName.split(':')[0] : null, + }); + } + } + return stats; +} diff --git a/x-pack/plugins/monitoring/server/lib/alerts/fetch_status.test.ts b/x-pack/plugins/monitoring/server/lib/alerts/fetch_status.test.ts index ff674195f0730..fdd7253550624 100644 --- a/x-pack/plugins/monitoring/server/lib/alerts/fetch_status.test.ts +++ b/x-pack/plugins/monitoring/server/lib/alerts/fetch_status.test.ts @@ -85,7 +85,6 @@ describe('fetchStatus', () => { alertStates = [ { cluster: defaultClusterState, - ccs: null, ui: { ...defaultUiState, isFiring: true, @@ -111,7 +110,6 @@ describe('fetchStatus', () => { alertStates = [ { cluster: defaultClusterState, - ccs: null, ui: { ...defaultUiState, resolvedMS: 1500, diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 550cf35b1e3bf..0b2c3b1231e4b 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -12237,40 +12237,24 @@ "xpack.monitoring.alerts.callout.warningLabel": "警告アラート", "xpack.monitoring.alerts.clusterHealth.action.danger": "見つからないプライマリおよびレプリカシャードを割り当てます。", "xpack.monitoring.alerts.clusterHealth.action.warning": "見つからないレプリカシャードを割り当てます。", - "xpack.monitoring.alerts.clusterHealth.actionVariables.action": "このアラートに対する推奨されるアクション。", - "xpack.monitoring.alerts.clusterHealth.actionVariables.actionPlain": "このアラートに推奨されるアクション(Markdownなし)。", "xpack.monitoring.alerts.clusterHealth.actionVariables.clusterHealth": "クラスターの正常性。", - "xpack.monitoring.alerts.clusterHealth.actionVariables.clusterName": "ノードが属しているクラスター。", - "xpack.monitoring.alerts.clusterHealth.actionVariables.internalFullMessage": "詳細な内部メッセージはElasticで生成されました。", - "xpack.monitoring.alerts.clusterHealth.actionVariables.internalShortMessage": "内部メッセージ(省略あり)はElasticで生成されました。", - "xpack.monitoring.alerts.clusterHealth.actionVariables.state": "現在のアラートの状態。", - "xpack.monitoring.alerts.clusterHealth.firing": "実行中", "xpack.monitoring.alerts.clusterHealth.firing.internalFullMessage": "クラスター正常性アラートが{clusterName}に対して作動しています。現在の正常性は{health}です。{action}", "xpack.monitoring.alerts.clusterHealth.firing.internalShortMessage": "クラスター正常性アラートが{clusterName}に対して作動しています。現在の正常性は{health}です。{actionText}", "xpack.monitoring.alerts.clusterHealth.label": "クラスターの正常性", "xpack.monitoring.alerts.clusterHealth.redMessage": "見つからないプライマリおよびレプリカシャードを割り当て", - "xpack.monitoring.alerts.clusterHealth.resolved": "解決済み", "xpack.monitoring.alerts.clusterHealth.resolved.internalFullMessage": "クラスター正常性アラートが{clusterName}に対して作動しています。", "xpack.monitoring.alerts.clusterHealth.resolved.internalShortMessage": "クラスター正常性アラートが{clusterName}に対して作動しています。", "xpack.monitoring.alerts.clusterHealth.ui.firingMessage": "Elasticsearchクラスターの正常性は{health}です。", "xpack.monitoring.alerts.clusterHealth.ui.nextSteps.message1": "{message}. #start_linkView now#end_link", "xpack.monitoring.alerts.clusterHealth.yellowMessage": "見つからないレプリカシャードを割り当て", - "xpack.monitoring.alerts.cpuUsage.actionVariables.action": "このアラートに対する推奨されるアクション。", - "xpack.monitoring.alerts.cpuUsage.actionVariables.actionPlain": "このアラートに推奨されるアクション(Markdownなし)。", - "xpack.monitoring.alerts.cpuUsage.actionVariables.clusterName": "ノードが属しているクラスター。", "xpack.monitoring.alerts.cpuUsage.actionVariables.count": "高CPU使用率を報告しているノード数。", - "xpack.monitoring.alerts.cpuUsage.actionVariables.internalFullMessage": "詳細な内部メッセージはElasticで生成されました。", - "xpack.monitoring.alerts.cpuUsage.actionVariables.internalShortMessage": "内部メッセージ(省略あり)はElasticで生成されました。", "xpack.monitoring.alerts.cpuUsage.actionVariables.nodes": "高CPU使用率を報告しているノードのリスト。", - "xpack.monitoring.alerts.cpuUsage.actionVariables.state": "現在のアラートの状態。", - "xpack.monitoring.alerts.cpuUsage.firing": "実行中", "xpack.monitoring.alerts.cpuUsage.firing.internalFullMessage": "CPU使用状況アラートはCPU使用状況アラートは、クラスター{clusterName}の{count}個のノードで実行されています。{action}", "xpack.monitoring.alerts.cpuUsage.firing.internalShortMessage": "CPU使用状況アラートは、クラスター{clusterName}の{count}個のノードで実行されています。{shortActionText}", "xpack.monitoring.alerts.cpuUsage.fullAction": "ノードの表示", "xpack.monitoring.alerts.cpuUsage.label": "CPU使用状況", "xpack.monitoring.alerts.cpuUsage.paramDetails.duration.label": "平均を確認", "xpack.monitoring.alerts.cpuUsage.paramDetails.threshold.label": "CPUが終了したときに通知", - "xpack.monitoring.alerts.cpuUsage.resolved": "解決済み", "xpack.monitoring.alerts.cpuUsage.resolved.internalFullMessage": "CPU使用状況アラートは、クラスター{clusterName}の{count}個のノードで解決されました。", "xpack.monitoring.alerts.cpuUsage.resolved.internalShortMessage": "CPU使用状況アラートは、クラスター{clusterName}の{count}個のノードで解決されました。", "xpack.monitoring.alerts.cpuUsage.shortAction": "影響を受けるノード全体のCPUレベルを検証します。", @@ -12278,21 +12262,13 @@ "xpack.monitoring.alerts.cpuUsage.ui.nextSteps.hotThreads": "#start_linkCheck hot threads#end_link", "xpack.monitoring.alerts.cpuUsage.ui.nextSteps.runningTasks": "#start_linkCheck long running tasks#end_link", "xpack.monitoring.alerts.cpuUsage.ui.resolvedMessage": "ノード{nodeName}でのCPU使用状況は現在しきい値を下回っています。現在、#resolved時点で、{cpuUsage}%と報告されています。", - "xpack.monitoring.alerts.cpuUsage.validation.duration": "有効な期間が必要です。", - "xpack.monitoring.alerts.cpuUsage.validation.threshold": "有効な数字が必要です。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.action": "このアラートに対する推奨されるアクション。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.actionPlain": "このアラートに推奨されるアクション(Markdownなし)。", + "xpack.monitoring.alerts.validation.duration": "有効な期間が必要です。", + "xpack.monitoring.alerts.validation.threshold": "有効な数字が必要です。", "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.clusterHealth": "このクラスターを実行しているElasticsearchのバージョン。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.clusterName": "ノードが属しているクラスター。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.internalFullMessage": "詳細な内部メッセージはElasticで生成されました。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.internalShortMessage": "内部メッセージ(省略あり)はElasticで生成されました。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.state": "現在のアラートの状態。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.firing": "実行中", "xpack.monitoring.alerts.elasticsearchVersionMismatch.firing.internalFullMessage": "{clusterName}に対してElasticsearchバージョン不一致アラートが実行されています。Elasticsearchは{versions}を実行しています。{action}", "xpack.monitoring.alerts.elasticsearchVersionMismatch.firing.internalShortMessage": "{clusterName}に対してElasticsearchバージョン不一致アラートが実行されています。{shortActionText}", "xpack.monitoring.alerts.elasticsearchVersionMismatch.fullAction": "ノードの表示", "xpack.monitoring.alerts.elasticsearchVersionMismatch.label": "Elasticsearchバージョン不一致", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.resolved": "解決済み", "xpack.monitoring.alerts.elasticsearchVersionMismatch.resolved.internalFullMessage": "{clusterName}のElasticsearchバージョン不一致アラートが解決されました。", "xpack.monitoring.alerts.elasticsearchVersionMismatch.resolved.internalShortMessage": "{clusterName}のElasticsearchバージョン不一致アラートが解決されました。", "xpack.monitoring.alerts.elasticsearchVersionMismatch.shortAction": "すべてのノードのバージョンが同じことを確認してください。", @@ -12302,19 +12278,12 @@ "xpack.monitoring.alerts.flyoutExpressions.timeUnits.hourLabel": "{timeValue, plural, one {時間} other {時間}}", "xpack.monitoring.alerts.flyoutExpressions.timeUnits.minuteLabel": "{timeValue, plural, one {分} other {分}}", "xpack.monitoring.alerts.flyoutExpressions.timeUnits.secondLabel": "{timeValue, plural, one {秒} other {秒}}", - "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.action": "このアラートに対する推奨されるアクション。", - "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.actionPlain": "このアラートに推奨されるアクション(Markdownなし)。", "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.clusterHealth": "このクラスターを実行しているKibanaのバージョン。", "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.clusterName": "インスタンスが属しているクラスター。", - "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.internalFullMessage": "詳細な内部メッセージはElasticで生成されました。", - "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.internalShortMessage": "内部メッセージ(省略あり)はElasticで生成されました。", - "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.state": "現在のアラートの状態。", - "xpack.monitoring.alerts.kibanaVersionMismatch.firing": "実行中", "xpack.monitoring.alerts.kibanaVersionMismatch.firing.internalFullMessage": "{clusterName}に対してKibanaバージョン不一致アラートが実行されています。Kibanaは{versions}を実行しています。{action}", "xpack.monitoring.alerts.kibanaVersionMismatch.firing.internalShortMessage": "{clusterName}に対してKibanaバージョン不一致アラートが実行されています。{shortActionText}", "xpack.monitoring.alerts.kibanaVersionMismatch.fullAction": "インスタンスを表示", "xpack.monitoring.alerts.kibanaVersionMismatch.label": "Kibanaバージョン不一致", - "xpack.monitoring.alerts.kibanaVersionMismatch.resolved": "解決済み", "xpack.monitoring.alerts.kibanaVersionMismatch.resolved.internalFullMessage": "{clusterName}のKibanaバージョン不一致アラートが解決されました。", "xpack.monitoring.alerts.kibanaVersionMismatch.resolved.internalShortMessage": "{clusterName}のKibanaバージョン不一致アラートが解決されました。", "xpack.monitoring.alerts.kibanaVersionMismatch.shortAction": "すべてのインスタンスのバージョンが同じことを確認してください。", @@ -12322,56 +12291,33 @@ "xpack.monitoring.alerts.kibanaVersionMismatch.ui.resolvedMessage": "このクラスターではすべてのKibanaのバージョンが同じです。", "xpack.monitoring.alerts.legacyAlert.expressionText": "構成するものがありません。", "xpack.monitoring.alerts.licenseExpiration.action": "ライセンスを更新してください。", - "xpack.monitoring.alerts.licenseExpiration.actionVariables.action": "このアラートに対する推奨されるアクション。", - "xpack.monitoring.alerts.licenseExpiration.actionVariables.actionPlain": "このアラートに推奨されるアクション(Markdownなし)。", "xpack.monitoring.alerts.licenseExpiration.actionVariables.clusterName": "ライセンスが属しているクラスター。", "xpack.monitoring.alerts.licenseExpiration.actionVariables.expiredDate": "ライセンスの有効期限。", - "xpack.monitoring.alerts.licenseExpiration.actionVariables.internalFullMessage": "詳細な内部メッセージはElasticで生成されました。", - "xpack.monitoring.alerts.licenseExpiration.actionVariables.internalShortMessage": "内部メッセージ(省略あり)はElasticで生成されました。", - "xpack.monitoring.alerts.licenseExpiration.actionVariables.state": "現在のアラートの状態。", - "xpack.monitoring.alerts.licenseExpiration.firing": "実行中", "xpack.monitoring.alerts.licenseExpiration.firing.internalFullMessage": "ライセンス有効期限アラートが{clusterName}に対して実行されています。ライセンスは{expiredDate}に期限切れになります。{action}", "xpack.monitoring.alerts.licenseExpiration.firing.internalShortMessage": "{clusterName}に対してライセンス有効期限アラートが実行されています。ライセンスは{expiredDate}に期限切れになります。{actionText}", "xpack.monitoring.alerts.licenseExpiration.label": "ライセンス期限", - "xpack.monitoring.alerts.licenseExpiration.resolved": "解決済み", "xpack.monitoring.alerts.licenseExpiration.resolved.internalFullMessage": "{clusterName}のライセンス有効期限アラートが解決されました。", "xpack.monitoring.alerts.licenseExpiration.resolved.internalShortMessage": "{clusterName}のライセンス有効期限アラートが解決されました。", "xpack.monitoring.alerts.licenseExpiration.ui.firingMessage": "このクラスターのライセンスは#absoluteの#relativeに期限切れになります。#start_linkライセンスを更新してください。#end_link", "xpack.monitoring.alerts.licenseExpiration.ui.resolvedMessage": "このクラスターのライセンスは有効です。", - "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.action": "このアラートに対する推奨されるアクション。", - "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.actionPlain": "このアラートに推奨されるアクション(Markdownなし)。", "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.clusterHealth": "このクラスターを実行しているLogstashのバージョン。", - "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.clusterName": "ノードが属しているクラスター。", - "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.internalFullMessage": "詳細な内部メッセージはElasticで生成されました。", - "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.internalShortMessage": "内部メッセージ(省略あり)はElasticで生成されました。", - "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.state": "現在のアラートの状態。", - "xpack.monitoring.alerts.logstashVersionMismatch.firing": "実行中", "xpack.monitoring.alerts.logstashVersionMismatch.firing.internalFullMessage": "{clusterName}に対してLogstashバージョン不一致アラートが実行されています。Logstashは{versions}を実行しています。{action}", "xpack.monitoring.alerts.logstashVersionMismatch.firing.internalShortMessage": "{clusterName}に対してLogstashバージョン不一致アラートが実行されています。{shortActionText}", "xpack.monitoring.alerts.logstashVersionMismatch.fullAction": "ノードの表示", "xpack.monitoring.alerts.logstashVersionMismatch.label": "Logstashバージョン不一致", - "xpack.monitoring.alerts.logstashVersionMismatch.resolved": "解決済み", "xpack.monitoring.alerts.logstashVersionMismatch.resolved.internalFullMessage": "{clusterName}のLogstashバージョン不一致アラートが解決されました。", "xpack.monitoring.alerts.logstashVersionMismatch.resolved.internalShortMessage": "{clusterName}のLogstashバージョン不一致アラートが解決されました。", "xpack.monitoring.alerts.logstashVersionMismatch.shortAction": "すべてのノードのバージョンが同じことを確認してください。", "xpack.monitoring.alerts.logstashVersionMismatch.ui.firingMessage": "このクラスターでは、複数のバージョンのLogstash({versions})が実行されています。", "xpack.monitoring.alerts.logstashVersionMismatch.ui.resolvedMessage": "このクラスターではすべてのLogstashのバージョンが同じです。", "xpack.monitoring.alerts.migrate.manageAction.requiredFieldError": "{field} は必須フィールドです。", - "xpack.monitoring.alerts.nodesChanged.actionVariables.action": "このアラートに対する推奨されるアクション。", - "xpack.monitoring.alerts.nodesChanged.actionVariables.actionPlain": "このアラートに推奨されるアクション(Markdownなし)。", "xpack.monitoring.alerts.nodesChanged.actionVariables.added": "ノードのリストがクラスターに追加されました。", - "xpack.monitoring.alerts.nodesChanged.actionVariables.clusterName": "ノードが属しているクラスター。", - "xpack.monitoring.alerts.nodesChanged.actionVariables.internalFullMessage": "詳細な内部メッセージはElasticで生成されました。", - "xpack.monitoring.alerts.nodesChanged.actionVariables.internalShortMessage": "内部メッセージ(省略あり)はElasticで生成されました。", "xpack.monitoring.alerts.nodesChanged.actionVariables.removed": "ノードのリストがクラスターから削除されました。", "xpack.monitoring.alerts.nodesChanged.actionVariables.restarted": "ノードのリストがクラスターで再起動しました。", - "xpack.monitoring.alerts.nodesChanged.actionVariables.state": "現在のアラートの状態。", - "xpack.monitoring.alerts.nodesChanged.firing": "実行中", "xpack.monitoring.alerts.nodesChanged.firing.internalFullMessage": "{clusterName}に対してノード変更アラートが実行されています。次のElasticsearchノードが追加されました:{added}、削除:{removed}、再起動:{restarted}。{action}", "xpack.monitoring.alerts.nodesChanged.firing.internalShortMessage": "{clusterName}に対してノード変更アラートが実行されています。{shortActionText}", "xpack.monitoring.alerts.nodesChanged.fullAction": "ノードの表示", "xpack.monitoring.alerts.nodesChanged.label": "ノードが変更されました", - "xpack.monitoring.alerts.nodesChanged.resolved": "解決済み", "xpack.monitoring.alerts.nodesChanged.resolved.internalFullMessage": "{clusterName}のElasticsearchノード変更アラートが解決されました。", "xpack.monitoring.alerts.nodesChanged.resolved.internalShortMessage": "{clusterName}のElasticsearchノード変更アラートが解決されました。", "xpack.monitoring.alerts.nodesChanged.shortAction": "ノードを追加、削除、または再起動したことを確認してください。", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 5f50eb831022b..4d753b26fd7e3 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -12245,41 +12245,25 @@ "xpack.monitoring.alerts.callout.warningLabel": "警告告警", "xpack.monitoring.alerts.clusterHealth.action.danger": "分配缺失的主分片和副本分片。", "xpack.monitoring.alerts.clusterHealth.action.warning": "分配缺失的副本分片。", - "xpack.monitoring.alerts.clusterHealth.actionVariables.action": "此告警的建议操作。", - "xpack.monitoring.alerts.clusterHealth.actionVariables.actionPlain": "此告警的建议操作,无任何 Markdown。", "xpack.monitoring.alerts.clusterHealth.actionVariables.clusterHealth": "集群的运行状况。", - "xpack.monitoring.alerts.clusterHealth.actionVariables.clusterName": "节点所属的集群。", - "xpack.monitoring.alerts.clusterHealth.actionVariables.internalFullMessage": "Elastic 生成的完整内部消息。", - "xpack.monitoring.alerts.clusterHealth.actionVariables.internalShortMessage": "Elastic 生成的简短内部消息。", - "xpack.monitoring.alerts.clusterHealth.actionVariables.state": "告警的当前状态。", - "xpack.monitoring.alerts.clusterHealth.firing": "触发", "xpack.monitoring.alerts.clusterHealth.firing.internalFullMessage": "为 {clusterName} 触发了集群运行状况告警。当前运行状况为 {health}。{action}", "xpack.monitoring.alerts.clusterHealth.firing.internalShortMessage": "为 {clusterName} 触发了集群运行状况告警。当前运行状况为 {health}。{actionText}", "xpack.monitoring.alerts.clusterHealth.label": "集群运行状况", "xpack.monitoring.alerts.clusterHealth.redMessage": "分配缺失的主分片和副本分片", - "xpack.monitoring.alerts.clusterHealth.resolved": "已解决", "xpack.monitoring.alerts.clusterHealth.resolved.internalFullMessage": "已为 {clusterName} 解决集群运行状况告警。", "xpack.monitoring.alerts.clusterHealth.resolved.internalShortMessage": "已为 {clusterName} 解决集群运行状况告警。", "xpack.monitoring.alerts.clusterHealth.ui.firingMessage": "Elasticsearch 集群运行状况为 {health}。", "xpack.monitoring.alerts.clusterHealth.ui.nextSteps.message1": "{message}。#start_linkView now#end_link", "xpack.monitoring.alerts.clusterHealth.ui.resolvedMessage": "Elasticsearch 集群运行状况为绿色。", "xpack.monitoring.alerts.clusterHealth.yellowMessage": "分配缺失的副本分片", - "xpack.monitoring.alerts.cpuUsage.actionVariables.action": "此告警的建议操作。", - "xpack.monitoring.alerts.cpuUsage.actionVariables.actionPlain": "此告警的建议操作,无任何 Markdown。", - "xpack.monitoring.alerts.cpuUsage.actionVariables.clusterName": "节点所属的集群。", "xpack.monitoring.alerts.cpuUsage.actionVariables.count": "报告高 CPU 使用率的节点数目。", - "xpack.monitoring.alerts.cpuUsage.actionVariables.internalFullMessage": "Elastic 生成的完整内部消息。", - "xpack.monitoring.alerts.cpuUsage.actionVariables.internalShortMessage": "Elastic 生成的简短内部消息。", "xpack.monitoring.alerts.cpuUsage.actionVariables.nodes": "报告高 CPU 使用率的节点列表。", - "xpack.monitoring.alerts.cpuUsage.actionVariables.state": "告警的当前状态。", - "xpack.monitoring.alerts.cpuUsage.firing": "触发", "xpack.monitoring.alerts.cpuUsage.firing.internalFullMessage": "为集群 {clusterName} 中 {count} 个节点触发了 CPU 使用率告警。{action}", "xpack.monitoring.alerts.cpuUsage.firing.internalShortMessage": "为集群 {clusterName} 中 {count} 个节点触发了 CPU 使用率告警。{shortActionText}", "xpack.monitoring.alerts.cpuUsage.fullAction": "查看节点", "xpack.monitoring.alerts.cpuUsage.label": "CPU 使用率", "xpack.monitoring.alerts.cpuUsage.paramDetails.duration.label": "查看以下范围的平均值:", "xpack.monitoring.alerts.cpuUsage.paramDetails.threshold.label": "CPU 超过以下值时通知:", - "xpack.monitoring.alerts.cpuUsage.resolved": "已解决", "xpack.monitoring.alerts.cpuUsage.resolved.internalFullMessage": "已为集群 {clusterName} 中的 {count} 个节点解决 CPU 使用率告警。", "xpack.monitoring.alerts.cpuUsage.resolved.internalShortMessage": "已为集群 {clusterName} 中的 {count} 个节点解决 CPU 使用率告警。", "xpack.monitoring.alerts.cpuUsage.shortAction": "跨受影响节点验证 CPU 级别。", @@ -12287,21 +12271,13 @@ "xpack.monitoring.alerts.cpuUsage.ui.nextSteps.hotThreads": "#start_link检查热线程#end_link", "xpack.monitoring.alerts.cpuUsage.ui.nextSteps.runningTasks": "#start_link检查长时间运行的任务#end_link", "xpack.monitoring.alerts.cpuUsage.ui.resolvedMessage": "节点 {nodeName} 上的 cpu 使用率现在低于阈值,当前报告截止到 #resolved 为 {cpuUsage}%", - "xpack.monitoring.alerts.cpuUsage.validation.duration": "必须指定有效的持续时间。", - "xpack.monitoring.alerts.cpuUsage.validation.threshold": "必须指定有效数字。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.action": "此告警的建议操作。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.actionPlain": "此告警的建议操作,无任何 Markdown。", + "xpack.monitoring.alerts.validation.duration": "必须指定有效的持续时间。", + "xpack.monitoring.alerts.validation.threshold": "必须指定有效数字。", "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.clusterHealth": "在此集群中运行的 Elasticsearch 版本。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.clusterName": "节点所属的集群。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.internalFullMessage": "Elastic 生成的完整内部消息。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.internalShortMessage": "Elastic 生成的简短内部消息。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.actionVariables.state": "告警的当前状态。", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.firing": "触发", "xpack.monitoring.alerts.elasticsearchVersionMismatch.firing.internalFullMessage": "为 {clusterName} 触发了 Elasticsearch 版本不匹配告警。Elasticsearch 正在运行 {versions}。{action}", "xpack.monitoring.alerts.elasticsearchVersionMismatch.firing.internalShortMessage": "为 {clusterName} 触发了 Elasticsearch 版本不匹配告警。{shortActionText}", "xpack.monitoring.alerts.elasticsearchVersionMismatch.fullAction": "查看节点", "xpack.monitoring.alerts.elasticsearchVersionMismatch.label": "Elasticsearch 版本不匹配", - "xpack.monitoring.alerts.elasticsearchVersionMismatch.resolved": "已解决", "xpack.monitoring.alerts.elasticsearchVersionMismatch.resolved.internalFullMessage": "为 {clusterName} 解决了 Elasticsearch 版本不匹配告警。", "xpack.monitoring.alerts.elasticsearchVersionMismatch.resolved.internalShortMessage": "为 {clusterName} 解决了 Elasticsearch 版本不匹配告警。", "xpack.monitoring.alerts.elasticsearchVersionMismatch.shortAction": "确认所有节点具有相同的版本。", @@ -12311,19 +12287,12 @@ "xpack.monitoring.alerts.flyoutExpressions.timeUnits.hourLabel": "{timeValue, plural, one {小时} other {小时}}", "xpack.monitoring.alerts.flyoutExpressions.timeUnits.minuteLabel": "{timeValue, plural, one {分钟} other {分钟}}", "xpack.monitoring.alerts.flyoutExpressions.timeUnits.secondLabel": "{timeValue, plural, one {秒} other {秒}}", - "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.action": "此告警的建议操作。", - "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.actionPlain": "此告警的建议操作,无任何 Markdown。", "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.clusterHealth": "此集群中运行的 Kibana 版本。", "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.clusterName": "实例所属的集群。", - "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.internalFullMessage": "Elastic 生成的完整内部消息。", - "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.internalShortMessage": "Elastic 生成的简短内部消息。", - "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.state": "告警的当前状态。", - "xpack.monitoring.alerts.kibanaVersionMismatch.firing": "触发", "xpack.monitoring.alerts.kibanaVersionMismatch.firing.internalFullMessage": "为 {clusterName} 触发了 Kibana 版本不匹配告警。Kibana 正在运行 {versions}。{action}", "xpack.monitoring.alerts.kibanaVersionMismatch.firing.internalShortMessage": "为 {clusterName} 触发了 Kibana 版本不匹配告警。{shortActionText}", "xpack.monitoring.alerts.kibanaVersionMismatch.fullAction": "查看实例", "xpack.monitoring.alerts.kibanaVersionMismatch.label": "Kibana 版本不匹配", - "xpack.monitoring.alerts.kibanaVersionMismatch.resolved": "已解决", "xpack.monitoring.alerts.kibanaVersionMismatch.resolved.internalFullMessage": "为 {clusterName} 解决了 Kibana 版本不匹配告警。", "xpack.monitoring.alerts.kibanaVersionMismatch.resolved.internalShortMessage": "为 {clusterName} 解决了 Kibana 版本不匹配告警。", "xpack.monitoring.alerts.kibanaVersionMismatch.shortAction": "确认所有实例具有相同的版本。", @@ -12331,56 +12300,33 @@ "xpack.monitoring.alerts.kibanaVersionMismatch.ui.resolvedMessage": "在此集群中所有 Kibana 版本都相同。", "xpack.monitoring.alerts.legacyAlert.expressionText": "没有可配置的内容。", "xpack.monitoring.alerts.licenseExpiration.action": "请更新您的许可证。", - "xpack.monitoring.alerts.licenseExpiration.actionVariables.action": "此告警的建议操作。", - "xpack.monitoring.alerts.licenseExpiration.actionVariables.actionPlain": "此告警的建议操作,无任何 Markdown。", "xpack.monitoring.alerts.licenseExpiration.actionVariables.clusterName": "许可证所属的集群。", "xpack.monitoring.alerts.licenseExpiration.actionVariables.expiredDate": "许可证过期日期。", - "xpack.monitoring.alerts.licenseExpiration.actionVariables.internalFullMessage": "Elastic 生成的完整内部消息。", - "xpack.monitoring.alerts.licenseExpiration.actionVariables.internalShortMessage": "Elastic 生成的简短内部消息。", - "xpack.monitoring.alerts.licenseExpiration.actionVariables.state": "告警的当前状态。", - "xpack.monitoring.alerts.licenseExpiration.firing": "触发", "xpack.monitoring.alerts.licenseExpiration.firing.internalFullMessage": "为 {clusterName} 触发了许可证到期告警。您的许可证将于 {expiredDate}到期。{action}", "xpack.monitoring.alerts.licenseExpiration.firing.internalShortMessage": "为 {clusterName} 触发了许可证到期告警。您的许可证将于 {expiredDate}到期。{actionText}", "xpack.monitoring.alerts.licenseExpiration.label": "许可证到期", - "xpack.monitoring.alerts.licenseExpiration.resolved": "已解决", "xpack.monitoring.alerts.licenseExpiration.resolved.internalFullMessage": "为 {clusterName} 解决了许可证到期告警。", "xpack.monitoring.alerts.licenseExpiration.resolved.internalShortMessage": "为 {clusterName} 解决了许可证到期告警。", "xpack.monitoring.alerts.licenseExpiration.ui.firingMessage": "此集群的许可证将于 #relative后,即 #absolute到期。 #start_link请更新您的许可证。#end_link", "xpack.monitoring.alerts.licenseExpiration.ui.resolvedMessage": "此集群的许可证处于活动状态。", - "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.action": "此告警的建议操作。", - "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.actionPlain": "此告警的建议操作,无任何 Markdown。", "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.clusterHealth": "此集群中运行的 Logstash 版本。", - "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.clusterName": "节点所属的集群。", - "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.internalFullMessage": "Elastic 生成的完整内部消息。", - "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.internalShortMessage": "Elastic 生成的简短内部消息。", - "xpack.monitoring.alerts.logstashVersionMismatch.actionVariables.state": "告警的当前状态。", - "xpack.monitoring.alerts.logstashVersionMismatch.firing": "触发", "xpack.monitoring.alerts.logstashVersionMismatch.firing.internalFullMessage": "为 {clusterName} 触发了 Logstash 版本不匹配告警。Logstash 正在运行 {versions}。{action}", "xpack.monitoring.alerts.logstashVersionMismatch.firing.internalShortMessage": "为 {clusterName} 触发了 Logstash 版本不匹配告警。{shortActionText}", "xpack.monitoring.alerts.logstashVersionMismatch.fullAction": "查看节点", "xpack.monitoring.alerts.logstashVersionMismatch.label": "Logstash 版本不匹配", - "xpack.monitoring.alerts.logstashVersionMismatch.resolved": "已解决", "xpack.monitoring.alerts.logstashVersionMismatch.resolved.internalFullMessage": "为 {clusterName} 解决了 Logstash 版本不匹配告警。", "xpack.monitoring.alerts.logstashVersionMismatch.resolved.internalShortMessage": "为 {clusterName} 解决了 Logstash 版本不匹配告警。", "xpack.monitoring.alerts.logstashVersionMismatch.shortAction": "确认所有节点具有相同的版本。", "xpack.monitoring.alerts.logstashVersionMismatch.ui.firingMessage": "在此集群中运行着多个 Logstash ({versions}) 版本。", "xpack.monitoring.alerts.logstashVersionMismatch.ui.resolvedMessage": "在此集群中所有 Logstash 版本都相同。", "xpack.monitoring.alerts.migrate.manageAction.requiredFieldError": "{field} 是必填字段。", - "xpack.monitoring.alerts.nodesChanged.actionVariables.action": "此告警的建议操作。", - "xpack.monitoring.alerts.nodesChanged.actionVariables.actionPlain": "此告警的建议操作,无任何 Markdown。", "xpack.monitoring.alerts.nodesChanged.actionVariables.added": "添加到集群的节点列表。", - "xpack.monitoring.alerts.nodesChanged.actionVariables.clusterName": "节点所属的集群。", - "xpack.monitoring.alerts.nodesChanged.actionVariables.internalFullMessage": "Elastic 生成的完整内部消息。", - "xpack.monitoring.alerts.nodesChanged.actionVariables.internalShortMessage": "Elastic 生成的简短内部消息。", "xpack.monitoring.alerts.nodesChanged.actionVariables.removed": "从集群中移除的节点列表。", "xpack.monitoring.alerts.nodesChanged.actionVariables.restarted": "在集群中重新启动的节点列表。", - "xpack.monitoring.alerts.nodesChanged.actionVariables.state": "告警的当前状态。", - "xpack.monitoring.alerts.nodesChanged.firing": "触发", "xpack.monitoring.alerts.nodesChanged.firing.internalFullMessage": "为 {clusterName} 触发了节点已更改告警。以下 Elasticsearch 节点已添加:{added},以下已移除:{removed},以下已重新启动:{restarted}。{action}", "xpack.monitoring.alerts.nodesChanged.firing.internalShortMessage": "为 {clusterName} 触发了节点已更改告警。{shortActionText}", "xpack.monitoring.alerts.nodesChanged.fullAction": "查看节点", "xpack.monitoring.alerts.nodesChanged.label": "已更改节点", - "xpack.monitoring.alerts.nodesChanged.resolved": "已解决", "xpack.monitoring.alerts.nodesChanged.resolved.internalFullMessage": "已为 {clusterName} 解决 Elasticsearch 节点已更改告警。", "xpack.monitoring.alerts.nodesChanged.resolved.internalShortMessage": "已为 {clusterName} 解决 Elasticsearch 节点已更改告警。", "xpack.monitoring.alerts.nodesChanged.shortAction": "确认您已添加、移除或重新启动节点。", From f43c89f3390cfeb812f360d18810b88257fd42e4 Mon Sep 17 00:00:00 2001 From: Jason Stoltzfus Date: Wed, 30 Sep 2020 12:39:59 -0400 Subject: [PATCH 030/142] [Enterprise Search][App Search] Credentials Logic updates (#78644) --- .../credentials/credentials_logic.test.ts | 1662 ++++++++--------- .../credentials/credentials_logic.ts | 36 +- .../components/credentials/types.ts | 5 + 3 files changed, 841 insertions(+), 862 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.test.ts index c5cb8a2c61759..56fc825493b80 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.test.ts @@ -27,7 +27,7 @@ describe('CredentialsLogic', () => { write: true, access_all_engines: true, }, - activeApiTokenIsExisting: false, + activeApiTokenExists: false, activeApiTokenRawName: '', apiTokens: [], dataLoading: true, @@ -37,7 +37,7 @@ describe('CredentialsLogic', () => { isCredentialsDetailsComplete: false, meta: {}, nameInputBlurred: false, - showCredentialsForm: false, + shouldShowCredentialsForm: false, }; const mount = (defaults?: object) => { @@ -85,710 +85,499 @@ describe('CredentialsLogic', () => { expect(CredentialsLogic.values).toEqual(DEFAULT_VALUES); }); - describe('addEngineName', () => { - const values = { - ...DEFAULT_VALUES, - activeApiToken: expect.any(Object), - }; - - describe('activeApiToken', () => { - it("should add an engine to the active api token's engine list", () => { - mount({ - activeApiToken: { - ...newToken, - engines: ['someEngine'], - }, - }); - - CredentialsLogic.actions.addEngineName('newEngine'); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: { ...newToken, engines: ['someEngine', 'newEngine'] }, - }); - }); - - it("should create a new engines list if one doesn't exist", () => { - mount({ - activeApiToken: { - ...newToken, - engines: undefined, - }, - }); - - CredentialsLogic.actions.addEngineName('newEngine'); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: { ...newToken, engines: ['newEngine'] }, - }); - }); - }); - }); - - describe('removeEngineName', () => { - describe('activeApiToken', () => { + describe('actions', () => { + describe('addEngineName', () => { const values = { ...DEFAULT_VALUES, activeApiToken: expect.any(Object), + activeApiTokenExists: expect.any(Boolean), }; - it("should remove an engine from the active api token's engine list", () => { - mount({ - activeApiToken: { - ...newToken, - engines: ['someEngine', 'anotherEngine'], - }, - }); - - CredentialsLogic.actions.removeEngineName('someEngine'); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: { ...newToken, engines: ['anotherEngine'] }, - }); - }); + describe('activeApiToken', () => { + it("should add an engine to the active api token's engine list", () => { + mount({ + activeApiToken: { + ...newToken, + engines: ['someEngine'], + }, + }); - it('will not remove the engine if it is not found', () => { - mount({ - activeApiToken: { - ...newToken, - engines: ['someEngine', 'anotherEngine'], - }, + CredentialsLogic.actions.addEngineName('newEngine'); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { ...newToken, engines: ['someEngine', 'newEngine'] }, + }); }); - CredentialsLogic.actions.removeEngineName('notfound'); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: { ...newToken, engines: ['someEngine', 'anotherEngine'] }, - }); - }); + it("should create a new engines list if one doesn't exist", () => { + mount({ + activeApiToken: { + ...newToken, + engines: undefined, + }, + }); - it('does not throw a type error if no engines are stored in state', () => { - mount({ - activeApiToken: {}, - }); - CredentialsLogic.actions.removeEngineName(''); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: { engines: [] }, + CredentialsLogic.actions.addEngineName('newEngine'); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { ...newToken, engines: ['newEngine'] }, + }); }); }); }); - }); - - describe('setAccessAllEngines', () => { - const values = { - ...DEFAULT_VALUES, - activeApiToken: expect.any(Object), - }; - - describe('activeApiToken', () => { - it('should set the value of access_all_engines and clear out engines list if true', () => { - mount({ - activeApiToken: { - ...newToken, - access_all_engines: false, - engines: ['someEngine', 'anotherEngine'], - }, - }); - - CredentialsLogic.actions.setAccessAllEngines(true); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: { ...newToken, engines: [], access_all_engines: true }, - }); - }); - - it('should set the value of access_all_engines and but maintain engines list if false', () => { - mount({ - activeApiToken: { - ...newToken, - access_all_engines: true, - engines: ['someEngine', 'anotherEngine'], - }, - }); - CredentialsLogic.actions.setAccessAllEngines(false); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: { - ...newToken, - access_all_engines: false, - engines: ['someEngine', 'anotherEngine'], - }, - }); - }); - }); - }); + describe('removeEngineName', () => { + describe('activeApiToken', () => { + const values = { + ...DEFAULT_VALUES, + activeApiToken: expect.any(Object), + activeApiTokenExists: expect.any(Boolean), + }; - describe('onApiKeyDelete', () => { - const values = { - ...DEFAULT_VALUES, - apiTokens: expect.any(Array), - }; + it("should remove an engine from the active api token's engine list", () => { + mount({ + activeApiToken: { + ...newToken, + engines: ['someEngine', 'anotherEngine'], + }, + }); - describe('apiTokens', () => { - it('should remove specified token from apiTokens if name matches', () => { - mount({ - apiTokens: [newToken], + CredentialsLogic.actions.removeEngineName('someEngine'); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { ...newToken, engines: ['anotherEngine'] }, + }); }); - CredentialsLogic.actions.onApiKeyDelete(newToken.name); - expect(CredentialsLogic.values).toEqual({ - ...values, - apiTokens: [], - }); - }); + it('will not remove the engine if it is not found', () => { + mount({ + activeApiToken: { + ...newToken, + engines: ['someEngine', 'anotherEngine'], + }, + }); - it('should not remove specified token from apiTokens if name does not match', () => { - mount({ - apiTokens: [newToken], + CredentialsLogic.actions.removeEngineName('notfound'); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { ...newToken, engines: ['someEngine', 'anotherEngine'] }, + }); }); - CredentialsLogic.actions.onApiKeyDelete('foo'); - expect(CredentialsLogic.values).toEqual({ - ...values, - apiTokens: [newToken], + it('does not throw a type error if no engines are stored in state', () => { + mount({ + activeApiToken: {}, + }); + CredentialsLogic.actions.removeEngineName(''); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { engines: [] }, + }); }); }); }); - }); - describe('onApiTokenCreateSuccess', () => { - const values = { - ...DEFAULT_VALUES, - apiTokens: expect.any(Array), - activeApiToken: expect.any(Object), - activeApiTokenRawName: expect.any(String), - showCredentialsForm: expect.any(Boolean), - formErrors: expect.any(Array), - }; - - describe('apiTokens', () => { - const existingToken = { - name: 'some_token', - type: PRIVATE, + describe('setAccessAllEngines', () => { + const values = { + ...DEFAULT_VALUES, + activeApiToken: expect.any(Object), + activeApiTokenExists: expect.any(Boolean), }; - it('should add the provided token to the apiTokens list', () => { - mount({ - apiTokens: [existingToken], - }); - - CredentialsLogic.actions.onApiTokenCreateSuccess(newToken); - expect(CredentialsLogic.values).toEqual({ - ...values, - apiTokens: [existingToken, newToken], - }); - }); - }); - - describe('activeApiToken', () => { - // TODO It is weird that methods like this update activeApiToken but not activeApiTokenIsExisting... - it('should reset to the default value, which effectively clears out the current form', () => { - mount({ - activeApiToken: newToken, - }); + describe('activeApiToken', () => { + it('should set the value of access_all_engines and clear out engines list if true', () => { + mount({ + activeApiToken: { + ...newToken, + access_all_engines: false, + engines: ['someEngine', 'anotherEngine'], + }, + }); - CredentialsLogic.actions.onApiTokenCreateSuccess(newToken); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: DEFAULT_VALUES.activeApiToken, + CredentialsLogic.actions.setAccessAllEngines(true); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { ...newToken, engines: [], access_all_engines: true }, + }); }); - }); - }); - describe('activeApiTokenRawName', () => { - it('should reset to the default value, which effectively clears out the current form', () => { - mount({ - activeApiTokenRawName: 'foo', - }); + it('should set the value of access_all_engines and but maintain engines list if false', () => { + mount({ + activeApiToken: { + ...newToken, + access_all_engines: true, + engines: ['someEngine', 'anotherEngine'], + }, + }); - CredentialsLogic.actions.onApiTokenCreateSuccess(newToken); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiTokenRawName: DEFAULT_VALUES.activeApiTokenRawName, + CredentialsLogic.actions.setAccessAllEngines(false); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { + ...newToken, + access_all_engines: false, + engines: ['someEngine', 'anotherEngine'], + }, + }); }); }); }); - describe('showCredentialsForm', () => { - it('should reset to the default value, which closes the credentials form', () => { - mount({ - showCredentialsForm: true, - }); - - CredentialsLogic.actions.onApiTokenCreateSuccess(newToken); - expect(CredentialsLogic.values).toEqual({ - ...values, - showCredentialsForm: false, - }); - }); - }); + describe('onApiKeyDelete', () => { + const values = { + ...DEFAULT_VALUES, + apiTokens: expect.any(Array), + }; - describe('formErrors', () => { - it('should reset `formErrors`', () => { - mount({ - formErrors: ['I am an error'], - }); + describe('apiTokens', () => { + it('should remove specified token from apiTokens if name matches', () => { + mount({ + apiTokens: [newToken], + }); - CredentialsLogic.actions.onApiTokenCreateSuccess(newToken); - expect(CredentialsLogic.values).toEqual({ - ...values, - formErrors: [], + CredentialsLogic.actions.onApiKeyDelete(newToken.name); + expect(CredentialsLogic.values).toEqual({ + ...values, + apiTokens: [], + }); }); - }); - }); - }); - - describe('onApiTokenError', () => { - const values = { - ...DEFAULT_VALUES, - formErrors: expect.any(Array), - }; - describe('formErrors', () => { - it('should set `formErrors`', () => { - mount({ - formErrors: ['I am an error'], - }); + it('should not remove specified token from apiTokens if name does not match', () => { + mount({ + apiTokens: [newToken], + }); - CredentialsLogic.actions.onApiTokenError(['I am the NEW error']); - expect(CredentialsLogic.values).toEqual({ - ...values, - formErrors: ['I am the NEW error'], + CredentialsLogic.actions.onApiKeyDelete('foo'); + expect(CredentialsLogic.values).toEqual({ + ...values, + apiTokens: [newToken], + }); }); }); }); - }); - describe('onApiTokenUpdateSuccess', () => { - const values = { - ...DEFAULT_VALUES, - apiTokens: expect.any(Array), - activeApiToken: expect.any(Object), - activeApiTokenRawName: expect.any(String), - showCredentialsForm: expect.any(Boolean), - }; - - describe('apiTokens', () => { - const existingToken = { - name: 'some_token', - type: PRIVATE, + describe('onApiTokenCreateSuccess', () => { + const values = { + ...DEFAULT_VALUES, + activeApiTokenExists: expect.any(Boolean), + apiTokens: expect.any(Array), + activeApiToken: expect.any(Object), + activeApiTokenRawName: expect.any(String), + shouldShowCredentialsForm: expect.any(Boolean), + formErrors: expect.any(Array), }; - it('should replace the existing token with the new token by name', () => { - mount({ - apiTokens: [newToken, existingToken], - }); - const updatedExistingToken = { - ...existingToken, - type: ADMIN, - }; - - CredentialsLogic.actions.onApiTokenUpdateSuccess(updatedExistingToken); - expect(CredentialsLogic.values).toEqual({ - ...values, - apiTokens: [newToken, updatedExistingToken], - }); - }); - - // TODO Not sure if this is a good behavior or not - it('if for some reason the existing token is not found, it adds a new token...', () => { - mount({ - apiTokens: [newToken, existingToken], - }); - const brandNewToken = { - name: 'brand new token', - type: ADMIN, + describe('apiTokens', () => { + const existingToken = { + name: 'some_token', + type: PRIVATE, }; - CredentialsLogic.actions.onApiTokenUpdateSuccess(brandNewToken); - expect(CredentialsLogic.values).toEqual({ - ...values, - apiTokens: [newToken, existingToken, brandNewToken], - }); - }); - }); - - describe('activeApiToken', () => { - it('should reset to the default value, which effectively clears out the current form', () => { - mount({ - activeApiToken: newToken, - }); - - CredentialsLogic.actions.onApiTokenUpdateSuccess({ ...newToken, type: ADMIN }); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: DEFAULT_VALUES.activeApiToken, - }); - }); - }); - - describe('activeApiTokenRawName', () => { - it('should reset to the default value, which effectively clears out the current form', () => { - mount({ - activeApiTokenRawName: 'foo', - }); + it('should add the provided token to the apiTokens list', () => { + mount({ + apiTokens: [existingToken], + }); - CredentialsLogic.actions.onApiTokenUpdateSuccess({ ...newToken, type: ADMIN }); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiTokenRawName: DEFAULT_VALUES.activeApiTokenRawName, + CredentialsLogic.actions.onApiTokenCreateSuccess(newToken); + expect(CredentialsLogic.values).toEqual({ + ...values, + apiTokens: [existingToken, newToken], + }); }); }); - }); - describe('showCredentialsForm', () => { - it('should reset to the default value, which closes the credentials form', () => { - mount({ - showCredentialsForm: true, - }); + describe('activeApiToken', () => { + it('should reset to the default value, which effectively clears out the current form', () => { + mount({ + activeApiToken: newToken, + }); - CredentialsLogic.actions.onApiTokenUpdateSuccess({ ...newToken, type: ADMIN }); - expect(CredentialsLogic.values).toEqual({ - ...values, - showCredentialsForm: false, + CredentialsLogic.actions.onApiTokenCreateSuccess(newToken); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: DEFAULT_VALUES.activeApiToken, + }); }); }); - }); - }); - describe('setCredentialsData', () => { - const meta = { - page: { - current: 1, - size: 1, - total_pages: 1, - total_results: 1, - }, - }; - - const values = { - ...DEFAULT_VALUES, - apiTokens: expect.any(Array), - meta: expect.any(Object), - isCredentialsDataComplete: expect.any(Boolean), - }; - - describe('apiTokens', () => { - it('should be set', () => { - mount(); + describe('activeApiTokenRawName', () => { + it('should reset to the default value, which effectively clears out the current form', () => { + mount({ + activeApiTokenRawName: 'foo', + }); - CredentialsLogic.actions.setCredentialsData(meta, [newToken, newToken]); - expect(CredentialsLogic.values).toEqual({ - ...values, - apiTokens: [newToken, newToken], + CredentialsLogic.actions.onApiTokenCreateSuccess(newToken); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiTokenRawName: DEFAULT_VALUES.activeApiTokenRawName, + }); }); }); - }); - describe('meta', () => { - it('should be set', () => { - mount(); + describe('shouldShowCredentialsForm', () => { + it('should reset to the default value, which closes the credentials form', () => { + mount({ + shouldShowCredentialsForm: true, + }); - CredentialsLogic.actions.setCredentialsData(meta, [newToken, newToken]); - expect(CredentialsLogic.values).toEqual({ - ...values, - meta, + CredentialsLogic.actions.onApiTokenCreateSuccess(newToken); + expect(CredentialsLogic.values).toEqual({ + ...values, + shouldShowCredentialsForm: false, + }); }); }); - }); - describe('isCredentialsDataComplete', () => { - it('should be set to true so we know that data fetching has completed', () => { - mount({ - isCredentialsDataComplete: false, - }); + describe('formErrors', () => { + it('should reset `formErrors`', () => { + mount({ + formErrors: ['I am an error'], + }); - CredentialsLogic.actions.setCredentialsData(meta, [newToken, newToken]); - expect(CredentialsLogic.values).toEqual({ - ...values, - isCredentialsDataComplete: true, + CredentialsLogic.actions.onApiTokenCreateSuccess(newToken); + expect(CredentialsLogic.values).toEqual({ + ...values, + formErrors: [], + }); }); }); }); - }); - describe('setCredentialsDetails', () => { - const values = { - ...DEFAULT_VALUES, - engines: expect.any(Array), - isCredentialsDetailsComplete: expect.any(Boolean), - }; + describe('onApiTokenError', () => { + const values = { + ...DEFAULT_VALUES, + formErrors: expect.any(Array), + }; - describe('isCredentialsDataComplete', () => { - it('should be set to true so that we know data fetching has been completed', () => { - mount({ - isCredentialsDetailsComplete: false, - }); + describe('formErrors', () => { + it('should set `formErrors`', () => { + mount({ + formErrors: ['I am an error'], + }); - CredentialsLogic.actions.setCredentialsDetails(credentialsDetails); - expect(CredentialsLogic.values).toEqual({ - ...values, - isCredentialsDetailsComplete: true, + CredentialsLogic.actions.onApiTokenError(['I am the NEW error']); + expect(CredentialsLogic.values).toEqual({ + ...values, + formErrors: ['I am the NEW error'], + }); }); }); }); - describe('engines', () => { - it('should set `engines` from the provided details object', () => { - mount({ - engines: [], - }); - - CredentialsLogic.actions.setCredentialsDetails(credentialsDetails); - expect(CredentialsLogic.values).toEqual({ - ...values, - engines: credentialsDetails.engines, - }); - }); - }); - }); + describe('onApiTokenUpdateSuccess', () => { + const values = { + ...DEFAULT_VALUES, + apiTokens: expect.any(Array), + activeApiToken: expect.any(Object), + activeApiTokenRawName: expect.any(String), + shouldShowCredentialsForm: expect.any(Boolean), + }; - describe('setNameInputBlurred', () => { - const values = { - ...DEFAULT_VALUES, - nameInputBlurred: expect.any(Boolean), - }; + describe('apiTokens', () => { + const existingToken = { + name: 'some_token', + type: PRIVATE, + }; - describe('nameInputBlurred', () => { - it('should set this value', () => { - mount({ - nameInputBlurred: false, - }); + it('should replace the existing token with the new token by name', () => { + mount({ + apiTokens: [newToken, existingToken], + }); + const updatedExistingToken = { + ...existingToken, + type: ADMIN, + }; - CredentialsLogic.actions.setNameInputBlurred(true); - expect(CredentialsLogic.values).toEqual({ - ...values, - nameInputBlurred: true, + CredentialsLogic.actions.onApiTokenUpdateSuccess(updatedExistingToken); + expect(CredentialsLogic.values).toEqual({ + ...values, + apiTokens: [newToken, updatedExistingToken], + }); }); - }); - }); - }); - - describe('setTokenReadWrite', () => { - const values = { - ...DEFAULT_VALUES, - activeApiToken: expect.any(Object), - }; - describe('activeApiToken', () => { - it('should set "read" or "write" values', () => { - mount({ - activeApiToken: { - ...newToken, - read: false, - }, - }); + // TODO Not sure if this is a good behavior or not + it('if for some reason the existing token is not found, it adds a new token...', () => { + mount({ + apiTokens: [newToken, existingToken], + }); + const brandNewToken = { + name: 'brand new token', + type: ADMIN, + }; - CredentialsLogic.actions.setTokenReadWrite({ name: 'read', checked: true }); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: { - ...newToken, - read: true, - }, + CredentialsLogic.actions.onApiTokenUpdateSuccess(brandNewToken); + expect(CredentialsLogic.values).toEqual({ + ...values, + apiTokens: [newToken, existingToken, brandNewToken], + }); }); }); - }); - }); - - describe('setTokenName', () => { - const values = { - ...DEFAULT_VALUES, - activeApiToken: expect.any(Object), - activeApiTokenRawName: expect.any(String), - }; - describe('activeApiToken', () => { - it('update the name property on the activeApiToken, formatted correctly', () => { - mount({ - activeApiToken: { - ...newToken, - name: 'bar', - }, - }); + describe('activeApiToken', () => { + it('should reset to the default value, which effectively clears out the current form', () => { + mount({ + activeApiToken: newToken, + }); - CredentialsLogic.actions.setTokenName('New Name'); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: { ...newToken, name: 'new-name' }, + CredentialsLogic.actions.onApiTokenUpdateSuccess({ ...newToken, type: ADMIN }); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: DEFAULT_VALUES.activeApiToken, + }); }); }); - }); - describe('activeApiTokenRawName', () => { - it('updates the raw name, with no formatting applied', () => { - mount(); + describe('activeApiTokenRawName', () => { + it('should reset to the default value, which effectively clears out the current form', () => { + mount({ + activeApiTokenRawName: 'foo', + }); - CredentialsLogic.actions.setTokenName('New Name'); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiTokenRawName: 'New Name', + CredentialsLogic.actions.onApiTokenUpdateSuccess({ ...newToken, type: ADMIN }); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiTokenRawName: DEFAULT_VALUES.activeApiTokenRawName, + }); }); }); - }); - }); - describe('setTokenType', () => { - const values = { - ...DEFAULT_VALUES, - activeApiToken: { - ...newToken, - type: expect.any(String), - read: expect.any(Boolean), - write: expect.any(Boolean), - access_all_engines: expect.any(Boolean), - engines: expect.any(Array), - }, - }; - - describe('activeApiToken.access_all_engines', () => { - describe('when value is ADMIN', () => { - it('updates access_all_engines to false', () => { + describe('shouldShowCredentialsForm', () => { + it('should reset to the default value, which closes the credentials form', () => { mount({ - activeApiToken: { - ...newToken, - access_all_engines: true, - }, + shouldShowCredentialsForm: true, }); - CredentialsLogic.actions.setTokenType(ADMIN); + CredentialsLogic.actions.onApiTokenUpdateSuccess({ ...newToken, type: ADMIN }); expect(CredentialsLogic.values).toEqual({ ...values, - activeApiToken: { - ...values.activeApiToken, - access_all_engines: false, - }, + shouldShowCredentialsForm: false, }); }); }); + }); - describe('when value is not ADMIN', () => { - it('will maintain access_all_engines value when true', () => { - mount({ - activeApiToken: { - ...newToken, - access_all_engines: true, - }, - }); + describe('setCredentialsData', () => { + const meta = { + page: { + current: 1, + size: 1, + total_pages: 1, + total_results: 1, + }, + }; - CredentialsLogic.actions.setTokenType(PRIVATE); + const values = { + ...DEFAULT_VALUES, + apiTokens: expect.any(Array), + meta: expect.any(Object), + isCredentialsDataComplete: expect.any(Boolean), + }; + + describe('apiTokens', () => { + it('should be set', () => { + mount(); + + CredentialsLogic.actions.setCredentialsData(meta, [newToken, newToken]); expect(CredentialsLogic.values).toEqual({ ...values, - activeApiToken: { - ...values.activeApiToken, - access_all_engines: true, - }, + apiTokens: [newToken, newToken], }); }); + }); - it('will maintain access_all_engines value when false', () => { - mount({ - activeApiToken: { - ...newToken, - access_all_engines: false, - }, - }); + describe('meta', () => { + it('should be set', () => { + mount(); - CredentialsLogic.actions.setTokenType(PRIVATE); + CredentialsLogic.actions.setCredentialsData(meta, [newToken, newToken]); expect(CredentialsLogic.values).toEqual({ ...values, - activeApiToken: { - ...values.activeApiToken, - access_all_engines: false, - }, + meta, }); }); }); - }); - describe('activeApiToken.engines', () => { - describe('when value is ADMIN', () => { - it('clears the array', () => { + describe('isCredentialsDataComplete', () => { + it('should be set to true so we know that data fetching has completed', () => { mount({ - activeApiToken: { - ...newToken, - engines: [{}, {}], - }, + isCredentialsDataComplete: false, }); - CredentialsLogic.actions.setTokenType(ADMIN); + CredentialsLogic.actions.setCredentialsData(meta, [newToken, newToken]); expect(CredentialsLogic.values).toEqual({ ...values, - activeApiToken: { - ...values.activeApiToken, - engines: [], - }, + isCredentialsDataComplete: true, }); }); }); + }); + + describe('setCredentialsDetails', () => { + const values = { + ...DEFAULT_VALUES, + engines: expect.any(Array), + isCredentialsDetailsComplete: expect.any(Boolean), + }; - describe('when value is not ADMIN', () => { - it('will maintain engines array', () => { + describe('isCredentialsDataComplete', () => { + it('should be set to true so that we know data fetching has been completed', () => { mount({ - activeApiToken: { - ...newToken, - engines: [{}, {}], - }, + isCredentialsDetailsComplete: false, }); - CredentialsLogic.actions.setTokenType(PRIVATE); + CredentialsLogic.actions.setCredentialsDetails(credentialsDetails); expect(CredentialsLogic.values).toEqual({ ...values, - activeApiToken: { - ...values.activeApiToken, - engines: [{}, {}], - }, + isCredentialsDetailsComplete: true, }); }); }); - }); - describe('activeApiToken.write', () => { - describe('when value is PRIVATE', () => { - it('sets this to true', () => { + describe('engines', () => { + it('should set `engines` from the provided details object', () => { mount({ - activeApiToken: { - ...newToken, - write: false, - }, + engines: [], }); - CredentialsLogic.actions.setTokenType(PRIVATE); + CredentialsLogic.actions.setCredentialsDetails(credentialsDetails); expect(CredentialsLogic.values).toEqual({ ...values, - activeApiToken: { - ...values.activeApiToken, - write: true, - }, + engines: credentialsDetails.engines, }); }); }); + }); + + describe('setNameInputBlurred', () => { + const values = { + ...DEFAULT_VALUES, + nameInputBlurred: expect.any(Boolean), + }; - describe('when value is not PRIVATE', () => { - it('sets this to false', () => { + describe('nameInputBlurred', () => { + it('should set this value', () => { mount({ - activeApiToken: { - ...newToken, - write: true, - }, + nameInputBlurred: false, }); - CredentialsLogic.actions.setTokenType(ADMIN); + CredentialsLogic.actions.setNameInputBlurred(true); expect(CredentialsLogic.values).toEqual({ ...values, - activeApiToken: { - ...values.activeApiToken, - write: false, - }, + nameInputBlurred: true, }); }); }); }); - describe('activeApiToken.read', () => { - describe('when value is PRIVATE', () => { - it('sets this to true', () => { + describe('setTokenReadWrite', () => { + const values = { + ...DEFAULT_VALUES, + activeApiToken: expect.any(Object), + activeApiTokenExists: expect.any(Boolean), + }; + + describe('activeApiToken', () => { + it('should set "read" or "write" values', () => { mount({ activeApiToken: { ...newToken, @@ -796,401 +585,594 @@ describe('CredentialsLogic', () => { }, }); - CredentialsLogic.actions.setTokenType(PRIVATE); + CredentialsLogic.actions.setTokenReadWrite({ name: 'read', checked: true }); expect(CredentialsLogic.values).toEqual({ ...values, activeApiToken: { - ...values.activeApiToken, + ...newToken, read: true, }, }); }); }); + }); + + describe('setTokenName', () => { + const values = { + ...DEFAULT_VALUES, + activeApiToken: expect.any(Object), + activeApiTokenRawName: expect.any(String), + activeApiTokenExists: expect.any(Boolean), + }; - describe('when value is not PRIVATE', () => { - it('sets this to false', () => { + describe('activeApiToken', () => { + it('update the name property on the activeApiToken, formatted correctly', () => { mount({ activeApiToken: { ...newToken, - read: true, + name: 'bar', }, }); - CredentialsLogic.actions.setTokenType(ADMIN); + CredentialsLogic.actions.setTokenName('New Name'); expect(CredentialsLogic.values).toEqual({ ...values, - activeApiToken: { - ...values.activeApiToken, - read: false, - }, + activeApiToken: { ...newToken, name: 'new-name' }, }); }); }); - }); - describe('activeApiToken.type', () => { - it('sets the type value', () => { - mount({ - activeApiToken: { - ...newToken, - type: ADMIN, - }, - }); + describe('activeApiTokenRawName', () => { + it('updates the raw name, with no formatting applied', () => { + mount(); - CredentialsLogic.actions.setTokenType(PRIVATE); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: { - ...values.activeApiToken, - type: PRIVATE, - }, + CredentialsLogic.actions.setTokenName('New Name'); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiTokenRawName: 'New Name', + }); }); }); }); - }); - describe('toggleCredentialsForm', () => { - const values = { - ...DEFAULT_VALUES, - activeApiTokenIsExisting: expect.any(Boolean), - activeApiToken: expect.any(Object), - activeApiTokenRawName: expect.any(String), - formErrors: expect.any(Array), - showCredentialsForm: expect.any(Boolean), - }; + describe('setTokenType', () => { + const values = { + ...DEFAULT_VALUES, + activeApiToken: { + ...newToken, + type: expect.any(String), + read: expect.any(Boolean), + write: expect.any(Boolean), + access_all_engines: expect.any(Boolean), + engines: expect.any(Array), + }, + activeApiTokenExists: expect.any(Boolean), + }; - describe('showCredentialsForm', () => { - it('should toggle `showCredentialsForm`', () => { - mount({ - showCredentialsForm: false, + describe('activeApiToken.access_all_engines', () => { + describe('when value is ADMIN', () => { + it('updates access_all_engines to false', () => { + mount({ + activeApiToken: { + ...newToken, + access_all_engines: true, + }, + }); + + CredentialsLogic.actions.setTokenType(ADMIN); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { + ...values.activeApiToken, + access_all_engines: false, + }, + }); + }); }); - CredentialsLogic.actions.toggleCredentialsForm(); - expect(CredentialsLogic.values).toEqual({ - ...values, - showCredentialsForm: true, - }); + describe('when value is not ADMIN', () => { + it('will maintain access_all_engines value when true', () => { + mount({ + activeApiToken: { + ...newToken, + access_all_engines: true, + }, + }); + + CredentialsLogic.actions.setTokenType(PRIVATE); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { + ...values.activeApiToken, + access_all_engines: true, + }, + }); + }); - CredentialsLogic.actions.toggleCredentialsForm(); - expect(CredentialsLogic.values).toEqual({ - ...values, - showCredentialsForm: false, + it('will maintain access_all_engines value when false', () => { + mount({ + activeApiToken: { + ...newToken, + access_all_engines: false, + }, + }); + + CredentialsLogic.actions.setTokenType(PRIVATE); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { + ...values.activeApiToken, + access_all_engines: false, + }, + }); + }); }); }); - }); - describe('formErrors', () => { - it('should reset `formErrors`', () => { - mount({ - formErrors: ['I am an error'], + describe('activeApiToken.engines', () => { + describe('when value is ADMIN', () => { + it('clears the array', () => { + mount({ + activeApiToken: { + ...newToken, + engines: [{}, {}], + }, + }); + + CredentialsLogic.actions.setTokenType(ADMIN); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { + ...values.activeApiToken, + engines: [], + }, + }); + }); }); - CredentialsLogic.actions.toggleCredentialsForm(); - expect(CredentialsLogic.values).toEqual({ - ...values, - formErrors: [], + describe('when value is not ADMIN', () => { + it('will maintain engines array', () => { + mount({ + activeApiToken: { + ...newToken, + engines: [{}, {}], + }, + }); + + CredentialsLogic.actions.setTokenType(PRIVATE); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { + ...values.activeApiToken, + engines: [{}, {}], + }, + }); + }); }); }); - }); - describe('activeApiTokenRawName', () => { - it('should set `activeApiTokenRawName` to the name of the provided token', () => { - mount(); + describe('activeApiToken.write', () => { + describe('when value is PRIVATE', () => { + it('sets this to true', () => { + mount({ + activeApiToken: { + ...newToken, + write: false, + }, + }); + + CredentialsLogic.actions.setTokenType(PRIVATE); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { + ...values.activeApiToken, + write: true, + }, + }); + }); + }); - CredentialsLogic.actions.toggleCredentialsForm(newToken); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiTokenRawName: 'myToken', + describe('when value is not PRIVATE', () => { + it('sets this to false', () => { + mount({ + activeApiToken: { + ...newToken, + write: true, + }, + }); + + CredentialsLogic.actions.setTokenType(ADMIN); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { + ...values.activeApiToken, + write: false, + }, + }); + }); }); }); - it('should set `activeApiTokenRawName` to the default value if no token is provided', () => { - mount(); + describe('activeApiToken.read', () => { + describe('when value is PRIVATE', () => { + it('sets this to true', () => { + mount({ + activeApiToken: { + ...newToken, + read: false, + }, + }); + + CredentialsLogic.actions.setTokenType(PRIVATE); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { + ...values.activeApiToken, + read: true, + }, + }); + }); + }); - CredentialsLogic.actions.toggleCredentialsForm(); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiTokenRawName: DEFAULT_VALUES.activeApiTokenRawName, + describe('when value is not PRIVATE', () => { + it('sets this to false', () => { + mount({ + activeApiToken: { + ...newToken, + read: true, + }, + }); + + CredentialsLogic.actions.setTokenType(ADMIN); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { + ...values.activeApiToken, + read: false, + }, + }); + }); }); }); - // TODO: This fails, is this an issue? Instead of reseting back to the default value, it sets it to the previously - // used value... to be honest, this should probably just be a selector - // it('should set `activeApiTokenRawName` back to the default value if no token is provided', () => { - // mount(); - // CredentialsLogic.actions.toggleCredentialsForm(newToken); - // CredentialsLogic.actions.toggleCredentialsForm(); - // expect(CredentialsLogic.values).toEqual({ - // ...values, - // activeApiTokenRawName: DEFAULT_VALUES.activeApiTokenRawName, - // }); - // }); - }); - - describe('activeApiToken', () => { - it('should set `activeApiToken` to the provided token', () => { - mount(); + describe('activeApiToken.type', () => { + it('sets the type value', () => { + mount({ + activeApiToken: { + ...newToken, + type: ADMIN, + }, + }); - CredentialsLogic.actions.toggleCredentialsForm(newToken); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: newToken, + CredentialsLogic.actions.setTokenType(PRIVATE); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: { + ...values.activeApiToken, + type: PRIVATE, + }, + }); }); }); + }); - it('should set `activeApiToken` to the default value if no token is provided', () => { - mount({ - activeApiToken: newToken, - }); + describe('showCredentialsForm', () => { + const values = { + ...DEFAULT_VALUES, + activeApiTokenExists: expect.any(Boolean), + activeApiToken: expect.any(Object), + activeApiTokenRawName: expect.any(String), + formErrors: expect.any(Array), + shouldShowCredentialsForm: expect.any(Boolean), + }; + + describe('shouldShowCredentialsForm', () => { + it('should toggle `shouldShowCredentialsForm`', () => { + mount({ + shouldShowCredentialsForm: false, + }); - CredentialsLogic.actions.toggleCredentialsForm(); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiToken: DEFAULT_VALUES.activeApiToken, + CredentialsLogic.actions.showCredentialsForm(); + expect(CredentialsLogic.values).toEqual({ + ...values, + shouldShowCredentialsForm: true, + }); }); }); - }); - // TODO: This should probably just be a selector... - describe('activeApiTokenIsExisting', () => { - it('should set `activeApiTokenIsExisting` to true when the provided token has an id', () => { - mount({ - activeApiTokenIsExisting: false, - }); + describe('formErrors', () => { + it('should reset `formErrors`', () => { + mount({ + formErrors: ['I am an error'], + }); - CredentialsLogic.actions.toggleCredentialsForm(newToken); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiTokenIsExisting: true, + CredentialsLogic.actions.showCredentialsForm(); + expect(CredentialsLogic.values).toEqual({ + ...values, + formErrors: [], + }); }); }); - it('should set `activeApiTokenIsExisting` to false when the provided token has no id', () => { - mount({ - activeApiTokenIsExisting: true, + describe('activeApiTokenRawName', () => { + it('should set `activeApiTokenRawName` to the name of the provided token', () => { + mount({ + activeApiTokenRawName: 'Some Name', + }); + + CredentialsLogic.actions.showCredentialsForm(newToken); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiTokenRawName: 'myToken', + }); }); - const { id, ...newTokenWithoutId } = newToken; - CredentialsLogic.actions.toggleCredentialsForm(newTokenWithoutId); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiTokenIsExisting: false, + it('should set `activeApiTokenRawName` to the default value if no token is provided', () => { + mount({ + activeApiTokenRawName: 'Some Name', + }); + + CredentialsLogic.actions.showCredentialsForm(); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiTokenRawName: DEFAULT_VALUES.activeApiTokenRawName, + }); }); }); - it('should set `activeApiTokenIsExisting` to false when no token is provided', () => { - mount({ - activeApiTokenIsExisting: true, + describe('activeApiToken', () => { + it('should set `activeApiToken` to the provided token', () => { + mount(); + + CredentialsLogic.actions.showCredentialsForm(newToken); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: newToken, + }); }); - CredentialsLogic.actions.toggleCredentialsForm(); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiTokenIsExisting: false, + it('should set `activeApiToken` to the default value if no token is provided', () => { + mount({ + activeApiToken: newToken, + }); + + CredentialsLogic.actions.showCredentialsForm(); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiToken: DEFAULT_VALUES.activeApiToken, + }); }); }); }); - }); - describe('hideCredentialsForm', () => { - const values = { - ...DEFAULT_VALUES, - showCredentialsForm: expect.any(Boolean), - activeApiTokenRawName: expect.any(String), - }; + describe('hideCredentialsForm', () => { + const values = { + ...DEFAULT_VALUES, + shouldShowCredentialsForm: expect.any(Boolean), + activeApiTokenRawName: expect.any(String), + }; - describe('activeApiTokenRawName', () => { - it('resets this value', () => { - mount({ - activeApiTokenRawName: 'foo', - }); + describe('activeApiTokenRawName', () => { + it('resets this value', () => { + mount({ + activeApiTokenRawName: 'foo', + }); - CredentialsLogic.actions.hideCredentialsForm(); - expect(CredentialsLogic.values).toEqual({ - ...values, - activeApiTokenRawName: '', + CredentialsLogic.actions.hideCredentialsForm(); + expect(CredentialsLogic.values).toEqual({ + ...values, + activeApiTokenRawName: '', + }); }); }); - }); - describe('showCredentialsForm', () => { - it('resets this value', () => { - mount({ - showCredentialsForm: true, - }); + describe('shouldShowCredentialsForm', () => { + it('resets this value', () => { + mount({ + shouldShowCredentialsForm: true, + }); - CredentialsLogic.actions.hideCredentialsForm(); - expect(CredentialsLogic.values).toEqual({ - ...values, - showCredentialsForm: false, + CredentialsLogic.actions.hideCredentialsForm(); + expect(CredentialsLogic.values).toEqual({ + ...values, + shouldShowCredentialsForm: false, + }); }); }); }); - }); - describe('resetCredentials', () => { - const values = { - ...DEFAULT_VALUES, - isCredentialsDetailsComplete: expect.any(Boolean), - isCredentialsDataComplete: expect.any(Boolean), - formErrors: expect.any(Array), - }; + describe('resetCredentials', () => { + const values = { + ...DEFAULT_VALUES, + isCredentialsDetailsComplete: expect.any(Boolean), + isCredentialsDataComplete: expect.any(Boolean), + formErrors: expect.any(Array), + }; - describe('isCredentialsDetailsComplete', () => { - it('should reset to false', () => { - mount({ - isCredentialsDetailsComplete: true, - }); + describe('isCredentialsDetailsComplete', () => { + it('should reset to false', () => { + mount({ + isCredentialsDetailsComplete: true, + }); - CredentialsLogic.actions.resetCredentials(); - expect(CredentialsLogic.values).toEqual({ - ...values, - isCredentialsDetailsComplete: false, + CredentialsLogic.actions.resetCredentials(); + expect(CredentialsLogic.values).toEqual({ + ...values, + isCredentialsDetailsComplete: false, + }); }); }); - }); - describe('isCredentialsDataComplete', () => { - it('should reset to false', () => { - mount({ - isCredentialsDataComplete: true, - }); + describe('isCredentialsDataComplete', () => { + it('should reset to false', () => { + mount({ + isCredentialsDataComplete: true, + }); - CredentialsLogic.actions.resetCredentials(); - expect(CredentialsLogic.values).toEqual({ - ...values, - isCredentialsDataComplete: false, + CredentialsLogic.actions.resetCredentials(); + expect(CredentialsLogic.values).toEqual({ + ...values, + isCredentialsDataComplete: false, + }); }); }); - }); - describe('formErrors', () => { - it('should reset', () => { - mount({ - formErrors: ['I am an error'], - }); + describe('formErrors', () => { + it('should reset', () => { + mount({ + formErrors: ['I am an error'], + }); - CredentialsLogic.actions.resetCredentials(); - expect(CredentialsLogic.values).toEqual({ - ...values, - formErrors: [], + CredentialsLogic.actions.resetCredentials(); + expect(CredentialsLogic.values).toEqual({ + ...values, + formErrors: [], + }); }); }); }); - }); - describe('initializeCredentialsData', () => { - it('should call fetchCredentials and fetchDetails', () => { - mount(); - jest.spyOn(CredentialsLogic.actions, 'fetchCredentials').mockImplementationOnce(() => {}); - jest.spyOn(CredentialsLogic.actions, 'fetchDetails').mockImplementationOnce(() => {}); + describe('initializeCredentialsData', () => { + it('should call fetchCredentials and fetchDetails', () => { + mount(); + jest.spyOn(CredentialsLogic.actions, 'fetchCredentials').mockImplementationOnce(() => {}); + jest.spyOn(CredentialsLogic.actions, 'fetchDetails').mockImplementationOnce(() => {}); - CredentialsLogic.actions.initializeCredentialsData(); - expect(CredentialsLogic.actions.fetchCredentials).toHaveBeenCalled(); - expect(CredentialsLogic.actions.fetchDetails).toHaveBeenCalled(); + CredentialsLogic.actions.initializeCredentialsData(); + expect(CredentialsLogic.actions.fetchCredentials).toHaveBeenCalled(); + expect(CredentialsLogic.actions.fetchDetails).toHaveBeenCalled(); + }); }); - }); - describe('fetchCredentials', () => { - const meta = { - page: { - current: 1, - size: 1, - total_pages: 1, - total_results: 1, - }, - }; - const results: object[] = []; - - it('will call an API endpoint and set the results with the `setCredentialsData` action', async () => { - mount(); - jest.spyOn(CredentialsLogic.actions, 'setCredentialsData').mockImplementationOnce(() => {}); - const promise = Promise.resolve({ meta, results }); - (HttpLogic.values.http.get as jest.Mock).mockReturnValue(promise); - - CredentialsLogic.actions.fetchCredentials(2); - expect(HttpLogic.values.http.get).toHaveBeenCalledWith('/api/app_search/credentials', { - query: { - 'page[current]': 2, + describe('fetchCredentials', () => { + const meta = { + page: { + current: 1, + size: 1, + total_pages: 1, + total_results: 1, }, + }; + const results: object[] = []; + + it('will call an API endpoint and set the results with the `setCredentialsData` action', async () => { + mount(); + jest.spyOn(CredentialsLogic.actions, 'setCredentialsData').mockImplementationOnce(() => {}); + const promise = Promise.resolve({ meta, results }); + (HttpLogic.values.http.get as jest.Mock).mockReturnValue(promise); + + CredentialsLogic.actions.fetchCredentials(2); + expect(HttpLogic.values.http.get).toHaveBeenCalledWith('/api/app_search/credentials', { + query: { + 'page[current]': 2, + }, + }); + await promise; + expect(CredentialsLogic.actions.setCredentialsData).toHaveBeenCalledWith(meta, results); }); - await promise; - expect(CredentialsLogic.actions.setCredentialsData).toHaveBeenCalledWith(meta, results); - }); - it('handles errors', async () => { - mount(); - const promise = Promise.reject('An error occured'); - (HttpLogic.values.http.get as jest.Mock).mockReturnValue(promise); + it('handles errors', async () => { + mount(); + const promise = Promise.reject('An error occured'); + (HttpLogic.values.http.get as jest.Mock).mockReturnValue(promise); + + CredentialsLogic.actions.fetchCredentials(); + try { + await promise; + } catch { + expect(flashAPIErrors).toHaveBeenCalledWith('An error occured'); + } + }); + }); - CredentialsLogic.actions.fetchCredentials(); - try { + describe('fetchDetails', () => { + it('will call an API endpoint and set the results with the `setCredentialsDetails` action', async () => { + mount(); + jest + .spyOn(CredentialsLogic.actions, 'setCredentialsDetails') + .mockImplementationOnce(() => {}); + const promise = Promise.resolve(credentialsDetails); + (HttpLogic.values.http.get as jest.Mock).mockReturnValue(promise); + + CredentialsLogic.actions.fetchDetails(); + expect(HttpLogic.values.http.get).toHaveBeenCalledWith( + '/api/app_search/credentials/details' + ); await promise; - } catch { - expect(flashAPIErrors).toHaveBeenCalledWith('An error occured'); - } - }); - }); + expect(CredentialsLogic.actions.setCredentialsDetails).toHaveBeenCalledWith( + credentialsDetails + ); + }); - describe('fetchDetails', () => { - it('will call an API endpoint and set the results with the `setCredentialsDetails` action', async () => { - mount(); - jest - .spyOn(CredentialsLogic.actions, 'setCredentialsDetails') - .mockImplementationOnce(() => {}); - const promise = Promise.resolve(credentialsDetails); - (HttpLogic.values.http.get as jest.Mock).mockReturnValue(promise); - - CredentialsLogic.actions.fetchDetails(); - expect(HttpLogic.values.http.get).toHaveBeenCalledWith('/api/app_search/credentials/details'); - await promise; - expect(CredentialsLogic.actions.setCredentialsDetails).toHaveBeenCalledWith( - credentialsDetails - ); + it('handles errors', async () => { + mount(); + const promise = Promise.reject('An error occured'); + (HttpLogic.values.http.get as jest.Mock).mockReturnValue(promise); + + CredentialsLogic.actions.fetchDetails(); + try { + await promise; + } catch { + expect(flashAPIErrors).toHaveBeenCalledWith('An error occured'); + } + }); }); - it('handles errors', async () => { - mount(); - const promise = Promise.reject('An error occured'); - (HttpLogic.values.http.get as jest.Mock).mockReturnValue(promise); + describe('deleteApiKey', () => { + const tokenName = 'abc123'; - CredentialsLogic.actions.fetchDetails(); - try { + it('will call an API endpoint and set the results with the `onApiKeyDelete` action', async () => { + mount(); + jest.spyOn(CredentialsLogic.actions, 'onApiKeyDelete').mockImplementationOnce(() => {}); + const promise = Promise.resolve(); + (HttpLogic.values.http.delete as jest.Mock).mockReturnValue(promise); + + CredentialsLogic.actions.deleteApiKey(tokenName); + expect(HttpLogic.values.http.delete).toHaveBeenCalledWith( + `/api/app_search/credentials/${tokenName}` + ); await promise; - } catch { - expect(flashAPIErrors).toHaveBeenCalledWith('An error occured'); - } + expect(CredentialsLogic.actions.onApiKeyDelete).toHaveBeenCalledWith(tokenName); + }); + + it('handles errors', async () => { + mount(); + const promise = Promise.reject('An error occured'); + (HttpLogic.values.http.delete as jest.Mock).mockReturnValue(promise); + + CredentialsLogic.actions.deleteApiKey(tokenName); + try { + await promise; + } catch { + expect(flashAPIErrors).toHaveBeenCalledWith('An error occured'); + } + }); }); }); - describe('deleteApiKey', () => { - const tokenName = 'abc123'; - - it('will call an API endpoint and set the results with the `onApiKeyDelete` action', async () => { - mount(); - jest.spyOn(CredentialsLogic.actions, 'onApiKeyDelete').mockImplementationOnce(() => {}); - const promise = Promise.resolve(); - (HttpLogic.values.http.delete as jest.Mock).mockReturnValue(promise); - - CredentialsLogic.actions.deleteApiKey(tokenName); - expect(HttpLogic.values.http.delete).toHaveBeenCalledWith( - `/api/app_search/credentials/${tokenName}` - ); - await promise; - expect(CredentialsLogic.actions.onApiKeyDelete).toHaveBeenCalledWith(tokenName); - }); + describe('selectors', () => { + describe('activeApiTokenExists', () => { + it('should be false if the token has no id', () => { + mount({ + activeApiToken: { + ...DEFAULT_VALUES.activeApiToken, + id: undefined, + }, + }); - it('handles errors', async () => { - mount(); - const promise = Promise.reject('An error occured'); - (HttpLogic.values.http.delete as jest.Mock).mockReturnValue(promise); + expect(CredentialsLogic.values.activeApiTokenExists).toEqual(false); + }); - CredentialsLogic.actions.deleteApiKey(tokenName); - try { - await promise; - } catch { - expect(flashAPIErrors).toHaveBeenCalledWith('An error occured'); - } + it('should be true if the token has an id', () => { + mount({ + activeApiToken: { + ...DEFAULT_VALUES.activeApiToken, + id: '123', + }, + }); + + expect(CredentialsLogic.values.activeApiTokenExists).toEqual(true); + }); }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.ts index 43f2731711823..41897b8edbc1e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_logic.ts @@ -13,12 +13,7 @@ import { HttpLogic } from '../../../shared/http'; import { IMeta } from '../../../../../common/types'; import { flashAPIErrors } from '../../../shared/flash_messages'; import { IEngine } from '../../types'; -import { IApiToken, ICredentialsDetails } from './types'; - -interface ITokenReadWrite { - name: 'read' | 'write'; - checked: boolean; -} +import { IApiToken, ICredentialsDetails, ITokenReadWrite } from './types'; const defaultApiToken: IApiToken = { name: '', @@ -44,7 +39,7 @@ export interface ICredentialsLogicActions { setTokenReadWrite(tokenReadWrite: ITokenReadWrite): ITokenReadWrite; setTokenName(name: string): string; setTokenType(tokenType: string): string; - toggleCredentialsForm(apiToken?: IApiToken): IApiToken; + showCredentialsForm(apiToken?: IApiToken): IApiToken; hideCredentialsForm(): { value: boolean }; resetCredentials(): { value: boolean }; initializeCredentialsData(): { value: boolean }; @@ -55,7 +50,7 @@ export interface ICredentialsLogicActions { export interface ICredentialsLogicValues { activeApiToken: IApiToken; - activeApiTokenIsExisting: boolean; + activeApiTokenExists: boolean; activeApiTokenRawName: string; apiTokens: IApiToken[]; dataLoading: boolean; @@ -66,7 +61,7 @@ export interface ICredentialsLogicValues { fullEngineAccessChecked: boolean; meta: Partial; nameInputBlurred: boolean; - showCredentialsForm: boolean; + shouldShowCredentialsForm: boolean; } export const CredentialsLogic = kea< @@ -90,7 +85,7 @@ export const CredentialsLogic = kea< }), setTokenName: (name) => name, setTokenType: (tokenType) => tokenType, - toggleCredentialsForm: (apiToken = { ...defaultApiToken }) => apiToken, + showCredentialsForm: (apiToken = { ...defaultApiToken }) => apiToken, hideCredentialsForm: false, resetCredentials: false, initializeCredentialsData: true, @@ -175,30 +170,23 @@ export const CredentialsLogic = kea< read: tokenType === PRIVATE, type: tokenType, }), - toggleCredentialsForm: (_, activeApiToken) => activeApiToken, + showCredentialsForm: (_, activeApiToken) => activeApiToken, }, ], activeApiTokenRawName: [ '', { setTokenName: (_, activeApiTokenRawName) => activeApiTokenRawName, - toggleCredentialsForm: (activeApiTokenRawName, activeApiToken) => - activeApiToken.name || activeApiTokenRawName, + showCredentialsForm: (_, activeApiToken) => activeApiToken.name, hideCredentialsForm: () => '', onApiTokenCreateSuccess: () => '', onApiTokenUpdateSuccess: () => '', }, ], - activeApiTokenIsExisting: [ + shouldShowCredentialsForm: [ false, { - toggleCredentialsForm: (_, activeApiToken) => !!activeApiToken.id, - }, - ], - showCredentialsForm: [ - false, - { - toggleCredentialsForm: (showCredentialsForm) => !showCredentialsForm, + showCredentialsForm: () => true, hideCredentialsForm: () => false, onApiTokenCreateSuccess: () => false, onApiTokenUpdateSuccess: () => false, @@ -209,7 +197,7 @@ export const CredentialsLogic = kea< { onApiTokenError: (_, formErrors) => formErrors, onApiTokenCreateSuccess: () => [], - toggleCredentialsForm: () => [], + showCredentialsForm: () => [], resetCredentials: () => [], }, ], @@ -222,6 +210,10 @@ export const CredentialsLogic = kea< return isCredentialsDetailsComplete === false || isCredentialsDataComplete === false; }, ], + activeApiTokenExists: [ + () => [selectors.activeApiToken], + (activeApiToken) => !!activeApiToken.id, + ], }), listeners: ({ actions, values }) => ({ initializeCredentialsData: () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/types.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/types.ts index 9b09bd13a9086..bbf7a54da10da 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/types.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/types.ts @@ -20,3 +20,8 @@ export interface IApiToken { type: string; write?: boolean; } + +export interface ITokenReadWrite { + name: 'read' | 'write'; + checked: boolean; +} From 3e7fb9352d7b64fd87e78502712d4db680c3379e Mon Sep 17 00:00:00 2001 From: Marta Bondyra Date: Wed, 30 Sep 2020 18:51:18 +0200 Subject: [PATCH 031/142] [Lens] fix wrong message in fields accordion (#78924) --- .../plugins/lens/public/indexpattern_datasource/datapanel.tsx | 1 + .../lens/public/indexpattern_datasource/field_list.tsx | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx index 4e85cb5b5d46c..c78a7a6629c65 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx @@ -557,6 +557,7 @@ export const InnerIndexPatternDataPanel = function InnerIndexPatternDataPanel({ }} currentIndexPatternId={currentIndexPatternId} existenceFetchFailed={existenceFetchFailed} + existFieldsInIndex={!!allFields.length} /> diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/field_list.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/field_list.tsx index 4a9b3a0c63e3f..63809218a1dd0 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/field_list.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/field_list.tsx @@ -52,6 +52,7 @@ export function FieldList({ hasSyncedExistingFields, filter, currentIndexPatternId, + existFieldsInIndex, }: { exists: (field: IndexPatternField) => boolean; fieldGroups: FieldGroups; @@ -63,6 +64,7 @@ export function FieldList({ typeFilter: string[]; }; currentIndexPatternId: string; + existFieldsInIndex: boolean; }) { const [pageSize, setPageSize] = useState(PAGINATION_SIZE); const [scrollContainer, setScrollContainer] = useState(undefined); @@ -180,7 +182,7 @@ export function FieldList({ isAffectedByGlobalFilter={fieldGroup.isAffectedByGlobalFilter} isAffectedByFieldFilter={isAffectedByFieldFilter} isAffectedByTimerange={fieldGroup.isAffectedByTimeFilter} - existFieldsInIndex={!!fieldGroup.fieldCount} + existFieldsInIndex={!!existFieldsInIndex} /> } /> From 189953299b4f1f47c875afe590ec803012094671 Mon Sep 17 00:00:00 2001 From: Wylie Conlon Date: Wed, 30 Sep 2020 13:07:09 -0400 Subject: [PATCH 032/142] [Lens] Stop using scripted metric to collect telemetry (#78687) --- .../lens/server/usage/visualization_counts.ts | 59 ++++++++----------- 1 file changed, 24 insertions(+), 35 deletions(-) diff --git a/x-pack/plugins/lens/server/usage/visualization_counts.ts b/x-pack/plugins/lens/server/usage/visualization_counts.ts index c3c6b2b7e4cbd..c9cd4aff72b2b 100644 --- a/x-pack/plugins/lens/server/usage/visualization_counts.ts +++ b/x-pack/plugins/lens/server/usage/visualization_counts.ts @@ -11,37 +11,6 @@ export async function getVisualizationCounts( callCluster: LegacyAPICaller, kibanaIndex: string ): Promise { - const scriptedMetric = { - scripted_metric: { - // Each cluster collects its own type data in a key-value Map that looks like: - // { lnsDatatable: 5, area_stacked: 3 } - init_script: 'state.types = [:]', - // The map script relies on having flattened keyword mapping for the Lens saved object, - // without this kind of mapping we would not be able to access `lens.state` in painless - map_script: ` - String visType = doc['lens.visualizationType'].value; - String niceType = visType == 'lnsXY' ? doc['lens.state.visualization.preferredSeriesType'].value : visType; - state.types.put(niceType, state.types.containsKey(niceType) ? state.types.get(niceType) + 1 : 1); - `, - // Combine script is executed per cluster, but we already have a key-value pair per cluster. - // Despite docs that say this is optional, this script can't be blank. - combine_script: 'return state', - // Reduce script is executed across all clusters, so we need to add up all the total from each cluster - // This also needs to account for having no data - reduce_script: ` - Map result = [:]; - for (Map m : states.toArray()) { - if (m !== null) { - for (String k : m.keySet()) { - result.put(k, result.containsKey(k) ? result.get(k) + m.get(k) : m.get(k)); - } - } - } - return result; - `, - }, - }; - const results = await callCluster('search', { index: kibanaIndex, rest_total_hits_as_int: true, @@ -61,7 +30,18 @@ export async function getVisualizationCounts( }, }, aggs: { - byType: scriptedMetric, + byType: { + terms: { + // The script relies on having flattened keyword mapping for the Lens saved object, + // without this kind of mapping we would not be able to access `lens.state` in painless + script: ` + String visType = doc['lens.visualizationType'].value; + String niceType = visType == 'lnsXY' ? doc['lens.state.visualization.preferredSeriesType'].value : visType; + return niceType; + `, + size: 100, + }, + }, }, }, }, @@ -71,10 +51,19 @@ export async function getVisualizationCounts( const buckets = results.aggregations.groups.buckets; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function bucketsToObject(arg: any) { + const obj: Record = {}; + arg.buckets.forEach((bucket: { key: string; doc_count: number }) => { + obj[bucket.key] = bucket.doc_count + (obj[bucket.key] ?? 0); + }); + return obj; + } + return { - saved_overall: buckets.overall.byType.value.types, - saved_30_days: buckets.last30.byType.value.types, - saved_90_days: buckets.last90.byType.value.types, + saved_overall: bucketsToObject(buckets.overall.byType), + saved_30_days: bucketsToObject(buckets.last30.byType), + saved_90_days: bucketsToObject(buckets.last90.byType), saved_overall_total: buckets.overall.doc_count, saved_30_days_total: buckets.last30.doc_count, saved_90_days_total: buckets.last90.doc_count, From b31b6582747cee4b59b9e407c81be386b6af2293 Mon Sep 17 00:00:00 2001 From: Spencer Date: Wed, 30 Sep 2020 10:20:44 -0700 Subject: [PATCH 033/142] [dev/cli] ensure plugins/ and all watch source dirs exist (#78973) Co-authored-by: spalger --- plugins/.empty | 0 src/cli/cluster/cluster_manager.ts | 9 +++++++++ 2 files changed, 9 insertions(+) create mode 100644 plugins/.empty diff --git a/plugins/.empty b/plugins/.empty new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/src/cli/cluster/cluster_manager.ts b/src/cli/cluster/cluster_manager.ts index e1f56a2f267fa..3d81185e8a313 100644 --- a/src/cli/cluster/cluster_manager.ts +++ b/src/cli/cluster/cluster_manager.ts @@ -19,6 +19,7 @@ import { resolve } from 'path'; import { format as formatUrl } from 'url'; +import Fs from 'fs'; import opn from 'opn'; import { REPO_ROOT } from '@kbn/utils'; @@ -233,6 +234,14 @@ export class ClusterManager { ) ); + for (const watchPath of watchPaths) { + if (!Fs.existsSync(fromRoot(watchPath))) { + throw new Error( + `A watch directory [${watchPath}] does not exist, which will cause chokidar to fail. Either make sure the directory exists or remove it as a watch source in the ClusterManger` + ); + } + } + const ignorePaths = [ /[\\\/](\..*|node_modules|bower_components|target|public|__[a-z0-9_]+__|coverage)([\\\/]|$)/, /\.test\.(js|tsx?)$/, From 5f5ef2b344a257743cf1cf5efcea88b50f981208 Mon Sep 17 00:00:00 2001 From: Tyler Smalley Date: Wed, 30 Sep 2020 10:23:57 -0700 Subject: [PATCH 034/142] Adds some missing licenses to the CSV export (#78719) Signed-off-by: Tyler Smalley --- tasks/licenses_csv_report.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/tasks/licenses_csv_report.js b/tasks/licenses_csv_report.js index 746195038379e..f504cbcaa5fc8 100644 --- a/tasks/licenses_csv_report.js +++ b/tasks/licenses_csv_report.js @@ -20,6 +20,7 @@ import { writeFileSync } from 'fs'; import { resolve } from 'path'; import { getInstalledPackages } from '../src/dev/npm'; +import { engines } from '../package'; import { LICENSE_OVERRIDES } from '../src/dev/license_checker'; import { isNull, isUndefined } from 'lodash'; @@ -51,7 +52,7 @@ function formatCsvValues(fields, values) { export default function licensesCSVReport(grunt) { grunt.registerTask('licenses:csv_report', 'Report of 3rd party dependencies', async function () { - const fields = ['name', 'version', 'url', 'license']; + const fields = ['name', 'version', 'url', 'license', 'sourceURL']; const done = this.async(); try { @@ -65,6 +66,25 @@ export default function licensesCSVReport(grunt) { dev, }); + packages.unshift( + { + name: 'Node.js', + version: engines.node, + repository: 'https://nodejs.org', + licenses: ['MIT'], + }, + { + name: 'Red Hat Universal Base Image minimal', + version: '8', + repository: + 'https://catalog.redhat.com/software/containers/ubi8/ubi-minimal/5c359a62bed8bd75a2c3fba8', + licenses: [ + 'Custom;https://www.redhat.com/licenses/EULA_Red_Hat_Universal_Base_Image_English_20190422.pdf', + ], + sourceURL: 'https://oss-dependencies.elastic.co/redhat/ubi/ubi-minimal-8-source.tar.gz', + } + ); + const csv = packages .map((pkg) => { const data = { @@ -72,6 +92,7 @@ export default function licensesCSVReport(grunt) { version: pkg.version, url: pkg.repository || `https://www.npmjs.com/package/${pkg.name}`, license: pkg.licenses.join(','), + sourceURL: pkg.sourceURL, }; return formatCsvValues(fields, data); From c4f05c4758f214925985c97bf0533d5762815b84 Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Wed, 30 Sep 2020 18:27:03 +0100 Subject: [PATCH 035/142] [ML] Fixing module datafeed overrides (#78925) --- x-pack/plugins/ml/common/types/modules.ts | 4 +- .../models/data_recognizer/data_recognizer.ts | 33 +++++- .../ml/log_entry_categories_count.json | 9 +- .../modules/metricbeat_system_ecs/logo.json | 2 +- .../metricbeat_system_ecs/manifest.json | 7 +- .../ml/datafeed_high_mean_cpu_iowait_ecs.json | 8 +- .../ml/datafeed_max_disk_utilization_ecs.json | 26 +++-- .../ml/datafeed_metricbeat_outages_ecs.json | 18 +-- .../ml/high_mean_cpu_iowait_ecs.json | 106 +++++++++--------- .../ml/max_disk_utilization_ecs.json | 106 +++++++++--------- .../ml/metricbeat_outages_ecs.json | 66 +++++------ .../modules/metrics_ui_hosts/logo.json | 4 +- .../modules/metrics_ui_hosts/manifest.json | 74 ++++++------ .../ml/datafeed_hosts_memory_usage.json | 30 ++--- .../ml/datafeed_hosts_network_in.json | 95 ++++++++++------ .../ml/datafeed_hosts_network_out.json | 95 ++++++++++------ .../ml/hosts_memory_usage.json | 96 ++++++++-------- .../metrics_ui_hosts/ml/hosts_network_in.json | 70 ++++++------ .../ml/hosts_network_out.json | 70 ++++++------ .../modules/metrics_ui_k8s/logo.json | 4 +- .../modules/metrics_ui_k8s/manifest.json | 74 ++++++------ .../ml/datafeed_k8s_memory_usage.json | 36 +++--- .../ml/datafeed_k8s_network_in.json | 103 +++++++++++------ .../ml/datafeed_k8s_network_out.json | 103 +++++++++++------ .../metrics_ui_k8s/ml/k8s_memory_usage.json | 102 ++++++++--------- .../metrics_ui_k8s/ml/k8s_network_in.json | 2 +- .../metrics_ui_k8s/ml/k8s_network_out.json | 2 +- 27 files changed, 756 insertions(+), 589 deletions(-) diff --git a/x-pack/plugins/ml/common/types/modules.ts b/x-pack/plugins/ml/common/types/modules.ts index bfa7e38332c1b..38f0c8cb9c117 100644 --- a/x-pack/plugins/ml/common/types/modules.ts +++ b/x-pack/plugins/ml/common/types/modules.ts @@ -11,7 +11,7 @@ export interface ModuleJob { config: Omit; } -export interface ModuleDataFeed { +export interface ModuleDatafeed { id: string; config: Omit; } @@ -49,7 +49,7 @@ export interface Module { defaultIndexPattern: string; query: any; jobs: ModuleJob[]; - datafeeds: ModuleDataFeed[]; + datafeeds: ModuleDatafeed[]; kibana: KibanaObjects; } diff --git a/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts b/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts index 141e78a91cf0d..96be6db03c52b 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts +++ b/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts @@ -17,7 +17,7 @@ import { MlInfoResponse } from '../../../common/types/ml_server_info'; import { KibanaObjects, KibanaObjectConfig, - ModuleDataFeed, + ModuleDatafeed, ModuleJob, Module, JobOverride, @@ -283,7 +283,7 @@ export class DataRecognizer { } const jobs: ModuleJob[] = []; - const datafeeds: ModuleDataFeed[] = []; + const datafeeds: ModuleDatafeed[] = []; const kibana: KibanaObjects = {}; // load all of the job configs await Promise.all( @@ -710,7 +710,7 @@ export class DataRecognizer { // save the datafeeds. // if any fail (e.g. it already exists), catch the error and mark the result // as success: false - async saveDatafeeds(datafeeds: ModuleDataFeed[]) { + async saveDatafeeds(datafeeds: ModuleDatafeed[]) { return await Promise.all( datafeeds.map(async (datafeed) => { try { @@ -723,7 +723,7 @@ export class DataRecognizer { ); } - async saveDatafeed(datafeed: ModuleDataFeed) { + async saveDatafeed(datafeed: ModuleDatafeed) { return this._asInternalUser.ml.putDatafeed( { datafeed_id: datafeed.id, @@ -734,7 +734,7 @@ export class DataRecognizer { } async startDatafeeds( - datafeeds: ModuleDataFeed[], + datafeeds: ModuleDatafeed[], start?: number, end?: number ): Promise<{ [key: string]: DatafeedResponse }> { @@ -746,7 +746,7 @@ export class DataRecognizer { } async startDatafeed( - datafeed: ModuleDataFeed, + datafeed: ModuleDatafeed, start: number | undefined, end: number | undefined ): Promise { @@ -1229,6 +1229,25 @@ export class DataRecognizer { const overrides = Array.isArray(datafeedOverrides) ? datafeedOverrides : [datafeedOverrides]; const { datafeeds } = moduleConfig; + // for some items in the datafeed, we should not merge. + // we should instead use the whole override object + function overwriteObjects(source: ModuleDatafeed['config'], update: DatafeedOverride) { + Object.entries(update).forEach(([key, val]) => { + if (typeof val === 'object') { + switch (key) { + case 'query': + case 'aggregations': + case 'aggs': + case 'script_fields': + source[key] = val as any; + break; + default: + break; + } + } + }); + } + // separate all the overrides. // the overrides which don't contain a datafeed id or a job id will be applied to all jobs in the module const generalOverrides: GeneralDatafeedsOverride[] = []; @@ -1244,6 +1263,7 @@ export class DataRecognizer { generalOverrides.forEach((o) => { datafeeds.forEach(({ config }) => { merge(config, o); + overwriteObjects(config, o); }); }); @@ -1259,6 +1279,7 @@ export class DataRecognizer { delete o.job_id; delete o.datafeed_id; merge(datafeed.config, o); + overwriteObjects(datafeed.config, o); } }); } diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/logs_ui_categories/ml/log_entry_categories_count.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/logs_ui_categories/ml/log_entry_categories_count.json index 40c47352371d4..ad7da3330bb6c 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/logs_ui_categories/ml/log_entry_categories_count.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/logs_ui_categories/ml/log_entry_categories_count.json @@ -1,7 +1,9 @@ { "job_type": "anomaly_detector", "description": "Logs UI: Detects anomalies in count of log entries by category", - "groups": ["logs-ui"], + "groups": [ + "logs-ui" + ], "analysis_config": { "bucket_span": "15m", "categorization_field_name": "message", @@ -14,7 +16,10 @@ "use_null": true } ], - "influencers": ["event.dataset", "mlcategory"], + "influencers": [ + "event.dataset", + "mlcategory" + ], "per_partition_categorization": { "enabled": true, "stop_on_warn": false diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/logo.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/logo.json index 04cfe48b16366..4b3e7343d6c0b 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/logo.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/logo.json @@ -1,3 +1,3 @@ { - "icon": "metricbeatApp" + "icon": "metricbeatApp" } diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/manifest.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/manifest.json index 499896ced7deb..6482fab429ecb 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/manifest.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/manifest.json @@ -8,7 +8,12 @@ "query": { "bool": { "filter": { - "terms" : { "event.dataset" : ["system.cpu", "system.filesystem"]} + "terms": { + "event.dataset": [ + "system.cpu", + "system.filesystem" + ] + } } } }, diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/datafeed_high_mean_cpu_iowait_ecs.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/datafeed_high_mean_cpu_iowait_ecs.json index fe87160142cff..b418f86296420 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/datafeed_high_mean_cpu_iowait_ecs.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/datafeed_high_mean_cpu_iowait_ecs.json @@ -6,10 +6,14 @@ "query": { "bool": { "filter": { - "term": { "event.dataset": "system.cpu" } + "term": { + "event.dataset": "system.cpu" + } }, "must": { - "exists": { "field": "system.cpu.iowait.pct" } + "exists": { + "field": "system.cpu.iowait.pct" + } } } } diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/datafeed_max_disk_utilization_ecs.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/datafeed_max_disk_utilization_ecs.json index 6ccbfe94c220c..94a89f3dd0078 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/datafeed_max_disk_utilization_ecs.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/datafeed_max_disk_utilization_ecs.json @@ -1,16 +1,20 @@ { - "job_id": "JOB_ID", - "indices": [ - "INDEX_PATTERN_NAME" - ], - "query": { - "bool": { - "filter": { - "term": { "event.dataset": "system.filesystem" } - }, - "must": { - "exists": { "field": "system.filesystem.used.pct" } + "job_id": "JOB_ID", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "query": { + "bool": { + "filter": { + "term": { + "event.dataset": "system.filesystem" + } + }, + "must": { + "exists": { + "field": "system.filesystem.used.pct" } } } } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/datafeed_metricbeat_outages_ecs.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/datafeed_metricbeat_outages_ecs.json index d6f33127dfc08..d257068182826 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/datafeed_metricbeat_outages_ecs.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/datafeed_metricbeat_outages_ecs.json @@ -1,13 +1,15 @@ { - "job_id": "JOB_ID", - "indices": [ - "INDEX_PATTERN_NAME" - ], - "query": { - "bool": { - "must": { - "exists": { "field": "event.dataset" } + "job_id": "JOB_ID", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "query": { + "bool": { + "must": { + "exists": { + "field": "event.dataset" } } } } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/high_mean_cpu_iowait_ecs.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/high_mean_cpu_iowait_ecs.json index b50338070d5cb..d6218acfae84f 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/high_mean_cpu_iowait_ecs.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/high_mean_cpu_iowait_ecs.json @@ -1,54 +1,56 @@ { - "job_type": "anomaly_detector", - "description": "Metricbeat CPU: Detect unusual increases in cpu time spent in iowait (ECS)", - "groups": ["metricbeat"], - "analysis_config": { - "bucket_span": "10m", - "detectors": [ - { - "detector_description": "high mean system.cpu.iowait.pct", - "function": "high_mean", - "field_name": "system.cpu.iowait.pct", - "partition_field_name": "host.name", - "custom_rules": [ - { - "actions": [ - "skip_result" - ], - "conditions": [ - { - "applies_to": "actual", - "operator": "lt", - "value": 0.25 - } - ] - } - ] - } - ], - "influencers": [ - "host.name" - ] - }, - "analysis_limits": { - "model_memory_limit": "25mb" - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "custom_settings": { - "created_by": "ml-module-metricbeat-system", - "custom_urls": [ - { - "url_name": "Host overview", - "time_range": "3h", - "url_value": "dashboards#/view/79ffd6e0-faa0-11e6-947f-177f697178b8-ecs?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(filters:!(),query:(language:kuery,query:\u0027host.name:\u0022$host.name$\u0022\u0027))" - }, - { - "url_name": "Raw data", - "url_value": "discover#/?_g=(refreshInterval:(pause:!t,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:'event.dataset:\u0022system.cpu\u0022'),sort:!('@timestamp',desc))" - } - ] - } + "job_type": "anomaly_detector", + "description": "Metricbeat CPU: Detect unusual increases in cpu time spent in iowait (ECS)", + "groups": [ + "metricbeat" + ], + "analysis_config": { + "bucket_span": "10m", + "detectors": [ + { + "detector_description": "high mean system.cpu.iowait.pct", + "function": "high_mean", + "field_name": "system.cpu.iowait.pct", + "partition_field_name": "host.name", + "custom_rules": [ + { + "actions": [ + "skip_result" + ], + "conditions": [ + { + "applies_to": "actual", + "operator": "lt", + "value": 0.25 + } + ] + } + ] + } + ], + "influencers": [ + "host.name" + ] + }, + "analysis_limits": { + "model_memory_limit": "25mb" + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "custom_settings": { + "created_by": "ml-module-metricbeat-system", + "custom_urls": [ + { + "url_name": "Host overview", + "time_range": "3h", + "url_value": "dashboards#/view/79ffd6e0-faa0-11e6-947f-177f697178b8-ecs?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(filters:!(),query:(language:kuery,query:\u0027host.name:\u0022$host.name$\u0022\u0027))" + }, + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(refreshInterval:(pause:!t,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:'event.dataset:\u0022system.cpu\u0022'),sort:!('@timestamp',desc))" + } + ] } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/max_disk_utilization_ecs.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/max_disk_utilization_ecs.json index 65e515c38acd6..dd502c1d6ae37 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/max_disk_utilization_ecs.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/max_disk_utilization_ecs.json @@ -1,54 +1,56 @@ { - "job_type": "anomaly_detector", - "description": "Metricbeat filesystem: Detect unusual increases in disk utilization (ECS)", - "groups": ["metricbeat"], - "analysis_config": { - "bucket_span": "10m", - "detectors": [ - { - "detector_description": "max disk utilization", - "function": "max", - "field_name": "system.filesystem.used.pct", - "partition_field_name": "host.name", - "custom_rules": [ - { - "actions": [ - "skip_result" - ], - "conditions": [ - { - "applies_to": "actual", - "operator": "lt", - "value": 0.75 - } - ] - } - ] - } - ], - "influencers": [ - "host.name" - ] - }, - "analysis_limits": { - "model_memory_limit": "25mb" - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "custom_settings": { - "created_by": "ml-module-metricbeat-system", - "custom_urls": [ - { - "url_name": "Host overview", - "time_range": "3h", - "url_value": "dashboards#/view/79ffd6e0-faa0-11e6-947f-177f697178b8-ecs?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(filters:!(),query:(language:kuery,query:\u0027host.name:\u0022$host.name$\u0022\u0027))" - }, - { - "url_name": "Raw data", - "url_value": "discover#/?_g=(refreshInterval:(pause:!t,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:'event.dataset:\u0022system.filesystem\u0022'),sort:!('@timestamp',desc))" - } - ] - } + "job_type": "anomaly_detector", + "description": "Metricbeat filesystem: Detect unusual increases in disk utilization (ECS)", + "groups": [ + "metricbeat" + ], + "analysis_config": { + "bucket_span": "10m", + "detectors": [ + { + "detector_description": "max disk utilization", + "function": "max", + "field_name": "system.filesystem.used.pct", + "partition_field_name": "host.name", + "custom_rules": [ + { + "actions": [ + "skip_result" + ], + "conditions": [ + { + "applies_to": "actual", + "operator": "lt", + "value": 0.75 + } + ] + } + ] + } + ], + "influencers": [ + "host.name" + ] + }, + "analysis_limits": { + "model_memory_limit": "25mb" + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "custom_settings": { + "created_by": "ml-module-metricbeat-system", + "custom_urls": [ + { + "url_name": "Host overview", + "time_range": "3h", + "url_value": "dashboards#/view/79ffd6e0-faa0-11e6-947f-177f697178b8-ecs?_g=(time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(filters:!(),query:(language:kuery,query:\u0027host.name:\u0022$host.name$\u0022\u0027))" + }, + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(refreshInterval:(pause:!t,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:'event.dataset:\u0022system.filesystem\u0022'),sort:!('@timestamp',desc))" + } + ] } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/metricbeat_outages_ecs.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/metricbeat_outages_ecs.json index f93419c68c67d..fb2838ac57856 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/metricbeat_outages_ecs.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/ml/metricbeat_outages_ecs.json @@ -1,34 +1,36 @@ { - "job_type": "anomaly_detector", - "description": "Metricbeat outages: Detect unusual decreases in metricbeat documents (ECS)", - "groups": ["metricbeat"], - "analysis_config": { - "bucket_span": "10m", - "detectors": [ - { - "detector_description": "low_count", - "function": "low_count", - "partition_field_name": "event.dataset" - } - ], - "influencers": [ - "event.dataset" - ] - }, - "analysis_limits": { - "model_memory_limit": "15mb" - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "custom_settings": { - "created_by": "ml-module-metricbeat-system", - "custom_urls": [ - { - "url_name": "Raw data", - "url_value": "discover#/?_g=(refreshInterval:(pause:!t,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:''),sort:!('@timestamp',desc))" - } - ] - } + "job_type": "anomaly_detector", + "description": "Metricbeat outages: Detect unusual decreases in metricbeat documents (ECS)", + "groups": [ + "metricbeat" + ], + "analysis_config": { + "bucket_span": "10m", + "detectors": [ + { + "detector_description": "low_count", + "function": "low_count", + "partition_field_name": "event.dataset" + } + ], + "influencers": [ + "event.dataset" + ] + }, + "analysis_limits": { + "model_memory_limit": "15mb" + }, + "data_description": { + "time_field": "@timestamp", + "time_format": "epoch_ms" + }, + "custom_settings": { + "created_by": "ml-module-metricbeat-system", + "custom_urls": [ + { + "url_name": "Raw data", + "url_value": "discover#/?_g=(refreshInterval:(pause:!t,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),index:\u0027INDEX_PATTERN_ID\u0027,interval:auto,query:(language:kuery,query:''),sort:!('@timestamp',desc))" + } + ] } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/logo.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/logo.json index 2e57038bbc639..206f34df4f50f 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/logo.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/logo.json @@ -1,3 +1,3 @@ { - "icon": "metricsApp" -} \ No newline at end of file + "icon": "metricsApp" +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/manifest.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/manifest.json index 29ac288c0649f..dd1e191fda47b 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/manifest.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/manifest.json @@ -1,38 +1,38 @@ { - "id": "metrics_ui_hosts", - "title": "Metrics Hosts", - "description": "Detect anomalous memory and network behavior on hosts.", - "type": "Metricbeat Data", - "logoFile": "logo.json", - "jobs": [ - { - "id": "hosts_memory_usage", - "file": "hosts_memory_usage.json" - }, - { - "id": "hosts_network_in", - "file": "hosts_network_in.json" - }, - { - "id": "hosts_network_out", - "file": "hosts_network_out.json" - } - ], - "datafeeds": [ - { - "id": "datafeed-hosts_memory_usage", - "file": "datafeed_hosts_memory_usage.json", - "job_id": "hosts_memory_usage" - }, - { - "id": "datafeed-hosts_network_in", - "file": "datafeed_hosts_network_in.json", - "job_id": "hosts_network_in" - }, - { - "id": "datafeed-hosts_network_out", - "file": "datafeed_hosts_network_out.json", - "job_id": "hosts_network_out" - } - ] -} \ No newline at end of file + "id": "metrics_ui_hosts", + "title": "Metrics Hosts", + "description": "Detect anomalous memory and network behavior on hosts.", + "type": "Metricbeat Data", + "logoFile": "logo.json", + "jobs": [ + { + "id": "hosts_memory_usage", + "file": "hosts_memory_usage.json" + }, + { + "id": "hosts_network_in", + "file": "hosts_network_in.json" + }, + { + "id": "hosts_network_out", + "file": "hosts_network_out.json" + } + ], + "datafeeds": [ + { + "id": "datafeed-hosts_memory_usage", + "file": "datafeed_hosts_memory_usage.json", + "job_id": "hosts_memory_usage" + }, + { + "id": "datafeed-hosts_network_in", + "file": "datafeed_hosts_network_in.json", + "job_id": "hosts_network_in" + }, + { + "id": "datafeed-hosts_network_out", + "file": "datafeed_hosts_network_out.json", + "job_id": "hosts_network_out" + } + ] +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_memory_usage.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_memory_usage.json index db883a6ce36f9..0fdede28563a3 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_memory_usage.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_memory_usage.json @@ -1,16 +1,20 @@ { - "job_id": "JOB_ID", - "indices": [ - "INDEX_PATTERN_NAME" - ], - "indices_options": { - "allow_no_indices": true - }, - "query": { - "bool": { - "must": [ - {"exists": {"field": "system.memory"}} - ] + "job_id": "JOB_ID", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "indices_options": { + "allow_no_indices": true + }, + "query": { + "bool": { + "must": [ + { + "exists": { + "field": "system.memory" + } } + ] } -} \ No newline at end of file + } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_in.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_in.json index 7eb430632a81f..d4cfbebe0a437 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_in.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_in.json @@ -1,40 +1,65 @@ { - "job_id": "JOB_ID", - "indices": [ - "INDEX_PATTERN_NAME" - ], - "indices_options": { - "allow_no_indices": true - }, - "query": { - "bool": { - "must": [ - {"exists": {"field": "system.network"}} - ] + "job_id": "JOB_ID", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "indices_options": { + "allow_no_indices": true + }, + "query": { + "bool": { + "must": [ + { + "exists": { + "field": "system.network" + } } - }, - "chunking_config": { - "mode": "manual", - "time_span": "900s" - }, - "aggregations": { - "host.name": {"terms": {"field": "host.name", "size": 100}, - "aggregations": { - "buckets": { - "date_histogram": {"field": "@timestamp","fixed_interval": "5m"}, - "aggregations": { - "@timestamp": {"max": {"field": "@timestamp"}}, - "bytes_in_max": {"max": {"field": "system.network.in.bytes"}}, - "bytes_in_derivative": {"derivative": {"buckets_path": "bytes_in_max"}}, - "positive_only":{ - "bucket_script": { - "buckets_path": {"in_derivative": "bytes_in_derivative.value"}, - "script": "params.in_derivative > 0.0 ? params.in_derivative : 0.0" - } - } - } - } + ] + } + }, + "chunking_config": { + "mode": "manual", + "time_span": "900s" + }, + "aggregations": { + "host.name": { + "terms": { + "field": "host.name", + "size": 100 + }, + "aggregations": { + "buckets": { + "date_histogram": { + "field": "@timestamp", + "fixed_interval": "5m" + }, + "aggregations": { + "@timestamp": { + "max": { + "field": "@timestamp" + } + }, + "bytes_in_max": { + "max": { + "field": "system.network.in.bytes" + } + }, + "bytes_in_derivative": { + "derivative": { + "buckets_path": "bytes_in_max" + } + }, + "positive_only": { + "bucket_script": { + "buckets_path": { + "in_derivative": "bytes_in_derivative.value" + }, + "script": "params.in_derivative > 0.0 ? params.in_derivative : 0.0" + } } + } } + } } -} \ No newline at end of file + } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_out.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_out.json index 427cb678ce663..903cf31416ef4 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_out.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_out.json @@ -1,40 +1,65 @@ { - "job_id": "JOB_ID", - "indices": [ - "INDEX_PATTERN_NAME" - ], - "indices_options": { - "allow_no_indices": true - }, - "query": { - "bool": { - "must": [ - {"exists": {"field": "system.network"}} - ] + "job_id": "JOB_ID", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "indices_options": { + "allow_no_indices": true + }, + "query": { + "bool": { + "must": [ + { + "exists": { + "field": "system.network" + } } - }, - "chunking_config": { - "mode": "manual", - "time_span": "900s" - }, - "aggregations": { - "host.name": {"terms": {"field": "host.name", "size": 100}, - "aggregations": { - "buckets": { - "date_histogram": {"field": "@timestamp","fixed_interval": "5m"}, - "aggregations": { - "@timestamp": {"max": {"field": "@timestamp"}}, - "bytes_out_max": {"max": {"field": "system.network.out.bytes"}}, - "bytes_out_derivative": {"derivative": {"buckets_path": "bytes_out_max"}}, - "positive_only":{ - "bucket_script": { - "buckets_path": {"out_derivative": "bytes_out_derivative.value"}, - "script": "params.out_derivative > 0.0 ? params.out_derivative : 0.0" - } - } - } - } + ] + } + }, + "chunking_config": { + "mode": "manual", + "time_span": "900s" + }, + "aggregations": { + "host.name": { + "terms": { + "field": "host.name", + "size": 100 + }, + "aggregations": { + "buckets": { + "date_histogram": { + "field": "@timestamp", + "fixed_interval": "5m" + }, + "aggregations": { + "@timestamp": { + "max": { + "field": "@timestamp" + } + }, + "bytes_out_max": { + "max": { + "field": "system.network.out.bytes" + } + }, + "bytes_out_derivative": { + "derivative": { + "buckets_path": "bytes_out_max" + } + }, + "positive_only": { + "bucket_script": { + "buckets_path": { + "out_derivative": "bytes_out_derivative.value" + }, + "script": "params.out_derivative > 0.0 ? params.out_derivative : 0.0" + } } + } } + } } -} \ No newline at end of file + } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_memory_usage.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_memory_usage.json index 186c9dcdb27e5..c5f62105613ba 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_memory_usage.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_memory_usage.json @@ -1,50 +1,50 @@ { - "job_type": "anomaly_detector", - "groups": [ - "hosts", - "metrics" - ], - "description": "Metrics: Hosts - Identify unusual spikes in memory usage across hosts.", - "analysis_config": { - "bucket_span": "15m", - "detectors": [ - { - "detector_description": "max('system.memory.actual.used.pct')", - "function": "max", - "field_name": "system.memory.actual.used.pct", - "custom_rules": [ - { - "actions": [ - "skip_result" - ], - "conditions": [ - { - "applies_to": "actual", - "operator": "lt", - "value": 0.1 - } - ] - } + "job_type": "anomaly_detector", + "groups": [ + "hosts", + "metrics" + ], + "description": "Metrics: Hosts - Identify unusual spikes in memory usage across hosts.", + "analysis_config": { + "bucket_span": "15m", + "detectors": [ + { + "detector_description": "max('system.memory.actual.used.pct')", + "function": "max", + "field_name": "system.memory.actual.used.pct", + "custom_rules": [ + { + "actions": [ + "skip_result" + ], + "conditions": [ + { + "applies_to": "actual", + "operator": "lt", + "value": 0.1 + } ] - } - ], - "influencers": [ - "host.name" - ] - }, - "data_description": { - "time_field": "@timestamp" - }, - "analysis_limits": { - "model_memory_limit": "64mb" - }, - "custom_settings": { - "created_by": "ml-module-metrics-ui-hosts", - "custom_urls": [ - { - "url_name": "Host Metrics", - "url_value": "metrics/detail/host/$host.name$?metricTime=(autoReload:!f,refreshInterval:5000,time:(from:%27$earliest$%27,interval:%3E%3D1m,to:%27$latest$%27))" - } - ] - } - } \ No newline at end of file + } + ] + } + ], + "influencers": [ + "host.name" + ] + }, + "data_description": { + "time_field": "@timestamp" + }, + "analysis_limits": { + "model_memory_limit": "64mb" + }, + "custom_settings": { + "created_by": "ml-module-metrics-ui-hosts", + "custom_urls": [ + { + "url_name": "Host Metrics", + "url_value": "metrics/detail/host/$host.name$?metricTime=(autoReload:!f,refreshInterval:5000,time:(from:%27$earliest$%27,interval:%3E%3D1m,to:%27$latest$%27))" + } + ] + } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_in.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_in.json index 0054d90b1df33..258fb87f5260c 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_in.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_in.json @@ -1,37 +1,37 @@ { - "job_type": "anomaly_detector", - "description": "Metrics: Hosts - Identify unusual spikes in inbound traffic across hosts.", - "groups": [ - "hosts", - "metrics" + "job_type": "anomaly_detector", + "description": "Metrics: Hosts - Identify unusual spikes in inbound traffic across hosts.", + "groups": [ + "hosts", + "metrics" + ], + "analysis_config": { + "bucket_span": "15m", + "detectors": [ + { + "detector_description": "max(bytes_in_derivative)", + "function": "max", + "field_name": "bytes_in_derivative" + } ], - "analysis_config": { - "bucket_span": "15m", - "detectors": [ - { - "detector_description": "max(bytes_in_derivative)", - "function": "max", - "field_name": "bytes_in_derivative" - } - ], - "influencers": [ - "host.name" - ], - "summary_count_field_name": "doc_count" - }, - "data_description": { - "time_field": "@timestamp" - }, - "analysis_limits": { - "model_memory_limit": "32mb" - }, - "custom_settings": { - "created_by": "ml-module-metrics-ui-hosts", - "custom_urls": [ - { - "url_name": "Host Metrics", - "url_value": "metrics/detail/host/$host.name$?metricTime=(autoReload:!f,refreshInterval:5000,time:(from:%27$earliest$%27,interval:%3E%3D1m,to:%27$latest$%27))" - } - ] - } - } \ No newline at end of file + "influencers": [ + "host.name" + ], + "summary_count_field_name": "doc_count" + }, + "data_description": { + "time_field": "@timestamp" + }, + "analysis_limits": { + "model_memory_limit": "32mb" + }, + "custom_settings": { + "created_by": "ml-module-metrics-ui-hosts", + "custom_urls": [ + { + "url_name": "Host Metrics", + "url_value": "metrics/detail/host/$host.name$?metricTime=(autoReload:!f,refreshInterval:5000,time:(from:%27$earliest$%27,interval:%3E%3D1m,to:%27$latest$%27))" + } + ] + } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_out.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_out.json index 601cc3807c441..381bc09bac46c 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_out.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_out.json @@ -1,37 +1,37 @@ { - "job_type": "anomaly_detector", - "description": "Metrics: Hosts - Identify unusual spikes in outbound traffic across hosts.", - "groups": [ - "hosts", - "metrics" + "job_type": "anomaly_detector", + "description": "Metrics: Hosts - Identify unusual spikes in outbound traffic across hosts.", + "groups": [ + "hosts", + "metrics" + ], + "analysis_config": { + "bucket_span": "15m", + "detectors": [ + { + "detector_description": "max(bytes_out_derivative)", + "function": "max", + "field_name": "bytes_out_derivative" + } ], - "analysis_config": { - "bucket_span": "15m", - "detectors": [ - { - "detector_description": "max(bytes_out_derivative)", - "function": "max", - "field_name": "bytes_out_derivative" - } - ], - "influencers": [ - "host.name" - ], - "summary_count_field_name": "doc_count" - }, - "data_description": { - "time_field": "@timestamp" - }, - "analysis_limits": { - "model_memory_limit": "32mb" - }, - "custom_settings": { - "created_by": "ml-module-metrics-ui-hosts", - "custom_urls": [ - { - "url_name": "Host Metrics", - "url_value": "metrics/detail/host/$host.name$?metricTime=(autoReload:!f,refreshInterval:5000,time:(from:%27$earliest$%27,interval:%3E%3D1m,to:%27$latest$%27))" - } - ] - } - } \ No newline at end of file + "influencers": [ + "host.name" + ], + "summary_count_field_name": "doc_count" + }, + "data_description": { + "time_field": "@timestamp" + }, + "analysis_limits": { + "model_memory_limit": "32mb" + }, + "custom_settings": { + "created_by": "ml-module-metrics-ui-hosts", + "custom_urls": [ + { + "url_name": "Host Metrics", + "url_value": "metrics/detail/host/$host.name$?metricTime=(autoReload:!f,refreshInterval:5000,time:(from:%27$earliest$%27,interval:%3E%3D1m,to:%27$latest$%27))" + } + ] + } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/logo.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/logo.json index 63105a28c0ab1..206f34df4f50f 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/logo.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/logo.json @@ -1,3 +1,3 @@ { - "icon": "metricsApp" -} \ No newline at end of file + "icon": "metricsApp" +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/manifest.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/manifest.json index 15336069e092b..e3a02120a4ac5 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/manifest.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/manifest.json @@ -1,38 +1,38 @@ { - "id": "metrics_ui_k8s", - "title": "Metrics Kubernetes", - "description": "Detect anomalous memory and network behavior on Kubernetes pods.", - "type": "Metricbeat Data", - "logoFile": "logo.json", - "jobs": [ - { - "id": "k8s_memory_usage", - "file": "k8s_memory_usage.json" - }, - { - "id": "k8s_network_in", - "file": "k8s_network_in.json" - }, - { - "id": "k8s_network_out", - "file": "k8s_network_out.json" - } - ], - "datafeeds": [ - { - "id": "datafeed-k8s_memory_usage", - "file": "datafeed_k8s_memory_usage.json", - "job_id": "k8s_memory_usage" - }, - { - "id": "datafeed-k8s_network_in", - "file": "datafeed_k8s_network_in.json", - "job_id": "k8s_network_in" - }, - { - "id": "datafeed-k8s_network_out", - "file": "datafeed_k8s_network_out.json", - "job_id": "k8s_network_out" - } - ] - } \ No newline at end of file + "id": "metrics_ui_k8s", + "title": "Metrics Kubernetes", + "description": "Detect anomalous memory and network behavior on Kubernetes pods.", + "type": "Metricbeat Data", + "logoFile": "logo.json", + "jobs": [ + { + "id": "k8s_memory_usage", + "file": "k8s_memory_usage.json" + }, + { + "id": "k8s_network_in", + "file": "k8s_network_in.json" + }, + { + "id": "k8s_network_out", + "file": "k8s_network_out.json" + } + ], + "datafeeds": [ + { + "id": "datafeed-k8s_memory_usage", + "file": "datafeed_k8s_memory_usage.json", + "job_id": "k8s_memory_usage" + }, + { + "id": "datafeed-k8s_network_in", + "file": "datafeed_k8s_network_in.json", + "job_id": "k8s_network_in" + }, + { + "id": "datafeed-k8s_network_out", + "file": "datafeed_k8s_network_out.json", + "job_id": "k8s_network_out" + } + ] +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_memory_usage.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_memory_usage.json index 14590f743528e..1a443dc6f3bb7 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_memory_usage.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_memory_usage.json @@ -1,17 +1,25 @@ { - "job_id": "JOB_ID", - "indices": [ - "INDEX_PATTERN_NAME" - ], - "indices_options": { - "allow_no_indices": true - }, - "query": { - "bool": { - "must": [ - {"exists": {"field": "kubernetes.pod.uid"}}, - {"exists": {"field": "kubernetes.pod.memory"}} - ] + "job_id": "JOB_ID", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "indices_options": { + "allow_no_indices": true + }, + "query": { + "bool": { + "must": [ + { + "exists": { + "field": "kubernetes.pod.uid" + } + }, + { + "exists": { + "field": "kubernetes.pod.memory" + } } + ] } -} \ No newline at end of file + } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_in.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_in.json index 4fa4c603ea049..18a48b300f202 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_in.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_in.json @@ -1,44 +1,73 @@ { - "job_id": "JOB_ID", - "indices": [ - "INDEX_PATTERN_NAME" - ], - "indices_options": { - "allow_no_indices": true - }, - "query": { - "bool": { - "must": [ - {"exists": {"field": "kubernetes.pod.network"}} - ] + "job_id": "JOB_ID", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "indices_options": { + "allow_no_indices": true + }, + "query": { + "bool": { + "must": [ + { + "exists": { + "field": "kubernetes.pod.network" + } } - }, - "chunking_config": { - "mode": "manual", - "time_span": "900s" - }, - "aggregations": { - "kubernetes.namespace": {"terms": {"field": "kubernetes.namespace", "size": 25}, - "aggregations": { - "kubernetes.pod.uid": {"terms": {"field": "kubernetes.pod.uid", "size": 100}, - "aggregations": { - "buckets": { - "date_histogram": {"field": "@timestamp","fixed_interval": "5m"}, - "aggregations": { - "@timestamp": {"max": {"field": "@timestamp"}}, - "bytes_in_max": {"max": {"field": "kubernetes.pod.network.rx.bytes"}}, - "bytes_in_derivative": {"derivative": {"buckets_path": "bytes_in_max"}}, - "positive_only":{ - "bucket_script": { - "buckets_path": {"in_derivative": "bytes_in_derivative.value"}, - "script": "params.in_derivative > 0.0 ? params.in_derivative : 0.0" - } - } - } - } - } + ] + } + }, + "chunking_config": { + "mode": "manual", + "time_span": "900s" + }, + "aggregations": { + "kubernetes.namespace": { + "terms": { + "field": "kubernetes.namespace", + "size": 25 + }, + "aggregations": { + "kubernetes.pod.uid": { + "terms": { + "field": "kubernetes.pod.uid", + "size": 100 + }, + "aggregations": { + "buckets": { + "date_histogram": { + "field": "@timestamp", + "fixed_interval": "5m" + }, + "aggregations": { + "@timestamp": { + "max": { + "field": "@timestamp" + } + }, + "bytes_in_max": { + "max": { + "field": "kubernetes.pod.network.rx.bytes" + } + }, + "bytes_in_derivative": { + "derivative": { + "buckets_path": "bytes_in_max" + } + }, + "positive_only": { + "bucket_script": { + "buckets_path": { + "in_derivative": "bytes_in_derivative.value" + }, + "script": "params.in_derivative > 0.0 ? params.in_derivative : 0.0" + } } + } } + } } + } } + } } diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_out.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_out.json index 633dd6bf490e7..18a3f93195095 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_out.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_out.json @@ -1,44 +1,73 @@ { - "job_id": "JOB_ID", - "indices": [ - "INDEX_PATTERN_NAME" - ], - "indices_options": { - "allow_no_indices": true - }, - "query": { - "bool": { - "must": [ - {"exists": {"field": "kubernetes.pod.network"}} - ] + "job_id": "JOB_ID", + "indices": [ + "INDEX_PATTERN_NAME" + ], + "indices_options": { + "allow_no_indices": true + }, + "query": { + "bool": { + "must": [ + { + "exists": { + "field": "kubernetes.pod.network" + } } - }, - "chunking_config": { - "mode": "manual", - "time_span": "900s" - }, - "aggregations": { - "kubernetes.namespace": {"terms": {"field": "kubernetes.namespace", "size": 25}, - "aggregations": { - "kubernetes.pod.uid": {"terms": {"field": "kubernetes.pod.uid", "size": 100}, - "aggregations": { - "buckets": { - "date_histogram": {"field": "@timestamp","fixed_interval": "5m"}, - "aggregations": { - "@timestamp": {"max": {"field": "@timestamp"}}, - "bytes_out_max": {"max": {"field": "kubernetes.pod.network.tx.bytes"}}, - "bytes_out_derivative": {"derivative": {"buckets_path": "bytes_out_max"}}, - "positive_only":{ - "bucket_script": { - "buckets_path": {"pos_derivative": "bytes_out_derivative.value"}, - "script": "params.pos_derivative > 0.0 ? params.pos_derivative : 0.0" - } - } - } - } - } + ] + } + }, + "chunking_config": { + "mode": "manual", + "time_span": "900s" + }, + "aggregations": { + "kubernetes.namespace": { + "terms": { + "field": "kubernetes.namespace", + "size": 25 + }, + "aggregations": { + "kubernetes.pod.uid": { + "terms": { + "field": "kubernetes.pod.uid", + "size": 100 + }, + "aggregations": { + "buckets": { + "date_histogram": { + "field": "@timestamp", + "fixed_interval": "5m" + }, + "aggregations": { + "@timestamp": { + "max": { + "field": "@timestamp" + } + }, + "bytes_out_max": { + "max": { + "field": "kubernetes.pod.network.tx.bytes" + } + }, + "bytes_out_derivative": { + "derivative": { + "buckets_path": "bytes_out_max" + } + }, + "positive_only": { + "bucket_script": { + "buckets_path": { + "pos_derivative": "bytes_out_derivative.value" + }, + "script": "params.pos_derivative > 0.0 ? params.pos_derivative : 0.0" + } } + } } + } } + } } + } } diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_memory_usage.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_memory_usage.json index d3f58086e2fd5..ef57612e9f90e 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_memory_usage.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_memory_usage.json @@ -1,53 +1,53 @@ { - "job_type": "anomaly_detector", - "groups": [ - "k8s", - "metrics" + "job_type": "anomaly_detector", + "groups": [ + "k8s", + "metrics" + ], + "description": "Metrics: Kubernetes - Identify unusual spikes in memory usage across Kubernetes pods.", + "analysis_config": { + "bucket_span": "15m", + "detectors": [ + { + "detector_description": "max('kubernetes.pod.memory.usage.node.pct')", + "function": "max", + "field_name": "kubernetes.pod.memory.usage.node.pct", + "partition_field_name": "kubernetes.namespace", + "custom_rules": [ + { + "actions": [ + "skip_result" + ], + "conditions": [ + { + "applies_to": "actual", + "operator": "lt", + "value": 0.1 + } + ] + } + ] + } ], - "description": "Metrics: Kubernetes - Identify unusual spikes in memory usage across Kubernetes pods.", - "analysis_config": { - "bucket_span": "15m", - "detectors": [ - { - "detector_description": "max('kubernetes.pod.memory.usage.node.pct')", - "function": "max", - "field_name": "kubernetes.pod.memory.usage.node.pct", - "partition_field_name": "kubernetes.namespace", - "custom_rules": [ - { - "actions": [ - "skip_result" - ], - "conditions": [ - { - "applies_to": "actual", - "operator": "lt", - "value": 0.1 - } - ] - } - ] - } - ], - "influencers": [ - "kubernetes.namespace", - "kubernetes.node.name", - "kubernetes.pod.uid" - ] - }, - "data_description": { - "time_field": "@timestamp" - }, - "analysis_limits": { - "model_memory_limit": "64mb" - }, - "custom_settings": { - "created_by": "ml-module-metrics-ui-k8s", - "custom_urls": [ - { - "url_name": "Pod Metrics", - "url_value": "metrics/detail/pod/$kubernetes.pod.uid$?metricTime=(autoReload:!f,refreshInterval:5000,time:(from:%27$earliest$%27,interval:%3E%3D1m,to:%27$latest$%27))" - } - ] - } - } \ No newline at end of file + "influencers": [ + "kubernetes.namespace", + "kubernetes.node.name", + "kubernetes.pod.uid" + ] + }, + "data_description": { + "time_field": "@timestamp" + }, + "analysis_limits": { + "model_memory_limit": "64mb" + }, + "custom_settings": { + "created_by": "ml-module-metrics-ui-k8s", + "custom_urls": [ + { + "url_name": "Pod Metrics", + "url_value": "metrics/detail/pod/$kubernetes.pod.uid$?metricTime=(autoReload:!f,refreshInterval:5000,time:(from:%27$earliest$%27,interval:%3E%3D1m,to:%27$latest$%27))" + } + ] + } +} diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_in.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_in.json index 212b2681beb77..91f855a59add5 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_in.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_in.json @@ -18,7 +18,7 @@ "influencers": [ "kubernetes.namespace", "kubernetes.pod.uid" - ], + ], "summary_count_field_name": "doc_count" }, "data_description": { diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_out.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_out.json index b06b0ed5089ef..e68866a655acf 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_out.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_out.json @@ -18,7 +18,7 @@ "influencers": [ "kubernetes.namespace", "kubernetes.pod.uid" - ], + ], "summary_count_field_name": "doc_count" }, "data_description": { From 9c3d2646b278a0707e0913c848f3e1d93352e0e0 Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Wed, 30 Sep 2020 19:50:45 +0200 Subject: [PATCH 036/142] [Discover] Fix functional time picker test permissions (#78564) --- .../discover/_indexpattern_without_timefield.ts | 3 +++ test/functional/config.js | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/test/functional/apps/discover/_indexpattern_without_timefield.ts b/test/functional/apps/discover/_indexpattern_without_timefield.ts index 99a7045551dc9..677b27c31bd86 100644 --- a/test/functional/apps/discover/_indexpattern_without_timefield.ts +++ b/test/functional/apps/discover/_indexpattern_without_timefield.ts @@ -22,16 +22,19 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService, getPageObjects }: FtrProviderContext) { const esArchiver = getService('esArchiver'); const kibanaServer = getService('kibanaServer'); + const security = getService('security'); const PageObjects = getPageObjects(['common', 'timePicker', 'discover']); describe('indexpattern without timefield', () => { before(async () => { + await security.testUser.setRoles(['kibana_admin', 'kibana_timefield']); await esArchiver.loadIfNeeded('index_pattern_without_timefield'); await kibanaServer.uiSettings.replace({ defaultIndex: 'without-timefield' }); await PageObjects.common.navigateToApp('discover'); }); after(async () => { + await security.testUser.restoreDefaults(); await esArchiver.unload('index_pattern_without_timefield'); }); diff --git a/test/functional/config.js b/test/functional/config.js index 15097d9346471..6081810d41272 100644 --- a/test/functional/config.js +++ b/test/functional/config.js @@ -229,6 +229,21 @@ export default async function ({ readConfigFile }) { kibana: [], }, + kibana_timefield: { + elasticsearch: { + cluster: [], + indices: [ + { + names: ['without-timefield', 'with-timefield'], + privileges: ['read', 'view_index_metadata'], + field_security: { grant: ['*'], except: [] }, + }, + ], + run_as: [], + }, + kibana: [], + }, + kibana_large_strings: { elasticsearch: { cluster: [], From ac18bc0ac3eba68d8da45cdac41eeeb2ca7125ef Mon Sep 17 00:00:00 2001 From: Gidi Meir Morris Date: Wed, 30 Sep 2020 19:38:28 +0100 Subject: [PATCH 037/142] [Actions] Adds a "Test Connector" button on the Connectors List to make discovery of the Test tab easier (#78746) Adds a "Test Connector" button on the Connectors List to make discovery of the Test tab easier. It also adds a "Save & test" button when creating a Connector, which navigates the user straight to the Test tab after saving. This also fixed a broken behaviour on Main where navigating to the Test tab in Case Management crashes Kibana. --- .../email/email_params.test.tsx | 4 + .../es_index/es_index_params.test.tsx | 4 + .../jira/jira_params.test.tsx | 22 ++- .../builtin_action_types/jira/jira_params.tsx | 4 +- .../pagerduty/pagerduty_params.test.tsx | 4 + .../resilient/resilient_params.test.tsx | 18 ++- .../resilient/resilient_params.tsx | 4 +- .../server_log/server_log_params.test.tsx | 7 + .../servicenow/servicenow_params.test.tsx | 4 + .../slack/slack_params.test.tsx | 4 + .../webhook/webhook_params.test.tsx | 4 + .../context/actions_connectors_context.tsx | 11 +- .../action_connector_form/action_form.tsx | 9 +- .../connector_add_flyout.tsx | 90 ++++++++---- .../connector_edit_flyout.scss | 2 +- .../connector_edit_flyout.tsx | 23 ++- .../test_connector_form.tsx | 4 +- .../components/actions_connectors_list.tsx | 137 ++++++++++++------ .../triggers_actions_ui/public/types.ts | 4 +- 19 files changed, 244 insertions(+), 115 deletions(-) diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email_params.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email_params.test.tsx index 8c37dc940a238..ed7b9a19d9541 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email_params.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email_params.test.tsx @@ -6,10 +6,12 @@ import React from 'react'; import { mountWithIntl } from 'test_utils/enzyme_helpers'; import { DocLinksStart } from 'kibana/public'; +import { coreMock } from 'src/core/public/mocks'; import EmailParamsFields from './email_params'; describe('EmailParamsFields renders', () => { test('all params fields is rendered', () => { + const mocks = coreMock.createSetup(); const actionParams = { cc: [], bcc: [], @@ -25,6 +27,8 @@ describe('EmailParamsFields renders', () => { editAction={() => {}} index={0} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} /> ); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/es_index/es_index_params.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/es_index/es_index_params.test.tsx index a882e3bc43f34..0e4215e503275 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/es_index/es_index_params.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/es_index/es_index_params.test.tsx @@ -7,9 +7,11 @@ import React from 'react'; import { mountWithIntl } from 'test_utils/enzyme_helpers'; import ParamsFields from './es_index_params'; import { DocLinksStart } from 'kibana/public'; +import { coreMock } from 'src/core/public/mocks'; describe('IndexParamsFields renders', () => { test('all params fields is rendered', () => { + const mocks = coreMock.createSetup(); const actionParams = { documents: [{ test: 123 }], }; @@ -21,6 +23,8 @@ describe('IndexParamsFields renders', () => { editAction={() => {}} index={0} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} /> ); expect(wrapper.find('[data-test-subj="documentsJsonEditor"]').first().prop('value')).toBe(`{ diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx index 26d358310741c..d96657f8ca407 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx @@ -7,20 +7,16 @@ import React from 'react'; import { mountWithIntl } from 'test_utils/enzyme_helpers'; import JiraParamsFields from './jira_params'; import { DocLinksStart } from 'kibana/public'; +import { coreMock } from 'src/core/public/mocks'; import { useGetIssueTypes } from './use_get_issue_types'; import { useGetFieldsByIssueType } from './use_get_fields_by_issue_type'; -jest.mock('../../../app_context', () => { - const post = jest.fn(); - return { - useAppDependencies: jest.fn(() => ({ http: { post } })), - }; -}); - jest.mock('./use_get_issue_types'); jest.mock('./use_get_fields_by_issue_type'); +const mocks = coreMock.createSetup(); + const useGetIssueTypesMock = useGetIssueTypes as jest.Mock; const useGetFieldsByIssueTypeMock = useGetFieldsByIssueType as jest.Mock; @@ -93,6 +89,8 @@ describe('JiraParamsFields renders', () => { index={0} messageVariables={[]} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} actionConnector={connector} /> ); @@ -118,6 +116,8 @@ describe('JiraParamsFields renders', () => { index={0} messageVariables={[]} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} actionConnector={connector} /> ); @@ -141,6 +141,8 @@ describe('JiraParamsFields renders', () => { index={0} messageVariables={[]} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} actionConnector={connector} /> ); @@ -164,6 +166,8 @@ describe('JiraParamsFields renders', () => { index={0} messageVariables={[]} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} actionConnector={connector} /> ); @@ -191,6 +195,8 @@ describe('JiraParamsFields renders', () => { index={0} messageVariables={[]} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} actionConnector={connector} /> ); @@ -218,6 +224,8 @@ describe('JiraParamsFields renders', () => { index={0} messageVariables={[]} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} actionConnector={connector} /> ); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.tsx index bde3d67ffd65f..b457dcc60a43f 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.tsx @@ -13,7 +13,6 @@ import { EuiFlexGroup } from '@elastic/eui'; import { EuiFlexItem } from '@elastic/eui'; import { EuiSpacer } from '@elastic/eui'; -import { useAppDependencies } from '../../../app_context'; import { ActionParamsProps } from '../../../../types'; import { TextAreaWithMessageVariables } from '../../text_area_with_message_variables'; import { TextFieldWithMessageVariables } from '../../text_field_with_message_variables'; @@ -28,6 +27,8 @@ const JiraParamsFields: React.FunctionComponent { const { title, description, comments, issueType, priority, labels, savedObjectId } = actionParams.subActionParams || {}; @@ -35,7 +36,6 @@ const JiraParamsFields: React.FunctionComponent([]); const [firstLoad, setFirstLoad] = useState(false); const [prioritiesSelectOptions, setPrioritiesSelectOptions] = useState([]); - const { http, toastNotifications } = useAppDependencies(); useEffect(() => { setFirstLoad(true); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/pagerduty/pagerduty_params.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/pagerduty/pagerduty_params.test.tsx index fe83054edbe07..ea947a159b893 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/pagerduty/pagerduty_params.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/pagerduty/pagerduty_params.test.tsx @@ -8,9 +8,11 @@ import { mountWithIntl } from 'test_utils/enzyme_helpers'; import { EventActionOptions, SeverityActionOptions } from '.././types'; import PagerDutyParamsFields from './pagerduty_params'; import { DocLinksStart } from 'kibana/public'; +import { coreMock } from 'src/core/public/mocks'; describe('PagerDutyParamsFields renders', () => { test('all params fields is rendered', () => { + const mocks = coreMock.createSetup(); const actionParams = { eventAction: EventActionOptions.TRIGGER, dedupKey: 'test', @@ -30,6 +32,8 @@ describe('PagerDutyParamsFields renders', () => { editAction={() => {}} index={0} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} /> ); expect(wrapper.find('[data-test-subj="severitySelect"]').length > 0).toBeTruthy(); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient_params.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient_params.test.tsx index 17020805757f9..5f03a548bf16e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient_params.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient_params.test.tsx @@ -10,13 +10,9 @@ import { DocLinksStart } from 'kibana/public'; import { useGetIncidentTypes } from './use_get_incident_types'; import { useGetSeverity } from './use_get_severity'; +import { coreMock } from 'src/core/public/mocks'; -jest.mock('../../../app_context', () => { - const post = jest.fn(); - return { - useAppDependencies: jest.fn(() => ({ http: { post } })), - }; -}); +const mocks = coreMock.createSetup(); jest.mock('./use_get_incident_types'); jest.mock('./use_get_severity'); @@ -92,6 +88,8 @@ describe('ResilientParamsFields renders', () => { index={0} messageVariables={[]} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} actionConnector={connector} /> ); @@ -114,6 +112,8 @@ describe('ResilientParamsFields renders', () => { index={0} messageVariables={[]} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} actionConnector={connector} /> ); @@ -137,6 +137,8 @@ describe('ResilientParamsFields renders', () => { index={0} messageVariables={[]} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} actionConnector={connector} /> ); @@ -157,6 +159,8 @@ describe('ResilientParamsFields renders', () => { index={0} messageVariables={[]} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} actionConnector={connector} /> ); @@ -180,6 +184,8 @@ describe('ResilientParamsFields renders', () => { index={0} messageVariables={[]} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} actionConnector={connector} /> ); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient_params.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient_params.tsx index 4b157c6999985..b150c97506b69 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient_params.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient_params.tsx @@ -17,7 +17,6 @@ import { import { i18n } from '@kbn/i18n'; import { ActionParamsProps } from '../../../../types'; -import { useAppDependencies } from '../../../app_context'; import { ResilientActionParams } from './types'; import { TextAreaWithMessageVariables } from '../../text_area_with_message_variables'; import { TextFieldWithMessageVariables } from '../../text_field_with_message_variables'; @@ -32,9 +31,10 @@ const ResilientParamsFields: React.FunctionComponent { const [firstLoad, setFirstLoad] = useState(false); - const { http, toastNotifications } = useAppDependencies(); const { title, description, comments, incidentTypes, severityCode, savedObjectId } = actionParams.subActionParams || {}; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log_params.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log_params.test.tsx index 3a015cddcd335..407cd70d4ad4c 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log_params.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log_params.test.tsx @@ -8,8 +8,11 @@ import { mountWithIntl } from 'test_utils/enzyme_helpers'; import { ServerLogLevelOptions } from '.././types'; import ServerLogParamsFields from './server_log_params'; import { DocLinksStart } from 'kibana/public'; +import { coreMock } from 'src/core/public/mocks'; describe('ServerLogParamsFields renders', () => { + const mocks = coreMock.createSetup(); + test('all params fields is rendered', () => { const actionParams = { level: ServerLogLevelOptions.TRACE, @@ -23,6 +26,8 @@ describe('ServerLogParamsFields renders', () => { index={0} defaultMessage={'test default message'} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} /> ); expect(wrapper.find('[data-test-subj="loggingLevelSelect"]').length > 0).toBeTruthy(); @@ -44,6 +49,8 @@ describe('ServerLogParamsFields renders', () => { editAction={() => {}} index={0} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} /> ); expect(wrapper.find('[data-test-subj="loggingLevelSelect"]').length > 0).toBeTruthy(); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/servicenow_params.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/servicenow_params.test.tsx index f4d831d7234e7..cc8041b38c360 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/servicenow_params.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/servicenow_params.test.tsx @@ -7,9 +7,11 @@ import React from 'react'; import { mountWithIntl } from 'test_utils/enzyme_helpers'; import ServiceNowParamsFields from './servicenow_params'; import { DocLinksStart } from 'kibana/public'; +import { coreMock } from 'src/core/public/mocks'; describe('ServiceNowParamsFields renders', () => { test('all params fields is rendered', () => { + const mocks = coreMock.createSetup(); const actionParams = { subAction: 'pushToService', subActionParams: { @@ -32,6 +34,8 @@ describe('ServiceNowParamsFields renders', () => { index={0} messageVariables={[]} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} /> ); expect(wrapper.find('[data-test-subj="urgencySelect"]').length > 0).toBeTruthy(); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/slack/slack_params.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/slack/slack_params.test.tsx index 45c1929ae1e22..c580424c05b95 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/slack/slack_params.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/slack/slack_params.test.tsx @@ -7,9 +7,11 @@ import React from 'react'; import { mountWithIntl } from 'test_utils/enzyme_helpers'; import SlackParamsFields from './slack_params'; import { DocLinksStart } from 'kibana/public'; +import { coreMock } from 'src/core/public/mocks'; describe('SlackParamsFields renders', () => { test('all params fields is rendered', () => { + const mocks = coreMock.createSetup(); const actionParams = { message: 'test message', }; @@ -21,6 +23,8 @@ describe('SlackParamsFields renders', () => { editAction={() => {}} index={0} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} /> ); expect(wrapper.find('[data-test-subj="messageTextArea"]').length > 0).toBeTruthy(); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/webhook/webhook_params.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/webhook/webhook_params.test.tsx index 6a1c5cb2bfb53..a4cb36cab76b6 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/webhook/webhook_params.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/webhook/webhook_params.test.tsx @@ -7,9 +7,11 @@ import React from 'react'; import { mountWithIntl } from 'test_utils/enzyme_helpers'; import WebhookParamsFields from './webhook_params'; import { DocLinksStart } from 'kibana/public'; +import { coreMock } from 'src/core/public/mocks'; describe('WebhookParamsFields renders', () => { test('all params fields is rendered', () => { + const mocks = coreMock.createSetup(); const actionParams = { body: 'test message', }; @@ -21,6 +23,8 @@ describe('WebhookParamsFields renders', () => { editAction={() => {}} index={0} docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + toastNotifications={mocks.notifications.toasts} + http={mocks.http} /> ); expect(wrapper.find('[data-test-subj="bodyJsonEditor"]').length > 0).toBeTruthy(); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/context/actions_connectors_context.tsx b/x-pack/plugins/triggers_actions_ui/public/application/context/actions_connectors_context.tsx index d78930344a673..786fc12380f90 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/context/actions_connectors_context.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/context/actions_connectors_context.tsx @@ -5,19 +5,16 @@ */ import React, { createContext, useContext } from 'react'; -import { HttpSetup, ToastsApi, ApplicationStart, DocLinksStart } from 'kibana/public'; -import { ActionTypeModel } from '../../types'; +import { HttpSetup, ApplicationStart, DocLinksStart, ToastsSetup } from 'kibana/public'; +import { ActionTypeModel, ActionConnector } from '../../types'; import { TypeRegistry } from '../type_registry'; export interface ActionsConnectorsContextValue { http: HttpSetup; actionTypeRegistry: TypeRegistry; - toastNotifications: Pick< - ToastsApi, - 'get$' | 'add' | 'remove' | 'addSuccess' | 'addWarning' | 'addDanger' | 'addError' - >; + toastNotifications: ToastsSetup; capabilities: ApplicationStart['capabilities']; - reloadConnectors?: () => Promise; + reloadConnectors?: () => Promise; docLinks: DocLinksStart; consumer?: string; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx index ac5b2a2187c2f..1b176e0f63dbd 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx @@ -29,7 +29,7 @@ import { EuiText, EuiLoadingSpinner, } from '@elastic/eui'; -import { HttpSetup, ToastsApi, ApplicationStart, DocLinksStart } from 'kibana/public'; +import { HttpSetup, ToastsSetup, ApplicationStart, DocLinksStart } from 'kibana/public'; import { loadActionTypes, loadAllActions as loadConnectors } from '../../lib/action_connector_api'; import { IErrorObject, @@ -56,10 +56,7 @@ interface ActionAccordionFormProps { setActionParamsProperty: (key: string, value: any, index: number) => void; http: HttpSetup; actionTypeRegistry: TypeRegistry; - toastNotifications: Pick< - ToastsApi, - 'get$' | 'add' | 'remove' | 'addSuccess' | 'addWarning' | 'addDanger' | 'addError' - >; + toastNotifications: ToastsSetup; docLinks: DocLinksStart; actionTypes?: ActionType[]; messageVariables?: ActionVariable[]; @@ -311,6 +308,8 @@ export const ActionForm = ({ messageVariables={messageVariables} defaultMessage={defaultActionMessage ?? undefined} docLinks={docLinks} + http={http} + toastNotifications={toastNotifications} actionConnector={actionConnector} /> diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.tsx index 19ce653e465f1..9bb9d07307e13 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.tsx @@ -37,12 +37,14 @@ export interface ConnectorAddFlyoutProps { addFlyoutVisible: boolean; setAddFlyoutVisibility: React.Dispatch>; actionTypes?: ActionType[]; + onTestConnector?: (connector: ActionConnector) => void; } export const ConnectorAddFlyout = ({ addFlyoutVisible, setAddFlyoutVisibility, actionTypes, + onTestConnector, }: ConnectorAddFlyoutProps) => { let hasErrors = false; const { @@ -153,6 +155,19 @@ export const ConnectorAddFlyout = ({ return undefined; }); + const onSaveClicked = async () => { + setIsSaving(true); + const savedAction = await onActionConnectorSave(); + setIsSaving(false); + if (savedAction) { + closeFlyout(); + if (reloadConnectors) { + await reloadConnectors(); + } + } + return savedAction; + }; + return ( @@ -245,35 +260,52 @@ export const ConnectorAddFlyout = ({ )} - {canSave && actionTypeModel && actionType ? ( - - { - setIsSaving(true); - const savedAction = await onActionConnectorSave(); - setIsSaving(false); - if (savedAction) { - closeFlyout(); - if (reloadConnectors) { - reloadConnectors(); - } - } - }} - > - - - - ) : null} + + + {canSave && actionTypeModel && actionType ? ( + + {onTestConnector && ( + + { + const savedConnector = await onSaveClicked(); + if (savedConnector) { + onTestConnector(savedConnector); + } + }} + > + + + + )} + + + + + + + ) : null} + + diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.scss b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.scss index 873a3ceb762cd..5d2997d101255 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.scss +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.scss @@ -1,3 +1,3 @@ .connectorEditFlyoutTabs { - margin-bottom: '-25px'; + margin-bottom: -$euiSizeL; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx index fc902a4fabcd8..7b985ab85cd4e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx @@ -26,7 +26,7 @@ import { i18n } from '@kbn/i18n'; import { Option, none, some } from 'fp-ts/lib/Option'; import { ActionConnectorForm, validateBaseProperties } from './action_connector_form'; import { TestConnectorForm } from './test_connector_form'; -import { ActionConnectorTableItem, ActionConnector, IErrorObject } from '../../../types'; +import { ActionConnector, IErrorObject } from '../../../types'; import { connectorReducer } from './connector_reducer'; import { updateActionConnector, executeAction } from '../../lib/action_connector_api'; import { hasSaveActionsCapability } from '../../lib/capabilities'; @@ -36,15 +36,22 @@ import { ActionTypeExecutorResult } from '../../../../../actions/common'; import './connector_edit_flyout.scss'; export interface ConnectorEditProps { - initialConnector: ActionConnectorTableItem; + initialConnector: ActionConnector; editFlyoutVisible: boolean; setEditFlyoutVisibility: React.Dispatch>; + tab?: EditConectorTabs; +} + +export enum EditConectorTabs { + Configuration = 'configuration', + Test = 'test', } export const ConnectorEditFlyout = ({ initialConnector, editFlyoutVisible, setEditFlyoutVisibility, + tab = EditConectorTabs.Configuration, }: ConnectorEditProps) => { const { http, @@ -61,7 +68,7 @@ export const ConnectorEditFlyout = ({ connector: { ...initialConnector, secrets: {} }, }); const [isSaving, setIsSaving] = useState(false); - const [selectedTab, setTab] = useState<'config' | 'test'>('config'); + const [selectedTab, setTab] = useState(tab); const [hasChanges, setHasChanges] = useState(false); const setConnector = (key: string, value: any) => { @@ -232,18 +239,18 @@ export const ConnectorEditFlyout = ({ setTab('config')} + onClick={() => setTab(EditConectorTabs.Configuration)} data-test-subj="configureConnectorTab" - isSelected={'config' === selectedTab} + isSelected={EditConectorTabs.Configuration === selectedTab} > {i18n.translate('xpack.triggersActionsUI.sections.editConnectorForm.tabText', { defaultMessage: 'Configuration', })} setTab('test')} + onClick={() => setTab(EditConectorTabs.Test)} data-test-subj="testConnectorTab" - isSelected={'test' === selectedTab} + isSelected={EditConectorTabs.Test === selectedTab} > {i18n.translate('xpack.triggersActionsUI.sections.testConnectorForm.tabText', { defaultMessage: 'Test', @@ -252,7 +259,7 @@ export const ConnectorEditFlyout = ({ - {selectedTab === 'config' ? ( + {selectedTab === EditConectorTabs.Configuration ? ( !connector.isPreconfigured ? ( { - const { actionTypeRegistry, docLinks } = useActionsConnectorsContext(); + const { actionTypeRegistry, docLinks, http, toastNotifications } = useActionsConnectorsContext(); const actionTypeModel = actionTypeRegistry.get(connector.actionTypeId); const ParamsFieldsComponent = actionTypeModel.actionParamsFields; @@ -74,6 +74,8 @@ export const TestConnectorForm = ({ } messageVariables={[]} docLinks={docLinks} + http={http} + toastNotifications={toastNotifications} actionConnector={connector} /> diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/actions_connectors_list/components/actions_connectors_list.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/actions_connectors_list/components/actions_connectors_list.tsx index 6bc9fd8e7e5a8..da833c3495b4a 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/actions_connectors_list/components/actions_connectors_list.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/actions_connectors_list/components/actions_connectors_list.tsx @@ -24,9 +24,14 @@ import { FormattedMessage } from '@kbn/i18n/react'; import { useAppDependencies } from '../../../app_context'; import { loadAllActions, loadActionTypes, deleteActions } from '../../../lib/action_connector_api'; import ConnectorAddFlyout from '../../action_connector_form/connector_add_flyout'; -import ConnectorEditFlyout from '../../action_connector_form/connector_edit_flyout'; - -import { hasDeleteActionsCapability, hasSaveActionsCapability } from '../../../lib/capabilities'; +import ConnectorEditFlyout, { + EditConectorTabs, +} from '../../action_connector_form/connector_edit_flyout'; +import { + hasDeleteActionsCapability, + hasSaveActionsCapability, + hasExecuteActionsCapability, +} from '../../../lib/capabilities'; import { DeleteModalConfirmation } from '../../../components/delete_modal_confirmation'; import { ActionsConnectorsContextProvider } from '../../../context/actions_connectors_context'; import { checkActionTypeEnabled } from '../../../lib/check_action_type_enabled'; @@ -43,22 +48,20 @@ export const ActionsConnectorsList: React.FunctionComponent = () => { docLinks, } = useAppDependencies(); const canDelete = hasDeleteActionsCapability(capabilities); + const canExecute = hasExecuteActionsCapability(capabilities); const canSave = hasSaveActionsCapability(capabilities); const [actionTypesIndex, setActionTypesIndex] = useState(undefined); const [actions, setActions] = useState([]); - const [data, setData] = useState([]); const [selectedItems, setSelectedItems] = useState([]); const [isLoadingActionTypes, setIsLoadingActionTypes] = useState(false); const [isLoadingActions, setIsLoadingActions] = useState(false); const [editFlyoutVisible, setEditFlyoutVisibility] = useState(false); const [addFlyoutVisible, setAddFlyoutVisibility] = useState(false); - const [actionTypesList, setActionTypesList] = useState>( - [] - ); - const [editedConnectorItem, setEditedConnectorItem] = useState< - ActionConnectorTableItem | undefined - >(undefined); + const [editConnectorProps, setEditConnectorProps] = useState<{ + initialConnector?: ActionConnector; + tab?: EditConectorTabs; + }>({}); const [connectorsToDelete, setConnectorsToDelete] = useState([]); useEffect(() => { @@ -90,30 +93,25 @@ export const ActionsConnectorsList: React.FunctionComponent = () => { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - useEffect(() => { - // Avoid flickering before action types load - if (typeof actionTypesIndex === 'undefined') { - return; - } - // Update the data for the table - const updatedData = actions.map((action) => { - return { - ...action, - actionType: actionTypesIndex[action.actionTypeId] - ? actionTypesIndex[action.actionTypeId].name - : action.actionTypeId, - }; - }); - setData(updatedData); - // Update the action types list for the filter - const actionTypes = Object.values(actionTypesIndex) - .map((actionType) => ({ - value: actionType.id, - name: `${actionType.name} (${getActionsCountByActionType(actions, actionType.id)})`, - })) - .sort((a, b) => a.name.localeCompare(b.name)); - setActionTypesList(actionTypes); - }, [actions, actionTypesIndex]); + const actionConnectorTableItems: ActionConnectorTableItem[] = actionTypesIndex + ? actions.map((action) => { + return { + ...action, + actionType: actionTypesIndex[action.actionTypeId] + ? actionTypesIndex[action.actionTypeId].name + : action.actionTypeId, + }; + }) + : []; + + const actionTypesList: Array<{ value: string; name: string }> = actionTypesIndex + ? Object.values(actionTypesIndex) + .map((actionType) => ({ + value: actionType.id, + name: `${actionType.name} (${getActionsCountByActionType(actions, actionType.id)})`, + })) + .sort((a, b) => a.name.localeCompare(b.name)) + : []; async function loadActions() { setIsLoadingActions(true); @@ -134,8 +132,8 @@ export const ActionsConnectorsList: React.FunctionComponent = () => { } } - async function editItem(connectorTableItem: ActionConnectorTableItem) { - setEditedConnectorItem(connectorTableItem); + async function editItem(actionConnector: ActionConnector, tab: EditConectorTabs) { + setEditConnectorProps({ initialConnector: actionConnector, tab }); setEditFlyoutVisibility(true); } @@ -159,7 +157,7 @@ export const ActionsConnectorsList: React.FunctionComponent = () => { const link = ( editItem(item)} + onClick={() => editItem(item, EditConectorTabs.Configuration)} key={item.id} disabled={actionTypesIndex ? !actionTypesIndex[item.actionTypeId].enabled : true} > @@ -203,6 +201,11 @@ export const ActionsConnectorsList: React.FunctionComponent = () => { item={item} onDelete={() => setConnectorsToDelete([item.id])} /> + editItem(item, EditConectorTabs.Test)} + /> ); }, @@ -212,7 +215,7 @@ export const ActionsConnectorsList: React.FunctionComponent = () => { const table = ( { )} - {data.length !== 0 && table} - {data.length === 0 && canSave && !isLoadingActions && !isLoadingActionTypes && ( - setAddFlyoutVisibility(true)} /> - )} - {data.length === 0 && !canSave && } + {actionConnectorTableItems.length !== 0 && table} + {actionConnectorTableItems.length === 0 && + canSave && + !isLoadingActions && + !isLoadingActionTypes && ( + setAddFlyoutVisibility(true)} /> + )} + {actionConnectorTableItems.length === 0 && !canSave && } { editItem(connector, EditConectorTabs.Test)} /> - {editedConnectorItem ? ( + {editConnectorProps.initialConnector ? ( @@ -433,6 +443,41 @@ const DeleteOperation: React.FunctionComponent<{ ); }; +const RunOperation: React.FunctionComponent<{ + item: ActionConnectorTableItem; + canExecute: boolean; + onRun: () => void; +}> = ({ item, canExecute, onRun }) => { + return ( + + + + + + ); +}; + const NoPermissionPrompt: React.FunctionComponent<{}> = () => ( { messageVariables?: ActionVariable[]; defaultMessage?: string; docLinks: DocLinksStart; + http: HttpSetup; + toastNotifications: ToastsSetup; actionConnector?: ActionConnector; } From 82cad2cb90730ac8b5fcf492eab27f3a69dbbc60 Mon Sep 17 00:00:00 2001 From: Tim Sullivan Date: Wed, 30 Sep 2020 12:01:32 -0700 Subject: [PATCH 038/142] [Reporting] API Integration tests: fix flaky tests for Spaces CSV formatting (#78849) Co-authored-by: Elastic Machine --- .../reporting_and_security/spaces.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/x-pack/test/reporting_api_integration/reporting_and_security/spaces.ts b/x-pack/test/reporting_api_integration/reporting_and_security/spaces.ts index b216f137e27b5..80ba3215ab96f 100644 --- a/x-pack/test/reporting_api_integration/reporting_and_security/spaces.ts +++ b/x-pack/test/reporting_api_integration/reporting_and_security/spaces.ts @@ -62,7 +62,7 @@ export default function ({ getService }: FtrProviderContext) { }); it('should use formats from non-default spaces', async () => { - setSpaceConfig('non_default_space', { + await setSpaceConfig('non_default_space', { 'csv:separator': ';', 'csv:quoteValues': false, 'dateFormat:tz': 'US/Alaska', @@ -82,7 +82,10 @@ export default function ({ getService }: FtrProviderContext) { it(`should use browserTimezone in jobParams for date formatting`, async () => { const tzParam = 'America/Phoenix'; const tzSettings = 'Browser'; - setSpaceConfig('non_default_space', { 'csv:separator': ';', 'dateFormat:tz': tzSettings }); + await setSpaceConfig('non_default_space', { + 'csv:separator': ';', + 'dateFormat:tz': tzSettings, + }); const path = await reportingAPI.postJobJSON(`/api/reporting/generate/csv`, { jobParams: `(browserTimezone:${tzParam},conflictedTypesFields:!(),fields:!(order_date,category,customer_full_name,taxful_total_price,currency),indexPatternId:aac3e500-f2c7-11ea-8250-fb138aa491e7,metaFields:!(_source,_id,_type,_index,_score),objectType:search,searchRequest:(body:(_source:(includes:!(order_date,category,customer_full_name,taxful_total_price,currency)),docvalue_fields:!((field:order_date,format:date_time)),query:(bool:(filter:!((match_all:()),(range:(order_date:(format:strict_date_optional_time,gte:'2019-05-30T05:09:59.743Z',lte:'2019-07-26T08:47:09.682Z')))),must:!(),must_not:!(),should:!())),script_fields:(),sort:!((order_date:(order:desc,unmapped_type:boolean))),stored_fields:!(order_date,category,customer_full_name,taxful_total_price,currency),version:!t),index:'ec*'),title:'EC SEARCH from DEFAULT')`, }); From c9c30b0cb1da92782f74228ba43af0a4ac7a6309 Mon Sep 17 00:00:00 2001 From: Spencer Date: Wed, 30 Sep 2020 12:15:14 -0700 Subject: [PATCH 039/142] [security solution] only import beat_schema when needed (#78708) Co-authored-by: spalger Co-authored-by: Elastic Machine --- .../index_fields/index.test.ts | 4 ++++ .../search_strategy/index_fields/index.ts | 20 +++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/security_solution/server/search_strategy/index_fields/index.test.ts b/x-pack/plugins/security_solution/server/search_strategy/index_fields/index.test.ts index 5a219304cea18..04e81e4c934b3 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/index_fields/index.test.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/index_fields/index.test.ts @@ -8,6 +8,7 @@ import { sortBy } from 'lodash/fp'; import { formatIndexFields, formatFirstFields, formatSecondFields, createFieldItem } from './index'; import { mockAuditbeatIndexField, mockFilebeatIndexField, mockPacketbeatIndexField } from './mock'; +import { fieldsBeat as beatFields } from '../../utils/beat_schema/fields'; describe('Index Fields', () => { describe('formatIndexFields', () => { @@ -16,6 +17,7 @@ describe('Index Fields', () => { sortBy( 'name', await formatIndexFields( + beatFields, [mockAuditbeatIndexField, mockFilebeatIndexField, mockPacketbeatIndexField], ['auditbeat', 'filebeat', 'packetbeat'] ) @@ -167,6 +169,7 @@ describe('Index Fields', () => { describe('formatFirstFields', () => { test('Basic functionality', async () => { const fields = await formatFirstFields( + beatFields, [mockAuditbeatIndexField, mockFilebeatIndexField, mockPacketbeatIndexField], ['auditbeat', 'filebeat', 'packetbeat'] ); @@ -749,6 +752,7 @@ describe('Index Fields', () => { describe('createFieldItem', () => { test('Basic functionality', () => { const item = createFieldItem( + beatFields, ['auditbeat'], { name: '_id', diff --git a/x-pack/plugins/security_solution/server/search_strategy/index_fields/index.ts b/x-pack/plugins/security_solution/server/search_strategy/index_fields/index.ts index 71b641237d6b0..da29cae0eebeb 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/index_fields/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/index_fields/index.ts @@ -12,14 +12,18 @@ import { IndexFieldsStrategyResponse, IndexField, IndexFieldsStrategyRequest, + BeatFields, } from '../../../common/search_strategy/index_fields'; -import { fieldsBeat } from '../../utils/beat_schema/fields'; - export const securitySolutionIndexFieldsProvider = (): ISearchStrategy< IndexFieldsStrategyRequest, IndexFieldsStrategyResponse > => { + // require the fields once we actually need them, rather than ahead of time, and pass + // them to createFieldItem to reduce the amount of work done as much as possible + // eslint-disable-next-line @typescript-eslint/no-var-requires + const beatFields: BeatFields = require('../../utils/beat_schema/fields').fieldsBeat; + return { search: async (context, request) => { const { elasticsearch } = context.core; @@ -41,6 +45,7 @@ export const securitySolutionIndexFieldsProvider = (): ISearchStrategy< if (!request.onlyCheckIfIndicesExist) { indexFields = await formatIndexFields( + beatFields, responsesIndexFields.filter((rif) => rif !== false) as FieldDescriptor[][], dedupeIndices ); @@ -116,6 +121,7 @@ const missingFields: FieldDescriptor[] = [ * @param indexesAliasIdx The index within the alias */ export const createFieldItem = ( + beatFields: BeatFields, indexesAlias: string[], index: FieldDescriptor, indexesAliasIdx: number @@ -126,7 +132,7 @@ export const createFieldItem = ( splitIndexName[splitIndexName.length - 1] === 'text' ? splitIndexName.slice(0, splitIndexName.length - 1).join('.') : index.name; - const beatIndex = fieldsBeat[indexName] ?? {}; + const beatIndex = beatFields[indexName] ?? {}; if (isEmpty(beatIndex.category)) { beatIndex.category = splitIndexName[0]; } @@ -151,6 +157,7 @@ export const createFieldItem = ( * @param indexesAlias The index aliases such as filebeat-* */ export const formatFirstFields = async ( + beatFields: BeatFields, responsesIndexFields: FieldDescriptor[][], indexesAlias: string[] ): Promise => { @@ -160,11 +167,11 @@ export const formatFirstFields = async ( responsesIndexFields.reduce( (accumulator: IndexField[], indexFields: FieldDescriptor[], indexesAliasIdx: number) => { missingFields.forEach((index) => { - const item = createFieldItem(indexesAlias, index, indexesAliasIdx); + const item = createFieldItem(beatFields, indexesAlias, index, indexesAliasIdx); accumulator.push(item); }); indexFields.forEach((index) => { - const item = createFieldItem(indexesAlias, index, indexesAliasIdx); + const item = createFieldItem(beatFields, indexesAlias, index, indexesAliasIdx); accumulator.push(item); }); return accumulator; @@ -224,10 +231,11 @@ export const formatSecondFields = async (fields: IndexField[]): Promise => { - const fields = await formatFirstFields(responsesIndexFields, indexesAlias); + const fields = await formatFirstFields(beatFields, responsesIndexFields, indexesAlias); const secondFields = await formatSecondFields(fields); return secondFields; }; From 90a6d2924ed3e20a4a44c2fb8ebb5875efee12f7 Mon Sep 17 00:00:00 2001 From: Peter Pisljar Date: Wed, 30 Sep 2020 21:19:06 +0200 Subject: [PATCH 040/142] Embeddables: basic documentation (#78900) --- docs/developer/plugin-list.asciidoc | 5 +- .../plugins/embeddable/public/index.md | 12 + ...gins-embeddable-public.action_add_panel.md | 11 + ...ins-embeddable-public.action_edit_panel.md | 11 + ...ugin-plugins-embeddable-public.adapters.md | 13 + ...ble-public.addpanelaction._constructor_.md | 24 + ...mbeddable-public.addpanelaction.execute.md | 22 + ...le-public.addpanelaction.getdisplayname.md | 15 + ...dable-public.addpanelaction.geticontype.md | 15 + ...ins-embeddable-public.addpanelaction.id.md | 11 + ...able-public.addpanelaction.iscompatible.md | 22 + ...lugins-embeddable-public.addpanelaction.md | 34 + ...s-embeddable-public.addpanelaction.type.md | 11 + ...ns-embeddable-public.chartactioncontext.md | 11 + ...beddable-public.container._constructor_.md | 23 + ...dable-public.container.addnewembeddable.md | 23 + ...ns-embeddable-public.container.children.md | 13 + ...le-public.container.createnewpanelstate.md | 23 + ...ins-embeddable-public.container.destroy.md | 15 + ...ns-embeddable-public.container.getchild.md | 22 + ...embeddable-public.container.getchildids.md | 15 + ...-embeddable-public.container.getfactory.md | 11 + ...able-public.container.getinheritedinput.md | 24 + ...dable-public.container.getinputforchild.md | 22 + ...beddable-public.container.getpanelstate.md | 22 + ...embeddable-public.container.iscontainer.md | 11 + ...gin-plugins-embeddable-public.container.md | 43 + ...gins-embeddable-public.container.reload.md | 15 + ...dable-public.container.removeembeddable.md | 22 + ...-public.container.untilembeddableloaded.md | 22 + ...le-public.container.updateinputforchild.md | 23 + ...e-public.containerinput.hidepaneltitles.md | 11 + ...lugins-embeddable-public.containerinput.md | 19 + ...embeddable-public.containerinput.panels.md | 15 + ...public.containeroutput.embeddableloaded.md | 13 + ...ugins-embeddable-public.containeroutput.md | 18 + ...-embeddable-public.context_menu_trigger.md | 11 + ...ns-embeddable-public.contextmenutrigger.md | 11 + ...public.defaultembeddablefactoryprovider.md | 11 + ...le-public.editpanelaction._constructor_.md | 22 + ...ble-public.editpanelaction.currentappid.md | 11 + ...beddable-public.editpanelaction.execute.md | 22 + ...ble-public.editpanelaction.getapptarget.md | 22 + ...e-public.editpanelaction.getdisplayname.md | 22 + ...beddable-public.editpanelaction.gethref.md | 22 + ...able-public.editpanelaction.geticontype.md | 15 + ...ns-embeddable-public.editpanelaction.id.md | 11 + ...ble-public.editpanelaction.iscompatible.md | 22 + ...ugins-embeddable-public.editpanelaction.md | 38 + ...embeddable-public.editpanelaction.order.md | 11 + ...-embeddable-public.editpanelaction.type.md | 11 + ...eddable-public.embeddable._constructor_.md | 22 + ...ns-embeddable-public.embeddable.destroy.md | 17 + ...s-embeddable-public.embeddable.getinput.md | 15 + ...-embeddable-public.embeddable.getinput_.md | 15 + ...-public.embeddable.getinspectoradapters.md | 17 + ...ddable-public.embeddable.getiscontainer.md | 15 + ...-embeddable-public.embeddable.getoutput.md | 15 + ...embeddable-public.embeddable.getoutput_.md | 15 + ...ns-embeddable-public.embeddable.getroot.md | 17 + ...s-embeddable-public.embeddable.gettitle.md | 15 + ...plugins-embeddable-public.embeddable.id.md | 11 + ...gins-embeddable-public.embeddable.input.md | 11 + ...mbeddable-public.embeddable.iscontainer.md | 11 + ...in-plugins-embeddable-public.embeddable.md | 51 ++ ...ins-embeddable-public.embeddable.output.md | 11 + ...ins-embeddable-public.embeddable.parent.md | 11 + ...ins-embeddable-public.embeddable.reload.md | 17 + ...ins-embeddable-public.embeddable.render.md | 22 + ...ddable-public.embeddable.rendercomplete.md | 11 + ...-embeddable-public.embeddable.runtimeid.md | 11 + ...ble-public.embeddable.supportedtriggers.md | 15 + ...ugins-embeddable-public.embeddable.type.md | 11 + ...mbeddable-public.embeddable.updateinput.md | 22 + ...beddable-public.embeddable.updateoutput.md | 22 + ...blic.embeddablechildpanel._constructor_.md | 20 + ....embeddablechildpanel.componentdidmount.md | 15 + ...beddablechildpanel.componentwillunmount.md | 15 + ...-public.embeddablechildpanel.embeddable.md | 11 + ...-embeddable-public.embeddablechildpanel.md | 35 + ...ble-public.embeddablechildpanel.mounted.md | 11 + ...able-public.embeddablechildpanel.render.md | 15 + ...lic.embeddablechildpanelprops.classname.md | 11 + ...lic.embeddablechildpanelprops.container.md | 11 + ....embeddablechildpanelprops.embeddableid.md | 11 + ...ddable-public.embeddablechildpanelprops.md | 21 + ...mbeddablechildpanelprops.panelcomponent.md | 11 + ...ble-public.embeddablecontext.embeddable.md | 11 + ...ins-embeddable-public.embeddablecontext.md | 18 + ...blic.embeddableeditorstate.embeddableid.md | 11 + ...embeddable-public.embeddableeditorstate.md | 22 + ...ic.embeddableeditorstate.originatingapp.md | 11 + ...public.embeddableeditorstate.valueinput.md | 11 + ...e-public.embeddablefactory.cancreatenew.md | 17 + ...eddable-public.embeddablefactory.create.md | 27 + ...embeddablefactory.createfromsavedobject.md | 26 + ...ublic.embeddablefactory.getdefaultinput.md | 24 + ...public.embeddablefactory.getdisplayname.md | 17 + ...blic.embeddablefactory.getexplicitinput.md | 17 + ...ublic.embeddablefactory.iscontainertype.md | 13 + ...ble-public.embeddablefactory.iseditable.md | 13 + ...ins-embeddable-public.embeddablefactory.md | 34 + ...c.embeddablefactory.savedobjectmetadata.md | 11 + ...mbeddable-public.embeddablefactory.type.md | 11 + ...able-public.embeddablefactorydefinition.md | 11 + ...dablefactorynotfounderror._constructor_.md | 20 + ...lic.embeddablefactorynotfounderror.code.md | 11 + ...e-public.embeddablefactorynotfounderror.md | 24 + ...ugins-embeddable-public.embeddableinput.md | 23 + ...blic.embeddableinstanceconfiguration.id.md | 11 + ...-public.embeddableinstanceconfiguration.md | 19 + ...ableinstanceconfiguration.savedobjectid.md | 11 + ...le-public.embeddableoutput.defaulttitle.md | 11 + ...ddable-public.embeddableoutput.editable.md | 11 + ...eddable-public.embeddableoutput.editapp.md | 11 + ...ddable-public.embeddableoutput.editpath.md | 11 + ...eddable-public.embeddableoutput.editurl.md | 11 + ...mbeddable-public.embeddableoutput.error.md | 11 + ...eddable-public.embeddableoutput.loading.md | 11 + ...gins-embeddable-public.embeddableoutput.md | 26 + ...e-public.embeddableoutput.savedobjectid.md | 11 + ...mbeddable-public.embeddableoutput.title.md | 11 + ...lic.embeddablepackagestate.embeddableid.md | 11 + ...ble-public.embeddablepackagestate.input.md | 11 + ...mbeddable-public.embeddablepackagestate.md | 22 + ...able-public.embeddablepackagestate.type.md | 11 + ...le-public.embeddablepanel._constructor_.md | 20 + ...embeddablepanel.closemycontextmenupanel.md | 11 + ...ublic.embeddablepanel.componentdidmount.md | 15 + ...ic.embeddablepanel.componentwillunmount.md | 15 + ...ugins-embeddable-public.embeddablepanel.md | 35 + ...mbeddable-public.embeddablepanel.onblur.md | 11 + ...beddable-public.embeddablepanel.onfocus.md | 11 + ...mbeddable-public.embeddablepanel.render.md | 15 + ...beddablepanel.unsafe_componentwillmount.md | 15 + ...ns-embeddable-public.embeddablepanelhoc.md | 14 + ...ns-embeddable-public.embeddablerenderer.md | 32 + ...beddable-public.embeddablerendererprops.md | 13 + ...ble-public.embeddableroot._constructor_.md | 20 + ...public.embeddableroot.componentdidmount.md | 15 + ...ublic.embeddableroot.componentdidupdate.md | 22 + ...lugins-embeddable-public.embeddableroot.md | 27 + ...embeddable-public.embeddableroot.render.md | 15 + ...ic.embeddableroot.shouldcomponentupdate.md | 22 + ...ugins-embeddable-public.embeddablesetup.md | 20 + ...beddablesetup.registerembeddablefactory.md | 11 + ...lic.embeddablesetup.registerenhancement.md | 11 + ...etup.setcustomembeddablefactoryprovider.md | 11 + ...public.embeddablesetupdependencies.data.md | 11 + ...able-public.embeddablesetupdependencies.md | 19 + ...c.embeddablesetupdependencies.uiactions.md | 11 + ...-public.embeddablestart.embeddablepanel.md | 11 + ....embeddablestart.getembeddablefactories.md | 11 + ...ic.embeddablestart.getembeddablefactory.md | 11 + ...blic.embeddablestart.getembeddablepanel.md | 11 + ...public.embeddablestart.getstatetransfer.md | 11 + ...ugins-embeddable-public.embeddablestart.md | 22 + ...public.embeddablestartdependencies.data.md | 11 + ...c.embeddablestartdependencies.inspector.md | 11 + ...able-public.embeddablestartdependencies.md | 20 + ...c.embeddablestartdependencies.uiactions.md | 11 + ...c.embeddablestatetransfer._constructor_.md | 22 + ...mbeddablestatetransfer.getappnamefromid.md | 13 + ...blestatetransfer.getincomingeditorstate.md | 26 + ...tetransfer.getincomingembeddablepackage.md | 26 + ...beddable-public.embeddablestatetransfer.md | 35 + ...mbeddablestatetransfer.navigatetoeditor.md | 29 + ...ransfer.navigatetowithembeddablepackage.md | 29 + ...public.enhancementregistrydefinition.id.md | 11 + ...le-public.enhancementregistrydefinition.md | 18 + ...le-public.errorembeddable._constructor_.md | 22 + ...beddable-public.errorembeddable.destroy.md | 15 + ...embeddable-public.errorembeddable.error.md | 11 + ...ugins-embeddable-public.errorembeddable.md | 33 + ...mbeddable-public.errorembeddable.reload.md | 15 + ...mbeddable-public.errorembeddable.render.md | 22 + ...-embeddable-public.errorembeddable.type.md | 11 + ...able-public.icontainer.addnewembeddable.md | 25 + ...s-embeddable-public.icontainer.getchild.md | 24 + ...able-public.icontainer.getinputforchild.md | 24 + ...in-plugins-embeddable-public.icontainer.md | 23 + ...able-public.icontainer.removeembeddable.md | 24 + ...public.icontainer.untilembeddableloaded.md | 24 + ...e-public.icontainer.updateinputforchild.md | 25 + ...s-embeddable-public.iembeddable.destroy.md | 17 + ...eddable-public.iembeddable.enhancements.md | 13 + ...-embeddable-public.iembeddable.getinput.md | 21 + ...embeddable-public.iembeddable.getinput_.md | 17 + ...public.iembeddable.getinspectoradapters.md | 17 + ...dable-public.iembeddable.getiscontainer.md | 17 + ...embeddable-public.iembeddable.getoutput.md | 21 + ...mbeddable-public.iembeddable.getoutput_.md | 17 + ...s-embeddable-public.iembeddable.getroot.md | 17 + ...-embeddable-public.iembeddable.gettitle.md | 17 + ...lugins-embeddable-public.iembeddable.id.md | 13 + ...beddable-public.iembeddable.iscontainer.md | 13 + ...n-plugins-embeddable-public.iembeddable.md | 41 + ...ns-embeddable-public.iembeddable.parent.md | 13 + ...ns-embeddable-public.iembeddable.reload.md | 17 + ...ns-embeddable-public.iembeddable.render.md | 24 + ...embeddable-public.iembeddable.runtimeid.md | 13 + ...le-public.iembeddable.supportedtriggers.md | 17 + ...gins-embeddable-public.iembeddable.type.md | 13 + ...beddable-public.iembeddable.updateinput.md | 24 + ...ins-embeddable-public.iserrorembeddable.md | 22 + ...able-public.israngeselecttriggercontext.md | 11 + ...ble-public.isreferenceorvalueembeddable.md | 22 + ...ble-public.issavedobjectembeddableinput.md | 22 + ...dable-public.isvalueclicktriggercontext.md | 11 + ...kibana-plugin-plugins-embeddable-public.md | 95 ++ ...ns-embeddable-public.openaddpanelflyout.md | 29 + ...in-plugins-embeddable-public.outputspec.md | 11 + ...s-embeddable-public.panel_badge_trigger.md | 11 + ...dable-public.panel_notification_trigger.md | 11 + ...ins-embeddable-public.panelbadgetrigger.md | 11 + ...public.panelnotfounderror._constructor_.md | 13 + ...beddable-public.panelnotfounderror.code.md | 11 + ...ns-embeddable-public.panelnotfounderror.md | 24 + ...eddable-public.panelnotificationtrigger.md | 11 + ...eddable-public.panelstate.explicitinput.md | 13 + ...plugins-embeddable-public.panelstate.id.md | 11 + ...in-plugins-embeddable-public.panelstate.md | 24 + ...ugins-embeddable-public.panelstate.type.md | 11 + ...plugin-plugins-embeddable-public.plugin.md | 22 + ...beddable-public.propertyspec.accesspath.md | 11 + ...eddable-public.propertyspec.description.md | 11 + ...eddable-public.propertyspec.displayname.md | 11 + ...ugins-embeddable-public.propertyspec.id.md | 11 + ...-plugins-embeddable-public.propertyspec.md | 22 + ...ns-embeddable-public.propertyspec.value.md | 11 + ...beddable-public.rangeselectcontext.data.md | 16 + ...le-public.rangeselectcontext.embeddable.md | 11 + ...ns-embeddable-public.rangeselectcontext.md | 19 + ...enceorvalueembeddable.getinputasreftype.md | 13 + ...ceorvalueembeddable.getinputasvaluetype.md | 13 + ...ferenceorvalueembeddable.inputisreftype.md | 13 + ...dable-public.referenceorvalueembeddable.md | 22 + ...dable-public.savedobjectembeddableinput.md | 18 + ...avedobjectembeddableinput.savedobjectid.md | 11 + ...mbeddable-public.valueclickcontext.data.md | 20 + ...ble-public.valueclickcontext.embeddable.md | 11 + ...ins-embeddable-public.valueclickcontext.md | 19 + ...ugin-plugins-embeddable-public.viewmode.md | 19 + ...dable-public.withembeddablesubscription.md | 17 + .../plugins/embeddable/server/index.md | 12 + ...-server.embeddableregistrydefinition.id.md | 11 + ...ble-server.embeddableregistrydefinition.md | 18 + ...ugins-embeddable-server.embeddablesetup.md | 19 + ...beddablesetup.registerembeddablefactory.md | 11 + ...ver.embeddablesetup.registerenhancement.md | 11 + ...server.enhancementregistrydefinition.id.md | 11 + ...le-server.enhancementregistrydefinition.md | 18 + ...kibana-plugin-plugins-embeddable-server.md | 20 + ...plugin-plugins-embeddable-server.plugin.md | 11 + src/dev/run_check_published_api_changes.ts | 2 + src/plugins/embeddable/README.asciidoc | 44 + src/plugins/embeddable/README.md | 31 - src/plugins/embeddable/public/public.api.md | 843 ++++++++++++++++++ src/plugins/embeddable/server/server.api.md | 50 ++ 259 files changed, 5290 insertions(+), 33 deletions(-) create mode 100644 docs/development/plugins/embeddable/public/index.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.action_add_panel.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.action_edit_panel.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.adapters.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction._constructor_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.execute.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.getdisplayname.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.geticontype.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.id.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.iscompatible.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.type.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.chartactioncontext.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container._constructor_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.addnewembeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.children.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.createnewpanelstate.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.destroy.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getchild.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getchildids.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getfactory.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getinheritedinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getinputforchild.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getpanelstate.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.iscontainer.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.reload.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.removeembeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.untilembeddableloaded.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.updateinputforchild.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containerinput.hidepaneltitles.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containerinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containerinput.panels.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containeroutput.embeddableloaded.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containeroutput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.context_menu_trigger.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.contextmenutrigger.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.defaultembeddablefactoryprovider.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction._constructor_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.currentappid.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.execute.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.getapptarget.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.getdisplayname.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.gethref.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.geticontype.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.id.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.iscompatible.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.order.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.type.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable._constructor_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.destroy.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getinput_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getinspectoradapters.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getiscontainer.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getoutput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getoutput_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getroot.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.gettitle.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.id.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.input.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.iscontainer.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.output.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.parent.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.reload.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.render.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.rendercomplete.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.runtimeid.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.supportedtriggers.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.type.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.updateinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.updateoutput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel._constructor_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.componentdidmount.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.componentwillunmount.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.embeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.mounted.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.render.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.classname.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.container.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.embeddableid.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.panelcomponent.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablecontext.embeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablecontext.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.embeddableid.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.originatingapp.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.valueinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.cancreatenew.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.create.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.createfromsavedobject.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.getdefaultinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.getdisplayname.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.getexplicitinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.iscontainertype.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.iseditable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.savedobjectmetadata.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.type.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorydefinition.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror._constructor_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.code.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.id.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.savedobjectid.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.defaulttitle.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editapp.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editpath.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editurl.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.error.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.loading.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.savedobjectid.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.title.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.embeddableid.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.input.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.type.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel._constructor_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.closemycontextmenupanel.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.componentdidmount.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.componentwillunmount.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.onblur.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.onfocus.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.render.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.unsafe_componentwillmount.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanelhoc.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablerenderer.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablerendererprops.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot._constructor_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.componentdidmount.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.componentdidupdate.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.render.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.shouldcomponentupdate.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.registerembeddablefactory.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.registerenhancement.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.setcustomembeddablefactoryprovider.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.data.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.uiactions.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.embeddablepanel.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablefactories.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablefactory.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablepanel.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getstatetransfer.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.data.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.inspector.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.uiactions.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer._constructor_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getappnamefromid.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getincomingeditorstate.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getincomingembeddablepackage.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.navigatetoeditor.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.navigatetowithembeddablepackage.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.id.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable._constructor_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.destroy.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.error.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.reload.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.render.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.type.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.addnewembeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.getchild.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.getinputforchild.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.removeembeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.untilembeddableloaded.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.updateinputforchild.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.destroy.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.enhancements.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getinput_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getinspectoradapters.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getiscontainer.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getoutput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getoutput_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getroot.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.gettitle.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.id.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.iscontainer.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.parent.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.reload.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.render.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.runtimeid.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.supportedtriggers.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.type.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.updateinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iserrorembeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.israngeselecttriggercontext.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.isreferenceorvalueembeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.issavedobjectembeddableinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.isvalueclicktriggercontext.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.openaddpanelflyout.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.outputspec.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panel_badge_trigger.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panel_notification_trigger.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelbadgetrigger.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotfounderror._constructor_.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotfounderror.code.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotfounderror.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotificationtrigger.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.explicitinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.id.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.type.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.plugin.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.accesspath.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.description.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.displayname.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.id.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.value.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.rangeselectcontext.data.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.rangeselectcontext.embeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.rangeselectcontext.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.getinputasreftype.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.getinputasvaluetype.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.inputisreftype.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.savedobjectid.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.valueclickcontext.data.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.valueclickcontext.embeddable.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.valueclickcontext.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.viewmode.md create mode 100644 docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.withembeddablesubscription.md create mode 100644 docs/development/plugins/embeddable/server/index.md create mode 100644 docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.id.md create mode 100644 docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.md create mode 100644 docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddablesetup.md create mode 100644 docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddablesetup.registerembeddablefactory.md create mode 100644 docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddablesetup.registerenhancement.md create mode 100644 docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.id.md create mode 100644 docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.md create mode 100644 docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.md create mode 100644 docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.plugin.md create mode 100644 src/plugins/embeddable/README.asciidoc delete mode 100644 src/plugins/embeddable/README.md create mode 100644 src/plugins/embeddable/public/public.api.md create mode 100644 src/plugins/embeddable/server/server.api.md diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index da62d1707f065..e314e55c34085 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -62,8 +62,8 @@ This API doesn't support angular, for registering angular dev tools, bootstrap a |Contains the Discover application and the saved search embeddable. -|{kib-repo}blob/{branch}/src/plugins/embeddable/README.md[embeddable] -|Embeddables are re-usable widgets that can be rendered in any environment or plugin. Developers can embed them directly in their plugin. End users can dynamically add them to any embeddable containers. +|<> +|Embeddables are re-usable widgets that can be rendered in any environment or plugin. Developers can embed them directly in their plugin. End users can dynamically add them to any embeddable _containers_. |{kib-repo}blob/{branch}/src/plugins/es_ui_shared/README.md[esUiShared] @@ -530,6 +530,7 @@ in their infrastructure. |=== include::{kibana-root}/src/plugins/dashboard/README.asciidoc[leveloffset=+1] +include::{kibana-root}/src/plugins/embeddable/README.asciidoc[leveloffset=+1] include::{kibana-root}/src/plugins/expressions/README.asciidoc[leveloffset=+1] include::{kibana-root}/src/plugins/ui_actions/README.asciidoc[leveloffset=+1] include::{kibana-root}/x-pack/plugins/dashboard_enhanced/README.asciidoc[leveloffset=+1] diff --git a/docs/development/plugins/embeddable/public/index.md b/docs/development/plugins/embeddable/public/index.md new file mode 100644 index 0000000000000..5de9666f6d0b9 --- /dev/null +++ b/docs/development/plugins/embeddable/public/index.md @@ -0,0 +1,12 @@ + + +[Home](./index.md) + +## API Reference + +## Packages + +| Package | Description | +| --- | --- | +| [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.action_add_panel.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.action_add_panel.md new file mode 100644 index 0000000000000..37c7a546d11ed --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.action_add_panel.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ACTION\_ADD\_PANEL](./kibana-plugin-plugins-embeddable-public.action_add_panel.md) + +## ACTION\_ADD\_PANEL variable + +Signature: + +```typescript +ACTION_ADD_PANEL = "ACTION_ADD_PANEL" +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.action_edit_panel.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.action_edit_panel.md new file mode 100644 index 0000000000000..89f02e69f2260 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.action_edit_panel.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ACTION\_EDIT\_PANEL](./kibana-plugin-plugins-embeddable-public.action_edit_panel.md) + +## ACTION\_EDIT\_PANEL variable + +Signature: + +```typescript +ACTION_EDIT_PANEL = "editPanel" +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.adapters.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.adapters.md new file mode 100644 index 0000000000000..9635b36cdf05a --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.adapters.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Adapters](./kibana-plugin-plugins-embeddable-public.adapters.md) + +## Adapters interface + +The interface that the adapters used to open an inspector have to fullfill. + +Signature: + +```typescript +export interface Adapters +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction._constructor_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction._constructor_.md new file mode 100644 index 0000000000000..388f0e064d866 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction._constructor_.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [AddPanelAction](./kibana-plugin-plugins-embeddable-public.addpanelaction.md) > [(constructor)](./kibana-plugin-plugins-embeddable-public.addpanelaction._constructor_.md) + +## AddPanelAction.(constructor) + +Constructs a new instance of the `AddPanelAction` class + +Signature: + +```typescript +constructor(getFactory: EmbeddableStart['getEmbeddableFactory'], getAllFactories: EmbeddableStart['getEmbeddableFactories'], overlays: OverlayStart, notifications: NotificationsStart, SavedObjectFinder: React.ComponentType); +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| getFactory | EmbeddableStart['getEmbeddableFactory'] | | +| getAllFactories | EmbeddableStart['getEmbeddableFactories'] | | +| overlays | OverlayStart | | +| notifications | NotificationsStart | | +| SavedObjectFinder | React.ComponentType<any> | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.execute.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.execute.md new file mode 100644 index 0000000000000..46629f3c654f8 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.execute.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [AddPanelAction](./kibana-plugin-plugins-embeddable-public.addpanelaction.md) > [execute](./kibana-plugin-plugins-embeddable-public.addpanelaction.execute.md) + +## AddPanelAction.execute() method + +Signature: + +```typescript +execute(context: ActionExecutionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionExecutionContext<ActionContext> | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.getdisplayname.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.getdisplayname.md new file mode 100644 index 0000000000000..b3a181861572b --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.getdisplayname.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [AddPanelAction](./kibana-plugin-plugins-embeddable-public.addpanelaction.md) > [getDisplayName](./kibana-plugin-plugins-embeddable-public.addpanelaction.getdisplayname.md) + +## AddPanelAction.getDisplayName() method + +Signature: + +```typescript +getDisplayName(): string; +``` +Returns: + +`string` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.geticontype.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.geticontype.md new file mode 100644 index 0000000000000..c02aa6613630b --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.geticontype.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [AddPanelAction](./kibana-plugin-plugins-embeddable-public.addpanelaction.md) > [getIconType](./kibana-plugin-plugins-embeddable-public.addpanelaction.geticontype.md) + +## AddPanelAction.getIconType() method + +Signature: + +```typescript +getIconType(): string; +``` +Returns: + +`string` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.id.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.id.md new file mode 100644 index 0000000000000..781fb8ed29372 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.id.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [AddPanelAction](./kibana-plugin-plugins-embeddable-public.addpanelaction.md) > [id](./kibana-plugin-plugins-embeddable-public.addpanelaction.id.md) + +## AddPanelAction.id property + +Signature: + +```typescript +readonly id = "ACTION_ADD_PANEL"; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.iscompatible.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.iscompatible.md new file mode 100644 index 0000000000000..c8349b86cf348 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.iscompatible.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [AddPanelAction](./kibana-plugin-plugins-embeddable-public.addpanelaction.md) > [isCompatible](./kibana-plugin-plugins-embeddable-public.addpanelaction.iscompatible.md) + +## AddPanelAction.isCompatible() method + +Signature: + +```typescript +isCompatible(context: ActionExecutionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionExecutionContext<ActionContext> | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.md new file mode 100644 index 0000000000000..74a6c2b2183a2 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.md @@ -0,0 +1,34 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [AddPanelAction](./kibana-plugin-plugins-embeddable-public.addpanelaction.md) + +## AddPanelAction class + +Signature: + +```typescript +export declare class AddPanelAction implements Action +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)(getFactory, getAllFactories, overlays, notifications, SavedObjectFinder)](./kibana-plugin-plugins-embeddable-public.addpanelaction._constructor_.md) | | Constructs a new instance of the AddPanelAction class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [id](./kibana-plugin-plugins-embeddable-public.addpanelaction.id.md) | | | | +| [type](./kibana-plugin-plugins-embeddable-public.addpanelaction.type.md) | | | | + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [execute(context)](./kibana-plugin-plugins-embeddable-public.addpanelaction.execute.md) | | | +| [getDisplayName()](./kibana-plugin-plugins-embeddable-public.addpanelaction.getdisplayname.md) | | | +| [getIconType()](./kibana-plugin-plugins-embeddable-public.addpanelaction.geticontype.md) | | | +| [isCompatible(context)](./kibana-plugin-plugins-embeddable-public.addpanelaction.iscompatible.md) | | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.type.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.type.md new file mode 100644 index 0000000000000..d57974c984025 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.addpanelaction.type.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [AddPanelAction](./kibana-plugin-plugins-embeddable-public.addpanelaction.md) > [type](./kibana-plugin-plugins-embeddable-public.addpanelaction.type.md) + +## AddPanelAction.type property + +Signature: + +```typescript +readonly type = "ACTION_ADD_PANEL"; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.chartactioncontext.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.chartactioncontext.md new file mode 100644 index 0000000000000..1c9fc27d53f19 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.chartactioncontext.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ChartActionContext](./kibana-plugin-plugins-embeddable-public.chartactioncontext.md) + +## ChartActionContext type + +Signature: + +```typescript +export declare type ChartActionContext = ValueClickContext | RangeSelectContext; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container._constructor_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container._constructor_.md new file mode 100644 index 0000000000000..c571bae7c7613 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container._constructor_.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [(constructor)](./kibana-plugin-plugins-embeddable-public.container._constructor_.md) + +## Container.(constructor) + +Constructs a new instance of the `Container` class + +Signature: + +```typescript +constructor(input: TContainerInput, output: TContainerOutput, getFactory: EmbeddableStart['getEmbeddableFactory'], parent?: Container); +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| input | TContainerInput | | +| output | TContainerOutput | | +| getFactory | EmbeddableStart['getEmbeddableFactory'] | | +| parent | Container | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.addnewembeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.addnewembeddable.md new file mode 100644 index 0000000000000..1a7b32fea5361 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.addnewembeddable.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [addNewEmbeddable](./kibana-plugin-plugins-embeddable-public.container.addnewembeddable.md) + +## Container.addNewEmbeddable() method + +Signature: + +```typescript +addNewEmbeddable = IEmbeddable>(type: string, explicitInput: Partial): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| type | string | | +| explicitInput | Partial<EEI> | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.children.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.children.md new file mode 100644 index 0000000000000..e8f140219ed9c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.children.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [children](./kibana-plugin-plugins-embeddable-public.container.children.md) + +## Container.children property + +Signature: + +```typescript +protected readonly children: { + [key: string]: IEmbeddable | ErrorEmbeddable; + }; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.createnewpanelstate.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.createnewpanelstate.md new file mode 100644 index 0000000000000..cb084192ccf23 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.createnewpanelstate.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [createNewPanelState](./kibana-plugin-plugins-embeddable-public.container.createnewpanelstate.md) + +## Container.createNewPanelState() method + +Signature: + +```typescript +protected createNewPanelState>(factory: EmbeddableFactory, partial?: Partial): PanelState; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| factory | EmbeddableFactory<TEmbeddableInput, any, TEmbeddable> | | +| partial | Partial<TEmbeddableInput> | | + +Returns: + +`PanelState` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.destroy.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.destroy.md new file mode 100644 index 0000000000000..d2776fb9e5944 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.destroy.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [destroy](./kibana-plugin-plugins-embeddable-public.container.destroy.md) + +## Container.destroy() method + +Signature: + +```typescript +destroy(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getchild.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getchild.md new file mode 100644 index 0000000000000..56d6a8a105bc7 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getchild.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [getChild](./kibana-plugin-plugins-embeddable-public.container.getchild.md) + +## Container.getChild() method + +Signature: + +```typescript +getChild(id: string): E; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| id | string | | + +Returns: + +`E` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getchildids.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getchildids.md new file mode 100644 index 0000000000000..83a9b134cad3f --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getchildids.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [getChildIds](./kibana-plugin-plugins-embeddable-public.container.getchildids.md) + +## Container.getChildIds() method + +Signature: + +```typescript +getChildIds(): string[]; +``` +Returns: + +`string[]` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getfactory.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getfactory.md new file mode 100644 index 0000000000000..f4ac95abbf372 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getfactory.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [getFactory](./kibana-plugin-plugins-embeddable-public.container.getfactory.md) + +## Container.getFactory property + +Signature: + +```typescript +protected readonly getFactory: EmbeddableStart['getEmbeddableFactory']; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getinheritedinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getinheritedinput.md new file mode 100644 index 0000000000000..4c5823b890e65 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getinheritedinput.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [getInheritedInput](./kibana-plugin-plugins-embeddable-public.container.getinheritedinput.md) + +## Container.getInheritedInput() method + +Return state that comes from the container and is passed down to the child. For instance, time range and filters are common inherited input state. Note that any state stored in `this.input.panels[embeddableId].explicitInput` will override inherited input. + +Signature: + +```typescript +protected abstract getInheritedInput(id: string): TChildInput; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| id | string | | + +Returns: + +`TChildInput` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getinputforchild.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getinputforchild.md new file mode 100644 index 0000000000000..803356d554012 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getinputforchild.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [getInputForChild](./kibana-plugin-plugins-embeddable-public.container.getinputforchild.md) + +## Container.getInputForChild() method + +Signature: + +```typescript +getInputForChild(embeddableId: string): TEmbeddableInput; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| embeddableId | string | | + +Returns: + +`TEmbeddableInput` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getpanelstate.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getpanelstate.md new file mode 100644 index 0000000000000..5981284e0497c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.getpanelstate.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [getPanelState](./kibana-plugin-plugins-embeddable-public.container.getpanelstate.md) + +## Container.getPanelState() method + +Signature: + +```typescript +protected getPanelState(embeddableId: string): PanelState; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| embeddableId | string | | + +Returns: + +`PanelState` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.iscontainer.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.iscontainer.md new file mode 100644 index 0000000000000..af65381de78f7 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.iscontainer.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [isContainer](./kibana-plugin-plugins-embeddable-public.container.iscontainer.md) + +## Container.isContainer property + +Signature: + +```typescript +readonly isContainer: boolean; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.md new file mode 100644 index 0000000000000..d14adc31e4123 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.md @@ -0,0 +1,43 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) + +## Container class + +Signature: + +```typescript +export declare abstract class Container = {}, TContainerInput extends ContainerInput = ContainerInput, TContainerOutput extends ContainerOutput = ContainerOutput> extends Embeddable implements IContainer +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)(input, output, getFactory, parent)](./kibana-plugin-plugins-embeddable-public.container._constructor_.md) | | Constructs a new instance of the Container class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [children](./kibana-plugin-plugins-embeddable-public.container.children.md) | | {
[key: string]: IEmbeddable<any, any> | ErrorEmbeddable;
} | | +| [getFactory](./kibana-plugin-plugins-embeddable-public.container.getfactory.md) | | EmbeddableStart['getEmbeddableFactory'] | | +| [isContainer](./kibana-plugin-plugins-embeddable-public.container.iscontainer.md) | | boolean | | + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [addNewEmbeddable(type, explicitInput)](./kibana-plugin-plugins-embeddable-public.container.addnewembeddable.md) | | | +| [createNewPanelState(factory, partial)](./kibana-plugin-plugins-embeddable-public.container.createnewpanelstate.md) | | | +| [destroy()](./kibana-plugin-plugins-embeddable-public.container.destroy.md) | | | +| [getChild(id)](./kibana-plugin-plugins-embeddable-public.container.getchild.md) | | | +| [getChildIds()](./kibana-plugin-plugins-embeddable-public.container.getchildids.md) | | | +| [getInheritedInput(id)](./kibana-plugin-plugins-embeddable-public.container.getinheritedinput.md) | | Return state that comes from the container and is passed down to the child. For instance, time range and filters are common inherited input state. Note that any state stored in this.input.panels[embeddableId].explicitInput will override inherited input. | +| [getInputForChild(embeddableId)](./kibana-plugin-plugins-embeddable-public.container.getinputforchild.md) | | | +| [getPanelState(embeddableId)](./kibana-plugin-plugins-embeddable-public.container.getpanelstate.md) | | | +| [reload()](./kibana-plugin-plugins-embeddable-public.container.reload.md) | | | +| [removeEmbeddable(embeddableId)](./kibana-plugin-plugins-embeddable-public.container.removeembeddable.md) | | | +| [untilEmbeddableLoaded(id)](./kibana-plugin-plugins-embeddable-public.container.untilembeddableloaded.md) | | | +| [updateInputForChild(id, changes)](./kibana-plugin-plugins-embeddable-public.container.updateinputforchild.md) | | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.reload.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.reload.md new file mode 100644 index 0000000000000..902da827ac46c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.reload.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [reload](./kibana-plugin-plugins-embeddable-public.container.reload.md) + +## Container.reload() method + +Signature: + +```typescript +reload(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.removeembeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.removeembeddable.md new file mode 100644 index 0000000000000..44594c0649d46 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.removeembeddable.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [removeEmbeddable](./kibana-plugin-plugins-embeddable-public.container.removeembeddable.md) + +## Container.removeEmbeddable() method + +Signature: + +```typescript +removeEmbeddable(embeddableId: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| embeddableId | string | | + +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.untilembeddableloaded.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.untilembeddableloaded.md new file mode 100644 index 0000000000000..45c115f370694 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.untilembeddableloaded.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [untilEmbeddableLoaded](./kibana-plugin-plugins-embeddable-public.container.untilembeddableloaded.md) + +## Container.untilEmbeddableLoaded() method + +Signature: + +```typescript +untilEmbeddableLoaded(id: string): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| id | string | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.updateinputforchild.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.updateinputforchild.md new file mode 100644 index 0000000000000..ae25f373a907b --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.container.updateinputforchild.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Container](./kibana-plugin-plugins-embeddable-public.container.md) > [updateInputForChild](./kibana-plugin-plugins-embeddable-public.container.updateinputforchild.md) + +## Container.updateInputForChild() method + +Signature: + +```typescript +updateInputForChild(id: string, changes: Partial): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| id | string | | +| changes | Partial<EEI> | | + +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containerinput.hidepaneltitles.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containerinput.hidepaneltitles.md new file mode 100644 index 0000000000000..5bb80ae411a78 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containerinput.hidepaneltitles.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ContainerInput](./kibana-plugin-plugins-embeddable-public.containerinput.md) > [hidePanelTitles](./kibana-plugin-plugins-embeddable-public.containerinput.hidepaneltitles.md) + +## ContainerInput.hidePanelTitles property + +Signature: + +```typescript +hidePanelTitles?: boolean; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containerinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containerinput.md new file mode 100644 index 0000000000000..dc24507b71cfb --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containerinput.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ContainerInput](./kibana-plugin-plugins-embeddable-public.containerinput.md) + +## ContainerInput interface + +Signature: + +```typescript +export interface ContainerInput extends EmbeddableInput +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [hidePanelTitles](./kibana-plugin-plugins-embeddable-public.containerinput.hidepaneltitles.md) | boolean | | +| [panels](./kibana-plugin-plugins-embeddable-public.containerinput.panels.md) | {
[key: string]: PanelState<PanelExplicitInput & EmbeddableInput & {
id: string;
}>;
} | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containerinput.panels.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containerinput.panels.md new file mode 100644 index 0000000000000..82d45ebe9a10e --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containerinput.panels.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ContainerInput](./kibana-plugin-plugins-embeddable-public.containerinput.md) > [panels](./kibana-plugin-plugins-embeddable-public.containerinput.panels.md) + +## ContainerInput.panels property + +Signature: + +```typescript +panels: { + [key: string]: PanelState; + }; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containeroutput.embeddableloaded.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containeroutput.embeddableloaded.md new file mode 100644 index 0000000000000..3f0db4eba0bc3 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containeroutput.embeddableloaded.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ContainerOutput](./kibana-plugin-plugins-embeddable-public.containeroutput.md) > [embeddableLoaded](./kibana-plugin-plugins-embeddable-public.containeroutput.embeddableloaded.md) + +## ContainerOutput.embeddableLoaded property + +Signature: + +```typescript +embeddableLoaded: { + [key: string]: boolean; + }; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containeroutput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containeroutput.md new file mode 100644 index 0000000000000..f448f0f3ac059 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.containeroutput.md @@ -0,0 +1,18 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ContainerOutput](./kibana-plugin-plugins-embeddable-public.containeroutput.md) + +## ContainerOutput interface + +Signature: + +```typescript +export interface ContainerOutput extends EmbeddableOutput +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [embeddableLoaded](./kibana-plugin-plugins-embeddable-public.containeroutput.embeddableloaded.md) | {
[key: string]: boolean;
} | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.context_menu_trigger.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.context_menu_trigger.md new file mode 100644 index 0000000000000..bcfcf6a321661 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.context_menu_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [CONTEXT\_MENU\_TRIGGER](./kibana-plugin-plugins-embeddable-public.context_menu_trigger.md) + +## CONTEXT\_MENU\_TRIGGER variable + +Signature: + +```typescript +CONTEXT_MENU_TRIGGER = "CONTEXT_MENU_TRIGGER" +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.contextmenutrigger.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.contextmenutrigger.md new file mode 100644 index 0000000000000..0a88e1e0a2ea8 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.contextmenutrigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [contextMenuTrigger](./kibana-plugin-plugins-embeddable-public.contextmenutrigger.md) + +## contextMenuTrigger variable + +Signature: + +```typescript +contextMenuTrigger: Trigger<'CONTEXT_MENU_TRIGGER'> +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.defaultembeddablefactoryprovider.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.defaultembeddablefactoryprovider.md new file mode 100644 index 0000000000000..08047a7a441b8 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.defaultembeddablefactoryprovider.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [defaultEmbeddableFactoryProvider](./kibana-plugin-plugins-embeddable-public.defaultembeddablefactoryprovider.md) + +## defaultEmbeddableFactoryProvider variable + +Signature: + +```typescript +defaultEmbeddableFactoryProvider: = IEmbeddable, T extends SavedObjectAttributes = SavedObjectAttributes>(def: EmbeddableFactoryDefinition) => EmbeddableFactory +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction._constructor_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction._constructor_.md new file mode 100644 index 0000000000000..55bb3d76b99d8 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction._constructor_.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) > [(constructor)](./kibana-plugin-plugins-embeddable-public.editpanelaction._constructor_.md) + +## EditPanelAction.(constructor) + +Constructs a new instance of the `EditPanelAction` class + +Signature: + +```typescript +constructor(getEmbeddableFactory: EmbeddableStart['getEmbeddableFactory'], application: ApplicationStart, stateTransfer?: EmbeddableStateTransfer | undefined); +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| getEmbeddableFactory | EmbeddableStart['getEmbeddableFactory'] | | +| application | ApplicationStart | | +| stateTransfer | EmbeddableStateTransfer | undefined | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.currentappid.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.currentappid.md new file mode 100644 index 0000000000000..db94b1482d8b5 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.currentappid.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) > [currentAppId](./kibana-plugin-plugins-embeddable-public.editpanelaction.currentappid.md) + +## EditPanelAction.currentAppId property + +Signature: + +```typescript +currentAppId: string | undefined; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.execute.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.execute.md new file mode 100644 index 0000000000000..6cfd88f17ba85 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.execute.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) > [execute](./kibana-plugin-plugins-embeddable-public.editpanelaction.execute.md) + +## EditPanelAction.execute() method + +Signature: + +```typescript +execute(context: ActionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| context | ActionContext | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.getapptarget.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.getapptarget.md new file mode 100644 index 0000000000000..c9ede0f48b285 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.getapptarget.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) > [getAppTarget](./kibana-plugin-plugins-embeddable-public.editpanelaction.getapptarget.md) + +## EditPanelAction.getAppTarget() method + +Signature: + +```typescript +getAppTarget({ embeddable }: ActionContext): NavigationContext | undefined; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| { embeddable } | ActionContext | | + +Returns: + +`NavigationContext | undefined` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.getdisplayname.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.getdisplayname.md new file mode 100644 index 0000000000000..227fdb8877149 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.getdisplayname.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) > [getDisplayName](./kibana-plugin-plugins-embeddable-public.editpanelaction.getdisplayname.md) + +## EditPanelAction.getDisplayName() method + +Signature: + +```typescript +getDisplayName({ embeddable }: ActionContext): string; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| { embeddable } | ActionContext | | + +Returns: + +`string` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.gethref.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.gethref.md new file mode 100644 index 0000000000000..1139278ab781f --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.gethref.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) > [getHref](./kibana-plugin-plugins-embeddable-public.editpanelaction.gethref.md) + +## EditPanelAction.getHref() method + +Signature: + +```typescript +getHref({ embeddable }: ActionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| { embeddable } | ActionContext | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.geticontype.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.geticontype.md new file mode 100644 index 0000000000000..bc5a1f054ca75 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.geticontype.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) > [getIconType](./kibana-plugin-plugins-embeddable-public.editpanelaction.geticontype.md) + +## EditPanelAction.getIconType() method + +Signature: + +```typescript +getIconType(): string; +``` +Returns: + +`string` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.id.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.id.md new file mode 100644 index 0000000000000..d8b0888b51801 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.id.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) > [id](./kibana-plugin-plugins-embeddable-public.editpanelaction.id.md) + +## EditPanelAction.id property + +Signature: + +```typescript +readonly id = "editPanel"; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.iscompatible.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.iscompatible.md new file mode 100644 index 0000000000000..7f2714f14f0e9 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.iscompatible.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) > [isCompatible](./kibana-plugin-plugins-embeddable-public.editpanelaction.iscompatible.md) + +## EditPanelAction.isCompatible() method + +Signature: + +```typescript +isCompatible({ embeddable }: ActionContext): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| { embeddable } | ActionContext | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.md new file mode 100644 index 0000000000000..a39eae812ebfc --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.md @@ -0,0 +1,38 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) + +## EditPanelAction class + +Signature: + +```typescript +export declare class EditPanelAction implements Action +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)(getEmbeddableFactory, application, stateTransfer)](./kibana-plugin-plugins-embeddable-public.editpanelaction._constructor_.md) | | Constructs a new instance of the EditPanelAction class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [currentAppId](./kibana-plugin-plugins-embeddable-public.editpanelaction.currentappid.md) | | string | undefined | | +| [id](./kibana-plugin-plugins-embeddable-public.editpanelaction.id.md) | | | | +| [order](./kibana-plugin-plugins-embeddable-public.editpanelaction.order.md) | | number | | +| [type](./kibana-plugin-plugins-embeddable-public.editpanelaction.type.md) | | | | + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [execute(context)](./kibana-plugin-plugins-embeddable-public.editpanelaction.execute.md) | | | +| [getAppTarget({ embeddable })](./kibana-plugin-plugins-embeddable-public.editpanelaction.getapptarget.md) | | | +| [getDisplayName({ embeddable })](./kibana-plugin-plugins-embeddable-public.editpanelaction.getdisplayname.md) | | | +| [getHref({ embeddable })](./kibana-plugin-plugins-embeddable-public.editpanelaction.gethref.md) | | | +| [getIconType()](./kibana-plugin-plugins-embeddable-public.editpanelaction.geticontype.md) | | | +| [isCompatible({ embeddable })](./kibana-plugin-plugins-embeddable-public.editpanelaction.iscompatible.md) | | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.order.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.order.md new file mode 100644 index 0000000000000..0ec5cde54b279 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.order.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) > [order](./kibana-plugin-plugins-embeddable-public.editpanelaction.order.md) + +## EditPanelAction.order property + +Signature: + +```typescript +order: number; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.type.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.type.md new file mode 100644 index 0000000000000..329f08abaaa3c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.editpanelaction.type.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) > [type](./kibana-plugin-plugins-embeddable-public.editpanelaction.type.md) + +## EditPanelAction.type property + +Signature: + +```typescript +readonly type = "editPanel"; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable._constructor_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable._constructor_.md new file mode 100644 index 0000000000000..c5e8788bf5d4d --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable._constructor_.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [(constructor)](./kibana-plugin-plugins-embeddable-public.embeddable._constructor_.md) + +## Embeddable.(constructor) + +Constructs a new instance of the `Embeddable` class + +Signature: + +```typescript +constructor(input: TEmbeddableInput, output: TEmbeddableOutput, parent?: IContainer); +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| input | TEmbeddableInput | | +| output | TEmbeddableOutput | | +| parent | IContainer | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.destroy.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.destroy.md new file mode 100644 index 0000000000000..1ff16eec0b750 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.destroy.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [destroy](./kibana-plugin-plugins-embeddable-public.embeddable.destroy.md) + +## Embeddable.destroy() method + +Called when this embeddable is no longer used, this should be the place for implementors to add any additional clean up tasks, like unmounting and unsubscribing. + +Signature: + +```typescript +destroy(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getinput.md new file mode 100644 index 0000000000000..f4a0724d42680 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getinput.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [getInput](./kibana-plugin-plugins-embeddable-public.embeddable.getinput.md) + +## Embeddable.getInput() method + +Signature: + +```typescript +getInput(): Readonly; +``` +Returns: + +`Readonly` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getinput_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getinput_.md new file mode 100644 index 0000000000000..e4910d3eb1bf2 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getinput_.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [getInput$](./kibana-plugin-plugins-embeddable-public.embeddable.getinput_.md) + +## Embeddable.getInput$() method + +Signature: + +```typescript +getInput$(): Readonly>; +``` +Returns: + +`Readonly>` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getinspectoradapters.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getinspectoradapters.md new file mode 100644 index 0000000000000..490eaca32e685 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getinspectoradapters.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [getInspectorAdapters](./kibana-plugin-plugins-embeddable-public.embeddable.getinspectoradapters.md) + +## Embeddable.getInspectorAdapters() method + +An embeddable can return inspector adapters if it want the inspector to be available via the context menu of that panel. Inspector adapters that will be used to open an inspector for. + +Signature: + +```typescript +getInspectorAdapters(): Adapters | undefined; +``` +Returns: + +`Adapters | undefined` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getiscontainer.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getiscontainer.md new file mode 100644 index 0000000000000..cb9945ea31293 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getiscontainer.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [getIsContainer](./kibana-plugin-plugins-embeddable-public.embeddable.getiscontainer.md) + +## Embeddable.getIsContainer() method + +Signature: + +```typescript +getIsContainer(): this is IContainer; +``` +Returns: + +`this is IContainer` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getoutput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getoutput.md new file mode 100644 index 0000000000000..b24c5aefddb40 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getoutput.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [getOutput](./kibana-plugin-plugins-embeddable-public.embeddable.getoutput.md) + +## Embeddable.getOutput() method + +Signature: + +```typescript +getOutput(): Readonly; +``` +Returns: + +`Readonly` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getoutput_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getoutput_.md new file mode 100644 index 0000000000000..34b5f864dd0c8 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getoutput_.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [getOutput$](./kibana-plugin-plugins-embeddable-public.embeddable.getoutput_.md) + +## Embeddable.getOutput$() method + +Signature: + +```typescript +getOutput$(): Readonly>; +``` +Returns: + +`Readonly>` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getroot.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getroot.md new file mode 100644 index 0000000000000..79397911d5bc7 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.getroot.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [getRoot](./kibana-plugin-plugins-embeddable-public.embeddable.getroot.md) + +## Embeddable.getRoot() method + +Returns the top most parent embeddable, or itself if this embeddable is not within a parent. + +Signature: + +```typescript +getRoot(): IEmbeddable | IContainer; +``` +Returns: + +`IEmbeddable | IContainer` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.gettitle.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.gettitle.md new file mode 100644 index 0000000000000..4dc1900b4b011 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.gettitle.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [getTitle](./kibana-plugin-plugins-embeddable-public.embeddable.gettitle.md) + +## Embeddable.getTitle() method + +Signature: + +```typescript +getTitle(): string; +``` +Returns: + +`string` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.id.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.id.md new file mode 100644 index 0000000000000..348934b9fb65c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.id.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [id](./kibana-plugin-plugins-embeddable-public.embeddable.id.md) + +## Embeddable.id property + +Signature: + +```typescript +readonly id: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.input.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.input.md new file mode 100644 index 0000000000000..4541aeacd5bc8 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.input.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [input](./kibana-plugin-plugins-embeddable-public.embeddable.input.md) + +## Embeddable.input property + +Signature: + +```typescript +protected input: TEmbeddableInput; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.iscontainer.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.iscontainer.md new file mode 100644 index 0000000000000..db15653d40c4c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.iscontainer.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [isContainer](./kibana-plugin-plugins-embeddable-public.embeddable.iscontainer.md) + +## Embeddable.isContainer property + +Signature: + +```typescript +readonly isContainer: boolean; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.md new file mode 100644 index 0000000000000..295cc10b1bb19 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.md @@ -0,0 +1,51 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) + +## Embeddable class + +Signature: + +```typescript +export declare abstract class Embeddable implements IEmbeddable +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)(input, output, parent)](./kibana-plugin-plugins-embeddable-public.embeddable._constructor_.md) | | Constructs a new instance of the Embeddable class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [id](./kibana-plugin-plugins-embeddable-public.embeddable.id.md) | | string | | +| [input](./kibana-plugin-plugins-embeddable-public.embeddable.input.md) | | TEmbeddableInput | | +| [isContainer](./kibana-plugin-plugins-embeddable-public.embeddable.iscontainer.md) | | boolean | | +| [output](./kibana-plugin-plugins-embeddable-public.embeddable.output.md) | | TEmbeddableOutput | | +| [parent](./kibana-plugin-plugins-embeddable-public.embeddable.parent.md) | | IContainer | | +| [renderComplete](./kibana-plugin-plugins-embeddable-public.embeddable.rendercomplete.md) | | RenderCompleteDispatcher | | +| [runtimeId](./kibana-plugin-plugins-embeddable-public.embeddable.runtimeid.md) | | number | | +| [runtimeId](./kibana-plugin-plugins-embeddable-public.embeddable.runtimeid.md) | static | number | | +| [type](./kibana-plugin-plugins-embeddable-public.embeddable.type.md) | | string | | + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [destroy()](./kibana-plugin-plugins-embeddable-public.embeddable.destroy.md) | | Called when this embeddable is no longer used, this should be the place for implementors to add any additional clean up tasks, like unmounting and unsubscribing. | +| [getInput()](./kibana-plugin-plugins-embeddable-public.embeddable.getinput.md) | | | +| [getInput$()](./kibana-plugin-plugins-embeddable-public.embeddable.getinput_.md) | | | +| [getInspectorAdapters()](./kibana-plugin-plugins-embeddable-public.embeddable.getinspectoradapters.md) | | An embeddable can return inspector adapters if it want the inspector to be available via the context menu of that panel. Inspector adapters that will be used to open an inspector for. | +| [getIsContainer()](./kibana-plugin-plugins-embeddable-public.embeddable.getiscontainer.md) | | | +| [getOutput()](./kibana-plugin-plugins-embeddable-public.embeddable.getoutput.md) | | | +| [getOutput$()](./kibana-plugin-plugins-embeddable-public.embeddable.getoutput_.md) | | | +| [getRoot()](./kibana-plugin-plugins-embeddable-public.embeddable.getroot.md) | | Returns the top most parent embeddable, or itself if this embeddable is not within a parent. | +| [getTitle()](./kibana-plugin-plugins-embeddable-public.embeddable.gettitle.md) | | | +| [reload()](./kibana-plugin-plugins-embeddable-public.embeddable.reload.md) | | Reload will be called when there is a request to refresh the data or view, even if the input data did not change. | +| [render(el)](./kibana-plugin-plugins-embeddable-public.embeddable.render.md) | | | +| [supportedTriggers()](./kibana-plugin-plugins-embeddable-public.embeddable.supportedtriggers.md) | | | +| [updateInput(changes)](./kibana-plugin-plugins-embeddable-public.embeddable.updateinput.md) | | | +| [updateOutput(outputChanges)](./kibana-plugin-plugins-embeddable-public.embeddable.updateoutput.md) | | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.output.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.output.md new file mode 100644 index 0000000000000..db854e2a69cec --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.output.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [output](./kibana-plugin-plugins-embeddable-public.embeddable.output.md) + +## Embeddable.output property + +Signature: + +```typescript +protected output: TEmbeddableOutput; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.parent.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.parent.md new file mode 100644 index 0000000000000..bfd82f53e96f1 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.parent.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [parent](./kibana-plugin-plugins-embeddable-public.embeddable.parent.md) + +## Embeddable.parent property + +Signature: + +```typescript +readonly parent?: IContainer; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.reload.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.reload.md new file mode 100644 index 0000000000000..e3b06f414cb5b --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.reload.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [reload](./kibana-plugin-plugins-embeddable-public.embeddable.reload.md) + +## Embeddable.reload() method + +Reload will be called when there is a request to refresh the data or view, even if the input data did not change. + +Signature: + +```typescript +abstract reload(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.render.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.render.md new file mode 100644 index 0000000000000..171a3c6a30a85 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.render.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [render](./kibana-plugin-plugins-embeddable-public.embeddable.render.md) + +## Embeddable.render() method + +Signature: + +```typescript +render(el: HTMLElement): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| el | HTMLElement | | + +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.rendercomplete.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.rendercomplete.md new file mode 100644 index 0000000000000..c86bb2e998044 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.rendercomplete.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [renderComplete](./kibana-plugin-plugins-embeddable-public.embeddable.rendercomplete.md) + +## Embeddable.renderComplete property + +Signature: + +```typescript +protected renderComplete: RenderCompleteDispatcher; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.runtimeid.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.runtimeid.md new file mode 100644 index 0000000000000..a5cdd12b6f198 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.runtimeid.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [runtimeId](./kibana-plugin-plugins-embeddable-public.embeddable.runtimeid.md) + +## Embeddable.runtimeId property + +Signature: + +```typescript +static runtimeId: number; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.supportedtriggers.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.supportedtriggers.md new file mode 100644 index 0000000000000..16676bc732b1c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.supportedtriggers.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [supportedTriggers](./kibana-plugin-plugins-embeddable-public.embeddable.supportedtriggers.md) + +## Embeddable.supportedTriggers() method + +Signature: + +```typescript +supportedTriggers(): Array; +``` +Returns: + +`Array` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.type.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.type.md new file mode 100644 index 0000000000000..bb3ae7384686c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.type.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [type](./kibana-plugin-plugins-embeddable-public.embeddable.type.md) + +## Embeddable.type property + +Signature: + +```typescript +abstract readonly type: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.updateinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.updateinput.md new file mode 100644 index 0000000000000..36c46bb71c6b6 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.updateinput.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [updateInput](./kibana-plugin-plugins-embeddable-public.embeddable.updateinput.md) + +## Embeddable.updateInput() method + +Signature: + +```typescript +updateInput(changes: Partial): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| changes | Partial<TEmbeddableInput> | | + +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.updateoutput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.updateoutput.md new file mode 100644 index 0000000000000..0b0244e7a5853 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddable.updateoutput.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) > [updateOutput](./kibana-plugin-plugins-embeddable-public.embeddable.updateoutput.md) + +## Embeddable.updateOutput() method + +Signature: + +```typescript +protected updateOutput(outputChanges: Partial): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| outputChanges | Partial<TEmbeddableOutput> | | + +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel._constructor_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel._constructor_.md new file mode 100644 index 0000000000000..76412de0d5419 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel._constructor_.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableChildPanel](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.md) > [(constructor)](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel._constructor_.md) + +## EmbeddableChildPanel.(constructor) + +Constructs a new instance of the `EmbeddableChildPanel` class + +Signature: + +```typescript +constructor(props: EmbeddableChildPanelProps); +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| props | EmbeddableChildPanelProps | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.componentdidmount.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.componentdidmount.md new file mode 100644 index 0000000000000..5302d3e986d94 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.componentdidmount.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableChildPanel](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.md) > [componentDidMount](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.componentdidmount.md) + +## EmbeddableChildPanel.componentDidMount() method + +Signature: + +```typescript +componentDidMount(): Promise; +``` +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.componentwillunmount.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.componentwillunmount.md new file mode 100644 index 0000000000000..17c23a5ba2fd1 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.componentwillunmount.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableChildPanel](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.md) > [componentWillUnmount](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.componentwillunmount.md) + +## EmbeddableChildPanel.componentWillUnmount() method + +Signature: + +```typescript +componentWillUnmount(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.embeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.embeddable.md new file mode 100644 index 0000000000000..298697167e127 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.embeddable.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableChildPanel](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.md) > [embeddable](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.embeddable.md) + +## EmbeddableChildPanel.embeddable property + +Signature: + +```typescript +embeddable: IEmbeddable | ErrorEmbeddable; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.md new file mode 100644 index 0000000000000..d52033b4fd6ad --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.md @@ -0,0 +1,35 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableChildPanel](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.md) + +## EmbeddableChildPanel class + +This component can be used by embeddable containers using react to easily render children. It waits for the child to be initialized, showing a loading indicator until that is complete. + +Signature: + +```typescript +export declare class EmbeddableChildPanel extends React.Component +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)(props)](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel._constructor_.md) | | Constructs a new instance of the EmbeddableChildPanel class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [embeddable](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.embeddable.md) | | IEmbeddable | ErrorEmbeddable | | +| [mounted](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.mounted.md) | | boolean | | + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [componentDidMount()](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.componentdidmount.md) | | | +| [componentWillUnmount()](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.componentwillunmount.md) | | | +| [render()](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.render.md) | | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.mounted.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.mounted.md new file mode 100644 index 0000000000000..169f27ea5afa6 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.mounted.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableChildPanel](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.md) > [mounted](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.mounted.md) + +## EmbeddableChildPanel.mounted property + +Signature: + +```typescript +mounted: boolean; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.render.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.render.md new file mode 100644 index 0000000000000..01d70eb5f628f --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanel.render.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableChildPanel](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.md) > [render](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.render.md) + +## EmbeddableChildPanel.render() method + +Signature: + +```typescript +render(): JSX.Element; +``` +Returns: + +`JSX.Element` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.classname.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.classname.md new file mode 100644 index 0000000000000..d18dea31545d9 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.classname.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableChildPanelProps](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.md) > [className](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.classname.md) + +## EmbeddableChildPanelProps.className property + +Signature: + +```typescript +className?: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.container.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.container.md new file mode 100644 index 0000000000000..91120f955b15e --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.container.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableChildPanelProps](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.md) > [container](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.container.md) + +## EmbeddableChildPanelProps.container property + +Signature: + +```typescript +container: IContainer; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.embeddableid.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.embeddableid.md new file mode 100644 index 0000000000000..6765010e1b696 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.embeddableid.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableChildPanelProps](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.md) > [embeddableId](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.embeddableid.md) + +## EmbeddableChildPanelProps.embeddableId property + +Signature: + +```typescript +embeddableId: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.md new file mode 100644 index 0000000000000..7ed3bd1e20768 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableChildPanelProps](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.md) + +## EmbeddableChildPanelProps interface + +Signature: + +```typescript +export interface EmbeddableChildPanelProps +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [className](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.classname.md) | string | | +| [container](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.container.md) | IContainer | | +| [embeddableId](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.embeddableid.md) | string | | +| [PanelComponent](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.panelcomponent.md) | EmbeddableStart['EmbeddablePanel'] | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.panelcomponent.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.panelcomponent.md new file mode 100644 index 0000000000000..e1bb6b41d3887 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.panelcomponent.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableChildPanelProps](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.md) > [PanelComponent](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.panelcomponent.md) + +## EmbeddableChildPanelProps.PanelComponent property + +Signature: + +```typescript +PanelComponent: EmbeddableStart['EmbeddablePanel']; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablecontext.embeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablecontext.embeddable.md new file mode 100644 index 0000000000000..06e51958a2d1e --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablecontext.embeddable.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableContext](./kibana-plugin-plugins-embeddable-public.embeddablecontext.md) > [embeddable](./kibana-plugin-plugins-embeddable-public.embeddablecontext.embeddable.md) + +## EmbeddableContext.embeddable property + +Signature: + +```typescript +embeddable: IEmbeddable; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablecontext.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablecontext.md new file mode 100644 index 0000000000000..a2c2d9245eabe --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablecontext.md @@ -0,0 +1,18 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableContext](./kibana-plugin-plugins-embeddable-public.embeddablecontext.md) + +## EmbeddableContext interface + +Signature: + +```typescript +export interface EmbeddableContext +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [embeddable](./kibana-plugin-plugins-embeddable-public.embeddablecontext.embeddable.md) | IEmbeddable | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.embeddableid.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.embeddableid.md new file mode 100644 index 0000000000000..d998e982cc9d5 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.embeddableid.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableEditorState](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md) > [embeddableId](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.embeddableid.md) + +## EmbeddableEditorState.embeddableId property + +Signature: + +```typescript +embeddableId?: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md new file mode 100644 index 0000000000000..63302f50204fe --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableEditorState](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md) + +## EmbeddableEditorState interface + +A state package that contains information an editor will need to create or edit an embeddable then redirect back. + +Signature: + +```typescript +export interface EmbeddableEditorState +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [embeddableId](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.embeddableid.md) | string | | +| [originatingApp](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.originatingapp.md) | string | | +| [valueInput](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.valueinput.md) | EmbeddableInput | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.originatingapp.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.originatingapp.md new file mode 100644 index 0000000000000..640b0894ef2c7 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.originatingapp.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableEditorState](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md) > [originatingApp](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.originatingapp.md) + +## EmbeddableEditorState.originatingApp property + +Signature: + +```typescript +originatingApp: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.valueinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.valueinput.md new file mode 100644 index 0000000000000..61ebfc61634b8 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableeditorstate.valueinput.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableEditorState](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md) > [valueInput](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.valueinput.md) + +## EmbeddableEditorState.valueInput property + +Signature: + +```typescript +valueInput?: EmbeddableInput; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.cancreatenew.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.cancreatenew.md new file mode 100644 index 0000000000000..78bcb4f31a5be --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.cancreatenew.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablefactory.md) > [canCreateNew](./kibana-plugin-plugins-embeddable-public.embeddablefactory.cancreatenew.md) + +## EmbeddableFactory.canCreateNew() method + +If false, this type of embeddable can't be created with the "createNew" functionality. Instead, use createFromSavedObject, where an existing saved object must first exist. + +Signature: + +```typescript +canCreateNew(): boolean; +``` +Returns: + +`boolean` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.create.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.create.md new file mode 100644 index 0000000000000..130c8cb760625 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.create.md @@ -0,0 +1,27 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablefactory.md) > [create](./kibana-plugin-plugins-embeddable-public.embeddablefactory.create.md) + +## EmbeddableFactory.create() method + +Resolves to undefined if a new Embeddable cannot be directly created and the user will instead be redirected elsewhere. + +This will likely change in future iterations when we improve in place editing capabilities. + +Signature: + +```typescript +create(initialInput: TEmbeddableInput, parent?: IContainer): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| initialInput | TEmbeddableInput | | +| parent | IContainer | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.createfromsavedobject.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.createfromsavedobject.md new file mode 100644 index 0000000000000..7a411988ca3b0 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.createfromsavedobject.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablefactory.md) > [createFromSavedObject](./kibana-plugin-plugins-embeddable-public.embeddablefactory.createfromsavedobject.md) + +## EmbeddableFactory.createFromSavedObject() method + +Creates a new embeddable instance based off the saved object id. + +Signature: + +```typescript +createFromSavedObject(savedObjectId: string, input: Partial, parent?: IContainer): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| savedObjectId | string | | +| input | Partial<TEmbeddableInput> | some input may come from a parent, or user, if it's not stored with the saved object. For example, the time range of the parent container. | +| parent | IContainer | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.getdefaultinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.getdefaultinput.md new file mode 100644 index 0000000000000..bf1ca6abd9ba0 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.getdefaultinput.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablefactory.md) > [getDefaultInput](./kibana-plugin-plugins-embeddable-public.embeddablefactory.getdefaultinput.md) + +## EmbeddableFactory.getDefaultInput() method + +Can be used to get any default input, to be passed in to during the creation process. Default input will not be stored in a parent container, so any inherited input from a container will trump default input parameters. + +Signature: + +```typescript +getDefaultInput(partial: Partial): Partial; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| partial | Partial<TEmbeddableInput> | | + +Returns: + +`Partial` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.getdisplayname.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.getdisplayname.md new file mode 100644 index 0000000000000..5b97645d4947d --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.getdisplayname.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablefactory.md) > [getDisplayName](./kibana-plugin-plugins-embeddable-public.embeddablefactory.getdisplayname.md) + +## EmbeddableFactory.getDisplayName() method + +Returns a display name for this type of embeddable. Used in "Create new... " options in the add panel for containers. + +Signature: + +```typescript +getDisplayName(): string; +``` +Returns: + +`string` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.getexplicitinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.getexplicitinput.md new file mode 100644 index 0000000000000..3ec05f50005d0 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.getexplicitinput.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablefactory.md) > [getExplicitInput](./kibana-plugin-plugins-embeddable-public.embeddablefactory.getexplicitinput.md) + +## EmbeddableFactory.getExplicitInput() method + +Can be used to request explicit input from the user, to be passed in to `EmbeddableFactory:create`. Explicit input is stored on the parent container for this embeddable. It overrides any inherited input passed down from the parent container. + +Signature: + +```typescript +getExplicitInput(): Promise>; +``` +Returns: + +`Promise>` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.iscontainertype.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.iscontainertype.md new file mode 100644 index 0000000000000..f3ba375ab575c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.iscontainertype.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablefactory.md) > [isContainerType](./kibana-plugin-plugins-embeddable-public.embeddablefactory.iscontainertype.md) + +## EmbeddableFactory.isContainerType property + +True if is this factory create embeddables that are Containers. Used in the add panel to conditionally show whether these can be added to another container. It's just not supported right now, but once nested containers are officially supported we can probably get rid of this interface. + +Signature: + +```typescript +readonly isContainerType: boolean; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.iseditable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.iseditable.md new file mode 100644 index 0000000000000..f1ad10dfaa1f6 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.iseditable.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablefactory.md) > [isEditable](./kibana-plugin-plugins-embeddable-public.embeddablefactory.iseditable.md) + +## EmbeddableFactory.isEditable property + +Returns whether the current user should be allowed to edit this type of embeddable. Most of the time this should be based off the capabilities service, hence it's async. + +Signature: + +```typescript +readonly isEditable: () => Promise; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.md new file mode 100644 index 0000000000000..d543cf3d096df --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.md @@ -0,0 +1,34 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablefactory.md) + +## EmbeddableFactory interface + +EmbeddableFactories create and initialize an embeddable instance + +Signature: + +```typescript +export interface EmbeddableFactory = IEmbeddable, TSavedObjectAttributes extends SavedObjectAttributes = SavedObjectAttributes> extends PersistableState +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [isContainerType](./kibana-plugin-plugins-embeddable-public.embeddablefactory.iscontainertype.md) | boolean | True if is this factory create embeddables that are Containers. Used in the add panel to conditionally show whether these can be added to another container. It's just not supported right now, but once nested containers are officially supported we can probably get rid of this interface. | +| [isEditable](./kibana-plugin-plugins-embeddable-public.embeddablefactory.iseditable.md) | () => Promise<boolean> | Returns whether the current user should be allowed to edit this type of embeddable. Most of the time this should be based off the capabilities service, hence it's async. | +| [savedObjectMetaData](./kibana-plugin-plugins-embeddable-public.embeddablefactory.savedobjectmetadata.md) | SavedObjectMetaData<TSavedObjectAttributes> | | +| [type](./kibana-plugin-plugins-embeddable-public.embeddablefactory.type.md) | string | | + +## Methods + +| Method | Description | +| --- | --- | +| [canCreateNew()](./kibana-plugin-plugins-embeddable-public.embeddablefactory.cancreatenew.md) | If false, this type of embeddable can't be created with the "createNew" functionality. Instead, use createFromSavedObject, where an existing saved object must first exist. | +| [create(initialInput, parent)](./kibana-plugin-plugins-embeddable-public.embeddablefactory.create.md) | Resolves to undefined if a new Embeddable cannot be directly created and the user will instead be redirected elsewhere.This will likely change in future iterations when we improve in place editing capabilities. | +| [createFromSavedObject(savedObjectId, input, parent)](./kibana-plugin-plugins-embeddable-public.embeddablefactory.createfromsavedobject.md) | Creates a new embeddable instance based off the saved object id. | +| [getDefaultInput(partial)](./kibana-plugin-plugins-embeddable-public.embeddablefactory.getdefaultinput.md) | Can be used to get any default input, to be passed in to during the creation process. Default input will not be stored in a parent container, so any inherited input from a container will trump default input parameters. | +| [getDisplayName()](./kibana-plugin-plugins-embeddable-public.embeddablefactory.getdisplayname.md) | Returns a display name for this type of embeddable. Used in "Create new... " options in the add panel for containers. | +| [getExplicitInput()](./kibana-plugin-plugins-embeddable-public.embeddablefactory.getexplicitinput.md) | Can be used to request explicit input from the user, to be passed in to EmbeddableFactory:create. Explicit input is stored on the parent container for this embeddable. It overrides any inherited input passed down from the parent container. | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.savedobjectmetadata.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.savedobjectmetadata.md new file mode 100644 index 0000000000000..ec5bf420aac3e --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.savedobjectmetadata.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablefactory.md) > [savedObjectMetaData](./kibana-plugin-plugins-embeddable-public.embeddablefactory.savedobjectmetadata.md) + +## EmbeddableFactory.savedObjectMetaData property + +Signature: + +```typescript +readonly savedObjectMetaData?: SavedObjectMetaData; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.type.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.type.md new file mode 100644 index 0000000000000..307f808de9bcd --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactory.type.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablefactory.md) > [type](./kibana-plugin-plugins-embeddable-public.embeddablefactory.type.md) + +## EmbeddableFactory.type property + +Signature: + +```typescript +readonly type: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorydefinition.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorydefinition.md new file mode 100644 index 0000000000000..4e342d3cf73a1 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorydefinition.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactoryDefinition](./kibana-plugin-plugins-embeddable-public.embeddablefactorydefinition.md) + +## EmbeddableFactoryDefinition type + +Signature: + +```typescript +export declare type EmbeddableFactoryDefinition = IEmbeddable, T extends SavedObjectAttributes = SavedObjectAttributes> = Pick, 'create' | 'type' | 'isEditable' | 'getDisplayName'> & Partial, 'createFromSavedObject' | 'isContainerType' | 'getExplicitInput' | 'savedObjectMetaData' | 'canCreateNew' | 'getDefaultInput' | 'telemetry' | 'extract' | 'inject'>>; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror._constructor_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror._constructor_.md new file mode 100644 index 0000000000000..273126936ce91 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror._constructor_.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactoryNotFoundError](./kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.md) > [(constructor)](./kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror._constructor_.md) + +## EmbeddableFactoryNotFoundError.(constructor) + +Constructs a new instance of the `EmbeddableFactoryNotFoundError` class + +Signature: + +```typescript +constructor(type: string); +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| type | string | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.code.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.code.md new file mode 100644 index 0000000000000..2ad75d3e68ba4 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.code.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactoryNotFoundError](./kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.md) > [code](./kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.code.md) + +## EmbeddableFactoryNotFoundError.code property + +Signature: + +```typescript +code: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.md new file mode 100644 index 0000000000000..028271d36fee0 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableFactoryNotFoundError](./kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.md) + +## EmbeddableFactoryNotFoundError class + +Signature: + +```typescript +export declare class EmbeddableFactoryNotFoundError extends Error +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)(type)](./kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror._constructor_.md) | | Constructs a new instance of the EmbeddableFactoryNotFoundError class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [code](./kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.code.md) | | string | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinput.md new file mode 100644 index 0000000000000..d1d97d50f5948 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinput.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableInput](./kibana-plugin-plugins-embeddable-public.embeddableinput.md) + +## EmbeddableInput type + +Signature: + +```typescript +export declare type EmbeddableInput = { + viewMode?: ViewMode; + title?: string; + id: string; + lastReloadRequestTime?: number; + hidePanelTitles?: boolean; + enhancements?: SerializableState; + disabledActions?: string[]; + disableTriggers?: boolean; + timeRange?: TimeRange; + query?: Query; + filters?: Filter[]; +}; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.id.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.id.md new file mode 100644 index 0000000000000..2298c6fb111a0 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.id.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableInstanceConfiguration](./kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.md) > [id](./kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.id.md) + +## EmbeddableInstanceConfiguration.id property + +Signature: + +```typescript +id: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.md new file mode 100644 index 0000000000000..84f6bcefef447 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableInstanceConfiguration](./kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.md) + +## EmbeddableInstanceConfiguration interface + +Signature: + +```typescript +export interface EmbeddableInstanceConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [id](./kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.id.md) | string | | +| [savedObjectId](./kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.savedobjectid.md) | string | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.savedobjectid.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.savedobjectid.md new file mode 100644 index 0000000000000..c1584403c5bba --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.savedobjectid.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableInstanceConfiguration](./kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.md) > [savedObjectId](./kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.savedobjectid.md) + +## EmbeddableInstanceConfiguration.savedObjectId property + +Signature: + +```typescript +savedObjectId?: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.defaulttitle.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.defaulttitle.md new file mode 100644 index 0000000000000..c9d616a96e8e2 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.defaulttitle.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableOutput](./kibana-plugin-plugins-embeddable-public.embeddableoutput.md) > [defaultTitle](./kibana-plugin-plugins-embeddable-public.embeddableoutput.defaulttitle.md) + +## EmbeddableOutput.defaultTitle property + +Signature: + +```typescript +defaultTitle?: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editable.md new file mode 100644 index 0000000000000..4bf84a8f2abf8 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editable.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableOutput](./kibana-plugin-plugins-embeddable-public.embeddableoutput.md) > [editable](./kibana-plugin-plugins-embeddable-public.embeddableoutput.editable.md) + +## EmbeddableOutput.editable property + +Signature: + +```typescript +editable?: boolean; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editapp.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editapp.md new file mode 100644 index 0000000000000..5c5acd6288ba4 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editapp.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableOutput](./kibana-plugin-plugins-embeddable-public.embeddableoutput.md) > [editApp](./kibana-plugin-plugins-embeddable-public.embeddableoutput.editapp.md) + +## EmbeddableOutput.editApp property + +Signature: + +```typescript +editApp?: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editpath.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editpath.md new file mode 100644 index 0000000000000..da282ece32f20 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editpath.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableOutput](./kibana-plugin-plugins-embeddable-public.embeddableoutput.md) > [editPath](./kibana-plugin-plugins-embeddable-public.embeddableoutput.editpath.md) + +## EmbeddableOutput.editPath property + +Signature: + +```typescript +editPath?: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editurl.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editurl.md new file mode 100644 index 0000000000000..a0c4bed4ad8bb --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.editurl.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableOutput](./kibana-plugin-plugins-embeddable-public.embeddableoutput.md) > [editUrl](./kibana-plugin-plugins-embeddable-public.embeddableoutput.editurl.md) + +## EmbeddableOutput.editUrl property + +Signature: + +```typescript +editUrl?: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.error.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.error.md new file mode 100644 index 0000000000000..db3f27ecf295b --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.error.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableOutput](./kibana-plugin-plugins-embeddable-public.embeddableoutput.md) > [error](./kibana-plugin-plugins-embeddable-public.embeddableoutput.error.md) + +## EmbeddableOutput.error property + +Signature: + +```typescript +error?: EmbeddableError; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.loading.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.loading.md new file mode 100644 index 0000000000000..a9472b1663f1a --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.loading.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableOutput](./kibana-plugin-plugins-embeddable-public.embeddableoutput.md) > [loading](./kibana-plugin-plugins-embeddable-public.embeddableoutput.loading.md) + +## EmbeddableOutput.loading property + +Signature: + +```typescript +loading?: boolean; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.md new file mode 100644 index 0000000000000..92e1560c34e31 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableOutput](./kibana-plugin-plugins-embeddable-public.embeddableoutput.md) + +## EmbeddableOutput interface + +Signature: + +```typescript +export interface EmbeddableOutput +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [defaultTitle](./kibana-plugin-plugins-embeddable-public.embeddableoutput.defaulttitle.md) | string | | +| [editable](./kibana-plugin-plugins-embeddable-public.embeddableoutput.editable.md) | boolean | | +| [editApp](./kibana-plugin-plugins-embeddable-public.embeddableoutput.editapp.md) | string | | +| [editPath](./kibana-plugin-plugins-embeddable-public.embeddableoutput.editpath.md) | string | | +| [editUrl](./kibana-plugin-plugins-embeddable-public.embeddableoutput.editurl.md) | string | | +| [error](./kibana-plugin-plugins-embeddable-public.embeddableoutput.error.md) | EmbeddableError | | +| [loading](./kibana-plugin-plugins-embeddable-public.embeddableoutput.loading.md) | boolean | | +| [savedObjectId](./kibana-plugin-plugins-embeddable-public.embeddableoutput.savedobjectid.md) | string | | +| [title](./kibana-plugin-plugins-embeddable-public.embeddableoutput.title.md) | string | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.savedobjectid.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.savedobjectid.md new file mode 100644 index 0000000000000..29aca26621d79 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.savedobjectid.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableOutput](./kibana-plugin-plugins-embeddable-public.embeddableoutput.md) > [savedObjectId](./kibana-plugin-plugins-embeddable-public.embeddableoutput.savedobjectid.md) + +## EmbeddableOutput.savedObjectId property + +Signature: + +```typescript +savedObjectId?: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.title.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.title.md new file mode 100644 index 0000000000000..0748a60b38e0f --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableoutput.title.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableOutput](./kibana-plugin-plugins-embeddable-public.embeddableoutput.md) > [title](./kibana-plugin-plugins-embeddable-public.embeddableoutput.title.md) + +## EmbeddableOutput.title property + +Signature: + +```typescript +title?: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.embeddableid.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.embeddableid.md new file mode 100644 index 0000000000000..de1598d92b6de --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.embeddableid.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePackageState](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md) > [embeddableId](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.embeddableid.md) + +## EmbeddablePackageState.embeddableId property + +Signature: + +```typescript +embeddableId?: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.input.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.input.md new file mode 100644 index 0000000000000..2f4b1a1fa4237 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.input.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePackageState](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md) > [input](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.input.md) + +## EmbeddablePackageState.input property + +Signature: + +```typescript +input: Optional | Optional; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md new file mode 100644 index 0000000000000..1c0b1b8bf8b46 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePackageState](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md) + +## EmbeddablePackageState interface + +A state package that contains all fields necessary to create or update an embeddable by reference or by value in a container. + +Signature: + +```typescript +export interface EmbeddablePackageState +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [embeddableId](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.embeddableid.md) | string | | +| [input](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.input.md) | Optional<EmbeddableInput, 'id'> | Optional<SavedObjectEmbeddableInput, 'id'> | | +| [type](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.type.md) | string | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.type.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.type.md new file mode 100644 index 0000000000000..67ca5b8803dd5 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepackagestate.type.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePackageState](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md) > [type](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.type.md) + +## EmbeddablePackageState.type property + +Signature: + +```typescript +type: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel._constructor_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel._constructor_.md new file mode 100644 index 0000000000000..741e5df8a1590 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel._constructor_.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablepanel.md) > [(constructor)](./kibana-plugin-plugins-embeddable-public.embeddablepanel._constructor_.md) + +## EmbeddablePanel.(constructor) + +Constructs a new instance of the `EmbeddablePanel` class + +Signature: + +```typescript +constructor(props: Props); +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| props | Props | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.closemycontextmenupanel.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.closemycontextmenupanel.md new file mode 100644 index 0000000000000..6869257675aa4 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.closemycontextmenupanel.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablepanel.md) > [closeMyContextMenuPanel](./kibana-plugin-plugins-embeddable-public.embeddablepanel.closemycontextmenupanel.md) + +## EmbeddablePanel.closeMyContextMenuPanel property + +Signature: + +```typescript +closeMyContextMenuPanel: () => void; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.componentdidmount.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.componentdidmount.md new file mode 100644 index 0000000000000..fb281dcf1107f --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.componentdidmount.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablepanel.md) > [componentDidMount](./kibana-plugin-plugins-embeddable-public.embeddablepanel.componentdidmount.md) + +## EmbeddablePanel.componentDidMount() method + +Signature: + +```typescript +componentDidMount(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.componentwillunmount.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.componentwillunmount.md new file mode 100644 index 0000000000000..41050f9c7c82a --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.componentwillunmount.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablepanel.md) > [componentWillUnmount](./kibana-plugin-plugins-embeddable-public.embeddablepanel.componentwillunmount.md) + +## EmbeddablePanel.componentWillUnmount() method + +Signature: + +```typescript +componentWillUnmount(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.md new file mode 100644 index 0000000000000..643649ede51ef --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.md @@ -0,0 +1,35 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablepanel.md) + +## EmbeddablePanel class + +Signature: + +```typescript +export declare class EmbeddablePanel extends React.Component +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)(props)](./kibana-plugin-plugins-embeddable-public.embeddablepanel._constructor_.md) | | Constructs a new instance of the EmbeddablePanel class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [closeMyContextMenuPanel](./kibana-plugin-plugins-embeddable-public.embeddablepanel.closemycontextmenupanel.md) | | () => void | | +| [onBlur](./kibana-plugin-plugins-embeddable-public.embeddablepanel.onblur.md) | | (blurredPanelIndex: string) => void | | +| [onFocus](./kibana-plugin-plugins-embeddable-public.embeddablepanel.onfocus.md) | | (focusedPanelIndex: string) => void | | + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [componentDidMount()](./kibana-plugin-plugins-embeddable-public.embeddablepanel.componentdidmount.md) | | | +| [componentWillUnmount()](./kibana-plugin-plugins-embeddable-public.embeddablepanel.componentwillunmount.md) | | | +| [render()](./kibana-plugin-plugins-embeddable-public.embeddablepanel.render.md) | | | +| [UNSAFE\_componentWillMount()](./kibana-plugin-plugins-embeddable-public.embeddablepanel.unsafe_componentwillmount.md) | | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.onblur.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.onblur.md new file mode 100644 index 0000000000000..f1db746801818 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.onblur.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablepanel.md) > [onBlur](./kibana-plugin-plugins-embeddable-public.embeddablepanel.onblur.md) + +## EmbeddablePanel.onBlur property + +Signature: + +```typescript +onBlur: (blurredPanelIndex: string) => void; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.onfocus.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.onfocus.md new file mode 100644 index 0000000000000..3c9b713eab950 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.onfocus.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablepanel.md) > [onFocus](./kibana-plugin-plugins-embeddable-public.embeddablepanel.onfocus.md) + +## EmbeddablePanel.onFocus property + +Signature: + +```typescript +onFocus: (focusedPanelIndex: string) => void; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.render.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.render.md new file mode 100644 index 0000000000000..13e87df47a242 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.render.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablepanel.md) > [render](./kibana-plugin-plugins-embeddable-public.embeddablepanel.render.md) + +## EmbeddablePanel.render() method + +Signature: + +```typescript +render(): JSX.Element; +``` +Returns: + +`JSX.Element` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.unsafe_componentwillmount.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.unsafe_componentwillmount.md new file mode 100644 index 0000000000000..286d7e9cee1f3 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanel.unsafe_componentwillmount.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablepanel.md) > [UNSAFE\_componentWillMount](./kibana-plugin-plugins-embeddable-public.embeddablepanel.unsafe_componentwillmount.md) + +## EmbeddablePanel.UNSAFE\_componentWillMount() method + +Signature: + +```typescript +UNSAFE_componentWillMount(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanelhoc.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanelhoc.md new file mode 100644 index 0000000000000..3f57ac562e6d5 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablepanelhoc.md @@ -0,0 +1,14 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddablePanelHOC](./kibana-plugin-plugins-embeddable-public.embeddablepanelhoc.md) + +## EmbeddablePanelHOC type + +Signature: + +```typescript +export declare type EmbeddablePanelHOC = React.FC<{ + embeddable: IEmbeddable; + hideHeader?: boolean; +}>; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablerenderer.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablerenderer.md new file mode 100644 index 0000000000000..1bc55e6007910 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablerenderer.md @@ -0,0 +1,32 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableRenderer](./kibana-plugin-plugins-embeddable-public.embeddablerenderer.md) + +## EmbeddableRenderer variable + +Helper react component to render an embeddable Can be used if you have an embeddable object or an embeddable factory Supports updating input by passing `input` prop + +Signature: + +```typescript +EmbeddableRenderer: (props: EmbeddableRendererProps) => JSX.Element +``` + +## Remarks + +This component shouldn't be used inside an embeddable container to render embeddable children because children may lose inherited input, here is why: + +When passing `input` inside a prop, internally there is a call: + +```ts +embeddable.updateInput(input); + +``` +If you are simply rendering an embeddable, it's no problem. + +However when you are dealing with containers, you want to be sure to only pass into updateInput the actual state that changed. This is because calling child.updateInput({ foo }) will make foo explicit state. It cannot be inherited from it's parent. + +For example, on a dashboard, the time range is inherited by all children, unless they had their time range set explicitly. This is how "per panel time range" works. That action calls embeddable.updateInput({ timeRange }), and the time range will no longer be inherited from the container. + +see: https://github.com/elastic/kibana/pull/67783\#discussion\_r435447657 for more details. refer to: examples/embeddable\_explorer for examples with correct usage of this component. + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablerendererprops.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablerendererprops.md new file mode 100644 index 0000000000000..c21864b1140e8 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablerendererprops.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableRendererProps](./kibana-plugin-plugins-embeddable-public.embeddablerendererprops.md) + +## EmbeddableRendererProps type + +This type is a publicly exposed props of [EmbeddableRenderer](./kibana-plugin-plugins-embeddable-public.embeddablerenderer.md) Union is used to validate that or factory or embeddable is passed in, but it can't be both simultaneously In case when embeddable is passed in, input is optional, because there is already an input inside of embeddable object In case when factory is used, then input is required, because it will be used as initial input to create an embeddable object + +Signature: + +```typescript +export declare type EmbeddableRendererProps = EmbeddableRendererPropsWithEmbeddable | EmbeddableRendererWithFactory; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot._constructor_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot._constructor_.md new file mode 100644 index 0000000000000..4e0a2a6880d29 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot._constructor_.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableRoot](./kibana-plugin-plugins-embeddable-public.embeddableroot.md) > [(constructor)](./kibana-plugin-plugins-embeddable-public.embeddableroot._constructor_.md) + +## EmbeddableRoot.(constructor) + +Constructs a new instance of the `EmbeddableRoot` class + +Signature: + +```typescript +constructor(props: Props); +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| props | Props | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.componentdidmount.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.componentdidmount.md new file mode 100644 index 0000000000000..7085339dd8868 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.componentdidmount.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableRoot](./kibana-plugin-plugins-embeddable-public.embeddableroot.md) > [componentDidMount](./kibana-plugin-plugins-embeddable-public.embeddableroot.componentdidmount.md) + +## EmbeddableRoot.componentDidMount() method + +Signature: + +```typescript +componentDidMount(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.componentdidupdate.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.componentdidupdate.md new file mode 100644 index 0000000000000..386c8c61681d5 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.componentdidupdate.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableRoot](./kibana-plugin-plugins-embeddable-public.embeddableroot.md) > [componentDidUpdate](./kibana-plugin-plugins-embeddable-public.embeddableroot.componentdidupdate.md) + +## EmbeddableRoot.componentDidUpdate() method + +Signature: + +```typescript +componentDidUpdate(prevProps?: Props): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| prevProps | Props | | + +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.md new file mode 100644 index 0000000000000..49d8a184f334c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.md @@ -0,0 +1,27 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableRoot](./kibana-plugin-plugins-embeddable-public.embeddableroot.md) + +## EmbeddableRoot class + +Signature: + +```typescript +export declare class EmbeddableRoot extends React.Component +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)(props)](./kibana-plugin-plugins-embeddable-public.embeddableroot._constructor_.md) | | Constructs a new instance of the EmbeddableRoot class | + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [componentDidMount()](./kibana-plugin-plugins-embeddable-public.embeddableroot.componentdidmount.md) | | | +| [componentDidUpdate(prevProps)](./kibana-plugin-plugins-embeddable-public.embeddableroot.componentdidupdate.md) | | | +| [render()](./kibana-plugin-plugins-embeddable-public.embeddableroot.render.md) | | | +| [shouldComponentUpdate(newProps)](./kibana-plugin-plugins-embeddable-public.embeddableroot.shouldcomponentupdate.md) | | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.render.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.render.md new file mode 100644 index 0000000000000..d9b3820dede15 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.render.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableRoot](./kibana-plugin-plugins-embeddable-public.embeddableroot.md) > [render](./kibana-plugin-plugins-embeddable-public.embeddableroot.render.md) + +## EmbeddableRoot.render() method + +Signature: + +```typescript +render(): JSX.Element; +``` +Returns: + +`JSX.Element` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.shouldcomponentupdate.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.shouldcomponentupdate.md new file mode 100644 index 0000000000000..36b08f72c0e40 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddableroot.shouldcomponentupdate.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableRoot](./kibana-plugin-plugins-embeddable-public.embeddableroot.md) > [shouldComponentUpdate](./kibana-plugin-plugins-embeddable-public.embeddableroot.shouldcomponentupdate.md) + +## EmbeddableRoot.shouldComponentUpdate() method + +Signature: + +```typescript +shouldComponentUpdate(newProps: Props): boolean; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| newProps | Props | | + +Returns: + +`boolean` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.md new file mode 100644 index 0000000000000..97d6eda66bdcd --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableSetup](./kibana-plugin-plugins-embeddable-public.embeddablesetup.md) + +## EmbeddableSetup interface + +Signature: + +```typescript +export interface EmbeddableSetup +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [registerEmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablesetup.registerembeddablefactory.md) | <I extends EmbeddableInput, O extends EmbeddableOutput, E extends IEmbeddable<I, O> = IEmbeddable<I, O>>(id: string, factory: EmbeddableFactoryDefinition<I, O, E>) => () => EmbeddableFactory<I, O, E> | | +| [registerEnhancement](./kibana-plugin-plugins-embeddable-public.embeddablesetup.registerenhancement.md) | (enhancement: EnhancementRegistryDefinition) => void | | +| [setCustomEmbeddableFactoryProvider](./kibana-plugin-plugins-embeddable-public.embeddablesetup.setcustomembeddablefactoryprovider.md) | (customProvider: EmbeddableFactoryProvider) => void | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.registerembeddablefactory.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.registerembeddablefactory.md new file mode 100644 index 0000000000000..d9f63b30dfe6d --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.registerembeddablefactory.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableSetup](./kibana-plugin-plugins-embeddable-public.embeddablesetup.md) > [registerEmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablesetup.registerembeddablefactory.md) + +## EmbeddableSetup.registerEmbeddableFactory property + +Signature: + +```typescript +registerEmbeddableFactory: = IEmbeddable>(id: string, factory: EmbeddableFactoryDefinition) => () => EmbeddableFactory; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.registerenhancement.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.registerenhancement.md new file mode 100644 index 0000000000000..46baaf6dbf268 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.registerenhancement.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableSetup](./kibana-plugin-plugins-embeddable-public.embeddablesetup.md) > [registerEnhancement](./kibana-plugin-plugins-embeddable-public.embeddablesetup.registerenhancement.md) + +## EmbeddableSetup.registerEnhancement property + +Signature: + +```typescript +registerEnhancement: (enhancement: EnhancementRegistryDefinition) => void; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.setcustomembeddablefactoryprovider.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.setcustomembeddablefactoryprovider.md new file mode 100644 index 0000000000000..463ff80e5818b --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetup.setcustomembeddablefactoryprovider.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableSetup](./kibana-plugin-plugins-embeddable-public.embeddablesetup.md) > [setCustomEmbeddableFactoryProvider](./kibana-plugin-plugins-embeddable-public.embeddablesetup.setcustomembeddablefactoryprovider.md) + +## EmbeddableSetup.setCustomEmbeddableFactoryProvider property + +Signature: + +```typescript +setCustomEmbeddableFactoryProvider: (customProvider: EmbeddableFactoryProvider) => void; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.data.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.data.md new file mode 100644 index 0000000000000..d3a62657372ac --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.data.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableSetupDependencies](./kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.md) > [data](./kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.data.md) + +## EmbeddableSetupDependencies.data property + +Signature: + +```typescript +data: DataPublicPluginSetup; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.md new file mode 100644 index 0000000000000..fdd31ca75be2a --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableSetupDependencies](./kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.md) + +## EmbeddableSetupDependencies interface + +Signature: + +```typescript +export interface EmbeddableSetupDependencies +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [data](./kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.data.md) | DataPublicPluginSetup | | +| [uiActions](./kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.uiactions.md) | UiActionsSetup | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.uiactions.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.uiactions.md new file mode 100644 index 0000000000000..7eff6e2b0b28b --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.uiactions.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableSetupDependencies](./kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.md) > [uiActions](./kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.uiactions.md) + +## EmbeddableSetupDependencies.uiActions property + +Signature: + +```typescript +uiActions: UiActionsSetup; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.embeddablepanel.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.embeddablepanel.md new file mode 100644 index 0000000000000..b8c10bf0e4473 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.embeddablepanel.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStart](./kibana-plugin-plugins-embeddable-public.embeddablestart.md) > [EmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablestart.embeddablepanel.md) + +## EmbeddableStart.EmbeddablePanel property + +Signature: + +```typescript +EmbeddablePanel: EmbeddablePanelHOC; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablefactories.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablefactories.md new file mode 100644 index 0000000000000..cc6b1187903bf --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablefactories.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStart](./kibana-plugin-plugins-embeddable-public.embeddablestart.md) > [getEmbeddableFactories](./kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablefactories.md) + +## EmbeddableStart.getEmbeddableFactories property + +Signature: + +```typescript +getEmbeddableFactories: () => IterableIterator; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablefactory.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablefactory.md new file mode 100644 index 0000000000000..d91878754bd7d --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablefactory.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStart](./kibana-plugin-plugins-embeddable-public.embeddablestart.md) > [getEmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablefactory.md) + +## EmbeddableStart.getEmbeddableFactory property + +Signature: + +```typescript +getEmbeddableFactory: = IEmbeddable>(embeddableFactoryId: string) => EmbeddableFactory | undefined; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablepanel.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablepanel.md new file mode 100644 index 0000000000000..7ba24a62a3893 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablepanel.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStart](./kibana-plugin-plugins-embeddable-public.embeddablestart.md) > [getEmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablepanel.md) + +## EmbeddableStart.getEmbeddablePanel property + +Signature: + +```typescript +getEmbeddablePanel: (stateTransfer?: EmbeddableStateTransfer) => EmbeddablePanelHOC; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getstatetransfer.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getstatetransfer.md new file mode 100644 index 0000000000000..dafc66b1a6e15 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.getstatetransfer.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStart](./kibana-plugin-plugins-embeddable-public.embeddablestart.md) > [getStateTransfer](./kibana-plugin-plugins-embeddable-public.embeddablestart.getstatetransfer.md) + +## EmbeddableStart.getStateTransfer property + +Signature: + +```typescript +getStateTransfer: (history?: ScopedHistory) => EmbeddableStateTransfer; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.md new file mode 100644 index 0000000000000..f8e0028d8344b --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestart.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStart](./kibana-plugin-plugins-embeddable-public.embeddablestart.md) + +## EmbeddableStart interface + +Signature: + +```typescript +export interface EmbeddableStart extends PersistableState +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [EmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablestart.embeddablepanel.md) | EmbeddablePanelHOC | | +| [getEmbeddableFactories](./kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablefactories.md) | () => IterableIterator<EmbeddableFactory> | | +| [getEmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablefactory.md) | <I extends EmbeddableInput = EmbeddableInput, O extends EmbeddableOutput = EmbeddableOutput, E extends IEmbeddable<I, O> = IEmbeddable<I, O>>(embeddableFactoryId: string) => EmbeddableFactory<I, O, E> | undefined | | +| [getEmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablestart.getembeddablepanel.md) | (stateTransfer?: EmbeddableStateTransfer) => EmbeddablePanelHOC | | +| [getStateTransfer](./kibana-plugin-plugins-embeddable-public.embeddablestart.getstatetransfer.md) | (history?: ScopedHistory) => EmbeddableStateTransfer | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.data.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.data.md new file mode 100644 index 0000000000000..0595609b11e49 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.data.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStartDependencies](./kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.md) > [data](./kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.data.md) + +## EmbeddableStartDependencies.data property + +Signature: + +```typescript +data: DataPublicPluginStart; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.inspector.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.inspector.md new file mode 100644 index 0000000000000..299cc945104ab --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.inspector.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStartDependencies](./kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.md) > [inspector](./kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.inspector.md) + +## EmbeddableStartDependencies.inspector property + +Signature: + +```typescript +inspector: InspectorStart; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.md new file mode 100644 index 0000000000000..5a1b5d1e06861 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStartDependencies](./kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.md) + +## EmbeddableStartDependencies interface + +Signature: + +```typescript +export interface EmbeddableStartDependencies +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [data](./kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.data.md) | DataPublicPluginStart | | +| [inspector](./kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.inspector.md) | InspectorStart | | +| [uiActions](./kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.uiactions.md) | UiActionsStart | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.uiactions.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.uiactions.md new file mode 100644 index 0000000000000..398ee3fbcbc50 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.uiactions.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStartDependencies](./kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.md) > [uiActions](./kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.uiactions.md) + +## EmbeddableStartDependencies.uiActions property + +Signature: + +```typescript +uiActions: UiActionsStart; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer._constructor_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer._constructor_.md new file mode 100644 index 0000000000000..323ed5e38bde1 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer._constructor_.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStateTransfer](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.md) > [(constructor)](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer._constructor_.md) + +## EmbeddableStateTransfer.(constructor) + +Constructs a new instance of the `EmbeddableStateTransfer` class + +Signature: + +```typescript +constructor(navigateToApp: ApplicationStart['navigateToApp'], scopedHistory?: ScopedHistory | undefined, appList?: ReadonlyMap | undefined); +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| navigateToApp | ApplicationStart['navigateToApp'] | | +| scopedHistory | ScopedHistory<unknown> | undefined | | +| appList | ReadonlyMap<string, PublicAppInfo> | undefined | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getappnamefromid.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getappnamefromid.md new file mode 100644 index 0000000000000..f15574593e853 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getappnamefromid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStateTransfer](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.md) > [getAppNameFromId](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getappnamefromid.md) + +## EmbeddableStateTransfer.getAppNameFromId property + +Fetches an internationalized app title when given an appId. + +Signature: + +```typescript +getAppNameFromId: (appId: string) => string | undefined; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getincomingeditorstate.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getincomingeditorstate.md new file mode 100644 index 0000000000000..2a0823a9bf835 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getincomingeditorstate.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStateTransfer](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.md) > [getIncomingEditorState](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getincomingeditorstate.md) + +## EmbeddableStateTransfer.getIncomingEditorState() method + +Fetches an [originating app](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md) argument from the scoped history's location state. + +Signature: + +```typescript +getIncomingEditorState(options?: { + keysToRemoveAfterFetch?: string[]; + }): EmbeddableEditorState | undefined; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| options | {
keysToRemoveAfterFetch?: string[];
} | | + +Returns: + +`EmbeddableEditorState | undefined` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getincomingembeddablepackage.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getincomingembeddablepackage.md new file mode 100644 index 0000000000000..2069f0ce084f9 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getincomingembeddablepackage.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStateTransfer](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.md) > [getIncomingEmbeddablePackage](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getincomingembeddablepackage.md) + +## EmbeddableStateTransfer.getIncomingEmbeddablePackage() method + +Fetches an [embeddable package](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md) argument from the scoped history's location state. + +Signature: + +```typescript +getIncomingEmbeddablePackage(options?: { + keysToRemoveAfterFetch?: string[]; + }): EmbeddablePackageState | undefined; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| options | {
keysToRemoveAfterFetch?: string[];
} | | + +Returns: + +`EmbeddablePackageState | undefined` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.md new file mode 100644 index 0000000000000..2b44693e14846 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.md @@ -0,0 +1,35 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStateTransfer](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.md) + +## EmbeddableStateTransfer class + +A wrapper around the state object in which provides strongly typed helper methods for common incoming and outgoing states used by the embeddable infrastructure. + +Signature: + +```typescript +export declare class EmbeddableStateTransfer +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)(navigateToApp, scopedHistory, appList)](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer._constructor_.md) | | Constructs a new instance of the EmbeddableStateTransfer class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [getAppNameFromId](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getappnamefromid.md) | | (appId: string) => string | undefined | Fetches an internationalized app title when given an appId. | + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [getIncomingEditorState(options)](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getincomingeditorstate.md) | | Fetches an [originating app](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md) argument from the scoped history's location state. | +| [getIncomingEmbeddablePackage(options)](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.getincomingembeddablepackage.md) | | Fetches an [embeddable package](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md) argument from the scoped history's location state. | +| [navigateToEditor(appId, options)](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.navigatetoeditor.md) | | A wrapper around the method which navigates to the specified appId with [embeddable editor state](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md) | +| [navigateToWithEmbeddablePackage(appId, options)](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.navigatetowithembeddablepackage.md) | | A wrapper around the method which navigates to the specified appId with [embeddable package state](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md) | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.navigatetoeditor.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.navigatetoeditor.md new file mode 100644 index 0000000000000..fa24784d9aac5 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.navigatetoeditor.md @@ -0,0 +1,29 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStateTransfer](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.md) > [navigateToEditor](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.navigatetoeditor.md) + +## EmbeddableStateTransfer.navigateToEditor() method + +A wrapper around the method which navigates to the specified appId with [embeddable editor state](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md) + +Signature: + +```typescript +navigateToEditor(appId: string, options?: { + path?: string; + state: EmbeddableEditorState; + appendToExistingState?: boolean; + }): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| appId | string | | +| options | {
path?: string;
state: EmbeddableEditorState;
appendToExistingState?: boolean;
} | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.navigatetowithembeddablepackage.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.navigatetowithembeddablepackage.md new file mode 100644 index 0000000000000..7173bc8b127cd --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.navigatetowithembeddablepackage.md @@ -0,0 +1,29 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EmbeddableStateTransfer](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.md) > [navigateToWithEmbeddablePackage](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.navigatetowithembeddablepackage.md) + +## EmbeddableStateTransfer.navigateToWithEmbeddablePackage() method + +A wrapper around the method which navigates to the specified appId with [embeddable package state](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md) + +Signature: + +```typescript +navigateToWithEmbeddablePackage(appId: string, options?: { + path?: string; + state: EmbeddablePackageState; + appendToExistingState?: boolean; + }): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| appId | string | | +| options | {
path?: string;
state: EmbeddablePackageState;
appendToExistingState?: boolean;
} | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.id.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.id.md new file mode 100644 index 0000000000000..083b3931bcf7d --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.id.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EnhancementRegistryDefinition](./kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.md) > [id](./kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.id.md) + +## EnhancementRegistryDefinition.id property + +Signature: + +```typescript +id: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.md new file mode 100644 index 0000000000000..c54ebe4b1712d --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.md @@ -0,0 +1,18 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [EnhancementRegistryDefinition](./kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.md) + +## EnhancementRegistryDefinition interface + +Signature: + +```typescript +export interface EnhancementRegistryDefinition

extends PersistableStateDefinition

+``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [id](./kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.id.md) | string | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable._constructor_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable._constructor_.md new file mode 100644 index 0000000000000..0facb07b41692 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable._constructor_.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ErrorEmbeddable](./kibana-plugin-plugins-embeddable-public.errorembeddable.md) > [(constructor)](./kibana-plugin-plugins-embeddable-public.errorembeddable._constructor_.md) + +## ErrorEmbeddable.(constructor) + +Constructs a new instance of the `ErrorEmbeddable` class + +Signature: + +```typescript +constructor(error: Error | string, input: EmbeddableInput, parent?: IContainer); +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| error | Error | string | | +| input | EmbeddableInput | | +| parent | IContainer | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.destroy.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.destroy.md new file mode 100644 index 0000000000000..eeb605f2140ec --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.destroy.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ErrorEmbeddable](./kibana-plugin-plugins-embeddable-public.errorembeddable.md) > [destroy](./kibana-plugin-plugins-embeddable-public.errorembeddable.destroy.md) + +## ErrorEmbeddable.destroy() method + +Signature: + +```typescript +destroy(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.error.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.error.md new file mode 100644 index 0000000000000..7e4def3d52923 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.error.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ErrorEmbeddable](./kibana-plugin-plugins-embeddable-public.errorembeddable.md) > [error](./kibana-plugin-plugins-embeddable-public.errorembeddable.error.md) + +## ErrorEmbeddable.error property + +Signature: + +```typescript +error: Error | string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.md new file mode 100644 index 0000000000000..75f3fc6d503d5 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.md @@ -0,0 +1,33 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ErrorEmbeddable](./kibana-plugin-plugins-embeddable-public.errorembeddable.md) + +## ErrorEmbeddable class + +Signature: + +```typescript +export declare class ErrorEmbeddable extends Embeddable +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)(error, input, parent)](./kibana-plugin-plugins-embeddable-public.errorembeddable._constructor_.md) | | Constructs a new instance of the ErrorEmbeddable class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [error](./kibana-plugin-plugins-embeddable-public.errorembeddable.error.md) | | Error | string | | +| [type](./kibana-plugin-plugins-embeddable-public.errorembeddable.type.md) | | | | + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [destroy()](./kibana-plugin-plugins-embeddable-public.errorembeddable.destroy.md) | | | +| [reload()](./kibana-plugin-plugins-embeddable-public.errorembeddable.reload.md) | | | +| [render(dom)](./kibana-plugin-plugins-embeddable-public.errorembeddable.render.md) | | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.reload.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.reload.md new file mode 100644 index 0000000000000..14d7c9fcf7ee0 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.reload.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ErrorEmbeddable](./kibana-plugin-plugins-embeddable-public.errorembeddable.md) > [reload](./kibana-plugin-plugins-embeddable-public.errorembeddable.reload.md) + +## ErrorEmbeddable.reload() method + +Signature: + +```typescript +reload(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.render.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.render.md new file mode 100644 index 0000000000000..70c9d169f3f7e --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.render.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ErrorEmbeddable](./kibana-plugin-plugins-embeddable-public.errorembeddable.md) > [render](./kibana-plugin-plugins-embeddable-public.errorembeddable.render.md) + +## ErrorEmbeddable.render() method + +Signature: + +```typescript +render(dom: HTMLElement): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| dom | HTMLElement | | + +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.type.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.type.md new file mode 100644 index 0000000000000..d407e743a89af --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.errorembeddable.type.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ErrorEmbeddable](./kibana-plugin-plugins-embeddable-public.errorembeddable.md) > [type](./kibana-plugin-plugins-embeddable-public.errorembeddable.type.md) + +## ErrorEmbeddable.type property + +Signature: + +```typescript +readonly type = "error"; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.addnewembeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.addnewembeddable.md new file mode 100644 index 0000000000000..ca0095580a0ba --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.addnewembeddable.md @@ -0,0 +1,25 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IContainer](./kibana-plugin-plugins-embeddable-public.icontainer.md) > [addNewEmbeddable](./kibana-plugin-plugins-embeddable-public.icontainer.addnewembeddable.md) + +## IContainer.addNewEmbeddable() method + +Adds a new embeddable to the container. `explicitInput` may partially specify the required embeddable input, but the remainder must come from inherited container state. + +Signature: + +```typescript +addNewEmbeddable = Embeddable>(type: string, explicitInput: Partial): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| type | string | | +| explicitInput | Partial<EEI> | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.getchild.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.getchild.md new file mode 100644 index 0000000000000..4355cfb68ad3f --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.getchild.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IContainer](./kibana-plugin-plugins-embeddable-public.icontainer.md) > [getChild](./kibana-plugin-plugins-embeddable-public.icontainer.getchild.md) + +## IContainer.getChild() method + +Returns the child embeddable with the given id. + +Signature: + +```typescript +getChild = Embeddable>(id: string): E; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| id | string | | + +Returns: + +`E` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.getinputforchild.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.getinputforchild.md new file mode 100644 index 0000000000000..e5afc0eac3ce0 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.getinputforchild.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IContainer](./kibana-plugin-plugins-embeddable-public.icontainer.md) > [getInputForChild](./kibana-plugin-plugins-embeddable-public.icontainer.getinputforchild.md) + +## IContainer.getInputForChild() method + +Returns the input for the given child. Uses a combination of explicit input for the child stored on the parent and derived/inherited input taken from the container itself. + +Signature: + +```typescript +getInputForChild(id: string): EEI; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| id | string | | + +Returns: + +`EEI` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.md new file mode 100644 index 0000000000000..cba430069c7a4 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IContainer](./kibana-plugin-plugins-embeddable-public.icontainer.md) + +## IContainer interface + +Signature: + +```typescript +export interface IContainer = ContainerInput, O extends ContainerOutput = ContainerOutput> extends IEmbeddable +``` + +## Methods + +| Method | Description | +| --- | --- | +| [addNewEmbeddable(type, explicitInput)](./kibana-plugin-plugins-embeddable-public.icontainer.addnewembeddable.md) | Adds a new embeddable to the container. explicitInput may partially specify the required embeddable input, but the remainder must come from inherited container state. | +| [getChild(id)](./kibana-plugin-plugins-embeddable-public.icontainer.getchild.md) | Returns the child embeddable with the given id. | +| [getInputForChild(id)](./kibana-plugin-plugins-embeddable-public.icontainer.getinputforchild.md) | Returns the input for the given child. Uses a combination of explicit input for the child stored on the parent and derived/inherited input taken from the container itself. | +| [removeEmbeddable(embeddableId)](./kibana-plugin-plugins-embeddable-public.icontainer.removeembeddable.md) | Removes the embeddable with the given id. | +| [untilEmbeddableLoaded(id)](./kibana-plugin-plugins-embeddable-public.icontainer.untilembeddableloaded.md) | Call if you want to wait until an embeddable with that id has finished loading. | +| [updateInputForChild(id, changes)](./kibana-plugin-plugins-embeddable-public.icontainer.updateinputforchild.md) | Changes the input for a given child. Note, this will override any inherited state taken from the container itself. | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.removeembeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.removeembeddable.md new file mode 100644 index 0000000000000..94a991ca20a14 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.removeembeddable.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IContainer](./kibana-plugin-plugins-embeddable-public.icontainer.md) > [removeEmbeddable](./kibana-plugin-plugins-embeddable-public.icontainer.removeembeddable.md) + +## IContainer.removeEmbeddable() method + +Removes the embeddable with the given id. + +Signature: + +```typescript +removeEmbeddable(embeddableId: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| embeddableId | string | | + +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.untilembeddableloaded.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.untilembeddableloaded.md new file mode 100644 index 0000000000000..0d6d4a3d8ccf0 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.untilembeddableloaded.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IContainer](./kibana-plugin-plugins-embeddable-public.icontainer.md) > [untilEmbeddableLoaded](./kibana-plugin-plugins-embeddable-public.icontainer.untilembeddableloaded.md) + +## IContainer.untilEmbeddableLoaded() method + +Call if you want to wait until an embeddable with that id has finished loading. + +Signature: + +```typescript +untilEmbeddableLoaded(id: string): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| id | string | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.updateinputforchild.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.updateinputforchild.md new file mode 100644 index 0000000000000..04a82b0065516 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.icontainer.updateinputforchild.md @@ -0,0 +1,25 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IContainer](./kibana-plugin-plugins-embeddable-public.icontainer.md) > [updateInputForChild](./kibana-plugin-plugins-embeddable-public.icontainer.updateinputforchild.md) + +## IContainer.updateInputForChild() method + +Changes the input for a given child. Note, this will override any inherited state taken from the container itself. + +Signature: + +```typescript +updateInputForChild(id: string, changes: Partial): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| id | string | | +| changes | Partial<EEI> | | + +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.destroy.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.destroy.md new file mode 100644 index 0000000000000..7fc636f40f3c2 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.destroy.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [destroy](./kibana-plugin-plugins-embeddable-public.iembeddable.destroy.md) + +## IEmbeddable.destroy() method + +Cleans up subscriptions, destroy nodes mounted from calls to render. + +Signature: + +```typescript +destroy(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.enhancements.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.enhancements.md new file mode 100644 index 0000000000000..9183cd6887872 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.enhancements.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [enhancements](./kibana-plugin-plugins-embeddable-public.iembeddable.enhancements.md) + +## IEmbeddable.enhancements property + +Extra abilities added to Embeddable by `*_enhanced` plugins. + +Signature: + +```typescript +enhancements?: object; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getinput.md new file mode 100644 index 0000000000000..2fd8db07fa342 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getinput.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [getInput](./kibana-plugin-plugins-embeddable-public.iembeddable.getinput.md) + +## IEmbeddable.getInput() method + +Get the input used to instantiate this embeddable. The input is a serialized representation of this embeddable instance and can be used to clone or re-instantiate it. Input state: + +- Can be updated externally - Can change multiple times for a single embeddable instance. + +Examples: title, pie slice colors, custom search columns and sort order. + +Signature: + +```typescript +getInput(): Readonly; +``` +Returns: + +`Readonly` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getinput_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getinput_.md new file mode 100644 index 0000000000000..ad91ad56b3d72 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getinput_.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [getInput$](./kibana-plugin-plugins-embeddable-public.iembeddable.getinput_.md) + +## IEmbeddable.getInput$() method + +Returns an observable which will be notified when input state changes. + +Signature: + +```typescript +getInput$(): Readonly>; +``` +Returns: + +`Readonly>` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getinspectoradapters.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getinspectoradapters.md new file mode 100644 index 0000000000000..84b083acac6f4 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getinspectoradapters.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [getInspectorAdapters](./kibana-plugin-plugins-embeddable-public.iembeddable.getinspectoradapters.md) + +## IEmbeddable.getInspectorAdapters() method + +An embeddable can return inspector adapters if it wants the inspector to be available via the context menu of that panel. Inspector adapters that will be used to open an inspector for. + +Signature: + +```typescript +getInspectorAdapters(): Adapters | undefined; +``` +Returns: + +`Adapters | undefined` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getiscontainer.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getiscontainer.md new file mode 100644 index 0000000000000..f9bfbbc4ca9bd --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getiscontainer.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [getIsContainer](./kibana-plugin-plugins-embeddable-public.iembeddable.getiscontainer.md) + +## IEmbeddable.getIsContainer() method + +A functional representation of the isContainer variable, but helpful for typescript to know the shape if this returns true + +Signature: + +```typescript +getIsContainer(): this is IContainer; +``` +Returns: + +`this is IContainer` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getoutput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getoutput.md new file mode 100644 index 0000000000000..7e4e4fd3d4329 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getoutput.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [getOutput](./kibana-plugin-plugins-embeddable-public.iembeddable.getoutput.md) + +## IEmbeddable.getOutput() method + +Output state is: + +- State that should not change once the embeddable is instantiated, or - State that is derived from the input state, or - State that only the embeddable instance itself knows about, or the factory. + +Examples: editUrl, title taken from a saved object, if your input state was first name and last name, your output state could be greeting. + +Signature: + +```typescript +getOutput(): Readonly; +``` +Returns: + +`Readonly` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getoutput_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getoutput_.md new file mode 100644 index 0000000000000..11ec3e0d1c8ea --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getoutput_.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [getOutput$](./kibana-plugin-plugins-embeddable-public.iembeddable.getoutput_.md) + +## IEmbeddable.getOutput$() method + +Returns an observable which will be notified when output state changes. + +Signature: + +```typescript +getOutput$(): Readonly>; +``` +Returns: + +`Readonly>` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getroot.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getroot.md new file mode 100644 index 0000000000000..eacec168b4d8a --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.getroot.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [getRoot](./kibana-plugin-plugins-embeddable-public.iembeddable.getroot.md) + +## IEmbeddable.getRoot() method + +Returns the top most parent embeddable, or itself if this embeddable is not within a parent. + +Signature: + +```typescript +getRoot(): IEmbeddable | IContainer; +``` +Returns: + +`IEmbeddable | IContainer` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.gettitle.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.gettitle.md new file mode 100644 index 0000000000000..eed80882f4b93 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.gettitle.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [getTitle](./kibana-plugin-plugins-embeddable-public.iembeddable.gettitle.md) + +## IEmbeddable.getTitle() method + +Returns the title of this embeddable. + +Signature: + +```typescript +getTitle(): string | undefined; +``` +Returns: + +`string | undefined` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.id.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.id.md new file mode 100644 index 0000000000000..7d2f5b9c7e71b --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.id.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [id](./kibana-plugin-plugins-embeddable-public.iembeddable.id.md) + +## IEmbeddable.id property + +A unique identifier for this embeddable. Mainly only used by containers to map their Panel States to a child embeddable instance. + +Signature: + +```typescript +readonly id: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.iscontainer.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.iscontainer.md new file mode 100644 index 0000000000000..93b910ee6f6a1 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.iscontainer.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [isContainer](./kibana-plugin-plugins-embeddable-public.iembeddable.iscontainer.md) + +## IEmbeddable.isContainer property + +Is this embeddable an instance of a Container class, can it contain nested embeddables? + +Signature: + +```typescript +readonly isContainer: boolean; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.md new file mode 100644 index 0000000000000..b3b6f961e56d1 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.md @@ -0,0 +1,41 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) + +## IEmbeddable interface + +Signature: + +```typescript +export interface IEmbeddable +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [enhancements](./kibana-plugin-plugins-embeddable-public.iembeddable.enhancements.md) | object | Extra abilities added to Embeddable by *_enhanced plugins. | +| [id](./kibana-plugin-plugins-embeddable-public.iembeddable.id.md) | string | A unique identifier for this embeddable. Mainly only used by containers to map their Panel States to a child embeddable instance. | +| [isContainer](./kibana-plugin-plugins-embeddable-public.iembeddable.iscontainer.md) | boolean | Is this embeddable an instance of a Container class, can it contain nested embeddables? | +| [parent](./kibana-plugin-plugins-embeddable-public.iembeddable.parent.md) | IContainer | If this embeddable is nested inside a container, this will contain a reference to its parent. | +| [runtimeId](./kibana-plugin-plugins-embeddable-public.iembeddable.runtimeid.md) | number | Unique ID an embeddable is assigned each time it is initialized. This ID is different for different instances of the same embeddable. For example, if the same dashboard is rendered twice on the screen, all embeddable instances will have a unique runtimeId. | +| [type](./kibana-plugin-plugins-embeddable-public.iembeddable.type.md) | string | The type of embeddable, this is what will be used to take a serialized embeddable and find the correct factory for which to create an instance of it. | + +## Methods + +| Method | Description | +| --- | --- | +| [destroy()](./kibana-plugin-plugins-embeddable-public.iembeddable.destroy.md) | Cleans up subscriptions, destroy nodes mounted from calls to render. | +| [getInput()](./kibana-plugin-plugins-embeddable-public.iembeddable.getinput.md) | Get the input used to instantiate this embeddable. The input is a serialized representation of this embeddable instance and can be used to clone or re-instantiate it. Input state:- Can be updated externally - Can change multiple times for a single embeddable instance.Examples: title, pie slice colors, custom search columns and sort order. | +| [getInput$()](./kibana-plugin-plugins-embeddable-public.iembeddable.getinput_.md) | Returns an observable which will be notified when input state changes. | +| [getInspectorAdapters()](./kibana-plugin-plugins-embeddable-public.iembeddable.getinspectoradapters.md) | An embeddable can return inspector adapters if it wants the inspector to be available via the context menu of that panel. Inspector adapters that will be used to open an inspector for. | +| [getIsContainer()](./kibana-plugin-plugins-embeddable-public.iembeddable.getiscontainer.md) | A functional representation of the isContainer variable, but helpful for typescript to know the shape if this returns true | +| [getOutput()](./kibana-plugin-plugins-embeddable-public.iembeddable.getoutput.md) | Output state is:- State that should not change once the embeddable is instantiated, or - State that is derived from the input state, or - State that only the embeddable instance itself knows about, or the factory.Examples: editUrl, title taken from a saved object, if your input state was first name and last name, your output state could be greeting. | +| [getOutput$()](./kibana-plugin-plugins-embeddable-public.iembeddable.getoutput_.md) | Returns an observable which will be notified when output state changes. | +| [getRoot()](./kibana-plugin-plugins-embeddable-public.iembeddable.getroot.md) | Returns the top most parent embeddable, or itself if this embeddable is not within a parent. | +| [getTitle()](./kibana-plugin-plugins-embeddable-public.iembeddable.gettitle.md) | Returns the title of this embeddable. | +| [reload()](./kibana-plugin-plugins-embeddable-public.iembeddable.reload.md) | Reload the embeddable so output and rendering is up to date. Especially relevant if the embeddable takes relative time as input (e.g. now to now-15) | +| [render(domNode)](./kibana-plugin-plugins-embeddable-public.iembeddable.render.md) | Renders the embeddable at the given node. | +| [supportedTriggers()](./kibana-plugin-plugins-embeddable-public.iembeddable.supportedtriggers.md) | List of triggers that this embeddable will execute. | +| [updateInput(changes)](./kibana-plugin-plugins-embeddable-public.iembeddable.updateinput.md) | Updates input state with the given changes. | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.parent.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.parent.md new file mode 100644 index 0000000000000..d20102902cdb0 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.parent.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [parent](./kibana-plugin-plugins-embeddable-public.iembeddable.parent.md) + +## IEmbeddable.parent property + +If this embeddable is nested inside a container, this will contain a reference to its parent. + +Signature: + +```typescript +readonly parent?: IContainer; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.reload.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.reload.md new file mode 100644 index 0000000000000..8caea9d8dc511 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.reload.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [reload](./kibana-plugin-plugins-embeddable-public.iembeddable.reload.md) + +## IEmbeddable.reload() method + +Reload the embeddable so output and rendering is up to date. Especially relevant if the embeddable takes relative time as input (e.g. now to now-15) + +Signature: + +```typescript +reload(): void; +``` +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.render.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.render.md new file mode 100644 index 0000000000000..9079227b622dc --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.render.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [render](./kibana-plugin-plugins-embeddable-public.iembeddable.render.md) + +## IEmbeddable.render() method + +Renders the embeddable at the given node. + +Signature: + +```typescript +render(domNode: HTMLElement | Element): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| domNode | HTMLElement | Element | | + +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.runtimeid.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.runtimeid.md new file mode 100644 index 0000000000000..5ddd8ddd0f8dd --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.runtimeid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [runtimeId](./kibana-plugin-plugins-embeddable-public.iembeddable.runtimeid.md) + +## IEmbeddable.runtimeId property + +Unique ID an embeddable is assigned each time it is initialized. This ID is different for different instances of the same embeddable. For example, if the same dashboard is rendered twice on the screen, all embeddable instances will have a unique `runtimeId`. + +Signature: + +```typescript +readonly runtimeId?: number; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.supportedtriggers.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.supportedtriggers.md new file mode 100644 index 0000000000000..5480f3b246648 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.supportedtriggers.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [supportedTriggers](./kibana-plugin-plugins-embeddable-public.iembeddable.supportedtriggers.md) + +## IEmbeddable.supportedTriggers() method + +List of triggers that this embeddable will execute. + +Signature: + +```typescript +supportedTriggers(): Array; +``` +Returns: + +`Array` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.type.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.type.md new file mode 100644 index 0000000000000..46b9d40685dba --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.type.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [type](./kibana-plugin-plugins-embeddable-public.iembeddable.type.md) + +## IEmbeddable.type property + +The type of embeddable, this is what will be used to take a serialized embeddable and find the correct factory for which to create an instance of it. + +Signature: + +```typescript +readonly type: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.updateinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.updateinput.md new file mode 100644 index 0000000000000..523464103bd1a --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iembeddable.updateinput.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) > [updateInput](./kibana-plugin-plugins-embeddable-public.iembeddable.updateinput.md) + +## IEmbeddable.updateInput() method + +Updates input state with the given changes. + +Signature: + +```typescript +updateInput(changes: Partial): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| changes | Partial<I> | | + +Returns: + +`void` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iserrorembeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iserrorembeddable.md new file mode 100644 index 0000000000000..358d085ea9bba --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.iserrorembeddable.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [isErrorEmbeddable](./kibana-plugin-plugins-embeddable-public.iserrorembeddable.md) + +## isErrorEmbeddable() function + +Signature: + +```typescript +export declare function isErrorEmbeddable(embeddable: TEmbeddable | ErrorEmbeddable): embeddable is ErrorEmbeddable; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| embeddable | TEmbeddable | ErrorEmbeddable | | + +Returns: + +`embeddable is ErrorEmbeddable` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.israngeselecttriggercontext.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.israngeselecttriggercontext.md new file mode 100644 index 0000000000000..cd28494fe3a09 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.israngeselecttriggercontext.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [isRangeSelectTriggerContext](./kibana-plugin-plugins-embeddable-public.israngeselecttriggercontext.md) + +## isRangeSelectTriggerContext variable + +Signature: + +```typescript +isRangeSelectTriggerContext: (context: ChartActionContext) => context is RangeSelectContext> +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.isreferenceorvalueembeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.isreferenceorvalueembeddable.md new file mode 100644 index 0000000000000..26a221d929ce6 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.isreferenceorvalueembeddable.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [isReferenceOrValueEmbeddable](./kibana-plugin-plugins-embeddable-public.isreferenceorvalueembeddable.md) + +## isReferenceOrValueEmbeddable() function + +Signature: + +```typescript +export declare function isReferenceOrValueEmbeddable(incoming: unknown): incoming is ReferenceOrValueEmbeddable; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| incoming | unknown | | + +Returns: + +`incoming is ReferenceOrValueEmbeddable` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.issavedobjectembeddableinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.issavedobjectembeddableinput.md new file mode 100644 index 0000000000000..663cc41f1bffc --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.issavedobjectembeddableinput.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [isSavedObjectEmbeddableInput](./kibana-plugin-plugins-embeddable-public.issavedobjectembeddableinput.md) + +## isSavedObjectEmbeddableInput() function + +Signature: + +```typescript +export declare function isSavedObjectEmbeddableInput(input: EmbeddableInput | SavedObjectEmbeddableInput): input is SavedObjectEmbeddableInput; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| input | EmbeddableInput | SavedObjectEmbeddableInput | | + +Returns: + +`input is SavedObjectEmbeddableInput` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.isvalueclicktriggercontext.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.isvalueclicktriggercontext.md new file mode 100644 index 0000000000000..4e3c970d9b437 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.isvalueclicktriggercontext.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [isValueClickTriggerContext](./kibana-plugin-plugins-embeddable-public.isvalueclicktriggercontext.md) + +## isValueClickTriggerContext variable + +Signature: + +```typescript +isValueClickTriggerContext: (context: ChartActionContext) => context is ValueClickContext> +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.md new file mode 100644 index 0000000000000..64dfdd1c6dc22 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.md @@ -0,0 +1,95 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) + +## kibana-plugin-plugins-embeddable-public package + +## Classes + +| Class | Description | +| --- | --- | +| [AddPanelAction](./kibana-plugin-plugins-embeddable-public.addpanelaction.md) | | +| [Container](./kibana-plugin-plugins-embeddable-public.container.md) | | +| [EditPanelAction](./kibana-plugin-plugins-embeddable-public.editpanelaction.md) | | +| [Embeddable](./kibana-plugin-plugins-embeddable-public.embeddable.md) | | +| [EmbeddableChildPanel](./kibana-plugin-plugins-embeddable-public.embeddablechildpanel.md) | This component can be used by embeddable containers using react to easily render children. It waits for the child to be initialized, showing a loading indicator until that is complete. | +| [EmbeddableFactoryNotFoundError](./kibana-plugin-plugins-embeddable-public.embeddablefactorynotfounderror.md) | | +| [EmbeddablePanel](./kibana-plugin-plugins-embeddable-public.embeddablepanel.md) | | +| [EmbeddableRoot](./kibana-plugin-plugins-embeddable-public.embeddableroot.md) | | +| [EmbeddableStateTransfer](./kibana-plugin-plugins-embeddable-public.embeddablestatetransfer.md) | A wrapper around the state object in which provides strongly typed helper methods for common incoming and outgoing states used by the embeddable infrastructure. | +| [ErrorEmbeddable](./kibana-plugin-plugins-embeddable-public.errorembeddable.md) | | +| [PanelNotFoundError](./kibana-plugin-plugins-embeddable-public.panelnotfounderror.md) | | + +## Enumerations + +| Enumeration | Description | +| --- | --- | +| [ViewMode](./kibana-plugin-plugins-embeddable-public.viewmode.md) | | + +## Functions + +| Function | Description | +| --- | --- | +| [isErrorEmbeddable(embeddable)](./kibana-plugin-plugins-embeddable-public.iserrorembeddable.md) | | +| [isReferenceOrValueEmbeddable(incoming)](./kibana-plugin-plugins-embeddable-public.isreferenceorvalueembeddable.md) | | +| [isSavedObjectEmbeddableInput(input)](./kibana-plugin-plugins-embeddable-public.issavedobjectembeddableinput.md) | | +| [openAddPanelFlyout(options)](./kibana-plugin-plugins-embeddable-public.openaddpanelflyout.md) | | +| [plugin(initializerContext)](./kibana-plugin-plugins-embeddable-public.plugin.md) | | + +## Interfaces + +| Interface | Description | +| --- | --- | +| [Adapters](./kibana-plugin-plugins-embeddable-public.adapters.md) | The interface that the adapters used to open an inspector have to fullfill. | +| [ContainerInput](./kibana-plugin-plugins-embeddable-public.containerinput.md) | | +| [ContainerOutput](./kibana-plugin-plugins-embeddable-public.containeroutput.md) | | +| [EmbeddableChildPanelProps](./kibana-plugin-plugins-embeddable-public.embeddablechildpanelprops.md) | | +| [EmbeddableContext](./kibana-plugin-plugins-embeddable-public.embeddablecontext.md) | | +| [EmbeddableEditorState](./kibana-plugin-plugins-embeddable-public.embeddableeditorstate.md) | A state package that contains information an editor will need to create or edit an embeddable then redirect back. | +| [EmbeddableFactory](./kibana-plugin-plugins-embeddable-public.embeddablefactory.md) | EmbeddableFactories create and initialize an embeddable instance | +| [EmbeddableInstanceConfiguration](./kibana-plugin-plugins-embeddable-public.embeddableinstanceconfiguration.md) | | +| [EmbeddableOutput](./kibana-plugin-plugins-embeddable-public.embeddableoutput.md) | | +| [EmbeddablePackageState](./kibana-plugin-plugins-embeddable-public.embeddablepackagestate.md) | A state package that contains all fields necessary to create or update an embeddable by reference or by value in a container. | +| [EmbeddableSetup](./kibana-plugin-plugins-embeddable-public.embeddablesetup.md) | | +| [EmbeddableSetupDependencies](./kibana-plugin-plugins-embeddable-public.embeddablesetupdependencies.md) | | +| [EmbeddableStart](./kibana-plugin-plugins-embeddable-public.embeddablestart.md) | | +| [EmbeddableStartDependencies](./kibana-plugin-plugins-embeddable-public.embeddablestartdependencies.md) | | +| [EnhancementRegistryDefinition](./kibana-plugin-plugins-embeddable-public.enhancementregistrydefinition.md) | | +| [IContainer](./kibana-plugin-plugins-embeddable-public.icontainer.md) | | +| [IEmbeddable](./kibana-plugin-plugins-embeddable-public.iembeddable.md) | | +| [OutputSpec](./kibana-plugin-plugins-embeddable-public.outputspec.md) | | +| [PanelState](./kibana-plugin-plugins-embeddable-public.panelstate.md) | | +| [PropertySpec](./kibana-plugin-plugins-embeddable-public.propertyspec.md) | | +| [RangeSelectContext](./kibana-plugin-plugins-embeddable-public.rangeselectcontext.md) | | +| [ReferenceOrValueEmbeddable](./kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.md) | Any embeddable that implements this interface will be able to use input that is either by reference (backed by a saved object) OR by value, (provided by the container). | +| [SavedObjectEmbeddableInput](./kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.md) | | +| [ValueClickContext](./kibana-plugin-plugins-embeddable-public.valueclickcontext.md) | | + +## Variables + +| Variable | Description | +| --- | --- | +| [ACTION\_ADD\_PANEL](./kibana-plugin-plugins-embeddable-public.action_add_panel.md) | | +| [ACTION\_EDIT\_PANEL](./kibana-plugin-plugins-embeddable-public.action_edit_panel.md) | | +| [CONTEXT\_MENU\_TRIGGER](./kibana-plugin-plugins-embeddable-public.context_menu_trigger.md) | | +| [contextMenuTrigger](./kibana-plugin-plugins-embeddable-public.contextmenutrigger.md) | | +| [defaultEmbeddableFactoryProvider](./kibana-plugin-plugins-embeddable-public.defaultembeddablefactoryprovider.md) | | +| [EmbeddableRenderer](./kibana-plugin-plugins-embeddable-public.embeddablerenderer.md) | Helper react component to render an embeddable Can be used if you have an embeddable object or an embeddable factory Supports updating input by passing input prop | +| [isRangeSelectTriggerContext](./kibana-plugin-plugins-embeddable-public.israngeselecttriggercontext.md) | | +| [isValueClickTriggerContext](./kibana-plugin-plugins-embeddable-public.isvalueclicktriggercontext.md) | | +| [PANEL\_BADGE\_TRIGGER](./kibana-plugin-plugins-embeddable-public.panel_badge_trigger.md) | | +| [PANEL\_NOTIFICATION\_TRIGGER](./kibana-plugin-plugins-embeddable-public.panel_notification_trigger.md) | | +| [panelBadgeTrigger](./kibana-plugin-plugins-embeddable-public.panelbadgetrigger.md) | | +| [panelNotificationTrigger](./kibana-plugin-plugins-embeddable-public.panelnotificationtrigger.md) | | +| [withEmbeddableSubscription](./kibana-plugin-plugins-embeddable-public.withembeddablesubscription.md) | | + +## Type Aliases + +| Type Alias | Description | +| --- | --- | +| [ChartActionContext](./kibana-plugin-plugins-embeddable-public.chartactioncontext.md) | | +| [EmbeddableFactoryDefinition](./kibana-plugin-plugins-embeddable-public.embeddablefactorydefinition.md) | | +| [EmbeddableInput](./kibana-plugin-plugins-embeddable-public.embeddableinput.md) | | +| [EmbeddablePanelHOC](./kibana-plugin-plugins-embeddable-public.embeddablepanelhoc.md) | | +| [EmbeddableRendererProps](./kibana-plugin-plugins-embeddable-public.embeddablerendererprops.md) | This type is a publicly exposed props of [EmbeddableRenderer](./kibana-plugin-plugins-embeddable-public.embeddablerenderer.md) Union is used to validate that or factory or embeddable is passed in, but it can't be both simultaneously In case when embeddable is passed in, input is optional, because there is already an input inside of embeddable object In case when factory is used, then input is required, because it will be used as initial input to create an embeddable object | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.openaddpanelflyout.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.openaddpanelflyout.md new file mode 100644 index 0000000000000..ce97f79b4beb9 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.openaddpanelflyout.md @@ -0,0 +1,29 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [openAddPanelFlyout](./kibana-plugin-plugins-embeddable-public.openaddpanelflyout.md) + +## openAddPanelFlyout() function + +Signature: + +```typescript +export declare function openAddPanelFlyout(options: { + embeddable: IContainer; + getFactory: EmbeddableStart['getEmbeddableFactory']; + getAllFactories: EmbeddableStart['getEmbeddableFactories']; + overlays: OverlayStart; + notifications: NotificationsStart; + SavedObjectFinder: React.ComponentType; +}): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| options | {
embeddable: IContainer;
getFactory: EmbeddableStart['getEmbeddableFactory'];
getAllFactories: EmbeddableStart['getEmbeddableFactories'];
overlays: OverlayStart;
notifications: NotificationsStart;
SavedObjectFinder: React.ComponentType<any>;
} | | + +Returns: + +`Promise` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.outputspec.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.outputspec.md new file mode 100644 index 0000000000000..eead69b4e487c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.outputspec.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [OutputSpec](./kibana-plugin-plugins-embeddable-public.outputspec.md) + +## OutputSpec interface + +Signature: + +```typescript +export interface OutputSpec +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panel_badge_trigger.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panel_badge_trigger.md new file mode 100644 index 0000000000000..d5032d98ef4aa --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panel_badge_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PANEL\_BADGE\_TRIGGER](./kibana-plugin-plugins-embeddable-public.panel_badge_trigger.md) + +## PANEL\_BADGE\_TRIGGER variable + +Signature: + +```typescript +PANEL_BADGE_TRIGGER = "PANEL_BADGE_TRIGGER" +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panel_notification_trigger.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panel_notification_trigger.md new file mode 100644 index 0000000000000..cd8a4a1ca4581 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panel_notification_trigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PANEL\_NOTIFICATION\_TRIGGER](./kibana-plugin-plugins-embeddable-public.panel_notification_trigger.md) + +## PANEL\_NOTIFICATION\_TRIGGER variable + +Signature: + +```typescript +PANEL_NOTIFICATION_TRIGGER = "PANEL_NOTIFICATION_TRIGGER" +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelbadgetrigger.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelbadgetrigger.md new file mode 100644 index 0000000000000..f6113c93a1c66 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelbadgetrigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [panelBadgeTrigger](./kibana-plugin-plugins-embeddable-public.panelbadgetrigger.md) + +## panelBadgeTrigger variable + +Signature: + +```typescript +panelBadgeTrigger: Trigger<'PANEL_BADGE_TRIGGER'> +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotfounderror._constructor_.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotfounderror._constructor_.md new file mode 100644 index 0000000000000..d1704403b2336 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotfounderror._constructor_.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PanelNotFoundError](./kibana-plugin-plugins-embeddable-public.panelnotfounderror.md) > [(constructor)](./kibana-plugin-plugins-embeddable-public.panelnotfounderror._constructor_.md) + +## PanelNotFoundError.(constructor) + +Constructs a new instance of the `PanelNotFoundError` class + +Signature: + +```typescript +constructor(); +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotfounderror.code.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotfounderror.code.md new file mode 100644 index 0000000000000..d169fb97480cc --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotfounderror.code.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PanelNotFoundError](./kibana-plugin-plugins-embeddable-public.panelnotfounderror.md) > [code](./kibana-plugin-plugins-embeddable-public.panelnotfounderror.code.md) + +## PanelNotFoundError.code property + +Signature: + +```typescript +code: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotfounderror.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotfounderror.md new file mode 100644 index 0000000000000..2191fdecf1ac5 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotfounderror.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PanelNotFoundError](./kibana-plugin-plugins-embeddable-public.panelnotfounderror.md) + +## PanelNotFoundError class + +Signature: + +```typescript +export declare class PanelNotFoundError extends Error +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)()](./kibana-plugin-plugins-embeddable-public.panelnotfounderror._constructor_.md) | | Constructs a new instance of the PanelNotFoundError class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [code](./kibana-plugin-plugins-embeddable-public.panelnotfounderror.code.md) | | string | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotificationtrigger.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotificationtrigger.md new file mode 100644 index 0000000000000..df606c11f64ce --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelnotificationtrigger.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [panelNotificationTrigger](./kibana-plugin-plugins-embeddable-public.panelnotificationtrigger.md) + +## panelNotificationTrigger variable + +Signature: + +```typescript +panelNotificationTrigger: Trigger<'PANEL_NOTIFICATION_TRIGGER'> +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.explicitinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.explicitinput.md new file mode 100644 index 0000000000000..16123958d4db1 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.explicitinput.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PanelState](./kibana-plugin-plugins-embeddable-public.panelstate.md) > [explicitInput](./kibana-plugin-plugins-embeddable-public.panelstate.explicitinput.md) + +## PanelState.explicitInput property + +Signature: + +```typescript +explicitInput: Partial & { + id: string; + }; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.id.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.id.md new file mode 100644 index 0000000000000..e6fd4e0264f0d --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.id.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PanelState](./kibana-plugin-plugins-embeddable-public.panelstate.md) > [id](./kibana-plugin-plugins-embeddable-public.panelstate.id.md) + +## PanelState.id property + +Signature: + +```typescript +id: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.md new file mode 100644 index 0000000000000..b37f652b5021c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PanelState](./kibana-plugin-plugins-embeddable-public.panelstate.md) + +## PanelState interface + +Signature: + +```typescript +export interface PanelState +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [explicitInput](./kibana-plugin-plugins-embeddable-public.panelstate.explicitinput.md) | Partial<E> & {
id: string;
} | | +| [id](./kibana-plugin-plugins-embeddable-public.panelstate.id.md) | string | | +| [type](./kibana-plugin-plugins-embeddable-public.panelstate.type.md) | string | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.type.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.type.md new file mode 100644 index 0000000000000..8be470a77f1c7 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.panelstate.type.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PanelState](./kibana-plugin-plugins-embeddable-public.panelstate.md) > [type](./kibana-plugin-plugins-embeddable-public.panelstate.type.md) + +## PanelState.type property + +Signature: + +```typescript +type: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.plugin.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.plugin.md new file mode 100644 index 0000000000000..4e3ae760153cb --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.plugin.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [plugin](./kibana-plugin-plugins-embeddable-public.plugin.md) + +## plugin() function + +Signature: + +```typescript +export declare function plugin(initializerContext: PluginInitializerContext): EmbeddablePublicPlugin; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| initializerContext | PluginInitializerContext | | + +Returns: + +`EmbeddablePublicPlugin` + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.accesspath.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.accesspath.md new file mode 100644 index 0000000000000..2a337e4b0141a --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.accesspath.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PropertySpec](./kibana-plugin-plugins-embeddable-public.propertyspec.md) > [accessPath](./kibana-plugin-plugins-embeddable-public.propertyspec.accesspath.md) + +## PropertySpec.accessPath property + +Signature: + +```typescript +accessPath: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.description.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.description.md new file mode 100644 index 0000000000000..f36309c657795 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.description.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PropertySpec](./kibana-plugin-plugins-embeddable-public.propertyspec.md) > [description](./kibana-plugin-plugins-embeddable-public.propertyspec.description.md) + +## PropertySpec.description property + +Signature: + +```typescript +description: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.displayname.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.displayname.md new file mode 100644 index 0000000000000..16311493fa5dd --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.displayname.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PropertySpec](./kibana-plugin-plugins-embeddable-public.propertyspec.md) > [displayName](./kibana-plugin-plugins-embeddable-public.propertyspec.displayname.md) + +## PropertySpec.displayName property + +Signature: + +```typescript +displayName: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.id.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.id.md new file mode 100644 index 0000000000000..a37ed9000b67a --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.id.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PropertySpec](./kibana-plugin-plugins-embeddable-public.propertyspec.md) > [id](./kibana-plugin-plugins-embeddable-public.propertyspec.id.md) + +## PropertySpec.id property + +Signature: + +```typescript +id: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.md new file mode 100644 index 0000000000000..02534b5d9d4da --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PropertySpec](./kibana-plugin-plugins-embeddable-public.propertyspec.md) + +## PropertySpec interface + +Signature: + +```typescript +export interface PropertySpec +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [accessPath](./kibana-plugin-plugins-embeddable-public.propertyspec.accesspath.md) | string | | +| [description](./kibana-plugin-plugins-embeddable-public.propertyspec.description.md) | string | | +| [displayName](./kibana-plugin-plugins-embeddable-public.propertyspec.displayname.md) | string | | +| [id](./kibana-plugin-plugins-embeddable-public.propertyspec.id.md) | string | | +| [value](./kibana-plugin-plugins-embeddable-public.propertyspec.value.md) | string | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.value.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.value.md new file mode 100644 index 0000000000000..3360a9fff783c --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.propertyspec.value.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [PropertySpec](./kibana-plugin-plugins-embeddable-public.propertyspec.md) > [value](./kibana-plugin-plugins-embeddable-public.propertyspec.value.md) + +## PropertySpec.value property + +Signature: + +```typescript +value?: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.rangeselectcontext.data.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.rangeselectcontext.data.md new file mode 100644 index 0000000000000..6d2774d86f109 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.rangeselectcontext.data.md @@ -0,0 +1,16 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [RangeSelectContext](./kibana-plugin-plugins-embeddable-public.rangeselectcontext.md) > [data](./kibana-plugin-plugins-embeddable-public.rangeselectcontext.data.md) + +## RangeSelectContext.data property + +Signature: + +```typescript +data: { + table: KibanaDatatable; + column: number; + range: number[]; + timeFieldName?: string; + }; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.rangeselectcontext.embeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.rangeselectcontext.embeddable.md new file mode 100644 index 0000000000000..a6c9f0f7e4253 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.rangeselectcontext.embeddable.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [RangeSelectContext](./kibana-plugin-plugins-embeddable-public.rangeselectcontext.md) > [embeddable](./kibana-plugin-plugins-embeddable-public.rangeselectcontext.embeddable.md) + +## RangeSelectContext.embeddable property + +Signature: + +```typescript +embeddable?: T; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.rangeselectcontext.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.rangeselectcontext.md new file mode 100644 index 0000000000000..0f92ed86301da --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.rangeselectcontext.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [RangeSelectContext](./kibana-plugin-plugins-embeddable-public.rangeselectcontext.md) + +## RangeSelectContext interface + +Signature: + +```typescript +export interface RangeSelectContext +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [data](./kibana-plugin-plugins-embeddable-public.rangeselectcontext.data.md) | {
table: KibanaDatatable;
column: number;
range: number[];
timeFieldName?: string;
} | | +| [embeddable](./kibana-plugin-plugins-embeddable-public.rangeselectcontext.embeddable.md) | T | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.getinputasreftype.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.getinputasreftype.md new file mode 100644 index 0000000000000..559787c75ab66 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.getinputasreftype.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ReferenceOrValueEmbeddable](./kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.md) > [getInputAsRefType](./kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.getinputasreftype.md) + +## ReferenceOrValueEmbeddable.getInputAsRefType property + +Gets the embeddable's current input as its Reference type + +Signature: + +```typescript +getInputAsRefType: () => Promise; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.getinputasvaluetype.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.getinputasvaluetype.md new file mode 100644 index 0000000000000..f9cd23b97858a --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.getinputasvaluetype.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ReferenceOrValueEmbeddable](./kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.md) > [getInputAsValueType](./kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.getinputasvaluetype.md) + +## ReferenceOrValueEmbeddable.getInputAsValueType property + +Gets the embeddable's current input as its Value type + +Signature: + +```typescript +getInputAsValueType: () => Promise; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.inputisreftype.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.inputisreftype.md new file mode 100644 index 0000000000000..9de0447769397 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.inputisreftype.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ReferenceOrValueEmbeddable](./kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.md) > [inputIsRefType](./kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.inputisreftype.md) + +## ReferenceOrValueEmbeddable.inputIsRefType property + +determines whether the input is by value or by reference. + +Signature: + +```typescript +inputIsRefType: (input: ValTypeInput | RefTypeInput) => input is RefTypeInput; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.md new file mode 100644 index 0000000000000..47d6d8a0772d8 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ReferenceOrValueEmbeddable](./kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.md) + +## ReferenceOrValueEmbeddable interface + +Any embeddable that implements this interface will be able to use input that is either by reference (backed by a saved object) OR by value, (provided by the container). + +Signature: + +```typescript +export interface ReferenceOrValueEmbeddable +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [getInputAsRefType](./kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.getinputasreftype.md) | () => Promise<RefTypeInput> | Gets the embeddable's current input as its Reference type | +| [getInputAsValueType](./kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.getinputasvaluetype.md) | () => Promise<ValTypeInput> | Gets the embeddable's current input as its Value type | +| [inputIsRefType](./kibana-plugin-plugins-embeddable-public.referenceorvalueembeddable.inputisreftype.md) | (input: ValTypeInput | RefTypeInput) => input is RefTypeInput | determines whether the input is by value or by reference. | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.md new file mode 100644 index 0000000000000..ae0df9ec01ba1 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.md @@ -0,0 +1,18 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [SavedObjectEmbeddableInput](./kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.md) + +## SavedObjectEmbeddableInput interface + +Signature: + +```typescript +export interface SavedObjectEmbeddableInput extends EmbeddableInput +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [savedObjectId](./kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.savedobjectid.md) | string | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.savedobjectid.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.savedobjectid.md new file mode 100644 index 0000000000000..d8cb3bbda9d01 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.savedobjectid.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [SavedObjectEmbeddableInput](./kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.md) > [savedObjectId](./kibana-plugin-plugins-embeddable-public.savedobjectembeddableinput.savedobjectid.md) + +## SavedObjectEmbeddableInput.savedObjectId property + +Signature: + +```typescript +savedObjectId: string; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.valueclickcontext.data.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.valueclickcontext.data.md new file mode 100644 index 0000000000000..92c33affc47a9 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.valueclickcontext.data.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ValueClickContext](./kibana-plugin-plugins-embeddable-public.valueclickcontext.md) > [data](./kibana-plugin-plugins-embeddable-public.valueclickcontext.data.md) + +## ValueClickContext.data property + +Signature: + +```typescript +data: { + data: Array<{ + table: Pick; + column: number; + row: number; + value: any; + }>; + timeFieldName?: string; + negate?: boolean; + }; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.valueclickcontext.embeddable.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.valueclickcontext.embeddable.md new file mode 100644 index 0000000000000..38adee9346945 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.valueclickcontext.embeddable.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ValueClickContext](./kibana-plugin-plugins-embeddable-public.valueclickcontext.md) > [embeddable](./kibana-plugin-plugins-embeddable-public.valueclickcontext.embeddable.md) + +## ValueClickContext.embeddable property + +Signature: + +```typescript +embeddable?: T; +``` diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.valueclickcontext.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.valueclickcontext.md new file mode 100644 index 0000000000000..13133095956c6 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.valueclickcontext.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ValueClickContext](./kibana-plugin-plugins-embeddable-public.valueclickcontext.md) + +## ValueClickContext interface + +Signature: + +```typescript +export interface ValueClickContext +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [data](./kibana-plugin-plugins-embeddable-public.valueclickcontext.data.md) | {
data: Array<{
table: Pick<KibanaDatatable, 'rows' | 'columns'>;
column: number;
row: number;
value: any;
}>;
timeFieldName?: string;
negate?: boolean;
} | | +| [embeddable](./kibana-plugin-plugins-embeddable-public.valueclickcontext.embeddable.md) | T | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.viewmode.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.viewmode.md new file mode 100644 index 0000000000000..f47169951018d --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.viewmode.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [ViewMode](./kibana-plugin-plugins-embeddable-public.viewmode.md) + +## ViewMode enum + +Signature: + +```typescript +export declare enum ViewMode +``` + +## Enumeration Members + +| Member | Value | Description | +| --- | --- | --- | +| EDIT | "edit" | | +| VIEW | "view" | | + diff --git a/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.withembeddablesubscription.md b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.withembeddablesubscription.md new file mode 100644 index 0000000000000..a815292f3a0c3 --- /dev/null +++ b/docs/development/plugins/embeddable/public/kibana-plugin-plugins-embeddable-public.withembeddablesubscription.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-public](./kibana-plugin-plugins-embeddable-public.md) > [withEmbeddableSubscription](./kibana-plugin-plugins-embeddable-public.withembeddablesubscription.md) + +## withEmbeddableSubscription variable + +Signature: + +```typescript +withEmbeddableSubscription: = IEmbeddable, ExtraProps = {}>(WrappedComponent: React.ComponentType<{ + input: I; + output: O; + embeddable: E; +} & ExtraProps>) => React.ComponentType<{ + embeddable: E; +} & ExtraProps> +``` diff --git a/docs/development/plugins/embeddable/server/index.md b/docs/development/plugins/embeddable/server/index.md new file mode 100644 index 0000000000000..3c4d4ce3aed36 --- /dev/null +++ b/docs/development/plugins/embeddable/server/index.md @@ -0,0 +1,12 @@ + + +[Home](./index.md) + +## API Reference + +## Packages + +| Package | Description | +| --- | --- | +| [kibana-plugin-plugins-embeddable-server](./kibana-plugin-plugins-embeddable-server.md) | | + diff --git a/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.id.md b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.id.md new file mode 100644 index 0000000000000..ce3e532fcaa3b --- /dev/null +++ b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.id.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-server](./kibana-plugin-plugins-embeddable-server.md) > [EmbeddableRegistryDefinition](./kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.md) > [id](./kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.id.md) + +## EmbeddableRegistryDefinition.id property + +Signature: + +```typescript +id: string; +``` diff --git a/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.md b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.md new file mode 100644 index 0000000000000..de46d91d90c65 --- /dev/null +++ b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.md @@ -0,0 +1,18 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-server](./kibana-plugin-plugins-embeddable-server.md) > [EmbeddableRegistryDefinition](./kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.md) + +## EmbeddableRegistryDefinition interface + +Signature: + +```typescript +export interface EmbeddableRegistryDefinition

extends PersistableStateDefinition

+``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [id](./kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.id.md) | string | | + diff --git a/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddablesetup.md b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddablesetup.md new file mode 100644 index 0000000000000..59ca4a2bbca75 --- /dev/null +++ b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddablesetup.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-server](./kibana-plugin-plugins-embeddable-server.md) > [EmbeddableSetup](./kibana-plugin-plugins-embeddable-server.embeddablesetup.md) + +## EmbeddableSetup interface + +Signature: + +```typescript +export interface EmbeddableSetup +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [registerEmbeddableFactory](./kibana-plugin-plugins-embeddable-server.embeddablesetup.registerembeddablefactory.md) | (factory: EmbeddableRegistryDefinition) => void | | +| [registerEnhancement](./kibana-plugin-plugins-embeddable-server.embeddablesetup.registerenhancement.md) | (enhancement: EnhancementRegistryDefinition) => void | | + diff --git a/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddablesetup.registerembeddablefactory.md b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddablesetup.registerembeddablefactory.md new file mode 100644 index 0000000000000..442941ce86950 --- /dev/null +++ b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddablesetup.registerembeddablefactory.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-server](./kibana-plugin-plugins-embeddable-server.md) > [EmbeddableSetup](./kibana-plugin-plugins-embeddable-server.embeddablesetup.md) > [registerEmbeddableFactory](./kibana-plugin-plugins-embeddable-server.embeddablesetup.registerembeddablefactory.md) + +## EmbeddableSetup.registerEmbeddableFactory property + +Signature: + +```typescript +registerEmbeddableFactory: (factory: EmbeddableRegistryDefinition) => void; +``` diff --git a/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddablesetup.registerenhancement.md b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddablesetup.registerenhancement.md new file mode 100644 index 0000000000000..9ea2846d0300b --- /dev/null +++ b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.embeddablesetup.registerenhancement.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-server](./kibana-plugin-plugins-embeddable-server.md) > [EmbeddableSetup](./kibana-plugin-plugins-embeddable-server.embeddablesetup.md) > [registerEnhancement](./kibana-plugin-plugins-embeddable-server.embeddablesetup.registerenhancement.md) + +## EmbeddableSetup.registerEnhancement property + +Signature: + +```typescript +registerEnhancement: (enhancement: EnhancementRegistryDefinition) => void; +``` diff --git a/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.id.md b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.id.md new file mode 100644 index 0000000000000..a93c691246872 --- /dev/null +++ b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.id.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-server](./kibana-plugin-plugins-embeddable-server.md) > [EnhancementRegistryDefinition](./kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.md) > [id](./kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.id.md) + +## EnhancementRegistryDefinition.id property + +Signature: + +```typescript +id: string; +``` diff --git a/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.md b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.md new file mode 100644 index 0000000000000..09ff48a92158d --- /dev/null +++ b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.md @@ -0,0 +1,18 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-server](./kibana-plugin-plugins-embeddable-server.md) > [EnhancementRegistryDefinition](./kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.md) + +## EnhancementRegistryDefinition interface + +Signature: + +```typescript +export interface EnhancementRegistryDefinition

extends PersistableStateDefinition

+``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [id](./kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.id.md) | string | | + diff --git a/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.md b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.md new file mode 100644 index 0000000000000..19ee57d677250 --- /dev/null +++ b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-server](./kibana-plugin-plugins-embeddable-server.md) + +## kibana-plugin-plugins-embeddable-server package + +## Interfaces + +| Interface | Description | +| --- | --- | +| [EmbeddableRegistryDefinition](./kibana-plugin-plugins-embeddable-server.embeddableregistrydefinition.md) | | +| [EmbeddableSetup](./kibana-plugin-plugins-embeddable-server.embeddablesetup.md) | | +| [EnhancementRegistryDefinition](./kibana-plugin-plugins-embeddable-server.enhancementregistrydefinition.md) | | + +## Variables + +| Variable | Description | +| --- | --- | +| [plugin](./kibana-plugin-plugins-embeddable-server.plugin.md) | | + diff --git a/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.plugin.md b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.plugin.md new file mode 100644 index 0000000000000..989f3c3e60963 --- /dev/null +++ b/docs/development/plugins/embeddable/server/kibana-plugin-plugins-embeddable-server.plugin.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-embeddable-server](./kibana-plugin-plugins-embeddable-server.md) > [plugin](./kibana-plugin-plugins-embeddable-server.plugin.md) + +## plugin variable + +Signature: + +```typescript +plugin: () => EmbeddableServerPlugin +``` diff --git a/src/dev/run_check_published_api_changes.ts b/src/dev/run_check_published_api_changes.ts index aaac706f991c2..984e013114c9e 100644 --- a/src/dev/run_check_published_api_changes.ts +++ b/src/dev/run_check_published_api_changes.ts @@ -233,6 +233,8 @@ async function run(folder: string, { opts }: { opts: Options }): Promise Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { Action } from 'history'; +import { Action as Action_3 } from 'src/plugins/ui_actions/public'; +import { ActionExecutionContext as ActionExecutionContext_2 } from 'src/plugins/ui_actions/public'; +import { ApiResponse } from '@elastic/elasticsearch/lib/Transport'; +import { ApiResponse as ApiResponse_2 } from '@elastic/elasticsearch'; +import { ApplicationStart as ApplicationStart_2 } from 'kibana/public'; +import { Assign } from '@kbn/utility-types'; +import { BehaviorSubject } from 'rxjs'; +import Boom from 'boom'; +import { CoreSetup as CoreSetup_2 } from 'src/core/public'; +import { CoreSetup as CoreSetup_3 } from 'kibana/public'; +import { CoreStart as CoreStart_2 } from 'kibana/public'; +import * as CSS from 'csstype'; +import { EmbeddableStart as EmbeddableStart_2 } from 'src/plugins/embeddable/public/plugin'; +import { Ensure } from '@kbn/utility-types'; +import { EnvironmentMode } from '@kbn/config'; +import { ErrorToastOptions as ErrorToastOptions_2 } from 'src/core/public/notifications'; +import { EuiBreadcrumb } from '@elastic/eui'; +import { EuiButtonEmptyProps } from '@elastic/eui'; +import { EuiComboBoxProps } from '@elastic/eui'; +import { EuiConfirmModalProps } from '@elastic/eui'; +import { EuiContextMenuPanelDescriptor } from '@elastic/eui'; +import { EuiGlobalToastListToast } from '@elastic/eui'; +import { ExclusiveUnion } from '@elastic/eui'; +import { ExpressionAstFunction } from 'src/plugins/expressions/common'; +import { History } from 'history'; +import { Href } from 'history'; +import { IconType } from '@elastic/eui'; +import { ISearchOptions } from 'src/plugins/data/public'; +import { ISearchSource } from 'src/plugins/data/public'; +import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; +import { IUiSettingsClient as IUiSettingsClient_2 } from 'src/core/public'; +import { KibanaClient } from '@elastic/elasticsearch/api/kibana'; +import { KibanaConfigType } from 'src/core/server/kibana_config'; +import { Location } from 'history'; +import { LocationDescriptorObject } from 'history'; +import { Logger } from '@kbn/logging'; +import { LogMeta } from '@kbn/logging'; +import { MaybePromise } from '@kbn/utility-types'; +import { Moment } from 'moment'; +import { NameList } from 'elasticsearch'; +import { NotificationsStart as NotificationsStart_2 } from 'src/core/public'; +import { Observable } from 'rxjs'; +import { Optional } from '@kbn/utility-types'; +import { OverlayStart as OverlayStart_2 } from 'src/core/public'; +import { PackageInfo } from '@kbn/config'; +import { Path } from 'history'; +import { PluginInitializerContext } from 'src/core/public'; +import * as PropTypes from 'prop-types'; +import { PublicMethodsOf } from '@kbn/utility-types'; +import { PublicUiSettingsParams } from 'src/core/server/types'; +import React from 'react'; +import { RecursiveReadonly } from '@kbn/utility-types'; +import { RequestAdapter } from 'src/plugins/inspector/common'; +import { Required } from '@kbn/utility-types'; +import * as Rx from 'rxjs'; +import { SavedObject as SavedObject_2 } from 'src/core/server'; +import { SavedObjectAttributes } from 'kibana/server'; +import { SavedObjectAttributes as SavedObjectAttributes_2 } from 'src/core/public'; +import { SavedObjectAttributes as SavedObjectAttributes_3 } from 'kibana/public'; +import { SavedObjectsClientContract as SavedObjectsClientContract_3 } from 'src/core/public'; +import { Search } from '@elastic/elasticsearch/api/requestParams'; +import { SearchResponse } from 'elasticsearch'; +import { SerializedFieldFormat as SerializedFieldFormat_2 } from 'src/plugins/expressions/common'; +import { ShallowPromise } from '@kbn/utility-types'; +import { SimpleSavedObject as SimpleSavedObject_2 } from 'src/core/public'; +import { ToastInputFields as ToastInputFields_2 } from 'src/core/public/notifications'; +import { ToastsSetup as ToastsSetup_2 } from 'kibana/public'; +import { TransportRequestOptions } from '@elastic/elasticsearch/lib/Transport'; +import { TransportRequestParams } from '@elastic/elasticsearch/lib/Transport'; +import { TransportRequestPromise } from '@elastic/elasticsearch/lib/Transport'; +import { TypeOf } from '@kbn/config-schema'; +import { UiComponent } from 'src/plugins/kibana_utils/public'; +import { UnregisterCallback } from 'history'; +import { UserProvidedValues } from 'src/core/server/types'; + +// Warning: (ae-missing-release-tag) "ACTION_ADD_PANEL" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const ACTION_ADD_PANEL = "ACTION_ADD_PANEL"; + +// Warning: (ae-missing-release-tag) "ACTION_EDIT_PANEL" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const ACTION_EDIT_PANEL = "editPanel"; + +// Warning: (ae-missing-release-tag) "Adapters" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export interface Adapters { + // (undocumented) + [key: string]: any; +} + +// Warning: (ae-forgotten-export) The symbol "ActionContext" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "AddPanelAction" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class AddPanelAction implements Action_3 { + // Warning: (ae-forgotten-export) The symbol "React" needs to be exported by the entry point index.d.ts + constructor(getFactory: EmbeddableStart_2['getEmbeddableFactory'], getAllFactories: EmbeddableStart_2['getEmbeddableFactories'], overlays: OverlayStart_2, notifications: NotificationsStart_2, SavedObjectFinder: React_2.ComponentType); + // (undocumented) + execute(context: ActionExecutionContext_2): Promise; + // (undocumented) + getDisplayName(): string; + // (undocumented) + getIconType(): string; + // (undocumented) + readonly id = "ACTION_ADD_PANEL"; + // (undocumented) + isCompatible(context: ActionExecutionContext_2): Promise; + // (undocumented) + readonly type = "ACTION_ADD_PANEL"; +} + +// Warning: (ae-missing-release-tag) "ChartActionContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type ChartActionContext = ValueClickContext | RangeSelectContext; + +// Warning: (ae-missing-release-tag) "Container" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export abstract class Container = {}, TContainerInput extends ContainerInput = ContainerInput, TContainerOutput extends ContainerOutput = ContainerOutput> extends Embeddable implements IContainer { + constructor(input: TContainerInput, output: TContainerOutput, getFactory: EmbeddableStart['getEmbeddableFactory'], parent?: Container); + // (undocumented) + addNewEmbeddable = IEmbeddable>(type: string, explicitInput: Partial): Promise; + // (undocumented) + protected readonly children: { + [key: string]: IEmbeddable | ErrorEmbeddable; + }; + // (undocumented) + protected createNewPanelState>(factory: EmbeddableFactory, partial?: Partial): PanelState; + // (undocumented) + destroy(): void; + // (undocumented) + getChild(id: string): E; + // (undocumented) + getChildIds(): string[]; + // (undocumented) + protected readonly getFactory: EmbeddableStart['getEmbeddableFactory']; + protected abstract getInheritedInput(id: string): TChildInput; + // (undocumented) + getInputForChild(embeddableId: string): TEmbeddableInput; + // (undocumented) + protected getPanelState(embeddableId: string): PanelState; + // (undocumented) + readonly isContainer: boolean; + // (undocumented) + reload(): void; + // (undocumented) + removeEmbeddable(embeddableId: string): void; + // (undocumented) + untilEmbeddableLoaded(id: string): Promise; + // (undocumented) + updateInputForChild(id: string, changes: Partial): void; +} + +// Warning: (ae-missing-release-tag) "ContainerInput" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface ContainerInput extends EmbeddableInput { + // (undocumented) + hidePanelTitles?: boolean; + // (undocumented) + panels: { + [key: string]: PanelState; + }; +} + +// Warning: (ae-missing-release-tag) "ContainerOutput" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface ContainerOutput extends EmbeddableOutput { + // (undocumented) + embeddableLoaded: { + [key: string]: boolean; + }; +} + +// Warning: (ae-missing-release-tag) "CONTEXT_MENU_TRIGGER" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const CONTEXT_MENU_TRIGGER = "CONTEXT_MENU_TRIGGER"; + +// Warning: (ae-forgotten-export) The symbol "Trigger" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "contextMenuTrigger" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const contextMenuTrigger: Trigger<'CONTEXT_MENU_TRIGGER'>; + +// Warning: (ae-missing-release-tag) "defaultEmbeddableFactoryProvider" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const defaultEmbeddableFactoryProvider: = IEmbeddable, T extends SavedObjectAttributes_3 = SavedObjectAttributes_3>(def: EmbeddableFactoryDefinition) => EmbeddableFactory; + +// Warning: (ae-forgotten-export) The symbol "ActionContext" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "EditPanelAction" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class EditPanelAction implements Action_3 { + constructor(getEmbeddableFactory: EmbeddableStart['getEmbeddableFactory'], application: ApplicationStart_2, stateTransfer?: EmbeddableStateTransfer | undefined); + // (undocumented) + currentAppId: string | undefined; + // (undocumented) + execute(context: ActionContext_3): Promise; + // Warning: (ae-forgotten-export) The symbol "NavigationContext" needs to be exported by the entry point index.d.ts + // + // (undocumented) + getAppTarget({ embeddable }: ActionContext_3): NavigationContext | undefined; + // (undocumented) + getDisplayName({ embeddable }: ActionContext_3): string; + // (undocumented) + getHref({ embeddable }: ActionContext_3): Promise; + // (undocumented) + getIconType(): string; + // (undocumented) + readonly id = "editPanel"; + // (undocumented) + isCompatible({ embeddable }: ActionContext_3): Promise; + // (undocumented) + order: number; + // (undocumented) + readonly type = "editPanel"; +} + +// Warning: (ae-missing-release-tag) "Embeddable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export abstract class Embeddable implements IEmbeddable { + constructor(input: TEmbeddableInput, output: TEmbeddableOutput, parent?: IContainer); + destroy(): void; + // (undocumented) + getInput$(): Readonly>; + // (undocumented) + getInput(): Readonly; + getInspectorAdapters(): Adapters | undefined; + // (undocumented) + getIsContainer(): this is IContainer; + // (undocumented) + getOutput$(): Readonly>; + // (undocumented) + getOutput(): Readonly; + getRoot(): IEmbeddable | IContainer; + // (undocumented) + getTitle(): string; + // (undocumented) + readonly id: string; + // (undocumented) + protected input: TEmbeddableInput; + // (undocumented) + readonly isContainer: boolean; + // (undocumented) + protected output: TEmbeddableOutput; + // (undocumented) + readonly parent?: IContainer; + abstract reload(): void; + // (undocumented) + render(el: HTMLElement): void; + // Warning: (ae-forgotten-export) The symbol "RenderCompleteDispatcher" needs to be exported by the entry point index.d.ts + // + // (undocumented) + protected renderComplete: RenderCompleteDispatcher; + // (undocumented) + static runtimeId: number; + // (undocumented) + readonly runtimeId: number; + // Warning: (ae-forgotten-export) The symbol "TriggerContextMapping" needs to be exported by the entry point index.d.ts + // + // (undocumented) + supportedTriggers(): Array; + // (undocumented) + abstract readonly type: string; + // (undocumented) + updateInput(changes: Partial): void; + // (undocumented) + protected updateOutput(outputChanges: Partial): void; +} + +// Warning: (ae-forgotten-export) The symbol "State" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "EmbeddableChildPanel" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export class EmbeddableChildPanel extends React.Component { + constructor(props: EmbeddableChildPanelProps); + // (undocumented) + [panel: string]: any; + // (undocumented) + componentDidMount(): Promise; + // (undocumented) + componentWillUnmount(): void; + // (undocumented) + embeddable: IEmbeddable | ErrorEmbeddable; + // (undocumented) + mounted: boolean; + // (undocumented) + render(): JSX.Element; + } + +// Warning: (ae-missing-release-tag) "EmbeddableChildPanelProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface EmbeddableChildPanelProps { + // (undocumented) + className?: string; + // (undocumented) + container: IContainer; + // (undocumented) + embeddableId: string; + // (undocumented) + PanelComponent: EmbeddableStart['EmbeddablePanel']; +} + +// Warning: (ae-missing-release-tag) "EmbeddableContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface EmbeddableContext { + // (undocumented) + embeddable: IEmbeddable; +} + +// @public +export interface EmbeddableEditorState { + // (undocumented) + embeddableId?: string; + // (undocumented) + originatingApp: string; + // (undocumented) + valueInput?: EmbeddableInput; +} + +// Warning: (ae-forgotten-export) The symbol "PersistableState" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "EmbeddableFactory" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export interface EmbeddableFactory = IEmbeddable, TSavedObjectAttributes extends SavedObjectAttributes_2 = SavedObjectAttributes_2> extends PersistableState { + canCreateNew(): boolean; + create(initialInput: TEmbeddableInput, parent?: IContainer): Promise; + createFromSavedObject(savedObjectId: string, input: Partial, parent?: IContainer): Promise; + getDefaultInput(partial: Partial): Partial; + getDisplayName(): string; + getExplicitInput(): Promise>; + readonly isContainerType: boolean; + readonly isEditable: () => Promise; + // Warning: (ae-forgotten-export) The symbol "SavedObjectMetaData" needs to be exported by the entry point index.d.ts + // + // (undocumented) + readonly savedObjectMetaData?: SavedObjectMetaData; + // (undocumented) + readonly type: string; +} + +// Warning: (ae-missing-release-tag) "EmbeddableFactoryDefinition" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type EmbeddableFactoryDefinition = IEmbeddable, T extends SavedObjectAttributes = SavedObjectAttributes> = Pick, 'create' | 'type' | 'isEditable' | 'getDisplayName'> & Partial, 'createFromSavedObject' | 'isContainerType' | 'getExplicitInput' | 'savedObjectMetaData' | 'canCreateNew' | 'getDefaultInput' | 'telemetry' | 'extract' | 'inject'>>; + +// Warning: (ae-missing-release-tag) "EmbeddableFactoryNotFoundError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class EmbeddableFactoryNotFoundError extends Error { + constructor(type: string); + // (undocumented) + code: string; +} + +// Warning: (ae-missing-release-tag) "EmbeddableInput" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type EmbeddableInput = { + viewMode?: ViewMode; + title?: string; + id: string; + lastReloadRequestTime?: number; + hidePanelTitles?: boolean; + enhancements?: SerializableState; + disabledActions?: string[]; + disableTriggers?: boolean; + timeRange?: TimeRange; + query?: Query; + filters?: Filter[]; +}; + +// Warning: (ae-missing-release-tag) "EmbeddableInstanceConfiguration" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface EmbeddableInstanceConfiguration { + // (undocumented) + id: string; + // (undocumented) + savedObjectId?: string; +} + +// Warning: (ae-missing-release-tag) "EmbeddableOutput" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface EmbeddableOutput { + // (undocumented) + defaultTitle?: string; + // (undocumented) + editable?: boolean; + // (undocumented) + editApp?: string; + // (undocumented) + editPath?: string; + // (undocumented) + editUrl?: string; + // Warning: (ae-forgotten-export) The symbol "EmbeddableError" needs to be exported by the entry point index.d.ts + // + // (undocumented) + error?: EmbeddableError; + // (undocumented) + loading?: boolean; + // (undocumented) + savedObjectId?: string; + // (undocumented) + title?: string; +} + +// @public +export interface EmbeddablePackageState { + // (undocumented) + embeddableId?: string; + // (undocumented) + input: Optional | Optional; + // (undocumented) + type: string; +} + +// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "State" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "EmbeddablePanel" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class EmbeddablePanel extends React.Component { + constructor(props: Props); + // (undocumented) + closeMyContextMenuPanel: () => void; + // (undocumented) + componentDidMount(): void; + // (undocumented) + componentWillUnmount(): void; + // (undocumented) + onBlur: (blurredPanelIndex: string) => void; + // (undocumented) + onFocus: (focusedPanelIndex: string) => void; + // (undocumented) + render(): JSX.Element; + // (undocumented) + UNSAFE_componentWillMount(): void; +} + +// Warning: (ae-missing-release-tag) "EmbeddablePanelHOC" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export type EmbeddablePanelHOC = React.FC<{ + embeddable: IEmbeddable; + hideHeader?: boolean; +}>; + +// @public +export const EmbeddableRenderer: (props: EmbeddableRendererProps) => JSX.Element; + +// Warning: (ae-forgotten-export) The symbol "EmbeddableRendererPropsWithEmbeddable" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "EmbeddableRendererWithFactory" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "EmbeddableRendererProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public +export type EmbeddableRendererProps = EmbeddableRendererPropsWithEmbeddable | EmbeddableRendererWithFactory; + +// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "EmbeddableRoot" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class EmbeddableRoot extends React.Component { + constructor(props: Props_2); + // (undocumented) + componentDidMount(): void; + // (undocumented) + componentDidUpdate(prevProps?: Props_2): void; + // (undocumented) + render(): JSX.Element; + // (undocumented) + shouldComponentUpdate(newProps: Props_2): boolean; +} + +// Warning: (ae-missing-release-tag) "EmbeddableSetup" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface EmbeddableSetup { + // (undocumented) + registerEmbeddableFactory: = IEmbeddable>(id: string, factory: EmbeddableFactoryDefinition) => () => EmbeddableFactory; + // (undocumented) + registerEnhancement: (enhancement: EnhancementRegistryDefinition) => void; + // Warning: (ae-forgotten-export) The symbol "EmbeddableFactoryProvider" needs to be exported by the entry point index.d.ts + // + // (undocumented) + setCustomEmbeddableFactoryProvider: (customProvider: EmbeddableFactoryProvider) => void; +} + +// Warning: (ae-missing-release-tag) "EmbeddableSetupDependencies" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface EmbeddableSetupDependencies { + // Warning: (ae-forgotten-export) The symbol "DataPublicPluginSetup" needs to be exported by the entry point index.d.ts + // + // (undocumented) + data: DataPublicPluginSetup; + // Warning: (ae-forgotten-export) The symbol "UiActionsSetup" needs to be exported by the entry point index.d.ts + // + // (undocumented) + uiActions: UiActionsSetup; +} + +// Warning: (ae-missing-release-tag) "EmbeddableStart" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface EmbeddableStart extends PersistableState { + // (undocumented) + EmbeddablePanel: EmbeddablePanelHOC; + // (undocumented) + getEmbeddableFactories: () => IterableIterator; + // (undocumented) + getEmbeddableFactory: = IEmbeddable>(embeddableFactoryId: string) => EmbeddableFactory | undefined; + // (undocumented) + getEmbeddablePanel: (stateTransfer?: EmbeddableStateTransfer) => EmbeddablePanelHOC; + // Warning: (ae-forgotten-export) The symbol "ScopedHistory" needs to be exported by the entry point index.d.ts + // + // (undocumented) + getStateTransfer: (history?: ScopedHistory) => EmbeddableStateTransfer; +} + +// Warning: (ae-missing-release-tag) "EmbeddableStartDependencies" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface EmbeddableStartDependencies { + // Warning: (ae-forgotten-export) The symbol "DataPublicPluginStart" needs to be exported by the entry point index.d.ts + // + // (undocumented) + data: DataPublicPluginStart; + // Warning: (ae-forgotten-export) The symbol "Start" needs to be exported by the entry point index.d.ts + // + // (undocumented) + inspector: Start; + // Warning: (ae-forgotten-export) The symbol "UiActionsStart" needs to be exported by the entry point index.d.ts + // + // (undocumented) + uiActions: UiActionsStart; +} + +// Warning: (ae-unresolved-link) The @link reference could not be resolved: The package "kibana" does not have an export "ScopedHistory" +// +// @public +export class EmbeddableStateTransfer { + // Warning: (ae-forgotten-export) The symbol "ApplicationStart" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "PublicAppInfo" needs to be exported by the entry point index.d.ts + constructor(navigateToApp: ApplicationStart['navigateToApp'], scopedHistory?: ScopedHistory | undefined, appList?: ReadonlyMap | undefined); + getAppNameFromId: (appId: string) => string | undefined; + getIncomingEditorState(options?: { + keysToRemoveAfterFetch?: string[]; + }): EmbeddableEditorState | undefined; + getIncomingEmbeddablePackage(options?: { + keysToRemoveAfterFetch?: string[]; + }): EmbeddablePackageState | undefined; + // Warning: (ae-unresolved-link) The @link reference could not be resolved: The package "kibana" does not have an export "ApplicationStart" + navigateToEditor(appId: string, options?: { + path?: string; + state: EmbeddableEditorState; + appendToExistingState?: boolean; + }): Promise; + // Warning: (ae-unresolved-link) The @link reference could not be resolved: The package "kibana" does not have an export "ApplicationStart" + navigateToWithEmbeddablePackage(appId: string, options?: { + path?: string; + state: EmbeddablePackageState; + appendToExistingState?: boolean; + }): Promise; + } + +// Warning: (ae-forgotten-export) The symbol "PersistableStateDefinition" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "EnhancementRegistryDefinition" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface EnhancementRegistryDefinition

extends PersistableStateDefinition

{ + // (undocumented) + id: string; +} + +// Warning: (ae-missing-release-tag) "ErrorEmbeddable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class ErrorEmbeddable extends Embeddable { + constructor(error: Error | string, input: EmbeddableInput, parent?: IContainer); + // (undocumented) + destroy(): void; + // (undocumented) + error: Error | string; + // (undocumented) + reload(): void; + // (undocumented) + render(dom: HTMLElement): void; + // (undocumented) + readonly type = "error"; +} + +// Warning: (ae-missing-release-tag) "IContainer" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface IContainer = ContainerInput, O extends ContainerOutput = ContainerOutput> extends IEmbeddable { + addNewEmbeddable = Embeddable>(type: string, explicitInput: Partial): Promise; + getChild = Embeddable>(id: string): E; + getInputForChild(id: string): EEI; + removeEmbeddable(embeddableId: string): void; + untilEmbeddableLoaded(id: string): Promise; + updateInputForChild(id: string, changes: Partial): void; +} + +// Warning: (ae-missing-release-tag) "IEmbeddable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface IEmbeddable { + destroy(): void; + enhancements?: object; + getInput$(): Readonly>; + getInput(): Readonly; + getInspectorAdapters(): Adapters | undefined; + getIsContainer(): this is IContainer; + getOutput$(): Readonly>; + getOutput(): Readonly; + getRoot(): IEmbeddable | IContainer; + getTitle(): string | undefined; + readonly id: string; + readonly isContainer: boolean; + readonly parent?: IContainer; + reload(): void; + render(domNode: HTMLElement | Element): void; + readonly runtimeId?: number; + supportedTriggers(): Array; + readonly type: string; + updateInput(changes: Partial): void; +} + +// Warning: (ae-missing-release-tag) "isErrorEmbeddable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export function isErrorEmbeddable(embeddable: TEmbeddable | ErrorEmbeddable): embeddable is ErrorEmbeddable; + +// Warning: (ae-missing-release-tag) "isRangeSelectTriggerContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const isRangeSelectTriggerContext: (context: ChartActionContext) => context is RangeSelectContext>; + +// Warning: (ae-missing-release-tag) "isReferenceOrValueEmbeddable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export function isReferenceOrValueEmbeddable(incoming: unknown): incoming is ReferenceOrValueEmbeddable; + +// Warning: (ae-missing-release-tag) "isSavedObjectEmbeddableInput" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export function isSavedObjectEmbeddableInput(input: EmbeddableInput | SavedObjectEmbeddableInput): input is SavedObjectEmbeddableInput; + +// Warning: (ae-missing-release-tag) "isValueClickTriggerContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const isValueClickTriggerContext: (context: ChartActionContext) => context is ValueClickContext>; + +// Warning: (ae-missing-release-tag) "openAddPanelFlyout" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export function openAddPanelFlyout(options: { + embeddable: IContainer; + getFactory: EmbeddableStart['getEmbeddableFactory']; + getAllFactories: EmbeddableStart['getEmbeddableFactories']; + overlays: OverlayStart_2; + notifications: NotificationsStart_2; + SavedObjectFinder: React.ComponentType; +}): Promise; + +// Warning: (ae-missing-release-tag) "OutputSpec" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface OutputSpec { + // (undocumented) + [key: string]: PropertySpec; +} + +// Warning: (ae-missing-release-tag) "PANEL_BADGE_TRIGGER" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const PANEL_BADGE_TRIGGER = "PANEL_BADGE_TRIGGER"; + +// Warning: (ae-missing-release-tag) "PANEL_NOTIFICATION_TRIGGER" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const PANEL_NOTIFICATION_TRIGGER = "PANEL_NOTIFICATION_TRIGGER"; + +// Warning: (ae-missing-release-tag) "panelBadgeTrigger" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const panelBadgeTrigger: Trigger<'PANEL_BADGE_TRIGGER'>; + +// Warning: (ae-missing-release-tag) "PanelNotFoundError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export class PanelNotFoundError extends Error { + constructor(); + // (undocumented) + code: string; +} + +// Warning: (ae-missing-release-tag) "panelNotificationTrigger" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const panelNotificationTrigger: Trigger<'PANEL_NOTIFICATION_TRIGGER'>; + +// Warning: (ae-missing-release-tag) "PanelState" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface PanelState { + // (undocumented) + explicitInput: Partial & { + id: string; + }; + // (undocumented) + type: string; +} + +// Warning: (ae-forgotten-export) The symbol "EmbeddablePublicPlugin" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "plugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export function plugin(initializerContext: PluginInitializerContext): EmbeddablePublicPlugin; + +// Warning: (ae-missing-release-tag) "PropertySpec" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface PropertySpec { + // (undocumented) + accessPath: string; + // (undocumented) + description: string; + // (undocumented) + displayName: string; + // (undocumented) + id: string; + // (undocumented) + value?: string; +} + +// Warning: (ae-missing-release-tag) "RangeSelectContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface RangeSelectContext { + // (undocumented) + data: { + table: KibanaDatatable; + column: number; + range: number[]; + timeFieldName?: string; + }; + // (undocumented) + embeddable?: T; +} + +// @public +export interface ReferenceOrValueEmbeddable { + getInputAsRefType: () => Promise; + getInputAsValueType: () => Promise; + inputIsRefType: (input: ValTypeInput | RefTypeInput) => input is RefTypeInput; +} + +// Warning: (ae-missing-release-tag) "SavedObjectEmbeddableInput" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface SavedObjectEmbeddableInput extends EmbeddableInput { + // (undocumented) + savedObjectId: string; +} + +// Warning: (ae-missing-release-tag) "ValueClickContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface ValueClickContext { + // (undocumented) + data: { + data: Array<{ + table: Pick; + column: number; + row: number; + value: any; + }>; + timeFieldName?: string; + negate?: boolean; + }; + // (undocumented) + embeddable?: T; +} + +// Warning: (ae-missing-release-tag) "ViewMode" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export enum ViewMode { + // (undocumented) + EDIT = "edit", + // (undocumented) + VIEW = "view" +} + +// Warning: (ae-missing-release-tag) "withEmbeddableSubscription" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const withEmbeddableSubscription: = IEmbeddable, ExtraProps = {}>(WrappedComponent: React.ComponentType<{ + input: I; + output: O; + embeddable: E; +} & ExtraProps>) => React.ComponentType<{ + embeddable: E; +} & ExtraProps>; + + +// Warnings were encountered during analysis: +// +// src/plugins/embeddable/common/types.ts:44:3 - (ae-forgotten-export) The symbol "SerializableState" needs to be exported by the entry point index.d.ts +// src/plugins/embeddable/common/types.ts:59:3 - (ae-forgotten-export) The symbol "TimeRange" needs to be exported by the entry point index.d.ts +// src/plugins/embeddable/common/types.ts:64:3 - (ae-forgotten-export) The symbol "Query" needs to be exported by the entry point index.d.ts +// src/plugins/embeddable/common/types.ts:69:3 - (ae-forgotten-export) The symbol "Filter" needs to be exported by the entry point index.d.ts +// src/plugins/embeddable/public/lib/triggers/triggers.ts:45:5 - (ae-forgotten-export) The symbol "KibanaDatatable" needs to be exported by the entry point index.d.ts + +// (No @packageDocumentation comment for this package) + +``` diff --git a/src/plugins/embeddable/server/server.api.md b/src/plugins/embeddable/server/server.api.md new file mode 100644 index 0000000000000..c4fad2917343b --- /dev/null +++ b/src/plugins/embeddable/server/server.api.md @@ -0,0 +1,50 @@ +## API Report File for "kibana" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { CoreSetup } from 'kibana/server'; +import { CoreStart } from 'kibana/server'; +import { Plugin } from 'kibana/server'; +import { SavedObjectReference as SavedObjectReference_2 } from 'kibana/server'; + +// Warning: (ae-forgotten-export) The symbol "EmbeddableInput" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "PersistableStateDefinition" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "EmbeddableRegistryDefinition" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface EmbeddableRegistryDefinition

extends PersistableStateDefinition

{ + // (undocumented) + id: string; +} + +// Warning: (ae-missing-release-tag) "EmbeddableSetup" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface EmbeddableSetup { + // (undocumented) + registerEmbeddableFactory: (factory: EmbeddableRegistryDefinition) => void; + // (undocumented) + registerEnhancement: (enhancement: EnhancementRegistryDefinition) => void; +} + +// Warning: (ae-forgotten-export) The symbol "SerializableState" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "EnhancementRegistryDefinition" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface EnhancementRegistryDefinition

extends PersistableStateDefinition

{ + // (undocumented) + id: string; +} + +// Warning: (ae-forgotten-export) The symbol "EmbeddableServerPlugin" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "plugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const plugin: () => EmbeddableServerPlugin; + + +// (No @packageDocumentation comment for this package) + +``` From 6f1a15840322750543c7c0f13f47be37f40d9ab0 Mon Sep 17 00:00:00 2001 From: Brent Kimmel Date: Wed, 30 Sep 2020 15:22:55 -0400 Subject: [PATCH 041/142] [Security Solution][Resolver] New mock with cursor (#78863) * New mock with cursor * include next cursor Co-authored-by: Elastic Machine --- ...ith_related_events_and_cursor_on_origin.ts | 147 ++++++++++++++++++ .../public/resolver/mocks/resolver_tree.ts | 13 +- 2 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/resolver/data_access_layer/mocks/no_ancestors_two_children_with_related_events_and_cursor_on_origin.ts diff --git a/x-pack/plugins/security_solution/public/resolver/data_access_layer/mocks/no_ancestors_two_children_with_related_events_and_cursor_on_origin.ts b/x-pack/plugins/security_solution/public/resolver/data_access_layer/mocks/no_ancestors_two_children_with_related_events_and_cursor_on_origin.ts new file mode 100644 index 0000000000000..7682165ac5e94 --- /dev/null +++ b/x-pack/plugins/security_solution/public/resolver/data_access_layer/mocks/no_ancestors_two_children_with_related_events_and_cursor_on_origin.ts @@ -0,0 +1,147 @@ +/* + * 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 { DataAccessLayer } from '../../types'; +import { + mockTreeWithNoAncestorsAndTwoChildrenAndRelatedEventsOnOrigin, + firstRelatedEventID, + secondRelatedEventID, +} from '../../mocks/resolver_tree'; +import { + ResolverRelatedEvents, + ResolverTree, + ResolverEntityIndex, + SafeResolverEvent, +} from '../../../../common/endpoint/types'; +import * as eventModel from '../../../../common/endpoint/models/event'; + +interface Metadata { + /** + * The `_id` of the document being analyzed. + */ + databaseDocumentID: string; + /** + * A record of entityIDs to be used in tests assertions. + */ + entityIDs: { + /** + * The entityID of the node related to the document being analyzed. + */ + origin: 'origin'; + /** + * The entityID of the first child of the origin. + */ + firstChild: 'firstChild'; + /** + * The entityID of the second child of the origin. + */ + secondChild: 'secondChild'; + }; +} + +/** + * See the other mock `noAncestorsTwoChildrenWithRelatedEventsOnOrigin` but this one + * has one of the related events "after" the first (i.e. you have to call with `after` to + * get the second one). + */ +export function noAncestorsTwoChildrenWithRelatedEventsOnOriginWithOneAfterCursor(): { + dataAccessLayer: DataAccessLayer; + metadata: Metadata; +} { + const metadata: Metadata = { + databaseDocumentID: '_id', + entityIDs: { origin: 'origin', firstChild: 'firstChild', secondChild: 'secondChild' }, + }; + const tree = mockTreeWithNoAncestorsAndTwoChildrenAndRelatedEventsOnOrigin({ + originID: metadata.entityIDs.origin, + firstChildID: metadata.entityIDs.firstChild, + secondChildID: metadata.entityIDs.secondChild, + }); + + return { + metadata, + dataAccessLayer: { + /** + * Fetch related events for an entity ID + */ + async relatedEvents(entityID: string): Promise { + /** + * Respond with the mocked related events when the origin's related events are fetched. + **/ + const events = entityID === metadata.entityIDs.origin ? tree.relatedEvents.events : []; + + return { + entityID, + events, + nextEvent: null, + }; + }, + + /** + * Any of the origin's related events by category. + * `entityID` must match the origin node's `process.entity_id`. + * These are split by the `after` cursor: Calling without the cursor will + * return the first event, calling with the cursor set to the id of the first event + * will return the second. + */ + async eventsWithEntityIDAndCategory( + entityID: string, + category: string, + after?: string + ): Promise<{ events: SafeResolverEvent[]; nextEvent: string | null }> { + /** + * For testing: This 'fakes' the behavior of one related event being `after` + * a cursor for an earlier event. + * @param event A `SafeResolverEvent` to filter + */ + function splitOnCursor(event: SafeResolverEvent) { + if (typeof after === 'undefined') { + return eventModel.eventID(event) === firstRelatedEventID; + } + if (after === firstRelatedEventID) { + return eventModel.eventID(event) === secondRelatedEventID; + } + return false; + } + + const events = + entityID === metadata.entityIDs.origin + ? tree.relatedEvents.events.filter( + (event) => + eventModel.eventCategory(event).includes(category) && splitOnCursor(event) + ) + : []; + return { + events, + nextEvent: typeof after === 'undefined' ? firstRelatedEventID : null, + }; + }, + + /** + * Any of the origin's related events by event.id + */ + async event(eventID: string): Promise { + return ( + tree.relatedEvents.events.find((event) => eventModel.eventID(event) === eventID) ?? null + ); + }, + + /** + * Fetch a ResolverTree for a entityID + */ + async resolverTree(): Promise { + return tree; + }, + + /** + * Get entities matching a document. + */ + async entities(): Promise { + return [{ entity_id: metadata.entityIDs.origin }]; + }, + }, + }; +} diff --git a/x-pack/plugins/security_solution/public/resolver/mocks/resolver_tree.ts b/x-pack/plugins/security_solution/public/resolver/mocks/resolver_tree.ts index 3f7c58efc762b..5b851d588543d 100644 --- a/x-pack/plugins/security_solution/public/resolver/mocks/resolver_tree.ts +++ b/x-pack/plugins/security_solution/public/resolver/mocks/resolver_tree.ts @@ -307,6 +307,15 @@ export function mockTreeWithNoProcessEvents(): ResolverTree { }; } +/** + * first ID (to check in the mock data access layer) + */ +export const firstRelatedEventID = 'id of first related event'; +/** + * second ID (to check in the mock data access layer) + */ +export const secondRelatedEventID = 'id of second related event'; + export function mockTreeWithNoAncestorsAndTwoChildrenAndRelatedEventsOnOrigin({ originID, firstChildID, @@ -326,14 +335,14 @@ export function mockTreeWithNoAncestorsAndTwoChildrenAndRelatedEventsOnOrigin({ mockEndpointEvent({ entityID: originID, parentEntityID, - eventID: 'first related event', + eventID: firstRelatedEventID, eventType: 'access', eventCategory: 'registry', }), mockEndpointEvent({ entityID: originID, parentEntityID, - eventID: 'second related event', + eventID: secondRelatedEventID, eventType: 'access', eventCategory: 'registry', }), From 28e138281321d11b2de9a7dd5d66981d557d79ed Mon Sep 17 00:00:00 2001 From: Lukas Olson Date: Wed, 30 Sep 2020 12:32:09 -0700 Subject: [PATCH 042/142] Fix KQL autocomplete value suggestions (#78676) --- .../suggestion_component.test.tsx.snap | 2 ++ .../ui/typeahead/suggestion_component.tsx | 4 ++- test/functional/services/query_bar.ts | 5 +++ .../providers/kql_query_suggestion/value.ts | 26 +++++++-------- x-pack/test/functional/apps/discover/index.ts | 1 + .../apps/discover/value_suggestions.ts | 33 +++++++++++++++++++ 6 files changed, 57 insertions(+), 14 deletions(-) create mode 100644 x-pack/test/functional/apps/discover/value_suggestions.ts diff --git a/src/plugins/data/public/ui/typeahead/__snapshots__/suggestion_component.test.tsx.snap b/src/plugins/data/public/ui/typeahead/__snapshots__/suggestion_component.test.tsx.snap index 38b570c86c6c5..19ce92178d5e4 100644 --- a/src/plugins/data/public/ui/typeahead/__snapshots__/suggestion_component.test.tsx.snap +++ b/src/plugins/data/public/ui/typeahead/__snapshots__/suggestion_component.test.tsx.snap @@ -22,6 +22,7 @@ exports[`SuggestionComponent Should display the suggestion and use the provided

as promised, not helpful
@@ -56,6 +57,7 @@ exports[`SuggestionComponent Should make the element active if the selected prop
as promised, not helpful
diff --git a/src/plugins/data/public/ui/typeahead/suggestion_component.tsx b/src/plugins/data/public/ui/typeahead/suggestion_component.tsx index 724287b874bf7..20cb60ddab9e1 100644 --- a/src/plugins/data/public/ui/typeahead/suggestion_component.tsx +++ b/src/plugins/data/public/ui/typeahead/suggestion_component.tsx @@ -72,7 +72,9 @@ export function SuggestionComponent(props: Props) {
-
{props.suggestion.text}
+
+ {props.suggestion.text} +
{props.shouldDisplayDescription && (
{props.suggestion.description}
)} diff --git a/test/functional/services/query_bar.ts b/test/functional/services/query_bar.ts index 8cd63fb2f4a51..3b4645bc42821 100644 --- a/test/functional/services/query_bar.ts +++ b/test/functional/services/query_bar.ts @@ -87,6 +87,11 @@ export function QueryBarProvider({ getService, getPageObjects }: FtrProviderCont const queryLanguageButton = await testSubjects.find('switchQueryLanguageButton'); expect((await queryLanguageButton.getVisibleText()).toLowerCase()).to.eql(lang); } + + public async getSuggestions() { + const suggestions = await testSubjects.findAll('autoCompleteSuggestionText'); + return Promise.all(suggestions.map((suggestion) => suggestion.getVisibleText())); + } } return new QueryBar(); diff --git a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/value.ts b/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/value.ts index 6f9ba4d00109d..441e5a6f775dd 100644 --- a/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/value.ts +++ b/x-pack/plugins/data_enhanced/public/autocomplete/providers/kql_query_suggestion/value.ts @@ -9,6 +9,8 @@ import { escapeQuotes } from './lib/escape_kuery'; import { KqlQuerySuggestionProvider } from './types'; import { getAutocompleteService } from '../../../services'; import { + IFieldType, + IIndexPattern, QuerySuggestion, QuerySuggestionTypes, } from '../../../../../../../src/plugins/data/public'; @@ -23,29 +25,27 @@ const wrapAsSuggestions = (start: number, end: number, query: string, values: st end, })); -export const setupGetValueSuggestions: KqlQuerySuggestionProvider = (core) => { +export const setupGetValueSuggestions: KqlQuerySuggestionProvider = () => { return async ( { indexPatterns, boolFilter, signal }, { start, end, prefix, suffix, fieldName, nestedPath } ): Promise => { - const allFields = flatten( - indexPatterns.map((indexPattern) => - indexPattern.fields.map((field) => ({ - ...field, - indexPattern, - })) - ) - ); - const fullFieldName = nestedPath ? `${nestedPath}.${fieldName}` : fieldName; - const fields = allFields.filter((field) => field.name === fullFieldName); + + const indexPatternFieldEntries: Array<[IIndexPattern, IFieldType]> = []; + indexPatterns.forEach((indexPattern) => { + indexPattern.fields + .filter((field) => field.name === fullFieldName) + .forEach((field) => indexPatternFieldEntries.push([indexPattern, field])); + }); + const query = `${prefix}${suffix}`.trim(); const { getValueSuggestions } = getAutocompleteService(); const data = await Promise.all( - fields.map((field) => + indexPatternFieldEntries.map(([indexPattern, field]) => getValueSuggestions({ - indexPattern: field.indexPattern, + indexPattern, field, query, boolFilter, diff --git a/x-pack/test/functional/apps/discover/index.ts b/x-pack/test/functional/apps/discover/index.ts index 759225d80fa20..816428f7b3cc3 100644 --- a/x-pack/test/functional/apps/discover/index.ts +++ b/x-pack/test/functional/apps/discover/index.ts @@ -14,5 +14,6 @@ export default function ({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./async_scripted_fields')); loadTestFile(require.resolve('./reporting')); loadTestFile(require.resolve('./error_handling')); + loadTestFile(require.resolve('./value_suggestions')); }); } diff --git a/x-pack/test/functional/apps/discover/value_suggestions.ts b/x-pack/test/functional/apps/discover/value_suggestions.ts new file mode 100644 index 0000000000000..54720b94172f6 --- /dev/null +++ b/x-pack/test/functional/apps/discover/value_suggestions.ts @@ -0,0 +1,33 @@ +/* + * 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 { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const queryBar = getService('queryBar'); + const PageObjects = getPageObjects(['common']); + + describe('value suggestions', function describeIndexTests() { + before(async function () { + await esArchiver.loadIfNeeded('logstash_functional'); + await esArchiver.load('dashboard/drilldowns'); + await PageObjects.common.navigateToApp('discover'); + }); + + after(async () => { + await esArchiver.unload('dashboard/drilldowns'); + }); + + it('show up', async () => { + await queryBar.setQuery('extension.raw : '); + const suggestions = await queryBar.getSuggestions(); + expect(suggestions.length).to.be(5); + expect(suggestions).to.contain('"jpg"'); + }); + }); +} From 7c217a72f70ee9846db876f9ad2b844c1c7214b9 Mon Sep 17 00:00:00 2001 From: Caroline Horn <549577+cchaos@users.noreply.github.com> Date: Wed, 30 Sep 2020 15:32:59 -0400 Subject: [PATCH 043/142] [Design] A couple fixes for 7.10 (#78801) * A few header and KQL bar fixes * More fixes (alerts, modals) * Fixing bottom padding for advanced settings bottom bar * One more alerts responsive fix * Snaps --- .../header/__snapshots__/header.test.tsx.snap | 280 ++++++++++++------ src/core/public/chrome/ui/header/header.tsx | 13 +- .../management_app/_advanced_settings.scss | 4 + .../management_app/components/form/form.tsx | 9 +- .../ui/query_string_input/no_data_popover.tsx | 1 + .../ui/typeahead/suggestions_component.tsx | 2 +- .../saved_object_save_modal.test.tsx.snap | 1 + .../save_modal/saved_object_save_modal.tsx | 9 +- .../public/components/search_bar.tsx | 3 + .../action_wizard/action_wizard.tsx | 4 +- .../drilldown_hello_bar.tsx | 6 +- .../components/flyout_frame/flyout_frame.tsx | 2 +- .../threshold_watch_action_dropdown.tsx | 2 +- 13 files changed, 226 insertions(+), 110 deletions(-) diff --git a/src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap b/src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap index 8937ecb4d9b4e..2db3eede16e25 100644 --- a/src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap +++ b/src/core/public/chrome/ui/header/__snapshots__/header.test.tsx.snap @@ -1907,62 +1907,133 @@ exports[`Header renders 1`] = ` Object { "borders": "none", "items": Array [ - + , + /> + , ], }, Object { "borders": "none", "items": Array [ + + + , - + + /> + @@ -3117,6 +3198,24 @@ exports[`Header renders 1`] = ` +
+ +
+
+
- -
- ], + items: [ + + + , + ], }), borders: 'none', }, { items: [ + + + , - - diff --git a/src/plugins/advanced_settings/public/management_app/_advanced_settings.scss b/src/plugins/advanced_settings/public/management_app/_advanced_settings.scss index 66ae9cca3f83b..fd26677e93894 100644 --- a/src/plugins/advanced_settings/public/management_app/_advanced_settings.scss +++ b/src/plugins/advanced_settings/public/management_app/_advanced_settings.scss @@ -64,3 +64,7 @@ .mgtAdvancedSettingsForm__button { width: 100%; } + +.kbnBody--mgtAdvancedSettingsHasBottomBar .mgtPage__body { + padding-bottom: $euiSizeXL * 2; +} diff --git a/src/plugins/advanced_settings/public/management_app/components/form/form.tsx b/src/plugins/advanced_settings/public/management_app/components/form/form.tsx index 497252b75fa58..d243d85e12a66 100644 --- a/src/plugins/advanced_settings/public/management_app/components/form/form.tsx +++ b/src/plugins/advanced_settings/public/management_app/components/form/form.tsx @@ -388,6 +388,13 @@ export class Form extends PureComponent { const { unsavedChanges } = this.state; const { visibleSettings, categories, categoryCounts, clearQuery } = this.props; const currentCategories: Category[] = []; + const hasUnsavedChanges = !isEmpty(unsavedChanges); + + if (hasUnsavedChanges) { + document.body.classList.add('kbnBody--mgtAdvancedSettingsHasBottomBar'); + } else { + document.body.classList.remove('kbnBody--mgtAdvancedSettingsHasBottomBar'); + } categories.forEach((category) => { if (visibleSettings[category] && visibleSettings[category].length) { @@ -408,7 +415,7 @@ export class Form extends PureComponent { }) : this.maybeRenderNoSettings(clearQuery)}
- {!isEmpty(unsavedChanges) && this.renderBottomBar()} + {hasUnsavedChanges && this.renderBottomBar()} ); } diff --git a/src/plugins/data/public/ui/query_string_input/no_data_popover.tsx b/src/plugins/data/public/ui/query_string_input/no_data_popover.tsx index 561c33519f96f..7d5282a0545bc 100644 --- a/src/plugins/data/public/ui/query_string_input/no_data_popover.tsx +++ b/src/plugins/data/public/ui/query_string_input/no_data_popover.tsx @@ -63,6 +63,7 @@ export function NoDataPopover({ } minWidth={300} anchorPosition="downCenter" + anchorClassName="eui-displayBlock" step={1} stepsTotal={1} isStepOpen={noDataPopoverVisible} diff --git a/src/plugins/data/public/ui/typeahead/suggestions_component.tsx b/src/plugins/data/public/ui/typeahead/suggestions_component.tsx index 50ed9e9542d36..054c6318b9772 100644 --- a/src/plugins/data/public/ui/typeahead/suggestions_component.tsx +++ b/src/plugins/data/public/ui/typeahead/suggestions_component.tsx @@ -154,7 +154,7 @@ export class SuggestionsComponent extends Component { const StyledSuggestionsListDiv = styled.div` ${(props: { queryBarRect: DOMRect; verticalListPosition: string }) => ` position: absolute; - z-index: 4001; + z-index: 999; left: ${props.queryBarRect.left}px; width: ${props.queryBarRect.width}px; ${props.verticalListPosition}`} diff --git a/src/plugins/saved_objects/public/save_modal/__snapshots__/saved_object_save_modal.test.tsx.snap b/src/plugins/saved_objects/public/save_modal/__snapshots__/saved_object_save_modal.test.tsx.snap index eff5ab4f1e2c7..c923c5c2aed90 100644 --- a/src/plugins/saved_objects/public/save_modal/__snapshots__/saved_object_save_modal.test.tsx.snap +++ b/src/plugins/saved_objects/public/save_modal/__snapshots__/saved_object_save_modal.test.tsx.snap @@ -25,6 +25,7 @@ exports[`SavedObjectSaveModal should render matching snapshot 1`] = ` + {!this.props.showDescription && this.props.description && ( - - {this.props.description} - + + {this.props.description} + )} + + + {this.renderCopyOnSave()} = ({ data-test-subj={`${TEST_SUBJ_SELECTED_ACTION_FACTORY}-${actionFactory.id}`} >
- + {actionFactory.getIconType(context) && ( @@ -342,7 +342,7 @@ const ActionFactorySelector: React.FC = ({ }; return ( - + {ensureOrder(actionFactories).map((actionFactory) => ( = ({ }) => { return ( - + -
- -
+
diff --git a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/flyout_frame/flyout_frame.tsx b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/flyout_frame/flyout_frame.tsx index b55cbd88d0dc0..e518209746b60 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/flyout_frame/flyout_frame.tsx +++ b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/flyout_frame/flyout_frame.tsx @@ -64,7 +64,7 @@ export const FlyoutFrame: React.FC = ({ const footerFragment = (onClose || footer) && ( - + {onClose && ( = ({ settings, setIsPopOverOpen(false); }} > - + From 5ed8fef08b2d1fbaae23dac7afa65dab824164e2 Mon Sep 17 00:00:00 2001 From: Melissa Alvarez Date: Wed, 30 Sep 2020 15:33:51 -0400 Subject: [PATCH 044/142] [ML] DF Analytics creation wizard: replace select input with job type cards with icons (#78872) * replace select input with job type cards with icons * update functional tests * remove unusued translations * ensure jobType cards remain same size and add translations --- .../configuration_step/job_type.tsx | 128 ++++++++++-------- .../translations/translations/ja-JP.json | 2 - .../translations/translations/zh-CN.json | 2 - .../ml/data_frame_analytics_creation.ts | 20 +-- 4 files changed, 80 insertions(+), 72 deletions(-) diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/job_type.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/job_type.tsx index 1e6a616fedd64..31c7672ed4fcc 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/job_type.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/job_type.tsx @@ -4,11 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -import React, { Fragment, FC } from 'react'; +import React, { FC, useState } from 'react'; import { i18n } from '@kbn/i18n'; -import { EuiFormRow, EuiSelect } from '@elastic/eui'; +import { EuiCard, EuiIcon, EuiFlexItem, EuiFlexGroup, EuiSpacer } from '@elastic/eui'; import { ANALYSIS_CONFIG_TYPE } from '../../../../../../../common/constants/data_frame_analytics'; +import { DataFrameAnalysisConfigType } from '../../../../../../../common/types/data_frame_analytics'; import { AnalyticsJobType } from '../../../analytics_management/hooks/use_create_analytics_form/state'; @@ -17,64 +18,81 @@ interface Props { setFormState: React.Dispatch>; } -export const JobType: FC = ({ type, setFormState }) => { - const outlierHelpText = i18n.translate( - 'xpack.ml.dataframe.analytics.create.outlierDetectionHelpText', - { - defaultMessage: 'Outlier detection identifies unusual data points in the data set.', - } - ); +interface Details { + helpText: string; + icon: string; + title: string; +} - const regressionHelpText = i18n.translate( - 'xpack.ml.dataframe.analytics.create.outlierRegressionHelpText', - { - defaultMessage: 'Regression predicts numerical values in the data set.', - } - ); +type JobDetails = Record; - const classificationHelpText = i18n.translate( - 'xpack.ml.dataframe.analytics.create.classificationHelpText', - { +const jobDetails: JobDetails = { + [ANALYSIS_CONFIG_TYPE.OUTLIER_DETECTION]: { + helpText: i18n.translate('xpack.ml.dataframe.analytics.create.outlierDetectionHelpText', { + defaultMessage: 'Outlier detection identifies unusual data points in the data set.', + }), + icon: 'outlierDetectionJob', + title: i18n.translate('xpack.ml.dataframe.analytics.create.outlierDetectionTitle', { + defaultMessage: 'Outlier detection', + }), + }, + [ANALYSIS_CONFIG_TYPE.REGRESSION]: { + helpText: i18n.translate('xpack.ml.dataframe.analytics.create.regressionHelpText', { + defaultMessage: 'Regression predicts numerical values in the data set.', + }), + icon: 'regressionJob', + title: i18n.translate('xpack.ml.dataframe.analytics.create.regressionTitle', { + defaultMessage: 'Regression', + }), + }, + [ANALYSIS_CONFIG_TYPE.CLASSIFICATION]: { + helpText: i18n.translate('xpack.ml.dataframe.analytics.create.classificationHelpText', { defaultMessage: 'Classification predicts labels of data points in the data set.', - } - ); + }), + icon: 'classificationJob', + title: i18n.translate('xpack.ml.dataframe.analytics.create.classificationTitle', { + defaultMessage: 'Classification', + }), + }, +}; - const helpText = { - [ANALYSIS_CONFIG_TYPE.REGRESSION]: regressionHelpText, - [ANALYSIS_CONFIG_TYPE.OUTLIER_DETECTION]: outlierHelpText, - [ANALYSIS_CONFIG_TYPE.CLASSIFICATION]: classificationHelpText, - }; +export const JobType: FC = ({ type, setFormState }) => { + const [selectedCard, setSelectedCard] = useState({}); return ( - - - ({ - value: jobType, - text: jobType.replace(/_/g, ' '), - 'data-test-subj': `mlAnalyticsCreation-${jobType}-option`, - }))} - value={type} - hasNoInitialSelection={true} - onChange={(e) => { - const value = e.target.value as AnalyticsJobType; - setFormState({ - previousJobType: type, - jobType: value, - includes: [], - requiredFieldsError: undefined, - }); - }} - data-test-subj="mlAnalyticsCreateJobWizardJobTypeSelect" - /> - - + <> + + {(Object.keys(jobDetails) as Array).map((jobType) => ( + + } + title={jobDetails[jobType].title} + description={jobDetails[jobType].helpText} + data-test-subj={`mlAnalyticsCreation-${jobType}-option${ + type === jobType ? ' selectedJobType' : '' + }`} + selectable={{ + onClick: () => { + // Only allow one job selected at a time and don't allow deselection + if (selectedCard[jobType] === true) { + return; + } + + setFormState({ + previousJobType: type, + jobType, + includes: [], + requiredFieldsError: undefined, + }); + setSelectedCard({ [jobType]: !selectedCard[jobType] }); + }, + isSelected: selectedCard[jobType] === true || type === jobType, + }} + /> + + ))} + + + ); }; diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 0b2c3b1231e4b..34ff32244035a 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -10678,7 +10678,6 @@ "xpack.ml.dataframe.analytics.create.jobIdInvalidMaxLengthErrorMessage": "ジョブ ID は {maxLength, plural, one {# 文字} other {# 文字}} 以内でなければなりません。", "xpack.ml.dataframe.analytics.create.jobIdLabel": "ジョブID", "xpack.ml.dataframe.analytics.create.jobIdPlaceholder": "ジョブID", - "xpack.ml.dataframe.analytics.create.jobTypeLabel": "ジョブタイプ", "xpack.ml.dataframe.analytics.create.lambdaHelpText": "学習データセットの過剰適合を防止するための正則化パラメーター。非負の値でなければなりません。", "xpack.ml.dataframe.analytics.create.lambdaInputAriaLabel": "学習データセットの過剰適合を防止するための正則化パラメーター。", "xpack.ml.dataframe.analytics.create.lambdaLabel": "ラムダ", @@ -10711,7 +10710,6 @@ "xpack.ml.dataframe.analytics.create.outlierFractionHelpText": "異常値検出の前に異常であると想定されるデータセットの比率を設定します。", "xpack.ml.dataframe.analytics.create.outlierFractionInputAriaLabel": "異常値検出の前に異常であると想定されるデータセットの比率を設定します。", "xpack.ml.dataframe.analytics.create.outlierFractionLabel": "異常値割合", - "xpack.ml.dataframe.analytics.create.outlierRegressionHelpText": "回帰はデータセットにおける数値を予測します。", "xpack.ml.dataframe.analytics.create.predictionFieldNameHelpText": "結果で予測フィールドの名前を定義します。デフォルトは_predictionです。", "xpack.ml.dataframe.analytics.create.predictionFieldNameLabel": "予測フィールド名", "xpack.ml.dataframe.analytics.create.randomizeSeedInputAriaLabel": "学習で使用されるドキュメントを選択するために使用される乱数生成器のシード", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 4d753b26fd7e3..db59493002987 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -10684,7 +10684,6 @@ "xpack.ml.dataframe.analytics.create.jobIdInvalidMaxLengthErrorMessage": "作业 ID 的长度不得超过 {maxLength, plural, one {# 个字符} other {# 个字符}}。", "xpack.ml.dataframe.analytics.create.jobIdLabel": "作业 ID", "xpack.ml.dataframe.analytics.create.jobIdPlaceholder": "作业 ID", - "xpack.ml.dataframe.analytics.create.jobTypeLabel": "作业类型", "xpack.ml.dataframe.analytics.create.lambdaHelpText": "在训练数据集上防止过度拟合的正则化参数。必须为非负值。", "xpack.ml.dataframe.analytics.create.lambdaInputAriaLabel": "在训练数据集上防止过度拟合的正则化参数。", "xpack.ml.dataframe.analytics.create.lambdaLabel": "Lambda", @@ -10717,7 +10716,6 @@ "xpack.ml.dataframe.analytics.create.outlierFractionHelpText": "设置在离群值检测之前被假设为离群的数据集比例。", "xpack.ml.dataframe.analytics.create.outlierFractionInputAriaLabel": "设置在离群值检测之前被假设为离群的数据集比例。", "xpack.ml.dataframe.analytics.create.outlierFractionLabel": "离群值比例", - "xpack.ml.dataframe.analytics.create.outlierRegressionHelpText": "回归用于预测数据集中的数值。", "xpack.ml.dataframe.analytics.create.predictionFieldNameHelpText": "定义结果中预测字段的名称。默认为 _prediction。", "xpack.ml.dataframe.analytics.create.predictionFieldNameLabel": "预测字段名称", "xpack.ml.dataframe.analytics.create.randomizeSeedInputAriaLabel": "用于选取哪个文档用于训练的随机生成器种子", diff --git a/x-pack/test/functional/services/ml/data_frame_analytics_creation.ts b/x-pack/test/functional/services/ml/data_frame_analytics_creation.ts index e01e065867ac7..71d68b16c4037 100644 --- a/x-pack/test/functional/services/ml/data_frame_analytics_creation.ts +++ b/x-pack/test/functional/services/ml/data_frame_analytics_creation.ts @@ -29,23 +29,16 @@ export function MachineLearningDataFrameAnalyticsCreationProvider( await testSubjects.existOrFail('mlAnalyticsCreateJobWizardJobTypeSelect'); }, - async assertJobTypeSelection(expectedSelection: string) { + async assertJobTypeSelection(jobTypeAttribute: string) { await retry.tryForTime(5000, async () => { - const actualSelection = await testSubjects.getAttribute( - 'mlAnalyticsCreateJobWizardJobTypeSelect', - 'value' - ); - expect(actualSelection).to.eql( - expectedSelection, - `Job type selection should be '${expectedSelection}' (got '${actualSelection}')` - ); + await testSubjects.existOrFail(`${jobTypeAttribute} selectedJobType`); }); }, async selectJobType(jobType: string) { - await testSubjects.click('mlAnalyticsCreateJobWizardJobTypeSelect'); - await testSubjects.click(`mlAnalyticsCreation-${jobType}-option`); - await this.assertJobTypeSelection(jobType); + const jobTypeAttribute = `mlAnalyticsCreation-${jobType}-option`; + await testSubjects.click(jobTypeAttribute); + await this.assertJobTypeSelection(jobTypeAttribute); }, async assertAdvancedEditorSwitchExists() { @@ -505,7 +498,8 @@ export function MachineLearningDataFrameAnalyticsCreationProvider( async assertInitialCloneJobConfigStep(job: DataFrameAnalyticsConfig) { const jobType = Object.keys(job.analysis)[0]; - await this.assertJobTypeSelection(jobType); + const jobTypeAttribute = `mlAnalyticsCreation-${jobType}-option`; + await this.assertJobTypeSelection(jobTypeAttribute); if (isClassificationAnalysis(job.analysis) || isRegressionAnalysis(job.analysis)) { await this.assertDependentVariableSelection([job.analysis[jobType].dependent_variable]); await this.assertTrainingPercentValue(String(job.analysis[jobType].training_percent)); From df86dcb215b4f5e5ead657ea15b1e836549d1c0c Mon Sep 17 00:00:00 2001 From: Stacey Gammon Date: Wed, 30 Sep 2020 15:36:01 -0400 Subject: [PATCH 045/142] remove file accidentally checked in (#79005) --- .../architecture/code-exploration.asciidoc | 598 ------------------ 1 file changed, 598 deletions(-) delete mode 100644 docs/developer/architecture/code-exploration.asciidoc diff --git a/docs/developer/architecture/code-exploration.asciidoc b/docs/developer/architecture/code-exploration.asciidoc deleted file mode 100644 index 4a390336da34f..0000000000000 --- a/docs/developer/architecture/code-exploration.asciidoc +++ /dev/null @@ -1,598 +0,0 @@ -//// - -NOTE: - This is an automatically generated file. Please do not edit directly. Instead, run the - following from within the kibana repository: - - node scripts/build_plugin_list_docs - - You can update the template within packages/kbn-dev-utils/target/plugin_list/generate_plugin_list.js - -//// - -[[code-exploration]] -== Exploring Kibana code - -The goals of our folder heirarchy are: - -- Easy for developers to know where to add new services, plugins and applications. -- Easy for developers to know where to find the code from services, plugins and applications. -- Easy to browse and understand our folder structure. - -To that aim, we strive to: - -- Avoid too many files in any given folder. -- Choose clear, unambigious folder names. -- Organize by domain. -- Every folder should contain a README that describes the contents of that folder. - -[discrete] -[[kibana-services-applications]] -=== Services and Applications - -[discrete] -==== src/plugins - -- {kib-repo}blob/{branch}/src/plugins/advanced_settings[advancedSettings] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/src/plugins/apm_oss[apmOss] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/src/plugins/bfetch/README.md[bfetch] - -bfetch allows to batch HTTP requests and streams responses back. - - -- {kib-repo}blob/{branch}/src/plugins/charts/README.md[charts] - -The Charts plugin is a way to create easier integration of shared colors, themes, types and other utilities across all Kibana charts and visualizations. - - -- {kib-repo}blob/{branch}/src/plugins/console[console] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/src/plugins/dashboard/README.md[dashboard] - -Contains the dashboard application. - - -- {kib-repo}blob/{branch}/src/plugins/data/README.md[data] - -data plugin provides common data access services. - - -- {kib-repo}blob/{branch}/src/plugins/dev_tools/README.md[devTools] - -The ui/registry/dev_tools is removed in favor of the devTools plugin which exposes a register method in the setup contract. -Registering app works mostly the same as registering apps in core.application.register. -Routing will be handled by the id of the dev tool - your dev tool will be mounted when the URL matches /app/dev_tools#/. -This API doesn't support angular, for registering angular dev tools, bootstrap a local module on mount into the given HTML element. - - -- {kib-repo}blob/{branch}/src/plugins/discover/README.md[discover] - -Contains the Discover application and the saved search embeddable. - - -- {kib-repo}blob/{branch}/src/plugins/embeddable/README.md[embeddable] - -Embeddables are re-usable widgets that can be rendered in any environment or plugin. Developers can embed them directly in their plugin. End users can dynamically add them to any embeddable containers. - - -- {kib-repo}blob/{branch}/src/plugins/es_ui_shared/README.md[esUiShared] - -This plugin contains reusable code in the form of self-contained modules (or libraries). Each of these modules exports a set of functionality relevant to the domain of the module. - - -- {kib-repo}blob/{branch}/src/plugins/expressions/README.md[expressions] - -This plugin provides methods which will parse & execute an expression pipeline -string for you, as well as a series of registries for advanced users who might -want to incorporate their own functions, types, and renderers into the service -for use in their own application. - - -- {kib-repo}blob/{branch}/src/plugins/home/README.md[home] - -Moves the legacy ui/registry/feature_catalogue module for registering "features" that should be shown in the home page's feature catalogue to a service within a "home" plugin. The feature catalogue refered to here should not be confused with the "feature" plugin for registering features used to derive UI capabilities for feature controls. - - -- {kib-repo}blob/{branch}/src/plugins/index_pattern_management[indexPatternManagement] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/src/plugins/input_control_vis/README.md[inputControlVis] - -Contains the input control visualization allowing to place custom filter controls on a dashboard. - - -- {kib-repo}blob/{branch}/src/plugins/inspector/README.md[inspector] - -The inspector is a contextual tool to gain insights into different elements -in Kibana, e.g. visualizations. It has the form of a flyout panel. - - -- {kib-repo}blob/{branch}/src/plugins/kibana_legacy/README.md[kibanaLegacy] - -This plugin will contain several helpers and services to integrate pieces of the legacy Kibana app with the new Kibana platform. - - -- {kib-repo}blob/{branch}/src/plugins/kibana_react/README.md[kibanaReact] - -Tools for building React applications in Kibana. - - -- {kib-repo}blob/{branch}/src/plugins/kibana_usage_collection/README.md[kibanaUsageCollection] - -This plugin registers the basic usage collectors from Kibana: - - -- {kib-repo}blob/{branch}/src/plugins/kibana_utils/README.md[kibanaUtils] - -Utilities for building Kibana plugins. - - -- {kib-repo}blob/{branch}/src/plugins/legacy_export[legacyExport] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/src/plugins/management[management] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/src/plugins/maps_legacy[mapsLegacy] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/src/plugins/navigation/README.md[navigation] - -The navigation plugins exports the TopNavMenu component. -It also provides a stateful version of it on the start contract. - - -- {kib-repo}blob/{branch}/src/plugins/newsfeed[newsfeed] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/src/plugins/region_map[regionMap] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/src/plugins/saved_objects[savedObjects] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/src/plugins/saved_objects_management[savedObjectsManagement] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/src/plugins/share/README.md[share] - -Replaces the legacy ui/share module for registering share context menus. - - -- {kib-repo}blob/{branch}/src/plugins/telemetry/README.md[telemetry] - -Telemetry allows Kibana features to have usage tracked in the wild. The general term "telemetry" refers to multiple things: - - -- {kib-repo}blob/{branch}/src/plugins/telemetry_collection_manager/README.md[telemetryCollectionManager] - -Telemetry's collection manager to go through all the telemetry sources when fetching it before reporting. - - -- {kib-repo}blob/{branch}/src/plugins/telemetry_management_section/README.md[telemetryManagementSection] - -This plugin adds the Advanced Settings section for the Usage Data collection (aka Telemetry). - - -- {kib-repo}blob/{branch}/src/plugins/tile_map[tileMap] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/src/plugins/timelion/README.md[timelion] - -Contains the deprecated timelion application. For the timelion visualization, -which also contains the timelion APIs and backend, look at the vis_type_timelion plugin. - - -- {kib-repo}blob/{branch}/src/plugins/ui_actions/README.md[uiActions] - -An API for: - - -- {kib-repo}blob/{branch}/src/plugins/usage_collection/README.md[usageCollection] - -Usage Collection allows collecting usage data for other services to consume (telemetry and monitoring). -To integrate with the telemetry services for usage collection of your feature, there are 2 steps: - - -- {kib-repo}blob/{branch}/src/plugins/vis_type_markdown/README.md[visTypeMarkdown] - -The markdown visualization that can be used to place text panels on dashboards. - - -- {kib-repo}blob/{branch}/src/plugins/vis_type_metric/README.md[visTypeMetric] - -Contains the metric visualization. - - -- {kib-repo}blob/{branch}/src/plugins/vis_type_table/README.md[visTypeTable] - -Contains the data table visualization, that allows presenting data in a simple table format. - - -- {kib-repo}blob/{branch}/src/plugins/vis_type_tagcloud/README.md[visTypeTagcloud] - -Contains the tagcloud visualization. - - -- {kib-repo}blob/{branch}/src/plugins/vis_type_timelion/README.md[visTypeTimelion] - -Contains the timelion visualization and the timelion backend. - - -- {kib-repo}blob/{branch}/src/plugins/vis_type_timeseries/README.md[visTypeTimeseries] - -Contains everything around TSVB (the editor, visualizatin implementations and backends). - - -- {kib-repo}blob/{branch}/src/plugins/vis_type_vega/README.md[visTypeVega] - -Contains the Vega visualization. - - -- {kib-repo}blob/{branch}/src/plugins/vis_type_vislib/README.md[visTypeVislib] - -Contains the vislib visualizations. These are the classical area/line/bar, pie, gauge/goal and -heatmap charts. - - -- {kib-repo}blob/{branch}/src/plugins/vis_type_xy/README.md[visTypeXy] - -Contains the new xy-axis chart using the elastic-charts library, which will eventually -replace the vislib xy-axis (bar, area, line) charts. - - -- {kib-repo}blob/{branch}/src/plugins/visualizations/README.md[visualizations] - -Contains most of the visualization infrastructure, e.g. the visualization type registry or the -visualization embeddable. - - -- {kib-repo}blob/{branch}/src/plugins/visualize/README.md[visualize] - -Contains the visualize application which includes the listing page and the app frame, -which will load the visualization's editor. - - -[discrete] -==== x-pack/plugins - -- {kib-repo}blob/{branch}/x-pack/plugins/actions/README.md[actions] - -The Kibana actions plugin provides a framework to create executable actions. You can: - - -- {kib-repo}blob/{branch}/x-pack/plugins/alerting_builtins/README.md[alertingBuiltins] - -This plugin provides alertTypes shipped with Kibana for use with the -the alerts plugin. When enabled, it will register -the built-in alertTypes with the alerting plugin, register associated HTTP -routes, etc. - - -- {kib-repo}blob/{branch}/x-pack/plugins/alerts/README.md[alerts] - -The Kibana alerting plugin provides a common place to set up alerts. You can: - - -- {kib-repo}blob/{branch}/x-pack/plugins/apm/readme.md[apm] - -To access an elasticsearch instance that has live data you have two options: - - -- {kib-repo}blob/{branch}/x-pack/plugins/audit_trail[auditTrail] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/beats_management/readme.md[beatsManagement] - -Notes: -Failure to have auth enabled in Kibana will make for a broken UI. UI-based errors not yet in place - - -- {kib-repo}blob/{branch}/x-pack/plugins/canvas/README.md[canvas] - -"Never look back. The past is done. The future is a blank canvas." ― Suzy Kassem, Rise Up and Salute the Sun - - -- {kib-repo}blob/{branch}/x-pack/plugins/case/README.md[case] - -Experimental Feature - - -- {kib-repo}blob/{branch}/x-pack/plugins/cloud[cloud] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/code[code] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/console_extensions[consoleExtensions] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/cross_cluster_replication/README.md[crossClusterReplication] - -You can run a local cluster and simulate a remote cluster within a single Kibana directory. - - -- {kib-repo}blob/{branch}/x-pack/plugins/dashboard_enhanced/README.md[dashboardEnhanced] - -Contains the enhancements to the OSS dashboard app. - - -- {kib-repo}blob/{branch}/x-pack/plugins/dashboard_mode/README.md[dashboardMode] - -The deprecated dashboard only mode. - - -- {kib-repo}blob/{branch}/x-pack/plugins/data_enhanced[dataEnhanced] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/discover_enhanced/README.md[discoverEnhanced] - -Contains the enhancements to the OSS discover app. - - -- {kib-repo}blob/{branch}/x-pack/plugins/embeddable_enhanced[embeddableEnhanced] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/encrypted_saved_objects/README.md[encryptedSavedObjects] - -The purpose of this plugin is to provide a way to encrypt/decrypt attributes on the custom Saved Objects that works with -security and spaces filtering as well as performing audit logging. - - -- {kib-repo}blob/{branch}/x-pack/plugins/enterprise_search/README.md[enterpriseSearch] - -This plugin's goal is to provide a Kibana user interface to the Enterprise Search solution's products (App Search and Workplace Search). In it's current MVP state, the plugin provides the following with the goal of gathering user feedback and raising product awareness: - - -- {kib-repo}blob/{branch}/x-pack/plugins/event_log/README.md[eventLog] - -The purpose of this plugin is to provide a way to persist a history of events -occuring in Kibana, initially just for the Make It Action project - alerts -and actions. - - -- {kib-repo}blob/{branch}/x-pack/plugins/features[features] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/file_upload[fileUpload] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/global_search/README.md[globalSearch] - -The GlobalSearch plugin provides an easy way to search for various objects, such as applications -or dashboards from the Kibana instance, from both server and client-side plugins - - -- {kib-repo}blob/{branch}/x-pack/plugins/global_search_bar/README.md[globalSearchBar] - -The GlobalSearchBar plugin provides a search interface for navigating Kibana. (It is the UI to the GlobalSearch plugin.) - - -- {kib-repo}blob/{branch}/x-pack/plugins/global_search_providers[globalSearchProviders] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/graph/README.md[graph] - -This is the main source folder of the Graph plugin. It contains all of the Kibana server and client source code. x-pack/test/functional/apps/graph contains additional functional tests. - - -- {kib-repo}blob/{branch}/x-pack/plugins/grokdebugger/README.md[grokdebugger] - -- {kib-repo}blob/{branch}/x-pack/plugins/index_lifecycle_management/README.md[indexLifecycleManagement] - -You can test that the Frozen badge, phase filtering, and lifecycle information is surfaced in -Index Management by running this series of requests in Console: - - -- {kib-repo}blob/{branch}/x-pack/plugins/index_management[indexManagement] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/infra/README.md[infra] - -This is the home of the infra plugin, which aims to provide a solution for -the infrastructure monitoring use-case within Kibana. - - -- {kib-repo}blob/{branch}/x-pack/plugins/ingest_manager/README.md[ingestManager] - -Fleet needs to have Elasticsearch API keys enabled, and also to have TLS enabled on kibana, (if you want to run Kibana without TLS you can provide the following config flag --xpack.ingestManager.fleet.tlsCheckDisabled=false) - - -- {kib-repo}blob/{branch}/x-pack/plugins/ingest_pipelines/README.md[ingestPipelines] - -The ingest_pipelines plugin provides Kibana support for Elasticsearch's ingest nodes. Please refer to the Elasticsearch documentation for more details. - - -- {kib-repo}blob/{branch}/x-pack/plugins/lens/readme.md[lens] - -Run all tests from the x-pack root directory - - -- {kib-repo}blob/{branch}/x-pack/plugins/license_management[licenseManagement] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/licensing/README.md[licensing] - -The licensing plugin retrieves license data from Elasticsearch at regular configurable intervals. - - -- {kib-repo}blob/{branch}/x-pack/plugins/lists/README.md[lists] - -README.md for developers working on the backend lists on how to get started -using the CURL scripts in the scripts folder. - - -- {kib-repo}blob/{branch}/x-pack/plugins/logstash[logstash] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/maps/README.md[maps] - -Visualize geo data from Elasticsearch or 3rd party geo-services. - - -- {kib-repo}blob/{branch}/x-pack/plugins/maps_legacy_licensing/README.md[mapsLegacyLicensing] - -This plugin provides access to the detailed tile map services from Elastic. - - -- {kib-repo}blob/{branch}/x-pack/plugins/ml[ml] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/monitoring[monitoring] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/observability/README.md[observability] - -This plugin provides shared components and services for use across observability solutions, as well as the observability landing page UI. - - -- {kib-repo}blob/{branch}/x-pack/plugins/oss_telemetry[ossTelemetry] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/painless_lab[painlessLab] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/remote_clusters[remoteClusters] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/reporting/README.md[reporting] - -An awesome Kibana reporting plugin - - -- {kib-repo}blob/{branch}/x-pack/plugins/rollup/README.md[rollup] - -Welcome to the Kibana rollup plugin! This plugin provides Kibana support for Elasticsearch's rollup feature. Please refer to the Elasticsearch documentation to understand rollup indices and how to create rollup jobs. - - -- {kib-repo}blob/{branch}/x-pack/plugins/searchprofiler[searchprofiler] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/security/README.md[security] - -See Configuring security in Kibana. - - -- {kib-repo}blob/{branch}/x-pack/plugins/security_solution/README.md[securitySolution] - -Welcome to the Kibana Security Solution plugin! This README will go over getting started with development and testing. - - -- {kib-repo}blob/{branch}/x-pack/plugins/snapshot_restore/README.md[snapshotRestore] - -or - - -- {kib-repo}blob/{branch}/x-pack/plugins/spaces[spaces] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/task_manager[taskManager] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/telemetry_collection_xpack/README.md[telemetryCollectionXpack] - -Gathers all usage collection, retrieving them from both: OSS and X-Pack plugins. - - -- {kib-repo}blob/{branch}/x-pack/plugins/transform[transform] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/translations[translations] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/triggers_actions_ui/README.md[triggers_actions_ui] - -The Kibana alerts and actions UI plugin provides a user interface for managing alerts and actions. -As a developer you can reuse and extend built-in alerts and actions UI functionality: - - -- {kib-repo}blob/{branch}/x-pack/plugins/ui_actions_enhanced/README.md[uiActionsEnhanced] - -- {kib-repo}blob/{branch}/x-pack/plugins/upgrade_assistant[upgradeAssistant] - -WARNING: Missing README. - - -- {kib-repo}blob/{branch}/x-pack/plugins/uptime/README.md[uptime] - -The purpose of this plugin is to provide users of Heartbeat more visibility of what's happening -in their infrastructure. - - -- {kib-repo}blob/{branch}/x-pack/plugins/watcher/README.md[watcher] - -This plugins adopts some conventions in addition to or in place of conventions in Kibana (at the time of the plugin's creation): - From 15e7623ecfced651200c0c412fbdb347e5f2982e Mon Sep 17 00:00:00 2001 From: Paul Tavares <56442535+paul-tavares@users.noreply.github.com> Date: Wed, 30 Sep 2020 16:07:58 -0400 Subject: [PATCH 046/142] [SECURITY_SOLUTION][ENDPOINT] Improve Endpoint Host data generator to also integrate with Ingest (#74305) * Endpoint generator connects host with a real policy and enrolls agent Co-authored-by: Paul Tavares Co-authored-by: kevinlog Co-authored-by: Candace Park --- .../src/kbn_client/kbn_client.ts | 4 +- .../common/endpoint/generate_data.ts | 24 +- .../common/endpoint/index_data.ts | 393 +++++++++++++++++- .../kbn_client_with_api_key_support.ts | 32 ++ .../endpoint/resolver_generator_script.ts | 91 ++-- 5 files changed, 489 insertions(+), 55 deletions(-) create mode 100644 x-pack/plugins/security_solution/scripts/endpoint/kbn_client_with_api_key_support.ts diff --git a/packages/kbn-dev-utils/src/kbn_client/kbn_client.ts b/packages/kbn-dev-utils/src/kbn_client/kbn_client.ts index 861ea0988692c..7184727fc53de 100644 --- a/packages/kbn-dev-utils/src/kbn_client/kbn_client.ts +++ b/packages/kbn-dev-utils/src/kbn_client/kbn_client.ts @@ -54,8 +54,8 @@ export class KbnClient { /** * Make a direct request to the Kibana server */ - async request(options: ReqOptions) { - return await this.requester.request(options); + async request(options: ReqOptions) { + return await this.requester.request(options); } resolveUrl(relativeUrl: string) { diff --git a/x-pack/plugins/security_solution/common/endpoint/generate_data.ts b/x-pack/plugins/security_solution/common/endpoint/generate_data.ts index abdbbf1986bcd..ec7a49da469fe 100644 --- a/x-pack/plugins/security_solution/common/endpoint/generate_data.ts +++ b/x-pack/plugins/security_solution/common/endpoint/generate_data.ts @@ -110,6 +110,12 @@ const Mac: OSFields[] = []; const OS: OSFields[] = [...Windows, ...Mac, ...Linux]; +const POLICY_RESPONSE_STATUSES: HostPolicyResponseActionStatus[] = [ + HostPolicyResponseActionStatus.success, + HostPolicyResponseActionStatus.failure, + HostPolicyResponseActionStatus.warning, +]; + const APPLIED_POLICIES: Array<{ name: string; id: string; @@ -125,6 +131,11 @@ const APPLIED_POLICIES: Array<{ id: 'C2A9093E-E289-4C0A-AA44-8C32A414FA7A', status: HostPolicyResponseActionStatus.success, }, + { + name: 'Detect Malware Only', + id: '47d7965d-6869-478b-bd9c-fb0d2bb3959f', + status: HostPolicyResponseActionStatus.success, + }, ]; const FILE_OPERATIONS: string[] = ['creation', 'open', 'rename', 'execution', 'deletion']; @@ -364,15 +375,12 @@ export class EndpointDocGenerator { } /** - * Creates new random policy id for the host to simulate new policy application + * Updates the current Host common record applied Policy to a different one from the list + * of random choices and gives it a random policy response status. */ - public updatePolicyId() { - this.commonInfo.Endpoint.policy.applied.id = this.randomChoice(APPLIED_POLICIES).id; - this.commonInfo.Endpoint.policy.applied.status = this.randomChoice([ - HostPolicyResponseActionStatus.success, - HostPolicyResponseActionStatus.failure, - HostPolicyResponseActionStatus.warning, - ]); + public updateHostPolicyData() { + this.commonInfo.Endpoint.policy.applied = this.randomChoice(APPLIED_POLICIES); + this.commonInfo.Endpoint.policy.applied.status = this.randomChoice(POLICY_RESPONSE_STATUSES); } private createHostData(): HostInfo { diff --git a/x-pack/plugins/security_solution/common/endpoint/index_data.ts b/x-pack/plugins/security_solution/common/endpoint/index_data.ts index b8c2fdbe65f1e..bf3d12f231c86 100644 --- a/x-pack/plugins/security_solution/common/endpoint/index_data.ts +++ b/x-pack/plugins/security_solution/common/endpoint/index_data.ts @@ -6,25 +6,66 @@ import { Client } from '@elastic/elasticsearch'; import seedrandom from 'seedrandom'; +import { KbnClient } from '@kbn/dev-utils'; +import { AxiosResponse } from 'axios'; import { EndpointDocGenerator, TreeOptions, Event } from './generate_data'; import { firstNonNullValue } from './models/ecs_safety_helpers'; +import { + CreateAgentPolicyRequest, + CreateAgentPolicyResponse, + CreatePackagePolicyRequest, + CreatePackagePolicyResponse, + GetPackagesResponse, + PostAgentEnrollRequest, + AGENT_API_ROUTES, + AGENT_POLICY_API_ROUTES, + EPM_API_ROUTES, + PACKAGE_POLICY_API_ROUTES, + ENROLLMENT_API_KEY_ROUTES, + GetEnrollmentAPIKeysResponse, + GetOneEnrollmentAPIKeyResponse, + PostAgentEnrollResponse, + PostAgentCheckinRequest, + PostAgentCheckinResponse, + PostAgentAcksResponse, + PostAgentAcksRequest, +} from '../../../ingest_manager/common'; +import { factory as policyConfigFactory } from './models/policy_config'; +import { HostMetadata } from './types'; +import { KbnClientWithApiKeySupport } from '../../scripts/endpoint/kbn_client_with_api_key_support'; export async function indexHostsAndAlerts( client: Client, + kbnClient: KbnClientWithApiKeySupport, seed: string, numHosts: number, numDocs: number, metadataIndex: string, - policyIndex: string, + policyResponseIndex: string, eventIndex: string, alertIndex: string, alertsPerHost: number, + fleet: boolean, options: TreeOptions = {} ) { const random = seedrandom(seed); + const epmEndpointPackage = await getEndpointPackageInfo(kbnClient); + // Keep a map of host applied policy ids (fake) to real ingest package configs (policy record) + const realPolicies: Record = {}; + for (let i = 0; i < numHosts; i++) { const generator = new EndpointDocGenerator(random); - await indexHostDocs(numDocs, client, metadataIndex, policyIndex, generator); + await indexHostDocs( + numDocs, + client, + kbnClient, + realPolicies, + epmEndpointPackage, + metadataIndex, + policyResponseIndex, + fleet, + generator + ); await indexAlerts(client, eventIndex, alertIndex, generator, alertsPerHost, options); } await client.indices.refresh({ @@ -43,22 +84,78 @@ function delay(ms: number) { async function indexHostDocs( numDocs: number, client: Client, + kbnClient: KbnClientWithApiKeySupport, + realPolicies: Record, + epmEndpointPackage: GetPackagesResponse['response'][0], metadataIndex: string, - policyIndex: string, + policyResponseIndex: string, + enrollFleet: boolean, generator: EndpointDocGenerator ) { const timeBetweenDocs = 6 * 3600 * 1000; // 6 hours between metadata documents const timestamp = new Date().getTime(); + let hostMetadata: HostMetadata; + let wasAgentEnrolled = false; + let enrolledAgent: undefined | PostAgentEnrollResponse['item']; + for (let j = 0; j < numDocs; j++) { generator.updateHostData(); - generator.updatePolicyId(); + generator.updateHostPolicyData(); + + hostMetadata = generator.generateHostMetadata(timestamp - timeBetweenDocs * (numDocs - j - 1)); + + if (enrollFleet) { + const { id: appliedPolicyId, name: appliedPolicyName } = hostMetadata.Endpoint.policy.applied; + + // If we don't yet have a "real" policy record, then create it now in ingest (package config) + if (!realPolicies[appliedPolicyId]) { + // eslint-disable-next-line require-atomic-updates + realPolicies[appliedPolicyId] = await createPolicy( + kbnClient, + appliedPolicyName, + epmEndpointPackage.version + ); + } + + // If we did not yet enroll an agent for this Host, do it now that we have good policy id + if (!wasAgentEnrolled) { + wasAgentEnrolled = true; + enrolledAgent = await fleetEnrollAgentForHost( + kbnClient, + hostMetadata!, + realPolicies[appliedPolicyId].policy_id + ); + } + // Update the Host metadata record with the ID of the "real" policy along with the enrolled agent id + hostMetadata = { + ...hostMetadata, + elastic: { + ...hostMetadata.elastic, + agent: { + ...hostMetadata.elastic.agent, + id: enrolledAgent?.id ?? hostMetadata.elastic.agent.id, + }, + }, + Endpoint: { + ...hostMetadata.Endpoint, + policy: { + ...hostMetadata.Endpoint.policy, + applied: { + ...hostMetadata.Endpoint.policy.applied, + id: realPolicies[appliedPolicyId].id, + }, + }, + }, + }; + } + await client.index({ index: metadataIndex, - body: generator.generateHostMetadata(timestamp - timeBetweenDocs * (numDocs - j - 1)), + body: hostMetadata, op_type: 'create', }); await client.index({ - index: policyIndex, + index: policyResponseIndex, body: generator.generatePolicyResponse(timestamp - timeBetweenDocs * (numDocs - j - 1)), op_type: 'create', }); @@ -98,3 +195,287 @@ async function indexAlerts( await client.bulk({ body, refresh: true }); } } + +const createPolicy = async ( + kbnClient: KbnClient, + policyName: string, + endpointPackageVersion: string +): Promise => { + // Create Agent Policy first + const newAgentPolicyData: CreateAgentPolicyRequest['body'] = { + name: `Policy for ${policyName}`, + description: '', + namespace: 'default', + }; + let agentPolicy; + try { + agentPolicy = (await kbnClient.request({ + path: AGENT_POLICY_API_ROUTES.CREATE_PATTERN, + method: 'POST', + body: newAgentPolicyData, + })) as AxiosResponse; + } catch (error) { + throw new Error(`create policy ${error}`); + } + + // Create Package Configuration + const newPackagePolicyData: CreatePackagePolicyRequest['body'] = { + name: policyName, + description: 'Protect the worlds data', + policy_id: agentPolicy.data.item.id, + enabled: true, + output_id: '', + inputs: [ + { + type: 'endpoint', + enabled: true, + streams: [], + config: { + policy: { + value: policyConfigFactory(), + }, + }, + }, + ], + namespace: 'default', + package: { + name: 'endpoint', + title: 'endpoint', + version: endpointPackageVersion, + }, + }; + const packagePolicy = (await kbnClient.request({ + path: PACKAGE_POLICY_API_ROUTES.CREATE_PATTERN, + method: 'POST', + body: newPackagePolicyData, + })) as AxiosResponse; + return packagePolicy.data.item; +}; + +const getEndpointPackageInfo = async ( + kbnClient: KbnClient +): Promise => { + const endpointPackage = ((await kbnClient.request({ + path: `${EPM_API_ROUTES.LIST_PATTERN}?category=security`, + method: 'GET', + })) as AxiosResponse).data.response.find( + (epmPackage) => epmPackage.name === 'endpoint' + ); + + if (!endpointPackage) { + throw new Error('EPM Endpoint package was not found!'); + } + + return endpointPackage; +}; + +const fleetEnrollAgentForHost = async ( + kbnClient: KbnClientWithApiKeySupport, + endpointHost: HostMetadata, + agentPolicyId: string +): Promise => { + // Get Enrollement key for host's applied policy + const enrollmentApiKey = await kbnClient + .request({ + path: ENROLLMENT_API_KEY_ROUTES.LIST_PATTERN, + method: 'GET', + query: { + kuery: `fleet-enrollment-api-keys.policy_id:"${agentPolicyId}"`, + }, + }) + .then((apiKeysResponse) => { + const apiKey = apiKeysResponse.data.list[0]; + + if (!apiKey) { + return Promise.reject( + new Error(`no API enrollment key found for agent policy id ${agentPolicyId}`) + ); + } + + return kbnClient + .request({ + path: ENROLLMENT_API_KEY_ROUTES.INFO_PATTERN.replace('{keyId}', apiKey.id), + method: 'GET', + }) + .catch((error) => { + // eslint-disable-next-line no-console + console.log('unable to retrieve enrollment api key for policy'); + return Promise.reject(error); + }); + }) + .then((apiKeyDetailsResponse) => { + return apiKeyDetailsResponse.data.item.api_key; + }) + .catch((error) => { + // eslint-disable-next-line no-console + console.error(error); + return ''; + }); + + if (enrollmentApiKey.length === 0) { + return; + } + + const fetchKibanaVersion = async () => { + const version = ((await kbnClient.request({ + path: '/api/status', + method: 'GET', + })) as AxiosResponse).data.version.number; + if (!version) { + // eslint-disable-next-line no-console + console.log('failed to retrieve kibana version'); + } + return version; + }; + + // Enroll an agent for the Host + const body: PostAgentEnrollRequest['body'] = { + type: 'PERMANENT', + metadata: { + local: { + elastic: { + agent: { + version: await fetchKibanaVersion(), + }, + }, + host: { + architecture: 'x86_64', + hostname: endpointHost.host, + name: endpointHost.host, + id: '1c032ec0-3a94-4d54-9ad2-c5610c0eaba4', + ip: ['fe80::703b:b9e6:887d:7f5/64', '10.0.2.15/24', '::1/128', '127.0.0.1/8'], + mac: ['08:00:27:d8:c5:c0'], + }, + os: { + family: 'windows', + kernel: '10.0.19041.388 (WinBuild.160101.0800)', + platform: 'windows', + version: '10.0', + name: 'Windows 10 Pro', + full: 'Windows 10 Pro(10.0)', + }, + }, + user_provided: { + dev_agent_version: '0.0.1', + region: 'us-east', + }, + }, + }; + + try { + // First enroll the agent + const res = await kbnClient.requestWithApiKey(AGENT_API_ROUTES.ENROLL_PATTERN, { + method: 'POST', + body: JSON.stringify(body), + headers: { + 'kbn-xsrf': 'xxx', + Authorization: `ApiKey ${enrollmentApiKey}`, + 'Content-Type': 'application/json', + }, + }); + + if (res) { + const enrollObj: PostAgentEnrollResponse = await res.json(); + if (!res.ok) { + // eslint-disable-next-line no-console + console.error('unable to enroll agent', enrollObj); + return; + } + // ------------------------------------------------ + // now check the agent in so that it can complete enrollment + const checkinBody: PostAgentCheckinRequest['body'] = { + events: [ + { + type: 'STATE', + subtype: 'RUNNING', + message: 'state changed from STOPPED to RUNNING', + timestamp: new Date().toISOString(), + payload: { + random: 'data', + state: 'RUNNING', + previous_state: 'STOPPED', + }, + agent_id: enrollObj.item.id, + }, + ], + }; + const checkinRes = await kbnClient + .requestWithApiKey( + AGENT_API_ROUTES.CHECKIN_PATTERN.replace('{agentId}', enrollObj.item.id), + { + method: 'POST', + body: JSON.stringify(checkinBody), + headers: { + 'kbn-xsrf': 'xxx', + Authorization: `ApiKey ${enrollObj.item.access_api_key}`, + 'Content-Type': 'application/json', + }, + } + ) + .catch((error) => { + return Promise.reject(error); + }); + + // Agent unenrolling? + if (checkinRes.status === 403) { + return; + } + + const checkinObj: PostAgentCheckinResponse = await checkinRes.json(); + if (!checkinRes.ok) { + // eslint-disable-next-line no-console + console.error( + `failed to checkin agent [${enrollObj.item.id}] for endpoint [${endpointHost.host.id}]` + ); + return enrollObj.item; + } + + // ------------------------------------------------ + // If we have an action to ack(), then do it now + if (checkinObj.actions.length) { + const ackActionBody: PostAgentAcksRequest['body'] = { + // @ts-ignore + events: checkinObj.actions.map((action) => { + return { + action_id: action.id, + type: 'ACTION_RESULT', + subtype: 'CONFIG', + timestamp: new Date().toISOString(), + agent_id: action.agent_id, + policy_id: agentPolicyId, + message: `endpoint generator: Endpoint Started`, + }; + }), + }; + const ackActionResp = await kbnClient.requestWithApiKey( + AGENT_API_ROUTES.ACKS_PATTERN.replace('{agentId}', enrollObj.item.id), + { + method: 'POST', + body: JSON.stringify(ackActionBody), + headers: { + 'kbn-xsrf': 'xxx', + Authorization: `ApiKey ${enrollObj.item.access_api_key}`, + 'Content-Type': 'application/json', + }, + } + ); + + const ackActionObj: PostAgentAcksResponse = await ackActionResp.json(); + if (!ackActionResp.ok) { + // eslint-disable-next-line no-console + console.error( + `failed to ACK Actions provided to agent [${enrollObj.item.id}] for endpoint [${endpointHost.host.id}]` + ); + // eslint-disable-next-line no-console + console.error(JSON.stringify(ackActionObj, null, 2)); + return enrollObj.item; + } + } + + return enrollObj.item; + } + } catch (error) { + // eslint-disable-next-line no-console + console.error(error); + } +}; diff --git a/x-pack/plugins/security_solution/scripts/endpoint/kbn_client_with_api_key_support.ts b/x-pack/plugins/security_solution/scripts/endpoint/kbn_client_with_api_key_support.ts new file mode 100644 index 0000000000000..526c0eb4a9055 --- /dev/null +++ b/x-pack/plugins/security_solution/scripts/endpoint/kbn_client_with_api_key_support.ts @@ -0,0 +1,32 @@ +/* + * 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 { KbnClient, ToolingLog } from '@kbn/dev-utils'; +import { KibanaConfig } from '@kbn/dev-utils/target/kbn_client/kbn_client_requester'; +import fetch, { RequestInit as FetchRequestInit } from 'node-fetch'; + +export class KbnClientWithApiKeySupport extends KbnClient { + private kibanaUrlNoAuth: string; + constructor(log: ToolingLog, kibanaConfig: KibanaConfig) { + super(log, kibanaConfig); + const kibanaUrl = this.resolveUrl(kibanaConfig.url); + const matches = kibanaUrl.match(/(https?:\/\/)(.*\:.*\@)(.*)/); + // strip auth from url + this.kibanaUrlNoAuth = + matches && matches.length >= 3 + ? matches[1] + matches[3].replace('/', '') + : kibanaUrl.replace('/', ''); + } + /** + * The fleet api to enroll and agent requires an api key when you mke the request, however KbnClient currently does not support sending an api key with the request. This function allows you to send an api key with a request. + */ + requestWithApiKey(path: string, init?: RequestInit | undefined): Promise { + return (fetch( + `${this.kibanaUrlNoAuth}${path}`, + init as FetchRequestInit + ) as unknown) as Promise; + } +} diff --git a/x-pack/plugins/security_solution/scripts/endpoint/resolver_generator_script.ts b/x-pack/plugins/security_solution/scripts/endpoint/resolver_generator_script.ts index cfe1c741ef3f1..1c2c4a857451b 100644 --- a/x-pack/plugins/security_solution/scripts/endpoint/resolver_generator_script.ts +++ b/x-pack/plugins/security_solution/scripts/endpoint/resolver_generator_script.ts @@ -4,14 +4,19 @@ * you may not use this file except in compliance with the Elastic License. */ /* eslint-disable no-console */ -import * as path from 'path'; import yargs from 'yargs'; -import * as url from 'url'; -import fetch from 'node-fetch'; import { Client, ClientOptions } from '@elastic/elasticsearch'; import { ResponseError } from '@elastic/elasticsearch/lib/errors'; +import { KbnClient, ToolingLog } from '@kbn/dev-utils'; +import { AxiosResponse } from 'axios'; import { indexHostsAndAlerts } from '../../common/endpoint/index_data'; import { ANCESTRY_LIMIT } from '../../common/endpoint/generate_data'; +import { FLEET_SETUP_API_ROUTES, SETUP_API_ROUTE } from '../../../ingest_manager/common/constants'; +import { + CreateFleetSetupResponse, + PostIngestSetupResponse, +} from '../../../ingest_manager/common/types/rest_spec'; +import { KbnClientWithApiKeySupport } from './kbn_client_with_api_key_support'; main(); @@ -35,42 +40,37 @@ async function deleteIndices(indices: string[], client: Client) { } } -async function doIngestSetup(kibanaURL: string) { +async function doIngestSetup(kbnClient: KbnClient) { + // Setup Ingest try { - const kbURL = new url.URL(kibanaURL); - // this includes the base path that is randomly generated by Kibana - const pathname = path.posix.join(path.posix.sep, kbURL.pathname, 'api/ingest_manager/setup'); - const connectURL = new url.URL(pathname, kbURL); - console.log('Calling ingest manager setup at ', connectURL.toString()); - const response = await fetch( - // wrap base url in URL class because the kibana basepath will get removed otherwise - connectURL.toString(), - { - method: 'POST', - headers: { - 'kbn-xsrf': 'blah', - }, - } - ); - if (response.status !== 200) { - console.log('POST response ', response); - console.log( - 'Request failed please check that you have the correct base path and credentials for the kibana URL' - ); - // eslint-disable-next-line no-process-exit - process.exit(1); + const setupResponse = (await kbnClient.request({ + path: SETUP_API_ROUTE, + method: 'POST', + })) as AxiosResponse; + + if (!setupResponse.data.isInitialized) { + console.error(setupResponse.data); + throw new Error('Initializing the ingest manager failed, existing'); } - const setupResponse = await response.json(); - console.log('Ingest setup response ', setupResponse); - if (!setupResponse?.isInitialized) { - console.log('Initializing the ingest manager failed, existing'); - // eslint-disable-next-line no-process-exit - process.exit(1); + } catch (error) { + console.error(error); + throw error; + } + + // Setup Fleet + try { + const setupResponse = (await kbnClient.request({ + path: FLEET_SETUP_API_ROUTES.CREATE_PATTERN, + method: 'POST', + })) as AxiosResponse; + + if (!setupResponse.data.isInitialized) { + console.error(setupResponse.data); + throw new Error('Initializing Fleet failed, existing'); } } catch (error) { - console.log(JSON.stringify(error, null, 2)); - // eslint-disable-next-line no-process-exit - process.exit(1); + console.error(error); + throw error; } } @@ -196,14 +196,25 @@ async function main() { type: 'boolean', default: false, }, + fleet: { + alias: 'f', + describe: 'enroll fleet agents for hosts', + type: 'boolean', + default: false, + }, }).argv; - await doIngestSetup(argv.kibana); + const kbnClient = new KbnClientWithApiKeySupport(new ToolingLog(), { url: argv.kibana }); - const clientOptions: ClientOptions = { - node: argv.node, - }; + try { + await doIngestSetup(kbnClient); + } catch (error) { + // eslint-disable-next-line no-process-exit + process.exit(1); + } + const clientOptions: ClientOptions = { node: argv.node }; const client = new Client(clientOptions); + if (argv.delete) { await deleteIndices( [argv.eventIndex, argv.metadataIndex, argv.policyIndex, argv.alertIndex], @@ -219,6 +230,7 @@ async function main() { const startTime = new Date().getTime(); await indexHostsAndAlerts( client, + kbnClient, seed, argv.numHosts, argv.numDocs, @@ -227,6 +239,7 @@ async function main() { argv.eventIndex, argv.alertIndex, argv.alertsPerHost, + argv.fleet, { ancestors: argv.ancestors, generations: argv.generations, From e41f4368f27ea2f3baa6fc3af89eca4a3c2aa606 Mon Sep 17 00:00:00 2001 From: Marshall Main <55718608+marshallmain@users.noreply.github.com> Date: Wed, 30 Sep 2020 16:17:16 -0400 Subject: [PATCH 047/142] [Security Solution][Detections] Add rule overrides for single event EQL rules (#78876) * Add buildRuleWithOverrides function for single event EQL queries * Disable rule overrides for all sequence signals Co-authored-by: Elastic Machine --- .../scripts/rules/queries/query_eql.json | 1 + .../signals/__mocks__/es_results.ts | 41 ++++ .../signals/build_bulk_body.test.ts | 2 +- .../signals/build_bulk_body.ts | 11 +- .../signals/build_rule.test.ts | 189 +++++++++++------- .../detection_engine/signals/build_rule.ts | 57 +++++- .../build_risk_score_from_mapping.test.ts | 2 +- .../mappings/build_risk_score_from_mapping.ts | 8 +- .../build_rule_name_from_mapping.test.ts | 2 +- .../mappings/build_rule_name_from_mapping.ts | 8 +- .../build_severity_from_mapping.test.ts | 6 +- .../mappings/build_severity_from_mapping.ts | 8 +- .../signals/signal_rule_alert_type.ts | 2 +- 13 files changed, 232 insertions(+), 105 deletions(-) diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/scripts/rules/queries/query_eql.json b/x-pack/plugins/security_solution/server/lib/detection_engine/scripts/rules/queries/query_eql.json index 598f2182002c1..a63444012addd 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/scripts/rules/queries/query_eql.json +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/scripts/rules/queries/query_eql.json @@ -25,6 +25,7 @@ "from": "now-300m", "severity": "high", "type": "eql", + "language": "eql", "threat": [ { "framework": "MITRE ATT&CK", diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/__mocks__/es_results.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/__mocks__/es_results.ts index b37bc7d0fab69..501cd1fa6ecfb 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/__mocks__/es_results.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/__mocks__/es_results.ts @@ -22,6 +22,7 @@ import { RuleTypeParams } from '../../types'; import { IRuleStatusAttributes } from '../../rules/types'; import { ruleStatusSavedObjectType } from '../../rules/saved_object_mappings'; import { getListArrayMock } from '../../../../../common/detection_engine/schemas/types/lists.mock'; +import { RulesSchema } from '../../../../../common/detection_engine/schemas/response'; export const sampleRuleAlertParams = ( maxSignals?: number | undefined, @@ -92,6 +93,46 @@ export const sampleRuleSO = (): SavedObject => { }; }; +export const expectedRule = (): RulesSchema => { + return { + actions: [], + author: ['Elastic'], + building_block_type: 'default', + id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', + rule_id: 'rule-1', + false_positives: [], + max_signals: 10000, + risk_score: 50, + risk_score_mapping: [], + output_index: '.siem-signals', + description: 'Detecting root and admin users', + from: 'now-6m', + immutable: false, + index: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + interval: '5m', + language: 'kuery', + license: 'Elastic License', + name: 'rule-name', + query: 'user.name: root or user.name: admin', + references: ['http://google.com'], + severity: 'high', + severity_mapping: [], + tags: ['some fake tag 1', 'some fake tag 2'], + threat: [], + type: 'query', + to: 'now', + note: '', + enabled: true, + created_by: 'sample user', + updated_by: 'sample user', + version: 1, + updated_at: '2020-03-27T22:55:59.577Z', + created_at: '2020-03-27T22:55:59.577Z', + throttle: 'no_actions', + exceptions_list: getListArrayMock(), + }; +}; + export const sampleDocNoSortIdNoVersion = (someUuid: string = sampleIdGuid): SignalSourceHit => ({ _index: 'myFakeSignalIndex', _type: 'doc', diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_bulk_body.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_bulk_body.test.ts index f45a408cd32b8..2f7dd22c0c78e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_bulk_body.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_bulk_body.test.ts @@ -546,7 +546,7 @@ describe('buildSignalFromEvent', () => { const ancestor = sampleDocWithAncestors().hits.hits[0]; delete ancestor._source.source; const ruleSO = sampleRuleSO(); - const signal = buildSignalFromEvent(ancestor, ruleSO); + const signal = buildSignalFromEvent(ancestor, ruleSO, true); // Timestamp will potentially always be different so remove it for the test // @ts-expect-error delete signal['@timestamp']; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_bulk_body.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_bulk_body.ts index 01a6b0e7aefad..f8632a85c77e9 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_bulk_body.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_bulk_body.ts @@ -13,7 +13,7 @@ import { BaseSignalHit, SignalSource, } from './types'; -import { buildRule, buildRuleWithoutOverrides } from './build_rule'; +import { buildRule, buildRuleWithoutOverrides, buildRuleWithOverrides } from './build_rule'; import { additionalSignalFields, buildSignal } from './build_signal'; import { buildEventTypeSignal } from './build_event_type_signal'; import { RuleAlertAction } from '../../../../common/detection_engine/types'; @@ -97,7 +97,7 @@ export const buildSignalGroupFromSequence = ( ): BaseSignalHit[] => { const wrappedBuildingBlocks = wrapBuildingBlocks( sequence.events.map((event) => { - const signal = buildSignalFromEvent(event, ruleSO); + const signal = buildSignalFromEvent(event, ruleSO, false); signal.signal.rule.building_block_type = 'default'; return signal; }), @@ -147,9 +147,12 @@ export const buildSignalFromSequence = ( export const buildSignalFromEvent = ( event: BaseSignalHit, - ruleSO: SavedObject + ruleSO: SavedObject, + applyOverrides: boolean ): SignalHit => { - const rule = buildRuleWithoutOverrides(ruleSO); + const rule = applyOverrides + ? buildRuleWithOverrides(ruleSO, event._source) + : buildRuleWithoutOverrides(ruleSO); const signal = { ...buildSignal([event], rule), ...additionalSignalFields(event), diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_rule.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_rule.test.ts index 62e5854037d9e..6bc9489f65870 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_rule.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_rule.test.ts @@ -4,12 +4,19 @@ * you may not use this file except in compliance with the Elastic License. */ -import { buildRule, removeInternalTagsFromRule, buildRuleWithoutOverrides } from './build_rule'; +import { + buildRule, + removeInternalTagsFromRule, + buildRuleWithOverrides, + buildRuleWithoutOverrides, +} from './build_rule'; import { sampleDocNoSortId, sampleRuleAlertParams, sampleRuleGuid, sampleRuleSO, + expectedRule, + sampleDocSeverity, } from './__mocks__/es_results'; import { RulesSchema } from '../../../../common/detection_engine/schemas/response/rules_schema'; import { getListArrayMock } from '../../../../common/detection_engine/schemas/types/lists.mock'; @@ -312,43 +319,7 @@ describe('buildRuleWithoutOverrides', () => { test('builds a rule using rule SO', () => { const ruleSO = sampleRuleSO(); const rule = buildRuleWithoutOverrides(ruleSO); - expect(rule).toEqual({ - actions: [], - author: ['Elastic'], - building_block_type: 'default', - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', - rule_id: 'rule-1', - false_positives: [], - max_signals: 10000, - risk_score: 50, - risk_score_mapping: [], - output_index: '.siem-signals', - description: 'Detecting root and admin users', - from: 'now-6m', - immutable: false, - index: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - interval: '5m', - language: 'kuery', - license: 'Elastic License', - name: 'rule-name', - query: 'user.name: root or user.name: admin', - references: ['http://google.com'], - severity: 'high', - severity_mapping: [], - tags: ['some fake tag 1', 'some fake tag 2'], - threat: [], - type: 'query', - to: 'now', - note: '', - enabled: true, - created_by: 'sample user', - updated_by: 'sample user', - version: 1, - updated_at: ruleSO.updated_at ?? '', - created_at: ruleSO.attributes.createdAt, - throttle: 'no_actions', - exceptions_list: getListArrayMock(), - }); + expect(rule).toEqual(expectedRule()); }); test('builds a rule using rule SO and removes internal tags', () => { @@ -360,42 +331,110 @@ describe('buildRuleWithoutOverrides', () => { `${INTERNAL_IMMUTABLE_KEY}:true`, ]; const rule = buildRuleWithoutOverrides(ruleSO); - expect(rule).toEqual({ - actions: [], - author: ['Elastic'], - building_block_type: 'default', - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', - rule_id: 'rule-1', - false_positives: [], - max_signals: 10000, - risk_score: 50, - risk_score_mapping: [], - output_index: '.siem-signals', - description: 'Detecting root and admin users', - from: 'now-6m', - immutable: false, - index: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - interval: '5m', - language: 'kuery', - license: 'Elastic License', - name: 'rule-name', - query: 'user.name: root or user.name: admin', - references: ['http://google.com'], - severity: 'high', - severity_mapping: [], - tags: ['some fake tag 1', 'some fake tag 2'], - threat: [], - type: 'query', - to: 'now', - note: '', - enabled: true, - created_by: 'sample user', - updated_by: 'sample user', - version: 1, - updated_at: ruleSO.updated_at ?? '', - created_at: ruleSO.attributes.createdAt, - throttle: 'no_actions', - exceptions_list: getListArrayMock(), - }); + expect(rule).toEqual(expectedRule()); + }); +}); + +describe('buildRuleWithOverrides', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + test('it builds a rule as expected with filters present', () => { + const ruleSO = sampleRuleSO(); + ruleSO.attributes.params.filters = [ + { + query: 'host.name: Rebecca', + }, + { + query: 'host.name: Evan', + }, + { + query: 'host.name: Braden', + }, + ]; + const rule = buildRuleWithOverrides(ruleSO, sampleDocNoSortId()._source); + const expected: RulesSchema = { + ...expectedRule(), + filters: ruleSO.attributes.params.filters, + }; + expect(rule).toEqual(expected); + }); + + test('it builds a rule and removes internal tags', () => { + const ruleSO = sampleRuleSO(); + ruleSO.attributes.tags = [ + 'some fake tag 1', + 'some fake tag 2', + `${INTERNAL_RULE_ID_KEY}:rule-1`, + `${INTERNAL_IMMUTABLE_KEY}:true`, + ]; + const rule = buildRuleWithOverrides(ruleSO, sampleDocNoSortId()._source); + expect(rule).toEqual(expectedRule()); + }); + + test('it applies rule name override in buildRule', () => { + const ruleSO = sampleRuleSO(); + ruleSO.attributes.params.ruleNameOverride = 'someKey'; + const rule = buildRuleWithOverrides(ruleSO, sampleDocNoSortId()._source); + const expected = { + ...expectedRule(), + name: 'someValue', + rule_name_override: 'someKey', + meta: { + ruleNameOverridden: true, + }, + }; + expect(rule).toEqual(expected); + }); + + test('it applies risk score override in buildRule', () => { + const newRiskScore = 79; + const ruleSO = sampleRuleSO(); + ruleSO.attributes.params.riskScoreMapping = [ + { + field: 'new_risk_score', + // value and risk_score aren't used for anything but are required in the schema + value: '', + operator: 'equals', + risk_score: undefined, + }, + ]; + const doc = sampleDocNoSortId(); + doc._source.new_risk_score = newRiskScore; + const rule = buildRuleWithOverrides(ruleSO, doc._source); + const expected = { + ...expectedRule(), + risk_score: newRiskScore, + risk_score_mapping: ruleSO.attributes.params.riskScoreMapping, + meta: { + riskScoreOverridden: true, + }, + }; + expect(rule).toEqual(expected); + }); + + test('it applies severity override in buildRule', () => { + const eventSeverity = '42'; + const ruleSO = sampleRuleSO(); + ruleSO.attributes.params.severityMapping = [ + { + field: 'event.severity', + value: eventSeverity, + operator: 'equals', + severity: 'critical', + }, + ]; + const doc = sampleDocSeverity(Number(eventSeverity)); + const rule = buildRuleWithOverrides(ruleSO, doc._source); + const expected = { + ...expectedRule(), + severity: 'critical', + severity_mapping: ruleSO.attributes.params.severityMapping, + meta: { + severityOverrideField: 'event.severity', + }, + }; + expect(rule).toEqual(expected); }); }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_rule.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_rule.ts index e5370735333bc..344f705c4af24 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_rule.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_rule.ts @@ -9,7 +9,7 @@ import { RulesSchema } from '../../../../common/detection_engine/schemas/respons import { RuleAlertAction } from '../../../../common/detection_engine/types'; import { RuleTypeParams } from '../types'; import { buildRiskScoreFromMapping } from './mappings/build_risk_score_from_mapping'; -import { SignalSourceHit, RuleAlertAttributes } from './types'; +import { SignalSourceHit, RuleAlertAttributes, SignalSource } from './types'; import { buildSeverityFromMapping } from './mappings/build_severity_from_mapping'; import { buildRuleNameFromMapping } from './mappings/build_rule_name_from_mapping'; import { INTERNAL_IDENTIFIER } from '../../../../common/constants'; @@ -46,19 +46,19 @@ export const buildRule = ({ throttle, }: BuildRuleParams): RulesSchema => { const { riskScore, riskScoreMeta } = buildRiskScoreFromMapping({ - doc, + eventSource: doc._source, riskScore: ruleParams.riskScore, riskScoreMapping: ruleParams.riskScoreMapping, }); const { severity, severityMeta } = buildSeverityFromMapping({ - doc, + eventSource: doc._source, severity: ruleParams.severity, severityMapping: ruleParams.severityMapping, }); const { ruleName, ruleNameMeta } = buildRuleNameFromMapping({ - doc, + eventSource: doc._source, ruleName: name, ruleNameMapping: ruleParams.ruleNameOverride, }); @@ -132,7 +132,7 @@ export const buildRuleWithoutOverrides = ( meta: ruleParams.meta, max_signals: ruleParams.maxSignals, risk_score: ruleParams.riskScore, - risk_score_mapping: ruleParams.riskScoreMapping ?? [], + risk_score_mapping: [], output_index: ruleParams.outputIndex, description: ruleParams.description, note: ruleParams.note, @@ -145,9 +145,8 @@ export const buildRuleWithoutOverrides = ( name: ruleSO.attributes.name, query: ruleParams.query, references: ruleParams.references, - rule_name_override: ruleParams.ruleNameOverride, severity: ruleParams.severity, - severity_mapping: ruleParams.severityMapping ?? [], + severity_mapping: [], tags: ruleSO.attributes.tags, type: ruleParams.type, to: ruleParams.to, @@ -184,3 +183,47 @@ export const removeInternalTagsFromRule = (rule: RulesSchema): RulesSchema => { return ruleWithoutInternalTags; } }; + +export const buildRuleWithOverrides = ( + ruleSO: SavedObject, + eventSource: SignalSource +): RulesSchema => { + const ruleWithoutOverrides = buildRuleWithoutOverrides(ruleSO); + return applyRuleOverrides(ruleWithoutOverrides, eventSource, ruleSO.attributes.params); +}; + +export const applyRuleOverrides = ( + rule: RulesSchema, + eventSource: SignalSource, + ruleParams: RuleTypeParams +): RulesSchema => { + const { riskScore, riskScoreMeta } = buildRiskScoreFromMapping({ + eventSource, + riskScore: ruleParams.riskScore, + riskScoreMapping: ruleParams.riskScoreMapping, + }); + + const { severity, severityMeta } = buildSeverityFromMapping({ + eventSource, + severity: ruleParams.severity, + severityMapping: ruleParams.severityMapping, + }); + + const { ruleName, ruleNameMeta } = buildRuleNameFromMapping({ + eventSource, + ruleName: rule.name, + ruleNameMapping: ruleParams.ruleNameOverride, + }); + + const meta = { ...ruleParams.meta, ...riskScoreMeta, ...severityMeta, ...ruleNameMeta }; + return { + ...rule, + risk_score: riskScore, + risk_score_mapping: ruleParams.riskScoreMapping ?? [], + severity, + severity_mapping: ruleParams.severityMapping ?? [], + name: ruleName, + rule_name_override: ruleParams.ruleNameOverride, + meta: Object.keys(meta).length > 0 ? meta : undefined, + }; +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_risk_score_from_mapping.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_risk_score_from_mapping.test.ts index e1d9c7f7c8a5c..ff50c2634dfd1 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_risk_score_from_mapping.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_risk_score_from_mapping.test.ts @@ -14,7 +14,7 @@ describe('buildRiskScoreFromMapping', () => { test('risk score defaults to provided if mapping is incomplete', () => { const riskScore = buildRiskScoreFromMapping({ - doc: sampleDocNoSortId(), + eventSource: sampleDocNoSortId()._source, riskScore: 57, riskScoreMapping: undefined, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_risk_score_from_mapping.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_risk_score_from_mapping.ts index 888642f77af60..c358339e66cd9 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_risk_score_from_mapping.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_risk_score_from_mapping.ts @@ -9,10 +9,10 @@ import { RiskScore, RiskScoreMappingOrUndefined, } from '../../../../../common/detection_engine/schemas/common/schemas'; -import { SignalSourceHit } from '../types'; +import { SignalSource } from '../types'; interface BuildRiskScoreFromMappingProps { - doc: SignalSourceHit; + eventSource: SignalSource; riskScore: RiskScore; riskScoreMapping: RiskScoreMappingOrUndefined; } @@ -23,7 +23,7 @@ interface BuildRiskScoreFromMappingReturn { } export const buildRiskScoreFromMapping = ({ - doc, + eventSource, riskScore, riskScoreMapping, }: BuildRiskScoreFromMappingProps): BuildRiskScoreFromMappingReturn => { @@ -31,7 +31,7 @@ export const buildRiskScoreFromMapping = ({ if (riskScoreMapping != null && riskScoreMapping.length > 0) { const mappedField = riskScoreMapping[0].field; // TODO: Expand by verifying fieldType from index via doc._index - const mappedValue = get(mappedField, doc._source); + const mappedValue = get(mappedField, eventSource); if ( typeof mappedValue === 'number' && Number.isSafeInteger(mappedValue) && diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_rule_name_from_mapping.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_rule_name_from_mapping.test.ts index b509020646d1b..b88a628b9735c 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_rule_name_from_mapping.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_rule_name_from_mapping.test.ts @@ -14,7 +14,7 @@ describe('buildRuleNameFromMapping', () => { test('rule name defaults to provided if mapping is incomplete', () => { const ruleName = buildRuleNameFromMapping({ - doc: sampleDocNoSortId(), + eventSource: sampleDocNoSortId()._source, ruleName: 'rule-name', ruleNameMapping: 'message', }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_rule_name_from_mapping.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_rule_name_from_mapping.ts index af540ed1454ad..c12baa556a7ff 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_rule_name_from_mapping.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_rule_name_from_mapping.ts @@ -10,10 +10,10 @@ import { Name, RuleNameOverrideOrUndefined, } from '../../../../../common/detection_engine/schemas/common/schemas'; -import { SignalSourceHit } from '../types'; +import { SignalSource } from '../types'; interface BuildRuleNameFromMappingProps { - doc: SignalSourceHit; + eventSource: SignalSource; ruleName: Name; ruleNameMapping: RuleNameOverrideOrUndefined; } @@ -24,13 +24,13 @@ interface BuildRuleNameFromMappingReturn { } export const buildRuleNameFromMapping = ({ - doc, + eventSource, ruleName, ruleNameMapping, }: BuildRuleNameFromMappingProps): BuildRuleNameFromMappingReturn => { if (ruleNameMapping != null) { // TODO: Expand by verifying fieldType from index via doc._index - const mappedValue = get(ruleNameMapping, doc._source); + const mappedValue = get(ruleNameMapping, eventSource); if (t.string.is(mappedValue)) { return { ruleName: mappedValue, ruleNameMeta: { ruleNameOverridden: true } }; } diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_severity_from_mapping.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_severity_from_mapping.test.ts index fb1d51364ab39..430564cd985c2 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_severity_from_mapping.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_severity_from_mapping.test.ts @@ -14,7 +14,7 @@ describe('buildSeverityFromMapping', () => { test('severity defaults to provided if mapping is undefined', () => { const severity = buildSeverityFromMapping({ - doc: sampleDocNoSortId(), + eventSource: sampleDocNoSortId()._source, severity: 'low', severityMapping: undefined, }); @@ -24,7 +24,7 @@ describe('buildSeverityFromMapping', () => { test('severity is overridden to highest matched mapping', () => { const severity = buildSeverityFromMapping({ - doc: sampleDocSeverity(23), + eventSource: sampleDocSeverity(23)._source, severity: 'low', severityMapping: [ { field: 'event.severity', operator: 'equals', value: '23', severity: 'critical' }, @@ -44,7 +44,7 @@ describe('buildSeverityFromMapping', () => { test('severity is overridden when field is event.severity and source value is number', () => { const severity = buildSeverityFromMapping({ - doc: sampleDocSeverity(23), + eventSource: sampleDocSeverity(23)._source, severity: 'low', severityMapping: [ { field: 'event.severity', operator: 'equals', value: '13', severity: 'low' }, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_severity_from_mapping.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_severity_from_mapping.ts index c0a62a2cc887d..52ebd67f257af 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_severity_from_mapping.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/mappings/build_severity_from_mapping.ts @@ -11,10 +11,10 @@ import { severity as SeverityIOTS, SeverityMappingOrUndefined, } from '../../../../../common/detection_engine/schemas/common/schemas'; -import { SignalSourceHit } from '../types'; +import { SignalSource } from '../types'; interface BuildSeverityFromMappingProps { - doc: SignalSourceHit; + eventSource: SignalSource; severity: Severity; severityMapping: SeverityMappingOrUndefined; } @@ -32,7 +32,7 @@ const severitySortMapping = { }; export const buildSeverityFromMapping = ({ - doc, + eventSource, severity, severityMapping, }: BuildSeverityFromMappingProps): BuildSeverityFromMappingReturn => { @@ -45,7 +45,7 @@ export const buildSeverityFromMapping = ({ ); severityMappingSorted.forEach((mapping) => { - const docValue = get(mapping.field, doc._source); + const docValue = get(mapping.field, eventSource); // TODO: Expand by verifying fieldType from index via doc._index // Till then, explicit parsing of event.severity (long) to number. If not ECS, this could be // another datatype, but until we can lookup datatype we must assume number for the Elastic diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts index a3b37270e50b1..2eee1c18cd4c4 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts @@ -455,7 +455,7 @@ export const signalRulesAlertType = ({ ); } else if (response.hits.events !== undefined) { newSignals = response.hits.events.map((event) => - wrapSignal(buildSignalFromEvent(event, savedObject), outputIndex) + wrapSignal(buildSignalFromEvent(event, savedObject, true), outputIndex) ); } else { throw new Error( From 935f6349a1d96abaca602652e6d212cba0064ab9 Mon Sep 17 00:00:00 2001 From: Caroline Horn <549577+cchaos@users.noreply.github.com> Date: Wed, 30 Sep 2020 16:22:09 -0400 Subject: [PATCH 048/142] [Search bar] Remove duplicate `popoverProps` (#79025) --- .../plugins/global_search_bar/public/components/search_bar.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/x-pack/plugins/global_search_bar/public/components/search_bar.tsx b/x-pack/plugins/global_search_bar/public/components/search_bar.tsx index 40c34053ab949..0dde28db0436d 100644 --- a/x-pack/plugins/global_search_bar/public/components/search_bar.tsx +++ b/x-pack/plugins/global_search_bar/public/components/search_bar.tsx @@ -141,9 +141,6 @@ export function SearchBar({ globalSearch, navigateToUrl }: Props) { onChange={onChange} options={options} popoverButtonBreakpoints={['xs', 's']} - popoverProps={{ - repositionOnScroll: true, - }} popoverButton={ Date: Wed, 30 Sep 2020 22:28:05 +0200 Subject: [PATCH 049/142] [Security] Alert Telemetry for the Security app (#77200) This adds a `TelemetryEventsSender` component that can be used to publish Endpoint alerts to our Telemetry service. The alerts are filtered by a set of allowed fields (for PII) and batched in a queue to be sent once per minute. There is a cap of 100 alerts per minute to be sent. The component respects the telemetry opt-in status and enriches the alerts with the cluster ID and name. The Detection Engine is slightly modified to send endpoint telemetry events via the `TelemetryEventsSender`. Only the "custom query" rule type is modified because that's the only one that can create Endpoint Alerts. Co-authored-by: Elastic Machine Co-authored-by: Garrett Spong --- x-pack/plugins/security_solution/kibana.json | 3 +- .../signals/search_after_bulk_create.test.ts | 11 + .../signals/search_after_bulk_create.ts | 10 + .../signals/send_telemetry_events.test.ts | 78 ++++ .../signals/send_telemetry_events.ts | 46 +++ .../signals/signal_rule_alert_type.test.ts | 2 + .../signals/signal_rule_alert_type.ts | 5 + .../threat_mapping/create_threat_signal.ts | 2 + .../threat_mapping/create_threat_signals.ts | 2 + .../signals/threat_mapping/types.ts | 3 + .../lib/detection_engine/signals/types.ts | 2 + .../server/lib/telemetry/sender.test.ts | 241 ++++++++++++ .../server/lib/telemetry/sender.ts | 368 ++++++++++++++++++ .../security_solution/server/plugin.ts | 15 + 14 files changed, 787 insertions(+), 1 deletion(-) create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/signals/send_telemetry_events.test.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/signals/send_telemetry_events.ts create mode 100644 x-pack/plugins/security_solution/server/lib/telemetry/sender.test.ts create mode 100644 x-pack/plugins/security_solution/server/lib/telemetry/sender.ts diff --git a/x-pack/plugins/security_solution/kibana.json b/x-pack/plugins/security_solution/kibana.json index 7b5c3b5337c02..7bd76838c7559 100644 --- a/x-pack/plugins/security_solution/kibana.json +++ b/x-pack/plugins/security_solution/kibana.json @@ -27,7 +27,8 @@ "spaces", "usageCollection", "lists", - "home" + "home", + "telemetry" ], "server": true, "ui": true, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/search_after_bulk_create.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/search_after_bulk_create.test.ts index 68c6a51b4e6f6..c82c1fe969ee3 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/search_after_bulk_create.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/search_after_bulk_create.test.ts @@ -130,6 +130,7 @@ describe('searchAfterAndBulkCreate', () => { exceptionsList: [exceptionItem], services: mockService, logger: mockLogger, + eventsTelemetry: undefined, id: sampleRuleGuid, inputIndexPattern, signalsIndex: DEFAULT_SIGNALS_INDEX, @@ -255,6 +256,7 @@ describe('searchAfterAndBulkCreate', () => { exceptionsList: [exceptionItem], services: mockService, logger: mockLogger, + eventsTelemetry: undefined, id: sampleRuleGuid, inputIndexPattern, signalsIndex: DEFAULT_SIGNALS_INDEX, @@ -334,6 +336,7 @@ describe('searchAfterAndBulkCreate', () => { exceptionsList: [exceptionItem], services: mockService, logger: mockLogger, + eventsTelemetry: undefined, id: sampleRuleGuid, inputIndexPattern, signalsIndex: DEFAULT_SIGNALS_INDEX, @@ -394,6 +397,7 @@ describe('searchAfterAndBulkCreate', () => { exceptionsList: [exceptionItem], services: mockService, logger: mockLogger, + eventsTelemetry: undefined, id: sampleRuleGuid, inputIndexPattern, signalsIndex: DEFAULT_SIGNALS_INDEX, @@ -452,6 +456,7 @@ describe('searchAfterAndBulkCreate', () => { exceptionsList: [exceptionItem], services: mockService, logger: mockLogger, + eventsTelemetry: undefined, id: sampleRuleGuid, inputIndexPattern, signalsIndex: DEFAULT_SIGNALS_INDEX, @@ -535,6 +540,7 @@ describe('searchAfterAndBulkCreate', () => { exceptionsList: [exceptionItem], services: mockService, logger: mockLogger, + eventsTelemetry: undefined, id: sampleRuleGuid, inputIndexPattern, signalsIndex: DEFAULT_SIGNALS_INDEX, @@ -615,6 +621,7 @@ describe('searchAfterAndBulkCreate', () => { exceptionsList: [], services: mockService, logger: mockLogger, + eventsTelemetry: undefined, id: sampleRuleGuid, inputIndexPattern, signalsIndex: DEFAULT_SIGNALS_INDEX, @@ -664,6 +671,7 @@ describe('searchAfterAndBulkCreate', () => { ruleParams: sampleParams, services: mockService, logger: mockLogger, + eventsTelemetry: undefined, id: sampleRuleGuid, inputIndexPattern, signalsIndex: DEFAULT_SIGNALS_INDEX, @@ -719,6 +727,7 @@ describe('searchAfterAndBulkCreate', () => { ruleParams: sampleParams, services: mockService, logger: mockLogger, + eventsTelemetry: undefined, id: sampleRuleGuid, inputIndexPattern, signalsIndex: DEFAULT_SIGNALS_INDEX, @@ -790,6 +799,7 @@ describe('searchAfterAndBulkCreate', () => { ruleParams: sampleParams, services: mockService, logger: mockLogger, + eventsTelemetry: undefined, id: sampleRuleGuid, inputIndexPattern, signalsIndex: DEFAULT_SIGNALS_INDEX, @@ -898,6 +908,7 @@ describe('searchAfterAndBulkCreate', () => { exceptionsList: [], services: mockService, logger: mockLogger, + eventsTelemetry: undefined, id: sampleRuleGuid, inputIndexPattern, signalsIndex: DEFAULT_SIGNALS_INDEX, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/search_after_bulk_create.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/search_after_bulk_create.ts index 2df180582a0ac..8fe55d97b569c 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/search_after_bulk_create.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/search_after_bulk_create.ts @@ -7,6 +7,7 @@ import { singleSearchAfter } from './single_search_after'; import { singleBulkCreate } from './single_bulk_create'; import { filterEventsAgainstList } from './filter_events_with_list'; +import { sendAlertTelemetryEvents } from './send_telemetry_events'; import { createSearchAfterReturnType, createSearchAfterReturnTypeFromResponse, @@ -25,6 +26,7 @@ export const searchAfterAndBulkCreate = async ({ services, listClient, logger, + eventsTelemetry, id, inputIndexPattern, signalsIndex, @@ -188,6 +190,14 @@ export const searchAfterAndBulkCreate = async ({ logger.debug( buildRuleMessage(`filteredEvents.hits.hits: ${filteredEvents.hits.hits.length}`) ); + + sendAlertTelemetryEvents( + logger, + eventsTelemetry, + filteredEvents, + ruleParams, + buildRuleMessage + ); } // we are guaranteed to have searchResult hits at this point diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/send_telemetry_events.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/send_telemetry_events.test.ts new file mode 100644 index 0000000000000..2a531998ff8a6 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/send_telemetry_events.test.ts @@ -0,0 +1,78 @@ +/* + * 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 { selectEvents } from './send_telemetry_events'; + +describe('sendAlertTelemetry', () => { + it('selectEvents', () => { + const filteredEvents = { + took: 0, + timed_out: false, + _shards: { + total: 1, + successful: 1, + failed: 0, + skipped: 0, + }, + hits: { + total: 2, + max_score: 0, + hits: [ + { + _index: 'x', + _type: 'x', + _id: 'x', + _score: 0, + _source: { + '@timestamp': 'x', + key1: 'hello', + data_stream: { + dataset: 'endpoint.events', + }, + }, + }, + { + _index: 'x', + _type: 'x', + _id: 'x', + _score: 0, + _source: { + '@timestamp': 'x', + key2: 'hello', + data_stream: { + dataset: 'endpoint.alerts', + other: 'x', + }, + }, + }, + { + _index: 'x', + _type: 'x', + _id: 'x', + _score: 0, + _source: { + '@timestamp': 'x', + key3: 'hello', + data_stream: {}, + }, + }, + ], + }, + }; + + const sources = selectEvents(filteredEvents); + expect(sources).toStrictEqual([ + { + '@timestamp': 'x', + key2: 'hello', + data_stream: { + dataset: 'endpoint.alerts', + other: 'x', + }, + }, + ]); + }); +}); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/send_telemetry_events.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/send_telemetry_events.ts new file mode 100644 index 0000000000000..5963d31bda8a6 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/send_telemetry_events.ts @@ -0,0 +1,46 @@ +/* + * 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 { TelemetryEventsSender, TelemetryEvent } from '../../telemetry/sender'; +import { RuleTypeParams } from '../types'; +import { BuildRuleMessage } from './rule_messages'; +import { SignalSearchResponse, SignalSource } from './types'; +import { Logger } from '../../../../../../../src/core/server'; + +export interface SearchResultWithSource { + _source: SignalSource; +} + +export function selectEvents(filteredEvents: SignalSearchResponse): TelemetryEvent[] { + const sources = filteredEvents.hits.hits.map(function ( + obj: SearchResultWithSource + ): TelemetryEvent { + return obj._source; + }); + + // Filter out non-endpoint alerts + return sources.filter((obj: TelemetryEvent) => obj.data_stream?.dataset === 'endpoint.alerts'); +} + +export function sendAlertTelemetryEvents( + logger: Logger, + eventsTelemetry: TelemetryEventsSender | undefined, + filteredEvents: SignalSearchResponse, + ruleParams: RuleTypeParams, + buildRuleMessage: BuildRuleMessage +) { + if (eventsTelemetry === undefined) { + return; + } + + const sources = selectEvents(filteredEvents); + + try { + eventsTelemetry.queueTelemetryEvents(sources); + } catch (exc) { + logger.error(buildRuleMessage(`[-] queing telemetry events failed ${exc}`)); + } +} diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.test.ts index 382acf2f38245..415abc9d995fb 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.test.ts @@ -138,6 +138,7 @@ describe('rules_notification_alert_type', () => { alert = signalRulesAlertType({ logger, + eventsTelemetry: undefined, version, ml: mlMock, lists: listMock.createSetup(), @@ -344,6 +345,7 @@ describe('rules_notification_alert_type', () => { payload = getPayload(ruleAlert, alertServices) as jest.Mocked; alert = signalRulesAlertType({ logger, + eventsTelemetry: undefined, version, ml: undefined, lists: undefined, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts index 2eee1c18cd4c4..95348808bb58f 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts @@ -56,6 +56,7 @@ import { ruleStatusServiceFactory } from './rule_status_service'; import { buildRuleMessageFactory } from './rule_messages'; import { ruleStatusSavedObjectsClientFactory } from './rule_status_saved_objects_client'; import { getNotificationResultsLink } from '../notifications/utils'; +import { TelemetryEventsSender } from '../../telemetry/sender'; import { buildEqlSearchRequest } from '../../../../common/detection_engine/get_query_filter'; import { bulkInsertSignals } from './single_bulk_create'; import { buildSignalFromEvent, buildSignalGroupFromSequence } from './build_bulk_body'; @@ -63,11 +64,13 @@ import { createThreatSignals } from './threat_mapping/create_threat_signals'; export const signalRulesAlertType = ({ logger, + eventsTelemetry, version, ml, lists, }: { logger: Logger; + eventsTelemetry: TelemetryEventsSender | undefined; version: string; ml: SetupPlugins['ml']; lists: SetupPlugins['lists'] | undefined; @@ -369,6 +372,7 @@ export const signalRulesAlertType = ({ previousStartedAt, listClient, logger, + eventsTelemetry, alertId, outputIndex, params, @@ -409,6 +413,7 @@ export const signalRulesAlertType = ({ ruleParams: params, services, logger, + eventsTelemetry, id: alertId, inputIndexPattern: inputIndex, signalsIndex: outputIndex, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signal.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signal.ts index a6d4a2ba58ddd..560e7ad7fe2cb 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signal.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signal.ts @@ -28,6 +28,7 @@ export const createThreatSignal = async ({ previousStartedAt, listClient, logger, + eventsTelemetry, alertId, outputIndex, params, @@ -77,6 +78,7 @@ export const createThreatSignal = async ({ ruleParams: params, services, logger, + eventsTelemetry, id: alertId, inputIndexPattern: inputIndex, signalsIndex: outputIndex, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signals.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signals.ts index f416ae6703b66..f44c7a9684457 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signals.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signals.ts @@ -24,6 +24,7 @@ export const createThreatSignals = async ({ previousStartedAt, listClient, logger, + eventsTelemetry, alertId, outputIndex, params, @@ -79,6 +80,7 @@ export const createThreatSignals = async ({ previousStartedAt, listClient, logger, + eventsTelemetry, alertId, outputIndex, params, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts index d63f2d2b3b6aa..7cd6e5196ea68 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts @@ -21,6 +21,7 @@ import { AlertServices } from '../../../../../../alerts/server'; import { ExceptionListItemSchema } from '../../../../../../lists/common/schemas'; import { ILegacyScopedClusterClient, Logger } from '../../../../../../../../src/core/server'; import { RuleAlertAction } from '../../../../../common/detection_engine/types'; +import { TelemetryEventsSender } from '../../../telemetry/sender'; import { BuildRuleMessage } from '../rule_messages'; import { SearchAfterAndBulkCreateReturnType } from '../types'; @@ -38,6 +39,7 @@ export interface CreateThreatSignalsOptions { previousStartedAt: Date | null; listClient: ListClient; logger: Logger; + eventsTelemetry: TelemetryEventsSender | undefined; alertId: string; outputIndex: string; params: RuleTypeParams; @@ -73,6 +75,7 @@ export interface CreateThreatSignalOptions { previousStartedAt: Date | null; listClient: ListClient; logger: Logger; + eventsTelemetry: TelemetryEventsSender | undefined; alertId: string; outputIndex: string; params: RuleTypeParams; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/types.ts index 2f6ed0c1e3a8e..d9ca3dce54af3 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/types.ts @@ -21,6 +21,7 @@ import { ListClient } from '../../../../../lists/server'; import { Logger } from '../../../../../../../src/core/server'; import { ExceptionListItemSchema } from '../../../../../lists/common/schemas'; import { BuildRuleMessage } from './rule_messages'; +import { TelemetryEventsSender } from '../../telemetry/sender'; // used for gap detection code // eslint-disable-next-line @typescript-eslint/naming-convention @@ -211,6 +212,7 @@ export interface SearchAfterAndBulkCreateParams { listClient: ListClient; exceptionsList: ExceptionListItemSchema[]; logger: Logger; + eventsTelemetry: TelemetryEventsSender | undefined; id: string; inputIndexPattern: string[]; signalsIndex: string; diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/sender.test.ts b/x-pack/plugins/security_solution/server/lib/telemetry/sender.test.ts new file mode 100644 index 0000000000000..1ebdcb6b9d3f4 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/telemetry/sender.test.ts @@ -0,0 +1,241 @@ +/* + * 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 dot-notation */ +import { TelemetryEventsSender, copyAllowlistedFields, getV3UrlFromV2 } from './sender'; +import { loggingSystemMock } from 'src/core/server/mocks'; +import { URL } from 'url'; + +describe('TelemetryEventsSender', () => { + let logger: ReturnType; + + beforeEach(() => { + logger = loggingSystemMock.createLogger(); + }); + + describe('processEvents', () => { + it('returns empty array when empty array is passed', () => { + const sender = new TelemetryEventsSender(logger); + const result = sender.processEvents([]); + expect(result).toStrictEqual([]); + }); + + it('applies the allowlist', () => { + const sender = new TelemetryEventsSender(logger); + const input = [ + { + event: { + kind: 'alert', + }, + agent: { + name: 'test', + }, + file: { + size: 3, + path: 'X', + test: 'me', + another: 'nope', + Ext: { + code_signature: { + key1: 'X', + key2: 'Y', + }, + malware_classification: { + key1: 'X', + }, + something_else: 'nope', + }, + }, + host: { + os: { + name: 'windows', + }, + something_else: 'nope', + }, + }, + ]; + + const result = sender.processEvents(input); + expect(result).toStrictEqual([ + { + event: { + kind: 'alert', + }, + agent: { + name: 'test', + }, + file: { + size: 3, + path: 'X', + Ext: { + code_signature: { + key1: 'X', + key2: 'Y', + }, + malware_classification: { + key1: 'X', + }, + }, + }, + host: { + os: { + name: 'windows', + }, + }, + }, + ]); + }); + }); + + describe('queueTelemetryEvents', () => { + it('queues two events', () => { + const sender = new TelemetryEventsSender(logger); + sender.queueTelemetryEvents([{ 'event.kind': '1' }, { 'event.kind': '2' }]); + expect(sender['queue'].length).toBe(2); + }); + + it('queues more than maxQueueSize events', () => { + const sender = new TelemetryEventsSender(logger); + sender['maxQueueSize'] = 5; + sender.queueTelemetryEvents([{ 'event.kind': '1' }, { 'event.kind': '2' }]); + sender.queueTelemetryEvents([{ 'event.kind': '3' }, { 'event.kind': '4' }]); + sender.queueTelemetryEvents([{ 'event.kind': '5' }, { 'event.kind': '6' }]); + sender.queueTelemetryEvents([{ 'event.kind': '7' }, { 'event.kind': '8' }]); + expect(sender['queue'].length).toBe(5); + }); + + it('empties the queue when sending', async () => { + const sender = new TelemetryEventsSender(logger); + sender['sendEvents'] = jest.fn(); + sender['telemetryStart'] = { + getIsOptedIn: jest.fn(async () => true), + }; + sender['telemetrySetup'] = { + getTelemetryUrl: jest.fn(async () => new URL('https://telemetry.elastic.co')), + }; + sender['fetchClusterInfo'] = jest.fn(async () => { + return { + cluster_name: 'test', + cluster_uuid: 'test-uuid', + }; + }); + + sender.queueTelemetryEvents([{ 'event.kind': '1' }, { 'event.kind': '2' }]); + expect(sender['queue'].length).toBe(2); + await sender['sendIfDue'](); + expect(sender['queue'].length).toBe(0); + expect(sender['sendEvents']).toBeCalledTimes(1); + sender.queueTelemetryEvents([{ 'event.kind': '3' }, { 'event.kind': '4' }]); + sender.queueTelemetryEvents([{ 'event.kind': '5' }, { 'event.kind': '6' }]); + expect(sender['queue'].length).toBe(4); + await sender['sendIfDue'](); + expect(sender['queue'].length).toBe(0); + expect(sender['sendEvents']).toBeCalledTimes(2); + }); + + it("shouldn't send when telemetry is disabled", async () => { + const sender = new TelemetryEventsSender(logger); + sender['sendEvents'] = jest.fn(); + const telemetryStart = { + getIsOptedIn: jest.fn(async () => false), + }; + sender['telemetryStart'] = telemetryStart; + + sender.queueTelemetryEvents([{ 'event.kind': '1' }, { 'event.kind': '2' }]); + expect(sender['queue'].length).toBe(2); + await sender['sendIfDue'](); + + expect(sender['queue'].length).toBe(0); + expect(sender['sendEvents']).toBeCalledTimes(0); + }); + }); +}); + +describe('allowlistEventFields', () => { + const allowlist = { + a: true, + b: true, + c: { + d: true, + }, + }; + + it('filters top level', () => { + const event = { + a: 'a', + a1: 'a1', + b: 'b', + b1: 'b1', + }; + expect(copyAllowlistedFields(allowlist, event)).toStrictEqual({ + a: 'a', + b: 'b', + }); + }); + + it('filters nested', () => { + const event = { + a: { + a1: 'a1', + }, + a1: 'a1', + b: { + b1: 'b1', + }, + b1: 'b1', + c: { + d: 'd', + e: 'e', + f: 'f', + }, + }; + expect(copyAllowlistedFields(allowlist, event)).toStrictEqual({ + a: { + a1: 'a1', + }, + b: { + b1: 'b1', + }, + c: { + d: 'd', + }, + }); + }); + + it("doesn't create empty objects", () => { + const event = { + a: 'a', + b: 'b', + c: { + e: 'e', + }, + }; + expect(copyAllowlistedFields(allowlist, event)).toStrictEqual({ + a: 'a', + b: 'b', + }); + }); +}); + +describe('getV3UrlFromV2', () => { + it('should return prod url', () => { + expect(getV3UrlFromV2('https://telemetry.elastic.co/xpack/v2/send', 'alerts-endpoint')).toBe( + 'https://telemetry.elastic.co/v3/send/alerts-endpoint' + ); + }); + + it('should return staging url', () => { + expect( + getV3UrlFromV2('https://telemetry-staging.elastic.co/xpack/v2/send', 'alerts-endpoint') + ).toBe('https://telemetry-staging.elastic.co/v3-dev/send/alerts-endpoint'); + }); + + it('should support ports and auth', () => { + expect( + getV3UrlFromV2('http://user:pass@myproxy.local:1337/xpack/v2/send', 'alerts-endpoint') + ).toBe('http://user:pass@myproxy.local:1337/v3/send/alerts-endpoint'); + }); +}); diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/sender.ts b/x-pack/plugins/security_solution/server/lib/telemetry/sender.ts new file mode 100644 index 0000000000000..acee75abddcd9 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/telemetry/sender.ts @@ -0,0 +1,368 @@ +/* + * 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 { cloneDeep } from 'lodash'; +import axios from 'axios'; +import { LegacyAPICaller } from 'kibana/server'; +import { URL } from 'url'; +import { Logger, CoreStart } from '../../../../../../src/core/server'; +import { transformDataToNdjson } from '../../utils/read_stream/create_stream_from_ndjson'; +import { + TelemetryPluginStart, + TelemetryPluginSetup, +} from '../../../../../../src/plugins/telemetry/server'; + +export type SearchTypes = + | string + | string[] + | number + | number[] + | boolean + | boolean[] + | object + | object[] + | undefined; + +export interface TelemetryEvent { + [key: string]: SearchTypes; + '@timestamp'?: string; + data_stream?: { + [key: string]: SearchTypes; + dataset?: string; + }; + cluster_name?: string; + cluster_uuid?: string; + file?: { + [key: string]: SearchTypes; + Ext?: { + [key: string]: SearchTypes; + }; + }; + license?: ESLicense; +} + +export class TelemetryEventsSender { + private readonly initialCheckDelayMs = 10 * 1000; + private readonly checkIntervalMs = 60 * 1000; + private readonly logger: Logger; + private core?: CoreStart; + private maxQueueSize = 100; + private telemetryStart?: TelemetryPluginStart; + private telemetrySetup?: TelemetryPluginSetup; + private intervalId?: NodeJS.Timeout; + private isSending = false; + private queue: TelemetryEvent[] = []; + private isOptedIn?: boolean = true; // Assume true until the first check + + constructor(logger: Logger) { + this.logger = logger.get('telemetry_events'); + } + + public setup(telemetrySetup?: TelemetryPluginSetup) { + this.telemetrySetup = telemetrySetup; + } + + public start(core?: CoreStart, telemetryStart?: TelemetryPluginStart) { + this.telemetryStart = telemetryStart; + this.core = core; + + this.logger.debug(`Starting task`); + setTimeout(() => { + this.sendIfDue(); + this.intervalId = setInterval(() => this.sendIfDue(), this.checkIntervalMs); + }, this.initialCheckDelayMs); + } + + public stop() { + if (this.intervalId) { + clearInterval(this.intervalId); + } + } + + public queueTelemetryEvents(events: TelemetryEvent[]) { + const qlength = this.queue.length; + + if (events.length === 0) { + return; + } + + this.logger.debug(`Queue events`); + + if (qlength >= this.maxQueueSize) { + // we're full already + return; + } + + if (events.length > this.maxQueueSize - qlength) { + this.queue.push(...this.processEvents(events.slice(0, this.maxQueueSize - qlength))); + } else { + this.queue.push(...this.processEvents(events)); + } + } + + public processEvents(events: TelemetryEvent[]): TelemetryEvent[] { + return events.map(function (obj: TelemetryEvent): TelemetryEvent { + return copyAllowlistedFields(allowlistEventFields, obj); + }); + } + + private async sendIfDue() { + if (this.isSending) { + return; + } + + if (this.queue.length === 0) { + return; + } + + try { + this.isSending = true; + + // Checking opt-in status is relatively expensive (calls a saved-object), so + // we only check it when we have things to send. + this.isOptedIn = await this.telemetryStart?.getIsOptedIn(); + if (!this.isOptedIn) { + this.logger.debug(`Telemetry is not opted-in.`); + this.queue = []; + this.isSending = false; + return; + } + + const [telemetryUrl, clusterInfo, licenseInfo] = await Promise.all([ + this.fetchTelemetryUrl(), + this.fetchClusterInfo(), + this.fetchLicenseInfo(), + ]); + + this.logger.debug(`Telemetry URL: ${telemetryUrl}`); + this.logger.debug( + `cluster_uuid: ${clusterInfo?.cluster_uuid} cluster_name: ${clusterInfo?.cluster_name}` + ); + + const toSend: TelemetryEvent[] = cloneDeep(this.queue).map((event) => ({ + ...event, + ...(licenseInfo ? { license: this.copyLicenseFields(licenseInfo) } : {}), + cluster_uuid: clusterInfo.cluster_uuid, + cluster_name: clusterInfo.cluster_name, + })); + this.queue = []; + + await this.sendEvents(toSend, telemetryUrl, clusterInfo.cluster_uuid, licenseInfo?.uid); + } catch (err) { + this.logger.warn(`Error sending telemetry events data: ${err}`); + this.queue = []; + } + this.isSending = false; + } + + private async fetchClusterInfo(): Promise { + if (!this.core) { + throw Error("Couldn't fetch cluster info because core is not available"); + } + const callCluster = this.core.elasticsearch.legacy.client.callAsInternalUser; + return getClusterInfo(callCluster); + } + + private async fetchTelemetryUrl(): Promise { + const telemetryUrl = await this.telemetrySetup?.getTelemetryUrl(); + if (!telemetryUrl) { + throw Error("Couldn't get telemetry URL"); + } + return getV3UrlFromV2(telemetryUrl.toString(), 'alerts-endpoint'); + } + + private async fetchLicenseInfo(): Promise { + if (!this.core) { + return undefined; + } + try { + const callCluster = this.core.elasticsearch.legacy.client.callAsInternalUser; + const ret = await getLicense(callCluster, true); + return ret.license; + } catch (err) { + this.logger.warn(`Error retrieving license: ${err}`); + return undefined; + } + } + + private copyLicenseFields(lic: ESLicense) { + return { + uid: lic.uid, + status: lic.status, + type: lic.type, + ...(lic.issued_to ? { issued_to: lic.issued_to } : {}), + ...(lic.issuer ? { issuer: lic.issuer } : {}), + }; + } + + private async sendEvents( + events: unknown[], + telemetryUrl: string, + clusterUuid: string, + licenseId: string | undefined + ) { + // this.logger.debug(`Sending events: ${JSON.stringify(events, null, 2)}`); + const ndjson = transformDataToNdjson(events); + // this.logger.debug(`NDJSON: ${ndjson}`); + + try { + const resp = await axios.post(telemetryUrl, ndjson, { + headers: { + 'Content-Type': 'application/x-ndjson', + 'X-Elastic-Cluster-ID': clusterUuid, + ...(licenseId ? { 'X-Elastic-License-ID': licenseId } : {}), + 'X-Elastic-Telemetry': '1', // TODO: no longer needed? + }, + }); + this.logger.debug(`Events sent!. Response: ${resp.status} ${JSON.stringify(resp.data)}`); + } catch (err) { + this.logger.warn( + `Error sending events: ${err.response.status} ${JSON.stringify(err.response.data)}` + ); + } + } +} + +// For the Allowlist definition. +interface AllowlistFields { + [key: string]: boolean | AllowlistFields; +} + +// Allow list for the data we include in the events. True means that it is deep-cloned +// blindly. Object contents means that we only copy the fields that appear explicitly in +// the sub-object. +const allowlistEventFields: AllowlistFields = { + '@timestamp': true, + agent: true, + Endpoint: true, + ecs: true, + elastic: true, + event: true, + file: { + name: true, + path: true, + size: true, + created: true, + accessed: true, + mtime: true, + directory: true, + hash: true, + Ext: { + code_signature: true, + malware_classification: true, + }, + }, + host: { + os: true, + }, + process: { + name: true, + executable: true, + command_line: true, + hash: true, + Ext: { + code_signature: true, + }, + parent: { + name: true, + executable: true, + command_line: true, + hash: true, + Ext: { + code_signature: true, + }, + }, + }, +}; + +export function copyAllowlistedFields( + allowlist: AllowlistFields, + event: TelemetryEvent +): TelemetryEvent { + return Object.entries(allowlist).reduce((newEvent, [allowKey, allowValue]) => { + const eventValue = event[allowKey]; + if (eventValue) { + if (allowValue === true) { + return { ...newEvent, [allowKey]: eventValue }; + } else if (typeof allowValue === 'object' && typeof eventValue === 'object') { + const values = copyAllowlistedFields(allowValue, eventValue as TelemetryEvent); + return { + ...newEvent, + ...(Object.keys(values).length > 0 ? { [allowKey]: values } : {}), + }; + } + } + return newEvent; + }, {}); +} + +// Forms URLs like: +// https://telemetry.elastic.co/v3/send/my-channel-name or +// https://telemetry-staging.elastic.co/v3-dev/send/my-channel-name +export function getV3UrlFromV2(v2url: string, channel: string): string { + const url = new URL(v2url); + if (!url.hostname.includes('staging')) { + url.pathname = `/v3/send/${channel}`; + } else { + url.pathname = `/v3-dev/send/${channel}`; + } + return url.toString(); +} + +// For getting cluster info. Copied from telemetry_collection/get_cluster_info.ts +export interface ESClusterInfo { + cluster_uuid: string; + cluster_name: string; + version?: { + number: string; + build_flavor: string; + build_type: string; + build_hash: string; + build_date: string; + build_snapshot?: boolean; + lucene_version: string; + minimum_wire_compatibility_version: string; + minimum_index_compatibility_version: string; + }; +} + +/** + * Get the cluster info from the connected cluster. + * + * This is the equivalent to GET / + * + * @param {function} callCluster The callWithInternalUser handler (exposed for testing) + */ +function getClusterInfo(callCluster: LegacyAPICaller) { + return callCluster('info'); +} + +// From https://www.elastic.co/guide/en/elasticsearch/reference/current/get-license.html +export interface ESLicense { + status: string; + uid: string; + type: string; + issue_date?: string; + issue_date_in_millis?: number; + expiry_date?: string; + expirty_date_in_millis?: number; + max_nodes?: number; + issued_to?: string; + issuer?: string; + start_date_in_millis?: number; +} + +function getLicense(callCluster: LegacyAPICaller, local: boolean) { + return callCluster<{ license: ESLicense }>('transport.request', { + method: 'GET', + path: '/_license', + query: { + local, + // For versions >= 7.6 and < 8.0, this flag is needed otherwise 'platinum' is returned for 'enterprise' license. + accept_enterprise: 'true', + }, + }); +} diff --git a/x-pack/plugins/security_solution/server/plugin.ts b/x-pack/plugins/security_solution/server/plugin.ts index 22dbd623930c5..177978c888ebe 100644 --- a/x-pack/plugins/security_solution/server/plugin.ts +++ b/x-pack/plugins/security_solution/server/plugin.ts @@ -64,6 +64,11 @@ import { registerTrustedAppsRoutes } from './endpoint/routes/trusted_apps'; import { securitySolutionSearchStrategyProvider } from './search_strategy/security_solution'; import { securitySolutionIndexFieldsProvider } from './search_strategy/index_fields'; import { securitySolutionTimelineSearchStrategyProvider } from './search_strategy/timeline'; +import { TelemetryEventsSender } from './lib/telemetry/sender'; +import { + TelemetryPluginStart, + TelemetryPluginSetup, +} from '../../../../src/plugins/telemetry/server'; export interface SetupPlugins { alerts: AlertingSetup; @@ -77,12 +82,14 @@ export interface SetupPlugins { spaces?: SpacesSetup; taskManager?: TaskManagerSetupContract; usageCollection?: UsageCollectionSetup; + telemetry?: TelemetryPluginSetup; } export interface StartPlugins { data: DataPluginStart; ingestManager?: IngestManagerStartContract; taskManager?: TaskManagerStartContract; + telemetry?: TelemetryPluginStart; } // eslint-disable-next-line @typescript-eslint/no-empty-interface @@ -107,6 +114,7 @@ export class Plugin implements IPlugin({ max: 3, maxAge: 1000 * 60 * 5 }); + this.telemetryEventsSender = new TelemetryEventsSender(this.logger); this.logger.debug('plugin initialized'); } @@ -241,6 +250,7 @@ export class Plugin implements IPlugin Date: Wed, 30 Sep 2020 13:32:10 -0700 Subject: [PATCH 050/142] Fixes for the Ticket 78375 (#79004) --- .../apps/endpoint/resolver.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/x-pack/test/security_solution_endpoint/apps/endpoint/resolver.ts b/x-pack/test/security_solution_endpoint/apps/endpoint/resolver.ts index 3e9726bf40073..13b76f7738321 100644 --- a/x-pack/test/security_solution_endpoint/apps/endpoint/resolver.ts +++ b/x-pack/test/security_solution_endpoint/apps/endpoint/resolver.ts @@ -12,9 +12,9 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { const testSubjects = getService('testSubjects'); const esArchiver = getService('esArchiver'); const queryBar = getService('queryBar'); + const browser = getService('browser'); - // FLAKY: https://github.com/elastic/kibana/issues/78375 - describe.skip('Endpoint Event Resolver', function () { + describe('Endpoint Event Resolver', function () { before(async () => { await esArchiver.load('endpoint/resolver_tree', { useCreate: true }); await pageObjects.hosts.navigateToSecurityHostsPage(); @@ -23,9 +23,11 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await pageObjects.timePicker.setAbsoluteRange(fromTime, toTime); await queryBar.setQuery('event.dataset : endpoint.events.file'); await queryBar.submitQuery(); - await (await testSubjects.find('draggable-content-host.name')).click(); + await browser.refresh(); + await browser.setWindowSize(1800, 1200); + await testSubjects.click('draggable-content-host.name'); await testSubjects.existOrFail('header-page-title'); - await (await testSubjects.find('navigation-events')).click(); + await testSubjects.click('navigation-events'); await testSubjects.existOrFail('events-viewer-panel'); await testSubjects.exists('investigate-in-resolver-button', { timeout: 4000 }); await (await testSubjects.findAll('investigate-in-resolver-button'))[0].click(); From 2377d12e7da4cf3f58bf4de8244ec2dc1c8f79dc Mon Sep 17 00:00:00 2001 From: Kevin Logan <56395104+kevinlog@users.noreply.github.com> Date: Wed, 30 Sep 2020 17:44:16 -0400 Subject: [PATCH 051/142] [SECURITY_SOLUTION] unskip tests after fixing Kibana and package (#78954) --- .../endpoint/metadata/destination_index/data.json | 6 +++--- .../apis/epm/install_remove_assets.ts | 7 +++---- .../apis/epm/update_assets.ts | 3 +-- .../0.1.0/elasticsearch/transform/test/default.json | 2 +- x-pack/test/ingest_manager_api_integration/config.ts | 2 +- .../apps/endpoint/endpoint_list.ts | 12 +++++------- .../apis/artifacts/index.ts | 3 +-- .../apis/metadata.ts | 3 +-- 8 files changed, 16 insertions(+), 22 deletions(-) diff --git a/x-pack/test/functional/es_archives/endpoint/metadata/destination_index/data.json b/x-pack/test/functional/es_archives/endpoint/metadata/destination_index/data.json index b19e5e2cbf1d7..ef840d454a763 100644 --- a/x-pack/test/functional/es_archives/endpoint/metadata/destination_index/data.json +++ b/x-pack/test/functional/es_archives/endpoint/metadata/destination_index/data.json @@ -2,7 +2,7 @@ "type": "doc", "value": { "id": "M92ScEJT9M9QusfIi3hpEb0AAAAAAAAA", - "index": "metrics-endpoint.metadata_current-default", + "index": "metrics-endpoint.metadata_current_default", "source": { "HostDetails": { "@timestamp": 1579881969541, @@ -75,7 +75,7 @@ "type": "doc", "value": { "id": "OU3RgCJaNnR90byeDEHutp8AAAAAAAAA", - "index": "metrics-endpoint.metadata_current-default", + "index": "metrics-endpoint.metadata_current_default", "source": { "HostDetails": { "@timestamp": 1579881969541, @@ -151,7 +151,7 @@ "type": "doc", "value": { "id": "YjqDCEuI6JmLeLOSyZx_NhMAAAAAAAAA", - "index": "metrics-endpoint.metadata_current-default", + "index": "metrics-endpoint.metadata_current_default", "source": { "HostDetails": { "@timestamp": 1579881969541, diff --git a/x-pack/test/ingest_manager_api_integration/apis/epm/install_remove_assets.ts b/x-pack/test/ingest_manager_api_integration/apis/epm/install_remove_assets.ts index a067501766873..d33d0445d1cd6 100644 --- a/x-pack/test/ingest_manager_api_integration/apis/epm/install_remove_assets.ts +++ b/x-pack/test/ingest_manager_api_integration/apis/epm/install_remove_assets.ts @@ -29,8 +29,7 @@ export default function (providerContext: FtrProviderContext) { .send({ force: true }); }; - // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/72102 - describe.skip('installs and uninstalls all assets', async () => { + describe('installs and uninstalls all assets', async () => { describe('installs all assets when installing a package for the first time', async () => { skipIfNoDockerRegistry(providerContext); before(async () => { @@ -88,7 +87,7 @@ export default function (providerContext: FtrProviderContext) { it('should have installed the transform components', async function () { const res = await es.transport.request({ method: 'GET', - path: `/_transform/${pkgName}-test-default-${pkgVersion}`, + path: `/_transform/${pkgName}.test-default-${pkgVersion}`, }); expect(res.statusCode).equal(200); }); @@ -170,7 +169,7 @@ export default function (providerContext: FtrProviderContext) { type: 'index_template', }, { - id: 'logs-all_assets.test_logs-default-0.1.0', + id: 'all_assets.test-default-0.1.0', type: 'transform', }, ], diff --git a/x-pack/test/ingest_manager_api_integration/apis/epm/update_assets.ts b/x-pack/test/ingest_manager_api_integration/apis/epm/update_assets.ts index 8203b4d183871..9af27f5f98558 100644 --- a/x-pack/test/ingest_manager_api_integration/apis/epm/update_assets.ts +++ b/x-pack/test/ingest_manager_api_integration/apis/epm/update_assets.ts @@ -32,8 +32,7 @@ export default function (providerContext: FtrProviderContext) { .send({ force: true }); }; - // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/72102 - describe.skip('updates all assets when updating a package to a different version', async () => { + describe('updates all assets when updating a package to a different version', async () => { skipIfNoDockerRegistry(providerContext); before(async () => { await installPackage(pkgKey); diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/elasticsearch/transform/test/default.json b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/elasticsearch/transform/test/default.json index 27f75af131eed..eddc6bc0c304a 100644 --- a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/elasticsearch/transform/test/default.json +++ b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/elasticsearch/transform/test/default.json @@ -3,7 +3,7 @@ "index": "logs-all_assets.test_log-default*" }, "dest": { - "index": "logs-all_assets.test_log_current-default" + "index": "logs-all_assets.test_log_current_default" }, "pivot": { "group_by": { diff --git a/x-pack/test/ingest_manager_api_integration/config.ts b/x-pack/test/ingest_manager_api_integration/config.ts index 94fbee0593d3e..862ef732cb8b4 100644 --- a/x-pack/test/ingest_manager_api_integration/config.ts +++ b/x-pack/test/ingest_manager_api_integration/config.ts @@ -12,7 +12,7 @@ import { defineDockerServersConfig } from '@kbn/test'; // Docker image to use for Ingest Manager API integration tests. // This hash comes from the commit hash here: https://github.com/elastic/package-storage/commit export const dockerImage = - 'docker.elastic.co/package-registry/distribution:5e0e12ce1bc2cb0c2f67f2e07d11b9a6043bcf25'; + 'docker.elastic.co/package-registry/distribution:518a65a993ab7e9c77b1d8d20cd6f847921d04ec'; export default async function ({ readConfigFile }: FtrConfigProviderContext) { const xPackAPITestsConfig = await readConfigFile(require.resolve('../api_integration/config.ts')); diff --git a/x-pack/test/security_solution_endpoint/apps/endpoint/endpoint_list.ts b/x-pack/test/security_solution_endpoint/apps/endpoint/endpoint_list.ts index 569378df5930a..e81851238882c 100644 --- a/x-pack/test/security_solution_endpoint/apps/endpoint/endpoint_list.ts +++ b/x-pack/test/security_solution_endpoint/apps/endpoint/endpoint_list.ts @@ -64,8 +64,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { ], ]; - // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/72102 - describe.skip('endpoint list', function () { + describe('endpoint list', function () { this.tags('ciGroup7'); const sleep = (ms = 100) => new Promise((resolve) => setTimeout(resolve, ms)); @@ -85,8 +84,8 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }); it('finds data after load and polling', async () => { - await esArchiver.load('endpoint/metadata/api_feature', { useCreate: true }); - await pageObjects.endpoint.waitForTableToHaveData('endpointListTable', 100000); + await esArchiver.load('endpoint/metadata/destination_index', { useCreate: true }); + await pageObjects.endpoint.waitForTableToHaveData('endpointListTable', 1100); const tableData = await pageObjects.endpointPageUtils.tableData('endpointListTable'); expect(tableData).to.eql(expectedData); }); @@ -94,8 +93,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { describe('when there is data,', () => { before(async () => { - await esArchiver.load('endpoint/metadata/api_feature', { useCreate: true }); - await sleep(100000); + await esArchiver.load('endpoint/metadata/destination_index', { useCreate: true }); await pageObjects.endpoint.navigateToEndpointList(); }); after(async () => { @@ -212,7 +210,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { describe('displays the correct table data for the kql queries', () => { before(async () => { - await esArchiver.load('endpoint/metadata/api_feature', { useCreate: true }); + await esArchiver.load('endpoint/metadata/destination_index', { useCreate: true }); await pageObjects.endpoint.navigateToEndpointList(); }); after(async () => { diff --git a/x-pack/test/security_solution_endpoint_api_int/apis/artifacts/index.ts b/x-pack/test/security_solution_endpoint_api_int/apis/artifacts/index.ts index 5a4053ee6f0a9..17a4182fe9371 100644 --- a/x-pack/test/security_solution_endpoint_api_int/apis/artifacts/index.ts +++ b/x-pack/test/security_solution_endpoint_api_int/apis/artifacts/index.ts @@ -18,8 +18,7 @@ export default function (providerContext: FtrProviderContext) { const supertestWithoutAuth = getSupertestWithoutAuth(providerContext); let agentAccessAPIKey: string; - // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/72102 - describe.skip('artifact download', () => { + describe('artifact download', () => { before(async () => { await esArchiver.load('endpoint/artifacts/api_feature', { useCreate: true }); diff --git a/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts b/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts index ad0cbd765f1fc..50f3374b7b84d 100644 --- a/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts +++ b/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts @@ -22,8 +22,7 @@ export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); const supertest = getService('supertest'); - // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/72102 - describe.skip('test metadata api', () => { + describe('test metadata api', () => { describe(`POST ${METADATA_REQUEST_ROUTE} when index is empty`, () => { it('metadata api should return empty result when index is empty', async () => { await deleteMetadataStream(getService); From 71dc864dfb08baaf22b13d431f9d5779d0221fd1 Mon Sep 17 00:00:00 2001 From: Spencer Date: Wed, 30 Sep 2020 15:19:06 -0700 Subject: [PATCH 052/142] [kbn/config] don't include x-pack/examples with --oss (#79032) Co-authored-by: spalger --- packages/kbn-config/src/env.test.ts | 12 ++++++++++++ packages/kbn-config/src/env.ts | 5 +++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/kbn-config/src/env.test.ts b/packages/kbn-config/src/env.test.ts index f3d51a021246e..1613a90951d40 100644 --- a/packages/kbn-config/src/env.test.ts +++ b/packages/kbn-config/src/env.test.ts @@ -198,6 +198,18 @@ test('pluginSearchPaths contains x-pack/examples plugins path if --run-examples expect(env.pluginSearchPaths).toContain('/some/home/dir/x-pack/examples'); }); +test('pluginSearchPaths does not contain x-pack/examples plugins path if --oss flag is true', () => { + const env = new Env( + '/some/home/dir', + packageInfos, + getEnvOptions({ + cliArgs: { runExamples: true, oss: true }, + }) + ); + + expect(env.pluginSearchPaths).not.toContain('/some/home/dir/x-pack/examples'); +}); + test('pluginSearchPaths does not contains examples plugins path if --run-examples flag is false', () => { const env = new Env( '/some/home/dir', diff --git a/packages/kbn-config/src/env.ts b/packages/kbn-config/src/env.ts index 250c7b72d47a9..e4585056696f9 100644 --- a/packages/kbn-config/src/env.ts +++ b/packages/kbn-config/src/env.ts @@ -123,8 +123,9 @@ export class Env { resolve(this.homeDir, 'src', 'plugins'), ...(options.cliArgs.oss ? [] : [resolve(this.homeDir, 'x-pack', 'plugins')]), resolve(this.homeDir, 'plugins'), - ...(options.cliArgs.runExamples - ? [resolve(this.homeDir, 'examples'), resolve(this.homeDir, 'x-pack', 'examples')] + ...(options.cliArgs.runExamples ? [resolve(this.homeDir, 'examples')] : []), + ...(options.cliArgs.runExamples && !options.cliArgs.oss + ? [resolve(this.homeDir, 'x-pack', 'examples')] : []), resolve(this.homeDir, '..', 'kibana-extra'), ]; From 886ad8504b87599afff296e10cea63dbc920502c Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 30 Sep 2020 15:37:31 -0700 Subject: [PATCH 053/142] skip flaky suite (#77401) --- .../functional_with_es_ssl/apps/triggers_actions_ui/alerts.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 359be662b0216..9de7d99c095e5 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 @@ -40,7 +40,8 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { return createdAlert; } - describe('alerts', function () { + // FLAKY: https://github.com/elastic/kibana/issues/77401 + describe.skip('alerts', function () { before(async () => { await pageObjects.common.navigateToApp('triggersActions'); await testSubjects.click('alertsTab'); From 06d1628a004b4773c47c6a33a50700c85f66ef81 Mon Sep 17 00:00:00 2001 From: Spencer Date: Wed, 30 Sep 2020 15:44:43 -0700 Subject: [PATCH 054/142] [ts] enable "resolveJsonModule" and disable existing failures (#78855) Co-authored-by: spalger --- tsconfig.base.json | 2 ++ typings/index.d.ts | 9 --------- .../app/ErrorGroupOverview/List/__test__/List.test.tsx | 1 + .../__test__/DiscoverTransactionButton.test.tsx | 2 ++ .../server/lib/service_map/group_resource_nodes.test.ts | 3 ++- .../apm/server/lib/services/annotations/index.test.ts | 3 +++ .../canvas_plugin_src/functions/server/demodata/index.ts | 1 + .../shareable_runtime/components/__tests__/app.test.tsx | 8 ++++---- x-pack/plugins/canvas/shareable_runtime/test/index.ts | 9 ++++++++- x-pack/plugins/infra/public/utils/apollo_client.ts | 1 + .../annotation_description_list/index.test.tsx | 1 + .../components/action_delete/delete_action_name.test.tsx | 8 +++++++- .../timeseries_chart_annotations.test.ts | 1 + .../models/job_validation/validate_time_range.test.ts | 1 + .../public/common/lib/compose/helpers.test.ts | 1 + .../public/common/lib/compose/kibana_compose.tsx | 1 + .../timeline/body/renderers/suricata/suricata_links.ts | 5 ++++- .../routes/index/get_signals_template.ts | 9 +++++++-- .../detection_engine/rules/get_prepackaged_rules.test.ts | 2 ++ .../lib/detection_engine/rules/get_prepackaged_rules.ts | 8 ++++++-- .../transform/public/app/common/transform_stats.test.ts | 7 ++++--- .../components/action_start/start_action_name.test.tsx | 1 + .../components/action_stop/stop_action_name.test.tsx | 1 + .../components/transform_list/common.test.ts | 5 +++-- .../components/transform_list/expanded_row.test.tsx | 1 + .../components/tabs/checkup/checkup_tab.test.tsx | 1 + .../server/lib/es_migration_apis.test.ts | 1 + .../api_integration/services/infraops_graphql_client.ts | 1 + .../services/security_solution_graphql_client.ts | 1 + x-pack/tsconfig.json | 1 - x-pack/typings/index.d.ts | 9 --------- 31 files changed, 69 insertions(+), 36 deletions(-) diff --git a/tsconfig.base.json b/tsconfig.base.json index 58a6237846a54..0aad8d6b9c124 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -39,6 +39,8 @@ // Resolve modules in the same way as Node.js. Aka make `require` works the // same in TypeScript as it does in Node.js. "moduleResolution": "node", + // "resolveJsonModule" allows for importing, extracting types from and generating .json files. + "resolveJsonModule": true, // Disallow inconsistently-cased references to the same file. "forceConsistentCasingInFileNames": true, // Forbid unused local variables as the rule was deprecated by ts-lint diff --git a/typings/index.d.ts b/typings/index.d.ts index 6d97aca4024c3..db6530d3f9e0b 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -35,15 +35,6 @@ declare module '*.svg' { export default content; } -// allow JSON files to be imported directly without lint errors -// see: https://github.com/palantir/tslint/issues/1264#issuecomment-228433367 -// and: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#arbitrary-expressions-are-forbidden-in-export-assignments-in-ambient-contexts -declare module '*.json' { - const json: any; - // eslint-disable-next-line import/no-default-export - export default json; -} - type MethodKeysOf = { [K in keyof T]: T[K] extends (...args: any[]) => any ? K : never; }[keyof T]; diff --git a/x-pack/plugins/apm/public/components/app/ErrorGroupOverview/List/__test__/List.test.tsx b/x-pack/plugins/apm/public/components/app/ErrorGroupOverview/List/__test__/List.test.tsx index 84b72b62248b0..a5a38da3d5d88 100644 --- a/x-pack/plugins/apm/public/components/app/ErrorGroupOverview/List/__test__/List.test.tsx +++ b/x-pack/plugins/apm/public/components/app/ErrorGroupOverview/List/__test__/List.test.tsx @@ -43,6 +43,7 @@ describe('ErrorGroupOverview -> List', () => { + {/* @ts-expect-error invalid json props */} diff --git a/x-pack/plugins/apm/public/components/shared/Links/DiscoverLinks/__test__/DiscoverTransactionButton.test.tsx b/x-pack/plugins/apm/public/components/shared/Links/DiscoverLinks/__test__/DiscoverTransactionButton.test.tsx index 02e0e72826f3a..17dca4796ec74 100644 --- a/x-pack/plugins/apm/public/components/shared/Links/DiscoverLinks/__test__/DiscoverTransactionButton.test.tsx +++ b/x-pack/plugins/apm/public/components/shared/Links/DiscoverLinks/__test__/DiscoverTransactionButton.test.tsx @@ -15,6 +15,7 @@ import mockTransaction from './mockTransaction.json'; describe('DiscoverTransactionLink component', () => { it('should render with data', () => { + // @ts-expect-error invalid json mock const transaction: Transaction = mockTransaction; expect( @@ -25,6 +26,7 @@ describe('DiscoverTransactionLink component', () => { describe('getDiscoverQuery', () => { it('should return the correct query params object', () => { + // @ts-expect-error invalid json mock const transaction: Transaction = mockTransaction; const result = getDiscoverQuery(transaction); expect(result).toMatchSnapshot(); diff --git a/x-pack/plugins/apm/server/lib/service_map/group_resource_nodes.test.ts b/x-pack/plugins/apm/server/lib/service_map/group_resource_nodes.test.ts index 2a9a2daf1fe47..23ef3f92e21a2 100644 --- a/x-pack/plugins/apm/server/lib/service_map/group_resource_nodes.test.ts +++ b/x-pack/plugins/apm/server/lib/service_map/group_resource_nodes.test.ts @@ -10,6 +10,7 @@ import expectedGroupedData from './mock_responses/group_resource_nodes_grouped.j describe('groupResourceNodes', () => { it('should group external nodes', () => { + // @ts-expect-error invalid json mock const responseWithGroups = groupResourceNodes(preGroupedData); expect(responseWithGroups.elements).toHaveLength( expectedGroupedData.elements.length @@ -17,7 +18,7 @@ describe('groupResourceNodes', () => { for (const element of responseWithGroups.elements) { const expectedElement = expectedGroupedData.elements.find( ({ data: { id } }: { data: { id: string } }) => id === element.data.id - ); + )!; expect(element).toMatchObject(expectedElement); } }); diff --git a/x-pack/plugins/apm/server/lib/services/annotations/index.test.ts b/x-pack/plugins/apm/server/lib/services/annotations/index.test.ts index e1a3ee1c9380d..9bd9c7b7a1040 100644 --- a/x-pack/plugins/apm/server/lib/services/annotations/index.test.ts +++ b/x-pack/plugins/apm/server/lib/services/annotations/index.test.ts @@ -31,6 +31,7 @@ describe('getServiceAnnotations', () => { searchAggregatedTransactions: false, }), { + // @ts-expect-error invalid json mock mockResponse: () => noVersions, } ); @@ -50,6 +51,7 @@ describe('getServiceAnnotations', () => { searchAggregatedTransactions: false, }), { + // @ts-expect-error invalid json mock mockResponse: () => oneVersion, } ); @@ -74,6 +76,7 @@ describe('getServiceAnnotations', () => { searchAggregatedTransactions: false, }), { + // @ts-expect-error invalid json mock mockResponse: () => responses.shift(), } ); diff --git a/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts b/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts index e29f1f511685e..102e6cdc726d5 100644 --- a/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts +++ b/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts @@ -61,6 +61,7 @@ export function demodata(): ExpressionFunctionDefinition< { id: 'project', name: 'project', meta: { type: 'string' } }, { id: 'percent_uptime', name: 'percent_uptime', meta: { type: 'number' } }, ], + // @ts-expect-error invalid json mock rows: sortBy(demoRows, 'time'), }; } else if (args.type === DemoRows.SHIRTS) { diff --git a/x-pack/plugins/canvas/shareable_runtime/components/__tests__/app.test.tsx b/x-pack/plugins/canvas/shareable_runtime/components/__tests__/app.test.tsx index 4b4f8f7d4de66..2ec3cfde8bd68 100644 --- a/x-pack/plugins/canvas/shareable_runtime/components/__tests__/app.test.tsx +++ b/x-pack/plugins/canvas/shareable_runtime/components/__tests__/app.test.tsx @@ -4,10 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -/* - One test relies on react-dom at a version of 16.9... it can be enabled - once renovate completes the upgrade. Relevant code has been commented out - in the meantime. +/* + One test relies on react-dom at a version of 16.9... it can be enabled + once renovate completes the upgrade. Relevant code has been commented out + in the meantime. */ import { mount, ReactWrapper } from 'enzyme'; diff --git a/x-pack/plugins/canvas/shareable_runtime/test/index.ts b/x-pack/plugins/canvas/shareable_runtime/test/index.ts index e07d94a6e1054..288dd0dc3a5be 100644 --- a/x-pack/plugins/canvas/shareable_runtime/test/index.ts +++ b/x-pack/plugins/canvas/shareable_runtime/test/index.ts @@ -11,4 +11,11 @@ import test from './workpads/test.json'; export * from './utils'; export type WorkpadNames = keyof typeof sharedWorkpads; -export const sharedWorkpads = { hello, austin, test }; +export const sharedWorkpads = { + // TODO: the automatic types for these JSON files are insufficient, and "austin" is so massive + // that Typescript refuses to type it. These should be converted to TypeScript and typed to fit + // the requirements. "austin" should also be reduced to the necessary data + hello: hello as any, + austin: austin as any, + test: test as any, +}; diff --git a/x-pack/plugins/infra/public/utils/apollo_client.ts b/x-pack/plugins/infra/public/utils/apollo_client.ts index 3c69ef4c98fac..41831a03cabbb 100644 --- a/x-pack/plugins/infra/public/utils/apollo_client.ts +++ b/x-pack/plugins/infra/public/utils/apollo_client.ts @@ -16,6 +16,7 @@ export const createApolloClient = (fetch: HttpHandler) => { const cache = new InMemoryCache({ addTypename: false, fragmentMatcher: new IntrospectionFragmentMatcher({ + // @ts-expect-error apollo-cache-inmemory types don't match actual introspection data introspectionQueryResultData, }), }); diff --git a/x-pack/plugins/ml/public/application/components/annotations/annotation_description_list/index.test.tsx b/x-pack/plugins/ml/public/application/components/annotations/annotation_description_list/index.test.tsx index 2568a6f40d326..e7330ca1dbe5d 100644 --- a/x-pack/plugins/ml/public/application/components/annotations/annotation_description_list/index.test.tsx +++ b/x-pack/plugins/ml/public/application/components/annotations/annotation_description_list/index.test.tsx @@ -21,6 +21,7 @@ describe('AnnotationDescriptionList', () => { }); test('Initialization with annotation.', () => { + // @ts-expect-error mock data is too loosely typed const wrapper = shallowWithIntl(); expect(wrapper).toMatchSnapshot(); }); diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/delete_action_name.test.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/delete_action_name.test.tsx index e033af6436130..63c4a0fe889f6 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/delete_action_name.test.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/delete_action_name.test.tsx @@ -51,6 +51,7 @@ describe('DeleteAction', () => { it('should display a tooltip when isDisabled prop is true.', () => { const { container } = render( + // @ts-expect-error mock data is incorrectly typed ); @@ -59,6 +60,7 @@ describe('DeleteAction', () => { it('should not display a tooltip when isDisabled prop is false.', () => { const { container } = render( + // @ts-expect-error mock data is incorrectly typed ); @@ -78,8 +80,12 @@ describe('DeleteAction', () => { {deleteAction.isModalVisible && } diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/components/timeseries_chart/timeseries_chart_annotations.test.ts b/x-pack/plugins/ml/public/application/timeseriesexplorer/components/timeseries_chart/timeseries_chart_annotations.test.ts index 240e840363a1f..cf7e2890c1fd2 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/components/timeseries_chart/timeseries_chart_annotations.test.ts +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/components/timeseries_chart/timeseries_chart_annotations.test.ts @@ -10,6 +10,7 @@ import { getAnnotationLevels } from './timeseries_chart_annotations'; describe('Timeseries Chart Annotations: getAnnotationLevels()', () => { test('getAnnotationLevels()', () => { + // @ts-expect-error mock data is too loosely typed const levels = getAnnotationLevels(mockAnnotationsOverlap); expect(levels).toEqual({ A: 0, B: 1, C: 2, D: 2 }); }); diff --git a/x-pack/plugins/ml/server/models/job_validation/validate_time_range.test.ts b/x-pack/plugins/ml/server/models/job_validation/validate_time_range.test.ts index ddf73166e1858..6065d22406bd0 100644 --- a/x-pack/plugins/ml/server/models/job_validation/validate_time_range.test.ts +++ b/x-pack/plugins/ml/server/models/job_validation/validate_time_range.test.ts @@ -144,6 +144,7 @@ describe('ML - validateTimeRange', () => { it('invalid time field', () => { const mockSearchResponseInvalid = cloneDeep(mockSearchResponse); + // @ts-expect-error creating intentionally invalid data mockSearchResponseInvalid.fieldCaps = undefined; const duration = { start: 0, end: 1 }; return validateTimeRange( diff --git a/x-pack/plugins/security_solution/public/common/lib/compose/helpers.test.ts b/x-pack/plugins/security_solution/public/common/lib/compose/helpers.test.ts index c34027648c896..01f74a5678be6 100644 --- a/x-pack/plugins/security_solution/public/common/lib/compose/helpers.test.ts +++ b/x-pack/plugins/security_solution/public/common/lib/compose/helpers.test.ts @@ -26,6 +26,7 @@ describe('getLinks helper', () => { const mockCache = new InMemoryCache({ dataIdFromObject: () => null, fragmentMatcher: new IntrospectionFragmentMatcher({ + // @ts-expect-error apollo-cache-inmemory types don't match actual introspection data introspectionQueryResultData, }), }); diff --git a/x-pack/plugins/security_solution/public/common/lib/compose/kibana_compose.tsx b/x-pack/plugins/security_solution/public/common/lib/compose/kibana_compose.tsx index 30d3311a40b61..055e2591f7805 100644 --- a/x-pack/plugins/security_solution/public/common/lib/compose/kibana_compose.tsx +++ b/x-pack/plugins/security_solution/public/common/lib/compose/kibana_compose.tsx @@ -17,6 +17,7 @@ export function composeLibs(core: CoreStart): AppFrontendLibs { const cache = new InMemoryCache({ dataIdFromObject: () => null, fragmentMatcher: new IntrospectionFragmentMatcher({ + // @ts-expect-error apollo-cache-inmemory types don't match actual introspection data introspectionQueryResultData, }), }); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/suricata/suricata_links.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/suricata/suricata_links.ts index fe6b44af202a8..4f389382dc475 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/suricata/suricata_links.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/suricata/suricata_links.ts @@ -7,8 +7,11 @@ import { uniq } from 'lodash/fp'; import { db } from 'suricata-sid-db'; +const has = (obj: T, key: string | number | symbol): key is keyof T => + Object.prototype.hasOwnProperty.call(obj, key); + export const getLinksFromSignature = (id: number): string[] => { - const refs = db[id]; + const refs = has(db, id) ? db[id] : null; if (refs != null) { return uniq(refs); } else { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/get_signals_template.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/get_signals_template.ts index cc22f34560c71..5ccde6d3eab97 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/get_signals_template.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/get_signals_template.ts @@ -8,7 +8,6 @@ import signalsMapping from './signals_mapping.json'; import ecsMapping from './ecs_mapping.json'; export const getSignalsTemplate = (index: string) => { - ecsMapping.mappings.properties.signal = signalsMapping.mappings.properties.signal; const template = { settings: { index: { @@ -24,7 +23,13 @@ export const getSignalsTemplate = (index: string) => { }, }, index_patterns: [`${index}-*`], - mappings: ecsMapping.mappings, + mappings: { + ...ecsMapping.mappings, + properties: { + ...ecsMapping.mappings.properties, + signal: signalsMapping.mappings.properties.signal, + }, + }, version: 1, }; return template; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_prepackaged_rules.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_prepackaged_rules.test.ts index ed1a239facf79..cf9a566cf4f90 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_prepackaged_rules.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_prepackaged_rules.test.ts @@ -33,12 +33,14 @@ describe('get_existing_prepackaged_rules', () => { }); test('should throw an exception if a pre-packaged rule is not valid', () => { + // @ts-expect-error intentionally invalid argument expect(() => getPrepackagedRules([{ not_valid_made_up_key: true }])).toThrow( 'name: "(rule name unknown)", rule_id: "(rule rule_id unknown)" within the folder rules/prepackaged_rules is not a valid detection engine rule. Expect the system to not work with pre-packaged rules until this rule is fixed or the file is removed. Error is: Invalid value "undefined" supplied to "description",Invalid value "undefined" supplied to "risk_score",Invalid value "undefined" supplied to "name",Invalid value "undefined" supplied to "severity",Invalid value "undefined" supplied to "type",Invalid value "undefined" supplied to "rule_id",Invalid value "undefined" supplied to "version", Full rule contents are:\n{\n "not_valid_made_up_key": true\n}' ); }); test('should throw an exception with a message having rule_id and name in it', () => { + // @ts-expect-error intentionally invalid argument expect(() => getPrepackagedRules([{ name: 'rule name', rule_id: 'id-123' }])).toThrow( 'name: "rule name", rule_id: "id-123" within the folder rules/prepackaged_rules is not a valid detection engine rule. Expect the system to not work with pre-packaged rules until this rule is fixed or the file is removed. Error is: Invalid value "undefined" supplied to "description",Invalid value "undefined" supplied to "risk_score",Invalid value "undefined" supplied to "severity",Invalid value "undefined" supplied to "type",Invalid value "undefined" supplied to "version", Full rule contents are:\n{\n "name": "rule name",\n "rule_id": "id-123"\n}' ); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_prepackaged_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_prepackaged_rules.ts index 354f8b90fae23..3d187d74432e8 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_prepackaged_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/get_prepackaged_rules.ts @@ -15,6 +15,8 @@ import { AddPrepackagedRulesSchemaDecoded, } from '../../../../common/detection_engine/schemas/request/add_prepackaged_rules_schema'; import { BadRequestError } from '../errors/bad_request_error'; + +// TODO: convert rules files to TS and add explicit type definitions import { rawRules } from './prepackaged_rules'; /** @@ -49,5 +51,7 @@ export const validateAllPrepackagedRules = ( }); }; -export const getPrepackagedRules = (rules = rawRules): AddPrepackagedRulesSchemaDecoded[] => - validateAllPrepackagedRules(rules); +export const getPrepackagedRules = ( + // @ts-expect-error mock data is too loosely typed + rules: AddPrepackagedRulesSchema[] = rawRules +): AddPrepackagedRulesSchemaDecoded[] => validateAllPrepackagedRules(rules); diff --git a/x-pack/plugins/transform/public/app/common/transform_stats.test.ts b/x-pack/plugins/transform/public/app/common/transform_stats.test.ts index 342ca77a67b38..c030a24ff5c3c 100644 --- a/x-pack/plugins/transform/public/app/common/transform_stats.test.ts +++ b/x-pack/plugins/transform/public/app/common/transform_stats.test.ts @@ -12,11 +12,12 @@ import { getTransformProgress, isCompletedBatchTransform } from './transform_sta const getRow = (statsId: string) => { return { + // @ts-expect-error mock data does not actually match TransformListRow type ...(mockTransformListRow as TransformListRow), stats: { - ...mockTransformStats.transforms.find( - (stats: TransformListRow['stats']) => stats.id === statsId - ), + ...(mockTransformStats.transforms as Array).find( + (stats) => stats.id === statsId + )!, }, }; }; diff --git a/x-pack/plugins/transform/public/app/sections/transform_management/components/action_start/start_action_name.test.tsx b/x-pack/plugins/transform/public/app/sections/transform_management/components/action_start/start_action_name.test.tsx index 9c06675d69ca4..87e890b1b9718 100644 --- a/x-pack/plugins/transform/public/app/sections/transform_management/components/action_start/start_action_name.test.tsx +++ b/x-pack/plugins/transform/public/app/sections/transform_management/components/action_start/start_action_name.test.tsx @@ -17,6 +17,7 @@ jest.mock('../../../../../app/app_dependencies'); describe('Transform: Transform List Actions ', () => { test('Minimal initialization', () => { + // @ts-expect-error mock data is too loosely typed const item: TransformListRow = transformListRow; const props: StartActionNameProps = { forceDisable: false, diff --git a/x-pack/plugins/transform/public/app/sections/transform_management/components/action_stop/stop_action_name.test.tsx b/x-pack/plugins/transform/public/app/sections/transform_management/components/action_stop/stop_action_name.test.tsx index 643e8c6126f0f..dcc26593de44b 100644 --- a/x-pack/plugins/transform/public/app/sections/transform_management/components/action_stop/stop_action_name.test.tsx +++ b/x-pack/plugins/transform/public/app/sections/transform_management/components/action_stop/stop_action_name.test.tsx @@ -17,6 +17,7 @@ jest.mock('../../../../../app/app_dependencies'); describe('Transform: Transform List Actions ', () => { test('Minimal initialization', () => { + // @ts-expect-error mock data is too loosely typed const item: TransformListRow = transformListRow; const props: StopActionNameProps = { forceDisable: false, diff --git a/x-pack/plugins/transform/public/app/sections/transform_management/components/transform_list/common.test.ts b/x-pack/plugins/transform/public/app/sections/transform_management/components/transform_list/common.test.ts index f6708f7c36f26..9a6988445c73d 100644 --- a/x-pack/plugins/transform/public/app/sections/transform_management/components/transform_list/common.test.ts +++ b/x-pack/plugins/transform/public/app/sections/transform_management/components/transform_list/common.test.ts @@ -15,14 +15,15 @@ describe('Transform: isCompletedBatchTransform()', () => { // check the transform config/state against the conditions // that will be used by isCompletedBatchTransform() // followed by a call to isCompletedBatchTransform() itself + // @ts-expect-error mock data is too loosely typed const row = mockTransformListRow as TransformListRow; expect(row.stats.checkpointing.last.checkpoint === 1).toBe(true); expect(row.config.sync === undefined).toBe(true); expect(row.stats.state === TRANSFORM_STATE.STOPPED).toBe(true); - expect(isCompletedBatchTransform(mockTransformListRow)).toBe(true); + expect(isCompletedBatchTransform(row)).toBe(true); // adapt the mock config to resemble a non-completed transform. row.stats.checkpointing.last.checkpoint = 0; - expect(isCompletedBatchTransform(mockTransformListRow)).toBe(false); + expect(isCompletedBatchTransform(row)).toBe(false); }); }); diff --git a/x-pack/plugins/transform/public/app/sections/transform_management/components/transform_list/expanded_row.test.tsx b/x-pack/plugins/transform/public/app/sections/transform_management/components/transform_list/expanded_row.test.tsx index 6d04c08f8b238..2846e6a20494f 100644 --- a/x-pack/plugins/transform/public/app/sections/transform_management/components/transform_list/expanded_row.test.tsx +++ b/x-pack/plugins/transform/public/app/sections/transform_management/components/transform_list/expanded_row.test.tsx @@ -31,6 +31,7 @@ describe('Transform: Transform List ', () => { test('Minimal initialization', async () => { const mlShared = await getMlSharedImports(); + // @ts-expect-error mock data is too loosely typed const item: TransformListRow = transformListRow; const { getByText, getByTestId } = render( diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/tabs/checkup/checkup_tab.test.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/tabs/checkup/checkup_tab.test.tsx index 9ba5441604ddc..a4054bacba448 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/tabs/checkup/checkup_tab.test.tsx +++ b/x-pack/plugins/upgrade_assistant/public/application/components/tabs/checkup/checkup_tab.test.tsx @@ -25,6 +25,7 @@ const defaultProps = { */ describe('CheckupTab', () => { test('render with deprecations', () => { + // @ts-expect-error mock data is too loosely typed expect(shallow()).toMatchSnapshot(); }); diff --git a/x-pack/plugins/upgrade_assistant/server/lib/es_migration_apis.test.ts b/x-pack/plugins/upgrade_assistant/server/lib/es_migration_apis.test.ts index f97a056d5cd36..312a7275382b8 100644 --- a/x-pack/plugins/upgrade_assistant/server/lib/es_migration_apis.test.ts +++ b/x-pack/plugins/upgrade_assistant/server/lib/es_migration_apis.test.ts @@ -34,6 +34,7 @@ describe('getUpgradeAssistantStatus', () => { }); beforeEach(() => { + // @ts-expect-error mock data is too loosely typed deprecationsResponse = _.cloneDeep(fakeDeprecations); }); diff --git a/x-pack/test/api_integration/services/infraops_graphql_client.ts b/x-pack/test/api_integration/services/infraops_graphql_client.ts index 9eb2699431548..81f0ac8fad919 100644 --- a/x-pack/test/api_integration/services/infraops_graphql_client.ts +++ b/x-pack/test/api_integration/services/infraops_graphql_client.ts @@ -47,6 +47,7 @@ export function InfraOpsGraphQLClientFactoryProvider({ getService }: FtrProvider return new ApolloClient({ cache: new InMemoryCache({ fragmentMatcher: new IntrospectionFragmentMatcher({ + // @ts-expect-error apollo-cache-inmemory types don't match actual introspection data introspectionQueryResultData, }), }), diff --git a/x-pack/test/api_integration/services/security_solution_graphql_client.ts b/x-pack/test/api_integration/services/security_solution_graphql_client.ts index 0bcf94fdb7d3f..c592ced623467 100644 --- a/x-pack/test/api_integration/services/security_solution_graphql_client.ts +++ b/x-pack/test/api_integration/services/security_solution_graphql_client.ts @@ -46,6 +46,7 @@ export function SecuritySolutionGraphQLClientFactoryProvider({ getService }: Ftr return new ApolloClient({ cache: new InMemoryCache({ fragmentMatcher: new IntrospectionFragmentMatcher({ + // @ts-expect-error apollo-cache-inmemory types don't match actual introspection data introspectionQueryResultData, }), }), diff --git a/x-pack/tsconfig.json b/x-pack/tsconfig.json index d4722aba4882c..9a52aca381e87 100644 --- a/x-pack/tsconfig.json +++ b/x-pack/tsconfig.json @@ -15,7 +15,6 @@ "plugins/licensing/**/*" ], "compilerOptions": { - "outDir": ".", "paths": { "kibana/public": ["src/core/public"], "kibana/server": ["src/core/server"], diff --git a/x-pack/typings/index.d.ts b/x-pack/typings/index.d.ts index 50c57c9e776b9..90e2fa5868744 100644 --- a/x-pack/typings/index.d.ts +++ b/x-pack/typings/index.d.ts @@ -34,15 +34,6 @@ type Writable = { -readonly [K in keyof T]: T[K]; }; -// allow JSON files to be imported directly without lint errors -// see: https://github.com/palantir/tslint/issues/1264#issuecomment-228433367 -// and: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#arbitrary-expressions-are-forbidden-in-export-assignments-in-ambient-contexts -declare module '*.json' { - const json: any; - // eslint-disable-next-line import/no-default-export - export default json; -} - // Storybook references this module. It's @ts-ignored in the codebase but when // built into its dist it strips that out. Add it here to avoid a type checking // error. From 2344dcfae89d89bfbb9898a702a501a5a8720d34 Mon Sep 17 00:00:00 2001 From: Quynh Nguyen <43350163+qn895@users.noreply.github.com> Date: Wed, 30 Sep 2020 18:53:17 -0500 Subject: [PATCH 055/142] [ML] Migrate machine learning URLs to BrowserRouter format for APM, Security, and Infra (#78209) * [ML] Adds ability to pass multiple jobIds to job management url * [ML][APM] Update links to jobs management page for MLLink and LegacyJobsCallout * [ML][APM] Update useTimeSeriesExplorerHref * [ML][APM] Update tests * [ML][APM] Move test from useTimeSeriesExplorerHref to MLJobLink.test.tsx * [ML][Infra] Update ML links in infra to non-hash paths * [ML] Move MlUrlGenerator registration outside of licensing block for security solution * [ML][Security] Update ml links in security * [ML][APM] Update test snapshots * [ML][APM] Update snapshots * [ML][Security solution] Update tests * [ML] Update MLLink to include globalState * [ML] Update useTimeSeriesExplorerHref * [ML] Update apm and security_solution to use useMlHref hook * [ML] Update APM to use useUrlParams hook, update security solution hook * [ML] Update tests, fix duplicate imports * [ML] Update imports, remove ml exports to shared cause it's not needed [ML] Add import * [ML] Update snapshot * [ML] Fix warnings for jobs_table.test.tsx Co-authored-by: Elastic Machine --- .../app/Home/__snapshots__/Home.test.tsx.snap | 28 +++++- .../anomaly_detection/legacy_jobs_callout.tsx | 19 ++-- .../MachineLearningLinks/MLJobLink.test.tsx | 24 ++++- .../MachineLearningLinks/MLLink.test.tsx | 6 +- .../Links/MachineLearningLinks/MLLink.tsx | 47 ++++++---- .../useTimeSeriesExplorerHref.test.ts | 34 ------- .../useTimeSeriesExplorerHref.ts | 66 ++++++------- .../ApmPluginContext/MockApmPluginContext.tsx | 12 ++- x-pack/plugins/apm/public/plugin.ts | 3 + .../plugins/apm/public/utils/testHelpers.tsx | 5 +- .../analyze_in_ml_button.tsx | 4 +- .../public/hooks/use_link_props.test.tsx | 8 +- .../ml/common/types/ml_url_generator.ts | 2 +- .../job_filter_bar/job_filter_bar.js | 9 +- .../jobs/jobs_list/components/utils.d.ts | 1 + .../jobs/jobs_list/components/utils.js | 14 ++- x-pack/plugins/ml/public/index.ts | 1 + .../ml/public/ml_url_generator/index.ts | 2 + .../ml_url_generator/ml_url_generator.ts | 2 +- .../ml/public/ml_url_generator/use_ml_href.ts | 34 +++++++ x-pack/plugins/ml/public/plugin.ts | 27 ++++-- x-pack/plugins/ml/public/register_helper.ts | 1 - x-pack/plugins/security_solution/kibana.json | 2 +- .../ml_popover/jobs_table/jobs_table.test.tsx | 67 ++++++++----- .../ml_popover/jobs_table/jobs_table.tsx | 93 ++++++++++++------- .../common/lib/kibana/kibana_react.mock.ts | 7 ++ .../description_step/ml_job_description.tsx | 15 ++- .../plugins/security_solution/public/types.ts | 3 + 28 files changed, 350 insertions(+), 186 deletions(-) delete mode 100644 x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/useTimeSeriesExplorerHref.test.ts create mode 100644 x-pack/plugins/ml/public/ml_url_generator/use_ml_href.ts diff --git a/x-pack/plugins/apm/public/components/app/Home/__snapshots__/Home.test.tsx.snap b/x-pack/plugins/apm/public/components/app/Home/__snapshots__/Home.test.tsx.snap index 9706895b164a6..00be0b37a0e82 100644 --- a/x-pack/plugins/apm/public/components/app/Home/__snapshots__/Home.test.tsx.snap +++ b/x-pack/plugins/apm/public/components/app/Home/__snapshots__/Home.test.tsx.snap @@ -34,6 +34,7 @@ exports[`Home component should render services 1`] = ` }, "http": Object { "basePath": Object { + "get": [Function], "prepend": [Function], }, }, @@ -51,7 +52,18 @@ exports[`Home component should render services 1`] = ` "get$": [Function], }, }, - "plugins": Object {}, + "plugins": Object { + "ml": Object { + "urlGenerator": MlUrlGenerator { + "createUrl": [Function], + "id": "ML_APP_URL_GENERATOR", + "params": Object { + "appBasePath": "/app/ml", + "useHash": false, + }, + }, + }, + }, } } > @@ -95,6 +107,7 @@ exports[`Home component should render traces 1`] = ` }, "http": Object { "basePath": Object { + "get": [Function], "prepend": [Function], }, }, @@ -112,7 +125,18 @@ exports[`Home component should render traces 1`] = ` "get$": [Function], }, }, - "plugins": Object {}, + "plugins": Object { + "ml": Object { + "urlGenerator": MlUrlGenerator { + "createUrl": [Function], + "id": "ML_APP_URL_GENERATOR", + "params": Object { + "appBasePath": "/app/ml", + "useHash": false, + }, + }, + }, + }, } } > diff --git a/x-pack/plugins/apm/public/components/app/Settings/anomaly_detection/legacy_jobs_callout.tsx b/x-pack/plugins/apm/public/components/app/Settings/anomaly_detection/legacy_jobs_callout.tsx index 54053097ab02e..1844e5754cfba 100644 --- a/x-pack/plugins/apm/public/components/app/Settings/anomaly_detection/legacy_jobs_callout.tsx +++ b/x-pack/plugins/apm/public/components/app/Settings/anomaly_detection/legacy_jobs_callout.tsx @@ -8,9 +8,20 @@ import { EuiCallOut, EuiButton } from '@elastic/eui'; import React from 'react'; import { i18n } from '@kbn/i18n'; import { useApmPluginContext } from '../../../../hooks/useApmPluginContext'; +import { useMlHref } from '../../../../../../ml/public'; export function LegacyJobsCallout() { - const { core } = useApmPluginContext(); + const { + core, + plugins: { ml }, + } = useApmPluginContext(); + const mlADLink = useMlHref(ml, core.http.basePath.get(), { + page: 'jobs', + pageState: { + jobId: 'high_mean_response_time', + }, + }); + return ( - + {i18n.translate( 'xpack.apm.settings.anomaly_detection.legacy_jobs.button', { defaultMessage: 'Review jobs' } diff --git a/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/MLJobLink.test.tsx b/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/MLJobLink.test.tsx index e6888c4cb60a2..01336a0e8f0ce 100644 --- a/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/MLJobLink.test.tsx +++ b/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/MLJobLink.test.tsx @@ -22,7 +22,7 @@ describe('MLJobLink', () => { ); expect(href).toMatchInlineSnapshot( - `"/basepath/app/ml#/timeseriesexplorer?_g=(ml:(jobIds:!(myservicename-mytransactiontype-high_mean_response_time)),refreshInterval:(pause:!t,value:0),time:(from:now/w,to:now-4h))"` + `"/app/ml/timeseriesexplorer?_g=(ml:(jobIds:!(myservicename-mytransactiontype-high_mean_response_time)),refreshInterval:(pause:!t,value:0),time:(from:now%2Fw,to:now-4h))&_a=(mlTimeSeriesExplorer:(),zoom:(from:now%2Fw,to:now-4h))"` ); }); it('should produce the correct URL with jobId, serviceName, and transactionType', async () => { @@ -41,7 +41,27 @@ describe('MLJobLink', () => { ); expect(href).toMatchInlineSnapshot( - `"/basepath/app/ml#/timeseriesexplorer?_g=(ml:(jobIds:!(myservicename-mytransactiontype-high_mean_response_time)),refreshInterval:(pause:!t,value:0),time:(from:now/w,to:now-4h))&_a=(mlTimeSeriesExplorer:(entities:(service.name:opbeans-test,transaction.type:request)))"` + `"/app/ml/timeseriesexplorer?_g=(ml:(jobIds:!(myservicename-mytransactiontype-high_mean_response_time)),refreshInterval:(pause:!t,value:0),time:(from:now%2Fw,to:now-4h))&_a=(mlTimeSeriesExplorer:(entities:(service.name:opbeans-test,transaction.type:request)),zoom:(from:now%2Fw,to:now-4h))"` + ); + }); + + it('correctly encodes time range values', async () => { + const href = await getRenderedHref( + () => ( + + ), + { + search: + '?rangeFrom=2020-07-29T17:27:29.000Z&rangeTo=2020-07-29T18:45:00.000Z&refreshInterval=10000&refreshPaused=true', + } as Location + ); + + expect(href).toMatchInlineSnapshot( + `"/app/ml/timeseriesexplorer?_g=(ml:(jobIds:!(apm-production-485b-high_mean_transaction_duration)),refreshInterval:(pause:!t,value:10000),time:(from:'2020-07-29T17:27:29.000Z',to:'2020-07-29T18:45:00.000Z'))&_a=(mlTimeSeriesExplorer:(entities:(service.name:opbeans-java,transaction.type:request)),zoom:(from:'2020-07-29T17:27:29.000Z',to:'2020-07-29T18:45:00.000Z'))"` ); }); }); diff --git a/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/MLLink.test.tsx b/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/MLLink.test.tsx index 4eb886509805d..be00364cab92e 100644 --- a/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/MLLink.test.tsx +++ b/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/MLLink.test.tsx @@ -11,9 +11,7 @@ import { MLLink } from './MLLink'; test('MLLink produces the correct URL', async () => { const href = await getRenderedHref( - () => ( - - ), + () => , { search: '?rangeFrom=now-5h&rangeTo=now-2h&refreshPaused=true&refreshInterval=0', @@ -21,6 +19,6 @@ test('MLLink produces the correct URL', async () => { ); expect(href).toMatchInlineSnapshot( - `"/basepath/app/ml#/some/path?_g=(ml:(jobIds:!(something)),refreshInterval:(pause:!t,value:0),time:(from:now-5h,to:now-2h))&mlManagement=(groupIds:!(apm))"` + `"/app/ml/jobs?mlManagement=(groupIds:!(apm),jobId:!(something))&_g=(refreshInterval:(pause:!t,value:0),time:(from:now-5h,to:now-2h))"` ); }); diff --git a/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/MLLink.tsx b/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/MLLink.tsx index 93ee9e0db4864..5fbcd475cb47b 100644 --- a/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/MLLink.tsx +++ b/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/MLLink.tsx @@ -6,11 +6,9 @@ import { EuiLink } from '@elastic/eui'; import React from 'react'; -import { useLocation } from 'react-router-dom'; -import rison, { RisonValue } from 'rison-node'; -import url from 'url'; import { useApmPluginContext } from '../../../../hooks/useApmPluginContext'; -import { getTimepickerRisonData, TimepickerRisonData } from '../rison_helpers'; +import { useMlHref, ML_PAGES } from '../../../../../../ml/public'; +import { useUrlParams } from '../../../../hooks/useUrlParams'; interface MlRisonData { ml?: { @@ -26,28 +24,41 @@ interface Props { } export function MLLink({ children, path = '', query = {}, external }: Props) { - const { core } = useApmPluginContext(); - const location = useLocation(); + const { + core, + plugins: { ml }, + } = useApmPluginContext(); - const risonQuery: MlRisonData & TimepickerRisonData = getTimepickerRisonData( - location.search - ); - - if (query.ml) { - risonQuery.ml = query.ml; + let jobIds: string[] = []; + if (query.ml?.jobIds) { + jobIds = query.ml.jobIds; } + const { urlParams } = useUrlParams(); + const { rangeFrom, rangeTo, refreshInterval, refreshPaused } = urlParams; - const href = url.format({ - pathname: core.http.basePath.prepend('/app/ml'), - hash: `${path}?_g=${rison.encode( - risonQuery as RisonValue - )}&mlManagement=${rison.encode({ groupIds: ['apm'] })}`, + // default to link to ML Anomaly Detection jobs management page + const mlADLink = useMlHref(ml, core.http.basePath.get(), { + page: ML_PAGES.ANOMALY_DETECTION_JOBS_MANAGE, + pageState: { + jobId: jobIds, + groupIds: ['apm'], + globalState: { + time: + rangeFrom !== undefined && rangeTo !== undefined + ? { from: rangeFrom, to: rangeTo } + : undefined, + refreshInterval: + refreshPaused !== undefined && refreshInterval !== undefined + ? { pause: refreshPaused, value: refreshInterval } + : undefined, + }, + }, }); return ( diff --git a/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/useTimeSeriesExplorerHref.test.ts b/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/useTimeSeriesExplorerHref.test.ts deleted file mode 100644 index d84f55af993aa..0000000000000 --- a/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/useTimeSeriesExplorerHref.test.ts +++ /dev/null @@ -1,34 +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 { useTimeSeriesExplorerHref } from './useTimeSeriesExplorerHref'; - -jest.mock('../../../../hooks/useApmPluginContext', () => ({ - useApmPluginContext: () => ({ - core: { http: { basePath: { prepend: (url: string) => url } } }, - }), -})); - -jest.mock('react-router-dom', () => ({ - useLocation: () => ({ - search: - '?rangeFrom=2020-07-29T17:27:29.000Z&rangeTo=2020-07-29T18:45:00.000Z&refreshInterval=10000&refreshPaused=true', - }), -})); - -describe('useTimeSeriesExplorerHref', () => { - it('correctly encodes time range values', async () => { - const href = useTimeSeriesExplorerHref({ - jobId: 'apm-production-485b-high_mean_transaction_duration', - serviceName: 'opbeans-java', - transactionType: 'request', - }); - - expect(href).toMatchInlineSnapshot( - `"/app/ml#/timeseriesexplorer?_g=(ml:(jobIds:!(apm-production-485b-high_mean_transaction_duration)),refreshInterval:(pause:!t,value:10000),time:(from:'2020-07-29T17:27:29.000Z',to:'2020-07-29T18:45:00.000Z'))&_a=(mlTimeSeriesExplorer:(entities:(service.name:opbeans-java,transaction.type:request)))"` - ); - }); -}); diff --git a/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/useTimeSeriesExplorerHref.ts b/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/useTimeSeriesExplorerHref.ts index 0cb87a4f515b6..a758f266b4417 100644 --- a/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/useTimeSeriesExplorerHref.ts +++ b/x-pack/plugins/apm/public/components/shared/Links/MachineLearningLinks/useTimeSeriesExplorerHref.ts @@ -4,12 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import querystring from 'querystring'; -import { useLocation } from 'react-router-dom'; -import rison from 'rison-node'; -import url from 'url'; import { useApmPluginContext } from '../../../../hooks/useApmPluginContext'; -import { getTimepickerRisonData } from '../rison_helpers'; +import { useMlHref } from '../../../../../../ml/public'; +import { useUrlParams } from '../../../../hooks/useUrlParams'; export function useTimeSeriesExplorerHref({ jobId, @@ -20,41 +17,38 @@ export function useTimeSeriesExplorerHref({ serviceName?: string; transactionType?: string; }) { - const { core } = useApmPluginContext(); - const location = useLocation(); - const { time, refreshInterval } = getTimepickerRisonData(location.search); + // default to link to ML Anomaly Detection jobs management page + const { + core, + plugins: { ml }, + } = useApmPluginContext(); + const { urlParams } = useUrlParams(); + const { rangeFrom, rangeTo, refreshInterval, refreshPaused } = urlParams; - const search = querystring.stringify( - { - _g: rison.encode({ - ml: { jobIds: [jobId] }, - time, - refreshInterval, - }), + const timeRange = + rangeFrom !== undefined && rangeTo !== undefined + ? { from: rangeFrom, to: rangeTo } + : undefined; + const mlAnomalyDetectionHref = useMlHref(ml, core.http.basePath.get(), { + page: 'timeseriesexplorer', + pageState: { + jobIds: [jobId], + timeRange, + refreshInterval: + refreshPaused !== undefined && refreshInterval !== undefined + ? { pause: refreshPaused, value: refreshInterval } + : undefined, + zoom: timeRange, ...(serviceName && transactionType ? { - _a: rison.encode({ - mlTimeSeriesExplorer: { - entities: { - 'service.name': serviceName, - 'transaction.type': transactionType, - }, - }, - }), + entities: { + 'service.name': serviceName, + 'transaction.type': transactionType, + }, } - : null), + : {}), }, - undefined, - undefined, - { - encodeURIComponent(str: string) { - return str; - }, - } - ); - - return url.format({ - pathname: core.http.basePath.prepend('/app/ml'), - hash: url.format({ pathname: '/timeseriesexplorer', search }), }); + + return mlAnomalyDetectionHref; } diff --git a/x-pack/plugins/apm/public/context/ApmPluginContext/MockApmPluginContext.tsx b/x-pack/plugins/apm/public/context/ApmPluginContext/MockApmPluginContext.tsx index 48206572932b1..65f6dca179e71 100644 --- a/x-pack/plugins/apm/public/context/ApmPluginContext/MockApmPluginContext.tsx +++ b/x-pack/plugins/apm/public/context/ApmPluginContext/MockApmPluginContext.tsx @@ -9,6 +9,7 @@ import { ApmPluginContext, ApmPluginContextValue } from '.'; import { ConfigSchema } from '../..'; import { UI_SETTINGS } from '../../../../../../src/plugins/data/common'; import { createCallApmApi } from '../../services/rest/createCallApmApi'; +import { MlUrlGenerator } from '../../../../ml/public'; const uiSettings: Record = { [UI_SETTINGS.TIMEPICKER_QUICK_RANGES]: [ @@ -54,6 +55,7 @@ const mockCore = { http: { basePath: { prepend: (path: string) => `/basepath${path}`, + get: () => `/basepath`, }, }, i18n: { @@ -78,10 +80,18 @@ const mockConfig: ConfigSchema = { }, }; +const mockPlugin = { + ml: { + urlGenerator: new MlUrlGenerator({ + appBasePath: '/app/ml', + useHash: false, + }), + }, +}; export const mockApmPluginContextValue = { config: mockConfig, core: mockCore, - plugins: {}, + plugins: mockPlugin, }; export function MockApmPluginContextWrapper({ diff --git a/x-pack/plugins/apm/public/plugin.ts b/x-pack/plugins/apm/public/plugin.ts index dd9659a4cd1be..d9709bbe461b3 100644 --- a/x-pack/plugins/apm/public/plugin.ts +++ b/x-pack/plugins/apm/public/plugin.ts @@ -36,12 +36,14 @@ import { featureCatalogueEntry } from './featureCatalogueEntry'; import { toggleAppLinkInNav } from './toggleAppLinkInNav'; import { EmbeddableStart } from '../../../../src/plugins/embeddable/public'; import { registerApmAlerts } from './components/alerting/register_apm_alerts'; +import { MlPluginSetup, MlPluginStart } from '../../ml/public'; export type ApmPluginSetup = void; export type ApmPluginStart = void; export interface ApmPluginSetupDeps { alerts?: AlertingPluginPublicSetup; + ml?: MlPluginSetup; data: DataPublicPluginSetup; features: FeaturesPluginSetup; home?: HomePublicPluginSetup; @@ -52,6 +54,7 @@ export interface ApmPluginSetupDeps { export interface ApmPluginStartDeps { alerts?: AlertingPluginPublicStart; + ml?: MlPluginStart; data: DataPublicPluginStart; home: void; licensing: void; diff --git a/x-pack/plugins/apm/public/utils/testHelpers.tsx b/x-pack/plugins/apm/public/utils/testHelpers.tsx index a69288f7bd4f9..971455fde3946 100644 --- a/x-pack/plugins/apm/public/utils/testHelpers.tsx +++ b/x-pack/plugins/apm/public/utils/testHelpers.tsx @@ -24,6 +24,7 @@ import { ESSearchRequest, } from '../../typings/elasticsearch'; import { MockApmPluginContextWrapper } from '../context/ApmPluginContext/MockApmPluginContext'; +import { UrlParamsProvider } from '../context/UrlParamsContext'; const originalConsoleWarn = console.warn; // eslint-disable-line no-console /** @@ -67,7 +68,9 @@ export async function getRenderedHref(Component: React.FC, location: Location) { const el = render( - + + + ); diff --git a/x-pack/plugins/infra/public/components/logging/log_analysis_results/analyze_in_ml_button.tsx b/x-pack/plugins/infra/public/components/logging/log_analysis_results/analyze_in_ml_button.tsx index 3e54920160c53..c265876522767 100644 --- a/x-pack/plugins/infra/public/components/logging/log_analysis_results/analyze_in_ml_button.tsx +++ b/x-pack/plugins/infra/public/components/logging/log_analysis_results/analyze_in_ml_button.tsx @@ -58,7 +58,7 @@ export const getOverallAnomalyExplorerLinkDescriptor = ( return { app: 'ml', - hash: '/explorer', + pathname: '/explorer', search: { _g }, }; }; @@ -89,7 +89,7 @@ export const getEntitySpecificSingleMetricViewerLink = ( return { app: 'ml', - hash: '/timeseriesexplorer', + pathname: '/timeseriesexplorer', search: { _g, _a }, }; }; diff --git a/x-pack/plugins/infra/public/hooks/use_link_props.test.tsx b/x-pack/plugins/infra/public/hooks/use_link_props.test.tsx index d93cc44c45623..8c1647bd79798 100644 --- a/x-pack/plugins/infra/public/hooks/use_link_props.test.tsx +++ b/x-pack/plugins/infra/public/hooks/use_link_props.test.tsx @@ -129,7 +129,7 @@ describe('useLinkProps hook', () => { it('Provides the correct props with hash options', () => { const { result } = renderUseLinkPropsHook({ app: 'ml', - hash: '/explorer', + pathname: '/explorer', search: { type: 'host', id: 'some-id', @@ -137,7 +137,7 @@ describe('useLinkProps hook', () => { }, }); expect(result.current.href).toBe( - '/test-basepath/s/test-space/app/ml#/explorer?type=host&id=some-id&count=12345' + '/test-basepath/s/test-space/app/ml/explorer?type=host&id=some-id&count=12345' ); expect(result.current.onClick).toBeDefined(); }); @@ -145,7 +145,7 @@ describe('useLinkProps hook', () => { it('Provides the correct props with more complex encoding', () => { const { result } = renderUseLinkPropsHook({ app: 'ml', - hash: '/explorer', + pathname: '/explorer', search: { type: 'host + host', name: 'this name has spaces and ** and %', @@ -155,7 +155,7 @@ describe('useLinkProps hook', () => { }, }); expect(result.current.href).toBe( - '/test-basepath/s/test-space/app/ml#/explorer?type=host%20%2B%20host&name=this%20name%20has%20spaces%20and%20**%20and%20%25&id=some-id&count=12345&animals=dog,cat,bear' + '/test-basepath/s/test-space/app/ml/explorer?type=host%20%2B%20host&name=this%20name%20has%20spaces%20and%20**%20and%20%25&id=some-id&count=12345&animals=dog,cat,bear' ); expect(result.current.onClick).toBeDefined(); }); diff --git a/x-pack/plugins/ml/common/types/ml_url_generator.ts b/x-pack/plugins/ml/common/types/ml_url_generator.ts index 95d06e62f9ef0..aa38fb2ec6fbb 100644 --- a/x-pack/plugins/ml/common/types/ml_url_generator.ts +++ b/x-pack/plugins/ml/common/types/ml_url_generator.ts @@ -55,7 +55,7 @@ export type MlGenericUrlState = MLPageState< >; export interface AnomalyDetectionQueryState { - jobId?: JobId; + jobId?: JobId | string[]; groupIds?: string[]; globalState?: MlCommonGlobalState; } diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_filter_bar/job_filter_bar.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_filter_bar/job_filter_bar.js index 6eb7b00e5620c..08373542c1234 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_filter_bar/job_filter_bar.js +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_filter_bar/job_filter_bar.js @@ -9,7 +9,12 @@ import React, { Component, Fragment } from 'react'; import { ml } from '../../../../services/ml_api_service'; import { JobGroup } from '../job_group'; -import { getGroupQueryText, getSelectedIdFromUrl, clearSelectedJobIdFromUrl } from '../utils'; +import { + getGroupQueryText, + getSelectedIdFromUrl, + clearSelectedJobIdFromUrl, + getJobQueryText, +} from '../utils'; import { EuiSearchBar, EuiFlexGroup, EuiFlexItem, EuiFormRow } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; @@ -60,7 +65,7 @@ export class JobFilterBar extends Component { if (groupIds !== undefined) { defaultQueryText = getGroupQueryText(groupIds); } else if (jobId !== undefined) { - defaultQueryText = jobId; + defaultQueryText = getJobQueryText(jobId); } if (defaultQueryText !== undefined) { diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/utils.d.ts b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/utils.d.ts index cf4fad9513de5..75d6b149fda08 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/utils.d.ts +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/utils.d.ts @@ -6,4 +6,5 @@ export function getSelectedIdFromUrl(str: string): { groupIds?: string[]; jobId?: string }; export function getGroupQueryText(arr: string[]): string; +export function getJobQueryText(arr: string | string[]): string; export function clearSelectedJobIdFromUrl(str: string): void; diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/utils.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/utils.js index fd0789c9bc103..c1f6d75637ed4 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/utils.js +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/utils.js @@ -309,8 +309,13 @@ export function filterJobs(jobs, clauses) { } else { // filter other clauses, i.e. the toggle group buttons if (Array.isArray(c.value)) { - // the groups value is an array of group ids - js = jobs.filter((job) => jobProperty(job, c.field).some((g) => c.value.indexOf(g) >= 0)); + // if it's an array of job ids + if (c.field === 'id') { + js = jobs.filter((job) => c.value.indexOf(jobProperty(job, c.field)) >= 0); + } else { + // the groups value is an array of group ids + js = jobs.filter((job) => jobProperty(job, c.field).some((g) => c.value.indexOf(g) >= 0)); + } } else { js = jobs.filter((job) => jobProperty(job, c.field) === c.value); } @@ -353,6 +358,7 @@ function jobProperty(job, prop) { job_state: 'jobState', datafeed_state: 'datafeedState', groups: 'groups', + id: 'id', }; return job[propMap[prop]]; } @@ -389,6 +395,10 @@ export function getGroupQueryText(groupIds) { return `groups:(${groupIds.join(' or ')})`; } +export function getJobQueryText(jobIds) { + return Array.isArray(jobIds) ? `id:(${jobIds.join(' OR ')})` : jobIds; +} + export function clearSelectedJobIdFromUrl(url) { if (typeof url === 'string') { url = decodeURIComponent(url); diff --git a/x-pack/plugins/ml/public/index.ts b/x-pack/plugins/ml/public/index.ts index c43df1e1a3d2c..81e10588a3845 100755 --- a/x-pack/plugins/ml/public/index.ts +++ b/x-pack/plugins/ml/public/index.ts @@ -41,6 +41,7 @@ export type { // Static exports export { getSeverityColor, getSeverityType } from '../common/util/anomaly_utils'; export { ANOMALY_SEVERITY } from '../common'; +export { useMlHref, ML_PAGES, MlUrlGenerator } from './ml_url_generator'; // Bundled shared exports // Exported this way so the code doesn't end up in ML's page load bundle diff --git a/x-pack/plugins/ml/public/ml_url_generator/index.ts b/x-pack/plugins/ml/public/ml_url_generator/index.ts index 1579b187278c4..bd9e58654828b 100644 --- a/x-pack/plugins/ml/public/ml_url_generator/index.ts +++ b/x-pack/plugins/ml/public/ml_url_generator/index.ts @@ -4,3 +4,5 @@ * you may not use this file except in compliance with the Elastic License. */ export { MlUrlGenerator, registerUrlGenerator } from './ml_url_generator'; +export { useMlHref } from './use_ml_href'; +export { ML_PAGES } from '../../common/constants/ml_url_generator'; diff --git a/x-pack/plugins/ml/public/ml_url_generator/ml_url_generator.ts b/x-pack/plugins/ml/public/ml_url_generator/ml_url_generator.ts index 704135f5546b1..351e366d1f1d8 100644 --- a/x-pack/plugins/ml/public/ml_url_generator/ml_url_generator.ts +++ b/x-pack/plugins/ml/public/ml_url_generator/ml_url_generator.ts @@ -106,7 +106,7 @@ export function registerUrlGenerator( core: CoreSetup ) { const baseUrl = core.http.basePath.prepend('/app/ml'); - share.urlGenerators.registerUrlGenerator( + return share.urlGenerators.registerUrlGenerator( new MlUrlGenerator({ appBasePath: baseUrl, useHash: core.uiSettings.get('state:storeInSessionStorage'), diff --git a/x-pack/plugins/ml/public/ml_url_generator/use_ml_href.ts b/x-pack/plugins/ml/public/ml_url_generator/use_ml_href.ts new file mode 100644 index 0000000000000..8e5a6ef64e59f --- /dev/null +++ b/x-pack/plugins/ml/public/ml_url_generator/use_ml_href.ts @@ -0,0 +1,34 @@ +/* + * 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, useState } from 'react'; +import { MlPluginStart } from '../index'; +import { MlUrlGeneratorState } from '../../common/types/ml_url_generator'; +export const useMlHref = ( + ml: MlPluginStart | undefined, + basePath: string, + params: MlUrlGeneratorState +) => { + const [mlLink, setMlLink] = useState(`${basePath}/app/ml/${params.page}`); + + useEffect(() => { + let isCancelled = false; + const generateLink = async () => { + if (ml?.urlGenerator !== undefined) { + const href = await ml.urlGenerator.createUrl(params); + if (!isCancelled) { + setMlLink(href); + } + } + }; + generateLink(); + return () => { + isCancelled = true; + }; + }, [ml?.urlGenerator, params]); + + return mlLink; +}; diff --git a/x-pack/plugins/ml/public/plugin.ts b/x-pack/plugins/ml/public/plugin.ts index 034ed090e2212..1f98de380312a 100644 --- a/x-pack/plugins/ml/public/plugin.ts +++ b/x-pack/plugins/ml/public/plugin.ts @@ -16,7 +16,11 @@ import { BehaviorSubject } from 'rxjs'; import { take } from 'rxjs/operators'; import type { ManagementSetup } from 'src/plugins/management/public'; -import type { SharePluginSetup, SharePluginStart } from 'src/plugins/share/public'; +import type { + SharePluginSetup, + SharePluginStart, + UrlGeneratorContract, +} from 'src/plugins/share/public'; import type { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; import type { DataPublicPluginStart } from 'src/plugins/data/public'; import type { HomePublicPluginSetup } from 'src/plugins/home/public'; @@ -34,6 +38,8 @@ import type { SecurityPluginSetup } from '../../security/public'; import { PLUGIN_ICON_SOLUTION, PLUGIN_ID } from '../common/constants/app'; import { setDependencyCache } from './application/util/dependency_cache'; +import { ML_APP_URL_GENERATOR } from '../common/constants/ml_url_generator'; +import { registerUrlGenerator } from './ml_url_generator'; export interface MlStartDependencies { data: DataPublicPluginStart; @@ -59,6 +65,7 @@ export type MlCoreSetup = CoreSetup; export class MlPlugin implements Plugin { private appUpdater = new BehaviorSubject(() => ({})); + private urlGenerator: undefined | UrlGeneratorContract; constructor(private initializerContext: PluginInitializerContext) {} @@ -98,6 +105,10 @@ export class MlPlugin implements Plugin { }, }); + if (pluginsSetup.share) { + this.urlGenerator = registerUrlGenerator(pluginsSetup.share, core); + } + const licensing = pluginsSetup.licensing.license$.pipe(take(1)); licensing.subscribe(async (license) => { const [coreStart] = await core.getStartServices(); @@ -109,7 +120,6 @@ export class MlPlugin implements Plugin { registerFeature, registerManagementSection, registerMlUiActions, - registerUrlGenerator, MlCardState, } = await import('./register_helper'); @@ -118,11 +128,6 @@ export class MlPlugin implements Plugin { if (pluginsSetup.home) { registerFeature(pluginsSetup.home); } - - // the mlUrlGenerator should be registered even without full license - // for other plugins to access ML links - registerUrlGenerator(pluginsSetup.share, core); - const { capabilities } = coreStart.application; // register ML for the index pattern management no data screen. @@ -149,7 +154,9 @@ export class MlPlugin implements Plugin { } }); - return {}; + return { + urlGenerator: this.urlGenerator, + }; } start(core: CoreStart, deps: any) { @@ -159,7 +166,9 @@ export class MlPlugin implements Plugin { http: core.http, i18n: core.i18n, }); - return {}; + return { + urlGenerator: this.urlGenerator, + }; } public stop() {} diff --git a/x-pack/plugins/ml/public/register_helper.ts b/x-pack/plugins/ml/public/register_helper.ts index 97574e296d1eb..b24ec44363775 100644 --- a/x-pack/plugins/ml/public/register_helper.ts +++ b/x-pack/plugins/ml/public/register_helper.ts @@ -12,4 +12,3 @@ export { registerEmbeddables } from './embeddables'; export { registerFeature } from './register_feature'; export { registerManagementSection } from './application/management'; export { registerMlUiActions } from './ui_actions'; -export { registerUrlGenerator } from './ml_url_generator'; diff --git a/x-pack/plugins/security_solution/kibana.json b/x-pack/plugins/security_solution/kibana.json index 7bd76838c7559..3b566559abfcd 100644 --- a/x-pack/plugins/security_solution/kibana.json +++ b/x-pack/plugins/security_solution/kibana.json @@ -32,5 +32,5 @@ ], "server": true, "ui": true, - "requiredBundles": ["esUiShared", "ingestManager", "kibanaUtils", "kibanaReact", "lists"] + "requiredBundles": ["esUiShared", "ingestManager", "kibanaUtils", "kibanaReact", "lists", "ml"] } diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/jobs_table.test.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/jobs_table.test.tsx index 3d7e47a15fc1e..156475f63aa65 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/jobs_table.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/jobs_table.test.tsx @@ -6,7 +6,7 @@ import { shallow, mount } from 'enzyme'; import React from 'react'; -import { waitFor } from '@testing-library/react'; +import { render, waitFor } from '@testing-library/react'; import { JobsTableComponent } from './jobs_table'; import { mockSecurityJobs } from '../api.mock'; import { cloneDeep } from 'lodash/fp'; @@ -14,9 +14,19 @@ import { SecurityJob } from '../types'; jest.mock('../../../lib/kibana'); +export async function getRenderedHref(Component: React.FC, selector: string) { + const el = render(); + + await waitFor(() => el.container.querySelector(selector)); + + const a = el.container.querySelector(selector); + return a?.getAttribute('href') ?? ''; +} + describe('JobsTableComponent', () => { let securityJobs: SecurityJob[]; let onJobStateChangeMock = jest.fn(); + beforeEach(() => { securityJobs = cloneDeep(mockSecurityJobs); onJobStateChangeMock = jest.fn(); @@ -33,30 +43,36 @@ describe('JobsTableComponent', () => { expect(wrapper).toMatchSnapshot(); }); - test('should render the hyperlink which points specifically to the job id', () => { - const wrapper = mount( - + test('should render the hyperlink which points specifically to the job id', async () => { + const href = await getRenderedHref( + () => ( + + ), + '[data-test-subj="jobs-table-link"]' ); - expect(wrapper.find('[data-test-subj="jobs-table-link"]').first().props().href).toEqual( - '/test/base/path/app/ml#/jobs?mlManagement=(jobId:linux_anomalous_network_activity_ecs)' + await waitFor(() => + expect(href).toEqual('/app/ml/jobs?mlManagement=(jobId:linux_anomalous_network_activity_ecs)') ); }); - test('should render the hyperlink with URI encodings which points specifically to the job id', () => { + test('should render the hyperlink with URI encodings which points specifically to the job id', async () => { securityJobs[0].id = 'job id with spaces'; - const wrapper = mount( - + const href = await getRenderedHref( + () => ( + + ), + '[data-test-subj="jobs-table-link"]' ); - expect(wrapper.find('[data-test-subj="jobs-table-link"]').first().props().href).toEqual( - '/test/base/path/app/ml#/jobs?mlManagement=(jobId:job%20id%20with%20spaces)' + await waitFor(() => + expect(href).toEqual("/app/ml/jobs?mlManagement=(jobId:'job%20id%20with%20spaces')") ); }); @@ -68,6 +84,7 @@ describe('JobsTableComponent', () => { onJobStateChange={onJobStateChangeMock} /> ); + wrapper .find('button[data-test-subj="job-switch"]') .first() @@ -79,7 +96,7 @@ describe('JobsTableComponent', () => { }); }); - test('should have a switch when it is not in the loading state', () => { + test('should have a switch when it is not in the loading state', async () => { const wrapper = mount( { onJobStateChange={onJobStateChangeMock} /> ); - expect(wrapper.find('[data-test-subj="job-switch"]').exists()).toBe(true); + await waitFor(() => { + expect(wrapper.find('[data-test-subj="job-switch"]').exists()).toBe(true); + }); }); - test('should not have a switch when it is in the loading state', () => { + test('should not have a switch when it is in the loading state', async () => { const wrapper = mount( { onJobStateChange={onJobStateChangeMock} /> ); - expect(wrapper.find('[data-test-subj="job-switch"]').exists()).toBe(false); + await waitFor(() => { + expect(wrapper.find('[data-test-subj="job-switch"]').exists()).toBe(false); + }); }); }); diff --git a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/jobs_table.tsx b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/jobs_table.tsx index 1e9e689dcd6ff..5e3045efe1f4d 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/jobs_table.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml_popover/jobs_table/jobs_table.tsx @@ -22,10 +22,11 @@ import { } from '@elastic/eui'; import styled from 'styled-components'; -import { useBasePath } from '../../../lib/kibana'; +import { useBasePath, useKibana } from '../../../lib/kibana'; import * as i18n from './translations'; import { JobSwitch } from './job_switch'; import { SecurityJob } from '../types'; +import { useMlHref, ML_PAGES } from '../../../../../../ml/public'; const JobNameWrapper = styled.div` margin: 5px 0; @@ -36,6 +37,37 @@ JobNameWrapper.displayName = 'JobNameWrapper'; // TODO: Use SASS mixin @include EuiTextTruncate when we switch from styled components const truncateThreshold = 200; +interface JobNameProps { + id: string; + description: string; + basePath: string; +} + +const JobName = ({ id, description, basePath }: JobNameProps) => { + const { + services: { ml }, + } = useKibana(); + + const jobUrl = useMlHref(ml, basePath, { + page: ML_PAGES.ANOMALY_DETECTION_JOBS_MANAGE, + pageState: { + jobId: id, + }, + }); + + return ( + + + {id} + + + {description.length > truncateThreshold + ? `${description.substring(0, truncateThreshold)}...` + : description} + + + ); +}; const getJobsTableColumns = ( isLoading: boolean, onJobStateChange: (job: SecurityJob, latestTimestampMs: number, enable: boolean) => Promise, @@ -44,20 +76,7 @@ const getJobsTableColumns = ( { name: i18n.COLUMN_JOB_NAME, render: ({ id, description }: SecurityJob) => ( - - - {id} - - - {description.length > truncateThreshold - ? `${description.substring(0, truncateThreshold)}...` - : description} - - + ), }, { @@ -141,22 +160,32 @@ export const JobsTable = React.memo(JobsTableComponent); JobsTable.displayName = 'JobsTable'; -export const NoItemsMessage = React.memo(({ basePath }: { basePath: string }) => ( - {i18n.NO_ITEMS_TEXT}} - titleSize="xs" - actions={ - - {i18n.CREATE_CUSTOM_JOB} - - } - /> -)); +export const NoItemsMessage = React.memo(({ basePath }: { basePath: string }) => { + const { + services: { ml }, + } = useKibana(); + + const createNewAnomalyDetectionJoUrl = useMlHref(ml, basePath, { + page: ML_PAGES.ANOMALY_DETECTION_CREATE_JOB_SELECT_INDEX, + }); + + return ( + {i18n.NO_ITEMS_TEXT}} + titleSize="xs" + actions={ + + {i18n.CREATE_CUSTOM_JOB} + + } + /> + ); +}); NoItemsMessage.displayName = 'NoItemsMessage'; diff --git a/x-pack/plugins/security_solution/public/common/lib/kibana/kibana_react.mock.ts b/x-pack/plugins/security_solution/public/common/lib/kibana/kibana_react.mock.ts index 6f8ff2e1bb21a..06c152b94cfd8 100644 --- a/x-pack/plugins/security_solution/public/common/lib/kibana/kibana_react.mock.ts +++ b/x-pack/plugins/security_solution/public/common/lib/kibana/kibana_react.mock.ts @@ -30,6 +30,7 @@ import { } from '../../../../common/constants'; import { StartServices } from '../../../types'; import { createSecuritySolutionStorageMock } from '../../mock/mock_local_storage'; +import { MlUrlGenerator } from '../../../../../ml/public'; const mockUiSettings: Record = { [DEFAULT_TIME_RANGE]: { from: 'now-15m', to: 'now', mode: 'quick' }, @@ -113,6 +114,12 @@ export const createStartServicesMock = (): StartServices => { }, security, storage, + ml: { + urlGenerator: new MlUrlGenerator({ + appBasePath: '/app/ml', + useHash: false, + }), + }, } as unknown) as StartServices; }; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx index 414f6f2c2d3bb..e25da49cf7e62 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx @@ -8,7 +8,7 @@ import React from 'react'; import styled from 'styled-components'; import { EuiBadge, EuiIcon, EuiLink, EuiToolTip } from '@elastic/eui'; -import { MlSummaryJob } from '../../../../../../ml/public'; +import { ML_PAGES, MlSummaryJob, useMlHref } from '../../../../../../ml/public'; import { isJobStarted } from '../../../../../common/machine_learning/helpers'; import { useSecurityJobs } from '../../../../common/components/ml_popover/hooks/use_security_jobs'; import { useKibana } from '../../../../common/lib/kibana'; @@ -72,9 +72,16 @@ const Wrapper = styled.div` const MlJobDescriptionComponent: React.FC<{ jobId: string }> = ({ jobId }) => { const { jobs } = useSecurityJobs(false); - const jobUrl = useKibana().services.application.getUrlForApp( - `ml#/jobs?mlManagement=(jobId:${encodeURI(jobId)})` - ); + const { + services: { http, ml }, + } = useKibana(); + const jobUrl = useMlHref(ml, http.basePath.get(), { + page: ML_PAGES.ANOMALY_DETECTION_JOBS_MANAGE, + pageState: { + jobId: [jobId], + }, + }); + const job = jobs.find(({ id }) => id === jobId); const jobIdSpan = {jobId}; diff --git a/x-pack/plugins/security_solution/public/types.ts b/x-pack/plugins/security_solution/public/types.ts index 62069484dd8bd..ef40d34104b72 100644 --- a/x-pack/plugins/security_solution/public/types.ts +++ b/x-pack/plugins/security_solution/public/types.ts @@ -23,12 +23,14 @@ import { SecurityPluginSetup } from '../../security/public'; import { AppFrontendLibs } from './common/lib/lib'; import { ResolverPluginSetup } from './resolver/types'; import { Inspect } from '../common/search_strategy'; +import { MlPluginSetup, MlPluginStart } from '../../ml/public'; export interface SetupPlugins { home?: HomePublicPluginSetup; security: SecurityPluginSetup; triggers_actions_ui: TriggersActionsSetup; usageCollection?: UsageCollectionSetup; + ml?: MlPluginSetup; } export interface StartPlugins { @@ -40,6 +42,7 @@ export interface StartPlugins { newsfeed?: NewsfeedStart; triggers_actions_ui: TriggersActionsStart; uiActions: UiActionsStart; + ml?: MlPluginStart; } export type StartServices = CoreStart & From 5aa3fb5e0634c84ae3521de6cad663585d7b01ae Mon Sep 17 00:00:00 2001 From: Tre Date: Wed, 30 Sep 2020 19:04:22 -0600 Subject: [PATCH 056/142] [QA][Code Coverage] Team Assignment Docs Update (#78890) [QA][Code Coverage] Team Assignment Docs Update (#78890) --- .../docs/team_assignment/README.md | 43 ++++++++++++++++-- .../team_assignment/security_privleges.png | Bin 231895 -> 0 bytes 2 files changed, 38 insertions(+), 5 deletions(-) delete mode 100644 src/dev/code_coverage/docs/team_assignment/security_privleges.png diff --git a/src/dev/code_coverage/docs/team_assignment/README.md b/src/dev/code_coverage/docs/team_assignment/README.md index 3509fb5c2a4fc..f2884fb42b8d7 100644 --- a/src/dev/code_coverage/docs/team_assignment/README.md +++ b/src/dev/code_coverage/docs/team_assignment/README.md @@ -1,8 +1,41 @@ -# Team Assignment Ingestion Pipeline +# Code Coverage Team Assignments -Team assignment will occur once per ci run. -Team assignment uses an ingest pipeline. +Team assignment occurs once per ci run. -The coverage user has the coverage admin role. +The "orchestration" entry point is a [Jenkinsfile Scripted Pipeline](https://github.com/elastic/kibana/blob/f73bc48b3bbbb5ad2042c1aa267aea2150b7b742/.ci/Jenkinsfile_coverage#L21) +This Jenkinsfile runs a [shell script](https://github.com/elastic/kibana/blob/master/src/dev/code_coverage/shell_scripts/generate_team_assignments_and_ingest_coverage.sh#L33) that kicks everything off. +The end result is the data is ingested to our [Kibana Stats Cluster](https://kibana-stats.elastic.dev/app/dashboards#/view/58b8db70-62f9-11ea-8312-7f2d69b79843?_g=(filters%3A!()%2CrefreshInterval%3A(pause%3A!t%2Cvalue%3A0)%2Ctime%3A(from%3Anow-7d%2Cto%3Anow))) -This role must have the rights depicted below ![Cluster Rights](./security_privleges.png) +## Team Assignment Parsing (from .github/CODEOWNERS) +We add additional metadata to the CODEOWNERS file. +This metadata allows users to assign teams to paths, in a friendly location. +Example CODEOWNERS Block: +_notice the coverage delimiter `#CC# ...`_ +``` +/x-pack/test/functional/es_archives/endpoint/ @elastic/endpoint-app-team @elastic/siem +/x-pack/test/plugin_functional/plugins/resolver_test/ @elastic/endpoint-app-team @elastic/siem +/x-pack/test/plugin_functional/test_suites/resolver/ @elastic/endpoint-app-team @elastic/siem +#CC# /x-pack/legacy/plugins/siem/ @elastic/siem +#CC# /x-pack/plugins/siem/ @elastic/siem +#CC# /x-pack/plugins/security_solution/ @elastic/siem +``` +The first 3 lines above fill the usual purpose of the CODEOWNERS file and cause PRs modifying files in these paths to require approval by the listed team(s). +They also attribute files in those paths for purpose of code coverage reporting. +The last 3 lines above ONLY attribute files in those paths for purpose of code coverage reporting. + +## Team Assignment Data File Creation (Before Ingestion) +We create a data file containing all paths in the repo, with a team assigned. +Example Team Assignments Block: +``` +x-pack/plugins/security_solution/common/constants.ts siem +x-pack/plugins/security_solution/common/detection_engine/build_exceptions_query.test.ts siem +x-pack/plugins/security_solution/common/detection_engine/build_exceptions_query.ts siem +... +``` + +## Team Assignment Data File Usage (During Code Coverage Ingestion) +Subsequently, we use the data file during ingestion. +We search the data file, for any given "coveredFilePath" + - Given the above assignments block, and lets say the "coveredFilePath" during ingestion is + - `x-pack/plugins/security_solution/common/constants.ts` + - The team assignment would be `siem` in our [Kibana Stats Cluster](https://kibana-stats.elastic.dev/app/dashboards#/view/58b8db70-62f9-11ea-8312-7f2d69b79843?_g=(filters%3A!()%2CrefreshInterval%3A(pause%3A!t%2Cvalue%3A0)%2Ctime%3A(from%3Anow-7d%2Cto%3Anow))) diff --git a/src/dev/code_coverage/docs/team_assignment/security_privleges.png b/src/dev/code_coverage/docs/team_assignment/security_privleges.png deleted file mode 100644 index 002774f3ecefaebad90c086026e518df958adcb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231895 zcmd?QcQjn>-##jhAVeZa^b|xFz1N6dVi+-6L>;|%MuJF0uhEGz+8~VHl8D}oUPkZC zh&Gtu>^$##-uHLbS<>xvC z1jG;mf@>8w34tx`BgPj51SG^z1qE#t1qEhpS0^i|y(IyG^2g95FJ0XU>W;x?6rIEC zjbd&G|(k#NY#ULmE8Vb1>fT26Pg z`$pX7mF6RKX7$7=A^>-akzT)e#zgRh=7qoit-for_C|MSP-xX28D?z~9BB{%H3b0^ z#cMvwW$w8-V}iS|vdajZxw6Pz+^Bx_#lh+2EfcWKBT9lU1~YMi%#4t|D#Ff-UHO zl$=@h-6SMk3=A3j@g@#M5m-A-N!LhL6u&|NCOJ*BI*~b4xEQhK`*FE6`PpKPX&ush z$JHi1nx-MU8^sU>%Rhw%W3$%5_n4pJzB#gl-eAi6gDef_r z%2I>`Kc%3$`~Jy8A7!eMw;M4JEJ*8RGqnls-3nE3(dJLMvKzXeEnj%AIAkk_DZ6(_ zXoFhtmQ+YVw$BFHA@Pgv7N41@!>C?sd?q*iF;F4W^ng5!a=~4cPWpQCH@!WBI;s}J z`L{}oDkm&WAy=Q?4Syf^q9}Lcsa*mc2L;vpH@TiUt}ojQIdmzDuZ@K@grz>`&X)f2 z)rJE?f`}59lgJJjQg^@VOC!!?9A2hS`^9e;pIv-*R_9

7_|cBb>f@Eh_C*olsr9EtmOP-T86F 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≤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�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

PZ$%ePVjX}vuHA#gG05D2Q+pzF3yAjl%p!@^-S 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 KQ_lUz`+op6`cJ+9 From 0776bf7a3ebb6f5639b32a145887d22f31393f9e Mon Sep 17 00:00:00 2001 From: Shahzad Date: Thu, 1 Oct 2020 07:40:27 +0200 Subject: [PATCH 057/142] [UX] Improve page responsive (#78759) * WIP * add resizeable panel * Improve page responsiveness * Improve page responsiveness * fix types Co-authored-by: Elastic Machine --- .../RumDashboard/Charts/PageLoadDistChart.tsx | 5 +- .../RumDashboard/Charts/PageViewsChart.tsx | 2 +- .../Charts/VisitorBreakdownChart.tsx | 7 ++- .../app/RumDashboard/CoreVitals/index.tsx | 8 +-- .../ImpactfulMetrics/JSErrors.tsx | 10 ++-- .../PercentileAnnotations.tsx | 12 ++-- .../PageLoadDistribution/index.tsx | 3 +- .../app/RumDashboard/PageViewsTrend/index.tsx | 3 +- .../RumDashboard/Panels/PageLoadAndViews.tsx | 39 +++++++++++++ .../RumDashboard/Panels/VisitorBreakdowns.tsx | 39 +++++++++++++ .../app/RumDashboard/RumDashboard.tsx | 55 +++++++++---------- .../components/app/RumDashboard/RumHome.tsx | 32 +++++------ .../RumDashboard/UXMetrics/KeyUXMetrics.tsx | 2 +- .../app/RumDashboard/UXMetrics/index.tsx | 4 +- .../RumDashboard/VisitorBreakdown/index.tsx | 2 +- .../app/RumDashboard/hooks/useBreakPoints.ts | 38 +++++++++++++ .../app/RumDashboard/translations.ts | 3 + .../lib/rum_client/get_visitor_breakdown.ts | 20 ++++--- 18 files changed, 203 insertions(+), 81 deletions(-) create mode 100644 x-pack/plugins/apm/public/components/app/RumDashboard/Panels/PageLoadAndViews.tsx create mode 100644 x-pack/plugins/apm/public/components/app/RumDashboard/Panels/VisitorBreakdowns.tsx create mode 100644 x-pack/plugins/apm/public/components/app/RumDashboard/hooks/useBreakPoints.ts diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/Charts/PageLoadDistChart.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/Charts/PageLoadDistChart.tsx index 79cd1c5753ae5..4a5f43dacedf4 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/Charts/PageLoadDistChart.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/Charts/PageLoadDistChart.tsx @@ -89,7 +89,10 @@ export function PageLoadDistChart({ const [darkMode] = useUiSetting$('theme:darkMode'); return ( - + {(!loading || data) && ( + {(!loading || data) && ( + d.count as number} valueGetter="percent" percentFormatter={(d: number) => diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/CoreVitals/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/CoreVitals/index.tsx index cd7fd0af6d683..fcc7b214943ff 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/CoreVitals/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/CoreVitals/index.tsx @@ -25,8 +25,8 @@ export function CoreVitals({ data, loading }: Props) { const { lcp, lcpRanks, fid, fidRanks, cls, clsRanks } = data || {}; return ( - - + + - + - + 0 + ? ((data?.totalErrorPages ?? 0) / totalPageViews) * 100 + : 0; + return ( <> @@ -109,10 +114,7 @@ export function JSErrors() { title={i18n.translate('xpack.apm.rum.jsErrors.errorRateValue', { defaultMessage: '{errorRate} %', values: { - errorRate: ( - ((data?.totalErrorPages ?? 0) / totalPageViews) * - 100 - ).toFixed(0), + errorRate: errorRate.toFixed(0), }, })} description={I18LABELS.errorRate} diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/PercentileAnnotations.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/PercentileAnnotations.tsx index 7e81dc011bdb5..2abbcb8239aa8 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/PercentileAnnotations.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/PercentileAnnotations.tsx @@ -10,9 +10,9 @@ import { LineAnnotation, LineAnnotationDatum, LineAnnotationStyle, + Position, } from '@elastic/charts'; import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; -import styled from 'styled-components'; import { EuiToolTip } from '@elastic/eui'; interface Props { @@ -28,11 +28,6 @@ function generateAnnotationData( })); } -const PercentileMarker = styled.span` - position: relative; - bottom: 205px; -`; - export function PercentileAnnotations({ percentiles }: Props) { const dataValues = generateAnnotationData(percentiles) ?? []; @@ -66,8 +61,9 @@ export function PercentileAnnotations({ percentiles }: Props) { dataValues={[annotation]} style={style} hideTooltips={true} + markerPosition={Position.Top} marker={ - + } content={ @@ -76,7 +72,7 @@ export function PercentileAnnotations({ percentiles }: Props) { > <>{annotation.details}th - + } /> ))} diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/index.tsx index 88d14a0213a96..45a40712f90fb 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/index.tsx @@ -13,6 +13,7 @@ import { BreakdownFilter } from '../Breakdowns/BreakdownFilter'; import { PageLoadDistChart } from '../Charts/PageLoadDistChart'; import { BreakdownItem } from '../../../../../typings/ui_filters'; import { ResetPercentileZoom } from './ResetPercentileZoom'; +import { FULL_HEIGHT } from '../RumDashboard'; export interface PercentileRange { min?: number | null; @@ -71,7 +72,7 @@ export function PageLoadDistribution() { }; return ( -

+
diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/PageViewsTrend/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/PageViewsTrend/index.tsx index 621098b6028cb..7492096b93898 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/PageViewsTrend/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/PageViewsTrend/index.tsx @@ -12,6 +12,7 @@ import { I18LABELS } from '../translations'; import { BreakdownFilter } from '../Breakdowns/BreakdownFilter'; import { PageViewsChart } from '../Charts/PageViewsChart'; import { BreakdownItem } from '../../../../../typings/ui_filters'; +import { FULL_HEIGHT } from '../RumDashboard'; export function PageViewsTrend() { const { urlParams, uiFilters } = useUrlParams(); @@ -48,7 +49,7 @@ export function PageViewsTrend() { ); return ( -
+
diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/Panels/PageLoadAndViews.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/Panels/PageLoadAndViews.tsx new file mode 100644 index 0000000000000..cdc52c98de971 --- /dev/null +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/Panels/PageLoadAndViews.tsx @@ -0,0 +1,39 @@ +/* + * 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 { EuiPanel, EuiResizableContainer } from '@elastic/eui'; +import { FULL_HEIGHT } from '../RumDashboard'; +import { PageLoadDistribution } from '../PageLoadDistribution'; +import { PageViewsTrend } from '../PageViewsTrend'; +import { useBreakPoints } from '../hooks/useBreakPoints'; + +export function PageLoadAndViews() { + const { isLarge } = useBreakPoints(); + + return ( + + {(EuiResizablePanel, EuiResizableButton) => ( + <> + + + + + + + + + + + + + )} + + ); +} diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/Panels/VisitorBreakdowns.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/Panels/VisitorBreakdowns.tsx new file mode 100644 index 0000000000000..87ffacbf56f96 --- /dev/null +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/Panels/VisitorBreakdowns.tsx @@ -0,0 +1,39 @@ +/* + * 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 { EuiPanel, EuiResizableContainer } from '@elastic/eui'; +import { VisitorBreakdown } from '../VisitorBreakdown'; +import { VisitorBreakdownMap } from '../VisitorBreakdownMap'; +import { FULL_HEIGHT } from '../RumDashboard'; +import { useBreakPoints } from '../hooks/useBreakPoints'; + +export function VisitorBreakdownsPanel() { + const { isLarge } = useBreakPoints(); + + return ( + + {(EuiResizablePanel, EuiResizableButton) => ( + <> + + + + + + + + + + + + + )} + + ); +} diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/RumDashboard.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/RumDashboard.tsx index 37522b06970c1..0004599b1821b 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/RumDashboard.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/RumDashboard.tsx @@ -10,20 +10,24 @@ import { EuiTitle, EuiSpacer, EuiPanel, + EuiResizableContainer, } from '@elastic/eui'; import React from 'react'; import { ClientMetrics } from './ClientMetrics'; -import { PageViewsTrend } from './PageViewsTrend'; -import { PageLoadDistribution } from './PageLoadDistribution'; import { I18LABELS } from './translations'; -import { VisitorBreakdown } from './VisitorBreakdown'; import { UXMetrics } from './UXMetrics'; -import { VisitorBreakdownMap } from './VisitorBreakdownMap'; import { ImpactfulMetrics } from './ImpactfulMetrics'; +import { PageLoadAndViews } from './Panels/PageLoadAndViews'; +import { VisitorBreakdownsPanel } from './Panels/VisitorBreakdowns'; +import { useBreakPoints } from './hooks/useBreakPoints'; + +export const FULL_HEIGHT = { height: '100%' }; export function RumDashboard() { + const { isLarge, isSmall } = useBreakPoints(); + return ( - + @@ -41,31 +45,22 @@ export function RumDashboard() { - - - - - - - - - - - - - - - - - - - - - - - - - + + {(EuiResizablePanel, EuiResizableButton) => ( + <> + + + + + + + + + )} + diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/RumHome.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/RumHome.tsx index 71a992ae4df82..f30f9ba5af257 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/RumHome.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/RumHome.tsx @@ -18,22 +18,20 @@ export const UX_LABEL = i18n.translate('xpack.apm.ux.title', { export function RumHome() { return ( -
- - - - - -

{UX_LABEL}

-
-
- - - -
-
- -
-
+ + + + + +

{UX_LABEL}

+
+
+ + + +
+
+ +
); } diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/KeyUXMetrics.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/KeyUXMetrics.tsx index 37836a2c47d64..53722658cafef 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/KeyUXMetrics.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/KeyUXMetrics.tsx @@ -57,7 +57,7 @@ export function KeyUXMetrics({ data, loading }: Props) { // Note: FCP value is in ms unit return ( - + - +

{I18LABELS.userExperienceMetrics}

@@ -70,7 +70,7 @@ export function UXMetrics() {
- +

diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdown/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdown/index.tsx index 092c416303bb5..67127f9c2fd81 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdown/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdown/index.tsx @@ -44,7 +44,7 @@ export function VisitorBreakdown() {

{VisitorBreakdownLabel}

- +

{I18LABELS.browser}

diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/hooks/useBreakPoints.ts b/x-pack/plugins/apm/public/components/app/RumDashboard/hooks/useBreakPoints.ts new file mode 100644 index 0000000000000..ea7b155045fdc --- /dev/null +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/hooks/useBreakPoints.ts @@ -0,0 +1,38 @@ +/* + * 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 { useState } from 'react'; +import useWindowSize from 'react-use/lib/useWindowSize'; +import useDebounce from 'react-use/lib/useDebounce'; +import { isWithinMaxBreakpoint } from '@elastic/eui'; + +export function useBreakPoints() { + const [screenSizes, setScreenSizes] = useState({ + isSmall: false, + isMedium: false, + isLarge: false, + isXl: false, + }); + + const { width } = useWindowSize(); + + useDebounce( + () => { + const windowWidth = window.innerWidth; + + setScreenSizes({ + isSmall: isWithinMaxBreakpoint(windowWidth, 's'), + isMedium: isWithinMaxBreakpoint(windowWidth, 'm'), + isLarge: isWithinMaxBreakpoint(windowWidth, 'l'), + isXl: isWithinMaxBreakpoint(windowWidth, 'xl'), + }); + }, + 50, + [width] + ); + + return screenSizes; +} diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/translations.ts b/x-pack/plugins/apm/public/components/app/RumDashboard/translations.ts index dd7721d9f7129..fd118096526d7 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/translations.ts +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/translations.ts @@ -150,6 +150,9 @@ export const I18LABELS = { percentile99th: i18n.translate('xpack.apm.ux.percentile.99th', { defaultMessage: '99th', }), + noData: i18n.translate('xpack.apm.ux.visitorBreakdown.noData', { + defaultMessage: 'No data.', + }), }; export const VisitorBreakdownLabel = i18n.translate( diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_visitor_breakdown.ts b/x-pack/plugins/apm/server/lib/rum_client/get_visitor_breakdown.ts index 7345d6acc0f82..52d089e4e29c9 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_visitor_breakdown.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_visitor_breakdown.ts @@ -74,20 +74,24 @@ export async function getVisitorBreakdown({ name: bucket.key as string, })); - browserItems.push({ - count: totalItems - browserTotal, - name: 'Others', - }); + if (totalItems > 0) { + browserItems.push({ + count: totalItems - browserTotal, + name: 'Others', + }); + } const osItems = os.buckets.map((bucket) => ({ count: bucket.doc_count, name: bucket.key as string, })); - osItems.push({ - count: totalItems - osTotal, - name: 'Others', - }); + if (totalItems > 0) { + osItems.push({ + count: totalItems - osTotal, + name: 'Others', + }); + } return { os: osItems, From 42b5d787e654bca0c1e0b789cd7f6f27065b7109 Mon Sep 17 00:00:00 2001 From: Robert Oskamp Date: Thu, 1 Oct 2020 07:46:07 +0200 Subject: [PATCH 058/142] [ML] Functional tests - stabilize calendar edit tests (#78950) This PR stabilizes the calendar edit test by making sure the correct calendar form is displayed on the edit page. --- .../__snapshots__/calendar_form.test.js.snap | 9 +++++++-- .../calendars/edit/calendar_form/calendar_form.js | 4 ++-- .../functional/apps/ml/settings/calendar_edit.ts | 11 ++++++++--- x-pack/test/functional/apps/ml/settings/index.ts | 2 +- .../functional/services/ml/settings_calendar.ts | 15 ++++++++++++--- 5 files changed, 30 insertions(+), 11 deletions(-) diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/__snapshots__/calendar_form.test.js.snap b/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/__snapshots__/calendar_form.test.js.snap index ad76bb9115617..49caddfd29f82 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/__snapshots__/calendar_form.test.js.snap +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/__snapshots__/calendar_form.test.js.snap @@ -1,9 +1,12 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`CalendarForm CalendarId shown as title when editing 1`] = ` - +

+

- +

+ {isEdit === true ? ( ) : ( diff --git a/x-pack/test/functional/apps/ml/settings/calendar_edit.ts b/x-pack/test/functional/apps/ml/settings/calendar_edit.ts index e738b50a2fe05..f9ba8fccd3c1c 100644 --- a/x-pack/test/functional/apps/ml/settings/calendar_edit.ts +++ b/x-pack/test/functional/apps/ml/settings/calendar_edit.ts @@ -20,8 +20,7 @@ export default function ({ getService }: FtrProviderContext) { const jobConfigs = [createJobConfig('test_calendar_ad_1'), createJobConfig('test_calendar_ad_2')]; const newJobGroups = ['farequote']; - // FLAKY: https://github.com/elastic/kibana/issues/78288 - describe.skip('calendar edit', function () { + describe('calendar edit', function () { before(async () => { await esArchiver.loadIfNeeded('ml/farequote'); await ml.testResources.createIndexPatternIfNeeded('ft_farequote', '@timestamp'); @@ -56,6 +55,7 @@ export default function ({ getService }: FtrProviderContext) { await ml.testExecution.logTestStep('calendar edit opens existing calendar'); await ml.settingsCalendar.openCalendarEditForm(calendarId); + await ml.settingsCalendar.assertCalendarTitleValue(calendarId); await ml.testExecution.logTestStep( 'calendar edit deselects previous job selection and assigns new job groups' @@ -85,14 +85,19 @@ export default function ({ getService }: FtrProviderContext) { await ml.testExecution.logTestStep('calendar edit re-opens the updated calendar'); await ml.settingsCalendar.openCalendarEditForm(calendarId); + await ml.settingsCalendar.assertCalendarTitleValue(calendarId); + await ml.testExecution.logTestStep('calendar edit verifies the job selection is empty'); await ml.settingsCalendar.assertJobSelection([]); + await ml.testExecution.logTestStep( 'calendar edit verifies the job group selection was updated' ); await ml.settingsCalendar.assertJobGroupSelection(newJobGroups); - await ml.testExecution.logTestStep('calendar edit verifies calendar updated correctly'); + await ml.testExecution.logTestStep( + 'calendar edit verifies calendar events updated correctly' + ); await asyncForEach(testEvents, async ({ description }) => { await ml.settingsCalendar.assertEventRowMissing(description); }); diff --git a/x-pack/test/functional/apps/ml/settings/index.ts b/x-pack/test/functional/apps/ml/settings/index.ts index 5b2c7d15e1959..eb91e005ebd71 100644 --- a/x-pack/test/functional/apps/ml/settings/index.ts +++ b/x-pack/test/functional/apps/ml/settings/index.ts @@ -7,7 +7,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { describe('settings', function () { - this.tags(['quynh', 'skipFirefox']); + this.tags(['mlqa', 'skipFirefox']); loadTestFile(require.resolve('./calendar_creation')); loadTestFile(require.resolve('./calendar_edit')); diff --git a/x-pack/test/functional/services/ml/settings_calendar.ts b/x-pack/test/functional/services/ml/settings_calendar.ts index c269636522923..3a2c9149a0634 100644 --- a/x-pack/test/functional/services/ml/settings_calendar.ts +++ b/x-pack/test/functional/services/ml/settings_calendar.ts @@ -121,7 +121,7 @@ export function MachineLearningSettingsCalendarProvider( async openCalendarEditForm(calendarId: string) { await testSubjects.click(this.rowSelector(calendarId, 'mlEditCalendarLink')); - await testSubjects.existOrFail('mlPageCalendarEdit'); + await testSubjects.existOrFail('mlPageCalendarEdit > mlCalendarFormEdit', { timeout: 5000 }); }, async assertApplyToAllJobsSwitchEnabled(expectedValue: boolean) { @@ -224,6 +224,15 @@ export function MachineLearningSettingsCalendarProvider( ); }, + async assertCalendarTitleValue(expectedCalendarId: string) { + const actualValue = await testSubjects.getVisibleText('mlCalendarTitle'); + const expectedValue = `Calendar ${expectedCalendarId}`; + expect(actualValue).to.eql( + expectedValue, + `Calendar title should be '${expectedValue}' (got '${actualValue}')` + ); + }, + async setCalendarId(calendarId: string) { await mlCommonUI.setValueWithChecks('mlCalendarIdInput', calendarId, { clearWithKeyboard: true, @@ -271,13 +280,13 @@ export function MachineLearningSettingsCalendarProvider( async navigateToCalendarCreationPage() { await testSubjects.existOrFail('mlCalendarButtonCreate'); await testSubjects.click('mlCalendarButtonCreate'); - await testSubjects.existOrFail('mlPageCalendarEdit'); + await testSubjects.existOrFail('mlPageCalendarEdit > mlCalendarFormNew', { timeout: 5000 }); }, async openNewCalendarEventForm() { await testSubjects.existOrFail('mlCalendarNewEventButton'); await testSubjects.click('mlCalendarNewEventButton'); - await testSubjects.existOrFail('mlPageCalendarEdit'); + await testSubjects.existOrFail('mlCalendarEventForm'); }, async assertCalendarEventDescriptionValue(expectedValue: string) { From ec9d220b3c22d45a8a71b10920eedae122053b81 Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Thu, 1 Oct 2020 08:23:07 +0200 Subject: [PATCH 059/142] [Discover] Unskip doc link functional test (#78600) * Flaky test runner confirmed it's not flaky --- test/functional/apps/discover/_doc_navigation.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/functional/apps/discover/_doc_navigation.js b/test/functional/apps/discover/_doc_navigation.js index 31aef96918ffa..87a150c7d6961 100644 --- a/test/functional/apps/discover/_doc_navigation.js +++ b/test/functional/apps/discover/_doc_navigation.js @@ -28,8 +28,7 @@ export default function ({ getService, getPageObjects }) { const esArchiver = getService('esArchiver'); const retry = getService('retry'); - // FLAKY: https://github.com/elastic/kibana/issues/78373 - describe.skip('doc link in discover', function contextSize() { + describe('doc link in discover', function contextSize() { beforeEach(async function () { log.debug('load kibana index with default index pattern'); await esArchiver.loadIfNeeded('discover'); From 3d9ea52803f433d3103ba62464b8157ac5541a24 Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Thu, 1 Oct 2020 09:34:25 +0300 Subject: [PATCH 060/142] [Actions][Jira] Set parent issue for Sub-task issue type (#78772) --- docs/user/alerting/action-types/jira.asciidoc | 2 + x-pack/plugins/actions/README.md | 25 ++-- .../builtin_action_types/jira/api.test.ts | 32 +++++ .../server/builtin_action_types/jira/api.ts | 20 +++- .../server/builtin_action_types/jira/index.ts | 26 ++++- .../server/builtin_action_types/jira/mocks.ts | 13 +++ .../builtin_action_types/jira/schema.ts | 11 ++ .../builtin_action_types/jira/service.test.ts | 109 ++++++++++++++++++ .../builtin_action_types/jira/service.ts | 67 +++++++++++ .../server/builtin_action_types/jira/types.ts | 35 +++++- .../builtin_action_types/jira/api.ts | 38 ++++++ .../jira/jira_params.test.tsx | 3 + .../builtin_action_types/jira/jira_params.tsx | 32 ++++- .../jira/search_issues.tsx | 104 +++++++++++++++++ .../builtin_action_types/jira/translations.ts | 37 ++++++ .../builtin_action_types/jira/types.ts | 1 + .../jira/use_get_issues.tsx | 94 +++++++++++++++ .../jira/use_get_single_issue.tsx | 96 +++++++++++++++ .../actions/builtin_action_types/jira.ts | 12 +- 19 files changed, 733 insertions(+), 24 deletions(-) create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/search_issues.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_issues.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_single_issue.tsx diff --git a/docs/user/alerting/action-types/jira.asciidoc b/docs/user/alerting/action-types/jira.asciidoc index 48bd6c8501b9f..65e5ee4fc4a01 100644 --- a/docs/user/alerting/action-types/jira.asciidoc +++ b/docs/user/alerting/action-types/jira.asciidoc @@ -69,6 +69,8 @@ Priority:: The priority of the incident. Labels:: The labels of the incident. Title:: A title for the issue, used for searching the contents of the knowledge base. Description:: The details about the incident. +Parent:: The parent issue id or key. Only for `Sub-task` issue types. +Priority:: The priority of the incident. Additional comments:: Additional information for the client, such as how to troubleshoot the issue. [[configuring-jira]] diff --git a/x-pack/plugins/actions/README.md b/x-pack/plugins/actions/README.md index af29a1d537499..02e8e91c987d8 100644 --- a/x-pack/plugins/actions/README.md +++ b/x-pack/plugins/actions/README.md @@ -274,12 +274,12 @@ Running the action by scheduling a task means that we will no longer have a user The following table describes the properties of the `options` object. -| Property | Description | Type | -| -------- | ------------------------------------------------------------------------------------------------------ | ------ | -| id | The id of the action you want to execute. | string | -| params | The `params` value to give the action type executor. | object | -| spaceId | The space id the action is within. | string | -| apiKey | The Elasticsearch API key to use for context. (Note: only required and used when security is enabled). | string | +| Property | Description | Type | +| -------- | ------------------------------------------------------------------------------------------------------ | ---------------- | +| id | The id of the action you want to execute. | string | +| params | The `params` value to give the action type executor. | object | +| spaceId | The space id the action is within. | string | +| apiKey | The Elasticsearch API key to use for context. (Note: only required and used when security is enabled). | string | | source | The source of the execution, either an HTTP request or a reference to a Saved Object. | object, optional | ## Example @@ -308,11 +308,11 @@ This api runs the action and asynchronously returns the result of running the ac The following table describes the properties of the `options` object. -| Property | Description | Type | -| -------- | ------------------------------------------------------------------------------------ | ------ | -| id | The id of the action you want to execute. | string | -| params | The `params` value to give the action type executor. | object | -| source | The source of the execution, either an HTTP request or a reference to a Saved Object.| object, optional | +| Property | Description | Type | +| -------- | ------------------------------------------------------------------------------------- | ---------------- | +| id | The id of the action you want to execute. | string | +| params | The `params` value to give the action type executor. | object | +| source | The source of the execution, either an HTTP request or a reference to a Saved Object. | object, optional | ## Example @@ -330,7 +330,7 @@ const result = await actionsClient.execute({ }, source: asSavedObjectExecutionSource({ id: '573891ae-8c48-49cb-a197-0cd5ec34a88b', - type: 'alert' + type: 'alert', }), }); ``` @@ -620,6 +620,7 @@ The Jira action uses the [V2 API](https://developer.atlassian.com/cloud/jira/pla | issueType | The id of the issue type in Jira. | string _(optional)_ | | priority | The name of the priority in Jira. Example: `Medium`. | string _(optional)_ | | labels | An array of labels. | string[] _(optional)_ | +| parent | The parent issue id or key. Only for `Sub-task` issue types. | string _(optional)_ | | comments | The comments of the case. A comment is of the form `{ commentId: string, version: string, comment: string }` | object[] _(optional)_ | #### `subActionParams (issueTypes)` diff --git a/x-pack/plugins/actions/server/builtin_action_types/jira/api.test.ts b/x-pack/plugins/actions/server/builtin_action_types/jira/api.test.ts index 4495c37f758ee..3948a19d40dae 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/jira/api.test.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/jira/api.test.ts @@ -93,6 +93,7 @@ describe('api', () => { issueType: '10006', labels: ['kibana', 'elastic'], priority: 'High', + parent: null, }, }); expect(externalService.updateIncident).not.toHaveBeenCalled(); @@ -252,6 +253,7 @@ describe('api', () => { issueType: '10006', labels: ['kibana', 'elastic'], priority: 'High', + parent: null, }, }); expect(externalService.createIncident).not.toHaveBeenCalled(); @@ -380,6 +382,36 @@ describe('api', () => { }); }); + describe('getIssues', () => { + test('it returns the issues correctly', async () => { + const res = await api.issues({ + externalService, + params: { title: 'Title test' }, + }); + expect(res).toEqual([ + { + id: '10267', + key: 'RJ-107', + title: 'Test title', + }, + ]); + }); + }); + + describe('getIssue', () => { + test('it returns the issue correctly', async () => { + const res = await api.issue({ + externalService, + params: { id: 'RJ-107' }, + }); + expect(res).toEqual({ + id: '10267', + key: 'RJ-107', + title: 'Test title', + }); + }); + }); + describe('mapping variations', () => { test('overwrite & append', async () => { mapping.set('title', { diff --git a/x-pack/plugins/actions/server/builtin_action_types/jira/api.ts b/x-pack/plugins/actions/server/builtin_action_types/jira/api.ts index a64eb7a2036ca..559bbc047b134 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/jira/api.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/jira/api.ts @@ -13,8 +13,10 @@ import { Incident, GetFieldsByIssueTypeHandlerArgs, GetIssueTypesHandlerArgs, + GetIssuesHandlerArgs, PushToServiceApiParams, PushToServiceResponse, + GetIssueHandlerArgs, } from './types'; // TODO: to remove, need to support Case @@ -46,6 +48,18 @@ const getFieldsByIssueTypeHandler = async ({ return res; }; +const getIssuesHandler = async ({ externalService, params }: GetIssuesHandlerArgs) => { + const { title } = params; + const res = await externalService.getIssues(title); + return res; +}; + +const getIssueHandler = async ({ externalService, params }: GetIssueHandlerArgs) => { + const { id } = params; + const res = await externalService.getIssue(id); + return res; +}; + const pushToServiceHandler = async ({ externalService, mapping, @@ -83,8 +97,8 @@ const pushToServiceHandler = async ({ currentIncident, }); } else { - const { title, description, priority, labels, issueType } = params; - incident = { summary: title, description, priority, labels, issueType }; + const { title, description, priority, labels, issueType, parent } = params; + incident = { summary: title, description, priority, labels, issueType, parent }; } if (externalId != null) { @@ -134,4 +148,6 @@ export const api: ExternalServiceApi = { getIncident: getIncidentHandler, issueTypes: getIssueTypesHandler, fieldsByIssueType: getFieldsByIssueTypeHandler, + issues: getIssuesHandler, + issue: getIssueHandler, }; diff --git a/x-pack/plugins/actions/server/builtin_action_types/jira/index.ts b/x-pack/plugins/actions/server/builtin_action_types/jira/index.ts index d3346557f3684..9d6ff90c33700 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/jira/index.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/jira/index.ts @@ -25,6 +25,8 @@ import { JiraExecutorResultData, ExecutorSubActionGetFieldsByIssueTypeParams, ExecutorSubActionGetIssueTypesParams, + ExecutorSubActionGetIssuesParams, + ExecutorSubActionGetIssueParams, } from './types'; import * as i18n from './translations'; import { Logger } from '../../../../../../src/core/server'; @@ -37,7 +39,13 @@ interface GetActionTypeParams { configurationUtilities: ActionsConfigurationUtilities; } -const supportedSubActions: string[] = ['pushToService', 'issueTypes', 'fieldsByIssueType']; +const supportedSubActions: string[] = [ + 'pushToService', + 'issueTypes', + 'fieldsByIssueType', + 'issues', + 'issue', +]; // action type definition export function getActionType( @@ -137,5 +145,21 @@ async function executor( }); } + if (subAction === 'issues') { + const getIssuesParams = subActionParams as ExecutorSubActionGetIssuesParams; + data = await api.issues({ + externalService, + params: getIssuesParams, + }); + } + + if (subAction === 'issue') { + const getIssueParams = subActionParams as ExecutorSubActionGetIssueParams; + data = await api.issue({ + externalService, + params: getIssueParams, + }); + } + return { status: 'ok', data: data ?? {}, actionId }; } diff --git a/x-pack/plugins/actions/server/builtin_action_types/jira/mocks.ts b/x-pack/plugins/actions/server/builtin_action_types/jira/mocks.ts index 53f8d43ebc2d8..b98eda799e3aa 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/jira/mocks.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/jira/mocks.ts @@ -61,6 +61,18 @@ const createMock = (): jest.Mocked => { defaultValue: { name: 'Medium', id: '3' }, }, })), + getIssues: jest.fn().mockImplementation(() => [ + { + id: '10267', + key: 'RJ-107', + title: 'Test title', + }, + ]), + getIssue: jest.fn().mockImplementation(() => ({ + id: '10267', + key: 'RJ-107', + title: 'Test title', + })), }; service.createComment.mockImplementationOnce(() => @@ -120,6 +132,7 @@ const executorParams: ExecutorSubActionPushParams = { labels: ['kibana', 'elastic'], priority: 'High', issueType: '10006', + parent: null, comments: [ { commentId: 'case-comment-1', diff --git a/x-pack/plugins/actions/server/builtin_action_types/jira/schema.ts b/x-pack/plugins/actions/server/builtin_action_types/jira/schema.ts index 9fee465e72efc..4c31691280c2c 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/jira/schema.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/jira/schema.ts @@ -44,6 +44,7 @@ export const ExecutorSubActionPushParamsSchema = schema.object({ issueType: schema.nullable(schema.string()), priority: schema.nullable(schema.string()), labels: schema.nullable(schema.arrayOf(schema.string())), + parent: schema.nullable(schema.string()), // TODO: modify later to string[] - need for support Case schema comments: schema.nullable(schema.arrayOf(CommentSchema)), ...EntityInformation, @@ -60,6 +61,8 @@ export const ExecutorSubActionGetIssueTypesParamsSchema = schema.object({}); export const ExecutorSubActionGetFieldsByIssueTypeParamsSchema = schema.object({ id: schema.string(), }); +export const ExecutorSubActionGetIssuesParamsSchema = schema.object({ title: schema.string() }); +export const ExecutorSubActionGetIssueParamsSchema = schema.object({ id: schema.string() }); export const ExecutorParamsSchema = schema.oneOf([ schema.object({ @@ -82,4 +85,12 @@ export const ExecutorParamsSchema = schema.oneOf([ subAction: schema.literal('fieldsByIssueType'), subActionParams: ExecutorSubActionGetFieldsByIssueTypeParamsSchema, }), + schema.object({ + subAction: schema.literal('issues'), + subActionParams: ExecutorSubActionGetIssuesParamsSchema, + }), + schema.object({ + subAction: schema.literal('issue'), + subActionParams: ExecutorSubActionGetIssueParamsSchema, + }), ]); diff --git a/x-pack/plugins/actions/server/builtin_action_types/jira/service.test.ts b/x-pack/plugins/actions/server/builtin_action_types/jira/service.test.ts index 2439c507c3328..605c05e2a9f25 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/jira/service.test.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/jira/service.test.ts @@ -95,6 +95,14 @@ const fieldsResponse = { }, }; +const issueResponse = { + id: '10267', + key: 'RJ-107', + fields: { summary: 'Test title' }, +}; + +const issuesResponse = [issueResponse]; + describe('Jira service', () => { let service: ExternalService; @@ -219,6 +227,7 @@ describe('Jira service', () => { labels: [], issueType: '10006', priority: 'High', + parent: null, }, }); @@ -264,6 +273,7 @@ describe('Jira service', () => { labels: [], priority: 'High', issueType: null, + parent: null, }, }); @@ -308,6 +318,7 @@ describe('Jira service', () => { labels: [], issueType: '10006', priority: 'High', + parent: 'RJ-107', }, }); @@ -324,6 +335,7 @@ describe('Jira service', () => { issuetype: { id: '10006' }, labels: [], priority: { name: 'High' }, + parent: { key: 'RJ-107' }, }, }, }); @@ -344,6 +356,7 @@ describe('Jira service', () => { labels: [], issueType: '10006', priority: 'High', + parent: null, }, }) ).rejects.toThrow( @@ -370,6 +383,7 @@ describe('Jira service', () => { labels: [], issueType: '10006', priority: 'High', + parent: null, }, }); @@ -398,6 +412,7 @@ describe('Jira service', () => { labels: [], issueType: '10006', priority: 'High', + parent: 'RJ-107', }, }); @@ -414,6 +429,7 @@ describe('Jira service', () => { priority: { name: 'High' }, issuetype: { id: '10006' }, project: { key: 'CK' }, + parent: { key: 'RJ-107' }, }, }, }); @@ -435,6 +451,7 @@ describe('Jira service', () => { labels: [], issueType: '10006', priority: 'High', + parent: null, }, }) ).rejects.toThrow( @@ -916,4 +933,96 @@ describe('Jira service', () => { }); }); }); + + describe('getIssues', () => { + test('it should return the issues', async () => { + requestMock.mockImplementation(() => ({ + data: { + issues: issuesResponse, + }, + })); + + const res = await service.getIssues('Test title'); + + expect(res).toEqual([ + { + id: '10267', + key: 'RJ-107', + title: 'Test title', + }, + ]); + }); + + test('it should call request with correct arguments', async () => { + requestMock.mockImplementation(() => ({ + data: { + issues: issuesResponse, + }, + })); + + await service.getIssues('Test title'); + expect(requestMock).toHaveBeenLastCalledWith({ + axios, + logger, + method: 'get', + url: `https://siem-kibana.atlassian.net/rest/api/2/search?jql=project=CK and summary ~"Test title"`, + }); + }); + + test('it should throw an error', async () => { + requestMock.mockImplementation(() => { + const error: ResponseError = new Error('An error has occurred'); + error.response = { data: { errors: { issuetypes: 'Could not get issue types' } } }; + throw error; + }); + + expect(service.getIssues('Test title')).rejects.toThrow( + '[Action][Jira]: Unable to get issues. Error: An error has occurred. Reason: Could not get issue types' + ); + }); + }); + + describe('getIssue', () => { + test('it should return a single issue', async () => { + requestMock.mockImplementation(() => ({ + data: issueResponse, + })); + + const res = await service.getIssue('RJ-107'); + + expect(res).toEqual({ + id: '10267', + key: 'RJ-107', + title: 'Test title', + }); + }); + + test('it should call request with correct arguments', async () => { + requestMock.mockImplementation(() => ({ + data: { + issues: issuesResponse, + }, + })); + + await service.getIssue('RJ-107'); + expect(requestMock).toHaveBeenLastCalledWith({ + axios, + logger, + method: 'get', + url: `https://siem-kibana.atlassian.net/rest/api/2/issue/RJ-107`, + }); + }); + + test('it should throw an error', async () => { + requestMock.mockImplementation(() => { + const error: ResponseError = new Error('An error has occurred'); + error.response = { data: { errors: { issuetypes: 'Could not get issue types' } } }; + throw error; + }); + + expect(service.getIssue('RJ-107')).rejects.toThrow( + '[Action][Jira]: Unable to get issue with id RJ-107. Error: An error has occurred. Reason: Could not get issue types' + ); + }); + }); }); diff --git a/x-pack/plugins/actions/server/builtin_action_types/jira/service.ts b/x-pack/plugins/actions/server/builtin_action_types/jira/service.ts index 84b6e70d2a100..7429c3d36d7b0 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/jira/service.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/jira/service.ts @@ -53,6 +53,8 @@ export const createExternalService = ( const getIssueTypeFieldsOldAPIURL = `${url}/${BASE_URL}/issue/createmeta?projectKeys=${projectKey}&issuetypeIds={issueTypeId}&expand=projects.issuetypes.fields`; const getIssueTypesUrl = `${url}/${BASE_URL}/issue/createmeta/${projectKey}/issuetypes`; const getIssueTypeFieldsUrl = `${url}/${BASE_URL}/issue/createmeta/${projectKey}/issuetypes/{issueTypeId}`; + const searchUrl = `${url}/${BASE_URL}/search`; + const axiosInstance = axios.create({ auth: { username: email, password: apiToken }, }); @@ -90,6 +92,10 @@ export const createExternalService = ( fields = { ...fields, priority: { name: incident.priority } }; } + if (incident.parent) { + fields = { ...fields, parent: { key: incident.parent } }; + } + return fields; }; @@ -119,6 +125,17 @@ export const createExternalService = ( }; }, {}); + const normalizeSearchResults = ( + issues: Array<{ id: string; key: string; fields: { summary: string } }> + ) => + issues.map((issue) => ({ id: issue.id, key: issue.key, title: issue.fields?.summary ?? null })); + + const normalizeIssue = (issue: { id: string; key: string; fields: { summary: string } }) => ({ + id: issue.id, + key: issue.key, + title: issue.fields?.summary ?? null, + }); + const getIncident = async (id: string) => { try { const res = await request({ @@ -378,6 +395,54 @@ export const createExternalService = ( } }; + const getIssues = async (title: string) => { + const query = `${searchUrl}?jql=project=${projectKey} and summary ~"${title}"`; + try { + const res = await request({ + axios: axiosInstance, + method: 'get', + url: query, + logger, + proxySettings, + }); + + return normalizeSearchResults(res.data?.issues ?? []); + } catch (error) { + throw new Error( + getErrorMessage( + i18n.NAME, + `Unable to get issues. Error: ${error.message}. Reason: ${createErrorMessage( + error.response?.data?.errors ?? {} + )}` + ) + ); + } + }; + + const getIssue = async (id: string) => { + const getIssueUrl = `${incidentUrl}/${id}`; + try { + const res = await request({ + axios: axiosInstance, + method: 'get', + url: getIssueUrl, + logger, + proxySettings, + }); + + return normalizeIssue(res.data ?? {}); + } catch (error) { + throw new Error( + getErrorMessage( + i18n.NAME, + `Unable to get issue with id ${id}. Error: ${error.message}. Reason: ${createErrorMessage( + error.response?.data?.errors ?? {} + )}` + ) + ); + } + }; + return { getIncident, createIncident, @@ -386,5 +451,7 @@ export const createExternalService = ( getCapabilities, getIssueTypes, getFieldsByIssueType, + getIssues, + getIssue, }; }; diff --git a/x-pack/plugins/actions/server/builtin_action_types/jira/types.ts b/x-pack/plugins/actions/server/builtin_action_types/jira/types.ts index 6fe7c62976f22..050ec195d74c1 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/jira/types.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/jira/types.ts @@ -17,6 +17,8 @@ import { ExecutorSubActionGetCapabilitiesParamsSchema, ExecutorSubActionGetIssueTypesParamsSchema, ExecutorSubActionGetFieldsByIssueTypeParamsSchema, + ExecutorSubActionGetIssuesParamsSchema, + ExecutorSubActionGetIssueParamsSchema, } from './schema'; import { ActionsConfigurationUtilities } from '../../actions_config'; import { IncidentConfigurationSchema } from '../case/schema'; @@ -60,7 +62,7 @@ export type ExternalServiceParams = Record; export type Incident = Pick< ExecutorSubActionPushParams, - 'description' | 'priority' | 'labels' | 'issueType' + 'description' | 'priority' | 'labels' | 'issueType' | 'parent' > & { summary: string }; export interface CreateIncidentParams { @@ -83,6 +85,13 @@ export type GetFieldsByIssueTypeResponse = Record< { allowedValues: Array<{}>; defaultValue: {} } >; +export type GetIssuesResponse = Array<{ id: string; key: string; title: string }>; +export interface GetIssueResponse { + id: string; + key: string; + title: string; +} + export interface ExternalService { getIncident: (id: string) => Promise; createIncident: (params: CreateIncidentParams) => Promise; @@ -91,6 +100,8 @@ export interface ExternalService { getCapabilities: () => Promise; getIssueTypes: () => Promise; getFieldsByIssueType: (issueTypeId: string) => Promise; + getIssues: (title: string) => Promise; + getIssue: (id: string) => Promise; } export interface PushToServiceApiParams extends ExecutorSubActionPushParams { @@ -117,6 +128,12 @@ export type ExecutorSubActionGetFieldsByIssueTypeParams = TypeOf< typeof ExecutorSubActionGetFieldsByIssueTypeParamsSchema >; +export type ExecutorSubActionGetIssuesParams = TypeOf< + typeof ExecutorSubActionGetIssuesParamsSchema +>; + +export type ExecutorSubActionGetIssueParams = TypeOf; + export interface ExternalServiceApiHandlerArgs { externalService: ExternalService; mapping: Map | null; @@ -149,6 +166,16 @@ export interface PushToServiceResponse extends ExternalServiceIncidentResponse { comments?: ExternalServiceCommentResponse[]; } +export interface GetIssuesHandlerArgs { + externalService: ExternalService; + params: ExecutorSubActionGetIssuesParams; +} + +export interface GetIssueHandlerArgs { + externalService: ExternalService; + params: ExecutorSubActionGetIssueParams; +} + export interface ExternalServiceApi { handshake: (args: HandshakeApiHandlerArgs) => Promise; pushToService: (args: PushToServiceApiHandlerArgs) => Promise; @@ -157,12 +184,16 @@ export interface ExternalServiceApi { fieldsByIssueType: ( args: GetFieldsByIssueTypeHandlerArgs ) => Promise; + issues: (args: GetIssuesHandlerArgs) => Promise; + issue: (args: GetIssueHandlerArgs) => Promise; } export type JiraExecutorResultData = | PushToServiceResponse | GetIssueTypesResponse - | GetFieldsByIssueTypeResponse; + | GetFieldsByIssueTypeResponse + | GetIssuesResponse + | GetIssueResponse; export interface Fields { [key: string]: string | string[] | { name: string } | { key: string } | { id: string }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/api.ts b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/api.ts index 86893e5b87ddf..bc9fee042a9a6 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/api.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/api.ts @@ -42,3 +42,41 @@ export async function getFieldsByIssueType({ signal, }); } + +export async function getIssues({ + http, + signal, + connectorId, + title, +}: { + http: HttpSetup; + signal: AbortSignal; + connectorId: string; + title: string; +}): Promise> { + return await http.post(`${BASE_ACTION_API_PATH}/action/${connectorId}/_execute`, { + body: JSON.stringify({ + params: { subAction: 'issues', subActionParams: { title } }, + }), + signal, + }); +} + +export async function getIssue({ + http, + signal, + connectorId, + id, +}: { + http: HttpSetup; + signal: AbortSignal; + connectorId: string; + id: string; +}): Promise> { + return await http.post(`${BASE_ACTION_API_PATH}/action/${connectorId}/_execute`, { + body: JSON.stringify({ + params: { subAction: 'getIncident', subActionParams: { id } }, + }), + signal, + }); +} diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx index d96657f8ca407..416f6f7b18755 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx @@ -31,8 +31,10 @@ const actionParams = { priority: 'High', savedObjectId: '123', externalId: null, + parent: null, }, }; + const connector = { secrets: {}, config: {}, @@ -237,5 +239,6 @@ describe('JiraParamsFields renders', () => { expect(wrapper.find('[data-test-subj="prioritySelect"]').exists()).toBeFalsy(); expect(wrapper.find('[data-test-subj="descriptionTextArea"]').exists()).toBeFalsy(); expect(wrapper.find('[data-test-subj="labelsComboBox"]').exists()).toBeFalsy(); + expect(wrapper.find('[data-test-subj="search-parent-issues"]').exists()).toBeFalsy(); }); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.tsx index b457dcc60a43f..c19d2c4048665 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.tsx @@ -19,6 +19,7 @@ import { TextFieldWithMessageVariables } from '../../text_field_with_message_var import { JiraActionParams } from './types'; import { useGetIssueTypes } from './use_get_issue_types'; import { useGetFieldsByIssueType } from './use_get_fields_by_issue_type'; +import { SearchIssues } from './search_issues'; const JiraParamsFields: React.FunctionComponent> = ({ actionParams, @@ -30,7 +31,7 @@ const JiraParamsFields: React.FunctionComponent { - const { title, description, comments, issueType, priority, labels, savedObjectId } = + const { title, description, comments, issueType, priority, labels, parent, savedObjectId } = actionParams.subActionParams || {}; const [issueTypesSelectOptions, setIssueTypesSelectOptions] = useState([]); @@ -62,6 +63,7 @@ const JiraParamsFields: React.FunctionComponent Object.prototype.hasOwnProperty.call(fields, 'priority'), [ fields, ]); + const hasParent = useMemo(() => Object.prototype.hasOwnProperty.call(fields, 'parent'), [fields]); useEffect(() => { const options = issueTypes.map((type) => ({ @@ -179,6 +181,34 @@ const JiraParamsFields: React.FunctionComponent + {hasParent && ( + <> + + + + { + editSubActionProperty('parent', parentIssueKey); + }} + /> + + + + + + )} <> {hasPriority && ( <> diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/search_issues.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/search_issues.tsx new file mode 100644 index 0000000000000..fff606982677a --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/search_issues.tsx @@ -0,0 +1,104 @@ +/* + * 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, { useMemo, useEffect, useCallback, useState, memo } from 'react'; +import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; + +import { HttpSetup, ToastsApi } from 'kibana/public'; +import { ActionConnector } from '../../../../types'; +import { useGetIssues } from './use_get_issues'; +import { useGetSingleIssue } from './use_get_single_issue'; +import * as i18n from './translations'; + +interface Props { + selectedValue: string | null; + http: HttpSetup; + toastNotifications: Pick< + ToastsApi, + 'get$' | 'add' | 'remove' | 'addSuccess' | 'addWarning' | 'addDanger' | 'addError' + >; + actionConnector?: ActionConnector; + onChange: (parentIssueKey: string) => void; +} + +const SearchIssuesComponent: React.FC = ({ + selectedValue, + http, + toastNotifications, + actionConnector, + onChange, +}) => { + const [query, setQuery] = useState(null); + const [selectedOptions, setSelectedOptions] = useState>>( + [] + ); + const [options, setOptions] = useState>>([]); + + const { isLoading: isLoadingIssues, issues } = useGetIssues({ + http, + toastNotifications, + actionConnector, + query, + }); + + const { isLoading: isLoadingSingleIssue, issue: singleIssue } = useGetSingleIssue({ + http, + toastNotifications, + actionConnector, + id: selectedValue, + }); + + useEffect(() => setOptions(issues.map((issue) => ({ label: issue.title, value: issue.key }))), [ + issues, + ]); + + useEffect(() => { + if (isLoadingSingleIssue || singleIssue == null) { + return; + } + + const singleIssueAsOptions = [{ label: singleIssue.title, value: singleIssue.key }]; + setOptions(singleIssueAsOptions); + setSelectedOptions(singleIssueAsOptions); + }, [singleIssue, isLoadingSingleIssue]); + + const onSearchChange = useCallback((searchVal: string) => { + setQuery(searchVal); + }, []); + + const onChangeComboBox = useCallback( + (changedOptions) => { + setSelectedOptions(changedOptions); + onChange(changedOptions[0].value); + }, + [onChange] + ); + + const inputPlaceholder = useMemo( + (): string => + isLoadingIssues || isLoadingSingleIssue + ? i18n.SEARCH_ISSUES_LOADING + : i18n.SEARCH_ISSUES_PLACEHOLDER, + [isLoadingIssues, isLoadingSingleIssue] + ); + + return ( + + ); +}; + +export const SearchIssues = memo(SearchIssuesComponent); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/translations.ts b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/translations.ts index bfcb72d1cb977..2517552304d8d 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/translations.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/translations.ts @@ -131,3 +131,40 @@ export const FIELDS_API_ERROR = i18n.translate( defaultMessage: 'Unable to get fields', } ); + +export const ISSUES_API_ERROR = i18n.translate( + 'xpack.triggersActionsUI.components.builtinActionTypes.jira.unableToGetIssuesMessage', + { + defaultMessage: 'Unable to get issues', + } +); + +export const GET_ISSUE_API_ERROR = (id: string) => + i18n.translate( + 'xpack.triggersActionsUI.components.builtinActionTypes.jira.unableToGetIssueMessage', + { + defaultMessage: 'Unable to get issue with id {id}', + values: { id }, + } + ); + +export const SEARCH_ISSUES_COMBO_BOX_ARIA_LABEL = i18n.translate( + 'xpack.triggersActionsUI.components.builtinActionTypes.jira.searchIssuesComboBoxAriaLabel', + { + defaultMessage: 'Select parent issue', + } +); + +export const SEARCH_ISSUES_PLACEHOLDER = i18n.translate( + 'xpack.triggersActionsUI.components.builtinActionTypes.jira.searchIssuesComboBoxPlaceholder', + { + defaultMessage: 'Select parent issue', + } +); + +export const SEARCH_ISSUES_LOADING = i18n.translate( + 'xpack.triggersActionsUI.components.builtinActionTypes.jira.searchIssuesLoading', + { + defaultMessage: 'Loading...', + } +); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/types.ts b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/types.ts index ff11199f35fea..4c13d067913f2 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/types.ts @@ -22,6 +22,7 @@ export interface JiraActionParams { issueType: string; priority: string; labels: string[]; + parent: string | null; }; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_issues.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_issues.tsx new file mode 100644 index 0000000000000..d6590b8c70939 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_issues.tsx @@ -0,0 +1,94 @@ +/* + * 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 { isEmpty, debounce } from 'lodash/fp'; +import { useState, useEffect, useRef } from 'react'; +import { HttpSetup, ToastsApi } from 'kibana/public'; +import { ActionConnector } from '../../../../types'; +import { getIssues } from './api'; +import * as i18n from './translations'; + +type Issues = Array<{ id: string; key: string; title: string }>; + +interface Props { + http: HttpSetup; + toastNotifications: Pick< + ToastsApi, + 'get$' | 'add' | 'remove' | 'addSuccess' | 'addWarning' | 'addDanger' | 'addError' + >; + actionConnector?: ActionConnector; + query: string | null; +} + +export interface UseGetIssues { + issues: Issues; + isLoading: boolean; +} + +export const useGetIssues = ({ + http, + actionConnector, + toastNotifications, + query, +}: Props): UseGetIssues => { + const [isLoading, setIsLoading] = useState(false); + const [issues, setIssues] = useState([]); + const abortCtrl = useRef(new AbortController()); + + useEffect(() => { + let didCancel = false; + const fetchData = debounce(500, async () => { + if (!actionConnector || isEmpty(query)) { + setIsLoading(false); + return; + } + + abortCtrl.current = new AbortController(); + setIsLoading(true); + + try { + const res = await getIssues({ + http, + signal: abortCtrl.current.signal, + connectorId: actionConnector.id, + title: query ?? '', + }); + + if (!didCancel) { + setIsLoading(false); + setIssues(res.data ?? []); + if (res.status && res.status === 'error') { + toastNotifications.addDanger({ + title: i18n.ISSUES_API_ERROR, + text: `${res.serviceMessage ?? res.message}`, + }); + } + } + } catch (error) { + if (!didCancel) { + toastNotifications.addDanger({ + title: i18n.ISSUES_API_ERROR, + text: error.message, + }); + } + } + }); + + abortCtrl.current.abort(); + fetchData(); + + return () => { + didCancel = true; + setIsLoading(false); + abortCtrl.current.abort(); + }; + }, [http, actionConnector, toastNotifications, query]); + + return { + issues, + isLoading, + }; +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_single_issue.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_single_issue.tsx new file mode 100644 index 0000000000000..7df9834f1bd85 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_single_issue.tsx @@ -0,0 +1,96 @@ +/* + * 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 { useState, useEffect, useRef } from 'react'; +import { HttpSetup, ToastsApi } from 'kibana/public'; +import { ActionConnector } from '../../../../types'; +import { getIssue } from './api'; +import * as i18n from './translations'; + +interface Issue { + id: string; + key: string; + title: string; +} + +interface Props { + http: HttpSetup; + toastNotifications: Pick< + ToastsApi, + 'get$' | 'add' | 'remove' | 'addSuccess' | 'addWarning' | 'addDanger' | 'addError' + >; + id: string | null; + actionConnector?: ActionConnector; +} + +export interface UseGetSingleIssue { + issue: Issue | null; + isLoading: boolean; +} + +export const useGetSingleIssue = ({ + http, + toastNotifications, + actionConnector, + id, +}: Props): UseGetSingleIssue => { + const [isLoading, setIsLoading] = useState(false); + const [issue, setIssue] = useState(null); + const abortCtrl = useRef(new AbortController()); + + useEffect(() => { + let didCancel = false; + const fetchData = async () => { + if (!actionConnector || !id) { + setIsLoading(false); + return; + } + + abortCtrl.current = new AbortController(); + setIsLoading(true); + try { + const res = await getIssue({ + http, + signal: abortCtrl.current.signal, + connectorId: actionConnector.id, + id, + }); + + if (!didCancel) { + setIsLoading(false); + setIssue(res.data ?? {}); + if (res.status && res.status === 'error') { + toastNotifications.addDanger({ + title: i18n.GET_ISSUE_API_ERROR(id), + text: `${res.serviceMessage ?? res.message}`, + }); + } + } + } catch (error) { + if (!didCancel) { + toastNotifications.addDanger({ + title: i18n.GET_ISSUE_API_ERROR(id), + text: error.message, + }); + } + } + }; + + abortCtrl.current.abort(); + fetchData(); + + return () => { + didCancel = true; + setIsLoading(false); + abortCtrl.current.abort(); + }; + }, [http, actionConnector, id, toastNotifications]); + + return { + isLoading, + issue, + }; +}; diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/jira.ts b/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/jira.ts index 84fad699525a9..1a56a9dfcb4db 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/jira.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/jira.ts @@ -333,7 +333,7 @@ export default function jiraTest({ getService }: FtrProviderContext) { status: 'error', retry: false, message: - 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getIncident]\n- [1.subAction]: expected value to equal [handshake]\n- [2.subAction]: expected value to equal [pushToService]\n- [3.subAction]: expected value to equal [issueTypes]\n- [4.subAction]: expected value to equal [fieldsByIssueType]', + 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getIncident]\n- [1.subAction]: expected value to equal [handshake]\n- [2.subAction]: expected value to equal [pushToService]\n- [3.subAction]: expected value to equal [issueTypes]\n- [4.subAction]: expected value to equal [fieldsByIssueType]\n- [5.subAction]: expected value to equal [issues]\n- [6.subAction]: expected value to equal [issue]', }); }); }); @@ -351,7 +351,7 @@ export default function jiraTest({ getService }: FtrProviderContext) { status: 'error', retry: false, message: - 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getIncident]\n- [1.subAction]: expected value to equal [handshake]\n- [2.subActionParams.savedObjectId]: expected value of type [string] but got [undefined]\n- [3.subAction]: expected value to equal [issueTypes]\n- [4.subAction]: expected value to equal [fieldsByIssueType]', + 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getIncident]\n- [1.subAction]: expected value to equal [handshake]\n- [2.subActionParams.savedObjectId]: expected value of type [string] but got [undefined]\n- [3.subAction]: expected value to equal [issueTypes]\n- [4.subAction]: expected value to equal [fieldsByIssueType]\n- [5.subAction]: expected value to equal [issues]\n- [6.subAction]: expected value to equal [issue]', }); }); }); @@ -369,7 +369,7 @@ export default function jiraTest({ getService }: FtrProviderContext) { status: 'error', retry: false, message: - 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getIncident]\n- [1.subAction]: expected value to equal [handshake]\n- [2.subActionParams.savedObjectId]: expected value of type [string] but got [undefined]\n- [3.subAction]: expected value to equal [issueTypes]\n- [4.subAction]: expected value to equal [fieldsByIssueType]', + 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getIncident]\n- [1.subAction]: expected value to equal [handshake]\n- [2.subActionParams.savedObjectId]: expected value of type [string] but got [undefined]\n- [3.subAction]: expected value to equal [issueTypes]\n- [4.subAction]: expected value to equal [fieldsByIssueType]\n- [5.subAction]: expected value to equal [issues]\n- [6.subAction]: expected value to equal [issue]', }); }); }); @@ -392,7 +392,7 @@ export default function jiraTest({ getService }: FtrProviderContext) { status: 'error', retry: false, message: - 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getIncident]\n- [1.subAction]: expected value to equal [handshake]\n- [2.subActionParams.title]: expected value of type [string] but got [undefined]\n- [3.subAction]: expected value to equal [issueTypes]\n- [4.subAction]: expected value to equal [fieldsByIssueType]', + 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getIncident]\n- [1.subAction]: expected value to equal [handshake]\n- [2.subActionParams.title]: expected value of type [string] but got [undefined]\n- [3.subAction]: expected value to equal [issueTypes]\n- [4.subAction]: expected value to equal [fieldsByIssueType]\n- [5.subAction]: expected value to equal [issues]\n- [6.subAction]: expected value to equal [issue]', }); }); }); @@ -420,7 +420,7 @@ export default function jiraTest({ getService }: FtrProviderContext) { status: 'error', retry: false, message: - 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getIncident]\n- [1.subAction]: expected value to equal [handshake]\n- [2.subActionParams.comments]: types that failed validation:\n - [subActionParams.comments.0.0.commentId]: expected value of type [string] but got [undefined]\n - [subActionParams.comments.1]: expected value to equal [null]\n- [3.subAction]: expected value to equal [issueTypes]\n- [4.subAction]: expected value to equal [fieldsByIssueType]', + 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getIncident]\n- [1.subAction]: expected value to equal [handshake]\n- [2.subActionParams.comments]: types that failed validation:\n - [subActionParams.comments.0.0.commentId]: expected value of type [string] but got [undefined]\n - [subActionParams.comments.1]: expected value to equal [null]\n- [3.subAction]: expected value to equal [issueTypes]\n- [4.subAction]: expected value to equal [fieldsByIssueType]\n- [5.subAction]: expected value to equal [issues]\n- [6.subAction]: expected value to equal [issue]', }); }); }); @@ -448,7 +448,7 @@ export default function jiraTest({ getService }: FtrProviderContext) { status: 'error', retry: false, message: - 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getIncident]\n- [1.subAction]: expected value to equal [handshake]\n- [2.subActionParams.comments]: types that failed validation:\n - [subActionParams.comments.0.0.comment]: expected value of type [string] but got [undefined]\n - [subActionParams.comments.1]: expected value to equal [null]\n- [3.subAction]: expected value to equal [issueTypes]\n- [4.subAction]: expected value to equal [fieldsByIssueType]', + 'error validating action params: types that failed validation:\n- [0.subAction]: expected value to equal [getIncident]\n- [1.subAction]: expected value to equal [handshake]\n- [2.subActionParams.comments]: types that failed validation:\n - [subActionParams.comments.0.0.comment]: expected value of type [string] but got [undefined]\n - [subActionParams.comments.1]: expected value to equal [null]\n- [3.subAction]: expected value to equal [issueTypes]\n- [4.subAction]: expected value to equal [fieldsByIssueType]\n- [5.subAction]: expected value to equal [issues]\n- [6.subAction]: expected value to equal [issue]', }); }); }); From 4c9a7bdf4872b6cb73e4bf8524bab0816279cdb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20Haro?= Date: Thu, 1 Oct 2020 08:22:51 +0100 Subject: [PATCH 061/142] [Usage Collection] [schema] `ui_metric` (#78827) --- .telemetryrc.json | 3 +- .../server/collectors/ui_metric/schema.ts | 103 +++ .../telemetry_ui_metric_collector.ts | 13 +- src/plugins/telemetry/schema/oss_plugins.json | 745 ++++++++++++++++++ 4 files changed, 860 insertions(+), 4 deletions(-) create mode 100644 src/plugins/kibana_usage_collection/server/collectors/ui_metric/schema.ts diff --git a/.telemetryrc.json b/.telemetryrc.json index d3446b45033ee..3d1b0df1d8f93 100644 --- a/.telemetryrc.json +++ b/.telemetryrc.json @@ -5,8 +5,7 @@ "exclude": [ "src/plugins/kibana_react/", "src/plugins/testbed/", - "src/plugins/kibana_utils/", - "src/plugins/kibana_usage_collection/server/collectors/ui_metric/telemetry_ui_metric_collector.ts" + "src/plugins/kibana_utils/" ] } ] diff --git a/src/plugins/kibana_usage_collection/server/collectors/ui_metric/schema.ts b/src/plugins/kibana_usage_collection/server/collectors/ui_metric/schema.ts new file mode 100644 index 0000000000000..53bb1f9b93949 --- /dev/null +++ b/src/plugins/kibana_usage_collection/server/collectors/ui_metric/schema.ts @@ -0,0 +1,103 @@ +/* + * 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 { MakeSchemaFrom } from 'src/plugins/usage_collection/server'; +import { UIMetricUsage } from './telemetry_ui_metric_collector'; + +const commonSchema: MakeSchemaFrom[string] = { + type: 'array', + items: { + key: { type: 'keyword' }, + value: { type: 'long' }, + }, +}; + +// TODO: Find a way to retrieve it automatically +// plugin `data` registers all UI Metric for each appId where searches are performed (keys below are copy-pasted from application_usage) +const uiMetricFromDataPluginSchema: MakeSchemaFrom = { + // OSS + dashboards: commonSchema, + dev_tools: commonSchema, + discover: commonSchema, + home: commonSchema, + kibana: commonSchema, // It's a forward app so we'll likely never report it + management: commonSchema, + short_url_redirect: commonSchema, // It's a forward app so we'll likely never report it + timelion: commonSchema, + visualize: commonSchema, + + // X-Pack + apm: commonSchema, + csm: commonSchema, + canvas: commonSchema, + dashboard_mode: commonSchema, // It's a forward app so we'll likely never report it + enterpriseSearch: commonSchema, + appSearch: commonSchema, + workplaceSearch: commonSchema, + graph: commonSchema, + logs: commonSchema, + metrics: commonSchema, + infra: commonSchema, // It's a forward app so we'll likely never report it + ingestManager: commonSchema, + lens: commonSchema, + maps: commonSchema, + ml: commonSchema, + monitoring: commonSchema, + 'observability-overview': commonSchema, + security_account: commonSchema, + security_access_agreement: commonSchema, + security_capture_url: commonSchema, // It's a forward app so we'll likely never report it + security_logged_out: commonSchema, + security_login: commonSchema, + security_logout: commonSchema, + security_overwritten_session: commonSchema, + securitySolution: commonSchema, + 'securitySolution:overview': commonSchema, + 'securitySolution:detections': commonSchema, + 'securitySolution:hosts': commonSchema, + 'securitySolution:network': commonSchema, + 'securitySolution:timelines': commonSchema, + 'securitySolution:case': commonSchema, + 'securitySolution:administration': commonSchema, + siem: commonSchema, + space_selector: commonSchema, + uptime: commonSchema, +}; + +// TODO: Find a way to retrieve it automatically +// Searching `reportUiStats` across Kibana +export const uiMetricSchema: MakeSchemaFrom = { + console: commonSchema, + DashboardPanelVersionInUrl: commonSchema, + Kibana_home: commonSchema, // eslint-disable-line @typescript-eslint/naming-convention + visualize: commonSchema, + canvas: commonSchema, + cross_cluster_replication: commonSchema, + index_lifecycle_management: commonSchema, + index_management: commonSchema, + ingest_pipelines: commonSchema, + apm: commonSchema, + infra_logs: commonSchema, + infra_metrics: commonSchema, + stack_monitoring: commonSchema, + remote_clusters: commonSchema, + rollup_jobs: commonSchema, + securitySolution: commonSchema, + snapshot_restore: commonSchema, + ...uiMetricFromDataPluginSchema, +}; diff --git a/src/plugins/kibana_usage_collection/server/collectors/ui_metric/telemetry_ui_metric_collector.ts b/src/plugins/kibana_usage_collection/server/collectors/ui_metric/telemetry_ui_metric_collector.ts index 9c02a9cbf3204..4cae892d30b5d 100644 --- a/src/plugins/kibana_usage_collection/server/collectors/ui_metric/telemetry_ui_metric_collector.ts +++ b/src/plugins/kibana_usage_collection/server/collectors/ui_metric/telemetry_ui_metric_collector.ts @@ -23,11 +23,19 @@ import { SavedObjectsServiceSetup, } from 'kibana/server'; import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; +import { uiMetricSchema } from './schema'; interface UIMetricsSavedObjects extends SavedObjectAttributes { count: number; } +interface UIMetricElement { + key: string; + value: number; +} + +export type UIMetricUsage = Record; + export function registerUiMetricUsageCollector( usageCollection: UsageCollectionSetup, registerType: SavedObjectsServiceSetup['registerType'], @@ -46,8 +54,9 @@ export function registerUiMetricUsageCollector( }, }); - const collector = usageCollection.makeUsageCollector({ + const collector = usageCollection.makeUsageCollector({ type: 'ui_metric', + schema: uiMetricSchema, fetch: async () => { const savedObjectsClient = getSavedObjectsClient(); if (typeof savedObjectsClient === 'undefined') { @@ -73,7 +82,7 @@ export function registerUiMetricUsageCollector( ...accum, [appName]: [...(accum[appName] || []), pair], }; - }, {} as Record>); + }, {} as UIMetricUsage); return uiMetricsByAppName; }, diff --git a/src/plugins/telemetry/schema/oss_plugins.json b/src/plugins/telemetry/schema/oss_plugins.json index 6531262b6f1da..1f474dcbb8ff4 100644 --- a/src/plugins/telemetry/schema/oss_plugins.json +++ b/src/plugins/telemetry/schema/oss_plugins.json @@ -1623,6 +1623,751 @@ } } }, + "ui_metric": { + "properties": { + "console": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "DashboardPanelVersionInUrl": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "Kibana_home": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "visualize": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "canvas": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "cross_cluster_replication": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "index_lifecycle_management": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "index_management": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "ingest_pipelines": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "apm": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "infra_logs": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "infra_metrics": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "stack_monitoring": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "remote_clusters": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "rollup_jobs": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "securitySolution": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "snapshot_restore": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "dashboards": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "dev_tools": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "discover": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "home": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "kibana": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "management": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "short_url_redirect": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "timelion": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "csm": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "dashboard_mode": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "enterpriseSearch": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "appSearch": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "workplaceSearch": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "graph": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "logs": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "metrics": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "infra": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "ingestManager": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "lens": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "maps": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "ml": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "monitoring": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "observability-overview": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "security_account": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "security_access_agreement": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "security_capture_url": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "security_logged_out": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "security_login": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "security_logout": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "security_overwritten_session": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "securitySolution:overview": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "securitySolution:detections": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "securitySolution:hosts": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "securitySolution:network": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "securitySolution:timelines": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "securitySolution:case": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "securitySolution:administration": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "siem": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "space_selector": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + }, + "uptime": { + "type": "array", + "items": { + "properties": { + "key": { + "type": "keyword" + }, + "value": { + "type": "long" + } + } + } + } + } + }, "telemetry": { "properties": { "opt_in_status": { From 9fdb23769bbe8ac621df7e335a55d4a91e74465d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20Haro?= Date: Thu, 1 Oct 2020 08:25:05 +0100 Subject: [PATCH 062/142] [Loggers] Rename "telemetry" to "usage" (#78130) Co-authored-by: Elastic Machine --- .../home/server/services/sample_data/sample_data_registry.ts | 2 +- x-pack/plugins/actions/server/plugin.ts | 2 +- x-pack/plugins/alerts/server/plugin.ts | 2 +- x-pack/plugins/lens/server/plugin.tsx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/home/server/services/sample_data/sample_data_registry.ts b/src/plugins/home/server/services/sample_data/sample_data_registry.ts index 356c886436413..c9e65b292a00d 100644 --- a/src/plugins/home/server/services/sample_data/sample_data_registry.ts +++ b/src/plugins/home/server/services/sample_data/sample_data_registry.ts @@ -52,7 +52,7 @@ export class SampleDataRegistry { } const usageTracker = usage( core.getStartServices().then(([coreStart]) => coreStart.savedObjects), - this.initContext.logger.get('sample_data', 'telemetry') + this.initContext.logger.get('sample_data', 'usage') ); const router = core.http.createRouter(); createListRoute(router, this.sampleDatasets); diff --git a/x-pack/plugins/actions/server/plugin.ts b/x-pack/plugins/actions/server/plugin.ts index dca1114f0ae44..1a15a5a815195 100644 --- a/x-pack/plugins/actions/server/plugin.ts +++ b/x-pack/plugins/actions/server/plugin.ts @@ -151,7 +151,7 @@ export class ActionsPlugin implements Plugin, Plugi .toPromise(); this.logger = initContext.logger.get('actions'); - this.telemetryLogger = initContext.logger.get('telemetry'); + this.telemetryLogger = initContext.logger.get('usage'); this.preconfiguredActions = []; } diff --git a/x-pack/plugins/alerts/server/plugin.ts b/x-pack/plugins/alerts/server/plugin.ts index 8f09d55c9a0e0..e9caf4b78e627 100644 --- a/x-pack/plugins/alerts/server/plugin.ts +++ b/x-pack/plugins/alerts/server/plugin.ts @@ -117,7 +117,7 @@ export class AlertingPlugin { this.logger = initializerContext.logger.get('plugins', 'alerting'); this.taskRunnerFactory = new TaskRunnerFactory(); this.alertsClientFactory = new AlertsClientFactory(); - this.telemetryLogger = initializerContext.logger.get('telemetry'); + this.telemetryLogger = initializerContext.logger.get('usage'); this.kibanaIndex = initializerContext.config.legacy.globalConfig$ .pipe( first(), diff --git a/x-pack/plugins/lens/server/plugin.tsx b/x-pack/plugins/lens/server/plugin.tsx index 3611658fbbcd9..b801d30f5ba9b 100644 --- a/x-pack/plugins/lens/server/plugin.tsx +++ b/x-pack/plugins/lens/server/plugin.tsx @@ -31,7 +31,7 @@ export class LensServerPlugin implements Plugin<{}, {}, {}, {}> { constructor(initializerContext: PluginInitializerContext) { this.kibanaIndexConfig = initializerContext.config.legacy.globalConfig$; - this.telemetryLogger = initializerContext.logger.get('telemetry'); + this.telemetryLogger = initializerContext.logger.get('usage'); } setup(core: CoreSetup, plugins: PluginSetupContract) { setupSavedObjects(core); From 65cf6393c770af89567685980313e464e69745d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20Haro?= Date: Thu, 1 Oct 2020 08:26:14 +0100 Subject: [PATCH 063/142] [Task names in TaskManager] Rename "telemetry" to "usage" (#78129) * [Task names in TaskManager] Rename "telemetry" to "usage" * Revert task IDs but leaving renamed titles Co-authored-by: Elastic Machine --- x-pack/plugins/actions/server/usage/task.ts | 2 +- x-pack/plugins/alerts/server/usage/task.ts | 2 +- x-pack/plugins/apm/server/lib/apm_telemetry/index.ts | 2 +- x-pack/plugins/lens/server/usage/task.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/actions/server/usage/task.ts b/x-pack/plugins/actions/server/usage/task.ts index 050f0021a32c1..efa695cdc2667 100644 --- a/x-pack/plugins/actions/server/usage/task.ts +++ b/x-pack/plugins/actions/server/usage/task.ts @@ -38,7 +38,7 @@ function registerActionsTelemetryTask( ) { taskManager.registerTaskDefinitions({ [TELEMETRY_TASK_TYPE]: { - title: 'Actions telemetry fetch task', + title: 'Actions usage fetch task', type: TELEMETRY_TASK_TYPE, timeout: '5m', createTaskRunner: telemetryTaskRunner(logger, core, kibanaIndex), diff --git a/x-pack/plugins/alerts/server/usage/task.ts b/x-pack/plugins/alerts/server/usage/task.ts index 5909351321385..daf3ac246adad 100644 --- a/x-pack/plugins/alerts/server/usage/task.ts +++ b/x-pack/plugins/alerts/server/usage/task.ts @@ -41,7 +41,7 @@ function registerAlertingTelemetryTask( ) { taskManager.registerTaskDefinitions({ [TELEMETRY_TASK_TYPE]: { - title: 'Alerting telemetry fetch task', + title: 'Alerting usage fetch task', type: TELEMETRY_TASK_TYPE, timeout: '5m', createTaskRunner: telemetryTaskRunner(logger, core, kibanaIndex), diff --git a/x-pack/plugins/apm/server/lib/apm_telemetry/index.ts b/x-pack/plugins/apm/server/lib/apm_telemetry/index.ts index 3463865d326b0..f78280aa7428e 100644 --- a/x-pack/plugins/apm/server/lib/apm_telemetry/index.ts +++ b/x-pack/plugins/apm/server/lib/apm_telemetry/index.ts @@ -49,7 +49,7 @@ export async function createApmTelemetry({ }) { taskManager.registerTaskDefinitions({ [APM_TELEMETRY_TASK_NAME]: { - title: 'Collect APM telemetry', + title: 'Collect APM usage', type: APM_TELEMETRY_TASK_NAME, createTaskRunner: () => { return { diff --git a/x-pack/plugins/lens/server/usage/task.ts b/x-pack/plugins/lens/server/usage/task.ts index edc5a778749af..9fee72b59b44c 100644 --- a/x-pack/plugins/lens/server/usage/task.ts +++ b/x-pack/plugins/lens/server/usage/task.ts @@ -47,7 +47,7 @@ function registerLensTelemetryTask( ) { taskManager.registerTaskDefinitions({ [TELEMETRY_TASK_TYPE]: { - title: 'Lens telemetry fetch task', + title: 'Lens usage fetch task', type: TELEMETRY_TASK_TYPE, timeout: '1m', createTaskRunner: telemetryTaskRunner(logger, core, config), From ad134b296b4fd1f62f93f6719caec7d83b256dcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Marcondes?= <55978943+cauemarcondes@users.noreply.github.com> Date: Thu, 1 Oct 2020 08:42:23 +0100 Subject: [PATCH 064/142] fixing api test (#78964) --- .../tests/transaction_groups/distribution.ts | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/distribution.ts b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/distribution.ts index bd669600afc14..c72d48094ca8d 100644 --- a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/distribution.ts +++ b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/distribution.ts @@ -37,8 +37,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); }); - // SKIP FAILING TEST to unblock CI: https://github.com/elastic/kibana/issues/78942 - describe.skip('when data is loaded', () => { + describe('when data is loaded', () => { let response: any; before(async () => { await esArchiver.load(archiveName); @@ -61,7 +60,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); it('returns the correct number of buckets', () => { - expectSnapshot(response.body.buckets.length).toMatchInline(`19`); + expectSnapshot(response.body.buckets.length).toMatchInline(`45`); }); it('returns the correct bucket size', () => { @@ -73,18 +72,14 @@ export default function ApiTest({ getService }: FtrProviderContext) { (bucket: any) => !isEmpty(bucket.samples) ); - expectSnapshot(bucketWithSamples.count).toMatchInline(`2`); + expectSnapshot(bucketWithSamples.count).toMatchInline(`1`); expectSnapshot(bucketWithSamples.samples.sort((sample: any) => sample.traceId)) .toMatchInline(` Array [ Object { - "traceId": "a1333547d1257c636154290cddd38c3a", - "transactionId": "3e656b390989133d", - }, - Object { - "traceId": "c799c34f4ee2b0f9998745ea7354d599", - "transactionId": "69b6251b239abb46", + "traceId": "3dd90c5c2035f5bcb2728a34cb48d796", + "transactionId": "69f3ff7d35056f63", }, ] `); From 4bd0d3bf8724db1e197eb8ff7604c24a9cd7a662 Mon Sep 17 00:00:00 2001 From: Alexey Antonov Date: Thu, 1 Oct 2020 10:54:37 +0300 Subject: [PATCH 065/142] [TSVB] Request validation error: [panels.0.series.0.metrics.0.percentiles.1.value] (#79009) Closes: #79006 --- src/plugins/vis_type_timeseries/common/vis_schema.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/vis_type_timeseries/common/vis_schema.ts b/src/plugins/vis_type_timeseries/common/vis_schema.ts index d3d863df8617f..b33215934c5df 100644 --- a/src/plugins/vis_type_timeseries/common/vis_schema.ts +++ b/src/plugins/vis_type_timeseries/common/vis_schema.ts @@ -111,7 +111,7 @@ export const metricsItems = schema.object({ field: stringOptionalNullable, mode: schema.oneOf([schema.literal('line'), schema.literal('band')]), shade: schema.oneOf([numberOptional, stringOptionalNullable]), - value: schema.oneOf([numberOptional, stringOptionalNullable]), + value: schema.maybe(schema.oneOf([numberOptional, stringOptionalNullable])), percentile: stringOptionalNullable, }) ) From 09226db99c8823a0fec5fe5fa87e33909f95621a Mon Sep 17 00:00:00 2001 From: Liza Katz Date: Thu, 1 Oct 2020 10:56:17 +0300 Subject: [PATCH 066/142] Data plugin README (#78750) * data readme * Delete old readme (other folders don't have a README of their own. * generate asciidoc * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update README.md * Update plugin-list.asciidoc * gen plugin list * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update src/plugins/data/README.md Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> Co-authored-by: Elastic Machine Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> --- docs/developer/plugin-list.asciidoc | 2 +- src/plugins/data/README.md | 140 ++++++++++++++++++++++- src/plugins/data/public/search/README.md | 23 ---- 3 files changed, 135 insertions(+), 30 deletions(-) delete mode 100644 src/plugins/data/public/search/README.md diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index e314e55c34085..ed58e77427d47 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -48,7 +48,7 @@ NOTE: |{kib-repo}blob/{branch}/src/plugins/data/README.md[data] -|data plugin provides common data access services. +|The data plugin provides common data access services, such as search and query, for solutions and application developers. |{kib-repo}blob/{branch}/src/plugins/dev_tools/README.md[devTools] diff --git a/src/plugins/data/README.md b/src/plugins/data/README.md index da0b71122fd9e..33c07078c5348 100644 --- a/src/plugins/data/README.md +++ b/src/plugins/data/README.md @@ -1,9 +1,137 @@ # data -`data` plugin provides common data access services. +The data plugin provides common data access services, such as `search` and `query`, for solutions and application developers. -- `expressions` — run pipeline functions and render results. -- `filter` -- `index_patterns` -- `query` -- `search`: Elasticsearch API service and strategies \ No newline at end of file +## Autocomplete + +The autocomplete service provides suggestions for field names and values. + +It is wired into the `TopNavMenu` component, but can be used independently. + +### Fetch Query Suggestions + +The `getQuerySuggestions` function helps to construct a query. +KQL suggestion functions are registered in X-Pack, so this API does not return results in OSS. + +```.ts + + // `inputValue` is the user input + const querySuggestions = await autocomplete.getQuerySuggestions({ + language: 'kuery', + indexPatterns: [indexPattern], + query: inputValue, + }); + +``` + +### Fetch Value Suggestions + +The `getValueSuggestions` function returns suggestions for field values. +This is helpful when you want to provide a user with options, for example when constructing a filter. + +```.ts + + // `inputValue` is the user input + const valueSuggestions = await autocomplete.getValueSuggestions({ + indexPattern, + field, + query: inputValue, + }); + +``` + +## Field Formats + +Coming soon. + +## Index Patterns + +Coming soon. + +## Query + +The query service is responsible for managing the configuration of a search query (`QueryState`): filters, time range, query string, and settings such as the auto refresh behavior and saved queries. + +It contains sub-services for each of those configurations: + - `data.query.filterManager` - Manages the `filters` component of a `QueryState`. The global filter state (filters that are persisted between applications) are owned by this service. + - `data.query.timefilter` - Responsible for the time range filter and the auto refresh behavior settings. + - `data.query.queryString` - Responsible for the query string and query language settings. + - `data.query.savedQueries` - Responsible for persisting a `QueryState` into a `SavedObject`, so it can be restored and used by other applications. + + Any changes to the `QueryState` are published on the `data.query.state$`, which is useful when wanting to persist global state or run a search upon data changes. + + A simple use case is: + + ```.ts + function searchOnChange(indexPattern: IndexPattern, aggConfigs: AggConfigs) { + data.query.state$.subscribe(() => { + + // Constuct the query portion of the search request + const query = data.query.getEsQuery(indexPattern); + + // Construct a request + const request = { + params: { + index: indexPattern.title, + body: { + aggs: aggConfigs.toDsl(), + query, + }, + }, + }; + + // Search with the `data.query` config + const search$ = data.search.search(request); + + ... + }); + } + + ``` + +## Search + +Provides access to Elasticsearch using the high-level `SearchSource` API or low-level `Search Strategies`. + +### SearchSource + +The `SearchSource` API is a convenient way to construct and run an Elasticsearch search query. + +```.tsx + + const searchSource = await data.search.searchSource.create(); + const searchResponse = await searchSource + .setParent(undefined) + .setField('index', indexPattern) + .setField('filter', filters) + .fetch(); + +``` + +### Low-level search + +#### Default Search Strategy + +One benefit of using the low-level search API, is partial response support in X-Pack, allowing for a better and more responsive user experience. +In OSS only the final result is returned. + +```.ts + import { isCompleteResponse } from '../plugins/data/public'; + + const search$ = data.search.search(request) + .subscribe({ + next: (response) => { + if (isCompleteResponse(response)) { + // Final result + search$.unsubscribe(); + } else { + // Partial result - you can update the UI, but data is still loading + } + }, + error: (e: Error) => { + // Show customized toast notifications. + // You may choose to handle errors differently if you prefer. + data.search.showError(e); + }, + }); +``` diff --git a/src/plugins/data/public/search/README.md b/src/plugins/data/public/search/README.md deleted file mode 100644 index 0a123ffa3f1e9..0000000000000 --- a/src/plugins/data/public/search/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# search - -The `search` service provides you with APIs to query Elasticsearch. - -The services are split into two parts: (1) low-level API; and (2) high-level API. - -## Low-level API - -With low level API you work directly with elasticsearch DSL - -```typescript -const results = await data.search.search(request, params); -``` - -## High-level API - -Using high-level API you work with Kibana abstractions around Elasticsearch DSL: filters, queries, and aggregations. Provided by the *Search Source* service. - -```typescript -const search = data.search.searchSource.createEmpty(); -search.setField('query', data.query.queryString); -const results = await search.fetch(); -``` From 29da04551dea22179a9771b0bd9c7e848118cbd1 Mon Sep 17 00:00:00 2001 From: Xavier Mouligneau <189600+XavierM@users.noreply.github.com> Date: Thu, 1 Oct 2020 04:09:06 -0400 Subject: [PATCH 067/142] [SECURITY SOLUTIONS] Map embeddable working with index patterns selection (#78610) * map working with sourcerer * clean up * fix types * fix unit tests * fix incorrect hight for map * show prompt when no index exists * update unit test * fix update with no index available * fixup * unit test * add unit test Co-authored-by: Angela Chuang Co-authored-by: Elastic Machine --- .../__snapshots__/embedded_map.test.tsx.snap | 42 ++--- .../embeddables/embedded_map.test.tsx | 155 ++++++++++++++++-- .../components/embeddables/embedded_map.tsx | 108 ++++++++---- .../components/embeddables/selector.test.tsx | 24 +++ .../components/embeddables/selector.tsx | 35 ++++ 5 files changed, 289 insertions(+), 75 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/network/components/embeddables/selector.test.tsx create mode 100644 x-pack/plugins/security_solution/public/network/components/embeddables/selector.tsx diff --git a/x-pack/plugins/security_solution/public/network/components/embeddables/__snapshots__/embedded_map.test.tsx.snap b/x-pack/plugins/security_solution/public/network/components/embeddables/__snapshots__/embedded_map.test.tsx.snap index 456e07cf9cd15..4c3cbecc7593d 100644 --- a/x-pack/plugins/security_solution/public/network/components/embeddables/__snapshots__/embedded_map.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/network/components/embeddables/__snapshots__/embedded_map.test.tsx.snap @@ -1,34 +1,16 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`EmbeddedMapComponent renders correctly against snapshot 1`] = ` - - - - - Map configuration help - - - - } - > - - - - - - + `; diff --git a/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.test.tsx b/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.test.tsx index ae0d3c2256e07..219409b10be6c 100644 --- a/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.test.tsx +++ b/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.test.tsx @@ -4,36 +4,169 @@ * you may not use this file except in compliance with the Elastic License. */ -import { shallow } from 'enzyme'; +import { mount, ReactWrapper, shallow } from 'enzyme'; import React from 'react'; +import * as redux from 'react-redux'; +import { act } from 'react-dom/test-utils'; import '../../../common/mock/match_media'; import { useIndexPatterns } from '../../../common/hooks/use_index_patterns'; +import { TestProviders } from '../../../common/mock'; + import { EmbeddedMapComponent } from './embedded_map'; +import { createEmbeddable } from './embedded_map_helpers'; const mockUseIndexPatterns = useIndexPatterns as jest.Mock; jest.mock('../../../common/hooks/use_index_patterns'); mockUseIndexPatterns.mockImplementation(() => [true, []]); jest.mock('../../../common/lib/kibana'); +jest.mock('./embedded_map_helpers', () => ({ + createEmbeddable: jest.fn(), +})); +jest.mock('../../../common/lib/kibana', () => { + return { + useKibana: jest.fn().mockReturnValue({ + services: { + embeddable: { + EmbeddablePanel: jest.fn(() =>
), + }, + docLinks: { ELASTIC_WEBSITE_URL: 'ELASTIC_WEBSITE_URL' }, + }, + }), + }; +}); + +jest.mock('./index_patterns_missing_prompt', () => { + return { + IndexPatternsMissingPrompt: jest.fn(() =>
), + }; +}); describe('EmbeddedMapComponent', () => { - let setQuery: jest.Mock; + const setQuery: jest.Mock = jest.fn(); + const mockSelector = { + kibanaIndexPatterns: [ + { id: '6f1eeb50-023d-11eb-bcb6-6ba0578012a9', title: 'filebeat-*' }, + { id: '28995490-023d-11eb-bcb6-6ba0578012a9', title: 'auditbeat-*' }, + ], + sourcererScope: { selectedPatterns: ['filebeat-*', 'packetbeat-*'] }, + }; + const mockCreateEmbeddable = { + destroyed: false, + enhancements: { dynamicActions: {} }, + getActionContext: jest.fn(), + getFilterActions: jest.fn(), + id: '70969ddc-4d01-4048-8073-4ea63d595638', + input: { + viewMode: 'view', + title: 'Source -> Destination Point-to-Point Map', + id: '70969ddc-4d01-4048-8073-4ea63d595638', + filters: Array(0), + hidePanelTitles: true, + }, + input$: {}, + isContainer: false, + output: {}, + output$: {}, + parent: undefined, + parentSubscription: undefined, + renderComplete: {}, + runtimeId: 1, + reload: jest.fn(), + setLayerList: jest.fn(), + setEventHandlers: jest.fn(), + setRenderTooltipContent: jest.fn(), + type: 'map', + updateInput: jest.fn(), + }; + const testProps = { + endDate: '2019-08-28T05:50:57.877Z', + filters: [], + query: { query: '', language: 'kuery' }, + setQuery, + startDate: '2019-08-28T05:50:47.877Z', + }; beforeEach(() => { - setQuery = jest.fn(); + setQuery.mockClear(); }); test('renders correctly against snapshot', () => { const wrapper = shallow( - + + + ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.find('EmbeddedMapComponent')).toMatchSnapshot(); + }); + + test('renders services.embeddable.EmbeddablePanel', async () => { + const spy = jest.spyOn(redux, 'useSelector'); + spy.mockReturnValue(mockSelector); + + (createEmbeddable as jest.Mock).mockResolvedValue(mockCreateEmbeddable); + + let wrapper: ReactWrapper; + await act(async () => { + wrapper = mount( + + + + ); + }); + + wrapper!.update(); + + expect(wrapper!.find('[data-test-subj="EmbeddablePanel"]').exists()).toEqual(true); + expect(wrapper!.find('[data-test-subj="IndexPatternsMissingPrompt"]').exists()).toEqual(false); + expect(wrapper!.find('[data-test-subj="loading-panel"]').exists()).toEqual(false); + }); + + test('renders IndexPatternsMissingPrompt', async () => { + const spy = jest.spyOn(redux, 'useSelector'); + spy.mockReturnValue({ + ...mockSelector, + kibanaIndexPatterns: [], + }); + + (createEmbeddable as jest.Mock).mockResolvedValue(mockCreateEmbeddable); + + let wrapper: ReactWrapper; + await act(async () => { + wrapper = mount( + + + + ); + }); + + wrapper!.update(); + + expect(wrapper!.find('[data-test-subj="EmbeddablePanel"]').exists()).toEqual(false); + expect(wrapper!.find('[data-test-subj="IndexPatternsMissingPrompt"]').exists()).toEqual(true); + expect(wrapper!.find('[data-test-subj="loading-panel"]').exists()).toEqual(false); + }); + + test('renders Loader', async () => { + const spy = jest.spyOn(redux, 'useSelector'); + spy.mockReturnValue(mockSelector); + + (createEmbeddable as jest.Mock).mockResolvedValue(null); + + let wrapper: ReactWrapper; + await act(async () => { + wrapper = mount( + + + + ); + }); + + wrapper!.update(); + + expect(wrapper!.find('[data-test-subj="EmbeddablePanel"]').exists()).toEqual(false); + expect(wrapper!.find('[data-test-subj="IndexPatternsMissingPrompt"]').exists()).toEqual(false); + expect(wrapper!.find('[data-test-subj="loading-panel"]').exists()).toEqual(true); }); }); diff --git a/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx b/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx index 4d96c213818aa..7ae8aecdab606 100644 --- a/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx +++ b/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx @@ -5,27 +5,31 @@ */ import { EuiLink, EuiText } from '@elastic/eui'; -import React, { useEffect, useState } from 'react'; +import deepEqual from 'fast-deep-equal'; +import React, { useEffect, useState, useMemo } from 'react'; import { createPortalNode, InPortal } from 'react-reverse-portal'; import styled, { css } from 'styled-components'; -import { ErrorEmbeddable } from '../../../../../../../src/plugins/embeddable/public'; -import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; -import { getIndexPatternTitleIdMapping } from '../../../common/hooks/api/helpers'; -import { useIndexPatterns } from '../../../common/hooks/use_index_patterns'; +import { useSelector } from 'react-redux'; +import { + ErrorEmbeddable, + isErrorEmbeddable, +} from '../../../../../../../src/plugins/embeddable/public'; import { Loader } from '../../../common/components/loader'; import { displayErrorToast, useStateToaster } from '../../../common/components/toasters'; import { GlobalTimeArgs } from '../../../common/containers/use_global_time'; import { Embeddable } from './embeddable'; import { EmbeddableHeader } from './embeddable_header'; -import { createEmbeddable, findMatchingIndexPatterns } from './embedded_map_helpers'; +import { createEmbeddable } from './embedded_map_helpers'; import { IndexPatternsMissingPrompt } from './index_patterns_missing_prompt'; import { MapToolTip } from './map_tool_tip/map_tool_tip'; import * as i18n from './translations'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { MapEmbeddable } from '../../../../../../plugins/maps/public/embeddable'; import { Query, Filter } from '../../../../../../../src/plugins/data/public'; -import { useKibana, useUiSetting$ } from '../../../common/lib/kibana'; +import { useKibana } from '../../../common/lib/kibana'; +import { getDefaultSourcererSelector } from './selector'; +import { getLayerList } from './map_config'; interface EmbeddableMapProps { maintainRatio?: boolean; @@ -86,13 +90,19 @@ export const EmbeddedMapComponent = ({ const [embeddable, setEmbeddable] = React.useState( undefined ); - const [isLoading, setIsLoading] = useState(true); const [isError, setIsError] = useState(false); const [isIndexError, setIsIndexError] = useState(false); const [, dispatchToaster] = useStateToaster(); - const [loadingKibanaIndexPatterns, kibanaIndexPatterns] = useIndexPatterns(); - const [siemDefaultIndices] = useUiSetting$(DEFAULT_INDEX_KEY); + const defaultSourcererScopeSelector = useMemo(getDefaultSourcererSelector, []); + const { kibanaIndexPatterns, sourcererScope } = useSelector( + defaultSourcererScopeSelector, + deepEqual + ); + + const [mapIndexPatterns, setMapIndexPatterns] = useState( + kibanaIndexPatterns.filter((kip) => sourcererScope.selectedPatterns.includes(kip.title)) + ); // This portalNode provided by react-reverse-portal allows us re-parent the MapToolTip within our // own component tree instead of the embeddables (default). This is necessary to have access to @@ -102,27 +112,30 @@ export const EmbeddedMapComponent = ({ const { services } = useKibana(); + useEffect(() => { + setMapIndexPatterns((prevMapIndexPatterns) => { + const newIndexPatterns = kibanaIndexPatterns.filter((kip) => + sourcererScope.selectedPatterns.includes(kip.title) + ); + if (!deepEqual(newIndexPatterns, prevMapIndexPatterns)) { + if (newIndexPatterns.length === 0) { + setIsError(true); + } + return newIndexPatterns; + } + return prevMapIndexPatterns; + }); + }, [kibanaIndexPatterns, sourcererScope.selectedPatterns]); + // Initial Load useEffect useEffect(() => { let isSubscribed = true; async function setupEmbeddable() { - // Ensure at least one `securitySolution:defaultIndex` kibana index pattern exists before creating embeddable - const matchingIndexPatterns = findMatchingIndexPatterns({ - kibanaIndexPatterns, - siemDefaultIndices, - }); - - if (matchingIndexPatterns.length === 0 && isSubscribed) { - setIsLoading(false); - setIsIndexError(true); - return; - } - // Create & set Embeddable try { const embeddableObject = await createEmbeddable( filters, - getIndexPatternTitleIdMapping(matchingIndexPatterns), + mapIndexPatterns, query, startDate, endDate, @@ -131,7 +144,12 @@ export const EmbeddedMapComponent = ({ services.embeddable ); if (isSubscribed) { - setEmbeddable(embeddableObject); + if (mapIndexPatterns.length === 0) { + setIsIndexError(true); + } else { + setEmbeddable(embeddableObject); + setIsIndexError(false); + } } } catch (e) { if (isSubscribed) { @@ -139,19 +157,41 @@ export const EmbeddedMapComponent = ({ setIsError(true); } } - if (isSubscribed) { - setIsLoading(false); - } } - - if (!loadingKibanaIndexPatterns) { + if (embeddable == null && sourcererScope.selectedPatterns.length > 0) { setupEmbeddable(); } + return () => { isSubscribed = false; }; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [loadingKibanaIndexPatterns, kibanaIndexPatterns]); + }, [ + dispatchToaster, + endDate, + embeddable, + filters, + mapIndexPatterns, + query, + portalNode, + services.embeddable, + sourcererScope.selectedPatterns, + setQuery, + startDate, + ]); + + // update layer with new index patterns + useEffect(() => { + const setLayerList = async () => { + if (embeddable != null) { + // @ts-expect-error + await embeddable.setLayerList(getLayerList(mapIndexPatterns)); + embeddable.reload(); + } + }; + if (embeddable != null && !isErrorEmbeddable(embeddable)) { + setLayerList(); + } + }, [embeddable, mapIndexPatterns]); // queryExpression updated useEffect useEffect(() => { @@ -198,10 +238,10 @@ export const EmbeddedMapComponent = ({ - {embeddable != null ? ( - - ) : !isLoading && isIndexError ? ( + {isIndexError ? ( + ) : embeddable != null ? ( + ) : ( )} diff --git a/x-pack/plugins/security_solution/public/network/components/embeddables/selector.test.tsx b/x-pack/plugins/security_solution/public/network/components/embeddables/selector.test.tsx new file mode 100644 index 0000000000000..d5b105dd32798 --- /dev/null +++ b/x-pack/plugins/security_solution/public/network/components/embeddables/selector.test.tsx @@ -0,0 +1,24 @@ +/* + * 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 { State } from '../../../common/store'; + +import { getDefaultSourcererSelector } from './selector'; + +jest.mock('../../../common/store/sourcerer', () => ({ + sourcererSelectors: { + kibanaIndexPatternsSelector: jest.fn().mockReturnValue(jest.fn()), + scopesSelector: jest.fn().mockReturnValue(jest.fn().mockReturnValue({ default: '' })), + }, +})); + +describe('getDefaultSourcererSelector', () => { + test('Returns correct format', () => { + const mockMapStateToProps = getDefaultSourcererSelector(); + const result = mockMapStateToProps({} as State); + expect(result).toHaveProperty('kibanaIndexPatterns'); + expect(result).toHaveProperty('sourcererScope'); + }); +}); diff --git a/x-pack/plugins/security_solution/public/network/components/embeddables/selector.tsx b/x-pack/plugins/security_solution/public/network/components/embeddables/selector.tsx new file mode 100644 index 0000000000000..2d0bc970f0a51 --- /dev/null +++ b/x-pack/plugins/security_solution/public/network/components/embeddables/selector.tsx @@ -0,0 +1,35 @@ +/* + * 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 { State } from '../../../common/store'; +import { sourcererSelectors } from '../../../common/store/sourcerer'; +import { + KibanaIndexPatterns, + ManageScope, + SourcererScopeName, +} from '../../../common/store/sourcerer/model'; + +export interface DefaultSourcererSelector { + kibanaIndexPatterns: KibanaIndexPatterns; + sourcererScope: ManageScope; +} + +export const getDefaultSourcererSelector = () => { + const getKibanaIndexPatternsSelector = sourcererSelectors.kibanaIndexPatternsSelector(); + const getScopesSelector = sourcererSelectors.scopesSelector(); + + const mapStateToProps = (state: State): DefaultSourcererSelector => { + const kibanaIndexPatterns = getKibanaIndexPatternsSelector(state); + const scope = getScopesSelector(state)[SourcererScopeName.default]; + + return { + kibanaIndexPatterns, + sourcererScope: scope, + }; + }; + + return mapStateToProps; +}; From 07ebb81a79d323445e089d43e9bef04b4578f44d Mon Sep 17 00:00:00 2001 From: Shahzad Date: Thu, 1 Oct 2020 10:16:30 +0200 Subject: [PATCH 068/142] [UX] Improve page-load axis (#78392) Co-authored-by: Elastic Machine --- .../step_definitions/csm/breakdown_filter.ts | 2 +- .../step_definitions/csm/csm_dashboard.ts | 2 +- .../step_definitions/csm/csm_filters.ts | 2 +- .../step_definitions/csm/percentile_select.ts | 2 +- .../csm/service_name_filter.ts | 2 +- .../RumDashboard/Charts/PageLoadDistChart.tsx | 20 +- .../RumDashboard/Charts/PageViewsChart.tsx | 17 +- .../app/RumDashboard/ClientMetrics/index.tsx | 19 +- .../PageLoadDistribution/BreakdownSeries.tsx | 20 +- .../RumDashboard/UXMetrics/KeyUXMetrics.tsx | 3 +- .../__snapshots__/queries.test.ts.snap | 210 +++++++++++++++++- .../lib/rum_client/get_client_metrics.ts | 6 +- .../rum_client/get_page_load_distribution.ts | 110 ++++++--- .../lib/rum_client/get_pl_dist_breakdown.ts | 12 +- .../plugins/apm/server/routes/rum_client.ts | 4 +- 15 files changed, 357 insertions(+), 74 deletions(-) diff --git a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/breakdown_filter.ts b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/breakdown_filter.ts index acfbe6e0a4e78..342f3e0aa5267 100644 --- a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/breakdown_filter.ts +++ b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/breakdown_filter.ts @@ -36,7 +36,7 @@ Then(`breakdown series should appear in chart`, () => { cy.get('div.echLegendItem__label', DEFAULT_TIMEOUT).should( 'have.text', - 'ChromeChrome Mobile WebViewSafariFirefoxMobile SafariChrome MobileChrome Mobile iOSOverall' + 'OverallChromeChrome Mobile WebViewSafariFirefoxMobile SafariChrome MobileChrome Mobile iOS' ); }); }); diff --git a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/csm_dashboard.ts b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/csm_dashboard.ts index 28af4fd5d8a56..a8edf862ab256 100644 --- a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/csm_dashboard.ts +++ b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/csm_dashboard.ts @@ -26,7 +26,7 @@ Given(`a user browses the APM UI application for RUM Data`, () => { }); Then(`should have correct client metrics`, () => { - const metrics = ['4 ms', '0.06 s', '55 ']; + const metrics = ['4 ms', '58 ms', '55']; verifyClientMetrics(metrics, true); }); diff --git a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/csm_filters.ts b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/csm_filters.ts index 75974ef9c202c..5c2109bb518c2 100644 --- a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/csm_filters.ts +++ b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/csm_filters.ts @@ -56,7 +56,7 @@ Then(/^it filters the client metrics "([^"]*)"$/, (filterName) => { cy.get('.euiStat__title-isLoading').should('not.be.visible'); const data = - filterName === 'os' ? ['5 ms', '0.06 s', '8 '] : ['4 ms', '0.05 s', '28 ']; + filterName === 'os' ? ['5 ms', '64 ms', '8'] : ['4 ms', '55 ms', '28']; verifyClientMetrics(data, true); diff --git a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/percentile_select.ts b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/percentile_select.ts index 4d2ba4d01ae6c..55c980d5edeb4 100644 --- a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/percentile_select.ts +++ b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/percentile_select.ts @@ -18,7 +18,7 @@ When('the user changes the selected percentile', () => { }); Then(`it displays client metric related to that percentile`, () => { - const metrics = ['14 ms', '0.13 s', '55 ']; + const metrics = ['14 ms', '131 ms', '55']; verifyClientMetrics(metrics, false); diff --git a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/service_name_filter.ts b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/service_name_filter.ts index b3899a5649b72..20c6a3fb72aa9 100644 --- a/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/service_name_filter.ts +++ b/x-pack/plugins/apm/e2e/cypress/support/step_definitions/csm/service_name_filter.ts @@ -15,7 +15,7 @@ When('the user changes the selected service name', () => { }); Then(`it displays relevant client metrics`, () => { - const metrics = ['4 ms', '0.06 s', '55 ']; + const metrics = ['4 ms', '58 ms', '55']; verifyClientMetrics(metrics, false); }); diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/Charts/PageLoadDistChart.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/Charts/PageLoadDistChart.tsx index 4a5f43dacedf4..4eb24f8c80b9a 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/Charts/PageLoadDistChart.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/Charts/PageLoadDistChart.tsx @@ -88,6 +88,10 @@ export function PageLoadDistChart({ const [darkMode] = useUiSetting$('theme:darkMode'); + const euiChartTheme = darkMode + ? EUI_CHARTS_THEME_DARK + : EUI_CHARTS_THEME_LIGHT; + return ( numeral(d).format('0.0') + '%'} + labelFormat={(d) => d + ' %'} /> numeral(d).format('0.0') + ' %'} /> {breakdown && ( ('theme:darkMode'); @@ -83,17 +85,17 @@ export function PageViewsChart({ data, loading }: Props) { return yAccessor; }; + const euiChartTheme = darkMode + ? EUI_CHARTS_THEME_DARK + : EUI_CHARTS_THEME_LIGHT; + return ( {(!loading || data) && ( )} diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/ClientMetrics/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/ClientMetrics/index.tsx index 03f2f31f35817..310c01291aea4 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/ClientMetrics/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/ClientMetrics/index.tsx @@ -11,6 +11,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiStat, EuiToolTip } from '@elastic/eui'; import { useFetcher } from '../../../../hooks/useFetcher'; import { I18LABELS } from '../translations'; import { useUxQuery } from '../hooks/useUxQuery'; +import { formatToSec } from '../UXMetrics/KeyUXMetrics'; import { CsmSharedContext } from '../CsmSharedContext'; const ClFlexGroup = styled(EuiFlexGroup)` @@ -49,14 +50,14 @@ export function ClientMetrics() { const STAT_STYLE = { width: '240px' }; + const pageViewsTotal = data?.pageViews?.value ?? 0; + return ( @@ -64,7 +65,7 @@ export function ClientMetrics() { @@ -73,9 +74,13 @@ export function ClientMetrics() { - <>{numeral(data?.pageViews?.value).format('0 a') ?? '-'} - + pageViewsTotal < 10000 ? ( + numeral(pageViewsTotal).format('0,0') + ) : ( + + <>{numeral(pageViewsTotal).format('0 a')} + + ) } description={I18LABELS.pageViews} isLoading={status !== 'success'} diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/BreakdownSeries.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/BreakdownSeries.tsx index 3463327441b7b..f348aca495c71 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/BreakdownSeries.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/PageLoadDistribution/BreakdownSeries.tsx @@ -6,8 +6,13 @@ import { CurveType, Fit, LineSeries, ScaleType } from '@elastic/charts'; import React, { useEffect } from 'react'; +import { + EUI_CHARTS_THEME_DARK, + EUI_CHARTS_THEME_LIGHT, +} from '@elastic/eui/dist/eui_charts_theme'; import { PercentileRange } from './index'; import { useBreakdowns } from './use_breakdowns'; +import { useUiSetting$ } from '../../../../../../../../src/plugins/kibana_react/public'; interface Props { field: string; @@ -22,6 +27,12 @@ export function BreakdownSeries({ percentileRange, onLoadingChange, }: Props) { + const [darkMode] = useUiSetting$('theme:darkMode'); + + const euiChartTheme = darkMode + ? EUI_CHARTS_THEME_DARK + : EUI_CHARTS_THEME_LIGHT; + const { data, status } = useBreakdowns({ field, value, @@ -32,9 +43,11 @@ export function BreakdownSeries({ onLoadingChange(status !== 'success'); }, [status, onLoadingChange]); + // sort index 1 color vizColors1 is already used for overall, + // so don't user that here return ( <> - {data?.map(({ data: seriesData, name }) => ( + {data?.map(({ data: seriesData, name }, sortIndex) => ( ))} diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/KeyUXMetrics.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/KeyUXMetrics.tsx index 53722658cafef..5b0e9709d4fa3 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/KeyUXMetrics.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/UXMetrics/KeyUXMetrics.tsx @@ -6,6 +6,7 @@ import React from 'react'; import { EuiFlexItem, EuiStat, EuiFlexGroup } from '@elastic/eui'; +import numeral from '@elastic/numeral'; import { UXMetrics } from './index'; import { FCP_LABEL, @@ -77,7 +78,7 @@ export function KeyUXMetrics({ data, loading }: Props) { diff --git a/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap index 66cfa954965d2..1c724efac37b2 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap +++ b/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap @@ -245,10 +245,214 @@ Object { ], }, }, - "minDuration": Object { - "min": Object { + "loadDistribution": Object { + "percentile_ranks": Object { "field": "transaction.duration.us", - "missing": 0, + "hdr": Object { + "number_of_significant_value_digits": 3, + }, + "keyed": false, + "values": Array [ + 0, + 500000, + 1000000, + 1500000, + 2000000, + 2500000, + 3000000, + 3500000, + 4000000, + 4500000, + 5000000, + 5500000, + 6000000, + 6500000, + 7000000, + 7500000, + 8000000, + 8500000, + 9000000, + 9500000, + 10000000, + 10500000, + 11000000, + 11500000, + 12000000, + 12500000, + 13000000, + 13500000, + 14000000, + 14500000, + 15000000, + 15500000, + 16000000, + 16500000, + 17000000, + 17500000, + 18000000, + 18500000, + 19000000, + 19500000, + 20000000, + 20500000, + 21000000, + 21500000, + 22000000, + 22500000, + 23000000, + 23500000, + 24000000, + 24500000, + 25000000, + 25500000, + 26000000, + 26500000, + 27000000, + 27500000, + 28000000, + 28500000, + 29000000, + 29500000, + 30000000, + 30500000, + 31000000, + 31500000, + 32000000, + 32500000, + 33000000, + 33500000, + 34000000, + 34500000, + 35000000, + 35500000, + 36000000, + 36500000, + 37000000, + 37500000, + 38000000, + 38500000, + 39000000, + 39500000, + 40000000, + 40500000, + 41000000, + 41500000, + 42000000, + 42500000, + 43000000, + 43500000, + 44000000, + 44500000, + 45000000, + 45500000, + 46000000, + 46500000, + 47000000, + 47500000, + 48000000, + 48500000, + 49000000, + 49500000, + 50000000, + 50500000, + 51000000, + 51500000, + 52000000, + 52500000, + 53000000, + 53500000, + 54000000, + 54500000, + 55000000, + 55500000, + 56000000, + 56500000, + 57000000, + 57500000, + 58000000, + 58500000, + 59000000, + 59500000, + 60000000, + 60500000, + 61000000, + 61500000, + 62000000, + 62500000, + 63000000, + 63500000, + 64000000, + 64500000, + 65000000, + 65500000, + 66000000, + 66500000, + 67000000, + 67500000, + 68000000, + 68500000, + 69000000, + 69500000, + 70000000, + 70500000, + 71000000, + 71500000, + 72000000, + 72500000, + 73000000, + 73500000, + 74000000, + 74500000, + 75000000, + 75500000, + 76000000, + 76500000, + 77000000, + 77500000, + 78000000, + 78500000, + 79000000, + 79500000, + 80000000, + 80500000, + 81000000, + 81500000, + 82000000, + 82500000, + 83000000, + 83500000, + 84000000, + 84500000, + 85000000, + 85500000, + 86000000, + 86500000, + 87000000, + 87500000, + 88000000, + 88500000, + 89000000, + 89500000, + 90000000, + 90500000, + 91000000, + 91500000, + 92000000, + 92500000, + 93000000, + 93500000, + 94000000, + 94500000, + 95000000, + 95500000, + 96000000, + 96500000, + 97000000, + 97500000, + 98000000, + 98500000, + 99000000, + ], }, }, }, diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts b/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts index a210c32ceb44e..6566ea4f5e29b 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts @@ -72,11 +72,9 @@ export async function getClientMetrics({ // Divide by 1000 to convert ms into seconds return { pageViews, - backEnd: { value: (backEnd.values[pkey] || 0) / 1000 }, + backEnd: { value: backEnd.values[pkey] || 0 }, frontEnd: { - value: - ((domInteractive.values[pkey] || 0) - (backEnd.values[pkey] || 0)) / - 1000, + value: (domInteractive.values[pkey] || 0) - (backEnd.values[pkey] || 0), }, }; } diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_page_load_distribution.ts b/x-pack/plugins/apm/server/lib/rum_client/get_page_load_distribution.ts index 25de9f06fefc4..5f666feb8a18f 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_page_load_distribution.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_page_load_distribution.ts @@ -15,8 +15,6 @@ import { export const MICRO_TO_SEC = 1000000; -const NUMBER_OF_PLD_STEPS = 100; - export function microToSec(val: number) { return Math.round((val / MICRO_TO_SEC + Number.EPSILON) * 100) / 100; } @@ -24,15 +22,31 @@ export function microToSec(val: number) { export const getPLDChartSteps = ({ maxDuration, minDuration, + initStepValue, }: { maxDuration: number; minDuration: number; + initStepValue?: number; }) => { - const stepValue = (maxDuration - minDuration) / NUMBER_OF_PLD_STEPS; - const stepValues = []; - for (let i = 1; i < NUMBER_OF_PLD_STEPS + 1; i++) { - stepValues.push((stepValue * i + minDuration).toFixed(2)); + let stepValue = 0.5; + // if diff is too low, let's lower + // down the steps value to increase steps + if (maxDuration - minDuration <= 5 * MICRO_TO_SEC) { + stepValue = 0.1; + } + + if (initStepValue) { + stepValue = initStepValue; + } + + let initValue = minDuration; + const stepValues = [initValue]; + + while (initValue < maxDuration) { + initValue += stepValue * MICRO_TO_SEC; + stepValues.push(initValue); } + return stepValues; }; @@ -52,16 +66,21 @@ export async function getPageLoadDistribution({ urlQuery, }); + // we will first get 100 steps using 0sec and 50sec duration, + // most web apps will cover this use case + // if 99th percentile is greater than 50sec, + // we will fetch additional 5 steps beyond 99th percentile + let maxDuration = (maxPercentile ? +maxPercentile : 50) * MICRO_TO_SEC; + const minDuration = minPercentile ? +minPercentile * MICRO_TO_SEC : 0; + const stepValues = getPLDChartSteps({ + maxDuration, + minDuration, + }); + const params = mergeProjection(projection, { body: { size: 0, aggs: { - minDuration: { - min: { - field: TRANSACTION_DURATION, - missing: 0, - }, - }, durPercentiles: { percentiles: { field: TRANSACTION_DURATION, @@ -71,6 +90,16 @@ export async function getPageLoadDistribution({ }, }, }, + loadDistribution: { + percentile_ranks: { + field: TRANSACTION_DURATION, + values: stepValues, + keyed: false, + hdr: { + number_of_significant_value_digits: 3, + }, + }, + }, }, }, }); @@ -86,22 +115,40 @@ export async function getPageLoadDistribution({ return null; } - const { durPercentiles, minDuration } = aggregations ?? {}; + const { durPercentiles, loadDistribution } = aggregations ?? {}; - const minPerc = minPercentile - ? +minPercentile * MICRO_TO_SEC - : minDuration?.value ?? 0; + let pageDistVals = loadDistribution?.values ?? []; - const maxPercQuery = durPercentiles?.values['99.0'] ?? 10000; + const maxPercQuery = durPercentiles?.values['99.0'] ?? 0; - const maxPerc = maxPercentile ? +maxPercentile * MICRO_TO_SEC : maxPercQuery; + // we assumed that page load will never exceed 50secs, if 99th percentile is + // greater then let's fetch additional 10 steps, to cover that on the chart + if (maxPercQuery > maxDuration && !maxPercentile) { + const additionalStepsPageVals = await getPercentilesDistribution({ + setup, + maxDuration: maxPercQuery, + // we pass 50sec as min to get next steps + minDuration: maxDuration, + }); - const pageDist = await getPercentilesDistribution({ - setup, - minDuration: minPerc, - maxDuration: maxPerc, + pageDistVals = pageDistVals.concat(additionalStepsPageVals); + maxDuration = maxPercQuery; + } + + // calculate the diff to get actual page load on specific duration value + const pageDist = pageDistVals.map(({ key, value }, index: number, arr) => { + return { + x: microToSec(key), + y: index === 0 ? value : value - arr[index - 1].value, + }; }); + if (pageDist.length > 0) { + while (pageDist[pageDist.length - 1].y === 0) { + pageDist.pop(); + } + } + Object.entries(durPercentiles?.values ?? {}).forEach(([key, val]) => { if (durPercentiles?.values?.[key]) { durPercentiles.values[key] = microToSec(val as number); @@ -111,8 +158,8 @@ export async function getPageLoadDistribution({ return { pageLoadDistribution: pageDist, percentiles: durPercentiles?.values, - minDuration: microToSec(minPerc), - maxDuration: microToSec(maxPerc), + minDuration: microToSec(minDuration), + maxDuration: microToSec(maxDuration), }; } @@ -125,7 +172,11 @@ const getPercentilesDistribution = async ({ minDuration: number; maxDuration: number; }) => { - const stepValues = getPLDChartSteps({ maxDuration, minDuration }); + const stepValues = getPLDChartSteps({ + minDuration: minDuration + 0.5 * MICRO_TO_SEC, + maxDuration, + initStepValue: 0.5, + }); const projection = getRumPageLoadTransactionsProjection({ setup, @@ -153,12 +204,5 @@ const getPercentilesDistribution = async ({ const { aggregations } = await apmEventClient.search(params); - const pageDist = aggregations?.loadDistribution.values ?? []; - - return pageDist.map(({ key, value }, index: number, arr) => { - return { - x: microToSec(key), - y: index === 0 ? value : value - arr[index - 1].value, - }; - }); + return aggregations?.loadDistribution.values ?? []; }; diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_pl_dist_breakdown.ts b/x-pack/plugins/apm/server/lib/rum_client/get_pl_dist_breakdown.ts index d59817cc682a9..bebf9c0bc99c9 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_pl_dist_breakdown.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_pl_dist_breakdown.ts @@ -41,21 +41,21 @@ export const getBreakdownField = (breakdown: string) => { export const getPageLoadDistBreakdown = async ({ setup, - minDuration, - maxDuration, + minPercentile, + maxPercentile, breakdown, urlQuery, }: { setup: Setup & SetupTimeRange & SetupUIFilters; - minDuration: number; - maxDuration: number; + minPercentile: number; + maxPercentile: number; breakdown: string; urlQuery?: string; }) => { // convert secs to micros const stepValues = getPLDChartSteps({ - minDuration: minDuration * MICRO_TO_SEC, - maxDuration: maxDuration * MICRO_TO_SEC, + maxDuration: (maxPercentile ? +maxPercentile : 50) * MICRO_TO_SEC, + minDuration: minPercentile ? +minPercentile * MICRO_TO_SEC : 0, }); const projection = getRumPageLoadTransactionsProjection({ diff --git a/x-pack/plugins/apm/server/routes/rum_client.ts b/x-pack/plugins/apm/server/routes/rum_client.ts index d86069a3ec27a..2bdfaa1421eea 100644 --- a/x-pack/plugins/apm/server/routes/rum_client.ts +++ b/x-pack/plugins/apm/server/routes/rum_client.ts @@ -89,8 +89,8 @@ export const rumPageLoadDistBreakdownRoute = createRoute(() => ({ return getPageLoadDistBreakdown({ setup, - minDuration: Number(minPercentile), - maxDuration: Number(maxPercentile), + minPercentile: Number(minPercentile), + maxPercentile: Number(maxPercentile), breakdown, urlQuery, }); From addbdf7cb608ef1b1aeda1d31d0341f6ace02c98 Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Thu, 1 Oct 2020 10:29:51 +0200 Subject: [PATCH 069/142] [Drilldowns][Docs] Communicate the visualization types that support drilldowns (#78761) --- .../dashboard/dashboard-drilldown.asciidoc | 21 +++++++++++++++++++ docs/user/dashboard/url-drilldown.asciidoc | 16 ++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/docs/user/dashboard/dashboard-drilldown.asciidoc b/docs/user/dashboard/dashboard-drilldown.asciidoc index 84701cae2ecc6..e50c1281beede 100644 --- a/docs/user/dashboard/dashboard-drilldown.asciidoc +++ b/docs/user/dashboard/dashboard-drilldown.asciidoc @@ -11,6 +11,26 @@ This example shows a dashboard panel that contains a pie chart with a configured [role="screenshot"] image::images/drilldown_on_piechart.gif[Drilldown on pie chart that navigates to another dashboard] +[float] +[[dashboard-drilldown-supported-panels]] +==== Supported panels + +The following panels support dashboard drilldowns: + +* Lens +* Area +* Data table +* Heat map +* Horizontal bar +* Line +* Maps +* Pie +* TSVB +* Tag cloud +* Timelion +* Vega +* Vertical bar + [float] [[drilldowns-example]] ==== Try it: Create a dashboard drilldown @@ -74,3 +94,4 @@ image::images/drilldown_on_panel.png[Drilldown on pie chart that navigates to an + You are navigated to your destination dashboard. Verify that the search query, filters, and time range are carried over. + diff --git a/docs/user/dashboard/url-drilldown.asciidoc b/docs/user/dashboard/url-drilldown.asciidoc index ee879256a1fae..620a2d2056bf1 100644 --- a/docs/user/dashboard/url-drilldown.asciidoc +++ b/docs/user/dashboard/url-drilldown.asciidoc @@ -14,6 +14,22 @@ image:images/url_drilldown_go_to_github.gif[Drilldown on pie chart that navigate NOTE: URL drilldown is available with the https://www.elastic.co/subscriptions[Gold subscription] and higher. +[float] +[[url-drilldown-supported-panels]] +==== Supported panels + +The following panels support URL drilldowns: + +* Lens +* Area +* Data table +* Heat map +* Horizontal bar +* Line +* Pie +* Tag cloud +* Vertical bar + [float] [[try-it]] ==== Try it: Create a URL drilldown From d8ded4df6cc173dae624da2408b4657b541f7f1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patryk=20Kopyci=C5=84ski?= Date: Thu, 1 Oct 2020 10:56:52 +0200 Subject: [PATCH 070/142] Fix ML conditionals links Cypress tests (#78568) --- .../integration/ml_conditional_links.spec.ts | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/x-pack/plugins/security_solution/cypress/integration/ml_conditional_links.spec.ts b/x-pack/plugins/security_solution/cypress/integration/ml_conditional_links.spec.ts index 3b89163392626..7bdc461a7c73d 100644 --- a/x-pack/plugins/security_solution/cypress/integration/ml_conditional_links.spec.ts +++ b/x-pack/plugins/security_solution/cypress/integration/ml_conditional_links.spec.ts @@ -24,20 +24,7 @@ import { mlNetworkSingleIpNullKqlQuery, } from '../urls/ml_conditional_links'; -// FLAKY: https://github.com/elastic/kibana/issues/78512 -// FLAKY: https://github.com/elastic/kibana/issues/78511 -// FLAKY: https://github.com/elastic/kibana/issues/78510 -// FLAKY: https://github.com/elastic/kibana/issues/78509 -// FLAKY: https://github.com/elastic/kibana/issues/78508 -// FLAKY: https://github.com/elastic/kibana/issues/78507 -// FLAKY: https://github.com/elastic/kibana/issues/78506 -// FLAKY: https://github.com/elastic/kibana/issues/78505 -// FLAKY: https://github.com/elastic/kibana/issues/78504 -// FLAKY: https://github.com/elastic/kibana/issues/78503 -// FLAKY: https://github.com/elastic/kibana/issues/78502 -// FLAKY: https://github.com/elastic/kibana/issues/78501 -// FLAKY: https://github.com/elastic/kibana/issues/78500 -describe.skip('ml conditional links', () => { +describe('ml conditional links', () => { it('sets the KQL from a single IP with a value for the query', () => { loginAndWaitForPageWithoutDateRange(mlNetworkSingleIpKqlQuery); cy.get(KQL_INPUT) From 9b187c5f81297d6d662a24266594494d7ef628ae Mon Sep 17 00:00:00 2001 From: Tim Roes Date: Thu, 1 Oct 2020 11:10:15 +0200 Subject: [PATCH 071/142] Make the actual Vislib import async (#78949) Co-authored-by: Elastic Machine --- src/plugins/vis_type_vislib/public/vis_controller.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plugins/vis_type_vislib/public/vis_controller.tsx b/src/plugins/vis_type_vislib/public/vis_controller.tsx index c422e9f4f3a0a..3a05030f804ca 100644 --- a/src/plugins/vis_type_vislib/public/vis_controller.tsx +++ b/src/plugins/vis_type_vislib/public/vis_controller.tsx @@ -20,8 +20,6 @@ import $ from 'jquery'; import React, { RefObject } from 'react'; -// @ts-ignore -import { Vis as Vislib } from './vislib/vis'; import { Positions } from './utils/collections'; import { VisTypeVislibDependencies } from './plugin'; import { mountReactNode } from '../../../core/public/utils'; @@ -80,6 +78,9 @@ export const createVislibVisController = (deps: VisTypeVislibDependencies) => { return resolve(); } + // @ts-expect-error + const { Vis: Vislib } = await import('./vislib/vis'); + this.vislibVis = new Vislib(this.chartEl, visParams, deps); this.vislibVis.on('brush', this.vis.API.events.brush); this.vislibVis.on('click', this.vis.API.events.filter); From e836efc3e0f89470d2d207f78b08ce74b5f995fd Mon Sep 17 00:00:00 2001 From: Bohdan Tsymbala Date: Thu, 1 Oct 2020 11:31:11 +0200 Subject: [PATCH 072/142] Changed the color of the confirm button in trusted app deletion dialog. (#78768) * Changed the color of the confirm button in trusted app deletion dialog. * Updated the snapshots. --- .../trusted_app_deletion_dialog.test.tsx.snap | 6 +++--- .../trusted_apps/view/trusted_app_deletion_dialog.tsx | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/__snapshots__/trusted_app_deletion_dialog.test.tsx.snap b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/__snapshots__/trusted_app_deletion_dialog.test.tsx.snap index fdb20f229f144..89f81948e166b 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/__snapshots__/trusted_app_deletion_dialog.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/__snapshots__/trusted_app_deletion_dialog.test.tsx.snap @@ -85,7 +85,7 @@ exports[`TrustedAppDeletionDialog renders correctly when deletion failed 1`] = `
} > - + , this.el From 36814aa1ef5e8b1e593bbcbfc915075f62bc38c0 Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Thu, 1 Oct 2020 13:30:10 +0300 Subject: [PATCH 077/142] Change implementation on TSVB functional when testing the indexPattern switch (#78754) Co-authored-by: Elastic Machine --- test/functional/apps/visualize/_tsvb_chart.ts | 4 ++-- test/functional/page_objects/visual_builder_page.ts | 8 ++++++++ test/functional/services/combo_box.ts | 11 +++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/test/functional/apps/visualize/_tsvb_chart.ts b/test/functional/apps/visualize/_tsvb_chart.ts index bfe0da7a5b24f..3e325d5e6b907 100644 --- a/test/functional/apps/visualize/_tsvb_chart.ts +++ b/test/functional/apps/visualize/_tsvb_chart.ts @@ -135,11 +135,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.visualBuilder.clickPanelOptions('metric'); const fromTime = 'Oct 22, 2018 @ 00:00:00.000'; const toTime = 'Oct 28, 2018 @ 23:59:59.999'; + await PageObjects.timePicker.setAbsoluteRange(fromTime, toTime); // Sometimes popovers take some time to appear in Firefox (#71979) await retry.tryForTime(20000, async () => { - await PageObjects.timePicker.setAbsoluteRange(fromTime, toTime); await PageObjects.visualBuilder.setIndexPatternValue('kibana_sample_data_flights'); - await PageObjects.common.sleep(3000); + await PageObjects.visualBuilder.waitForIndexPatternTimeFieldOptionsLoaded(); await PageObjects.visualBuilder.selectIndexPatternTimeField('timestamp'); }); const newValue = await PageObjects.visualBuilder.getMetricValue(); diff --git a/test/functional/page_objects/visual_builder_page.ts b/test/functional/page_objects/visual_builder_page.ts index 6e49fd3b03494..37634d0248b04 100644 --- a/test/functional/page_objects/visual_builder_page.ts +++ b/test/functional/page_objects/visual_builder_page.ts @@ -453,6 +453,14 @@ export function VisualBuilderPageProvider({ getService, getPageObjects }: FtrPro await PageObjects.header.waitUntilLoadingHasFinished(); } + public async waitForIndexPatternTimeFieldOptionsLoaded() { + await retry.waitFor('combobox options loaded', async () => { + const options = await comboBox.getOptions('metricsIndexPatternFieldsSelect'); + log.debug(`-- optionsCount=${options.length}`); + return options.length > 0; + }); + } + public async selectIndexPatternTimeField(timeField: string) { await retry.try(async () => { await comboBox.clearInputField('metricsIndexPatternFieldsSelect'); diff --git a/test/functional/services/combo_box.ts b/test/functional/services/combo_box.ts index ac7a40361d065..57e1857989950 100644 --- a/test/functional/services/combo_box.ts +++ b/test/functional/services/combo_box.ts @@ -58,6 +58,17 @@ export function ComboBoxProvider({ getService, getPageObjects }: FtrProviderCont return isMouseClick ? await element.clickMouseButton() : await element._webElement.click(); } + /** + * Finds combobox element options + * + * @param comboBoxSelector data-test-subj selector + */ + public async getOptions(comboBoxSelector: string) { + const comboBoxElement = await testSubjects.find(comboBoxSelector); + await this.openOptionsList(comboBoxElement); + return await find.allByCssSelector('.euiFilterSelectItem', WAIT_FOR_EXISTS_TIME); + } + /** * Sets value for specified combobox element * From d11da3275d0b829fa48f76df9864e4913fe0cf22 Mon Sep 17 00:00:00 2001 From: Marta Bondyra Date: Thu, 1 Oct 2020 12:54:40 +0200 Subject: [PATCH 078/142] [Lens] Don't allow values outside of range for number of top values (#78734) --- .../{terms.tsx => terms/index.tsx} | 46 ++++----------- .../definitions/{ => terms}/terms.test.tsx | 32 +++++------ .../terms/values_range_input.test.tsx | 56 +++++++++++++++++++ .../definitions/terms/values_range_input.tsx | 50 +++++++++++++++++ 4 files changed, 133 insertions(+), 51 deletions(-) rename x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/{terms.tsx => terms/index.tsx} (87%) rename x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/{ => terms}/terms.test.tsx (95%) create mode 100644 x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.test.tsx create mode 100644 x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.tsx diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx similarity index 87% rename from x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms.tsx rename to x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx index c147029bbd3c7..85deb2bac25ca 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx @@ -6,24 +6,13 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; -import { EuiFormRow, EuiRange, EuiSelect } from '@elastic/eui'; -import { IndexPatternColumn } from '../../indexpattern'; -import { updateColumnParam } from '../../state_helpers'; -import { DataType } from '../../../types'; -import { OperationDefinition } from './index'; -import { FieldBasedIndexPatternColumn } from './column_types'; - -type PropType = C extends React.ComponentType ? P : unknown; - -// Add ticks to EuiRange component props -const FixedEuiRange = (EuiRange as unknown) as React.ComponentType< - PropType & { - ticks?: Array<{ - label: string; - value: number; - }>; - } ->; +import { EuiFormRow, EuiSelect } from '@elastic/eui'; +import { IndexPatternColumn } from '../../../indexpattern'; +import { updateColumnParam } from '../../../state_helpers'; +import { DataType } from '../../../../types'; +import { OperationDefinition } from '../index'; +import { FieldBasedIndexPatternColumn } from '../column_types'; +import { ValuesRangeInput } from './values_range_input'; function ofName(name: string) { return i18n.translate('xpack.lens.indexPattern.termsOf', { @@ -182,30 +171,19 @@ export const termsOperation: OperationDefinition - | React.MouseEvent - ) => + onChange={(value) => { setState( updateColumnParam({ state, layerId, currentColumn, paramName: 'size', - value: Number((e.target as HTMLInputElement).value), + value, }) - ) - } - aria-label={i18n.translate('xpack.lens.indexPattern.terms.size', { - defaultMessage: 'Number of values', - })} + ); + }} /> { it('should render current size value', () => { const setStateSpy = jest.fn(); - const instance = shallow( + const instance = mount( { /> ); - expect(instance.find(EuiRange).prop('value')).toEqual(3); + expect(instance.find(EuiRange).prop('value')).toEqual('3'); }); it('should update state with the size value', () => { const setStateSpy = jest.fn(); - const instance = shallow( + const instance = mount( { /> ); - instance.find(EuiRange).prop('onChange')!( - { - target: { - value: '7', - }, - } as React.ChangeEvent, - true - ); + act(() => { + instance.find(ValuesRangeInput).prop('onChange')!(7); + }); + expect(setStateSpy).toHaveBeenCalledWith({ ...state, layers: { diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.test.tsx new file mode 100644 index 0000000000000..c1620dd316a60 --- /dev/null +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.test.tsx @@ -0,0 +1,56 @@ +/* + * 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 { act } from 'react-dom/test-utils'; +import { shallow } from 'enzyme'; +import { EuiRange } from '@elastic/eui'; +import { ValuesRangeInput } from './values_range_input'; + +jest.mock('react-use', () => ({ + useDebounce: (fn: () => void) => fn(), +})); + +describe('ValuesRangeInput', () => { + it('should render EuiRange correctly', () => { + const onChangeSpy = jest.fn(); + const instance = shallow(); + + expect(instance.find(EuiRange).prop('value')).toEqual('5'); + }); + + it('should run onChange function on update', () => { + const onChangeSpy = jest.fn(); + const instance = shallow(); + act(() => { + instance.find(EuiRange).prop('onChange')!( + { currentTarget: { value: '7' } } as React.ChangeEvent, + true + ); + }); + expect(instance.find(EuiRange).prop('value')).toEqual('7'); + // useDebounce runs on initialization and on change + expect(onChangeSpy.mock.calls.length).toBe(2); + expect(onChangeSpy.mock.calls[0][0]).toBe(5); + expect(onChangeSpy.mock.calls[1][0]).toBe(7); + }); + it('should not run onChange function on update when value is out of 1-100 range', () => { + const onChangeSpy = jest.fn(); + const instance = shallow(); + act(() => { + instance.find(EuiRange).prop('onChange')!( + { currentTarget: { value: '107' } } as React.ChangeEvent, + true + ); + }); + instance.update(); + expect(instance.find(EuiRange).prop('value')).toEqual('107'); + // useDebounce only runs on initialization + expect(onChangeSpy.mock.calls.length).toBe(2); + expect(onChangeSpy.mock.calls[0][0]).toBe(5); + expect(onChangeSpy.mock.calls[1][0]).toBe(100); + }); +}); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.tsx new file mode 100644 index 0000000000000..6bfde4b652571 --- /dev/null +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/values_range_input.tsx @@ -0,0 +1,50 @@ +/* + * 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 } from 'react'; +import { useDebounce } from 'react-use'; +import { i18n } from '@kbn/i18n'; +import { EuiRange } from '@elastic/eui'; + +export const ValuesRangeInput = ({ + value, + onChange, +}: { + value: number; + onChange: (value: number) => void; +}) => { + const MIN_NUMBER_OF_VALUES = 1; + const MAX_NUMBER_OF_VALUES = 100; + + const [inputValue, setInputValue] = useState(String(value)); + useDebounce( + () => { + if (inputValue === '') { + return; + } + const inputNumber = Number(inputValue); + onChange(Math.min(MAX_NUMBER_OF_VALUES, Math.max(inputNumber, MIN_NUMBER_OF_VALUES))); + }, + 256, + [inputValue] + ); + + return ( + setInputValue(currentTarget.value)} + aria-label={i18n.translate('xpack.lens.indexPattern.terms.size', { + defaultMessage: 'Number of values', + })} + /> + ); +}; From 8948811c634ba2e4c7a4c9881b6834f7577440a0 Mon Sep 17 00:00:00 2001 From: Marta Bondyra Date: Thu, 1 Oct 2020 12:54:48 +0200 Subject: [PATCH 079/142] fix: add EuiOutsideClickDetector (#78733) Co-authored-by: Elastic Machine --- .../config_panel/dimension_container.tsx | 63 ++++++++++--------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/dimension_container.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/dimension_container.tsx index d6b395ac74cce..a415eb44cf196 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/dimension_container.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/dimension_container.tsx @@ -13,6 +13,7 @@ import { EuiButtonEmpty, EuiFlexItem, EuiFocusTrap, + EuiOutsideClickDetector, } from '@elastic/eui'; import classNames from 'classnames'; @@ -91,37 +92,39 @@ export function DimensionContainer({ const flyout = flyoutIsVisible && ( -
- - - - {panelTitle} + +
+ + + + {panelTitle} + + + + + {panel} + + + + {i18n.translate('xpack.lens.dimensionContainer.close', { + defaultMessage: 'Close', + })} - - - - {panel} - - - - {i18n.translate('xpack.lens.dimensionContainer.close', { - defaultMessage: 'Close', - })} - - -
+ +
+
); From 3024513e107a7411a0a6b4aadc5ba362f13ce0e2 Mon Sep 17 00:00:00 2001 From: Mikhail Shustov Date: Thu, 1 Oct 2020 14:05:59 +0300 Subject: [PATCH 080/142] [KP] instrument platform server-side code with apm agent (#70919) * instrument platform server-side code with apm agent: setup, start lifecycles and SO migration * add span type * span should have name: saved_objects.migration * remove migration reports * put migration span back --- src/core/server/server.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/core/server/server.ts b/src/core/server/server.ts index 5935636d54f9d..4e5a7a328bed4 100644 --- a/src/core/server/server.ts +++ b/src/core/server/server.ts @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ - +import apm from 'elastic-apm-node'; import { config as pathConfig } from '@kbn/utils'; import { mapToObject } from '@kbn/std'; import { ConfigService, Env, RawConfigurationProvider, coreDeprecationProvider } from './config'; @@ -106,6 +106,7 @@ export class Server { public async setup() { this.log.debug('setting up server'); + const setupTransaction = apm.startTransaction('server_setup', 'kibana_platform'); const environmentSetup = await this.environment.setup(); @@ -207,20 +208,25 @@ export class Server { this.registerCoreContext(coreSetup); this.coreApp.setup(coreSetup); + setupTransaction?.end(); return coreSetup; } public async start() { this.log.debug('starting server'); + const startTransaction = apm.startTransaction('server_start', 'kibana_platform'); + const auditTrailStart = this.auditTrail.start(); const elasticsearchStart = await this.elasticsearch.start({ auditTrail: auditTrailStart, }); + const soStartSpan = startTransaction?.startSpan('saved_objects.migration', 'migration'); const savedObjectsStart = await this.savedObjects.start({ elasticsearch: elasticsearchStart, pluginsInitialized: this.#pluginsInitialized, }); + soStartSpan?.end(); const capabilitiesStart = this.capabilities.start(); const uiSettingsStart = await this.uiSettings.start(); const metricsStart = await this.metrics.start(); @@ -248,6 +254,7 @@ export class Server { await this.http.start(); + startTransaction?.end(); return this.coreStart; } From cbc83003d35a3b0016d241100fb12d357c4bbc09 Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Thu, 1 Oct 2020 14:21:34 +0300 Subject: [PATCH 081/142] [Actions][Jira] Fix bug with Jira sub-task (#79070) --- .../builtin_action_types/jira/service.test.ts | 2 +- .../builtin_action_types/jira/service.ts | 5 +- .../builtin_action_types/jira/api.test.ts | 159 ++++++++++++++++++ .../builtin_action_types/jira/api.ts | 2 +- .../jira/use_get_fields_by_issue_type.tsx | 1 + .../jira/use_get_issue_types.tsx | 1 + .../jira/use_get_issues.tsx | 1 + .../jira/use_get_single_issue.tsx | 3 +- .../resilient/use_get_incident_types.tsx | 1 + .../resilient/use_get_severity.tsx | 1 + 10 files changed, 172 insertions(+), 4 deletions(-) create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/api.test.ts diff --git a/x-pack/plugins/actions/server/builtin_action_types/jira/service.test.ts b/x-pack/plugins/actions/server/builtin_action_types/jira/service.test.ts index 605c05e2a9f25..fe4e135c76fc3 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/jira/service.test.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/jira/service.test.ts @@ -965,7 +965,7 @@ describe('Jira service', () => { axios, logger, method: 'get', - url: `https://siem-kibana.atlassian.net/rest/api/2/search?jql=project=CK and summary ~"Test title"`, + url: `https://siem-kibana.atlassian.net/rest/api/2/search?jql=project%3D%22CK%22%20and%20summary%20~%22Test%20title%22`, }); }); diff --git a/x-pack/plugins/actions/server/builtin_action_types/jira/service.ts b/x-pack/plugins/actions/server/builtin_action_types/jira/service.ts index 7429c3d36d7b0..f52d3fa2efd37 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/jira/service.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/jira/service.ts @@ -396,7 +396,10 @@ export const createExternalService = ( }; const getIssues = async (title: string) => { - const query = `${searchUrl}?jql=project=${projectKey} and summary ~"${title}"`; + const query = `${searchUrl}?jql=${encodeURIComponent( + `project="${projectKey}" and summary ~"${title}"` + )}`; + try { const res = await request({ axios: axiosInstance, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/api.test.ts b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/api.test.ts new file mode 100644 index 0000000000000..d5474aaceaa48 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/api.test.ts @@ -0,0 +1,159 @@ +/* + * 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 { httpServiceMock } from '../../../../../../../../src/core/public/mocks'; +import { getIssueTypes, getFieldsByIssueType, getIssues, getIssue } from './api'; + +const issueTypesResponse = { + data: { + projects: [ + { + issuetypes: [ + { + id: '10006', + name: 'Task', + }, + { + id: '10007', + name: 'Bug', + }, + ], + }, + ], + }, +}; + +const fieldsResponse = { + data: { + projects: [ + { + issuetypes: [ + { + id: '10006', + name: 'Task', + fields: { + summary: { fieldId: 'summary' }, + priority: { + fieldId: 'priority', + allowedValues: [ + { + name: 'Highest', + id: '1', + }, + { + name: 'High', + id: '2', + }, + { + name: 'Medium', + id: '3', + }, + { + name: 'Low', + id: '4', + }, + { + name: 'Lowest', + id: '5', + }, + ], + defaultValue: { + name: 'Medium', + id: '3', + }, + }, + }, + }, + ], + }, + ], + }, +}; + +const issueResponse = { + id: '10267', + key: 'RJ-107', + fields: { summary: 'Test title' }, +}; + +const issuesResponse = [issueResponse]; + +describe('Jira API', () => { + const http = httpServiceMock.createStartContract(); + + beforeEach(() => jest.resetAllMocks()); + + describe('getIssueTypes', () => { + test('should call get issue types API', async () => { + const abortCtrl = new AbortController(); + http.post.mockResolvedValueOnce(issueTypesResponse); + const res = await getIssueTypes({ http, signal: abortCtrl.signal, connectorId: 'test' }); + + expect(res).toEqual(issueTypesResponse); + expect(http.post).toHaveBeenCalledWith('/api/actions/action/test/_execute', { + body: '{"params":{"subAction":"issueTypes","subActionParams":{}}}', + signal: abortCtrl.signal, + }); + }); + }); + + describe('getFieldsByIssueType', () => { + test('should call get fields API', async () => { + const abortCtrl = new AbortController(); + http.post.mockResolvedValueOnce(fieldsResponse); + const res = await getFieldsByIssueType({ + http, + signal: abortCtrl.signal, + connectorId: 'test', + id: '10006', + }); + + expect(res).toEqual(fieldsResponse); + expect(http.post).toHaveBeenCalledWith('/api/actions/action/test/_execute', { + body: '{"params":{"subAction":"fieldsByIssueType","subActionParams":{"id":"10006"}}}', + signal: abortCtrl.signal, + }); + }); + }); + + describe('getIssues', () => { + test('should call get fields API', async () => { + const abortCtrl = new AbortController(); + http.post.mockResolvedValueOnce(issuesResponse); + const res = await getIssues({ + http, + signal: abortCtrl.signal, + connectorId: 'test', + title: 'test issue', + }); + + expect(res).toEqual(issuesResponse); + expect(http.post).toHaveBeenCalledWith('/api/actions/action/test/_execute', { + body: '{"params":{"subAction":"issues","subActionParams":{"title":"test issue"}}}', + signal: abortCtrl.signal, + }); + }); + }); + + describe('getIssue', () => { + test('should call get fields API', async () => { + const abortCtrl = new AbortController(); + http.post.mockResolvedValueOnce(issuesResponse); + const res = await getIssue({ + http, + signal: abortCtrl.signal, + connectorId: 'test', + id: 'RJ-107', + }); + + expect(res).toEqual(issuesResponse); + expect(http.post).toHaveBeenCalledWith('/api/actions/action/test/_execute', { + body: '{"params":{"subAction":"issue","subActionParams":{"id":"RJ-107"}}}', + signal: abortCtrl.signal, + }); + }); + }); +}); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/api.ts b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/api.ts index bc9fee042a9a6..c209244c64404 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/api.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/api.ts @@ -75,7 +75,7 @@ export async function getIssue({ }): Promise> { return await http.post(`${BASE_ACTION_API_PATH}/action/${connectorId}/_execute`, { body: JSON.stringify({ - params: { subAction: 'getIncident', subActionParams: { id } }, + params: { subAction: 'issue', subActionParams: { id } }, }), signal, }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_fields_by_issue_type.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_fields_by_issue_type.tsx index 08715822e5277..8685ee1e615b0 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_fields_by_issue_type.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_fields_by_issue_type.tsx @@ -72,6 +72,7 @@ export const useGetFieldsByIssueType = ({ } } catch (error) { if (!didCancel) { + setIsLoading(false); toastNotifications.addDanger({ title: i18n.FIELDS_API_ERROR, text: error.message, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_issue_types.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_issue_types.tsx index 9ebaf5882d9b9..bdc9a57507441 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_issue_types.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_issue_types.tsx @@ -65,6 +65,7 @@ export const useGetIssueTypes = ({ } } catch (error) { if (!didCancel) { + setIsLoading(false); toastNotifications.addDanger({ title: i18n.ISSUE_TYPES_API_ERROR, text: error.message, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_issues.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_issues.tsx index d6590b8c70939..8015390d29e3c 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_issues.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_issues.tsx @@ -69,6 +69,7 @@ export const useGetIssues = ({ } } catch (error) { if (!didCancel) { + setIsLoading(false); toastNotifications.addDanger({ title: i18n.ISSUES_API_ERROR, text: error.message, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_single_issue.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_single_issue.tsx index 7df9834f1bd85..c0d2eae14bead 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_single_issue.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/use_get_single_issue.tsx @@ -61,7 +61,7 @@ export const useGetSingleIssue = ({ if (!didCancel) { setIsLoading(false); - setIssue(res.data ?? {}); + setIssue(res.data ?? null); if (res.status && res.status === 'error') { toastNotifications.addDanger({ title: i18n.GET_ISSUE_API_ERROR(id), @@ -71,6 +71,7 @@ export const useGetSingleIssue = ({ } } catch (error) { if (!didCancel) { + setIsLoading(false); toastNotifications.addDanger({ title: i18n.GET_ISSUE_API_ERROR(id), text: error.message, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/use_get_incident_types.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/use_get_incident_types.tsx index 219c6ac77d08d..c2a2268ddb736 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/use_get_incident_types.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/use_get_incident_types.tsx @@ -65,6 +65,7 @@ export const useGetIncidentTypes = ({ } } catch (error) { if (!didCancel) { + setIsLoading(false); toastNotifications.addDanger({ title: i18n.INCIDENT_TYPES_API_ERROR, text: error.message, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/use_get_severity.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/use_get_severity.tsx index 83689254f000f..a06fafcf8c10e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/use_get_severity.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/use_get_severity.tsx @@ -66,6 +66,7 @@ export const useGetSeverity = ({ } } catch (error) { if (!didCancel) { + setIsLoading(false); toastNotifications.addDanger({ title: i18n.SEVERITY_API_ERROR, text: error.message, From 8d7f2d0828e463b2dadaf10bdff23910401fb134 Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Thu, 1 Oct 2020 13:39:10 +0200 Subject: [PATCH 082/142] [Lens] Handle missing fields gracefully (#78173) --- .../dimension_panel/bucket_nesting_editor.tsx | 9 +- .../dimension_panel/dimension_editor.tsx | 210 ++++++++++-------- .../dimension_panel/dimension_panel.test.tsx | 30 +++ .../dimension_panel/dimension_panel.tsx | 61 ++++- .../dimension_panel/field_select.tsx | 8 +- .../indexpattern_suggestions.test.tsx | 42 +++- .../indexpattern_suggestions.ts | 4 +- .../public/indexpattern_datasource/utils.ts | 36 +++ 8 files changed, 295 insertions(+), 105 deletions(-) diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.tsx index 3d692b1f7f5a8..962abd8d943db 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.tsx @@ -9,6 +9,7 @@ import { i18n } from '@kbn/i18n'; import { EuiFormRow, EuiHorizontalRule, EuiRadio, EuiSelect, htmlIdGenerator } from '@elastic/eui'; import { IndexPatternLayer, IndexPatternField } from '../types'; import { hasField } from '../utils'; +import { IndexPatternColumn } from '../operations'; const generator = htmlIdGenerator('lens-nesting'); @@ -21,6 +22,10 @@ function nestColumn(columnOrder: string[], outer: string, inner: string) { return result; } +function getFieldName(fieldMap: Record, column: IndexPatternColumn) { + return hasField(column) ? fieldMap[column.sourceField]?.displayName || column.sourceField : ''; +} + export function BucketNestingEditor({ columnId, layer, @@ -39,7 +44,7 @@ export function BucketNestingEditor({ .map(([value, c]) => ({ value, text: c.label, - fieldName: hasField(c) ? fieldMap[c.sourceField].displayName : '', + fieldName: getFieldName(fieldMap, c), operationType: c.operationType, })); @@ -47,7 +52,7 @@ export function BucketNestingEditor({ return null; } - const fieldName = hasField(column) ? fieldMap[column.sourceField].displayName : ''; + const fieldName = getFieldName(fieldMap, column); const prevColumn = layer.columnOrder[layer.columnOrder.indexOf(columnId) - 1]; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx index bd99bd16a63a8..b0d24928b794e 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx @@ -26,7 +26,7 @@ import { } from '../operations'; import { deleteColumn, changeColumn, updateColumnParam } from '../state_helpers'; import { FieldSelect } from './field_select'; -import { hasField } from '../utils'; +import { hasField, fieldIsInvalid } from '../utils'; import { BucketNestingEditor } from './bucket_nesting_editor'; import { IndexPattern, IndexPatternField } from '../types'; import { trackUiEvent } from '../../lens_ui_telemetry'; @@ -132,6 +132,15 @@ export function DimensionEditor(props: DimensionEditorProps) { }; }); + const selectedColumnSourceField = + selectedColumn && 'sourceField' in selectedColumn ? selectedColumn.sourceField : undefined; + + const currentFieldIsInvalid = useMemo( + () => + fieldIsInvalid(selectedColumnSourceField, selectedColumn?.operationType, currentIndexPattern), + [selectedColumnSourceField, selectedColumn?.operationType, currentIndexPattern] + ); + const sideNavItems: EuiListGroupItemProps[] = operationsWithCompatibility.map( ({ operationType, compatibleWithCurrentField }) => { const isActive = Boolean( @@ -271,20 +280,16 @@ export function DimensionEditor(props: DimensionEditorProps) { defaultMessage: 'Choose a field', })} fullWidth - isInvalid={Boolean(incompatibleSelectedOperationType)} - error={ - selectedColumn && incompatibleSelectedOperationType - ? selectedOperationDefinition?.input === 'field' - ? i18n.translate('xpack.lens.indexPattern.invalidOperationLabel', { - defaultMessage: 'To use this function, select a different field.', - }) - : i18n.translate('xpack.lens.indexPattern.chooseFieldLabel', { - defaultMessage: 'To use this function, select a field.', - }) - : undefined - } + isInvalid={Boolean(incompatibleSelectedOperationType || currentFieldIsInvalid)} + error={getErrorMessage( + selectedColumn, + Boolean(incompatibleSelectedOperationType), + selectedOperationDefinition?.input, + currentFieldIsInvalid + )} > ) : null} - {!incompatibleSelectedOperationType && selectedColumn && ParamEditor && ( - <> - - - )} + {!currentFieldIsInvalid && + !incompatibleSelectedOperationType && + selectedColumn && + ParamEditor && ( + <> + + + )}
-
- {!incompatibleSelectedOperationType && selectedColumn && ( - { - setState({ - ...state, - layers: { - ...state.layers, - [layerId]: { - ...state.layers[layerId], - columns: { - ...state.layers[layerId].columns, - [columnId]: { - ...selectedColumn, - label: value, - customLabel: true, + {!currentFieldIsInvalid && ( +
+ {!incompatibleSelectedOperationType && selectedColumn && ( + { + setState({ + ...state, + layers: { + ...state.layers, + [layerId]: { + ...state.layers[layerId], + columns: { + ...state.layers[layerId].columns, + [columnId]: { + ...selectedColumn, + label: value, + customLabel: true, + }, }, }, }, - }, - }); - }} - /> - )} - - {!hideGrouping && ( - { - setState({ - ...state, - layers: { - ...state.layers, - [props.layerId]: { - ...state.layers[props.layerId], - columnOrder, + }); + }} + /> + )} + + {!hideGrouping && ( + { + setState({ + ...state, + layers: { + ...state.layers, + [props.layerId]: { + ...state.layers[props.layerId], + columnOrder, + }, }, - }, - }); - }} - /> - )} - - {selectedColumn && selectedColumn.dataType === 'number' ? ( - { - setState( - updateColumnParam({ - state, - layerId, - currentColumn: selectedColumn, - paramName: 'format', - value: newFormat, - }) - ); - }} - /> - ) : null} -
+ }); + }} + /> + )} + + {selectedColumn && selectedColumn.dataType === 'number' ? ( + { + setState( + updateColumnParam({ + state, + layerId, + currentColumn: selectedColumn, + paramName: 'format', + value: newFormat, + }) + ); + }} + /> + ) : null} +
+ )}

); } +function getErrorMessage( + selectedColumn: IndexPatternColumn | undefined, + incompatibleSelectedOperationType: boolean, + input: 'none' | 'field' | undefined, + fieldInvalid: boolean +) { + if (selectedColumn && incompatibleSelectedOperationType) { + if (input === 'field') { + return i18n.translate('xpack.lens.indexPattern.invalidOperationLabel', { + defaultMessage: 'To use this function, select a different field.', + }); + } + return i18n.translate('xpack.lens.indexPattern.chooseFieldLabel', { + defaultMessage: 'To use this function, select a field.', + }); + } + if (fieldInvalid) { + return i18n.translate('xpack.lens.indexPattern.invalidFieldLabel', { + defaultMessage: 'Invalid field. Check your index pattern or pick another field.', + }); + } +} diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx index 270f9d9f67063..d15825718682c 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx @@ -25,6 +25,7 @@ import { IndexPatternPrivateState } from '../types'; import { IndexPatternColumn } from '../operations'; import { documentField } from '../document_field'; import { OperationMetadata } from '../../types'; +import { DateHistogramIndexPatternColumn } from '../operations/definitions/date_histogram'; jest.mock('../loader'); jest.mock('../state_helpers'); @@ -801,6 +802,35 @@ describe('IndexPatternDimensionEditorPanel', () => { }); }); + it('should render invalid field if field reference is broken', () => { + wrapper = mount( + + ); + + expect(wrapper.find(EuiComboBox).prop('selectedOptions')).toEqual([ + { + label: 'nonexistent', + value: { type: 'field', field: 'nonexistent' }, + }, + ]); + }); + it('should support selecting the operation before the field', () => { wrapper = mount(); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx index c4d8300722f83..6f0a9c2a86acd 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx @@ -5,9 +5,9 @@ */ import _ from 'lodash'; -import React, { memo } from 'react'; +import React, { memo, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; -import { EuiLink } from '@elastic/eui'; +import { EuiLink, EuiIcon, EuiToolTip, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { IUiSettingsClient, SavedObjectsClientContract, HttpSetup } from 'kibana/public'; import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; import { @@ -22,7 +22,7 @@ import { IndexPatternColumn, OperationType } from '../indexpattern'; import { getAvailableOperationsByMetadata, buildColumn, changeField } from '../operations'; import { DimensionEditor } from './dimension_editor'; import { changeColumn } from '../state_helpers'; -import { isDraggedField, hasField } from '../utils'; +import { isDraggedField, hasField, fieldIsInvalid } from '../utils'; import { IndexPatternPrivateState, IndexPatternField } from '../types'; import { trackUiEvent } from '../../lens_ui_telemetry'; import { DateRange } from '../../../common'; @@ -233,14 +233,63 @@ export const IndexPatternDimensionTriggerComponent = function IndexPatternDimens props: IndexPatternDimensionTriggerProps ) { const layerId = props.layerId; - - const selectedColumn: IndexPatternColumn | null = - props.state.layers[layerId].columns[props.columnId] || null; + const layer = props.state.layers[layerId]; + const selectedColumn: IndexPatternColumn | null = layer.columns[props.columnId] || null; + const currentIndexPattern = props.state.indexPatterns[layer.indexPatternId]; + + const selectedColumnSourceField = + selectedColumn && 'sourceField' in selectedColumn ? selectedColumn.sourceField : undefined; + const currentFieldIsInvalid = useMemo( + () => + fieldIsInvalid(selectedColumnSourceField, selectedColumn?.operationType, currentIndexPattern), + [selectedColumnSourceField, selectedColumn?.operationType, currentIndexPattern] + ); const { columnId, uniqueLabel } = props; if (!selectedColumn) { return null; } + + if (currentFieldIsInvalid) { + return ( + + {i18n.translate('xpack.lens.configure.invalidConfigTooltip', { + defaultMessage: 'Invalid configuration.', + })} +
+ {i18n.translate('xpack.lens.configure.invalidConfigTooltipClick', { + defaultMessage: 'Click for more details.', + })} +

+ } + anchorClassName="lnsLayerPanel__anchor" + > + + + + + + {selectedColumn.label} + + +
+ ); + } + return ( { onChoose: (choice: FieldChoice) => void; onDeleteColumn: () => void; existingFields: IndexPatternPrivateState['existingFields']; + fieldIsInvalid: boolean; } export function FieldSelect({ @@ -53,6 +54,7 @@ export function FieldSelect({ onChoose, onDeleteColumn, existingFields, + fieldIsInvalid, ...rest }: FieldSelectProps) { const { operationByField } = operationSupportMatrix; @@ -171,12 +173,14 @@ export function FieldSelect({ defaultMessage: 'Field', })} options={(memoizedFieldOptions as unknown) as EuiComboBoxOptionOption[]} - isInvalid={Boolean(incompatibleSelectedOperationType)} + isInvalid={Boolean(incompatibleSelectedOperationType || fieldIsInvalid)} selectedOptions={ ((selectedColumnOperationType && selectedColumnSourceField ? [ { - label: fieldMap[selectedColumnSourceField].displayName, + label: fieldIsInvalid + ? selectedColumnSourceField + : fieldMap[selectedColumnSourceField]?.displayName, value: { type: 'field', field: selectedColumnSourceField }, }, ] diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.test.tsx index 663d7c18bb370..80765627c1fc2 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.test.tsx @@ -147,7 +147,7 @@ function testInitialState(): IndexPatternPrivateState { // Private operationType: 'terms', - sourceField: 'op', + sourceField: 'dest', params: { size: 5, orderBy: { type: 'alphabetical' }, @@ -1115,7 +1115,7 @@ describe('IndexPattern Data Source suggestions', () => { // Private operationType: 'terms', - sourceField: 'op', + sourceField: 'dest', params: { size: 5, orderBy: { type: 'alphabetical' }, @@ -1615,7 +1615,7 @@ describe('IndexPattern Data Source suggestions', () => { isBucketed: true, operationType: 'date_histogram', - sourceField: 'field2', + sourceField: 'timestamp', params: { interval: 'd', }, @@ -1626,7 +1626,7 @@ describe('IndexPattern Data Source suggestions', () => { isBucketed: true, operationType: 'terms', - sourceField: 'field1', + sourceField: 'dest', params: { size: 5, orderBy: { type: 'alphabetical' }, orderDirection: 'asc' }, }, id3: { @@ -1635,7 +1635,7 @@ describe('IndexPattern Data Source suggestions', () => { isBucketed: false, operationType: 'avg', - sourceField: 'field1', + sourceField: 'bytes', }, }, columnOrder: ['id1', 'id2', 'id3'], @@ -1652,6 +1652,38 @@ describe('IndexPattern Data Source suggestions', () => { }) ); }); + + it('does not generate suggestions if invalid fields are referenced', () => { + const initialState = testInitialState(); + const state: IndexPatternPrivateState = { + indexPatternRefs: [], + existingFields: {}, + currentIndexPatternId: '1', + indexPatterns: expectedIndexPatterns, + isFirstExistenceFetch: false, + layers: { + first: { + ...initialState.layers.first, + columns: { + ...initialState.layers.first.columns, + col2: { + label: 'Top 5', + dataType: 'string', + isBucketed: true, + + operationType: 'terms', + sourceField: 'nonExistingField', + params: { size: 5, orderBy: { type: 'alphabetical' }, orderDirection: 'asc' }, + }, + }, + columnOrder: ['col1', 'col2'], + }, + }, + }; + + const suggestions = getDatasourceSuggestionsFromCurrentState(state); + expect(suggestions).toEqual([]); + }); }); }); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.ts b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.ts index f5e64149c2c76..75945529ffb34 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.ts @@ -18,7 +18,7 @@ import { } from './operations'; import { operationDefinitions } from './operations/definitions'; import { TermsIndexPatternColumn } from './operations/definitions/terms'; -import { hasField } from './utils'; +import { hasField, hasInvalidReference } from './utils'; import { IndexPattern, IndexPatternPrivateState, @@ -90,6 +90,7 @@ export function getDatasourceSuggestionsForField( indexPatternId: string, field: IndexPatternField ): IndexPatternSugestion[] { + if (hasInvalidReference(state)) return []; const layers = Object.keys(state.layers); const layerIds = layers.filter((id) => state.layers[id].indexPatternId === indexPatternId); @@ -380,6 +381,7 @@ function createNewLayerWithMetricAggregation( export function getDatasourceSuggestionsFromCurrentState( state: IndexPatternPrivateState ): Array> { + if (hasInvalidReference(state)) return []; const layers = Object.entries(state.layers || {}); if (layers.length > 1) { // Return suggestions that reduce the data to each layer individually diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/utils.ts b/x-pack/plugins/lens/public/indexpattern_datasource/utils.ts index 374dbe77b4ca3..f1d2e7765d99f 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/utils.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/utils.ts @@ -5,11 +5,13 @@ */ import { DataType } from '../types'; +import { IndexPatternPrivateState, IndexPattern } from './types'; import { DraggedField } from './indexpattern'; import { BaseIndexPatternColumn, FieldBasedIndexPatternColumn, } from './operations/definitions/column_types'; +import { operationDefinitionMap, OperationType } from './operations'; /** * Normalizes the specified operation type. (e.g. document operations @@ -40,3 +42,37 @@ export function isDraggedField(fieldCandidate: unknown): fieldCandidate is Dragg 'indexPatternId' in fieldCandidate ); } + +export function hasInvalidReference(state: IndexPatternPrivateState) { + return Object.values(state.layers).some((layer) => { + return layer.columnOrder.some((columnId) => { + const column = layer.columns[columnId]; + return ( + hasField(column) && + fieldIsInvalid( + column.sourceField, + column.operationType, + state.indexPatterns[layer.indexPatternId] + ) + ); + }); + }); +} + +export function fieldIsInvalid( + sourceField: string | undefined, + operationType: OperationType | undefined, + indexPattern: IndexPattern +) { + const operationDefinition = operationType && operationDefinitionMap[operationType]; + return Boolean( + sourceField && + operationDefinition && + !indexPattern.fields.some( + (field) => + field.name === sourceField && + operationDefinition.input === 'field' && + operationDefinition.getPossibleOperationForField(field) !== undefined + ) + ); +} From 4d5a9df76c8aa37b19ace411d72d1cbf941fcb9a Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Thu, 1 Oct 2020 13:49:05 +0200 Subject: [PATCH 083/142] @testing-library remove "pure" hack (#78742) Co-authored-by: Elastic Machine --- src/dev/jest/setup/react_testing_library.js | 11 +++++------ .../lib/embeddables/embeddable_renderer.test.tsx | 4 +--- .../public/lib/embeddables/error_embeddable.test.tsx | 5 +---- .../public/markdown_vis_controller.test.tsx | 5 +---- .../actions/flyout_edit_drilldown/menu_item.test.tsx | 4 +--- .../components/action_wizard/action_wizard.test.tsx | 6 +----- .../connected_flyout_manage_drilldowns.test.tsx | 5 +---- .../components/flyout_frame/flyout_frame.test.tsx | 4 +--- .../form_drilldown_wizard.test.tsx | 4 +--- .../list_manage_drilldowns.test.tsx | 6 +----- .../url_drilldown_collect_config.test.tsx | 4 +--- 11 files changed, 15 insertions(+), 43 deletions(-) diff --git a/src/dev/jest/setup/react_testing_library.js b/src/dev/jest/setup/react_testing_library.js index 84b5b6096e79b..90f73b04dc210 100644 --- a/src/dev/jest/setup/react_testing_library.js +++ b/src/dev/jest/setup/react_testing_library.js @@ -19,14 +19,13 @@ import '@testing-library/jest-dom'; /** - * Have to import "/pure" here to not register afterEach() hook clean up - * in the very beginning. There are couple tests which fail with clean up hook. - * On CI they run before first test which imports '@testing-library/react' - * and registers afterEach hook so the whole suite is passing. - * This have to be fixed as we depend on test order execution + * PLEASE NOTE: + * Importing '@testing-library/react' registers an `afterEach(cleanup)` side effect. + * It has tricky code that flushes pending promises, that previously led to unpredictable test failures * https://github.com/elastic/kibana/issues/59469 + * But since newer versions it has stabilised itself */ -import { configure } from '@testing-library/react/pure'; +import { configure } from '@testing-library/react'; // instead of default 'data-testid', use kibana's 'data-test-subj' configure({ testIdAttribute: 'data-test-subj', asyncUtilTimeout: 4500 }); diff --git a/src/plugins/embeddable/public/lib/embeddables/embeddable_renderer.test.tsx b/src/plugins/embeddable/public/lib/embeddables/embeddable_renderer.test.tsx index 51213288e47a7..f9be9d5bfade7 100644 --- a/src/plugins/embeddable/public/lib/embeddables/embeddable_renderer.test.tsx +++ b/src/plugins/embeddable/public/lib/embeddables/embeddable_renderer.test.tsx @@ -19,7 +19,7 @@ import React from 'react'; import { wait } from '@testing-library/dom'; -import { cleanup, render } from '@testing-library/react/pure'; +import { render } from '@testing-library/react'; import { HelloWorldEmbeddable, HelloWorldEmbeddableFactoryDefinition, @@ -29,8 +29,6 @@ import { EmbeddableRenderer } from './embeddable_renderer'; import { embeddablePluginMock } from '../../mocks'; describe('', () => { - afterEach(cleanup); - test('Render embeddable', () => { const embeddable = new HelloWorldEmbeddable({ id: 'hello' }); const { getByTestId } = render(); diff --git a/src/plugins/embeddable/public/lib/embeddables/error_embeddable.test.tsx b/src/plugins/embeddable/public/lib/embeddables/error_embeddable.test.tsx index 17a2ac3b2a32b..cb14d7ed11dc9 100644 --- a/src/plugins/embeddable/public/lib/embeddables/error_embeddable.test.tsx +++ b/src/plugins/embeddable/public/lib/embeddables/error_embeddable.test.tsx @@ -17,13 +17,10 @@ * under the License. */ import React from 'react'; -import { wait } from '@testing-library/dom'; -import { cleanup, render } from '@testing-library/react/pure'; +import { wait, render } from '@testing-library/react'; import { ErrorEmbeddable } from './error_embeddable'; import { EmbeddableRoot } from './embeddable_root'; -afterEach(cleanup); - test('ErrorEmbeddable renders an embeddable', async () => { const embeddable = new ErrorEmbeddable('some error occurred', { id: '123', title: 'Error' }); const { getByTestId, getByText } = render(); diff --git a/src/plugins/vis_type_markdown/public/markdown_vis_controller.test.tsx b/src/plugins/vis_type_markdown/public/markdown_vis_controller.test.tsx index 36850fc820ded..7bc8cdbd14170 100644 --- a/src/plugins/vis_type_markdown/public/markdown_vis_controller.test.tsx +++ b/src/plugins/vis_type_markdown/public/markdown_vis_controller.test.tsx @@ -18,12 +18,9 @@ */ import React from 'react'; -import { wait } from '@testing-library/dom'; -import { render, cleanup } from '@testing-library/react/pure'; +import { wait, render } from '@testing-library/react'; import MarkdownVisComponent from './markdown_vis_controller'; -afterEach(cleanup); - describe('markdown vis controller', () => { it('should set html from markdown params', async () => { const vis = { diff --git a/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/actions/flyout_edit_drilldown/menu_item.test.tsx b/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/actions/flyout_edit_drilldown/menu_item.test.tsx index 771b15e46ad25..27a8d73f32944 100644 --- a/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/actions/flyout_edit_drilldown/menu_item.test.tsx +++ b/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/actions/flyout_edit_drilldown/menu_item.test.tsx @@ -5,14 +5,12 @@ */ import React from 'react'; -import { render, cleanup, act } from '@testing-library/react/pure'; +import { render, act } from '@testing-library/react'; import { MenuItem } from './menu_item'; import { createStateContainer } from '../../../../../../../../src/plugins/kibana_utils/public'; import { UiActionsEnhancedDynamicActionManager as DynamicActionManager } from '../../../../../../ui_actions_enhanced/public'; import { EnhancedEmbeddable } from '../../../../../../embeddable_enhanced/public'; -afterEach(cleanup); - test('', () => { const state = createStateContainer<{ events: object[] }>({ events: [] }); const { getByText, queryByText } = render( diff --git a/x-pack/plugins/ui_actions_enhanced/public/components/action_wizard/action_wizard.test.tsx b/x-pack/plugins/ui_actions_enhanced/public/components/action_wizard/action_wizard.test.tsx index 26033b7f020ad..11ccb0d5f0c2d 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/components/action_wizard/action_wizard.test.tsx +++ b/x-pack/plugins/ui_actions_enhanced/public/components/action_wizard/action_wizard.test.tsx @@ -5,7 +5,7 @@ */ import React from 'react'; -import { cleanup, fireEvent, render } from '@testing-library/react/pure'; +import { fireEvent, render } from '@testing-library/react'; import { TEST_SUBJ_ACTION_FACTORY_ITEM, TEST_SUBJ_SELECTED_ACTION_FACTORY } from './action_wizard'; import { dashboardFactory, @@ -17,10 +17,6 @@ import { import { ActionFactory } from '../../dynamic_actions'; import { licensingMock } from '../../../../licensing/public/mocks'; -// TODO: afterEach is not available for it globally during setup -// https://github.com/elastic/kibana/issues/59469 -afterEach(cleanup); - test('Pick and configure action', () => { const screen = render(); diff --git a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.test.tsx b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.test.tsx index a546fabfbbc01..48dbd5a864170 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.test.tsx +++ b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.test.tsx @@ -5,7 +5,7 @@ */ import React from 'react'; -import { cleanup, fireEvent, render, wait } from '@testing-library/react/pure'; +import { fireEvent, render, wait, cleanup } from '@testing-library/react'; import { createFlyoutManageDrilldowns } from './connected_flyout_manage_drilldowns'; import { mockGetTriggerInfo, @@ -30,9 +30,6 @@ const FlyoutManageDrilldowns = createFlyoutManageDrilldowns({ getTrigger: mockGetTriggerInfo, }); -// https://github.com/elastic/kibana/issues/59469 -afterEach(cleanup); - beforeEach(() => { storage.clear(); mockDynamicActionManager.state.set({ ...mockDynamicActionManager.state.get(), events: [] }); diff --git a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/flyout_frame/flyout_frame.test.tsx b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/flyout_frame/flyout_frame.test.tsx index cdbf36d81de33..86679d393b17f 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/flyout_frame/flyout_frame.test.tsx +++ b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/flyout_frame/flyout_frame.test.tsx @@ -6,11 +6,9 @@ import React from 'react'; import { render } from 'react-dom'; -import { render as renderTestingLibrary, fireEvent, cleanup } from '@testing-library/react/pure'; +import { render as renderTestingLibrary, fireEvent } from '@testing-library/react'; import { FlyoutFrame } from './index'; -afterEach(cleanup); - describe('', () => { test('renders without crashing', () => { const div = document.createElement('div'); diff --git a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/form_drilldown_wizard/form_drilldown_wizard.test.tsx b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/form_drilldown_wizard/form_drilldown_wizard.test.tsx index 0dcca84ede3bf..614679ed02a41 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/form_drilldown_wizard/form_drilldown_wizard.test.tsx +++ b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/form_drilldown_wizard/form_drilldown_wizard.test.tsx @@ -7,12 +7,10 @@ import React from 'react'; import { render } from 'react-dom'; import { FormDrilldownWizard } from './form_drilldown_wizard'; -import { render as renderTestingLibrary, fireEvent, cleanup } from '@testing-library/react/pure'; +import { render as renderTestingLibrary, fireEvent } from '@testing-library/react'; import { txtNameOfDrilldown } from './i18n'; import { Trigger, TriggerId } from '../../../../../../../src/plugins/ui_actions/public'; -afterEach(cleanup); - const otherProps = { actionFactoryContext: { triggers: [] as TriggerId[] }, supportedTriggers: [ diff --git a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/list_manage_drilldowns/list_manage_drilldowns.test.tsx b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/list_manage_drilldowns/list_manage_drilldowns.test.tsx index 889f8983254d5..5bf11e31aee89 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/list_manage_drilldowns/list_manage_drilldowns.test.tsx +++ b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/components/list_manage_drilldowns/list_manage_drilldowns.test.tsx @@ -5,17 +5,13 @@ */ import React from 'react'; -import { cleanup, fireEvent, render } from '@testing-library/react/pure'; +import { fireEvent, render } from '@testing-library/react'; import { DrilldownListItem, ListManageDrilldowns, TEST_SUBJ_DRILLDOWN_ITEM, } from './list_manage_drilldowns'; -// TODO: for some reason global cleanup from RTL doesn't work -// afterEach is not available for it globally during setup -afterEach(cleanup); - const drilldowns: DrilldownListItem[] = [ { id: '1', actionName: 'Dashboard', drilldownName: 'Drilldown 1' }, { id: '2', actionName: 'Dashboard', drilldownName: 'Drilldown 2' }, diff --git a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/url_drilldown/components/url_drilldown_collect_config/url_drilldown_collect_config.test.tsx b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/url_drilldown/components/url_drilldown_collect_config/url_drilldown_collect_config.test.tsx index f55818379ef3f..a30c880c3d430 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/url_drilldown/components/url_drilldown_collect_config/url_drilldown_collect_config.test.tsx +++ b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/url_drilldown/components/url_drilldown_collect_config/url_drilldown_collect_config.test.tsx @@ -5,11 +5,9 @@ */ import { Demo } from './test_samples/demo'; -import { cleanup, fireEvent, render } from '@testing-library/react/pure'; +import { fireEvent, render } from '@testing-library/react'; import React from 'react'; -afterEach(cleanup); - test('configure valid URL template', () => { const screen = render(); From d793040082040c02a30a12c6fcdc27d740467001 Mon Sep 17 00:00:00 2001 From: Marco Liberati Date: Thu, 1 Oct 2020 14:25:59 +0200 Subject: [PATCH 084/142] [Lens] Histogram/range operation new copy (#78328) * :speech_balloon: New copy revision for histogram/range operation in lens * :ok_hand: Updated panel copy * :ok_hand: Change copy based on feedback --- .../dimension_panel/dimension_editor.tsx | 4 +-- .../definitions/ranges/advanced_editor.tsx | 12 ++++----- .../definitions/ranges/range_editor.tsx | 25 ++++++++++++++++--- .../operations/definitions/ranges/ranges.tsx | 4 +-- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx index b0d24928b794e..0e33c20faff7e 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx @@ -257,7 +257,7 @@ export function DimensionEditor(props: DimensionEditorProps) {
{i18n.translate('xpack.lens.indexPattern.functionsLabel', { - defaultMessage: 'Choose a function', + defaultMessage: 'Select a function', })} @@ -277,7 +277,7 @@ export function DimensionEditor(props: DimensionEditorProps) { {' '} - {i18n.translate('xpack.lens.indexPattern.ranges.customIntervalsRemoval', { - defaultMessage: 'Remove custom intervals', + {i18n.translate('xpack.lens.indexPattern.ranges.customRangesRemoval', { + defaultMessage: 'Remove custom ranges', })} @@ -286,8 +286,8 @@ export const AdvancedRangeEditor = ({ addNewRange(); setIsOpenByCreation(true); }} - label={i18n.translate('xpack.lens.indexPattern.ranges.addInterval', { - defaultMessage: 'Add interval', + label={i18n.translate('xpack.lens.indexPattern.ranges.addRange', { + defaultMessage: 'Add range', })} /> diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/range_editor.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/range_editor.tsx index 5d5acf7778973..8ed17a813e7fd 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/range_editor.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/range_editor.tsx @@ -15,6 +15,7 @@ import { EuiFlexGroup, EuiButtonIcon, EuiToolTip, + EuiIconTip, } from '@elastic/eui'; import { IFieldFormat } from 'src/plugins/data/public'; import { RangeColumnParams, UpdateParamsFnType, MODES_TYPES } from './ranges'; @@ -45,8 +46,14 @@ const BaseRangeEditor = ({ ); const granularityLabel = i18n.translate('xpack.lens.indexPattern.ranges.granularity', { - defaultMessage: 'Granularity', + defaultMessage: 'Intervals granularity', }); + const granularityLabelDescription = i18n.translate( + 'xpack.lens.indexPattern.ranges.granularityDescription', + { + defaultMessage: 'Divides the field into evenly spaced intervals.', + } + ); const decreaseButtonLabel = i18n.translate('xpack.lens.indexPattern.ranges.decreaseButtonLabel', { defaultMessage: 'Decrease granularity', }); @@ -57,7 +64,17 @@ const BaseRangeEditor = ({ return ( <> + {granularityLabel}{' '} + + + } data-test-subj="indexPattern-ranges-section-label" labelType="legend" fullWidth @@ -91,7 +108,7 @@ const BaseRangeEditor = ({ /> - + onToggleEditor()}> {i18n.translate('xpack.lens.indexPattern.ranges.customIntervalsToggle', { - defaultMessage: 'Create custom intervals', + defaultMessage: 'Create custom ranges', })} diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx index 1971fb2875bed..a59780ef59939 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx @@ -78,8 +78,8 @@ function getEsAggsParams({ sourceField, params }: RangeIndexPatternColumn) { export const rangeOperation: OperationDefinition = { type: 'range', - displayName: i18n.translate('xpack.lens.indexPattern.ranges', { - defaultMessage: 'Ranges', + displayName: i18n.translate('xpack.lens.indexPattern.intervals', { + defaultMessage: 'Intervals', }), priority: 4, // Higher than terms, so numbers get histogram input: 'field', From 4525f0cfab2045ee9e54bff813a9614f31313602 Mon Sep 17 00:00:00 2001 From: Larry Gregory Date: Thu, 1 Oct 2020 08:26:26 -0400 Subject: [PATCH 085/142] Omit runtime fields from FLS suggestions (#78330) Co-authored-by: Aleh Zasypkin Co-authored-by: Elastic Machine --- .../server/routes/indices/get_fields.test.ts | 58 +++++++++++++++++++ .../server/routes/indices/get_fields.ts | 46 ++++++++++++--- .../apis/security/index_fields.ts | 58 +++++++++++++++++++ .../security/flstest/data/mappings.json | 7 +++ 4 files changed, 160 insertions(+), 9 deletions(-) create mode 100644 x-pack/plugins/security/server/routes/indices/get_fields.test.ts diff --git a/x-pack/plugins/security/server/routes/indices/get_fields.test.ts b/x-pack/plugins/security/server/routes/indices/get_fields.test.ts new file mode 100644 index 0000000000000..4c6182e99431d --- /dev/null +++ b/x-pack/plugins/security/server/routes/indices/get_fields.test.ts @@ -0,0 +1,58 @@ +/* + * 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 { httpServerMock, elasticsearchServiceMock } from '../../../../../../src/core/server/mocks'; +import { kibanaResponseFactory } from '../../../../../../src/core/server'; + +import { routeDefinitionParamsMock } from '../index.mock'; +import { defineGetFieldsRoutes } from './get_fields'; + +const createFieldMapping = (field: string, type: string) => ({ + [field]: { mapping: { [field]: { type } } }, +}); + +const createEmptyFieldMapping = (field: string) => ({ [field]: { mapping: {} } }); + +const mockFieldMappingResponse = { + foo: { + mappings: { + ...createFieldMapping('fooField', 'keyword'), + ...createFieldMapping('commonField', 'keyword'), + ...createEmptyFieldMapping('emptyField'), + }, + }, + bar: { + mappings: { + ...createFieldMapping('commonField', 'keyword'), + ...createFieldMapping('barField', 'keyword'), + ...createFieldMapping('runtimeField', 'runtime'), + }, + }, +}; + +describe('GET /internal/security/fields/{query}', () => { + it('returns a list of deduplicated fields, omitting empty and runtime fields', async () => { + const mockRouteDefinitionParams = routeDefinitionParamsMock.create(); + + const scopedClient = elasticsearchServiceMock.createLegacyScopedClusterClient(); + scopedClient.callAsCurrentUser.mockResolvedValue(mockFieldMappingResponse); + mockRouteDefinitionParams.clusterClient.asScoped.mockReturnValue(scopedClient); + + defineGetFieldsRoutes(mockRouteDefinitionParams); + + const [[, handler]] = mockRouteDefinitionParams.router.get.mock.calls; + + const headers = { authorization: 'foo' }; + const mockRequest = httpServerMock.createKibanaRequest({ + method: 'get', + path: `/internal/security/fields/foo`, + headers, + }); + const response = await handler({} as any, mockRequest, kibanaResponseFactory); + expect(response.status).toBe(200); + expect(response.payload).toEqual(['fooField', 'commonField', 'barField']); + }); +}); diff --git a/x-pack/plugins/security/server/routes/indices/get_fields.ts b/x-pack/plugins/security/server/routes/indices/get_fields.ts index 356b78aa33879..44b8804ed8d6e 100644 --- a/x-pack/plugins/security/server/routes/indices/get_fields.ts +++ b/x-pack/plugins/security/server/routes/indices/get_fields.ts @@ -8,6 +8,20 @@ import { schema } from '@kbn/config-schema'; import { RouteDefinitionParams } from '../index'; import { wrapIntoCustomErrorResponse } from '../../errors'; +interface FieldMappingResponse { + [indexName: string]: { + mappings: { + [fieldName: string]: { + mapping: { + [fieldName: string]: { + type: string; + }; + }; + }; + }; + }; +} + export function defineGetFieldsRoutes({ router, clusterClient }: RouteDefinitionParams) { router.get( { @@ -23,21 +37,35 @@ export function defineGetFieldsRoutes({ router, clusterClient }: RouteDefinition fields: '*', allowNoIndices: false, includeDefaults: true, - })) as Record }>; + })) as FieldMappingResponse; // The flow is the following (see response format at https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-field-mapping.html): // 1. Iterate over all matched indices. // 2. Extract all the field names from the `mappings` field of the particular index. - // 3. Collect and flatten the list of the field names. + // 3. Collect and flatten the list of the field names, omitting any fields without mappings, and any runtime fields // 4. Use `Set` to get only unique field names. + const fields = Array.from( + new Set( + Object.values(indexMappings).flatMap((indexMapping) => { + return Object.keys(indexMapping.mappings).filter((fieldName) => { + const mappingValues = Object.values(indexMapping.mappings[fieldName].mapping); + const hasMapping = mappingValues.length > 0; + + const isRuntimeField = hasMapping && mappingValues[0]?.type === 'runtime'; + + // fields without mappings are internal fields such as `_routing` and `_index`, + // and therefore don't make sense as autocomplete suggestions for FLS. + + // Runtime fields are not securable via FLS. + // Administrators should instead secure access to the fields which derive this information. + return hasMapping && !isRuntimeField; + }); + }) + ) + ); + return response.ok({ - body: Array.from( - new Set( - Object.values(indexMappings) - .map((indexMapping) => Object.keys(indexMapping.mappings)) - .flat() - ) - ), + body: fields, }); } catch (error) { return response.customError(wrapIntoCustomErrorResponse(error)); diff --git a/x-pack/test/api_integration/apis/security/index_fields.ts b/x-pack/test/api_integration/apis/security/index_fields.ts index 795da7dbe8835..193d0eea1590e 100644 --- a/x-pack/test/api_integration/apis/security/index_fields.ts +++ b/x-pack/test/api_integration/apis/security/index_fields.ts @@ -7,10 +7,33 @@ import expect from '@kbn/expect/expect.js'; import { FtrProviderContext } from '../../ftr_provider_context'; +interface FLSFieldMappingResponse { + flstest: { + mappings: { + [fieldName: string]: { + mapping: { + [fieldName: string]: { + type: string; + }; + }; + }; + }; + }; +} + export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); + const esArchiver = getService('esArchiver'); + const es = getService('legacyEs'); describe('Index Fields', () => { + before(async () => { + await esArchiver.load('security/flstest/data'); + }); + after(async () => { + await esArchiver.unload('security/flstest/data'); + }); + describe('GET /internal/security/fields/{query}', () => { it('should return a list of available index mapping fields', async () => { await supertest @@ -30,6 +53,41 @@ export default function ({ getService }: FtrProviderContext) { sampleOfExpectedFields.forEach((field) => expect(response.body).to.contain(field)); }); }); + + it('should not include runtime fields', async () => { + // First, make sure the mapping actually includes a runtime field + const fieldMapping = (await es.indices.getFieldMapping({ + index: 'flstest', + fields: '*', + includeDefaults: true, + })) as FLSFieldMappingResponse; + + expect(Object.keys(fieldMapping.flstest.mappings)).to.contain('runtime_customer_ssn'); + expect( + fieldMapping.flstest.mappings.runtime_customer_ssn.mapping.runtime_customer_ssn.type + ).to.eql('runtime'); + + // Now, make sure it's not returned here + const { body: actualFields } = (await supertest + .get('/internal/security/fields/flstest') + .set('kbn-xsrf', 'xxx') + .send() + .expect(200)) as { body: string[] }; + + const expectedFields = [ + 'customer_ssn', + 'customer_ssn.keyword', + 'customer_region', + 'customer_region.keyword', + 'customer_name', + 'customer_name.keyword', + ]; + + actualFields.sort(); + expectedFields.sort(); + + expect(actualFields).to.eql(expectedFields); + }); }); }); } diff --git a/x-pack/test/functional/es_archives/security/flstest/data/mappings.json b/x-pack/test/functional/es_archives/security/flstest/data/mappings.json index c6f11ea26f647..3605533618a93 100644 --- a/x-pack/test/functional/es_archives/security/flstest/data/mappings.json +++ b/x-pack/test/functional/es_archives/security/flstest/data/mappings.json @@ -30,6 +30,13 @@ } }, "type": "text" + }, + "runtime_customer_ssn": { + "type": "runtime", + "runtime_type": "keyword", + "script": { + "source": "emit(doc['customer_ssn'].value + ' calculated at runtime')" + } } } }, From 97ac553d0319cde7abd63b8052b38a90bb0a44b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20Haro?= Date: Thu, 1 Oct 2020 13:30:39 +0100 Subject: [PATCH 086/142] [Usage Collection] [schema] `infra` (#78581) --- x-pack/.telemetryrc.json | 1 - .../infra/server/usage/usage_collector.ts | 23 +++++++++++++++++- .../schema/xpack_plugins.json | 24 +++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/x-pack/.telemetryrc.json b/x-pack/.telemetryrc.json index 9140dbdaf00ae..d0e56bbed9f47 100644 --- a/x-pack/.telemetryrc.json +++ b/x-pack/.telemetryrc.json @@ -5,7 +5,6 @@ "plugins/actions/server/usage/actions_usage_collector.ts", "plugins/alerts/server/usage/alerts_usage_collector.ts", "plugins/apm/server/lib/apm_telemetry/index.ts", - "plugins/infra/server/usage/usage_collector.ts", "plugins/maps/server/maps_telemetry/collectors/register.ts" ] } diff --git a/x-pack/plugins/infra/server/usage/usage_collector.ts b/x-pack/plugins/infra/server/usage/usage_collector.ts index 598ee21e6f273..54f6d2f6121db 100644 --- a/x-pack/plugins/infra/server/usage/usage_collector.ts +++ b/x-pack/plugins/infra/server/usage/usage_collector.ts @@ -14,6 +14,17 @@ interface InfraopsSum { logs: number; } +interface Usage { + last_24_hours: { + hits: { + infraops_hosts: number; + infraops_docker: number; + infraops_kubernetes: number; + logs: number; + }; + }; +} + export class UsageCollector { public static registerUsageCollector(usageCollection: UsageCollectionSetup): void { const collector = UsageCollector.getUsageCollector(usageCollection); @@ -21,12 +32,22 @@ export class UsageCollector { } public static getUsageCollector(usageCollection: UsageCollectionSetup) { - return usageCollection.makeUsageCollector({ + return usageCollection.makeUsageCollector({ type: 'infraops', isReady: () => true, fetch: async () => { return this.getReport(); }, + schema: { + last_24_hours: { + hits: { + infraops_hosts: { type: 'long' }, + infraops_docker: { type: 'long' }, + infraops_kubernetes: { type: 'long' }, + logs: { type: 'long' }, + }, + }, + }, }); } diff --git a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json index 9acffa1f6c78e..816d6828381ee 100644 --- a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json +++ b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json @@ -242,6 +242,30 @@ } } }, + "infraops": { + "properties": { + "last_24_hours": { + "properties": { + "hits": { + "properties": { + "infraops_hosts": { + "type": "long" + }, + "infraops_docker": { + "type": "long" + }, + "infraops_kubernetes": { + "type": "long" + }, + "logs": { + "type": "long" + } + } + } + } + } + } + }, "ingest_manager": { "properties": { "fleet_enabled": { From cba458e4567d32250aa1e4d9748e7b4ecefc294a Mon Sep 17 00:00:00 2001 From: Alison Goryachev Date: Thu, 1 Oct 2020 08:43:12 -0400 Subject: [PATCH 087/142] [Mappings editor] Fix bug when switching between mapping tabs (#78707) --- .../mappings_editor.test.tsx | 27 +++++++++++++++++++ .../templates_form/templates_form.tsx | 9 +++---- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/mappings_editor.test.tsx b/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/mappings_editor.test.tsx index 68933ddc9a935..f5fcff9f96254 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/mappings_editor.test.tsx +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/mappings_editor.test.tsx @@ -223,6 +223,33 @@ describe('Mappings editor: core', () => { isNumericDetectionVisible = exists('advancedConfiguration.numericDetection'); expect(isNumericDetectionVisible).toBe(false); }); + + test('should keep default dynamic templates value when switching tabs', async () => { + await act(async () => { + testBed = setup({ + value: { ...defaultMappings, dynamic_templates: [] }, // by default, the UI will provide an empty array for dynamic templates + onChange: onChangeHandler, + }); + }); + testBed.component.update(); + + const { + actions: { selectTab, getJsonEditorValue }, + } = testBed; + + // Navigate to dynamic templates tab and verify empty array + await selectTab('templates'); + let templatesValue = getJsonEditorValue('dynamicTemplatesEditor'); + expect(templatesValue).toEqual([]); + + // Navigate to advanced tab + await selectTab('advanced'); + + // Navigate back to dynamic templates tab and verify empty array persists + await selectTab('templates'); + templatesValue = getJsonEditorValue('dynamicTemplatesEditor'); + expect(templatesValue).toEqual([]); + }); }); describe('component props', () => { diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/components/templates_form/templates_form.tsx b/x-pack/plugins/index_management/public/application/components/mappings_editor/components/templates_form/templates_form.tsx index 4b813b4edbabd..46e7bbd5e094a 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/components/templates_form/templates_form.tsx +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/components/templates_form/templates_form.tsx @@ -36,11 +36,10 @@ const formSerializer: SerializerFunc = (formData) // Silently swallow errors } - return Array.isArray(parsedTemplates) && parsedTemplates.length > 0 - ? { - dynamic_templates: parsedTemplates, - } - : undefined; + return { + dynamic_templates: + Array.isArray(parsedTemplates) && parsedTemplates.length > 0 ? parsedTemplates : [], + }; }; const formDeserializer = (formData: { [key: string]: any }) => { From 4fe7625f584a6d2969fa10427e5bc339b943a404 Mon Sep 17 00:00:00 2001 From: Alison Goryachev Date: Thu, 1 Oct 2020 08:44:29 -0400 Subject: [PATCH 088/142] [Mappings editor] Add support for version field type (#78206) --- .../datatypes/version_datatype.test.tsx | 95 +++++++++++++++++++ .../fields/field_types/index.ts | 2 + .../fields/field_types/version_type.tsx | 27 ++++++ .../constants/data_types_definition.tsx | 30 ++++++ .../mappings_editor/types/document_fields.ts | 1 + 5 files changed, 155 insertions(+) create mode 100644 x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/datatypes/version_datatype.test.tsx create mode 100644 x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/field_types/version_type.tsx diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/datatypes/version_datatype.test.tsx b/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/datatypes/version_datatype.test.tsx new file mode 100644 index 0000000000000..61f67b04ec3cd --- /dev/null +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/datatypes/version_datatype.test.tsx @@ -0,0 +1,95 @@ +/* + * 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 { act } from 'react-dom/test-utils'; + +import { componentHelpers, MappingsEditorTestBed } from '../helpers'; + +const { setup, getMappingsEditorDataFactory } = componentHelpers.mappingsEditor; + +// Parameters automatically added to the version datatype when saved (with the default values) +export const defaultVersionParameters = { + type: 'version', +}; + +describe('Mappings editor: version datatype', () => { + /** + * Variable to store the mappings data forwarded to the consumer component + */ + let data: any; + let onChangeHandler: jest.Mock = jest.fn(); + let getMappingsEditorData = getMappingsEditorDataFactory(onChangeHandler); + let testBed: MappingsEditorTestBed; + + beforeAll(() => { + jest.useFakeTimers(); + }); + + afterAll(() => { + jest.useRealTimers(); + }); + + beforeEach(() => { + onChangeHandler = jest.fn(); + getMappingsEditorData = getMappingsEditorDataFactory(onChangeHandler); + }); + + test('supports meta parameter', async () => { + const defaultMappings = { + properties: { + myField: { + type: 'version', + }, + }, + }; + + const updatedMappings = { ...defaultMappings }; + + const metaParameter = { + meta: { + my_metadata: 'foobar', + }, + }; + + await act(async () => { + testBed = setup({ value: defaultMappings, onChange: onChangeHandler }); + }); + testBed.component.update(); + + const { + component, + actions: { + startEditField, + updateFieldAndCloseFlyout, + showAdvancedSettings, + toggleFormRow, + updateJsonEditor, + }, + } = testBed; + + // Open the flyout to edit the field + await startEditField('myField'); + await showAdvancedSettings(); + + // Enable the meta parameter and provide a valid object + toggleFormRow('metaParameter'); + await act(async () => { + updateJsonEditor('metaParameterEditor', metaParameter.meta); + }); + component.update(); + + // Save the field and close the flyout + await updateFieldAndCloseFlyout(); + + // It should have the default parameters values added, plus metadata + updatedMappings.properties.myField = { + ...defaultVersionParameters, + ...metaParameter, + }; + + ({ data } = await getMappingsEditorData(component)); + expect(data).toEqual(updatedMappings); + }); +}); diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/field_types/index.ts b/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/field_types/index.ts index 4d36b4dd2578d..d135d1b81419c 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/field_types/index.ts +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/field_types/index.ts @@ -34,6 +34,7 @@ import { RankFeatureType } from './rank_feature_type'; import { RuntimeType } from './runtime_type'; import { WildcardType } from './wildcard_type'; import { PointType } from './point_type'; +import { VersionType } from './version_type'; const typeToParametersFormMap: { [key in DataType]?: ComponentType } = { alias: AliasType, @@ -64,6 +65,7 @@ const typeToParametersFormMap: { [key in DataType]?: ComponentType } = { runtime: RuntimeType, wildcard: WildcardType, point: PointType, + version: VersionType, }; export const getParametersFormForType = ( diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/field_types/version_type.tsx b/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/field_types/version_type.tsx new file mode 100644 index 0000000000000..24ee356c5db77 --- /dev/null +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/field_types/version_type.tsx @@ -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. + */ +import React from 'react'; + +import { NormalizedField, Field as FieldType, ParameterName } from '../../../../types'; +import { getFieldConfig } from '../../../../lib'; +import { MetaParameter } from '../../field_parameters'; +import { AdvancedParametersSection } from '../edit_field'; + +interface Props { + field: NormalizedField; +} + +const getDefaultToggleValue = (param: ParameterName, field: FieldType) => { + return field[param] !== undefined && field[param] !== getFieldConfig(param).defaultValue; +}; + +export const VersionType = ({ field }: Props) => { + return ( + + + + ); +}; diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/constants/data_types_definition.tsx b/x-pack/plugins/index_management/public/application/components/mappings_editor/constants/data_types_definition.tsx index 7bcd8f32f1a7d..07ca0a69afefb 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/constants/data_types_definition.tsx +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/constants/data_types_definition.tsx @@ -860,6 +860,35 @@ export const TYPE_DEFINITION: { [key in DataType]: DataTypeDefinition } = {

), }, + version: { + label: i18n.translate('xpack.idxMgmt.mappingsEditor.dataType.versionDescription', { + defaultMessage: 'Version', + }), + value: 'version', + documentation: { + main: '/version.html', + }, + description: () => ( +

+ + {i18n.translate( + 'xpack.idxMgmt.mappingsEditor.dataType.versionLongDescription.keywordTypeLink', + { + defaultMessage: 'keyword data type', + } + )} + + ), + }} + /> +

+ ), + }, wildcard: { label: i18n.translate('xpack.idxMgmt.mappingsEditor.dataType.wildcardDescription', { defaultMessage: 'Wildcard', @@ -923,6 +952,7 @@ export const MAIN_TYPES: MainType[] = [ 'histogram', 'wildcard', 'point', + 'version', 'other', ]; diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/types/document_fields.ts b/x-pack/plugins/index_management/public/application/components/mappings_editor/types/document_fields.ts index 48282abd1d799..926b4c9d12bee 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/types/document_fields.ts +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/types/document_fields.ts @@ -64,6 +64,7 @@ export type MainType = | 'point' | 'histogram' | 'constant_keyword' + | 'version' | 'wildcard' /** * 'other' is a special type that only exists inside of MappingsEditor as a placeholder From 9e5bf0f92f7a25df92372c52e9d7f1f9e39aa870 Mon Sep 17 00:00:00 2001 From: Corey Robertson Date: Thu, 1 Oct 2020 09:10:02 -0400 Subject: [PATCH 089/142] [Canvas] Move Handlebars and Flot dependencies out of main bundle (#78542) * Move Handlebars and Flot dependencies out of main bundle * Fix unit test Co-authored-by: Elastic Machine --- .../functions/browser/markdown.test.js | 28 +++++++++---------- .../functions/browser/markdown.ts | 8 +++--- .../canvas_plugin_src/renderers/pie/index.tsx | 6 ++-- .../canvas_plugin_src/renderers/plot/index.ts | 6 ++-- x-pack/plugins/canvas/common/lib/index.ts | 2 -- 5 files changed, 26 insertions(+), 24 deletions(-) diff --git a/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.test.js b/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.test.js index 71b6af6739408..1c75f5b7e0fbc 100644 --- a/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.test.js +++ b/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.test.js @@ -12,16 +12,16 @@ import { markdown } from './markdown'; describe('markdown', () => { const fn = functionWrapper(markdown); - it('returns a render as markdown', () => { - const result = fn(null, { content: [''], font: fontStyle }); + it('returns a render as markdown', async () => { + const result = await fn(null, { content: [''], font: fontStyle }); expect(result).toHaveProperty('type', 'render'); expect(result).toHaveProperty('as', 'markdown'); }); describe('args', () => { describe('content', () => { - it('sets the content to all strings in expression concatenated', () => { - const result = fn(null, { + it('sets the content to all strings in expression concatenated', async () => { + const result = await fn(null, { content: ['# this ', 'is ', 'some ', 'markdown'], font: fontStyle, }); @@ -29,11 +29,11 @@ describe('markdown', () => { expect(result.value).toHaveProperty('content', '# this is some markdown'); }); - it('compiles and concatenates handlebars expressions using context', () => { + it('compiles and concatenates handlebars expressions using context', async () => { let expectedContent = 'Columns:'; testTable.columns.map((col) => (expectedContent += ` ${col.name}`)); - const result = fn(testTable, { + const result = await fn(testTable, { content: ['Columns:', '{{#each columns}} {{name}}{{/each}}'], }); @@ -42,8 +42,8 @@ describe('markdown', () => { }); describe('font', () => { - it('sets the font style for the markdown', () => { - const result = fn(null, { + it('sets the font style for the markdown', async () => { + const result = await fn(null, { content: ['some ', 'markdown'], font: fontStyle, }); @@ -55,8 +55,8 @@ describe('markdown', () => { // it("defaults to the expression '{font}'", () => {}); }); describe('openLinksInNewTab', () => { - it('sets the value of openLinksInNewTab to true ', () => { - const result = fn(null, { + it('sets the value of openLinksInNewTab to true ', async () => { + const result = await fn(null, { content: ['some ', 'markdown'], openLinksInNewTab: true, }); @@ -64,8 +64,8 @@ describe('markdown', () => { expect(result.value).toHaveProperty('openLinksInNewTab', true); }); - it('sets the value of openLinksInNewTab to false ', () => { - const result = fn(null, { + it('sets the value of openLinksInNewTab to false ', async () => { + const result = await fn(null, { content: ['some ', 'markdown'], openLinksInNewTab: false, }); @@ -73,8 +73,8 @@ describe('markdown', () => { expect(result.value).toHaveProperty('openLinksInNewTab', false); }); - it('defaults the value of openLinksInNewTab to false ', () => { - const result = fn(null, { + it('defaults the value of openLinksInNewTab to false ', async () => { + const result = await fn(null, { content: ['some ', 'markdown'], }); diff --git a/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts b/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts index 947106fd9397a..aa73eba456481 100644 --- a/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts +++ b/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts @@ -10,8 +10,6 @@ import { Style, ExpressionFunctionDefinition, } from 'src/plugins/expressions/common'; -// @ts-expect-error untyped local -import { Handlebars } from '../../../common/lib/handlebars'; import { getFunctionHelp } from '../../../i18n'; type Context = Datatable | null; @@ -32,7 +30,7 @@ export function markdown(): ExpressionFunctionDefinition< 'markdown', Context, Arguments, - Render + Promise> > { const { help, args: argHelp } = getFunctionHelp().markdown; @@ -61,7 +59,9 @@ export function markdown(): ExpressionFunctionDefinition< default: false, }, }, - fn: (input, args) => { + fn: async (input, args) => { + // @ts-expect-error untyped local + const { Handlebars } = await import('../../../common/lib/handlebars'); const compileFunctions = args.content.map((str) => Handlebars.compile(String(str), { knownHelpersOnly: true }) ); diff --git a/x-pack/plugins/canvas/canvas_plugin_src/renderers/pie/index.tsx b/x-pack/plugins/canvas/canvas_plugin_src/renderers/pie/index.tsx index 622e73ccf2223..29e823e0a373b 100644 --- a/x-pack/plugins/canvas/canvas_plugin_src/renderers/pie/index.tsx +++ b/x-pack/plugins/canvas/canvas_plugin_src/renderers/pie/index.tsx @@ -6,7 +6,6 @@ // This bit of hackiness is required because this isn't part of the main kibana bundle import 'jquery'; -import '../../lib/flot-charts'; import { debounce, includes } from 'lodash'; import { RendererStrings } from '../../../i18n'; @@ -22,7 +21,10 @@ export const pie: RendererFactory = () => ({ displayName: strings.getDisplayName(), help: strings.getHelpDescription(), reuseDomNode: false, - render(domNode, config, handlers) { + render: async (domNode, config, handlers) => { + // @ts-expect-error + await import('../../lib/flot-charts'); + if (!includes($.plot.plugins, piePlugin)) { $.plot.plugins.push(piePlugin); } diff --git a/x-pack/plugins/canvas/canvas_plugin_src/renderers/plot/index.ts b/x-pack/plugins/canvas/canvas_plugin_src/renderers/plot/index.ts index 8c84f54f8746b..9d70ca418f491 100644 --- a/x-pack/plugins/canvas/canvas_plugin_src/renderers/plot/index.ts +++ b/x-pack/plugins/canvas/canvas_plugin_src/renderers/plot/index.ts @@ -6,7 +6,6 @@ // This bit of hackiness is required because this isn't part of the main kibana bundle import 'jquery'; -import '../../lib/flot-charts'; import { debounce, includes } from 'lodash'; import { RendererStrings } from '../../../i18n'; @@ -18,7 +17,10 @@ import { text } from './plugins/text'; const { plot: strings } = RendererStrings; -const render: RendererSpec['render'] = (domNode, config, handlers) => { +const render: RendererSpec['render'] = async (domNode, config, handlers) => { + // @ts-expect-error + await import('../../lib/flot-charts'); + // TODO: OH NOES if (!includes($.plot.plugins, size)) { $.plot.plugins.push(size); diff --git a/x-pack/plugins/canvas/common/lib/index.ts b/x-pack/plugins/canvas/common/lib/index.ts index 055f6ce7739b7..c8ae53917c9e4 100644 --- a/x-pack/plugins/canvas/common/lib/index.ts +++ b/x-pack/plugins/canvas/common/lib/index.ts @@ -20,8 +20,6 @@ export * from './get_colors_from_palette'; export * from './get_field_type'; // @ts-expect-error missing local definition export * from './get_legend_config'; -// @ts-expect-error missing local definition -export * from './handlebars'; export * from './hex_to_rgb'; export * from './httpurl'; export * from './missing_asset'; From 727d62611b8f6f23ac163f0a2af2ab6f96e38f00 Mon Sep 17 00:00:00 2001 From: Gidi Meir Morris Date: Thu, 1 Oct 2020 14:24:10 +0100 Subject: [PATCH 090/142] [Actions] fixes error in UI in the Edit Flyout for PreConfigured Connectors (#78994) Ensures only User Configured Connectors can be validated and edited by the UI to avoid these kinds of errors in the future. --- .../builtin_action_types/email/email.tsx | 4 +- .../es_index/es_index.tsx | 4 +- .../builtin_action_types/jira/jira.tsx | 19 ++++---- .../jira/jira_params.test.tsx | 3 +- .../builtin_action_types/jira/types.ts | 10 ++--- .../pagerduty/pagerduty.tsx | 14 +++++- .../resilient/resilient.tsx | 13 +++++- .../builtin_action_types/resilient/types.ts | 13 +++--- .../server_log/server_log.test.tsx | 7 +-- .../server_log/server_log.tsx | 2 +- .../servicenow/servicenow.tsx | 10 ++++- .../builtin_action_types/servicenow/types.ts | 13 +++--- .../builtin_action_types/slack/slack.tsx | 4 +- .../components/builtin_action_types/types.ts | 44 +++++++------------ .../builtin_action_types/webhook/webhook.tsx | 13 +++++- .../lib/action_connector_api.test.ts | 4 +- .../lib/check_action_type_enabled.test.tsx | 8 +--- .../action_connector_form.test.tsx | 9 ++-- .../action_connector_form.tsx | 14 ++++-- .../connector_edit_flyout.tsx | 10 +++-- .../triggers_actions_ui/public/types.ts | 43 ++++++++++++++---- .../apps/triggers_actions_ui/connectors.ts | 2 +- x-pack/test/functional_with_es_ssl/config.ts | 9 ++++ 23 files changed, 171 insertions(+), 101 deletions(-) diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.tsx index abb102c04b054..3e8e71991a594 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.tsx @@ -6,9 +6,9 @@ import { lazy } from 'react'; import { i18n } from '@kbn/i18n'; import { ActionTypeModel, ValidationResult } from '../../../../types'; -import { EmailActionParams, EmailActionConnector } from '../types'; +import { EmailActionParams, EmailConfig, EmailSecrets, EmailActionConnector } from '../types'; -export function getActionType(): ActionTypeModel { +export function getActionType(): ActionTypeModel { const mailformat = /^[^@\s]+@[^@\s]+$/; return { id: '.email', diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/es_index/es_index.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/es_index/es_index.tsx index c0255650e0f37..de611d6a043a7 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/es_index/es_index.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/es_index/es_index.tsx @@ -6,9 +6,9 @@ import { lazy } from 'react'; import { i18n } from '@kbn/i18n'; import { ActionTypeModel, ValidationResult } from '../../../../types'; -import { EsIndexActionConnector, IndexActionParams } from '../types'; +import { EsIndexActionConnector, EsIndexConfig, IndexActionParams } from '../types'; -export function getActionType(): ActionTypeModel { +export function getActionType(): ActionTypeModel { return { id: '.index', iconClass: 'indexOpen', diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira.tsx index fd36bd6aeab0a..0179cfbffdfea 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira.tsx @@ -8,19 +8,20 @@ import { lazy } from 'react'; import { ValidationResult, ActionTypeModel } from '../../../../types'; import { connectorConfiguration } from './config'; import logo from './logo.svg'; -import { JiraActionConnector, JiraActionParams } from './types'; +import { JiraActionConnector, JiraConfig, JiraSecrets, JiraActionParams } from './types'; import * as i18n from './translations'; import { isValidUrl } from '../../../lib/value_validators'; const validateConnector = (action: JiraActionConnector): ValidationResult => { - const validationResult = { errors: {} }; - const errors = { - apiUrl: new Array(), - projectKey: new Array(), - email: new Array(), - apiToken: new Array(), + const validationResult = { + errors: { + apiUrl: new Array(), + projectKey: new Array(), + email: new Array(), + apiToken: new Array(), + }, }; - validationResult.errors = errors; + const { errors } = validationResult; if (!action.config.apiUrl) { errors.apiUrl = [...errors.apiUrl, i18n.API_URL_REQUIRED]; @@ -45,7 +46,7 @@ const validateConnector = (action: JiraActionConnector): ValidationResult => { return validationResult; }; -export function getActionType(): ActionTypeModel { +export function getActionType(): ActionTypeModel { return { id: connectorConfiguration.id, iconClass: logo, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx index 416f6f7b18755..a0194ed5c81e4 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/jira_params.test.tsx @@ -11,6 +11,7 @@ import { coreMock } from 'src/core/public/mocks'; import { useGetIssueTypes } from './use_get_issue_types'; import { useGetFieldsByIssueType } from './use_get_fields_by_issue_type'; +import { ActionConnector } from '../../../../types'; jest.mock('./use_get_issue_types'); jest.mock('./use_get_fields_by_issue_type'); @@ -35,7 +36,7 @@ const actionParams = { }, }; -const connector = { +const connector: ActionConnector = { secrets: {}, config: {}, id: 'test', diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/types.ts b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/types.ts index 4c13d067913f2..e72aa1f7fc037 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/jira/types.ts @@ -5,11 +5,9 @@ */ import { CasesConfigurationMapping } from '../case_mappings'; +import { UserConfiguredActionConnector } from '../../../../types'; -export interface JiraActionConnector { - config: JiraConfig; - secrets: JiraSecrets; -} +export type JiraActionConnector = UserConfiguredActionConnector; export interface JiraActionParams { subAction: string; @@ -30,14 +28,14 @@ interface IncidentConfiguration { mapping: CasesConfigurationMapping[]; } -interface JiraConfig { +export interface JiraConfig { apiUrl: string; projectKey: string; incidentConfiguration?: IncidentConfiguration; isCaseOwned?: boolean; } -interface JiraSecrets { +export interface JiraSecrets { email: string; apiToken: string; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/pagerduty/pagerduty.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/pagerduty/pagerduty.tsx index 03bfbb38da6f2..ed2bd39d88dc4 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/pagerduty/pagerduty.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/pagerduty/pagerduty.tsx @@ -7,11 +7,20 @@ import { lazy } from 'react'; import { i18n } from '@kbn/i18n'; import moment from 'moment'; import { ActionTypeModel, ValidationResult } from '../../../../types'; -import { PagerDutyActionParams, PagerDutyActionConnector } from '.././types'; +import { + PagerDutyActionConnector, + PagerDutyConfig, + PagerDutySecrets, + PagerDutyActionParams, +} from '.././types'; import pagerDutySvg from './pagerduty.svg'; import { hasMustacheTokens } from '../../../lib/has_mustache_tokens'; -export function getActionType(): ActionTypeModel { +export function getActionType(): ActionTypeModel< + PagerDutyConfig, + PagerDutySecrets, + PagerDutyActionParams +> { return { id: '.pagerduty', iconClass: pagerDutySvg, @@ -33,6 +42,7 @@ export function getActionType(): ActionTypeModel { routingKey: new Array(), }; validationResult.errors = errors; + if (!action.secrets.routingKey) { errors.routingKey.push( i18n.translate( diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient.tsx index cda6935f3b73d..1b27968c04fd3 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/resilient.tsx @@ -8,7 +8,12 @@ import { lazy } from 'react'; import { ValidationResult, ActionTypeModel } from '../../../../types'; import { connectorConfiguration } from './config'; import logo from './logo.svg'; -import { ResilientActionConnector, ResilientActionParams } from './types'; +import { + ResilientActionConnector, + ResilientConfig, + ResilientSecrets, + ResilientActionParams, +} from './types'; import * as i18n from './translations'; import { isValidUrl } from '../../../lib/value_validators'; @@ -45,7 +50,11 @@ const validateConnector = (action: ResilientActionConnector): ValidationResult = return validationResult; }; -export function getActionType(): ActionTypeModel { +export function getActionType(): ActionTypeModel< + ResilientConfig, + ResilientSecrets, + ResilientActionParams +> { return { id: connectorConfiguration.id, iconClass: logo, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/types.ts b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/types.ts index 37516f5bac372..38019205fbfc9 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/resilient/types.ts @@ -5,11 +5,12 @@ */ import { CasesConfigurationMapping } from '../case_mappings'; +import { UserConfiguredActionConnector } from '../../../../types'; -export interface ResilientActionConnector { - config: ResilientConfig; - secrets: ResilientSecrets; -} +export type ResilientActionConnector = UserConfiguredActionConnector< + ResilientConfig, + ResilientSecrets +>; export interface ResilientActionParams { subAction: string; @@ -28,14 +29,14 @@ interface IncidentConfiguration { mapping: CasesConfigurationMapping[]; } -interface ResilientConfig { +export interface ResilientConfig { apiUrl: string; orgId: string; incidentConfiguration?: IncidentConfiguration; isCaseOwned?: boolean; } -interface ResilientSecrets { +export interface ResilientSecrets { apiKeyId: string; apiKeySecret: string; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log.test.tsx index 3bb5ea68a3040..15143eb6513eb 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log.test.tsx @@ -5,7 +5,7 @@ */ import { TypeRegistry } from '../../../type_registry'; import { registerBuiltInActionTypes } from '.././index'; -import { ActionTypeModel, ActionConnector } from '../../../../types'; +import { ActionTypeModel, UserConfiguredActionConnector } from '../../../../types'; const ACTION_TYPE_ID = '.server-log'; let actionTypeModel: ActionTypeModel; @@ -28,13 +28,14 @@ describe('actionTypeRegistry.get() works', () => { describe('server-log connector validation', () => { test('connector validation succeeds when connector config is valid', () => { - const actionConnector = { + const actionConnector: UserConfiguredActionConnector<{}, {}> = { secrets: {}, id: 'test', actionTypeId: '.server-log', name: 'server-log', config: {}, - } as ActionConnector; + isPreconfigured: false, + }; expect(actionTypeModel.validateConnector(actionConnector)).toEqual({ errors: {}, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log.tsx index 390ccf6a494e9..057e9cf375f96 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/server_log/server_log.tsx @@ -8,7 +8,7 @@ import { i18n } from '@kbn/i18n'; import { ActionTypeModel, ValidationResult } from '../../../../types'; import { ServerLogActionParams } from '../types'; -export function getActionType(): ActionTypeModel { +export function getActionType(): ActionTypeModel { return { id: '.server-log', iconClass: 'logsApp', diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/servicenow.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/servicenow.tsx index 0f7b83ed84fb4..8396497a6e284 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/servicenow.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/servicenow.tsx @@ -8,7 +8,12 @@ import { lazy } from 'react'; import { ValidationResult, ActionTypeModel } from '../../../../types'; import { connectorConfiguration } from './config'; import logo from './logo.svg'; -import { ServiceNowActionConnector, ServiceNowActionParams } from './types'; +import { + ServiceNowActionConnector, + ServiceNowConfig, + ServiceNowSecrets, + ServiceNowActionParams, +} from './types'; import * as i18n from './translations'; import { isValidUrl } from '../../../lib/value_validators'; @@ -41,7 +46,8 @@ const validateConnector = (action: ServiceNowActionConnector): ValidationResult }; export function getActionType(): ActionTypeModel< - ServiceNowActionConnector, + ServiceNowConfig, + ServiceNowSecrets, ServiceNowActionParams > { return { diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/types.ts b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/types.ts index a4f1ff2be0f69..92753dfcba76c 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/servicenow/types.ts @@ -5,11 +5,12 @@ */ import { CasesConfigurationMapping } from '../case_mappings'; +import { UserConfiguredActionConnector } from '../../../../types'; -export interface ServiceNowActionConnector { - config: ServiceNowConfig; - secrets: ServiceNowSecrets; -} +export type ServiceNowActionConnector = UserConfiguredActionConnector< + ServiceNowConfig, + ServiceNowSecrets +>; export interface ServiceNowActionParams { subAction: string; @@ -29,13 +30,13 @@ interface IncidentConfiguration { mapping: CasesConfigurationMapping[]; } -interface ServiceNowConfig { +export interface ServiceNowConfig { apiUrl: string; incidentConfiguration?: IncidentConfiguration; isCaseOwned?: boolean; } -interface ServiceNowSecrets { +export interface ServiceNowSecrets { username: string; password: string; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/slack/slack.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/slack/slack.tsx index 5d39cdb5ac387..23c76f327008b 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/slack/slack.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/slack/slack.tsx @@ -6,9 +6,9 @@ import { lazy } from 'react'; import { i18n } from '@kbn/i18n'; import { ActionTypeModel, ValidationResult } from '../../../../types'; -import { SlackActionParams, SlackActionConnector } from '../types'; +import { SlackActionParams, SlackSecrets, SlackActionConnector } from '../types'; -export function getActionType(): ActionTypeModel { +export function getActionType(): ActionTypeModel { return { id: '.slack', iconClass: 'logoSlack', diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/types.ts b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/types.ts index 84d8b6e8caede..f6bb08148b3cb 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/types.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 { ActionConnector } from '../../../types'; +import { UserConfiguredActionConnector } from '../../../types'; export interface EmailActionParams { to: string[]; @@ -64,66 +64,56 @@ export interface WebhookActionParams { body?: string; } -interface EmailConfig { +export interface EmailConfig { from: string; host: string; port: number; secure?: boolean; } -interface EmailSecrets { +export interface EmailSecrets { user: string | null; password: string | null; } -export interface EmailActionConnector extends ActionConnector { - config: EmailConfig; - secrets: EmailSecrets; -} +export type EmailActionConnector = UserConfiguredActionConnector; -interface EsIndexConfig { +export interface EsIndexConfig { index: string; executionTimeField?: string | null; refresh?: boolean; } -export interface EsIndexActionConnector extends ActionConnector { - config: EsIndexConfig; -} +export type EsIndexActionConnector = UserConfiguredActionConnector; -interface PagerDutyConfig { +export interface PagerDutyConfig { apiUrl?: string; } -interface PagerDutySecrets { +export interface PagerDutySecrets { routingKey: string; } -export interface PagerDutyActionConnector extends ActionConnector { - config: PagerDutyConfig; - secrets: PagerDutySecrets; -} +export type PagerDutyActionConnector = UserConfiguredActionConnector< + PagerDutyConfig, + PagerDutySecrets +>; -interface SlackSecrets { +export interface SlackSecrets { webhookUrl: string; } -export interface SlackActionConnector extends ActionConnector { - secrets: SlackSecrets; -} +export type SlackActionConnector = UserConfiguredActionConnector; -interface WebhookConfig { +export interface WebhookConfig { method: string; url: string; headers: Record; } -interface WebhookSecrets { +export interface WebhookSecrets { user: string; password: string; } -export interface WebhookActionConnector extends ActionConnector { - config: WebhookConfig; - secrets: WebhookSecrets; -} +export type WebhookActionConnector = UserConfiguredActionConnector; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/webhook/webhook.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/webhook/webhook.tsx index 2c51b21d70034..04077738e6015 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/webhook/webhook.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/webhook/webhook.tsx @@ -6,10 +6,19 @@ import { lazy } from 'react'; import { i18n } from '@kbn/i18n'; import { ActionTypeModel, ValidationResult } from '../../../../types'; -import { WebhookActionParams, WebhookActionConnector } from '../types'; +import { + WebhookActionParams, + WebhookConfig, + WebhookSecrets, + WebhookActionConnector, +} from '../types'; import { isValidUrl } from '../../../lib/value_validators'; -export function getActionType(): ActionTypeModel { +export function getActionType(): ActionTypeModel< + WebhookConfig, + WebhookSecrets, + WebhookActionParams +> { return { id: '.webhook', iconClass: 'logoWebhook', diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/action_connector_api.test.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/action_connector_api.test.ts index ad3a5b40bd00d..c4a09b6b8f46d 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/action_connector_api.test.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/action_connector_api.test.ts @@ -59,7 +59,7 @@ describe('loadAllActions', () => { describe('createActionConnector', () => { test('should call create action API', async () => { - const connector: ActionConnectorWithoutId = { + const connector: ActionConnectorWithoutId<{}, {}> = { actionTypeId: 'test', isPreconfigured: false, name: 'My test', @@ -85,7 +85,7 @@ describe('createActionConnector', () => { describe('updateActionConnector', () => { test('should call the update API', async () => { const id = '123'; - const connector: ActionConnectorWithoutId = { + const connector: ActionConnectorWithoutId<{}, {}> = { actionTypeId: 'test', isPreconfigured: false, name: 'My test', diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/check_action_type_enabled.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/lib/check_action_type_enabled.test.tsx index 2917be943d276..ab44520d2954a 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/check_action_type_enabled.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/check_action_type_enabled.test.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ActionType, ActionConnector } from '../../types'; +import { ActionType, PreConfiguredActionConnector } from '../../types'; import { checkActionTypeEnabled, checkActionFormActionTypeEnabled, @@ -93,23 +93,19 @@ describe('checkActionTypeEnabled', () => { }); describe('checkActionFormActionTypeEnabled', () => { - const preconfiguredConnectors: ActionConnector[] = [ + const preconfiguredConnectors: PreConfiguredActionConnector[] = [ { actionTypeId: '1', - config: {}, id: 'test1', isPreconfigured: true, name: 'test', - secrets: {}, referencedByCount: 0, }, { actionTypeId: '2', - config: {}, id: 'test2', isPreconfigured: true, name: 'test', - secrets: {}, referencedByCount: 0, }, ]; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_connector_form.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_connector_form.test.tsx index b7c9865cbd9d0..60ec8004983a3 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_connector_form.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_connector_form.test.tsx @@ -7,7 +7,7 @@ import * as React from 'react'; import { mountWithIntl } from 'test_utils/enzyme_helpers'; import { coreMock } from '../../../../../../../src/core/public/mocks'; import { actionTypeRegistryMock } from '../../action_type_registry.mock'; -import { ValidationResult, ActionConnector } from '../../../types'; +import { ValidationResult, UserConfiguredActionConnector } from '../../../types'; import { ActionConnectorForm } from './action_connector_form'; const actionTypeRegistry = actionTypeRegistryMock.create(); @@ -46,11 +46,14 @@ describe('action_connector_form', () => { actionTypeRegistry.get.mockReturnValue(actionType); actionTypeRegistry.has.mockReturnValue(true); - const initialConnector = { + const initialConnector: UserConfiguredActionConnector<{}, {}> = { + id: '123', + name: '', actionTypeId: actionType.id, config: {}, secrets: {}, - } as ActionConnector; + isPreconfigured: false, + }; let wrapper; if (deps) { wrapper = mountWithIntl( diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_connector_form.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_connector_form.tsx index ed4edb0229c2b..ef6621f98fac2 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_connector_form.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_connector_form.tsx @@ -20,7 +20,12 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { HttpSetup, ApplicationStart, DocLinksStart } from 'kibana/public'; import { ReducerAction } from './connector_reducer'; -import { ActionConnector, IErrorObject, ActionTypeModel } from '../../../types'; +import { + ActionConnector, + IErrorObject, + ActionTypeModel, + UserConfiguredActionConnector, +} from '../../../types'; import { TypeRegistry } from '../../type_registry'; import { hasSaveActionsCapability } from '../../lib/capabilities'; @@ -43,8 +48,11 @@ export function validateBaseProperties(actionObject: ActionConnector) { return validationResult; } -interface ActionConnectorProps { - connector: ActionConnector; +interface ActionConnectorProps< + ConnectorConfig = Record, + ConnectorSecrets = Record +> { + connector: UserConfiguredActionConnector; dispatch: React.Dispatch; actionTypeName: string; serverError?: { diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx index 7b985ab85cd4e..6c7a1cbdc3c70 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx @@ -96,10 +96,12 @@ export const ConnectorEditFlyout = ({ } const actionTypeModel = actionTypeRegistry.get(connector.actionTypeId); - const errorsInConnectorConfig = { - ...actionTypeModel?.validateConnector(connector).errors, - ...validateBaseProperties(connector).errors, - } as IErrorObject; + const errorsInConnectorConfig = (!connector.isPreconfigured + ? { + ...actionTypeModel?.validateConnector(connector).errors, + ...validateBaseProperties(connector).errors, + } + : {}) as IErrorObject; const hasErrorsInConnectorConfig = !!Object.keys(errorsInConnectorConfig).find( (errorKey) => errorsInConnectorConfig[errorKey].length >= 1 ); diff --git a/x-pack/plugins/triggers_actions_ui/public/types.ts b/x-pack/plugins/triggers_actions_ui/public/types.ts index e147f035fbb86..c551746fdec0c 100644 --- a/x-pack/plugins/triggers_actions_ui/public/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/types.ts @@ -64,15 +64,19 @@ export interface Pagination { size: number; } -export interface ActionTypeModel { +export interface ActionTypeModel { id: string; iconClass: string; selectMessage: string; actionTypeTitle?: string; - validateConnector: (connector: any) => ValidationResult; + validateConnector: ( + connector: UserConfiguredActionConnector + ) => ValidationResult; validateParams: (actionParams: any) => ValidationResult; actionConnectorFields: React.LazyExoticComponent< - ComponentType> + ComponentType< + ActionConnectorFieldsProps> + > > | null; actionParamsFields: React.LazyExoticComponent< ComponentType> @@ -83,21 +87,42 @@ export interface ValidationResult { errors: Record; } -export interface ActionConnector { - secrets: Record; +interface ActionConnectorProps { + secrets: Secrets; id: string; actionTypeId: string; name: string; referencedByCount?: number; - config: Record; + config: Config; isPreconfigured: boolean; } -export type ActionConnectorWithoutId = Omit; +export type PreConfiguredActionConnector = Omit< + ActionConnectorProps, + 'config' | 'secrets' +> & { + isPreconfigured: true; +}; + +export type UserConfiguredActionConnector = ActionConnectorProps< + Config, + Secrets +> & { + isPreconfigured: false; +}; + +export type ActionConnector, Secrets = Record> = + | PreConfiguredActionConnector + | UserConfiguredActionConnector; -export interface ActionConnectorTableItem extends ActionConnector { +export type ActionConnectorWithoutId< + Config = Record, + Secrets = Record +> = Omit, 'id'>; + +export type ActionConnectorTableItem = ActionConnector & { actionType: ActionType['name']; -} +}; export interface ActionVariable { name: string; diff --git a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/connectors.ts b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/connectors.ts index 151c837640228..f56e0e2629d40 100644 --- a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/connectors.ts +++ b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/connectors.ts @@ -245,7 +245,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }); it('should not be able to edit a preconfigured connector', async () => { - const preconfiguredConnectorName = 'xyztest'; + const preconfiguredConnectorName = 'test-preconfigured-email'; await pageObjects.triggersActionsUI.searchConnectors(preconfiguredConnectorName); diff --git a/x-pack/test/functional_with_es_ssl/config.ts b/x-pack/test/functional_with_es_ssl/config.ts index 5df5a4155efd3..eedc39b09a8e4 100644 --- a/x-pack/test/functional_with_es_ssl/config.ts +++ b/x-pack/test/functional_with_es_ssl/config.ts @@ -76,6 +76,15 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { actionTypeId: '.server-log', name: 'Serverlog#xyz', }, + 'my-email-connector': { + actionTypeId: '.email', + name: 'Email#test-preconfigured-email', + config: { + from: 'me@example.com', + host: 'localhost', + port: '1025', + }, + }, })}`, ], }, From af517a078a03160caa4f3498eca654d9f49e5147 Mon Sep 17 00:00:00 2001 From: Brandon Kobel Date: Thu, 1 Oct 2020 06:39:41 -0700 Subject: [PATCH 091/142] core route handler context is now lazy (#78957) * Core route handler context is now lazy * Removing `coreStart` intermediate variable * Adding unit tests for CoreRouteHandlerContext Co-authored-by: Elastic Machine --- .../server/core_route_handler_context.test.ts | 239 ++++++++++++++++++ src/core/server/core_route_handler_context.ts | 132 ++++++++++ src/core/server/server.ts | 21 +- 3 files changed, 373 insertions(+), 19 deletions(-) create mode 100644 src/core/server/core_route_handler_context.test.ts create mode 100644 src/core/server/core_route_handler_context.ts diff --git a/src/core/server/core_route_handler_context.test.ts b/src/core/server/core_route_handler_context.test.ts new file mode 100644 index 0000000000000..563e337e6c7e0 --- /dev/null +++ b/src/core/server/core_route_handler_context.test.ts @@ -0,0 +1,239 @@ +/* + * 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 { CoreRouteHandlerContext } from './core_route_handler_context'; +import { coreMock, httpServerMock } from './mocks'; + +describe('#auditor', () => { + test('returns the results of coreStart.audiTrail.asScoped', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const auditor = context.auditor; + expect(auditor).toBe(coreStart.auditTrail.asScoped.mock.results[0].value); + }); + + test('lazily created', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + expect(coreStart.auditTrail.asScoped).not.toHaveBeenCalled(); + const auditor = context.auditor; + expect(coreStart.auditTrail.asScoped).toHaveBeenCalled(); + expect(auditor).toBeDefined(); + }); + + test('only creates one instance', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const auditor1 = context.auditor; + const auditor2 = context.auditor; + expect(coreStart.auditTrail.asScoped.mock.calls.length).toBe(1); + const mockResult = coreStart.auditTrail.asScoped.mock.results[0].value; + expect(auditor1).toBe(mockResult); + expect(auditor2).toBe(mockResult); + }); +}); + +describe('#elasticsearch', () => { + describe('#client', () => { + test('returns the results of coreStart.elasticsearch.client.asScoped', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const client = context.elasticsearch.client; + expect(client).toBe(coreStart.elasticsearch.client.asScoped.mock.results[0].value); + }); + + test('lazily created', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + expect(coreStart.elasticsearch.client.asScoped).not.toHaveBeenCalled(); + const client = context.elasticsearch.client; + expect(coreStart.elasticsearch.client.asScoped).toHaveBeenCalled(); + expect(client).toBeDefined(); + }); + + test('only creates one instance', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const client1 = context.elasticsearch.client; + const client2 = context.elasticsearch.client; + expect(coreStart.elasticsearch.client.asScoped.mock.calls.length).toBe(1); + const mockResult = coreStart.elasticsearch.client.asScoped.mock.results[0].value; + expect(client1).toBe(mockResult); + expect(client2).toBe(mockResult); + }); + }); + + describe('#legacy', () => { + describe('#client', () => { + test('returns the results of coreStart.elasticsearch.legacy.client.asScoped', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const client = context.elasticsearch.legacy.client; + expect(client).toBe(coreStart.elasticsearch.legacy.client.asScoped.mock.results[0].value); + }); + + test('lazily created', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + expect(coreStart.elasticsearch.legacy.client.asScoped).not.toHaveBeenCalled(); + const client = context.elasticsearch.legacy.client; + expect(coreStart.elasticsearch.legacy.client.asScoped).toHaveBeenCalled(); + expect(client).toBeDefined(); + }); + + test('only creates one instance', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const client1 = context.elasticsearch.legacy.client; + const client2 = context.elasticsearch.legacy.client; + expect(coreStart.elasticsearch.legacy.client.asScoped.mock.calls.length).toBe(1); + const mockResult = coreStart.elasticsearch.legacy.client.asScoped.mock.results[0].value; + expect(client1).toBe(mockResult); + expect(client2).toBe(mockResult); + }); + }); + }); +}); + +describe('#savedObjects', () => { + describe('#client', () => { + test('returns the results of coreStart.savedObjects.getScopedClient', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const client = context.savedObjects.client; + expect(client).toBe(coreStart.savedObjects.getScopedClient.mock.results[0].value); + }); + + test('lazily created', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const savedObjects = context.savedObjects; + expect(coreStart.savedObjects.getScopedClient).not.toHaveBeenCalled(); + const client = savedObjects.client; + expect(coreStart.savedObjects.getScopedClient).toHaveBeenCalled(); + expect(client).toBeDefined(); + }); + + test('only creates one instance', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const client1 = context.savedObjects.client; + const client2 = context.savedObjects.client; + expect(coreStart.savedObjects.getScopedClient.mock.calls.length).toBe(1); + const mockResult = coreStart.savedObjects.getScopedClient.mock.results[0].value; + expect(client1).toBe(mockResult); + expect(client2).toBe(mockResult); + }); + }); + + describe('#typeRegistry', () => { + test('returns the results of coreStart.savedObjects.getTypeRegistry', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const typeRegistry = context.savedObjects.typeRegistry; + expect(typeRegistry).toBe(coreStart.savedObjects.getTypeRegistry.mock.results[0].value); + }); + + test('lazily created', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + expect(coreStart.savedObjects.getTypeRegistry).not.toHaveBeenCalled(); + const typeRegistry = context.savedObjects.typeRegistry; + expect(coreStart.savedObjects.getTypeRegistry).toHaveBeenCalled(); + expect(typeRegistry).toBeDefined(); + }); + + test('only creates one instance', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const typeRegistry1 = context.savedObjects.typeRegistry; + const typeRegistry2 = context.savedObjects.typeRegistry; + expect(coreStart.savedObjects.getTypeRegistry.mock.calls.length).toBe(1); + const mockResult = coreStart.savedObjects.getTypeRegistry.mock.results[0].value; + expect(typeRegistry1).toBe(mockResult); + expect(typeRegistry2).toBe(mockResult); + }); + }); +}); + +describe('#uiSettings', () => { + describe('#client', () => { + test('returns the results of coreStart.uiSettings.asScopedToClient', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const client = context.uiSettings.client; + expect(client).toBe(coreStart.uiSettings.asScopedToClient.mock.results[0].value); + }); + + test('lazily created', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + expect(coreStart.uiSettings.asScopedToClient).not.toHaveBeenCalled(); + const client = context.uiSettings.client; + expect(coreStart.uiSettings.asScopedToClient).toHaveBeenCalled(); + expect(client).toBeDefined(); + }); + + test('only creates one instance', () => { + const request = httpServerMock.createKibanaRequest(); + const coreStart = coreMock.createInternalStart(); + const context = new CoreRouteHandlerContext(coreStart, request); + + const client1 = context.uiSettings.client; + const client2 = context.uiSettings.client; + expect(coreStart.uiSettings.asScopedToClient.mock.calls.length).toBe(1); + const mockResult = coreStart.uiSettings.asScopedToClient.mock.results[0].value; + expect(client1).toBe(mockResult); + expect(client2).toBe(mockResult); + }); + }); +}); diff --git a/src/core/server/core_route_handler_context.ts b/src/core/server/core_route_handler_context.ts new file mode 100644 index 0000000000000..8a182a523f52c --- /dev/null +++ b/src/core/server/core_route_handler_context.ts @@ -0,0 +1,132 @@ +/* + * 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. + */ + +// eslint-disable-next-line max-classes-per-file +import { InternalCoreStart } from './internal_types'; +import { KibanaRequest } from './http/router'; +import { SavedObjectsClientContract } from './saved_objects/types'; +import { InternalSavedObjectsServiceStart, ISavedObjectTypeRegistry } from './saved_objects'; +import { + InternalElasticsearchServiceStart, + IScopedClusterClient, + LegacyScopedClusterClient, +} from './elasticsearch'; +import { Auditor } from './audit_trail'; +import { InternalUiSettingsServiceStart, IUiSettingsClient } from './ui_settings'; + +class CoreElasticsearchRouteHandlerContext { + #client?: IScopedClusterClient; + #legacy?: { + client: Pick; + }; + + constructor( + private readonly elasticsearchStart: InternalElasticsearchServiceStart, + private readonly request: KibanaRequest + ) {} + + public get client() { + if (this.#client == null) { + this.#client = this.elasticsearchStart.client.asScoped(this.request); + } + return this.#client; + } + + public get legacy() { + if (this.#legacy == null) { + this.#legacy = { + client: this.elasticsearchStart.legacy.client.asScoped(this.request), + }; + } + return this.#legacy; + } +} + +class CoreSavedObjectsRouteHandlerContext { + constructor( + private readonly savedObjectsStart: InternalSavedObjectsServiceStart, + private readonly request: KibanaRequest + ) {} + #scopedSavedObjectsClient?: SavedObjectsClientContract; + #typeRegistry?: ISavedObjectTypeRegistry; + + public get client() { + if (this.#scopedSavedObjectsClient == null) { + this.#scopedSavedObjectsClient = this.savedObjectsStart.getScopedClient(this.request); + } + return this.#scopedSavedObjectsClient; + } + + public get typeRegistry() { + if (this.#typeRegistry == null) { + this.#typeRegistry = this.savedObjectsStart.getTypeRegistry(); + } + return this.#typeRegistry; + } +} + +class CoreUiSettingsRouteHandlerContext { + #client?: IUiSettingsClient; + constructor( + private readonly uiSettingsStart: InternalUiSettingsServiceStart, + private readonly savedObjectsRouterHandlerContext: CoreSavedObjectsRouteHandlerContext + ) {} + + public get client() { + if (this.#client == null) { + this.#client = this.uiSettingsStart.asScopedToClient( + this.savedObjectsRouterHandlerContext.client + ); + } + return this.#client; + } +} + +export class CoreRouteHandlerContext { + #auditor?: Auditor; + + readonly elasticsearch: CoreElasticsearchRouteHandlerContext; + readonly savedObjects: CoreSavedObjectsRouteHandlerContext; + readonly uiSettings: CoreUiSettingsRouteHandlerContext; + + constructor( + private readonly coreStart: InternalCoreStart, + private readonly request: KibanaRequest + ) { + this.elasticsearch = new CoreElasticsearchRouteHandlerContext( + this.coreStart.elasticsearch, + this.request + ); + this.savedObjects = new CoreSavedObjectsRouteHandlerContext( + this.coreStart.savedObjects, + this.request + ); + this.uiSettings = new CoreUiSettingsRouteHandlerContext( + this.coreStart.uiSettings, + this.savedObjects + ); + } + + public get auditor() { + if (this.#auditor == null) { + this.#auditor = this.coreStart.auditTrail.asScoped(this.request); + } + return this.#auditor; + } +} diff --git a/src/core/server/server.ts b/src/core/server/server.ts index 4e5a7a328bed4..ece10db41962d 100644 --- a/src/core/server/server.ts +++ b/src/core/server/server.ts @@ -48,6 +48,7 @@ import { config as statusConfig } from './status'; import { ContextService } from './context'; import { RequestHandlerContext } from '.'; import { InternalCoreSetup, InternalCoreStart, ServiceConfigDescriptor } from './internal_types'; +import { CoreRouteHandlerContext } from './core_route_handler_context'; const coreId = Symbol('core'); const rootConfigPath = ''; @@ -279,25 +280,7 @@ export class Server { coreId, 'core', async (context, req, res): Promise => { - const coreStart = this.coreStart!; - const savedObjectsClient = coreStart.savedObjects.getScopedClient(req); - - return { - savedObjects: { - client: savedObjectsClient, - typeRegistry: coreStart.savedObjects.getTypeRegistry(), - }, - elasticsearch: { - client: coreStart.elasticsearch.client.asScoped(req), - legacy: { - client: coreStart.elasticsearch.legacy.client.asScoped(req), - }, - }, - uiSettings: { - client: coreStart.uiSettings.asScopedToClient(savedObjectsClient), - }, - auditor: coreStart.auditTrail.asScoped(req), - }; + return new CoreRouteHandlerContext(this.coreStart!, req); } ); } From 9f5033354d2a8d8cb264827a7ab6d38b36a8a532 Mon Sep 17 00:00:00 2001 From: Nathan L Smith Date: Thu, 1 Oct 2020 08:57:52 -0500 Subject: [PATCH 092/142] Remove APM-specific loading indicator (#79042) Kibana now has its own loading indicator. Remove the one we were using. Also remove the old service map loading indicator that was used back when we had background jobs. Fixes #78769. --- .../plugins/apm/public/application/csmApp.tsx | 5 +- .../plugins/apm/public/application/index.tsx | 9 +- .../app/ServiceMap/LoadingOverlay.tsx | 61 ------------ .../Delayed/index.test.tsx | 96 ------------------- .../useDelayedVisibility/Delayed/index.ts | 66 ------------- .../useDelayedVisibility/index.test.tsx | 86 ----------------- .../shared/useDelayedVisibility/index.ts | 48 ---------- .../context/LoadingIndicatorContext.tsx | 65 ------------- .../plugins/apm/public/hooks/useFetcher.tsx | 14 +-- .../apm/public/hooks/useLoadingIndicator.ts | 28 ------ .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 12 files changed, 5 insertions(+), 475 deletions(-) delete mode 100644 x-pack/plugins/apm/public/components/app/ServiceMap/LoadingOverlay.tsx delete mode 100644 x-pack/plugins/apm/public/components/shared/useDelayedVisibility/Delayed/index.test.tsx delete mode 100644 x-pack/plugins/apm/public/components/shared/useDelayedVisibility/Delayed/index.ts delete mode 100644 x-pack/plugins/apm/public/components/shared/useDelayedVisibility/index.test.tsx delete mode 100644 x-pack/plugins/apm/public/components/shared/useDelayedVisibility/index.ts delete mode 100644 x-pack/plugins/apm/public/context/LoadingIndicatorContext.tsx delete mode 100644 x-pack/plugins/apm/public/hooks/useLoadingIndicator.ts diff --git a/x-pack/plugins/apm/public/application/csmApp.tsx b/x-pack/plugins/apm/public/application/csmApp.tsx index 5ebe14b663f56..2baddbe572a52 100644 --- a/x-pack/plugins/apm/public/application/csmApp.tsx +++ b/x-pack/plugins/apm/public/application/csmApp.tsx @@ -22,7 +22,6 @@ import { renderAsRedirectTo } from '../components/app/Main/route_config'; import { ScrollToTopOnPathChange } from '../components/app/Main/ScrollToTopOnPathChange'; import { RumHome, UX_LABEL } from '../components/app/RumDashboard/RumHome'; import { ApmPluginContext } from '../context/ApmPluginContext'; -import { LoadingIndicatorProvider } from '../context/LoadingIndicatorContext'; import { UrlParamsProvider } from '../context/UrlParamsContext'; import { useBreadcrumbs } from '../hooks/use_breadcrumbs'; import { ConfigSchema } from '../index'; @@ -92,9 +91,7 @@ export function CsmAppRoot({ - - - + diff --git a/x-pack/plugins/apm/public/application/index.tsx b/x-pack/plugins/apm/public/application/index.tsx index 9843f73dafdbb..24505951c9d71 100644 --- a/x-pack/plugins/apm/public/application/index.tsx +++ b/x-pack/plugins/apm/public/application/index.tsx @@ -24,7 +24,6 @@ import { routes } from '../components/app/Main/route_config'; import { ScrollToTopOnPathChange } from '../components/app/Main/ScrollToTopOnPathChange'; import { ApmPluginContext } from '../context/ApmPluginContext'; import { LicenseProvider } from '../context/LicenseContext'; -import { LoadingIndicatorProvider } from '../context/LoadingIndicatorContext'; import { UrlParamsProvider } from '../context/UrlParamsContext'; import { useBreadcrumbs } from '../hooks/use_breadcrumbs'; import { ApmPluginSetupDeps } from '../plugin'; @@ -99,11 +98,9 @@ export function ApmAppRoot({ - - - - - + + + diff --git a/x-pack/plugins/apm/public/components/app/ServiceMap/LoadingOverlay.tsx b/x-pack/plugins/apm/public/components/app/ServiceMap/LoadingOverlay.tsx deleted file mode 100644 index 8557c3f0c0798..0000000000000 --- a/x-pack/plugins/apm/public/components/app/ServiceMap/LoadingOverlay.tsx +++ /dev/null @@ -1,61 +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 { EuiProgress, EuiText, EuiSpacer } from '@elastic/eui'; -import styled from 'styled-components'; -import { i18n } from '@kbn/i18n'; - -const Container = styled.div` - position: relative; -`; - -const Overlay = styled.div` - position: absolute; - top: 0; - z-index: 1; - display: flex; - flex-direction: column; - align-items: center; - width: 100%; - padding: ${({ theme }) => theme.eui.gutterTypes.gutterMedium}; -`; - -const ProgressBarContainer = styled.div` - width: 50%; - max-width: 600px; -`; - -interface Props { - isLoading: boolean; - percentageLoaded: number; -} - -export function LoadingOverlay({ isLoading, percentageLoaded }: Props) { - return ( - - {isLoading && ( - - - - - - - {i18n.translate('xpack.apm.loadingServiceMap', { - defaultMessage: - 'Loading service map... This might take a short while.', - })} - - - )} - - ); -} diff --git a/x-pack/plugins/apm/public/components/shared/useDelayedVisibility/Delayed/index.test.tsx b/x-pack/plugins/apm/public/components/shared/useDelayedVisibility/Delayed/index.test.tsx deleted file mode 100644 index 47c439bdd746d..0000000000000 --- a/x-pack/plugins/apm/public/components/shared/useDelayedVisibility/Delayed/index.test.tsx +++ /dev/null @@ -1,96 +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 { Delayed } from './index'; - -// Advanced time like setTimeout and mocks Date.now() to stay in sync -class AdvanceTimer { - public nowTime = 0; - public advance(ms: number) { - this.nowTime += ms; - jest.spyOn(Date, 'now').mockReturnValue(this.nowTime); - jest.advanceTimersByTime(ms); - } -} - -describe('Delayed', () => { - it('should not flicker between show/hide when the hide interval is very short', async () => { - jest.useFakeTimers(); - const visibilityChanges: boolean[] = []; - const advanceTimer = new AdvanceTimer(); - const delayed = new Delayed(); - - delayed.onChange((isVisible) => visibilityChanges.push(isVisible)); - - for (let i = 1; i < 100; i += 2) { - delayed.show(); - advanceTimer.advance(1000); - delayed.hide(); - advanceTimer.advance(20); - } - advanceTimer.advance(100); - - expect(visibilityChanges).toEqual([true, false]); - }); - - it('should not be shown at all when the duration is very short', async () => { - jest.useFakeTimers(); - const advanceTimer = new AdvanceTimer(); - const visibilityChanges: boolean[] = []; - const delayed = new Delayed(); - - delayed.onChange((isVisible) => visibilityChanges.push(isVisible)); - - delayed.show(); - advanceTimer.advance(30); - delayed.hide(); - advanceTimer.advance(1000); - - expect(visibilityChanges).toEqual([]); - }); - - it('should be displayed for minimum 1000ms', async () => { - jest.useFakeTimers(); - const visibilityChanges: boolean[] = []; - const advanceTimer = new AdvanceTimer(); - const delayed = new Delayed(); - - delayed.onChange((isVisible) => visibilityChanges.push(isVisible)); - - delayed.show(); - advanceTimer.advance(200); - delayed.hide(); - advanceTimer.advance(950); - expect(visibilityChanges).toEqual([true]); - advanceTimer.advance(100); - expect(visibilityChanges).toEqual([true, false]); - delayed.show(); - advanceTimer.advance(50); - expect(visibilityChanges).toEqual([true, false, true]); - delayed.hide(); - advanceTimer.advance(950); - expect(visibilityChanges).toEqual([true, false, true]); - advanceTimer.advance(100); - expect(visibilityChanges).toEqual([true, false, true, false]); - }); - - it('should be displayed for minimum 2000ms', async () => { - jest.useFakeTimers(); - const visibilityChanges: boolean[] = []; - const advanceTimer = new AdvanceTimer(); - const delayed = new Delayed({ minimumVisibleDuration: 2000 }); - - delayed.onChange((isVisible) => visibilityChanges.push(isVisible)); - - delayed.show(); - advanceTimer.advance(200); - delayed.hide(); - advanceTimer.advance(1950); - expect(visibilityChanges).toEqual([true]); - advanceTimer.advance(100); - expect(visibilityChanges).toEqual([true, false]); - }); -}); diff --git a/x-pack/plugins/apm/public/components/shared/useDelayedVisibility/Delayed/index.ts b/x-pack/plugins/apm/public/components/shared/useDelayedVisibility/Delayed/index.ts deleted file mode 100644 index daab721f64b1a..0000000000000 --- a/x-pack/plugins/apm/public/components/shared/useDelayedVisibility/Delayed/index.ts +++ /dev/null @@ -1,66 +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. - */ - -type Callback = (isVisible: boolean) => void; - -export class Delayed { - private displayedAt = 0; - private hideDelayMs: number; - private isVisible = false; - private minimumVisibleDuration: number; - private showDelayMs: number; - private timeoutId?: number; - - constructor({ - minimumVisibleDuration = 1000, - showDelayMs = 50, - hideDelayMs = 50, - } = {}) { - this.minimumVisibleDuration = minimumVisibleDuration; - this.hideDelayMs = hideDelayMs; - this.showDelayMs = showDelayMs; - } - - private onChangeCallback: Callback = () => null; - - private updateState(isVisible: boolean) { - window.clearTimeout(this.timeoutId); - const ms = !isVisible - ? Math.max( - this.displayedAt + this.minimumVisibleDuration - Date.now(), - this.hideDelayMs - ) - : this.showDelayMs; - - this.timeoutId = window.setTimeout(() => { - if (this.isVisible !== isVisible) { - this.isVisible = isVisible; - this.onChangeCallback(isVisible); - if (isVisible) { - this.displayedAt = Date.now(); - } - } - }, ms); - } - - public show() { - this.updateState(true); - } - - public hide() { - this.updateState(false); - } - - public onChange(onChangeCallback: Callback) { - this.onChangeCallback = onChangeCallback; - } - - public destroy() { - if (this.timeoutId) { - window.clearTimeout(this.timeoutId); - } - } -} diff --git a/x-pack/plugins/apm/public/components/shared/useDelayedVisibility/index.test.tsx b/x-pack/plugins/apm/public/components/shared/useDelayedVisibility/index.test.tsx deleted file mode 100644 index 447e11eab5e41..0000000000000 --- a/x-pack/plugins/apm/public/components/shared/useDelayedVisibility/index.test.tsx +++ /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 { - renderHook, - act, - RenderHookResult, -} from '@testing-library/react-hooks'; -import { useDelayedVisibility } from '.'; - -// Failing: See https://github.com/elastic/kibana/issues/66389 -describe.skip('useFetcher', () => { - let hook: RenderHookResult; - - beforeEach(() => { - jest.useFakeTimers(); - }); - - it('is initially false', () => { - hook = renderHook((isLoading) => useDelayedVisibility(isLoading), { - initialProps: false, - }); - expect(hook.result.current).toEqual(false); - }); - - it('does not change to true immediately', () => { - hook = renderHook((isLoading) => useDelayedVisibility(isLoading), { - initialProps: false, - }); - - hook.rerender(true); - act(() => { - jest.advanceTimersByTime(10); - }); - - expect(hook.result.current).toEqual(false); - act(() => { - jest.advanceTimersByTime(50); - }); - - expect(hook.result.current).toEqual(true); - }); - - it('does not change to false immediately', () => { - hook = renderHook((isLoading) => useDelayedVisibility(isLoading), { - initialProps: false, - }); - - hook.rerender(true); - act(() => { - jest.advanceTimersByTime(100); - }); - hook.rerender(false); - - expect(hook.result.current).toEqual(true); - }); - - // Disabled because it's flaky: https://github.com/elastic/kibana/issues/66389 - // it('is true for minimum 1000ms', () => { - // hook = renderHook((isLoading) => useDelayedVisibility(isLoading), { - // initialProps: false, - // }); - - // hook.rerender(true); - - // act(() => { - // jest.advanceTimersByTime(100); - // }); - - // hook.rerender(false); - // act(() => { - // jest.advanceTimersByTime(900); - // }); - - // expect(hook.result.current).toEqual(true); - - // act(() => { - // jest.advanceTimersByTime(100); - // }); - - // expect(hook.result.current).toEqual(false); - // }); -}); diff --git a/x-pack/plugins/apm/public/components/shared/useDelayedVisibility/index.ts b/x-pack/plugins/apm/public/components/shared/useDelayedVisibility/index.ts deleted file mode 100644 index bd5708494d641..0000000000000 --- a/x-pack/plugins/apm/public/components/shared/useDelayedVisibility/index.ts +++ /dev/null @@ -1,48 +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 { useEffect, useRef, useState } from 'react'; -import { Delayed } from './Delayed'; - -export function useDelayedVisibility( - visible: boolean, - hideDelayMs?: number, - showDelayMs?: number, - minimumVisibleDuration?: number -) { - const [isVisible, setIsVisible] = useState(false); - const delayedRef = useRef(null); - - useEffect(() => { - const delayed = new Delayed({ - hideDelayMs, - showDelayMs, - minimumVisibleDuration, - }); - delayed.onChange((visibility) => { - setIsVisible(visibility); - }); - delayedRef.current = delayed; - - return () => { - delayed.destroy(); - }; - }, [hideDelayMs, showDelayMs, minimumVisibleDuration]); - - useEffect(() => { - if (!delayedRef.current) { - return; - } - - if (visible) { - delayedRef.current.show(); - } else { - delayedRef.current.hide(); - } - }, [visible]); - - return isVisible; -} diff --git a/x-pack/plugins/apm/public/context/LoadingIndicatorContext.tsx b/x-pack/plugins/apm/public/context/LoadingIndicatorContext.tsx deleted file mode 100644 index 99822c0bbc5ca..0000000000000 --- a/x-pack/plugins/apm/public/context/LoadingIndicatorContext.tsx +++ /dev/null @@ -1,65 +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 { EuiPortal, EuiProgress } from '@elastic/eui'; -import { pickBy } from 'lodash'; -import React, { Fragment, useMemo, useReducer } from 'react'; -import { useDelayedVisibility } from '../components/shared/useDelayedVisibility'; - -export const LoadingIndicatorContext = React.createContext({ - statuses: {}, - dispatchStatus: (_action: Action) => {}, -}); - -interface State { - [key: string]: boolean; -} - -interface Action { - isLoading: boolean; - id: number; -} - -function reducer(statuses: State, action: Action) { - // Return an object with only the ids with `true` as their value, so that ids - // that previously had `false` are removed and do not remain hanging around in - // the object. - return pickBy( - { ...statuses, [action.id.toString()]: action.isLoading }, - Boolean - ); -} - -function getIsAnyLoading(statuses: State) { - return Object.values(statuses).some((isLoading) => isLoading); -} - -export function LoadingIndicatorProvider({ - children, -}: { - children: React.ReactNode; -}) { - const [statuses, dispatchStatus] = useReducer(reducer, {}); - const isLoading = useMemo(() => getIsAnyLoading(statuses), [statuses]); - const shouldShowLoadingIndicator = useDelayedVisibility(isLoading); - const contextValue = React.useMemo(() => ({ statuses, dispatchStatus }), [ - statuses, - ]); - - return ( - - {shouldShowLoadingIndicator && ( - - - - )} - - - - ); -} diff --git a/x-pack/plugins/apm/public/hooks/useFetcher.tsx b/x-pack/plugins/apm/public/hooks/useFetcher.tsx index 68b197c46e888..5d65424844c5a 100644 --- a/x-pack/plugins/apm/public/hooks/useFetcher.tsx +++ b/x-pack/plugins/apm/public/hooks/useFetcher.tsx @@ -4,14 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -import React, { useContext, useEffect, useState, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; +import React, { useEffect, useMemo, useState } from 'react'; import { IHttpFetchError } from 'src/core/public'; import { toMountPoint } from '../../../../../src/plugins/kibana_react/public'; -import { LoadingIndicatorContext } from '../context/LoadingIndicatorContext'; import { APMClient, callApmApi } from '../services/rest/createCallApmApi'; import { useApmPluginContext } from './useApmPluginContext'; -import { useLoadingIndicator } from './useLoadingIndicator'; export enum FETCH_STATUS { LOADING = 'loading', @@ -44,9 +42,6 @@ export function useFetcher( ): FetcherResult> & { refetch: () => void } { const { notifications } = useApmPluginContext().core; const { preservePreviousData = true, showToastOnError = true } = options; - const { setIsLoading } = useLoadingIndicator(); - - const { dispatchStatus } = useContext(LoadingIndicatorContext); const [result, setResult] = useState< FetcherResult> >({ @@ -67,8 +62,6 @@ export function useFetcher( return; } - setIsLoading(true); - setResult((prevResult) => ({ data: preservePreviousData ? prevResult.data : undefined, // preserve data from previous state while loading next state status: FETCH_STATUS.LOADING, @@ -78,7 +71,6 @@ export function useFetcher( try { const data = await promise; if (!didCancel) { - setIsLoading(false); setResult({ data, status: FETCH_STATUS.SUCCESS, @@ -122,7 +114,6 @@ export function useFetcher( ), }); } - setIsLoading(false); setResult({ data: undefined, status: FETCH_STATUS.FAILURE, @@ -135,7 +126,6 @@ export function useFetcher( doFetch(); return () => { - setIsLoading(false); didCancel = true; }; /* eslint-disable react-hooks/exhaustive-deps */ @@ -143,8 +133,6 @@ export function useFetcher( counter, preservePreviousData, showToastOnError, - dispatchStatus, - setIsLoading, ...fnDeps, /* eslint-enable react-hooks/exhaustive-deps */ ]); diff --git a/x-pack/plugins/apm/public/hooks/useLoadingIndicator.ts b/x-pack/plugins/apm/public/hooks/useLoadingIndicator.ts deleted file mode 100644 index 6742efb0ffbae..0000000000000 --- a/x-pack/plugins/apm/public/hooks/useLoadingIndicator.ts +++ /dev/null @@ -1,28 +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 { useContext, useMemo, useEffect } from 'react'; -import { LoadingIndicatorContext } from '../context/LoadingIndicatorContext'; -import { useComponentId } from './useComponentId'; - -export function useLoadingIndicator() { - const { dispatchStatus } = useContext(LoadingIndicatorContext); - const id = useComponentId(); - - useEffect(() => { - return () => { - dispatchStatus({ id, isLoading: false }); - }; - }, [dispatchStatus, id]); - - return useMemo(() => { - return { - setIsLoading: (loading: boolean) => { - dispatchStatus({ id, isLoading: loading }); - }, - }; - }, [dispatchStatus, id]); -} diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 34ff32244035a..0ebb10d30c010 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -4712,7 +4712,6 @@ "xpack.apm.license.betaTooltipMessage": "現在、この機能はベータです。不具合を見つけた場合やご意見がある場合、サポートに問い合わせるか、またはディスカッションフォーラムにご報告ください。", "xpack.apm.license.button": "トライアルを開始", "xpack.apm.license.title": "無料の 30 日トライアルを開始", - "xpack.apm.loadingServiceMap": "サービスマップを読み込み中...多少時間がかかる場合があります。", "xpack.apm.localFilters.titles.agentName": "エージェント名", "xpack.apm.localFilters.titles.browser": "ブラウザー", "xpack.apm.localFilters.titles.containerId": "コンテナー ID", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index db59493002987..acd6db3b758b1 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -4714,7 +4714,6 @@ "xpack.apm.license.betaTooltipMessage": "此功能当前为公测版。如果遇到任何错误或有任何反馈,请报告问题或访问我们的论坛。", "xpack.apm.license.button": "开始试用", "xpack.apm.license.title": "开始为期 30 天的免费试用", - "xpack.apm.loadingServiceMap": "正在加载服务地图......这可能需要一会儿时间。", "xpack.apm.localFilters.titles.agentName": "代理名称", "xpack.apm.localFilters.titles.browser": "浏览器", "xpack.apm.localFilters.titles.containerId": "容器 ID", From b692c374a2b0240b27d8077b3a14de435d492851 Mon Sep 17 00:00:00 2001 From: Daniil Suleiman <31325372+sulemanof@users.noreply.github.com> Date: Thu, 1 Oct 2020 17:08:12 +0300 Subject: [PATCH 093/142] Timelion visualization renderer (#78540) * Update styles * Implement toExpressionAst fn * Implement renderer * Update unit tests * Add unit tests * Update types * Remove unused vars * Fix types * Update types * Show error message when no data * Update ExpressionRenderDefinition api * Update renderer when there is no data * Make options component lazy Co-authored-by: Elastic Machine --- ....expressionrenderdefinition.displayname.md | 2 +- ....expressionrenderdefinition.displayname.md | 2 +- .../common/expression_renderers/types.ts | 2 +- src/plugins/expressions/public/public.api.md | 2 +- src/plugins/expressions/server/server.api.md | 2 +- src/plugins/timelion/public/index.scss | 6 ++ .../public/tag_cloud_vis_renderer.tsx | 1 - .../public/__snapshots__/to_ast.test.ts.snap | 21 ++++++ .../public/_timelion_editor.scss | 15 ----- .../public/_timelion_vis.scss | 12 ---- .../{_panel.scss => _timelion_vis.scss} | 8 +++ .../components/{_index.scss => index.scss} | 2 +- .../public/components/index.ts | 1 - .../public/components/timelion_vis.tsx | 50 -------------- .../{panel.tsx => timelion_vis_component.tsx} | 57 ++++++++++------ .../helpers/timelion_request_handler.ts | 4 +- .../vis_type_timelion/public/index.scss | 3 - .../vis_type_timelion/public/plugin.ts | 5 +- .../public/timelion_options.tsx | 47 +++++++++----- .../public/timelion_vis_fn.ts | 26 +++++--- .../public/timelion_vis_renderer.tsx | 65 +++++++++++++++++++ .../public/timelion_vis_type.tsx | 19 ++---- .../{components/chart.tsx => to_ast.test.ts} | 37 +++++------ .../vis_type_timelion/public/to_ast.ts | 37 +++++++++++ .../__snapshots__/build_pipeline.test.ts.snap | 2 - .../public/legacy/build_pipeline.test.ts | 6 -- .../public/legacy/build_pipeline.ts | 5 -- 27 files changed, 258 insertions(+), 181 deletions(-) create mode 100644 src/plugins/vis_type_timelion/public/__snapshots__/to_ast.test.ts.snap delete mode 100644 src/plugins/vis_type_timelion/public/_timelion_editor.scss delete mode 100644 src/plugins/vis_type_timelion/public/_timelion_vis.scss rename src/plugins/vis_type_timelion/public/components/{_panel.scss => _timelion_vis.scss} (88%) rename src/plugins/vis_type_timelion/public/components/{_index.scss => index.scss} (60%) delete mode 100644 src/plugins/vis_type_timelion/public/components/timelion_vis.tsx rename src/plugins/vis_type_timelion/public/components/{panel.tsx => timelion_vis_component.tsx} (90%) delete mode 100644 src/plugins/vis_type_timelion/public/index.scss create mode 100644 src/plugins/vis_type_timelion/public/timelion_vis_renderer.tsx rename src/plugins/vis_type_timelion/public/{components/chart.tsx => to_ast.test.ts} (60%) create mode 100644 src/plugins/vis_type_timelion/public/to_ast.ts diff --git a/docs/development/plugins/expressions/public/kibana-plugin-plugins-expressions-public.expressionrenderdefinition.displayname.md b/docs/development/plugins/expressions/public/kibana-plugin-plugins-expressions-public.expressionrenderdefinition.displayname.md index 9d5f7609ee6cd..a957ecd63f043 100644 --- a/docs/development/plugins/expressions/public/kibana-plugin-plugins-expressions-public.expressionrenderdefinition.displayname.md +++ b/docs/development/plugins/expressions/public/kibana-plugin-plugins-expressions-public.expressionrenderdefinition.displayname.md @@ -9,5 +9,5 @@ A user friendly name of the renderer as will be displayed to user in UI. Signature: ```typescript -displayName: string; +displayName?: string; ``` diff --git a/docs/development/plugins/expressions/server/kibana-plugin-plugins-expressions-server.expressionrenderdefinition.displayname.md b/docs/development/plugins/expressions/server/kibana-plugin-plugins-expressions-server.expressionrenderdefinition.displayname.md index e936e25cee6ca..8ae5aa2f1790e 100644 --- a/docs/development/plugins/expressions/server/kibana-plugin-plugins-expressions-server.expressionrenderdefinition.displayname.md +++ b/docs/development/plugins/expressions/server/kibana-plugin-plugins-expressions-server.expressionrenderdefinition.displayname.md @@ -9,5 +9,5 @@ A user friendly name of the renderer as will be displayed to user in UI. Signature: ```typescript -displayName: string; +displayName?: string; ``` diff --git a/src/plugins/expressions/common/expression_renderers/types.ts b/src/plugins/expressions/common/expression_renderers/types.ts index 7b3e812eafedd..b760e7b32a7d2 100644 --- a/src/plugins/expressions/common/expression_renderers/types.ts +++ b/src/plugins/expressions/common/expression_renderers/types.ts @@ -28,7 +28,7 @@ export interface ExpressionRenderDefinition { /** * A user friendly name of the renderer as will be displayed to user in UI. */ - displayName: string; + displayName?: string; /** * Help text as will be displayed to user. A sentence or few about what this diff --git a/src/plugins/expressions/public/public.api.md b/src/plugins/expressions/public/public.api.md index 162f0ef6824f5..5c0fd8ab1a572 100644 --- a/src/plugins/expressions/public/public.api.md +++ b/src/plugins/expressions/public/public.api.md @@ -429,7 +429,7 @@ export interface ExpressionImage { // // @public (undocumented) export interface ExpressionRenderDefinition { - displayName: string; + displayName?: string; help?: string; name: string; render: (domNode: HTMLElement, config: Config, handlers: IInterpreterRenderHandlers) => void | Promise; diff --git a/src/plugins/expressions/server/server.api.md b/src/plugins/expressions/server/server.api.md index 6ac251ea005b4..d8872ee416017 100644 --- a/src/plugins/expressions/server/server.api.md +++ b/src/plugins/expressions/server/server.api.md @@ -401,7 +401,7 @@ export interface ExpressionImage { // // @public (undocumented) export interface ExpressionRenderDefinition { - displayName: string; + displayName?: string; help?: string; name: string; render: (domNode: HTMLElement, config: Config, handlers: IInterpreterRenderHandlers) => void | Promise; diff --git a/src/plugins/timelion/public/index.scss b/src/plugins/timelion/public/index.scss index 6bf7133287c51..f39e0c18a2870 100644 --- a/src/plugins/timelion/public/index.scss +++ b/src/plugins/timelion/public/index.scss @@ -10,3 +10,9 @@ @import './app'; @import './base'; @import './directives/index'; + +// these styles is needed to be loaded here explicitly if the timelion visualization was not opened in browser +// styles for timelion visualization are lazy loaded only while a vis is opened +// this will duplicate styles only if both Timelion app and timelion visualization are loaded +// could be left here as it is since the Timelion app is deprecated +@import '../../vis_type_timelion/public/components/index.scss'; diff --git a/src/plugins/vis_type_tagcloud/public/tag_cloud_vis_renderer.tsx b/src/plugins/vis_type_tagcloud/public/tag_cloud_vis_renderer.tsx index d37aa5f6fe409..b433ed9cbed21 100644 --- a/src/plugins/vis_type_tagcloud/public/tag_cloud_vis_renderer.tsx +++ b/src/plugins/vis_type_tagcloud/public/tag_cloud_vis_renderer.tsx @@ -25,7 +25,6 @@ import { ExpressionRenderDefinition } from '../../expressions/common/expression_ import { TagCloudVisDependencies } from './plugin'; import { TagCloudVisRenderValue } from './tag_cloud_fn'; -// @ts-ignore const TagCloudChart = lazy(() => import('./components/tag_cloud_chart')); export const getTagCloudVisRenderer: ( diff --git a/src/plugins/vis_type_timelion/public/__snapshots__/to_ast.test.ts.snap b/src/plugins/vis_type_timelion/public/__snapshots__/to_ast.test.ts.snap new file mode 100644 index 0000000000000..9e32a6c4ae17c --- /dev/null +++ b/src/plugins/vis_type_timelion/public/__snapshots__/to_ast.test.ts.snap @@ -0,0 +1,21 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`timelion vis toExpressionAst function should match basic snapshot 1`] = ` +Object { + "chain": Array [ + Object { + "arguments": Object { + "expression": Array [ + ".es(*)", + ], + "interval": Array [ + "auto", + ], + }, + "function": "timelion_vis", + "type": "function", + }, + ], + "type": "expression", +} +`; diff --git a/src/plugins/vis_type_timelion/public/_timelion_editor.scss b/src/plugins/vis_type_timelion/public/_timelion_editor.scss deleted file mode 100644 index a9331930a86ff..0000000000000 --- a/src/plugins/vis_type_timelion/public/_timelion_editor.scss +++ /dev/null @@ -1,15 +0,0 @@ -.visEditor--timelion { - vis-options-react-wrapper, - .visEditorSidebar__options, - .visEditorSidebar__timelionOptions { - flex: 1 1 auto; - display: flex; - flex-direction: column; - } - - .visEditor__sidebar { - @include euiBreakpoint('xs', 's', 'm') { - width: 100%; - } - } -} diff --git a/src/plugins/vis_type_timelion/public/_timelion_vis.scss b/src/plugins/vis_type_timelion/public/_timelion_vis.scss deleted file mode 100644 index e7175bf3c0c2a..0000000000000 --- a/src/plugins/vis_type_timelion/public/_timelion_vis.scss +++ /dev/null @@ -1,12 +0,0 @@ -.timVis { - min-width: 100%; - display: flex; - flex-direction: column; - - .timChart { - min-width: 100%; - flex: 1; - display: flex; - flex-direction: column; - } -} diff --git a/src/plugins/vis_type_timelion/public/components/_panel.scss b/src/plugins/vis_type_timelion/public/components/_timelion_vis.scss similarity index 88% rename from src/plugins/vis_type_timelion/public/components/_panel.scss rename to src/plugins/vis_type_timelion/public/components/_timelion_vis.scss index c4d591bc82cad..6729d400523cd 100644 --- a/src/plugins/vis_type_timelion/public/components/_panel.scss +++ b/src/plugins/vis_type_timelion/public/components/_timelion_vis.scss @@ -58,3 +58,11 @@ white-space: nowrap; font-weight: $euiFontWeightBold; } + +.visEditor--timelion { + .visEditorSidebar__timelionOptions { + flex: 1 1 auto; + display: flex; + flex-direction: column; + } +} diff --git a/src/plugins/vis_type_timelion/public/components/_index.scss b/src/plugins/vis_type_timelion/public/components/index.scss similarity index 60% rename from src/plugins/vis_type_timelion/public/components/_index.scss rename to src/plugins/vis_type_timelion/public/components/index.scss index 707c9dafebe2b..a541c66e6e913 100644 --- a/src/plugins/vis_type_timelion/public/components/_index.scss +++ b/src/plugins/vis_type_timelion/public/components/index.scss @@ -1,2 +1,2 @@ -@import 'panel'; +@import 'timelion_vis'; @import 'timelion_expression_input'; diff --git a/src/plugins/vis_type_timelion/public/components/index.ts b/src/plugins/vis_type_timelion/public/components/index.ts index c70caab8dd70c..8d7d32a3ba262 100644 --- a/src/plugins/vis_type_timelion/public/components/index.ts +++ b/src/plugins/vis_type_timelion/public/components/index.ts @@ -19,4 +19,3 @@ export * from './timelion_expression_input'; export * from './timelion_interval'; -export * from './timelion_vis'; diff --git a/src/plugins/vis_type_timelion/public/components/timelion_vis.tsx b/src/plugins/vis_type_timelion/public/components/timelion_vis.tsx deleted file mode 100644 index aa594c749b600..0000000000000 --- a/src/plugins/vis_type_timelion/public/components/timelion_vis.tsx +++ /dev/null @@ -1,50 +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 React from 'react'; - -import { IUiSettingsClient } from 'kibana/public'; -import { ChartComponent } from './chart'; -import { VisParams } from '../timelion_vis_fn'; -import { TimelionSuccessResponse } from '../helpers/timelion_request_handler'; -import { ExprVis } from '../../../visualizations/public'; - -export interface TimelionVisComponentProp { - config: IUiSettingsClient; - renderComplete(): void; - updateStatus: object; - vis: ExprVis; - visData: TimelionSuccessResponse; - visParams: VisParams; -} - -function TimelionVisComponent(props: TimelionVisComponentProp) { - return ( -
- -
- ); -} - -export { TimelionVisComponent }; diff --git a/src/plugins/vis_type_timelion/public/components/panel.tsx b/src/plugins/vis_type_timelion/public/components/timelion_vis_component.tsx similarity index 90% rename from src/plugins/vis_type_timelion/public/components/panel.tsx rename to src/plugins/vis_type_timelion/public/components/timelion_vis_component.tsx index 9c30a6b75d6db..a7b623ac8680c 100644 --- a/src/plugins/vis_type_timelion/public/components/panel.tsx +++ b/src/plugins/vis_type_timelion/public/components/timelion_vis_component.tsx @@ -21,7 +21,9 @@ import React, { useState, useEffect, useMemo, useCallback } from 'react'; import $ from 'jquery'; import moment from 'moment-timezone'; import { debounce, compact, get, each, cloneDeep, last, map } from 'lodash'; +import { useResizeObserver } from '@elastic/eui'; +import { IInterpreterRenderHandlers } from 'src/plugins/expressions'; import { useKibana } from '../../../kibana_react/public'; import '../flot'; import { DEFAULT_TIME_FORMAT } from '../../common/lib'; @@ -38,18 +40,19 @@ import { Series, Sheet } from '../helpers/timelion_request_handler'; import { tickFormatters } from '../helpers/tick_formatters'; import { generateTicksProvider } from '../helpers/tick_generator'; import { TimelionVisDependencies } from '../plugin'; -import { ExprVisAPIEvents } from '../../../visualizations/public'; + +import './index.scss'; interface CrosshairPlot extends jquery.flot.plot { setCrosshair: (pos: Position) => void; clearCrosshair: () => void; } -interface PanelProps { - applyFilter: ExprVisAPIEvents['applyFilter']; +interface TimelionVisComponentProps { + fireEvent: IInterpreterRenderHandlers['event']; interval: string; seriesList: Sheet; - renderComplete(): void; + renderComplete: IInterpreterRenderHandlers['done']; } interface Position { @@ -75,11 +78,16 @@ const DEBOUNCE_DELAY = 50; // ensure legend is the same height with or without a caption so legend items do not move around const emptyCaption = '
'; -function Panel({ interval, seriesList, renderComplete, applyFilter }: PanelProps) { +function TimelionVisComponent({ + interval, + seriesList, + renderComplete, + fireEvent, +}: TimelionVisComponentProps) { const kibana = useKibana(); const [chart, setChart] = useState(() => cloneDeep(seriesList.list)); const [canvasElem, setCanvasElem] = useState(); - const [chartElem, setChartElem] = useState(); + const [chartElem, setChartElem] = useState(null); const [originalColorMap, setOriginalColorMap] = useState(() => new Map()); @@ -191,7 +199,7 @@ function Panel({ interval, seriesList, renderComplete, applyFilter }: PanelProps interval, kibana.services.timefilter, kibana.services.uiSettings, - chartElem && chartElem.clientWidth, + chartElem?.clientWidth, grid ); const updatedSeries = buildSeriesData(chartValue, options); @@ -216,12 +224,14 @@ function Panel({ interval, seriesList, renderComplete, applyFilter }: PanelProps updateCaption(newPlot.getData()); } }, - [canvasElem, chartElem, renderComplete, kibana.services, interval, updateCaption] + [canvasElem, chartElem?.clientWidth, renderComplete, kibana.services, interval, updateCaption] ); + const dimensions = useResizeObserver(chartElem); + useEffect(() => { updatePlot(chart, seriesList.render && seriesList.render.grid); - }, [chart, updatePlot, seriesList.render]); + }, [chart, updatePlot, seriesList.render, dimensions]); useEffect(() => { const colorsSet: Array<[Series, string]> = []; @@ -349,21 +359,24 @@ function Panel({ interval, seriesList, renderComplete, applyFilter }: PanelProps const plotSelectedHandler = useCallback( (event: JQuery.TriggeredEvent, ranges: Ranges) => { - applyFilter({ - timeFieldName: '*', - filters: [ - { - range: { - '*': { - gte: ranges.xaxis.from, - lte: ranges.xaxis.to, + fireEvent({ + name: 'applyFilter', + data: { + timeFieldName: '*', + filters: [ + { + range: { + '*': { + gte: ranges.xaxis.from, + lte: ranges.xaxis.to, + }, }, }, - }, - ], + ], + }, }); }, - [applyFilter] + [fireEvent] ); useEffect(() => { @@ -396,4 +409,6 @@ function Panel({ interval, seriesList, renderComplete, applyFilter }: PanelProps ); } -export { Panel }; +// default export required for React.Lazy +// eslint-disable-next-line import/no-default-export +export { TimelionVisComponent as default }; diff --git a/src/plugins/vis_type_timelion/public/helpers/timelion_request_handler.ts b/src/plugins/vis_type_timelion/public/helpers/timelion_request_handler.ts index 3442f84599fb8..975d12a152d89 100644 --- a/src/plugins/vis_type_timelion/public/helpers/timelion_request_handler.ts +++ b/src/plugins/vis_type_timelion/public/helpers/timelion_request_handler.ts @@ -19,10 +19,10 @@ import { i18n } from '@kbn/i18n'; import { KIBANA_CONTEXT_NAME } from 'src/plugins/expressions/public'; -import { VisParams } from '../../../visualizations/public'; import { TimeRange, Filter, esQuery, Query } from '../../../data/public'; import { TimelionVisDependencies } from '../plugin'; import { getTimezone } from './get_timezone'; +import { TimelionVisParams } from '../timelion_vis_fn'; interface Stats { cacheCount: number; @@ -77,7 +77,7 @@ export function getTimelionRequestHandler({ timeRange: TimeRange; filters: Filter[]; query: Query; - visParams: VisParams; + visParams: TimelionVisParams; }): Promise { const expression = visParams.expression; diff --git a/src/plugins/vis_type_timelion/public/index.scss b/src/plugins/vis_type_timelion/public/index.scss deleted file mode 100644 index 00e9a88520961..0000000000000 --- a/src/plugins/vis_type_timelion/public/index.scss +++ /dev/null @@ -1,3 +0,0 @@ -@import './timelion_vis'; -@import './timelion_editor'; -@import './components/index'; diff --git a/src/plugins/vis_type_timelion/public/plugin.ts b/src/plugins/vis_type_timelion/public/plugin.ts index e2c7efec34c7f..bb8fb6b298a07 100644 --- a/src/plugins/vis_type_timelion/public/plugin.ts +++ b/src/plugins/vis_type_timelion/public/plugin.ts @@ -39,8 +39,8 @@ import { getTimelionVisDefinition } from './timelion_vis_type'; import { setIndexPatterns, setSavedObjectsClient } from './helpers/plugin_services'; import { ConfigSchema } from '../config'; -import './index.scss'; import { getArgValueSuggestions } from './helpers/arg_value_suggestions'; +import { getTimelionVisRenderer } from './timelion_vis_renderer'; /** @internal */ export interface TimelionVisDependencies extends Partial { @@ -93,7 +93,8 @@ export class TimelionVisPlugin }; expressions.registerFunction(() => getTimelionVisualizationConfig(dependencies)); - visualizations.createReactVisualization(getTimelionVisDefinition(dependencies)); + expressions.registerRenderer(getTimelionVisRenderer(dependencies)); + visualizations.createBaseVisualization(getTimelionVisDefinition(dependencies)); return { isUiEnabled: this.initializerContext.config.get().ui.enabled, diff --git a/src/plugins/vis_type_timelion/public/timelion_options.tsx b/src/plugins/vis_type_timelion/public/timelion_options.tsx index dfe017d3a273f..1ef8088c7a714 100644 --- a/src/plugins/vis_type_timelion/public/timelion_options.tsx +++ b/src/plugins/vis_type_timelion/public/timelion_options.tsx @@ -21,30 +21,45 @@ import React, { useCallback } from 'react'; import { EuiPanel } from '@elastic/eui'; import { VisOptionsProps } from 'src/plugins/vis_default_editor/public'; -import { VisParams } from './timelion_vis_fn'; +import { KibanaContextProvider } from '../../kibana_react/public'; + +import { TimelionVisParams } from './timelion_vis_fn'; import { TimelionInterval, TimelionExpressionInput } from './components'; +import { TimelionVisDependencies } from './plugin'; -export type TimelionOptionsProps = VisOptionsProps; +export type TimelionOptionsProps = VisOptionsProps; -function TimelionOptions({ stateParams, setValue, setValidity }: TimelionOptionsProps) { - const setInterval = useCallback((value: VisParams['interval']) => setValue('interval', value), [ - setValue, - ]); +function TimelionOptions({ + services, + stateParams, + setValue, + setValidity, +}: TimelionOptionsProps & { + services: TimelionVisDependencies; +}) { + const setInterval = useCallback( + (value: TimelionVisParams['interval']) => setValue('interval', value), + [setValue] + ); const setExpressionInput = useCallback( - (value: VisParams['expression']) => setValue('expression', value), + (value: TimelionVisParams['expression']) => setValue('expression', value), [setValue] ); return ( - - - - + + + + + + ); } -export { TimelionOptions }; +// default export required for React.Lazy +// eslint-disable-next-line import/no-default-export +export { TimelionOptions as default }; diff --git a/src/plugins/vis_type_timelion/public/timelion_vis_fn.ts b/src/plugins/vis_type_timelion/public/timelion_vis_fn.ts index d3c6ca5d90371..a0cd410e197ff 100644 --- a/src/plugins/vis_type_timelion/public/timelion_vis_fn.ts +++ b/src/plugins/vis_type_timelion/public/timelion_vis_fn.ts @@ -24,29 +24,39 @@ import { KibanaContext, Render, } from 'src/plugins/expressions/public'; -import { getTimelionRequestHandler } from './helpers/timelion_request_handler'; +import { + getTimelionRequestHandler, + TimelionSuccessResponse, +} from './helpers/timelion_request_handler'; import { TIMELION_VIS_NAME } from './timelion_vis_type'; import { TimelionVisDependencies } from './plugin'; import { Filter, Query, TimeRange } from '../../data/common'; type Input = KibanaContext | null; -type Output = Promise>; +type Output = Promise>; interface Arguments { expression: string; interval: string; } -interface RenderValue { - visData: Input; +export interface TimelionRenderValue { + visData: TimelionSuccessResponse; visType: 'timelion'; - visParams: VisParams; + visParams: TimelionVisParams; } -export type VisParams = Arguments; +export type TimelionVisParams = Arguments; + +export type TimelionExpressionFunctionDefinition = ExpressionFunctionDefinition< + 'timelion_vis', + Input, + Arguments, + Output +>; export const getTimelionVisualizationConfig = ( dependencies: TimelionVisDependencies -): ExpressionFunctionDefinition<'timelion_vis', Input, Arguments, Output> => ({ +): TimelionExpressionFunctionDefinition => ({ name: 'timelion_vis', type: 'render', inputTypes: ['kibana_context', 'null'], @@ -82,7 +92,7 @@ export const getTimelionVisualizationConfig = ( return { type: 'render', - as: 'visualization', + as: 'timelion_vis', value: { visParams, visType: TIMELION_VIS_NAME, diff --git a/src/plugins/vis_type_timelion/public/timelion_vis_renderer.tsx b/src/plugins/vis_type_timelion/public/timelion_vis_renderer.tsx new file mode 100644 index 0000000000000..13a279138a8e4 --- /dev/null +++ b/src/plugins/vis_type_timelion/public/timelion_vis_renderer.tsx @@ -0,0 +1,65 @@ +/* + * 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, { lazy } from 'react'; +import { render, unmountComponentAtNode } from 'react-dom'; + +import { ExpressionRenderDefinition } from 'src/plugins/expressions'; +import { KibanaContextProvider } from '../../kibana_react/public'; +import { VisualizationContainer } from '../../visualizations/public'; +import { TimelionVisDependencies } from './plugin'; +import { TimelionRenderValue } from './timelion_vis_fn'; +// @ts-ignore +const TimelionVisComponent = lazy(() => import('./components/timelion_vis_component')); + +export const getTimelionVisRenderer: ( + deps: TimelionVisDependencies +) => ExpressionRenderDefinition = (deps) => ({ + name: 'timelion_vis', + displayName: 'Timelion visualization', + reuseDomNode: true, + render: (domNode, { visData, visParams }, handlers) => { + handlers.onDestroy(() => { + unmountComponentAtNode(domNode); + }); + + const [seriesList] = visData.sheet; + const showNoResult = !seriesList || !seriesList.list.length; + + if (showNoResult) { + // send the render complete event when there is no data to show + // to notify that a chart is updated + handlers.done(); + } + + render( + + + + + , + domNode + ); + }, +}); diff --git a/src/plugins/vis_type_timelion/public/timelion_vis_type.tsx b/src/plugins/vis_type_timelion/public/timelion_vis_type.tsx index 8fdde175708e0..a5425478e46ac 100644 --- a/src/plugins/vis_type_timelion/public/timelion_vis_type.tsx +++ b/src/plugins/vis_type_timelion/public/timelion_vis_type.tsx @@ -17,18 +17,19 @@ * under the License. */ -import React from 'react'; +import React, { lazy } from 'react'; import { i18n } from '@kbn/i18n'; -import { KibanaContextProvider } from '../../kibana_react/public'; import { DefaultEditorSize } from '../../vis_default_editor/public'; import { getTimelionRequestHandler } from './helpers/timelion_request_handler'; -import { TimelionVisComponent, TimelionVisComponentProp } from './components'; -import { TimelionOptions, TimelionOptionsProps } from './timelion_options'; +import { TimelionOptionsProps } from './timelion_options'; import { TimelionVisDependencies } from './plugin'; +import { toExpressionAst } from './to_ast'; import { VIS_EVENT_TO_TRIGGER } from '../../visualizations/public'; +const TimelionOptions = lazy(() => import('./timelion_options')); + export const TIMELION_VIS_NAME = 'timelion'; export function getTimelionVisDefinition(dependencies: TimelionVisDependencies) { @@ -48,21 +49,15 @@ export function getTimelionVisDefinition(dependencies: TimelionVisDependencies) expression: '.es(*)', interval: 'auto', }, - component: (props: TimelionVisComponentProp) => ( - - - - ), }, editorConfig: { optionsTemplate: (props: TimelionOptionsProps) => ( - - - + ), defaultSize: DefaultEditorSize.MEDIUM, }, requestHandler: timelionRequestHandler, + toExpressionAst, responseHandler: 'none', inspectorAdapters: {}, getSupportedTriggers: () => { diff --git a/src/plugins/vis_type_timelion/public/components/chart.tsx b/src/plugins/vis_type_timelion/public/to_ast.test.ts similarity index 60% rename from src/plugins/vis_type_timelion/public/components/chart.tsx rename to src/plugins/vis_type_timelion/public/to_ast.test.ts index 15a376d4e9638..8a9d4b83f94d2 100644 --- a/src/plugins/vis_type_timelion/public/components/chart.tsx +++ b/src/plugins/vis_type_timelion/public/to_ast.test.ts @@ -17,25 +17,24 @@ * under the License. */ -import React from 'react'; +import { Vis } from 'src/plugins/visualizations/public'; +import { TimelionVisParams } from './timelion_vis_fn'; +import { toExpressionAst } from './to_ast'; -import { Sheet } from '../helpers/timelion_request_handler'; -import { Panel } from './panel'; -import { ExprVisAPIEvents } from '../../../visualizations/public'; +describe('timelion vis toExpressionAst function', () => { + let vis: Vis; -interface ChartComponentProp { - applyFilter: ExprVisAPIEvents['applyFilter']; - interval: string; - renderComplete(): void; - seriesList: Sheet; -} + beforeEach(() => { + vis = { + params: { + expression: '.es(*)', + interval: 'auto', + }, + } as any; + }); -function ChartComponent(props: ChartComponentProp) { - if (!props.seriesList) { - return null; - } - - return ; -} - -export { ChartComponent }; + it('should match basic snapshot', () => { + const actual = toExpressionAst(vis); + expect(actual).toMatchSnapshot(); + }); +}); diff --git a/src/plugins/vis_type_timelion/public/to_ast.ts b/src/plugins/vis_type_timelion/public/to_ast.ts new file mode 100644 index 0000000000000..7044bbf4e5831 --- /dev/null +++ b/src/plugins/vis_type_timelion/public/to_ast.ts @@ -0,0 +1,37 @@ +/* + * 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 { buildExpression, buildExpressionFunction } from '../../expressions/public'; +import { Vis } from '../../visualizations/public'; +import { TimelionExpressionFunctionDefinition, TimelionVisParams } from './timelion_vis_fn'; + +const escapeString = (data: string): string => { + return data.replace(/\\/g, `\\\\`).replace(/'/g, `\\'`); +}; + +export const toExpressionAst = (vis: Vis) => { + const timelion = buildExpressionFunction('timelion_vis', { + expression: escapeString(vis.params.expression), + interval: escapeString(vis.params.interval), + }); + + const ast = buildExpression([timelion]); + + return ast.toAst(); +}; diff --git a/src/plugins/visualizations/public/legacy/__snapshots__/build_pipeline.test.ts.snap b/src/plugins/visualizations/public/legacy/__snapshots__/build_pipeline.test.ts.snap index 654ac78cdaa02..c0c37e2262f9c 100644 --- a/src/plugins/visualizations/public/legacy/__snapshots__/build_pipeline.test.ts.snap +++ b/src/plugins/visualizations/public/legacy/__snapshots__/build_pipeline.test.ts.snap @@ -24,6 +24,4 @@ exports[`visualize loader pipeline helpers: build pipeline buildPipelineVisFunct exports[`visualize loader pipeline helpers: build pipeline buildPipelineVisFunction handles tile_map function 1`] = `"tilemap visConfig='{\\"metric\\":{},\\"dimensions\\":{\\"metric\\":{\\"accessor\\":0,\\"label\\":\\"\\",\\"format\\":{},\\"params\\":{},\\"aggType\\":\\"\\"},\\"geohash\\":1,\\"geocentroid\\":3}}' "`; -exports[`visualize loader pipeline helpers: build pipeline buildPipelineVisFunction handles timelion function 1`] = `"timelion_vis expression='foo' interval='bar' "`; - exports[`visualize loader pipeline helpers: build pipeline buildPipelineVisFunction handles vega function 1`] = `"vega spec='this is a test' "`; diff --git a/src/plugins/visualizations/public/legacy/build_pipeline.test.ts b/src/plugins/visualizations/public/legacy/build_pipeline.test.ts index 8cac76726b13b..a1fea45f51781 100644 --- a/src/plugins/visualizations/public/legacy/build_pipeline.test.ts +++ b/src/plugins/visualizations/public/legacy/build_pipeline.test.ts @@ -117,12 +117,6 @@ describe('visualize loader pipeline helpers: build pipeline', () => { expect(actual).toMatchSnapshot(); }); - it('handles timelion function', () => { - const params = { expression: 'foo', interval: 'bar' }; - const actual = buildPipelineVisFunction.timelion(params, schemasDef, uiState); - expect(actual).toMatchSnapshot(); - }); - describe('handles table function', () => { it('without splits or buckets', () => { const params = { foo: 'bar' }; diff --git a/src/plugins/visualizations/public/legacy/build_pipeline.ts b/src/plugins/visualizations/public/legacy/build_pipeline.ts index dcc384a191858..79e1c1cca2155 100644 --- a/src/plugins/visualizations/public/legacy/build_pipeline.ts +++ b/src/plugins/visualizations/public/legacy/build_pipeline.ts @@ -263,11 +263,6 @@ export const buildPipelineVisFunction: BuildPipelineVisFunction = { const paramsArray = [paramsJson, uiStateJson].filter((param) => Boolean(param)); return `tsvb ${paramsArray.join(' ')}`; }, - timelion: (params) => { - const expression = prepareString('expression', params.expression); - const interval = prepareString('interval', params.interval); - return `timelion_vis ${expression}${interval}`; - }, table: (params, schemas) => { const visConfig = { ...params, From 21353403b8bc84bf84971c5b92fb2fcaa09b2f59 Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Thu, 1 Oct 2020 15:16:17 +0100 Subject: [PATCH 094/142] [ML] Improve calendar ics file parsing (#78986) --- .../settings/calendars/edit/import_modal/utils.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/import_modal/utils.js b/x-pack/plugins/ml/public/application/settings/calendars/edit/import_modal/utils.js index 07bf49ea6d7db..e93abc8eb67b5 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/edit/import_modal/utils.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/import_modal/utils.js @@ -42,7 +42,10 @@ export function filterEvents(events) { } export function parseICSFile(data) { - const cal = icalendar.parse_calendar(data); + // force a new line char on the end of the data + // icalendar must split on new lines and so parsing fails + // if there isn't at least one new line at the end. + const cal = icalendar.parse_calendar(data + '\n'); return createEvents(cal); } From bad59f4fb4cc1c2c2420b6f81cc1fde18ae44721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20Haro?= Date: Thu, 1 Oct 2020 15:16:49 +0100 Subject: [PATCH 095/142] [Usage Collection] [schema] `maps` (#78952) --- x-pack/.telemetryrc.json | 3 +- .../maps_telemetry/collectors/register.ts | 34 ++++++- .../collectors/register_collector.test.js | 1 + .../server/maps_telemetry/maps_telemetry.ts | 82 ++++++++++------ .../schema/xpack_plugins.json | 93 +++++++++++++++++++ 5 files changed, 180 insertions(+), 33 deletions(-) diff --git a/x-pack/.telemetryrc.json b/x-pack/.telemetryrc.json index d0e56bbed9f47..c7430666c538f 100644 --- a/x-pack/.telemetryrc.json +++ b/x-pack/.telemetryrc.json @@ -4,7 +4,6 @@ "exclude": [ "plugins/actions/server/usage/actions_usage_collector.ts", "plugins/alerts/server/usage/alerts_usage_collector.ts", - "plugins/apm/server/lib/apm_telemetry/index.ts", - "plugins/maps/server/maps_telemetry/collectors/register.ts" + "plugins/apm/server/lib/apm_telemetry/index.ts" ] } diff --git a/x-pack/plugins/maps/server/maps_telemetry/collectors/register.ts b/x-pack/plugins/maps/server/maps_telemetry/collectors/register.ts index f54776f5ab629..e0ab2cf77f084 100644 --- a/x-pack/plugins/maps/server/maps_telemetry/collectors/register.ts +++ b/x-pack/plugins/maps/server/maps_telemetry/collectors/register.ts @@ -5,7 +5,7 @@ */ import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; -import { getMapsTelemetry } from '../maps_telemetry'; +import { getMapsTelemetry, MapsUsage } from '../maps_telemetry'; import { MapsConfigType } from '../../../config'; export function registerMapsUsageCollector( @@ -16,10 +16,40 @@ export function registerMapsUsageCollector( return; } - const mapsUsageCollector = usageCollection.makeUsageCollector({ + const mapsUsageCollector = usageCollection.makeUsageCollector({ type: 'maps', isReady: () => true, fetch: async () => await getMapsTelemetry(config), + schema: { + settings: { + showMapVisualizationTypes: { type: 'boolean' }, + }, + indexPatternsWithGeoFieldCount: { type: 'long' }, + indexPatternsWithGeoPointFieldCount: { type: 'long' }, + indexPatternsWithGeoShapeFieldCount: { type: 'long' }, + geoShapeAggLayersCount: { type: 'long' }, + mapsTotalCount: { type: 'long' }, + timeCaptured: { type: 'date' }, + attributesPerMap: { + dataSourcesCount: { + min: { type: 'long' }, + max: { type: 'long' }, + avg: { type: 'float' }, + }, + layersCount: { + min: { type: 'long' }, + max: { type: 'long' }, + avg: { type: 'float' }, + }, + // TODO: Find out all the possible values for DYNAMIC_KEY or reformat into an array + layerTypesCount: { + DYNAMIC_KEY: { min: { type: 'long' }, max: { type: 'long' }, avg: { type: 'float' } }, + }, + emsVectorLayersCount: { + DYNAMIC_KEY: { min: { type: 'long' }, max: { type: 'long' }, avg: { type: 'float' } }, + }, + }, + }, }); usageCollection.registerCollector(mapsUsageCollector); diff --git a/x-pack/plugins/maps/server/maps_telemetry/collectors/register_collector.test.js b/x-pack/plugins/maps/server/maps_telemetry/collectors/register_collector.test.js index 33eb33100acdf..61f4629b00712 100644 --- a/x-pack/plugins/maps/server/maps_telemetry/collectors/register_collector.test.js +++ b/x-pack/plugins/maps/server/maps_telemetry/collectors/register_collector.test.js @@ -33,6 +33,7 @@ describe('buildCollectorObj#fetch', () => { type: expect.any(String), isReady: expect.any(Function), fetch: expect.any(Function), + schema: expect.any(Object), }); }); }); diff --git a/x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts b/x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts index 2af6413da039b..56ccc7baea283 100644 --- a/x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts +++ b/x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts @@ -5,12 +5,7 @@ */ import _ from 'lodash'; -import { - SavedObject, - SavedObjectAttribute, - SavedObjectAttributes, - SavedObjectsClientContract, -} from 'kibana/server'; +import { ISavedObjectsRepository, SavedObject, SavedObjectsClientContract } from 'kibana/server'; import { IFieldType, IndexPatternAttributes } from 'src/plugins/data/public'; import { ES_GEO_FIELD_TYPE, @@ -25,11 +20,14 @@ import { ESSearchSourceDescriptor, LayerDescriptor, } from '../../common/descriptor_types'; -import { MapSavedObject } from '../../common/map_saved_object_type'; -// @ts-ignore +import { MapSavedObject, MapSavedObjectAttributes } from '../../common/map_saved_object_type'; import { getInternalRepository } from '../kibana_server_services'; import { MapsConfigType } from '../../config'; +interface Settings { + showMapVisualizationTypes: boolean; +} + interface IStats { [key: string]: { min: number; @@ -42,6 +40,30 @@ interface ILayerTypeCount { [key: string]: number; } +export interface MapsUsage { + settings: Settings; + indexPatternsWithGeoFieldCount: number; + indexPatternsWithGeoPointFieldCount: number; + indexPatternsWithGeoShapeFieldCount: number; + geoShapeAggLayersCount: number; + mapsTotalCount: number; + timeCaptured: string; + attributesPerMap: { + dataSourcesCount: { + min: number; + max: number; + avg: number; + }; + layersCount: { + min: number; + max: number; + avg: number; + }; + layerTypesCount: IStats; + emsVectorLayersCount: IStats; + }; +} + function getUniqueLayerCounts(layerCountsList: ILayerTypeCount[], mapsCount: number) { const uniqueLayerTypes = _.uniq(_.flatten(layerCountsList.map((lTypes) => Object.keys(lTypes)))); @@ -213,8 +235,8 @@ export function buildMapsTelemetry({ }: { mapSavedObjects: MapSavedObject[]; indexPatternSavedObjects: Array>; - settings: SavedObjectAttribute; -}): SavedObjectAttributes { + settings: Settings; +}): MapsUsage { const layerLists: LayerDescriptor[][] = getLayerLists(mapSavedObjects); const mapsCount = layerLists.length; @@ -256,14 +278,14 @@ export function buildMapsTelemetry({ attributesPerMap: { // Count of data sources per map dataSourcesCount: { - min: dataSourcesCount.length ? _.min(dataSourcesCount) : 0, - max: dataSourcesCount.length ? _.max(dataSourcesCount) : 0, + min: dataSourcesCount.length ? _.min(dataSourcesCount)! : 0, + max: dataSourcesCount.length ? _.max(dataSourcesCount)! : 0, avg: dataSourcesCountSum ? layersCountSum / mapsCount : 0, }, // Total count of layers per map layersCount: { - min: layersCount.length ? _.min(layersCount) : 0, - max: layersCount.length ? _.max(layersCount) : 0, + min: layersCount.length ? _.min(layersCount)! : 0, + max: layersCount.length ? _.max(layersCount)! : 0, avg: layersCountSum ? layersCountSum / mapsCount : 0, }, // Count of layers by type @@ -277,27 +299,29 @@ export function buildMapsTelemetry({ }, }; } -async function getMapSavedObjects(savedObjectsClient: SavedObjectsClientContract) { - const mapsSavedObjects = await savedObjectsClient.find({ type: MAP_SAVED_OBJECT_TYPE }); - return _.get(mapsSavedObjects, 'saved_objects', []); +async function getMapSavedObjects( + savedObjectsClient: SavedObjectsClientContract | ISavedObjectsRepository +) { + const mapsSavedObjects = await savedObjectsClient.find({ + type: MAP_SAVED_OBJECT_TYPE, + }); + return mapsSavedObjects.saved_objects; } -async function getIndexPatternSavedObjects(savedObjectsClient: SavedObjectsClientContract) { - const indexPatternSavedObjects = await savedObjectsClient.find({ type: 'index-pattern' }); - return _.get(indexPatternSavedObjects, 'saved_objects', []); +async function getIndexPatternSavedObjects( + savedObjectsClient: SavedObjectsClientContract | ISavedObjectsRepository +) { + const indexPatternSavedObjects = await savedObjectsClient.find({ + type: 'index-pattern', + }); + return indexPatternSavedObjects.saved_objects; } export async function getMapsTelemetry(config: MapsConfigType) { const savedObjectsClient = getInternalRepository(); - // @ts-ignore - const mapSavedObjects: MapSavedObject[] = await getMapSavedObjects(savedObjectsClient); - const indexPatternSavedObjects: Array> = (await getIndexPatternSavedObjects( - // @ts-ignore - savedObjectsClient - )) as Array>; - const settings: SavedObjectAttribute = { + const mapSavedObjects = await getMapSavedObjects(savedObjectsClient); + const indexPatternSavedObjects = await getIndexPatternSavedObjects(savedObjectsClient); + const settings = { showMapVisualizationTypes: config.showMapVisualizationTypes, }; return buildMapsTelemetry({ mapSavedObjects, indexPatternSavedObjects, settings }); diff --git a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json index 816d6828381ee..b08585066f100 100644 --- a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json +++ b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json @@ -679,6 +679,99 @@ } } }, + "maps": { + "properties": { + "settings": { + "properties": { + "showMapVisualizationTypes": { + "type": "boolean" + } + } + }, + "indexPatternsWithGeoFieldCount": { + "type": "long" + }, + "indexPatternsWithGeoPointFieldCount": { + "type": "long" + }, + "indexPatternsWithGeoShapeFieldCount": { + "type": "long" + }, + "geoShapeAggLayersCount": { + "type": "long" + }, + "mapsTotalCount": { + "type": "long" + }, + "timeCaptured": { + "type": "date" + }, + "attributesPerMap": { + "properties": { + "dataSourcesCount": { + "properties": { + "min": { + "type": "long" + }, + "max": { + "type": "long" + }, + "avg": { + "type": "float" + } + } + }, + "layersCount": { + "properties": { + "min": { + "type": "long" + }, + "max": { + "type": "long" + }, + "avg": { + "type": "float" + } + } + }, + "layerTypesCount": { + "properties": { + "DYNAMIC_KEY": { + "properties": { + "min": { + "type": "long" + }, + "max": { + "type": "long" + }, + "avg": { + "type": "float" + } + } + } + } + }, + "emsVectorLayersCount": { + "properties": { + "DYNAMIC_KEY": { + "properties": { + "min": { + "type": "long" + }, + "max": { + "type": "long" + }, + "avg": { + "type": "float" + } + } + } + } + } + } + } + } + }, "mlTelemetry": { "properties": { "file_data_visualizer": { From 31efa1ab5b4d68b681a6342708a39b2359c589e8 Mon Sep 17 00:00:00 2001 From: Quynh Nguyen <43350163+qn895@users.noreply.github.com> Date: Thu, 1 Oct 2020 09:39:17 -0500 Subject: [PATCH 096/142] [ML] Add feature importance summary charts (#78238) Co-authored-by: Elastic Machine --- .../ml/common/types/feature_importance.ts | 39 +++ x-pack/plugins/ml/common/types/inference.ts | 2 + .../decision_path_chart.tsx | 12 +- .../decision_path_classification.tsx | 1 + .../common/use_results_view_config.ts | 37 +++ .../classification_exploration.tsx | 3 +- .../exploration_page_wrapper.tsx | 12 + .../regression_exploration.tsx | 2 + .../feature_importance_summary.tsx | 264 ++++++++++++++++++ .../services/ml_api_service/inference.ts | 1 + .../server/routes/schemas/inference_schema.ts | 1 + 11 files changed, 370 insertions(+), 4 deletions(-) create mode 100644 x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/total_feature_importance_summary/feature_importance_summary.tsx diff --git a/x-pack/plugins/ml/common/types/feature_importance.ts b/x-pack/plugins/ml/common/types/feature_importance.ts index d2ab9f6c58608..4f5619cf3ab7b 100644 --- a/x-pack/plugins/ml/common/types/feature_importance.ts +++ b/x-pack/plugins/ml/common/types/feature_importance.ts @@ -21,3 +21,42 @@ export interface TopClass { } export type TopClasses = TopClass[]; + +export interface ClassFeatureImportanceSummary { + class_name: string; + importance: { + max: number; + min: number; + mean_magnitude: number; + }; +} +export interface ClassificationTotalFeatureImportance { + feature_name: string; + classes: ClassFeatureImportanceSummary[]; +} + +export interface RegressionFeatureImportanceSummary { + max: number; + min: number; + mean_magnitude: number; +} + +export interface RegressionTotalFeatureImportance { + feature_name: string; + importance: RegressionFeatureImportanceSummary; +} +export type TotalFeatureImportance = + | ClassificationTotalFeatureImportance + | RegressionTotalFeatureImportance; + +export function isClassificationTotalFeatureImportance( + summary: ClassificationTotalFeatureImportance | RegressionTotalFeatureImportance +): summary is ClassificationTotalFeatureImportance { + return (summary as ClassificationTotalFeatureImportance).classes !== undefined; +} + +export function isRegressionTotalFeatureImportance( + summary: ClassificationTotalFeatureImportance | RegressionTotalFeatureImportance +): summary is RegressionTotalFeatureImportance { + return (summary as RegressionTotalFeatureImportance).importance !== undefined; +} diff --git a/x-pack/plugins/ml/common/types/inference.ts b/x-pack/plugins/ml/common/types/inference.ts index c70ee264e6fc8..ce2cfb1f78fd9 100644 --- a/x-pack/plugins/ml/common/types/inference.ts +++ b/x-pack/plugins/ml/common/types/inference.ts @@ -5,6 +5,7 @@ */ import { DataFrameAnalyticsConfig } from './data_frame_analytics'; +import { TotalFeatureImportance } from './feature_importance'; export interface IngestStats { count: number; @@ -54,6 +55,7 @@ export interface ModelConfigResponse { | { analytics_config: DataFrameAnalyticsConfig; input: any; + total_feature_importance?: TotalFeatureImportance[]; } | Record; model_id: string; diff --git a/x-pack/plugins/ml/public/application/components/data_grid/feature_importance/decision_path_chart.tsx b/x-pack/plugins/ml/public/application/components/data_grid/feature_importance/decision_path_chart.tsx index b546ac1db57dd..e3ab0abc18e71 100644 --- a/x-pack/plugins/ml/public/application/components/data_grid/feature_importance/decision_path_chart.tsx +++ b/x-pack/plugins/ml/public/application/components/data_grid/feature_importance/decision_path_chart.tsx @@ -74,6 +74,7 @@ interface DecisionPathChartProps { baseline?: number; minDomain: number | undefined; maxDomain: number | undefined; + showValues?: boolean; } const DECISION_PATH_MARGIN = 125; @@ -87,6 +88,7 @@ export const DecisionPathChart = ({ minDomain, maxDomain, baseline, + showValues, }: DecisionPathChartProps) => { // adjust the height so it's compact for items with more features const baselineData: LineAnnotationDatum[] = useMemo( @@ -105,9 +107,12 @@ export const DecisionPathChart = ({ ], [baseline] ); - // guarantee up to num_precision significant digits - // without having it in scientific notation - const tickFormatter = useCallback((d) => Number(d.toPrecision(NUM_PRECISION)).toString(), []); + // if regression, guarantee up to num_precision significant digits without having it in scientific notation + // if classification, hide the numeric values since we only want to show the path + const tickFormatter = useCallback( + (d) => (showValues === false ? '' : Number(d.toPrecision(NUM_PRECISION)).toString()), + [] + ); return ( = ( predictionFieldName={predictionFieldName} minDomain={domain.minDomain} maxDomain={domain.maxDomain} + showValues={false} /> ); diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/common/use_results_view_config.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/common/use_results_view_config.ts index b0e73edff7476..82f431c50fb66 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/common/use_results_view_config.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/common/use_results_view_config.ts @@ -19,9 +19,18 @@ import { DataFrameAnalyticsConfig } from '../common'; import { isGetDataFrameAnalyticsStatsResponseOk } from '../pages/analytics_management/services/analytics_service/get_analytics'; import { DATA_FRAME_TASK_STATE } from '../pages/analytics_management/components/analytics_list/common'; +import { useInferenceApiService } from '../../services/ml_api_service/inference'; +import { TotalFeatureImportance } from '../../../../common/types/feature_importance'; +import { getToastNotificationService } from '../../services/toast_notification_service'; +import { + isClassificationAnalysis, + isRegressionAnalysis, +} from '../../../../common/util/analytics_utils'; export const useResultsViewConfig = (jobId: string) => { const mlContext = useMlContext(); + const inferenceApiService = useInferenceApiService(); + const [indexPattern, setIndexPattern] = useState(undefined); const [isInitialized, setIsInitialized] = useState(false); const [needsDestIndexPattern, setNeedsDestIndexPattern] = useState(false); @@ -33,6 +42,10 @@ export const useResultsViewConfig = (jobId: string) => { const [jobConfigErrorMessage, setJobConfigErrorMessage] = useState(undefined); const [jobStatus, setJobStatus] = useState(undefined); + const [totalFeatureImportance, setTotalFeatureImportance] = useState< + TotalFeatureImportance[] | undefined + >(undefined); + // get analytics configuration, index pattern and field caps useEffect(() => { (async function () { @@ -40,6 +53,7 @@ export const useResultsViewConfig = (jobId: string) => { try { const analyticsConfigs = await ml.dataFrameAnalytics.getDataFrameAnalytics(jobId); + const analyticsStats = await ml.dataFrameAnalytics.getDataFrameAnalyticsStats(jobId); const stats = isGetDataFrameAnalyticsStatsResponseOk(analyticsStats) ? analyticsStats.data_frame_analytics[0] @@ -54,6 +68,28 @@ export const useResultsViewConfig = (jobId: string) => { analyticsConfigs.data_frame_analytics.length > 0 ) { const jobConfigUpdate = analyticsConfigs.data_frame_analytics[0]; + // don't fetch the total feature importance if it's outlier_detection + if ( + isClassificationAnalysis(jobConfigUpdate.analysis) || + isRegressionAnalysis(jobConfigUpdate.analysis) + ) { + try { + const inferenceModels = await inferenceApiService.getInferenceModel(`${jobId}*`, { + include: 'total_feature_importance', + }); + const inferenceModel = inferenceModels.find( + (model) => model.metadata?.analytics_config?.id === jobId + ); + if ( + Array.isArray(inferenceModel?.metadata?.total_feature_importance) === true && + inferenceModel?.metadata?.total_feature_importance.length > 0 + ) { + setTotalFeatureImportance(inferenceModel?.metadata?.total_feature_importance); + } + } catch (e) { + getToastNotificationService().displayErrorToast(e); + } + } try { const destIndex = Array.isArray(jobConfigUpdate.dest.index) @@ -103,5 +139,6 @@ export const useResultsViewConfig = (jobId: string) => { jobConfigErrorMessage, jobStatus, needsDestIndexPattern, + totalFeatureImportance, }; }; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/classification_exploration.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/classification_exploration.tsx index 28ef3898cde97..833b4a78178d4 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/classification_exploration.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/classification_exploration.tsx @@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n'; import { ExplorationPageWrapper } from '../exploration_page_wrapper'; import { EvaluatePanel } from './evaluate_panel'; - +import { FeatureImportanceSummaryPanel } from '../total_feature_importance_summary/feature_importance_summary'; interface Props { jobId: string; defaultIsTraining?: boolean; @@ -27,6 +27,7 @@ export const ClassificationExploration: FC = ({ jobId, defaultIsTraining } )} EvaluatePanel={EvaluatePanel} + FeatureImportanceSummaryPanel={FeatureImportanceSummaryPanel} defaultIsTraining={defaultIsTraining} /> ); diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/exploration_page_wrapper/exploration_page_wrapper.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/exploration_page_wrapper/exploration_page_wrapper.tsx index f3fc65d264e62..6b1b3fc1bb47f 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/exploration_page_wrapper/exploration_page_wrapper.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/exploration_page_wrapper/exploration_page_wrapper.tsx @@ -16,6 +16,7 @@ import { DATA_FRAME_TASK_STATE } from '../../../analytics_management/components/ import { ExplorationResultsTable } from '../exploration_results_table'; import { JobConfigErrorCallout } from '../job_config_error_callout'; import { LoadingPanel } from '../loading_panel'; +import { FeatureImportanceSummaryPanelProps } from '../total_feature_importance_summary/feature_importance_summary'; export interface EvaluatePanelProps { jobConfig: DataFrameAnalyticsConfig; @@ -27,6 +28,7 @@ interface Props { jobId: string; title: string; EvaluatePanel: FC; + FeatureImportanceSummaryPanel: FC; defaultIsTraining?: boolean; } @@ -34,6 +36,7 @@ export const ExplorationPageWrapper: FC = ({ jobId, title, EvaluatePanel, + FeatureImportanceSummaryPanel, defaultIsTraining, }) => { const { @@ -45,6 +48,7 @@ export const ExplorationPageWrapper: FC = ({ jobConfigErrorMessage, jobStatus, needsDestIndexPattern, + totalFeatureImportance, } = useResultsViewConfig(jobId); const [searchQuery, setSearchQuery] = useState(defaultSearchQuery); @@ -63,6 +67,14 @@ export const ExplorationPageWrapper: FC = ({ {isLoadingJobConfig === false && jobConfig !== undefined && isInitialized === true && ( )} + {isLoadingJobConfig === true && totalFeatureImportance === undefined && } + {isLoadingJobConfig === false && totalFeatureImportance !== undefined && ( + <> + + + + )} + {isLoadingJobConfig === true && jobConfig === undefined && } {isLoadingJobConfig === false && diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/regression_exploration.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/regression_exploration.tsx index 40279ecc6ffa4..6118207c83fcb 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/regression_exploration.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/regression_exploration.tsx @@ -11,6 +11,7 @@ import { i18n } from '@kbn/i18n'; import { ExplorationPageWrapper } from '../exploration_page_wrapper'; import { EvaluatePanel } from './evaluate_panel'; +import { FeatureImportanceSummaryPanel } from '../total_feature_importance_summary/feature_importance_summary'; interface Props { jobId: string; @@ -25,6 +26,7 @@ export const RegressionExploration: FC = ({ jobId, defaultIsTraining }) = values: { jobId }, })} EvaluatePanel={EvaluatePanel} + FeatureImportanceSummaryPanel={FeatureImportanceSummaryPanel} defaultIsTraining={defaultIsTraining} /> ); diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/total_feature_importance_summary/feature_importance_summary.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/total_feature_importance_summary/feature_importance_summary.tsx new file mode 100644 index 0000000000000..f7ac717caef2f --- /dev/null +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/total_feature_importance_summary/feature_importance_summary.tsx @@ -0,0 +1,264 @@ +/* + * 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, { FC, useCallback, useMemo } from 'react'; +import { + EuiButtonEmpty, + EuiFlexGroup, + EuiFlexItem, + EuiIconTip, + EuiPanel, + EuiSpacer, + EuiTitle, +} from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { + Chart, + Settings, + Axis, + ScaleType, + Position, + BarSeries, + RecursivePartial, + AxisStyle, + PartialTheme, + BarSeriesSpec, +} from '@elastic/charts'; +import { i18n } from '@kbn/i18n'; +import euiVars from '@elastic/eui/dist/eui_theme_light.json'; +import { + TotalFeatureImportance, + isClassificationTotalFeatureImportance, + isRegressionTotalFeatureImportance, + RegressionTotalFeatureImportance, + ClassificationTotalFeatureImportance, +} from '../../../../../../../common/types/feature_importance'; + +import { useMlKibana } from '../../../../../contexts/kibana'; +const { euiColorMediumShade } = euiVars; +const axisColor = euiColorMediumShade; + +const axes: RecursivePartial = { + axisLine: { + stroke: axisColor, + }, + tickLabel: { + fontSize: 12, + fill: axisColor, + }, + tickLine: { + stroke: axisColor, + }, + gridLine: { + horizontal: { + dash: [1, 2], + }, + vertical: { + strokeWidth: 0, + }, + }, +}; +const theme: PartialTheme = { + axes, + legend: { + /** + * Added buffer between label and value. + * Smaller values render a more compact legend + */ + spacingBuffer: 100, + }, +}; + +export interface FeatureImportanceSummaryPanelProps { + totalFeatureImportance: TotalFeatureImportance[]; +} + +const tooltipContent = i18n.translate( + 'xpack.ml.dataframe.analytics.exploration.featureImportanceSummaryTooltipContent', + { + defaultMessage: + 'Total feature importance values indicate how significantly a field affects the predictions across all the training data.', + } +); + +const calculateTotalMeanImportance = (featureClass: ClassificationTotalFeatureImportance) => { + return featureClass.classes.reduce( + (runningSum, fc) => runningSum + fc.importance.mean_magnitude, + 0 + ); +}; + +export const FeatureImportanceSummaryPanel: FC = ({ + totalFeatureImportance, +}) => { + const { + services: { docLinks }, + } = useMlKibana(); + + const [plotData, barSeriesSpec, showLegend, chartHeight] = useMemo(() => { + let sortedData: Array<{ + featureName: string; + meanImportance: number; + className?: string; + }> = []; + let _barSeriesSpec: Partial = { + xAccessor: 'featureName', + yAccessors: ['meanImportance'], + name: i18n.translate( + 'xpack.ml.dataframe.analytics.exploration.featureImportanceYSeriesName', + { + defaultMessage: 'magnitude', + } + ) as string, + }; + let classificationType: + | 'binary_classification' + | 'multiclass_classification' + | 'regression' + | '' = ''; + if (totalFeatureImportance.length < 1) { + return [sortedData, _barSeriesSpec]; + } + + if (isClassificationTotalFeatureImportance(totalFeatureImportance[0])) { + // if binary classification + if (totalFeatureImportance[0].classes.length === 2) { + classificationType = 'binary_classification'; + sortedData = (totalFeatureImportance as ClassificationTotalFeatureImportance[]) + .map((d) => { + return { + featureName: d.feature_name, + // in case of binary classification, both classes will have the same mean importance + meanImportance: d.classes[0].importance.mean_magnitude, + }; + }) + .sort((a, b) => b.meanImportance - a.meanImportance); + } + + // if multiclass classification + // stack them in order of increasing importance + // so for each feature, biggest importance on the left to smallest importance on the right + if (totalFeatureImportance[0].classes.length > 2) { + classificationType = 'multiclass_classification'; + + (totalFeatureImportance as ClassificationTotalFeatureImportance[]) + .sort( + (prevFeature, currentFeature) => + calculateTotalMeanImportance(currentFeature) - + calculateTotalMeanImportance(prevFeature) + ) + .forEach((feature) => { + const sortedFeatureClass = feature.classes.sort( + (a, b) => b.importance.mean_magnitude - a.importance.mean_magnitude + ); + sortedData.push( + ...sortedFeatureClass.map((featureClass) => ({ + featureName: feature.feature_name, + meanImportance: featureClass.importance.mean_magnitude, + className: featureClass.class_name, + })) + ); + }); + + _barSeriesSpec = { + xAccessor: 'featureName', + yAccessors: ['meanImportance'], + splitSeriesAccessors: ['className'], + stackAccessors: ['featureName'], + }; + } + } + // if regression + if (isRegressionTotalFeatureImportance(totalFeatureImportance[0])) { + classificationType = 'regression'; + + sortedData = (totalFeatureImportance as RegressionTotalFeatureImportance[]) + .map((d: RegressionTotalFeatureImportance) => ({ + featureName: d.feature_name, + meanImportance: d.importance.mean_magnitude, + })) + .sort((a, b) => b.meanImportance - a.meanImportance); + } + + // only show legend if it's a multiclass + const _showLegend = classificationType === 'multiclass_classification'; + const _chartHeight = + totalFeatureImportance.length * (totalFeatureImportance.length < 5 ? 40 : 20) + 50; + return [sortedData, _barSeriesSpec, _showLegend, _chartHeight]; + }, [totalFeatureImportance]); + + const { ELASTIC_WEBSITE_URL, DOC_LINK_VERSION } = docLinks; + const tickFormatter = useCallback((d) => Number(d.toPrecision(3)).toString(), []); + + return ( + +
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ ); +}; diff --git a/x-pack/plugins/ml/public/application/services/ml_api_service/inference.ts b/x-pack/plugins/ml/public/application/services/ml_api_service/inference.ts index 0206037b680bb..ce211612fba66 100644 --- a/x-pack/plugins/ml/public/application/services/ml_api_service/inference.ts +++ b/x-pack/plugins/ml/public/application/services/ml_api_service/inference.ts @@ -23,6 +23,7 @@ export interface InferenceQueryParams { tags?: string; // Custom kibana endpoint query params with_pipelines?: boolean; + include?: 'total_feature_importance'; } export interface InferenceStatsQueryParams { diff --git a/x-pack/plugins/ml/server/routes/schemas/inference_schema.ts b/x-pack/plugins/ml/server/routes/schemas/inference_schema.ts index 896449be7896a..04cc60bf5493c 100644 --- a/x-pack/plugins/ml/server/routes/schemas/inference_schema.ts +++ b/x-pack/plugins/ml/server/routes/schemas/inference_schema.ts @@ -23,4 +23,5 @@ export const optionalModelIdSchema = schema.object({ export const getInferenceQuerySchema = schema.object({ size: schema.maybe(schema.string()), with_pipelines: schema.maybe(schema.string()), + include: schema.maybe(schema.string()), }); From 3599edbea93da33a3a72c84d41239f48b74156a9 Mon Sep 17 00:00:00 2001 From: Zacqary Adam Xeper Date: Thu, 1 Oct 2020 09:42:18 -0500 Subject: [PATCH 097/142] [Logs UI] Move alerting components to public/alerting (#79035) Co-authored-by: Elastic Machine --- .../criterion_preview_chart.tsx | 4 ++-- .../group_by_expression/group_by_expression.tsx | 0 .../common}/group_by_expression/selector.tsx | 0 .../log_threshold/components}/alert_dropdown.tsx | 2 +- .../log_threshold/components}/alert_flyout.tsx | 8 ++++---- .../components}/expression_editor/criteria.tsx | 4 ++-- .../components}/expression_editor/criterion.tsx | 4 ++-- .../criterion_preview_chart.tsx | 10 +++++----- .../components}/expression_editor/editor.tsx | 16 +++++++--------- .../hooks/use_chart_preview_data.tsx | 8 ++++---- .../components}/expression_editor/index.tsx | 0 .../components}/expression_editor/threshold.tsx | 4 ++-- .../expression_editor/type_switcher.tsx | 2 +- .../infra/public/alerting/log_threshold/index.ts | 8 ++++++++ .../log_threshold/log_threshold_alert_type.ts | 7 +++---- .../log_threshold/validation.ts | 5 ++--- .../infra/public/pages/logs/page_content.tsx | 2 +- x-pack/plugins/infra/public/plugin.ts | 2 +- .../plugins/triggers_actions_ui/public/index.ts | 2 +- 19 files changed, 46 insertions(+), 42 deletions(-) rename x-pack/plugins/infra/public/{components/alerting/shared => alerting/common}/criterion_preview_chart/criterion_preview_chart.tsx (97%) rename x-pack/plugins/infra/public/{components/alerting/shared => alerting/common}/group_by_expression/group_by_expression.tsx (100%) rename x-pack/plugins/infra/public/{components/alerting/shared => alerting/common}/group_by_expression/selector.tsx (100%) rename x-pack/plugins/infra/public/{components/alerting/logs/log_threshold => alerting/log_threshold/components}/alert_dropdown.tsx (97%) rename x-pack/plugins/infra/public/{components/alerting/logs/log_threshold => alerting/log_threshold/components}/alert_flyout.tsx (84%) rename x-pack/plugins/infra/public/{components/alerting/logs/log_threshold => alerting/log_threshold/components}/expression_editor/criteria.tsx (98%) rename x-pack/plugins/infra/public/{components/alerting/logs/log_threshold => alerting/log_threshold/components}/expression_editor/criterion.tsx (98%) rename x-pack/plugins/infra/public/{components/alerting/logs/log_threshold => alerting/log_threshold/components}/expression_editor/criterion_preview_chart.tsx (96%) rename x-pack/plugins/infra/public/{components/alerting/logs/log_threshold => alerting/log_threshold/components}/expression_editor/editor.tsx (93%) rename x-pack/plugins/infra/public/{components/alerting/logs/log_threshold => alerting/log_threshold/components}/expression_editor/hooks/use_chart_preview_data.tsx (90%) rename x-pack/plugins/infra/public/{components/alerting/logs/log_threshold => alerting/log_threshold/components}/expression_editor/index.tsx (100%) rename x-pack/plugins/infra/public/{components/alerting/logs/log_threshold => alerting/log_threshold/components}/expression_editor/threshold.tsx (95%) rename x-pack/plugins/infra/public/{components/alerting/logs/log_threshold => alerting/log_threshold/components}/expression_editor/type_switcher.tsx (97%) create mode 100644 x-pack/plugins/infra/public/alerting/log_threshold/index.ts rename x-pack/plugins/infra/public/{components/alerting/logs => alerting}/log_threshold/log_threshold_alert_type.ts (80%) rename x-pack/plugins/infra/public/{components/alerting/logs => alerting}/log_threshold/validation.ts (94%) diff --git a/x-pack/plugins/infra/public/components/alerting/shared/criterion_preview_chart/criterion_preview_chart.tsx b/x-pack/plugins/infra/public/alerting/common/criterion_preview_chart/criterion_preview_chart.tsx similarity index 97% rename from x-pack/plugins/infra/public/components/alerting/shared/criterion_preview_chart/criterion_preview_chart.tsx rename to x-pack/plugins/infra/public/alerting/common/criterion_preview_chart/criterion_preview_chart.tsx index 239afd93a7a1f..9003e13869e60 100644 --- a/x-pack/plugins/infra/public/components/alerting/shared/criterion_preview_chart/criterion_preview_chart.tsx +++ b/x-pack/plugins/infra/public/alerting/common/criterion_preview_chart/criterion_preview_chart.tsx @@ -11,8 +11,8 @@ import moment from 'moment'; import { i18n } from '@kbn/i18n'; import { EuiText } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; -import { formatNumber } from '../../../../../common/formatters/number'; -import { GetLogAlertsChartPreviewDataSuccessResponsePayload } from '../../../../../common/http_api'; +import { formatNumber } from '../../../../common/formatters/number'; +import { GetLogAlertsChartPreviewDataSuccessResponsePayload } from '../../../../common/http_api'; type Series = GetLogAlertsChartPreviewDataSuccessResponsePayload['data']['series']; diff --git a/x-pack/plugins/infra/public/components/alerting/shared/group_by_expression/group_by_expression.tsx b/x-pack/plugins/infra/public/alerting/common/group_by_expression/group_by_expression.tsx similarity index 100% rename from x-pack/plugins/infra/public/components/alerting/shared/group_by_expression/group_by_expression.tsx rename to x-pack/plugins/infra/public/alerting/common/group_by_expression/group_by_expression.tsx diff --git a/x-pack/plugins/infra/public/components/alerting/shared/group_by_expression/selector.tsx b/x-pack/plugins/infra/public/alerting/common/group_by_expression/selector.tsx similarity index 100% rename from x-pack/plugins/infra/public/components/alerting/shared/group_by_expression/selector.tsx rename to x-pack/plugins/infra/public/alerting/common/group_by_expression/selector.tsx diff --git a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/alert_dropdown.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_dropdown.tsx similarity index 97% rename from x-pack/plugins/infra/public/components/alerting/logs/log_threshold/alert_dropdown.tsx rename to x-pack/plugins/infra/public/alerting/log_threshold/components/alert_dropdown.tsx index 74634bbd5d290..b8eb73b99f45e 100644 --- a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/alert_dropdown.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_dropdown.tsx @@ -8,7 +8,7 @@ import React, { useState, useCallback, useMemo } from 'react'; import { EuiPopover, EuiButtonEmpty, EuiContextMenuItem, EuiContextMenuPanel } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { AlertFlyout } from './alert_flyout'; -import { useLinkProps } from '../../../../hooks/use_link_props'; +import { useLinkProps } from '../../../hooks/use_link_props'; export const AlertDropdown = () => { const [popoverOpen, setPopoverOpen] = useState(false); diff --git a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/alert_flyout.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_flyout.tsx similarity index 84% rename from x-pack/plugins/infra/public/components/alerting/logs/log_threshold/alert_flyout.tsx rename to x-pack/plugins/infra/public/alerting/log_threshold/components/alert_flyout.tsx index c6e16dcc9aaef..cd69fe02c5846 100644 --- a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/alert_flyout.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_flyout.tsx @@ -6,10 +6,10 @@ import React, { useContext } from 'react'; import { ApplicationStart, DocLinksStart, HttpStart, NotificationsStart } from 'src/core/public'; -import { AlertsContextProvider, AlertAdd } from '../../../../../../triggers_actions_ui/public'; -import { TriggerActionsContext } from '../../../../utils/triggers_actions_context'; -import { useKibana } from '../../../../../../../../src/plugins/kibana_react/public'; -import { LOG_DOCUMENT_COUNT_ALERT_TYPE_ID } from '../../../../../common/alerting/logs/log_threshold/types'; +import { AlertsContextProvider, AlertAdd } from '../../../../../triggers_actions_ui/public'; +import { TriggerActionsContext } from '../../../utils/triggers_actions_context'; +import { useKibana } from '../../../../../../../src/plugins/kibana_react/public'; +import { LOG_DOCUMENT_COUNT_ALERT_TYPE_ID } from '../../../../common/alerting/logs/log_threshold/types'; interface Props { visible?: boolean; diff --git a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/criteria.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criteria.tsx similarity index 98% rename from x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/criteria.tsx rename to x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criteria.tsx index a607b5ebf9975..c35e7141efc9d 100644 --- a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/criteria.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criteria.tsx @@ -20,10 +20,10 @@ import { isRatioAlert, getNumerator, getDenominator, -} from '../../../../../../common/alerting/logs/log_threshold/types'; +} from '../../../../../common/alerting/logs/log_threshold/types'; +import { Errors, CriterionErrors } from '../../validation'; import { AlertsContext, ExpressionLike } from './editor'; import { CriterionPreview } from './criterion_preview_chart'; -import { Errors, CriterionErrors } from '../validation'; const DEFAULT_CRITERIA = { field: 'log.level', comparator: Comparator.EQ, value: 'error' }; diff --git a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/criterion.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion.tsx similarity index 98% rename from x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/criterion.tsx rename to x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion.tsx index 8ecd172c08d24..b2992ead3ea1b 100644 --- a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/criterion.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion.tsx @@ -21,12 +21,12 @@ import { i18n } from '@kbn/i18n'; import { isNumber, isFinite } from 'lodash'; import { IFieldType } from 'src/plugins/data/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { IErrorObject } from '../../../../../../../triggers_actions_ui/public/types'; +import { IErrorObject } from '../../../../../../triggers_actions_ui/public/types'; import { Comparator, Criterion as CriterionType, ComparatorToi18nMap, -} from '../../../../../../common/alerting/logs/log_threshold/types'; +} from '../../../../../common/alerting/logs/log_threshold/types'; const firstCriterionFieldPrefix = i18n.translate( 'xpack.infra.logs.alertFlyout.firstCriterionFieldPrefix', diff --git a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/criterion_preview_chart.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion_preview_chart.tsx similarity index 96% rename from x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/criterion_preview_chart.tsx rename to x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion_preview_chart.tsx index 675900499e793..478d4b879a7e1 100644 --- a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/criterion_preview_chart.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion_preview_chart.tsx @@ -31,21 +31,21 @@ import { getChartTheme, yAxisFormatter, NUM_BUCKETS, -} from '../../../shared/criterion_preview_chart/criterion_preview_chart'; +} from '../../../common/criterion_preview_chart/criterion_preview_chart'; import { AlertParams, Threshold, Criterion, Comparator, -} from '../../../../../../common/alerting/logs/log_threshold/types'; -import { Color, colorTransformer } from '../../../../../../common/color_palette'; +} from '../../../../../common/alerting/logs/log_threshold/types'; +import { Color, colorTransformer } from '../../../../../common/color_palette'; import { GetLogAlertsChartPreviewDataAlertParamsSubset, getLogAlertsChartPreviewDataAlertParamsSubsetRT, -} from '../../../../../../common/http_api/log_alerts/'; +} from '../../../../../common/http_api/log_alerts/'; import { AlertsContext } from './editor'; import { useChartPreviewData } from './hooks/use_chart_preview_data'; -import { decodeOrThrow } from '../../../../../../common/runtime_types'; +import { decodeOrThrow } from '../../../../../common/runtime_types'; const GROUP_LIMIT = 5; diff --git a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/editor.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/editor.tsx similarity index 93% rename from x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/editor.tsx rename to x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/editor.tsx index 0af96a7e06a2b..c5b0ed5844852 100644 --- a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/editor.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/editor.tsx @@ -8,25 +8,23 @@ import React, { useCallback, useMemo, useState } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiLoadingSpinner, EuiSpacer, EuiButton, EuiCallOut } from '@elastic/eui'; import { useMount } from 'react-use'; +import { GroupByExpression } from '../../../common/group_by_expression/group_by_expression'; import { ForLastExpression, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../../../triggers_actions_ui/public/common'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { AlertsContextValue } from '../../../../../../../triggers_actions_ui/public/application/context/alerts_context'; + AlertsContextValue, +} from '../../../../../../triggers_actions_ui/public'; import { AlertParams, Comparator, ThresholdType, isRatioAlert, -} from '../../../../../../common/alerting/logs/log_threshold/types'; +} from '../../../../../common/alerting/logs/log_threshold/types'; import { Threshold } from './threshold'; import { Criteria } from './criteria'; import { TypeSwitcher } from './type_switcher'; -import { useSourceId } from '../../../../../containers/source_id'; -import { LogSourceProvider, useLogSourceContext } from '../../../../../containers/logs/log_source'; -import { GroupByExpression } from '../../../shared/group_by_expression/group_by_expression'; -import { Errors } from '../validation'; +import { useSourceId } from '../../../../containers/source_id'; +import { LogSourceProvider, useLogSourceContext } from '../../../../containers/logs/log_source'; +import { Errors } from '../../validation'; export interface ExpressionCriteria { field?: string; diff --git a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/hooks/use_chart_preview_data.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/hooks/use_chart_preview_data.tsx similarity index 90% rename from x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/hooks/use_chart_preview_data.tsx rename to x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/hooks/use_chart_preview_data.tsx index d43e291f900f2..d5ba730026b12 100644 --- a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/hooks/use_chart_preview_data.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/hooks/use_chart_preview_data.tsx @@ -5,15 +5,15 @@ */ import { useState, useMemo } from 'react'; import { AlertsContext } from '../editor'; -import { useTrackedPromise } from '../../../../../../utils/use_tracked_promise'; +import { useTrackedPromise } from '../../../../../utils/use_tracked_promise'; import { GetLogAlertsChartPreviewDataSuccessResponsePayload, getLogAlertsChartPreviewDataSuccessResponsePayloadRT, getLogAlertsChartPreviewDataRequestPayloadRT, LOG_ALERTS_CHART_PREVIEW_DATA_PATH, -} from '../../../../../../../common/http_api'; -import { decodeOrThrow } from '../../../../../../../common/runtime_types'; -import { GetLogAlertsChartPreviewDataAlertParamsSubset } from '../../../../../../../common/http_api/log_alerts/'; +} from '../../../../../../common/http_api'; +import { decodeOrThrow } from '../../../../../../common/runtime_types'; +import { GetLogAlertsChartPreviewDataAlertParamsSubset } from '../../../../../../common/http_api/log_alerts/'; interface Options { sourceId: string; diff --git a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/index.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/index.tsx similarity index 100% rename from x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/index.tsx rename to x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/index.tsx diff --git a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/threshold.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/threshold.tsx similarity index 95% rename from x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/threshold.tsx rename to x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/threshold.tsx index e2065ca25cb6f..da0c987bac85f 100644 --- a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/threshold.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/threshold.tsx @@ -18,12 +18,12 @@ import { EuiFormRow, } from '@elastic/eui'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { IErrorObject } from '../../../../../../../triggers_actions_ui/public/types'; +import { IErrorObject } from '../../../../../../triggers_actions_ui/public/types'; import { Comparator, ComparatorToi18nMap, AlertParams, -} from '../../../../../../common/alerting/logs/log_threshold/types'; +} from '../../../../../common/alerting/logs/log_threshold/types'; const thresholdPrefix = i18n.translate('xpack.infra.logs.alertFlyout.thresholdPrefix', { defaultMessage: 'is', diff --git a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/type_switcher.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/type_switcher.tsx similarity index 97% rename from x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/type_switcher.tsx rename to x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/type_switcher.tsx index 03c895dcd0f2d..5f5078f8aa6e1 100644 --- a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/expression_editor/type_switcher.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/type_switcher.tsx @@ -11,7 +11,7 @@ import { AlertParams, ThresholdType, isRatioAlert, -} from '../../../../../../common/alerting/logs/log_threshold/types'; +} from '../../../../../common/alerting/logs/log_threshold/types'; import { ExpressionLike } from './editor'; const typePrefix = i18n.translate('xpack.infra.logs.alertFlyout.thresholdTypePrefix', { diff --git a/x-pack/plugins/infra/public/alerting/log_threshold/index.ts b/x-pack/plugins/infra/public/alerting/log_threshold/index.ts new file mode 100644 index 0000000000000..0974d00c4dffb --- /dev/null +++ b/x-pack/plugins/infra/public/alerting/log_threshold/index.ts @@ -0,0 +1,8 @@ +/* + * 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 { getAlertType } from './log_threshold_alert_type'; +export { AlertDropdown } from './components/alert_dropdown'; diff --git a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/log_threshold_alert_type.ts b/x-pack/plugins/infra/public/alerting/log_threshold/log_threshold_alert_type.ts similarity index 80% rename from x-pack/plugins/infra/public/components/alerting/logs/log_threshold/log_threshold_alert_type.ts rename to x-pack/plugins/infra/public/alerting/log_threshold/log_threshold_alert_type.ts index 15ff5844c1236..29a58fc95f2be 100644 --- a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/log_threshold_alert_type.ts +++ b/x-pack/plugins/infra/public/alerting/log_threshold/log_threshold_alert_type.ts @@ -5,9 +5,8 @@ */ import { i18n } from '@kbn/i18n'; import React from 'react'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { AlertTypeModel } from '../../../../../../triggers_actions_ui/public/types'; -import { LOG_DOCUMENT_COUNT_ALERT_TYPE_ID } from '../../../../../common/alerting/logs/log_threshold/types'; +import { AlertTypeModel } from '../../../../triggers_actions_ui/public'; +import { LOG_DOCUMENT_COUNT_ALERT_TYPE_ID } from '../../../common/alerting/logs/log_threshold/types'; import { validateExpression } from './validation'; export function getAlertType(): AlertTypeModel { @@ -17,7 +16,7 @@ export function getAlertType(): AlertTypeModel { defaultMessage: 'Log threshold', }), iconClass: 'bell', - alertParamsExpression: React.lazy(() => import('./expression_editor/editor')), + alertParamsExpression: React.lazy(() => import('./components/expression_editor/editor')), validate: validateExpression, defaultActionMessage: i18n.translate( 'xpack.infra.logs.alerting.threshold.defaultActionMessage', diff --git a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/validation.ts b/x-pack/plugins/infra/public/alerting/log_threshold/validation.ts similarity index 94% rename from x-pack/plugins/infra/public/components/alerting/logs/log_threshold/validation.ts rename to x-pack/plugins/infra/public/alerting/log_threshold/validation.ts index a7f773c08d2b3..6630b3d079141 100644 --- a/x-pack/plugins/infra/public/components/alerting/logs/log_threshold/validation.ts +++ b/x-pack/plugins/infra/public/alerting/log_threshold/validation.ts @@ -6,8 +6,7 @@ import { i18n } from '@kbn/i18n'; import { isNumber, isFinite } from 'lodash'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ValidationResult } from '../../../../../../triggers_actions_ui/public/types'; +import { ValidationResult } from '../../../../triggers_actions_ui/public'; import { AlertParams, Criteria, @@ -15,7 +14,7 @@ import { isRatioAlert, getNumerator, getDenominator, -} from '../../../../../common/alerting/logs/log_threshold/types'; +} from '../../../common/alerting/logs/log_threshold/types'; export interface CriterionErrors { [id: string]: { diff --git a/x-pack/plugins/infra/public/pages/logs/page_content.tsx b/x-pack/plugins/infra/public/pages/logs/page_content.tsx index 973037af499e5..e85f0d9bf446b 100644 --- a/x-pack/plugins/infra/public/pages/logs/page_content.tsx +++ b/x-pack/plugins/infra/public/pages/logs/page_content.tsx @@ -10,6 +10,7 @@ import React from 'react'; import { Route, Switch } from 'react-router-dom'; import { useMount } from 'react-use'; +import { AlertDropdown } from '../../alerting/log_threshold'; import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; import { DocumentTitle } from '../../components/document_title'; import { Header } from '../../components/header'; @@ -23,7 +24,6 @@ import { LogEntryCategoriesPage } from './log_entry_categories'; import { LogEntryRatePage } from './log_entry_rate'; import { LogsSettingsPage } from './settings'; import { StreamPage } from './stream'; -import { AlertDropdown } from '../../components/alerting/logs/log_threshold/alert_dropdown'; export const LogsPageContent: React.FunctionComponent = () => { const uiCapabilities = useKibana().services.application?.capabilities; diff --git a/x-pack/plugins/infra/public/plugin.ts b/x-pack/plugins/infra/public/plugin.ts index b409c32603ffc..3c6b1a14cfd47 100644 --- a/x-pack/plugins/infra/public/plugin.ts +++ b/x-pack/plugins/infra/public/plugin.ts @@ -8,7 +8,7 @@ import { AppMountParameters, PluginInitializerContext } from 'kibana/public'; import { DEFAULT_APP_CATEGORIES } from '../../../../src/core/public'; import { createMetricThresholdAlertType } from './alerting/metric_threshold'; import { createInventoryMetricAlertType } from './alerting/inventory'; -import { getAlertType as getLogsAlertType } from './components/alerting/logs/log_threshold/log_threshold_alert_type'; +import { getAlertType as getLogsAlertType } from './alerting/log_threshold'; import { registerStartSingleton } from './legacy_singletons'; import { registerFeatures } from './register_feature'; import { diff --git a/x-pack/plugins/triggers_actions_ui/public/index.ts b/x-pack/plugins/triggers_actions_ui/public/index.ts index f73fac2259067..a28b10683c28f 100644 --- a/x-pack/plugins/triggers_actions_ui/public/index.ts +++ b/x-pack/plugins/triggers_actions_ui/public/index.ts @@ -7,7 +7,7 @@ import { PluginInitializerContext } from 'src/core/public'; import { Plugin } from './plugin'; -export { AlertsContextProvider } from './application/context/alerts_context'; +export { AlertsContextProvider, AlertsContextValue } from './application/context/alerts_context'; export { ActionsConnectorsContextProvider } from './application/context/actions_connectors_context'; export { AlertAdd } from './application/sections/alert_form'; export { AlertEdit } from './application/sections'; From 41318801d3d0b856133fcb787ec355c773f2b55e Mon Sep 17 00:00:00 2001 From: Paul Tavares <56442535+paul-tavares@users.noreply.github.com> Date: Thu, 1 Oct 2020 11:04:23 -0400 Subject: [PATCH 098/142] [SECURITY_SOLUTION][ENDPOINT] Add ability to view Trusted Apps from Ingest Integration Policy Edit page (#78854) * Refactor Callout shown in Ingest Edit Endpoint Integration Policy that display actions menu * Add `backComponent` to `` to allow for custom back buttons * Back button displayed on Trusted Apps List when route state is defined --- .../common/endpoint/types/trusted_apps.ts | 13 ++ .../common/components/header_page/index.tsx | 5 + .../components/administration_list_page.tsx | 4 +- .../configure_package_policy.tsx | 206 +++++++++++++----- .../trusted_apps/view/trusted_apps_page.tsx | 61 +++++- .../apps/endpoint/policy_details.ts | 44 +++- ...gest_manager_create_package_policy_page.ts | 35 +++ .../page_objects/trusted_apps_page.ts | 19 +- 8 files changed, 325 insertions(+), 62 deletions(-) diff --git a/x-pack/plugins/security_solution/common/endpoint/types/trusted_apps.ts b/x-pack/plugins/security_solution/common/endpoint/types/trusted_apps.ts index 62793388e34a6..c0afe3b612d82 100644 --- a/x-pack/plugins/security_solution/common/endpoint/types/trusted_apps.ts +++ b/x-pack/plugins/security_solution/common/endpoint/types/trusted_apps.ts @@ -5,6 +5,7 @@ */ import { TypeOf } from '@kbn/config-schema'; +import { ApplicationStart } from 'kibana/public'; import { DeleteTrustedAppsRequestSchema, GetTrustedAppsRequestSchema, @@ -65,3 +66,15 @@ export type TrustedApp = NewTrustedApp & { created_at: string; created_by: string; }; + +/** + * Supported React-Router state for the Trusted Apps List page + */ +export interface TrustedAppsListPageRouteState { + /** Where the user should be redirected to when the `Back` button is clicked */ + onBackButtonNavigateTo: Parameters; + /** The URL for the `Back` button */ + backButtonUrl?: string; + /** The label for the button */ + backButtonLabel?: string; +} diff --git a/x-pack/plugins/security_solution/public/common/components/header_page/index.tsx b/x-pack/plugins/security_solution/public/common/components/header_page/index.tsx index 0cb721bb5382f..4a5a55f30f94f 100644 --- a/x-pack/plugins/security_solution/public/common/components/header_page/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/header_page/index.tsx @@ -71,6 +71,8 @@ interface BackOptions { export interface HeaderPageProps extends HeaderProps { backOptions?: BackOptions; + /** A component to be displayed as the back button. Used only if `backOption` is not defined */ + backComponent?: React.ReactNode; badgeOptions?: BadgeOptions; children?: React.ReactNode; draggableArguments?: DraggableArguments; @@ -83,6 +85,7 @@ export interface HeaderPageProps extends HeaderProps { const HeaderPageComponent: React.FC = ({ backOptions, + backComponent, badgeOptions, border, children, @@ -123,6 +126,8 @@ const HeaderPageComponent: React.FC = ({ )} + {!backOptions && backComponent && <>{backComponent}} + {titleNode || ( = memo( - ({ beta, title, subtitle, actions, children, ...otherProps }) => { + ({ beta, title, subtitle, actions, children, headerBackComponent, ...otherProps }) => { const badgeOptions = !beta ? undefined : { beta: true, text: BETA_BADGE_LABEL }; return ( @@ -39,6 +40,7 @@ export const AdministrationListPage: FC<AdministrationListPageProps & CommonProp hideSourcerer={true} title={title} subtitle={subtitle} + backComponent={headerBackComponent} badgeOptions={badgeOptions} > {actions} diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/configure_package_policy.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/configure_package_policy.tsx index b03069a739e35..3cca2d9c26599 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/configure_package_policy.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/configure_package_policy.tsx @@ -4,17 +4,34 @@ * you may not use this file except in compliance with the Elastic License. */ -import React, { memo, useMemo } from 'react'; +import React, { memo, useCallback, useMemo, useState } from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; -import { EuiCallOut, EuiText, EuiSpacer } from '@elastic/eui'; -import { LinkToApp } from '../../../../../common/components/endpoint/link_to_app'; +import { + EuiCallOut, + EuiText, + EuiSpacer, + EuiFlexGroup, + EuiFlexItem, + EuiContextMenuPanel, + EuiPopover, + EuiButton, + EuiContextMenuItem, + EuiContextMenuPanelProps, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; import { CustomConfigurePackagePolicyContent, CustomConfigurePackagePolicyProps, + pagePathGetters, } from '../../../../../../../ingest_manager/public'; -import { getPolicyDetailPath } from '../../../../common/routing'; +import { getPolicyDetailPath, getTrustedAppsListPath } from '../../../../common/routing'; import { MANAGEMENT_APP_ID } from '../../../../common/constants'; -import { PolicyDetailsRouteState } from '../../../../../../common/endpoint/types'; +import { + PolicyDetailsRouteState, + TrustedAppsListPageRouteState, +} from '../../../../../../common/endpoint/types'; +import { useKibana } from '../../../../../common/lib/kibana'; +import { useNavigateToAppEventHandler } from '../../../../../common/hooks/endpoint/use_navigate_to_app_event_handler'; /** * Exports Endpoint-specific package policy instructions @@ -26,27 +43,6 @@ export const ConfigureEndpointPackagePolicy = memo<CustomConfigurePackagePolicyC packagePolicyId, packagePolicy: { policy_id: agentPolicyId }, }: CustomConfigurePackagePolicyProps) => { - let policyUrl = ''; - if (from === 'edit' && packagePolicyId) { - // Cannot use formalUrl here since the code is called in Ingest, which does not use redux - policyUrl = getPolicyDetailPath(packagePolicyId); - } - - const policyDetailRouteState = useMemo((): undefined | PolicyDetailsRouteState => { - if (from !== 'edit') { - return undefined; - } - const navigateTo: PolicyDetailsRouteState['onSaveNavigateTo'] & - PolicyDetailsRouteState['onCancelNavigateTo'] = [ - 'ingestManager', - { path: `#/policies/${agentPolicyId}/edit-integration/${packagePolicyId}` }, - ]; - return { - onSaveNavigateTo: navigateTo, - onCancelNavigateTo: navigateTo, - }; - }, [agentPolicyId, from, packagePolicyId]); - return ( <> <EuiSpacer size="m" /> @@ -55,39 +51,149 @@ export const ConfigureEndpointPackagePolicy = memo<CustomConfigurePackagePolicyC iconType="iInCircle" > <EuiText size="s"> - <p> - {from === 'edit' ? ( - <FormattedMessage - id="xpack.securitySolution.endpoint.ingestManager.editPackagePolicy.endpointConfiguration" - defaultMessage="Click {advancedConfigOptionsLink} to edit advanced configuration options." - values={{ - advancedConfigOptionsLink: ( - <LinkToApp - data-test-subj="editLinkToPolicyDetails" - appId={MANAGEMENT_APP_ID} - appPath={policyUrl} - appState={policyDetailRouteState} - > - <FormattedMessage - id="xpack.securitySolution.endpoint.ingestManager.editPackagePolicy.endpointConfigurationLink" - defaultMessage="here" - /> - </LinkToApp> - ), - }} + {from === 'edit' ? ( + <> + <EditFlowMessage + agentPolicyId={agentPolicyId} + integrationPolicyId={packagePolicyId!} /> - ) : ( + </> + ) : ( + <p> <FormattedMessage id="xpack.securitySolution.endpoint.ingestManager.createPackagePolicy.endpointConfiguration" defaultMessage="We'll save your integration with our recommended defaults. You can change this later by editing the Endpoint Security integration within your agent policy." /> - )} - </p> + </p> + )} </EuiText> </EuiCallOut> </> ); } ); - ConfigureEndpointPackagePolicy.displayName = 'ConfigureEndpointPackagePolicy'; + +const EditFlowMessage = memo<{ + agentPolicyId: string; + integrationPolicyId: string; +}>(({ agentPolicyId, integrationPolicyId }) => { + const { + services: { + application: { getUrlForApp }, + }, + } = useKibana(); + + const [isMenuOpen, setIsMenuOpen] = useState<boolean>(false); + + const navigateBackToIngest = useMemo< + PolicyDetailsRouteState['onSaveNavigateTo'] & + PolicyDetailsRouteState['onCancelNavigateTo'] & + TrustedAppsListPageRouteState['onBackButtonNavigateTo'] + >(() => { + return [ + 'ingestManager', + { + path: `#${pagePathGetters.edit_integration({ + policyId: agentPolicyId, + packagePolicyId: integrationPolicyId!, + })}`, + }, + ]; + }, [agentPolicyId, integrationPolicyId]); + + const handleClosePopup = useCallback(() => setIsMenuOpen(false), []); + + const handleSecurityPolicyAction = useNavigateToAppEventHandler<PolicyDetailsRouteState>( + MANAGEMENT_APP_ID, + { + path: getPolicyDetailPath(integrationPolicyId), + state: { + onSaveNavigateTo: navigateBackToIngest, + onCancelNavigateTo: navigateBackToIngest, + }, + } + ); + + const handleTrustedAppsAction = useNavigateToAppEventHandler<TrustedAppsListPageRouteState>( + MANAGEMENT_APP_ID, + { + path: getTrustedAppsListPath(), + state: { + backButtonUrl: navigateBackToIngest[1]?.path + ? `${getUrlForApp('ingestManager')}${navigateBackToIngest[1].path}` + : undefined, + onBackButtonNavigateTo: navigateBackToIngest, + backButtonLabel: i18n.translate( + 'xpack.securitySolution.endpoint.ingestManager.editPackagePolicy.trustedAppsMessageReturnBackLabel', + { defaultMessage: 'Back to Edit Integration' } + ), + }, + } + ); + + const menuButton = useMemo(() => { + return ( + <EuiButton + size="s" + iconType="arrowDown" + iconSide="right" + onClick={() => setIsMenuOpen((prevState) => !prevState)} + data-test-subj="endpointActions" + > + <FormattedMessage + id="xpack.securitySolution.endpoint.ingestManager.editPackagePolicy.menuButton" + defaultMessage="Actions" + /> + </EuiButton> + ); + }, []); + + const actionItems = useMemo<EuiContextMenuPanelProps['items']>(() => { + return [ + <EuiContextMenuItem + key="policyDetails" + onClick={handleSecurityPolicyAction} + data-test-subj="securityPolicy" + > + <FormattedMessage + id="xpack.securitySolution.endpoint.ingestManager.editPackagePolicy.actionSecurityPolicy" + defaultMessage="Edit Security Policy" + /> + </EuiContextMenuItem>, + <EuiContextMenuItem + key="trustedApps" + onClick={handleTrustedAppsAction} + data-test-subj="trustedAppsAction" + > + <FormattedMessage + id="xpack.securitySolution.endpoint.ingestManager.editPackagePolicy.actionTrustedApps" + defaultMessage="View Trusted Applications" + /> + </EuiContextMenuItem>, + ]; + }, [handleSecurityPolicyAction, handleTrustedAppsAction]); + + return ( + <EuiFlexGroup> + <EuiFlexItem> + <FormattedMessage + id="xpack.securitySolution.endpoint.ingestManager.editPackagePolicy.message" + defaultMessage="More advanced configuration options can be found by selecting an action from the menu" + /> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <EuiPopover + button={menuButton} + isOpen={isMenuOpen} + closePopover={handleClosePopup} + anchorPosition="downRight" + panelPaddingSize="s" + > + <EuiContextMenuPanel data-test-subj="endpointActionsMenuPanel" items={actionItems} /> + </EuiPopover> + </EuiFlexItem> + </EuiFlexGroup> + ); +}); +EditFlowMessage.displayName = 'EditFlowMessage'; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.tsx index c1c23a3960962..878818d9b77fe 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.tsx @@ -3,10 +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 React, { memo, useCallback } from 'react'; +import React, { memo, useCallback, useMemo } from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; -import { EuiButton } from '@elastic/eui'; -import { useHistory } from 'react-router-dom'; +import { EuiButton, EuiButtonEmpty } from '@elastic/eui'; +import { useHistory, useLocation } from 'react-router-dom'; +import styled from 'styled-components'; import { AdministrationListPage } from '../../../components/administration_list_page'; import { TrustedAppsList } from './trusted_apps_list'; import { TrustedAppDeletionDialog } from './trusted_app_deletion_dialog'; @@ -15,9 +16,12 @@ import { CreateTrustedAppFlyout } from './components/create_trusted_app_flyout'; import { getTrustedAppsListPath } from '../../../common/routing'; import { useTrustedAppsSelector } from './hooks'; import { getListCurrentShowValue, getListUrlSearchParams } from '../store/selectors'; +import { TrustedAppsListPageRouteState } from '../../../../../common/endpoint/types'; +import { useNavigateToAppEventHandler } from '../../../../common/hooks/endpoint/use_navigate_to_app_event_handler'; export const TrustedAppsPage = memo(() => { const history = useHistory(); + const { state: routeState } = useLocation<TrustedAppsListPageRouteState | undefined>(); const urlParams = useTrustedAppsSelector(getListUrlSearchParams); const showAddFlout = useTrustedAppsSelector(getListCurrentShowValue) === 'create'; const handleAddButtonClick = useCallback(() => { @@ -33,6 +37,15 @@ export const TrustedAppsPage = memo(() => { history.push(getTrustedAppsListPath(paginationParamsOnly)); }, [history, urlParams]); + const backButton = useMemo(() => { + if (routeState && routeState.onBackButtonNavigateTo) { + return <BackToExternalAppButton {...routeState} />; + } + return null; + // FIXME: Route state is being deleted by some parent component + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + const addButton = ( <EuiButton fill @@ -50,6 +63,7 @@ export const TrustedAppsPage = memo(() => { return ( <AdministrationListPage + data-test-subj="trustedAppsListPage" beta={true} title={ <FormattedMessage @@ -57,6 +71,7 @@ export const TrustedAppsPage = memo(() => { defaultMessage="Trusted Applications" /> } + headerBackComponent={backButton} subtitle={ <FormattedMessage id="xpack.securitySolution.trustedapps.list.pageSubTitle" @@ -80,3 +95,43 @@ export const TrustedAppsPage = memo(() => { }); TrustedAppsPage.displayName = 'TrustedAppsPage'; + +const EuiButtonEmptyStyled = styled(EuiButtonEmpty)` + margin-bottom: ${({ theme }) => theme.eui.euiSizeS}; + + .euiIcon { + width: ${({ theme }) => theme.eui.euiIconSizes.small}; + height: ${({ theme }) => theme.eui.euiIconSizes.small}; + } + + .text { + font-size: ${({ theme }) => theme.eui.euiFontSizeXS}; + } +`; + +const BackToExternalAppButton = memo<TrustedAppsListPageRouteState>( + ({ backButtonLabel, backButtonUrl, onBackButtonNavigateTo }) => { + const handleBackOnClick = useNavigateToAppEventHandler(...onBackButtonNavigateTo!); + + return ( + <EuiButtonEmptyStyled + flush="left" + size="xs" + iconType="arrowLeft" + href={backButtonUrl!} + onClick={handleBackOnClick} + textProps={{ className: 'text' }} + data-test-subj="backToOrigin" + > + {backButtonLabel || ( + <FormattedMessage + id="xpack.securitySolution.trustedapps.list.backButton" + defaultMessage="Back" + /> + )} + </EuiButtonEmptyStyled> + ); + } +); + +BackToExternalAppButton.displayName = 'BackToExternalAppButton'; diff --git a/x-pack/test/security_solution_endpoint/apps/endpoint/policy_details.ts b/x-pack/test/security_solution_endpoint/apps/endpoint/policy_details.ts index 9610144d3846d..137f24432976a 100644 --- a/x-pack/test/security_solution_endpoint/apps/endpoint/policy_details.ts +++ b/x-pack/test/security_solution_endpoint/apps/endpoint/policy_details.ts @@ -16,6 +16,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { 'policy', 'endpointPageUtils', 'ingestManagerCreatePackagePolicy', + 'trustedApps', ]); const testSubjects = getService('testSubjects'); const policyTestResources = getService('policyTestResources'); @@ -250,6 +251,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { }); }); }); + describe('when on Ingest Policy Edit Package Policy page', async () => { let policyInfo: PolicyTestResourceInfo; beforeEach(async () => { @@ -265,16 +267,31 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await policyInfo.cleanup(); } }); - it('should show a link to Policy Details', async () => { - await testSubjects.existOrFail('editLinkToPolicyDetails'); + + it('should show callout', async () => { + await testSubjects.existOrFail('endpointPackagePolicy_edit'); }); - it('should navigate to Policy Details when the link is clicked', async () => { - const linkToPolicy = await testSubjects.find('editLinkToPolicyDetails'); - await linkToPolicy.click(); + + it('should show actions button with expected action items', async () => { + const actionsButton = await pageObjects.ingestManagerCreatePackagePolicy.findEndpointActionsButton(); + await actionsButton.click(); + const menuPanel = await testSubjects.find('endpointActionsMenuPanel'); + const actionItems = await menuPanel.findAllByTagName<'button'>('button'); + const expectedItems = ['Edit Security Policy', 'View Trusted Applications']; + + for (const action of actionItems) { + const buttonText = await action.getVisibleText(); + expect(buttonText).to.be(expectedItems.find((item) => item === buttonText)); + } + }); + + it('should navigate to Policy Details when the edit security policy action is clicked', async () => { + await pageObjects.ingestManagerCreatePackagePolicy.selectEndpointAction('policy'); await pageObjects.policy.ensureIsOnDetailsPage(); }); + it('should allow the user to navigate, edit, save Policy Details and be redirected back to ingest', async () => { - await (await testSubjects.find('editLinkToPolicyDetails')).click(); + await pageObjects.ingestManagerCreatePackagePolicy.selectEndpointAction('policy'); await pageObjects.policy.ensureIsOnDetailsPage(); await pageObjects.endpointPageUtils.clickOnEuiCheckbox('policyWindowsEvent_dns'); await pageObjects.policy.confirmAndSave(); @@ -282,11 +299,24 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await testSubjects.existOrFail('policyDetailsSuccessMessage'); await pageObjects.ingestManagerCreatePackagePolicy.ensureOnEditPageOrFail(); }); + it('should navigate back to Ingest Policy Edit package page on click of cancel button', async () => { - await (await testSubjects.find('editLinkToPolicyDetails')).click(); + await pageObjects.ingestManagerCreatePackagePolicy.selectEndpointAction('policy'); await (await pageObjects.policy.findCancelButton()).click(); await pageObjects.ingestManagerCreatePackagePolicy.ensureOnEditPageOrFail(); }); + + it('should navigate to Trusted Apps', async () => { + await pageObjects.ingestManagerCreatePackagePolicy.selectEndpointAction('trustedApps'); + await pageObjects.trustedApps.ensureIsOnTrustedAppsListPage(); + }); + + it('should show the back button on Trusted Apps Page and navigate back to fleet', async () => { + await pageObjects.ingestManagerCreatePackagePolicy.selectEndpointAction('trustedApps'); + const backButton = await pageObjects.trustedApps.findTrustedAppsListPageBackButton(); + await backButton.click(); + await pageObjects.ingestManagerCreatePackagePolicy.ensureOnEditPageOrFail(); + }); }); }); } diff --git a/x-pack/test/security_solution_endpoint/page_objects/ingest_manager_create_package_policy_page.ts b/x-pack/test/security_solution_endpoint/page_objects/ingest_manager_create_package_policy_page.ts index 523b327b8de1c..38ba50b08d507 100644 --- a/x-pack/test/security_solution_endpoint/page_objects/ingest_manager_create_package_policy_page.ts +++ b/x-pack/test/security_solution_endpoint/page_objects/ingest_manager_create_package_policy_page.ts @@ -5,6 +5,7 @@ */ import { FtrProviderContext } from '../ftr_provider_context'; +import { WebElementWrapper } from '../../../../test/functional/services/lib/web_element_wrapper'; export function IngestManagerCreatePackagePolicy({ getService, @@ -13,6 +14,7 @@ export function IngestManagerCreatePackagePolicy({ const testSubjects = getService('testSubjects'); const find = getService('find'); const pageObjects = getPageObjects(['common']); + const browser = getService('browser'); return { /** @@ -101,5 +103,38 @@ export function IngestManagerCreatePackagePolicy({ }); await this.ensureOnEditPageOrFail(); }, + + /** + * Returns the Endpoint Callout that is displayed on the Integration Policy create/edit pages + */ + async findEndpointActionsButton() { + const button = await testSubjects.find('endpointActions'); + await this.scrollToCenterOfWindow(button); + return button; + }, + + /** + * Center a given Element on the Window viewport + * @param element + */ + async scrollToCenterOfWindow(element: WebElementWrapper) { + const [elementPosition, windowSize] = await Promise.all([ + element.getPosition(), + browser.getWindowSize(), + ]); + await browser.execute( + `document.scrollingElement.scrollTop = ${elementPosition.y - windowSize.height / 2}` + ); + }, + + /** + * Will click on the given Endpoint Action (from the Actions dropdown) + * @param action + */ + async selectEndpointAction(action: 'policy' | 'trustedApps') { + await (await this.findEndpointActionsButton()).click(); + const testSubjId = action === 'policy' ? 'securityPolicy' : 'trustedAppsAction'; + await (await testSubjects.find(testSubjId)).click(); + }, }; } diff --git a/x-pack/test/security_solution_endpoint/page_objects/trusted_apps_page.ts b/x-pack/test/security_solution_endpoint/page_objects/trusted_apps_page.ts index c02ac0ca9ffe0..aac516942ad24 100644 --- a/x-pack/test/security_solution_endpoint/page_objects/trusted_apps_page.ts +++ b/x-pack/test/security_solution_endpoint/page_objects/trusted_apps_page.ts @@ -5,8 +5,9 @@ */ import { FtrProviderContext } from '../ftr_provider_context'; -export function TrustedAppsPageProvider({ getPageObjects }: FtrProviderContext) { +export function TrustedAppsPageProvider({ getService, getPageObjects }: FtrProviderContext) { const pageObjects = getPageObjects(['common', 'header', 'endpointPageUtils']); + const testSubjects = getService('testSubjects'); return { async navigateToTrustedAppsList(searchParams?: string) { @@ -16,5 +17,21 @@ export function TrustedAppsPageProvider({ getPageObjects }: FtrProviderContext) ); await pageObjects.header.waitUntilLoadingHasFinished(); }, + + /** + * ensures that the Policy Page is the currently display view + */ + async ensureIsOnTrustedAppsListPage() { + await testSubjects.existOrFail('trustedAppsListPage'); + }, + + /** + * Returns the Back button displayed on the Trusted Apps list page when page is loaded + * with route state that triggers return button to be displayed + */ + async findTrustedAppsListPageBackButton() { + await this.ensureIsOnTrustedAppsListPage(); + return testSubjects.find('backToOrigin'); + }, }; } From 513b17ef4f4b2399d00082e3de838ca3b5a2bdad Mon Sep 17 00:00:00 2001 From: Paul Tavares <56442535+paul-tavares@users.noreply.github.com> Date: Thu, 1 Oct 2020 11:06:24 -0400 Subject: [PATCH 099/142] [SECURITY_SOLUTION][ENDPOINT] Additional Trusted Apps Create API Validations (#78977) * Added validations to trusted apps create schema --- .../endpoint/schema/trusted_apps.test.ts | 72 ++++++++++++++++++- .../common/endpoint/schema/trusted_apps.ts | 28 +++++++- 2 files changed, 97 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/security_solution/common/endpoint/schema/trusted_apps.test.ts b/x-pack/plugins/security_solution/common/endpoint/schema/trusted_apps.test.ts index c0fbebf73ed8a..13a3fb96e10f7 100644 --- a/x-pack/plugins/security_solution/common/endpoint/schema/trusted_apps.test.ts +++ b/x-pack/plugins/security_solution/common/endpoint/schema/trusted_apps.test.ts @@ -160,6 +160,11 @@ describe('When invoking Trusted Apps Schema', () => { }); describe('when `entries` are defined', () => { + // Some static hashes for use in validation. Some chr. are in UPPERcase on purpose + const VALID_HASH_MD5 = '741462ab431a22233C787BAAB9B653C7'; + const VALID_HASH_SHA1 = 'aedb279e378BED6C2DB3C9DC9e12ba635e0b391c'; + const VALID_HASH_SHA256 = 'A4370C0CF81686C0B696FA6261c9d3e0d810ae704ab8301839dffd5d5112f476'; + const getTrustedAppItemEntryItem = () => getCreateTrustedAppItem().entries[0]; it('should validate `entry.field` is required', () => { @@ -194,13 +199,19 @@ describe('When invoking Trusted Apps Schema', () => { }; expect(() => body.validate(bodyMsg2)).toThrow(); - ['process.hash.*', 'process.path.text'].forEach((field) => { + [ + { + field: 'process.hash.*', + value: 'A4370C0CF81686C0B696FA6261c9d3e0d810ae704ab8301839dffd5d5112f476', + }, + { field: 'process.path.text', value: '/tmp/dir1' }, + ].forEach((partialEntry) => { const bodyMsg3 = { ...getCreateTrustedAppItem(), entries: [ { ...getTrustedAppItemEntryItem(), - field, + ...partialEntry, }, ], }; @@ -280,6 +291,63 @@ describe('When invoking Trusted Apps Schema', () => { }; expect(() => body.validate(bodyMsg)).toThrow(); }); + + it('should validate that `entry.field` is used only once', () => { + const bodyMsg = { + ...getCreateTrustedAppItem(), + entries: [getTrustedAppItemEntryItem(), getTrustedAppItemEntryItem()], + }; + expect(() => body.validate(bodyMsg)).toThrow(); + }); + + it('should validate Hash field valid value', () => { + [VALID_HASH_MD5, VALID_HASH_SHA1, VALID_HASH_SHA256].forEach((value) => { + expect(() => { + body.validate({ + ...getCreateTrustedAppItem(), + entries: [ + { + ...getTrustedAppItemEntryItem(), + field: 'process.hash.*', + value, + }, + ], + }); + }).not.toThrow(); + }); + }); + + it('should validate Hash value with invalid length', () => { + ['xyz', VALID_HASH_SHA256 + VALID_HASH_MD5].forEach((value) => { + expect(() => { + body.validate({ + ...getCreateTrustedAppItem(), + entries: [ + { + ...getTrustedAppItemEntryItem(), + field: 'process.hash.*', + value, + }, + ], + }); + }).toThrow(); + }); + }); + + it('should validate Hash value with invalid characters', () => { + expect(() => { + body.validate({ + ...getCreateTrustedAppItem(), + entries: [ + { + ...getTrustedAppItemEntryItem(), + field: 'process.hash.*', + value: `G${VALID_HASH_MD5.substr(1)}`, + }, + ], + }); + }).toThrow(); + }); }); }); }); diff --git a/x-pack/plugins/security_solution/common/endpoint/schema/trusted_apps.ts b/x-pack/plugins/security_solution/common/endpoint/schema/trusted_apps.ts index 3b3bec4a47804..912468b52adc0 100644 --- a/x-pack/plugins/security_solution/common/endpoint/schema/trusted_apps.ts +++ b/x-pack/plugins/security_solution/common/endpoint/schema/trusted_apps.ts @@ -6,6 +6,13 @@ import { schema } from '@kbn/config-schema'; +const hashLengths: readonly number[] = [ + 32, // MD5 + 40, // SHA1 + 64, // SHA256 +]; +const hasInvalidCharacters = /[^0-9a-f]/i; + export const DeleteTrustedAppsRequestSchema = { params: schema.object({ id: schema.string(), @@ -34,7 +41,26 @@ export const PostTrustedAppCreateRequestSchema = { operator: schema.literal('included'), value: schema.string({ minLength: 1 }), }), - { minSize: 1 } + { + minSize: 1, + validate(entries) { + const usedFields: string[] = []; + for (const { field, value } of entries) { + if (usedFields.includes(field)) { + return `[Hash] field can only be used once`; + } + + usedFields.push(field); + + if ( + field === 'process.hash.*' && + (!hashLengths.includes(value.length) || hasInvalidCharacters.test(value)) + ) { + return `Invalid hash value [${value}]`; + } + } + }, + } ), }), }; From 4ee3677898e443e5cbd7a0640063fe80123369bb Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet <pierre.gayvallet@elastic.co> Date: Thu, 1 Oct 2020 17:10:09 +0200 Subject: [PATCH 100/142] Add relative path handling to `application.navigateToUrl` (#78565) * split application utilities and associated tests to distinct files * do not match app if path does not start with the basePath * add relative paths support to `navigateToUrl` * add null-check error * update generated doc * nits on doc --- ...re-public.applicationstart.geturlforapp.md | 6 +- ...ana-plugin-core-public.applicationstart.md | 4 +- ...e-public.applicationstart.navigatetourl.md | 11 +- packages/kbn-std/src/index.ts | 2 +- packages/kbn-std/src/url.test.ts | 26 +- packages/kbn-std/src/url.ts | 11 + src/core/public/application/types.ts | 26 +- src/core/public/application/utils.ts | 128 -------- .../application/utils/append_app_path.test.ts | 40 +++ .../application/utils/append_app_path.ts | 32 ++ .../application/utils/get_app_info.test.ts | 75 +++++ .../public/application/utils/get_app_info.ts | 36 +++ src/core/public/application/utils/index.ts | 24 ++ .../parse_app_url.test.ts} | 295 ++++++++---------- .../public/application/utils/parse_app_url.ts | 83 +++++ .../utils/relative_to_absolute.test.ts | 29 ++ .../application/utils/relative_to_absolute.ts | 35 +++ .../application/utils/remove_slashes.test.ts | 53 ++++ .../application/utils/remove_slashes.ts | 42 +++ src/core/public/http/base_path.ts | 18 -- 20 files changed, 649 insertions(+), 327 deletions(-) delete mode 100644 src/core/public/application/utils.ts create mode 100644 src/core/public/application/utils/append_app_path.test.ts create mode 100644 src/core/public/application/utils/append_app_path.ts create mode 100644 src/core/public/application/utils/get_app_info.test.ts create mode 100644 src/core/public/application/utils/get_app_info.ts create mode 100644 src/core/public/application/utils/index.ts rename src/core/public/application/{utils.test.ts => utils/parse_app_url.test.ts} (58%) create mode 100644 src/core/public/application/utils/parse_app_url.ts create mode 100644 src/core/public/application/utils/relative_to_absolute.test.ts create mode 100644 src/core/public/application/utils/relative_to_absolute.ts create mode 100644 src/core/public/application/utils/remove_slashes.test.ts create mode 100644 src/core/public/application/utils/remove_slashes.ts diff --git a/docs/development/core/public/kibana-plugin-core-public.applicationstart.geturlforapp.md b/docs/development/core/public/kibana-plugin-core-public.applicationstart.geturlforapp.md index 055ad9f37e654..1eaf00c7a678d 100644 --- a/docs/development/core/public/kibana-plugin-core-public.applicationstart.geturlforapp.md +++ b/docs/development/core/public/kibana-plugin-core-public.applicationstart.geturlforapp.md @@ -4,9 +4,11 @@ ## ApplicationStart.getUrlForApp() method -Returns an URL to a given app, including the global base path. By default, the URL is relative (/basePath/app/my-app). Use the `absolute` option to generate an absolute url (http://host:port/basePath/app/my-app) +Returns the absolute path (or URL) to a given app, including the global base path. -Note that when generating absolute urls, the origin (protocol, host and port) are determined from the browser's location. +By default, it returns the absolute path of the application (e.g `/basePath/app/my-app`<!-- -->). Use the `absolute` option to generate an absolute url instead (e.g `http://host:port/basePath/app/my-app`<!-- -->) + +Note that when generating absolute urls, the origin (protocol, host and port) are determined from the browser's current location. <b>Signature:</b> diff --git a/docs/development/core/public/kibana-plugin-core-public.applicationstart.md b/docs/development/core/public/kibana-plugin-core-public.applicationstart.md index 00318f32984e9..ae62a7767a0e9 100644 --- a/docs/development/core/public/kibana-plugin-core-public.applicationstart.md +++ b/docs/development/core/public/kibana-plugin-core-public.applicationstart.md @@ -23,8 +23,8 @@ export interface ApplicationStart | Method | Description | | --- | --- | -| [getUrlForApp(appId, options)](./kibana-plugin-core-public.applicationstart.geturlforapp.md) | Returns an URL to a given app, including the global base path. By default, the URL is relative (/basePath/app/my-app). Use the <code>absolute</code> option to generate an absolute url (http://host:port/basePath/app/my-app)<!-- -->Note that when generating absolute urls, the origin (protocol, host and port) are determined from the browser's location. | +| [getUrlForApp(appId, options)](./kibana-plugin-core-public.applicationstart.geturlforapp.md) | Returns the absolute path (or URL) to a given app, including the global base path.<!-- -->By default, it returns the absolute path of the application (e.g <code>/basePath/app/my-app</code>). Use the <code>absolute</code> option to generate an absolute url instead (e.g <code>http://host:port/basePath/app/my-app</code>)<!-- -->Note that when generating absolute urls, the origin (protocol, host and port) are determined from the browser's current location. | | [navigateToApp(appId, options)](./kibana-plugin-core-public.applicationstart.navigatetoapp.md) | Navigate to a given app | -| [navigateToUrl(url)](./kibana-plugin-core-public.applicationstart.navigatetourl.md) | Navigate to given url, which can either be an absolute url or a relative path, in a SPA friendly way when possible.<!-- -->If all these criteria are true for the given url: - (only for absolute URLs) The origin of the URL matches the origin of the browser's current location - The pathname of the URL starts with the current basePath (eg. /mybasepath/s/my-space) - The pathname segment after the basePath matches any known application route (eg. /app/<id>/ or any application's <code>appRoute</code> configuration)<!-- -->Then a SPA navigation will be performed using <code>navigateToApp</code> using the corresponding application and path. Otherwise, fallback to a full page reload to navigate to the url using <code>window.location.assign</code> | +| [navigateToUrl(url)](./kibana-plugin-core-public.applicationstart.navigatetourl.md) | Navigate to given URL in a SPA friendly way when possible (when the URL will redirect to a valid application within the current basePath).<!-- -->The method resolves pathnames the same way browsers do when resolving a <code><a href></code> value. The provided <code>url</code> can be: - an absolute URL - an absolute path - a path relative to the current URL (window.location.href)<!-- -->If all these criteria are true for the given URL: - (only for absolute URLs) The origin of the URL matches the origin of the browser's current location - The resolved pathname of the provided URL/path starts with the current basePath (eg. /mybasepath/s/my-space) - The pathname segment after the basePath matches any known application route (eg. /app/<id>/ or any application's <code>appRoute</code> configuration)<!-- -->Then a SPA navigation will be performed using <code>navigateToApp</code> using the corresponding application and path. Otherwise, fallback to a full page reload to navigate to the url using <code>window.location.assign</code> | | [registerMountContext(contextName, provider)](./kibana-plugin-core-public.applicationstart.registermountcontext.md) | Register a context provider for application mounting. Will only be available to applications that depend on the plugin that registered this context. Deprecated, use [CoreSetup.getStartServices](./kibana-plugin-core-public.coresetup.getstartservices.md)<!-- -->. | diff --git a/docs/development/core/public/kibana-plugin-core-public.applicationstart.navigatetourl.md b/docs/development/core/public/kibana-plugin-core-public.applicationstart.navigatetourl.md index 86b86776b0b12..8639394cbc421 100644 --- a/docs/development/core/public/kibana-plugin-core-public.applicationstart.navigatetourl.md +++ b/docs/development/core/public/kibana-plugin-core-public.applicationstart.navigatetourl.md @@ -4,9 +4,11 @@ ## ApplicationStart.navigateToUrl() method -Navigate to given url, which can either be an absolute url or a relative path, in a SPA friendly way when possible. +Navigate to given URL in a SPA friendly way when possible (when the URL will redirect to a valid application within the current basePath). -If all these criteria are true for the given url: - (only for absolute URLs) The origin of the URL matches the origin of the browser's current location - The pathname of the URL starts with the current basePath (eg. /mybasepath/s/my-space) - The pathname segment after the basePath matches any known application route (eg. /app/<id>/ or any application's `appRoute` configuration) +The method resolves pathnames the same way browsers do when resolving a `<a href>` value. The provided `url` can be: - an absolute URL - an absolute path - a path relative to the current URL (window.location.href) + +If all these criteria are true for the given URL: - (only for absolute URLs) The origin of the URL matches the origin of the browser's current location - The resolved pathname of the provided URL/path starts with the current basePath (eg. /mybasepath/s/my-space) - The pathname segment after the basePath matches any known application route (eg. /app/<id>/ or any application's `appRoute` configuration) Then a SPA navigation will be performed using `navigateToApp` using the corresponding application and path. Otherwise, fallback to a full page reload to navigate to the url using `window.location.assign` @@ -20,7 +22,7 @@ navigateToUrl(url: string): Promise<void>; | Parameter | Type | Description | | --- | --- | --- | -| url | <code>string</code> | an absolute url, or a relative path, to navigate to. | +| url | <code>string</code> | an absolute URL, an absolute path or a relative path, to navigate to. | <b>Returns:</b> @@ -35,11 +37,14 @@ navigateToUrl(url: string): Promise<void>; // will call `application.navigateToApp('discover', { path: '/some-path?foo=bar'})` application.navigateToUrl('https://kibana:8080/base-path/s/my-space/app/discover/some-path?foo=bar') application.navigateToUrl('/base-path/s/my-space/app/discover/some-path?foo=bar') +application.navigateToUrl('./discover/some-path?foo=bar') // will perform a full page reload using `window.location.assign` application.navigateToUrl('https://elsewhere:8080/base-path/s/my-space/app/discover/some-path') // origin does not match application.navigateToUrl('/app/discover/some-path') // does not include the current basePath application.navigateToUrl('/base-path/s/my-space/app/unknown-app/some-path') // unknown application +application.navigateToUrl('../discover') // resolve to `/base-path/s/my-space/discover` which is not a path of a known app. +application.navigateToUrl('../../other-space/discover') // resolve to `/base-path/s/other-space/discover` which is not within the current basePath. ``` diff --git a/packages/kbn-std/src/index.ts b/packages/kbn-std/src/index.ts index 7cf70a0e28e2c..d9d3ec4b0d52b 100644 --- a/packages/kbn-std/src/index.ts +++ b/packages/kbn-std/src/index.ts @@ -24,6 +24,6 @@ export { mapToObject } from './map_to_object'; export { merge } from './merge'; export { pick } from './pick'; export { withTimeout } from './promise'; -export { isRelativeUrl, modifyUrl, URLMeaningfulParts } from './url'; +export { isRelativeUrl, modifyUrl, getUrlOrigin, URLMeaningfulParts } from './url'; export { unset } from './unset'; export { getFlattenedObject } from './get_flattened_object'; diff --git a/packages/kbn-std/src/url.test.ts b/packages/kbn-std/src/url.test.ts index 7e9b6adfd3f49..4d5c5a1808c55 100644 --- a/packages/kbn-std/src/url.test.ts +++ b/packages/kbn-std/src/url.test.ts @@ -17,7 +17,7 @@ * under the License. */ -import { modifyUrl, isRelativeUrl } from './url'; +import { modifyUrl, isRelativeUrl, getUrlOrigin } from './url'; describe('modifyUrl()', () => { test('throws an error with invalid input', () => { @@ -83,3 +83,27 @@ describe('isRelativeUrl()', () => { expect(isRelativeUrl(' //evil.com')).toBe(false); }); }); + +describe('getOrigin', () => { + describe('when passing an absolute url', () => { + it('return origin without port when the url does not have a port', () => { + expect(getUrlOrigin('https://example.com/file/to/path?example')).toEqual( + 'https://example.com' + ); + }); + it('return origin with port when the url does have a port', () => { + expect(getUrlOrigin('http://example.com:80/path/to/file')).toEqual('http://example.com:80'); + }); + }); + describe('when passing a non absolute url', () => { + it('returns null for relative url', () => { + expect(getUrlOrigin('./path/to/file')).toBeNull(); + }); + it('returns null for absolute path', () => { + expect(getUrlOrigin('/path/to/file')).toBeNull(); + }); + it('returns null for empty url', () => { + expect(getUrlOrigin('')).toBeNull(); + }); + }); +}); diff --git a/packages/kbn-std/src/url.ts b/packages/kbn-std/src/url.ts index edcdebbd2bc81..745ed05751b10 100644 --- a/packages/kbn-std/src/url.ts +++ b/packages/kbn-std/src/url.ts @@ -125,3 +125,14 @@ export function isRelativeUrl(candidatePath: string) { } return true; } + +/** + * Returns the origin (protocol + host + port) from given `url` if `url` is a valid absolute url, or null otherwise + */ +export function getUrlOrigin(url: string): string | null { + const obj = parseUrl(url); + if (!obj.protocol && !obj.hostname) { + return null; + } + return `${obj.protocol}//${obj.hostname}${obj.port ? `:${obj.port}` : ''}`; +} diff --git a/src/core/public/application/types.ts b/src/core/public/application/types.ts index df83b6e932aad..02d2d3a52a01a 100644 --- a/src/core/public/application/types.ts +++ b/src/core/public/application/types.ts @@ -710,11 +710,17 @@ export interface ApplicationStart { navigateToApp(appId: string, options?: NavigateToAppOptions): Promise<void>; /** - * Navigate to given url, which can either be an absolute url or a relative path, in a SPA friendly way when possible. + * Navigate to given URL in a SPA friendly way when possible (when the URL will redirect to a valid application + * within the current basePath). * - * If all these criteria are true for the given url: + * The method resolves pathnames the same way browsers do when resolving a `<a href>` value. The provided `url` can be: + * - an absolute URL + * - an absolute path + * - a path relative to the current URL (window.location.href) + * + * If all these criteria are true for the given URL: * - (only for absolute URLs) The origin of the URL matches the origin of the browser's current location - * - The pathname of the URL starts with the current basePath (eg. /mybasepath/s/my-space) + * - The resolved pathname of the provided URL/path starts with the current basePath (eg. /mybasepath/s/my-space) * - The pathname segment after the basePath matches any known application route (eg. /app/<id>/ or any application's `appRoute` configuration) * * Then a SPA navigation will be performed using `navigateToApp` using the corresponding application and path. @@ -727,23 +733,27 @@ export interface ApplicationStart { * // will call `application.navigateToApp('discover', { path: '/some-path?foo=bar'})` * application.navigateToUrl('https://kibana:8080/base-path/s/my-space/app/discover/some-path?foo=bar') * application.navigateToUrl('/base-path/s/my-space/app/discover/some-path?foo=bar') + * application.navigateToUrl('./discover/some-path?foo=bar') * * // will perform a full page reload using `window.location.assign` * application.navigateToUrl('https://elsewhere:8080/base-path/s/my-space/app/discover/some-path') // origin does not match * application.navigateToUrl('/app/discover/some-path') // does not include the current basePath * application.navigateToUrl('/base-path/s/my-space/app/unknown-app/some-path') // unknown application + * application.navigateToUrl('../discover') // resolve to `/base-path/s/my-space/discover` which is not a path of a known app. + * application.navigateToUrl('../../other-space/discover') // resolve to `/base-path/s/other-space/discover` which is not within the current basePath. * ``` * - * @param url - an absolute url, or a relative path, to navigate to. + * @param url - an absolute URL, an absolute path or a relative path, to navigate to. */ navigateToUrl(url: string): Promise<void>; /** - * Returns an URL to a given app, including the global base path. - * By default, the URL is relative (/basePath/app/my-app). - * Use the `absolute` option to generate an absolute url (http://host:port/basePath/app/my-app) + * Returns the absolute path (or URL) to a given app, including the global base path. + * + * By default, it returns the absolute path of the application (e.g `/basePath/app/my-app`). + * Use the `absolute` option to generate an absolute url instead (e.g `http://host:port/basePath/app/my-app`) * - * Note that when generating absolute urls, the origin (protocol, host and port) are determined from the browser's location. + * Note that when generating absolute urls, the origin (protocol, host and port) are determined from the browser's current location. * * @param appId * @param options.path - optional path inside application to deep link to diff --git a/src/core/public/application/utils.ts b/src/core/public/application/utils.ts deleted file mode 100644 index 85760526bf544..0000000000000 --- a/src/core/public/application/utils.ts +++ /dev/null @@ -1,128 +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 { IBasePath } from '../http'; -import { App, AppNavLinkStatus, AppStatus, ParsedAppUrl, PublicAppInfo } from './types'; - -/** - * Utility to remove trailing, leading or duplicate slashes. - * By default will only remove duplicates. - */ -export const removeSlashes = ( - url: string, - { - trailing = false, - leading = false, - duplicates = true, - }: { trailing?: boolean; leading?: boolean; duplicates?: boolean } = {} -): string => { - if (duplicates) { - url = url.replace(/\/{2,}/g, '/'); - } - if (trailing) { - url = url.replace(/\/$/, ''); - } - if (leading) { - url = url.replace(/^\//, ''); - } - return url; -}; - -export const appendAppPath = (appBasePath: string, path: string = '') => { - // Only prepend slash if not a hash or query path - path = path === '' || path.startsWith('#') || path.startsWith('?') ? path : `/${path}`; - // Do not remove trailing slash when in hashbang or basePath - const removeTrailing = path.indexOf('#') === -1 && appBasePath.indexOf('#') === -1; - return removeSlashes(`${appBasePath}${path}`, { - trailing: removeTrailing, - duplicates: true, - leading: false, - }); -}; - -/** - * Converts a relative path to an absolute url. - * Implementation is based on a specified behavior of the browser to automatically convert - * a relative url to an absolute one when setting the `href` attribute of a `<a>` html element. - * - * @example - * ```ts - * // current url: `https://kibana:8000/base-path/app/my-app` - * relativeToAbsolute('/base-path/app/another-app') => `https://kibana:8000/base-path/app/another-app` - * ``` - */ -export const relativeToAbsolute = (url: string): string => { - const a = document.createElement('a'); - a.setAttribute('href', url); - return a.href; -}; - -/** - * Parse given url and return the associated app id and path if any app matches. - * Input can either be: - * - a path containing the basePath, ie `/base-path/app/my-app/some-path` - * - an absolute url matching the `origin` of the kibana instance (as seen by the browser), - * i.e `https://kibana:8080/base-path/app/my-app/some-path` - */ -export const parseAppUrl = ( - url: string, - basePath: IBasePath, - apps: Map<string, App<unknown>>, - getOrigin: () => string = () => window.location.origin -): ParsedAppUrl | undefined => { - url = removeBasePath(url, basePath, getOrigin()); - if (!url.startsWith('/')) { - return undefined; - } - - for (const app of apps.values()) { - const appPath = app.appRoute || `/app/${app.id}`; - - if (url.startsWith(appPath)) { - const path = url.substr(appPath.length); - return { - app: app.id, - path: path.length ? path : undefined, - }; - } - } -}; - -const removeBasePath = (url: string, basePath: IBasePath, origin: string): string => { - if (url.startsWith(origin)) { - url = url.substring(origin.length); - } - return basePath.remove(url); -}; - -export function getAppInfo(app: App<unknown>): PublicAppInfo { - const navLinkStatus = - app.navLinkStatus === AppNavLinkStatus.default - ? app.status === AppStatus.inaccessible - ? AppNavLinkStatus.hidden - : AppNavLinkStatus.visible - : app.navLinkStatus!; - const { updater$, mount, ...infos } = app; - return { - ...infos, - status: app.status!, - navLinkStatus, - appRoute: app.appRoute!, - }; -} diff --git a/src/core/public/application/utils/append_app_path.test.ts b/src/core/public/application/utils/append_app_path.test.ts new file mode 100644 index 0000000000000..a153b5753bbe2 --- /dev/null +++ b/src/core/public/application/utils/append_app_path.test.ts @@ -0,0 +1,40 @@ +/* + * 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 { appendAppPath } from './append_app_path'; + +describe('appendAppPath', () => { + it('appends the appBasePath with given path', () => { + expect(appendAppPath('/app/my-app', '/some-path')).toEqual('/app/my-app/some-path'); + expect(appendAppPath('/app/my-app/', 'some-path')).toEqual('/app/my-app/some-path'); + expect(appendAppPath('/app/my-app', 'some-path')).toEqual('/app/my-app/some-path'); + expect(appendAppPath('/app/my-app', '')).toEqual('/app/my-app'); + }); + + it('preserves the trailing slash only if included in the hash or appPath', () => { + expect(appendAppPath('/app/my-app', '/some-path/')).toEqual('/app/my-app/some-path'); + expect(appendAppPath('/app/my-app', '/some-path#/')).toEqual('/app/my-app/some-path#/'); + expect(appendAppPath('/app/my-app#/', '')).toEqual('/app/my-app#/'); + expect(appendAppPath('/app/my-app#', '/')).toEqual('/app/my-app#/'); + expect(appendAppPath('/app/my-app', '/some-path#/hash/')).toEqual( + '/app/my-app/some-path#/hash/' + ); + expect(appendAppPath('/app/my-app', '/some-path#/hash')).toEqual('/app/my-app/some-path#/hash'); + }); +}); diff --git a/src/core/public/application/utils/append_app_path.ts b/src/core/public/application/utils/append_app_path.ts new file mode 100644 index 0000000000000..70cb4a44c648e --- /dev/null +++ b/src/core/public/application/utils/append_app_path.ts @@ -0,0 +1,32 @@ +/* + * 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 { removeSlashes } from './remove_slashes'; + +export const appendAppPath = (appBasePath: string, path: string = '') => { + // Only prepend slash if not a hash or query path + path = path === '' || path.startsWith('#') || path.startsWith('?') ? path : `/${path}`; + // Do not remove trailing slash when in hashbang or basePath + const removeTrailing = path.indexOf('#') === -1 && appBasePath.indexOf('#') === -1; + return removeSlashes(`${appBasePath}${path}`, { + trailing: removeTrailing, + duplicates: true, + leading: false, + }); +}; diff --git a/src/core/public/application/utils/get_app_info.test.ts b/src/core/public/application/utils/get_app_info.test.ts new file mode 100644 index 0000000000000..055f7d1a5ada9 --- /dev/null +++ b/src/core/public/application/utils/get_app_info.test.ts @@ -0,0 +1,75 @@ +/* + * 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 { of } from 'rxjs'; +import { App, AppNavLinkStatus, AppStatus } from '../types'; +import { getAppInfo } from './get_app_info'; + +describe('getAppInfo', () => { + const createApp = (props: Partial<App> = {}): App => ({ + mount: () => () => undefined, + updater$: of(() => undefined), + id: 'some-id', + title: 'some-title', + status: AppStatus.accessible, + navLinkStatus: AppNavLinkStatus.default, + appRoute: `/app/some-id`, + ...props, + }); + + it('converts an application and remove sensitive properties', () => { + const app = createApp(); + const info = getAppInfo(app); + + expect(info).toEqual({ + id: 'some-id', + title: 'some-title', + status: AppStatus.accessible, + navLinkStatus: AppNavLinkStatus.visible, + appRoute: `/app/some-id`, + }); + }); + + it('computes the navLinkStatus depending on the app status', () => { + expect( + getAppInfo( + createApp({ + navLinkStatus: AppNavLinkStatus.default, + status: AppStatus.inaccessible, + }) + ) + ).toEqual( + expect.objectContaining({ + navLinkStatus: AppNavLinkStatus.hidden, + }) + ); + expect( + getAppInfo( + createApp({ + navLinkStatus: AppNavLinkStatus.default, + status: AppStatus.accessible, + }) + ) + ).toEqual( + expect.objectContaining({ + navLinkStatus: AppNavLinkStatus.visible, + }) + ); + }); +}); diff --git a/src/core/public/application/utils/get_app_info.ts b/src/core/public/application/utils/get_app_info.ts new file mode 100644 index 0000000000000..71cd8a3e14929 --- /dev/null +++ b/src/core/public/application/utils/get_app_info.ts @@ -0,0 +1,36 @@ +/* + * 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 { App, AppNavLinkStatus, AppStatus, PublicAppInfo } from '../types'; + +export function getAppInfo(app: App<unknown>): PublicAppInfo { + const navLinkStatus = + app.navLinkStatus === AppNavLinkStatus.default + ? app.status === AppStatus.inaccessible + ? AppNavLinkStatus.hidden + : AppNavLinkStatus.visible + : app.navLinkStatus!; + const { updater$, mount, ...infos } = app; + return { + ...infos, + status: app.status!, + navLinkStatus, + appRoute: app.appRoute!, + }; +} diff --git a/src/core/public/application/utils/index.ts b/src/core/public/application/utils/index.ts new file mode 100644 index 0000000000000..3b8a34df8c50d --- /dev/null +++ b/src/core/public/application/utils/index.ts @@ -0,0 +1,24 @@ +/* + * 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 { appendAppPath } from './append_app_path'; +export { getAppInfo } from './get_app_info'; +export { parseAppUrl } from './parse_app_url'; +export { relativeToAbsolute } from './relative_to_absolute'; +export { removeSlashes } from './remove_slashes'; diff --git a/src/core/public/application/utils.test.ts b/src/core/public/application/utils/parse_app_url.test.ts similarity index 58% rename from src/core/public/application/utils.test.ts rename to src/core/public/application/utils/parse_app_url.test.ts index ee1d82a7a872e..bf7e0a88a0742 100644 --- a/src/core/public/application/utils.test.ts +++ b/src/core/public/application/utils/parse_app_url.test.ts @@ -17,78 +17,16 @@ * under the License. */ -import { of } from 'rxjs'; -import { App, AppNavLinkStatus, AppStatus } from './types'; -import { BasePath } from '../http/base_path'; -import { appendAppPath, getAppInfo, parseAppUrl, relativeToAbsolute, removeSlashes } from './utils'; - -describe('removeSlashes', () => { - it('only removes duplicates by default', () => { - expect(removeSlashes('/some//url//to//')).toEqual('/some/url/to/'); - expect(removeSlashes('some/////other//url')).toEqual('some/other/url'); - }); - - it('remove trailing slash when `trailing` is true', () => { - expect(removeSlashes('/some//url//to//', { trailing: true })).toEqual('/some/url/to'); - }); - - it('remove leading slash when `leading` is true', () => { - expect(removeSlashes('/some//url//to//', { leading: true })).toEqual('some/url/to/'); - }); - - it('does not removes duplicates when `duplicates` is false', () => { - expect(removeSlashes('/some//url//to/', { leading: true, duplicates: false })).toEqual( - 'some//url//to/' - ); - expect(removeSlashes('/some//url//to/', { trailing: true, duplicates: false })).toEqual( - '/some//url//to' - ); - }); - - it('accept mixed options', () => { - expect( - removeSlashes('/some//url//to/', { leading: true, duplicates: false, trailing: true }) - ).toEqual('some//url//to'); - expect( - removeSlashes('/some//url//to/', { leading: true, duplicates: true, trailing: true }) - ).toEqual('some/url/to'); - }); -}); - -describe('appendAppPath', () => { - it('appends the appBasePath with given path', () => { - expect(appendAppPath('/app/my-app', '/some-path')).toEqual('/app/my-app/some-path'); - expect(appendAppPath('/app/my-app/', 'some-path')).toEqual('/app/my-app/some-path'); - expect(appendAppPath('/app/my-app', 'some-path')).toEqual('/app/my-app/some-path'); - expect(appendAppPath('/app/my-app', '')).toEqual('/app/my-app'); - }); - - it('preserves the trailing slash only if included in the hash or appPath', () => { - expect(appendAppPath('/app/my-app', '/some-path/')).toEqual('/app/my-app/some-path'); - expect(appendAppPath('/app/my-app', '/some-path#/')).toEqual('/app/my-app/some-path#/'); - expect(appendAppPath('/app/my-app#/', '')).toEqual('/app/my-app#/'); - expect(appendAppPath('/app/my-app#', '/')).toEqual('/app/my-app#/'); - expect(appendAppPath('/app/my-app', '/some-path#/hash/')).toEqual( - '/app/my-app/some-path#/hash/' - ); - expect(appendAppPath('/app/my-app', '/some-path#/hash')).toEqual('/app/my-app/some-path#/hash'); - }); -}); - -describe('relativeToAbsolute', () => { - it('converts a relative path to an absolute url', () => { - const origin = window.location.origin; - expect(relativeToAbsolute('path')).toEqual(`${origin}/path`); - expect(relativeToAbsolute('/path#hash')).toEqual(`${origin}/path#hash`); - expect(relativeToAbsolute('/path?query=foo')).toEqual(`${origin}/path?query=foo`); - }); -}); +import { App } from '../types'; +import { BasePath } from '../../http/base_path'; +import { parseAppUrl } from './parse_app_url'; describe('parseAppUrl', () => { let apps: Map<string, App<any>>; let basePath: BasePath; - const getOrigin = () => 'https://kibana.local:8080'; + const currentUrl = + 'https://kibana.local:8080/base-path/app/current/current-path?current-query=true'; const createApp = (props: Partial<App>): App => { const app: App = { @@ -114,101 +52,178 @@ describe('parseAppUrl', () => { }); }); - describe('with relative paths', () => { + describe('with absolute paths', () => { it('parses the app id', () => { - expect(parseAppUrl('/base-path/app/foo', basePath, apps, getOrigin)).toEqual({ + expect(parseAppUrl('/base-path/app/foo', basePath, apps, currentUrl)).toEqual({ app: 'foo', path: undefined, }); - expect(parseAppUrl('/base-path/custom-bar', basePath, apps, getOrigin)).toEqual({ + expect(parseAppUrl('/base-path/custom-bar', basePath, apps, currentUrl)).toEqual({ app: 'bar', path: undefined, }); }); it('parses the path', () => { - expect(parseAppUrl('/base-path/app/foo/some/path', basePath, apps, getOrigin)).toEqual({ + expect(parseAppUrl('/base-path/app/foo/some/path', basePath, apps, currentUrl)).toEqual({ app: 'foo', path: '/some/path', }); - expect(parseAppUrl('/base-path/custom-bar/another/path/', basePath, apps, getOrigin)).toEqual( - { - app: 'bar', - path: '/another/path/', - } - ); + expect( + parseAppUrl('/base-path/custom-bar/another/path/', basePath, apps, currentUrl) + ).toEqual({ + app: 'bar', + path: '/another/path/', + }); }); it('includes query and hash in the path for default app route', () => { - expect(parseAppUrl('/base-path/app/foo#hash/bang', basePath, apps, getOrigin)).toEqual({ + expect(parseAppUrl('/base-path/app/foo#hash/bang', basePath, apps, currentUrl)).toEqual({ app: 'foo', path: '#hash/bang', }); - expect(parseAppUrl('/base-path/app/foo?hello=dolly', basePath, apps, getOrigin)).toEqual({ + expect(parseAppUrl('/base-path/app/foo?hello=dolly', basePath, apps, currentUrl)).toEqual({ app: 'foo', path: '?hello=dolly', }); - expect(parseAppUrl('/base-path/app/foo/path?hello=dolly', basePath, apps, getOrigin)).toEqual( - { - app: 'foo', - path: '/path?hello=dolly', - } - ); - expect(parseAppUrl('/base-path/app/foo/path#hash/bang', basePath, apps, getOrigin)).toEqual({ + expect( + parseAppUrl('/base-path/app/foo/path?hello=dolly', basePath, apps, currentUrl) + ).toEqual({ + app: 'foo', + path: '/path?hello=dolly', + }); + expect(parseAppUrl('/base-path/app/foo/path#hash/bang', basePath, apps, currentUrl)).toEqual({ app: 'foo', path: '/path#hash/bang', }); expect( - parseAppUrl('/base-path/app/foo/path#hash/bang?hello=dolly', basePath, apps, getOrigin) + parseAppUrl('/base-path/app/foo/path#hash/bang?hello=dolly', basePath, apps, currentUrl) ).toEqual({ app: 'foo', path: '/path#hash/bang?hello=dolly', }); }); it('includes query and hash in the path for custom app route', () => { - expect(parseAppUrl('/base-path/custom-bar#hash/bang', basePath, apps, getOrigin)).toEqual({ + expect(parseAppUrl('/base-path/custom-bar#hash/bang', basePath, apps, currentUrl)).toEqual({ app: 'bar', path: '#hash/bang', }); - expect(parseAppUrl('/base-path/custom-bar?hello=dolly', basePath, apps, getOrigin)).toEqual({ + expect(parseAppUrl('/base-path/custom-bar?hello=dolly', basePath, apps, currentUrl)).toEqual({ app: 'bar', path: '?hello=dolly', }); expect( - parseAppUrl('/base-path/custom-bar/path?hello=dolly', basePath, apps, getOrigin) + parseAppUrl('/base-path/custom-bar/path?hello=dolly', basePath, apps, currentUrl) ).toEqual({ app: 'bar', path: '/path?hello=dolly', }); expect( - parseAppUrl('/base-path/custom-bar/path#hash/bang', basePath, apps, getOrigin) + parseAppUrl('/base-path/custom-bar/path#hash/bang', basePath, apps, currentUrl) ).toEqual({ app: 'bar', path: '/path#hash/bang', }); expect( - parseAppUrl('/base-path/custom-bar/path#hash/bang?hello=dolly', basePath, apps, getOrigin) + parseAppUrl('/base-path/custom-bar/path#hash/bang?hello=dolly', basePath, apps, currentUrl) ).toEqual({ app: 'bar', path: '/path#hash/bang?hello=dolly', }); }); it('returns undefined when the app is not known', () => { - expect(parseAppUrl('/base-path/app/non-registered', basePath, apps, getOrigin)).toEqual( + expect(parseAppUrl('/base-path/app/non-registered', basePath, apps, currentUrl)).toEqual( undefined ); - expect(parseAppUrl('/base-path/unknown-path', basePath, apps, getOrigin)).toEqual(undefined); + expect(parseAppUrl('/base-path/unknown-path', basePath, apps, currentUrl)).toEqual(undefined); + }); + it('returns undefined when the path does not start with the base path', () => { + expect(parseAppUrl('/app/foo', basePath, apps, currentUrl)).toBeUndefined(); + }); + }); + + describe('with relative paths', () => { + it('works with sibling relative urls', () => { + expect( + parseAppUrl('./foo', basePath, apps, 'https://kibana.local:8080/base-path/app/current') + ).toEqual({ + app: 'foo', + path: undefined, + }); + }); + it('works with parent relative urls', () => { + expect( + parseAppUrl( + '../custom-bar', + basePath, + apps, + 'https://kibana.local:8080/base-path/app/current' + ) + ).toEqual({ + app: 'bar', + path: undefined, + }); + }); + it('works with nested parents', () => { + expect( + parseAppUrl( + '../../custom-bar', + basePath, + apps, + 'https://kibana.local:8080/base-path/app/current/some-path' + ) + ).toEqual({ + app: 'bar', + path: undefined, + }); + }); + it('parses the path', () => { + expect( + parseAppUrl( + './foo/path?hello=dolly', + basePath, + apps, + 'https://kibana.local:8080/base-path/app/current' + ) + ).toEqual({ + app: 'foo', + path: '/path?hello=dolly', + }); + }); + it('parses the path with query and hash', () => { + expect( + parseAppUrl( + '../custom-bar/path#hash?hello=dolly', + basePath, + apps, + 'https://kibana.local:8080/base-path/app/current' + ) + ).toEqual({ + app: 'bar', + path: '/path#hash?hello=dolly', + }); + }); + + it('returns undefined if the relative path redirect outside of the basePath', () => { + expect( + parseAppUrl( + '../../custom-bar', + basePath, + apps, + 'https://kibana.local:8080/base-path/app/current' + ) + ).toBeUndefined(); }); }); describe('with absolute urls', () => { it('parses the app id', () => { expect( - parseAppUrl('https://kibana.local:8080/base-path/app/foo', basePath, apps, getOrigin) + parseAppUrl('https://kibana.local:8080/base-path/app/foo', basePath, apps, currentUrl) ).toEqual({ app: 'foo', path: undefined, }); expect( - parseAppUrl('https://kibana.local:8080/base-path/custom-bar', basePath, apps, getOrigin) + parseAppUrl('https://kibana.local:8080/base-path/custom-bar', basePath, apps, currentUrl) ).toEqual({ app: 'bar', path: undefined, @@ -220,7 +235,7 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/app/foo/some/path', basePath, apps, - getOrigin + currentUrl ) ).toEqual({ app: 'foo', @@ -231,7 +246,7 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/custom-bar/another/path/', basePath, apps, - getOrigin + currentUrl ) ).toEqual({ app: 'bar', @@ -244,7 +259,7 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/app/foo#hash/bang', basePath, apps, - getOrigin + currentUrl ) ).toEqual({ app: 'foo', @@ -255,7 +270,7 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/app/foo?hello=dolly', basePath, apps, - getOrigin + currentUrl ) ).toEqual({ app: 'foo', @@ -266,7 +281,7 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/app/foo/path?hello=dolly', basePath, apps, - getOrigin + currentUrl ) ).toEqual({ app: 'foo', @@ -277,7 +292,7 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/app/foo/path#hash/bang', basePath, apps, - getOrigin + currentUrl ) ).toEqual({ app: 'foo', @@ -288,7 +303,7 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/app/foo/path#hash/bang?hello=dolly', basePath, apps, - getOrigin + currentUrl ) ).toEqual({ app: 'foo', @@ -301,7 +316,7 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/custom-bar#hash/bang', basePath, apps, - getOrigin + currentUrl ) ).toEqual({ app: 'bar', @@ -312,7 +327,7 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/custom-bar?hello=dolly', basePath, apps, - getOrigin + currentUrl ) ).toEqual({ app: 'bar', @@ -323,7 +338,7 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/custom-bar/path?hello=dolly', basePath, apps, - getOrigin + currentUrl ) ).toEqual({ app: 'bar', @@ -334,7 +349,7 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/custom-bar/path#hash/bang', basePath, apps, - getOrigin + currentUrl ) ).toEqual({ app: 'bar', @@ -345,7 +360,7 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/custom-bar/path#hash/bang?hello=dolly', basePath, apps, - getOrigin + currentUrl ) ).toEqual({ app: 'bar', @@ -358,11 +373,11 @@ describe('parseAppUrl', () => { 'https://kibana.local:8080/base-path/app/non-registered', basePath, apps, - getOrigin + currentUrl ) ).toEqual(undefined); expect( - parseAppUrl('https://kibana.local:8080/base-path/unknown-path', basePath, apps, getOrigin) + parseAppUrl('https://kibana.local:8080/base-path/unknown-path', basePath, apps, currentUrl) ).toEqual(undefined); }); it('returns undefined when origin does not match', () => { @@ -371,7 +386,7 @@ describe('parseAppUrl', () => { 'https://other-kibana.external:8080/base-path/app/foo', basePath, apps, - getOrigin + currentUrl ) ).toEqual(undefined); expect( @@ -379,62 +394,14 @@ describe('parseAppUrl', () => { 'https://other-kibana.external:8080/base-path/custom-bar', basePath, apps, - getOrigin + currentUrl ) ).toEqual(undefined); }); - }); -}); - -describe('getAppInfo', () => { - const createApp = (props: Partial<App> = {}): App => ({ - mount: () => () => undefined, - updater$: of(() => undefined), - id: 'some-id', - title: 'some-title', - status: AppStatus.accessible, - navLinkStatus: AppNavLinkStatus.default, - appRoute: `/app/some-id`, - ...props, - }); - - it('converts an application and remove sensitive properties', () => { - const app = createApp(); - const info = getAppInfo(app); - - expect(info).toEqual({ - id: 'some-id', - title: 'some-title', - status: AppStatus.accessible, - navLinkStatus: AppNavLinkStatus.visible, - appRoute: `/app/some-id`, + it('returns undefined when the path does not contain the base path', () => { + expect(parseAppUrl('https://kibana.local:8080/app/foo', basePath, apps, currentUrl)).toEqual( + undefined + ); }); }); - - it('computes the navLinkStatus depending on the app status', () => { - expect( - getAppInfo( - createApp({ - navLinkStatus: AppNavLinkStatus.default, - status: AppStatus.inaccessible, - }) - ) - ).toEqual( - expect.objectContaining({ - navLinkStatus: AppNavLinkStatus.hidden, - }) - ); - expect( - getAppInfo( - createApp({ - navLinkStatus: AppNavLinkStatus.default, - status: AppStatus.accessible, - }) - ) - ).toEqual( - expect.objectContaining({ - navLinkStatus: AppNavLinkStatus.visible, - }) - ); - }); }); diff --git a/src/core/public/application/utils/parse_app_url.ts b/src/core/public/application/utils/parse_app_url.ts new file mode 100644 index 0000000000000..d253129a63ae4 --- /dev/null +++ b/src/core/public/application/utils/parse_app_url.ts @@ -0,0 +1,83 @@ +/* + * 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 { getUrlOrigin } from '@kbn/std'; +import { resolve } from 'url'; +import { IBasePath } from '../../http'; +import { App, ParsedAppUrl } from '../types'; + +/** + * Parse given URL and return the associated app id and path if any app matches, or undefined if none do. + * Input can either be: + * + * - an absolute path containing the basePath, + * e.g `/base-path/app/my-app/some-path` + * + * - an absolute URL matching the `origin` of the Kibana instance (as seen by the browser), + * e.g `https://kibana:8080/base-path/app/my-app/some-path` + * + * - a path relative to the provided `currentUrl`. + * e.g with `currentUrl` being `https://kibana:8080/base-path/app/current-app/some-path` + * `../other-app/other-path` will be converted to `/base-path/app/other-app/other-path` + */ +export const parseAppUrl = ( + url: string, + basePath: IBasePath, + apps: Map<string, App<unknown>>, + currentUrl: string = window.location.href +): ParsedAppUrl | undefined => { + const currentOrigin = getUrlOrigin(currentUrl); + if (!currentOrigin) { + throw new Error('when manually provided, currentUrl must be valid url with an origin'); + } + const currentPath = currentUrl.substring(currentOrigin.length); + + // remove the origin from the given url + if (url.startsWith(currentOrigin)) { + url = url.substring(currentOrigin.length); + } + + // if the path is relative (i.e `../../to/somewhere`), we convert it to absolute + if (!url.startsWith('/')) { + url = resolve(currentPath, url); + } + + // if using a basePath and the absolute path does not starts with it, it can't be a match + const basePathValue = basePath.get(); + if (basePathValue && !url.startsWith(basePathValue)) { + return undefined; + } + + url = basePath.remove(url); + if (!url.startsWith('/')) { + return undefined; + } + + for (const app of apps.values()) { + const appPath = app.appRoute || `/app/${app.id}`; + + if (url.startsWith(appPath)) { + const path = url.substr(appPath.length); + return { + app: app.id, + path: path.length ? path : undefined, + }; + } + } +}; diff --git a/src/core/public/application/utils/relative_to_absolute.test.ts b/src/core/public/application/utils/relative_to_absolute.test.ts new file mode 100644 index 0000000000000..56a33450ce902 --- /dev/null +++ b/src/core/public/application/utils/relative_to_absolute.test.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 { relativeToAbsolute } from './relative_to_absolute'; + +describe('relativeToAbsolute', () => { + it('converts a relative path to an absolute url', () => { + const origin = window.location.origin; + expect(relativeToAbsolute('path')).toEqual(`${origin}/path`); + expect(relativeToAbsolute('/path#hash')).toEqual(`${origin}/path#hash`); + expect(relativeToAbsolute('/path?query=foo')).toEqual(`${origin}/path?query=foo`); + }); +}); diff --git a/src/core/public/application/utils/relative_to_absolute.ts b/src/core/public/application/utils/relative_to_absolute.ts new file mode 100644 index 0000000000000..0f24f754f56cd --- /dev/null +++ b/src/core/public/application/utils/relative_to_absolute.ts @@ -0,0 +1,35 @@ +/* + * 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. + */ + +/** + * Converts a relative path to an absolute url. + * Implementation is based on a specified behavior of the browser to automatically convert + * a relative url to an absolute one when setting the `href` attribute of a `<a>` html element. + * + * @example + * ```ts + * // current url: `https://kibana:8000/base-path/app/my-app` + * relativeToAbsolute('/base-path/app/another-app') => `https://kibana:8000/base-path/app/another-app` + * ``` + */ +export const relativeToAbsolute = (url: string): string => { + const a = document.createElement('a'); + a.setAttribute('href', url); + return a.href; +}; diff --git a/src/core/public/application/utils/remove_slashes.test.ts b/src/core/public/application/utils/remove_slashes.test.ts new file mode 100644 index 0000000000000..719e1ea08d109 --- /dev/null +++ b/src/core/public/application/utils/remove_slashes.test.ts @@ -0,0 +1,53 @@ +/* + * 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 { removeSlashes } from './remove_slashes'; + +describe('removeSlashes', () => { + it('only removes duplicates by default', () => { + expect(removeSlashes('/some//url//to//')).toEqual('/some/url/to/'); + expect(removeSlashes('some/////other//url')).toEqual('some/other/url'); + }); + + it('remove trailing slash when `trailing` is true', () => { + expect(removeSlashes('/some//url//to//', { trailing: true })).toEqual('/some/url/to'); + }); + + it('remove leading slash when `leading` is true', () => { + expect(removeSlashes('/some//url//to//', { leading: true })).toEqual('some/url/to/'); + }); + + it('does not removes duplicates when `duplicates` is false', () => { + expect(removeSlashes('/some//url//to/', { leading: true, duplicates: false })).toEqual( + 'some//url//to/' + ); + expect(removeSlashes('/some//url//to/', { trailing: true, duplicates: false })).toEqual( + '/some//url//to' + ); + }); + + it('accept mixed options', () => { + expect( + removeSlashes('/some//url//to/', { leading: true, duplicates: false, trailing: true }) + ).toEqual('some//url//to'); + expect( + removeSlashes('/some//url//to/', { leading: true, duplicates: true, trailing: true }) + ).toEqual('some/url/to'); + }); +}); diff --git a/src/core/public/application/utils/remove_slashes.ts b/src/core/public/application/utils/remove_slashes.ts new file mode 100644 index 0000000000000..641d7bc4164f4 --- /dev/null +++ b/src/core/public/application/utils/remove_slashes.ts @@ -0,0 +1,42 @@ +/* + * 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. + */ + +/** + * Utility to remove trailing, leading or duplicate slashes. + * By default will only remove duplicates. + */ +export const removeSlashes = ( + url: string, + { + trailing = false, + leading = false, + duplicates = true, + }: { trailing?: boolean; leading?: boolean; duplicates?: boolean } = {} +): string => { + if (duplicates) { + url = url.replace(/\/{2,}/g, '/'); + } + if (trailing) { + url = url.replace(/\/$/, ''); + } + if (leading) { + url = url.replace(/^\//, ''); + } + return url; +}; diff --git a/src/core/public/http/base_path.ts b/src/core/public/http/base_path.ts index 5d9eb51023b78..78e9cf75ff806 100644 --- a/src/core/public/http/base_path.ts +++ b/src/core/public/http/base_path.ts @@ -16,24 +16,6 @@ * specific language governing permissions and limitations * under the 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 { modifyUrl } from '@kbn/std'; From e4b2b610a6d10df5239a9830c8fdec66456e9175 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2020 18:20:19 +0300 Subject: [PATCH 101/142] Update dependency vega to ^5.17.0 (#79088) Co-authored-by: Renovate Bot <bot@renovateapp.com> --- package.json | 2 +- yarn.lock | 32 ++++++++++++++++++++++++-------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index e70b0386bf5e7..864954e63f7e1 100644 --- a/package.json +++ b/package.json @@ -478,7 +478,7 @@ "tree-kill": "^1.2.2", "typescript": "4.0.2", "ui-select": "0.19.8", - "vega": "^5.16.1", + "vega": "^5.17.0", "vega-lite": "^4.16.8", "vega-schema-url-parser": "^2.1.0", "vega-tooltip": "^0.24.2", diff --git a/yarn.lock b/yarn.lock index c84e43942e3cd..399cc80a557d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -30355,7 +30355,7 @@ vega-lite@^4.16.8: vega-util "~1.15.3" yargs "~16.0.3" -vega-loader@^4.3.2, vega-loader@^4.3.3, vega-loader@~4.3.3: +vega-loader@^4.3.2, vega-loader@^4.3.3: version "4.3.3" resolved "https://registry.yarnpkg.com/vega-loader/-/vega-loader-4.3.3.tgz#1432dabae4dd7ab344f84c5ae6e250234e9c1005" integrity sha512-ZcAMi6C7yfbA3gpxDnFe3PvsP/jcDwUjgPIpZ2IYsaQS+JijZAj5g3i4mpQCao0Atc+C/g7htg0Ir3twFLPjkQ== @@ -30366,6 +30366,17 @@ vega-loader@^4.3.2, vega-loader@^4.3.3, vega-loader@~4.3.3: vega-format "^1.0.4" vega-util "^1.15.2" +vega-loader@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/vega-loader/-/vega-loader-4.4.0.tgz#fc515b7368c46b2be8df1fcf3c35c696c13c453d" + integrity sha512-e5enQECdau7rJob0NFB5pGumh3RaaSWWm90+boxMy3ay2b4Ki/3XIvo+C4F1Lx04qSxvQF7tO2LJcklRm6nqRA== + dependencies: + d3-dsv "^2.0.0" + node-fetch "^2.6.1" + topojson-client "^3.1.0" + vega-format "^1.0.4" + vega-util "^1.16.0" + vega-parser@~6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/vega-parser/-/vega-parser-6.1.0.tgz#485fb6fcd79d14b09efee340e2b55fb510e57e20" @@ -30485,11 +30496,16 @@ vega-typings@~0.19.0: dependencies: vega-util "^1.15.2" -vega-util@^1.15.2, vega-util@~1.15.2, vega-util@~1.15.3: +vega-util@^1.15.2, vega-util@~1.15.3: version "1.15.3" resolved "https://registry.yarnpkg.com/vega-util/-/vega-util-1.15.3.tgz#b42b4fb11f32fbb57fb5cd116d4d3e1827d177aa" integrity sha512-NCbfCPMVgdP4geLrFtCDN9PTEXrgZgJBBLvpyos7HGv2xSe9bGjDCysv6qcueHrc1myEeCQzrHDFaShny6wXDg== +vega-util@^1.16.0, vega-util@~1.16.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/vega-util/-/vega-util-1.16.0.tgz#77405d8df0a94944d106bdc36015f0d43aa2caa3" + integrity sha512-6mmz6mI+oU4zDMeKjgvE2Fjz0Oh6zo6WGATcvCfxH2gXBzhBHmy5d25uW5Zjnkc6QBXSWPLV9Xa6SiqMsrsKog== + vega-view-transforms@~4.5.8: version "4.5.8" resolved "https://registry.yarnpkg.com/vega-view-transforms/-/vega-view-transforms-4.5.8.tgz#c8dc42c3c7d4aa725d40b8775180c9f23bc98f4e" @@ -30533,10 +30549,10 @@ vega-wordcloud@~4.1.3: vega-statistics "^1.7.9" vega-util "^1.15.2" -vega@^5.16.1: - version "5.16.1" - resolved "https://registry.yarnpkg.com/vega/-/vega-5.16.1.tgz#76a794c28118b685e8578a8f9944c5e239dbe1cd" - integrity sha512-bqovD23iKvIgFnTkP9WqapJbaejhgdED6YjAVWIwG8hsDq5Lf/ZNstJJWPiSDu3j785GQU/o6ZU3RXywdH4dJA== +vega@^5.17.0: + version "5.17.0" + resolved "https://registry.yarnpkg.com/vega/-/vega-5.17.0.tgz#2b33296e257c97b79ee6501d4d1905fb1414d080" + integrity sha512-2Rm9aS3cSMXE55YgjfkuOmvSBMtiM/85/qX/WHLc+YiJacKGiwY9yzeC+w2Ft50JUs3nKZc1KB90ePgf5mfo0Q== dependencies: vega-crossfilter "~4.0.5" vega-dataflow "~5.7.3" @@ -30549,7 +30565,7 @@ vega@^5.16.1: vega-geo "~4.3.7" vega-hierarchy "~4.0.9" vega-label "~1.0.0" - vega-loader "~4.3.3" + vega-loader "~4.4.0" vega-parser "~6.1.0" vega-projection "~1.4.5" vega-regression "~1.0.9" @@ -30560,7 +30576,7 @@ vega@^5.16.1: vega-time "~2.0.4" vega-transforms "~4.9.3" vega-typings "~0.19.0" - vega-util "~1.15.2" + vega-util "~1.16.0" vega-view "~5.9.0" vega-view-transforms "~4.5.8" vega-voronoi "~4.1.5" From 72a41ab03d19f885792b874706589819f2f73f73 Mon Sep 17 00:00:00 2001 From: Nick Peihl <nick.peihl@elastic.co> Date: Thu, 1 Oct 2020 08:20:45 -0700 Subject: [PATCH 102/142] Update EMS landing page link (#78515) Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> --- src/plugins/maps_legacy/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/maps_legacy/config.ts b/src/plugins/maps_legacy/config.ts index 46d4a8fb6cb90..f49d56dedd45f 100644 --- a/src/plugins/maps_legacy/config.ts +++ b/src/plugins/maps_legacy/config.ts @@ -29,7 +29,7 @@ export const configSchema = schema.object({ manifestServiceUrl: schema.string({ defaultValue: '' }), emsFileApiUrl: schema.string({ defaultValue: 'https://vector.maps.elastic.co' }), emsTileApiUrl: schema.string({ defaultValue: 'https://tiles.maps.elastic.co' }), - emsLandingPageUrl: schema.string({ defaultValue: 'https://maps.elastic.co/v7.7' }), + emsLandingPageUrl: schema.string({ defaultValue: 'https://maps.elastic.co/v7.10' }), emsFontLibraryUrl: schema.string({ defaultValue: 'https://tiles.maps.elastic.co/fonts/{fontstack}/{range}.pbf', }), From e83144ee405517ae089b785ea0a351ee66b8cf56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20C=C3=B4t=C3=A9?= <mikecote@users.noreply.github.com> Date: Thu, 1 Oct 2020 11:22:08 -0400 Subject: [PATCH 103/142] Fix alert add and edit flyout to not close when user clicks outside (#78860) --- .../public/application/sections/alert_form/alert_add.tsx | 1 - .../public/application/sections/alert_form/alert_edit.tsx | 1 - 2 files changed, 2 deletions(-) diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add.tsx index 97dcfec5ed3c6..7b81298e8e4b6 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add.tsx @@ -138,7 +138,6 @@ export const AlertAdd = ({ aria-labelledby="flyoutAlertAddTitle" size="m" maxWidth={620} - ownFocus > <EuiFlyoutHeader hasBorder> <EuiTitle size="s" data-test-subj="addAlertFlyoutTitle"> diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.tsx index f991cea9c009c..999873a650f07 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.tsx @@ -107,7 +107,6 @@ export const AlertEdit = ({ initialAlert, onClose }: AlertEditProps) => { aria-labelledby="flyoutAlertEditTitle" size="m" maxWidth={620} - ownFocus > <EuiFlyoutHeader hasBorder> <EuiTitle size="s" data-test-subj="editAlertFlyoutTitle"> From 758f537708d96a870286850f526a5e94e9e68eee Mon Sep 17 00:00:00 2001 From: Tyler Smalley <tyler.smalley@elastic.co> Date: Thu, 1 Oct 2020 08:24:31 -0700 Subject: [PATCH 104/142] [docs] Fixes wording in backport policy (#79132) Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co> --- docs/developer/contributing/development-github.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/developer/contributing/development-github.asciidoc b/docs/developer/contributing/development-github.asciidoc index 84f51843098a7..c5a3d942f2af3 100644 --- a/docs/developer/contributing/development-github.asciidoc +++ b/docs/developer/contributing/development-github.asciidoc @@ -25,7 +25,7 @@ Pull requests are made into the `master` branch and then backported when it is s * Breaking changes do not get backported and only go into `master`. * All non-breaking changes can be backported to the `<major>.x` branch. * Features should not be backported to a `<major>.<minor>` branch. -* Bugs can be backported to a `<major>.<minor>` branch if the changes are safe and appropriate. Safety is a judgment call you make based on factors like the bug's severity, test coverage, confidence in the changes, etc. Your reasoning should be included in the pull request description. +* Bug fixes can be backported to a `<major>.<minor>` branch if the changes are safe and appropriate. Safety is a judgment call you make based on factors like the bug's severity, test coverage, confidence in the changes, etc. Your reasoning should be included in the pull request description. * Documentation changes can be backported to any branch at any time. [discrete] From e59c78c2b1f13058821a3f565359f5f3b7c9c73e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20C=C3=B4t=C3=A9?= <mikecote@users.noreply.github.com> Date: Thu, 1 Oct 2020 11:24:54 -0400 Subject: [PATCH 105/142] Fix scenario where orphaned API keys can exist when SO operations fail (#78843) * Fix scenario where orphaned API keys can exist * Add test for enable API --- .../alerts/server/alerts_client.test.ts | 67 +++++++++- x-pack/plugins/alerts/server/alerts_client.ts | 125 ++++++++++-------- 2 files changed, 135 insertions(+), 57 deletions(-) diff --git a/x-pack/plugins/alerts/server/alerts_client.test.ts b/x-pack/plugins/alerts/server/alerts_client.test.ts index d4817eab64acb..a5846cd1060c5 100644 --- a/x-pack/plugins/alerts/server/alerts_client.test.ts +++ b/x-pack/plugins/alerts/server/alerts_client.test.ts @@ -778,8 +778,12 @@ describe('create()', () => { expect(taskManager.schedule).not.toHaveBeenCalled(); }); - test('throws error if create saved object fails', async () => { + test('throws error and invalidates API key when create saved object fails', async () => { const data = getMockData(); + alertsClientParams.createAPIKey.mockResolvedValueOnce({ + apiKeysEnabled: true, + result: { id: '123', name: '123', api_key: 'abc' }, + }); unsecuredSavedObjectsClient.bulkGet.mockResolvedValueOnce({ saved_objects: [ { @@ -798,6 +802,7 @@ describe('create()', () => { `"Test failure"` ); expect(taskManager.schedule).not.toHaveBeenCalled(); + expect(alertsClientParams.invalidateAPIKey).toHaveBeenCalledWith({ id: '123' }); }); test('attempts to remove saved object if scheduling failed', async () => { @@ -1422,6 +1427,10 @@ describe('enable()', () => { }); test('throws error when failing to update the first time', async () => { + alertsClientParams.createAPIKey.mockResolvedValueOnce({ + apiKeysEnabled: true, + result: { id: '123', name: '123', api_key: 'abc' }, + }); unsecuredSavedObjectsClient.update.mockReset(); unsecuredSavedObjectsClient.update.mockRejectedValueOnce(new Error('Fail to update')); @@ -1430,6 +1439,7 @@ describe('enable()', () => { ); expect(alertsClientParams.getUserName).toHaveBeenCalled(); expect(alertsClientParams.createAPIKey).toHaveBeenCalled(); + expect(alertsClientParams.invalidateAPIKey).toHaveBeenCalledWith({ id: '123' }); expect(unsecuredSavedObjectsClient.update).toHaveBeenCalledTimes(1); expect(taskManager.schedule).not.toHaveBeenCalled(); }); @@ -3926,6 +3936,52 @@ describe('update()', () => { ); }); + test('throws when unsecuredSavedObjectsClient update fails and invalidates newly created API key', async () => { + alertsClientParams.createAPIKey.mockResolvedValueOnce({ + apiKeysEnabled: true, + result: { id: '234', name: '234', api_key: 'abc' }, + }); + unsecuredSavedObjectsClient.bulkGet.mockResolvedValueOnce({ + saved_objects: [ + { + id: '1', + type: 'action', + attributes: { + actions: [], + actionTypeId: 'test', + }, + references: [], + }, + ], + }); + unsecuredSavedObjectsClient.create.mockRejectedValue(new Error('Fail')); + await expect( + alertsClient.update({ + id: '1', + data: { + schedule: { interval: '10s' }, + name: 'abc', + tags: ['foo'], + params: { + bar: true, + }, + throttle: null, + actions: [ + { + group: 'default', + id: '1', + params: { + foo: true, + }, + }, + ], + }, + }) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"Fail"`); + expect(alertsClientParams.invalidateAPIKey).not.toHaveBeenCalledWith({ id: '123' }); + expect(alertsClientParams.invalidateAPIKey).toHaveBeenCalledWith({ id: '234' }); + }); + describe('updating an alert schedule', () => { function mockApiCalls( alertId: string, @@ -4360,13 +4416,18 @@ describe('updateApiKey()', () => { expect(alertsClientParams.invalidateAPIKey).not.toHaveBeenCalled(); }); - test('throws when unsecuredSavedObjectsClient update fails', async () => { + test('throws when unsecuredSavedObjectsClient update fails and invalidates newly created API key', async () => { + alertsClientParams.createAPIKey.mockResolvedValueOnce({ + apiKeysEnabled: true, + result: { id: '234', name: '234', api_key: 'abc' }, + }); unsecuredSavedObjectsClient.update.mockRejectedValueOnce(new Error('Fail')); await expect(alertsClient.updateApiKey({ id: '1' })).rejects.toThrowErrorMatchingInlineSnapshot( `"Fail"` ); - expect(alertsClientParams.invalidateAPIKey).not.toHaveBeenCalled(); + expect(alertsClientParams.invalidateAPIKey).not.toHaveBeenCalledWith({ id: '123' }); + expect(alertsClientParams.invalidateAPIKey).toHaveBeenCalledWith({ id: '234' }); }); describe('authorization', () => { diff --git a/x-pack/plugins/alerts/server/alerts_client.ts b/x-pack/plugins/alerts/server/alerts_client.ts index 033fdd752c695..bcc3c9bcf7e55 100644 --- a/x-pack/plugins/alerts/server/alerts_client.ts +++ b/x-pack/plugins/alerts/server/alerts_client.ts @@ -229,14 +229,21 @@ export class AlertsClient { muteAll: false, mutedInstanceIds: [], }; - const createdAlert = await this.unsecuredSavedObjectsClient.create( - 'alert', - this.updateMeta(rawAlert), - { - ...options, - references, - } - ); + let createdAlert: SavedObject<RawAlert>; + try { + createdAlert = await this.unsecuredSavedObjectsClient.create( + 'alert', + this.updateMeta(rawAlert), + { + ...options, + references, + } + ); + } catch (e) { + // Avoid unused API key + this.invalidateApiKey({ apiKey: rawAlert.apiKey }); + throw e; + } if (data.enabled) { let scheduledTask; try { @@ -498,23 +505,31 @@ export class AlertsClient { : null; const apiKeyAttributes = this.apiKeyAsAlertAttributes(createdAPIKey, username); - const updatedObject = await this.unsecuredSavedObjectsClient.create<RawAlert>( - 'alert', - this.updateMeta({ - ...attributes, - ...data, - ...apiKeyAttributes, - params: validatedAlertTypeParams as RawAlert['params'], - actions, - updatedBy: username, - }), - { - id, - overwrite: true, - version, - references, - } - ); + let updatedObject: SavedObject<RawAlert>; + const createAttributes = this.updateMeta({ + ...attributes, + ...data, + ...apiKeyAttributes, + params: validatedAlertTypeParams as RawAlert['params'], + actions, + updatedBy: username, + }); + try { + updatedObject = await this.unsecuredSavedObjectsClient.create<RawAlert>( + 'alert', + createAttributes, + { + id, + overwrite: true, + version, + references, + } + ); + } catch (e) { + // Avoid unused API key + this.invalidateApiKey({ apiKey: createAttributes.apiKey }); + throw e; + } return this.getPartialAlertFromRaw( id, @@ -580,19 +595,21 @@ export class AlertsClient { } const username = await this.getUserName(); - await this.unsecuredSavedObjectsClient.update( - 'alert', - id, - this.updateMeta({ - ...attributes, - ...this.apiKeyAsAlertAttributes( - await this.createAPIKey(this.generateAPIKeyName(attributes.alertTypeId, attributes.name)), - username - ), - updatedBy: username, - }), - { version } - ); + const updateAttributes = this.updateMeta({ + ...attributes, + ...this.apiKeyAsAlertAttributes( + await this.createAPIKey(this.generateAPIKeyName(attributes.alertTypeId, attributes.name)), + username + ), + updatedBy: username, + }); + try { + await this.unsecuredSavedObjectsClient.update('alert', id, updateAttributes, { version }); + } catch (e) { + // Avoid unused API key + this.invalidateApiKey({ apiKey: updateAttributes.apiKey }); + throw e; + } if (apiKeyToInvalidate) { await this.invalidateApiKey({ apiKey: apiKeyToInvalidate }); @@ -658,22 +675,22 @@ export class AlertsClient { if (attributes.enabled === false) { const username = await this.getUserName(); - await this.unsecuredSavedObjectsClient.update( - 'alert', - id, - this.updateMeta({ - ...attributes, - enabled: true, - ...this.apiKeyAsAlertAttributes( - await this.createAPIKey( - this.generateAPIKeyName(attributes.alertTypeId, attributes.name) - ), - username - ), - updatedBy: username, - }), - { version } - ); + const updateAttributes = this.updateMeta({ + ...attributes, + enabled: true, + ...this.apiKeyAsAlertAttributes( + await this.createAPIKey(this.generateAPIKeyName(attributes.alertTypeId, attributes.name)), + username + ), + updatedBy: username, + }); + try { + await this.unsecuredSavedObjectsClient.update('alert', id, updateAttributes, { version }); + } catch (e) { + // Avoid unused API key + this.invalidateApiKey({ apiKey: updateAttributes.apiKey }); + throw e; + } const scheduledTask = await this.scheduleAlert(id, attributes.alertTypeId); await this.unsecuredSavedObjectsClient.update('alert', id, { scheduledTaskId: scheduledTask.id, From d4a9b4bc0b806655f5299e065550564ef91015c8 Mon Sep 17 00:00:00 2001 From: Wylie Conlon <william.conlon@elastic.co> Date: Thu, 1 Oct 2020 11:30:21 -0400 Subject: [PATCH 106/142] [Vega] Fix unexpected change in autosizing behavior post upgrade (#77408) * [Vega] Fix unexpected change in autosizing behavior post upgrade * Add docs * Fix type issues * Fix i18n and snapshot * Fix snapshot? * Fix time in snapshot * Update style of sizing function --- docs/user/dashboard/vega-reference.asciidoc | 35 ++++- .../vega_visualization.test.js.snap | 4 +- .../vis_type_vega/public/data_model/types.ts | 19 ++- .../public/data_model/vega_parser.test.js | 100 ++++++++++--- .../public/data_model/vega_parser.ts | 141 ++++++++++-------- .../public/vega_view/vega_base_view.js | 5 +- .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 8 files changed, 199 insertions(+), 107 deletions(-) diff --git a/docs/user/dashboard/vega-reference.asciidoc b/docs/user/dashboard/vega-reference.asciidoc index eed8d9a35b874..0bc77ab0a417e 100644 --- a/docs/user/dashboard/vega-reference.asciidoc +++ b/docs/user/dashboard/vega-reference.asciidoc @@ -11,7 +11,7 @@ For additional *Vega* and *Vega-Lite* information, refer to the reference sectio {kib} has extended Vega and Vega-Lite with extensions that support: -* Default height and width +* Automatic sizing * Default theme to match {kib} * Writing {es} queries using the time range and filters from dashboards * Using the Elastic Map Service in Vega maps @@ -22,12 +22,35 @@ For additional *Vega* and *Vega-Lite* information, refer to the reference sectio [float] [[vega-sizing-and-positioning]] -==== Default height and width +==== Automatic sizing -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. +Most users will want their Vega visualizations to take the full available space, so unlike +Vega examples, `width` and `height` are not required parameters in {kib}. To set the width +or height manually, set `autosize: none`. For example, to set the height to a specific pixel value: + +``` +autosize: none +width: container +height: 200 +``` + +The default {kib} settings which are inherited by your visualizations are: + +``` +autosize: { + type: fit + contains: padding +} +width: container +height: container +``` + +{kib} is able to merge your custom `autosize` settings with the defaults. The options `fit-x` +and `fit-y` are supported but not recommended over the default `fit` setting. + +To learn more, read about +https://vega.github.io/vega/docs/specification/#autosize[autosize] +in the Vega documentation. [float] [[vega-theme]] diff --git a/src/plugins/vis_type_vega/public/__snapshots__/vega_visualization.test.js.snap b/src/plugins/vis_type_vega/public/__snapshots__/vega_visualization.test.js.snap index 0d38d9775a4cd..8b813ee06b1b3 100644 --- a/src/plugins/vis_type_vega/public/__snapshots__/vega_visualization.test.js.snap +++ b/src/plugins/vis_type_vega/public/__snapshots__/vega_visualization.test.js.snap @@ -4,6 +4,6 @@ exports[`VegaVisualizations VegaVisualization - basics should show vega blank re exports[`VegaVisualizations VegaVisualization - basics should show vega graph (may fail in dev env) 1`] = `"<div class=\\"vgaVis__view\\" style=\\"height: 100%; cursor: default;\\" role=\\"graphics-document\\" aria-roledescription=\\"visualization\\" aria-label=\\"Vega visualization\\"><svg xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" version=\\"1.1\\" class=\\"marks\\" width=\\"512\\" height=\\"512\\" viewBox=\\"0 0 512 512\\" style=\\"background-color: transparent;\\"><g fill=\\"none\\" stroke-miterlimit=\\"10\\" transform=\\"translate(0,0)\\"><g class=\\"mark-group role-frame root\\" role=\\"graphics-object\\" aria-roledescription=\\"group mark container\\"><g transform=\\"translate(0,0)\\"><path class=\\"background\\" aria-hidden=\\"true\\" d=\\"M0,0h512v512h-512Z\\"></path><g><g class=\\"mark-group role-scope\\" role=\\"graphics-object\\" aria-roledescription=\\"group mark container\\"><g transform=\\"translate(0,0)\\"><path class=\\"background\\" aria-hidden=\\"true\\" d=\\"M0,0h0v0h0Z\\"></path><g><g class=\\"mark-area role-mark\\" role=\\"graphics-symbol\\" aria-roledescription=\\"area mark container\\"><path d=\\"M0,512C18.962962962962962,512,37.925925925925924,512,56.888888888888886,512C75.85185185185185,512,94.81481481481481,512,113.77777777777777,512C132.74074074074073,512,151.7037037037037,512,170.66666666666666,512C189.62962962962962,512,208.59259259259258,512,227.55555555555554,512C246.5185185185185,512,265.48148148148147,512,284.44444444444446,512C303.4074074074074,512,322.3703703703704,512,341.3333333333333,512C360.29629629629625,512,379.25925925925924,512,398.2222222222222,512C417.18518518518516,512,436.1481481481481,512,455.1111111111111,512C474.0740740740741,512,493.037037037037,512,512,512L512,355.2C493.037037037037,324.79999999999995,474.0740740740741,294.4,455.1111111111111,294.4C436.1481481481481,294.4,417.18518518518516,457.6,398.2222222222222,457.6C379.25925925925924,457.6,360.29629629629625,233.60000000000002,341.3333333333333,233.60000000000002C322.3703703703704,233.60000000000002,303.4074074074074,435.2,284.44444444444446,435.2C265.48148148148147,435.2,246.5185185185185,345.6,227.55555555555554,345.6C208.59259259259258,345.6,189.62962962962962,451.2,170.66666666666666,451.2C151.7037037037037,451.2,132.74074074074073,252.8,113.77777777777777,252.8C94.81481481481481,252.8,75.85185185185185,346.1333333333333,56.888888888888886,374.4C37.925925925925924,402.66666666666663,18.962962962962962,412.5333333333333,0,422.4Z\\" fill=\\"#54B399\\" fill-opacity=\\"1\\"></path></g></g><path class=\\"foreground\\" aria-hidden=\\"true\\" d=\\"\\" display=\\"none\\"></path></g><g transform=\\"translate(0,0)\\"><path class=\\"background\\" aria-hidden=\\"true\\" d=\\"M0,0h0v0h0Z\\"></path><g><g class=\\"mark-area role-mark\\" role=\\"graphics-symbol\\" aria-roledescription=\\"area mark container\\"><path d=\\"M0,422.4C18.962962962962962,412.5333333333333,37.925925925925924,402.66666666666663,56.888888888888886,374.4C75.85185185185185,346.1333333333333,94.81481481481481,252.8,113.77777777777777,252.8C132.74074074074073,252.8,151.7037037037037,451.2,170.66666666666666,451.2C189.62962962962962,451.2,208.59259259259258,345.6,227.55555555555554,345.6C246.5185185185185,345.6,265.48148148148147,435.2,284.44444444444446,435.2C303.4074074074074,435.2,322.3703703703704,233.60000000000002,341.3333333333333,233.60000000000002C360.29629629629625,233.60000000000002,379.25925925925924,457.6,398.2222222222222,457.6C417.18518518518516,457.6,436.1481481481481,294.4,455.1111111111111,294.4C474.0740740740741,294.4,493.037037037037,324.79999999999995,512,355.2L512,307.2C493.037037037037,275.2,474.0740740740741,243.2,455.1111111111111,243.2C436.1481481481481,243.2,417.18518518518516,371.2,398.2222222222222,371.2C379.25925925925924,371.2,360.29629629629625,22.399999999999977,341.3333333333333,22.399999999999977C322.3703703703704,22.399999999999977,303.4074074074074,278.4,284.44444444444446,278.4C265.48148148148147,278.4,246.5185185185185,204.8,227.55555555555554,192C208.59259259259258,179.20000000000002,189.62962962962962,185.6,170.66666666666666,172.8C151.7037037037037,160.00000000000003,132.74074074074073,83.19999999999999,113.77777777777777,83.19999999999999C94.81481481481481,83.19999999999999,75.85185185185185,83.19999999999999,56.888888888888886,83.19999999999999C37.925925925925924,83.19999999999999,18.962962962962962,164.79999999999998,0,246.39999999999998Z\\" fill=\\"#6092C0\\" fill-opacity=\\"1\\"></path></g></g><path class=\\"foreground\\" aria-hidden=\\"true\\" d=\\"\\" display=\\"none\\"></path></g></g></g><path class=\\"foreground\\" aria-hidden=\\"true\\" d=\\"\\" display=\\"none\\"></path></g></g></g></svg></div><div class=\\"vgaVis__controls vgaVis__controls--column\\"></div>"`; -exports[`VegaVisualizations VegaVisualization - basics should show vegalite graph and update on resize (may fail in dev env) 1`] = `"<div class=\\"vgaVis__view\\" style=\\"height: 100%; cursor: default;\\" role=\\"graphics-document\\" aria-roledescription=\\"visualization\\" aria-label=\\"Vega visualization\\"><svg xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" version=\\"1.1\\" class=\\"marks\\" width=\\"512\\" height=\\"506\\" viewBox=\\"0 0 512 506\\" style=\\"background-color: transparent;\\"><g fill=\\"none\\" stroke-miterlimit=\\"10\\" transform=\\"translate(7,5)\\"><g class=\\"mark-group role-frame root\\" role=\\"graphics-object\\" aria-roledescription=\\"group mark container\\"><g transform=\\"translate(0,0)\\"><path class=\\"background\\" aria-hidden=\\"true\\" d=\\"M0.5,0.5h498v494h-498Z\\" fill=\\"transparent\\" stroke=\\"#ddd\\"></path><g><g class=\\"mark-line role-mark marks\\" role=\\"graphics-object\\" aria-roledescription=\\"line mark container\\"><path aria-label=\\"key: Dec 11, 2017; doc_count: 0\\" role=\\"graphics-symbol\\" aria-roledescription=\\"line mark\\" d=\\"M0,494L55.33333333333333,494L110.66666666666666,494L166,44.953999999999986L221.33333333333331,32.9004L276.6666666666667,33.59199999999998L332,480.8596L387.3333333333333,494L442.66666666666663,494L498,494\\" stroke=\\"#54B399\\" stroke-width=\\"2\\"></path></g></g><path class=\\"foreground\\" aria-hidden=\\"true\\" d=\\"\\" display=\\"none\\"></path></g></g></g></svg></div><div class=\\"vgaVis__controls vgaVis__controls--column\\"></div>"`; +exports[`VegaVisualizations VegaVisualization - basics should show vegalite graph and update on resize (may fail in dev env) 1`] = `"<ul class=\\"vgaVis__messages\\"><li class=\\"vgaVis__message vgaVis__message--warn\\"><pre class=\\"vgaVis__messageCode\\">\\"width\\" and \\"height\\" params are ignored because \\"autosize\\" is enabled. Set \\"autosize\\": \\"none\\" to disable</pre></li></ul><div class=\\"vgaVis__view\\" style=\\"height: 100%; cursor: default;\\" role=\\"graphics-document\\" aria-roledescription=\\"visualization\\" aria-label=\\"Vega visualization\\"><svg xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" version=\\"1.1\\" class=\\"marks\\" width=\\"0\\" height=\\"0\\" viewBox=\\"0 0 0 0\\" style=\\"background-color: transparent;\\"><g fill=\\"none\\" stroke-miterlimit=\\"10\\" transform=\\"translate(7,7)\\"><g class=\\"mark-group role-frame root\\" role=\\"graphics-object\\" aria-roledescription=\\"group mark container\\"><g transform=\\"translate(0,0)\\"><path class=\\"background\\" aria-hidden=\\"true\\" d=\\"M0.5,0.5h0v0h0Z\\" fill=\\"transparent\\" stroke=\\"#ddd\\"></path><g><g class=\\"mark-line role-mark marks\\" role=\\"graphics-object\\" aria-roledescription=\\"line mark container\\"><path aria-label=\\"key: Dec 11, 2017; doc_count: 0\\" role=\\"graphics-symbol\\" aria-roledescription=\\"line mark\\" d=\\"M0,0L0,0L0,0L0,0L0,0L0,0L0,0L0,0L0,0L0,0\\" stroke=\\"#54B399\\" stroke-width=\\"2\\"></path></g></g><path class=\\"foreground\\" aria-hidden=\\"true\\" d=\\"\\" display=\\"none\\"></path></g></g></g></svg></div><div class=\\"vgaVis__controls vgaVis__controls--column\\"></div>"`; -exports[`VegaVisualizations VegaVisualization - basics should show vegalite graph and update on resize (may fail in dev env) 2`] = `"<div class=\\"vgaVis__view\\" style=\\"height: 100%; cursor: default;\\" role=\\"graphics-document\\" aria-roledescription=\\"visualization\\" aria-label=\\"Vega visualization\\"><svg xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" version=\\"1.1\\" class=\\"marks\\" width=\\"256\\" height=\\"250\\" viewBox=\\"0 0 256 250\\" style=\\"background-color: transparent;\\"><g fill=\\"none\\" stroke-miterlimit=\\"10\\" transform=\\"translate(7,5)\\"><g class=\\"mark-group role-frame root\\" role=\\"graphics-object\\" aria-roledescription=\\"group mark container\\"><g transform=\\"translate(0,0)\\"><path class=\\"background\\" aria-hidden=\\"true\\" d=\\"M0.5,0.5h242v238h-242Z\\" fill=\\"transparent\\" stroke=\\"#ddd\\"></path><g><g class=\\"mark-line role-mark marks\\" role=\\"graphics-object\\" aria-roledescription=\\"line mark container\\"><path aria-label=\\"key: Dec 11, 2017; doc_count: 0\\" role=\\"graphics-symbol\\" aria-roledescription=\\"line mark\\" d=\\"M0,238L26.888888888888886,238L53.77777777777777,238L80.66666666666666,21.657999999999994L107.55555555555554,15.850799999999998L134.44444444444446,16.183999999999987L161.33333333333331,231.66920000000002L188.22222222222223,238L215.1111111111111,238L242,238\\" stroke=\\"#54B399\\" stroke-width=\\"2\\"></path></g></g><path class=\\"foreground\\" aria-hidden=\\"true\\" d=\\"\\" display=\\"none\\"></path></g></g></g></svg></div><div class=\\"vgaVis__controls vgaVis__controls--column\\"></div>"`; +exports[`VegaVisualizations VegaVisualization - basics should show vegalite graph and update on resize (may fail in dev env) 2`] = `"<ul class=\\"vgaVis__messages\\"><li class=\\"vgaVis__message vgaVis__message--warn\\"><pre class=\\"vgaVis__messageCode\\">\\"width\\" and \\"height\\" params are ignored because \\"autosize\\" is enabled. Set \\"autosize\\": \\"none\\" to disable</pre></li></ul><div class=\\"vgaVis__view\\" style=\\"height: 100%; cursor: default;\\" role=\\"graphics-document\\" aria-roledescription=\\"visualization\\" aria-label=\\"Vega visualization\\"><svg xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" version=\\"1.1\\" class=\\"marks\\" width=\\"256\\" height=\\"250\\" viewBox=\\"0 0 256 250\\" style=\\"background-color: transparent;\\"><g fill=\\"none\\" stroke-miterlimit=\\"10\\" transform=\\"translate(7,5)\\"><g class=\\"mark-group role-frame root\\" role=\\"graphics-object\\" aria-roledescription=\\"group mark container\\"><g transform=\\"translate(0,0)\\"><path class=\\"background\\" aria-hidden=\\"true\\" d=\\"M0.5,0.5h242v238h-242Z\\" fill=\\"transparent\\" stroke=\\"#ddd\\"></path><g><g class=\\"mark-line role-mark marks\\" role=\\"graphics-object\\" aria-roledescription=\\"line mark container\\"><path aria-label=\\"key: Dec 11, 2017; doc_count: 0\\" role=\\"graphics-symbol\\" aria-roledescription=\\"line mark\\" d=\\"M0,238L26.888888888888886,238L53.77777777777777,238L80.66666666666666,21.657999999999994L107.55555555555554,15.850799999999998L134.44444444444446,16.183999999999987L161.33333333333331,231.66920000000002L188.22222222222223,238L215.1111111111111,238L242,238\\" stroke=\\"#54B399\\" stroke-width=\\"2\\"></path></g></g><path class=\\"foreground\\" aria-hidden=\\"true\\" d=\\"\\" display=\\"none\\"></path></g></g></g></svg></div><div class=\\"vgaVis__controls vgaVis__controls--column\\"></div>"`; diff --git a/src/plugins/vis_type_vega/public/data_model/types.ts b/src/plugins/vis_type_vega/public/data_model/types.ts index 14848bf5e8739..11bdf4f064023 100644 --- a/src/plugins/vis_type_vega/public/data_model/types.ts +++ b/src/plugins/vis_type_vega/public/data_model/types.ts @@ -43,10 +43,17 @@ interface Encoding { y: Coordinate; } -interface AutoSize { - type: string; - contains: string; -} +type AutoSize = + | 'pad' + | 'fit' + | 'fit-x' + | 'fit-y' + | 'none' + | { + type: string; + contains: string; + } + | { signal: string }; interface Padding { left: number; @@ -105,8 +112,8 @@ export interface VegaSpec { title?: string; autosize?: AutoSize; projections?: Projection[]; - width?: number; - height?: number; + width?: number | 'container'; + height?: number | 'container'; padding?: number | Padding; _hostConfig?: KibanaConfig; config: VegaSpecConfig; diff --git a/src/plugins/vis_type_vega/public/data_model/vega_parser.test.js b/src/plugins/vis_type_vega/public/data_model/vega_parser.test.js index 5c7656efe925b..c9f8e0a4394ec 100644 --- a/src/plugins/vis_type_vega/public/data_model/vega_parser.test.js +++ b/src/plugins/vis_type_vega/public/data_model/vega_parser.test.js @@ -371,43 +371,95 @@ describe('VegaParser._parseConfig', () => { test('_hostConfig', check({ _hostConfig: { a: 1 } }, { a: 1 }, {}, 1)); }); -describe('VegaParser._calcSizing', () => { - function check( - spec, - useResize, - paddingWidth, - paddingHeight, - isVegaLite, - expectedSpec, - warnCount - ) { +describe('VegaParser._compileWithAutosize', () => { + function check(spec, useResize, expectedSpec, warnCount) { return async () => { expectedSpec = expectedSpec || cloneDeep(spec); const vp = new VegaParser(spec); - vp.isVegaLite = !!isVegaLite; - vp._calcSizing(); + vp._compileWithAutosize(); expect(vp.useResize).toEqual(useResize); - expect(vp.paddingWidth).toEqual(paddingWidth); - expect(vp.paddingHeight).toEqual(paddingHeight); expect(vp.spec).toEqual(expectedSpec); expect(vp.warnings).toHaveLength(warnCount || 0); }; } - test('no size', check({ autosize: {} }, false, 0, 0)); - test('fit', check({ autosize: 'fit' }, true, 0, 0)); - test('fit obj', check({ autosize: { type: 'fit' } }, true, 0, 0)); - test('padding const', check({ autosize: 'fit', padding: 10 }, true, 20, 20)); test( - 'padding obj', - check({ autosize: 'fit', padding: { left: 5, bottom: 7, right: 6, top: 8 } }, true, 11, 15) + 'empty config', + check({}, true, { + autosize: { type: 'fit', contains: 'padding' }, + width: 'container', + height: 'container', + }) + ); + test( + 'no warnings for default config', + check({ width: 'container', height: 'container' }, true, { + autosize: { type: 'fit', contains: 'padding' }, + width: 'container', + height: 'container', + }) + ); + test( + 'warning when attempting to use invalid setting', + check( + { width: '300', height: '300' }, + true, + { + autosize: { type: 'fit', contains: 'padding' }, + width: 'container', + height: 'container', + }, + 1 + ) ); test( - 'width height', - check({ autosize: 'fit', width: 1, height: 2 }, true, 0, 0, false, false, 1) + 'autosize none', + check({ autosize: 'none' }, false, { autosize: { type: 'none', contains: 'padding' } }) + ); + test( + 'autosize=fit', + check({ autosize: 'fit' }, true, { + autosize: { type: 'fit', contains: 'padding' }, + width: 'container', + height: 'container', + }) ); test( - 'VL width height', - check({ autosize: 'fit', width: 1, height: 2 }, true, 0, 0, true, { autosize: 'fit' }, 0) + 'autosize=pad', + check({ autosize: 'pad' }, true, { + autosize: { type: 'pad', contains: 'padding' }, + width: 'container', + height: 'container', + }) + ); + test( + 'empty autosize object', + check({ autosize: {} }, true, { + autosize: { type: 'fit', contains: 'padding' }, + height: 'container', + width: 'container', + }) + ); + test( + 'warning on falsy arguments', + check( + { autosize: false }, + true, + { + autosize: { type: 'fit', contains: 'padding' }, + height: 'container', + width: 'container', + }, + 1 + ) + ); + test( + 'partial autosize object', + check({ autosize: { contains: 'content' } }, true, { + autosize: { contains: 'content', type: 'fit' }, + height: 'container', + width: 'container', + }) ); + test('autosize signals are ignored', check({ autosize: { signal: 'asdf' } }, undefined)); }); diff --git a/src/plugins/vis_type_vega/public/data_model/vega_parser.ts b/src/plugins/vis_type_vega/public/data_model/vega_parser.ts index ccb89207e222f..894c34c494c16 100644 --- a/src/plugins/vis_type_vega/public/data_model/vega_parser.ts +++ b/src/plugins/vis_type_vega/public/data_model/vega_parser.ts @@ -75,8 +75,6 @@ export class VegaParser { mapConfig?: object; vlspec?: VegaSpec; useResize?: boolean; - paddingWidth?: number; - paddingHeight?: number; containerDir?: ControlsLocation | ControlsDirection; controlsDir?: ControlsLocation; searchAPI: SearchAPI; @@ -157,9 +155,9 @@ The URL is an identifier only. Kibana and your browser will never access this UR this._parseControlPlacement(); if (this.useMap) { this.mapConfig = this._parseMapConfig(); - } else if (this.spec && this.spec.autosize === undefined) { - // Default autosize should be fit, unless it's a map (leaflet-vega handles that) - this.spec.autosize = { type: 'fit', contains: 'padding' }; + this.useResize = false; + } else if (this.spec) { + this._compileWithAutosize(); } await this._resolveDataUrls(); @@ -167,15 +165,86 @@ The URL is an identifier only. Kibana and your browser will never access this UR if (this.isVegaLite) { this._compileVegaLite(); } + } + + /** + * Ensure that Vega and Vega-Lite will take the full width of the container unless + * the user has explicitly disabled this setting by setting it to "none". + * Also sets the default width to include the padding. This creates the least configuration + * needed for most cases, with the option to do more. + */ + private _compileWithAutosize() { + const defaultAutosize = { + type: 'fit', + contains: 'padding', + }; + + let autosize = this.spec.autosize; + let useResize = true; + + if (!this.isVegaLite && autosize && typeof autosize === 'object' && 'signal' in autosize) { + // Vega supports dynamic autosize information, so we ignore it + return; + } + + if (!autosize && typeof autosize !== 'undefined') { + this._onWarning( + i18n.translate('visTypeVega.vegaParser.autoSizeDoesNotAllowFalse', { + defaultMessage: + '{autoSizeParam} is enabled, it can only be disabled by setting {autoSizeParam} to {noneParam}', + values: { + autoSizeParam: '"autosize"', + noneParam: '"none"', + }, + }) + ); + } + + if (typeof autosize === 'string') { + useResize = autosize !== 'none'; + autosize = { ...defaultAutosize, type: autosize }; + } else if (typeof autosize === 'object') { + autosize = { ...defaultAutosize, ...autosize } as { + type: string; + contains: string; + }; + useResize = Boolean(autosize?.type && autosize?.type !== 'none'); + } else { + autosize = defaultAutosize; + } + + if ( + useResize && + ((this.spec.width && this.spec.width !== 'container') || + (this.spec.height && this.spec.height !== 'container')) + ) { + this._onWarning( + i18n.translate('visTypeVega.vegaParser.widthAndHeightParamsAreIgnored', { + defaultMessage: + '{widthParam} and {heightParam} params are ignored because {autoSizeParam} is enabled. Set {autoSizeParam}: {noneParam} to disable', + values: { + widthParam: '"width"', + heightParam: '"height"', + autoSizeParam: '"autosize"', + noneParam: '"none"', + }, + }) + ); + } - this._calcSizing(); + if (useResize) { + this.spec.width = 'container'; + this.spec.height = 'container'; + } + + this.spec.autosize = autosize; + this.useResize = useResize; } /** * Convert VegaLite to Vega spec - * @private */ - _compileVegaLite() { + private _compileVegaLite() { this.vlspec = this.spec; const logger = vega.logger(vega.Warn); // note: eslint has a false positive here logger.warn = this._onWarning.bind(this); @@ -226,62 +295,6 @@ The URL is an identifier only. Kibana and your browser will never access this UR } } - /** - * Process graph size and padding - * @private - */ - _calcSizing() { - this.useResize = false; - - // Padding is not included in the width/height by default - this.paddingWidth = 0; - this.paddingHeight = 0; - if (this.spec) { - if (!this.useMap) { - // when useResize is true, vega's canvas size will be set based on the size of the container, - // and will be automatically updated on resize events. - // We delete width & height if the autosize is set to "fit" - // We also set useResize=true in case autosize=none, and width & height are not set - const autosize = this.spec.autosize?.type || this.spec.autosize; - if (autosize === 'fit' || (autosize === 'none' && !this.spec.width && !this.spec.height)) { - this.useResize = true; - } - } - - if (this.useResize && this.spec.padding && this.spec.autosize?.contains !== 'padding') { - if (typeof this.spec.padding === 'object') { - this.paddingWidth += (+this.spec.padding.left || 0) + (+this.spec.padding.right || 0); - this.paddingHeight += (+this.spec.padding.top || 0) + (+this.spec.padding.bottom || 0); - } else { - this.paddingWidth += 2 * (+this.spec.padding || 0); - this.paddingHeight += 2 * (+this.spec.padding || 0); - } - } - - if (this.useResize && (this.spec.width || this.spec.height)) { - if (this.isVegaLite) { - delete this.spec.width; - delete this.spec.height; - } else { - this._onWarning( - i18n.translate( - 'visTypeVega.vegaParser.widthAndHeightParamsAreIgnoredWithAutosizeFitWarningMessage', - { - defaultMessage: - 'The {widthParam} and {heightParam} params are ignored with {autosizeParam}', - values: { - autosizeParam: 'autosize=fit', - widthParam: '"width"', - heightParam: '"height"', - }, - } - ) - ); - } - } - } - } - /** * Calculate container-direction CSS property for binding placement * @private diff --git a/src/plugins/vis_type_vega/public/vega_view/vega_base_view.js b/src/plugins/vis_type_vega/public/vega_view/vega_base_view.js index 9b51b68e93bb4..979432b2aed2a 100644 --- a/src/plugins/vis_type_vega/public/vega_view/vega_base_view.js +++ b/src/plugins/vis_type_vega/public/vega_view/vega_base_view.js @@ -193,9 +193,8 @@ export class VegaBaseView { // This might be due to https://github.com/jquery/jquery/issues/3808 // Which is being fixed as part of jQuery 3.3.0 const heightExtraPadding = 6; - const width = Math.max(0, this._$container.width() - this._parser.paddingWidth); - const height = - Math.max(0, this._$container.height() - this._parser.paddingHeight) - heightExtraPadding; + const width = Math.max(0, this._$container.width()); + const height = Math.max(0, this._$container.height()) - heightExtraPadding; if (view.width() !== width || view.height() !== height) { view.width(width).height(height); diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 0ebb10d30c010..ba9d8e364bd17 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -4145,7 +4145,6 @@ "visTypeVega.vegaParser.unrecognizedControlsLocationValueErrorMessage": "認識されない {controlsLocationParam} 値[{locToDirMap}] のいずれかである必要があります", "visTypeVega.vegaParser.unrecognizedDirValueErrorMessage": "認識されない {dirParam} 値[{expectedValues}] のいずれかである必要があります", "visTypeVega.vegaParser.VLCompilerShouldHaveGeneratedSingleProtectionObjectErrorMessage": "内部エラー:Vega-Lite コンパイラーがシングルプロジェクションオブジェクトを生成したはずです", - "visTypeVega.vegaParser.widthAndHeightParamsAreIgnoredWithAutosizeFitWarningMessage": "{widthParam} と {heightParam} パラメーターは {autosizeParam} で無視されます", "visTypeVega.visualization.indexNotFoundErrorMessage": "インデックス {index} が見つかりません", "visTypeVega.visualization.renderErrorTitle": "Vega エラー", "visTypeVega.visualization.unableToFindDefaultIndexErrorMessage": "デフォルトのインデックスが見つかりません", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index acd6db3b758b1..5d44e0c635bee 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -4146,7 +4146,6 @@ "visTypeVega.vegaParser.unrecognizedControlsLocationValueErrorMessage": "无法识别的 {controlsLocationParam} 值。应为 [{locToDirMap}] 之一", "visTypeVega.vegaParser.unrecognizedDirValueErrorMessage": "{dirParam} 值无法识别。应为 [{expectedValues}] 之一", "visTypeVega.vegaParser.VLCompilerShouldHaveGeneratedSingleProtectionObjectErrorMessage": "内部错误:Vega-Lite 编译器应已生成单个投影对象", - "visTypeVega.vegaParser.widthAndHeightParamsAreIgnoredWithAutosizeFitWarningMessage": "使用 {autosizeParam} 时,将忽略 {widthParam} 和 {heightParam} 参数", "visTypeVega.visualization.indexNotFoundErrorMessage": "找不到索引 {index}", "visTypeVega.visualization.renderErrorTitle": "Vega 错误", "visTypeVega.visualization.unableToFindDefaultIndexErrorMessage": "找不到默认索引", From c1a3002c1656a7e21f6719ea4066a0c599ee69a1 Mon Sep 17 00:00:00 2001 From: Shahzad <shahzad.muhammad@elastic.co> Date: Thu, 1 Oct 2020 17:37:02 +0200 Subject: [PATCH 107/142] update rum agent version which contains longtasks (#79105) --- package.json | 2 +- x-pack/package.json | 2 +- yarn.lock | 28 ++++++++++++++-------------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 864954e63f7e1..26a7fef9cfc18 100644 --- a/package.json +++ b/package.json @@ -229,7 +229,7 @@ "devDependencies": { "@babel/parser": "^7.11.2", "@babel/types": "^7.11.0", - "@elastic/apm-rum": "^5.6.0", + "@elastic/apm-rum": "^5.6.1", "@elastic/charts": "21.1.2", "@elastic/ems-client": "7.10.0", "@elastic/eslint-config-kibana": "0.15.0", diff --git a/x-pack/package.json b/x-pack/package.json index 97d673290abd1..6c18902c77366 100644 --- a/x-pack/package.json +++ b/x-pack/package.json @@ -30,7 +30,7 @@ }, "devDependencies": { "@cypress/webpack-preprocessor": "^4.1.0", - "@elastic/apm-rum-react": "^1.2.4", + "@elastic/apm-rum-react": "^1.2.5", "@elastic/maki": "6.3.0", "@kbn/dev-utils": "1.0.0", "@kbn/es": "1.0.0", diff --git a/yarn.lock b/yarn.lock index 399cc80a557d1..608207400ec71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1190,29 +1190,29 @@ enabled "2.0.x" kuler "^2.0.0" -"@elastic/apm-rum-core@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@elastic/apm-rum-core/-/apm-rum-core-5.6.1.tgz#0870e654e84e1f2ffea7c8a247a2da1b72918bcd" - integrity sha512-UtWj8UNN1sfSjav1kQK2NFhHtrH++4FzhtY0g80aSfHrDdBKVXaecWswoGmK3aiGJ9LAVlAXNfF3tPMT6JN23g== +"@elastic/apm-rum-core@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@elastic/apm-rum-core/-/apm-rum-core-5.7.0.tgz#2213987285324781e2ebeca607f3a71245da5a84" + integrity sha512-YxfyDwlPDRy05ERb8h79eXq2ebDamlyII3sdc8zsfL6Hc1wOHK3uBGelDQjQzkUkRJqJL1Sy6LJqok2mpxQJyw== dependencies: error-stack-parser "^1.3.5" opentracing "^0.14.3" promise-polyfill "^8.1.3" -"@elastic/apm-rum-react@^1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@elastic/apm-rum-react/-/apm-rum-react-1.2.4.tgz#f5b908f69f2696af10d19250226559ceb33dc1e9" - integrity sha512-zjig55n4/maU+kAEePS+DxgD12t4J0X9t3tB9YuO0gUIJhgT7KTL1Nv93ZmJ3u2tCJSpdYVfKQ0GBgSfjt1vVQ== +"@elastic/apm-rum-react@^1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@elastic/apm-rum-react/-/apm-rum-react-1.2.5.tgz#ac715a192808e14e62e537e41b70cc8296854051" + integrity sha512-5+5Q2ztOQT0EbWFZqV2N78tcuA9qPuO5QAtSTQIYgb5lH27Sfa9G4xlTgCbJs9DzCKmhuu27E4DTArrU3tyNzA== dependencies: - "@elastic/apm-rum" "^5.6.0" + "@elastic/apm-rum" "^5.6.1" hoist-non-react-statics "^3.3.0" -"@elastic/apm-rum@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@elastic/apm-rum/-/apm-rum-5.6.0.tgz#0af2acb55091b9eb315cf38c6422a83cddfecb6f" - integrity sha512-6CuODbt7dBXoqsKoqhshQQC4GyqsGMPOR1FXZCWbnq55UZq1TWqra6zNCtEEFinz8rPaww7bzmNciXKRvGjIzQ== +"@elastic/apm-rum@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@elastic/apm-rum/-/apm-rum-5.6.1.tgz#0d1bbef774866064795f7a9c6db0c951a900de35" + integrity sha512-q6ZkDb+m2z29h6/JKqBL/nBf6/x5yYmW1vUpdW3zy03jTQp+A7LpVaPI1HNquyGryqqT/BQl4QivFcNC28pr4w== dependencies: - "@elastic/apm-rum-core" "^5.6.1" + "@elastic/apm-rum-core" "^5.7.0" "@elastic/charts@21.1.2": version "21.1.2" From f4c5ebca9d3c7de2b6788ec133267a4d94e03cc9 Mon Sep 17 00:00:00 2001 From: Jeffrey Chu <56368296+achuguy@users.noreply.github.com> Date: Thu, 1 Oct 2020 11:47:56 -0400 Subject: [PATCH 108/142] [Security Solution]Fix basepath used by endpoint telemetry tests (#79027) * Fix basepath used by endpoint telemetry tests * Linting --- .../services/endpoint_telemetry.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/x-pack/test/security_solution_endpoint/services/endpoint_telemetry.ts b/x-pack/test/security_solution_endpoint/services/endpoint_telemetry.ts index 0f158da5d2f8c..6098404201966 100644 --- a/x-pack/test/security_solution_endpoint/services/endpoint_telemetry.ts +++ b/x-pack/test/security_solution_endpoint/services/endpoint_telemetry.ts @@ -5,10 +5,14 @@ */ import fs from 'fs'; import Path from 'path'; +import { KIBANA_ROOT } from '@kbn/test'; import { FtrProviderContext } from '../ftr_provider_context'; const TELEMETRY_API_ROOT = '/api/stats?extended=true'; -const TELEMETRY_DATA_ROOT = 'test/functional/es_archives/endpoint/telemetry/'; +const TELEMETRY_DATA_ROOT = Path.join( + KIBANA_ROOT, + 'x-pack/test/functional/es_archives/endpoint/telemetry/' +); interface EndpointTelemetry { total_installed: number; From ee7672aaf074dc4ebaf0ffb88d95d5f1bf9e1d18 Mon Sep 17 00:00:00 2001 From: Phillip Burch <phillip.burch@live.com> Date: Thu, 1 Oct 2020 10:51:55 -0500 Subject: [PATCH 109/142] [Metrics UI] Add ability to override datafeeds and job config for partition field (#78875) * Add ability to override datafeeds and job config for partition field * Remove debug * UX cleanup * Fix types, delete dead code --- .../containers/ml/infra_ml_module_types.ts | 4 +- .../containers/ml/infra_ml_setup_state.ts | 289 ------------------ .../metrics_hosts/module_descriptor.ts | 135 +++++--- .../modules/metrics_k8s/module_descriptor.ts | 143 ++++++--- .../anomoly_detection_flyout.tsx | 4 +- .../ml/anomaly_detection/flyout_home.tsx | 113 +++---- .../ml/anomaly_detection/job_setup_screen.tsx | 3 +- 7 files changed, 247 insertions(+), 444 deletions(-) delete mode 100644 x-pack/plugins/infra/public/containers/ml/infra_ml_setup_state.ts diff --git a/x-pack/plugins/infra/public/containers/ml/infra_ml_module_types.ts b/x-pack/plugins/infra/public/containers/ml/infra_ml_module_types.ts index a9f2671de8259..e36f38add641a 100644 --- a/x-pack/plugins/infra/public/containers/ml/infra_ml_module_types.ts +++ b/x-pack/plugins/infra/public/containers/ml/infra_ml_module_types.ts @@ -33,11 +33,11 @@ export interface ModuleDescriptor<JobType extends string> { partitionField?: string ) => Promise<SetupMlModuleResponsePayload>; cleanUpModule: (spaceId: string, sourceId: string) => Promise<DeleteJobsResponsePayload>; - validateSetupIndices: ( + validateSetupIndices?: ( indices: string[], timestampField: string ) => Promise<ValidationIndicesResponsePayload>; - validateSetupDatasets: ( + validateSetupDatasets?: ( indices: string[], timestampField: string, startTime: number, diff --git a/x-pack/plugins/infra/public/containers/ml/infra_ml_setup_state.ts b/x-pack/plugins/infra/public/containers/ml/infra_ml_setup_state.ts deleted file mode 100644 index 0dfe3b301f240..0000000000000 --- a/x-pack/plugins/infra/public/containers/ml/infra_ml_setup_state.ts +++ /dev/null @@ -1,289 +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 { isEqual } from 'lodash'; -import { useCallback, useEffect, useMemo, useState } from 'react'; -import { usePrevious } from 'react-use'; -import { - combineDatasetFilters, - DatasetFilter, - filterDatasetFilter, - isExampleDataIndex, -} from '../../../common/infra_ml'; -import { - AvailableIndex, - ValidationIndicesError, - ValidationUIError, -} from '../../components/logging/log_analysis_setup/initial_configuration_step'; -import { useTrackedPromise } from '../../utils/use_tracked_promise'; -import { ModuleDescriptor, ModuleSourceConfiguration } from './infra_ml_module_types'; - -type SetupHandler = ( - indices: string[], - startTime: number | undefined, - endTime: number | undefined, - datasetFilter: DatasetFilter -) => void; - -interface AnalysisSetupStateArguments<JobType extends string> { - cleanUpAndSetUpModule: SetupHandler; - moduleDescriptor: ModuleDescriptor<JobType>; - setUpModule: SetupHandler; - sourceConfiguration: ModuleSourceConfiguration; -} - -const fourWeeksInMs = 86400000 * 7 * 4; - -export const useAnalysisSetupState = <JobType extends string>({ - cleanUpAndSetUpModule, - moduleDescriptor: { validateSetupDatasets, validateSetupIndices }, - setUpModule, - sourceConfiguration, -}: AnalysisSetupStateArguments<JobType>) => { - const [startTime, setStartTime] = useState<number | undefined>(Date.now() - fourWeeksInMs); - const [endTime, setEndTime] = useState<number | undefined>(undefined); - - const isTimeRangeValid = useMemo( - () => (startTime != null && endTime != null ? startTime < endTime : true), - [endTime, startTime] - ); - - const [validatedIndices, setValidatedIndices] = useState<AvailableIndex[]>( - sourceConfiguration.indices.map((indexName) => ({ - name: indexName, - validity: 'unknown' as const, - })) - ); - - const updateIndicesWithValidationErrors = useCallback( - (validationErrors: ValidationIndicesError[]) => - setValidatedIndices((availableIndices) => - availableIndices.map((previousAvailableIndex) => { - const indexValiationErrors = validationErrors.filter( - ({ index }) => index === previousAvailableIndex.name - ); - - if (indexValiationErrors.length > 0) { - return { - validity: 'invalid', - name: previousAvailableIndex.name, - errors: indexValiationErrors, - }; - } else if (previousAvailableIndex.validity === 'valid') { - return { - ...previousAvailableIndex, - validity: 'valid', - errors: [], - }; - } else { - return { - validity: 'valid', - name: previousAvailableIndex.name, - isSelected: !isExampleDataIndex(previousAvailableIndex.name), - availableDatasets: [], - datasetFilter: { - type: 'includeAll' as const, - }, - }; - } - }) - ), - [] - ); - - const updateIndicesWithAvailableDatasets = useCallback( - (availableDatasets: Array<{ indexName: string; datasets: string[] }>) => - setValidatedIndices((availableIndices) => - availableIndices.map((previousAvailableIndex) => { - if (previousAvailableIndex.validity !== 'valid') { - return previousAvailableIndex; - } - - const availableDatasetsForIndex = availableDatasets.filter( - ({ indexName }) => indexName === previousAvailableIndex.name - ); - const newAvailableDatasets = availableDatasetsForIndex.flatMap( - ({ datasets }) => datasets - ); - - // filter out datasets that have disappeared if this index' datasets were updated - const newDatasetFilter: DatasetFilter = - availableDatasetsForIndex.length > 0 - ? filterDatasetFilter(previousAvailableIndex.datasetFilter, (dataset) => - newAvailableDatasets.includes(dataset) - ) - : previousAvailableIndex.datasetFilter; - - return { - ...previousAvailableIndex, - availableDatasets: newAvailableDatasets, - datasetFilter: newDatasetFilter, - }; - }) - ), - [] - ); - - const validIndexNames = useMemo( - () => validatedIndices.filter((index) => index.validity === 'valid').map((index) => index.name), - [validatedIndices] - ); - - const selectedIndexNames = useMemo( - () => - validatedIndices - .filter((index) => index.validity === 'valid' && index.isSelected) - .map((i) => i.name), - [validatedIndices] - ); - - const datasetFilter = useMemo( - () => - validatedIndices - .flatMap((validatedIndex) => - validatedIndex.validity === 'valid' - ? validatedIndex.datasetFilter - : { type: 'includeAll' as const } - ) - .reduce(combineDatasetFilters, { type: 'includeAll' as const }), - [validatedIndices] - ); - - const [validateIndicesRequest, validateIndices] = useTrackedPromise( - { - cancelPreviousOn: 'resolution', - createPromise: async () => { - return await validateSetupIndices( - sourceConfiguration.indices, - sourceConfiguration.timestampField - ); - }, - onResolve: ({ data: { errors } }) => { - updateIndicesWithValidationErrors(errors); - }, - onReject: () => { - setValidatedIndices([]); - }, - }, - [sourceConfiguration.indices, sourceConfiguration.timestampField] - ); - - const [validateDatasetsRequest, validateDatasets] = useTrackedPromise( - { - cancelPreviousOn: 'resolution', - createPromise: async () => { - if (validIndexNames.length === 0) { - return { data: { datasets: [] } }; - } - - return await validateSetupDatasets( - validIndexNames, - sourceConfiguration.timestampField, - startTime ?? 0, - endTime ?? Date.now() - ); - }, - onResolve: ({ data: { datasets } }) => { - updateIndicesWithAvailableDatasets(datasets); - }, - }, - [validIndexNames, sourceConfiguration.timestampField, startTime, endTime] - ); - - const setUp = useCallback(() => { - return setUpModule(selectedIndexNames, startTime, endTime, datasetFilter); - }, [setUpModule, selectedIndexNames, startTime, endTime, datasetFilter]); - - const cleanUpAndSetUp = useCallback(() => { - return cleanUpAndSetUpModule(selectedIndexNames, startTime, endTime, datasetFilter); - }, [cleanUpAndSetUpModule, selectedIndexNames, startTime, endTime, datasetFilter]); - - const isValidating = useMemo( - () => validateIndicesRequest.state === 'pending' || validateDatasetsRequest.state === 'pending', - [validateDatasetsRequest.state, validateIndicesRequest.state] - ); - - const validationErrors = useMemo<ValidationUIError[]>(() => { - if (isValidating) { - return []; - } - - return [ - // validate request status - ...(validateIndicesRequest.state === 'rejected' || - validateDatasetsRequest.state === 'rejected' - ? [{ error: 'NETWORK_ERROR' as const }] - : []), - // validation request results - ...validatedIndices.reduce<ValidationUIError[]>((errors, index) => { - return index.validity === 'invalid' && selectedIndexNames.includes(index.name) - ? [...errors, ...index.errors] - : errors; - }, []), - // index count - ...(selectedIndexNames.length === 0 ? [{ error: 'TOO_FEW_SELECTED_INDICES' as const }] : []), - // time range - ...(!isTimeRangeValid ? [{ error: 'INVALID_TIME_RANGE' as const }] : []), - ]; - }, [ - isValidating, - validateIndicesRequest.state, - validateDatasetsRequest.state, - validatedIndices, - selectedIndexNames, - isTimeRangeValid, - ]); - - const prevStartTime = usePrevious(startTime); - const prevEndTime = usePrevious(endTime); - const prevValidIndexNames = usePrevious(validIndexNames); - - useEffect(() => { - if (!isTimeRangeValid) { - return; - } - - validateIndices(); - }, [isTimeRangeValid, validateIndices]); - - useEffect(() => { - if (!isTimeRangeValid) { - return; - } - - if ( - startTime !== prevStartTime || - endTime !== prevEndTime || - !isEqual(validIndexNames, prevValidIndexNames) - ) { - validateDatasets(); - } - }, [ - endTime, - isTimeRangeValid, - prevEndTime, - prevStartTime, - prevValidIndexNames, - startTime, - validIndexNames, - validateDatasets, - ]); - - return { - cleanUpAndSetUp, - datasetFilter, - endTime, - isValidating, - selectedIndexNames, - setEndTime, - setStartTime, - setUp, - startTime, - validatedIndices, - setValidatedIndices, - validationErrors, - }; -}; diff --git a/x-pack/plugins/infra/public/containers/ml/modules/metrics_hosts/module_descriptor.ts b/x-pack/plugins/infra/public/containers/ml/modules/metrics_hosts/module_descriptor.ts index cec87fb1144e3..711ee76d42a64 100644 --- a/x-pack/plugins/infra/public/containers/ml/modules/metrics_hosts/module_descriptor.ts +++ b/x-pack/plugins/infra/public/containers/ml/modules/metrics_hosts/module_descriptor.ts @@ -10,17 +10,27 @@ import { cleanUpJobsAndDatafeeds } from '../../infra_ml_cleanup'; import { callJobsSummaryAPI } from '../../api/ml_get_jobs_summary_api'; import { callGetMlModuleAPI } from '../../api/ml_get_module'; import { callSetupMlModuleAPI } from '../../api/ml_setup_module_api'; -import { callValidateIndicesAPI } from '../../../logs/log_analysis/api/validate_indices'; -import { callValidateDatasetsAPI } from '../../../logs/log_analysis/api/validate_datasets'; import { metricsHostsJobTypes, getJobId, MetricsHostsJobType, DatasetFilter, bucketSpan, - partitionField, } from '../../../../../common/infra_ml'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import MemoryJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_memory_usage.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import MemoryDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_memory_usage.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkInJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_in.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkInDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_in.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkOutJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_out.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkOutDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_out.json'; +type JobType = 'hosts_memory_usage' | 'hosts_network_in' | 'hosts_network_out'; const moduleId = 'metrics_ui_hosts'; const moduleName = i18n.translate('xpack.infra.ml.metricsModuleName', { defaultMessage: 'Metrics anomanly detection', @@ -54,23 +64,68 @@ const setUpModule = async ( end: number | undefined, datasetFilter: DatasetFilter, { spaceId, sourceId, indices, timestampField }: ModuleSourceConfiguration, - pField?: string + partitionField?: string ) => { const indexNamePattern = indices.join(','); - const jobIds = ['hosts_memory_usage', 'hosts_network_in', 'hosts_network_out']; - const jobOverrides = jobIds.map((id) => ({ - job_id: id, - data_description: { - time_field: timestampField, - }, - custom_settings: { - metrics_source_config: { - indexPattern: indexNamePattern, - timestampField, - bucketSpan, + const jobIds: JobType[] = ['hosts_memory_usage', 'hosts_network_in', 'hosts_network_out']; + + const jobOverrides = jobIds.map((id) => { + const { job: defaultJobConfig } = getDefaultJobConfigs(id); + + // eslint-disable-next-line @typescript-eslint/naming-convention + const analysis_config = { + ...defaultJobConfig.analysis_config, + }; + + if (partitionField) { + analysis_config.detectors[0].partition_field_name = partitionField; + if (analysis_config.influencers.indexOf(partitionField) === -1) { + analysis_config.influencers.push(partitionField); + } + } + + return { + job_id: id, + data_description: { + time_field: timestampField, + }, + analysis_config, + custom_settings: { + metrics_source_config: { + indexPattern: indexNamePattern, + timestampField, + bucketSpan, + }, + }, + }; + }); + + const datafeedOverrides = jobIds.map((id) => { + const { datafeed: defaultDatafeedConfig } = getDefaultJobConfigs(id); + + if (!partitionField || id === 'hosts_memory_usage') { + // Since the host memory usage doesn't have custom aggs, we don't need to do anything to add a partition field + return defaultDatafeedConfig; + } + + // If we have a partition field, we need to change the aggregation to do a terms agg at the top level + const aggregations = { + [partitionField]: { + terms: { + field: partitionField, + }, + aggregations: { + ...defaultDatafeedConfig.aggregations, + }, }, - }, - })); + }; + + return { + ...defaultDatafeedConfig, + job_id: id, + aggregations, + }; + }); return callSetupMlModuleAPI( moduleId, @@ -80,34 +135,32 @@ const setUpModule = async ( sourceId, indexNamePattern, jobOverrides, - [] + datafeedOverrides ); }; -const cleanUpModule = async (spaceId: string, sourceId: string) => { - return await cleanUpJobsAndDatafeeds(spaceId, sourceId, metricsHostsJobTypes); -}; - -const validateSetupIndices = async (indices: string[], timestampField: string) => { - return await callValidateIndicesAPI(indices, [ - { - name: timestampField, - validTypes: ['date'], - }, - { - name: partitionField, - validTypes: ['keyword'], - }, - ]); +const getDefaultJobConfigs = (jobId: JobType) => { + switch (jobId) { + case 'hosts_memory_usage': + return { + datafeed: MemoryDatafeed, + job: MemoryJob, + }; + case 'hosts_network_in': + return { + datafeed: NetworkInDatafeed, + job: NetworkInJob, + }; + case 'hosts_network_out': + return { + datafeed: NetworkOutDatafeed, + job: NetworkOutJob, + }; + } }; -const validateSetupDatasets = async ( - indices: string[], - timestampField: string, - startTime: number, - endTime: number -) => { - return await callValidateDatasetsAPI(indices, timestampField, startTime, endTime); +const cleanUpModule = async (spaceId: string, sourceId: string) => { + return await cleanUpJobsAndDatafeeds(spaceId, sourceId, metricsHostsJobTypes); }; export const metricHostsModule: ModuleDescriptor<MetricsHostsJobType> = { @@ -121,6 +174,4 @@ export const metricHostsModule: ModuleDescriptor<MetricsHostsJobType> = { getModuleDefinition, setUpModule, cleanUpModule, - validateSetupDatasets, - validateSetupIndices, }; diff --git a/x-pack/plugins/infra/public/containers/ml/modules/metrics_k8s/module_descriptor.ts b/x-pack/plugins/infra/public/containers/ml/modules/metrics_k8s/module_descriptor.ts index cbcff1c307af6..41c6df92fb379 100644 --- a/x-pack/plugins/infra/public/containers/ml/modules/metrics_k8s/module_descriptor.ts +++ b/x-pack/plugins/infra/public/containers/ml/modules/metrics_k8s/module_descriptor.ts @@ -10,17 +10,28 @@ import { cleanUpJobsAndDatafeeds } from '../../infra_ml_cleanup'; import { callJobsSummaryAPI } from '../../api/ml_get_jobs_summary_api'; import { callGetMlModuleAPI } from '../../api/ml_get_module'; import { callSetupMlModuleAPI } from '../../api/ml_setup_module_api'; -import { callValidateIndicesAPI } from '../../../logs/log_analysis/api/validate_indices'; -import { callValidateDatasetsAPI } from '../../../logs/log_analysis/api/validate_datasets'; import { metricsK8SJobTypes, getJobId, MetricK8sJobType, DatasetFilter, bucketSpan, - partitionField, } from '../../../../../common/infra_ml'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import MemoryJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_memory_usage.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import MemoryDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_memory_usage.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkInJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_in.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkInDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_in.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkOutJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_out.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkOutDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_out.json'; +type JobType = 'k8s_memory_usage' | 'k8s_network_in' | 'k8s_network_out'; +export const DEFAULT_K8S_PARTITION_FIELD = 'kubernetes.namespace'; const moduleId = 'metrics_ui_k8s'; const moduleName = i18n.translate('xpack.infra.ml.metricsModuleName', { defaultMessage: 'Metrics anomanly detection', @@ -54,26 +65,72 @@ const setUpModule = async ( end: number | undefined, datasetFilter: DatasetFilter, { spaceId, sourceId, indices, timestampField }: ModuleSourceConfiguration, - pField?: string + partitionField?: string ) => { const indexNamePattern = indices.join(','); - const jobIds = ['k8s_memory_usage', 'k8s_network_in', 'k8s_network_out']; - const jobOverrides = jobIds.map((id) => ({ - job_id: id, - analysis_config: { - bucket_span: `${bucketSpan}ms`, - }, - data_description: { - time_field: timestampField, - }, - custom_settings: { - metrics_source_config: { - indexPattern: indexNamePattern, - timestampField, - bucketSpan, + const jobIds: JobType[] = ['k8s_memory_usage', 'k8s_network_in', 'k8s_network_out']; + const jobOverrides = jobIds.map((id) => { + const { job: defaultJobConfig } = getDefaultJobConfigs(id); + + // eslint-disable-next-line @typescript-eslint/naming-convention + const analysis_config = { + ...defaultJobConfig.analysis_config, + }; + + if (partitionField) { + analysis_config.detectors[0].partition_field_name = partitionField; + if (analysis_config.influencers.indexOf(partitionField) === -1) { + analysis_config.influencers.push(partitionField); + } + } + + return { + job_id: id, + data_description: { + time_field: timestampField, + }, + analysis_config, + custom_settings: { + metrics_source_config: { + indexPattern: indexNamePattern, + timestampField, + bucketSpan, + }, + }, + }; + }); + + const datafeedOverrides = jobIds.map((id) => { + const { datafeed: defaultDatafeedConfig } = getDefaultJobConfigs(id); + + if (!partitionField || id === 'k8s_memory_usage') { + // Since the host memory usage doesn't have custom aggs, we don't need to do anything to add a partition field + return defaultDatafeedConfig; + } + + // Because the ML K8s jobs ship with a default partition field of {kubernetes.namespace}, ignore that agg and wrap it in our own agg. + const innerAggregation = + defaultDatafeedConfig.aggregations[DEFAULT_K8S_PARTITION_FIELD].aggregations; + + // If we have a partition field, we need to change the aggregation to do a terms agg to partition the data at the top level + const aggregations = { + [partitionField]: { + terms: { + field: partitionField, + size: 25, // 25 is arbitratry and only used to keep the number of buckets to a managable level in the event that the user choose a high cardinality partition field. + }, + aggregations: { + ...innerAggregation, + }, }, - }, - })); + }; + + return { + ...defaultDatafeedConfig, + job_id: id, + aggregations, + }; + }); return callSetupMlModuleAPI( moduleId, @@ -83,34 +140,32 @@ const setUpModule = async ( sourceId, indexNamePattern, jobOverrides, - [] + datafeedOverrides ); }; -const cleanUpModule = async (spaceId: string, sourceId: string) => { - return await cleanUpJobsAndDatafeeds(spaceId, sourceId, metricsK8SJobTypes); -}; - -const validateSetupIndices = async (indices: string[], timestampField: string) => { - return await callValidateIndicesAPI(indices, [ - { - name: timestampField, - validTypes: ['date'], - }, - { - name: partitionField, - validTypes: ['keyword'], - }, - ]); +const getDefaultJobConfigs = (jobId: JobType) => { + switch (jobId) { + case 'k8s_memory_usage': + return { + datafeed: MemoryDatafeed, + job: MemoryJob, + }; + case 'k8s_network_in': + return { + datafeed: NetworkInDatafeed, + job: NetworkInJob, + }; + case 'k8s_network_out': + return { + datafeed: NetworkOutDatafeed, + job: NetworkOutJob, + }; + } }; -const validateSetupDatasets = async ( - indices: string[], - timestampField: string, - startTime: number, - endTime: number -) => { - return await callValidateDatasetsAPI(indices, timestampField, startTime, endTime); +const cleanUpModule = async (spaceId: string, sourceId: string) => { + return await cleanUpJobsAndDatafeeds(spaceId, sourceId, metricsK8SJobTypes); }; export const metricHostsModule: ModuleDescriptor<MetricK8sJobType> = { @@ -124,6 +179,4 @@ export const metricHostsModule: ModuleDescriptor<MetricK8sJobType> = { getModuleDefinition, setUpModule, cleanUpModule, - validateSetupDatasets, - validateSetupIndices, }; diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/anomoly_detection_flyout.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/anomoly_detection_flyout.tsx index b063713fa2c97..b5d224910e819 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/anomoly_detection_flyout.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/anomoly_detection_flyout.tsx @@ -50,10 +50,10 @@ export const AnomalyDetectionFlyout = () => { return ( <> - <EuiButtonEmpty iconSide={'right'} onClick={openFlyout}> + <EuiButtonEmpty iconSide={'left'} iconType={'inspect'} onClick={openFlyout}> <FormattedMessage id="xpack.infra.ml.anomalyDetectionButton" - defaultMessage="Anomaly Detection" + defaultMessage="Anomaly detection" /> </EuiButtonEmpty> {showFlyout && ( diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/flyout_home.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/flyout_home.tsx index 801dff9c4a17a..5b520084ebb74 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/flyout_home.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/flyout_home.tsx @@ -5,7 +5,7 @@ */ import React, { useState, useCallback, useEffect } from 'react'; -import { EuiFlyoutHeader, EuiTitle, EuiFlyoutBody, EuiTabs, EuiTab, EuiSpacer } from '@elastic/eui'; +import { EuiFlyoutHeader, EuiTitle, EuiFlyoutBody, EuiSpacer } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { EuiText, EuiFlexGroup, EuiFlexItem, EuiCard, EuiIcon } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; @@ -30,7 +30,7 @@ interface Props { } export const FlyoutHome = (props: Props) => { - const [tab, setTab] = useState<'jobs' | 'anomalies'>('jobs'); + const [tab] = useState<'jobs' | 'anomalies'>('jobs'); const { goToSetup } = props; const { fetchJobStatus: fetchHostJobStatus, @@ -56,18 +56,10 @@ export const FlyoutHome = (props: Props) => { goToSetup('kubernetes'); }, [goToSetup]); - const goToJobs = useCallback(() => { - setTab('jobs'); - }, []); - const jobIds = [ ...(k8sJobSummaries || []).map((k) => k.id), ...(hostJobSummaries || []).map((h) => h.id), ]; - const anomaliesUrl = useLinkProps({ - app: 'ml', - pathname: `/explorer?_g=${createResultsUrl(jobIds)}`, - }); useEffect(() => { if (hasInfraMLReadCapabilities) { @@ -105,30 +97,24 @@ export const FlyoutHome = (props: Props) => { </EuiFlyoutHeader> <EuiFlyoutBody> - <EuiTabs> - <EuiTab isSelected={tab === 'jobs'} onClick={goToJobs}> - <FormattedMessage - defaultMessage="Jobs" - id="xpack.infra.ml.anomalyFlyout.jobsTabLabel" - /> - </EuiTab> - <EuiTab - disabled={jobIds.length === 0} - isSelected={tab === 'anomalies'} - {...anomaliesUrl} - > - <FormattedMessage - defaultMessage="Anomalies" - id="xpack.infra.ml.anomalyFlyout.anomaliesTabLabel" - /> - </EuiTab> - </EuiTabs> + <div> + <EuiText> + <p> + <FormattedMessage + defaultMessage="Anomaly detection is powered by machine learning. Machine learning jobs are available for the following resource types. Enable these jobs to begin detecting anomalies in your infrastructure metrics." + id="xpack.infra.ml.anomalyFlyout.create.description" + /> + </p> + </EuiText> + </div> + <EuiSpacer size="l" /> {hostJobSummaries.length > 0 && ( <> <JobsEnabledCallout hasHostJobs={hostJobSummaries.length > 0} hasK8sJobs={k8sJobSummaries.length > 0} + jobIds={jobIds} /> <EuiSpacer size="l" /> </> @@ -151,6 +137,7 @@ export const FlyoutHome = (props: Props) => { interface CalloutProps { hasHostJobs: boolean; hasK8sJobs: boolean; + jobIds: string[]; } const JobsEnabledCallout = (props: CalloutProps) => { let target = ''; @@ -175,8 +162,34 @@ const JobsEnabledCallout = (props: CalloutProps) => { pathname: '/jobs', }); + const anomaliesUrl = useLinkProps({ + app: 'ml', + pathname: `/explorer?_g=${createResultsUrl(props.jobIds)}`, + }); + return ( <> + <EuiFlexGroup gutterSize={'s'}> + <EuiFlexItem grow={false}> + <EuiButton {...manageJobsLinkProps} style={{ marginRight: 5 }}> + <FormattedMessage + defaultMessage="Manage jobs" + id="xpack.infra.ml.anomalyFlyout.manageJobs" + /> + </EuiButton> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <EuiButton {...anomaliesUrl}> + <FormattedMessage + defaultMessage="View anomalies" + id="xpack.infra.ml.anomalyFlyout.anomaliesTabLabel" + /> + </EuiButton> + </EuiFlexItem> + </EuiFlexGroup> + + <EuiSpacer size="l" /> + <EuiCallOut size="m" color="success" @@ -189,13 +202,6 @@ const JobsEnabledCallout = (props: CalloutProps) => { } iconType="check" /> - <EuiSpacer size="l" /> - <EuiButton {...manageJobsLinkProps}> - <FormattedMessage - defaultMessage="Manage Jobs" - id="xpack.infra.ml.anomalyFlyout.manageJobs" - /> - </EuiButton> </> ); }; @@ -211,30 +217,11 @@ interface CreateJobTab { const CreateJobTab = (props: CreateJobTab) => { return ( <> - <div> - <EuiText> - <h3> - <FormattedMessage - defaultMessage="Create ML Jobs" - id="xpack.infra.ml.anomalyFlyout.create.jobsTitle" - /> - </h3> - </EuiText> - <EuiText> - <p> - <FormattedMessage - defaultMessage="Machine Learning jobs are available for the following resource types. Enable these jobs to begin detecting anomalies in your infrastructure metrics" - id="xpack.infra.ml.anomalyFlyout.create.description" - /> - </p> - </EuiText> - </div> - - <EuiSpacer size="l" /> + {/* <EuiSpacer size="l" /> */} <EuiFlexGroup gutterSize={'m'}> <EuiFlexItem> <EuiCard - // isDisabled={props.hasSetupCapabilities} + isDisabled={!props.hasSetupCapabilities} icon={<EuiIcon type={'storage'} />} // title="Hosts" title={ @@ -245,7 +232,7 @@ const CreateJobTab = (props: CreateJobTab) => { } description={ <FormattedMessage - defaultMessage="Detect anomalies for CPU usage, memory usage, network traffic, and load." + defaultMessage="Detect anomalies for memory usage and network traffic." id="xpack.infra.ml.anomalyFlyout.create.hostDescription" /> } @@ -254,7 +241,7 @@ const CreateJobTab = (props: CreateJobTab) => { {props.hasHostJobs && ( <EuiButtonEmpty onClick={props.createHosts}> <FormattedMessage - defaultMessage="Recreate Jobs" + defaultMessage="Recreate jobs" id="xpack.infra.ml.anomalyFlyout.create.recreateButton" /> </EuiButtonEmpty> @@ -262,7 +249,7 @@ const CreateJobTab = (props: CreateJobTab) => { {!props.hasHostJobs && ( <EuiButton onClick={props.createHosts}> <FormattedMessage - defaultMessage="Create Jobs" + defaultMessage="Enable" id="xpack.infra.ml.anomalyFlyout.create.createButton" /> </EuiButton> @@ -273,7 +260,7 @@ const CreateJobTab = (props: CreateJobTab) => { </EuiFlexItem> <EuiFlexItem> <EuiCard - // isDisabled={props.hasSetupCapabilities} + isDisabled={!props.hasSetupCapabilities} icon={<EuiIcon type={'logoKubernetes'} />} title={ <FormattedMessage @@ -283,7 +270,7 @@ const CreateJobTab = (props: CreateJobTab) => { } description={ <FormattedMessage - defaultMessage="Detect anomalies for CPU usage, memory usage, network traffic, and load." + defaultMessage="Detect anomalies for memory usage and network traffic." id="xpack.infra.ml.anomalyFlyout.create.k8sDescription" /> } @@ -292,7 +279,7 @@ const CreateJobTab = (props: CreateJobTab) => { {props.hasK8sJobs && ( <EuiButtonEmpty onClick={props.createK8s}> <FormattedMessage - defaultMessage="Recreate Jobs" + defaultMessage="Recreate jobs" id="xpack.infra.ml.anomalyFlyout.create.recreateButton" /> </EuiButtonEmpty> @@ -300,7 +287,7 @@ const CreateJobTab = (props: CreateJobTab) => { {!props.hasK8sJobs && ( <EuiButton onClick={props.createK8s}> <FormattedMessage - defaultMessage="Create Jobs" + defaultMessage="Enable" id="xpack.infra.ml.anomalyFlyout.create.createButton" /> </EuiButton> diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx index 428c002da6383..c327d187f6bc2 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx @@ -20,6 +20,7 @@ import { useSourceViaHttp } from '../../../../../../containers/source/use_source import { useMetricK8sModuleContext } from '../../../../../../containers/ml/modules/metrics_k8s/module'; import { useMetricHostsModuleContext } from '../../../../../../containers/ml/modules/metrics_hosts/module'; import { FixedDatePicker } from '../../../../../../components/fixed_datepicker'; +import { DEFAULT_K8S_PARTITION_FIELD } from '../../../../../../containers/ml/modules/metrics_k8s/module_descriptor'; interface Props { jobType: 'hosts' | 'kubernetes'; @@ -107,7 +108,7 @@ export const JobSetupScreen = (props: Props) => { useEffect(() => { if (props.jobType === 'kubernetes') { - setPartitionField(['kubernetes.namespace']); + setPartitionField([DEFAULT_K8S_PARTITION_FIELD]); } }, [props.jobType]); From 6caf6d5080394418fba519166dde58addb5a0bf3 Mon Sep 17 00:00:00 2001 From: Dima Arnautov <dmitrii.arnautov@elastic.co> Date: Thu, 1 Oct 2020 17:54:56 +0200 Subject: [PATCH 110/142] [ML] Model management UI fixes and enhancements (#79072) * [ML] link to edit pipeline * [ML] view training data link * [ML] format stats and configs * [ML] refactor date_utils * [ML] fix types * [ML] change "View" icon and label * [ML] revert label change --- .../util/date_utils.test.ts | 0 .../application => common}/util/date_utils.ts | 11 ++- .../annotation_description_list/index.tsx | 12 +-- .../annotations_table/annotations_table.js | 14 +-- .../anomalies_table_columns.js | 2 +- .../anomalies_table/anomaly_details.js | 2 +- .../components/anomalies_table/links_menu.js | 2 +- .../components/data_grid/common.ts | 2 +- .../components/job_messages/job_messages.tsx | 7 +- .../model_snapshots/model_snapshots_table.tsx | 11 +-- .../revert_model_snapshot_flyout.tsx | 5 +- .../analytics_list/expanded_row.tsx | 2 +- .../models_management/expanded_row.tsx | 91 +++++++++++++++++-- .../models_management/models_list.tsx | 10 +- .../explorer_chart_distribution.js | 2 +- .../explorer_chart_single_metric.js | 2 +- .../explorer/explorer_swimlane.tsx | 2 +- .../reducers/explorer_reducer/reducer.ts | 2 +- .../forecasts_table/forecasts_table.js | 14 +-- .../components/job_details/format_values.js | 5 +- .../charts/event_rate_chart/overlay_range.tsx | 8 +- .../components/analytics_panel/table.tsx | 2 +- .../anomaly_detection_panel/table.tsx | 2 +- .../application/services/job_service.js | 2 +- .../forecasting_modal/forecasts_list.js | 2 +- .../timeseries_chart/timeseries_chart.js | 2 +- x-pack/plugins/ml/public/shared.ts | 2 +- 27 files changed, 138 insertions(+), 80 deletions(-) rename x-pack/plugins/ml/{public/application => common}/util/date_utils.test.ts (100%) rename x-pack/plugins/ml/{public/application => common}/util/date_utils.ts (78%) diff --git a/x-pack/plugins/ml/public/application/util/date_utils.test.ts b/x-pack/plugins/ml/common/util/date_utils.test.ts similarity index 100% rename from x-pack/plugins/ml/public/application/util/date_utils.test.ts rename to x-pack/plugins/ml/common/util/date_utils.test.ts diff --git a/x-pack/plugins/ml/public/application/util/date_utils.ts b/x-pack/plugins/ml/common/util/date_utils.ts similarity index 78% rename from x-pack/plugins/ml/public/application/util/date_utils.ts rename to x-pack/plugins/ml/common/util/date_utils.ts index 21adc0b4b9c66..73ac68b2493f3 100644 --- a/x-pack/plugins/ml/public/application/util/date_utils.ts +++ b/x-pack/plugins/ml/common/util/date_utils.ts @@ -6,10 +6,11 @@ // utility functions for handling dates -// @ts-ignore -import { formatDate } from '@elastic/eui/lib/services/format'; import dateMath from '@elastic/datemath'; -import { TimeRange } from '../../../../../../src/plugins/data/common'; +import { formatDate } from '@elastic/eui'; +import { TimeRange } from '../../../../../src/plugins/data/common'; +import { TIME_FORMAT } from '../constants/time_format'; + export function formatHumanReadableDate(ts: number) { return formatDate(ts, 'MMMM Do YYYY'); } @@ -28,3 +29,7 @@ export function validateTimeRange(time?: TimeRange): boolean { const momentDateTo = dateMath.parse(time.to); return !!(momentDateFrom && momentDateFrom.isValid() && momentDateTo && momentDateTo.isValid()); } + +export const timeFormatter = (value: number) => { + return formatDate(value, TIME_FORMAT); +}; diff --git a/x-pack/plugins/ml/public/application/components/annotations/annotation_description_list/index.tsx b/x-pack/plugins/ml/public/application/components/annotations/annotation_description_list/index.tsx index eee2f8dca244d..156ad72ba9f9f 100644 --- a/x-pack/plugins/ml/public/application/components/annotations/annotation_description_list/index.tsx +++ b/x-pack/plugins/ml/public/application/components/annotations/annotation_description_list/index.tsx @@ -15,7 +15,7 @@ import { EuiDescriptionList } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { Annotation } from '../../../../../common/types/annotations'; -import { formatHumanReadableDateTimeSeconds } from '../../../util/date_utils'; +import { formatHumanReadableDateTimeSeconds } from '../../../../../common/util/date_utils'; interface Props { annotation: Annotation; @@ -61,7 +61,7 @@ export const AnnotationDescriptionList = ({ annotation, detectorDescription }: P defaultMessage: 'Created by', } ), - description: annotation.create_username, + description: annotation.create_username ?? '', }); listItems.push({ title: i18n.translate( @@ -79,7 +79,7 @@ export const AnnotationDescriptionList = ({ annotation, detectorDescription }: P defaultMessage: 'Modified by', } ), - description: annotation.modified_username, + description: annotation.modified_username ?? '', }); } if (detectorDescription !== undefined) { @@ -94,19 +94,19 @@ export const AnnotationDescriptionList = ({ annotation, detectorDescription }: P if (annotation.partition_field_name !== undefined) { listItems.push({ title: annotation.partition_field_name, - description: annotation.partition_field_value, + description: annotation.partition_field_value ?? '', }); } if (annotation.over_field_name !== undefined) { listItems.push({ title: annotation.over_field_name, - description: annotation.over_field_value, + description: annotation.over_field_value ?? '', }); } if (annotation.by_field_name !== undefined) { listItems.push({ title: annotation.by_field_name, - description: annotation.by_field_value, + description: annotation.by_field_value ?? '', }); } diff --git a/x-pack/plugins/ml/public/application/components/annotations/annotations_table/annotations_table.js b/x-pack/plugins/ml/public/application/components/annotations/annotations_table/annotations_table.js index 0527b8f6d9f60..7eb280c6247c2 100644 --- a/x-pack/plugins/ml/public/application/components/annotations/annotations_table/annotations_table.js +++ b/x-pack/plugins/ml/public/application/components/annotations/annotations_table/annotations_table.js @@ -31,8 +31,6 @@ import { FormattedMessage } from '@kbn/i18n/react'; import { RIGHT_ALIGNMENT } from '@elastic/eui/lib/services'; -import { formatDate } from '@elastic/eui/lib/services/format'; - import { addItemToRecentlyAccessed } from '../../../util/recently_accessed'; import { ml } from '../../../services/ml_api_service'; import { mlJobService } from '../../../services/job_service'; @@ -42,7 +40,6 @@ import { getLatestDataOrBucketTimestamp, isTimeSeriesViewJob, } from '../../../../../common/util/job_utils'; -import { TIME_FORMAT } from '../../../../../common/constants/time_format'; import { annotation$, @@ -56,6 +53,7 @@ import { import { withKibana } from '../../../../../../../../src/plugins/kibana_react/public'; import { ML_APP_URL_GENERATOR, ML_PAGES } from '../../../../../common/constants/ml_url_generator'; import { PLUGIN_ID } from '../../../../../common/constants/app'; +import { timeFormatter } from '../../../../../common/util/date_utils'; const CURRENT_SERIES = 'current_series'; /** @@ -377,10 +375,6 @@ class AnnotationsTableUI extends Component { ); } - function renderDate(date) { - return formatDate(date, TIME_FORMAT); - } - const columns = [ { field: 'annotation', @@ -397,7 +391,7 @@ class AnnotationsTableUI extends Component { defaultMessage: 'From', }), dataType: 'date', - render: renderDate, + render: timeFormatter, sortable: true, }, { @@ -406,7 +400,7 @@ class AnnotationsTableUI extends Component { defaultMessage: 'To', }), dataType: 'date', - render: renderDate, + render: timeFormatter, sortable: true, }, { @@ -415,7 +409,7 @@ class AnnotationsTableUI extends Component { defaultMessage: 'Last modified date', }), dataType: 'date', - render: renderDate, + render: timeFormatter, sortable: true, }, { diff --git a/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table_columns.js b/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table_columns.js index 1f8c8633afa47..d2c4122bc1b57 100644 --- a/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table_columns.js +++ b/x-pack/plugins/ml/public/application/components/anomalies_table/anomalies_table_columns.js @@ -16,7 +16,7 @@ import { formatHumanReadableDate, formatHumanReadableDateTime, formatHumanReadableDateTimeSeconds, -} from '../../util/date_utils'; +} from '../../../../common/util/date_utils'; import { DescriptionCell } from './description_cell'; import { DetectorCell } from './detector_cell'; diff --git a/x-pack/plugins/ml/public/application/components/anomalies_table/anomaly_details.js b/x-pack/plugins/ml/public/application/components/anomalies_table/anomaly_details.js index cd3875f8cbd2a..a2a3aea5988aa 100644 --- a/x-pack/plugins/ml/public/application/components/anomalies_table/anomaly_details.js +++ b/x-pack/plugins/ml/public/application/components/anomalies_table/anomaly_details.js @@ -26,7 +26,7 @@ import { EuiTabbedContent, EuiText, } from '@elastic/eui'; -import { formatHumanReadableDateTimeSeconds } from '../../util/date_utils'; +import { formatHumanReadableDateTimeSeconds } from '../../../../common/util/date_utils'; import { EntityCell } from '../entity_cell'; import { diff --git a/x-pack/plugins/ml/public/application/components/anomalies_table/links_menu.js b/x-pack/plugins/ml/public/application/components/anomalies_table/links_menu.js index d898734f34c93..079d56da60e5e 100644 --- a/x-pack/plugins/ml/public/application/components/anomalies_table/links_menu.js +++ b/x-pack/plugins/ml/public/application/components/anomalies_table/links_menu.js @@ -26,7 +26,7 @@ import { getFieldTypeFromMapping } from '../../services/mapping_service'; import { ml } from '../../services/ml_api_service'; import { mlJobService } from '../../services/job_service'; import { getUrlForRecord, openCustomUrlWindow } from '../../util/custom_url_utils'; -import { formatHumanReadableDateTimeSeconds } from '../../util/date_utils'; +import { formatHumanReadableDateTimeSeconds } from '../../../../common/util/date_utils'; import { getIndexPatternIdFromName } from '../../util/index_utils'; import { replaceStringTokens } from '../../util/string_utils'; import { ML_APP_URL_GENERATOR, ML_PAGES } from '../../../../common/constants/ml_url_generator'; diff --git a/x-pack/plugins/ml/public/application/components/data_grid/common.ts b/x-pack/plugins/ml/public/application/components/data_grid/common.ts index f252729cc20cd..36b0573d609d8 100644 --- a/x-pack/plugins/ml/public/application/components/data_grid/common.ts +++ b/x-pack/plugins/ml/public/application/components/data_grid/common.ts @@ -37,7 +37,7 @@ import { OUTLIER_SCORE, TOP_CLASSES, } from '../../data_frame_analytics/common/constants'; -import { formatHumanReadableDateTimeSeconds } from '../../util/date_utils'; +import { formatHumanReadableDateTimeSeconds } from '../../../../common/util/date_utils'; import { getNestedProperty } from '../../util/object_utils'; import { mlFieldFormatService } from '../../services/field_format_service'; diff --git a/x-pack/plugins/ml/public/application/components/job_messages/job_messages.tsx b/x-pack/plugins/ml/public/application/components/job_messages/job_messages.tsx index 798ceae0f0732..f60cd61b25cd4 100644 --- a/x-pack/plugins/ml/public/application/components/job_messages/job_messages.tsx +++ b/x-pack/plugins/ml/public/application/components/job_messages/job_messages.tsx @@ -7,14 +7,13 @@ import React, { FC } from 'react'; import { EuiSpacer, EuiInMemoryTable, EuiButtonIcon, EuiToolTip } from '@elastic/eui'; -// @ts-ignore -import { formatDate } from '@elastic/eui/lib/services/format'; + import { i18n } from '@kbn/i18n'; import theme from '@elastic/eui/dist/eui_theme_light.json'; import { JobMessage } from '../../../../common/types/audit_message'; -import { TIME_FORMAT } from '../../../../common/constants/time_format'; import { JobIcon } from '../job_message_icon'; +import { timeFormatter } from '../../../../common/util/date_utils'; interface JobMessagesProps { messages: JobMessage[]; @@ -55,7 +54,7 @@ export const JobMessages: FC<JobMessagesProps> = ({ messages, loading, error, re name: i18n.translate('xpack.ml.jobMessages.timeLabel', { defaultMessage: 'Time', }), - render: (timestamp: number) => formatDate(timestamp, TIME_FORMAT), + render: timeFormatter, width: '120px', sortable: true, }, diff --git a/x-pack/plugins/ml/public/application/components/model_snapshots/model_snapshots_table.tsx b/x-pack/plugins/ml/public/application/components/model_snapshots/model_snapshots_table.tsx index 64fdd97903b60..5b175eb06a4a3 100644 --- a/x-pack/plugins/ml/public/application/components/model_snapshots/model_snapshots_table.tsx +++ b/x-pack/plugins/ml/public/application/components/model_snapshots/model_snapshots_table.tsx @@ -13,7 +13,6 @@ import { EuiInMemoryTable, EuiLoadingSpinner, EuiBasicTableColumn, - formatDate, } from '@elastic/eui'; import { checkPermission } from '../../capabilities/check_capabilities'; @@ -21,12 +20,12 @@ import { EditModelSnapshotFlyout } from './edit_model_snapshot_flyout'; import { RevertModelSnapshotFlyout } from './revert_model_snapshot_flyout'; import { ml } from '../../services/ml_api_service'; import { JOB_STATE, DATAFEED_STATE } from '../../../../common/constants/states'; -import { TIME_FORMAT } from '../../../../common/constants/time_format'; import { CloseJobConfirm } from './close_job_confirm'; import { ModelSnapshot, CombinedJobWithStats, } from '../../../../common/types/anomaly_detection_jobs'; +import { timeFormatter } from '../../../../common/util/date_utils'; interface Props { job: CombinedJobWithStats; @@ -138,7 +137,7 @@ export const ModelSnapshotTable: FC<Props> = ({ job, refreshJobList }) => { defaultMessage: 'Date created', }), dataType: 'date', - render: renderDate, + render: timeFormatter, sortable: true, }, { @@ -147,7 +146,7 @@ export const ModelSnapshotTable: FC<Props> = ({ job, refreshJobList }) => { defaultMessage: 'Latest timestamp', }), dataType: 'date', - render: renderDate, + render: timeFormatter, sortable: true, }, { @@ -246,10 +245,6 @@ export const ModelSnapshotTable: FC<Props> = ({ job, refreshJobList }) => { ); }; -function renderDate(date: number) { - return formatDate(date, TIME_FORMAT); -} - async function getCombinedJobState(jobId: string) { const jobs = await ml.jobs.jobs([jobId]); diff --git a/x-pack/plugins/ml/public/application/components/model_snapshots/revert_model_snapshot_flyout/revert_model_snapshot_flyout.tsx b/x-pack/plugins/ml/public/application/components/model_snapshots/revert_model_snapshot_flyout/revert_model_snapshot_flyout.tsx index e37efe60f8018..62f5623f67964 100644 --- a/x-pack/plugins/ml/public/application/components/model_snapshots/revert_model_snapshot_flyout/revert_model_snapshot_flyout.tsx +++ b/x-pack/plugins/ml/public/application/components/model_snapshots/revert_model_snapshot_flyout/revert_model_snapshot_flyout.tsx @@ -32,7 +32,6 @@ import { EuiHorizontalRule, EuiSuperSelect, EuiText, - formatDate, } from '@elastic/eui'; import { @@ -47,8 +46,8 @@ import { LineChartPoint } from '../../../jobs/new_job/common/chart_loader'; import { EventRateChart } from '../../../jobs/new_job/pages/components/charts/event_rate_chart/event_rate_chart'; import { Anomaly } from '../../../jobs/new_job/common/results_loader/results_loader'; import { parseInterval } from '../../../../../common/util/parse_interval'; -import { TIME_FORMAT } from '../../../../../common/constants/time_format'; import { CreateCalendar, CalendarEvent } from './create_calendar'; +import { timeFormatter } from '../../../../../common/util/date_utils'; interface Props { snapshot: ModelSnapshot; @@ -255,7 +254,7 @@ export const RevertModelSnapshotFlyout: FC<Props> = ({ snapshot, snapshots, job, <FormattedMessage id="xpack.ml.newJob.wizard.revertModelSnapshotFlyout.warningCallout.contents" defaultMessage="All anomaly detection results after {date} will be deleted." - values={{ date: formatDate(currentSnapshot.latest_record_time_stamp, TIME_FORMAT) }} + values={{ date: timeFormatter(currentSnapshot.latest_record_time_stamp) }} /> </EuiCallOut> diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row.tsx index 95204f9ba09fc..a0bd437a667a2 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row.tsx @@ -11,7 +11,7 @@ import { EuiIcon, EuiLoadingSpinner, EuiTabbedContent } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { formatHumanReadableDateTimeSeconds } from '../../../../../util/date_utils'; +import { formatHumanReadableDateTimeSeconds } from '../../../../../../../common/util/date_utils'; import { DataFrameAnalyticsListRow } from './common'; import { ExpandedRowDetailsPane, SectionConfig, SectionItem } from './expanded_row_details_pane'; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/models_management/expanded_row.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/models_management/expanded_row.tsx index 7b9329fee783b..803a2523a55e0 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/models_management/expanded_row.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/models_management/expanded_row.tsx @@ -20,16 +20,35 @@ import { EuiHorizontalRule, EuiFlexGroup, EuiTextColor, + EuiButtonEmpty, + EuiBadge, } from '@elastic/eui'; -// @ts-ignore -import { formatDate } from '@elastic/eui/lib/services/format'; +import { EuiDescriptionListProps } from '@elastic/eui/src/components/description_list/description_list'; import { ModelItemFull } from './models_list'; -import { TIME_FORMAT } from '../../../../../../../common/constants/time_format'; +import { useMlKibana } from '../../../../../contexts/kibana'; +import { timeFormatter } from '../../../../../../../common/util/date_utils'; interface ExpandedRowProps { item: ModelItemFull; } +const formatterDictionary: Record<string, (value: any) => JSX.Element | string | undefined> = { + tags: (tags: string[]) => { + if (tags.length === 0) return; + return ( + <div> + {tags.map((tag) => ( + <EuiBadge key={tag} color="hollow"> + {tag} + </EuiBadge> + ))} + </div> + ); + }, + create_time: timeFormatter, + timestamp: timeFormatter, +}; + export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { const { inference_config: inferenceConfig, @@ -57,19 +76,45 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { license_level, }; - function formatToListItems(items: Record<string, any>) { + function formatToListItems(items: Record<string, any>): EuiDescriptionListProps['listItems'] { return Object.entries(items) .map(([title, value]) => { - if (title.includes('timestamp')) { - value = formatDate(value, TIME_FORMAT); + if (title in formatterDictionary) { + return { + title, + description: formatterDictionary[title](value), + }; } - return { title, description: typeof value === 'object' ? JSON.stringify(value) : value }; + return { + title, + description: + typeof value === 'object' ? ( + <EuiCodeBlock + language="json" + fontSize="s" + paddingSize="s" + overflowHeight={300} + isCopyable={false} + > + {JSON.stringify(value, null, 2)} + </EuiCodeBlock> + ) : ( + value + ), + }; }) .filter(({ description }) => { return description !== undefined; }); } + const { + services: { + share, + application: { navigateToUrl }, + }, + } = useMlKibana(); + const tabs = [ { id: 'details', @@ -323,9 +368,35 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { return ( <EuiFlexItem key={pipelineName}> <EuiPanel> - <EuiTitle size={'xs'}> - <h5>{pipelineName}</h5> - </EuiTitle> + <EuiFlexGroup alignItems="center" justifyContent="spaceBetween"> + <EuiFlexItem grow={false}> + <EuiTitle size={'xs'}> + <h5>{pipelineName}</h5> + </EuiTitle> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <EuiButtonEmpty + onClick={async () => { + const ingestPipelinesAppUrlGenerator = share.urlGenerators.getUrlGenerator( + 'INGEST_PIPELINES_APP_URL_GENERATOR' + ); + await navigateToUrl( + await ingestPipelinesAppUrlGenerator.createUrl({ + page: 'pipeline_edit', + pipelineId: pipelineName, + absolute: true, + }) + ); + }} + > + <FormattedMessage + id="xpack.ml.inference.modelsList.expandedRow.editPipelineLabel" + defaultMessage="Edit" + /> + </EuiButtonEmpty> + </EuiFlexItem> + </EuiFlexGroup> + {description && <EuiText>{description}</EuiText>} <EuiSpacer size={'m'} /> <EuiTitle size={'xxs'}> diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/models_management/models_list.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/models_management/models_list.tsx index dbc7a23f2258b..d5a7ca6e96c06 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/models_management/models_list.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/models_management/models_list.tsx @@ -19,15 +19,13 @@ import { EuiBadge, SearchFilterConfig, } from '@elastic/eui'; -// @ts-ignore -import { formatDate } from '@elastic/eui/lib/services/format'; + import { EuiBasicTableColumn } from '@elastic/eui/src/components/basic_table/basic_table'; import { EuiTableSelectionType } from '@elastic/eui/src/components/basic_table/table_types'; import { Action } from '@elastic/eui/src/components/basic_table/action_types'; import { StatsBar, ModelsBarStats } from '../../../../../components/stats_bar'; import { useInferenceApiService } from '../../../../../services/ml_api_service/inference'; import { ModelsTableToConfigMapping } from './index'; -import { TIME_FORMAT } from '../../../../../../../common/constants/time_format'; import { DeleteModelsModal } from './delete_models_modal'; import { useMlKibana, useMlUrlGenerator, useNotifications } from '../../../../../contexts/kibana'; import { ExpandedRow } from './expanded_row'; @@ -46,6 +44,7 @@ import { useTableSettings } from '../analytics_list/use_table_settings'; import { filterAnalyticsModels, AnalyticsSearchBar } from '../analytics_search_bar'; import { ML_PAGES } from '../../../../../../../common/constants/ml_url_generator'; import { DataFrameAnalysisConfigType } from '../../../../../../../common/types/data_frame_analytics'; +import { timeFormatter } from '../../../../../../../common/util/date_utils'; type Stats = Omit<TrainedModelStat, 'model_id'>; @@ -277,7 +276,7 @@ export const ModelsList: FC = () => { description: i18n.translate('xpack.ml.inference.modelsList.viewTrainingDataActionLabel', { defaultMessage: 'View training data', }), - icon: 'list', + icon: 'visTable', type: 'icon', available: (item) => item.metadata?.analytics_config?.id, onClick: async (item) => { @@ -290,6 +289,7 @@ export const ModelsList: FC = () => { analysisType: getAnalysisType( item.metadata?.analytics_config.analysis ) as DataFrameAnalysisConfigType, + defaultIsTraining: true, }, }); @@ -375,7 +375,7 @@ export const ModelsList: FC = () => { defaultMessage: 'Created at', }), dataType: 'date', - render: (date: string) => formatDate(date, TIME_FORMAT), + render: timeFormatter, sortable: true, }, { diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js index 00aca5d43be85..994975912cd6f 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_distribution.js @@ -17,7 +17,7 @@ import d3 from 'd3'; import $ from 'jquery'; import moment from 'moment'; -import { formatHumanReadableDateTime } from '../../util/date_utils'; +import { formatHumanReadableDateTime } from '../../../../common/util/date_utils'; import { formatValue } from '../../formatters/format_value'; import { getSeverityColor, getSeverityWithLow } from '../../../../common/util/anomaly_utils'; import { diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js index 0a76211f2e330..606d1c0690422 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_chart_single_metric.js @@ -17,7 +17,7 @@ import $ from 'jquery'; import moment from 'moment'; import { i18n } from '@kbn/i18n'; -import { formatHumanReadableDateTime } from '../../util/date_utils'; +import { formatHumanReadableDateTime } from '../../../../common/util/date_utils'; import { formatValue } from '../../formatters/format_value'; import { getSeverityColor, diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_swimlane.tsx b/x-pack/plugins/ml/public/application/explorer/explorer_swimlane.tsx index 359dc11ca08d1..569709d648b3c 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_swimlane.tsx +++ b/x-pack/plugins/ml/public/application/explorer/explorer_swimlane.tsx @@ -19,7 +19,7 @@ import { i18n } from '@kbn/i18n'; import { Subject, Subscription } from 'rxjs'; import { TooltipValue } from '@elastic/charts'; import { htmlIdGenerator } from '@elastic/eui'; -import { formatHumanReadableDateTime } from '../util/date_utils'; +import { formatHumanReadableDateTime } from '../../../common/util/date_utils'; import { numTicksForDateFormat } from '../util/chart_utils'; import { getSeverityColor } from '../../../common/util/anomaly_utils'; import { mlEscape } from '../util/string_utils'; diff --git a/x-pack/plugins/ml/public/application/explorer/reducers/explorer_reducer/reducer.ts b/x-pack/plugins/ml/public/application/explorer/reducers/explorer_reducer/reducer.ts index a38044a8b3425..c5fb0175c54e9 100644 --- a/x-pack/plugins/ml/public/application/explorer/reducers/explorer_reducer/reducer.ts +++ b/x-pack/plugins/ml/public/application/explorer/reducers/explorer_reducer/reducer.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { formatHumanReadableDateTime } from '../../../util/date_utils'; +import { formatHumanReadableDateTime } from '../../../../../common/util/date_utils'; import { getDefaultChartsData } from '../../explorer_charts/explorer_charts_container_service'; import { EXPLORER_ACTION, VIEW_BY_JOB_LABEL } from '../../explorer_constants'; diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/forecasts_table/forecasts_table.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/forecasts_table/forecasts_table.js index b32070fff73aa..44ebde634714c 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/forecasts_table/forecasts_table.js +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/forecasts_table/forecasts_table.js @@ -16,10 +16,9 @@ import { EuiLink, EuiLoadingSpinner, } from '@elastic/eui'; -import { formatDate, formatNumber } from '@elastic/eui/lib/services/format'; +import { formatNumber } from '@elastic/eui/lib/services/format'; import { FORECAST_REQUEST_STATE } from '../../../../../../../common/constants/states'; -import { TIME_FORMAT } from '../../../../../../../common/constants/time_format'; import { addItemToRecentlyAccessed } from '../../../../../util/recently_accessed'; import { mlForecastService } from '../../../../../services/forecast_service'; import { i18n } from '@kbn/i18n'; @@ -34,6 +33,7 @@ import { ML_PAGES, } from '../../../../../../../common/constants/ml_url_generator'; import { PLUGIN_ID } from '../../../../../../../common/constants/app'; +import { timeFormatter } from '../../../../../../../common/util/date_utils'; const MAX_FORECASTS = 500; @@ -218,7 +218,7 @@ export class ForecastsTableUI extends Component { defaultMessage: 'Created', }), dataType: 'date', - render: (date) => formatDate(date, TIME_FORMAT), + render: timeFormatter, textOnly: true, sortable: true, scope: 'row', @@ -229,7 +229,7 @@ export class ForecastsTableUI extends Component { defaultMessage: 'From', }), dataType: 'date', - render: (date) => formatDate(date, TIME_FORMAT), + render: timeFormatter, textOnly: true, sortable: true, }, @@ -239,7 +239,7 @@ export class ForecastsTableUI extends Component { defaultMessage: 'To', }), dataType: 'date', - render: (date) => formatDate(date, TIME_FORMAT), + render: timeFormatter, textOnly: true, sortable: true, }, @@ -277,7 +277,7 @@ export class ForecastsTableUI extends Component { name: i18n.translate('xpack.ml.jobsList.jobDetails.forecastsTable.expiresLabel', { defaultMessage: 'Expires', }), - render: (date) => formatDate(date, TIME_FORMAT), + render: timeFormatter, textOnly: true, sortable: true, }, @@ -309,7 +309,7 @@ export class ForecastsTableUI extends Component { { defaultMessage: 'View forecast created at {createdDate}', values: { - createdDate: formatDate(forecast.forecast_create_timestamp, TIME_FORMAT), + createdDate: timeFormatter(forecast.forecast_create_timestamp), }, } ); diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/format_values.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/format_values.js index 3fe4f0e5477a2..eff407a41fb0d 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/format_values.js +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/format_values.js @@ -5,10 +5,9 @@ */ import numeral from '@elastic/numeral'; -import { formatDate } from '@elastic/eui/lib/services/format'; import { roundToDecimalPlace } from '../../../../formatters/round_to_decimal_place'; import { toLocaleString } from '../../../../util/string_utils'; -import { TIME_FORMAT } from '../../../../../../common/constants/time_format'; +import { timeFormatter } from '../../../../../../common/util/date_utils'; const DATA_FORMAT = '0.0 b'; @@ -29,7 +28,7 @@ export function formatValues([key, value]) { case 'latest_empty_bucket_timestamp': case 'latest_sparse_bucket_timestamp': case 'latest_bucket_timestamp': - value = formatDate(value, TIME_FORMAT); + value = timeFormatter(value); break; // data diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/charts/event_rate_chart/overlay_range.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/charts/event_rate_chart/overlay_range.tsx index a35c2d9c833a8..8ad359251b029 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/charts/event_rate_chart/overlay_range.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/charts/event_rate_chart/overlay_range.tsx @@ -5,12 +5,10 @@ */ import React, { FC } from 'react'; -// @ts-ignore -import { formatDate } from '@elastic/eui/lib/services/format'; import { EuiIcon } from '@elastic/eui'; import { RectAnnotation, LineAnnotation, AnnotationDomainTypes } from '@elastic/charts'; import { LineChartPoint } from '../../../../common/chart_loader'; -import { TIME_FORMAT } from '../../../../../../../../common/constants/time_format'; +import { timeFormatter } from '../../../../../../../../common/util/date_utils'; interface Props { overlayKey: number; @@ -70,9 +68,7 @@ export const OverlayRange: FC<Props> = ({ <div style={{ textAlign: 'center' }}> <EuiIcon type="arrowUp" /> </div> - <div style={{ fontWeight: 'normal', color: '#343741' }}> - {formatDate(start, TIME_FORMAT)} - </div> + <div style={{ fontWeight: 'normal', color: '#343741' }}>{timeFormatter(start)}</div> </div> </> ) : undefined diff --git a/x-pack/plugins/ml/public/application/overview/components/analytics_panel/table.tsx b/x-pack/plugins/ml/public/application/overview/components/analytics_panel/table.tsx index fc0645a0e9498..4b469a0f5874d 100644 --- a/x-pack/plugins/ml/public/application/overview/components/analytics_panel/table.tsx +++ b/x-pack/plugins/ml/public/application/overview/components/analytics_panel/table.tsx @@ -23,7 +23,7 @@ import { getTaskStateBadge, progressColumn, } from '../../../data_frame_analytics/pages/analytics_management/components/analytics_list/use_columns'; -import { formatHumanReadableDateTimeSeconds } from '../../../util/date_utils'; +import { formatHumanReadableDateTimeSeconds } from '../../../../../common/util/date_utils'; import { ViewLink } from './actions'; diff --git a/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/table.tsx b/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/table.tsx index 8515431d49b17..b95aed01ebae8 100644 --- a/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/table.tsx +++ b/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/table.tsx @@ -20,7 +20,7 @@ import { EuiToolTip, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { formatHumanReadableDateTimeSeconds } from '../../../util/date_utils'; +import { formatHumanReadableDateTimeSeconds } from '../../../../../common/util/date_utils'; import { ExplorerLink } from './actions'; import { getJobsFromGroup } from './utils'; import { GroupsDictionary, Group } from './anomaly_detection_panel'; diff --git a/x-pack/plugins/ml/public/application/services/job_service.js b/x-pack/plugins/ml/public/application/services/job_service.js index 939ad34e77a39..0971b47605135 100644 --- a/x-pack/plugins/ml/public/application/services/job_service.js +++ b/x-pack/plugins/ml/public/application/services/job_service.js @@ -15,7 +15,7 @@ import { isWebUrl } from '../util/url_utils'; import { ML_DATA_PREVIEW_COUNT } from '../../../common/util/job_utils'; import { TIME_FORMAT } from '../../../common/constants/time_format'; import { parseInterval } from '../../../common/util/parse_interval'; -import { validateTimeRange } from '../util/date_utils'; +import { validateTimeRange } from '../../../common/util/date_utils'; let jobs = []; let datafeedIds = {}; diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/components/forecasting_modal/forecasts_list.js b/x-pack/plugins/ml/public/application/timeseriesexplorer/components/forecasting_modal/forecasts_list.js index cbc2c324a8bc6..2378d8c835ce9 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/components/forecasting_modal/forecasts_list.js +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/components/forecasting_modal/forecasts_list.js @@ -13,7 +13,7 @@ import React from 'react'; import { EuiButtonIcon, EuiIcon, EuiInMemoryTable, EuiText, EuiToolTip } from '@elastic/eui'; -import { formatHumanReadableDateTimeSeconds } from '../../../util/date_utils'; +import { formatHumanReadableDateTimeSeconds } from '../../../../../common/util/date_utils'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/components/timeseries_chart/timeseries_chart.js b/x-pack/plugins/ml/public/application/timeseriesexplorer/components/timeseries_chart/timeseries_chart.js index 1d166b7be9bc1..4c87c3b374ff3 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/components/timeseries_chart/timeseries_chart.js +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/components/timeseries_chart/timeseries_chart.js @@ -33,7 +33,7 @@ import { showMultiBucketAnomalyMarker, showMultiBucketAnomalyTooltip, } from '../../../util/chart_utils'; -import { formatHumanReadableDateTimeSeconds } from '../../../util/date_utils'; +import { formatHumanReadableDateTimeSeconds } from '../../../../../common/util/date_utils'; import { getTimeBucketsFromCache } from '../../../util/time_buckets'; import { mlTableService } from '../../../services/table_service'; import { ContextChartMask } from '../context_chart_mask'; diff --git a/x-pack/plugins/ml/public/shared.ts b/x-pack/plugins/ml/public/shared.ts index ec884bfac5351..62b8179c9d5b2 100644 --- a/x-pack/plugins/ml/public/shared.ts +++ b/x-pack/plugins/ml/public/shared.ts @@ -20,4 +20,4 @@ export * from '../common/util/validators'; export * from './application/formatters/metric_change_description'; export * from './application/components/data_grid'; export * from './application/data_frame_analytics/common'; -export * from './application/util/date_utils'; +export * from '../common/util/date_utils'; From e248f32111626e0909d3fad4339f3b625bd71493 Mon Sep 17 00:00:00 2001 From: Caroline Horn <549577+cchaos@users.noreply.github.com> Date: Thu, 1 Oct 2020 11:58:23 -0400 Subject: [PATCH 111/142] [Lens] Consistent Drag and Drop styles (#78674) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove wrapping div of DragDrop and pass props to child * Using EuiHighlight * Basic styles in for all DnD states * Fixing dimension button styles * Fix FieldButton to accept `…rest` props * A few other minor fixes * Fixed horizontal scroll of error message * Quick fix for invalid link --- .../public/field_button/field_button.tsx | 37 ++- x-pack/plugins/lens/public/_mixins.scss | 36 +++ .../__snapshots__/drag_drop.test.tsx.snap | 18 +- .../lens/public/drag_drop/drag_drop.scss | 55 +++- .../lens/public/drag_drop/drag_drop.test.tsx | 30 +- .../lens/public/drag_drop/drag_drop.tsx | 65 ++-- .../config_panel/config_panel.scss | 2 +- .../config_panel/config_panel.tsx | 6 +- .../config_panel/dimension_container.tsx | 2 +- .../config_panel/layer_panel.scss | 37 ++- .../editor_frame/config_panel/layer_panel.tsx | 302 ++++++++++-------- .../editor_frame/frame_layout.scss | 2 +- .../workspace_panel/workspace_panel.tsx | 12 +- .../workspace_panel_wrapper.scss | 27 +- .../indexpattern_datasource/datapanel.scss | 2 +- .../dimension_panel/dimension_panel.tsx | 22 +- .../indexpattern_datasource/field_item.scss | 20 +- .../indexpattern_datasource/field_item.tsx | 37 +-- .../definitions/shared_components/buckets.tsx | 10 +- .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 21 files changed, 431 insertions(+), 293 deletions(-) diff --git a/src/plugins/kibana_react/public/field_button/field_button.tsx b/src/plugins/kibana_react/public/field_button/field_button.tsx index 97d1b32746120..4c0298a65ba5d 100644 --- a/src/plugins/kibana_react/public/field_button/field_button.tsx +++ b/src/plugins/kibana_react/public/field_button/field_button.tsx @@ -19,7 +19,8 @@ import './field_button.scss'; import classNames from 'classnames'; -import React, { ReactNode, HTMLAttributes } from 'react'; +import React, { ReactNode, HTMLAttributes, ButtonHTMLAttributes } from 'react'; +import { CommonProps } from '@elastic/eui'; export interface FieldButtonProps extends HTMLAttributes<HTMLDivElement> { /** @@ -56,7 +57,14 @@ export interface FieldButtonProps extends HTMLAttributes<HTMLDivElement> { * The component will render a `<button>` when provided an `onClick` */ onClick?: () => void; + /** + * Applies to the inner `<button>` or `<div>` + */ dataTestSubj?: string; + /** + * Pass more button props to the `<button>` element + */ + buttonProps?: ButtonHTMLAttributes<HTMLButtonElement> & CommonProps; } const sizeToClassNameMap = { @@ -79,6 +87,8 @@ export function FieldButton({ isDraggable = false, onClick, dataTestSubj, + buttonProps, + ...rest }: FieldButtonProps) { const classes = classNames( 'kbnFieldButton', @@ -88,8 +98,18 @@ export function FieldButton({ className ); + const contentClasses = classNames('kbn-resetFocusState', 'kbnFieldButton__button'); + + const innerContent = ( + <> + {fieldIcon && <span className="kbnFieldButton__fieldIcon">{fieldIcon}</span>} + {fieldName && <span className="kbnFieldButton__name">{fieldName}</span>} + {fieldInfoIcon && <div className="kbnFieldButton__infoIcon">{fieldInfoIcon}</div>} + </> + ); + return ( - <div className={classes}> + <div className={classes} {...rest}> {onClick ? ( <button onClick={(e) => { @@ -99,17 +119,14 @@ export function FieldButton({ onClick(); }} data-test-subj={dataTestSubj} - className={'kbn-resetFocusState kbnFieldButton__button'} + className={contentClasses} + {...buttonProps} > - {fieldIcon && <span className="kbnFieldButton__fieldIcon">{fieldIcon}</span>} - {fieldName && <span className="kbnFieldButton__name">{fieldName}</span>} - {fieldInfoIcon && <div className="kbnFieldButton__infoIcon">{fieldInfoIcon}</div>} + {innerContent} </button> ) : ( - <div className={'kbn-resetFocusState kbnFieldButton__button'} data-test-subj={dataTestSubj}> - {fieldIcon && <span className="kbnFieldButton__fieldIcon">{fieldIcon}</span>} - {fieldName && <span className="kbnFieldButton__name">{fieldName}</span>} - {fieldInfoIcon && <div className="kbnFieldButton__infoIcon">{fieldInfoIcon}</div>} + <div className={contentClasses} data-test-subj={dataTestSubj}> + {innerContent} </div> )} diff --git a/x-pack/plugins/lens/public/_mixins.scss b/x-pack/plugins/lens/public/_mixins.scss index a3cf6caa5a429..0db72d118cef1 100644 --- a/x-pack/plugins/lens/public/_mixins.scss +++ b/x-pack/plugins/lens/public/_mixins.scss @@ -11,3 +11,39 @@ transparentize(red, .9) 100% ); } + +// Static styles for a draggable item +@mixin lnsDraggable { + @include euiSlightShadow; + background: lightOrDarkTheme($euiColorEmptyShade, $euiColorLightestShade); + border: $euiBorderWidthThin dashed transparent; + cursor: grab; +} + +// Static styles for a drop area +@mixin lnsDroppable { + border: $euiBorderWidthThin dashed $euiBorderColor; +} + +// Hovering state for drag item and drop area +@mixin lnsDragDropHover { + &:hover { + border: $euiBorderWidthThin dashed $euiColorMediumShade; + } +} + +// Style for drop area when there's an item being dragged +@mixin lnsDroppableActive { + background-color: transparentize($euiColorVis0, .9); +} + +// Style for drop area while hovering with item +@mixin lnsDroppableActiveHover { + background-color: transparentize($euiColorVis0, .75); + border: $euiBorderWidthThin dashed $euiColorVis0; +} + +// Style for drop area that is not allowed for current item +@mixin lnsDroppableNotAllowed { + opacity: .5; +} diff --git a/x-pack/plugins/lens/public/drag_drop/__snapshots__/drag_drop.test.tsx.snap b/x-pack/plugins/lens/public/drag_drop/__snapshots__/drag_drop.test.tsx.snap index 3581151dd5f76..dc53f3a2bc2a7 100644 --- a/x-pack/plugins/lens/public/drag_drop/__snapshots__/drag_drop.test.tsx.snap +++ b/x-pack/plugins/lens/public/drag_drop/__snapshots__/drag_drop.test.tsx.snap @@ -1,17 +1,17 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`DragDrop droppable is reflected in the className 1`] = ` -<div - class="lnsDragDrop lnsDragDrop-isDropTarget" +<button + class="lnsDragDrop lnsDragDrop-isDroppable lnsDragDrop-isDropTarget" data-test-subj="lnsDragDrop" > Hello! -</div> +</button> `; exports[`DragDrop items that have droppable=false get special styling when another item is dragged 1`] = ` -<div - className="lnsDragDrop lnsDragDrop-isNotDroppable" +<button + className="lnsDragDrop lnsDragDrop-isDroppable lnsDragDrop-isNotDroppable" data-test-subj="lnsDragDrop" onDragEnd={[Function]} onDragLeave={[Function]} @@ -20,15 +20,15 @@ exports[`DragDrop items that have droppable=false get special styling when anoth onDrop={[Function]} > Hello! -</div> +</button> `; exports[`DragDrop renders if nothing is being dragged 1`] = ` -<div - class="lnsDragDrop" +<button + class="lnsDragDrop lnsDragDrop-isDraggable" data-test-subj="lnsDragDrop" draggable="true" > Hello! -</div> +</button> `; diff --git a/x-pack/plugins/lens/public/drag_drop/drag_drop.scss b/x-pack/plugins/lens/public/drag_drop/drag_drop.scss index c971540e165c1..410aaef9a5195 100644 --- a/x-pack/plugins/lens/public/drag_drop/drag_drop.scss +++ b/x-pack/plugins/lens/public/drag_drop/drag_drop.scss @@ -1,13 +1,54 @@ -.lnsDragDrop-isNotDroppable { - opacity: .5; +@import '../variables'; +@import '../mixins'; + +.lnsDragDrop { + transition: background-color $euiAnimSpeedFast ease-in-out, border-color $euiAnimSpeedFast ease-in-out; +} + +// Draggable item +.lnsDragDrop-isDraggable { + @include lnsDraggable; + @include lnsDragDropHover; + + // Include a possible nested button like when using FieldButton + > .kbnFieldButton__button { + cursor: grab; + } + + &:focus { + @include euiFocusRing; + } +} + +// Draggable item when it is moving +.lnsDragDrop-isHidden { + opacity: 0; +} + +// Drop area +.lnsDragDrop-isDroppable { + @include lnsDroppable; } -// Fix specificity by chaining classes +// Drop area when there's an item being dragged +.lnsDragDrop-isDropTarget { + @include lnsDroppableActive; +} -.lnsDragDrop.lnsDragDrop-isDropTarget { - background-color: transparentize($euiColorSecondary, .9); +// Drop area while hovering with item +.lnsDragDrop-isActiveDropTarget { + @include lnsDroppableActiveHover; +} + +// Drop area that is not allowed for current item +.lnsDragDrop-isNotDroppable { + @include lnsDroppableNotAllowed; } -.lnsDragDrop.lnsDragDrop-isActiveDropTarget { - background-color: transparentize($euiColorSecondary, .75); +// Drop area will be replacing existing content +.lnsDragDrop-isReplacing { + &, + .lnsLayerPanel__triggerLink { + text-decoration: line-through; + } } diff --git a/x-pack/plugins/lens/public/drag_drop/drag_drop.test.tsx b/x-pack/plugins/lens/public/drag_drop/drag_drop.test.tsx index 3240357c254ea..b1cc4c06c2165 100644 --- a/x-pack/plugins/lens/public/drag_drop/drag_drop.test.tsx +++ b/x-pack/plugins/lens/public/drag_drop/drag_drop.test.tsx @@ -15,7 +15,7 @@ describe('DragDrop', () => { test('renders if nothing is being dragged', () => { const component = render( <DragDrop value="hello" draggable label="dragging"> - Hello! + <button>Hello!</button> </DragDrop> ); @@ -24,7 +24,11 @@ describe('DragDrop', () => { test('dragover calls preventDefault if droppable is true', () => { const preventDefault = jest.fn(); - const component = mount(<DragDrop droppable>Hello!</DragDrop>); + const component = mount( + <DragDrop droppable> + <button>Hello!</button> + </DragDrop> + ); component.find('[data-test-subj="lnsDragDrop"]').simulate('dragover', { preventDefault }); @@ -33,7 +37,11 @@ describe('DragDrop', () => { test('dragover does not call preventDefault if droppable is false', () => { const preventDefault = jest.fn(); - const component = mount(<DragDrop>Hello!</DragDrop>); + const component = mount( + <DragDrop> + <button>Hello!</button> + </DragDrop> + ); component.find('[data-test-subj="lnsDragDrop"]').simulate('dragover', { preventDefault }); @@ -51,7 +59,7 @@ describe('DragDrop', () => { const component = mount( <ChildDragDropProvider dragging={value} setDragging={setDragging}> <DragDrop value={value} draggable={true} label="drag label"> - Hello! + <button>Hello!</button> </DragDrop> </ChildDragDropProvider> ); @@ -74,7 +82,7 @@ describe('DragDrop', () => { const component = mount( <ChildDragDropProvider dragging="hola" setDragging={setDragging}> <DragDrop onDrop={onDrop} droppable={true} value={value}> - Hello! + <button>Hello!</button> </DragDrop> </ChildDragDropProvider> ); @@ -98,7 +106,7 @@ describe('DragDrop', () => { const component = mount( <ChildDragDropProvider dragging="hola" setDragging={setDragging}> <DragDrop onDrop={onDrop} droppable={false} value={{}}> - Hello! + <button>Hello!</button> </DragDrop> </ChildDragDropProvider> ); @@ -121,7 +129,7 @@ describe('DragDrop', () => { }} droppable > - Hello! + <button>Hello!</button> </DragDrop> ); @@ -132,10 +140,10 @@ describe('DragDrop', () => { const component = mount( <ChildDragDropProvider dragging={'ignored'} setDragging={() => {}}> <DragDrop value="ignored" draggable={true} label="a"> - Ignored + <button>Hello!</button> </DragDrop> <DragDrop onDrop={(x: unknown) => {}} droppable={false}> - Hello! + <button>Hello!</button> </DragDrop> </ChildDragDropProvider> ); @@ -154,14 +162,14 @@ describe('DragDrop', () => { }} > <DragDrop value="ignored" draggable={true} label="a"> - Ignored + <button>Hello!</button> </DragDrop> <DragDrop onDrop={(x: unknown) => {}} droppable getAdditionalClassesOnEnter={getAdditionalClasses} > - Hello! + <button>Hello!</button> </DragDrop> </ChildDragDropProvider> ); diff --git a/x-pack/plugins/lens/public/drag_drop/drag_drop.tsx b/x-pack/plugins/lens/public/drag_drop/drag_drop.tsx index 6941974a63cd3..b36415fee5b15 100644 --- a/x-pack/plugins/lens/public/drag_drop/drag_drop.tsx +++ b/x-pack/plugins/lens/public/drag_drop/drag_drop.tsx @@ -41,9 +41,14 @@ interface BaseProps { value?: unknown; /** - * The React children. + * Optional comparison function to check whether a value is the dragged one */ - children: React.ReactNode; + isValueEqual?: (value1: unknown, value2: unknown) => boolean; + + /** + * The React element which will be passed the draggable handlers + */ + children: React.ReactElement; /** * Indicates whether or not the currently dragged item @@ -60,6 +65,18 @@ interface BaseProps { * The optional test subject associated with this DOM element. */ 'data-test-subj'?: string; + + /** + * Indicates to the user whether the currently dragged item + * will be moved or copied + */ + dragType?: 'copy' | 'move'; + + /** + * Indicates to the user whether the drop action will + * replace something that is existing or add a new one + */ + dropType?: 'add' | 'replace'; } /** @@ -98,12 +115,14 @@ type Props = DraggableProps | NonDraggableProps; export const DragDrop = (props: Props) => { const { dragging, setDragging } = useContext(DragContext); - const { value, draggable, droppable } = props; + const { value, draggable, droppable, isValueEqual } = props; return ( <DragDropInner {...props} dragging={droppable ? dragging : undefined} - isDragging={!!(draggable && value === dragging)} + isDragging={ + !!(draggable && ((isValueEqual && isValueEqual(value, dragging)) || value === dragging)) + } isNotDroppable={ // If the configuration has provided a droppable flag, but this particular item is not // droppable, then it should be less prominent. Ignores items that are both @@ -138,17 +157,25 @@ const DragDropInner = React.memo(function DragDropInner( setDragging, isDragging, isNotDroppable, + dragType = 'copy', + dropType = 'add', } = props; + const isMoveDragging = isDragging && dragType === 'move'; + const classes = classNames( 'lnsDragDrop', - className, { + 'lnsDragDrop-isDraggable': draggable, + 'lnsDragDrop-isDragging': isDragging, + 'lnsDragDrop-isHidden': isMoveDragging, + 'lnsDragDrop-isDroppable': !draggable, 'lnsDragDrop-isDropTarget': droppable, 'lnsDragDrop-isActiveDropTarget': droppable && state.isActive, - 'lnsDragDrop-isDragging': isDragging, - 'lnsDragDrop-isNotDroppable': isNotDroppable, + 'lnsDragDrop-isNotDroppable': !isMoveDragging && isNotDroppable, + 'lnsDragDrop-isReplacing': droppable && state.isActive && dropType === 'replace', }, + className, state.dragEnterClassNames ); @@ -210,18 +237,14 @@ const DragDropInner = React.memo(function DragDropInner( } }; - return ( - <div - data-test-subj={props['data-test-subj'] || 'lnsDragDrop'} - className={classes} - onDragOver={dragOver} - onDragLeave={dragLeave} - onDrop={drop} - draggable={draggable} - onDragEnd={dragEnd} - onDragStart={dragStart} - > - {children} - </div> - ); + return React.cloneElement(children, { + 'data-test-subj': props['data-test-subj'] || 'lnsDragDrop', + className: classNames(children.props.className, classes), + onDragOver: dragOver, + onDragLeave: dragLeave, + onDrop: drop, + draggable, + onDragEnd: dragEnd, + onDragStart: dragStart, + }); }); diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/config_panel.scss b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/config_panel.scss index 1965b51f97034..a58b5c21e7724 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/config_panel.scss +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/config_panel.scss @@ -3,5 +3,5 @@ // Remove EuiButton's default shadow to make button more subtle // sass-lint:disable-block no-important box-shadow: none !important; - border: 1px dashed currentColor; + border-color: $euiColorLightShade; } diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/config_panel.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/config_panel.tsx index ad16038f44911..6b7e5ba8ea89d 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/config_panel.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/config_panel.tsx @@ -121,6 +121,9 @@ function LayerPanels( <EuiFlexItem grow={true}> <EuiToolTip className="eui-fullWidth" + title={i18n.translate('xpack.lens.xyChart.addLayer', { + defaultMessage: 'Add a layer', + })} content={i18n.translate('xpack.lens.xyChart.addLayerTooltip', { defaultMessage: 'Use multiple layers to combine chart types or visualize different index patterns.', @@ -135,9 +138,6 @@ function LayerPanels( aria-label={i18n.translate('xpack.lens.xyChart.addLayerButton', { defaultMessage: 'Add layer', })} - title={i18n.translate('xpack.lens.xyChart.addLayerButton', { - defaultMessage: 'Add layer', - })} onClick={() => { dispatch({ type: 'UPDATE_STATE', diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/dimension_container.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/dimension_container.tsx index a415eb44cf196..19f4c0428260e 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/dimension_container.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/dimension_container.tsx @@ -130,7 +130,7 @@ export function DimensionContainer({ return ( <> - <div className="lnsDimensionContainer__trigger">{trigger}</div> + {trigger} {flyout} </> ); diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.scss b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.scss index b85c3e843613d..c77db2e65ce2d 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.scss +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.scss @@ -27,36 +27,41 @@ .lnsLayerPanel__dimension { @include euiFontSizeS; - background: lightOrDarkTheme($euiColorEmptyShade, $euiColorLightestShade); border-radius: $euiBorderRadius; display: flex; align-items: center; margin-top: $euiSizeXS; overflow: hidden; -} + width: 100%; + min-height: $euiSizeXXL; -.lnsLayerPanel__dimension-isHidden { - opacity: 0; -} + // NativeRenderer is messing this up + > div { + flex-grow: 1; + } -.lnsLayerPanel__dimension-isReplacing { - text-decoration: line-through; + &:focus, + &:focus-within { + @include euiFocusRing; + } } .lnsLayerPanel__triggerLink { - padding: $euiSizeS; width: 100%; - display: flex; - align-items: center; - min-height: $euiSizeXXL; -} + padding: $euiSizeS; + min-height: $euiSizeXXL - 2; -.lnsLayerPanel__anchor { - width: 100%; + &:focus { + background-color: transparent !important; // sass-lint:disable-line no-important + outline: none !important; // sass-lint:disable-line no-important + } } -.lnsLayerPanel__dndGrab { - padding: $euiSizeS; +.lnsLayerPanel__triggerLinkContent { + // Make EUI button content not centered + justify-content: flex-start; + padding: 0 !important; // sass-lint:disable-line no-important + color: $euiTextSubduedColor; } .lnsLayerPanel__styleEditor { diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx index 46cd0292f2459..ce2955da890d7 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx @@ -17,7 +17,6 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; -import classNames from 'classnames'; import { NativeRenderer } from '../../../native_renderer'; import { StateSetter, isDraggedOperation } from '../../../types'; import { DragContext, DragDrop, ChildDragDropProvider } from '../../../drag_drop'; @@ -33,6 +32,28 @@ const initialDimensionContainerState = { addingToGroupId: null, }; +function isConfiguration( + value: unknown +): value is { columnId: string; groupId: string; layerId: string } { + return ( + value && + typeof value === 'object' && + 'columnId' in value && + 'groupId' in value && + 'layerId' in value + ); +} + +function isSameConfiguration(config1: unknown, config2: unknown) { + return ( + isConfiguration(config1) && + isConfiguration(config2) && + config1.columnId === config2.columnId && + config1.groupId === config2.groupId && + config1.layerId === config2.layerId + ); +} + export function LayerPanel( props: Exclude<ConfigPanelWrapperProps, 'state' | 'setState'> & { layerId: string; @@ -203,25 +224,22 @@ export function LayerPanel( return ( <DragDrop key={accessor} - className={classNames('lnsLayerPanel__dimension', { - // eslint-disable-next-line @typescript-eslint/naming-convention - 'lnsLayerPanel__dimension-isHidden': - isDraggedOperation(dragDropContext.dragging) && - accessor === dragDropContext.dragging.columnId, - })} - getAdditionalClassesOnEnter={() => { - // If we are dragging another column, add an indication that the behavior will be a replacement' - if ( - isDraggedOperation(dragDropContext.dragging) && - group.groupId !== dragDropContext.dragging.groupId - ) { - return 'lnsLayerPanel__dimension-isReplacing'; - } - return ''; - }} + dragType={ + isDraggedOperation(dragDropContext.dragging) && + accessor === dragDropContext.dragging.columnId + ? 'move' + : 'copy' + } + dropType={ + isDraggedOperation(dragDropContext.dragging) && + group.groupId !== dragDropContext.dragging.groupId + ? 'replace' + : 'add' + } data-test-subj={group.dataTestSubj} draggable={!dimensionContainerState.isOpen} value={{ columnId: accessor, groupId: group.groupId, layerId }} + isValueEqual={isSameConfiguration} label={group.groupLabel} droppable={ Boolean(dragDropContext.dragging) && @@ -254,83 +272,84 @@ export function LayerPanel( } }} > - <DimensionContainer - dimensionContainerState={dimensionContainerState} - setDimensionContainerState={setDimensionContainerState} - groups={groups} - accessor={accessor} - groupId={group.groupId} - trigger={ - <NativeRenderer - render={props.datasourceMap[datasourceId].renderDimensionTrigger} - nativeProps={{ - ...layerDatasourceConfigProps, - columnId: accessor, - filterOperations: group.filterOperations, - suggestedPriority: group.suggestedPriority, - onClick: () => { - if (dimensionContainerState.isOpen) { - setDimensionContainerState(initialDimensionContainerState); - } else { - setDimensionContainerState({ - isOpen: true, - openId: accessor, - addingToGroupId: null, // not set for existing dimension - }); - } - }, - }} - /> - } - panel={ - <> - {datasourceDimensionEditor} - {visDimensionEditor} - </> - } - panelTitle={i18n.translate('xpack.lens.configure.configurePanelTitle', { - defaultMessage: '{groupLabel} configuration', - values: { - groupLabel: group.groupLabel, - }, - })} - /> + <div className="lnsLayerPanel__dimension"> + <DimensionContainer + dimensionContainerState={dimensionContainerState} + setDimensionContainerState={setDimensionContainerState} + groups={groups} + accessor={accessor} + groupId={group.groupId} + trigger={ + <NativeRenderer + render={props.datasourceMap[datasourceId].renderDimensionTrigger} + nativeProps={{ + ...layerDatasourceConfigProps, + columnId: accessor, + filterOperations: group.filterOperations, + suggestedPriority: group.suggestedPriority, + onClick: () => { + if (dimensionContainerState.isOpen) { + setDimensionContainerState(initialDimensionContainerState); + } else { + setDimensionContainerState({ + isOpen: true, + openId: accessor, + addingToGroupId: null, // not set for existing dimension + }); + } + }, + }} + /> + } + panel={ + <> + {datasourceDimensionEditor} + {visDimensionEditor} + </> + } + panelTitle={i18n.translate('xpack.lens.configure.configurePanelTitle', { + defaultMessage: '{groupLabel} configuration', + values: { + groupLabel: group.groupLabel, + }, + })} + /> - <EuiButtonIcon - data-test-subj="indexPattern-dimension-remove" - iconType="cross" - iconSize="s" - size="s" - color="danger" - aria-label={i18n.translate('xpack.lens.indexPattern.removeColumnLabel', { - defaultMessage: 'Remove configuration', - })} - title={i18n.translate('xpack.lens.indexPattern.removeColumnLabel', { - defaultMessage: 'Remove configuration', - })} - onClick={() => { - trackUiEvent('indexpattern_dimension_removed'); - props.updateAll( - datasourceId, - layerDatasource.removeColumn({ - layerId, - columnId: accessor, - prevState: layerDatasourceState, - }), - activeVisualization.removeDimension({ - layerId, - columnId: accessor, - prevState: props.visualizationState, - }) - ); - }} - /> + <EuiButtonIcon + data-test-subj="indexPattern-dimension-remove" + iconType="cross" + iconSize="s" + size="s" + color="danger" + aria-label={i18n.translate('xpack.lens.indexPattern.removeColumnLabel', { + defaultMessage: 'Remove configuration', + })} + title={i18n.translate('xpack.lens.indexPattern.removeColumnLabel', { + defaultMessage: 'Remove configuration', + })} + onClick={() => { + trackUiEvent('indexpattern_dimension_removed'); + props.updateAll( + datasourceId, + layerDatasource.removeColumn({ + layerId, + columnId: accessor, + prevState: layerDatasourceState, + }), + activeVisualization.removeDimension({ + layerId, + columnId: accessor, + prevState: props.visualizationState, + }) + ); + }} + /> + </div> </DragDrop> ); })} {group.supportsMoreColumns ? ( <DragDrop - className="lnsLayerPanel__dimension" data-test-subj={group.dataTestSubj} droppable={ Boolean(dragDropContext.dragging) && @@ -374,23 +393,23 @@ export function LayerPanel( } }} > - <DimensionContainer - dimensionContainerState={dimensionContainerState} - setDimensionContainerState={setDimensionContainerState} - groups={groups} - accessor={newId} - groupId={group.groupId} - trigger={ - <div className="lnsLayerPanel__triggerLink"> + <div className="lnsLayerPanel__dimension"> + <DimensionContainer + dimensionContainerState={dimensionContainerState} + setDimensionContainerState={setDimensionContainerState} + groups={groups} + accessor={newId} + groupId={group.groupId} + trigger={ <EuiButtonEmpty + className="lnsLayerPanel__triggerLink" + color="text" + size="xs" iconType="plusInCircleFilled" + contentProps={{ + className: 'lnsLayerPanel__triggerLinkContent', + }} data-test-subj="lns-empty-dimension" - aria-label={i18n.translate('xpack.lens.configure.addConfig', { - defaultMessage: 'Add a configuration', - })} - title={i18n.translate('xpack.lens.configure.addConfig', { - defaultMessage: 'Add a configuration', - })} onClick={() => { if (dimensionContainerState.isOpen) { setDimensionContainerState(initialDimensionContainerState); @@ -402,52 +421,51 @@ export function LayerPanel( }); } }} - size="xs" > <FormattedMessage id="xpack.lens.configure.emptyConfig" - defaultMessage="Drop a field here" + defaultMessage="Drop a field or click to add" /> </EuiButtonEmpty> - </div> - } - panelTitle={i18n.translate('xpack.lens.configure.configurePanelTitle', { - defaultMessage: '{groupLabel} configuration', - values: { - groupLabel: group.groupLabel, - }, - })} - panel={ - <NativeRenderer - render={props.datasourceMap[datasourceId].renderDimensionEditor} - nativeProps={{ - ...layerDatasourceConfigProps, - core: props.core, - columnId: newId, - filterOperations: group.filterOperations, - suggestedPriority: group.suggestedPriority, + } + panelTitle={i18n.translate('xpack.lens.configure.configurePanelTitle', { + defaultMessage: '{groupLabel} configuration', + values: { + groupLabel: group.groupLabel, + }, + })} + panel={ + <NativeRenderer + render={props.datasourceMap[datasourceId].renderDimensionEditor} + nativeProps={{ + ...layerDatasourceConfigProps, + core: props.core, + columnId: newId, + filterOperations: group.filterOperations, + suggestedPriority: group.suggestedPriority, - setState: (newState: unknown) => { - props.updateAll( - datasourceId, - newState, - activeVisualization.setDimension({ - layerId, - groupId: group.groupId, - columnId: newId, - prevState: props.visualizationState, - }) - ); - setDimensionContainerState({ - isOpen: true, - openId: newId, - addingToGroupId: null, // clear now that dimension exists - }); - }, - }} - /> - } - /> + setState: (newState: unknown) => { + props.updateAll( + datasourceId, + newState, + activeVisualization.setDimension({ + layerId, + groupId: group.groupId, + columnId: newId, + prevState: props.visualizationState, + }) + ); + setDimensionContainerState({ + isOpen: true, + openId: newId, + addingToGroupId: null, // clear now that dimension exists + }); + }, + }} + /> + } + /> + </div> </DragDrop> ) : null} </> diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/frame_layout.scss b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/frame_layout.scss index bad0563f16f1f..ac52190dc7b0d 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/frame_layout.scss +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/frame_layout.scss @@ -20,7 +20,7 @@ .lnsFrameLayout__pageBody { @include euiScrollBar; min-width: $lnsPanelMinWidth + $euiSizeXL; - overflow: hidden; + overflow: hidden auto; // Leave out bottom padding so the suggestions scrollbar stays flush to window edge // Leave out left padding so the left sidebar's focus states are visible outside of content bounds // This also means needing to add same amount of margin to page content and suggestion items diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx index e56e55fdd5d6c..2a5798ac6a70c 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx @@ -221,7 +221,7 @@ export function InnerWorkspacePanel({ )} </strong> </h2> - <DropIllustration className="lnsWorkspacePanel__dropIllustration" /> + <DropIllustration aria-hidden={true} className="lnsWorkspacePanel__dropIllustration" /> {expression === null && ( <> <p> @@ -257,7 +257,7 @@ export function InnerWorkspacePanel({ if (localState.expressionBuildError) { return ( - <EuiFlexGroup direction="column" alignItems="center"> + <EuiFlexGroup style={{ maxWidth: '100%' }} direction="column" alignItems="center"> <EuiFlexItem> <EuiIcon type="alert" size="xl" color="danger" /> </EuiFlexItem> @@ -283,7 +283,7 @@ export function InnerWorkspacePanel({ onEvent={onEvent} renderError={(errorMessage?: string | null) => { return ( - <EuiFlexGroup direction="column" alignItems="center"> + <EuiFlexGroup style={{ maxWidth: '100%' }} direction="column" alignItems="center"> <EuiFlexItem> <EuiIcon type="alert" size="xl" color="danger" /> </EuiFlexItem> @@ -338,8 +338,10 @@ export function InnerWorkspacePanel({ droppable={Boolean(suggestionForDraggedField)} onDrop={onDrop} > - {renderVisualization()} - {Boolean(suggestionForDraggedField) && expression !== null && renderEmptyWorkspace()} + <div> + {renderVisualization()} + {Boolean(suggestionForDraggedField) && expression !== null && renderEmptyWorkspace()} + </div> </DragDrop> </WorkspacePanelWrapper> ); diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel_wrapper.scss b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel_wrapper.scss index 7f7385f029ed4..33b9b2fe1dbf0 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel_wrapper.scss +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel_wrapper.scss @@ -1,3 +1,5 @@ +@import '../../../mixins'; + .lnsWorkspacePanelWrapper { @include euiScrollBar; overflow: hidden; @@ -7,6 +9,7 @@ display: flex; flex-direction: column; position: relative; // For positioning the dnd overlay + min-height: $euiSizeXXL * 10; .lnsWorkspacePanelWrapper__pageContentHeader { @include euiTitle('xs'); @@ -25,7 +28,7 @@ display: flex; align-items: stretch; justify-content: stretch; - overflow: hidden; + overflow: auto; > * { flex: 1 1 100%; @@ -41,6 +44,7 @@ // Disable the coloring of the DnD for this element as we'll // Color the whole panel instead background-color: transparent !important; // sass-lint:disable-line no-important + border: none !important; // sass-lint:disable-line no-important } .lnsExpressionRenderer { @@ -60,28 +64,25 @@ display: flex; justify-content: center; align-items: center; - transition: background-color $euiAnimSpeedNormal ease-in-out; + transition: background-color $euiAnimSpeedFast ease-in-out; .lnsDragDrop-isDropTarget & { - background-color: transparentize($euiColorSecondary, .9); + @include lnsDroppable; + @include lnsDroppableActive; p { - transition: filter $euiAnimSpeedNormal ease-in-out; + transition: filter $euiAnimSpeedFast ease-in-out; filter: blur(5px); } } .lnsDragDrop-isActiveDropTarget & { - background-color: transparentize($euiColorSecondary, .75); + @include lnsDroppableActiveHover; .lnsDropIllustration__hand { - animation: pulseArrowContinuous 1.5s ease-in-out 0s infinite normal forwards; + animation: lnsWorkspacePanel__illustrationPulseContinuous 1.5s ease-in-out 0s infinite normal forwards; } } - - &.lnsWorkspacePanel__emptyContent-onTop p { - display: none; - } } .lnsWorkspacePanelWrapper__toolbar { @@ -106,10 +107,10 @@ } .lnsDropIllustration__hand { - animation: pulseArrow 5s ease-in-out 0s infinite normal forwards; + animation: lnsWorkspacePanel__illustrationPulseArrow 5s ease-in-out 0s infinite normal forwards; } -@keyframes pulseArrow { +@keyframes lnsWorkspacePanel__illustrationPulseArrow { 0% { transform: translateY(0%); } 65% { transform: translateY(0%); } 72% { transform: translateY(10%); } @@ -118,7 +119,7 @@ 95% { transform: translateY(0); } } -@keyframes pulseArrowContinuous { +@keyframes lnsWorkspacePanel__illustrationPulseContinuous { 0% { transform: translateY(10%); } 25% { transform: translateY(15%); } 50% { transform: translateY(10%); } diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.scss b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.scss index 155b954e9cf17..df73789eadedf 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.scss +++ b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.scss @@ -12,7 +12,7 @@ .lnsInnerIndexPatternDataPanel__fieldItems { // Quick fix for making sure the shadow and focus rings are visible outside the accordion bounds - padding: $euiSizeXS $euiSizeXS 0; + padding: $euiSizeXS; } .lnsInnerIndexPatternDataPanel__textField { diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx index 6f0a9c2a86acd..12b8d91c35ade 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx @@ -250,6 +250,10 @@ export const IndexPatternDimensionTriggerComponent = function IndexPatternDimens return null; } + const triggerLinkA11yText = i18n.translate('xpack.lens.configure.editConfig', { + defaultMessage: 'Click to edit configuration or drag to move', + }); + if (currentFieldIsInvalid) { return ( <EuiToolTip @@ -264,7 +268,7 @@ export const IndexPatternDimensionTriggerComponent = function IndexPatternDimens })} </p> } - anchorClassName="lnsLayerPanel__anchor" + anchorClassName="eui-displayBlock" > <EuiLink color="danger" @@ -272,12 +276,8 @@ export const IndexPatternDimensionTriggerComponent = function IndexPatternDimens className="lnsLayerPanel__triggerLink" onClick={props.onClick} data-test-subj="lns-dimensionTrigger" - aria-label={i18n.translate('xpack.lens.configure.editConfig', { - defaultMessage: 'Edit configuration', - })} - title={i18n.translate('xpack.lens.configure.editConfig', { - defaultMessage: 'Edit configuration', - })} + aria-label={triggerLinkA11yText} + title={triggerLinkA11yText} > <EuiFlexGroup gutterSize="s" alignItems="center" responsive={false}> <EuiFlexItem grow={false}> @@ -296,12 +296,8 @@ export const IndexPatternDimensionTriggerComponent = function IndexPatternDimens className="lnsLayerPanel__triggerLink" onClick={props.onClick} data-test-subj="lns-dimensionTrigger" - aria-label={i18n.translate('xpack.lens.configure.editConfig', { - defaultMessage: 'Edit configuration', - })} - title={i18n.translate('xpack.lens.configure.editConfig', { - defaultMessage: 'Edit configuration', - })} + aria-label={triggerLinkA11yText} + title={triggerLinkA11yText} > {uniqueLabel} </EuiLink> diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/field_item.scss b/x-pack/plugins/lens/public/indexpattern_datasource/field_item.scss index d74c332dd42e5..1b55d9623e223 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/field_item.scss +++ b/x-pack/plugins/lens/public/indexpattern_datasource/field_item.scss @@ -1,25 +1,25 @@ -.lnsFieldItem--missing { - .lnsFieldItem__info { - background: lightOrDarkTheme(transparentize($euiColorMediumShade, .9), $euiColorEmptyShade); - color: $euiColorDarkShade; - } -} - -.lnsFieldItem__info { +.lnsFieldItem { .lnsFieldItem__infoIcon { visibility: hidden; + opacity: 0; } - &:hover, - &:focus { + &:hover:not([class*='isActive']) { cursor: grab; .lnsFieldItem__infoIcon { visibility: visible; + opacity: 1; + transition: opacity $euiAnimSpeedFast ease-in-out 1s; } } } +.lnsFieldItem--missing { + background: lightOrDarkTheme(transparentize($euiColorMediumShade, .9), $euiColorEmptyShade); + color: $euiColorDarkShade; +} + .lnsFieldItem__topValue { margin-bottom: $euiSizeS; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx index 7377d15bca6d7..2fbe23f9085f2 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx @@ -33,6 +33,7 @@ import { } from '@elastic/charts'; import { i18n } from '@kbn/i18n'; import { DataPublicPluginStart } from 'src/plugins/data/public'; +import { EuiHighlight } from '@elastic/eui'; import { Query, KBN_FIELD_TYPES, @@ -102,22 +103,6 @@ export const InnerFieldItem = function InnerFieldItem(props: FieldItemProps) { isLoading: false, }); - const wrappableName = wrapOnDot(field.displayName)!; - const wrappableHighlight = wrapOnDot(highlight); - const highlightIndex = wrappableHighlight - ? wrappableName.toLowerCase().indexOf(wrappableHighlight.toLowerCase()) - : -1; - const wrappableHighlightableFieldName = - highlightIndex < 0 ? ( - wrappableName - ) : ( - <span> - <span>{wrappableName.substr(0, highlightIndex)}</span> - <strong>{wrappableName.substr(highlightIndex, wrappableHighlight.length)}</strong> - <span>{wrappableName.substr(highlightIndex + wrappableHighlight.length)}</span> - </span> - ); - function fetchData() { if (state.isLoading) { return; @@ -200,22 +185,20 @@ export const InnerFieldItem = function InnerFieldItem(props: FieldItemProps) { ownFocus className="lnsFieldItem__popoverAnchor" display="block" + data-test-subj="lnsFieldListPanelField" container={document.querySelector<HTMLElement>('.application') || undefined} button={ <DragDrop label={field.displayName} value={value} - data-test-subj="lnsFieldListPanelField" + data-test-subj={`lnsFieldListPanelField-${field.name}`} draggable - className={`lnsFieldItem lnsFieldItem--${field.type} lnsFieldItem--${ - exists ? 'exists' : 'missing' - }`} > <FieldButton - className="lnsFieldItem__info" - isDraggable + className={`lnsFieldItem lnsFieldItem--${field.type} lnsFieldItem--${ + exists ? 'exists' : 'missing' + }`} isActive={infoIsOpen} - data-test-subj={`lnsFieldListPanelField-${field.name}`} onClick={togglePopover} aria-label={i18n.translate('xpack.lens.indexPattern.fieldStatsButtonAriaLabel', { defaultMessage: '{fieldName}: {fieldType}. Hit enter for a field preview.', @@ -225,7 +208,11 @@ export const InnerFieldItem = function InnerFieldItem(props: FieldItemProps) { }, })} fieldIcon={lensFieldIcon} - fieldName={wrappableHighlightableFieldName} + fieldName={ + <EuiHighlight search={wrapOnDot(highlight)}> + {wrapOnDot(field.displayName)} + </EuiHighlight> + } fieldInfoIcon={lensInfoIcon} /> </DragDrop> @@ -527,7 +514,7 @@ function FieldItemPopoverContents(props: State & FieldItemProps) { </EuiFlexItem> <EuiFlexItem grow={false} className="eui-textTruncate"> - <EuiText size="s" color="subdued"> + <EuiText size="xs" color="subdued"> {Math.round((otherCount / props.sampledValues!) * 100)}% </EuiText> </EuiFlexItem> diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/shared_components/buckets.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/shared_components/buckets.tsx index 47380f7865578..50471ca84c0d8 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/shared_components/buckets.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/shared_components/buckets.tsx @@ -96,7 +96,13 @@ export const DraggableBucketContainer = ({ children: React.ReactNode; } & BucketContainerProps) => { return ( - <EuiDraggable spacing="m" index={idx} draggableId={id} disableInteractiveElementBlocking> + <EuiDraggable + style={{ marginBottom: 4 }} + spacing="none" + index={idx} + draggableId={id} + disableInteractiveElementBlocking + > {(provided) => <BucketContainer {...bucketContainerProps}>{children}</BucketContainer>} </EuiDraggable> ); @@ -134,7 +140,7 @@ export const DragDropBuckets = ({ }; return ( <EuiDragDropContext onDragEnd={handleDragEnd} onDragStart={onDragStart}> - <EuiDroppable droppableId={droppableId} spacing="s"> + <EuiDroppable droppableId={droppableId} spacing="none"> {children} </EuiDroppable> </EuiDragDropContext> diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index ba9d8e364bd17..34c339023171e 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -9464,7 +9464,6 @@ "xpack.lens.configPanel.color.tooltip.custom": "[自動]モードに戻すには、カスタム色をオフにしてください。", "xpack.lens.configPanel.color.tooltip.disabled": "レイヤーに「内訳条件」が含まれている場合は、個別の系列をカスタム色にできません。", "xpack.lens.configPanel.selectVisualization": "ビジュアライゼーションを選択してください", - "xpack.lens.configure.addConfig": "構成を追加", "xpack.lens.configure.editConfig": "構成の編集", "xpack.lens.configure.emptyConfig": "ここにフィールドをドロップ", "xpack.lens.dataPanelWrapper.switchDatasource": "データソースに切り替える", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 5d44e0c635bee..f32b49fd4f2f0 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -9470,7 +9470,6 @@ "xpack.lens.configPanel.color.tooltip.custom": "清除定制颜色以返回到“自动”模式。", "xpack.lens.configPanel.color.tooltip.disabled": "当图层包括“细分依据”,各个系列无法定制颜色。", "xpack.lens.configPanel.selectVisualization": "选择可视化", - "xpack.lens.configure.addConfig": "添加配置", "xpack.lens.configure.editConfig": "编辑配置", "xpack.lens.configure.emptyConfig": "将字段拖放到此处", "xpack.lens.dataPanelWrapper.switchDatasource": "切换到数据源", From 198c5d998816e940e4c8d92979504c86116bcd2d Mon Sep 17 00:00:00 2001 From: Marco Liberati <dej611@users.noreply.github.com> Date: Thu, 1 Oct 2020 18:02:37 +0200 Subject: [PATCH 112/142] [Lens] Fix embeddable title and description for reporting and dashboard tooltip (#78767) Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> --- .../lib/panel/panel_header/panel_header.tsx | 9 ++- .../public/embeddable/visualize_embeddable.ts | 2 +- .../__snapshots__/expression.test.tsx.snap | 4 +- .../datatable_visualization/expression.tsx | 10 ++- .../datatable_visualization/visualization.tsx | 4 +- .../editor_frame/expression_helpers.ts | 9 ++- .../editor_frame/state_helpers.ts | 4 ++ .../embeddable/embeddable.tsx | 6 ++ .../metric_visualization/expression.test.tsx | 69 +++++++++++++++++-- .../metric_visualization/expression.tsx | 24 +++++-- .../lens/public/metric_visualization/types.ts | 2 + .../visualization.test.ts | 8 ++- .../metric_visualization/visualization.tsx | 10 +-- .../public/pie_visualization/expression.tsx | 8 +++ .../pie_visualization/render_function.tsx | 7 +- .../public/pie_visualization/to_expression.ts | 13 ++-- .../lens/public/pie_visualization/types.ts | 2 + x-pack/plugins/lens/public/types.ts | 3 +- .../public/visualization_container.test.tsx | 7 +- .../lens/public/visualization_container.tsx | 11 ++- .../__snapshots__/to_expression.test.ts.snap | 6 ++ .../public/xy_visualization/expression.tsx | 15 +++- .../public/xy_visualization/to_expression.ts | 10 ++- .../lens/public/xy_visualization/types.ts | 2 + 24 files changed, 206 insertions(+), 39 deletions(-) diff --git a/src/plugins/embeddable/public/lib/panel/panel_header/panel_header.tsx b/src/plugins/embeddable/public/lib/panel/panel_header/panel_header.tsx index 7dde84e510535..dea483efb349f 100644 --- a/src/plugins/embeddable/public/lib/panel/panel_header/panel_header.tsx +++ b/src/plugins/embeddable/public/lib/panel/panel_header/panel_header.tsx @@ -109,12 +109,11 @@ function renderTooltip(description: string) { ); } -const VISUALIZE_EMBEDDABLE_TYPE = 'visualization'; -type VisualizeEmbeddable = any; +type EmbeddableWithDescription = IEmbeddable & { getDescription: () => string }; -function getViewDescription(embeddable: IEmbeddable | VisualizeEmbeddable) { - if (embeddable.type === VISUALIZE_EMBEDDABLE_TYPE) { - const description = embeddable.getVisualizationDescription(); +function getViewDescription(embeddable: IEmbeddable | EmbeddableWithDescription) { + if ('getDescription' in embeddable) { + const description = embeddable.getDescription(); if (description) { return description; diff --git a/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts b/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts index c091d396b4924..fe8a9adff4052 100644 --- a/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts +++ b/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts @@ -167,7 +167,7 @@ export class VisualizeEmbeddable typeof inspectorAdapters === 'function' ? inspectorAdapters() : inspectorAdapters; } } - public getVisualizationDescription() { + public getDescription() { return this.vis.description; } diff --git a/x-pack/plugins/lens/public/datatable_visualization/__snapshots__/expression.test.tsx.snap b/x-pack/plugins/lens/public/datatable_visualization/__snapshots__/expression.test.tsx.snap index c0210c3915ce8..9c7bdc3397f9c 100644 --- a/x-pack/plugins/lens/public/datatable_visualization/__snapshots__/expression.test.tsx.snap +++ b/x-pack/plugins/lens/public/datatable_visualization/__snapshots__/expression.test.tsx.snap @@ -1,7 +1,9 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`datatable_expression DatatableComponent it renders the title and value 1`] = ` -<VisualizationContainer> +<VisualizationContainer + reportTitle="My fanci metric chart" +> <EuiBasicTable className="lnsDataTable" columns={ diff --git a/x-pack/plugins/lens/public/datatable_visualization/expression.tsx b/x-pack/plugins/lens/public/datatable_visualization/expression.tsx index 5ed693d2ead86..af1773b413599 100644 --- a/x-pack/plugins/lens/public/datatable_visualization/expression.tsx +++ b/x-pack/plugins/lens/public/datatable_visualization/expression.tsx @@ -33,6 +33,7 @@ export interface DatatableColumns { interface Args { title: string; + description?: string; columns: DatatableColumns & { type: 'lens_datatable_columns' }; } @@ -72,6 +73,10 @@ export const datatable: ExpressionFunctionDefinition< defaultMessage: 'Title', }), }, + description: { + types: ['string'], + help: '', + }, columns: { types: ['lens_datatable_columns'], help: '', @@ -207,7 +212,10 @@ export function DatatableComponent(props: DatatableRenderProps) { } return ( - <VisualizationContainer> + <VisualizationContainer + reportTitle={props.args.title} + reportDescription={props.args.description} + > <EuiBasicTable className="lnsDataTable" data-test-subj="lnsDataTable" diff --git a/x-pack/plugins/lens/public/datatable_visualization/visualization.tsx b/x-pack/plugins/lens/public/datatable_visualization/visualization.tsx index 5b462f44b3dd5..1464ae6988a2d 100644 --- a/x-pack/plugins/lens/public/datatable_visualization/visualization.tsx +++ b/x-pack/plugins/lens/public/datatable_visualization/visualization.tsx @@ -194,7 +194,7 @@ export const datatableVisualization: Visualization<DatatableVisualizationState> }; }, - toExpression(state, datasourceLayers): Ast { + toExpression(state, datasourceLayers, { title, description } = {}): Ast { const layer = state.layers[0]; const datasource = datasourceLayers[layer.layerId]; const originalOrder = datasource.getTableSpec().map(({ columnId }) => columnId); @@ -211,6 +211,8 @@ export const datatableVisualization: Visualization<DatatableVisualizationState> type: 'function', function: 'lens_datatable', arguments: { + title: [title || ''], + description: [description || ''], columns: [ { type: 'expression', diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/expression_helpers.ts b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/expression_helpers.ts index 952718e13c8cf..e7568147dc568 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/expression_helpers.ts +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/expression_helpers.ts @@ -73,7 +73,11 @@ export function buildExpression({ datasourceMap, datasourceStates, datasourceLayers, + title, + description, }: { + title?: string; + description?: string; visualization: Visualization | null; visualizationState: unknown; datasourceMap: Record<string, Datasource>; @@ -89,7 +93,10 @@ export function buildExpression({ if (visualization === null) { return null; } - const visualizationExpression = visualization.toExpression(visualizationState, datasourceLayers); + const visualizationExpression = visualization.toExpression(visualizationState, datasourceLayers, { + title, + description, + }); const completeExpression = prependDatasourceExpression( visualizationExpression, diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts index 6deb9ffd37a06..1fe5224d0b1b4 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts @@ -61,6 +61,8 @@ export async function persistedStateToExpression( state: { visualization: visualizationState, datasourceStates: persistedDatasourceStates }, visualizationType, references, + title, + description, } = doc; if (!visualizationType) return null; const visualization = visualizations[visualizationType!]; @@ -78,6 +80,8 @@ export async function persistedStateToExpression( const datasourceLayers = createDatasourceLayers(datasources, datasourceStates); return buildExpression({ + title, + description, visualization, visualizationState, datasourceMap: datasources, diff --git a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx index 61a5d8cacdc4f..16b19ca0af849 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx @@ -295,6 +295,12 @@ export class Embeddable return this.deps.attributeService.getInputAsValueType(input); }; + // same API as Visualize + public getDescription() { + // mind that savedViz is loaded in async way here + return this.savedVis && this.savedVis.description; + } + destroy() { super.destroy(); if (this.domNode) { diff --git a/x-pack/plugins/lens/public/metric_visualization/expression.test.tsx b/x-pack/plugins/lens/public/metric_visualization/expression.test.tsx index 0c92cdb2c31fc..77a8ce64b21a2 100644 --- a/x-pack/plugins/lens/public/metric_visualization/expression.test.tsx +++ b/x-pack/plugins/lens/public/metric_visualization/expression.test.tsx @@ -32,10 +32,21 @@ function sampleArgs() { accessor: 'a', layerId: 'l1', title: 'My fanci metric chart', + description: 'Fancy chart description', + metricTitle: 'My fanci metric chart', mode: 'full', }; - return { data, args }; + const noAttributesArgs: MetricConfig = { + accessor: 'a', + layerId: 'l1', + title: '', + description: '', + metricTitle: 'My fanci metric chart', + mode: 'full', + }; + + return { data, args, noAttributesArgs }; } describe('metric_expression', () => { @@ -53,7 +64,7 @@ describe('metric_expression', () => { }); describe('MetricChart component', () => { - test('it renders the title and value', () => { + test('it renders the all attributes when passed (title, description, metricTitle, value)', () => { const { data, args } = sampleArgs(); expect( @@ -61,6 +72,7 @@ describe('metric_expression', () => { ).toMatchInlineSnapshot(` <VisualizationContainer className="lnsMetricExpression__container" + reportDescription="Fancy chart description" reportTitle="My fanci metric chart" > <AutoScale> @@ -90,21 +102,66 @@ describe('metric_expression', () => { `); }); - test('it does not render title in reduced mode', () => { - const { data, args } = sampleArgs(); + test('it renders only chart content when title and description are empty strings', () => { + const { data, noAttributesArgs } = sampleArgs(); expect( shallow( <MetricChart data={data} - args={{ ...args, mode: 'reduced' }} + args={noAttributesArgs} formatFactory={(x) => x as IFieldFormat} /> ) ).toMatchInlineSnapshot(` <VisualizationContainer className="lnsMetricExpression__container" - reportTitle="My fanci metric chart" + reportDescription="" + reportTitle="" + > + <AutoScale> + <div + data-test-subj="lns_metric_value" + style={ + Object { + "fontSize": "60pt", + "fontWeight": 600, + } + } + > + 10110 + </div> + <div + data-test-subj="lns_metric_title" + style={ + Object { + "fontSize": "24pt", + } + } + > + My fanci metric chart + </div> + </AutoScale> + </VisualizationContainer> + `); + }); + + test('it does not render metricTitle in reduced mode', () => { + const { data, noAttributesArgs } = sampleArgs(); + + expect( + shallow( + <MetricChart + data={data} + args={{ ...noAttributesArgs, mode: 'reduced' }} + formatFactory={(x) => x as IFieldFormat} + /> + ) + ).toMatchInlineSnapshot(` + <VisualizationContainer + className="lnsMetricExpression__container" + reportDescription="" + reportTitle="" > <AutoScale> <div diff --git a/x-pack/plugins/lens/public/metric_visualization/expression.tsx b/x-pack/plugins/lens/public/metric_visualization/expression.tsx index 7eeef13240f72..29c9cc3e454c7 100644 --- a/x-pack/plugins/lens/public/metric_visualization/expression.tsx +++ b/x-pack/plugins/lens/public/metric_visualization/expression.tsx @@ -43,6 +43,14 @@ export const metricChart: ExpressionFunctionDefinition< types: ['string'], help: 'The chart title.', }, + description: { + types: ['string'], + help: '', + }, + metricTitle: { + types: ['string'], + help: 'The title of the metric shown.', + }, accessor: { types: ['string'], help: 'The column whose value is being displayed', @@ -98,12 +106,16 @@ export function MetricChart({ args, formatFactory, }: MetricChartProps & { formatFactory: FormatFactory }) { - const { title, accessor, mode } = args; + const { metricTitle, title, description, accessor, mode } = args; let value = '-'; const firstTable = Object.values(data.tables)[0]; if (!accessor) { return ( - <VisualizationContainer reportTitle={title} className="lnsMetricExpression__container" /> + <VisualizationContainer + reportTitle={title} + reportDescription={description} + className="lnsMetricExpression__container" + /> ); } @@ -119,14 +131,18 @@ export function MetricChart({ } return ( - <VisualizationContainer reportTitle={title} className="lnsMetricExpression__container"> + <VisualizationContainer + reportTitle={title} + reportDescription={description} + className="lnsMetricExpression__container" + > <AutoScale> <div data-test-subj="lns_metric_value" style={{ fontSize: '60pt', fontWeight: 600 }}> {value} </div> {mode === 'full' && ( <div data-test-subj="lns_metric_title" style={{ fontSize: '24pt' }}> - {title} + {metricTitle} </div> )} </AutoScale> diff --git a/x-pack/plugins/lens/public/metric_visualization/types.ts b/x-pack/plugins/lens/public/metric_visualization/types.ts index 86a781716b345..c4a3fd094abe6 100644 --- a/x-pack/plugins/lens/public/metric_visualization/types.ts +++ b/x-pack/plugins/lens/public/metric_visualization/types.ts @@ -11,5 +11,7 @@ export interface State { export interface MetricConfig extends State { title: string; + description: string; + metricTitle: string; mode: 'reduced' | 'full'; } diff --git a/x-pack/plugins/lens/public/metric_visualization/visualization.test.ts b/x-pack/plugins/lens/public/metric_visualization/visualization.test.ts index aa3de93013e66..80c7a174b3264 100644 --- a/x-pack/plugins/lens/public/metric_visualization/visualization.test.ts +++ b/x-pack/plugins/lens/public/metric_visualization/visualization.test.ts @@ -171,11 +171,17 @@ describe('metric_visualization', () => { "accessor": Array [ "a", ], + "description": Array [ + "", + ], + "metricTitle": Array [ + "shazm", + ], "mode": Array [ "full", ], "title": Array [ - "shazm", + "", ], }, "function": "lens_metric_chart", diff --git a/x-pack/plugins/lens/public/metric_visualization/visualization.tsx b/x-pack/plugins/lens/public/metric_visualization/visualization.tsx index 72c07bed1acb2..77d189ce53d01 100644 --- a/x-pack/plugins/lens/public/metric_visualization/visualization.tsx +++ b/x-pack/plugins/lens/public/metric_visualization/visualization.tsx @@ -14,7 +14,7 @@ import { State } from './types'; const toExpression = ( state: State, datasourceLayers: Record<string, DatasourcePublicAPI>, - mode: 'reduced' | 'full' = 'full' + attributes?: { mode?: 'reduced' | 'full'; title?: string; description?: string } ): Ast | null => { if (!state.accessor) { return null; @@ -30,9 +30,11 @@ const toExpression = ( type: 'function', function: 'lens_metric_chart', arguments: { - title: [(operation && operation.label) || ''], + title: [attributes?.title || ''], + description: [attributes?.description || ''], + metricTitle: [(operation && operation.label) || ''], accessor: [state.accessor], - mode: [mode], + mode: [attributes?.mode || 'full'], }, }, ], @@ -104,7 +106,7 @@ export const metricVisualization: Visualization<State> = { toExpression, toPreviewExpression: (state, datasourceLayers) => - toExpression(state, datasourceLayers, 'reduced'), + toExpression(state, datasourceLayers, { mode: 'reduced' }), setDimension({ prevState, columnId }) { return { ...prevState, accessor: columnId }; diff --git a/x-pack/plugins/lens/public/pie_visualization/expression.tsx b/x-pack/plugins/lens/public/pie_visualization/expression.tsx index 89d93ab79233f..d93145f29aa89 100644 --- a/x-pack/plugins/lens/public/pie_visualization/expression.tsx +++ b/x-pack/plugins/lens/public/pie_visualization/expression.tsx @@ -37,6 +37,14 @@ export const pie: ExpressionFunctionDefinition< defaultMessage: 'Pie renderer', }), args: { + title: { + types: ['string'], + help: 'The chart title.', + }, + description: { + types: ['string'], + help: '', + }, groups: { types: ['string'], multi: true, diff --git a/x-pack/plugins/lens/public/pie_visualization/render_function.tsx b/x-pack/plugins/lens/public/pie_visualization/render_function.tsx index d97ab146e000d..8de810f9aa5d3 100644 --- a/x-pack/plugins/lens/public/pie_visualization/render_function.tsx +++ b/x-pack/plugins/lens/public/pie_visualization/render_function.tsx @@ -228,7 +228,12 @@ export function PieComponent( ); } return ( - <VisualizationContainer className="lnsPieExpression__container" isReady={state.isReady}> + <VisualizationContainer + reportTitle={props.args.title} + reportDescription={props.args.description} + className="lnsPieExpression__container" + isReady={state.isReady} + > <Chart> <Settings // Legend is hidden in many scenarios diff --git a/x-pack/plugins/lens/public/pie_visualization/to_expression.ts b/x-pack/plugins/lens/public/pie_visualization/to_expression.ts index f36b9efb930a9..d721a578a3788 100644 --- a/x-pack/plugins/lens/public/pie_visualization/to_expression.ts +++ b/x-pack/plugins/lens/public/pie_visualization/to_expression.ts @@ -11,15 +11,16 @@ import { PieVisualizationState } from './types'; export function toExpression( state: PieVisualizationState, - datasourceLayers: Record<string, DatasourcePublicAPI> + datasourceLayers: Record<string, DatasourcePublicAPI>, + attributes: Partial<{ title: string; description: string }> = {} ) { - return expressionHelper(state, datasourceLayers, false); + return expressionHelper(state, datasourceLayers, { ...attributes, isPreview: false }); } function expressionHelper( state: PieVisualizationState, datasourceLayers: Record<string, DatasourcePublicAPI>, - isPreview: boolean + attributes: { isPreview: boolean; title?: string; description?: string } = { isPreview: false } ): Ast | null { const layer = state.layers[0]; const datasource = datasourceLayers[layer.layerId]; @@ -37,8 +38,10 @@ function expressionHelper( type: 'function', function: 'lens_pie', arguments: { + title: [attributes.title || ''], + description: [attributes.description || ''], shape: [state.shape], - hideLabels: [isPreview], + hideLabels: [attributes.isPreview], groups: operations.map((o) => o.columnId), metric: [layer.metric], numberDisplay: [layer.numberDisplay], @@ -57,5 +60,5 @@ export function toPreviewExpression( state: PieVisualizationState, datasourceLayers: Record<string, DatasourcePublicAPI> ) { - return expressionHelper(state, datasourceLayers, true); + return expressionHelper(state, datasourceLayers, { isPreview: true }); } diff --git a/x-pack/plugins/lens/public/pie_visualization/types.ts b/x-pack/plugins/lens/public/pie_visualization/types.ts index 74156bce2ea70..603c80aa00066 100644 --- a/x-pack/plugins/lens/public/pie_visualization/types.ts +++ b/x-pack/plugins/lens/public/pie_visualization/types.ts @@ -28,6 +28,8 @@ export interface PieVisualizationState { } export type PieExpressionArgs = SharedLayerState & { + title?: string; + description?: string; shape: 'pie' | 'donut' | 'treemap'; hideLabels: boolean; }; diff --git a/x-pack/plugins/lens/public/types.ts b/x-pack/plugins/lens/public/types.ts index e97e0d612a2ee..e5e8a645dd0e8 100644 --- a/x-pack/plugins/lens/public/types.ts +++ b/x-pack/plugins/lens/public/types.ts @@ -519,7 +519,8 @@ export interface Visualization<T = unknown> { toExpression: ( state: T, - datasourceLayers: Record<string, DatasourcePublicAPI> + datasourceLayers: Record<string, DatasourcePublicAPI>, + attributes?: Partial<{ title: string; description: string }> ) => Ast | string | null; /** * Expression to render a preview version of the chart in very constrained space. diff --git a/x-pack/plugins/lens/public/visualization_container.test.tsx b/x-pack/plugins/lens/public/visualization_container.test.tsx index 454399ec90121..7fc3541c63072 100644 --- a/x-pack/plugins/lens/public/visualization_container.test.tsx +++ b/x-pack/plugins/lens/public/visualization_container.test.tsx @@ -43,13 +43,16 @@ describe('VisualizationContainer', () => { expect(reportingEl.prop('data-shared-item')).toBeTruthy(); }); - test('renders title for reporting, if provided', () => { + test('renders title and description for reporting, if provided', () => { const component = mount( - <VisualizationContainer reportTitle="shazam!">Hello!</VisualizationContainer> + <VisualizationContainer reportTitle="shazam!" reportDescription="Description"> + Hello! + </VisualizationContainer> ); const reportingEl = component.find('[data-shared-item]').first(); expect(reportingEl.prop('data-title')).toEqual('shazam!'); + expect(reportingEl.prop('data-description')).toEqual('Description'); }); test('renders style', () => { diff --git a/x-pack/plugins/lens/public/visualization_container.tsx b/x-pack/plugins/lens/public/visualization_container.tsx index 521d41b6f8d94..429dc63231cbe 100644 --- a/x-pack/plugins/lens/public/visualization_container.tsx +++ b/x-pack/plugins/lens/public/visualization_container.tsx @@ -12,6 +12,7 @@ import classNames from 'classnames'; interface Props extends React.HTMLAttributes<HTMLDivElement> { isReady?: boolean; reportTitle?: string; + reportDescription?: string; } /** @@ -21,16 +22,24 @@ interface Props extends React.HTMLAttributes<HTMLDivElement> { export function VisualizationContainer({ isReady = true, reportTitle, + reportDescription, children, className, ...rest }: Props) { + const attributes: Partial<{ 'data-title': string; 'data-description': string }> = {}; + if (reportTitle) { + attributes['data-title'] = reportTitle; + } + if (reportDescription) { + attributes['data-description'] = reportDescription; + } return ( <div data-shared-item data-render-complete={isReady} className={classNames(className, 'lnsVisualizationContainer')} - data-title={reportTitle} + {...attributes} {...rest} > {children} diff --git a/x-pack/plugins/lens/public/xy_visualization/__snapshots__/to_expression.test.ts.snap b/x-pack/plugins/lens/public/xy_visualization/__snapshots__/to_expression.test.ts.snap index dd8c6377cacdc..b35f915336eee 100644 --- a/x-pack/plugins/lens/public/xy_visualization/__snapshots__/to_expression.test.ts.snap +++ b/x-pack/plugins/lens/public/xy_visualization/__snapshots__/to_expression.test.ts.snap @@ -27,6 +27,9 @@ Object { "type": "expression", }, ], + "description": Array [ + "", + ], "fittingFunction": Array [ "Carry", ], @@ -139,6 +142,9 @@ Object { "type": "expression", }, ], + "title": Array [ + "", + ], "xTitle": Array [ "", ], diff --git a/x-pack/plugins/lens/public/xy_visualization/expression.tsx b/x-pack/plugins/lens/public/xy_visualization/expression.tsx index 64e0a3670a9aa..f36525a9a0b14 100644 --- a/x-pack/plugins/lens/public/xy_visualization/expression.tsx +++ b/x-pack/plugins/lens/public/xy_visualization/expression.tsx @@ -85,6 +85,14 @@ export const xyChart: ExpressionFunctionDefinition< defaultMessage: 'An X/Y chart', }), args: { + title: { + types: ['string'], + help: 'The chart title.', + }, + description: { + types: ['string'], + help: '', + }, xTitle: { types: ['string'], help: i18n.translate('xpack.lens.xyChart.xTitle.help', { @@ -215,7 +223,12 @@ export function XYChartReportable(props: XYChartRenderProps) { }, [setState]); return ( - <VisualizationContainer className="lnsXyExpression__container" isReady={state.isReady}> + <VisualizationContainer + className="lnsXyExpression__container" + isReady={state.isReady} + reportTitle={props.args.title} + reportDescription={props.args.description} + > <MemoizedChart {...props} /> </VisualizationContainer> ); diff --git a/x-pack/plugins/lens/public/xy_visualization/to_expression.ts b/x-pack/plugins/lens/public/xy_visualization/to_expression.ts index df8d571a1fdf8..5a3c8faa2d476 100644 --- a/x-pack/plugins/lens/public/xy_visualization/to_expression.ts +++ b/x-pack/plugins/lens/public/xy_visualization/to_expression.ts @@ -15,7 +15,8 @@ interface ValidLayer extends LayerConfig { export const toExpression = ( state: State, - datasourceLayers: Record<string, DatasourcePublicAPI> + datasourceLayers: Record<string, DatasourcePublicAPI>, + attributes: Partial<{ title: string; description: string }> = {} ): Ast | null => { if (!state || !state.layers.length) { return null; @@ -31,7 +32,7 @@ export const toExpression = ( }); }); - return buildExpression(state, metadata, datasourceLayers); + return buildExpression(state, metadata, datasourceLayers, attributes); }; export function toPreviewExpression( @@ -81,7 +82,8 @@ export function getScaleType(metadata: OperationMetadata | null, defaultScale: S export const buildExpression = ( state: State, metadata: Record<string, Record<string, OperationMetadata | null>>, - datasourceLayers?: Record<string, DatasourcePublicAPI> + datasourceLayers?: Record<string, DatasourcePublicAPI>, + attributes: Partial<{ title: string; description: string }> = {} ): Ast | null => { const validLayers = state.layers.filter((layer): layer is ValidLayer => Boolean(layer.accessors.length) @@ -97,6 +99,8 @@ export const buildExpression = ( type: 'function', function: 'lens_xy_chart', arguments: { + title: [attributes?.title || ''], + description: [attributes?.description || ''], xTitle: [state.xTitle || ''], yTitle: [state.yTitle || ''], yRightTitle: [state.yRightTitle || ''], diff --git a/x-pack/plugins/lens/public/xy_visualization/types.ts b/x-pack/plugins/lens/public/xy_visualization/types.ts index 185fa20f169ee..cac982f852c7a 100644 --- a/x-pack/plugins/lens/public/xy_visualization/types.ts +++ b/x-pack/plugins/lens/public/xy_visualization/types.ts @@ -383,6 +383,8 @@ export type LayerArgs = LayerConfig & { // Arguments to XY chart expression, with computed properties export interface XYArgs { + title?: string; + description?: string; xTitle: string; yTitle: string; yRightTitle: string; From a61f4d4cbfd08dfe2502cebd059464bf3df75707 Mon Sep 17 00:00:00 2001 From: Chris Roberson <chrisronline@gmail.com> Date: Thu, 1 Oct 2020 12:28:34 -0400 Subject: [PATCH 113/142] [Monitoring] Missing data alert (#78208) * WIP for alert * Surface alert most places * Fix up alert placement * Fix tests * Type fix * Update copy * Add alert presence to APM in the UI * Fetch data a little differently * We don't need moment * Add tests * PR feedback * Update copy * Fix up bug around grabbing old data * PR feedback * PR feedback * Fix tests --- x-pack/plugins/monitoring/common/constants.ts | 2 + x-pack/plugins/monitoring/common/types.ts | 6 +- .../monitoring/public/alerts/badge.tsx | 15 +- .../monitoring/public/alerts/callout.tsx | 11 +- .../public/alerts/filter_alert_states.ts | 23 + .../expression.tsx | 61 +++ .../missing_monitoring_data_alert/index.ts | 7 + .../missing_monitoring_data_alert.tsx | 28 + .../validation.tsx | 35 ++ .../monitoring/public/alerts/panel.tsx | 10 +- .../monitoring/public/alerts/status.tsx | 15 +- .../components/apm/instance/instance.js | 14 +- .../public/components/apm/instance/status.js | 3 +- .../components/apm/instances/instances.js | 32 +- .../public/components/apm/instances/status.js | 3 +- .../public/components/apm/overview/index.js | 4 +- .../public/components/beats/beat/beat.js | 18 +- .../components/beats/listing/listing.js | 29 +- .../components/beats/overview/overview.js | 3 +- .../public/components/beats/stats.js | 4 +- .../components/cluster/overview/apm_panel.js | 29 +- .../cluster/overview/beats_panel.js | 25 +- .../cluster/overview/elasticsearch_panel.js | 2 + .../components/cluster/overview/index.js | 54 +- .../cluster/overview/kibana_panel.js | 8 +- .../cluster/overview/logstash_panel.js | 3 +- .../components/elasticsearch/node/node.js | 15 +- .../components/elasticsearch/nodes/nodes.js | 10 +- .../components/kibana/instances/instances.js | 13 +- .../components/logstash/listing/listing.js | 13 +- x-pack/plugins/monitoring/public/plugin.ts | 2 + .../public/views/apm/instance/index.js | 18 +- .../public/views/apm/instances/index.js | 18 +- .../public/views/apm/overview/index.js | 24 +- .../public/views/beats/beat/index.js | 18 +- .../public/views/beats/listing/index.js | 18 +- .../public/views/beats/overview/index.js | 24 +- .../elasticsearch/node/advanced/index.js | 3 +- .../public/views/elasticsearch/node/index.js | 3 +- .../public/views/elasticsearch/nodes/index.js | 8 +- .../public/views/kibana/instance/index.js | 24 +- .../public/views/kibana/instances/index.js | 8 +- .../views/logstash/node/advanced/index.js | 28 +- .../public/views/logstash/node/index.js | 24 +- .../public/views/logstash/nodes/index.js | 8 +- .../server/alerts/alerts_factory.test.ts | 2 +- .../server/alerts/alerts_factory.ts | 3 + .../monitoring/server/alerts/base_alert.ts | 41 +- .../server/alerts/cpu_usage_alert.ts | 4 +- .../plugins/monitoring/server/alerts/index.ts | 1 + .../missing_monitoring_data_alert.test.ts | 459 ++++++++++++++++ .../alerts/missing_monitoring_data_alert.ts | 504 ++++++++++++++++++ .../monitoring/server/alerts/types.d.ts | 16 + .../server/lib/alerts/fetch_clusters.ts | 19 +- .../fetch_missing_monitoring_data.test.ts | 249 +++++++++ .../alerts/fetch_missing_monitoring_data.ts | 275 ++++++++++ .../get_listing_link_for_stack_product.ts | 28 + .../lib/alerts/get_stack_product_label.ts | 17 + .../get_type_label_for_stack_product.ts | 51 ++ 59 files changed, 2303 insertions(+), 89 deletions(-) create mode 100644 x-pack/plugins/monitoring/public/alerts/filter_alert_states.ts create mode 100644 x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/expression.tsx create mode 100644 x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/index.ts create mode 100644 x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/missing_monitoring_data_alert.tsx create mode 100644 x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/validation.tsx create mode 100644 x-pack/plugins/monitoring/server/alerts/missing_monitoring_data_alert.test.ts create mode 100644 x-pack/plugins/monitoring/server/alerts/missing_monitoring_data_alert.ts create mode 100644 x-pack/plugins/monitoring/server/lib/alerts/fetch_missing_monitoring_data.test.ts create mode 100644 x-pack/plugins/monitoring/server/lib/alerts/fetch_missing_monitoring_data.ts create mode 100644 x-pack/plugins/monitoring/server/lib/alerts/get_listing_link_for_stack_product.ts create mode 100644 x-pack/plugins/monitoring/server/lib/alerts/get_stack_product_label.ts create mode 100644 x-pack/plugins/monitoring/server/lib/alerts/get_type_label_for_stack_product.ts diff --git a/x-pack/plugins/monitoring/common/constants.ts b/x-pack/plugins/monitoring/common/constants.ts index 6eb0d6e93d58a..860f6439f3fdf 100644 --- a/x-pack/plugins/monitoring/common/constants.ts +++ b/x-pack/plugins/monitoring/common/constants.ts @@ -236,6 +236,7 @@ export const ALERT_NODES_CHANGED = `${ALERT_PREFIX}alert_nodes_changed`; export const ALERT_ELASTICSEARCH_VERSION_MISMATCH = `${ALERT_PREFIX}alert_elasticsearch_version_mismatch`; export const ALERT_KIBANA_VERSION_MISMATCH = `${ALERT_PREFIX}alert_kibana_version_mismatch`; export const ALERT_LOGSTASH_VERSION_MISMATCH = `${ALERT_PREFIX}alert_logstash_version_mismatch`; +export const ALERT_MISSING_MONITORING_DATA = `${ALERT_PREFIX}alert_missing_monitoring_data`; /** * A listing of all alert types @@ -249,6 +250,7 @@ export const ALERTS = [ ALERT_ELASTICSEARCH_VERSION_MISMATCH, ALERT_KIBANA_VERSION_MISMATCH, ALERT_LOGSTASH_VERSION_MISMATCH, + ALERT_MISSING_MONITORING_DATA, ]; /** diff --git a/x-pack/plugins/monitoring/common/types.ts b/x-pack/plugins/monitoring/common/types.ts index 4216a046fef9f..825d2e454b3bb 100644 --- a/x-pack/plugins/monitoring/common/types.ts +++ b/x-pack/plugins/monitoring/common/types.ts @@ -31,10 +31,14 @@ export interface CommonAlertFilter { nodeUuid?: string; } -export interface CommonAlertCpuUsageFilter extends CommonAlertFilter { +export interface CommonAlertNodeUuidFilter extends CommonAlertFilter { nodeUuid: string; } +export interface CommonAlertStackProductFilter extends CommonAlertFilter { + stackProduct: string; +} + export interface CommonAlertParamDetail { label: string; type: AlertParamType; diff --git a/x-pack/plugins/monitoring/public/alerts/badge.tsx b/x-pack/plugins/monitoring/public/alerts/badge.tsx index 1d67eebb1705c..cf75939b14efc 100644 --- a/x-pack/plugins/monitoring/public/alerts/badge.tsx +++ b/x-pack/plugins/monitoring/public/alerts/badge.tsx @@ -18,7 +18,7 @@ import { CommonAlertStatus, CommonAlertState } from '../../common/types'; import { AlertSeverity } from '../../common/enums'; // @ts-ignore import { formatDateTimeLocal } from '../../common/formatting'; -import { AlertState } from '../../server/alerts/types'; +import { AlertMessage, AlertState } from '../../server/alerts/types'; import { AlertPanel } from './panel'; import { Legacy } from '../legacy_shims'; import { isInSetupMode } from '../lib/setup_mode'; @@ -39,9 +39,10 @@ interface AlertInPanel { interface Props { alerts: { [alertTypeId: string]: CommonAlertStatus }; stateFilter: (state: AlertState) => boolean; + nextStepsFilter: (nextStep: AlertMessage) => boolean; } export const AlertsBadge: React.FC<Props> = (props: Props) => { - const { stateFilter = () => true } = props; + const { stateFilter = () => true, nextStepsFilter = () => true } = props; const [showPopover, setShowPopover] = React.useState<AlertSeverity | boolean | null>(null); const inSetupMode = isInSetupMode(); const alerts = Object.values(props.alerts).filter(Boolean); @@ -80,7 +81,7 @@ export const AlertsBadge: React.FC<Props> = (props: Props) => { id: index + 1, title: alertStatus.alert.label, width: 400, - content: <AlertPanel alert={alertStatus} />, + content: <AlertPanel alert={alertStatus} nextStepsFilter={nextStepsFilter} />, }; }), ]; @@ -158,7 +159,13 @@ export const AlertsBadge: React.FC<Props> = (props: Props) => { id: index + 1, title: getDateFromState(alertStatus.alertState), width: 400, - content: <AlertPanel alert={alertStatus.alert} alertState={alertStatus.alertState} />, + content: ( + <AlertPanel + alert={alertStatus.alert} + alertState={alertStatus.alertState} + nextStepsFilter={nextStepsFilter} + /> + ), }; }), ]; diff --git a/x-pack/plugins/monitoring/public/alerts/callout.tsx b/x-pack/plugins/monitoring/public/alerts/callout.tsx index cad98dd1e6aec..1ddd41c268456 100644 --- a/x-pack/plugins/monitoring/public/alerts/callout.tsx +++ b/x-pack/plugins/monitoring/public/alerts/callout.tsx @@ -32,9 +32,10 @@ const TYPES = [ interface Props { alerts: { [alertTypeId: string]: CommonAlertStatus }; stateFilter: (state: AlertState) => boolean; + nextStepsFilter: (nextStep: AlertMessage) => boolean; } export const AlertsCallout: React.FC<Props> = (props: Props) => { - const { alerts, stateFilter = () => true } = props; + const { alerts, stateFilter = () => true, nextStepsFilter = () => true } = props; const callouts = TYPES.map((type) => { const list = []; @@ -56,11 +57,11 @@ export const AlertsCallout: React.FC<Props> = (props: Props) => { const nextStepsUi = state.ui.message.nextSteps && state.ui.message.nextSteps.length ? ( <ul> - {state.ui.message.nextSteps.map( - (step: AlertMessage, nextStepIndex: number) => ( + {state.ui.message.nextSteps + .filter(nextStepsFilter) + .map((step: AlertMessage, nextStepIndex: number) => ( <li key={nextStepIndex}>{replaceTokens(step)}</li> - ) - )} + ))} </ul> ) : null; diff --git a/x-pack/plugins/monitoring/public/alerts/filter_alert_states.ts b/x-pack/plugins/monitoring/public/alerts/filter_alert_states.ts new file mode 100644 index 0000000000000..63714a6921e3f --- /dev/null +++ b/x-pack/plugins/monitoring/public/alerts/filter_alert_states.ts @@ -0,0 +1,23 @@ +/* + * 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 { CommonAlertState, CommonAlertStatus } from '../../common/types'; + +export function filterAlertStates( + alerts: { [type: string]: CommonAlertStatus }, + filter: (type: string, state: CommonAlertState) => boolean +) { + return Object.keys(alerts).reduce( + (accum: { [type: string]: CommonAlertStatus }, type: string) => { + accum[type] = { + ...alerts[type], + states: alerts[type].states.filter((state) => filter(type, state)), + }; + return accum; + }, + {} + ); +} diff --git a/x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/expression.tsx b/x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/expression.tsx new file mode 100644 index 0000000000000..7dc6155de529e --- /dev/null +++ b/x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/expression.tsx @@ -0,0 +1,61 @@ +/* + * 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, { Fragment } from 'react'; +import { EuiForm, EuiSpacer } from '@elastic/eui'; +import { CommonAlertParamDetails } from '../../../common/types'; +import { AlertParamDuration } from '../flyout_expressions/alert_param_duration'; +import { AlertParamType } from '../../../common/enums'; +import { AlertParamPercentage } from '../flyout_expressions/alert_param_percentage'; + +export interface Props { + alertParams: { [property: string]: any }; + setAlertParams: (property: string, value: any) => void; + setAlertProperty: (property: string, value: any) => void; + errors: { [key: string]: string[] }; + paramDetails: CommonAlertParamDetails; +} + +export const Expression: React.FC<Props> = (props) => { + const { alertParams, paramDetails, setAlertParams, errors } = props; + + const alertParamsUi = Object.keys(alertParams).map((alertParamName) => { + const details = paramDetails[alertParamName]; + const value = alertParams[alertParamName]; + + switch (details.type) { + case AlertParamType.Duration: + return ( + <AlertParamDuration + key={alertParamName} + name={alertParamName} + duration={value} + label={details.label} + errors={errors[alertParamName]} + setAlertParams={setAlertParams} + /> + ); + case AlertParamType.Percentage: + return ( + <AlertParamPercentage + key={alertParamName} + name={alertParamName} + label={details.label} + percentage={value} + errors={errors[alertParamName]} + setAlertParams={setAlertParams} + /> + ); + } + }); + + return ( + <Fragment> + <EuiForm component="form">{alertParamsUi}</EuiForm> + <EuiSpacer /> + </Fragment> + ); +}; diff --git a/x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/index.ts b/x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/index.ts new file mode 100644 index 0000000000000..5169601c0e6e3 --- /dev/null +++ b/x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/index.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 { createMissingMonitoringDataAlertType } from './missing_monitoring_data_alert'; diff --git a/x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/missing_monitoring_data_alert.tsx b/x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/missing_monitoring_data_alert.tsx new file mode 100644 index 0000000000000..bcea98592adb2 --- /dev/null +++ b/x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/missing_monitoring_data_alert.tsx @@ -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 React from 'react'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { AlertTypeModel } from '../../../../triggers_actions_ui/public/types'; +import { validate } from './validation'; +import { ALERT_MISSING_MONITORING_DATA } from '../../../common/constants'; +import { Expression } from './expression'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { MissingMonitoringDataAlert } from '../../../server/alerts'; + +export function createMissingMonitoringDataAlertType(): AlertTypeModel { + const alert = new MissingMonitoringDataAlert(); + return { + id: ALERT_MISSING_MONITORING_DATA, + name: alert.label, + iconClass: 'bell', + alertParamsExpression: (props: any) => ( + <Expression {...props} paramDetails={MissingMonitoringDataAlert.paramDetails} /> + ), + validate, + defaultActionMessage: '{{context.internalFullMessage}}', + requiresAppContext: true, + }; +} diff --git a/x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/validation.tsx b/x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/validation.tsx new file mode 100644 index 0000000000000..fe84de9bd00ea --- /dev/null +++ b/x-pack/plugins/monitoring/public/alerts/missing_monitoring_data_alert/validation.tsx @@ -0,0 +1,35 @@ +/* + * 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'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { ValidationResult } from '../../../../triggers_actions_ui/public/types'; + +export function validate(opts: any): ValidationResult { + const validationResult = { errors: {} }; + + const errors: { [key: string]: string[] } = { + duration: [], + limit: [], + }; + if (!opts.duration) { + errors.duration.push( + i18n.translate('xpack.monitoring.alerts.missingData.validation.duration', { + defaultMessage: 'A valid duration is required.', + }) + ); + } + if (!opts.limit) { + errors.limit.push( + i18n.translate('xpack.monitoring.alerts.missingData.validation.limit', { + defaultMessage: 'A valid limit is required.', + }) + ); + } + + validationResult.errors = errors; + return validationResult; +} diff --git a/x-pack/plugins/monitoring/public/alerts/panel.tsx b/x-pack/plugins/monitoring/public/alerts/panel.tsx index 91604acf115fa..ee605592e9408 100644 --- a/x-pack/plugins/monitoring/public/alerts/panel.tsx +++ b/x-pack/plugins/monitoring/public/alerts/panel.tsx @@ -30,11 +30,13 @@ import { BASE_ALERT_API_PATH } from '../../../alerts/common'; interface Props { alert: CommonAlertStatus; alertState?: CommonAlertState; + nextStepsFilter: (nextStep: AlertMessage) => boolean; } export const AlertPanel: React.FC<Props> = (props: Props) => { const { alert: { alert }, alertState, + nextStepsFilter = () => true, } = props; const [showFlyout, setShowFlyout] = React.useState(false); const [isEnabled, setIsEnabled] = React.useState(alert.rawAlert.enabled); @@ -198,9 +200,11 @@ export const AlertPanel: React.FC<Props> = (props: Props) => { const nextStepsUi = alertState.state.ui.message.nextSteps && alertState.state.ui.message.nextSteps.length ? ( <EuiListGroup> - {alertState.state.ui.message.nextSteps.map((step: AlertMessage, index: number) => ( - <EuiListGroupItem size="s" key={index} label={replaceTokens(step)} /> - ))} + {alertState.state.ui.message.nextSteps + .filter(nextStepsFilter) + .map((step: AlertMessage, index: number) => ( + <EuiListGroupItem size="s" key={index} label={replaceTokens(step)} /> + ))} </EuiListGroup> ) : null; diff --git a/x-pack/plugins/monitoring/public/alerts/status.tsx b/x-pack/plugins/monitoring/public/alerts/status.tsx index 0407ddfecf5e9..dba66df0e4474 100644 --- a/x-pack/plugins/monitoring/public/alerts/status.tsx +++ b/x-pack/plugins/monitoring/public/alerts/status.tsx @@ -9,7 +9,7 @@ import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; import { CommonAlertStatus } from '../../common/types'; import { AlertSeverity } from '../../common/enums'; -import { AlertState } from '../../server/alerts/types'; +import { AlertMessage, AlertState } from '../../server/alerts/types'; import { AlertsBadge } from './badge'; import { isInSetupMode } from '../lib/setup_mode'; @@ -18,9 +18,16 @@ interface Props { showBadge: boolean; showOnlyCount: boolean; stateFilter: (state: AlertState) => boolean; + nextStepsFilter: (nextStep: AlertMessage) => boolean; } export const AlertsStatus: React.FC<Props> = (props: Props) => { - const { alerts, showBadge = false, showOnlyCount = false, stateFilter = () => true } = props; + const { + alerts, + showBadge = false, + showOnlyCount = false, + stateFilter = () => true, + nextStepsFilter = () => true, + } = props; const inSetupMode = isInSetupMode(); if (!alerts) { @@ -71,7 +78,9 @@ export const AlertsStatus: React.FC<Props> = (props: Props) => { } if (showBadge || inSetupMode) { - return <AlertsBadge alerts={alerts} stateFilter={stateFilter} />; + return ( + <AlertsBadge alerts={alerts} stateFilter={stateFilter} nextStepsFilter={nextStepsFilter} /> + ); } const severity = atLeastOneDanger ? AlertSeverity.Danger : AlertSeverity.Warning; diff --git a/x-pack/plugins/monitoring/public/components/apm/instance/instance.js b/x-pack/plugins/monitoring/public/components/apm/instance/instance.js index eec24e741ac41..8934bbc41f5f6 100644 --- a/x-pack/plugins/monitoring/public/components/apm/instance/instance.js +++ b/x-pack/plugins/monitoring/public/components/apm/instance/instance.js @@ -18,8 +18,9 @@ import { } from '@elastic/eui'; import { Status } from './status'; import { FormattedMessage } from '@kbn/i18n/react'; +import { AlertsCallout } from '../../../alerts/callout'; -export function ApmServerInstance({ summary, metrics, ...props }) { +export function ApmServerInstance({ summary, metrics, alerts, ...props }) { const seriesToShow = [ metrics.apm_requests, metrics.apm_responses_valid, @@ -58,9 +59,18 @@ export function ApmServerInstance({ summary, metrics, ...props }) { </h1> </EuiScreenReaderOnly> <EuiPanel> - <Status stats={summary} /> + <Status stats={summary} alerts={alerts} /> </EuiPanel> <EuiSpacer size="m" /> + <AlertsCallout + alerts={alerts} + nextStepsFilter={(nextStep) => { + if (nextStep.text.includes('APM servers')) { + return false; + } + return true; + }} + /> <EuiPageContent> <EuiFlexGroup wrap>{charts}</EuiFlexGroup> </EuiPageContent> diff --git a/x-pack/plugins/monitoring/public/components/apm/instance/status.js b/x-pack/plugins/monitoring/public/components/apm/instance/status.js index 9b78db54a2aa7..02a15d214ab9b 100644 --- a/x-pack/plugins/monitoring/public/components/apm/instance/status.js +++ b/x-pack/plugins/monitoring/public/components/apm/instance/status.js @@ -14,7 +14,7 @@ import { CALCULATE_DURATION_SINCE } from '../../../../common/constants'; import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; -export function Status({ stats }) { +export function Status({ alerts, stats }) { const { name, output, version, uptime, timeOfLastEvent } = stats; const metrics = [ @@ -78,6 +78,7 @@ export function Status({ stats }) { return ( <SummaryStatus metrics={metrics} + alerts={alerts} IconComponent={IconComponent} data-test-subj="apmDetailStatus" /> diff --git a/x-pack/plugins/monitoring/public/components/apm/instances/instances.js b/x-pack/plugins/monitoring/public/components/apm/instances/instances.js index e05ba1878caed..4932fb9068fcc 100644 --- a/x-pack/plugins/monitoring/public/components/apm/instances/instances.js +++ b/x-pack/plugins/monitoring/public/components/apm/instances/instances.js @@ -28,8 +28,9 @@ import { SetupModeBadge } from '../../setup_mode/badge'; import { FormattedMessage } from '@kbn/i18n/react'; import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode'; import { SetupModeFeature } from '../../../../common/enums'; +import { AlertsStatus } from '../../../alerts/status'; -function getColumns(setupMode) { +function getColumns(alerts, setupMode) { return [ { name: i18n.translate('xpack.monitoring.apm.instances.nameTitle', { @@ -71,6 +72,29 @@ function getColumns(setupMode) { ); }, }, + { + name: i18n.translate('xpack.monitoring.beats.instances.alertsColumnTitle', { + defaultMessage: 'Alerts', + }), + field: 'alerts', + width: '175px', + sortable: true, + render: (_field, beat) => { + return ( + <AlertsStatus + showBadge={true} + alerts={alerts} + stateFilter={(state) => state.stackProductUuid === beat.uuid} + nextStepsFilter={(nextStep) => { + if (nextStep.text.includes('APM servers')) { + return false; + } + return true; + }} + /> + ); + }, + }, { name: i18n.translate('xpack.monitoring.apm.instances.outputEnabledTitle', { defaultMessage: 'Output Enabled', @@ -127,7 +151,7 @@ function getColumns(setupMode) { ]; } -export function ApmServerInstances({ apms, setupMode }) { +export function ApmServerInstances({ apms, alerts, setupMode }) { const { pagination, sorting, onTableChange, data } = apms; let setupModeCallout = null; @@ -157,7 +181,7 @@ export function ApmServerInstances({ apms, setupMode }) { </h1> </EuiScreenReaderOnly> <EuiPanel> - <Status stats={data.stats} /> + <Status stats={data.stats} alerts={alerts} /> </EuiPanel> <EuiSpacer size="m" /> <EuiPageContent> @@ -165,7 +189,7 @@ export function ApmServerInstances({ apms, setupMode }) { <EuiMonitoringTable className="apmInstancesTable" rows={data.apms} - columns={getColumns(setupMode)} + columns={getColumns(alerts, setupMode)} sorting={sorting} pagination={pagination} setupMode={setupMode} diff --git a/x-pack/plugins/monitoring/public/components/apm/instances/status.js b/x-pack/plugins/monitoring/public/components/apm/instances/status.js index 818671626ec06..c15e22029d9de 100644 --- a/x-pack/plugins/monitoring/public/components/apm/instances/status.js +++ b/x-pack/plugins/monitoring/public/components/apm/instances/status.js @@ -14,7 +14,7 @@ import { CALCULATE_DURATION_SINCE } from '../../../../common/constants'; import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; -export function Status({ stats }) { +export function Status({ alerts, stats }) { const { apms: { total }, totalEvents, @@ -68,6 +68,7 @@ export function Status({ stats }) { return ( <SummaryStatus metrics={metrics} + alerts={alerts} IconComponent={IconComponent} data-test-subj="apmDetailStatus" /> diff --git a/x-pack/plugins/monitoring/public/components/apm/overview/index.js b/x-pack/plugins/monitoring/public/components/apm/overview/index.js index 35efa6ac67ea8..b10592c2a49d2 100644 --- a/x-pack/plugins/monitoring/public/components/apm/overview/index.js +++ b/x-pack/plugins/monitoring/public/components/apm/overview/index.js @@ -19,7 +19,7 @@ import { import { Status } from '../instances/status'; import { FormattedMessage } from '@kbn/i18n/react'; -export function ApmOverview({ stats, metrics, ...props }) { +export function ApmOverview({ stats, metrics, alerts, ...props }) { const seriesToShow = [ metrics.apm_responses_valid, metrics.apm_responses_errors, @@ -54,7 +54,7 @@ export function ApmOverview({ stats, metrics, ...props }) { </h1> </EuiScreenReaderOnly> <EuiPanel> - <Status stats={stats} /> + <Status stats={stats} alerts={alerts} /> </EuiPanel> <EuiSpacer size="m" /> <EuiPageContent> diff --git a/x-pack/plugins/monitoring/public/components/beats/beat/beat.js b/x-pack/plugins/monitoring/public/components/beats/beat/beat.js index f489271659bfe..470cdf588ca3d 100644 --- a/x-pack/plugins/monitoring/public/components/beats/beat/beat.js +++ b/x-pack/plugins/monitoring/public/components/beats/beat/beat.js @@ -20,8 +20,9 @@ import { import { i18n } from '@kbn/i18n'; import { SummaryStatus } from '../../summary_status'; import { FormattedMessage } from '@kbn/i18n/react'; +import { AlertsCallout } from '../../../alerts/callout'; -export function Beat({ summary, metrics, ...props }) { +export function Beat({ summary, metrics, alerts, ...props }) { const metricsToShow = [ metrics.beat_event_rates, metrics.beat_fail_rates, @@ -134,13 +135,26 @@ export function Beat({ summary, metrics, ...props }) { <EuiPage> <EuiPageBody> <EuiPanel> - <SummaryStatus metrics={summarytStatsTop} data-test-subj="beatSummaryStatus01" /> + <SummaryStatus + metrics={summarytStatsTop} + alerts={alerts} + data-test-subj="beatSummaryStatus01" + /> </EuiPanel> <EuiSpacer size="m" /> <EuiPanel> <SummaryStatus metrics={summarytStatsBot} data-test-subj="beatSummaryStatus02" /> </EuiPanel> <EuiSpacer size="m" /> + <AlertsCallout + alerts={alerts} + nextStepsFilter={(nextStep) => { + if (nextStep.text.includes('Beat instances')) { + return false; + } + return true; + }} + /> <EuiPageContent> <EuiScreenReaderOnly> <h1> diff --git a/x-pack/plugins/monitoring/public/components/beats/listing/listing.js b/x-pack/plugins/monitoring/public/components/beats/listing/listing.js index 60a35e00a4c63..dc65cd38aac53 100644 --- a/x-pack/plugins/monitoring/public/components/beats/listing/listing.js +++ b/x-pack/plugins/monitoring/public/components/beats/listing/listing.js @@ -26,10 +26,12 @@ import { SetupModeBadge } from '../../setup_mode/badge'; import { FormattedMessage } from '@kbn/i18n/react'; import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode'; import { SetupModeFeature } from '../../../../common/enums'; +import { AlertsStatus } from '../../../alerts/status'; export class Listing extends PureComponent { getColumns() { const setupMode = this.props.setupMode; + const alerts = this.props.alerts; return [ { @@ -72,6 +74,29 @@ export class Listing extends PureComponent { ); }, }, + { + name: i18n.translate('xpack.monitoring.beats.instances.alertsColumnTitle', { + defaultMessage: 'Alerts', + }), + field: 'alerts', + width: '175px', + sortable: true, + render: (_field, beat) => { + return ( + <AlertsStatus + showBadge={true} + alerts={alerts} + stateFilter={(state) => state.stackProductUuid === beat.uuid} + nextStepsFilter={(nextStep) => { + if (nextStep.text.includes('Beat instances')) { + return false; + } + return true; + }} + /> + ); + }, + }, { name: i18n.translate('xpack.monitoring.beats.instances.typeTitle', { defaultMessage: 'Type', @@ -122,7 +147,7 @@ export class Listing extends PureComponent { } render() { - const { stats, data, sorting, pagination, onTableChange, setupMode } = this.props; + const { stats, data, sorting, pagination, onTableChange, setupMode, alerts } = this.props; let setupModeCallOut = null; if (isSetupModeFeatureEnabled(SetupModeFeature.MetricbeatMigration)) { @@ -155,7 +180,7 @@ export class Listing extends PureComponent { </h1> </EuiScreenReaderOnly> <EuiPanel> - <Stats stats={stats} /> + <Stats stats={stats} alerts={alerts} /> </EuiPanel> <EuiSpacer size="m" /> <EuiPageContent> diff --git a/x-pack/plugins/monitoring/public/components/beats/overview/overview.js b/x-pack/plugins/monitoring/public/components/beats/overview/overview.js index 897f017f44f41..aa09da31504d3 100644 --- a/x-pack/plugins/monitoring/public/components/beats/overview/overview.js +++ b/x-pack/plugins/monitoring/public/components/beats/overview/overview.js @@ -84,6 +84,7 @@ export function BeatsOverview({ latestVersions, stats, metrics, + alerts, ...props }) { const seriesToShow = [ @@ -113,7 +114,7 @@ export function BeatsOverview({ </h1> </EuiScreenReaderOnly> <EuiPanel> - <Stats stats={stats} /> + <Stats stats={stats} alerts={alerts} /> </EuiPanel> <EuiSpacer size="m" /> <EuiPanel>{renderLatestActive(latestActive, latestTypes, latestVersions)}</EuiPanel> diff --git a/x-pack/plugins/monitoring/public/components/beats/stats.js b/x-pack/plugins/monitoring/public/components/beats/stats.js index 89ec10bbaf1bb..c1f06af14a453 100644 --- a/x-pack/plugins/monitoring/public/components/beats/stats.js +++ b/x-pack/plugins/monitoring/public/components/beats/stats.js @@ -9,7 +9,7 @@ import { formatMetric } from '../../lib/format_number'; import { SummaryStatus } from '../summary_status'; import { i18n } from '@kbn/i18n'; -export function Stats({ stats }) { +export function Stats({ stats, alerts }) { const { total, types, @@ -51,5 +51,5 @@ export function Stats({ stats }) { 'data-test-subj': 'bytesSent', }); - return <SummaryStatus metrics={metrics} data-test-subj="beatsSummaryStatus" />; + return <SummaryStatus metrics={metrics} alerts={alerts} data-test-subj="beatsSummaryStatus" />; } diff --git a/x-pack/plugins/monitoring/public/components/cluster/overview/apm_panel.js b/x-pack/plugins/monitoring/public/components/cluster/overview/apm_panel.js index 4bf07710393ea..d0d5a36c3829b 100644 --- a/x-pack/plugins/monitoring/public/components/cluster/overview/apm_panel.js +++ b/x-pack/plugins/monitoring/public/components/cluster/overview/apm_panel.js @@ -24,14 +24,22 @@ import { EuiFlexGroup, } from '@elastic/eui'; import { formatTimestampToDuration } from '../../../../common'; -import { CALCULATE_DURATION_SINCE, APM_SYSTEM_ID } from '../../../../common/constants'; +import { + CALCULATE_DURATION_SINCE, + APM_SYSTEM_ID, + ALERT_MISSING_MONITORING_DATA, +} from '../../../../common/constants'; import { SetupModeTooltip } from '../../setup_mode/tooltip'; import { getSafeForExternalLink } from '../../../lib/get_safe_for_external_link'; import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode'; import { SetupModeFeature } from '../../../../common/enums'; +import { shouldShowAlertBadge } from '../../../alerts/lib/should_show_alert_badge'; +import { AlertsBadge } from '../../../alerts/badge'; + +const SERVERS_PANEL_ALERTS = [ALERT_MISSING_MONITORING_DATA]; export function ApmPanel(props) { - const { setupMode } = props; + const { setupMode, alerts } = props; const apmsTotal = get(props, 'apms.total') || 0; // Do not show if we are not in setup mode if (apmsTotal === 0 && !setupMode.enabled) { @@ -50,6 +58,16 @@ export function ApmPanel(props) { /> ) : null; + let apmServersAlertStatus = null; + if (shouldShowAlertBadge(alerts, SERVERS_PANEL_ALERTS)) { + const alertsList = SERVERS_PANEL_ALERTS.map((alertType) => alerts[alertType]); + apmServersAlertStatus = ( + <EuiFlexItem grow={false}> + <AlertsBadge alerts={alertsList} /> + </EuiFlexItem> + ); + } + return ( <ClusterItemContainer {...props} @@ -140,7 +158,12 @@ export function ApmPanel(props) { </h3> </EuiTitle> </EuiFlexItem> - {setupModeMetricbeatMigrationTooltip} + <EuiFlexItem grow={false}> + <EuiFlexGroup gutterSize="s" alignItems="center"> + {setupModeMetricbeatMigrationTooltip} + {apmServersAlertStatus} + </EuiFlexGroup> + </EuiFlexItem> </EuiFlexGroup> <EuiHorizontalRule margin="m" /> <EuiDescriptionList type="column"> diff --git a/x-pack/plugins/monitoring/public/components/cluster/overview/beats_panel.js b/x-pack/plugins/monitoring/public/components/cluster/overview/beats_panel.js index 3d9b455787a96..628f57a0ffde3 100644 --- a/x-pack/plugins/monitoring/public/components/cluster/overview/beats_panel.js +++ b/x-pack/plugins/monitoring/public/components/cluster/overview/beats_panel.js @@ -23,13 +23,17 @@ import { ClusterItemContainer, DisabledIfNoDataAndInSetupModeLink } from './help import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; import { SetupModeTooltip } from '../../setup_mode/tooltip'; -import { BEATS_SYSTEM_ID } from '../../../../common/constants'; +import { ALERT_MISSING_MONITORING_DATA, BEATS_SYSTEM_ID } from '../../../../common/constants'; import { getSafeForExternalLink } from '../../../lib/get_safe_for_external_link'; import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode'; import { SetupModeFeature } from '../../../../common/enums'; +import { shouldShowAlertBadge } from '../../../alerts/lib/should_show_alert_badge'; +import { AlertsBadge } from '../../../alerts/badge'; + +const BEATS_PANEL_ALERTS = [ALERT_MISSING_MONITORING_DATA]; export function BeatsPanel(props) { - const { setupMode } = props; + const { setupMode, alerts } = props; const beatsTotal = get(props, 'beats.total') || 0; // Do not show if we are not in setup mode if (beatsTotal === 0 && !setupMode.enabled) { @@ -47,6 +51,16 @@ export function BeatsPanel(props) { /> ) : null; + let beatsAlertsStatus = null; + if (shouldShowAlertBadge(alerts, BEATS_PANEL_ALERTS)) { + const alertsList = BEATS_PANEL_ALERTS.map((alertType) => alerts[alertType]); + beatsAlertsStatus = ( + <EuiFlexItem grow={false}> + <AlertsBadge alerts={alertsList} /> + </EuiFlexItem> + ); + } + const beatTypes = props.beats.types.map((beat, index) => { return [ <EuiDescriptionListTitle @@ -145,7 +159,12 @@ export function BeatsPanel(props) { </h3> </EuiTitle> </EuiFlexItem> - {setupModeMetricbeatMigrationTooltip} + <EuiFlexItem grow={false}> + <EuiFlexGroup gutterSize="s" alignItems="center"> + {setupModeMetricbeatMigrationTooltip} + {beatsAlertsStatus} + </EuiFlexGroup> + </EuiFlexItem> </EuiFlexGroup> <EuiHorizontalRule margin="m" /> <EuiDescriptionList type="column">{beatTypes}</EuiDescriptionList> diff --git a/x-pack/plugins/monitoring/public/components/cluster/overview/elasticsearch_panel.js b/x-pack/plugins/monitoring/public/components/cluster/overview/elasticsearch_panel.js index 61a24f31ca89a..667f64458b8f9 100644 --- a/x-pack/plugins/monitoring/public/components/cluster/overview/elasticsearch_panel.js +++ b/x-pack/plugins/monitoring/public/components/cluster/overview/elasticsearch_panel.js @@ -43,6 +43,7 @@ import { ALERT_DISK_USAGE, ALERT_NODES_CHANGED, ALERT_ELASTICSEARCH_VERSION_MISMATCH, + ALERT_MISSING_MONITORING_DATA, } from '../../../../common/constants'; import { AlertsBadge } from '../../../alerts/badge'; import { shouldShowAlertBadge } from '../../../alerts/lib/should_show_alert_badge'; @@ -161,6 +162,7 @@ const NODES_PANEL_ALERTS = [ ALERT_DISK_USAGE, ALERT_NODES_CHANGED, ALERT_ELASTICSEARCH_VERSION_MISMATCH, + ALERT_MISSING_MONITORING_DATA, ]; export function ElasticsearchPanel(props) { diff --git a/x-pack/plugins/monitoring/public/components/cluster/overview/index.js b/x-pack/plugins/monitoring/public/components/cluster/overview/index.js index 66701c1dfd95a..aebd1cee5f0be 100644 --- a/x-pack/plugins/monitoring/public/components/cluster/overview/index.js +++ b/x-pack/plugins/monitoring/public/components/cluster/overview/index.js @@ -12,7 +12,16 @@ import { BeatsPanel } from './beats_panel'; import { EuiPage, EuiPageBody, EuiScreenReaderOnly } from '@elastic/eui'; import { ApmPanel } from './apm_panel'; import { FormattedMessage } from '@kbn/i18n/react'; -import { STANDALONE_CLUSTER_CLUSTER_UUID } from '../../../../common/constants'; +import { + STANDALONE_CLUSTER_CLUSTER_UUID, + ALERT_MISSING_MONITORING_DATA, + ELASTICSEARCH_SYSTEM_ID, + KIBANA_SYSTEM_ID, + LOGSTASH_SYSTEM_ID, + BEATS_SYSTEM_ID, + APM_SYSTEM_ID, +} from '../../../../common/constants'; +import { filterAlertStates } from '../../../alerts/filter_alert_states'; export function Overview(props) { const isFromStandaloneCluster = props.cluster.cluster_uuid === STANDALONE_CLUSTER_CLUSTER_UUID; @@ -37,12 +46,22 @@ export function Overview(props) { license={props.cluster.license} setupMode={props.setupMode} showLicenseExpiration={props.showLicenseExpiration} - alerts={props.alerts} + alerts={filterAlertStates(props.alerts, (type, { state }) => { + if (type === ALERT_MISSING_MONITORING_DATA) { + return state.stackProduct === ELASTICSEARCH_SYSTEM_ID; + } + return true; + })} /> <KibanaPanel {...props.cluster.kibana} setupMode={props.setupMode} - alerts={props.alerts} + alerts={filterAlertStates(props.alerts, (type, { state }) => { + if (type === ALERT_MISSING_MONITORING_DATA) { + return state.stackProduct === KIBANA_SYSTEM_ID; + } + return true; + })} /> </Fragment> ) : null} @@ -50,12 +69,35 @@ export function Overview(props) { <LogstashPanel {...props.cluster.logstash} setupMode={props.setupMode} - alerts={props.alerts} + alerts={filterAlertStates(props.alerts, (type, { state }) => { + if (type === ALERT_MISSING_MONITORING_DATA) { + return state.stackProduct === LOGSTASH_SYSTEM_ID; + } + return true; + })} /> - <BeatsPanel {...props.cluster.beats} setupMode={props.setupMode} /> + <BeatsPanel + {...props.cluster.beats} + setupMode={props.setupMode} + alerts={filterAlertStates(props.alerts, (type, { state }) => { + if (type === ALERT_MISSING_MONITORING_DATA) { + return state.stackProduct === BEATS_SYSTEM_ID; + } + return true; + })} + /> - <ApmPanel {...props.cluster.apm} setupMode={props.setupMode} /> + <ApmPanel + {...props.cluster.apm} + setupMode={props.setupMode} + alerts={filterAlertStates(props.alerts, (type, { state }) => { + if (type === ALERT_MISSING_MONITORING_DATA) { + return state.stackProduct === APM_SYSTEM_ID; + } + return true; + })} + /> </EuiPageBody> </EuiPage> ); diff --git a/x-pack/plugins/monitoring/public/components/cluster/overview/kibana_panel.js b/x-pack/plugins/monitoring/public/components/cluster/overview/kibana_panel.js index 7df0a3ca7138e..1f20684bd97d7 100644 --- a/x-pack/plugins/monitoring/public/components/cluster/overview/kibana_panel.js +++ b/x-pack/plugins/monitoring/public/components/cluster/overview/kibana_panel.js @@ -28,14 +28,18 @@ import { import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; import { SetupModeTooltip } from '../../setup_mode/tooltip'; -import { KIBANA_SYSTEM_ID, ALERT_KIBANA_VERSION_MISMATCH } from '../../../../common/constants'; +import { + KIBANA_SYSTEM_ID, + ALERT_KIBANA_VERSION_MISMATCH, + ALERT_MISSING_MONITORING_DATA, +} from '../../../../common/constants'; import { getSafeForExternalLink } from '../../../lib/get_safe_for_external_link'; import { AlertsBadge } from '../../../alerts/badge'; import { shouldShowAlertBadge } from '../../../alerts/lib/should_show_alert_badge'; import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode'; import { SetupModeFeature } from '../../../../common/enums'; -const INSTANCES_PANEL_ALERTS = [ALERT_KIBANA_VERSION_MISMATCH]; +const INSTANCES_PANEL_ALERTS = [ALERT_KIBANA_VERSION_MISMATCH, ALERT_MISSING_MONITORING_DATA]; export function KibanaPanel(props) { const setupMode = props.setupMode; diff --git a/x-pack/plugins/monitoring/public/components/cluster/overview/logstash_panel.js b/x-pack/plugins/monitoring/public/components/cluster/overview/logstash_panel.js index 2c61438dca17c..7c0e04ab5d615 100644 --- a/x-pack/plugins/monitoring/public/components/cluster/overview/logstash_panel.js +++ b/x-pack/plugins/monitoring/public/components/cluster/overview/logstash_panel.js @@ -15,6 +15,7 @@ import { LOGSTASH, LOGSTASH_SYSTEM_ID, ALERT_LOGSTASH_VERSION_MISMATCH, + ALERT_MISSING_MONITORING_DATA, } from '../../../../common/constants'; import { @@ -40,7 +41,7 @@ import { shouldShowAlertBadge } from '../../../alerts/lib/should_show_alert_badg import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode'; import { SetupModeFeature } from '../../../../common/enums'; -const NODES_PANEL_ALERTS = [ALERT_LOGSTASH_VERSION_MISMATCH]; +const NODES_PANEL_ALERTS = [ALERT_LOGSTASH_VERSION_MISMATCH, ALERT_MISSING_MONITORING_DATA]; export function LogstashPanel(props) { const { setupMode } = props; diff --git a/x-pack/plugins/monitoring/public/components/elasticsearch/node/node.js b/x-pack/plugins/monitoring/public/components/elasticsearch/node/node.js index ac1a5212a8d26..47e30b71e03d0 100644 --- a/x-pack/plugins/monitoring/public/components/elasticsearch/node/node.js +++ b/x-pack/plugins/monitoring/public/components/elasticsearch/node/node.js @@ -73,11 +73,22 @@ export const Node = ({ <NodeDetailStatus stats={nodeSummary} alerts={alerts} - alertsStateFilter={(state) => state.nodeId === nodeId} + alertsStateFilter={(state) => + state.nodeId === nodeId || state.stackProductUuid === nodeId + } /> </EuiPanel> <EuiSpacer size="m" /> - <AlertsCallout alerts={alerts} stateFilter={(state) => state.nodeId === nodeId} /> + <AlertsCallout + alerts={alerts} + stateFilter={(state) => state.nodeId === nodeId || state.stackProductUuid === nodeId} + nextStepsFilter={(nextStep) => { + if (nextStep.text.includes('Elasticsearch nodes')) { + return false; + } + return true; + }} + /> <EuiPageContent> <EuiFlexGrid columns={2} gutterSize="s"> {metricsToShow.map((metric, index) => ( diff --git a/x-pack/plugins/monitoring/public/components/elasticsearch/nodes/nodes.js b/x-pack/plugins/monitoring/public/components/elasticsearch/nodes/nodes.js index f088f7c0d348a..41d3a579db5a2 100644 --- a/x-pack/plugins/monitoring/public/components/elasticsearch/nodes/nodes.js +++ b/x-pack/plugins/monitoring/public/components/elasticsearch/nodes/nodes.js @@ -137,7 +137,15 @@ const getColumns = (showCgroupMetricsElasticsearch, setupMode, clusterUuid, aler <AlertsStatus showBadge={true} alerts={alerts} - stateFilter={(state) => state.nodeId === node.resolver} + stateFilter={(state) => + state.nodeId === node.resolver || state.stackProductUuid === node.resolver + } + nextStepsFilter={(nextStep) => { + if (nextStep.text.includes('Elasticsearch nodes')) { + return false; + } + return true; + }} /> ); }, diff --git a/x-pack/plugins/monitoring/public/components/kibana/instances/instances.js b/x-pack/plugins/monitoring/public/components/kibana/instances/instances.js index 10ad1634eda86..8095337dd3796 100644 --- a/x-pack/plugins/monitoring/public/components/kibana/instances/instances.js +++ b/x-pack/plugins/monitoring/public/components/kibana/instances/instances.js @@ -91,7 +91,18 @@ const getColumns = (setupMode, alerts) => { width: '175px', sortable: true, render: () => { - return <AlertsStatus showBadge={true} alerts={alerts} />; + return ( + <AlertsStatus + showBadge={true} + alerts={alerts} + nextStepsFilter={(nextStep) => { + if (nextStep.text.includes('Kibana instances')) { + return false; + } + return true; + }} + /> + ); }, }, { diff --git a/x-pack/plugins/monitoring/public/components/logstash/listing/listing.js b/x-pack/plugins/monitoring/public/components/logstash/listing/listing.js index 4a1137079ebb4..a5db433bbfe0a 100644 --- a/x-pack/plugins/monitoring/public/components/logstash/listing/listing.js +++ b/x-pack/plugins/monitoring/public/components/logstash/listing/listing.js @@ -84,7 +84,18 @@ export class Listing extends PureComponent { width: '175px', sortable: true, render: () => { - return <AlertsStatus showBadge={true} alerts={alerts} />; + return ( + <AlertsStatus + showBadge={true} + alerts={alerts} + nextStepsFilter={(nextStep) => { + if (nextStep.text.includes('Logstash nodes')) { + return false; + } + return true; + }} + /> + ); }, }, { diff --git a/x-pack/plugins/monitoring/public/plugin.ts b/x-pack/plugins/monitoring/public/plugin.ts index a9c26ca7103a2..f4f66185346e8 100644 --- a/x-pack/plugins/monitoring/public/plugin.ts +++ b/x-pack/plugins/monitoring/public/plugin.ts @@ -23,6 +23,7 @@ import { DEFAULT_APP_CATEGORIES } from '../../../../src/core/public'; import { MonitoringStartPluginDependencies, MonitoringConfig } from './types'; import { TriggersAndActionsUIPublicPluginSetup } from '../../triggers_actions_ui/public'; import { createCpuUsageAlertType } from './alerts/cpu_usage_alert'; +import { createMissingMonitoringDataAlertType } from './alerts/missing_monitoring_data_alert'; import { createLegacyAlertTypes } from './alerts/legacy_alert'; import { createDiskUsageAlertType } from './alerts/disk_usage_alert'; @@ -72,6 +73,7 @@ export class MonitoringPlugin } plugins.triggers_actions_ui.alertTypeRegistry.register(createCpuUsageAlertType()); + plugins.triggers_actions_ui.alertTypeRegistry.register(createMissingMonitoringDataAlertType()); plugins.triggers_actions_ui.alertTypeRegistry.register(createDiskUsageAlertType()); const legacyAlertTypes = createLegacyAlertTypes(); for (const legacyAlertType of legacyAlertTypes) { diff --git a/x-pack/plugins/monitoring/public/views/apm/instance/index.js b/x-pack/plugins/monitoring/public/views/apm/instance/index.js index 752128782194e..396d4651e0c5e 100644 --- a/x-pack/plugins/monitoring/public/views/apm/instance/index.js +++ b/x-pack/plugins/monitoring/public/views/apm/instance/index.js @@ -18,7 +18,11 @@ import { routeInitProvider } from '../../../lib/route_init'; import template from './index.html'; import { MonitoringViewBaseController } from '../../base_controller'; import { ApmServerInstance } from '../../../components/apm/instance'; -import { CODE_PATH_APM } from '../../../../common/constants'; +import { + CODE_PATH_APM, + ALERT_MISSING_MONITORING_DATA, + APM_SYSTEM_ID, +} from '../../../../common/constants'; uiRoutes.when('/apm/instances/:uuid', { template, @@ -50,6 +54,17 @@ uiRoutes.when('/apm/instances/:uuid', { reactNodeId: 'apmInstanceReact', $scope, $injector, + alerts: { + shouldFetch: true, + options: { + alertTypeIds: [ALERT_MISSING_MONITORING_DATA], + filters: [ + { + stackProduct: APM_SYSTEM_ID, + }, + ], + }, + }, }); $scope.$watch( @@ -69,6 +84,7 @@ uiRoutes.when('/apm/instances/:uuid', { summary={data.apmSummary || {}} metrics={data.metrics || {}} onBrush={this.onBrush} + alerts={this.alerts} zoomInfo={this.zoomInfo} /> ); diff --git a/x-pack/plugins/monitoring/public/views/apm/instances/index.js b/x-pack/plugins/monitoring/public/views/apm/instances/index.js index 1f5b089ea748e..75f3ded89a595 100644 --- a/x-pack/plugins/monitoring/public/views/apm/instances/index.js +++ b/x-pack/plugins/monitoring/public/views/apm/instances/index.js @@ -13,7 +13,11 @@ import template from './index.html'; import { ApmServerInstances } from '../../../components/apm/instances'; import { MonitoringViewBaseEuiTableController } from '../..'; import { SetupModeRenderer } from '../../../components/renderers'; -import { APM_SYSTEM_ID, CODE_PATH_APM } from '../../../../common/constants'; +import { + APM_SYSTEM_ID, + CODE_PATH_APM, + ALERT_MISSING_MONITORING_DATA, +} from '../../../../common/constants'; uiRoutes.when('/apm/instances', { template, @@ -47,6 +51,17 @@ uiRoutes.when('/apm/instances', { reactNodeId: 'apmInstancesReact', $scope, $injector, + alerts: { + shouldFetch: true, + options: { + alertTypeIds: [ALERT_MISSING_MONITORING_DATA], + filters: [ + { + stackProduct: APM_SYSTEM_ID, + }, + ], + }, + }, }); this.scope = $scope; @@ -67,6 +82,7 @@ uiRoutes.when('/apm/instances', { {flyoutComponent} <ApmServerInstances setupMode={setupMode} + alerts={this.alerts} apms={{ pagination, sorting, diff --git a/x-pack/plugins/monitoring/public/views/apm/overview/index.js b/x-pack/plugins/monitoring/public/views/apm/overview/index.js index 544fae39ee79d..12821ec432c24 100644 --- a/x-pack/plugins/monitoring/public/views/apm/overview/index.js +++ b/x-pack/plugins/monitoring/public/views/apm/overview/index.js @@ -12,7 +12,11 @@ import { routeInitProvider } from '../../../lib/route_init'; import template from './index.html'; import { MonitoringViewBaseController } from '../../base_controller'; import { ApmOverview } from '../../../components/apm/overview'; -import { CODE_PATH_APM } from '../../../../common/constants'; +import { + CODE_PATH_APM, + ALERT_MISSING_MONITORING_DATA, + APM_SYSTEM_ID, +} from '../../../../common/constants'; uiRoutes.when('/apm', { template, @@ -42,13 +46,29 @@ uiRoutes.when('/apm', { reactNodeId: 'apmOverviewReact', $scope, $injector, + alerts: { + shouldFetch: true, + options: { + alertTypeIds: [ALERT_MISSING_MONITORING_DATA], + filters: [ + { + stackProduct: APM_SYSTEM_ID, + }, + ], + }, + }, }); $scope.$watch( () => this.data, (data) => { this.renderReact( - <ApmOverview {...data} onBrush={this.onBrush} zoomInfo={this.zoomInfo} /> + <ApmOverview + alerts={this.alerts} + {...data} + onBrush={this.onBrush} + zoomInfo={this.zoomInfo} + /> ); } ); diff --git a/x-pack/plugins/monitoring/public/views/beats/beat/index.js b/x-pack/plugins/monitoring/public/views/beats/beat/index.js index 6cffae2479128..3e9e4e4b0373d 100644 --- a/x-pack/plugins/monitoring/public/views/beats/beat/index.js +++ b/x-pack/plugins/monitoring/public/views/beats/beat/index.js @@ -11,7 +11,11 @@ import { routeInitProvider } from '../../../lib/route_init'; import { MonitoringViewBaseController } from '../../'; import { getPageData } from './get_page_data'; import template from './index.html'; -import { CODE_PATH_BEATS } from '../../../../common/constants'; +import { + CODE_PATH_BEATS, + ALERT_MISSING_MONITORING_DATA, + BEATS_SYSTEM_ID, +} from '../../../../common/constants'; import { Beat } from '../../../components/beats/beat'; uiRoutes.when('/beats/beat/:beatUuid', { @@ -52,6 +56,17 @@ uiRoutes.when('/beats/beat/:beatUuid', { $scope, $injector, reactNodeId: 'monitoringBeatsInstanceApp', + alerts: { + shouldFetch: true, + options: { + alertTypeIds: [ALERT_MISSING_MONITORING_DATA], + filters: [ + { + stackProduct: BEATS_SYSTEM_ID, + }, + ], + }, + }, }); this.data = pageData; @@ -60,6 +75,7 @@ uiRoutes.when('/beats/beat/:beatUuid', { (data) => { this.renderReact( <Beat + alerts={this.alerts} summary={data.summary} metrics={data.metrics} onBrush={$scope.onBrush} diff --git a/x-pack/plugins/monitoring/public/views/beats/listing/index.js b/x-pack/plugins/monitoring/public/views/beats/listing/index.js index a1b2231901c54..f8f0749d6d30e 100644 --- a/x-pack/plugins/monitoring/public/views/beats/listing/index.js +++ b/x-pack/plugins/monitoring/public/views/beats/listing/index.js @@ -14,7 +14,11 @@ import template from './index.html'; import React, { Fragment } from 'react'; import { Listing } from '../../../components/beats/listing/listing'; import { SetupModeRenderer } from '../../../components/renderers'; -import { CODE_PATH_BEATS, BEATS_SYSTEM_ID } from '../../../../common/constants'; +import { + CODE_PATH_BEATS, + BEATS_SYSTEM_ID, + ALERT_MISSING_MONITORING_DATA, +} from '../../../../common/constants'; uiRoutes.when('/beats/beats', { template, @@ -46,6 +50,17 @@ uiRoutes.when('/beats/beats', { reactNodeId: 'monitoringBeatsInstancesApp', $scope, $injector, + alerts: { + shouldFetch: true, + options: { + alertTypeIds: [ALERT_MISSING_MONITORING_DATA], + filters: [ + { + stackProduct: BEATS_SYSTEM_ID, + }, + ], + }, + }, }); this.data = $route.current.locals.pageData; @@ -71,6 +86,7 @@ uiRoutes.when('/beats/beats', { <Listing stats={this.data.stats} data={this.data.listing} + alerts={this.alerts} setupMode={setupMode} sorting={this.sorting || sorting} pagination={this.pagination || pagination} diff --git a/x-pack/plugins/monitoring/public/views/beats/overview/index.js b/x-pack/plugins/monitoring/public/views/beats/overview/index.js index 6ecdc2bfadb7d..ef80d7e77fe6e 100644 --- a/x-pack/plugins/monitoring/public/views/beats/overview/index.js +++ b/x-pack/plugins/monitoring/public/views/beats/overview/index.js @@ -11,7 +11,11 @@ import { routeInitProvider } from '../../../lib/route_init'; import { MonitoringViewBaseController } from '../../'; import { getPageData } from './get_page_data'; import template from './index.html'; -import { CODE_PATH_BEATS } from '../../../../common/constants'; +import { + CODE_PATH_BEATS, + ALERT_MISSING_MONITORING_DATA, + BEATS_SYSTEM_ID, +} from '../../../../common/constants'; import { BeatsOverview } from '../../../components/beats/overview'; uiRoutes.when('/beats', { @@ -44,6 +48,17 @@ uiRoutes.when('/beats', { $scope, $injector, reactNodeId: 'monitoringBeatsOverviewApp', + alerts: { + shouldFetch: true, + options: { + alertTypeIds: [ALERT_MISSING_MONITORING_DATA], + filters: [ + { + stackProduct: BEATS_SYSTEM_ID, + }, + ], + }, + }, }); this.data = $route.current.locals.pageData; @@ -51,7 +66,12 @@ uiRoutes.when('/beats', { () => this.data, (data) => { this.renderReact( - <BeatsOverview {...data} onBrush={$scope.onBrush} zoomInfo={$scope.zoomInfo} /> + <BeatsOverview + {...data} + alerts={this.alerts} + onBrush={$scope.onBrush} + zoomInfo={$scope.zoomInfo} + /> ); } ); diff --git a/x-pack/plugins/monitoring/public/views/elasticsearch/node/advanced/index.js b/x-pack/plugins/monitoring/public/views/elasticsearch/node/advanced/index.js index 8c30e4a2c1b07..ff7f29c58b2f6 100644 --- a/x-pack/plugins/monitoring/public/views/elasticsearch/node/advanced/index.js +++ b/x-pack/plugins/monitoring/public/views/elasticsearch/node/advanced/index.js @@ -20,6 +20,7 @@ import { MonitoringViewBaseController } from '../../../base_controller'; import { CODE_PATH_ELASTICSEARCH, ALERT_CPU_USAGE, + ALERT_MISSING_MONITORING_DATA, ALERT_DISK_USAGE, } from '../../../../../common/constants'; @@ -71,7 +72,7 @@ uiRoutes.when('/elasticsearch/nodes/:node/advanced', { alerts: { shouldFetch: true, options: { - alertTypeIds: [ALERT_CPU_USAGE, ALERT_DISK_USAGE], + alertTypeIds: [ALERT_CPU_USAGE, ALERT_DISK_USAGE, ALERT_MISSING_MONITORING_DATA], filters: [ { nodeUuid: nodeName, diff --git a/x-pack/plugins/monitoring/public/views/elasticsearch/node/index.js b/x-pack/plugins/monitoring/public/views/elasticsearch/node/index.js index ed2603e6dfff3..15b9b7b4c0e4a 100644 --- a/x-pack/plugins/monitoring/public/views/elasticsearch/node/index.js +++ b/x-pack/plugins/monitoring/public/views/elasticsearch/node/index.js @@ -21,6 +21,7 @@ import { MonitoringViewBaseController } from '../../base_controller'; import { CODE_PATH_ELASTICSEARCH, ALERT_CPU_USAGE, + ALERT_MISSING_MONITORING_DATA, ALERT_DISK_USAGE, } from '../../../../common/constants'; @@ -55,7 +56,7 @@ uiRoutes.when('/elasticsearch/nodes/:node', { alerts: { shouldFetch: true, options: { - alertTypeIds: [ALERT_CPU_USAGE, ALERT_DISK_USAGE], + alertTypeIds: [ALERT_CPU_USAGE, ALERT_DISK_USAGE, ALERT_MISSING_MONITORING_DATA], filters: [ { nodeUuid: nodeName, diff --git a/x-pack/plugins/monitoring/public/views/elasticsearch/nodes/index.js b/x-pack/plugins/monitoring/public/views/elasticsearch/nodes/index.js index 66fcac43e4fc5..ef807bf9b377d 100644 --- a/x-pack/plugins/monitoring/public/views/elasticsearch/nodes/index.js +++ b/x-pack/plugins/monitoring/public/views/elasticsearch/nodes/index.js @@ -19,6 +19,7 @@ import { ELASTICSEARCH_SYSTEM_ID, CODE_PATH_ELASTICSEARCH, ALERT_CPU_USAGE, + ALERT_MISSING_MONITORING_DATA, ALERT_DISK_USAGE, } from '../../../../common/constants'; @@ -87,7 +88,12 @@ uiRoutes.when('/elasticsearch/nodes', { alerts: { shouldFetch: true, options: { - alertTypeIds: [ALERT_CPU_USAGE, ALERT_DISK_USAGE], + alertTypeIds: [ALERT_CPU_USAGE, ALERT_DISK_USAGE, ALERT_MISSING_MONITORING_DATA], + filters: [ + { + stackProduct: ELASTICSEARCH_SYSTEM_ID, + }, + ], }, }, }); diff --git a/x-pack/plugins/monitoring/public/views/kibana/instance/index.js b/x-pack/plugins/monitoring/public/views/kibana/instance/index.js index 20a1a51719415..29852501d1667 100644 --- a/x-pack/plugins/monitoring/public/views/kibana/instance/index.js +++ b/x-pack/plugins/monitoring/public/views/kibana/instance/index.js @@ -27,7 +27,12 @@ import { import { MonitoringTimeseriesContainer } from '../../../components/chart'; import { DetailStatus } from '../../../components/kibana/detail_status'; import { MonitoringViewBaseController } from '../../base_controller'; -import { CODE_PATH_KIBANA, ALERT_KIBANA_VERSION_MISMATCH } from '../../../../common/constants'; +import { + CODE_PATH_KIBANA, + ALERT_KIBANA_VERSION_MISMATCH, + ALERT_MISSING_MONITORING_DATA, + KIBANA_SYSTEM_ID, +} from '../../../../common/constants'; import { AlertsCallout } from '../../../alerts/callout'; function getPageData($injector) { @@ -76,7 +81,12 @@ uiRoutes.when('/kibana/instances/:uuid', { alerts: { shouldFetch: true, options: { - alertTypeIds: [ALERT_KIBANA_VERSION_MISMATCH], + alertTypeIds: [ALERT_KIBANA_VERSION_MISMATCH, ALERT_MISSING_MONITORING_DATA], + filters: [ + { + stackProduct: KIBANA_SYSTEM_ID, + }, + ], }, }, }); @@ -104,7 +114,15 @@ uiRoutes.when('/kibana/instances/:uuid', { <DetailStatus stats={data.kibanaSummary} /> </EuiPanel> <EuiSpacer size="m" /> - <AlertsCallout alerts={this.alerts} /> + <AlertsCallout + alerts={this.alerts} + nextStepsFilter={(nextStep) => { + if (nextStep.text.includes('Kibana instances')) { + return false; + } + return true; + }} + /> <EuiPageContent> <EuiFlexGrid columns={2} gutterSize="s"> <EuiFlexItem grow={true}> diff --git a/x-pack/plugins/monitoring/public/views/kibana/instances/index.js b/x-pack/plugins/monitoring/public/views/kibana/instances/index.js index 765e112a23305..fcb2ee53471a1 100644 --- a/x-pack/plugins/monitoring/public/views/kibana/instances/index.js +++ b/x-pack/plugins/monitoring/public/views/kibana/instances/index.js @@ -17,6 +17,7 @@ import { KIBANA_SYSTEM_ID, CODE_PATH_KIBANA, ALERT_KIBANA_VERSION_MISMATCH, + ALERT_MISSING_MONITORING_DATA, } from '../../../../common/constants'; uiRoutes.when('/kibana/instances', { @@ -46,7 +47,12 @@ uiRoutes.when('/kibana/instances', { alerts: { shouldFetch: true, options: { - alertTypeIds: [ALERT_KIBANA_VERSION_MISMATCH], + alertTypeIds: [ALERT_KIBANA_VERSION_MISMATCH, ALERT_MISSING_MONITORING_DATA], + filters: [ + { + stackProduct: KIBANA_SYSTEM_ID, + }, + ], }, }, }); diff --git a/x-pack/plugins/monitoring/public/views/logstash/node/advanced/index.js b/x-pack/plugins/monitoring/public/views/logstash/node/advanced/index.js index 0fc3cc47502cd..591db66b2698c 100644 --- a/x-pack/plugins/monitoring/public/views/logstash/node/advanced/index.js +++ b/x-pack/plugins/monitoring/public/views/logstash/node/advanced/index.js @@ -26,7 +26,13 @@ import { EuiFlexItem, } from '@elastic/eui'; import { MonitoringTimeseriesContainer } from '../../../../components/chart'; -import { CODE_PATH_LOGSTASH } from '../../../../../common/constants'; +import { + CODE_PATH_LOGSTASH, + ALERT_LOGSTASH_VERSION_MISMATCH, + ALERT_MISSING_MONITORING_DATA, + LOGSTASH_SYSTEM_ID, +} from '../../../../../common/constants'; +import { AlertsCallout } from '../../../../alerts/callout'; function getPageData($injector) { const $http = $injector.get('$http'); @@ -69,6 +75,17 @@ uiRoutes.when('/logstash/node/:uuid/advanced', { reactNodeId: 'monitoringLogstashNodeAdvancedApp', $scope, $injector, + alerts: { + shouldFetch: true, + options: { + alertTypeIds: [ALERT_LOGSTASH_VERSION_MISMATCH, ALERT_MISSING_MONITORING_DATA], + filters: [ + { + stackProduct: LOGSTASH_SYSTEM_ID, + }, + ], + }, + }, telemetryPageViewTitle: 'logstash_node_advanced', }); @@ -112,6 +129,15 @@ uiRoutes.when('/logstash/node/:uuid/advanced', { <DetailStatus stats={data.nodeSummary} /> </EuiPanel> <EuiSpacer size="m" /> + <AlertsCallout + alerts={this.alerts} + nextStepsFilter={(nextStep) => { + if (nextStep.text.includes('Logstash nodes')) { + return false; + } + return true; + }} + /> <EuiPageContent> <EuiFlexGrid columns={2} gutterSize="s"> {metricsToShow.map((metric, index) => ( diff --git a/x-pack/plugins/monitoring/public/views/logstash/node/index.js b/x-pack/plugins/monitoring/public/views/logstash/node/index.js index e2dee77133c72..cccae6913052a 100644 --- a/x-pack/plugins/monitoring/public/views/logstash/node/index.js +++ b/x-pack/plugins/monitoring/public/views/logstash/node/index.js @@ -26,7 +26,12 @@ import { } from '@elastic/eui'; import { MonitoringTimeseriesContainer } from '../../../components/chart'; import { MonitoringViewBaseController } from '../../base_controller'; -import { CODE_PATH_LOGSTASH, ALERT_LOGSTASH_VERSION_MISMATCH } from '../../../../common/constants'; +import { + CODE_PATH_LOGSTASH, + ALERT_LOGSTASH_VERSION_MISMATCH, + ALERT_MISSING_MONITORING_DATA, + LOGSTASH_SYSTEM_ID, +} from '../../../../common/constants'; import { AlertsCallout } from '../../../alerts/callout'; function getPageData($injector) { @@ -73,7 +78,12 @@ uiRoutes.when('/logstash/node/:uuid', { alerts: { shouldFetch: true, options: { - alertTypeIds: [ALERT_LOGSTASH_VERSION_MISMATCH], + alertTypeIds: [ALERT_LOGSTASH_VERSION_MISMATCH, ALERT_MISSING_MONITORING_DATA], + filters: [ + { + stackProduct: LOGSTASH_SYSTEM_ID, + }, + ], }, }, telemetryPageViewTitle: 'logstash_node', @@ -120,7 +130,15 @@ uiRoutes.when('/logstash/node/:uuid', { <DetailStatus stats={data.nodeSummary} /> </EuiPanel> <EuiSpacer size="m" /> - <AlertsCallout alerts={this.alerts} /> + <AlertsCallout + alerts={this.alerts} + nextStepsFilter={(nextStep) => { + if (nextStep.text.includes('Logstash nodes')) { + return false; + } + return true; + }} + /> <EuiPageContent> <EuiFlexGrid columns={2} gutterSize="s"> {metricsToShow.map((metric, index) => ( diff --git a/x-pack/plugins/monitoring/public/views/logstash/nodes/index.js b/x-pack/plugins/monitoring/public/views/logstash/nodes/index.js index 6f2e47eb3f918..20b2f68e2c67e 100644 --- a/x-pack/plugins/monitoring/public/views/logstash/nodes/index.js +++ b/x-pack/plugins/monitoring/public/views/logstash/nodes/index.js @@ -16,6 +16,7 @@ import { CODE_PATH_LOGSTASH, LOGSTASH_SYSTEM_ID, ALERT_LOGSTASH_VERSION_MISMATCH, + ALERT_MISSING_MONITORING_DATA, } from '../../../../common/constants'; uiRoutes.when('/logstash/nodes', { @@ -45,7 +46,12 @@ uiRoutes.when('/logstash/nodes', { alerts: { shouldFetch: true, options: { - alertTypeIds: [ALERT_LOGSTASH_VERSION_MISMATCH], + alertTypeIds: [ALERT_LOGSTASH_VERSION_MISMATCH, ALERT_MISSING_MONITORING_DATA], + filters: [ + { + stackProduct: LOGSTASH_SYSTEM_ID, + }, + ], }, }, }); diff --git a/x-pack/plugins/monitoring/server/alerts/alerts_factory.test.ts b/x-pack/plugins/monitoring/server/alerts/alerts_factory.test.ts index 60693eb42a30e..ddc8dcafebd21 100644 --- a/x-pack/plugins/monitoring/server/alerts/alerts_factory.test.ts +++ b/x-pack/plugins/monitoring/server/alerts/alerts_factory.test.ts @@ -63,6 +63,6 @@ describe('AlertsFactory', () => { it('should get all', () => { const alerts = AlertsFactory.getAll(); - expect(alerts.length).toBe(8); + expect(alerts.length).toBe(9); }); }); diff --git a/x-pack/plugins/monitoring/server/alerts/alerts_factory.ts b/x-pack/plugins/monitoring/server/alerts/alerts_factory.ts index 6b1c0d5fffe18..05a92cea5469b 100644 --- a/x-pack/plugins/monitoring/server/alerts/alerts_factory.ts +++ b/x-pack/plugins/monitoring/server/alerts/alerts_factory.ts @@ -6,6 +6,7 @@ import { CpuUsageAlert, + MissingMonitoringDataAlert, DiskUsageAlert, NodesChangedAlert, ClusterHealthAlert, @@ -19,6 +20,7 @@ import { ALERT_CLUSTER_HEALTH, ALERT_LICENSE_EXPIRATION, ALERT_CPU_USAGE, + ALERT_MISSING_MONITORING_DATA, ALERT_DISK_USAGE, ALERT_NODES_CHANGED, ALERT_LOGSTASH_VERSION_MISMATCH, @@ -31,6 +33,7 @@ export const BY_TYPE = { [ALERT_CLUSTER_HEALTH]: ClusterHealthAlert, [ALERT_LICENSE_EXPIRATION]: LicenseExpirationAlert, [ALERT_CPU_USAGE]: CpuUsageAlert, + [ALERT_MISSING_MONITORING_DATA]: MissingMonitoringDataAlert, [ALERT_DISK_USAGE]: DiskUsageAlert, [ALERT_NODES_CHANGED]: NodesChangedAlert, [ALERT_LOGSTASH_VERSION_MISMATCH]: LogstashVersionMismatchAlert, diff --git a/x-pack/plugins/monitoring/server/alerts/base_alert.ts b/x-pack/plugins/monitoring/server/alerts/base_alert.ts index aff84710d27ad..61486626040f7 100644 --- a/x-pack/plugins/monitoring/server/alerts/base_alert.ts +++ b/x-pack/plugins/monitoring/server/alerts/base_alert.ts @@ -198,6 +198,15 @@ export class BaseAlert { const alertInstance: RawAlertInstance = states.alertInstances[instanceId]; if (alertInstance && this.filterAlertInstance(alertInstance, filters)) { accum[instanceId] = alertInstance; + if (alertInstance.state) { + accum[instanceId].state = { + alertStates: (alertInstance.state as AlertInstanceState).alertStates.filter( + (alertState: AlertState) => { + return this.filterAlertState(alertState, filters); + } + ), + }; + } } return accum; }, @@ -209,6 +218,10 @@ export class BaseAlert { return true; } + protected filterAlertState(alertState: AlertState, filters: CommonAlertFilter[]) { + return true; + } + protected async execute({ services, params, state }: AlertExecutorOptions): Promise<any> { const logger = this.getLogger(this.type); logger.debug( @@ -226,13 +239,7 @@ export class BaseAlert { return await mbSafeQuery(async () => _callCluster(endpoint, clientParams, options)); }; const availableCcs = this.config.ui.ccs.enabled ? await fetchAvailableCcs(callCluster) : []; - // Support CCS use cases by querying to find available remote clusters - // and then adding those to the index pattern we are searching against - let esIndexPattern = appendMetricbeatIndex(this.config, INDEX_PATTERN_ELASTICSEARCH); - if (availableCcs) { - esIndexPattern = getCcsIndexPattern(esIndexPattern, availableCcs); - } - const clusters = await fetchClusters(callCluster, esIndexPattern); + const clusters = await this.fetchClusters(callCluster, availableCcs, params); const uiSettings = (await this.getUiSettingsService()).asScopedToClient( services.savedObjectsClient ); @@ -241,6 +248,26 @@ export class BaseAlert { return await this.processData(data, clusters, services, logger, state); } + protected async fetchClusters( + callCluster: any, + availableCcs: string[] | undefined = undefined, + params: CommonAlertParams + ) { + let ccs; + if (!availableCcs) { + ccs = this.config.ui.ccs.enabled ? await fetchAvailableCcs(callCluster) : undefined; + } else { + ccs = availableCcs; + } + // Support CCS use cases by querying to find available remote clusters + // and then adding those to the index pattern we are searching against + let esIndexPattern = appendMetricbeatIndex(this.config, INDEX_PATTERN_ELASTICSEARCH); + if (ccs) { + esIndexPattern = getCcsIndexPattern(esIndexPattern, ccs); + } + return await fetchClusters(callCluster, esIndexPattern); + } + protected async fetchData( params: CommonAlertParams, callCluster: any, diff --git a/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.ts b/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.ts index 4228354f52748..ca9674c57216b 100644 --- a/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.ts +++ b/x-pack/plugins/monitoring/server/alerts/cpu_usage_alert.ts @@ -26,7 +26,7 @@ import { RawAlertInstance } from '../../../alerts/common'; import { parseDuration } from '../../../alerts/common/parse_duration'; import { CommonAlertFilter, - CommonAlertCpuUsageFilter, + CommonAlertNodeUuidFilter, CommonAlertParams, CommonAlertParamDetail, } from '../../common/types'; @@ -129,7 +129,7 @@ export class CpuUsageAlert extends BaseAlert { const alertInstanceState = (alertInstance.state as unknown) as AlertInstanceState; if (filters && filters.length) { for (const _filter of filters) { - const filter = _filter as CommonAlertCpuUsageFilter; + const filter = _filter as CommonAlertNodeUuidFilter; if (filter && filter.nodeUuid) { let nodeExistsInStates = false; for (const state of alertInstanceState.alertStates) { diff --git a/x-pack/plugins/monitoring/server/alerts/index.ts b/x-pack/plugins/monitoring/server/alerts/index.ts index 8fdac65514477..41f6daa38d1dc 100644 --- a/x-pack/plugins/monitoring/server/alerts/index.ts +++ b/x-pack/plugins/monitoring/server/alerts/index.ts @@ -6,6 +6,7 @@ export { BaseAlert } from './base_alert'; export { CpuUsageAlert } from './cpu_usage_alert'; +export { MissingMonitoringDataAlert } from './missing_monitoring_data_alert'; export { DiskUsageAlert } from './disk_usage_alert'; export { ClusterHealthAlert } from './cluster_health_alert'; export { LicenseExpirationAlert } from './license_expiration_alert'; diff --git a/x-pack/plugins/monitoring/server/alerts/missing_monitoring_data_alert.test.ts b/x-pack/plugins/monitoring/server/alerts/missing_monitoring_data_alert.test.ts new file mode 100644 index 0000000000000..4c06d9718c455 --- /dev/null +++ b/x-pack/plugins/monitoring/server/alerts/missing_monitoring_data_alert.test.ts @@ -0,0 +1,459 @@ +/* + * 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 { MissingMonitoringDataAlert } from './missing_monitoring_data_alert'; +import { ALERT_MISSING_MONITORING_DATA } from '../../common/constants'; +import { fetchMissingMonitoringData } from '../lib/alerts/fetch_missing_monitoring_data'; +import { fetchClusters } from '../lib/alerts/fetch_clusters'; + +const RealDate = Date; + +jest.mock('../lib/alerts/fetch_missing_monitoring_data', () => ({ + fetchMissingMonitoringData: jest.fn(), +})); +jest.mock('../lib/alerts/fetch_clusters', () => ({ + fetchClusters: jest.fn(), +})); + +describe('MissingMonitoringDataAlert', () => { + it('should have defaults', () => { + const alert = new MissingMonitoringDataAlert(); + expect(alert.type).toBe(ALERT_MISSING_MONITORING_DATA); + expect(alert.label).toBe('Missing monitoring data'); + expect(alert.defaultThrottle).toBe('1d'); + // @ts-ignore + expect(alert.defaultParams).toStrictEqual({ limit: '1d', duration: '5m' }); + // @ts-ignore + expect(alert.actionVariables).toStrictEqual([ + { name: 'stackProducts', description: 'The stack products missing monitoring data.' }, + { name: 'count', description: 'The number of stack products missing monitoring data.' }, + { + name: 'internalShortMessage', + description: 'The short internal message generated by Elastic.', + }, + { + name: 'internalFullMessage', + description: 'The full internal message generated by Elastic.', + }, + { name: 'state', description: 'The current state of the alert.' }, + { name: 'clusterName', description: 'The cluster to which the nodes belong.' }, + { name: 'action', description: 'The recommended action for this alert.' }, + { + name: 'actionPlain', + description: 'The recommended action for this alert, without any markdown.', + }, + ]); + }); + + describe('execute', () => { + function FakeDate() {} + FakeDate.prototype.valueOf = () => 1; + + const clusterUuid = 'abc123'; + const clusterName = 'testCluster'; + const stackProduct = 'elasticsearch'; + const stackProductUuid = 'esNode1'; + const stackProductName = 'esName1'; + const gapDuration = 3000001; + const missingData = [ + { + stackProduct, + stackProductUuid, + stackProductName, + clusterUuid, + gapDuration, + }, + { + stackProduct: 'kibana', + stackProductUuid: 'kibanaUuid1', + stackProductName: 'kibanaInstance1', + clusterUuid, + gapDuration: gapDuration + 10, + }, + ]; + const getUiSettingsService = () => ({ + asScopedToClient: jest.fn(), + }); + const getLogger = () => ({ + debug: jest.fn(), + }); + const monitoringCluster = null; + const config = { + ui: { + ccs: { enabled: true }, + container: { elasticsearch: { enabled: false } }, + metricbeat: { index: 'metricbeat-*' }, + }, + }; + const kibanaUrl = 'http://localhost:5601'; + + const replaceState = jest.fn(); + const scheduleActions = jest.fn(); + const getState = jest.fn(); + const executorOptions = { + services: { + callCluster: jest.fn(), + alertInstanceFactory: jest.fn().mockImplementation(() => { + return { + replaceState, + scheduleActions, + getState, + }; + }), + }, + state: {}, + }; + + beforeEach(() => { + // @ts-ignore + Date = FakeDate; + (fetchMissingMonitoringData as jest.Mock).mockImplementation(() => { + return missingData; + }); + (fetchClusters as jest.Mock).mockImplementation(() => { + return [{ clusterUuid, clusterName }]; + }); + }); + + afterEach(() => { + Date = RealDate; + replaceState.mockReset(); + scheduleActions.mockReset(); + getState.mockReset(); + }); + + it('should fire actions', async () => { + const alert = new MissingMonitoringDataAlert(); + alert.initializeAlertType( + getUiSettingsService as any, + monitoringCluster as any, + getLogger as any, + config as any, + kibanaUrl, + false + ); + const type = alert.getAlertType(); + await type.executor({ + ...executorOptions, + // @ts-ignore + params: alert.defaultParams, + } as any); + const count = 2; + expect(replaceState).toHaveBeenCalledWith({ + alertStates: [ + { + ccs: undefined, + cluster: { clusterUuid, clusterName }, + gapDuration, + stackProduct, + stackProductName, + stackProductUuid, + ui: { + isFiring: true, + message: { + text: + 'For the past an hour, we have not detected any monitoring data from the Elasticsearch node: esName1, starting at #absolute', + nextSteps: [ + { + text: '#start_linkView all Elasticsearch nodes#end_link', + tokens: [ + { + startToken: '#start_link', + endToken: '#end_link', + type: 'link', + url: 'elasticsearch/nodes', + }, + ], + }, + { + text: 'Verify monitoring settings on the node', + }, + ], + tokens: [ + { + startToken: '#absolute', + type: 'time', + isAbsolute: true, + isRelative: false, + timestamp: 1, + }, + ], + }, + severity: 'danger', + resolvedMS: 0, + triggeredMS: 1, + lastCheckedMS: 0, + }, + }, + { + ccs: undefined, + cluster: { clusterUuid, clusterName }, + gapDuration: gapDuration + 10, + stackProduct: 'kibana', + stackProductName: 'kibanaInstance1', + stackProductUuid: 'kibanaUuid1', + ui: { + isFiring: true, + message: { + text: + 'For the past an hour, we have not detected any monitoring data from the Kibana instance: kibanaInstance1, starting at #absolute', + nextSteps: [ + { + text: '#start_linkView all Kibana instances#end_link', + tokens: [ + { + startToken: '#start_link', + endToken: '#end_link', + type: 'link', + url: 'kibana/instances', + }, + ], + }, + { + text: 'Verify monitoring settings on the instance', + }, + ], + tokens: [ + { + startToken: '#absolute', + type: 'time', + isAbsolute: true, + isRelative: false, + timestamp: 1, + }, + ], + }, + severity: 'danger', + resolvedMS: 0, + triggeredMS: 1, + lastCheckedMS: 0, + }, + }, + ], + }); + expect(scheduleActions).toHaveBeenCalledWith('default', { + internalFullMessage: `We have not detected any monitoring data for 2 stack product(s) in cluster: testCluster. [View what monitoring data we do have for these stack products.](http://localhost:5601/app/monitoring#overview?_g=(cluster_uuid:abc123))`, + internalShortMessage: `We have not detected any monitoring data for 2 stack product(s) in cluster: testCluster. Verify these stack products are up and running, then double check the monitoring settings.`, + action: `[View what monitoring data we do have for these stack products.](http://localhost:5601/app/monitoring#overview?_g=(cluster_uuid:abc123))`, + actionPlain: + 'Verify these stack products are up and running, then double check the monitoring settings.', + clusterName, + count, + stackProducts: 'Elasticsearch node: esName1, Kibana instance: kibanaInstance1', + state: 'firing', + }); + }); + + it('should not fire actions if under threshold', async () => { + (fetchMissingMonitoringData as jest.Mock).mockImplementation(() => { + return [ + { + ...missingData[0], + gapDuration: 1, + }, + ]; + }); + const alert = new MissingMonitoringDataAlert(); + alert.initializeAlertType( + getUiSettingsService as any, + monitoringCluster as any, + getLogger as any, + config as any, + kibanaUrl, + false + ); + const type = alert.getAlertType(); + await type.executor({ + ...executorOptions, + // @ts-ignore + params: alert.defaultParams, + } as any); + expect(replaceState).toHaveBeenCalledWith({ + alertStates: [ + { + cluster: { + clusterUuid, + clusterName, + }, + gapDuration: 1, + stackProduct, + stackProductName, + stackProductUuid, + ui: { + isFiring: false, + lastCheckedMS: 0, + message: null, + resolvedMS: 0, + severity: 'danger', + triggeredMS: 0, + }, + }, + ], + }); + expect(scheduleActions).not.toHaveBeenCalled(); + }); + + it('should resolve with a resolved message', async () => { + (fetchMissingMonitoringData as jest.Mock).mockImplementation(() => { + return [ + { + ...missingData[0], + gapDuration: 1, + }, + ]; + }); + (getState as jest.Mock).mockImplementation(() => { + return { + alertStates: [ + { + cluster: { + clusterUuid, + clusterName, + }, + ccs: null, + gapDuration: 1, + stackProduct, + stackProductName, + stackProductUuid, + ui: { + isFiring: true, + message: null, + severity: 'danger', + resolvedMS: 0, + triggeredMS: 1, + lastCheckedMS: 0, + }, + }, + ], + }; + }); + const alert = new MissingMonitoringDataAlert(); + alert.initializeAlertType( + getUiSettingsService as any, + monitoringCluster as any, + getLogger as any, + config as any, + kibanaUrl, + false + ); + const type = alert.getAlertType(); + await type.executor({ + ...executorOptions, + // @ts-ignore + params: alert.defaultParams, + } as any); + const count = 1; + expect(replaceState).toHaveBeenCalledWith({ + alertStates: [ + { + cluster: { clusterUuid, clusterName }, + ccs: null, + gapDuration: 1, + stackProduct, + stackProductName, + stackProductUuid, + ui: { + isFiring: false, + message: { + text: + 'We are now seeing monitoring data for the Elasticsearch node: esName1, as of #resolved', + tokens: [ + { + startToken: '#resolved', + type: 'time', + isAbsolute: true, + isRelative: false, + timestamp: 1, + }, + ], + }, + severity: 'danger', + resolvedMS: 1, + triggeredMS: 1, + lastCheckedMS: 0, + }, + }, + ], + }); + expect(scheduleActions).toHaveBeenCalledWith('default', { + internalFullMessage: `We are now seeing monitoring data for 1 stack product(s) in cluster testCluster.`, + internalShortMessage: `We are now seeing monitoring data for 1 stack product(s) in cluster: testCluster.`, + clusterName, + count, + stackProducts: 'Elasticsearch node: esName1', + state: 'resolved', + }); + }); + + it('should handle ccs', async () => { + const ccs = 'testCluster'; + (fetchMissingMonitoringData as jest.Mock).mockImplementation(() => { + return [ + { + ...missingData[0], + ccs, + }, + ]; + }); + const alert = new MissingMonitoringDataAlert(); + alert.initializeAlertType( + getUiSettingsService as any, + monitoringCluster as any, + getLogger as any, + config as any, + kibanaUrl, + false + ); + const type = alert.getAlertType(); + await type.executor({ + ...executorOptions, + // @ts-ignore + params: alert.defaultParams, + } as any); + const count = 1; + expect(scheduleActions).toHaveBeenCalledWith('default', { + internalFullMessage: `We have not detected any monitoring data for 1 stack product(s) in cluster: testCluster. [View what monitoring data we do have for these stack products.](http://localhost:5601/app/monitoring#overview?_g=(cluster_uuid:abc123,ccs:testCluster))`, + internalShortMessage: `We have not detected any monitoring data for 1 stack product(s) in cluster: testCluster. Verify these stack products are up and running, then double check the monitoring settings.`, + action: `[View what monitoring data we do have for these stack products.](http://localhost:5601/app/monitoring#overview?_g=(cluster_uuid:abc123,ccs:testCluster))`, + actionPlain: + 'Verify these stack products are up and running, then double check the monitoring settings.', + clusterName, + count, + stackProducts: 'Elasticsearch node: esName1', + state: 'firing', + }); + }); + + it('should fire with different messaging for cloud', async () => { + const alert = new MissingMonitoringDataAlert(); + alert.initializeAlertType( + getUiSettingsService as any, + monitoringCluster as any, + getLogger as any, + config as any, + kibanaUrl, + true + ); + const type = alert.getAlertType(); + await type.executor({ + ...executorOptions, + // @ts-ignore + params: alert.defaultParams, + } as any); + const count = 2; + expect(scheduleActions).toHaveBeenCalledWith('default', { + internalFullMessage: `We have not detected any monitoring data for 2 stack product(s) in cluster: testCluster. Verify these stack products are up and running, then double check the monitoring settings.`, + internalShortMessage: `We have not detected any monitoring data for 2 stack product(s) in cluster: testCluster. Verify these stack products are up and running, then double check the monitoring settings.`, + action: `[View what monitoring data we do have for these stack products.](http://localhost:5601/app/monitoring#overview?_g=(cluster_uuid:abc123))`, + actionPlain: + 'Verify these stack products are up and running, then double check the monitoring settings.', + clusterName, + count, + stackProducts: 'Elasticsearch node: esName1, Kibana instance: kibanaInstance1', + state: 'firing', + }); + }); + }); +}); diff --git a/x-pack/plugins/monitoring/server/alerts/missing_monitoring_data_alert.ts b/x-pack/plugins/monitoring/server/alerts/missing_monitoring_data_alert.ts new file mode 100644 index 0000000000000..6017314f332e6 --- /dev/null +++ b/x-pack/plugins/monitoring/server/alerts/missing_monitoring_data_alert.ts @@ -0,0 +1,504 @@ +/* + * 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 { IUiSettingsClient, Logger } from 'kibana/server'; +import { i18n } from '@kbn/i18n'; +import moment from 'moment'; +import { BaseAlert } from './base_alert'; +import { + AlertData, + AlertCluster, + AlertState, + AlertMessage, + AlertMissingDataState, + AlertMissingData, + AlertMessageTimeToken, + AlertInstanceState, +} from './types'; +import { AlertInstance, AlertServices } from '../../../alerts/server'; +import { + INDEX_PATTERN, + ALERT_MISSING_MONITORING_DATA, + INDEX_PATTERN_ELASTICSEARCH, +} from '../../common/constants'; +import { getCcsIndexPattern } from '../lib/alerts/get_ccs_index_pattern'; +import { AlertMessageTokenType, AlertSeverity, AlertParamType } from '../../common/enums'; +import { RawAlertInstance } from '../../../alerts/common'; +import { parseDuration } from '../../../alerts/common/parse_duration'; +import { + CommonAlertFilter, + CommonAlertParams, + CommonAlertParamDetail, + CommonAlertStackProductFilter, + CommonAlertNodeUuidFilter, +} from '../../common/types'; +import { appendMetricbeatIndex } from '../lib/alerts/append_mb_index'; +import { fetchMissingMonitoringData } from '../lib/alerts/fetch_missing_monitoring_data'; +import { getTypeLabelForStackProduct } from '../lib/alerts/get_type_label_for_stack_product'; +import { getListingLinkForStackProduct } from '../lib/alerts/get_listing_link_for_stack_product'; +import { getStackProductLabel } from '../lib/alerts/get_stack_product_label'; +import { fetchClusters } from '../lib/alerts/fetch_clusters'; +import { fetchAvailableCcs } from '../lib/alerts/fetch_available_ccs'; +import { AlertingDefaults, createLink } from './alerts_common'; + +const RESOLVED = i18n.translate('xpack.monitoring.alerts.missingData.resolved', { + defaultMessage: 'resolved', +}); +const FIRING = i18n.translate('xpack.monitoring.alerts.missingData.firing', { + defaultMessage: 'firing', +}); + +const DEFAULT_DURATION = '5m'; +const DEFAULT_LIMIT = '1d'; + +// Go a bit farther back because we need to detect the difference between seeing the monitoring data versus just not looking far enough back +const LIMIT_BUFFER = 3 * 60 * 1000; + +interface MissingDataParams { + duration: string; + limit: string; +} + +export class MissingMonitoringDataAlert extends BaseAlert { + public static paramDetails = { + duration: { + label: i18n.translate('xpack.monitoring.alerts.missingData.paramDetails.duration.label', { + defaultMessage: `Notify if monitoring data is missing for`, + }), + type: AlertParamType.Duration, + } as CommonAlertParamDetail, + limit: { + label: i18n.translate('xpack.monitoring.alerts.missingData.paramDetails.limit.label', { + defaultMessage: `Look this far back in time for monitoring data`, + }), + type: AlertParamType.Duration, + } as CommonAlertParamDetail, + }; + + public type = ALERT_MISSING_MONITORING_DATA; + public label = i18n.translate('xpack.monitoring.alerts.missingData.label', { + defaultMessage: 'Missing monitoring data', + }); + + protected defaultParams: MissingDataParams = { + duration: DEFAULT_DURATION, + limit: DEFAULT_LIMIT, + }; + + protected actionVariables = [ + { + name: 'stackProducts', + description: i18n.translate( + 'xpack.monitoring.alerts.missingData.actionVariables.stackProducts', + { + defaultMessage: 'The stack products missing monitoring data.', + } + ), + }, + { + name: 'count', + description: i18n.translate('xpack.monitoring.alerts.missingData.actionVariables.count', { + defaultMessage: 'The number of stack products missing monitoring data.', + }), + }, + ...Object.values(AlertingDefaults.ALERT_TYPE.context), + ]; + + protected async fetchClusters( + callCluster: any, + availableCcs: string[] | undefined = undefined, + params: CommonAlertParams + ) { + const limit = parseDuration(((params as unknown) as MissingDataParams).limit); + let ccs; + if (!availableCcs) { + ccs = this.config.ui.ccs.enabled ? await fetchAvailableCcs(callCluster) : undefined; + } else { + ccs = availableCcs; + } + // Support CCS use cases by querying to find available remote clusters + // and then adding those to the index pattern we are searching against + let esIndexPattern = appendMetricbeatIndex(this.config, INDEX_PATTERN_ELASTICSEARCH); + if (ccs) { + esIndexPattern = getCcsIndexPattern(esIndexPattern, ccs); + } + return await fetchClusters(callCluster, esIndexPattern, { + timestamp: { + format: 'epoch_millis', + gte: limit - LIMIT_BUFFER, + }, + }); + } + + protected async fetchData( + params: CommonAlertParams, + callCluster: any, + clusters: AlertCluster[], + uiSettings: IUiSettingsClient, + availableCcs: string[] + ): Promise<AlertData[]> { + let indexPattern = appendMetricbeatIndex(this.config, INDEX_PATTERN); + if (availableCcs) { + indexPattern = getCcsIndexPattern(indexPattern, availableCcs); + } + const duration = parseDuration(((params as unknown) as MissingDataParams).duration); + const limit = parseDuration(((params as unknown) as MissingDataParams).limit); + const now = +new Date(); + const missingData = await fetchMissingMonitoringData( + callCluster, + clusters, + indexPattern, + this.config.ui.max_bucket_size, + now, + now - limit - LIMIT_BUFFER + ); + return missingData.map((missing) => { + return { + instanceKey: `${missing.clusterUuid}:${missing.stackProduct}:${missing.stackProductUuid}`, + clusterUuid: missing.clusterUuid, + shouldFire: missing.gapDuration > duration, + severity: AlertSeverity.Danger, + meta: { missing, limit }, + ccs: missing.ccs, + }; + }); + } + + protected filterAlertInstance(alertInstance: RawAlertInstance, filters: CommonAlertFilter[]) { + const alertInstanceState = (alertInstance.state as unknown) as AlertInstanceState; + if (filters && filters.length) { + for (const filter of filters) { + const stackProductFilter = filter as CommonAlertStackProductFilter; + if (stackProductFilter && stackProductFilter.stackProduct) { + let existsInState = false; + for (const state of alertInstanceState.alertStates) { + if ((state as AlertMissingDataState).stackProduct === stackProductFilter.stackProduct) { + existsInState = true; + break; + } + } + if (!existsInState) { + return false; + } + } + } + } + return true; + } + + protected filterAlertState(alertState: AlertState, filters: CommonAlertFilter[]) { + const state = alertState as AlertMissingDataState; + if (filters && filters.length) { + for (const filter of filters) { + const stackProductFilter = filter as CommonAlertStackProductFilter; + if (stackProductFilter && stackProductFilter.stackProduct) { + if (state.stackProduct !== stackProductFilter.stackProduct) { + return false; + } + } + + const nodeUuidFilter = filter as CommonAlertNodeUuidFilter; + if (nodeUuidFilter && nodeUuidFilter.nodeUuid) { + if (state.stackProductUuid !== nodeUuidFilter.nodeUuid) { + return false; + } + } + } + } + return true; + } + + protected getDefaultAlertState(cluster: AlertCluster, item: AlertData): AlertState { + const base = super.getDefaultAlertState(cluster, item); + return { + ...base, + ui: { + ...base.ui, + severity: AlertSeverity.Danger, + }, + }; + } + + protected getUiMessage(alertState: AlertState, item: AlertData): AlertMessage { + const { missing, limit } = item.meta as { missing: AlertMissingData; limit: number }; + if (!alertState.ui.isFiring) { + if (missing.gapDuration > limit) { + return { + text: i18n.translate('xpack.monitoring.alerts.missingData.ui.notQuiteResolvedMessage', { + defaultMessage: `We are still not seeing monitoring data for the {stackProduct} {type}: {stackProductName} and will stop trying. To change this, configure the alert to look farther back for data.`, + values: { + stackProduct: getStackProductLabel(missing.stackProduct), + type: getTypeLabelForStackProduct(missing.stackProduct, false), + stackProductName: missing.stackProductName, + }, + }), + }; + } + return { + text: i18n.translate('xpack.monitoring.alerts.missingData.ui.resolvedMessage', { + defaultMessage: `We are now seeing monitoring data for the {stackProduct} {type}: {stackProductName}, as of #resolved`, + values: { + stackProduct: getStackProductLabel(missing.stackProduct), + type: getTypeLabelForStackProduct(missing.stackProduct, false), + stackProductName: missing.stackProductName, + }, + }), + tokens: [ + { + startToken: '#resolved', + type: AlertMessageTokenType.Time, + isAbsolute: true, + isRelative: false, + timestamp: alertState.ui.resolvedMS, + } as AlertMessageTimeToken, + ], + }; + } + return { + text: i18n.translate('xpack.monitoring.alerts.missingData.ui.firingMessage', { + defaultMessage: `For the past {gapDuration}, we have not detected any monitoring data from the {stackProduct} {type}: {stackProductName}, starting at #absolute`, + values: { + gapDuration: moment.duration(missing.gapDuration, 'milliseconds').humanize(), + stackProduct: getStackProductLabel(missing.stackProduct), + type: getTypeLabelForStackProduct(missing.stackProduct, false), + stackProductName: missing.stackProductName, + }, + }), + nextSteps: [ + createLink( + i18n.translate('xpack.monitoring.alerts.missingData.ui.nextSteps.viewAll', { + defaultMessage: `#start_linkView all {stackProduct} {type}#end_link`, + values: { + type: getTypeLabelForStackProduct(missing.stackProduct), + stackProduct: getStackProductLabel(missing.stackProduct), + }, + }), + getListingLinkForStackProduct(missing.stackProduct), + AlertMessageTokenType.Link + ), + { + text: i18n.translate('xpack.monitoring.alerts.missingData.ui.nextSteps.verifySettings', { + defaultMessage: `Verify monitoring settings on the {type}`, + values: { + type: getTypeLabelForStackProduct(missing.stackProduct, false), + }, + }), + }, + ], + tokens: [ + { + startToken: '#absolute', + type: AlertMessageTokenType.Time, + isAbsolute: true, + isRelative: false, + timestamp: alertState.ui.triggeredMS, + } as AlertMessageTimeToken, + ], + }; + } + + protected executeActions( + instance: AlertInstance, + instanceState: AlertInstanceState, + item: AlertData | null, + cluster: AlertCluster + ) { + if (instanceState.alertStates.length === 0) { + return; + } + + const ccs = instanceState.alertStates.reduce((accum: string, state): string => { + if (state.ccs) { + return state.ccs; + } + return accum; + }, ''); + + const firingCount = instanceState.alertStates.filter((alertState) => alertState.ui.isFiring) + .length; + const firingStackProducts = instanceState.alertStates + .filter((_state) => (_state as AlertMissingDataState).ui.isFiring) + .map((_state) => { + const state = _state as AlertMissingDataState; + return `${getStackProductLabel(state.stackProduct)} ${getTypeLabelForStackProduct( + state.stackProduct, + false + )}: ${state.stackProductName}`; + }) + .join(', '); + if (firingCount > 0) { + const shortActionText = i18n.translate('xpack.monitoring.alerts.missingData.shortAction', { + defaultMessage: + 'Verify these stack products are up and running, then double check the monitoring settings.', + }); + const fullActionText = i18n.translate('xpack.monitoring.alerts.missingData.fullAction', { + defaultMessage: 'View what monitoring data we do have for these stack products.', + }); + const globalState = [`cluster_uuid:${cluster.clusterUuid}`]; + if (ccs) { + globalState.push(`ccs:${ccs}`); + } + const url = `${this.kibanaUrl}/app/monitoring#overview?_g=(${globalState.join(',')})`; + const action = `[${fullActionText}](${url})`; + const internalShortMessage = i18n.translate( + 'xpack.monitoring.alerts.missingData.firing.internalShortMessage', + { + defaultMessage: `We have not detected any monitoring data for {count} stack product(s) in cluster: {clusterName}. {shortActionText}`, + values: { + count: firingCount, + clusterName: cluster.clusterName, + shortActionText, + }, + } + ); + const internalFullMessage = i18n.translate( + 'xpack.monitoring.alerts.missingData.firing.internalFullMessage', + { + defaultMessage: `We have not detected any monitoring data for {count} stack product(s) in cluster: {clusterName}. {action}`, + values: { + count: firingCount, + clusterName: cluster.clusterName, + action, + }, + } + ); + instance.scheduleActions('default', { + internalShortMessage, + internalFullMessage: this.isCloud ? internalShortMessage : internalFullMessage, + state: FIRING, + stackProducts: firingStackProducts, + count: firingCount, + clusterName: cluster.clusterName, + action, + actionPlain: shortActionText, + }); + } else { + const resolvedCount = instanceState.alertStates.filter( + (alertState) => !alertState.ui.isFiring + ).length; + const resolvedStackProducts = instanceState.alertStates + .filter((_state) => !(_state as AlertMissingDataState).ui.isFiring) + .map((_state) => { + const state = _state as AlertMissingDataState; + return `${getStackProductLabel(state.stackProduct)} ${getTypeLabelForStackProduct( + state.stackProduct, + false + )}: ${state.stackProductName}`; + }) + .join(','); + if (resolvedCount > 0) { + instance.scheduleActions('default', { + internalShortMessage: i18n.translate( + 'xpack.monitoring.alerts.missingData.resolved.internalShortMessage', + { + defaultMessage: `We are now seeing monitoring data for {count} stack product(s) in cluster: {clusterName}.`, + values: { + count: resolvedCount, + clusterName: cluster.clusterName, + }, + } + ), + internalFullMessage: i18n.translate( + 'xpack.monitoring.alerts.missingData.resolved.internalFullMessage', + { + defaultMessage: `We are now seeing monitoring data for {count} stack product(s) in cluster {clusterName}.`, + values: { + count: resolvedCount, + clusterName: cluster.clusterName, + }, + } + ), + state: RESOLVED, + stackProducts: resolvedStackProducts, + count: resolvedCount, + clusterName: cluster.clusterName, + }); + } + } + } + + protected async processData( + data: AlertData[], + clusters: AlertCluster[], + services: AlertServices, + logger: Logger + ) { + for (const cluster of clusters) { + const stackProducts = data.filter((_item) => _item.clusterUuid === cluster.clusterUuid); + if (stackProducts.length === 0) { + continue; + } + + const firingInstances = stackProducts.reduce((list: string[], stackProduct) => { + const { missing } = stackProduct.meta as { missing: AlertMissingData; limit: number }; + if (stackProduct.shouldFire) { + list.push(`${missing.stackProduct}:${missing.stackProductUuid}`); + } + return list; + }, [] as string[]); + firingInstances.sort(); // It doesn't matter how we sort, but keep the order consistent + const instanceId = `${this.type}:${cluster.clusterUuid}:${firingInstances.join(',')}`; + const instance = services.alertInstanceFactory(instanceId); + const instanceState = (instance.getState() as unknown) as AlertInstanceState; + const alertInstanceState: AlertInstanceState = { + alertStates: instanceState?.alertStates || [], + }; + let shouldExecuteActions = false; + for (const stackProduct of stackProducts) { + const { missing } = stackProduct.meta as { missing: AlertMissingData; limit: number }; + let state: AlertMissingDataState; + const indexInState = alertInstanceState.alertStates.findIndex((alertState) => { + const _alertState = alertState as AlertMissingDataState; + return ( + _alertState.cluster.clusterUuid === cluster.clusterUuid && + _alertState.stackProduct === missing.stackProduct && + _alertState.stackProductUuid === missing.stackProductUuid + ); + }); + if (indexInState > -1) { + state = alertInstanceState.alertStates[indexInState] as AlertMissingDataState; + } else { + state = this.getDefaultAlertState(cluster, stackProduct) as AlertMissingDataState; + } + + state.stackProduct = missing.stackProduct; + state.stackProductUuid = missing.stackProductUuid; + state.stackProductName = missing.stackProductName; + state.gapDuration = missing.gapDuration; + + if (stackProduct.shouldFire) { + if (!state.ui.isFiring) { + state.ui.triggeredMS = new Date().valueOf(); + } + state.ui.isFiring = true; + state.ui.message = this.getUiMessage(state, stackProduct); + state.ui.severity = stackProduct.severity; + state.ui.resolvedMS = 0; + shouldExecuteActions = true; + } else if (!stackProduct.shouldFire && state.ui.isFiring) { + state.ui.isFiring = false; + state.ui.resolvedMS = new Date().valueOf(); + state.ui.message = this.getUiMessage(state, stackProduct); + shouldExecuteActions = true; + } + + if (indexInState === -1) { + alertInstanceState.alertStates.push(state); + } else { + alertInstanceState.alertStates = [ + ...alertInstanceState.alertStates.slice(0, indexInState), + state, + ...alertInstanceState.alertStates.slice(indexInState + 1), + ]; + } + } + + instance.replaceState(alertInstanceState); + if (shouldExecuteActions) { + this.executeActions(instance, alertInstanceState, null, cluster); + } + } + } +} diff --git a/x-pack/plugins/monitoring/server/alerts/types.d.ts b/x-pack/plugins/monitoring/server/alerts/types.d.ts index b685dcaed790f..4b78bca9f47ca 100644 --- a/x-pack/plugins/monitoring/server/alerts/types.d.ts +++ b/x-pack/plugins/monitoring/server/alerts/types.d.ts @@ -28,6 +28,13 @@ export interface AlertCpuUsageState extends AlertState { nodeName: string; } +export interface AlertMissingDataState extends AlertState { + stackProduct: string; + stackProductUuid: string; + stackProductName: string; + gapDuration: number; +} + export interface AlertDiskUsageState extends AlertState { diskUsage: number; nodeId: string; @@ -93,6 +100,15 @@ export interface AlertDiskUsageNodeStats { ccs?: string; } +export interface AlertMissingData { + stackProduct: string; + stackProductUuid: string; + stackProductName: string; + clusterUuid: string; + gapDuration: number; + ccs?: string; +} + export interface AlertData { instanceKey: string; clusterUuid: string; diff --git a/x-pack/plugins/monitoring/server/lib/alerts/fetch_clusters.ts b/x-pack/plugins/monitoring/server/lib/alerts/fetch_clusters.ts index 48ad31d20a395..d474338bce922 100644 --- a/x-pack/plugins/monitoring/server/lib/alerts/fetch_clusters.ts +++ b/x-pack/plugins/monitoring/server/lib/alerts/fetch_clusters.ts @@ -6,7 +6,18 @@ import { get } from 'lodash'; import { AlertCluster } from '../../alerts/types'; -export async function fetchClusters(callCluster: any, index: string): Promise<AlertCluster[]> { +interface RangeFilter { + [field: string]: { + format?: string; + gte: string | number; + }; +} + +export async function fetchClusters( + callCluster: any, + index: string, + rangeFilter: RangeFilter = { timestamp: { gte: 'now-2m' } } +): Promise<AlertCluster[]> { const params = { index, filterPath: [ @@ -25,11 +36,7 @@ export async function fetchClusters(callCluster: any, index: string): Promise<Al }, }, { - range: { - timestamp: { - gte: 'now-2m', - }, - }, + range: rangeFilter, }, ], }, diff --git a/x-pack/plugins/monitoring/server/lib/alerts/fetch_missing_monitoring_data.test.ts b/x-pack/plugins/monitoring/server/lib/alerts/fetch_missing_monitoring_data.test.ts new file mode 100644 index 0000000000000..b09f5a88dba9c --- /dev/null +++ b/x-pack/plugins/monitoring/server/lib/alerts/fetch_missing_monitoring_data.test.ts @@ -0,0 +1,249 @@ +/* + * 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 { fetchMissingMonitoringData } from './fetch_missing_monitoring_data'; + +function getResponse( + index: string, + products: Array<{ + uuid: string; + timestamp: number; + nameSource: any; + }> +) { + return { + buckets: products.map((product) => { + return { + key: product.uuid, + most_recent: { + value: product.timestamp, + }, + document: { + hits: { + hits: [ + { + _index: index, + _source: product.nameSource, + }, + ], + }, + }, + }; + }), + }; +} + +describe('fetchMissingMonitoringData', () => { + let callCluster = jest.fn(); + const index = '.monitoring-*'; + const startMs = 100; + const size = 10; + + it('fetch as expected', async () => { + const now = 10; + const clusters = [ + { + clusterUuid: 'clusterUuid1', + clusterName: 'clusterName1', + }, + ]; + callCluster = jest.fn().mockImplementation((...args) => { + return { + aggregations: { + clusters: { + buckets: clusters.map((cluster) => ({ + key: cluster.clusterUuid, + es_uuids: getResponse('.monitoring-es-*', [ + { + uuid: 'nodeUuid1', + nameSource: { + source_node: { + name: 'nodeName1', + }, + }, + timestamp: 9, + }, + { + uuid: 'nodeUuid2', + nameSource: { + source_node: { + name: 'nodeName2', + }, + }, + timestamp: 2, + }, + ]), + kibana_uuids: getResponse('.monitoring-kibana-*', [ + { + uuid: 'kibanaUuid1', + nameSource: { + kibana_stats: { + kibana: { + name: 'kibanaName1', + }, + }, + }, + timestamp: 4, + }, + ]), + logstash_uuids: getResponse('.monitoring-logstash-*', [ + { + uuid: 'logstashUuid1', + nameSource: { + logstash_stats: { + logstash: { + host: 'logstashName1', + }, + }, + }, + timestamp: 2, + }, + ]), + beats: { + beats_uuids: getResponse('.monitoring-beats-*', [ + { + uuid: 'beatUuid1', + nameSource: { + beats_stats: { + beat: { + name: 'beatName1', + }, + }, + }, + timestamp: 0, + }, + ]), + }, + apms: { + apm_uuids: getResponse('.monitoring-beats-*', [ + { + uuid: 'apmUuid1', + nameSource: { + beats_stats: { + beat: { + name: 'apmName1', + type: 'apm-server', + }, + }, + }, + timestamp: 1, + }, + ]), + }, + })), + }, + }, + }; + }); + const result = await fetchMissingMonitoringData( + callCluster, + clusters, + index, + size, + now, + startMs + ); + expect(result).toEqual([ + { + stackProduct: 'elasticsearch', + stackProductUuid: 'nodeUuid1', + stackProductName: 'nodeName1', + clusterUuid: 'clusterUuid1', + gapDuration: 1, + ccs: null, + }, + { + stackProduct: 'elasticsearch', + stackProductUuid: 'nodeUuid2', + stackProductName: 'nodeName2', + clusterUuid: 'clusterUuid1', + gapDuration: 8, + ccs: null, + }, + { + stackProduct: 'kibana', + stackProductUuid: 'kibanaUuid1', + stackProductName: 'kibanaName1', + clusterUuid: 'clusterUuid1', + gapDuration: 6, + ccs: null, + }, + { + stackProduct: 'logstash', + stackProductUuid: 'logstashUuid1', + stackProductName: 'logstashName1', + clusterUuid: 'clusterUuid1', + gapDuration: 8, + ccs: null, + }, + { + stackProduct: 'beats', + stackProductUuid: 'beatUuid1', + stackProductName: 'beatName1', + clusterUuid: 'clusterUuid1', + gapDuration: 10, + ccs: null, + }, + { + stackProduct: 'apm', + stackProductUuid: 'apmUuid1', + stackProductName: 'apmName1', + clusterUuid: 'clusterUuid1', + gapDuration: 9, + ccs: null, + }, + ]); + }); + + it('should handle ccs', async () => { + const now = 10; + const clusters = [ + { + clusterUuid: 'clusterUuid1', + clusterName: 'clusterName1', + }, + ]; + callCluster = jest.fn().mockImplementation((...args) => { + return { + aggregations: { + clusters: { + buckets: clusters.map((cluster) => ({ + key: cluster.clusterUuid, + es_uuids: getResponse('Monitoring:.monitoring-es-*', [ + { + uuid: 'nodeUuid1', + nameSource: { + source_node: { + name: 'nodeName1', + }, + }, + timestamp: 9, + }, + ]), + })), + }, + }, + }; + }); + const result = await fetchMissingMonitoringData( + callCluster, + clusters, + index, + size, + now, + startMs + ); + expect(result).toEqual([ + { + stackProduct: 'elasticsearch', + stackProductUuid: 'nodeUuid1', + stackProductName: 'nodeName1', + clusterUuid: 'clusterUuid1', + gapDuration: 1, + ccs: 'Monitoring', + }, + ]); + }); +}); diff --git a/x-pack/plugins/monitoring/server/lib/alerts/fetch_missing_monitoring_data.ts b/x-pack/plugins/monitoring/server/lib/alerts/fetch_missing_monitoring_data.ts new file mode 100644 index 0000000000000..91fc05137a8c1 --- /dev/null +++ b/x-pack/plugins/monitoring/server/lib/alerts/fetch_missing_monitoring_data.ts @@ -0,0 +1,275 @@ +/* + * 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 { get } from 'lodash'; +import { AlertCluster, AlertMissingData } from '../../alerts/types'; +import { + KIBANA_SYSTEM_ID, + BEATS_SYSTEM_ID, + APM_SYSTEM_ID, + LOGSTASH_SYSTEM_ID, + ELASTICSEARCH_SYSTEM_ID, +} from '../../../common/constants'; + +interface ClusterBucketESResponse { + key: string; + kibana_uuids?: UuidResponse; + logstash_uuids?: UuidResponse; + es_uuids?: UuidResponse; + beats?: { + beats_uuids: UuidResponse; + }; + apms?: { + apm_uuids: UuidResponse; + }; +} + +interface UuidResponse { + buckets: UuidBucketESResponse[]; +} + +interface UuidBucketESResponse { + key: string; + most_recent: { + value: number; + }; + document: { + hits: { + hits: TopHitESResponse[]; + }; + }; +} + +interface TopHitESResponse { + _index: string; + _source: { + source_node?: { + name: string; + }; + kibana_stats?: { + kibana: { + name: string; + }; + }; + logstash_stats?: { + logstash: { + host: string; + }; + }; + beats_stats?: { + beat: { + name: string; + type: string; + }; + }; + }; +} + +function getStackProductFromIndex(index: string, beatType: string) { + if (index.includes('-kibana-')) { + return KIBANA_SYSTEM_ID; + } + if (index.includes('-beats-')) { + if (beatType === 'apm-server') { + return APM_SYSTEM_ID; + } + return BEATS_SYSTEM_ID; + } + if (index.includes('-logstash-')) { + return LOGSTASH_SYSTEM_ID; + } + if (index.includes('-es-')) { + return ELASTICSEARCH_SYSTEM_ID; + } + return ''; +} + +export async function fetchMissingMonitoringData( + callCluster: any, + clusters: AlertCluster[], + index: string, + size: number, + nowInMs: number, + startMs: number +): Promise<AlertMissingData[]> { + const endMs = nowInMs; + + const nameFields = [ + 'source_node.name', + 'kibana_stats.kibana.name', + 'logstash_stats.logstash.host', + 'beats_stats.beat.name', + 'beat_stats.beat.type', + ]; + const subAggs = { + most_recent: { + max: { + field: 'timestamp', + }, + }, + document: { + top_hits: { + size: 1, + sort: [ + { + timestamp: { + order: 'desc', + }, + }, + ], + _source: { + includes: ['_index', ...nameFields], + }, + }, + }, + }; + + const params = { + index, + filterPath: ['aggregations.clusters.buckets'], + body: { + size: 0, + query: { + bool: { + filter: [ + { + terms: { + cluster_uuid: clusters.map((cluster) => cluster.clusterUuid), + }, + }, + { + range: { + timestamp: { + format: 'epoch_millis', + gte: startMs, + lte: endMs, + }, + }, + }, + ], + }, + }, + aggs: { + clusters: { + terms: { + field: 'cluster_uuid', + size, + }, + aggs: { + es_uuids: { + terms: { + field: 'node_stats.node_id', + size, + }, + aggs: subAggs, + }, + kibana_uuids: { + terms: { + field: 'kibana_stats.kibana.uuid', + size, + }, + aggs: subAggs, + }, + beats: { + filter: { + bool: { + must_not: { + term: { + 'beats_stats.beat.type': 'apm-server', + }, + }, + }, + }, + aggs: { + beats_uuids: { + terms: { + field: 'beats_stats.beat.uuid', + size, + }, + aggs: subAggs, + }, + }, + }, + apms: { + filter: { + bool: { + must: { + term: { + 'beats_stats.beat.type': 'apm-server', + }, + }, + }, + }, + aggs: { + apm_uuids: { + terms: { + field: 'beats_stats.beat.uuid', + size, + }, + aggs: subAggs, + }, + }, + }, + logstash_uuids: { + terms: { + field: 'logstash_stats.logstash.uuid', + size, + }, + aggs: subAggs, + }, + }, + }, + }, + }, + }; + + const response = await callCluster('search', params); + const clusterBuckets = get( + response, + 'aggregations.clusters.buckets', + [] + ) as ClusterBucketESResponse[]; + const uniqueList: { [id: string]: AlertMissingData } = {}; + for (const clusterBucket of clusterBuckets) { + const clusterUuid = clusterBucket.key; + + const uuidBuckets = [ + ...(clusterBucket.es_uuids?.buckets || []), + ...(clusterBucket.kibana_uuids?.buckets || []), + ...(clusterBucket.logstash_uuids?.buckets || []), + ...(clusterBucket.beats?.beats_uuids.buckets || []), + ...(clusterBucket.apms?.apm_uuids.buckets || []), + ]; + + for (const uuidBucket of uuidBuckets) { + const stackProductUuid = uuidBucket.key; + const indexName = get(uuidBucket, `document.hits.hits[0]._index`); + const stackProduct = getStackProductFromIndex( + indexName, + get(uuidBucket, `document.hits.hits[0]._source.beats_stats.beat.type`) + ); + const differenceInMs = nowInMs - uuidBucket.most_recent.value; + let stackProductName = stackProductUuid; + for (const nameField of nameFields) { + stackProductName = get(uuidBucket, `document.hits.hits[0]._source.${nameField}`); + if (stackProductName) { + break; + } + } + + uniqueList[`${clusterUuid}${stackProduct}${stackProductUuid}`] = { + stackProduct, + stackProductUuid, + stackProductName, + clusterUuid, + gapDuration: differenceInMs, + ccs: indexName.includes(':') ? indexName.split(':')[0] : null, + }; + } + } + + const missingData = Object.values(uniqueList); + return missingData; +} diff --git a/x-pack/plugins/monitoring/server/lib/alerts/get_listing_link_for_stack_product.ts b/x-pack/plugins/monitoring/server/lib/alerts/get_listing_link_for_stack_product.ts new file mode 100644 index 0000000000000..1936ac1bc6183 --- /dev/null +++ b/x-pack/plugins/monitoring/server/lib/alerts/get_listing_link_for_stack_product.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 { + BEATS_SYSTEM_ID, + ELASTICSEARCH_SYSTEM_ID, + KIBANA_SYSTEM_ID, + LOGSTASH_SYSTEM_ID, + APM_SYSTEM_ID, +} from '../../../common/constants'; + +export function getListingLinkForStackProduct(stackProduct: string) { + switch (stackProduct) { + case ELASTICSEARCH_SYSTEM_ID: + return 'elasticsearch/nodes'; + case LOGSTASH_SYSTEM_ID: + return 'logstash/nodes'; + case KIBANA_SYSTEM_ID: + return 'kibana/instances'; + case BEATS_SYSTEM_ID: + return 'beats/beats'; + case APM_SYSTEM_ID: + return 'apm/instances'; + } + return ''; +} diff --git a/x-pack/plugins/monitoring/server/lib/alerts/get_stack_product_label.ts b/x-pack/plugins/monitoring/server/lib/alerts/get_stack_product_label.ts new file mode 100644 index 0000000000000..9dafd775bac14 --- /dev/null +++ b/x-pack/plugins/monitoring/server/lib/alerts/get_stack_product_label.ts @@ -0,0 +1,17 @@ +/* + * 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 { capitalize } from 'lodash'; +import { APM_SYSTEM_ID, BEATS_SYSTEM_ID } from '../../../common/constants'; + +export function getStackProductLabel(stackProduct: string) { + switch (stackProduct) { + case APM_SYSTEM_ID: + return 'APM'; + case BEATS_SYSTEM_ID: + return 'Beat'; + } + return capitalize(stackProduct); +} diff --git a/x-pack/plugins/monitoring/server/lib/alerts/get_type_label_for_stack_product.ts b/x-pack/plugins/monitoring/server/lib/alerts/get_type_label_for_stack_product.ts new file mode 100644 index 0000000000000..74801de10438f --- /dev/null +++ b/x-pack/plugins/monitoring/server/lib/alerts/get_type_label_for_stack_product.ts @@ -0,0 +1,51 @@ +/* + * 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 { + BEATS_SYSTEM_ID, + ELASTICSEARCH_SYSTEM_ID, + KIBANA_SYSTEM_ID, + LOGSTASH_SYSTEM_ID, + APM_SYSTEM_ID, +} from '../../../common/constants'; + +const NODES = i18n.translate('xpack.monitoring.alerts.typeLabel.nodes', { + defaultMessage: 'nodes', +}); + +const INSTANCES = i18n.translate('xpack.monitoring.alerts.typeLabel.instances', { + defaultMessage: 'instances', +}); + +const SERVERS = i18n.translate('xpack.monitoring.alerts.typeLabel.servers', { + defaultMessage: 'servers', +}); + +const NODE = i18n.translate('xpack.monitoring.alerts.typeLabel.node', { + defaultMessage: 'node', +}); + +const INSTANCE = i18n.translate('xpack.monitoring.alerts.typeLabel.instance', { + defaultMessage: 'instance', +}); + +const SERVER = i18n.translate('xpack.monitoring.alerts.typeLabel.server', { + defaultMessage: 'server', +}); + +export function getTypeLabelForStackProduct(stackProduct: string, plural: boolean = true) { + switch (stackProduct) { + case ELASTICSEARCH_SYSTEM_ID: + case LOGSTASH_SYSTEM_ID: + return plural ? NODES : NODE; + case KIBANA_SYSTEM_ID: + case BEATS_SYSTEM_ID: + return plural ? INSTANCES : INSTANCE; + case APM_SYSTEM_ID: + return plural ? SERVERS : SERVER; + } + return 'n/a'; +} From 7836998e76e64cdc15bb3233f2a113222837a80d Mon Sep 17 00:00:00 2001 From: Zacqary Adam Xeper <Zacqary@users.noreply.github.com> Date: Thu, 1 Oct 2020 11:31:39 -0500 Subject: [PATCH 114/142] [Metrics UI] Display No Data context.values as [NO DATA] (#78038) Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> --- .../inventory_metric_threshold_executor.ts | 6 ++++-- .../metric_threshold_executor.ts | 17 +++++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts b/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts index 99904f15b4606..b56ede1974393 100644 --- a/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts +++ b/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts @@ -148,8 +148,10 @@ export const FIRED_ACTIONS = { const formatMetric = (metric: SnapshotMetricType, value: number) => { const metricFormatter = get(METRIC_FORMATTERS, metric, METRIC_FORMATTERS.count); - if (value == null) { - return ''; + if (isNaN(value)) { + return i18n.translate('xpack.infra.metrics.alerting.inventory.noDataFormattedValue', { + defaultMessage: '[NO DATA]', + }); } const formatter = createFormatter(metricFormatter.formatter, metricFormatter.template); return formatter(value); diff --git a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.ts b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.ts index c85685b4cdca8..4dec552c5bd6c 100644 --- a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.ts +++ b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.ts @@ -131,11 +131,24 @@ const formatAlertResult = <AlertResult>( } & AlertResult ) => { const { metric, currentValue, threshold } = alertResult; - if (!metric.endsWith('.pct')) return alertResult; + const noDataValue = i18n.translate( + 'xpack.infra.metrics.alerting.threshold.noDataFormattedValue', + { + defaultMessage: '[NO DATA]', + } + ); + if (!metric.endsWith('.pct')) + return { + ...alertResult, + currentValue: currentValue ?? noDataValue, + }; const formatter = createFormatter('percent'); return { ...alertResult, - currentValue: formatter(currentValue), + currentValue: + currentValue !== null && typeof currentValue !== 'undefined' + ? formatter(currentValue) + : noDataValue, threshold: Array.isArray(threshold) ? threshold.map((v: number) => formatter(v)) : threshold, }; }; From 963fe0c1d1ceaea53666e039dbe0863dde2c5c12 Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet <nicolas.chaulet@elastic.co> Date: Thu, 1 Oct 2020 13:09:02 -0400 Subject: [PATCH 115/142] [Ingest Manager] Ensure we trigger agent policy updated event when we bump revision. (#78836) --- .../server/services/agent_policy.ts | 18 +++++++-- .../apis/settings/update.ts | 40 +++++++++++++++++++ 2 files changed, 55 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/ingest_manager/server/services/agent_policy.ts b/x-pack/plugins/ingest_manager/server/services/agent_policy.ts index 29821a530098c..12ea8ab92f6c4 100644 --- a/x-pack/plugins/ingest_manager/server/services/agent_policy.ts +++ b/x-pack/plugins/ingest_manager/server/services/agent_policy.ts @@ -33,7 +33,7 @@ const SAVED_OBJECT_TYPE = AGENT_POLICY_SAVED_OBJECT_TYPE; class AgentPolicyService { private triggerAgentPolicyUpdatedEvent = async ( soClient: SavedObjectsClientContract, - action: string, + action: 'created' | 'updated' | 'deleted', agentPolicyId: string ) => { return agentPolicyUpdateEventHandler(soClient, action, agentPolicyId); @@ -258,7 +258,11 @@ class AgentPolicyService { id: string, options?: { user?: AuthenticatedUser } ): Promise<AgentPolicy> { - return this._update(soClient, id, {}, options?.user); + const res = await this._update(soClient, id, {}, options?.user); + + await this.triggerAgentPolicyUpdatedEvent(soClient, 'updated', id); + + return res; } public async bumpAllAgentPolicies( soClient: SavedObjectsClientContract, @@ -277,7 +281,15 @@ class AgentPolicyService { }; return policy; }); - return soClient.bulkUpdate<AgentPolicySOAttributes>(bumpedPolicies); + const res = await soClient.bulkUpdate<AgentPolicySOAttributes>(bumpedPolicies); + + await Promise.all( + currentPolicies.saved_objects.map((policy) => + this.triggerAgentPolicyUpdatedEvent(soClient, 'updated', policy.id) + ) + ); + + return res; } public async assignPackagePolicies( diff --git a/x-pack/test/ingest_manager_api_integration/apis/settings/update.ts b/x-pack/test/ingest_manager_api_integration/apis/settings/update.ts index 86292b535db2d..4340cd4832307 100644 --- a/x-pack/test/ingest_manager_api_integration/apis/settings/update.ts +++ b/x-pack/test/ingest_manager_api_integration/apis/settings/update.ts @@ -5,16 +5,20 @@ */ import expect from '@kbn/expect'; +import { Client } from 'elasticsearch'; import { FtrProviderContext } from '../../../api_integration/ftr_provider_context'; import { skipIfNoDockerRegistry } from '../../helpers'; +import { setupIngest } from '../fleet/agents/services'; export default function (providerContext: FtrProviderContext) { const { getService } = providerContext; const supertest = getService('supertest'); const kibanaServer = getService('kibanaServer'); + const esClient: Client = getService('legacyEs'); describe('Settings - update', async function () { skipIfNoDockerRegistry(providerContext); + setupIngest(providerContext); it("should bump all agent policy's revision", async function () { const { body: testPolicy1PostRes } = await supertest @@ -49,5 +53,41 @@ export default function (providerContext: FtrProviderContext) { expect(getTestPolicy1Res.attributes.revision).equal(2); expect(getTestPolicy2Res.attributes.revision).equal(2); }); + + it('should create agent actions', async function () { + const { body: testPolicyRes } = await supertest + .post(`/api/ingest_manager/agent_policies`) + .set('kbn-xsrf', 'xxxx') + .send({ + name: 'test', + description: '', + namespace: 'default', + }); + + await supertest + .put(`/api/ingest_manager/settings`) + .set('kbn-xsrf', 'xxxx') + .send({ kibana_urls: ['http://localhost:1232/abc', 'http://localhost:1232/abc'] }); + + const res = await esClient.search({ + index: '.kibana', + body: { + query: { + bool: { + must: [ + { + terms: { + type: ['fleet-agent-actions'], + }, + }, + { match: { 'fleet-agent-actions.policy_id': testPolicyRes.item.id } }, + ], + }, + }, + }, + }); + + expect(res.hits.hits.length).equal(2); + }); }); } From 574205dc72b63a3c30ff159684012d8e3191ef2d Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiagoffcc@hotmail.com> Date: Thu, 1 Oct 2020 18:14:59 +0100 Subject: [PATCH 116/142] chore(NA): remove non existing plugin paths from case api integration tests (#79127) * chore(NA): remove non existing plugin paths from case api integration tests config * chore(NA): remove unused import --- x-pack/test/case_api_integration/common/config.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/x-pack/test/case_api_integration/common/config.ts b/x-pack/test/case_api_integration/common/config.ts index 5d34f8b04981a..72d1bc4ec9a37 100644 --- a/x-pack/test/case_api_integration/common/config.ts +++ b/x-pack/test/case_api_integration/common/config.ts @@ -4,8 +4,6 @@ * you may not use this file except in compliance with the Elastic License. */ -import path from 'path'; - import { CA_CERT_PATH } from '@kbn/dev-utils'; import { FtrConfigProviderContext } from '@kbn/test/types/ftr'; @@ -78,8 +76,6 @@ export function createTestConfig(name: string, options: CreateTestConfigOptions) `--xpack.actions.enabledActionTypes=${JSON.stringify(enabledActionTypes)}`, '--xpack.eventLog.logEntries=true', ...disabledPlugins.map((key) => `--xpack.${key}.enabled=false`), - `--plugin-path=${path.join(__dirname, 'fixtures', 'plugins', 'alerts')}`, - `--plugin-path=${path.join(__dirname, 'fixtures', 'plugins', 'actions')}`, ...(ssl ? [ `--elasticsearch.hosts=${servers.elasticsearch.protocol}://${servers.elasticsearch.hostname}:${servers.elasticsearch.port}`, From fd7dd41617a7464e6b0e61a83800c05ccf6a5189 Mon Sep 17 00:00:00 2001 From: Quynh Nguyen <43350163+qn895@users.noreply.github.com> Date: Thu, 1 Oct 2020 12:41:12 -0500 Subject: [PATCH 117/142] [ML] Update transform cloning to include description and new fields (#78364) --- .../public/app/common/request.test.ts | 33 +++++++++++++ .../transform/public/app/common/request.ts | 22 ++++++--- .../step_details/step_details_form.tsx | 18 +++++++ .../step_details/step_details_summary.tsx | 2 + .../test/functional/apps/transform/cloning.ts | 15 +++++- .../functional/services/transform/wizard.ts | 47 +++++++++++++++++++ 6 files changed, 129 insertions(+), 8 deletions(-) diff --git a/x-pack/plugins/transform/public/app/common/request.test.ts b/x-pack/plugins/transform/public/app/common/request.test.ts index 913ea8964eaf0..46ace2c3315a5 100644 --- a/x-pack/plugins/transform/public/app/common/request.test.ts +++ b/x-pack/plugins/transform/public/app/common/request.test.ts @@ -17,6 +17,7 @@ import { defaultQuery, getPreviewTransformRequestBody, getCreateTransformRequestBody, + getCreateTransformSettingsRequestBody, getPivotQuery, isDefaultQuery, isMatchAllQuery, @@ -159,6 +160,7 @@ describe('Transform: Common', () => { transformDescription: 'the-transform-description', transformFrequency: '1m', transformSettingsMaxPageSearchSize: 100, + transformSettingsDocsPerSecond: 400, destinationIndex: 'the-destination-index', touched: true, valid: true, @@ -180,6 +182,7 @@ describe('Transform: Common', () => { }, settings: { max_page_search_size: 100, + docs_per_second: 400, }, source: { index: ['the-index-pattern-title'], @@ -187,4 +190,34 @@ describe('Transform: Common', () => { }, }); }); + + test('getCreateTransformSettingsRequestBody() with multiple settings', () => { + const transformDetailsState: Partial<StepDetailsExposedState> = { + transformSettingsDocsPerSecond: 400, + transformSettingsMaxPageSearchSize: 100, + }; + + const request = getCreateTransformSettingsRequestBody(transformDetailsState); + + expect(request).toEqual({ + settings: { + docs_per_second: 400, + max_page_search_size: 100, + }, + }); + }); + + test('getCreateTransformSettingsRequestBody() with one setting', () => { + const transformDetailsState: Partial<StepDetailsExposedState> = { + transformSettingsDocsPerSecond: 400, + }; + + const request = getCreateTransformSettingsRequestBody(transformDetailsState); + + expect(request).toEqual({ + settings: { + docs_per_second: 400, + }, + }); + }); }); diff --git a/x-pack/plugins/transform/public/app/common/request.ts b/x-pack/plugins/transform/public/app/common/request.ts index 45160d125309d..8ee235baf7c5a 100644 --- a/x-pack/plugins/transform/public/app/common/request.ts +++ b/x-pack/plugins/transform/public/app/common/request.ts @@ -130,6 +130,20 @@ export function getPreviewTransformRequestBody( return request; } +export const getCreateTransformSettingsRequestBody = ( + transformDetailsState: Partial<StepDetailsExposedState> +): { settings?: PutTransformsRequestSchema['settings'] } => { + const settings: PutTransformsRequestSchema['settings'] = { + ...(transformDetailsState.transformSettingsMaxPageSearchSize + ? { max_page_search_size: transformDetailsState.transformSettingsMaxPageSearchSize } + : {}), + ...(transformDetailsState.transformSettingsDocsPerSecond + ? { docs_per_second: transformDetailsState.transformSettingsDocsPerSecond } + : {}), + }; + return Object.keys(settings).length > 0 ? { settings } : {}; +}; + export const getCreateTransformRequestBody = ( indexPatternTitle: IndexPattern['title'], pivotState: StepDefineExposedState, @@ -164,13 +178,7 @@ export const getCreateTransformRequestBody = ( } : {}), // conditionally add additional settings - ...(transformDetailsState.transformSettingsMaxPageSearchSize - ? { - settings: { - max_page_search_size: transformDetailsState.transformSettingsMaxPageSearchSize, - }, - } - : {}), + ...getCreateTransformSettingsRequestBody(transformDetailsState), }); export function isHttpFetchError(error: any): error is HttpFetchError { diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_form.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_form.tsx index 00ab516f625fe..9b43879512e4d 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_form.tsx +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_form.tsx @@ -63,6 +63,7 @@ export interface StepDetailsExposedState { transformDescription: string; transformFrequency: string; transformSettingsMaxPageSearchSize: number; + transformSettingsDocsPerSecond?: number; valid: boolean; indexPatternTimeField?: string | undefined; } @@ -100,6 +101,20 @@ export function applyTransformConfigToDetailsState( state.continuousModeDelay = time?.delay ?? defaultContinuousModeDelay; state.isContinuousModeEnabled = true; } + if (transformConfig.description !== undefined) { + state.transformDescription = transformConfig.description; + } + if (transformConfig.frequency !== undefined) { + state.transformFrequency = transformConfig.frequency; + } + if (transformConfig.settings) { + if (typeof transformConfig.settings?.max_page_search_size === 'number') { + state.transformSettingsMaxPageSearchSize = transformConfig.settings.max_page_search_size; + } + if (typeof transformConfig.settings?.docs_per_second === 'number') { + state.transformSettingsDocsPerSecond = transformConfig.settings.docs_per_second; + } + } } return state; } @@ -275,6 +290,8 @@ export const StepDetailsForm: FC<Props> = React.memo( const [transformSettingsMaxPageSearchSize, setTransformSettingsMaxPageSearchSize] = useState( defaults.transformSettingsMaxPageSearchSize ); + const [transformSettingsDocsPerSecond] = useState(defaults.transformSettingsDocsPerSecond); + const isTransformSettingsMaxPageSearchSizeValid = transformSettingsMaxPageSearchSizeValidator( transformSettingsMaxPageSearchSize ); @@ -301,6 +318,7 @@ export const StepDetailsForm: FC<Props> = React.memo( transformDescription, transformFrequency, transformSettingsMaxPageSearchSize, + transformSettingsDocsPerSecond, destinationIndex, touched: true, valid, diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_summary.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_summary.tsx index 45cd8aa465522..f5444eaf6640a 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_summary.tsx +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_details/step_details_summary.tsx @@ -98,6 +98,7 @@ export const StepDetailsSummary: FC<StepDetailsExposedState> = React.memo((props paddingSize="s" > <EuiFormRow + data-test-subj={'transformWizardAdvancedSettingsFrequencyLabel'} label={i18n.translate('xpack.transform.stepDetailsSummary.frequencyLabel', { defaultMessage: 'Frequency', })} @@ -105,6 +106,7 @@ export const StepDetailsSummary: FC<StepDetailsExposedState> = React.memo((props <span>{transformFrequency}</span> </EuiFormRow> <EuiFormRow + data-test-subj={'transformWizardAdvancedSettingsMaxPageSearchSizeLabel'} label={i18n.translate('xpack.transform.stepDetailsSummary.maxPageSearchSizeLabel', { defaultMessage: 'Maximum page search size', })} diff --git a/x-pack/test/functional/apps/transform/cloning.ts b/x-pack/test/functional/apps/transform/cloning.ts index a147b56d56251..421eab656f606 100644 --- a/x-pack/test/functional/apps/transform/cloning.ts +++ b/x-pack/test/functional/apps/transform/cloning.ts @@ -18,6 +18,10 @@ function getTransformConfig(): TransformPivotConfig { }, description: 'ecommerce batch transform with avg(products.base_price) grouped by terms(category.keyword)', + frequency: '3s', + settings: { + max_page_search_size: 250, + }, dest: { index: `user-ec_2_${date}` }, }; } @@ -155,7 +159,7 @@ export default function ({ getService }: FtrProviderContext) { await transform.testExecution.logTestStep('should input the transform description'); await transform.wizard.assertTransformDescriptionInputExists(); - await transform.wizard.assertTransformDescriptionValue(''); + await transform.wizard.assertTransformDescriptionValue(transformConfig.description!); await transform.wizard.setTransformDescription(testData.transformDescription); await transform.testExecution.logTestStep('should input the destination index'); @@ -173,6 +177,15 @@ export default function ({ getService }: FtrProviderContext) { await transform.wizard.assertContinuousModeSwitchExists(); await transform.wizard.assertContinuousModeSwitchCheckState(false); + await transform.testExecution.logTestStep( + 'should display the advanced settings and show pre-filled configuration' + ); + await transform.wizard.openTransformAdvancedSettingsAccordion(); + await transform.wizard.assertTransformFrequencyValue(transformConfig.frequency!); + await transform.wizard.assertTransformMaxPageSearchSizeValue( + transformConfig.settings!.max_page_search_size! + ); + await transform.testExecution.logTestStep('should load the create step'); await transform.wizard.advanceToCreateStep(); diff --git a/x-pack/test/functional/services/transform/wizard.ts b/x-pack/test/functional/services/transform/wizard.ts index 9cfdbadac8a3b..b05f1ff26199e 100644 --- a/x-pack/test/functional/services/transform/wizard.ts +++ b/x-pack/test/functional/services/transform/wizard.ts @@ -522,6 +522,53 @@ export function TransformWizardProvider({ getService }: FtrProviderContext) { ); }, + async assertTransformAdvancedSettingsAccordionExists() { + await testSubjects.existOrFail('transformWizardAccordionAdvancedSettings'); + }, + + // for now we expect this to be used only for opening the accordion + async openTransformAdvancedSettingsAccordion() { + await this.assertTransformAdvancedSettingsAccordionExists(); + await testSubjects.click('transformWizardAccordionAdvancedSettings'); + await this.assertTransformFrequencyInputExists(); + await this.assertTransformMaxPageSearchSizeInputExists(); + }, + + async assertTransformFrequencyInputExists() { + await testSubjects.existOrFail('transformFrequencyInput'); + expect(await testSubjects.isDisplayed('transformFrequencyInput')).to.eql( + true, + `Expected 'Frequency' input to be displayed` + ); + }, + + async assertTransformFrequencyValue(expectedValue: string) { + const actualValue = await testSubjects.getAttribute('transformFrequencyInput', 'value'); + expect(actualValue).to.eql( + expectedValue, + `Transform frequency input text should be '${expectedValue}' (got '${actualValue}')` + ); + }, + + async assertTransformMaxPageSearchSizeInputExists() { + await testSubjects.existOrFail('transformMaxPageSearchSizeInput'); + expect(await testSubjects.isDisplayed('transformMaxPageSearchSizeInput')).to.eql( + true, + `Expected 'Maximum page search size' input to be displayed` + ); + }, + + async assertTransformMaxPageSearchSizeValue(expectedValue: number) { + const actualValue = await testSubjects.getAttribute( + 'transformMaxPageSearchSizeInput', + 'value' + ); + expect(actualValue).to.eql( + expectedValue, + `Transform maximum page search size input text should be '${expectedValue}' (got '${actualValue}')` + ); + }, + async assertCreateAndStartButtonExists() { await testSubjects.existOrFail('transformWizardCreateAndStartButton'); expect(await testSubjects.isDisplayed('transformWizardCreateAndStartButton')).to.eql( From 085f8a17ff2a6f83e42f867c509d573fbadb968b Mon Sep 17 00:00:00 2001 From: Jonathan Budzenski <jon@budzenski.me> Date: Thu, 1 Oct 2020 12:42:37 -0500 Subject: [PATCH 118/142] Revert "[Metrics UI] Add ability to override datafeeds and job config for partition field (#78875)" This reverts commit ee7672aaf074dc4ebaf0ffb88d95d5f1bf9e1d18. --- .../containers/ml/infra_ml_module_types.ts | 4 +- .../containers/ml/infra_ml_setup_state.ts | 289 ++++++++++++++++++ .../metrics_hosts/module_descriptor.ts | 135 +++----- .../modules/metrics_k8s/module_descriptor.ts | 143 +++------ .../anomoly_detection_flyout.tsx | 4 +- .../ml/anomaly_detection/flyout_home.tsx | 113 ++++--- .../ml/anomaly_detection/job_setup_screen.tsx | 3 +- 7 files changed, 444 insertions(+), 247 deletions(-) create mode 100644 x-pack/plugins/infra/public/containers/ml/infra_ml_setup_state.ts diff --git a/x-pack/plugins/infra/public/containers/ml/infra_ml_module_types.ts b/x-pack/plugins/infra/public/containers/ml/infra_ml_module_types.ts index e36f38add641a..a9f2671de8259 100644 --- a/x-pack/plugins/infra/public/containers/ml/infra_ml_module_types.ts +++ b/x-pack/plugins/infra/public/containers/ml/infra_ml_module_types.ts @@ -33,11 +33,11 @@ export interface ModuleDescriptor<JobType extends string> { partitionField?: string ) => Promise<SetupMlModuleResponsePayload>; cleanUpModule: (spaceId: string, sourceId: string) => Promise<DeleteJobsResponsePayload>; - validateSetupIndices?: ( + validateSetupIndices: ( indices: string[], timestampField: string ) => Promise<ValidationIndicesResponsePayload>; - validateSetupDatasets?: ( + validateSetupDatasets: ( indices: string[], timestampField: string, startTime: number, diff --git a/x-pack/plugins/infra/public/containers/ml/infra_ml_setup_state.ts b/x-pack/plugins/infra/public/containers/ml/infra_ml_setup_state.ts new file mode 100644 index 0000000000000..0dfe3b301f240 --- /dev/null +++ b/x-pack/plugins/infra/public/containers/ml/infra_ml_setup_state.ts @@ -0,0 +1,289 @@ +/* + * 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 { isEqual } from 'lodash'; +import { useCallback, useEffect, useMemo, useState } from 'react'; +import { usePrevious } from 'react-use'; +import { + combineDatasetFilters, + DatasetFilter, + filterDatasetFilter, + isExampleDataIndex, +} from '../../../common/infra_ml'; +import { + AvailableIndex, + ValidationIndicesError, + ValidationUIError, +} from '../../components/logging/log_analysis_setup/initial_configuration_step'; +import { useTrackedPromise } from '../../utils/use_tracked_promise'; +import { ModuleDescriptor, ModuleSourceConfiguration } from './infra_ml_module_types'; + +type SetupHandler = ( + indices: string[], + startTime: number | undefined, + endTime: number | undefined, + datasetFilter: DatasetFilter +) => void; + +interface AnalysisSetupStateArguments<JobType extends string> { + cleanUpAndSetUpModule: SetupHandler; + moduleDescriptor: ModuleDescriptor<JobType>; + setUpModule: SetupHandler; + sourceConfiguration: ModuleSourceConfiguration; +} + +const fourWeeksInMs = 86400000 * 7 * 4; + +export const useAnalysisSetupState = <JobType extends string>({ + cleanUpAndSetUpModule, + moduleDescriptor: { validateSetupDatasets, validateSetupIndices }, + setUpModule, + sourceConfiguration, +}: AnalysisSetupStateArguments<JobType>) => { + const [startTime, setStartTime] = useState<number | undefined>(Date.now() - fourWeeksInMs); + const [endTime, setEndTime] = useState<number | undefined>(undefined); + + const isTimeRangeValid = useMemo( + () => (startTime != null && endTime != null ? startTime < endTime : true), + [endTime, startTime] + ); + + const [validatedIndices, setValidatedIndices] = useState<AvailableIndex[]>( + sourceConfiguration.indices.map((indexName) => ({ + name: indexName, + validity: 'unknown' as const, + })) + ); + + const updateIndicesWithValidationErrors = useCallback( + (validationErrors: ValidationIndicesError[]) => + setValidatedIndices((availableIndices) => + availableIndices.map((previousAvailableIndex) => { + const indexValiationErrors = validationErrors.filter( + ({ index }) => index === previousAvailableIndex.name + ); + + if (indexValiationErrors.length > 0) { + return { + validity: 'invalid', + name: previousAvailableIndex.name, + errors: indexValiationErrors, + }; + } else if (previousAvailableIndex.validity === 'valid') { + return { + ...previousAvailableIndex, + validity: 'valid', + errors: [], + }; + } else { + return { + validity: 'valid', + name: previousAvailableIndex.name, + isSelected: !isExampleDataIndex(previousAvailableIndex.name), + availableDatasets: [], + datasetFilter: { + type: 'includeAll' as const, + }, + }; + } + }) + ), + [] + ); + + const updateIndicesWithAvailableDatasets = useCallback( + (availableDatasets: Array<{ indexName: string; datasets: string[] }>) => + setValidatedIndices((availableIndices) => + availableIndices.map((previousAvailableIndex) => { + if (previousAvailableIndex.validity !== 'valid') { + return previousAvailableIndex; + } + + const availableDatasetsForIndex = availableDatasets.filter( + ({ indexName }) => indexName === previousAvailableIndex.name + ); + const newAvailableDatasets = availableDatasetsForIndex.flatMap( + ({ datasets }) => datasets + ); + + // filter out datasets that have disappeared if this index' datasets were updated + const newDatasetFilter: DatasetFilter = + availableDatasetsForIndex.length > 0 + ? filterDatasetFilter(previousAvailableIndex.datasetFilter, (dataset) => + newAvailableDatasets.includes(dataset) + ) + : previousAvailableIndex.datasetFilter; + + return { + ...previousAvailableIndex, + availableDatasets: newAvailableDatasets, + datasetFilter: newDatasetFilter, + }; + }) + ), + [] + ); + + const validIndexNames = useMemo( + () => validatedIndices.filter((index) => index.validity === 'valid').map((index) => index.name), + [validatedIndices] + ); + + const selectedIndexNames = useMemo( + () => + validatedIndices + .filter((index) => index.validity === 'valid' && index.isSelected) + .map((i) => i.name), + [validatedIndices] + ); + + const datasetFilter = useMemo( + () => + validatedIndices + .flatMap((validatedIndex) => + validatedIndex.validity === 'valid' + ? validatedIndex.datasetFilter + : { type: 'includeAll' as const } + ) + .reduce(combineDatasetFilters, { type: 'includeAll' as const }), + [validatedIndices] + ); + + const [validateIndicesRequest, validateIndices] = useTrackedPromise( + { + cancelPreviousOn: 'resolution', + createPromise: async () => { + return await validateSetupIndices( + sourceConfiguration.indices, + sourceConfiguration.timestampField + ); + }, + onResolve: ({ data: { errors } }) => { + updateIndicesWithValidationErrors(errors); + }, + onReject: () => { + setValidatedIndices([]); + }, + }, + [sourceConfiguration.indices, sourceConfiguration.timestampField] + ); + + const [validateDatasetsRequest, validateDatasets] = useTrackedPromise( + { + cancelPreviousOn: 'resolution', + createPromise: async () => { + if (validIndexNames.length === 0) { + return { data: { datasets: [] } }; + } + + return await validateSetupDatasets( + validIndexNames, + sourceConfiguration.timestampField, + startTime ?? 0, + endTime ?? Date.now() + ); + }, + onResolve: ({ data: { datasets } }) => { + updateIndicesWithAvailableDatasets(datasets); + }, + }, + [validIndexNames, sourceConfiguration.timestampField, startTime, endTime] + ); + + const setUp = useCallback(() => { + return setUpModule(selectedIndexNames, startTime, endTime, datasetFilter); + }, [setUpModule, selectedIndexNames, startTime, endTime, datasetFilter]); + + const cleanUpAndSetUp = useCallback(() => { + return cleanUpAndSetUpModule(selectedIndexNames, startTime, endTime, datasetFilter); + }, [cleanUpAndSetUpModule, selectedIndexNames, startTime, endTime, datasetFilter]); + + const isValidating = useMemo( + () => validateIndicesRequest.state === 'pending' || validateDatasetsRequest.state === 'pending', + [validateDatasetsRequest.state, validateIndicesRequest.state] + ); + + const validationErrors = useMemo<ValidationUIError[]>(() => { + if (isValidating) { + return []; + } + + return [ + // validate request status + ...(validateIndicesRequest.state === 'rejected' || + validateDatasetsRequest.state === 'rejected' + ? [{ error: 'NETWORK_ERROR' as const }] + : []), + // validation request results + ...validatedIndices.reduce<ValidationUIError[]>((errors, index) => { + return index.validity === 'invalid' && selectedIndexNames.includes(index.name) + ? [...errors, ...index.errors] + : errors; + }, []), + // index count + ...(selectedIndexNames.length === 0 ? [{ error: 'TOO_FEW_SELECTED_INDICES' as const }] : []), + // time range + ...(!isTimeRangeValid ? [{ error: 'INVALID_TIME_RANGE' as const }] : []), + ]; + }, [ + isValidating, + validateIndicesRequest.state, + validateDatasetsRequest.state, + validatedIndices, + selectedIndexNames, + isTimeRangeValid, + ]); + + const prevStartTime = usePrevious(startTime); + const prevEndTime = usePrevious(endTime); + const prevValidIndexNames = usePrevious(validIndexNames); + + useEffect(() => { + if (!isTimeRangeValid) { + return; + } + + validateIndices(); + }, [isTimeRangeValid, validateIndices]); + + useEffect(() => { + if (!isTimeRangeValid) { + return; + } + + if ( + startTime !== prevStartTime || + endTime !== prevEndTime || + !isEqual(validIndexNames, prevValidIndexNames) + ) { + validateDatasets(); + } + }, [ + endTime, + isTimeRangeValid, + prevEndTime, + prevStartTime, + prevValidIndexNames, + startTime, + validIndexNames, + validateDatasets, + ]); + + return { + cleanUpAndSetUp, + datasetFilter, + endTime, + isValidating, + selectedIndexNames, + setEndTime, + setStartTime, + setUp, + startTime, + validatedIndices, + setValidatedIndices, + validationErrors, + }; +}; diff --git a/x-pack/plugins/infra/public/containers/ml/modules/metrics_hosts/module_descriptor.ts b/x-pack/plugins/infra/public/containers/ml/modules/metrics_hosts/module_descriptor.ts index 711ee76d42a64..cec87fb1144e3 100644 --- a/x-pack/plugins/infra/public/containers/ml/modules/metrics_hosts/module_descriptor.ts +++ b/x-pack/plugins/infra/public/containers/ml/modules/metrics_hosts/module_descriptor.ts @@ -10,27 +10,17 @@ import { cleanUpJobsAndDatafeeds } from '../../infra_ml_cleanup'; import { callJobsSummaryAPI } from '../../api/ml_get_jobs_summary_api'; import { callGetMlModuleAPI } from '../../api/ml_get_module'; import { callSetupMlModuleAPI } from '../../api/ml_setup_module_api'; +import { callValidateIndicesAPI } from '../../../logs/log_analysis/api/validate_indices'; +import { callValidateDatasetsAPI } from '../../../logs/log_analysis/api/validate_datasets'; import { metricsHostsJobTypes, getJobId, MetricsHostsJobType, DatasetFilter, bucketSpan, + partitionField, } from '../../../../../common/infra_ml'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import MemoryJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_memory_usage.json'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import MemoryDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_memory_usage.json'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import NetworkInJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_in.json'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import NetworkInDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_in.json'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import NetworkOutJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_out.json'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import NetworkOutDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_out.json'; -type JobType = 'hosts_memory_usage' | 'hosts_network_in' | 'hosts_network_out'; const moduleId = 'metrics_ui_hosts'; const moduleName = i18n.translate('xpack.infra.ml.metricsModuleName', { defaultMessage: 'Metrics anomanly detection', @@ -64,68 +54,23 @@ const setUpModule = async ( end: number | undefined, datasetFilter: DatasetFilter, { spaceId, sourceId, indices, timestampField }: ModuleSourceConfiguration, - partitionField?: string + pField?: string ) => { const indexNamePattern = indices.join(','); - const jobIds: JobType[] = ['hosts_memory_usage', 'hosts_network_in', 'hosts_network_out']; - - const jobOverrides = jobIds.map((id) => { - const { job: defaultJobConfig } = getDefaultJobConfigs(id); - - // eslint-disable-next-line @typescript-eslint/naming-convention - const analysis_config = { - ...defaultJobConfig.analysis_config, - }; - - if (partitionField) { - analysis_config.detectors[0].partition_field_name = partitionField; - if (analysis_config.influencers.indexOf(partitionField) === -1) { - analysis_config.influencers.push(partitionField); - } - } - - return { - job_id: id, - data_description: { - time_field: timestampField, - }, - analysis_config, - custom_settings: { - metrics_source_config: { - indexPattern: indexNamePattern, - timestampField, - bucketSpan, - }, - }, - }; - }); - - const datafeedOverrides = jobIds.map((id) => { - const { datafeed: defaultDatafeedConfig } = getDefaultJobConfigs(id); - - if (!partitionField || id === 'hosts_memory_usage') { - // Since the host memory usage doesn't have custom aggs, we don't need to do anything to add a partition field - return defaultDatafeedConfig; - } - - // If we have a partition field, we need to change the aggregation to do a terms agg at the top level - const aggregations = { - [partitionField]: { - terms: { - field: partitionField, - }, - aggregations: { - ...defaultDatafeedConfig.aggregations, - }, + const jobIds = ['hosts_memory_usage', 'hosts_network_in', 'hosts_network_out']; + const jobOverrides = jobIds.map((id) => ({ + job_id: id, + data_description: { + time_field: timestampField, + }, + custom_settings: { + metrics_source_config: { + indexPattern: indexNamePattern, + timestampField, + bucketSpan, }, - }; - - return { - ...defaultDatafeedConfig, - job_id: id, - aggregations, - }; - }); + }, + })); return callSetupMlModuleAPI( moduleId, @@ -135,34 +80,36 @@ const setUpModule = async ( sourceId, indexNamePattern, jobOverrides, - datafeedOverrides + [] ); }; -const getDefaultJobConfigs = (jobId: JobType) => { - switch (jobId) { - case 'hosts_memory_usage': - return { - datafeed: MemoryDatafeed, - job: MemoryJob, - }; - case 'hosts_network_in': - return { - datafeed: NetworkInDatafeed, - job: NetworkInJob, - }; - case 'hosts_network_out': - return { - datafeed: NetworkOutDatafeed, - job: NetworkOutJob, - }; - } -}; - const cleanUpModule = async (spaceId: string, sourceId: string) => { return await cleanUpJobsAndDatafeeds(spaceId, sourceId, metricsHostsJobTypes); }; +const validateSetupIndices = async (indices: string[], timestampField: string) => { + return await callValidateIndicesAPI(indices, [ + { + name: timestampField, + validTypes: ['date'], + }, + { + name: partitionField, + validTypes: ['keyword'], + }, + ]); +}; + +const validateSetupDatasets = async ( + indices: string[], + timestampField: string, + startTime: number, + endTime: number +) => { + return await callValidateDatasetsAPI(indices, timestampField, startTime, endTime); +}; + export const metricHostsModule: ModuleDescriptor<MetricsHostsJobType> = { moduleId, moduleName, @@ -174,4 +121,6 @@ export const metricHostsModule: ModuleDescriptor<MetricsHostsJobType> = { getModuleDefinition, setUpModule, cleanUpModule, + validateSetupDatasets, + validateSetupIndices, }; diff --git a/x-pack/plugins/infra/public/containers/ml/modules/metrics_k8s/module_descriptor.ts b/x-pack/plugins/infra/public/containers/ml/modules/metrics_k8s/module_descriptor.ts index 41c6df92fb379..cbcff1c307af6 100644 --- a/x-pack/plugins/infra/public/containers/ml/modules/metrics_k8s/module_descriptor.ts +++ b/x-pack/plugins/infra/public/containers/ml/modules/metrics_k8s/module_descriptor.ts @@ -10,28 +10,17 @@ import { cleanUpJobsAndDatafeeds } from '../../infra_ml_cleanup'; import { callJobsSummaryAPI } from '../../api/ml_get_jobs_summary_api'; import { callGetMlModuleAPI } from '../../api/ml_get_module'; import { callSetupMlModuleAPI } from '../../api/ml_setup_module_api'; +import { callValidateIndicesAPI } from '../../../logs/log_analysis/api/validate_indices'; +import { callValidateDatasetsAPI } from '../../../logs/log_analysis/api/validate_datasets'; import { metricsK8SJobTypes, getJobId, MetricK8sJobType, DatasetFilter, bucketSpan, + partitionField, } from '../../../../../common/infra_ml'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import MemoryJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_memory_usage.json'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import MemoryDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_memory_usage.json'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import NetworkInJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_in.json'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import NetworkInDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_in.json'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import NetworkOutJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_out.json'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import NetworkOutDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_out.json'; -type JobType = 'k8s_memory_usage' | 'k8s_network_in' | 'k8s_network_out'; -export const DEFAULT_K8S_PARTITION_FIELD = 'kubernetes.namespace'; const moduleId = 'metrics_ui_k8s'; const moduleName = i18n.translate('xpack.infra.ml.metricsModuleName', { defaultMessage: 'Metrics anomanly detection', @@ -65,72 +54,26 @@ const setUpModule = async ( end: number | undefined, datasetFilter: DatasetFilter, { spaceId, sourceId, indices, timestampField }: ModuleSourceConfiguration, - partitionField?: string + pField?: string ) => { const indexNamePattern = indices.join(','); - const jobIds: JobType[] = ['k8s_memory_usage', 'k8s_network_in', 'k8s_network_out']; - const jobOverrides = jobIds.map((id) => { - const { job: defaultJobConfig } = getDefaultJobConfigs(id); - - // eslint-disable-next-line @typescript-eslint/naming-convention - const analysis_config = { - ...defaultJobConfig.analysis_config, - }; - - if (partitionField) { - analysis_config.detectors[0].partition_field_name = partitionField; - if (analysis_config.influencers.indexOf(partitionField) === -1) { - analysis_config.influencers.push(partitionField); - } - } - - return { - job_id: id, - data_description: { - time_field: timestampField, - }, - analysis_config, - custom_settings: { - metrics_source_config: { - indexPattern: indexNamePattern, - timestampField, - bucketSpan, - }, - }, - }; - }); - - const datafeedOverrides = jobIds.map((id) => { - const { datafeed: defaultDatafeedConfig } = getDefaultJobConfigs(id); - - if (!partitionField || id === 'k8s_memory_usage') { - // Since the host memory usage doesn't have custom aggs, we don't need to do anything to add a partition field - return defaultDatafeedConfig; - } - - // Because the ML K8s jobs ship with a default partition field of {kubernetes.namespace}, ignore that agg and wrap it in our own agg. - const innerAggregation = - defaultDatafeedConfig.aggregations[DEFAULT_K8S_PARTITION_FIELD].aggregations; - - // If we have a partition field, we need to change the aggregation to do a terms agg to partition the data at the top level - const aggregations = { - [partitionField]: { - terms: { - field: partitionField, - size: 25, // 25 is arbitratry and only used to keep the number of buckets to a managable level in the event that the user choose a high cardinality partition field. - }, - aggregations: { - ...innerAggregation, - }, + const jobIds = ['k8s_memory_usage', 'k8s_network_in', 'k8s_network_out']; + const jobOverrides = jobIds.map((id) => ({ + job_id: id, + analysis_config: { + bucket_span: `${bucketSpan}ms`, + }, + data_description: { + time_field: timestampField, + }, + custom_settings: { + metrics_source_config: { + indexPattern: indexNamePattern, + timestampField, + bucketSpan, }, - }; - - return { - ...defaultDatafeedConfig, - job_id: id, - aggregations, - }; - }); + }, + })); return callSetupMlModuleAPI( moduleId, @@ -140,34 +83,36 @@ const setUpModule = async ( sourceId, indexNamePattern, jobOverrides, - datafeedOverrides + [] ); }; -const getDefaultJobConfigs = (jobId: JobType) => { - switch (jobId) { - case 'k8s_memory_usage': - return { - datafeed: MemoryDatafeed, - job: MemoryJob, - }; - case 'k8s_network_in': - return { - datafeed: NetworkInDatafeed, - job: NetworkInJob, - }; - case 'k8s_network_out': - return { - datafeed: NetworkOutDatafeed, - job: NetworkOutJob, - }; - } -}; - const cleanUpModule = async (spaceId: string, sourceId: string) => { return await cleanUpJobsAndDatafeeds(spaceId, sourceId, metricsK8SJobTypes); }; +const validateSetupIndices = async (indices: string[], timestampField: string) => { + return await callValidateIndicesAPI(indices, [ + { + name: timestampField, + validTypes: ['date'], + }, + { + name: partitionField, + validTypes: ['keyword'], + }, + ]); +}; + +const validateSetupDatasets = async ( + indices: string[], + timestampField: string, + startTime: number, + endTime: number +) => { + return await callValidateDatasetsAPI(indices, timestampField, startTime, endTime); +}; + export const metricHostsModule: ModuleDescriptor<MetricK8sJobType> = { moduleId, moduleName, @@ -179,4 +124,6 @@ export const metricHostsModule: ModuleDescriptor<MetricK8sJobType> = { getModuleDefinition, setUpModule, cleanUpModule, + validateSetupDatasets, + validateSetupIndices, }; diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/anomoly_detection_flyout.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/anomoly_detection_flyout.tsx index b5d224910e819..b063713fa2c97 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/anomoly_detection_flyout.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/anomoly_detection_flyout.tsx @@ -50,10 +50,10 @@ export const AnomalyDetectionFlyout = () => { return ( <> - <EuiButtonEmpty iconSide={'left'} iconType={'inspect'} onClick={openFlyout}> + <EuiButtonEmpty iconSide={'right'} onClick={openFlyout}> <FormattedMessage id="xpack.infra.ml.anomalyDetectionButton" - defaultMessage="Anomaly detection" + defaultMessage="Anomaly Detection" /> </EuiButtonEmpty> {showFlyout && ( diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/flyout_home.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/flyout_home.tsx index 5b520084ebb74..801dff9c4a17a 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/flyout_home.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/flyout_home.tsx @@ -5,7 +5,7 @@ */ import React, { useState, useCallback, useEffect } from 'react'; -import { EuiFlyoutHeader, EuiTitle, EuiFlyoutBody, EuiSpacer } from '@elastic/eui'; +import { EuiFlyoutHeader, EuiTitle, EuiFlyoutBody, EuiTabs, EuiTab, EuiSpacer } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { EuiText, EuiFlexGroup, EuiFlexItem, EuiCard, EuiIcon } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; @@ -30,7 +30,7 @@ interface Props { } export const FlyoutHome = (props: Props) => { - const [tab] = useState<'jobs' | 'anomalies'>('jobs'); + const [tab, setTab] = useState<'jobs' | 'anomalies'>('jobs'); const { goToSetup } = props; const { fetchJobStatus: fetchHostJobStatus, @@ -56,10 +56,18 @@ export const FlyoutHome = (props: Props) => { goToSetup('kubernetes'); }, [goToSetup]); + const goToJobs = useCallback(() => { + setTab('jobs'); + }, []); + const jobIds = [ ...(k8sJobSummaries || []).map((k) => k.id), ...(hostJobSummaries || []).map((h) => h.id), ]; + const anomaliesUrl = useLinkProps({ + app: 'ml', + pathname: `/explorer?_g=${createResultsUrl(jobIds)}`, + }); useEffect(() => { if (hasInfraMLReadCapabilities) { @@ -97,24 +105,30 @@ export const FlyoutHome = (props: Props) => { </EuiFlyoutHeader> <EuiFlyoutBody> - <div> - <EuiText> - <p> - <FormattedMessage - defaultMessage="Anomaly detection is powered by machine learning. Machine learning jobs are available for the following resource types. Enable these jobs to begin detecting anomalies in your infrastructure metrics." - id="xpack.infra.ml.anomalyFlyout.create.description" - /> - </p> - </EuiText> - </div> - + <EuiTabs> + <EuiTab isSelected={tab === 'jobs'} onClick={goToJobs}> + <FormattedMessage + defaultMessage="Jobs" + id="xpack.infra.ml.anomalyFlyout.jobsTabLabel" + /> + </EuiTab> + <EuiTab + disabled={jobIds.length === 0} + isSelected={tab === 'anomalies'} + {...anomaliesUrl} + > + <FormattedMessage + defaultMessage="Anomalies" + id="xpack.infra.ml.anomalyFlyout.anomaliesTabLabel" + /> + </EuiTab> + </EuiTabs> <EuiSpacer size="l" /> {hostJobSummaries.length > 0 && ( <> <JobsEnabledCallout hasHostJobs={hostJobSummaries.length > 0} hasK8sJobs={k8sJobSummaries.length > 0} - jobIds={jobIds} /> <EuiSpacer size="l" /> </> @@ -137,7 +151,6 @@ export const FlyoutHome = (props: Props) => { interface CalloutProps { hasHostJobs: boolean; hasK8sJobs: boolean; - jobIds: string[]; } const JobsEnabledCallout = (props: CalloutProps) => { let target = ''; @@ -162,34 +175,8 @@ const JobsEnabledCallout = (props: CalloutProps) => { pathname: '/jobs', }); - const anomaliesUrl = useLinkProps({ - app: 'ml', - pathname: `/explorer?_g=${createResultsUrl(props.jobIds)}`, - }); - return ( <> - <EuiFlexGroup gutterSize={'s'}> - <EuiFlexItem grow={false}> - <EuiButton {...manageJobsLinkProps} style={{ marginRight: 5 }}> - <FormattedMessage - defaultMessage="Manage jobs" - id="xpack.infra.ml.anomalyFlyout.manageJobs" - /> - </EuiButton> - </EuiFlexItem> - <EuiFlexItem grow={false}> - <EuiButton {...anomaliesUrl}> - <FormattedMessage - defaultMessage="View anomalies" - id="xpack.infra.ml.anomalyFlyout.anomaliesTabLabel" - /> - </EuiButton> - </EuiFlexItem> - </EuiFlexGroup> - - <EuiSpacer size="l" /> - <EuiCallOut size="m" color="success" @@ -202,6 +189,13 @@ const JobsEnabledCallout = (props: CalloutProps) => { } iconType="check" /> + <EuiSpacer size="l" /> + <EuiButton {...manageJobsLinkProps}> + <FormattedMessage + defaultMessage="Manage Jobs" + id="xpack.infra.ml.anomalyFlyout.manageJobs" + /> + </EuiButton> </> ); }; @@ -217,11 +211,30 @@ interface CreateJobTab { const CreateJobTab = (props: CreateJobTab) => { return ( <> - {/* <EuiSpacer size="l" /> */} + <div> + <EuiText> + <h3> + <FormattedMessage + defaultMessage="Create ML Jobs" + id="xpack.infra.ml.anomalyFlyout.create.jobsTitle" + /> + </h3> + </EuiText> + <EuiText> + <p> + <FormattedMessage + defaultMessage="Machine Learning jobs are available for the following resource types. Enable these jobs to begin detecting anomalies in your infrastructure metrics" + id="xpack.infra.ml.anomalyFlyout.create.description" + /> + </p> + </EuiText> + </div> + + <EuiSpacer size="l" /> <EuiFlexGroup gutterSize={'m'}> <EuiFlexItem> <EuiCard - isDisabled={!props.hasSetupCapabilities} + // isDisabled={props.hasSetupCapabilities} icon={<EuiIcon type={'storage'} />} // title="Hosts" title={ @@ -232,7 +245,7 @@ const CreateJobTab = (props: CreateJobTab) => { } description={ <FormattedMessage - defaultMessage="Detect anomalies for memory usage and network traffic." + defaultMessage="Detect anomalies for CPU usage, memory usage, network traffic, and load." id="xpack.infra.ml.anomalyFlyout.create.hostDescription" /> } @@ -241,7 +254,7 @@ const CreateJobTab = (props: CreateJobTab) => { {props.hasHostJobs && ( <EuiButtonEmpty onClick={props.createHosts}> <FormattedMessage - defaultMessage="Recreate jobs" + defaultMessage="Recreate Jobs" id="xpack.infra.ml.anomalyFlyout.create.recreateButton" /> </EuiButtonEmpty> @@ -249,7 +262,7 @@ const CreateJobTab = (props: CreateJobTab) => { {!props.hasHostJobs && ( <EuiButton onClick={props.createHosts}> <FormattedMessage - defaultMessage="Enable" + defaultMessage="Create Jobs" id="xpack.infra.ml.anomalyFlyout.create.createButton" /> </EuiButton> @@ -260,7 +273,7 @@ const CreateJobTab = (props: CreateJobTab) => { </EuiFlexItem> <EuiFlexItem> <EuiCard - isDisabled={!props.hasSetupCapabilities} + // isDisabled={props.hasSetupCapabilities} icon={<EuiIcon type={'logoKubernetes'} />} title={ <FormattedMessage @@ -270,7 +283,7 @@ const CreateJobTab = (props: CreateJobTab) => { } description={ <FormattedMessage - defaultMessage="Detect anomalies for memory usage and network traffic." + defaultMessage="Detect anomalies for CPU usage, memory usage, network traffic, and load." id="xpack.infra.ml.anomalyFlyout.create.k8sDescription" /> } @@ -279,7 +292,7 @@ const CreateJobTab = (props: CreateJobTab) => { {props.hasK8sJobs && ( <EuiButtonEmpty onClick={props.createK8s}> <FormattedMessage - defaultMessage="Recreate jobs" + defaultMessage="Recreate Jobs" id="xpack.infra.ml.anomalyFlyout.create.recreateButton" /> </EuiButtonEmpty> @@ -287,7 +300,7 @@ const CreateJobTab = (props: CreateJobTab) => { {!props.hasK8sJobs && ( <EuiButton onClick={props.createK8s}> <FormattedMessage - defaultMessage="Enable" + defaultMessage="Create Jobs" id="xpack.infra.ml.anomalyFlyout.create.createButton" /> </EuiButton> diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx index c327d187f6bc2..428c002da6383 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx @@ -20,7 +20,6 @@ import { useSourceViaHttp } from '../../../../../../containers/source/use_source import { useMetricK8sModuleContext } from '../../../../../../containers/ml/modules/metrics_k8s/module'; import { useMetricHostsModuleContext } from '../../../../../../containers/ml/modules/metrics_hosts/module'; import { FixedDatePicker } from '../../../../../../components/fixed_datepicker'; -import { DEFAULT_K8S_PARTITION_FIELD } from '../../../../../../containers/ml/modules/metrics_k8s/module_descriptor'; interface Props { jobType: 'hosts' | 'kubernetes'; @@ -108,7 +107,7 @@ export const JobSetupScreen = (props: Props) => { useEffect(() => { if (props.jobType === 'kubernetes') { - setPartitionField([DEFAULT_K8S_PARTITION_FIELD]); + setPartitionField(['kubernetes.namespace']); } }, [props.jobType]); From 6d8f74a128973eb6e29a85921086f1975eb958d5 Mon Sep 17 00:00:00 2001 From: Jen Huang <its.jenetic@gmail.com> Date: Thu, 1 Oct 2020 10:57:19 -0700 Subject: [PATCH 119/142] [Ingest Manager] Match package spec `dataset`->`data_stream` and `config_templates`->`policy_templates` renaming (#78699) * Match elastic/package-spec#24 `datasets`->`data_streams` property renaming * Match elastic/package-spec#24 `datasets.name`->`data_streams.dataset` property renaming * Match elastic/package-spec#24 `/dataset`->`/data_stream` directory renaming * Match elastic/package-spec#50 `config_templates`->`policy_templates` property renaming * Update API integration test fixtures (test packages) * Temporarily skip API integration tests * Temporarily skip more API integration tests * Pin to custom docker image, unskip test suites, clean up broken icon paths in test package manifests * Skip the only (yay!) failing test suite * Revert "Skip the only (yay!) failing test suite" This reverts commit 3db32e2528f16e3a659939d4d2168b26e5f931d3. * Re-skip tests and revert docker image Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> --- .../common/openapi/spec_oas3.json | 6 +- .../common/services/limited_package.ts | 2 +- .../package_to_package_policy.test.ts | 48 ++++++------ .../services/package_to_package_policy.ts | 16 ++-- .../ingest_manager/common/types/models/epm.ts | 14 ++-- x-pack/plugins/ingest_manager/dev_docs/epm.md | 4 +- .../dev_docs/indexing_strategy.md | 30 ++++---- .../services/validate_package_policy.test..ts | 24 +++--- .../services/validate_package_policy.ts | 20 ++--- .../step_configure_package.tsx | 16 ++-- .../ingest_manager/types/index.ts | 2 +- .../services/epm/elasticsearch/index.test.ts | 10 +-- .../services/epm/elasticsearch/index.ts | 8 +- .../ingest_pipeline/ingest_pipelines.test.ts | 16 ++-- .../elasticsearch/ingest_pipeline/install.ts | 44 +++++------ .../epm/elasticsearch/template/install.ts | 71 +++++++++--------- .../epm/elasticsearch/template/template.ts | 24 +++--- .../elasticsearch/transform/transform.test.ts | 18 ++--- .../epm/kibana/index_pattern/install.ts | 30 ++++---- .../services/epm/packages/assets.test.ts | 16 ++-- .../server/services/epm/packages/assets.ts | 6 +- .../server/services/epm/packages/install.ts | 4 +- .../services/epm/registry/index.test.ts | 4 +- .../server/services/epm/registry/index.ts | 8 +- .../server/services/package_policy.test.ts | 20 ++--- .../server/services/package_policy.ts | 14 ++-- .../ingest_manager/server/types/index.tsx | 2 +- .../apache_0.1.4.tar.gz | Bin 581243 -> 579555 bytes .../elasticsearch/ilm_policy/all_assets.json | 0 .../elasticsearch/ingest_pipeline/default.yml | 0 .../ingest_pipeline/pipeline1.yml | 0 .../ingest_pipeline/pipeline2.yml | 0 .../test_logs/fields/ecs.yml | 0 .../test_logs/fields/fields.yml | 0 .../0.1.0/data_stream/test_logs}/manifest.yml | 0 .../test_metrics/fields/ecs.yml | 0 .../test_metrics/fields/fields.yml | 0 .../test_metrics/manifest.yml | 0 .../elasticsearch/ilm_policy/all_assets.json | 0 .../elasticsearch/ingest_pipeline/default.yml | 0 .../ingest_pipeline/pipeline1.yml | 0 .../test_logs/fields/ecs.yml | 0 .../test_logs/fields/fields.yml | 0 .../test_logs/manifest.yml | 0 .../test_logs2/fields/ecs.yml | 0 .../test_logs2/fields/fields.yml | 0 .../test_logs2/manifest.yml | 0 .../test_metrics/fields/ecs.yml | 0 .../test_metrics/fields/fields.yml | 0 .../test_metrics/manifest.yml | 0 .../elasticsearch/ilm_policy/all_assets.json | 0 .../elasticsearch/ingest_pipeline/default.yml | 0 .../test_logs/fields/ecs.yml | 0 .../test_logs/fields/fields.yml | 0 .../0.1.0/data_stream}/test_logs/manifest.yml | 0 .../test_metrics/fields/ecs.yml | 0 .../test_metrics/fields/fields.yml | 0 .../test_metrics/manifest.yml | 0 .../datastreams/0.1.0/manifest.yml | 7 +- .../elasticsearch/ilm_policy/all_assets.json | 0 .../elasticsearch/ingest_pipeline/default.yml | 0 .../test_logs/fields/ecs.yml | 0 .../test_logs/fields/fields.yml | 0 .../test_logs/manifest.yml | 0 .../test_metrics/fields/ecs.yml | 0 .../test_metrics/fields/fields.yml | 0 .../test_metrics/manifest.yml | 0 .../datastreams/0.2.0/manifest.yml | 5 -- .../test/fields/fields.yml | 0 .../data_stream}/test/manifest.yml | 0 .../multiple_versions/0.1.0/manifest.yml | 9 +-- .../test/fields/fields.yml | 0 .../data_stream}/test/manifest.yml | 0 .../multiple_versions/0.2.0/manifest.yml | 9 +-- .../test/fields/fields.yml | 0 .../0.3.0/data_stream}/test/manifest.yml | 0 .../multiple_versions/0.3.0/manifest.yml | 7 +- .../test/fields/fields.yml | 0 .../0.1.0/data_stream/test}/manifest.yml | 2 +- .../test/fields/fields.yml | 0 .../test/manifest.yml | 0 .../apis/index.js | 2 +- .../apps/endpoint/index.ts | 2 +- .../apis/index.ts | 2 +- 84 files changed, 254 insertions(+), 268 deletions(-) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/{dataset => data_stream}/test_logs/elasticsearch/ilm_policy/all_assets.json (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/{dataset => data_stream}/test_logs/elasticsearch/ingest_pipeline/default.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/{dataset => data_stream}/test_logs/elasticsearch/ingest_pipeline/pipeline1.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/{dataset => data_stream}/test_logs/elasticsearch/ingest_pipeline/pipeline2.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/{dataset => data_stream}/test_logs/fields/ecs.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/{dataset => data_stream}/test_logs/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/{multiple_versions/0.1.0/dataset/test => all_assets/0.1.0/data_stream/test_logs}/manifest.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/{dataset => data_stream}/test_metrics/fields/ecs.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/{dataset => data_stream}/test_metrics/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/{dataset => data_stream}/test_metrics/manifest.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/{dataset => data_stream}/test_logs/elasticsearch/ilm_policy/all_assets.json (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/{dataset => data_stream}/test_logs/elasticsearch/ingest_pipeline/default.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/{dataset => data_stream}/test_logs/elasticsearch/ingest_pipeline/pipeline1.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/{dataset => data_stream}/test_logs/fields/ecs.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/{dataset => data_stream}/test_logs/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/{dataset => data_stream}/test_logs/manifest.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/{dataset => data_stream}/test_logs2/fields/ecs.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/{dataset => data_stream}/test_logs2/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/{dataset => data_stream}/test_logs2/manifest.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/{dataset => data_stream}/test_metrics/fields/ecs.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/{dataset => data_stream}/test_metrics/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/{dataset => data_stream}/test_metrics/manifest.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/{dataset => data_stream}/test_logs/elasticsearch/ilm_policy/all_assets.json (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/{dataset => data_stream}/test_logs/elasticsearch/ingest_pipeline/default.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/{dataset => data_stream}/test_logs/fields/ecs.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/{dataset => data_stream}/test_logs/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/{all_assets/0.1.0/dataset => datastreams/0.1.0/data_stream}/test_logs/manifest.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/{dataset => data_stream}/test_metrics/fields/ecs.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/{dataset => data_stream}/test_metrics/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/{dataset => data_stream}/test_metrics/manifest.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/{dataset => data_stream}/test_logs/elasticsearch/ilm_policy/all_assets.json (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/{dataset => data_stream}/test_logs/elasticsearch/ingest_pipeline/default.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/{dataset => data_stream}/test_logs/fields/ecs.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/{dataset => data_stream}/test_logs/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/{dataset => data_stream}/test_logs/manifest.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/{dataset => data_stream}/test_metrics/fields/ecs.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/{dataset => data_stream}/test_metrics/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/{dataset => data_stream}/test_metrics/manifest.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/{dataset => data_stream}/test/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/{0.2.0/dataset => 0.1.0/data_stream}/test/manifest.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/{dataset => data_stream}/test/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/{0.3.0/dataset => 0.2.0/data_stream}/test/manifest.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/{dataset => data_stream}/test/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/{overrides/0.1.0/dataset => multiple_versions/0.3.0/data_stream}/test/manifest.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/overrides/0.1.0/{dataset => data_stream}/test/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/{datastreams/0.1.0/dataset/test_logs => overrides/0.1.0/data_stream/test}/manifest.yml (77%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/prerelease/0.1.0-dev.0+abc/{dataset => data_stream}/test/fields/fields.yml (100%) rename x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/prerelease/0.1.0-dev.0+abc/{dataset => data_stream}/test/manifest.yml (100%) diff --git a/x-pack/plugins/ingest_manager/common/openapi/spec_oas3.json b/x-pack/plugins/ingest_manager/common/openapi/spec_oas3.json index 28a88aa2be605..a780ae5599793 100644 --- a/x-pack/plugins/ingest_manager/common/openapi/spec_oas3.json +++ b/x-pack/plugins/ingest_manager/common/openapi/spec_oas3.json @@ -1543,7 +1543,7 @@ } }, "format_version": "1.0.0", - "datasets": [ + "data_streams": [ { "title": "CoreDNS logs", "name": "log", @@ -1764,7 +1764,7 @@ ] } }, - "datasets": [ + "data_streams": [ { "id": "endpoint", "title": "Endpoint Events", @@ -3961,7 +3961,7 @@ "format_version": { "type": "string" }, - "datasets": { + "data_streams": { "type": "array", "items": { "type": "object", diff --git a/x-pack/plugins/ingest_manager/common/services/limited_package.ts b/x-pack/plugins/ingest_manager/common/services/limited_package.ts index 21d1dbd1556b7..8d2a251ae015e 100644 --- a/x-pack/plugins/ingest_manager/common/services/limited_package.ts +++ b/x-pack/plugins/ingest_manager/common/services/limited_package.ts @@ -7,7 +7,7 @@ import { PackageInfo, AgentPolicy, PackagePolicy } from '../types'; // Assume packages only ever include 1 config template for now export const isPackageLimited = (packageInfo: PackageInfo): boolean => { - return packageInfo.config_templates?.[0]?.multiple === false; + return packageInfo.policy_templates?.[0]?.multiple === false; }; export const doesAgentPolicyAlreadyIncludePackage = ( diff --git a/x-pack/plugins/ingest_manager/common/services/package_to_package_policy.test.ts b/x-pack/plugins/ingest_manager/common/services/package_to_package_policy.test.ts index 6c3559d7cc5a0..a62fcddd16e0f 100644 --- a/x-pack/plugins/ingest_manager/common/services/package_to_package_policy.test.ts +++ b/x-pack/plugins/ingest_manager/common/services/package_to_package_policy.test.ts @@ -34,14 +34,14 @@ describe('Ingest Manager - packageToPackagePolicy', () => { describe('packageToPackagePolicyInputs', () => { it('returns empty array for packages with no config templates', () => { expect(packageToPackagePolicyInputs(mockPackage)).toEqual([]); - expect(packageToPackagePolicyInputs({ ...mockPackage, config_templates: [] })).toEqual([]); + expect(packageToPackagePolicyInputs({ ...mockPackage, policy_templates: [] })).toEqual([]); }); it('returns empty array for packages with a config template but no inputs', () => { expect( packageToPackagePolicyInputs(({ ...mockPackage, - config_templates: [{ inputs: [] }], + policy_templates: [{ inputs: [] }], } as unknown) as PackageInfo) ).toEqual([]); }); @@ -50,13 +50,13 @@ describe('Ingest Manager - packageToPackagePolicy', () => { expect( packageToPackagePolicyInputs(({ ...mockPackage, - config_templates: [{ inputs: [{ type: 'foo' }] }], + policy_templates: [{ inputs: [{ type: 'foo' }] }], } as unknown) as PackageInfo) ).toEqual([{ type: 'foo', enabled: true, streams: [] }]); expect( packageToPackagePolicyInputs(({ ...mockPackage, - config_templates: [{ inputs: [{ type: 'foo' }, { type: 'bar' }] }], + policy_templates: [{ inputs: [{ type: 'foo' }, { type: 'bar' }] }], } as unknown) as PackageInfo) ).toEqual([ { type: 'foo', enabled: true, streams: [] }, @@ -68,12 +68,12 @@ describe('Ingest Manager - packageToPackagePolicy', () => { expect( packageToPackagePolicyInputs(({ ...mockPackage, - datasets: [ - { type: 'logs', name: 'foo', streams: [{ input: 'foo' }] }, - { type: 'logs', name: 'bar', streams: [{ input: 'bar' }] }, - { type: 'logs', name: 'bar2', streams: [{ input: 'bar' }] }, + data_streams: [ + { type: 'logs', dataset: 'foo', streams: [{ input: 'foo' }] }, + { type: 'logs', dataset: 'bar', streams: [{ input: 'bar' }] }, + { type: 'logs', dataset: 'bar2', streams: [{ input: 'bar' }] }, ], - config_templates: [ + policy_templates: [ { inputs: [{ type: 'foo' }, { type: 'bar' }], }, @@ -102,15 +102,15 @@ describe('Ingest Manager - packageToPackagePolicy', () => { expect( packageToPackagePolicyInputs(({ ...mockPackage, - datasets: [ + data_streams: [ { type: 'logs', - name: 'foo', + dataset: 'foo', streams: [{ input: 'foo', vars: [{ default: 'foo-var-value', name: 'var-name' }] }], }, { type: 'logs', - name: 'bar', + dataset: 'bar', streams: [ { input: 'bar', @@ -120,7 +120,7 @@ describe('Ingest Manager - packageToPackagePolicy', () => { }, { type: 'logs', - name: 'bar2', + dataset: 'bar2', streams: [ { input: 'bar', @@ -129,7 +129,7 @@ describe('Ingest Manager - packageToPackagePolicy', () => { ], }, ], - config_templates: [ + policy_templates: [ { inputs: [{ type: 'foo' }, { type: 'bar' }], }, @@ -173,15 +173,15 @@ describe('Ingest Manager - packageToPackagePolicy', () => { expect( packageToPackagePolicyInputs(({ ...mockPackage, - datasets: [ + data_streams: [ { type: 'logs', - name: 'foo', + dataset: 'foo', streams: [{ input: 'foo', vars: [{ default: 'foo-var-value', name: 'var-name' }] }], }, { type: 'logs', - name: 'bar', + dataset: 'bar', streams: [ { input: 'bar', @@ -191,7 +191,7 @@ describe('Ingest Manager - packageToPackagePolicy', () => { }, { type: 'logs', - name: 'bar2', + dataset: 'bar2', streams: [ { input: 'bar', @@ -201,7 +201,7 @@ describe('Ingest Manager - packageToPackagePolicy', () => { }, { type: 'logs', - name: 'disabled', + dataset: 'disabled', streams: [ { input: 'with-disabled-streams', @@ -212,7 +212,7 @@ describe('Ingest Manager - packageToPackagePolicy', () => { }, { type: 'logs', - name: 'disabled2', + dataset: 'disabled2', streams: [ { input: 'with-disabled-streams', @@ -221,7 +221,7 @@ describe('Ingest Manager - packageToPackagePolicy', () => { ], }, ], - config_templates: [ + policy_templates: [ { inputs: [ { @@ -372,13 +372,13 @@ describe('Ingest Manager - packageToPackagePolicy', () => { }); }); it('returns package policy with inputs', () => { - const mockPackageWithConfigTemplates = ({ + const mockPackageWithPolicyTemplates = ({ ...mockPackage, - config_templates: [{ inputs: [{ type: 'foo' }] }], + policy_templates: [{ inputs: [{ type: 'foo' }] }], } as unknown) as PackageInfo; expect( - packageToPackagePolicy(mockPackageWithConfigTemplates, '1', '2', 'default', 'pkgPolicy-1') + packageToPackagePolicy(mockPackageWithPolicyTemplates, '1', '2', 'default', 'pkgPolicy-1') ).toEqual({ policy_id: '1', namespace: 'default', diff --git a/x-pack/plugins/ingest_manager/common/services/package_to_package_policy.ts b/x-pack/plugins/ingest_manager/common/services/package_to_package_policy.ts index eab2e8ac2d745..822747916ebc5 100644 --- a/x-pack/plugins/ingest_manager/common/services/package_to_package_policy.ts +++ b/x-pack/plugins/ingest_manager/common/services/package_to_package_policy.ts @@ -5,7 +5,7 @@ */ import { PackageInfo, - RegistryConfigTemplate, + RegistryPolicyTemplate, RegistryVarsEntry, RegistryStream, PackagePolicy, @@ -22,14 +22,14 @@ const getStreamsForInputType = ( ): Array<RegistryStream & { data_stream: { type: string; dataset: string } }> => { const streams: Array<RegistryStream & { data_stream: { type: string; dataset: string } }> = []; - (packageInfo.datasets || []).forEach((dataset) => { - (dataset.streams || []).forEach((stream) => { + (packageInfo.data_streams || []).forEach((dataStream) => { + (dataStream.streams || []).forEach((stream) => { if (stream.input === inputType) { streams.push({ ...stream, data_stream: { - type: dataset.type, - dataset: dataset.name, + type: dataStream.type, + dataset: dataStream.dataset, }, }); } @@ -46,9 +46,9 @@ export const packageToPackagePolicyInputs = (packageInfo: PackageInfo): PackageP const inputs: PackagePolicy['inputs'] = []; // Assume package will only ever ship one package policy template for now - const packagePolicyTemplate: RegistryConfigTemplate | null = - packageInfo.config_templates && packageInfo.config_templates[0] - ? packageInfo.config_templates[0] + const packagePolicyTemplate: RegistryPolicyTemplate | null = + packageInfo.policy_templates && packageInfo.policy_templates[0] + ? packageInfo.policy_templates[0] : null; // Create package policy input property diff --git a/x-pack/plugins/ingest_manager/common/types/models/epm.ts b/x-pack/plugins/ingest_manager/common/types/models/epm.ts index 8bc5d9f7210b2..d2d1f22dda3a0 100644 --- a/x-pack/plugins/ingest_manager/common/types/models/epm.ts +++ b/x-pack/plugins/ingest_manager/common/types/models/epm.ts @@ -67,8 +67,8 @@ export interface RegistryPackage { assets?: string[]; internal?: boolean; format_version: string; - datasets?: Dataset[]; - config_templates?: RegistryConfigTemplate[]; + data_streams?: RegistryDataStream[]; + policy_templates?: RegistryPolicyTemplate[]; download: string; path: string; } @@ -80,7 +80,7 @@ interface RegistryImage { size?: string; type?: string; } -export interface RegistryConfigTemplate { +export interface RegistryPolicyTemplate { name: string; title: string; description: string; @@ -127,8 +127,8 @@ export type RegistrySearchResult = Pick< | 'internal' | 'download' | 'path' - | 'datasets' - | 'config_templates' + | 'data_streams' + | 'policy_templates' >; export type ScreenshotItem = RegistryImage; @@ -174,9 +174,9 @@ export type ElasticsearchAssetTypeToParts = Record< ElasticsearchAssetParts[] >; -export interface Dataset { +export interface RegistryDataStream { type: string; - name: string; + dataset: string; title: string; release: string; streams?: RegistryStream[]; diff --git a/x-pack/plugins/ingest_manager/dev_docs/epm.md b/x-pack/plugins/ingest_manager/dev_docs/epm.md index 20209d09e6cc2..a066b6deb3bc8 100644 --- a/x-pack/plugins/ingest_manager/dev_docs/epm.md +++ b/x-pack/plugins/ingest_manager/dev_docs/epm.md @@ -26,5 +26,5 @@ When a package is installed or upgraded, certain Kibana and Elasticsearch assets ### Generation - Index templates are generated from `YAML` files contained in the package. -- There is one index template per dataset. -- For the generation of an index template, all `yml` files contained in the package subdirectory `dataset/DATASET_NAME/fields/` are used. +- There is one index template per data stream. +- For the generation of an index template, all `yml` files contained in the package subdirectory `data_stream/DATASET_NAME/fields/` are used. diff --git a/x-pack/plugins/ingest_manager/dev_docs/indexing_strategy.md b/x-pack/plugins/ingest_manager/dev_docs/indexing_strategy.md index fd7edcb7fcca0..42a0bbc218869 100644 --- a/x-pack/plugins/ingest_manager/dev_docs/indexing_strategy.md +++ b/x-pack/plugins/ingest_manager/dev_docs/indexing_strategy.md @@ -6,48 +6,48 @@ Overall documentation of Ingest Management is now maintained in the `elastic/sta Ingest Management enforces an indexing strategy to allow the system to automatically detect indices and run queries on it. In short the indexing strategy looks as following: ``` -{dataset.type}-{dataset.name}-{dataset.namespace} +{data_stream.type}-{data_stream.dataset}-{data_stream.namespace} ``` -The `{dataset.type}` can be `logs` or `metrics`. The `{dataset.namespace}` is the part where the user can use free form. The only two requirement are that it has only characters allowed in an Elasticsearch index name and does NOT contain a `-`. The `dataset` is defined by the data that is indexed. The same requirements as for the namespace apply. It is expected that the fields for type, namespace and dataset are part of each event and are constant keywords. If there is a dataset or a namespace with a `-` inside, it is recommended to replace it either by a `.` or a `_`. +The `{data_stream.type}` can be `logs` or `metrics`. The `{data_stream.namespace}` is the part where the user can use free form. The only two requirement are that it has only characters allowed in an Elasticsearch index name and does NOT contain a `-`. The `data_stream` is defined by the data that is indexed. The same requirements as for the namespace apply. It is expected that the fields for type, dataset, and namespace are part of each event and are constant keywords. If there is a dataset or a namespace with a `-` inside, it is recommended to replace it either by a `.` or a `_`. -Note: More `{dataset.type}`s might be added in the future like `traces`. +Note: More `{data_stream.type}`s might be added in the future like `traces`. This indexing strategy has a few advantages: -* Each index contains only the fields which are relevant for the dataset. This leads to more dense indices and better field completion. -* ILM policies can be applied per namespace per dataset. -* Rollups can be specified per namespace per dataset. -* Having the namespace user configurable makes setting security permissions possible. -* Having a global metrics and logs template, allows to create new indices on demand which still follow the convention. This is common in the case of k8s as an example. -* Constant keywords allow to narrow down the indices we need to access for querying very efficiently. This is especially relevant in environments which a large number of indices or with indices on slower nodes. +- Each index contains only the fields which are relevant for the datta stream. This leads to more dense indices and better field completion. +- ILM policies can be applied per namespace per data stream. +- Rollups can be specified per namespace per data stream. +- Having the namespace user configurable makes setting security permissions possible. +- Having a global metrics and logs template, allows to create new indices on demand which still follow the convention. This is common in the case of k8s as an example. +- Constant keywords allow to narrow down the indices we need to access for querying very efficiently. This is especially relevant in environments which a large number of indices or with indices on slower nodes. Overall it creates smaller indices in size, makes querying more efficient and allows users to define their own naming parts in namespace and still benefiting from all features that can be built on top of the indexing startegy. ## Ingest Pipeline -The ingest pipelines for a specific dataset will have the following naming scheme: +The ingest pipelines for a specific data stream will have the following naming scheme: ``` -{dataset.type}-{dataset.name}-{package.version} +{data_stream.type}-{data_stream.dataset}-{package.version} ``` -As an example, the ingest pipeline for the Nginx access logs is called `logs-nginx.access-3.4.1`. The same ingest pipeline is used for all namespaces. It is possible that a dataset has multiple ingest pipelines in which case a suffix is added to the name. +As an example, the ingest pipeline for the Nginx access logs is called `logs-nginx.access-3.4.1`. The same ingest pipeline is used for all namespaces. It is possible that a data stream has multiple ingest pipelines in which case a suffix is added to the name. The version is included in each pipeline to allow upgrades. The pipeline itself is listed in the index template and is automatically applied at ingest time. ## Templates & ILM Policies -To make the above strategy possible, alias templates are required. For each type there is a basic alias template with a default ILM policy. These default templates apply to all indices which follow the indexing strategy and do not have a more specific dataset alias template. +To make the above strategy possible, alias templates are required. For each type there is a basic alias template with a default ILM policy. These default templates apply to all indices which follow the indexing strategy and do not have a more specific data stream alias template. The `metrics` and `logs` alias template contain all the basic fields from ECS. Each type template contains an ILM policy. Modifying this default ILM policy will affect all data covered by the default templates. -The templates for a dataset are called as following: +The templates for a data stream are called as following: ``` -{dataset.type}-{dataset.name} +{data_stream.type}-{data_stream.dataset} ``` The pattern used inside the index template is `{type}-{dataset}-*` to match all namespaces. diff --git a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_policy/create_package_policy_page/services/validate_package_policy.test..ts b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_policy/create_package_policy_page/services/validate_package_policy.test..ts index aae750cb67499..d621db615f2bd 100644 --- a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_policy/create_package_policy_page/services/validate_package_policy.test..ts +++ b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_policy/create_package_policy_page/services/validate_package_policy.test..ts @@ -7,7 +7,7 @@ import { PackageInfo, InstallationStatus, NewPackagePolicy, - RegistryConfigTemplate, + RegistryPolicyTemplate, } from '../../../../types'; import { validatePackagePolicy, validationHasErrors } from './validate_package_policy'; @@ -32,9 +32,9 @@ describe('Ingest Manager - validatePackagePolicy()', () => { }, }, status: InstallationStatus.notInstalled, - datasets: [ + data_streams: [ { - name: 'foo', + dataset: 'foo', streams: [ { input: 'foo', @@ -44,7 +44,7 @@ describe('Ingest Manager - validatePackagePolicy()', () => { ], }, { - name: 'bar', + dataset: 'bar', streams: [ { input: 'bar', @@ -59,7 +59,7 @@ describe('Ingest Manager - validatePackagePolicy()', () => { ], }, { - name: 'bar2', + dataset: 'bar2', streams: [ { input: 'bar', @@ -69,7 +69,7 @@ describe('Ingest Manager - validatePackagePolicy()', () => { ], }, { - name: 'disabled', + dataset: 'disabled', streams: [ { input: 'with-disabled-streams', @@ -80,7 +80,7 @@ describe('Ingest Manager - validatePackagePolicy()', () => { ], }, { - name: 'disabled2', + dataset: 'disabled2', streams: [ { input: 'with-disabled-streams', @@ -90,7 +90,7 @@ describe('Ingest Manager - validatePackagePolicy()', () => { ], }, ], - config_templates: [ + policy_templates: [ { name: 'pkgPolicy1', title: 'Package policy 1', @@ -465,7 +465,7 @@ describe('Ingest Manager - validatePackagePolicy()', () => { expect( validatePackagePolicy(validPackagePolicy, { ...mockPackage, - config_templates: undefined, + policy_templates: undefined, }) ).toEqual({ name: null, @@ -476,7 +476,7 @@ describe('Ingest Manager - validatePackagePolicy()', () => { expect( validatePackagePolicy(validPackagePolicy, { ...mockPackage, - config_templates: [], + policy_templates: [], }) ).toEqual({ name: null, @@ -490,7 +490,7 @@ describe('Ingest Manager - validatePackagePolicy()', () => { expect( validatePackagePolicy(validPackagePolicy, { ...mockPackage, - config_templates: [{} as RegistryConfigTemplate], + policy_templates: [{} as RegistryPolicyTemplate], }) ).toEqual({ name: null, @@ -501,7 +501,7 @@ describe('Ingest Manager - validatePackagePolicy()', () => { expect( validatePackagePolicy(validPackagePolicy, { ...mockPackage, - config_templates: [({ inputs: [] } as unknown) as RegistryConfigTemplate], + policy_templates: [({ inputs: [] } as unknown) as RegistryPolicyTemplate], }) ).toEqual({ name: null, diff --git a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_policy/create_package_policy_page/services/validate_package_policy.ts b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_policy/create_package_policy_page/services/validate_package_policy.ts index 03060c5dcb20e..04cd21884e8f2 100644 --- a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_policy/create_package_policy_page/services/validate_package_policy.ts +++ b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_policy/create_package_policy_page/services/validate_package_policy.ts @@ -65,11 +65,11 @@ export const validatePackagePolicy = ( } if ( - !packageInfo.config_templates || - packageInfo.config_templates.length === 0 || - !packageInfo.config_templates[0] || - !packageInfo.config_templates[0].inputs || - packageInfo.config_templates[0].inputs.length === 0 + !packageInfo.policy_templates || + packageInfo.policy_templates.length === 0 || + !packageInfo.policy_templates[0] || + !packageInfo.policy_templates[0].inputs || + packageInfo.policy_templates[0].inputs.length === 0 ) { validationResults.inputs = null; return validationResults; @@ -78,16 +78,16 @@ export const validatePackagePolicy = ( const registryInputsByType: Record< string, RegistryInput - > = packageInfo.config_templates[0].inputs.reduce((inputs, registryInput) => { + > = packageInfo.policy_templates[0].inputs.reduce((inputs, registryInput) => { inputs[registryInput.type] = registryInput; return inputs; }, {} as Record<string, RegistryInput>); const registryStreamsByDataset: Record<string, RegistryStream[]> = ( - packageInfo.datasets || [] - ).reduce((datasets, registryDataset) => { - datasets[registryDataset.name] = registryDataset.streams || []; - return datasets; + packageInfo.data_streams || [] + ).reduce((dataStreams, registryDataStream) => { + dataStreams[registryDataStream.dataset] = registryDataStream.streams || []; + return dataStreams; }, {} as Record<string, RegistryStream[]>); // Validate each package policy input with either its own config fields or streams diff --git a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_policy/create_package_policy_page/step_configure_package.tsx b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_policy/create_package_policy_page/step_configure_package.tsx index b77153daee2fc..d3d5e60c34e58 100644 --- a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_policy/create_package_policy_page/step_configure_package.tsx +++ b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_policy/create_package_policy_page/step_configure_package.tsx @@ -17,13 +17,13 @@ const findStreamsForInputType = ( ): Array<RegistryStream & { data_stream: { dataset: string } }> => { const streams: Array<RegistryStream & { data_stream: { dataset: string } }> = []; - (packageInfo.datasets || []).forEach((dataset) => { - (dataset.streams || []).forEach((stream) => { + (packageInfo.data_streams || []).forEach((dataStream) => { + (dataStream.streams || []).forEach((stream) => { if (stream.input === inputType) { streams.push({ ...stream, data_stream: { - dataset: dataset.name, + dataset: dataStream.dataset, }, }); } @@ -53,14 +53,14 @@ export const StepConfigurePackagePolicy: React.FunctionComponent<{ // Configure inputs (and their streams) // Assume packages only export one config template for now const renderConfigureInputs = () => - packageInfo.config_templates && - packageInfo.config_templates[0] && - packageInfo.config_templates[0].inputs && - packageInfo.config_templates[0].inputs.length ? ( + packageInfo.policy_templates && + packageInfo.policy_templates[0] && + packageInfo.policy_templates[0].inputs && + packageInfo.policy_templates[0].inputs.length ? ( <> <EuiHorizontalRule margin="m" /> <EuiFlexGroup direction="column" gutterSize="none"> - {packageInfo.config_templates[0].inputs.map((packageInput) => { + {packageInfo.policy_templates[0].inputs.map((packageInput) => { const packagePolicyInput = packagePolicy.inputs.find( (input) => input.type === packageInput.type ); diff --git a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/types/index.ts b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/types/index.ts index 71a44089b8bf7..e825448f359d6 100644 --- a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/types/index.ts +++ b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/types/index.ts @@ -89,7 +89,7 @@ export { RegistryVarsEntry, RegistryInput, RegistryStream, - RegistryConfigTemplate, + RegistryPolicyTemplate, PackageList, PackageListItem, PackagesGroupedByStatus, diff --git a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/index.test.ts b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/index.test.ts index bdd8883ea29c2..78aa17da5030c 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/index.test.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/index.test.ts @@ -4,12 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Dataset } from '../../../types'; -import { getDatasetAssetBaseName } from './index'; +import { RegistryDataStream } from '../../../types'; +import { getRegistryDataStreamAssetBaseName } from './index'; test('getBaseName', () => { - const dataset: Dataset = { - name: 'nginx.access', + const dataStream: RegistryDataStream = { + dataset: 'nginx.access', title: 'Nginx Acess Logs', release: 'beta', type: 'logs', @@ -17,6 +17,6 @@ test('getBaseName', () => { package: 'nginx', path: 'access', }; - const name = getDatasetAssetBaseName(dataset); + const name = getRegistryDataStreamAssetBaseName(dataStream); expect(name).toStrictEqual('logs-nginx.access'); }); diff --git a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/index.ts b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/index.ts index 0cb09ba054bf1..17cd28cc8a081 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/index.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/index.ts @@ -4,12 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Dataset } from '../../../types'; +import { RegistryDataStream } from '../../../types'; /** * Creates the base name for Elasticsearch assets in the form of - * {type}-{id} + * {type}-{dataset} */ -export function getDatasetAssetBaseName(dataset: Dataset): string { - return `${dataset.type}-${dataset.name}`; +export function getRegistryDataStreamAssetBaseName(dataStream: RegistryDataStream): string { + return `${dataStream.type}-${dataStream.dataset}`; } diff --git a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/ingest_pipeline/ingest_pipelines.test.ts b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/ingest_pipeline/ingest_pipelines.test.ts index 36a19c512a8b4..378dd271779b4 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/ingest_pipeline/ingest_pipelines.test.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/ingest_pipeline/ingest_pipelines.test.ts @@ -7,7 +7,7 @@ import { readFileSync } from 'fs'; import path from 'path'; import { rewriteIngestPipeline, getPipelineNameForInstallation } from './install'; -import { Dataset } from '../../../../types'; +import { RegistryDataStream } from '../../../../types'; test('a json-format pipeline with pipeline references is correctly rewritten', () => { const inputStandard = readFileSync( @@ -106,8 +106,8 @@ test('a yml-format pipeline with no pipeline references stays unchanged', () => }); test('getPipelineNameForInstallation gets correct name', () => { - const dataset: Dataset = { - name: 'coredns.log', + const dataStream: RegistryDataStream = { + dataset: 'coredns.log', title: 'CoreDNS logs', release: 'ga', type: 'logs', @@ -118,19 +118,19 @@ test('getPipelineNameForInstallation gets correct name', () => { const packageVersion = '1.0.1'; const pipelineRefName = 'pipeline-json'; const pipelineEntryNameForInstallation = getPipelineNameForInstallation({ - pipelineName: dataset.ingest_pipeline, - dataset, + pipelineName: dataStream.ingest_pipeline, + dataStream, packageVersion, }); const pipelineRefNameForInstallation = getPipelineNameForInstallation({ pipelineName: pipelineRefName, - dataset, + dataStream, packageVersion, }); expect(pipelineEntryNameForInstallation).toBe( - `${dataset.type}-${dataset.name}-${packageVersion}` + `${dataStream.type}-${dataStream.dataset}-${packageVersion}` ); expect(pipelineRefNameForInstallation).toBe( - `${dataset.type}-${dataset.name}-${packageVersion}-${pipelineRefName}` + `${dataStream.type}-${dataStream.dataset}-${packageVersion}-${pipelineRefName}` ); }); diff --git a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/ingest_pipeline/install.ts b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/ingest_pipeline/install.ts index 878c6ea8f2804..6088bcb71f878 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/ingest_pipeline/install.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/ingest_pipeline/install.ts @@ -7,7 +7,7 @@ import { SavedObjectsClientContract } from 'src/core/server'; import { EsAssetReference, - Dataset, + RegistryDataStream, ElasticsearchAssetType, RegistryPackage, } from '../../../../types'; @@ -30,17 +30,19 @@ export const installPipelines = async ( // unlike other ES assets, pipeline names are versioned so after a template is updated // it can be created pointing to the new template, without removing the old one and effecting data // so do not remove the currently installed pipelines here - const datasets = registryPackage.datasets; - if (!datasets?.length) return []; + const dataStreams = registryPackage.data_streams; + if (!dataStreams?.length) return []; const pipelinePaths = paths.filter((path) => isPipeline(path)); // get and save pipeline refs before installing pipelines - const pipelineRefs = datasets.reduce<EsAssetReference[]>((acc, dataset) => { - const filteredPaths = pipelinePaths.filter((path) => isDatasetPipeline(path, dataset.path)); + const pipelineRefs = dataStreams.reduce<EsAssetReference[]>((acc, dataStream) => { + const filteredPaths = pipelinePaths.filter((path) => + isDataStreamPipeline(path, dataStream.path) + ); const pipelineObjectRefs = filteredPaths.map((path) => { const { name } = getNameAndExtension(path); const nameForInstallation = getPipelineNameForInstallation({ pipelineName: name, - dataset, + dataStream, packageVersion: registryPackage.version, }); return { id: nameForInstallation, type: ElasticsearchAssetType.ingestPipeline }; @@ -49,11 +51,11 @@ export const installPipelines = async ( return acc; }, []); await saveInstalledEsRefs(savedObjectsClient, registryPackage.name, pipelineRefs); - const pipelines = datasets.reduce<Array<Promise<EsAssetReference[]>>>((acc, dataset) => { - if (dataset.ingest_pipeline) { + const pipelines = dataStreams.reduce<Array<Promise<EsAssetReference[]>>>((acc, dataStream) => { + if (dataStream.ingest_pipeline) { acc.push( - installPipelinesForDataset({ - dataset, + installPipelinesForDataStream({ + dataStream, callCluster, paths: pipelinePaths, pkgVersion: registryPackage.version, @@ -86,18 +88,18 @@ export function rewriteIngestPipeline( return pipeline; } -export async function installPipelinesForDataset({ +export async function installPipelinesForDataStream({ callCluster, pkgVersion, paths, - dataset, + dataStream, }: { callCluster: CallESAsCurrentUser; pkgVersion: string; paths: string[]; - dataset: Dataset; + dataStream: RegistryDataStream; }): Promise<EsAssetReference[]> { - const pipelinePaths = paths.filter((path) => isDatasetPipeline(path, dataset.path)); + const pipelinePaths = paths.filter((path) => isDataStreamPipeline(path, dataStream.path)); let pipelines: any[] = []; const substitutions: RewriteSubstitution[] = []; @@ -105,7 +107,7 @@ export async function installPipelinesForDataset({ const { name, extension } = getNameAndExtension(path); const nameForInstallation = getPipelineNameForInstallation({ pipelineName: name, - dataset, + dataStream, packageVersion: pkgVersion, }); const content = Registry.getAsset(path).toString('utf-8'); @@ -175,13 +177,13 @@ async function installPipeline({ const isDirectory = ({ path }: Registry.ArchiveEntry) => path.endsWith('/'); -const isDatasetPipeline = (path: string, datasetName: string) => { +const isDataStreamPipeline = (path: string, dataStreamDataset: string) => { const pathParts = Registry.pathParts(path); return ( !isDirectory({ path }) && pathParts.type === ElasticsearchAssetType.ingestPipeline && pathParts.dataset !== undefined && - datasetName === pathParts.dataset + dataStreamDataset === pathParts.dataset ); }; const isPipeline = (path: string) => { @@ -206,15 +208,15 @@ const getNameAndExtension = ( export const getPipelineNameForInstallation = ({ pipelineName, - dataset, + dataStream, packageVersion, }: { pipelineName: string; - dataset: Dataset; + dataStream: RegistryDataStream; packageVersion: string; }): string => { - const isPipelineEntry = pipelineName === dataset.ingest_pipeline; + const isPipelineEntry = pipelineName === dataStream.ingest_pipeline; const suffix = isPipelineEntry ? '' : `-${pipelineName}`; // if this is the pipeline entry, don't add a suffix - return `${dataset.type}-${dataset.name}-${packageVersion}${suffix}`; + return `${dataStream.type}-${dataStream.dataset}-${packageVersion}${suffix}`; }; diff --git a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/template/install.ts b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/template/install.ts index f4e8c3bfd99d3..8f80feb268910 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/template/install.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/template/install.ts @@ -7,7 +7,7 @@ import Boom from 'boom'; import { SavedObjectsClientContract } from 'src/core/server'; import { - Dataset, + RegistryDataStream, RegistryPackage, ElasticsearchAssetType, TemplateRef, @@ -38,29 +38,32 @@ export const installTemplates = async ( registryPackage.name, ElasticsearchAssetType.indexTemplate ); - // build templates per dataset from yml files - const datasets = registryPackage.datasets; - if (!datasets) return []; + // build templates per data stream from yml files + const dataStreams = registryPackage.data_streams; + if (!dataStreams) return []; // get template refs to save - const installedTemplateRefs = datasets.map((dataset) => ({ - id: generateTemplateName(dataset), + const installedTemplateRefs = dataStreams.map((dataStream) => ({ + id: generateTemplateName(dataStream), type: ElasticsearchAssetType.indexTemplate, })); // add package installation's references to index templates await saveInstalledEsRefs(savedObjectsClient, registryPackage.name, installedTemplateRefs); - if (datasets) { - const installTemplatePromises = datasets.reduce<Array<Promise<TemplateRef>>>((acc, dataset) => { - acc.push( - installTemplateForDataset({ - pkg: registryPackage, - callCluster, - dataset, - }) - ); - return acc; - }, []); + if (dataStreams) { + const installTemplatePromises = dataStreams.reduce<Array<Promise<TemplateRef>>>( + (acc, dataStream) => { + acc.push( + installTemplateForDataStream({ + pkg: registryPackage, + callCluster, + dataStream, + }) + ); + return acc; + }, + [] + ); const res = await Promise.all(installTemplatePromises); const installedTemplates = res.flat(); @@ -158,25 +161,25 @@ const isComponentTemplate = (path: string) => { }; /** - * installTemplatesForDataset installs one template for each dataset + * installTemplateForDataStream installs one template for each data stream * - * The template is currently loaded with the pkgey-package-dataset + * The template is currently loaded with the pkgkey-package-data_stream */ -export async function installTemplateForDataset({ +export async function installTemplateForDataStream({ pkg, callCluster, - dataset, + dataStream, }: { pkg: RegistryPackage; callCluster: CallESAsCurrentUser; - dataset: Dataset; + dataStream: RegistryDataStream; }): Promise<TemplateRef> { - const fields = await loadFieldsFromYaml(pkg, dataset.path); + const fields = await loadFieldsFromYaml(pkg, dataStream.path); return installTemplate({ callCluster, fields, - dataset, + dataStream, packageVersion: pkg.version, packageName: pkg.name, }); @@ -237,7 +240,7 @@ function buildComponentTemplates(registryElasticsearch: RegistryElasticsearch | return { settingsTemplate, mappingsTemplate }; } -async function installDatasetComponentTemplates( +async function installDataStreamComponentTemplates( templateName: string, registryElasticsearch: RegistryElasticsearch | undefined, callCluster: CallESAsCurrentUser @@ -277,35 +280,35 @@ async function installDatasetComponentTemplates( export async function installTemplate({ callCluster, fields, - dataset, + dataStream, packageVersion, packageName, }: { callCluster: CallESAsCurrentUser; fields: Field[]; - dataset: Dataset; + dataStream: RegistryDataStream; packageVersion: string; packageName: string; }): Promise<TemplateRef> { const mappings = generateMappings(processFields(fields)); - const templateName = generateTemplateName(dataset); + const templateName = generateTemplateName(dataStream); let pipelineName; - if (dataset.ingest_pipeline) { + if (dataStream.ingest_pipeline) { pipelineName = getPipelineNameForInstallation({ - pipelineName: dataset.ingest_pipeline, - dataset, + pipelineName: dataStream.ingest_pipeline, + dataStream, packageVersion, }); } - const composedOfTemplates = await installDatasetComponentTemplates( + const composedOfTemplates = await installDataStreamComponentTemplates( templateName, - dataset.elasticsearch, + dataStream.elasticsearch, callCluster ); const template = getTemplate({ - type: dataset.type, + type: dataStream.type, templateName, mappings, pipelineName, diff --git a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/template/template.ts b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/template/template.ts index 71e49acf1766f..00c2e873ba129 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/template/template.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/template/template.ts @@ -6,13 +6,13 @@ import { Field, Fields } from '../../fields/field'; import { - Dataset, + RegistryDataStream, CallESAsCurrentUser, TemplateRef, IndexTemplate, IndexTemplateMappings, } from '../../../../types'; -import { getDatasetAssetBaseName } from '../index'; +import { getRegistryDataStreamAssetBaseName } from '../index'; interface Properties { [key: string]: any; @@ -222,22 +222,24 @@ function getDefaultProperties(field: Field): Properties { /** * Generates the template name out of the given information */ -export function generateTemplateName(dataset: Dataset): string { - return getDatasetAssetBaseName(dataset); +export function generateTemplateName(dataStream: RegistryDataStream): string { + return getRegistryDataStreamAssetBaseName(dataStream); } /** - * Returns a map of the dataset path fields to elasticsearch index pattern. - * @param datasets an array of Dataset objects + * Returns a map of the data stream path fields to elasticsearch index pattern. + * @param dataStreams an array of RegistryDataStream objects */ -export function generateESIndexPatterns(datasets: Dataset[] | undefined): Record<string, string> { - if (!datasets) { +export function generateESIndexPatterns( + dataStreams: RegistryDataStream[] | undefined +): Record<string, string> { + if (!dataStreams) { return {}; } const patterns: Record<string, string> = {}; - for (const dataset of datasets) { - patterns[dataset.path] = generateTemplateName(dataset) + '-*'; + for (const dataStream of dataStreams) { + patterns[dataStream.path] = generateTemplateName(dataStream) + '-*'; } return patterns; } @@ -389,7 +391,7 @@ const updateExistingIndex = async ({ }) => { const { settings, mappings } = indexTemplate.template; - // for now, remove from object so as not to update stream or dataset properties of the index until type and name + // for now, remove from object so as not to update stream or data stream properties of the index until type and name // are added in https://github.com/elastic/kibana/issues/66551. namespace value we will continue // to skip updating and assume the value in the index mapping is correct delete mappings.properties.stream; diff --git a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/transform/transform.test.ts b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/transform/transform.test.ts index 7cb507d15679e..768c6af1d8915 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/transform/transform.test.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/elasticsearch/transform/transform.test.ts @@ -114,10 +114,10 @@ describe('test transform install', () => { ({ name: 'endpoint', version: '0.16.0-dev.0', - datasets: [ + data_streams: [ { type: 'metrics', - name: 'endpoint.metadata', + dataset: 'endpoint.metadata', title: 'Endpoint Metadata', release: 'experimental', package: 'endpoint', @@ -131,7 +131,7 @@ describe('test transform install', () => { }, { type: 'metrics', - name: 'endpoint.metadata_current', + dataset: 'endpoint.metadata_current', title: 'Endpoint Metadata Current', release: 'experimental', package: 'endpoint', @@ -146,7 +146,7 @@ describe('test transform install', () => { ], } as unknown) as RegistryPackage, [ - 'endpoint-0.16.0-dev.0/dataset/policy/elasticsearch/ingest_pipeline/default.json', + 'endpoint-0.16.0-dev.0/data_stream/policy/elasticsearch/ingest_pipeline/default.json', 'endpoint-0.16.0-dev.0/elasticsearch/transform/metadata/default.json', 'endpoint-0.16.0-dev.0/elasticsearch/transform/metadata_current/default.json', ], @@ -302,10 +302,10 @@ describe('test transform install', () => { ({ name: 'endpoint', version: '0.16.0-dev.0', - datasets: [ + data_streams: [ { type: 'metrics', - name: 'endpoint.metadata_current', + dataset: 'endpoint.metadata_current', title: 'Endpoint Metadata', release: 'experimental', package: 'endpoint', @@ -404,10 +404,10 @@ describe('test transform install', () => { ({ name: 'endpoint', version: '0.16.0-dev.0', - datasets: [ + data_streams: [ { type: 'metrics', - name: 'endpoint.metadata', + dataset: 'endpoint.metadata', title: 'Endpoint Metadata', release: 'experimental', package: 'endpoint', @@ -421,7 +421,7 @@ describe('test transform install', () => { }, { type: 'metrics', - name: 'endpoint.metadata_current', + dataset: 'endpoint.metadata_current', title: 'Endpoint Metadata Current', release: 'experimental', package: 'endpoint', diff --git a/x-pack/plugins/ingest_manager/server/services/epm/kibana/index_pattern/install.ts b/x-pack/plugins/ingest_manager/server/services/epm/kibana/index_pattern/install.ts index 7fe3713e186ee..bde542412f123 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/kibana/index_pattern/install.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/kibana/index_pattern/install.ts @@ -122,8 +122,8 @@ export async function installIndexPatterns( return; } - // get all dataset fields from all installed packages - const fields = await getAllDatasetFieldsByType(installedPackagesInfo, indexPatternType); + // get all data stream fields from all installed packages + const fields = await getAllDataStreamFieldsByType(installedPackagesInfo, indexPatternType); const kibanaIndexPattern = createIndexPattern(indexPatternType, fields); // create or overwrite the index pattern @@ -135,23 +135,27 @@ export async function installIndexPatterns( } // loops through all given packages and returns an array -// of all fields from all datasets matching datasetType -export const getAllDatasetFieldsByType = async ( +// of all fields from all data streams matching data stream type +export const getAllDataStreamFieldsByType = async ( packages: RegistryPackage[], - datasetType: IndexPatternType + dataStreamType: IndexPatternType ): Promise<Fields> => { - const datasetsPromises = packages.reduce<Array<Promise<Field[]>>>((acc, pkg) => { - if (pkg.datasets) { - // filter out datasets by datasetType - const matchingDatasets = pkg.datasets.filter((dataset) => dataset.type === datasetType); - matchingDatasets.forEach((dataset) => acc.push(loadFieldsFromYaml(pkg, dataset.path))); + const dataStreamsPromises = packages.reduce<Array<Promise<Field[]>>>((acc, pkg) => { + if (pkg.data_streams) { + // filter out data streams by data stream type + const matchingDataStreams = pkg.data_streams.filter( + (dataStream) => dataStream.type === dataStreamType + ); + matchingDataStreams.forEach((dataStream) => + acc.push(loadFieldsFromYaml(pkg, dataStream.path)) + ); } return acc; }, []); - // get all the datasets for each installed package into one array - const allDatasetFields: Fields[] = await Promise.all(datasetsPromises); - return allDatasetFields.flat(); + // get all the data stream fields for each installed package into one array + const allDataStreamFields: Fields[] = await Promise.all(dataStreamsPromises); + return allDataStreamFields.flat(); }; // creates or updates index pattern diff --git a/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.test.ts b/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.test.ts index 6d5ca036aeb13..78b42b03be831 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.test.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.test.ts @@ -11,8 +11,8 @@ const tests = [ { package: { assets: [ - '/package/coredns/1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', - '/package/coredns/1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-json.json', + '/package/coredns/1.0.1/data_stream/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', + '/package/coredns/1.0.1/data_stream/log/elasticsearch/ingest-pipeline/pipeline-json.json', ], path: '/package/coredns/1.0.1', }, @@ -21,15 +21,15 @@ const tests = [ return true; }, expected: [ - '/package/coredns/1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', - '/package/coredns/1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-json.json', + '/package/coredns/1.0.1/data_stream/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', + '/package/coredns/1.0.1/data_stream/log/elasticsearch/ingest-pipeline/pipeline-json.json', ], }, { package: { assets: [ - '/package/coredns-1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', - '/package/coredns-1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-json.json', + '/package/coredns-1.0.1/data_stream/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', + '/package/coredns-1.0.1/data_stream/log/elasticsearch/ingest-pipeline/pipeline-json.json', ], path: '/package/coredns/1.0.1', }, @@ -43,8 +43,8 @@ const tests = [ { package: { assets: [ - '/package/coredns-1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', - '/package/coredns-1.0.1/dataset/log/elasticsearch/ingest-pipeline/pipeline-json.json', + '/package/coredns-1.0.1/data_stream/log/elasticsearch/ingest-pipeline/pipeline-plaintext.json', + '/package/coredns-1.0.1/data_stream/log/elasticsearch/ingest-pipeline/pipeline-json.json', ], }, // Filter which does not exist diff --git a/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.ts b/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.ts index 19a023eb2ad4c..a8abc12917781 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/packages/assets.ts @@ -9,9 +9,9 @@ import * as Registry from '../registry'; import { ensureCachedArchiveInfo } from '../registry'; // paths from RegistryPackage are routes to the assets on EPR -// e.g. `/package/nginx/1.2.0/dataset/access/fields/fields.yml` +// e.g. `/package/nginx/1.2.0/data_stream/access/fields/fields.yml` // paths for ArchiveEntry are routes to the assets in the archive -// e.g. `nginx-1.2.0/dataset/access/fields/fields.yml` +// e.g. `nginx-1.2.0/data_stream/access/fields/fields.yml` // RegistryPackage paths have a `/package/` prefix compared to ArchiveEntry paths // and different package and version structure const EPR_PATH_PREFIX = '/package'; @@ -37,7 +37,7 @@ export function getAssets( // if dataset, filter for them if (datasetName) { - const comparePath = `${packageInfo.path}/dataset/${datasetName}/`; + const comparePath = `${packageInfo.path}/data_stream/${datasetName}/`; if (!path.includes(comparePath)) { continue; } diff --git a/x-pack/plugins/ingest_manager/server/services/epm/packages/install.ts b/x-pack/plugins/ingest_manager/server/services/epm/packages/install.ts index d501b05d96c1c..d7262ebb66b2e 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/packages/install.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/packages/install.ts @@ -259,7 +259,7 @@ export async function installPackage({ const removable = !isRequiredPackage(pkgName); const { internal = false } = registryPackageInfo; - const toSaveESIndexPatterns = generateESIndexPatterns(registryPackageInfo.datasets); + const toSaveESIndexPatterns = generateESIndexPatterns(registryPackageInfo.data_streams); // add the package installation to the saved object. // if some installation already exists, just update install info @@ -304,7 +304,7 @@ export async function installPackage({ // currently only the base package has an ILM policy // at some point ILM policies can be installed/modified - // per dataset and we should then save them + // per data stream and we should then save them await installILMPolicy(paths, callCluster); // installs versionized pipelines without removing currently installed ones diff --git a/x-pack/plugins/ingest_manager/server/services/epm/registry/index.test.ts b/x-pack/plugins/ingest_manager/server/services/epm/registry/index.test.ts index b40638eefbae2..2fd9175549026 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/registry/index.test.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/registry/index.test.ts @@ -41,11 +41,11 @@ const testPaths = [ }, }, { - path: 'coredns-1.0.1/dataset/stats/fields/coredns.stats.yml', + path: 'coredns-1.0.1/data_stream/stats/fields/coredns.stats.yml', assetParts: { dataset: 'stats', file: 'coredns.stats.yml', - path: 'coredns-1.0.1/dataset/stats/fields/coredns.stats.yml', + path: 'coredns-1.0.1/data_stream/stats/fields/coredns.stats.yml', pkgkey: 'coredns-1.0.1', service: '', type: 'fields', diff --git a/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts b/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts index 96f7530641390..22f1b670b2cc4 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts @@ -158,12 +158,12 @@ export function pathParts(path: string): AssetParts { let [pkgkey, service, type, file] = path.split('/'); - // if it's a dataset - if (service === 'dataset') { + // if it's a data stream + if (service === 'data_stream') { // save the dataset name dataset = type; - // drop the `dataset/dataset-name` portion & re-parse - [pkgkey, service, type, file] = path.replace(`dataset/${dataset}/`, '').split('/'); + // drop the `data_stream/dataset-name` portion & re-parse + [pkgkey, service, type, file] = path.replace(`data_stream/${dataset}/`, '').split('/'); } // This is to cover for the fields.yml files inside the "fields" directory diff --git a/x-pack/plugins/ingest_manager/server/services/package_policy.test.ts b/x-pack/plugins/ingest_manager/server/services/package_policy.test.ts index 0d89c52957632..6064e5bae0634 100644 --- a/x-pack/plugins/ingest_manager/server/services/package_policy.test.ts +++ b/x-pack/plugins/ingest_manager/server/services/package_policy.test.ts @@ -45,14 +45,14 @@ describe('Package policy service', () => { it('should work with config variables from the stream', async () => { const inputs = await packagePolicyService.assignPackageStream( ({ - datasets: [ + data_streams: [ { type: 'logs', - name: 'package.dataset1', + dataset: 'package.dataset1', streams: [{ input: 'log', template_path: 'some_template_path.yml' }], }, ], - config_templates: [ + policy_templates: [ { inputs: [{ type: 'log' }], }, @@ -64,7 +64,7 @@ describe('Package policy service', () => { enabled: true, streams: [ { - id: 'dataset01', + id: 'datastream01', data_stream: { dataset: 'package.dataset1', type: 'logs' }, enabled: true, vars: { @@ -84,7 +84,7 @@ describe('Package policy service', () => { enabled: true, streams: [ { - id: 'dataset01', + id: 'datastream01', data_stream: { dataset: 'package.dataset1', type: 'logs' }, enabled: true, vars: { @@ -106,14 +106,14 @@ describe('Package policy service', () => { it('should work with config variables at the input level', async () => { const inputs = await packagePolicyService.assignPackageStream( ({ - datasets: [ + data_streams: [ { - name: 'package.dataset1', + dataset: 'package.dataset1', type: 'logs', streams: [{ input: 'log', template_path: 'some_template_path.yml' }], }, ], - config_templates: [ + policy_templates: [ { inputs: [{ type: 'log' }], }, @@ -130,7 +130,7 @@ describe('Package policy service', () => { }, streams: [ { - id: 'dataset01', + id: 'datastream01', data_stream: { dataset: 'package.dataset1', type: 'logs' }, enabled: true, }, @@ -150,7 +150,7 @@ describe('Package policy service', () => { }, streams: [ { - id: 'dataset01', + id: 'datastream01', data_stream: { dataset: 'package.dataset1', type: 'logs' }, enabled: true, compiled_stream: { diff --git a/x-pack/plugins/ingest_manager/server/services/package_policy.ts b/x-pack/plugins/ingest_manager/server/services/package_policy.ts index 3a02544250ff0..d91f6e8580fc3 100644 --- a/x-pack/plugins/ingest_manager/server/services/package_policy.ts +++ b/x-pack/plugins/ingest_manager/server/services/package_policy.ts @@ -375,19 +375,19 @@ async function _assignPackageStreamToStream( return { ...stream, compiled_stream: undefined }; } const datasetPath = getDataset(stream.data_stream.dataset); - const packageDatasets = pkgInfo.datasets; - if (!packageDatasets) { - throw new Error('Stream template not found, no datasets'); + const packageDataStreams = pkgInfo.data_streams; + if (!packageDataStreams) { + throw new Error('Stream template not found, no data streams'); } - const packageDataset = packageDatasets.find( - (pkgDataset) => pkgDataset.name === stream.data_stream.dataset + const packageDataStream = packageDataStreams.find( + (pkgDataStream) => pkgDataStream.dataset === stream.data_stream.dataset ); - if (!packageDataset) { + if (!packageDataStream) { throw new Error(`Stream template not found, unable to find dataset ${datasetPath}`); } - const streamFromPkg = (packageDataset.streams || []).find( + const streamFromPkg = (packageDataStream.streams || []).find( (pkgStream) => pkgStream.input === input.type ); if (!streamFromPkg) { diff --git a/x-pack/plugins/ingest_manager/server/types/index.tsx b/x-pack/plugins/ingest_manager/server/types/index.tsx index b43d6355c479a..fc5ba1af196ad 100644 --- a/x-pack/plugins/ingest_manager/server/types/index.tsx +++ b/x-pack/plugins/ingest_manager/server/types/index.tsx @@ -45,7 +45,7 @@ export { InstallationStatus, PackageInfo, RegistryVarsEntry, - Dataset, + RegistryDataStream, RegistryElasticsearch, AssetReference, EsAssetReference, diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/direct_upload_packages/apache_0.1.4.tar.gz b/x-pack/test/ingest_manager_api_integration/apis/fixtures/direct_upload_packages/apache_0.1.4.tar.gz index cc983f6ac6d1aa53ac1b4a5b38b020a072a2326a..9cc4009d35c31da9e555cc98a0235f55efcf565e 100644 GIT binary patch delta 461888 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¨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%0Acucd;*@(zH6@Ggf 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ν6$7bzm2snIHKH6N~@Z(e@G$i!`CnBb0R+f=pBI9 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 N-*nG%1;Ym}1^@|_VI%+m delta 463579 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 (){+O1OWLm%-H7#Z$^0-#vaFJ_N2-j=VfQJr)@$ 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�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�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%0A7B! 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 STmT3F0RR6Xxx!HZyb1vQQ#9WI diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/elasticsearch/ilm_policy/all_assets.json b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/elasticsearch/ilm_policy/all_assets.json similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/elasticsearch/ilm_policy/all_assets.json rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/elasticsearch/ilm_policy/all_assets.json diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/elasticsearch/ingest_pipeline/default.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/elasticsearch/ingest_pipeline/default.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/elasticsearch/ingest_pipeline/default.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/elasticsearch/ingest_pipeline/default.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/elasticsearch/ingest_pipeline/pipeline1.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/elasticsearch/ingest_pipeline/pipeline1.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/elasticsearch/ingest_pipeline/pipeline1.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/elasticsearch/ingest_pipeline/pipeline1.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/elasticsearch/ingest_pipeline/pipeline2.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/elasticsearch/ingest_pipeline/pipeline2.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/elasticsearch/ingest_pipeline/pipeline2.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/elasticsearch/ingest_pipeline/pipeline2.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/fields/ecs.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/fields/ecs.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/fields/ecs.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/fields/ecs.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/dataset/test/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/dataset/test/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_logs/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_metrics/fields/ecs.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_metrics/fields/ecs.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_metrics/fields/ecs.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_metrics/fields/ecs.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_metrics/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_metrics/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_metrics/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_metrics/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_metrics/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_metrics/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_metrics/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/data_stream/test_metrics/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs/elasticsearch/ilm_policy/all_assets.json b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs/elasticsearch/ilm_policy/all_assets.json similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs/elasticsearch/ilm_policy/all_assets.json rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs/elasticsearch/ilm_policy/all_assets.json diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs/elasticsearch/ingest_pipeline/default.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs/elasticsearch/ingest_pipeline/default.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs/elasticsearch/ingest_pipeline/default.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs/elasticsearch/ingest_pipeline/default.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs/elasticsearch/ingest_pipeline/pipeline1.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs/elasticsearch/ingest_pipeline/pipeline1.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs/elasticsearch/ingest_pipeline/pipeline1.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs/elasticsearch/ingest_pipeline/pipeline1.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs/fields/ecs.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs/fields/ecs.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs/fields/ecs.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs/fields/ecs.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs2/fields/ecs.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs2/fields/ecs.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs2/fields/ecs.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs2/fields/ecs.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs2/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs2/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs2/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs2/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs2/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs2/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_logs2/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_logs2/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_metrics/fields/ecs.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_metrics/fields/ecs.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_metrics/fields/ecs.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_metrics/fields/ecs.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_metrics/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_metrics/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_metrics/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_metrics/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_metrics/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_metrics/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/dataset/test_metrics/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.2.0/data_stream/test_metrics/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_logs/elasticsearch/ilm_policy/all_assets.json b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_logs/elasticsearch/ilm_policy/all_assets.json similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_logs/elasticsearch/ilm_policy/all_assets.json rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_logs/elasticsearch/ilm_policy/all_assets.json diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_logs/elasticsearch/ingest_pipeline/default.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_logs/elasticsearch/ingest_pipeline/default.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_logs/elasticsearch/ingest_pipeline/default.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_logs/elasticsearch/ingest_pipeline/default.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_logs/fields/ecs.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_logs/fields/ecs.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_logs/fields/ecs.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_logs/fields/ecs.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_logs/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_logs/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_logs/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_logs/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_logs/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/all_assets/0.1.0/dataset/test_logs/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_logs/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_metrics/fields/ecs.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_metrics/fields/ecs.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_metrics/fields/ecs.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_metrics/fields/ecs.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_metrics/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_metrics/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_metrics/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_metrics/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_metrics/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_metrics/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_metrics/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/data_stream/test_metrics/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/manifest.yml index 0ab43760b7ee8..28979cca0771b 100644 --- a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/manifest.yml +++ b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/manifest.yml @@ -1,5 +1,5 @@ format_version: 1.0.0 -name: datastreams +name: datastreams title: datastream test description: This is a test package for testing that datastreams rollover when mappings are incompatible version: 0.1.0 @@ -13,8 +13,3 @@ requirement: versions: '>7.7.0' kibana: versions: '>7.7.0' - -icons: - - src: '/img/logo_overrides_64_color.svg' - size: '16x16' - type: 'image/svg+xml' diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_logs/elasticsearch/ilm_policy/all_assets.json b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_logs/elasticsearch/ilm_policy/all_assets.json similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_logs/elasticsearch/ilm_policy/all_assets.json rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_logs/elasticsearch/ilm_policy/all_assets.json diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_logs/elasticsearch/ingest_pipeline/default.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_logs/elasticsearch/ingest_pipeline/default.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_logs/elasticsearch/ingest_pipeline/default.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_logs/elasticsearch/ingest_pipeline/default.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_logs/fields/ecs.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_logs/fields/ecs.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_logs/fields/ecs.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_logs/fields/ecs.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_logs/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_logs/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_logs/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_logs/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_logs/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_logs/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_logs/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_logs/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_metrics/fields/ecs.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_metrics/fields/ecs.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_metrics/fields/ecs.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_metrics/fields/ecs.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_metrics/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_metrics/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_metrics/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_metrics/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_metrics/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_metrics/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/dataset/test_metrics/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/data_stream/test_metrics/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/manifest.yml index 1aa1410bd0aef..b389a86702fa8 100644 --- a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/manifest.yml +++ b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.2.0/manifest.yml @@ -13,8 +13,3 @@ requirement: versions: '>7.7.0' kibana: versions: '>7.7.0' - -icons: - - src: '/img/logo_overrides_64_color.svg' - size: '16x16' - type: 'image/svg+xml' diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/dataset/test/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/data_stream/test/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/dataset/test/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/data_stream/test/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/dataset/test/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/data_stream/test/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/dataset/test/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/data_stream/test/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/manifest.yml index 32c626b115739..f4b6eccbda957 100644 --- a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/manifest.yml +++ b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.1.0/manifest.yml @@ -1,6 +1,6 @@ format_version: 1.0.0 -name: multiple_versions -title: Package install/update test +name: multiple_versions +title: Package install/update test description: This is a test package for installing or updating a package version: 0.1.0 categories: [] @@ -13,8 +13,3 @@ requirement: versions: '>7.7.0' kibana: versions: '>7.7.0' - -icons: - - src: '/img/logo_overrides_64_color.svg' - size: '16x16' - type: 'image/svg+xml' diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/dataset/test/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/data_stream/test/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/dataset/test/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/data_stream/test/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/dataset/test/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/data_stream/test/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/dataset/test/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/data_stream/test/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/manifest.yml index 773903a69e7f7..be7c93484d987 100644 --- a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/manifest.yml +++ b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.2.0/manifest.yml @@ -1,6 +1,6 @@ format_version: 1.0.0 -name: multiple_versions -title: Package install/update test +name: multiple_versions +title: Package install/update test description: This is a test package for installing or updating a packagee version: 0.2.0 categories: [] @@ -13,8 +13,3 @@ requirement: versions: '>7.7.0' kibana: versions: '>7.7.0' - -icons: - - src: '/img/logo_overrides_64_color.svg' - size: '16x16' - type: 'image/svg+xml' diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/dataset/test/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/data_stream/test/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/dataset/test/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/data_stream/test/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/overrides/0.1.0/dataset/test/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/data_stream/test/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/overrides/0.1.0/dataset/test/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/data_stream/test/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/manifest.yml index 49c85994d2c2c..630788b00fca7 100644 --- a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/manifest.yml +++ b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/multiple_versions/0.3.0/manifest.yml @@ -1,6 +1,6 @@ format_version: 1.0.0 name: multiple_versions -title: Package install/update test +title: Package install/update test description: This is a test package for installing or updating a package version: 0.3.0 categories: [] @@ -13,8 +13,3 @@ requirement: versions: '>7.7.0' kibana: versions: '>7.7.0' - -icons: - - src: '/img/logo_overrides_64_color.svg' - size: '16x16' - type: 'image/svg+xml' diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/overrides/0.1.0/dataset/test/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/overrides/0.1.0/data_stream/test/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/overrides/0.1.0/dataset/test/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/overrides/0.1.0/data_stream/test/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_logs/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/overrides/0.1.0/data_stream/test/manifest.yml similarity index 77% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_logs/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/overrides/0.1.0/data_stream/test/manifest.yml index 8cd522e2845bb..9ac3c68a0be9e 100644 --- a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/datastreams/0.1.0/dataset/test_logs/manifest.yml +++ b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/overrides/0.1.0/data_stream/test/manifest.yml @@ -6,4 +6,4 @@ elasticsearch: index_template.mappings: dynamic: false index_template.settings: - index.lifecycle.name: reference \ No newline at end of file + index.lifecycle.name: reference diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/prerelease/0.1.0-dev.0+abc/dataset/test/fields/fields.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/prerelease/0.1.0-dev.0+abc/data_stream/test/fields/fields.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/prerelease/0.1.0-dev.0+abc/dataset/test/fields/fields.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/prerelease/0.1.0-dev.0+abc/data_stream/test/fields/fields.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/prerelease/0.1.0-dev.0+abc/dataset/test/manifest.yml b/x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/prerelease/0.1.0-dev.0+abc/data_stream/test/manifest.yml similarity index 100% rename from x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/prerelease/0.1.0-dev.0+abc/dataset/test/manifest.yml rename to x-pack/test/ingest_manager_api_integration/apis/fixtures/test_packages/prerelease/0.1.0-dev.0+abc/data_stream/test/manifest.yml diff --git a/x-pack/test/ingest_manager_api_integration/apis/index.js b/x-pack/test/ingest_manager_api_integration/apis/index.js index 7c1ebef337baa..ec509e1485a9f 100644 --- a/x-pack/test/ingest_manager_api_integration/apis/index.js +++ b/x-pack/test/ingest_manager_api_integration/apis/index.js @@ -5,7 +5,7 @@ */ export default function ({ loadTestFile }) { - describe('Ingest Manager Endpoints', function () { + describe.skip('Ingest Manager Endpoints', function () { this.tags('ciGroup7'); // Ingest Manager setup loadTestFile(require.resolve('./setup')); diff --git a/x-pack/test/security_solution_endpoint/apps/endpoint/index.ts b/x-pack/test/security_solution_endpoint/apps/endpoint/index.ts index 654aa18fba523..c3862d130202d 100644 --- a/x-pack/test/security_solution_endpoint/apps/endpoint/index.ts +++ b/x-pack/test/security_solution_endpoint/apps/endpoint/index.ts @@ -13,7 +13,7 @@ import { export default function (providerContext: FtrProviderContext) { const { loadTestFile, getService } = providerContext; - describe('endpoint', function () { + describe.skip('endpoint', function () { this.tags('ciGroup7'); const ingestManager = getService('ingestManager'); const log = getService('log'); diff --git a/x-pack/test/security_solution_endpoint_api_int/apis/index.ts b/x-pack/test/security_solution_endpoint_api_int/apis/index.ts index 3d344c1b3b51b..6c5764faed631 100644 --- a/x-pack/test/security_solution_endpoint_api_int/apis/index.ts +++ b/x-pack/test/security_solution_endpoint_api_int/apis/index.ts @@ -10,7 +10,7 @@ import { getRegistryUrl as getRegistryUrlFromIngest } from '../../../plugins/ing export default function endpointAPIIntegrationTests(providerContext: FtrProviderContext) { const { loadTestFile, getService } = providerContext; - describe('Endpoint plugin', function () { + describe.skip('Endpoint plugin', function () { const ingestManager = getService('ingestManager'); this.tags('ciGroup7'); From b3c37cf94cc461cf04511b6acb3880439f8fd858 Mon Sep 17 00:00:00 2001 From: Jen Huang <its.jenetic@gmail.com> Date: Thu, 1 Oct 2020 11:09:59 -0700 Subject: [PATCH 120/142] [Fleet] Fix agent policy change action migration (#79046) * Fix agent policy change action migration for encrypted `data` property * Parse & re-stringify `config`->`policy` data --- .../plugins/ingest_manager/server/plugin.ts | 2 +- .../server/saved_objects/index.ts | 14 +++-- .../saved_objects/migrations/to_v7_10_0.ts | 52 ++++++++++++++----- 3 files changed, 50 insertions(+), 18 deletions(-) diff --git a/x-pack/plugins/ingest_manager/server/plugin.ts b/x-pack/plugins/ingest_manager/server/plugin.ts index f0f7bca29c99e..6237b6d9ba357 100644 --- a/x-pack/plugins/ingest_manager/server/plugin.ts +++ b/x-pack/plugins/ingest_manager/server/plugin.ts @@ -172,7 +172,7 @@ export class IngestManagerPlugin this.encryptedSavedObjectsSetup = deps.encryptedSavedObjects; this.cloud = deps.cloud; - registerSavedObjects(core.savedObjects); + registerSavedObjects(core.savedObjects, deps.encryptedSavedObjects); registerEncryptedSavedObjects(deps.encryptedSavedObjects); // Register feature diff --git a/x-pack/plugins/ingest_manager/server/saved_objects/index.ts b/x-pack/plugins/ingest_manager/server/saved_objects/index.ts index b3a8c7390176f..95433f896b9a3 100644 --- a/x-pack/plugins/ingest_manager/server/saved_objects/index.ts +++ b/x-pack/plugins/ingest_manager/server/saved_objects/index.ts @@ -33,7 +33,9 @@ import { * Please update typings in `/common/types` as well as * schemas in `/server/types` if mappings are updated. */ -const savedObjectTypes: { [key: string]: SavedObjectsType } = { +const getSavedObjectTypes = ( + encryptedSavedObjects: EncryptedSavedObjectsPluginSetup +): { [key: string]: SavedObjectsType } => ({ [GLOBAL_SETTINGS_SAVED_OBJECT_TYPE]: { name: GLOBAL_SETTINGS_SAVED_OBJECT_TYPE, hidden: false, @@ -111,7 +113,7 @@ const savedObjectTypes: { [key: string]: SavedObjectsType } = { }, }, migrations: { - '7.10.0': migrateAgentActionToV7100, + '7.10.0': migrateAgentActionToV7100(encryptedSavedObjects), }, }, [AGENT_EVENT_SAVED_OBJECT_TYPE]: { @@ -304,9 +306,13 @@ const savedObjectTypes: { [key: string]: SavedObjectsType } = { }, }, }, -}; +}); -export function registerSavedObjects(savedObjects: SavedObjectsServiceSetup) { +export function registerSavedObjects( + savedObjects: SavedObjectsServiceSetup, + encryptedSavedObjects: EncryptedSavedObjectsPluginSetup +) { + const savedObjectTypes = getSavedObjectTypes(encryptedSavedObjects); Object.values(savedObjectTypes).forEach((type) => { savedObjects.registerType(type); }); diff --git a/x-pack/plugins/ingest_manager/server/saved_objects/migrations/to_v7_10_0.ts b/x-pack/plugins/ingest_manager/server/saved_objects/migrations/to_v7_10_0.ts index 53af5ae42e410..2a49c135074e5 100644 --- a/x-pack/plugins/ingest_manager/server/saved_objects/migrations/to_v7_10_0.ts +++ b/x-pack/plugins/ingest_manager/server/saved_objects/migrations/to_v7_10_0.ts @@ -4,7 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { SavedObjectMigrationFn } from 'kibana/server'; +import { SavedObjectMigrationFn, SavedObjectUnsanitizedDoc } from 'kibana/server'; +import { EncryptedSavedObjectsPluginSetup } from '../../../../encrypted_saved_objects/server'; import { Agent, AgentEvent, @@ -94,17 +95,42 @@ export const migrateSettingsToV7100: SavedObjectMigrationFn< return settingsDoc; }; -export const migrateAgentActionToV7100: SavedObjectMigrationFn<AgentAction, AgentAction> = ( - agentActionDoc -) => { - // @ts-expect-error - if (agentActionDoc.attributes.type === 'CONFIG_CHANGE') { - agentActionDoc.attributes.type = 'POLICY_CHANGE'; - if (agentActionDoc.attributes.data?.config) { - agentActionDoc.attributes.data.policy = agentActionDoc.attributes.data.config; - delete agentActionDoc.attributes.data.config; +export const migrateAgentActionToV7100 = ( + encryptedSavedObjects: EncryptedSavedObjectsPluginSetup +): SavedObjectMigrationFn<AgentAction, AgentAction> => { + return encryptedSavedObjects.createMigration( + (agentActionDoc): agentActionDoc is SavedObjectUnsanitizedDoc<AgentAction> => { + // @ts-expect-error + return agentActionDoc.attributes.type === 'CONFIG_CHANGE'; + }, + (agentActionDoc) => { + let agentActionData; + try { + agentActionData = agentActionDoc.attributes.data + ? JSON.parse(agentActionDoc.attributes.data) + : undefined; + } catch (e) { + // Silently swallow JSON parsing error + } + if (agentActionData && agentActionData.config) { + const { + attributes: { data, ...restOfAttributes }, + } = agentActionDoc; + const { config, ...restOfData } = agentActionData; + return { + ...agentActionDoc, + attributes: { + ...restOfAttributes, + type: 'POLICY_CHANGE', + data: JSON.stringify({ + ...restOfData, + policy: config, + }), + }, + }; + } else { + return agentActionDoc; + } } - } - - return agentActionDoc; + ); }; From bad6eab79280359d3773eb522950b88e632b9497 Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger <walter@elastic.co> Date: Thu, 1 Oct 2020 20:27:22 +0200 Subject: [PATCH 121/142] [ML] DF Analytics: Collapsable sections on results pages (#76641) - Fixes cell color coding based on influence score for outlier detection results page data grid. (Part of #77046) - Introduces expandable sections (<ExpandableSection />). In contrast to plain accordions, the main idea of this component is that it should also provide some sort of useful summary when collapsed instead of just being an expandable title. For example, the "Analysis" section is collapsed by default, but still offers information like analysis type, source and destination index. This concept should allow us to keep the analytics results pages usable with more content (additional results, evaluations, visualizations) being added over time. - The "Analysis" section is a reuse of the expandable row from the analytics jobs list. Some design adjustments have been made to make it usable in both places. --- .../color_range_legend/color_range_legend.tsx | 18 +- .../data_frame_analytics/common/fields.ts | 2 + .../expandable_section.scss | 3 + .../expandable_section/expandable_section.tsx | 94 +++++++ .../components/expandable_section/index.ts | 7 + .../outlier_exploration.tsx | 247 ++++++++++++++---- .../outlier_exploration/use_outlier_data.ts | 24 +- .../pages/analytics_exploration/page.tsx | 28 +- .../expanded_row_details_pane.scss | 8 + .../expanded_row_details_pane.tsx | 39 ++- .../expanded_row_messages_pane.scss | 9 + .../expanded_row_messages_pane.tsx | 16 +- .../translations/translations/ja-JP.json | 4 - .../translations/translations/zh-CN.json | 4 - .../ml/data_frame_analytics_results.ts | 2 +- 15 files changed, 390 insertions(+), 115 deletions(-) create mode 100644 x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/expandable_section.scss create mode 100644 x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/expandable_section.tsx create mode 100644 x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/index.ts create mode 100644 x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_details_pane.scss create mode 100644 x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_messages_pane.scss diff --git a/x-pack/plugins/ml/public/application/components/color_range_legend/color_range_legend.tsx b/x-pack/plugins/ml/public/application/components/color_range_legend/color_range_legend.tsx index 25af3f0ec2f7f..a3b68b85aa9fa 100644 --- a/x-pack/plugins/ml/public/application/components/color_range_legend/color_range_legend.tsx +++ b/x-pack/plugins/ml/public/application/components/color_range_legend/color_range_legend.tsx @@ -7,7 +7,7 @@ import React, { useEffect, useRef, FC } from 'react'; import d3 from 'd3'; -import { EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; +import { EuiText } from '@elastic/eui'; const COLOR_RANGE_RESOLUTION = 10; @@ -134,15 +134,11 @@ export const ColorRangeLegend: FC<ColorRangeLegendProps> = ({ } return ( - <EuiFlexGroup gutterSize="s"> - <EuiFlexItem grow={false}> - <EuiText size="xs"> - <strong>{title}</strong> - </EuiText> - </EuiFlexItem> - <EuiFlexItem grow={false}> - <svg ref={d3Container} /> - </EuiFlexItem> - </EuiFlexGroup> + <> + <EuiText size="xs" color="subdued"> + <p>{title}</p> + </EuiText> + <svg ref={d3Container} /> + </> ); }; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/common/fields.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/common/fields.ts index f9c9bf26a9d16..e4581f0a87bdd 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/common/fields.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/common/fields.ts @@ -48,6 +48,8 @@ export const EXTENDED_NUMERICAL_TYPES = new Set([ // eslint-disable-next-line @typescript-eslint/naming-convention export const ML__ID_COPY = 'ml__id_copy'; +// eslint-disable-next-line @typescript-eslint/naming-convention +export const ML__INCREMENTAL_ID = 'ml__incremental_id'; export const isKeywordAndTextType = (fieldName: string): boolean => { const { fields } = newJobCapsService; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/expandable_section.scss b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/expandable_section.scss new file mode 100644 index 0000000000000..e296744b2737d --- /dev/null +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/expandable_section.scss @@ -0,0 +1,3 @@ +.mlExpandableSection { + padding: 0 $euiSizeS $euiSizeS $euiSizeS; +} diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/expandable_section.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/expandable_section.tsx new file mode 100644 index 0000000000000..97fb8fd29e5a7 --- /dev/null +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/expandable_section.tsx @@ -0,0 +1,94 @@ +/* + * 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 './expandable_section.scss'; + +import React, { useState, FC, ReactNode } from 'react'; + +import { + EuiBadge, + EuiButtonEmpty, + EuiFlexGroup, + EuiFlexItem, + EuiLoadingContent, + EuiPanel, + EuiText, +} from '@elastic/eui'; + +interface HeaderItem { + // id is used as the React key and to construct a data-test-subj + id: string; + label?: ReactNode; + value: ReactNode; +} + +const isHeaderItems = (arg: any): arg is HeaderItem[] => { + return Array.isArray(arg); +}; + +export interface ExpandableSectionProps { + content: ReactNode; + headerItems?: HeaderItem[] | 'loading'; + isExpanded?: boolean; + dataTestId: string; + title: ReactNode; +} + +export const ExpandableSection: FC<ExpandableSectionProps> = ({ + headerItems, + // For now we don't have a need for complete external control + // and just want to pass in a default value. If we wanted + // full external control we'd also need to add a onToggleExpanded() + // callback. + isExpanded: isExpandedDefault = true, + content, + dataTestId, + title, +}) => { + const [isExpanded, setIsExpanded] = useState(isExpandedDefault); + const toggleExpanded = () => { + setIsExpanded(!isExpanded); + }; + + return ( + <EuiPanel paddingSize="none" data-test-subj={`mlDFExpandableSection-${dataTestId}`}> + <div className="mlExpandableSection"> + <EuiButtonEmpty + onClick={toggleExpanded} + iconType={isExpanded ? 'arrowUp' : 'arrowDown'} + size="l" + iconSide="right" + flush="left" + > + {title} + </EuiButtonEmpty> + {headerItems === 'loading' && <EuiLoadingContent lines={1} />} + {isHeaderItems(headerItems) && ( + <EuiFlexGroup> + {headerItems.map(({ label, value, id }) => ( + <EuiFlexItem + grow={false} + key={id} + data-test-subj={`mlDFExpandableSectionItem-${dataTestId}-${id}`} + > + {label !== undefined && value !== undefined && ( + <> + <EuiText size="xs" color="subdued"> + <p>{label}</p> + </EuiText> + <EuiBadge>{value}</EuiBadge> + </> + )} + {label === undefined && value} + </EuiFlexItem> + ))} + </EuiFlexGroup> + )} + </div> + {isExpanded && content} + </EuiPanel> + ); +}; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/index.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/index.ts new file mode 100644 index 0000000000000..ad7ce84902e87 --- /dev/null +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/index.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 { ExpandableSection, ExpandableSectionProps } from './expandable_section'; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/outlier_exploration.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/outlier_exploration.tsx index e165ee54acab8..7d7f5efcae321 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/outlier_exploration.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/outlier_exploration.tsx @@ -4,11 +4,20 @@ * you may not use this file except in compliance with the Elastic License. */ -import React, { useState, FC } from 'react'; +import React, { useEffect, useState, FC } from 'react'; import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n/react'; -import { EuiFlexGroup, EuiFlexItem, EuiHorizontalRule, EuiPanel, EuiSpacer } from '@elastic/eui'; +import { + EuiDataGridColumn, + EuiHorizontalRule, + EuiLoadingSpinner, + EuiSpacer, + EuiText, +} from '@elastic/eui'; + +import type { DataFrameAnalysisConfigType } from '../../../../../../../common/types/data_frame_analytics'; import { useColorRange, @@ -19,18 +28,100 @@ import { ColorRangeLegend } from '../../../../../components/color_range_legend'; import { DataGrid } from '../../../../../components/data_grid'; import { SavedSearchQuery } from '../../../../../contexts/ml'; import { getToastNotifications } from '../../../../../util/dependency_cache'; +import { ml } from '../../../../../services/ml_api_service'; -import { defaultSearchQuery, useResultsViewConfig } from '../../../../common'; +import { getAnalysisType, defaultSearchQuery, useResultsViewConfig } from '../../../../common'; -import { getTaskStateBadge } from '../../../analytics_management/components/analytics_list/use_columns'; +import { isGetDataFrameAnalyticsStatsResponseOk } from '../../../analytics_management/services/analytics_service/get_analytics'; + +import { + DataFrameAnalyticsListRow, + DATA_FRAME_MODE, +} from '../../../analytics_management/components/analytics_list/common'; +import { ExpandedRow } from '../../../analytics_management/components/analytics_list/expanded_row'; +import { ExpandableSection, ExpandableSectionProps } from '../expandable_section'; import { ExplorationQueryBar } from '../exploration_query_bar'; -import { ExplorationTitle } from '../exploration_title'; import { IndexPatternPrompt } from '../index_pattern_prompt'; import { getFeatureCount } from './common'; import { useOutlierData } from './use_outlier_data'; +const getAnalyticsSectionHeaderItems = ( + expandedRowItem: DataFrameAnalyticsListRow | undefined +): ExpandableSectionProps['headerItems'] => { + return expandedRowItem !== undefined + ? [ + { + id: 'analysisTypeLabel', + label: ( + <FormattedMessage + id="xpack.ml.dataframe.analytics.exploration.analysisTypeLabel" + defaultMessage="Type" + /> + ), + value: expandedRowItem.job_type, + }, + { + id: 'analysisSourceIndexLabel', + label: ( + <FormattedMessage + id="xpack.ml.dataframe.analytics.exploration.analysisSourceIndexLabel" + defaultMessage="Source index" + /> + ), + value: expandedRowItem.config.source.index, + }, + { + id: 'analysisDestinationIndexLabel', + label: ( + <FormattedMessage + id="xpack.ml.dataframe.analytics.exploration.analysisDestinationIndexLabel" + defaultMessage="Destination index" + /> + ), + value: expandedRowItem.config.dest.index, + }, + ] + : 'loading'; +}; + +const getResultsSectionHeaderItems = ( + columnsWithCharts: EuiDataGridColumn[], + tableItems: Array<Record<string, any>>, + rowCount: number, + colorRange: ReturnType<typeof useColorRange> +): ExpandableSectionProps['headerItems'] => { + return columnsWithCharts.length > 0 && tableItems.length > 0 + ? [ + { + id: 'explorationTableTotalDocs', + label: ( + <FormattedMessage + id="xpack.ml.dataframe.analytics.exploration.explorationTableTotalDocsLabel" + defaultMessage="Total docs" + /> + ), + value: rowCount, + }, + { + id: 'colorRangeLegend', + value: ( + <ColorRangeLegend + colorRange={colorRange} + title={i18n.translate( + 'xpack.ml.dataframe.analytics.exploration.colorRangeLegendTitle', + { + defaultMessage: 'Feature influence score', + } + )} + /> + ), + }, + ] + : 'loading'; +}; + export type TableItem = Record<string, any>; interface ExplorationProps { @@ -38,12 +129,7 @@ interface ExplorationProps { } export const OutlierExploration: FC<ExplorationProps> = React.memo(({ jobId }) => { - const explorationTitle = i18n.translate('xpack.ml.dataframe.analytics.exploration.jobIdTitle', { - defaultMessage: 'Outlier detection job ID {jobId}', - values: { jobId }, - }); - - const { indexPattern, jobConfig, jobStatus, needsDestIndexPattern } = useResultsViewConfig(jobId); + const { indexPattern, jobConfig, needsDestIndexPattern } = useResultsViewConfig(jobId); const [searchQuery, setSearchQuery] = useState<SavedSearchQuery>(defaultSearchQuery); const outlierData = useOutlierData(indexPattern, jobConfig, searchQuery); @@ -55,47 +141,74 @@ export const OutlierExploration: FC<ExplorationProps> = React.memo(({ jobId }) = jobConfig !== undefined ? getFeatureCount(jobConfig.dest.results_field, tableItems) : 1 ); - return ( - <EuiPanel data-test-subj="mlDFAnalyticsOutlierExplorationTablePanel"> + const [expandedRowItem, setExpandedRowItem] = useState<DataFrameAnalyticsListRow | undefined>(); + + const fetchStats = async () => { + const analyticsConfigs = await ml.dataFrameAnalytics.getDataFrameAnalytics(jobId); + const analyticsStats = await ml.dataFrameAnalytics.getDataFrameAnalyticsStats(jobId); + + const config = analyticsConfigs.data_frame_analytics[0]; + const stats = isGetDataFrameAnalyticsStatsResponseOk(analyticsStats) + ? analyticsStats.data_frame_analytics[0] + : undefined; + + if (stats === undefined) { + return; + } + + const newExpandedRowItem: DataFrameAnalyticsListRow = { + checkpointing: {}, + config, + id: config.id, + job_type: getAnalysisType(config.analysis) as DataFrameAnalysisConfigType, + mode: DATA_FRAME_MODE.BATCH, + state: stats.state, + stats, + }; + + setExpandedRowItem(newExpandedRowItem); + }; + + useEffect(() => { + fetchStats(); + }, [jobConfig?.id]); + + // Analytics section header items and content + const analyticsSectionHeaderItems = getAnalyticsSectionHeaderItems(expandedRowItem); + const analyticsSectionContent = ( + <> + <EuiHorizontalRule size="full" margin="none" /> + {expandedRowItem === undefined && ( + <EuiText textAlign="center"> + <EuiSpacer size="l" /> + <EuiLoadingSpinner size="l" /> + <EuiSpacer size="l" /> + </EuiText> + )} + {(columnsWithCharts.length > 0 || searchQuery !== defaultSearchQuery) && + indexPattern !== undefined && + jobConfig !== undefined && + columnsWithCharts.length > 0 && + tableItems.length > 0 && + expandedRowItem !== undefined && <ExpandedRow item={expandedRowItem} />} + </> + ); + + // Results section header items and content + const resultsSectionHeaderItems = getResultsSectionHeaderItems( + columnsWithCharts, + tableItems, + outlierData.rowCount, + colorRange + ); + const resultsSectionContent = ( + <> {jobConfig !== undefined && needsDestIndexPattern && ( <IndexPatternPrompt destIndex={jobConfig.dest.index} /> )} - <EuiFlexGroup - alignItems="center" - justifyContent="spaceBetween" - responsive={false} - gutterSize="s" - > - <EuiFlexItem grow={false}> - <ExplorationTitle title={explorationTitle} /> - </EuiFlexItem> - {jobStatus !== undefined && ( - <EuiFlexItem grow={false}> - <span>{getTaskStateBadge(jobStatus)}</span> - </EuiFlexItem> - )} - </EuiFlexGroup> - <EuiHorizontalRule margin="xs" /> {(columnsWithCharts.length > 0 || searchQuery !== defaultSearchQuery) && indexPattern !== undefined && ( <> - <EuiFlexGroup justifyContent="spaceBetween"> - <EuiFlexItem> - <ExplorationQueryBar indexPattern={indexPattern} setSearchQuery={setSearchQuery} /> - </EuiFlexItem> - <EuiFlexItem grow={false}> - <EuiSpacer size="s" /> - <ColorRangeLegend - colorRange={colorRange} - title={i18n.translate( - 'xpack.ml.dataframe.analytics.exploration.colorRangeLegendTitle', - { - defaultMessage: 'Feature influence score', - } - )} - /> - </EuiFlexItem> - </EuiFlexGroup> <EuiSpacer size="s" /> {columnsWithCharts.length > 0 && tableItems.length > 0 && ( <DataGrid @@ -106,6 +219,46 @@ export const OutlierExploration: FC<ExplorationProps> = React.memo(({ jobId }) = )} </> )} - </EuiPanel> + </> + ); + + return ( + <> + {(columnsWithCharts.length > 0 || searchQuery !== defaultSearchQuery) && + indexPattern !== undefined && ( + <> + <ExplorationQueryBar indexPattern={indexPattern} setSearchQuery={setSearchQuery} /> + <EuiSpacer size="m" /> + </> + )} + + <ExpandableSection + dataTestId="analysis" + content={analyticsSectionContent} + headerItems={analyticsSectionHeaderItems} + isExpanded={false} + title={ + <FormattedMessage + id="xpack.ml.dataframe.analytics.exploration.analysisSectionTitle" + defaultMessage="Analysis" + /> + } + /> + + <EuiSpacer size="m" /> + + <ExpandableSection + dataTestId="results" + content={resultsSectionContent} + headerItems={resultsSectionHeaderItems} + title={ + <FormattedMessage + id="xpack.ml.dataframe.analytics.exploration.explorationTableTitle" + defaultMessage="Results" + /> + } + /> + <EuiSpacer size="m" /> + </> ); }); diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/use_outlier_data.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/use_outlier_data.ts index 151e5ea4e6feb..eded8e82a7919 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/use_outlier_data.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/outlier_exploration/use_outlier_data.ts @@ -31,10 +31,19 @@ import { getToastNotifications } from '../../../../../util/dependency_cache'; import { getIndexData, getIndexFields, DataFrameAnalyticsConfig } from '../../../../common'; import { FEATURE_INFLUENCE } from '../../../../common/constants'; import { DEFAULT_RESULTS_FIELD } from '../../../../../../../common/constants/data_frame_analytics'; -import { sortExplorationResultsFields, ML__ID_COPY } from '../../../../common/fields'; +import { + sortExplorationResultsFields, + ML__ID_COPY, + ML__INCREMENTAL_ID, +} from '../../../../common/fields'; import { getFeatureCount, getOutlierScoreFieldName } from './common'; +interface FeatureInfluence { + feature_name: string; + influence: number; +} + export const useOutlierData = ( indexPattern: IndexPattern | undefined, jobConfig: DataFrameAnalyticsConfig | undefined, @@ -61,7 +70,7 @@ export const useOutlierData = ( // reduce default selected rows from 20 to 8 for performance reasons. 8, // by default, hide feature-influence columns and the doc id copy - (d) => !d.includes(`.${FEATURE_INFLUENCE}.`) && d !== ML__ID_COPY + (d) => !d.includes(`.${FEATURE_INFLUENCE}.`) && d !== ML__ID_COPY && d !== ML__INCREMENTAL_ID ); useEffect(() => { @@ -138,9 +147,16 @@ export const useOutlierData = ( // column with feature values get color coded by its corresponding influencer value if ( fullItem[resultsField] !== undefined && - fullItem[resultsField][`${FEATURE_INFLUENCE}.${columnId}`] !== undefined + fullItem[resultsField][FEATURE_INFLUENCE] !== undefined && + fullItem[resultsField][FEATURE_INFLUENCE].find( + (d: FeatureInfluence) => d.feature_name === columnId + ) !== undefined ) { - backgroundColor = colorRange(fullItem[resultsField][`${FEATURE_INFLUENCE}.${columnId}`]); + backgroundColor = colorRange( + fullItem[resultsField][FEATURE_INFLUENCE].find( + (d: FeatureInfluence) => d.feature_name === columnId + ).influence + ); } // column with influencer values get color coded by its own value diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/page.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/page.tsx index 4620bbd969fab..d2767a9612e3b 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/page.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/page.tsx @@ -6,11 +6,7 @@ import React, { Fragment, FC } from 'react'; -import { FormattedMessage } from '@kbn/i18n/react'; -import { i18n } from '@kbn/i18n'; - import { - EuiBetaBadge, EuiPage, EuiPageBody, EuiPageContentBody, @@ -41,32 +37,12 @@ export const Page: FC<{ <EuiPageContentHeader> <EuiPageContentHeaderSection> <EuiTitle> - <h1> - <FormattedMessage - id="xpack.ml.dataframe.analytics.exploration.title" - defaultMessage="Analytics exploration" - /> - <span> </span> - <EuiBetaBadge - label={i18n.translate( - 'xpack.ml.dataframe.analytics.exploration.experimentalBadgeLabel', - { - defaultMessage: 'Experimental', - } - )} - tooltipContent={i18n.translate( - 'xpack.ml.dataframe.analytics.exploration.experimentalBadgeTooltipContent', - { - defaultMessage: `Data frame analytics are an experimental feature. We'd love to hear your feedback.`, - } - )} - /> - </h1> + <h1>{jobId}</h1> </EuiTitle> </EuiPageContentHeaderSection> </EuiPageContentHeader> <EuiPageContentBody style={{ maxWidth: 'calc(100% - 0px)' }}> - <EuiSpacer size="l" /> + <EuiSpacer size="m" /> {analysisType === ANALYSIS_CONFIG_TYPE.OUTLIER_DETECTION && ( <OutlierExploration jobId={jobId} /> )} diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_details_pane.scss b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_details_pane.scss new file mode 100644 index 0000000000000..efc9296350232 --- /dev/null +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_details_pane.scss @@ -0,0 +1,8 @@ +.mlExpandedRowDetails { + padding: 0 $euiSizeS $euiSizeS $euiSizeS; +} + +/* Hide the basic table's header */ +.mlExpandedRowDetailsSection thead { + display: none; +} diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_details_pane.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_details_pane.tsx index 71ca2b6f60492..41722f7559de2 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_details_pane.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_details_pane.tsx @@ -4,16 +4,11 @@ * you may not use this file except in compliance with the Elastic License. */ +import './expanded_row_details_pane.scss'; + import React, { Fragment, FC, ReactElement } from 'react'; -import { - EuiDescriptionList, - EuiFlexGroup, - EuiFlexItem, - EuiPanel, - EuiTitle, - EuiSpacer, -} from '@elastic/eui'; +import { EuiBasicTable, EuiFlexGroup, EuiFlexItem, EuiTitle, EuiSpacer } from '@elastic/eui'; export interface SectionItem { title: string; @@ -34,13 +29,33 @@ export const Section: FC<SectionProps> = ({ section }) => { return null; } + const columns = [ + { + field: 'title', + name: '', + render: (v: SectionItem['title']) => <strong>{v}</strong>, + }, + { + field: 'description', + name: '', + render: (v: SectionItem['description']) => <>{v}</>, + }, + ]; + return ( - <EuiPanel> + <> <EuiTitle size="xs"> <span>{section.title}</span> </EuiTitle> - <EuiDescriptionList compressed type="column" listItems={section.items} /> - </EuiPanel> + <EuiBasicTable<SectionItem> + compressed + items={section.items} + columns={columns} + tableCaption={section.title} + tableLayout="auto" + className="mlExpandedRowDetailsSection" + /> + </> ); }; @@ -50,7 +65,7 @@ interface ExpandedRowDetailsPaneProps { export const ExpandedRowDetailsPane: FC<ExpandedRowDetailsPaneProps> = ({ sections }) => { return ( - <EuiFlexGroup> + <EuiFlexGroup className="mlExpandedRowDetails"> <EuiFlexItem style={{ width: '50%' }}> {sections .filter((s) => s.position === 'left') diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_messages_pane.scss b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_messages_pane.scss new file mode 100644 index 0000000000000..5a4d1b3190402 --- /dev/null +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_messages_pane.scss @@ -0,0 +1,9 @@ +.mlExpandedRowJobMessages { + padding: 0 $euiSizeS $euiSizeS $euiSizeS; +} + +/* override ML legacy class "job-messages-table" */ +.mlExpandedRowJobMessages .euiTable, .mlExpandedRowJobMessages .euiTableRowCell { + background-color: transparent !important; +} + diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_messages_pane.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_messages_pane.tsx index 942e335526d68..91925b7f0afe1 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_messages_pane.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/expanded_row_messages_pane.tsx @@ -4,6 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ +import './expanded_row_messages_pane.scss'; + import React, { FC, useState, useEffect, useCallback } from 'react'; import { i18n } from '@kbn/i18n'; import { ml } from '../../../../../services/ml_api_service'; @@ -43,11 +45,13 @@ export const ExpandedRowMessagesPane: FC<Props> = ({ analyticsId }) => { useRefreshAnalyticsList({ onRefresh: getMessages }); return ( - <JobMessages - messages={messages} - loading={isLoading} - error={errorMessage} - refreshMessage={getMessages} - /> + <div className="mlExpandedRowJobMessages"> + <JobMessages + messages={messages} + loading={isLoading} + error={errorMessage} + refreshMessage={getMessages} + /> + </div> ); }; diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 34c339023171e..bd9a66b48f633 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -10754,10 +10754,6 @@ "xpack.ml.dataframe.analytics.errorCallout.queryParsingErrorBody": "クエリ構文が無効であり、結果を返しませんでした。クエリ構文を確認し、再試行してください。", "xpack.ml.dataframe.analytics.errorCallout.queryParsingErrorTitle": "クエリをパースできません。", "xpack.ml.dataframe.analytics.exploration.colorRangeLegendTitle": "機能影響スコア", - "xpack.ml.dataframe.analytics.exploration.experimentalBadgeLabel": "実験的", - "xpack.ml.dataframe.analytics.exploration.experimentalBadgeTooltipContent": "データフレーム分析は実験段階の機能です。フィードバックをお待ちしています。", - "xpack.ml.dataframe.analytics.exploration.jobIdTitle": "外れ値検出ジョブID {jobId}", - "xpack.ml.dataframe.analytics.exploration.title": "分析の探索", "xpack.ml.dataframe.analytics.explorationResults.documentsShownHelpText": "予測があるドキュメントを示す", "xpack.ml.dataframe.analytics.explorationResults.fieldSelection": "{docFieldsCount, number}件中 showing {selectedFieldsLength, number}件の{docFieldsCount, plural, one {フィールド} other {フィールド}}", "xpack.ml.dataframe.analytics.explorationResults.firstDocumentsShownHelpText": "予測がある最初の{searchSize}のドキュメントを示す", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index f32b49fd4f2f0..3ce9278234005 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -10760,10 +10760,6 @@ "xpack.ml.dataframe.analytics.errorCallout.queryParsingErrorBody": "查询语法无效,未返回任何结果。请检查查询语法并重试。", "xpack.ml.dataframe.analytics.errorCallout.queryParsingErrorTitle": "无法解析查询。", "xpack.ml.dataframe.analytics.exploration.colorRangeLegendTitle": "功能影响分数", - "xpack.ml.dataframe.analytics.exploration.experimentalBadgeLabel": "实验性", - "xpack.ml.dataframe.analytics.exploration.experimentalBadgeTooltipContent": "数据帧分析为实验功能。我们很乐意听取您的反馈意见。", - "xpack.ml.dataframe.analytics.exploration.jobIdTitle": "离群值检测作业 ID {jobId}", - "xpack.ml.dataframe.analytics.exploration.title": "分析浏览", "xpack.ml.dataframe.analytics.explorationResults.documentsShownHelpText": "正在显示有相关预测存在的文档", "xpack.ml.dataframe.analytics.explorationResults.fieldSelection": "已选择 {docFieldsCount, number} 个{docFieldsCount, plural, one {字段} other {字段}}中的 {selectedFieldsLength, number} 个", "xpack.ml.dataframe.analytics.explorationResults.firstDocumentsShownHelpText": "正在显示有相关预测存在的前 {searchSize} 个文档", diff --git a/x-pack/test/functional/services/ml/data_frame_analytics_results.ts b/x-pack/test/functional/services/ml/data_frame_analytics_results.ts index b6a6ff8eb6c63..8a72badebd923 100644 --- a/x-pack/test/functional/services/ml/data_frame_analytics_results.ts +++ b/x-pack/test/functional/services/ml/data_frame_analytics_results.ts @@ -36,7 +36,7 @@ export function MachineLearningDataFrameAnalyticsResultsProvider({ }, async assertOutlierTablePanelExists() { - await testSubjects.existOrFail('mlDFAnalyticsOutlierExplorationTablePanel'); + await testSubjects.existOrFail('mlDFExpandableSection-results'); }, async assertResultsTableExists() { From 46084cbbe851c0128c3250bb6d9c00ee4a765eb8 Mon Sep 17 00:00:00 2001 From: nnamdifrankie <56440728+nnamdifrankie@users.noreply.github.com> Date: Thu, 1 Oct 2020 14:50:40 -0400 Subject: [PATCH 122/142] [Ingest]: add more test for transform index (#79154) --- .../apis/epm/install_remove_assets.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/x-pack/test/ingest_manager_api_integration/apis/epm/install_remove_assets.ts b/x-pack/test/ingest_manager_api_integration/apis/epm/install_remove_assets.ts index d33d0445d1cd6..5170867d7b545 100644 --- a/x-pack/test/ingest_manager_api_integration/apis/epm/install_remove_assets.ts +++ b/x-pack/test/ingest_manager_api_integration/apis/epm/install_remove_assets.ts @@ -91,6 +91,14 @@ export default function (providerContext: FtrProviderContext) { }); expect(res.statusCode).equal(200); }); + it('should have created the index for the transform', async function () { + // the index is defined in the transform file + const res = await es.transport.request({ + method: 'GET', + path: `/logs-all_assets.test_log_current_default`, + }); + expect(res.statusCode).equal(200); + }); it('should have installed the kibana assets', async function () { const resIndexPatternLogs = await kibanaServer.savedObjects.get({ type: 'index-pattern', @@ -260,6 +268,19 @@ export default function (providerContext: FtrProviderContext) { ); expect(res.statusCode).equal(404); }); + it('should have deleted the index for the transform', async function () { + // the index is defined in the transform file + const res = await es.transport.request( + { + method: 'GET', + path: `/logs-all_assets.test_log_current_default`, + }, + { + ignore: [404], + } + ); + expect(res.statusCode).equal(404); + }); it('should have uninstalled the kibana assets', async function () { let resDashboard; try { From e08f6a38f61023496b7389659d768ca0685663fc Mon Sep 17 00:00:00 2001 From: Devon Thomson <devon.thomson@hotmail.com> Date: Thu, 1 Oct 2020 14:52:28 -0400 Subject: [PATCH 123/142] Always Show Embeddable Panel Header in Edit Mode (#79152) * Always show header in edit mode --- .../embeddable/public/lib/panel/panel_header/panel_header.tsx | 2 +- test/functional/apps/dashboard/dashboard_options.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/embeddable/public/lib/panel/panel_header/panel_header.tsx b/src/plugins/embeddable/public/lib/panel/panel_header/panel_header.tsx index dea483efb349f..c538b98949a43 100644 --- a/src/plugins/embeddable/public/lib/panel/panel_header/panel_header.tsx +++ b/src/plugins/embeddable/public/lib/panel/panel_header/panel_header.tsx @@ -136,7 +136,7 @@ export function PanelHeader({ }: PanelHeaderProps) { const viewDescription = getViewDescription(embeddable); const showTitle = !hidePanelTitle && (!isViewMode || title || viewDescription !== ''); - const showPanelBar = badges.length > 0 || notifications.length > 0 || showTitle; + const showPanelBar = !isViewMode || badges.length > 0 || notifications.length > 0 || showTitle; const classes = classNames('embPanel__header', { // eslint-disable-next-line @typescript-eslint/naming-convention 'embPanel__header--floater': !showPanelBar, diff --git a/test/functional/apps/dashboard/dashboard_options.js b/test/functional/apps/dashboard/dashboard_options.js index d48e46e58f6d0..4e7c3f4cdc79b 100644 --- a/test/functional/apps/dashboard/dashboard_options.js +++ b/test/functional/apps/dashboard/dashboard_options.js @@ -44,7 +44,7 @@ export default function ({ getService, getPageObjects }) { await PageObjects.dashboard.checkHideTitle(); await retry.try(async () => { const titles = await PageObjects.dashboard.getPanelTitles(); - expect(titles[0]).to.eql(undefined); + expect(titles[0]).to.eql(''); }); }); From a8e3c8ac78acb3bf1ee0f76d353fae2d8bd0ade1 Mon Sep 17 00:00:00 2001 From: Lukas Olson <olson.lukas@gmail.com> Date: Thu, 1 Oct 2020 11:56:50 -0700 Subject: [PATCH 124/142] [Search] Fix timeout upgrade link (#79045) --- .../data/public/search/errors/timeout_error.test.tsx | 6 +++--- src/plugins/data/public/search/errors/timeout_error.tsx | 4 +--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/plugins/data/public/search/errors/timeout_error.test.tsx b/src/plugins/data/public/search/errors/timeout_error.test.tsx index 87b491b976ebc..ad3384c389fbf 100644 --- a/src/plugins/data/public/search/errors/timeout_error.test.tsx +++ b/src/plugins/data/public/search/errors/timeout_error.test.tsx @@ -37,9 +37,9 @@ describe('SearchTimeoutError', () => { expect(component.find('EuiButton').length).toBe(1); component.find('EuiButton').simulate('click'); - expect(startMock.application.navigateToApp).toHaveBeenCalledWith('management', { - path: '/kibana/indexPatterns', - }); + expect(startMock.application.navigateToUrl).toHaveBeenCalledWith( + 'https://www.elastic.co/subscriptions' + ); }); it('Should create contact admin message', () => { diff --git a/src/plugins/data/public/search/errors/timeout_error.tsx b/src/plugins/data/public/search/errors/timeout_error.tsx index 56aecb42f5326..a9ff0c3b38ae6 100644 --- a/src/plugins/data/public/search/errors/timeout_error.tsx +++ b/src/plugins/data/public/search/errors/timeout_error.tsx @@ -78,9 +78,7 @@ export class SearchTimeoutError extends KbnError { private onClick(application: ApplicationStart) { switch (this.mode) { case TimeoutErrorMode.UPGRADE: - application.navigateToApp('management', { - path: `/kibana/indexPatterns`, - }); + application.navigateToUrl('https://www.elastic.co/subscriptions'); break; case TimeoutErrorMode.CHANGE: application.navigateToApp('management', { From 12d01250249801d232bb01234c3044ef2fd6e642 Mon Sep 17 00:00:00 2001 From: Spencer <email@spalger.com> Date: Thu, 1 Oct 2020 12:23:45 -0700 Subject: [PATCH 125/142] [babel] remove unused/unneeded babel plugins (#79173) Co-authored-by: spalger <spalger@users.noreply.github.com> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> --- packages/kbn-babel-preset/node_preset.js | 18 ------------------ packages/kbn-babel-preset/package.json | 4 +--- packages/kbn-babel-preset/webpack_preset.js | 19 ------------------- yarn.lock | 20 ++------------------ 4 files changed, 3 insertions(+), 58 deletions(-) diff --git a/packages/kbn-babel-preset/node_preset.js b/packages/kbn-babel-preset/node_preset.js index ee06e2588b022..45afe5d5ebc32 100644 --- a/packages/kbn-babel-preset/node_preset.js +++ b/packages/kbn-babel-preset/node_preset.js @@ -18,23 +18,6 @@ */ module.exports = (_, options = {}) => { - const overrides = []; - if (!process.env.ALLOW_PERFORMANCE_HOOKS_IN_TASK_MANAGER) { - overrides.push({ - test: [/x-pack[\/\\]legacy[\/\\]plugins[\/\\]task_manager/], - plugins: [ - [ - require.resolve('babel-plugin-filter-imports'), - { - imports: { - perf_hooks: ['performance'], - }, - }, - ], - ], - }); - } - return { presets: [ [ @@ -74,6 +57,5 @@ module.exports = (_, options = {}) => { }, ], ], - overrides, }; }; diff --git a/packages/kbn-babel-preset/package.json b/packages/kbn-babel-preset/package.json index d73294b4cf873..d6d1a78dd4a23 100644 --- a/packages/kbn-babel-preset/package.json +++ b/packages/kbn-babel-preset/package.json @@ -1,7 +1,7 @@ { "name": "@kbn/babel-preset", - "private": true, "version": "1.0.0", + "private": true, "license": "Apache-2.0", "dependencies": { "@babel/plugin-proposal-class-properties": "^7.10.4", @@ -13,10 +13,8 @@ "@babel/preset-react": "^7.10.4", "@babel/preset-typescript": "^7.10.4", "babel-plugin-add-module-exports": "^1.0.2", - "babel-plugin-filter-imports": "^3.0.0", "babel-plugin-styled-components": "^1.10.7", "babel-plugin-transform-define": "^1.3.1", - "babel-plugin-transform-imports": "^2.0.0", "react-is": "^16.8.0", "styled-components": "^5.1.0" } diff --git a/packages/kbn-babel-preset/webpack_preset.js b/packages/kbn-babel-preset/webpack_preset.js index 97462a579e3c4..a43d607edb17c 100644 --- a/packages/kbn-babel-preset/webpack_preset.js +++ b/packages/kbn-babel-preset/webpack_preset.js @@ -40,24 +40,5 @@ module.exports = () => { }, ], ], - // NOTE: we can enable this by default for everything as soon as we only have one instance - // of lodash across the entire project. For now we are just enabling it for siem - // as they are extensively using the lodash v4 - overrides: [ - { - test: [/x-pack[\/\\]legacy[\/\\]plugins[\/\\]siem[\/\\]public/], - plugins: [ - [ - require.resolve('babel-plugin-transform-imports'), - { - 'lodash/?(((\\w*)?/?)*)': { - transform: 'lodash/${1}/${member}', - preventFullImport: false, - }, - }, - ], - ], - }, - ], }; }; diff --git a/yarn.lock b/yarn.lock index 608207400ec71..876f938cfce88 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1098,7 +1098,7 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.9.5": +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.9.5": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== @@ -7367,14 +7367,6 @@ babel-plugin-extract-import-names@1.6.16: dependencies: "@babel/helper-plugin-utils" "7.10.4" -babel-plugin-filter-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-filter-imports/-/babel-plugin-filter-imports-3.0.0.tgz#a849683837ad29960da17492fb32789ab6b09a11" - integrity sha512-p/chjzVTgCxUqyLM0q/pfWVZS7IJTwGQMwNg0LOvuQpKiTftQgZDtkGB8XvETnUw19rRcL7bJCTopSwibTN2tA== - dependencies: - "@babel/types" "^7.4.0" - lodash "^4.17.11" - babel-plugin-istanbul@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" @@ -7528,14 +7520,6 @@ babel-plugin-transform-define@^1.3.1: lodash "^4.17.11" traverse "0.6.6" -babel-plugin-transform-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-imports/-/babel-plugin-transform-imports-2.0.0.tgz#9e5f49f751a9d34ba8f4bb988c7e48ed2419c6b6" - integrity sha512-65ewumYJ85QiXdcB/jmiU0y0jg6eL6CdnDqQAqQ8JMOKh1E52VPG3NJzbVKWcgovUR5GBH8IWpCXQ7I8Q3wjgw== - dependencies: - "@babel/types" "^7.4" - is-valid-path "^0.1.1" - babel-plugin-transform-inline-consecutive-adds@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz#323d47a3ea63a83a7ac3c811ae8e6941faf2b0d1" @@ -17695,7 +17679,7 @@ is-valid-glob@^1.0.0: resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= -is-valid-path@0.1.1, is-valid-path@^0.1.1: +is-valid-path@0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-valid-path/-/is-valid-path-0.1.1.tgz#110f9ff74c37f663e1ec7915eb451f2db93ac9df" integrity sha1-EQ+f90w39mPh7HkV60UfLbk6yd8= From d0f8e5cbea83c9e8f1bd003e904922795c3346ca Mon Sep 17 00:00:00 2001 From: Caroline Horn <549577+cchaos@users.noreply.github.com> Date: Thu, 1 Oct 2020 15:49:14 -0400 Subject: [PATCH 126/142] Fix z-index of KQL Suggestions dropdown (#79184) Fix from #4084 --- src/plugins/data/public/ui/typeahead/suggestions_component.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/data/public/ui/typeahead/suggestions_component.tsx b/src/plugins/data/public/ui/typeahead/suggestions_component.tsx index 054c6318b9772..50ed9e9542d36 100644 --- a/src/plugins/data/public/ui/typeahead/suggestions_component.tsx +++ b/src/plugins/data/public/ui/typeahead/suggestions_component.tsx @@ -154,7 +154,7 @@ export class SuggestionsComponent extends Component<Props> { const StyledSuggestionsListDiv = styled.div` ${(props: { queryBarRect: DOMRect; verticalListPosition: string }) => ` position: absolute; - z-index: 999; + z-index: 4001; left: ${props.queryBarRect.left}px; width: ${props.queryBarRect.width}px; ${props.verticalListPosition}`} From 0a7462dc4acb79bc28873b4ce82a510aa624397c Mon Sep 17 00:00:00 2001 From: Lee Drengenberg <lee.drengenberg@elastic.co> Date: Thu, 1 Oct 2020 15:35:36 -0500 Subject: [PATCH 127/142] move apps lower in tree, add metricbeat dashboard screenshot test (#79001) --- .../services/common/failure_debugging.ts | 2 +- .../functional/services/common/screenshots.ts | 2 +- test/functional/services/common/snapshots.ts | 2 +- .../{test/functional => }/apps/ccs/ccs.js | 0 .../{test/functional => }/apps/ccs/index.js | 0 .../functional => }/apps/filebeat/filebeat.js | 0 .../functional => }/apps/filebeat/index.js | 0 .../apps/heartbeat/_heartbeat.js | 0 .../functional => }/apps/heartbeat/index.js | 0 .../apps/management/_index_pattern_create.js | 0 .../functional => }/apps/management/index.js | 0 .../apps/metricbeat/_metricbeat.js | 0 .../apps/metricbeat/_metricbeat_dashboard.js | 59 +++++++++++++++++++ .../functional => }/apps/metricbeat/index.js | 1 + .../apps/monitoring/_monitoring.js | 0 .../apps/monitoring/_monitoring_metricbeat.js | 0 .../functional => }/apps/monitoring/index.js | 0 .../apps/packetbeat/_packetbeat.js | 0 .../functional => }/apps/packetbeat/index.js | 0 .../functional => }/apps/reporting/index.js | 0 .../apps/reporting/reporting_watcher.js | 0 .../apps/reporting/reporting_watcher_png.js | 0 .../functional => }/apps/reporting/util.js | 0 .../apps/sample_data/e_commerce.js | 0 .../functional => }/apps/sample_data/index.js | 0 .../apps/telemetry/_telemetry.js | 0 .../functional => }/apps/telemetry/index.js | 0 .../apps/winlogbeat/_winlogbeat.js | 0 .../functional => }/apps/winlogbeat/index.js | 0 ...onfig.stack_functional_integration_base.js | 17 ++++-- .../configs/tests_list.js | 6 +- 31 files changed, 81 insertions(+), 8 deletions(-) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/ccs/ccs.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/ccs/index.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/filebeat/filebeat.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/filebeat/index.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/heartbeat/_heartbeat.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/heartbeat/index.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/management/_index_pattern_create.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/management/index.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/metricbeat/_metricbeat.js (100%) create mode 100644 x-pack/test/stack_functional_integration/apps/metricbeat/_metricbeat_dashboard.js rename x-pack/test/stack_functional_integration/{test/functional => }/apps/metricbeat/index.js (86%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/monitoring/_monitoring.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/monitoring/_monitoring_metricbeat.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/monitoring/index.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/packetbeat/_packetbeat.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/packetbeat/index.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/reporting/index.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/reporting/reporting_watcher.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/reporting/reporting_watcher_png.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/reporting/util.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/sample_data/e_commerce.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/sample_data/index.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/telemetry/_telemetry.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/telemetry/index.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/winlogbeat/_winlogbeat.js (100%) rename x-pack/test/stack_functional_integration/{test/functional => }/apps/winlogbeat/index.js (100%) diff --git a/test/functional/services/common/failure_debugging.ts b/test/functional/services/common/failure_debugging.ts index aa67c455e0100..8b0e095b71ff8 100644 --- a/test/functional/services/common/failure_debugging.ts +++ b/test/functional/services/common/failure_debugging.ts @@ -38,7 +38,7 @@ export async function FailureDebuggingProvider({ getService }: FtrProviderContex const log = getService('log'); const browser = getService('browser'); - if (process.env.CI !== 'true') { + if (process.env.CI !== 'true' && !process.env.stack_functional_integration) { await del(config.get('failureDebugging.htmlDirectory')); } diff --git a/test/functional/services/common/screenshots.ts b/test/functional/services/common/screenshots.ts index daa55240f3eb7..5bce0d4cf6c87 100644 --- a/test/functional/services/common/screenshots.ts +++ b/test/functional/services/common/screenshots.ts @@ -40,7 +40,7 @@ export async function ScreenshotsProvider({ getService }: FtrProviderContext) { const FAILURE_DIRECTORY = resolve(config.get('screenshots.directory'), 'failure'); const BASELINE_DIRECTORY = resolve(config.get('screenshots.directory'), 'baseline'); - if (process.env.CI !== 'true') { + if (process.env.CI !== 'true' && !process.env.stack_functional_integration) { await del([SESSION_DIRECTORY, FAILURE_DIRECTORY]); } diff --git a/test/functional/services/common/snapshots.ts b/test/functional/services/common/snapshots.ts index 2e0b360e594e5..03eadff82e31f 100644 --- a/test/functional/services/common/snapshots.ts +++ b/test/functional/services/common/snapshots.ts @@ -35,7 +35,7 @@ export async function SnapshotsProvider({ getService }: FtrProviderContext) { const SESSION_DIRECTORY = resolve(config.get('snapshots.directory'), 'session'); const BASELINE_DIRECTORY = resolve(config.get('snapshots.directory'), 'baseline'); - if (process.env.CI !== 'true') { + if (process.env.CI !== 'true' && !process.env.stack_functional_integration) { await del([SESSION_DIRECTORY]); } diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/ccs/ccs.js b/x-pack/test/stack_functional_integration/apps/ccs/ccs.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/ccs/ccs.js rename to x-pack/test/stack_functional_integration/apps/ccs/ccs.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/ccs/index.js b/x-pack/test/stack_functional_integration/apps/ccs/index.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/ccs/index.js rename to x-pack/test/stack_functional_integration/apps/ccs/index.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/filebeat/filebeat.js b/x-pack/test/stack_functional_integration/apps/filebeat/filebeat.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/filebeat/filebeat.js rename to x-pack/test/stack_functional_integration/apps/filebeat/filebeat.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/filebeat/index.js b/x-pack/test/stack_functional_integration/apps/filebeat/index.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/filebeat/index.js rename to x-pack/test/stack_functional_integration/apps/filebeat/index.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/heartbeat/_heartbeat.js b/x-pack/test/stack_functional_integration/apps/heartbeat/_heartbeat.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/heartbeat/_heartbeat.js rename to x-pack/test/stack_functional_integration/apps/heartbeat/_heartbeat.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/heartbeat/index.js b/x-pack/test/stack_functional_integration/apps/heartbeat/index.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/heartbeat/index.js rename to x-pack/test/stack_functional_integration/apps/heartbeat/index.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/management/_index_pattern_create.js b/x-pack/test/stack_functional_integration/apps/management/_index_pattern_create.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/management/_index_pattern_create.js rename to x-pack/test/stack_functional_integration/apps/management/_index_pattern_create.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/management/index.js b/x-pack/test/stack_functional_integration/apps/management/index.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/management/index.js rename to x-pack/test/stack_functional_integration/apps/management/index.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/metricbeat/_metricbeat.js b/x-pack/test/stack_functional_integration/apps/metricbeat/_metricbeat.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/metricbeat/_metricbeat.js rename to x-pack/test/stack_functional_integration/apps/metricbeat/_metricbeat.js diff --git a/x-pack/test/stack_functional_integration/apps/metricbeat/_metricbeat_dashboard.js b/x-pack/test/stack_functional_integration/apps/metricbeat/_metricbeat_dashboard.js new file mode 100644 index 0000000000000..42f707fb77854 --- /dev/null +++ b/x-pack/test/stack_functional_integration/apps/metricbeat/_metricbeat_dashboard.js @@ -0,0 +1,59 @@ +/* + * 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 { REPO_ROOT } from '@kbn/dev-utils'; + +export default function ({ getService, getPageObjects, updateBaselines }) { + const screenshot = getService('screenshots'); + const browser = getService('browser'); + const esArchiver = getService('esArchiver'); + const PageObjects = getPageObjects(['common', 'dashboard', 'timePicker']); + + describe('check metricbeat Dashboard', function () { + before(async function () { + await esArchiver.load(`${REPO_ROOT}/../integration-test/test/es_archives/metricbeat`); + + // this navigateToActualURL takes the place of navigating to the dashboard landing page, + // filtering on the dashboard name, selecting it, setting the timepicker, and going to full screen + await PageObjects.common.navigateToActualUrl( + 'dashboard', + 'view/Metricbeat-system-overview-ecs?_g=(filters:!(),refreshInterval:(pause:!t,value:0),' + + 'time:(from:%272020-09-29T19:02:37.902Z%27,to:%272020-09-29T19:06:43.218Z%27))&_a=' + + '(description:%27Overview%20of%20system%20metrics%27,filters:!(),fullScreenMode:!t,' + + 'options:(darkTheme:!f),query:(language:kuery,query:%27%27),timeRestore:!f,' + + 'title:%27%5BMetricbeat%20System%5D%20Overview%20ECS%27,viewMode:view)', + { + ensureCurrentUrl: false, + shouldLoginIfPrompted: true, + } + ); + // await PageObjects.common.navigateToApp('dashboard', { insertTimestamp: false }); + // await PageObjects.dashboard.loadSavedDashboard('[Metricbeat System] Overview ECS'); + // await PageObjects.timePicker.setAbsoluteRange( + // 'Sep 29, 2020 @ 14:02:37.902', + // 'Sep 29, 2020 @ 14:06:43.218' + // ); + // await PageObjects.dashboard.clickFullScreenMode(); + + await PageObjects.common.sleep(2000); + await PageObjects.dashboard.waitForRenderComplete(); + await browser.setScreenshotSize(1000, 1000); + }); + + it('[Metricbeat System] Overview ECS should match snapshot', async function () { + try { + const percentDifference = await screenshot.compareAgainstBaseline( + 'metricbeat_dashboard', + updateBaselines + ); + expect(percentDifference).to.be.lessThan(0.01); + } finally { + await PageObjects.dashboard.clickExitFullScreenLogoButton(); + } + }); + }); +} diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/metricbeat/index.js b/x-pack/test/stack_functional_integration/apps/metricbeat/index.js similarity index 86% rename from x-pack/test/stack_functional_integration/test/functional/apps/metricbeat/index.js rename to x-pack/test/stack_functional_integration/apps/metricbeat/index.js index d45d6c835a315..148762c6a8b77 100644 --- a/x-pack/test/stack_functional_integration/test/functional/apps/metricbeat/index.js +++ b/x-pack/test/stack_functional_integration/apps/metricbeat/index.js @@ -7,5 +7,6 @@ export default function ({ loadTestFile }) { describe('metricbeat app', function () { loadTestFile(require.resolve('./_metricbeat')); + loadTestFile(require.resolve('./_metricbeat_dashboard')); }); } diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/monitoring/_monitoring.js b/x-pack/test/stack_functional_integration/apps/monitoring/_monitoring.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/monitoring/_monitoring.js rename to x-pack/test/stack_functional_integration/apps/monitoring/_monitoring.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/monitoring/_monitoring_metricbeat.js b/x-pack/test/stack_functional_integration/apps/monitoring/_monitoring_metricbeat.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/monitoring/_monitoring_metricbeat.js rename to x-pack/test/stack_functional_integration/apps/monitoring/_monitoring_metricbeat.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/monitoring/index.js b/x-pack/test/stack_functional_integration/apps/monitoring/index.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/monitoring/index.js rename to x-pack/test/stack_functional_integration/apps/monitoring/index.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/packetbeat/_packetbeat.js b/x-pack/test/stack_functional_integration/apps/packetbeat/_packetbeat.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/packetbeat/_packetbeat.js rename to x-pack/test/stack_functional_integration/apps/packetbeat/_packetbeat.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/packetbeat/index.js b/x-pack/test/stack_functional_integration/apps/packetbeat/index.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/packetbeat/index.js rename to x-pack/test/stack_functional_integration/apps/packetbeat/index.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/reporting/index.js b/x-pack/test/stack_functional_integration/apps/reporting/index.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/reporting/index.js rename to x-pack/test/stack_functional_integration/apps/reporting/index.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/reporting/reporting_watcher.js b/x-pack/test/stack_functional_integration/apps/reporting/reporting_watcher.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/reporting/reporting_watcher.js rename to x-pack/test/stack_functional_integration/apps/reporting/reporting_watcher.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/reporting/reporting_watcher_png.js b/x-pack/test/stack_functional_integration/apps/reporting/reporting_watcher_png.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/reporting/reporting_watcher_png.js rename to x-pack/test/stack_functional_integration/apps/reporting/reporting_watcher_png.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/reporting/util.js b/x-pack/test/stack_functional_integration/apps/reporting/util.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/reporting/util.js rename to x-pack/test/stack_functional_integration/apps/reporting/util.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/sample_data/e_commerce.js b/x-pack/test/stack_functional_integration/apps/sample_data/e_commerce.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/sample_data/e_commerce.js rename to x-pack/test/stack_functional_integration/apps/sample_data/e_commerce.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/sample_data/index.js b/x-pack/test/stack_functional_integration/apps/sample_data/index.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/sample_data/index.js rename to x-pack/test/stack_functional_integration/apps/sample_data/index.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/telemetry/_telemetry.js b/x-pack/test/stack_functional_integration/apps/telemetry/_telemetry.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/telemetry/_telemetry.js rename to x-pack/test/stack_functional_integration/apps/telemetry/_telemetry.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/telemetry/index.js b/x-pack/test/stack_functional_integration/apps/telemetry/index.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/telemetry/index.js rename to x-pack/test/stack_functional_integration/apps/telemetry/index.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/winlogbeat/_winlogbeat.js b/x-pack/test/stack_functional_integration/apps/winlogbeat/_winlogbeat.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/winlogbeat/_winlogbeat.js rename to x-pack/test/stack_functional_integration/apps/winlogbeat/_winlogbeat.js diff --git a/x-pack/test/stack_functional_integration/test/functional/apps/winlogbeat/index.js b/x-pack/test/stack_functional_integration/apps/winlogbeat/index.js similarity index 100% rename from x-pack/test/stack_functional_integration/test/functional/apps/winlogbeat/index.js rename to x-pack/test/stack_functional_integration/apps/winlogbeat/index.js diff --git a/x-pack/test/stack_functional_integration/configs/config.stack_functional_integration_base.js b/x-pack/test/stack_functional_integration/configs/config.stack_functional_integration_base.js index 96d338a04b01b..a838b129242a1 100644 --- a/x-pack/test/stack_functional_integration/configs/config.stack_functional_integration_base.js +++ b/x-pack/test/stack_functional_integration/configs/config.stack_functional_integration_base.js @@ -6,12 +6,12 @@ import { resolve } from 'path'; import buildState from './build_state'; -import { ToolingLog } from '@kbn/dev-utils'; +import { ToolingLog, REPO_ROOT } from '@kbn/dev-utils'; import chalk from 'chalk'; import { esTestConfig, kbnTestConfig } from '@kbn/test'; const reportName = 'Stack Functional Integration Tests'; -const testsFolder = '../test/functional/apps'; +const testsFolder = '../apps'; const log = new ToolingLog({ level: 'info', writeTo: process.stdout, @@ -19,13 +19,14 @@ const log = new ToolingLog({ log.info(`WORKSPACE in config file ${process.env.WORKSPACE}`); const stateFilePath = process.env.WORKSPACE ? `${process.env.WORKSPACE}/qa/envvars.sh` - : '../../../../../integration-test/qa/envvars.sh'; + : `${REPO_ROOT}/../integration-test/qa/envvars.sh`; const prepend = (testFile) => require.resolve(`${testsFolder}/${testFile}`); export default async ({ readConfigFile }) => { const defaultConfigs = await readConfigFile(require.resolve('../../functional/config')); const { tests, ...provisionedConfigs } = buildState(resolve(__dirname, stateFilePath)); + process.env.stack_functional_integration = true; const servers = { kibana: kbnTestConfig.getUrlParts(), @@ -43,6 +44,14 @@ export default async ({ readConfigFile }) => { // If we need to do things like disable animations, we can do it in configure_start_kibana.sh, in the provisioner...which lives in the integration-test private repo uiSettings: {}, security: { disableTestUser: true }, + // choose where screenshots should be saved + screenshots: { + directory: resolve(`${REPO_ROOT}/../integration-test`, 'test/screenshots'), + }, + // choose where esArchiver should load archives from + esArchiver: { + directory: resolve(`${REPO_ROOT}/../integration-test`, 'test/es_archives'), + }, }; return settings; }; @@ -55,7 +64,7 @@ function truncate(testPath) { return dropKibanaPath(testPath); } function highLight(testPath) { - const dropTestsPath = splitRight(/^.+test[\\/]functional[\\/]apps[\\/](.*)[\\/]/gm); + const dropTestsPath = splitRight(/^.+apps[\\/](.*)[\\/]/gm); const cleaned = dropTestsPath(testPath); const colored = chalk.greenBright.bold(cleaned); return testPath.replace(cleaned, colored); diff --git a/x-pack/test/stack_functional_integration/configs/tests_list.js b/x-pack/test/stack_functional_integration/configs/tests_list.js index 0d91a078b73fd..44b622a8bc9c5 100644 --- a/x-pack/test/stack_functional_integration/configs/tests_list.js +++ b/x-pack/test/stack_functional_integration/configs/tests_list.js @@ -20,7 +20,11 @@ export default (envObj) => { } if (envObj.BEATS.includes('metricbeat')) { - xs.push('metricbeat'); + xs.push('metricbeat/_metricbeat'); + if (envObj.XPACK === 'YES') { + // the esArchive and dashboard png are specific to the default distribution (with XPACK) + xs.push('metricbeat/_metricbeat_dashboard'); + } } if (envObj.BEATS.includes('filebeat')) { xs.push('filebeat'); From 3078908093a32f4538e436ba227c650f745c5d33 Mon Sep 17 00:00:00 2001 From: Angela Chuang <6295984+angorayc@users.noreply.github.com> Date: Thu, 1 Oct 2020 21:46:13 +0100 Subject: [PATCH 128/142] [Security Solution] Searchstrategy integration (#78147) * init tests * add integration test for topNflow search strategy * add integration tests * add more tests * more tests * fix types * fix types * fix integration test * fix types * rm grapgql * fix type * fixup * fix test error * fix integration test * skip failing test * fix integration * skip failing test * skip failing test * fix integration tests for kpi network * fix integration test * fix integration test * fix import * remove additional data Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> --- .../factory/hosts/details/helpers.ts | 9 +- .../hosts/last_first_seen/__mocks__/index.ts | 3 - .../factory/hosts/last_first_seen/index.ts | 1 - .../apis/security_solution/authentications.ts | 107 +++--- .../apis/security_solution/host_details.ts | 237 ++++++++++++ .../apis/security_solution/hosts.ts | 212 +++++------ .../apis/security_solution/index.js | 26 +- .../security_solution/kpi_host_details.ts | 185 ---------- .../apis/security_solution/kpi_hosts.ts | 265 ++++++++------ .../apis/security_solution/kpi_network.ts | 345 ++++++++++++------ .../apis/security_solution/network_details.ts | 80 ++-- .../apis/security_solution/network_dns.ts | 143 ++++---- .../security_solution/network_top_n_flow.ts | 301 ++++++++------- .../apis/security_solution/overview_host.ts | 55 +-- .../security_solution/overview_network.ts | 131 ++++--- .../apis/security_solution/sources.ts | 4 +- .../apis/security_solution/timeline.ts | 8 +- .../security_solution/timeline_details.ts | 223 +++++------ .../apis/security_solution/tls.ts | 243 ++++++------ .../security_solution/uncommon_processes.ts | 81 ++-- .../apis/security_solution/users.ts | 78 ++-- .../es_archives/filebeat/default/data.json.gz | Bin 711714 -> 711718 bytes .../packetbeat/default/data.json.gz | Bin 78494 -> 78491 bytes 23 files changed, 1438 insertions(+), 1299 deletions(-) create mode 100644 x-pack/test/api_integration/apis/security_solution/host_details.ts delete mode 100644 x-pack/test/api_integration/apis/security_solution/kpi_host_details.ts diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/helpers.ts index ed705e7f6ad56..644278963742d 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/helpers.ts @@ -7,6 +7,7 @@ import { set } from '@elastic/safer-lodash-set/fp'; import { get, has, head } from 'lodash/fp'; import { hostFieldsMap } from '../../../../../../common/ecs/ecs_fields'; import { HostItem } from '../../../../../../common/search_strategy/security_solution/hosts'; +import { toArray } from '../../../../helpers/to_array'; import { HostAggEsItem, HostBuckets, HostValue } from '../../../../../lib/hosts/types'; @@ -36,7 +37,10 @@ export const formatHostItem = (bucket: HostAggEsItem): HostItem => HOST_FIELDS.reduce<HostItem>((flattenedFields, fieldName) => { const fieldValue = getHostFieldValue(fieldName, bucket); if (fieldValue != null) { - return set(fieldName, fieldValue, flattenedFields); + if (fieldName === '_id') { + return set('_id', fieldValue, flattenedFields); + } + return set(fieldName, toArray(fieldValue), flattenedFields); } return flattenedFields; }, {}); @@ -72,6 +76,9 @@ const getHostFieldValue = (fieldName: string, bucket: HostAggEsItem): string | s case 'host.os.version': return get('os.hits.hits[0]._source.host.os.version', bucket) || null; } + } else if (aggField === '_id') { + const hostName = get(`host_name`, bucket); + return hostName ? getFirstItem(hostName) : null; } return null; }; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/__mocks__/index.ts index 224dcd1f8de24..00427863c5f4b 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/__mocks__/index.ts @@ -57,9 +57,6 @@ export const formattedSearchStrategyResponse = { dsl: [ '{\n "allowNoIndices": true,\n "index": [\n "apm-*-transaction*",\n "auditbeat-*",\n "endgame-*",\n "filebeat-*",\n "logs-*",\n "packetbeat-*",\n "winlogbeat-*"\n ],\n "ignoreUnavailable": true,\n "body": {\n "docvalue_fields": [],\n "aggregations": {\n "firstSeen": {\n "min": {\n "field": "@timestamp"\n }\n },\n "lastSeen": {\n "max": {\n "field": "@timestamp"\n }\n }\n },\n "query": {\n "bool": {\n "filter": [\n {\n "term": {\n "host.name": "siem-kibana"\n }\n }\n ]\n }\n },\n "size": 0,\n "track_total_hits": false\n }\n}', ], - response: [ - '{\n "isPartial": false,\n "isRunning": false,\n "rawResponse": {\n "took": 230,\n "timed_out": false,\n "_shards": {\n "total": 21,\n "successful": 21,\n "skipped": 0,\n "failed": 0\n },\n "hits": {\n "total": -1,\n "max_score": 0,\n "hits": []\n },\n "aggregations": {\n "lastSeen": {\n "value": 1599554931759,\n "value_as_string": "2020-09-08T08:48:51.759Z"\n },\n "firstSeen": {\n "value": 1591611722000,\n "value_as_string": "2020-06-08T10:22:02.000Z"\n }\n }\n },\n "total": 21,\n "loaded": 21\n}', - ], }, firstSeen: '2020-06-08T10:22:02.000Z', lastSeen: '2020-09-08T08:48:51.759Z', diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/index.ts index 56895583c2ae9..ee97436d2653f 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/index.ts @@ -28,7 +28,6 @@ export const firstLastSeenHost: SecuritySolutionFactory<HostsQueries.firstLastSe const aggregations: HostAggEsItem = get('aggregations', response.rawResponse) || {}; const inspect = { dsl: [inspectStringifyObject(buildFirstLastSeenHostQuery(options))], - response: [inspectStringifyObject(response)], }; return { diff --git a/x-pack/test/api_integration/apis/security_solution/authentications.ts b/x-pack/test/api_integration/apis/security_solution/authentications.ts index d36f9aeaa8804..c0a3570c9d8e2 100644 --- a/x-pack/test/api_integration/apis/security_solution/authentications.ts +++ b/x-pack/test/api_integration/apis/security_solution/authentications.ts @@ -5,11 +5,8 @@ */ import expect from '@kbn/expect'; +import { HostsQueries } from '../../../../plugins/security_solution/common/search_strategy'; -// @ts-expect-error -import { authenticationsQuery } from '../../../../plugins/security_solution/public/hosts/containers/authentications/index.gql_query'; -// @ts-expect-error -import { GetAuthenticationsQuery } from '../../../../plugins/security_solution/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; const FROM = '2000-01-01T00:00:00.000Z'; @@ -22,70 +19,66 @@ const EDGE_LENGTH = 1; export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); + const supertest = getService('supertest'); describe('authentications', () => { before(() => esArchiver.load('auditbeat/hosts')); after(() => esArchiver.unload('auditbeat/hosts')); - it('Make sure that we get Authentication data', () => { - return client - .query<GetAuthenticationsQuery.Query>({ - query: authenticationsQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 3, - querySize: 1, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Make sure that we get Authentication data', async () => { + const { body: authentications } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsQueries.authentications, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + pagination: { + activePage: 0, + cursorStart: 0, + fakePossibleCount: 3, + querySize: 1, + }, + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + docValueFields: [], + inspect: false, }) - .then((resp) => { - const authentications = resp.data.source.Authentications; - expect(authentications.edges.length).to.be(EDGE_LENGTH); - expect(authentications.totalCount).to.be(TOTAL_COUNT); - expect(authentications.pageInfo.fakeTotalCount).to.equal(3); - }); + .expect(200); + + expect(authentications.edges.length).to.be(EDGE_LENGTH); + expect(authentications.totalCount).to.be(TOTAL_COUNT); + expect(authentications.pageInfo.fakeTotalCount).to.equal(3); }); - it('Make sure that pagination is working in Authentications query', () => { - return client - .query<GetAuthenticationsQuery.Query>({ - query: authenticationsQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - pagination: { - activePage: 2, - cursorStart: 1, - fakePossibleCount: 5, - querySize: 2, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Make sure that pagination is working in Authentications query', async () => { + const { body: authentications } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsQueries.authentications, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + pagination: { + activePage: 2, + cursorStart: 1, + fakePossibleCount: 5, + querySize: 2, + }, + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + docValueFields: [], + inspect: false, }) - .then((resp) => { - const authentications = resp.data.source.Authentications; - expect(authentications.edges.length).to.be(EDGE_LENGTH); - expect(authentications.totalCount).to.be(TOTAL_COUNT); - expect(authentications.edges[0]!.node.lastSuccess!.host!.name).to.eql([HOST_NAME]); - }); + .expect(200); + + expect(authentications.edges.length).to.be(EDGE_LENGTH); + expect(authentications.totalCount).to.be(TOTAL_COUNT); + expect(authentications.edges[0]!.node.lastSuccess!.host!.name).to.eql([HOST_NAME]); }); }); } diff --git a/x-pack/test/api_integration/apis/security_solution/host_details.ts b/x-pack/test/api_integration/apis/security_solution/host_details.ts new file mode 100644 index 0000000000000..9fe9df1fae506 --- /dev/null +++ b/x-pack/test/api_integration/apis/security_solution/host_details.ts @@ -0,0 +1,237 @@ +/* + * 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 { FtrProviderContext } from '../../ftr_provider_context'; +import { HostsQueries } from '../../../../plugins/security_solution/common/search_strategy'; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + + describe('Host Details', () => { + describe('With filebeat', () => { + before(() => esArchiver.load('filebeat/default')); + after(() => esArchiver.unload('filebeat/default')); + + const FROM = '2000-01-01T00:00:00.000Z'; + const TO = '3000-01-01T00:00:00.000Z'; + const expectedResult = { + isPartial: false, + isRunning: false, + rawResponse: { + took: 12, + timed_out: false, + _shards: { + total: 1, + successful: 1, + skipped: 0, + failed: 0, + }, + hits: { + total: 6157, + max_score: null, + hits: [], + }, + aggregations: { + cloud_instance_id: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + host_mac: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + host_ip: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: '151.205.0.17', + doc_count: 1, + timestamp: { + value: 1549766627000, + value_as_string: '2019-02-10T02:43:47.000Z', + }, + }, + ], + }, + cloud_machine_type: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + cloud_region: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + host_os_version: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: '9 (stretch)', + doc_count: 6157, + timestamp: { + value: 1549767613001, + value_as_string: '2019-02-10T03:00:13.001Z', + }, + }, + ], + }, + host_architecture: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'armv7l', + doc_count: 6157, + timestamp: { + value: 1549767613001, + value_as_string: '2019-02-10T03:00:13.001Z', + }, + }, + ], + }, + cloud_provider: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [], + }, + host_os_platform: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'raspbian', + doc_count: 6157, + timestamp: { + value: 1549767613001, + value_as_string: '2019-02-10T03:00:13.001Z', + }, + }, + ], + }, + host_os_name: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'Raspbian GNU/Linux', + doc_count: 6157, + timestamp: { + value: 1549767613001, + value_as_string: '2019-02-10T03:00:13.001Z', + }, + }, + ], + }, + host_os_family: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: '', + doc_count: 6157, + timestamp: { + value: 1549767613001, + value_as_string: '2019-02-10T03:00:13.001Z', + }, + }, + ], + }, + host_name: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'raspberrypi', + doc_count: 6157, + timestamp: { + value: 1549767613001, + value_as_string: '2019-02-10T03:00:13.001Z', + }, + }, + ], + }, + host_id: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'b19a781f683541a7a25ee345133aa399', + doc_count: 6157, + timestamp: { + value: 1549767613001, + value_as_string: '2019-02-10T03:00:13.001Z', + }, + }, + ], + }, + }, + }, + total: 1, + loaded: 1, + inspect: { + dsl: [ + '{\n "allowNoIndices": true,\n "index": [\n "filebeat-*"\n ],\n "ignoreUnavailable": true,\n "body": {\n "aggregations": {\n "host_architecture": {\n "terms": {\n "field": "host.architecture",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n },\n "host_id": {\n "terms": {\n "field": "host.id",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n },\n "host_ip": {\n "terms": {\n "field": "host.ip",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n },\n "host_mac": {\n "terms": {\n "field": "host.mac",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n },\n "host_name": {\n "terms": {\n "field": "host.name",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n },\n "host_os_family": {\n "terms": {\n "field": "host.os.family",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n },\n "host_os_name": {\n "terms": {\n "field": "host.os.name",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n },\n "host_os_platform": {\n "terms": {\n "field": "host.os.platform",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n },\n "host_os_version": {\n "terms": {\n "field": "host.os.version",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n },\n "cloud_instance_id": {\n "terms": {\n "field": "cloud.instance.id",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n },\n "cloud_machine_type": {\n "terms": {\n "field": "cloud.machine.type",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n },\n "cloud_provider": {\n "terms": {\n "field": "cloud.provider",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n },\n "cloud_region": {\n "terms": {\n "field": "cloud.region",\n "size": 10,\n "order": {\n "timestamp": "desc"\n }\n },\n "aggs": {\n "timestamp": {\n "max": {\n "field": "@timestamp"\n }\n }\n }\n }\n },\n "query": {\n "bool": {\n "filter": [\n {\n "term": {\n "host.name": "raspberrypi"\n }\n },\n {\n "range": {\n "@timestamp": {\n "format": "strict_date_optional_time",\n "gte": "2000-01-01T00:00:00.000Z",\n "lte": "3000-01-01T00:00:00.000Z"\n }\n }\n }\n ]\n }\n },\n "size": 0,\n "track_total_hits": false\n }\n}', + ], + }, + hostDetails: { + _id: 'raspberrypi', + host: { + architecture: ['armv7l'], + id: ['b19a781f683541a7a25ee345133aa399'], + ip: ['151.205.0.17'], + mac: [], + name: ['raspberrypi'], + os: { + family: [''], + name: ['Raspbian GNU/Linux'], + platform: ['raspbian'], + version: ['9 (stretch)'], + }, + }, + cloud: { + instance: { + id: [], + }, + machine: { + type: [], + }, + provider: [], + region: [], + }, + }, + }; + + it('Make sure that we get HostDetails data', async () => { + const { + body: { hostDetails }, + } = await supertest + .post('/internal/search/securitySolutionSearchStrategy') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsQueries.details, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + hostName: 'raspberrypi', + inspect: false, + }) + .expect(200); + expect(hostDetails).to.eql(expectedResult.hostDetails); + }); + }); + }); +} diff --git a/x-pack/test/api_integration/apis/security_solution/hosts.ts b/x-pack/test/api_integration/apis/security_solution/hosts.ts index 621718013db7f..d48a021b02db3 100644 --- a/x-pack/test/api_integration/apis/security_solution/hosts.ts +++ b/x-pack/test/api_integration/apis/security_solution/hosts.ts @@ -5,17 +5,12 @@ */ import expect from '@kbn/expect'; - import { + HostsQueries, Direction, - GetHostOverviewQuery, - GetHostFirstLastSeenQuery, - GetHostsTableQuery, HostsFields, -} from '../../../../plugins/security_solution/public/graphql/types'; -import { HostOverviewQuery } from '../../../../plugins/security_solution/public/hosts/containers/hosts/details/host_overview.gql_query'; -import { HostFirstLastSeenGqlQuery } from '../../../../plugins/security_solution/public/hosts/containers/hosts/first_last_seen/first_last_seen.gql_query'; -import { HostsTableQuery } from '../../../../plugins/security_solution/public/hosts/containers/hosts/hosts_table.gql_query'; +} from '../../../../plugins/security_solution/common/search_strategy'; + import { FtrProviderContext } from '../../ftr_provider_context'; const FROM = '2000-01-01T00:00:00.000Z'; @@ -29,85 +24,77 @@ const CURSOR_ID = '2ab45fc1c41e4c84bbd02202a7e5761f'; export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); + const supertest = getService('supertest'); describe('hosts', () => { before(() => esArchiver.load('auditbeat/hosts')); after(() => esArchiver.unload('auditbeat/hosts')); - it('Make sure that we get Hosts Table data', () => { - return client - .query<GetHostsTableQuery.Query>({ - query: HostsTableQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - sort: { - field: HostsFields.lastSeen, - direction: Direction.asc, - }, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 3, - querySize: 1, - }, - inspect: false, + it('Make sure that we get Hosts Table data', async () => { + const { body: hosts } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsQueries.hosts, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + docValueFields: [], + sort: { + field: HostsFields.lastSeen, + direction: Direction.asc, }, + pagination: { + activePage: 0, + cursorStart: 0, + fakePossibleCount: 3, + querySize: 1, + }, + inspect: false, }) - .then((resp) => { - const hosts = resp.data.source.Hosts; - expect(hosts.edges.length).to.be(EDGE_LENGTH); - expect(hosts.totalCount).to.be(TOTAL_COUNT); - expect(hosts.pageInfo.fakeTotalCount).to.equal(3); - }); + .expect(200); + expect(hosts.edges.length).to.be(EDGE_LENGTH); + expect(hosts.totalCount).to.be(TOTAL_COUNT); + expect(hosts.pageInfo.fakeTotalCount).to.equal(3); }); - it('Make sure that pagination is working in Hosts Table query', () => { - return client - .query<GetHostsTableQuery.Query>({ - query: HostsTableQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - sort: { - field: HostsFields.lastSeen, - direction: Direction.asc, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - pagination: { - activePage: 2, - cursorStart: 1, - fakePossibleCount: 5, - querySize: 2, - }, - inspect: false, + it('Make sure that pagination is working in Hosts Table query', async () => { + const { body: hosts } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsQueries.hosts, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + sort: { + field: HostsFields.lastSeen, + direction: Direction.asc, + }, + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + docValueFields: [], + pagination: { + activePage: 2, + cursorStart: 1, + fakePossibleCount: 5, + querySize: 2, }, + inspect: false, }) - .then((resp) => { - const hosts = resp.data.source.Hosts; - - expect(hosts.edges.length).to.be(EDGE_LENGTH); - expect(hosts.totalCount).to.be(TOTAL_COUNT); - expect(hosts.edges[0]!.node.host!.os!.name).to.eql([HOST_NAME]); - }); + .expect(200); + expect(hosts.edges.length).to.be(EDGE_LENGTH); + expect(hosts.totalCount).to.be(TOTAL_COUNT); + expect(hosts.edges[0]!.node.host!.os!.name).to.eql([HOST_NAME]); }); - it('Make sure that we get Host Overview data', () => { - const expectedHost: Omit<GetHostOverviewQuery.HostOverview, 'inspect'> = { + it('Make sure that we get Host details data', async () => { + const expectedHostDetails = { _id: 'zeek-sensor-san-francisco', - endpoint: null, host: { architecture: ['x86_64'], id: [CURSOR_ID], @@ -119,68 +106,59 @@ export default function ({ getService }: FtrProviderContext) { name: [HOST_NAME], platform: ['ubuntu'], version: ['18.04.2 LTS (Bionic Beaver)'], - __typename: 'OsEcsFields', }, - type: null, - __typename: 'HostEcsFields', }, cloud: { instance: { id: ['132972452'], - __typename: 'CloudInstance', }, machine: { type: [], - __typename: 'CloudMachine', }, provider: ['digitalocean'], region: ['sfo2'], - __typename: 'CloudFields', }, - __typename: 'HostItem', }; - - return client - .query<GetHostOverviewQuery.Query>({ - query: HostOverviewQuery, - variables: { - sourceId: 'default', - hostName: 'zeek-sensor-san-francisco', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + const { + body: { hostDetails }, + } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsQueries.details, + hostName: 'zeek-sensor-san-francisco', + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + docValueFields: [], + inspect: false, }) - .then((resp) => { - const hosts = resp.data.source.HostOverview; - expect(hosts).to.eql(expectedHost); - }); + .expect(200); + + expect(hostDetails).to.eql(expectedHostDetails); }); - it('Make sure that we get Last First Seen for a Host', () => { - return client - .query<GetHostFirstLastSeenQuery.Query>({ - query: HostFirstLastSeenGqlQuery, - variables: { - sourceId: 'default', - hostName: 'zeek-sensor-san-francisco', - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - }, + it('Make sure that we get Last First Seen for a Host', async () => { + const { body: firstLastSeenHost } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsQueries.firstLastSeen, + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + docValueFields: [], + hostName: 'zeek-sensor-san-francisco', }) - .then((resp) => { - const firstLastSeenHost = resp.data.source.HostFirstLastSeen; - expect(firstLastSeenHost).to.eql({ - __typename: 'FirstLastSeenHost', - firstSeen: '2019-02-19T19:36:23.561Z', - lastSeen: '2019-02-19T20:42:33.561Z', - }); - }); + .expect(200); + const expected = { + firstSeen: '2019-02-19T19:36:23.561Z', + lastSeen: '2019-02-19T20:42:33.561Z', + }; + + expect(firstLastSeenHost.firstSeen).to.eql(expected.firstSeen); + expect(firstLastSeenHost.lastSeen).to.eql(expected.lastSeen); }); }); } diff --git a/x-pack/test/api_integration/apis/security_solution/index.js b/x-pack/test/api_integration/apis/security_solution/index.js index 3d24af4413800..b28ddf7efd575 100644 --- a/x-pack/test/api_integration/apis/security_solution/index.js +++ b/x-pack/test/api_integration/apis/security_solution/index.js @@ -5,24 +5,26 @@ */ export default function ({ loadTestFile }) { - describe('Siem GraphQL Endpoints', () => { - // loadTestFile(require.resolve('./authentications')); + describe('SecuritySolution Endpoints', () => { + loadTestFile(require.resolve('./authentications')); loadTestFile(require.resolve('./hosts')); - // loadTestFile(require.resolve('./kpi_network')); - // loadTestFile(require.resolve('./kpi_hosts')); - // loadTestFile(require.resolve('./network_dns')); - // loadTestFile(require.resolve('./network_top_n_flow')); - // loadTestFile(require.resolve('./overview_host')); + loadTestFile(require.resolve('./host_details')); + loadTestFile(require.resolve('./kpi_network')); + loadTestFile(require.resolve('./kpi_hosts')); + loadTestFile(require.resolve('./network_details')); + loadTestFile(require.resolve('./network_dns')); + loadTestFile(require.resolve('./network_top_n_flow')); + loadTestFile(require.resolve('./overview_host')); + loadTestFile(require.resolve('./overview_network')); loadTestFile(require.resolve('./saved_objects/notes')); loadTestFile(require.resolve('./saved_objects/pinned_events')); loadTestFile(require.resolve('./saved_objects/timeline')); loadTestFile(require.resolve('./sources')); - // loadTestFile(require.resolve('./overview_network')); // loadTestFile(require.resolve('./timeline')); - // loadTestFile(require.resolve('./timeline_details')); - // loadTestFile(require.resolve('./uncommon_processes')); - // loadTestFile(require.resolve('./users')); - // loadTestFile(require.resolve('./tls')); + loadTestFile(require.resolve('./timeline_details')); + loadTestFile(require.resolve('./uncommon_processes')); + loadTestFile(require.resolve('./users')); + loadTestFile(require.resolve('./tls')); loadTestFile(require.resolve('./feature_controls')); }); } diff --git a/x-pack/test/api_integration/apis/security_solution/kpi_host_details.ts b/x-pack/test/api_integration/apis/security_solution/kpi_host_details.ts deleted file mode 100644 index 27e4e02ee7d08..0000000000000 --- a/x-pack/test/api_integration/apis/security_solution/kpi_host_details.ts +++ /dev/null @@ -1,185 +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'; -// @ts-expect-error -import { kpiHostDetailsQuery } from '../../../../plugins/security_solution/public/hosts/containers/kpi_host_details/index.gql_query'; -// @ts-expect-error -import { GetKpiHostDetailsQuery } from '../../../../plugins/security_solution/public/graphql/types'; -import { FtrProviderContext } from '../../ftr_provider_context'; - -export default function ({ getService }: FtrProviderContext) { - const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); - describe('Kpi Host Details', () => { - describe('With filebeat', () => { - before(() => esArchiver.load('filebeat/default')); - after(() => esArchiver.unload('filebeat/default')); - - const FROM = '2000-01-01T00:00:00.000Z'; - const TO = '3000-01-01T00:00:00.000Z'; - const expectedResult = { - __typename: 'KpiHostDetailsData', - authSuccess: 0, - authSuccessHistogram: null, - authFailure: 0, - authFailureHistogram: null, - uniqueSourceIps: 121, - uniqueSourceIpsHistogram: [ - { - x: new Date('2019-02-09T16:00:00.000Z').valueOf(), - y: 52, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-09T19:00:00.000Z').valueOf(), - y: 0, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-09T22:00:00.000Z').valueOf(), - y: 31, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-10T01:00:00.000Z').valueOf(), - y: 88, - __typename: 'KpiHostHistogramData', - }, - ], - uniqueDestinationIps: 154, - uniqueDestinationIpsHistogram: [ - { - x: new Date('2019-02-09T16:00:00.000Z').valueOf(), - y: 61, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-09T19:00:00.000Z').valueOf(), - y: 0, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-09T22:00:00.000Z').valueOf(), - y: 45, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-10T01:00:00.000Z').valueOf(), - y: 114, - __typename: 'KpiHostHistogramData', - }, - ], - }; - - it('Make sure that we get KpiHostDetails data', () => { - return client - .query<GetKpiHostDetailsQuery.Query>({ - query: kpiHostDetailsQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - hostName: 'zeek-sensor-san-francisco', - docValueFields: [], - inspect: false, - }, - }) - .then((resp) => { - const kpiHosts = resp.data.source.KpiHostDetails; - expect(kpiHosts!).to.eql(expectedResult); - }); - }); - }); - - describe('With auditbeat', () => { - before(() => esArchiver.load('auditbeat/default')); - after(() => esArchiver.unload('auditbeat/default')); - - const FROM = new Date('2000-01-01T00:00:00.000Z').valueOf(); - const TO = new Date('3000-01-01T00:00:00.000Z').valueOf(); - const expectedResult = { - __typename: 'KpiHostDetailsData', - authSuccess: 0, - authSuccessHistogram: null, - authFailure: 0, - authFailureHistogram: null, - uniqueSourceIps: 121, - uniqueSourceIpsHistogram: [ - { - x: new Date('2019-02-09T16:00:00.000Z').valueOf(), - y: 52, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-09T19:00:00.000Z').valueOf(), - y: 0, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-09T22:00:00.000Z').valueOf(), - y: 31, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-10T01:00:00.000Z').valueOf(), - y: 88, - __typename: 'KpiHostHistogramData', - }, - ], - uniqueDestinationIps: 154, - uniqueDestinationIpsHistogram: [ - { - x: new Date('2019-02-09T16:00:00.000Z').valueOf(), - y: 61, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-09T19:00:00.000Z').valueOf(), - y: 0, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-09T22:00:00.000Z').valueOf(), - y: 45, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-10T01:00:00.000Z').valueOf(), - y: 114, - __typename: 'KpiHostHistogramData', - }, - ], - }; - it('Make sure that we get KpiHostDetails data', () => { - return client - .query<GetKpiHostDetailsQuery.Query>({ - query: kpiHostDetailsQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - hostName: 'zeek-sensor-san-francisco', - inspect: false, - }, - }) - .then((resp) => { - const kpiHosts = resp.data.source.KpiHostDetails; - expect(kpiHosts!).to.eql(expectedResult); - }); - }); - }); - }); -} diff --git a/x-pack/test/api_integration/apis/security_solution/kpi_hosts.ts b/x-pack/test/api_integration/apis/security_solution/kpi_hosts.ts index 64109bd4d9321..b141087c4e3ba 100644 --- a/x-pack/test/api_integration/apis/security_solution/kpi_hosts.ts +++ b/x-pack/test/api_integration/apis/security_solution/kpi_hosts.ts @@ -5,15 +5,13 @@ */ import expect from '@kbn/expect'; -// @ts-expect-error -import { kpiHostsQuery } from '../../../../plugins/security_solution/public/hosts/containers/kpi_hosts/index.gql_query'; -// @ts-expect-error -import { GetKpiHostsQuery } from '../../../../plugins/security_solution/public/graphql/types'; +import { HostsKpiQueries } from '../../../../plugins/security_solution/common/search_strategy'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); + const supertest = getService('supertest'); + describe('Kpi Hosts', () => { describe('With filebeat', () => { before(() => esArchiver.load('filebeat/default')); @@ -22,28 +20,23 @@ export default function ({ getService }: FtrProviderContext) { const FROM = '2000-01-01T00:00:00.000Z'; const TO = '3000-01-01T00:00:00.000Z'; const expectedResult = { - __typename: 'KpiHostsData', hosts: 1, hostsHistogram: [ { x: new Date('2019-02-09T16:00:00.000Z').valueOf(), y: 1, - __typename: 'KpiHostHistogramData', }, { x: new Date('2019-02-09T19:00:00.000Z').valueOf(), y: 0, - __typename: 'KpiHostHistogramData', }, { x: new Date('2019-02-09T22:00:00.000Z').valueOf(), y: 1, - __typename: 'KpiHostHistogramData', }, { x: new Date('2019-02-10T01:00:00.000Z').valueOf(), y: 1, - __typename: 'KpiHostHistogramData', }, ], authSuccess: 0, @@ -55,22 +48,18 @@ export default function ({ getService }: FtrProviderContext) { { x: new Date('2019-02-09T16:00:00.000Z').valueOf(), y: 52, - __typename: 'KpiHostHistogramData', }, { x: new Date('2019-02-09T19:00:00.000Z').valueOf(), y: 0, - __typename: 'KpiHostHistogramData', }, { x: new Date('2019-02-09T22:00:00.000Z').valueOf(), y: 31, - __typename: 'KpiHostHistogramData', }, { x: new Date('2019-02-10T01:00:00.000Z').valueOf(), y: 88, - __typename: 'KpiHostHistogramData', }, ], uniqueDestinationIps: 154, @@ -78,46 +67,87 @@ export default function ({ getService }: FtrProviderContext) { { x: new Date('2019-02-09T16:00:00.000Z').valueOf(), y: 61, - __typename: 'KpiHostHistogramData', }, { x: new Date('2019-02-09T19:00:00.000Z').valueOf(), y: 0, - __typename: 'KpiHostHistogramData', }, { x: new Date('2019-02-09T22:00:00.000Z').valueOf(), y: 45, - __typename: 'KpiHostHistogramData', }, { x: new Date('2019-02-10T01:00:00.000Z').valueOf(), y: 114, - __typename: 'KpiHostHistogramData', }, ], }; - it('Make sure that we get KpiHosts data', () => { - return client - .query<GetKpiHostsQuery.Query>({ - query: kpiHostsQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Make sure that we get KpiHosts data', async () => { + const { body: kpiHosts } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/hostsKpiHostsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsKpiQueries.kpiHosts, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + + expect(kpiHosts.hostsHistogram!).to.eql(expectedResult.hostsHistogram); + expect(kpiHosts.hosts!).to.eql(expectedResult.hosts); + }); + + it('Make sure that we get KpiAuthentications data', async () => { + const { body } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/hostsKpiAuthenticationsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsKpiQueries.kpiAuthentications, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + expect(body.authenticationsSuccess!).to.eql(expectedResult.authSuccess); + expect(body.authenticationsSuccessHistogram!).to.eql(expectedResult.authSuccessHistogram); + expect(body.authenticationsFailure!).to.eql(expectedResult.authSuccess); + expect(body.authenticationsFailureHistogram!).to.eql(expectedResult.authFailureHistogram); + }); + + it('Make sure that we get KpiUniqueIps data', async () => { + const { body } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/hostsKpiUniqueIpsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsKpiQueries.kpiUniqueIps, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + inspect: false, }) - .then((resp) => { - const kpiHosts = resp.data.source.KpiHosts; - expect(kpiHosts!).to.eql(expectedResult); - }); + .expect(200); + expect(body.uniqueDestinationIps!).to.eql(expectedResult.uniqueDestinationIps); + expect(body.uniqueDestinationIpsHistogram!).to.eql( + expectedResult.uniqueDestinationIpsHistogram + ); + expect(body.uniqueSourceIps!).to.eql(expectedResult.uniqueSourceIps); + expect(body.uniqueSourceIpsHistogram!).to.eql(expectedResult.uniqueSourceIpsHistogram); }); }); @@ -128,101 +158,108 @@ export default function ({ getService }: FtrProviderContext) { const FROM = '2000-01-01T00:00:00.000Z'; const TO = '3000-01-01T00:00:00.000Z'; const expectedResult = { - __typename: 'KpiHostsData', - hosts: 1, + hosts: 6, hostsHistogram: [ { - x: new Date('2019-02-09T16:00:00.000Z').valueOf(), - y: 1, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-09T19:00:00.000Z').valueOf(), - y: 0, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-09T22:00:00.000Z').valueOf(), - y: 1, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-10T01:00:00.000Z').valueOf(), - y: 1, - __typename: 'KpiHostHistogramData', - }, - ], - authSuccess: 0, - authSuccessHistogram: null, - authFailure: 0, - authFailureHistogram: null, - uniqueSourceIps: 121, - uniqueSourceIpsHistogram: [ - { - x: new Date('2019-02-09T16:00:00.000Z').valueOf(), - y: 52, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-09T19:00:00.000Z').valueOf(), - y: 0, - __typename: 'KpiHostHistogramData', + x: new Date('2018-11-27T00:00:00.000Z').valueOf(), + y: 6, }, { - x: new Date('2019-02-09T22:00:00.000Z').valueOf(), - y: 31, - __typename: 'KpiHostHistogramData', + x: new Date('2018-11-27T00:30:00.000Z').valueOf(), + y: 6, }, { - x: new Date('2019-02-10T01:00:00.000Z').valueOf(), - y: 88, - __typename: 'KpiHostHistogramData', + x: new Date('2018-11-27T01:00:00.000Z').valueOf(), + y: 6, }, - ], - uniqueDestinationIps: 154, - uniqueDestinationIpsHistogram: [ { - x: new Date('2019-02-09T16:00:00.000Z').valueOf(), - y: 61, - __typename: 'KpiHostHistogramData', + x: new Date('2018-11-27T01:30:00.000Z').valueOf(), + y: 6, }, { - x: new Date('2019-02-09T19:00:00.000Z').valueOf(), - y: 0, - __typename: 'KpiHostHistogramData', + x: new Date('2018-11-27T02:00:00.000Z').valueOf(), + y: 6, }, { - x: new Date('2019-02-09T22:00:00.000Z').valueOf(), - y: 45, - __typename: 'KpiHostHistogramData', - }, - { - x: new Date('2019-02-10T01:00:00.000Z').valueOf(), - y: 114, - __typename: 'KpiHostHistogramData', + x: new Date('2018-11-27T02:30:00.000Z').valueOf(), + y: 6, }, ], + authSuccess: null, + authSuccessHistogram: null, + authFailure: 0, + authFailureHistogram: null, + uniqueSourceIps: null, + uniqueSourceIpsHistogram: null, + uniqueDestinationIps: null, + uniqueDestinationIpsHistogram: null, }; - it('Make sure that we get KpiHosts data', () => { - return client - .query<GetKpiHostsQuery.Query>({ - query: kpiHostsQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + + it('Make sure that we get KpiHosts data', async () => { + const { body: kpiHosts } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/hostsKpiHostsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsKpiQueries.kpiHosts, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['auditbeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + + expect(kpiHosts.hostsHistogram!).to.eql(expectedResult.hostsHistogram); + expect(kpiHosts.hosts!).to.eql(expectedResult.hosts); + }); + + it('Make sure that we get KpiAuthentications data', async () => { + const { body } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/hostsKpiAuthenticationsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsKpiQueries.kpiAuthentications, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + expect(body.authenticationsSuccess!).to.eql(expectedResult.authSuccess); + expect(body.authenticationsSuccessHistogram!).to.eql(expectedResult.authSuccessHistogram); + expect(body.authenticationsFailure!).to.eql(expectedResult.authSuccess); + expect(body.authenticationsFailureHistogram!).to.eql(expectedResult.authFailureHistogram); + }); + + it('Make sure that we get KpiUniqueIps data', async () => { + const { body } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/hostsKpiUniqueIpsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsKpiQueries.kpiUniqueIps, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + inspect: false, }) - .then((resp) => { - const kpiHosts = resp.data.source.KpiHosts; - expect(kpiHosts!).to.eql(expectedResult); - }); + .expect(200); + expect(body.uniqueDestinationIps!).to.eql(expectedResult.uniqueDestinationIps); + expect(body.uniqueDestinationIpsHistogram!).to.eql( + expectedResult.uniqueDestinationIpsHistogram + ); + expect(body.uniqueSourceIps!).to.eql(expectedResult.uniqueSourceIps); + expect(body.uniqueSourceIpsHistogram!).to.eql(expectedResult.uniqueSourceIpsHistogram); }); }); }); diff --git a/x-pack/test/api_integration/apis/security_solution/kpi_network.ts b/x-pack/test/api_integration/apis/security_solution/kpi_network.ts index 14b061d678898..641e6658d28cc 100644 --- a/x-pack/test/api_integration/apis/security_solution/kpi_network.ts +++ b/x-pack/test/api_integration/apis/security_solution/kpi_network.ts @@ -5,15 +5,13 @@ */ import expect from '@kbn/expect'; -// @ts-expect-error -import { kpiNetworkQuery } from '../../../../plugins/security_solution/public/network/containers/kpi_network/index.gql_query'; -// @ts-expect-error -import { GetKpiNetworkQuery } from '../../../../plugins/security_solution/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; +import { NetworkKpiQueries } from '../../../../plugins/security_solution/common/search_strategy'; export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); + const supertest = getService('supertest'); + describe('Kpi Network', () => { describe('With filebeat', () => { before(() => esArchiver.load('filebeat/default')); @@ -22,51 +20,42 @@ export default function ({ getService }: FtrProviderContext) { const FROM = '2000-01-01T00:00:00.000Z'; const TO = '3000-01-01T00:00:00.000Z'; const expectedResult = { - __typename: 'KpiNetworkData', - networkEvents: 6158, + networkEvents: 6157, uniqueFlowId: 712, uniqueSourcePrivateIps: 8, uniqueSourcePrivateIpsHistogram: [ { x: new Date('2019-02-09T16:00:00.000Z').valueOf(), y: 8, - __typename: 'KpiNetworkHistogramData', }, { x: new Date('2019-02-09T19:00:00.000Z').valueOf(), y: 0, - __typename: 'KpiNetworkHistogramData', }, { x: new Date('2019-02-09T22:00:00.000Z').valueOf(), y: 8, - __typename: 'KpiNetworkHistogramData', }, { x: new Date('2019-02-10T01:00:00.000Z').valueOf(), y: 7, - __typename: 'KpiNetworkHistogramData', }, ], uniqueDestinationPrivateIps: 9, uniqueDestinationPrivateIpsHistogram: [ { - __typename: 'KpiNetworkHistogramData', x: new Date('2019-02-09T16:00:00.000Z').valueOf(), y: 8, }, { - __typename: 'KpiNetworkHistogramData', x: new Date('2019-02-09T19:00:00.000Z').valueOf(), y: 0, }, { - __typename: 'KpiNetworkHistogramData', x: new Date('2019-02-09T22:00:00.000Z').valueOf(), y: 8, }, { - __typename: 'KpiNetworkHistogramData', x: new Date('2019-02-10T01:00:00.000Z').valueOf(), y: 8, }, @@ -75,26 +64,133 @@ export default function ({ getService }: FtrProviderContext) { tlsHandshakes: 62, }; - it('Make sure that we get KpiNetwork data', () => { - return client - .query<GetKpiNetworkQuery.Query>({ - query: kpiNetworkQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Make sure that we get KpiNetwork uniqueFlows data', async () => { + const { body: kpiNetwork } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/networkKpiUniqueFlowsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkKpiQueries.uniqueFlows, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + + expect(kpiNetwork.uniqueFlowId).to.eql(expectedResult.uniqueFlowId); + }); + + it('Make sure that we get KpiNetwork networkEvents data', async () => { + const { body: kpiNetwork } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/networkKpiNetworkEventsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkKpiQueries.networkEvents, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + inspect: false, }) - .then((resp) => { - const kpiNetwork = resp.data.source.KpiNetwork; - expect(kpiNetwork).to.eql(expectedResult); - }); + .expect(200); + + expect(kpiNetwork.networkEvents).to.eql(expectedResult.networkEvents); + }); + + it('Make sure that we get KpiNetwork DNS data', async () => { + const { body: kpiNetwork } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/networkKpiDnsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkKpiQueries.dns, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + + expect(kpiNetwork.dnsQueries).to.eql(expectedResult.dnsQueries); + }); + + it('Make sure that we get KpiNetwork networkEvents data', async () => { + const { body: kpiNetwork } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/networkKpiNetworkEventsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkKpiQueries.networkEvents, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + + expect(kpiNetwork.networkEvents).to.eql(expectedResult.networkEvents); + }); + + it('Make sure that we get KpiNetwork tlsHandshakes data', async () => { + const { body: kpiNetwork } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/networkKpiTlsHandshakesQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkKpiQueries.tlsHandshakes, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + + expect(kpiNetwork.tlsHandshakes).to.eql(expectedResult.tlsHandshakes); + }); + + it('Make sure that we get KpiNetwork uniquePrivateIps data', async () => { + const { body: kpiNetwork } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/networkKpiUniquePrivateIpsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkKpiQueries.uniquePrivateIps, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + + expect(kpiNetwork.uniqueDestinationPrivateIps).to.eql( + expectedResult.uniqueDestinationPrivateIps + ); + expect(kpiNetwork.uniqueDestinationPrivateIpsHistogram).to.eql( + expectedResult.uniqueDestinationPrivateIpsHistogram + ); + expect(kpiNetwork.uniqueSourcePrivateIps).to.eql(expectedResult.uniqueSourcePrivateIps); + expect(kpiNetwork.uniqueSourcePrivateIpsHistogram).to.eql( + expectedResult.uniqueSourcePrivateIpsHistogram + ); }); }); @@ -105,78 +201,123 @@ export default function ({ getService }: FtrProviderContext) { const FROM = '2000-01-01T00:00:00.000Z'; const TO = '3000-01-01T00:00:00.000Z'; const expectedResult = { - __typename: 'KpiNetworkData', - networkEvents: 6158, - uniqueFlowId: 712, - uniqueSourcePrivateIps: 8, - uniqueSourcePrivateIpsHistogram: [ - { - x: new Date('2019-02-09T16:00:00.000Z').valueOf(), - y: 8, - __typename: 'KpiNetworkHistogramData', - }, - { - x: new Date('2019-02-09T19:00:00.000Z').valueOf(), - y: 0, - __typename: 'KpiNetworkHistogramData', - }, - { - x: new Date('2019-02-09T22:00:00.000Z').valueOf(), - y: 8, - __typename: 'KpiNetworkHistogramData', - }, - { - x: new Date('2019-02-10T01:00:00.000Z').valueOf(), - y: 7, - __typename: 'KpiNetworkHistogramData', - }, - ], - uniqueDestinationPrivateIps: 9, - uniqueDestinationPrivateIpsHistogram: [ - { - __typename: 'KpiNetworkHistogramData', - x: new Date('2019-02-09T16:00:00.000Z').valueOf(), - y: 8, - }, - { - __typename: 'KpiNetworkHistogramData', - x: new Date('2019-02-09T19:00:00.000Z').valueOf(), - y: 0, - }, - { - __typename: 'KpiNetworkHistogramData', - x: new Date('2019-02-09T22:00:00.000Z').valueOf(), - y: 8, - }, - { - __typename: 'KpiNetworkHistogramData', - x: new Date('2019-02-10T01:00:00.000Z').valueOf(), - y: 8, - }, - ], - dnsQueries: 169, - tlsHandshakes: 62, + networkEvents: 665, + uniqueFlowId: 124, + uniqueSourcePrivateIps: null, + uniqueSourcePrivateIpsHistogram: null, + uniqueDestinationPrivateIps: null, + uniqueDestinationPrivateIpsHistogram: null, + dnsQueries: 0, + tlsHandshakes: 1, }; - it('Make sure that we get KpiNetwork data', () => { - return client - .query<GetKpiNetworkQuery.Query>({ - query: kpiNetworkQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + + it('Make sure that we get KpiNetwork uniqueFlows data', async () => { + const { body: kpiNetwork } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/networkKpiUniqueFlowsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkKpiQueries.uniqueFlows, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['packetbeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + + expect(kpiNetwork.uniqueFlowId).to.eql(expectedResult.uniqueFlowId); + }); + + it('Make sure that we get KpiNetwork DNS data', async () => { + const { body: kpiNetwork } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/networkKpiDnsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkKpiQueries.dns, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['packetbeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + + expect(kpiNetwork.dnsQueries).to.eql(expectedResult.dnsQueries); + }); + + it('Make sure that we get KpiNetwork networkEvents data', async () => { + const { body: kpiNetwork } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/networkKpiNetworkEventsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkKpiQueries.networkEvents, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + defaultIndex: ['packetbeat-*'], + docValueFields: [], + inspect: false, }) - .then((resp) => { - const kpiNetwork = resp.data.source.KpiNetwork; - expect(kpiNetwork).to.eql(expectedResult); - }); + .expect(200); + + expect(kpiNetwork.networkEvents).to.eql(expectedResult.networkEvents); + }); + + it('Make sure that we get KpiNetwork tlsHandshakes data', async () => { + const { body: kpiNetwork } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/networkKpiTlsHandshakesQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkKpiQueries.tlsHandshakes, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['packetbeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + + expect(kpiNetwork.tlsHandshakes).to.eql(expectedResult.tlsHandshakes); + }); + + it('Make sure that we get KpiNetwork uniquePrivateIps data', async () => { + const { body: kpiNetwork } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/networkKpiUniquePrivateIpsQuery') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkKpiQueries.uniquePrivateIps, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['filebeat-*'], + docValueFields: [], + inspect: false, + }) + .expect(200); + + expect(kpiNetwork.uniqueDestinationPrivateIps).to.eql( + expectedResult.uniqueDestinationPrivateIps + ); + expect(kpiNetwork.uniqueDestinationPrivateIpsHistogram).to.eql( + expectedResult.uniqueDestinationPrivateIpsHistogram + ); + expect(kpiNetwork.uniqueSourcePrivateIps).to.eql(expectedResult.uniqueSourcePrivateIps); + expect(kpiNetwork.uniqueSourcePrivateIpsHistogram).to.eql( + expectedResult.uniqueSourcePrivateIpsHistogram + ); }); }); }); diff --git a/x-pack/test/api_integration/apis/security_solution/network_details.ts b/x-pack/test/api_integration/apis/security_solution/network_details.ts index 7b851e875454d..2b602760be342 100644 --- a/x-pack/test/api_integration/apis/security_solution/network_details.ts +++ b/x-pack/test/api_integration/apis/security_solution/network_details.ts @@ -5,41 +5,37 @@ */ import expect from '@kbn/expect'; -// @ts-expect-error -import { ipOverviewQuery } from '../../../../plugins/security_solution/public/network/containers/details/index.gql_query'; -// @ts-expect-error -import { GetIpOverviewQuery } from '../../../../plugins/security_solution/public/graphql/types'; +import { NetworkQueries } from '../../../../plugins/security_solution/common/search_strategy'; + import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); - describe('IP Overview', () => { + const supertest = getService('supertest'); + describe('Network details', () => { describe('With filebeat', () => { before(() => esArchiver.load('filebeat/default')); after(() => esArchiver.unload('filebeat/default')); - it('Make sure that we get KpiNetwork data', () => { - return client - .query<GetIpOverviewQuery.Query>({ - query: ipOverviewQuery, - variables: { - sourceId: 'default', - ip: '151.205.0.17', - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, - }, + it('Make sure that we get Network details data', async () => { + const { body } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + ip: '151.205.0.17', + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + factoryQueryType: NetworkQueries.details, + docValueFields: [], + inspect: false, }) - .then((resp) => { - const ipOverview = resp.data.source.IpOverview; - expect(ipOverview!.source!.geo!.continent_name).to.be('North America'); - expect(ipOverview!.source!.geo!.location!.lat!).to.be(37.751); - expect(ipOverview!.host.os!.platform!).to.be('raspbian'); - expect(ipOverview!.destination!.geo!.continent_name).to.be('North America'); - expect(ipOverview!.destination!.geo!.location!.lat!).to.be(37.751); - expect(ipOverview!.host.os!.platform!).to.be('raspbian'); - }); + .expect(200); + + expect(body.networkDetails!.source!.geo!.continent_name).to.be('North America'); + expect(body.networkDetails!.source!.geo!.location!.lat!).to.be(37.751); + expect(body.networkDetails!.host.os!.platform!).to.be('raspbian'); + expect(body.networkDetails!.destination!.geo!.continent_name).to.be('North America'); + expect(body.networkDetails!.destination!.geo!.location!.lat!).to.be(37.751); + expect(body.networkDetails!.host.os!.platform!).to.be('raspbian'); }); }); @@ -47,24 +43,22 @@ export default function ({ getService }: FtrProviderContext) { before(() => esArchiver.load('packetbeat/default')); after(() => esArchiver.unload('packetbeat/default')); - it('Make sure that we get KpiNetwork data', () => { - return client - .query<GetIpOverviewQuery.Query>({ - query: ipOverviewQuery, - variables: { - sourceId: 'default', - ip: '185.53.91.88', - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, - }, + it('Make sure that we get Network details data', async () => { + const { body } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + ip: '185.53.91.88', + defaultIndex: ['packetbeat-*'], + factoryQueryType: NetworkQueries.details, + docValueFields: [], + inspect: false, }) - .then((resp) => { - const ipOverview = resp.data.source.IpOverview; - expect(ipOverview!.host.id!).to.be('2ce8b1e7d69e4a1d9c6bcddc473da9d9'); - expect(ipOverview!.host.name!).to.be('zeek-sensor-amsterdam'); - expect(ipOverview!.host.os!.platform!).to.be('ubuntu'); - }); + .expect(200); + + expect(body.networkDetails!.host.id!).to.be('2ce8b1e7d69e4a1d9c6bcddc473da9d9'); + expect(body.networkDetails!.host.name!).to.be('zeek-sensor-amsterdam'); + expect(body.networkDetails!.host.os!.platform!).to.be('ubuntu'); }); }); }); diff --git a/x-pack/test/api_integration/apis/security_solution/network_dns.ts b/x-pack/test/api_integration/apis/security_solution/network_dns.ts index b53e2cc72853a..806e0e60a69b2 100644 --- a/x-pack/test/api_integration/apis/security_solution/network_dns.ts +++ b/x-pack/test/api_integration/apis/security_solution/network_dns.ts @@ -5,20 +5,19 @@ */ import expect from '@kbn/expect'; -// @ts-expect-error -import { networkDnsQuery } from '../../../../plugins/security_solution/public/network/containers/network_dns/index.gql_query'; import { + NetworkQueries, + NetworkDnsEdges, Direction, - // @ts-expect-error - GetNetworkDnsQuery, - // @ts-expect-error NetworkDnsFields, -} from '../../../../plugins/security_solution/public/graphql/types'; +} from '../../../../plugins/security_solution/common/search_strategy'; + import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); + const supertest = getService('supertest'); + describe('Network DNS', () => { describe('With packetbeat', () => { before(() => esArchiver.load('packetbeat/dns')); @@ -27,79 +26,75 @@ export default function ({ getService }: FtrProviderContext) { const FROM = '2000-01-01T00:00:00.000Z'; const TO = '3000-01-01T00:00:00.000Z'; - it('Make sure that we get Dns data and sorting by uniqueDomains ascending', () => { - return client - .query<GetNetworkDnsQuery.Query>({ - query: networkDnsQuery, - variables: { - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, - isPtrIncluded: false, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 30, - querySize: 10, - }, - sort: { field: NetworkDnsFields.uniqueDomains, direction: Direction.asc }, - sourceId: 'default', - stackByField: 'dns.question.registered_domain', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, + it('Make sure that we get Dns data and sorting by uniqueDomains ascending', async () => { + const { body: networkDns } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + defaultIndex: [ + 'apm-*-transaction*', + 'auditbeat-*', + 'endgame-*', + 'filebeat-*', + 'logs-*', + 'packetbeat-*', + 'winlogbeat-*', + ], + docValueFields: [], + factoryQueryType: NetworkQueries.dns, + filterQuery: + '{"bool":{"must":[],"filter":[{"match_all":{}}],"should":[],"must_not":[]}}', + isPtrIncluded: false, + pagination: { activePage: 0, cursorStart: 0, fakePossibleCount: 30, querySize: 10 }, + sort: { field: NetworkDnsFields.uniqueDomains, direction: Direction.asc }, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, }) - .then((resp) => { - const networkDns = resp.data.source.NetworkDns; - expect(networkDns.edges.length).to.be(10); - expect(networkDns.totalCount).to.be(44); - // @ts-expect-error - expect(networkDns.edges.map((i) => i.node.dnsName).join(',')).to.be( - 'aaplimg.com,adgrx.com,akadns.net,akamaiedge.net,amazonaws.com,cbsistatic.com,cdn-apple.com,connman.net,crowbird.com,d1oxlq5h9kq8q5.cloudfront.net' - ); - expect(networkDns.pageInfo.fakeTotalCount).to.equal(30); - }); + .expect(200); + + expect(networkDns.edges.length).to.be(10); + expect(networkDns.totalCount).to.be(44); + expect(networkDns.edges.map((i: NetworkDnsEdges) => i.node.dnsName).join(',')).to.be( + 'aaplimg.com,adgrx.com,akadns.net,akamaiedge.net,amazonaws.com,cbsistatic.com,cdn-apple.com,connman.net,crowbird.com,d1oxlq5h9kq8q5.cloudfront.net' + ); + expect(networkDns.pageInfo.fakeTotalCount).to.equal(30); }); - it('Make sure that we get Dns data and sorting by uniqueDomains descending', () => { - return client - .query<GetNetworkDnsQuery.Query>({ - query: networkDnsQuery, - variables: { - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - isDnsHistogram: false, - inspect: false, - isPtrIncluded: false, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 30, - querySize: 10, - }, - sourceId: 'default', - sort: { field: NetworkDnsFields.uniqueDomains, direction: Direction.desc }, - stackByField: 'dns.question.registered_domain', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, + it('Make sure that we get Dns data and sorting by uniqueDomains descending', async () => { + const { body: networkDns } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + ip: '151.205.0.17', + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + factoryQueryType: NetworkQueries.dns, + docValueFields: [], + inspect: false, + pagination: { + activePage: 0, + cursorStart: 0, + fakePossibleCount: 30, + querySize: 10, + }, + sort: { field: NetworkDnsFields.uniqueDomains, direction: Direction.desc }, + stackByField: 'dns.question.registered_domain', + timerange: { + interval: '12h', + to: TO, + from: FROM, }, }) - .then((resp) => { - const networkDns = resp.data.source.NetworkDns; - expect(networkDns.edges.length).to.be(10); - expect(networkDns.totalCount).to.be(44); - // @ts-expect-error - expect(networkDns.edges.map((i) => i.node.dnsName).join(',')).to.be( - 'nflxvideo.net,apple.com,netflix.com,samsungcloudsolution.com,samsungqbe.com,samsungelectronics.com,internetat.tv,samsungcloudsolution.net,samsungosp.com,cbsnews.com' - ); - expect(networkDns.pageInfo.fakeTotalCount).to.equal(30); - }); + .expect(200); + + expect(networkDns.edges.length).to.be(10); + expect(networkDns.totalCount).to.be(44); + expect(networkDns.edges.map((i: NetworkDnsEdges) => i.node.dnsName).join(',')).to.be( + 'nflxvideo.net,apple.com,netflix.com,samsungcloudsolution.com,samsungqbe.com,samsungelectronics.com,internetat.tv,samsungcloudsolution.net,samsungosp.com,cbsnews.com' + ); + expect(networkDns.pageInfo.fakeTotalCount).to.equal(30); }); }); }); diff --git a/x-pack/test/api_integration/apis/security_solution/network_top_n_flow.ts b/x-pack/test/api_integration/apis/security_solution/network_top_n_flow.ts index 81a1924019a55..abca6e0361097 100644 --- a/x-pack/test/api_integration/apis/security_solution/network_top_n_flow.ts +++ b/x-pack/test/api_integration/apis/security_solution/network_top_n_flow.ts @@ -5,23 +5,22 @@ */ import expect from '@kbn/expect'; -// @ts-expect-error -import { networkTopNFlowQuery } from '../../../../plugins/security_solution/public/network/containers/network_top_n_flow/index.gql_query'; import { + NetworkQueries, + NetworkTopNFlowEdges, Direction, FlowTargetSourceDest, - // @ts-expect-error - GetNetworkTopNFlowQuery, - // @ts-expect-error NetworkTopTablesFields, -} from '../../../../plugins/security_solution/public/graphql/types'; +} from '../../../../plugins/security_solution/common/search_strategy'; + import { FtrProviderContext } from '../../ftr_provider_context'; const EDGE_LENGTH = 10; export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); + const supertest = getService('supertest'); + describe('Network Top N Flow', () => { describe('With filebeat', () => { before(() => esArchiver.load('filebeat/default')); @@ -30,150 +29,180 @@ export default function ({ getService }: FtrProviderContext) { const FROM = '2019-02-09T01:57:24.870Z'; const TO = '2019-02-12T01:57:24.870Z'; - it('Make sure that we get Source NetworkTopNFlow data with bytes_in descending sort', () => { - return client - .query<GetNetworkTopNFlowQuery.Query>({ - query: networkTopNFlowQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - flowTarget: FlowTargetSourceDest.source, - sort: { field: NetworkTopTablesFields.bytes_in, direction: Direction.desc }, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 50, - querySize: 10, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Make sure that we get Source NetworkTopNFlow data with bytes_in descending sort', async () => { + const { body: networkTopNFlow } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + defaultIndex: [ + 'apm-*-transaction*', + 'auditbeat-*', + 'endgame-*', + 'filebeat-*', + 'logs-*', + 'packetbeat-*', + 'winlogbeat-*', + ], + factoryQueryType: NetworkQueries.topNFlow, + flowTarget: FlowTargetSourceDest.source, + sort: { field: NetworkTopTablesFields.bytes_in, direction: Direction.desc }, + pagination: { + activePage: 0, + cursorStart: 0, + fakePossibleCount: 50, + querySize: 10, }, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + docValueFields: [], + inspect: false, }) - .then((resp) => { - const networkTopNFlow = resp.data.source.NetworkTopNFlow; - expect(networkTopNFlow.edges.length).to.be(EDGE_LENGTH); - expect(networkTopNFlow.totalCount).to.be(121); - // @ts-expect-error - expect(networkTopNFlow.edges.map((i) => i.node.source!.ip).join(',')).to.be( - '10.100.7.196,10.100.7.199,10.100.7.197,10.100.7.198,3.82.33.170,17.249.172.100,10.100.4.1,8.248.209.244,8.248.211.247,8.248.213.244' - ); - expect(networkTopNFlow.edges[0].node.destination).to.be(null); - expect(networkTopNFlow.edges[0].node.source!.flows).to.be(498); - expect(networkTopNFlow.edges[0].node.source!.destination_ips).to.be(132); - expect(networkTopNFlow.pageInfo.fakeTotalCount).to.equal(50); - }); + .expect(200); + + expect(networkTopNFlow.edges.length).to.be(EDGE_LENGTH); + expect(networkTopNFlow.totalCount).to.be(121); + expect( + networkTopNFlow.edges.map((i: NetworkTopNFlowEdges) => i.node.source!.ip).join(',') + ).to.be( + '10.100.7.196,10.100.7.199,10.100.7.197,10.100.7.198,3.82.33.170,17.249.172.100,10.100.4.1,8.248.209.244,8.248.211.247,8.248.213.244' + ); + expect(networkTopNFlow.edges[0].node.destination).to.be(undefined); + expect(networkTopNFlow.edges[0].node.source!.flows).to.be(498); + expect(networkTopNFlow.edges[0].node.source!.destination_ips).to.be(132); + expect(networkTopNFlow.pageInfo.fakeTotalCount).to.equal(50); }); - it('Make sure that we get Source NetworkTopNFlow data with bytes_in ascending sort ', () => { - return client - .query<GetNetworkTopNFlowQuery.Query>({ - query: networkTopNFlowQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - flowTarget: FlowTargetSourceDest.source, - sort: { field: NetworkTopTablesFields.bytes_in, direction: Direction.asc }, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 50, - querySize: 10, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Make sure that we get Source NetworkTopNFlow data with bytes_in ascending sort ', async () => { + const { body: networkTopNFlow } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + defaultIndex: [ + 'apm-*-transaction*', + 'auditbeat-*', + 'endgame-*', + 'filebeat-*', + 'logs-*', + 'packetbeat-*', + 'winlogbeat-*', + ], + factoryQueryType: 'topNFlow', + filterQuery: + '{"bool":{"must":[],"filter":[{"match_all":{}}],"should":[],"must_not":[]}}', + flowTarget: FlowTargetSourceDest.source, + sort: { field: NetworkTopTablesFields.bytes_in, direction: Direction.asc }, + pagination: { + activePage: 0, + cursorStart: 0, + fakePossibleCount: 50, + querySize: 10, }, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + docValueFields: [], + inspect: false, }) - .then((resp) => { - const networkTopNFlow = resp.data.source.NetworkTopNFlow; - expect(networkTopNFlow.edges.length).to.be(EDGE_LENGTH); - expect(networkTopNFlow.totalCount).to.be(121); - // @ts-expect-error - expect(networkTopNFlow.edges.map((i) => i.node.source!.ip).join(',')).to.be( - '8.248.209.244,8.248.211.247,8.248.213.244,8.248.223.246,8.250.107.245,8.250.121.236,8.250.125.244,8.253.38.231,8.253.157.112,8.253.157.240' - ); - expect(networkTopNFlow.edges[0].node.destination).to.be(null); - expect(networkTopNFlow.edges[0].node.source!.flows).to.be(12); - expect(networkTopNFlow.edges[0].node.source!.destination_ips).to.be(1); - expect(networkTopNFlow.pageInfo.fakeTotalCount).to.equal(50); - }); + .expect(200); + + expect(networkTopNFlow.edges.length).to.be(EDGE_LENGTH); + expect(networkTopNFlow.totalCount).to.be(121); + expect( + networkTopNFlow.edges.map((i: NetworkTopNFlowEdges) => i.node.source!.ip).join(',') + ).to.be( + '8.248.209.244,8.248.211.247,8.248.213.244,8.248.223.246,8.250.107.245,8.250.121.236,8.250.125.244,8.253.38.231,8.253.157.112,8.253.157.240' + ); + expect(networkTopNFlow.edges[0].node.destination).to.be(undefined); + expect(networkTopNFlow.edges[0].node.source!.flows).to.be(12); + expect(networkTopNFlow.edges[0].node.source!.destination_ips).to.be(1); + expect(networkTopNFlow.pageInfo.fakeTotalCount).to.equal(50); }); - it('Make sure that we get Destination NetworkTopNFlow data', () => { - return client - .query<GetNetworkTopNFlowQuery.Query>({ - query: networkTopNFlowQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - sort: { field: NetworkTopTablesFields.bytes_in, direction: Direction.desc }, - flowTarget: FlowTargetSourceDest.destination, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 50, - querySize: 10, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Make sure that we get Destination NetworkTopNFlow data', async () => { + const { body: networkTopNFlow } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + defaultIndex: [ + 'apm-*-transaction*', + 'auditbeat-*', + 'endgame-*', + 'filebeat-*', + 'logs-*', + 'packetbeat-*', + 'winlogbeat-*', + ], + factoryQueryType: 'topNFlow', + filterQuery: + '{"bool":{"must":[],"filter":[{"match_all":{}}],"should":[],"must_not":[]}}', + sort: { field: NetworkTopTablesFields.bytes_in, direction: Direction.desc }, + flowTarget: FlowTargetSourceDest.destination, + pagination: { + activePage: 0, + cursorStart: 0, + fakePossibleCount: 50, + querySize: 10, }, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + docValueFields: [], + inspect: false, }) - .then((resp) => { - const networkTopNFlow = resp.data.source.NetworkTopNFlow; - expect(networkTopNFlow.edges.length).to.be(EDGE_LENGTH); - expect(networkTopNFlow.totalCount).to.be(154); - expect(networkTopNFlow.edges[0].node.destination!.flows).to.be(19); - expect(networkTopNFlow.edges[0].node.destination!.source_ips).to.be(1); - expect(networkTopNFlow.edges[0].node.source).to.be(null); - expect(networkTopNFlow.pageInfo.fakeTotalCount).to.equal(50); - }); + .expect(200); + expect(networkTopNFlow.edges.length).to.be(EDGE_LENGTH); + expect(networkTopNFlow.totalCount).to.be(154); + expect(networkTopNFlow.edges[0].node.destination!.flows).to.be(19); + expect(networkTopNFlow.edges[0].node.destination!.source_ips).to.be(1); + expect(networkTopNFlow.edges[0].node.source).to.be(undefined); + expect(networkTopNFlow.pageInfo.fakeTotalCount).to.equal(50); }); - it('Make sure that pagination is working in NetworkTopNFlow query', () => { - return client - .query<GetNetworkTopNFlowQuery.Query>({ - query: networkTopNFlowQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - sort: { field: NetworkTopTablesFields.bytes_in, direction: Direction.desc }, - flowTarget: FlowTargetSourceDest.source, - pagination: { - activePage: 1, - cursorStart: 10, - fakePossibleCount: 50, - querySize: 20, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Make sure that pagination is working in NetworkTopNFlow query', async () => { + const { body: networkTopNFlow } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + defaultIndex: [ + 'apm-*-transaction*', + 'auditbeat-*', + 'endgame-*', + 'filebeat-*', + 'logs-*', + 'packetbeat-*', + 'winlogbeat-*', + ], + factoryQueryType: 'topNFlow', + filterQuery: + '{"bool":{"must":[],"filter":[{"match_all":{}}],"should":[],"must_not":[]}}', + sort: { field: NetworkTopTablesFields.bytes_in, direction: Direction.desc }, + flowTarget: FlowTargetSourceDest.source, + pagination: { + activePage: 1, + cursorStart: 10, + fakePossibleCount: 50, + querySize: 20, + }, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + docValueFields: [], + inspect: false, }) - .then((resp) => { - const networkTopNFlow = resp.data.source.NetworkTopNFlow; + .expect(200); - expect(networkTopNFlow.edges.length).to.be(EDGE_LENGTH); - expect(networkTopNFlow.totalCount).to.be(121); - expect(networkTopNFlow.edges[0].node.source!.ip).to.be('8.248.223.246'); - }); + expect(networkTopNFlow.edges.length).to.be(EDGE_LENGTH); + expect(networkTopNFlow.totalCount).to.be(121); + expect(networkTopNFlow.edges[0].node.source!.ip).to.be('8.248.223.246'); }); }); }); diff --git a/x-pack/test/api_integration/apis/security_solution/overview_host.ts b/x-pack/test/api_integration/apis/security_solution/overview_host.ts index 0d648e665a9a9..f3de9a6481b8f 100644 --- a/x-pack/test/api_integration/apis/security_solution/overview_host.ts +++ b/x-pack/test/api_integration/apis/security_solution/overview_host.ts @@ -6,16 +6,13 @@ import expect from '@kbn/expect'; -import { DEFAULT_INDEX_PATTERN } from '../../../../plugins/security_solution/common/constants'; -// @ts-expect-error -import { overviewHostQuery } from '../../../../plugins/security_solution/public/overview/containers//overview_host/index.gql_query'; -// @ts-expect-error -import { GetOverviewHostQuery } from '../../../../plugins/security_solution/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; +import { HostsQueries } from '../../../../plugins/security_solution/common/search_strategy'; export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); + const supertest = getService('supertest'); + describe('Overview Host', () => { describe('With auditbeat', () => { before(() => esArchiver.load('auditbeat/overview')); @@ -39,30 +36,36 @@ export default function ({ getService }: FtrProviderContext) { endgameSecurity: 4, filebeatSystemModule: 0, winlogbeatSecurity: 0, - winlogbeatMWSysmonOperational: 0, - __typename: 'OverviewHostData', + winlogbeatMWSysmonOperational: null, }; - it('Make sure that we get OverviewHost data', () => { - return client - .query<GetOverviewHostQuery.Query>({ - query: overviewHostQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: DEFAULT_INDEX_PATTERN, - docValueFields: [], - inspect: false, + it('Make sure that we get OverviewHost data', async () => { + const { + body: { overviewHost }, + } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + defaultIndex: [ + 'apm-*-transaction*', + 'auditbeat-*', + 'endgame-*', + 'filebeat-*', + 'logs-*', + 'packetbeat-*', + 'winlogbeat-*', + ], + factoryQueryType: HostsQueries.overview, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + docValueFields: [], + inspect: false, }) - .then((resp) => { - const overviewHost = resp.data.source.OverviewHost; - expect(overviewHost).to.eql(expectedResult); - }); + .expect(200); + expect(overviewHost).to.eql(expectedResult); }); }); }); diff --git a/x-pack/test/api_integration/apis/security_solution/overview_network.ts b/x-pack/test/api_integration/apis/security_solution/overview_network.ts index 60d300e168e4a..f0b5c635c878c 100644 --- a/x-pack/test/api_integration/apis/security_solution/overview_network.ts +++ b/x-pack/test/api_integration/apis/security_solution/overview_network.ts @@ -5,15 +5,13 @@ */ import expect from '@kbn/expect'; -// @ts-expect-error -import { overviewNetworkQuery } from '../../../../plugins/security_solution/public/overview/containers/overview_network/index.gql_query'; -// @ts-expect-error -import { GetOverviewNetworkQuery } from '../../../../plugins/security_solution/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; +import { NetworkQueries } from '../../../../plugins/security_solution/common/search_strategy'; export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); + const supertest = getService('supertest'); + describe('Overview Network', () => { describe('With filebeat', () => { before(() => esArchiver.load('filebeat/default')); @@ -32,29 +30,27 @@ export default function ({ getService }: FtrProviderContext) { packetbeatDNS: 0, packetbeatFlow: 0, packetbeatTLS: 0, - __typename: 'OverviewNetworkData', }; - it('Make sure that we get OverviewNetwork data', () => { - return client - .query<GetOverviewNetworkQuery.Query>({ - query: overviewNetworkQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Make sure that we get OverviewNetwork data', async () => { + const { + body: { overviewNetwork }, + } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + defaultIndex: ['filebeat-*'], + factoryQueryType: NetworkQueries.overview, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + docValueFields: [], + inspect: false, }) - .then((resp) => { - const overviewNetwork = resp.data.source.OverviewNetwork; - expect(overviewNetwork).to.eql(expectedResult); - }); + .expect(200); + expect(overviewNetwork).to.eql(expectedResult); }); }); @@ -67,36 +63,35 @@ export default function ({ getService }: FtrProviderContext) { const expectedResult = { auditbeatSocket: 0, filebeatCisco: 0, - filebeatNetflow: 1273, + filebeatNetflow: 0, filebeatPanw: 0, - filebeatSuricata: 4547, + filebeatSuricata: 0, filebeatZeek: 0, - packetbeatDNS: 0, - packetbeatFlow: 0, + packetbeatDNS: 44, + packetbeatFlow: 588, packetbeatTLS: 0, - __typename: 'OverviewNetworkData', }; - it('Make sure that we get OverviewNetwork data', () => { - return client - .query<GetOverviewNetworkQuery.Query>({ - query: overviewNetworkQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Make sure that we get OverviewNetwork data', async () => { + const { + body: { overviewNetwork }, + } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + defaultIndex: ['packetbeat-*'], + factoryQueryType: NetworkQueries.overview, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + docValueFields: [], + inspect: false, }) - .then((resp) => { - const overviewNetwork = resp.data.source.OverviewNetwork; - expect(overviewNetwork).to.eql(expectedResult); - }); + .expect(200); + + expect(overviewNetwork).to.eql(expectedResult); }); }); @@ -107,38 +102,36 @@ export default function ({ getService }: FtrProviderContext) { const FROM = '2000-01-01T00:00:00.000Z'; const TO = '3000-01-01T00:00:00.000Z'; const expectedResult = { - auditbeatSocket: 0, + auditbeatSocket: 45, filebeatCisco: 0, - filebeatNetflow: 1273, + filebeatNetflow: 0, filebeatPanw: 0, - filebeatSuricata: 4547, + filebeatSuricata: 0, filebeatZeek: 0, packetbeatDNS: 0, packetbeatFlow: 0, packetbeatTLS: 0, - __typename: 'OverviewNetworkData', }; - it('Make sure that we get OverviewNetwork data', () => { - return client - .query<GetOverviewNetworkQuery.Query>({ - query: overviewNetworkQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Make sure that we get OverviewNetwork data', async () => { + const { + body: { overviewNetwork }, + } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + defaultIndex: ['auditbeat-*'], + factoryQueryType: NetworkQueries.overview, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + docValueFields: [], + inspect: false, }) - .then((resp) => { - const overviewNetwork = resp.data.source.OverviewNetwork; - expect(overviewNetwork).to.eql(expectedResult); - }); + .expect(200); + expect(overviewNetwork).to.eql(expectedResult); }); }); }); diff --git a/x-pack/test/api_integration/apis/security_solution/sources.ts b/x-pack/test/api_integration/apis/security_solution/sources.ts index 1ec4bfda8492d..228d0736f26d7 100644 --- a/x-pack/test/api_integration/apis/security_solution/sources.ts +++ b/x-pack/test/api_integration/apis/security_solution/sources.ts @@ -35,12 +35,12 @@ export default function ({ getService }: FtrProviderContext) { .post('/internal/search/securitySolutionIndexFields/') .set('kbn-xsrf', 'true') .send({ - indices: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + indices: ['auditbeat-*', 'filebeat-*'], onlyCheckIfIndicesExist: false, }) .expect(200); - expect(sourceStatus.indicesExist).to.eql(['auditbeat-*', 'winlogbeat-*']); + expect(sourceStatus.indicesExist).to.eql(['auditbeat-*']); }); it('should not find indexes as existing when there is an empty array of them', async () => { diff --git a/x-pack/test/api_integration/apis/security_solution/timeline.ts b/x-pack/test/api_integration/apis/security_solution/timeline.ts index 8ae562a961431..41b557ce3fd32 100644 --- a/x-pack/test/api_integration/apis/security_solution/timeline.ts +++ b/x-pack/test/api_integration/apis/security_solution/timeline.ts @@ -6,13 +6,11 @@ import expect from '@kbn/expect'; +import { Direction } from '../../../../plugins/security_solution/common/search_strategy'; // @ts-expect-error import { timelineQuery } from '../../../../plugins/security_solution/public/timelines/containers/index.gql_query'; -import { - Direction, - // @ts-expect-error - GetTimelineQuery, -} from '../../../../plugins/security_solution/public/graphql/types'; +// @ts-expect-error +import { GetTimelineQuery } from '../../../../plugins/security_solution/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; const TO = '3000-01-01T00:00:00.000Z'; diff --git a/x-pack/test/api_integration/apis/security_solution/timeline_details.ts b/x-pack/test/api_integration/apis/security_solution/timeline_details.ts index 559cdc8c29c09..d3f40188aa6d3 100644 --- a/x-pack/test/api_integration/apis/security_solution/timeline_details.ts +++ b/x-pack/test/api_integration/apis/security_solution/timeline_details.ts @@ -6,92 +6,72 @@ import expect from '@kbn/expect'; import { sortBy } from 'lodash'; +import { TimelineEventsQueries } from '../../../../plugins/security_solution/common/search_strategy'; -// @ts-expect-error -import { timelineDetailsQuery } from '../../../../plugins/security_solution/public/timelines/containers/details/index.gql_query'; -import { - // @ts-expect-error - DetailItem, - // @ts-expect-error - GetTimelineDetailsQuery, -} from '../../../../plugins/security_solution/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; -type DetailsData = Array< - Pick<DetailItem, 'field' | 'values' | 'originalValue'> & { - __typename: string; - } ->; - // typical values that have to change after an update from "scripts/es_archiver" const INDEX_NAME = 'filebeat-7.0.0-iot-2019.06'; const ID = 'QRhG1WgBqd-n62SwZYDT'; -const EXPECTED_DATA: DetailItem[] = [ +const EXPECTED_DATA = [ { + category: 'base', field: '@timestamp', values: ['2019-02-10T02:39:44.107Z'], originalValue: '2019-02-10T02:39:44.107Z', }, - { field: '@version', values: ['1'], originalValue: '1' }, + { category: '@version', field: '@version', values: ['1'], originalValue: '1' }, { + category: 'agent', field: 'agent.ephemeral_id', values: ['909cd6a1-527d-41a5-9585-a7fb5386f851'], originalValue: '909cd6a1-527d-41a5-9585-a7fb5386f851', }, { + category: 'agent', field: 'agent.hostname', values: ['raspberrypi'], originalValue: 'raspberrypi', }, { + category: 'agent', field: 'agent.id', values: ['4d3ea604-27e5-4ec7-ab64-44f82285d776'], originalValue: '4d3ea604-27e5-4ec7-ab64-44f82285d776', }, + { category: 'agent', field: 'agent.type', values: ['filebeat'], originalValue: 'filebeat' }, + { category: 'agent', field: 'agent.version', values: ['7.0.0'], originalValue: '7.0.0' }, { - field: 'agent.type', - values: ['filebeat'], - originalValue: 'filebeat', - }, - { field: 'agent.version', values: ['7.0.0'], originalValue: '7.0.0' }, - { + category: 'destination', field: 'destination.domain', values: ['s3-iad-2.cf.dash.row.aiv-cdn.net'], originalValue: 's3-iad-2.cf.dash.row.aiv-cdn.net', }, { + category: 'destination', field: 'destination.ip', values: ['10.100.7.196'], originalValue: '10.100.7.196', }, - { field: 'destination.port', values: ['40684'], originalValue: 40684 }, - { - field: 'ecs.version', - values: ['1.0.0-beta2'], - originalValue: '1.0.0-beta2', - }, + { category: 'destination', field: 'destination.port', values: [40684], originalValue: 40684 }, + { category: 'ecs', field: 'ecs.version', values: ['1.0.0-beta2'], originalValue: '1.0.0-beta2' }, { + category: 'event', field: 'event.dataset', values: ['suricata.eve'], originalValue: 'suricata.eve', }, { + category: 'event', field: 'event.end', values: ['2019-02-10T02:39:44.107Z'], originalValue: '2019-02-10T02:39:44.107Z', }, - { field: 'event.kind', values: ['event'], originalValue: 'event' }, - { - field: 'event.module', - values: ['suricata'], - originalValue: 'suricata', - }, - { - field: 'event.type', - values: ['fileinfo'], - originalValue: 'fileinfo', - }, + { category: 'event', field: 'event.kind', values: ['event'], originalValue: 'event' }, + { category: 'event', field: 'event.module', values: ['suricata'], originalValue: 'suricata' }, + { category: 'event', field: 'event.type', values: ['fileinfo'], originalValue: 'fileinfo' }, { + category: 'file', field: 'file.path', values: [ '/dm/2$XTMWANo0Q2RZKlH-95UoAahZrOg~/0a9a/bf72/e1da/4c20-919e-0cbabcf7bfe8/75f50c57-d25f-4e97-9e37-01b9f5caa293_audio_13.mp4', @@ -99,179 +79,157 @@ const EXPECTED_DATA: DetailItem[] = [ originalValue: '/dm/2$XTMWANo0Q2RZKlH-95UoAahZrOg~/0a9a/bf72/e1da/4c20-919e-0cbabcf7bfe8/75f50c57-d25f-4e97-9e37-01b9f5caa293_audio_13.mp4', }, - { field: 'file.size', values: ['48277'], originalValue: 48277 }, - { field: 'fileset.name', values: ['eve'], originalValue: 'eve' }, - { field: 'flow.locality', values: ['public'], originalValue: 'public' }, - { - field: 'host.architecture', - values: ['armv7l'], - originalValue: 'armv7l', - }, + { category: 'file', field: 'file.size', values: [48277], originalValue: 48277 }, + { category: 'fileset', field: 'fileset.name', values: ['eve'], originalValue: 'eve' }, + { category: 'flow', field: 'flow.locality', values: ['public'], originalValue: 'public' }, + { category: 'host', field: 'host.architecture', values: ['armv7l'], originalValue: 'armv7l' }, { + category: 'host', field: 'host.hostname', values: ['raspberrypi'], originalValue: 'raspberrypi', }, { + category: 'host', field: 'host.id', values: ['b19a781f683541a7a25ee345133aa399'], originalValue: 'b19a781f683541a7a25ee345133aa399', }, + { category: 'host', field: 'host.name', values: ['raspberrypi'], originalValue: 'raspberrypi' }, + { category: 'host', field: 'host.os.codename', values: ['stretch'], originalValue: 'stretch' }, + { category: 'host', field: 'host.os.family', values: [''], originalValue: '' }, { - field: 'host.name', - values: ['raspberrypi'], - originalValue: 'raspberrypi', - }, - { - field: 'host.os.codename', - values: ['stretch'], - originalValue: 'stretch', - }, - { field: 'host.os.family', values: [''], originalValue: '' }, - { + category: 'host', field: 'host.os.kernel', values: ['4.14.50-v7+'], originalValue: '4.14.50-v7+', }, { + category: 'host', field: 'host.os.name', values: ['Raspbian GNU/Linux'], originalValue: 'Raspbian GNU/Linux', }, + { category: 'host', field: 'host.os.platform', values: ['raspbian'], originalValue: 'raspbian' }, { - field: 'host.os.platform', - values: ['raspbian'], - originalValue: 'raspbian', - }, - { + category: 'host', field: 'host.os.version', values: ['9 (stretch)'], originalValue: '9 (stretch)', }, - { field: 'http.request.method', values: ['get'], originalValue: 'get' }, - { - field: 'http.response.body.bytes', - values: ['48277'], - originalValue: 48277, - }, - { - field: 'http.response.status_code', - values: ['206'], - originalValue: 206, - }, - { field: 'input.type', values: ['log'], originalValue: 'log' }, + { category: 'http', field: 'http.request.method', values: ['get'], originalValue: 'get' }, + { category: 'http', field: 'http.response.body.bytes', values: [48277], originalValue: 48277 }, + { category: 'http', field: 'http.response.status_code', values: [206], originalValue: 206 }, + { category: 'input', field: 'input.type', values: ['log'], originalValue: 'log' }, { + category: 'base', field: 'labels.pipeline', values: ['filebeat-7.0.0-suricata-eve-pipeline'], originalValue: 'filebeat-7.0.0-suricata-eve-pipeline', }, { + category: 'log', field: 'log.file.path', values: ['/var/log/suricata/eve.json'], originalValue: '/var/log/suricata/eve.json', }, + { category: 'log', field: 'log.offset', values: [1856288115], originalValue: 1856288115 }, + { category: 'network', field: 'network.name', values: ['iot'], originalValue: 'iot' }, + { category: 'network', field: 'network.protocol', values: ['http'], originalValue: 'http' }, + { category: 'network', field: 'network.transport', values: ['tcp'], originalValue: 'tcp' }, + { category: 'service', field: 'service.type', values: ['suricata'], originalValue: 'suricata' }, + { category: 'source', field: 'source.as.num', values: [16509], originalValue: 16509 }, { - field: 'log.offset', - values: ['1856288115'], - originalValue: 1856288115, - }, - { field: 'network.name', values: ['iot'], originalValue: 'iot' }, - { field: 'network.protocol', values: ['http'], originalValue: 'http' }, - { field: 'network.transport', values: ['tcp'], originalValue: 'tcp' }, - { - field: 'service.type', - values: ['suricata'], - originalValue: 'suricata', - }, - { field: 'source.as.num', values: ['16509'], originalValue: 16509 }, - { + category: 'source', field: 'source.as.org', values: ['Amazon.com, Inc.'], originalValue: 'Amazon.com, Inc.', }, { + category: 'source', field: 'source.domain', values: ['server-54-239-219-210.jfk51.r.cloudfront.net'], originalValue: 'server-54-239-219-210.jfk51.r.cloudfront.net', }, { + category: 'source', field: 'source.geo.city_name', values: ['Seattle'], originalValue: 'Seattle', }, { + category: 'source', field: 'source.geo.continent_name', values: ['North America'], originalValue: 'North America', }, + { category: 'source', field: 'source.geo.country_iso_code', values: ['US'], originalValue: 'US' }, { - field: 'source.geo.country_iso_code', - values: ['US'], - originalValue: 'US', - }, - { + category: 'source', field: 'source.geo.location.lat', - values: ['47.6103'], + values: [47.6103], originalValue: 47.6103, }, { + category: 'source', field: 'source.geo.location.lon', - values: ['-122.3341'], + values: [-122.3341], originalValue: -122.3341, }, { + category: 'source', field: 'source.geo.region_iso_code', values: ['US-WA'], originalValue: 'US-WA', }, { + category: 'source', field: 'source.geo.region_name', values: ['Washington'], originalValue: 'Washington', }, { + category: 'source', field: 'source.ip', values: ['54.239.219.210'], originalValue: '54.239.219.210', }, - { field: 'source.port', values: ['80'], originalValue: 80 }, + { category: 'source', field: 'source.port', values: [80], originalValue: 80 }, { + category: 'suricata', field: 'suricata.eve.fileinfo.state', values: ['CLOSED'], originalValue: 'CLOSED', }, + { category: 'suricata', field: 'suricata.eve.fileinfo.tx_id', values: [301], originalValue: 301 }, { - field: 'suricata.eve.fileinfo.tx_id', - values: ['301'], - originalValue: 301, - }, - { + category: 'suricata', field: 'suricata.eve.flow_id', - values: ['196625917175466'], + values: [196625917175466], originalValue: 196625917175466, }, { + category: 'suricata', field: 'suricata.eve.http.http_content_type', values: ['video/mp4'], originalValue: 'video/mp4', }, { + category: 'suricata', field: 'suricata.eve.http.protocol', values: ['HTTP/1.1'], originalValue: 'HTTP/1.1', }, + { category: 'suricata', field: 'suricata.eve.in_iface', values: ['eth0'], originalValue: 'eth0' }, + { category: 'base', field: 'tags', values: ['suricata'], originalValue: ['suricata'] }, { - field: 'suricata.eve.in_iface', - values: ['eth0'], - originalValue: 'eth0', - }, - { field: 'tags', values: ['suricata'], originalValue: ['suricata'] }, - { + category: 'url', field: 'url.domain', values: ['s3-iad-2.cf.dash.row.aiv-cdn.net'], originalValue: 's3-iad-2.cf.dash.row.aiv-cdn.net', }, { + category: 'url', field: 'url.original', values: [ '/dm/2$XTMWANo0Q2RZKlH-95UoAahZrOg~/0a9a/bf72/e1da/4c20-919e-0cbabcf7bfe8/75f50c57-d25f-4e97-9e37-01b9f5caa293_audio_13.mp4', @@ -280,6 +238,7 @@ const EXPECTED_DATA: DetailItem[] = [ '/dm/2$XTMWANo0Q2RZKlH-95UoAahZrOg~/0a9a/bf72/e1da/4c20-919e-0cbabcf7bfe8/75f50c57-d25f-4e97-9e37-01b9f5caa293_audio_13.mp4', }, { + category: 'url', field: 'url.path', values: [ '/dm/2$XTMWANo0Q2RZKlH-95UoAahZrOg~/0a9a/bf72/e1da/4c20-919e-0cbabcf7bfe8/75f50c57-d25f-4e97-9e37-01b9f5caa293_audio_13.mp4', @@ -288,48 +247,48 @@ const EXPECTED_DATA: DetailItem[] = [ '/dm/2$XTMWANo0Q2RZKlH-95UoAahZrOg~/0a9a/bf72/e1da/4c20-919e-0cbabcf7bfe8/75f50c57-d25f-4e97-9e37-01b9f5caa293_audio_13.mp4', }, { + category: '_index', field: '_index', values: ['filebeat-7.0.0-iot-2019.06'], originalValue: 'filebeat-7.0.0-iot-2019.06', }, { + category: '_id', field: '_id', values: ['QRhG1WgBqd-n62SwZYDT'], originalValue: 'QRhG1WgBqd-n62SwZYDT', }, - { field: '_score', values: ['1'], originalValue: 1 }, + { category: '_score', field: '_score', values: [1], originalValue: 1 }, ]; export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); + const supertest = getService('supertest'); describe('Timeline Details', () => { before(() => esArchiver.load('filebeat/default')); after(() => esArchiver.unload('filebeat/default')); - it('Make sure that we get Event Details data', () => { - return client - .query<GetTimelineDetailsQuery.Query>({ - query: timelineDetailsQuery, - variables: { - sourceId: 'default', - indexName: INDEX_NAME, - eventId: ID, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - }, + it('Make sure that we get Event Details data', async () => { + const { + body: { data: detailsData }, + } = await supertest + .post('/internal/search/securitySolutionTimelineSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: TimelineEventsQueries.details, + docValueFields: [], + indexName: INDEX_NAME, + inspect: false, + eventId: ID, + }) + .expect(200); + expect( + sortBy(detailsData, 'name').map((item) => { + const { __typename, ...rest } = item; + return rest; }) - .then((resp) => { - const detailsData: DetailsData = (resp.data.source.TimelineDetails.data || - []) as DetailsData; - expect( - sortBy(detailsData, 'name').map((item) => { - const { __typename, ...rest } = item; - return rest; - }) - ).to.eql(sortBy(EXPECTED_DATA, 'name')); - }); + ).to.eql(sortBy(EXPECTED_DATA, 'name')); }); }); } diff --git a/x-pack/test/api_integration/apis/security_solution/tls.ts b/x-pack/test/api_integration/apis/security_solution/tls.ts index ebaec7783427f..164de4d095b97 100644 --- a/x-pack/test/api_integration/apis/security_solution/tls.ts +++ b/x-pack/test/api_integration/apis/security_solution/tls.ts @@ -5,16 +5,13 @@ */ import expect from '@kbn/expect'; -// @ts-expect-error -import { tlsQuery } from '../../../../plugins/security_solution/public/network/containers/tls/index.gql_query'; import { + NetworkQueries, Direction, - // @ts-expect-error - TlsFields, + NetworkTlsFields, FlowTarget, - // @ts-expect-error - GetTlsQuery, -} from '../../../../plugins/security_solution/public/graphql/types'; +} from '../../../../plugins/security_solution/common/search_strategy'; + import { FtrProviderContext } from '../../ftr_provider_context'; const FROM = '2000-01-01T00:00:00.000Z'; @@ -23,7 +20,6 @@ const SOURCE_IP = '10.128.0.35'; const DESTINATION_IP = '74.125.129.95'; const expectedResult = { - __typename: 'TlsNode', _id: '16989191B1A93ECECD5FE9E63EBD4B5C3B606D26', subjects: ['CN=edgecert.googleapis.com,O=Google LLC,L=Mountain View,ST=California,C=US'], issuers: ['CN=GTS CA 1O1,O=Google Trust Services,C=US'], @@ -32,16 +28,13 @@ const expectedResult = { }; const expectedOverviewDestinationResult = { - __typename: 'TlsData', edges: [ { - __typename: 'TlsEdges', cursor: { - __typename: 'CursorType', + tiebreaker: null, value: 'EB4E81DD7C55BA9715652ECF5647FB8877E55A8F', }, node: { - __typename: 'TlsNode', _id: 'EB4E81DD7C55BA9715652ECF5647FB8877E55A8F', subjects: [ 'CN=*.cdn.mozilla.net,OU=Cloud Services,O=Mozilla Corporation,L=Mountain View,ST=California,C=US', @@ -53,7 +46,6 @@ const expectedOverviewDestinationResult = { }, ], pageInfo: { - __typename: 'PageInfoPaginated', activePage: 0, fakeTotalCount: 3, showMorePagesIndicator: false, @@ -62,16 +54,13 @@ const expectedOverviewDestinationResult = { }; const expectedOverviewSourceResult = { - __typename: 'TlsData', edges: [ { - __typename: 'TlsEdges', cursor: { - __typename: 'CursorType', + tiebreaker: null, value: 'EB4E81DD7C55BA9715652ECF5647FB8877E55A8F', }, node: { - __typename: 'TlsNode', _id: 'EB4E81DD7C55BA9715652ECF5647FB8877E55A8F', subjects: [ 'CN=*.cdn.mozilla.net,OU=Cloud Services,O=Mozilla Corporation,L=Mountain View,ST=California,C=US', @@ -83,7 +72,6 @@ const expectedOverviewSourceResult = { }, ], pageInfo: { - __typename: 'PageInfoPaginated', activePage: 0, fakeTotalCount: 3, showMorePagesIndicator: false, @@ -93,76 +81,71 @@ const expectedOverviewSourceResult = { export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); + const supertest = getService('supertest'); + describe('Tls Test with Packetbeat', () => { describe('Tls Test', () => { before(() => esArchiver.load('packetbeat/tls')); after(() => esArchiver.unload('packetbeat/tls')); - it('Ensure data is returned for FlowTarget.Source', () => { - return client - .query<GetTlsQuery.Query>({ - query: tlsQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - ip: SOURCE_IP, - flowTarget: FlowTarget.source, - sort: { field: TlsFields._id, direction: Direction.desc }, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 30, - querySize: 10, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Ensure data is returned for FlowTarget.Source', async () => { + const { body: tls } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkQueries.tls, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + ip: SOURCE_IP, + flowTarget: FlowTarget.source, + sort: { field: NetworkTlsFields._id, direction: Direction.desc }, + pagination: { + activePage: 0, + cursorStart: 0, + fakePossibleCount: 30, + querySize: 10, }, + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + docValueFields: [], + inspect: false, }) - .then((resp) => { - const tls = resp.data.source.Tls; - expect(tls.edges.length).to.be(1); - expect(tls.totalCount).to.be(1); - expect(tls.edges[0].node).to.eql(expectedResult); - }); + .expect(200); + expect(tls.edges.length).to.be(1); + expect(tls.totalCount).to.be(1); + expect(tls.edges[0].node).to.eql(expectedResult); }); - it('Ensure data is returned for FlowTarget.Destination', () => { - return client - .query<GetTlsQuery.Query>({ - query: tlsQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - ip: DESTINATION_IP, - flowTarget: FlowTarget.destination, - sort: { field: TlsFields._id, direction: Direction.desc }, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 30, - querySize: 10, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Ensure data is returned for FlowTarget.Destination', async () => { + const { body: tls } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkQueries.tls, + timerange: { + interval: '12h', + to: TO, + from: FROM, }, + ip: DESTINATION_IP, + flowTarget: FlowTarget.destination, + sort: { field: NetworkTlsFields._id, direction: Direction.desc }, + pagination: { + activePage: 0, + cursorStart: 0, + fakePossibleCount: 30, + querySize: 10, + }, + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + docValueFields: [], + inspect: false, }) - .then((resp) => { - const tls = resp.data.source.Tls; - expect(tls.edges.length).to.be(1); - expect(tls.totalCount).to.be(1); - expect(tls.edges[0].node).to.eql(expectedResult); - }); + .expect(200); + expect(tls.edges.length).to.be(1); + expect(tls.totalCount).to.be(1); + expect(tls.edges[0].node).to.eql(expectedResult); }); }); @@ -170,68 +153,62 @@ export default function ({ getService }: FtrProviderContext) { before(() => esArchiver.load('packetbeat/tls')); after(() => esArchiver.unload('packetbeat/tls')); - it('Ensure data is returned for FlowTarget.Source', () => { - return client - .query<GetTlsQuery.Query>({ - query: tlsQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - ip: '', - flowTarget: FlowTarget.source, - sort: { field: TlsFields._id, direction: Direction.desc }, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 30, - querySize: 10, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Ensure data is returned for FlowTarget.Source', async () => { + const { body: tls } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkQueries.tls, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + ip: '', + flowTarget: FlowTarget.source, + sort: { field: NetworkTlsFields._id, direction: Direction.desc }, + pagination: { + activePage: 0, + cursorStart: 0, + fakePossibleCount: 30, + querySize: 10, }, + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + docValueFields: [], + inspect: false, }) - .then((resp) => { - const tls = resp.data.source.Tls; - expect(tls.pageInfo).to.eql(expectedOverviewSourceResult.pageInfo); - expect(tls.edges[0]).to.eql(expectedOverviewSourceResult.edges[0]); - }); + .expect(200); + expect(tls.pageInfo).to.eql(expectedOverviewSourceResult.pageInfo); + expect(tls.edges[0]).to.eql(expectedOverviewSourceResult.edges[0]); }); - it('Ensure data is returned for FlowTarget.Destination', () => { - return client - .query<GetTlsQuery.Query>({ - query: tlsQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - ip: '', - flowTarget: FlowTarget.destination, - sort: { field: TlsFields._id, direction: Direction.desc }, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 30, - querySize: 10, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - inspect: false, + it('Ensure data is returned for FlowTarget.Destination', async () => { + const { body: tls } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkQueries.tls, + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + ip: '', + flowTarget: FlowTarget.destination, + sort: { field: NetworkTlsFields._id, direction: Direction.desc }, + pagination: { + activePage: 0, + cursorStart: 0, + fakePossibleCount: 30, + querySize: 10, }, + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + docValueFields: [], + inspect: false, }) - .then((resp) => { - const tls = resp.data.source.Tls; - expect(tls.pageInfo).to.eql(expectedOverviewDestinationResult.pageInfo); - expect(tls.edges[0]).to.eql(expectedOverviewDestinationResult.edges[0]); - }); + .expect(200); + expect(tls.pageInfo).to.eql(expectedOverviewDestinationResult.pageInfo); + expect(tls.edges[0]).to.eql(expectedOverviewDestinationResult.edges[0]); }); }); }); diff --git a/x-pack/test/api_integration/apis/security_solution/uncommon_processes.ts b/x-pack/test/api_integration/apis/security_solution/uncommon_processes.ts index 1ed9a03ecf87e..3eb1ada8da459 100644 --- a/x-pack/test/api_integration/apis/security_solution/uncommon_processes.ts +++ b/x-pack/test/api_integration/apis/security_solution/uncommon_processes.ts @@ -6,10 +6,7 @@ import expect from '@kbn/expect'; -// @ts-expect-error -import { uncommonProcessesQuery } from '../../../../plugins/security_solution/public/hosts/containers/uncommon_processes/index.gql_query'; -// @ts-expect-error -import { GetUncommonProcessesQuery } from '../../../../plugins/security_solution/public/graphql/types'; +import { HostsQueries } from '../../../../plugins/security_solution/common/search_strategy'; import { FtrProviderContext } from '../../ftr_provider_context'; const FROM = '2000-01-01T00:00:00.000Z'; @@ -20,20 +17,18 @@ const TOTAL_COUNT = 3; export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); + const supertest = getService('supertest'); describe('uncommon_processes', () => { before(() => esArchiver.load('auditbeat/hosts')); after(() => esArchiver.unload('auditbeat/hosts')); it('should return an edge of length 1 when given a pagination of length 1', async () => { - const { - data: { - source: { UncommonProcesses }, - }, - } = await client.query<GetUncommonProcessesQuery.Query>({ - query: uncommonProcessesQuery, - variables: { + const { body: UncommonProcesses } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsQueries.uncommonProcesses, sourceId: 'default', timerange: { interval: '12h', @@ -49,19 +44,17 @@ export default function ({ getService }: FtrProviderContext) { defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], docValueFields: [], inspect: false, - }, - }); + }) + .expect(200); expect(UncommonProcesses.edges.length).to.be(1); }); it('should return an edge of length 2 when given a pagination of length 2', async () => { - const { - data: { - source: { UncommonProcesses }, - }, - } = await client.query<GetUncommonProcessesQuery.Query>({ - query: uncommonProcessesQuery, - variables: { + const { body: UncommonProcesses } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsQueries.uncommonProcesses, sourceId: 'default', timerange: { interval: '12h', @@ -77,19 +70,18 @@ export default function ({ getService }: FtrProviderContext) { defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], docValueFields: [], inspect: false, - }, - }); + }) + .expect(200); + expect(UncommonProcesses.edges.length).to.be(2); }); it('should return a total count of elements', async () => { - const { - data: { - source: { UncommonProcesses }, - }, - } = await client.query<GetUncommonProcessesQuery.Query>({ - query: uncommonProcessesQuery, - variables: { + const { body: UncommonProcesses } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsQueries.uncommonProcesses, sourceId: 'default', timerange: { interval: '12h', @@ -105,19 +97,18 @@ export default function ({ getService }: FtrProviderContext) { defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], docValueFields: [], inspect: false, - }, - }); + }) + .expect(200); + expect(UncommonProcesses.totalCount).to.be(TOTAL_COUNT); }); it('should return a single data set with pagination of 1', async () => { - const { - data: { - source: { UncommonProcesses }, - }, - } = await client.query<GetUncommonProcessesQuery.Query>({ - query: uncommonProcessesQuery, - variables: { + const { body: UncommonProcesses } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: HostsQueries.uncommonProcesses, sourceId: 'default', timerange: { interval: '12h', @@ -133,28 +124,26 @@ export default function ({ getService }: FtrProviderContext) { defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], docValueFields: [], inspect: false, - }, - }); - const expected: GetUncommonProcessesQuery.Node = { + }) + .expect(200); + + const expected = { _id: 'HCFxB2kBR346wHgnL4ik', instances: 1, process: { args: [], name: ['kworker/u2:0'], - __typename: 'ProcessEcsFields', }, user: { id: ['0'], name: ['root'], - __typename: 'UserEcsFields', }, hosts: [ { + id: ['zeek-sensor-san-francisco'], name: ['zeek-sensor-san-francisco'], - __typename: 'HostEcsFields', }, ], - __typename: 'UncommonProcessItem', }; expect(UncommonProcesses.edges[0].node).to.eql(expected); }); diff --git a/x-pack/test/api_integration/apis/security_solution/users.ts b/x-pack/test/api_integration/apis/security_solution/users.ts index 9d42fc0b9788b..1b5b3604cb34f 100644 --- a/x-pack/test/api_integration/apis/security_solution/users.ts +++ b/x-pack/test/api_integration/apis/security_solution/users.ts @@ -5,16 +5,13 @@ */ import expect from '@kbn/expect'; -// @ts-expect-error -import { usersQuery } from '../../../../plugins/security_solution/public/network/containers/users/index.gql_query'; import { + NetworkQueries, Direction, - // @ts-expect-error - UsersFields, + NetworkUsersFields, FlowTarget, - // @ts-expect-error - GetUsersQuery, -} from '../../../../plugins/security_solution/public/graphql/types'; +} from '../../../../plugins/security_solution/common/search_strategy'; + import { FtrProviderContext } from '../../ftr_provider_context'; const FROM = '2000-01-01T00:00:00.000Z'; @@ -23,47 +20,46 @@ const IP = '0.0.0.0'; export default function ({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); - const client = getService('securitySolutionGraphQLClient'); + const supertest = getService('supertest'); describe('Users', () => { describe('With auditbeat', () => { before(() => esArchiver.load('auditbeat/default')); after(() => esArchiver.unload('auditbeat/default')); - it('Ensure data is returned from auditbeat', () => { - return client - .query<GetUsersQuery.Query>({ - query: usersQuery, - variables: { - sourceId: 'default', - timerange: { - interval: '12h', - to: TO, - from: FROM, - }, - defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], - docValueFields: [], - ip: IP, - flowTarget: FlowTarget.destination, - sort: { field: UsersFields.name, direction: Direction.asc }, - pagination: { - activePage: 0, - cursorStart: 0, - fakePossibleCount: 30, - querySize: 10, - }, - inspect: false, + it('Ensure data is returned from auditbeat', async () => { + const { body: users } = await supertest + .post('/internal/search/securitySolutionSearchStrategy/') + .set('kbn-xsrf', 'true') + .send({ + factoryQueryType: NetworkQueries.users, + sourceId: 'default', + timerange: { + interval: '12h', + to: TO, + from: FROM, + }, + defaultIndex: ['auditbeat-*', 'filebeat-*', 'packetbeat-*', 'winlogbeat-*'], + docValueFields: [], + ip: IP, + flowTarget: FlowTarget.destination, + sort: { field: NetworkUsersFields.name, direction: Direction.asc }, + pagination: { + activePage: 0, + cursorStart: 0, + fakePossibleCount: 30, + querySize: 10, }, + inspect: false, }) - .then((resp) => { - const users = resp.data.source.Users; - expect(users.edges.length).to.be(1); - expect(users.totalCount).to.be(1); - expect(users.edges[0].node.user!.id).to.eql(['0']); - expect(users.edges[0].node.user!.name).to.be('root'); - expect(users.edges[0].node.user!.groupId).to.eql(['0']); - expect(users.edges[0].node.user!.groupName).to.eql(['root']); - expect(users.edges[0].node.user!.count).to.be(1); - }); + .expect(200); + + expect(users.edges.length).to.be(1); + expect(users.totalCount).to.be(1); + expect(users.edges[0].node.user!.id).to.eql(['0']); + expect(users.edges[0].node.user!.name).to.be('root'); + expect(users.edges[0].node.user!.groupId).to.eql(['0']); + expect(users.edges[0].node.user!.groupName).to.eql(['root']); + expect(users.edges[0].node.user!.count).to.be(1); }); }); }); diff --git a/x-pack/test/functional/es_archives/filebeat/default/data.json.gz b/x-pack/test/functional/es_archives/filebeat/default/data.json.gz index bd73f4946575ba6170d1e890ebc3b22a49743a0d..1886818971deed4699a429d6496ff3e7dfa8bace 100644 GIT binary patch delta 142078 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 delta 141962 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 Faeoz-^Tc-np@l{rI`dzuB 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 diff --git a/x-pack/test/functional/es_archives/packetbeat/default/data.json.gz b/x-pack/test/functional/es_archives/packetbeat/default/data.json.gz index e3feaa425e5dd323d684a64e1e08de0e5dd15cb3..7646502cf2be21f4b21096672ee61b2146ebebe0 100644 GIT binary patch delta 37730 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 delta 37775 zcmZ^~V|blwn6Mq&#!4Eajm^exY&C3b`&qHmplNKoZEQAXW81cqFMH4I`DWhPb3A|V zb*!KFb)V;XrESAxZo|Zqf?RqcJmNCQD6$c}e&yDMg^}qR8Mi$O4cRqIAjR<!1J%=W z&%1r?FOHHoLa$k`_{f)TC$A%~rLQ?J=BwxJUg=qN7u%gi$k=rP2g`{~6@!~Xx39l5 zHb36ITG%W=yPGxcFi@fxf>EH9h#&}+%)qb6AAN^hII`w|&*IM`uR@3D%lpHinCB1o ztI3db(A&ISLKqK_`JFti57*BJz-pS{t=-KL)IrtKc`d&S?anda*JiGux5u*ar9r|o z#Dk_^iy$n@5J4J}K{))$SLFJ6HgErE6!dW=y7mx_P4(7}FV%E--DO7s<b3z^?$rk| zL8mgbAOVxKdRmSp^Cx(SjS0F3a*AEBKMR<h9C>jr$^=~36$+mxGG5UE($iI;_O>ga z9k6<=Yri(pElc572P6=DUtUO0DRH{MQG^FVbkgJ3lFsIrPS5<;^h>rrJY#-_VXOrh z80TZBRnM!{nk0&nk!_m_r0<ITs)X3>rRuC#1YhZC?M`RWOY9g{{1junP#)ZOj&_9} zR*&C>6X6hJ5sBIW)z*L_cl-XlVDQ(m{O!?CIA_t36~xwQ?DgEK<xi)r&gMfCre|66 zJy$Jl&riFK!zsM3&!^8t_GNvy^GR@4mUqDG<;GZBw%xgD-L1%~SK!NJ<NeEUxbJdS z<BiQnPoH8^m`8NVF@s*x<&oi+4F3Hp{nu!Zo#UzK+aAhAT)YHTC@i2i0LgcM;%a-+ z>?`PYf06O}-ge39+I0+cWB*Qwu&?%k7(E$ST^`8rJ_Hg8VoT98#-kRPr+hseQ;L!- zbT6CdeJ-sxb)9#jX~bR+FTqtpz^^GMYPbi@<EJBoSKqrkw^!G_)B}U3v1->}*Kr>| zG7-Pq?`h3yX8yQq;0}mAldO37*6J%vGwrqet&hc9uFC68wsBSH-nJ9x4IBYnt5;R1 z2=J9FLPD7HURCXQ!pRkVq^O~n%`Z0B*6%`uWEtJI6W`H9n>CJq=tQn}VWBFUv50|t zUD1+#4);n2mZv6s%%XR!AO%;2Xm^%f1X5ut>xxEdg+9aBxB@25ZmqSz)62nB1_Nn* z1@{TJE?HzFd0Dg(*KPZK)`lrt>XT<+JHYcA`ch@SdiD6>^&IiV;Klg{c)d1wB_=%% zeYU*hUGTgu&V0Wxy$#_(yij86wN&j1#|Qcn23sCg!!jZq1(GsOgO&>td7Nq)@;FHO z^{DDy(>l+~1#HC&$2x|?vj-(BNFwc+350=MGuO15W*#@5M|dRTDMcr|*E|lQ$B7-D zu97Li^cW6@%6(J9VZ<29(3`tecb6x3tFrXoZQ_26HsKJ`I7d6Df;)(ZE5{a%kfYpr zuiLok_gnj!<Q-v#AX!NS?6H^V$4i$pV~LJ;R?X{sz<h+qp$yc;yX03gBp-2@bSl!- zgI?70DR>`ZhmUvnvAE8=+OL|G=XX+Es~C-Xl^$X&4JYWSzXK&sLO%8Mk!pX|9_X(@ zxVEvt-ow(x7;=ITg-BT{NEbP+H5nQm0w(i@RyHAmK=e7aub&(ok~2mbcCYg1KPP2e z$R2;h2O^KOm-+Eu(N-AAG~_I1jSS7&*BO3%U5H17gqWw{#)HESY0|`jX%`x0Sy~wh z3qr7M4J^97ZNOW_-~ABn9DTXRLmSKTUIr(fz2T=_8_OttV!Sc~0Yad2am>@Hzw?0s zHE#N3YHwrj{Ul@-L~dByyWL39a8lfZqQLk3l0f1C0S;Z0DQ|dRQnLdST~PQYNS2(w zhXraZ=b_V+Wn3mgcx;z*oO3)6IwM|s0p#l&kIlr32I=q#WprM>y#J-DY`g}d^11=; z&K^wJd(-7DKc36?aWw4*%4sONJ|g<*tn=1X+6c)R%|M{{We+Ca0v*8|gS=surJ=Q9 z9{|A>>7=#ncLGa&C5LF=Z$#HxAuK1Yrzi9omNw+@!tsOqsNGmqNpQrhcDZAP<1@bx z)6JhIKkqT!*`ZM$^y=$0zk34BnR=G20x8;8Kaz-n@zk7S!AR*qwgT2{NOF``Yoi`Q z#e|u~{Zq4p8cF*+PV(V(JV&;ke5y@ae1QG?W>*xf05S4`al5c}Uuo9pw2soFt%WhR zk@K~RnnOw0u@)h+Ogby8D`V#;`hievT@reP7X;&1ukjL&AhktQjdpINY(K$2I6s&R z(!}6e=_AqC4KzLB5oR+*wA7~T4cJ#R8&(d`(5g<px88KG%RFHCZ8}}$kJw`K5&+)c z5LC62*?R?dJTv7BbSNRo(4Mh~dPOAkoS37OJ4^A$;H1hu7mcEyT4+<WyaI8D0)h6? z7F2?<4EKQZ9q$+1^UaVA)~<13nBWlBVCnpUjYPAbW{yiv98`!!af1_N52V``2Len5 zU?>wjxNXtp#^ihJbFpP_aQvu&5Rfa7)@(TwF4-t~kE|cfvbl$wS%z-B&9&dy(7E%| z+hc`Eo~V|x-oPEM*+T(wcObMIvN!z_+*GrCusNm+lMDybOOMSq(&0f~bzXT+ihX*J zqJ9<;;4TvTgy*68N(<)OfgbEqPZK*!TK6q{JMt1Ad%%NCwepTXOC7Tru;$u5Io>OE zJ6qGRE4+TRF2r$m)I3TrCHd&tqAE$&$40b57|2F&YFT>QmD1bX>wR?KTq~bzF}+LR zi{7F-*pQ!0`Hg0UUXp&jwP3or_t6cPPYeWp4z>wh8uA~tnI=gb9oEQzYGabOPeM;P zaKc|XH=EU9^N<2Ngv*En*Q4PmJ<TX{3s^nP3g4_-`g-``h)Gn}3m&=YB=J$?6bK6i zV5Z}|-jhWneTEnM!7)X@A+MGtzk``m$=Mw8P<NF0?TGq8@R+%R)5??=R0&!Va2YFq z&wrq|<<uOODQe4y#YQot&C)-4gu%SW&<y9f#L^NgumFWHz6bdNAOO{(MV}baqm&5B z@C`Kkly}=JMNwpgRY1(%8D%-#=Wx-YhivYewVZvNeFin<Hhe-hCM{Xi39hsJzwD~g zMe?>}waK^T%;#F?r%7Yt$4V$+ptx9LP{p70hru42y+YYG`UuH1J&}A#mE@VidD;X) zK%fTuFjot`+lDScG<B;L8GdS@DTB2-v?+OSd?%7&MzjjJ_i3+(RFu}z>%E(+S7p+1 z&*+|Z9LnSvo+vutNr<rdbgZXB5a7EIQ=L1SVC~W;&K*RD)f{+)*@o9dFD@)d0S+06 zRt@|)cc7~eOJh-^qoclmwPj8q$gjl_nYx;~%Iv)Pc%K0XZeJfbIR+sm4E~&Ex~&L2 z|Khwc+`F~;r0)QJ0QYpfpcQK1Ahr4{cVZ|ctny)2-jkG>_*4_B)`tKN)*eQIO^X%l zL=8j@%!6v&d~J39{M;Wjf2=fCnK>8j+}+)*x6q-*lqL+++|E><)ywnFFXD|-79OdX zS|1j0wSA!Z?CVzN6+sh~%F&%~`6VpcP!gfj=L6>~drqW2)aNgU&h`287P$!k5(^|( z!Ve^30D!QOPW1_$W3)4K=AKMgf>+_6GRCW8q~AS2Pr~Z3g`~plz-5vw>`tl0U#Myc zFmr==!Pr6(ZdvX138`GDwi1MQIN7N&H0OWnEpZ=RI$&}zL1dBFV=U8zOom6rd4zS? z8$(?pPod7E>c_(^vO4*5U|nNf(<jPr0wYQU3@rXWMcZBtJXWf(hDZspZNT73BI8;N z7a@=hKSmyL8@U;Y7Lk^L_58A-Rk6c4v@0J}$=VEBTj>PX#l-gQPcxNqK~5DV@hnb{ z!tnNzAuSS$LcssZ$e$;k(Xp(vuIn@APmDLgD!J5+kN$n>I#CJJtYa7;5-v7Mf=$N- zER={KC?X!qMY~1c;6Fm;22s95*qoxDR)G#*GE;8|({b^Z9|o|ZsxuphYNLzGXtK66 zz~m}$^6$J!j*}s=7#3wxH~U5}h>nSle~!oaoQ6o-uC8{B!(yYc;vRsQm3Y`SK5ZtJ zi`+nqLW{&>P0gyJx}si>IB?-zC8k~ina=uxB^s3<imqo8)w3dRSQ}Z364HkBFFRRf zR{CMZ;BIP0jv~8M2@#xA%}`!G70q%En{@dY?A~VXz8-S>iIv72jc0Lz0yblbv9cQ^ z9AXLQ#)fG*^M?;zGP+cE>p4G8fM!9f7`qVdY}z%tX^FkpkC&>==ICezU)<1vuP4>F zS4QT$1afVs#BhWaA$yN#v75=x@n);HDWkd80ezGW0j~K64fZU=uoP4<YtlhPQ33v) ztN!a<WF?m8!804F>&zC#(oi>=)!YZ3hj2H7A5UW>ZGTh_(}W7l60WMbHI)`ZICd&g zky8W&9+ar)?GADNHrW}Xl*kDH1{Wb8bUdA6w34Oy@D9v=+lhHM$>t(G8Qm!rXEEDb zAX|7@d$s>=D)1H*BIr)*@&!06Nez%R4D-D_9UAqxg_2w&S;#P~R@vy#T3sC_CvBcS z&XzdHA15ymOY&9w`7YuiU_gSEFq}*YyUu-eWBrBybUJ%@W(sD2yEjX?Dkdr>p7CbC zAJXgHemK04uQE|UkH}5C9p!8A={T5F++GME<08|D3|9$^IICk6j^HTznt7P;fC>`4 z7DELs)aHiNhuqS%-1ZG;r2Q&Z^e9srySx@FQq>x7UP+!a)O+Ibpu|kR(RdXRI%d?q zdyd5VW`_IFn4pSAL1X=Kr$w{YNP#=i(yN^;XHM}nQr&&Jrm7eIe&gxPt<EP~DsLem zAq|ZOV8@6YEQ~CLI{!86$1?@HMbwjq`o~2mOjmw^C@bn$!ghsrKj-0@Pn^BWmpD8p zdrp-M{?q9xd1x~Ndmg?}b*zK646|EJ-Q6nA&`pOs@5k=|-^R%$<864EQJGOQB-4v* z1wm;>ZnuQ3^6to}agP^#>*RfjIv*(Zs|zDO5VzrG>Ey~^Eg+v!wq~oxDcDc%Jc6<z zE;!7UM2JkrZ$fdckT1m$>16~TuoQEWKCyiBP)O>kC({x|$)buJl8OWYW&Yy}1r5of zv%vkjIJLOpJ*l|5J9+A_FH;!fRoUZ%H@iHaETjjF(WjqW6NA3l&Rc)}7I}FYIpo~z z2`E%5e)N;>ul&+afWd@6957Bb#aR$kC&9xN9!(-Ele|y1I6DJIRS9{7)ZIs_*XFh0 z*fPrGEUTL?=N%asar8#{s5An1rmhrdEQSymsu-zEHdzC*z2$V_bXi4MUY#b6dh~sa zi|T=VCKVIqDFll_`eU#h#bRKM*?xOI0~D{YXqQn?Wh)LPPj)<}X5Kyx?rHS$<E%Z- z5oRZa)$&z0h0<T)I%Nv(EfDC8M*bOSdGRz^xHLh^OonHMv4&sHY0c$X(WTK%;@Ji? zQ@2vLFl8!ZN^zhF2FAoiUj&7j2$P^>z(#XO%vYNJEgBPKvt*h@UO_=rk0b+t7XI~? zSb@72Pf%dwqwM`f(7UbuAkL&_qFj0m`nwd2;h$u2!f4c{3<O)2O{scYoc)~rlmY2? z$PhoIFNFvaR-w0I5on74%nK|%q0^WIf*_$GQ?dFLIo{4qe};gdls<xQtknaJAt!Y; z527+Ughvz}E-`-9YV&C<lS~8TdJ^gpibNR+AalVWL~)6?0l+4)Z5+`S^&$+>R{SXx z<YXpH2gSCah1J!Dlawfck<2bDs*~gZWkOpY+%$lAqZnT38b+GqW06|$SwT!&EamK3 zfOL2r>s|fW;C<O|YNqJfJ7XmtsFQmi%|7P~h83T&9M)m6==ajG?R-Fe#XYgQ^kz2K zE6e)_VrdI$NdHf4RI1}+?ebkY7?!YIu9CWW4~|D$A5cf9<#@H3r!&LS@_i{t9C)qM zZ>tJTe15TKWC&ES=Fq87cuSq}kI?KQXZ)TSj?w!X5*PLD?*2lo7K03mRfG^x%*K#~ z#@OA0-Z5I(X@e-yIU^5{GM<&s`CUs>r}&}srtI*f(e-_w`(&?&+d+kHtAe9PE15~! zd^1swGE#^!4*W2b+ATb0_q#la?o%BrXa!d&DXHC3&dR)vRLO|<oy_*o5kGoz*e2U9 zxjgY-PpG8q??^rmU1mD7L54!tm+)5bKBqcrH7fDdRFx$rOfE(Mt`0p+Od_qnn06W^ zJ|;OP_rQIDi-&`?KSRx98Sx}0$q1Q=iqRuLqYRF33)bW|6@G5VNo~sH^`lLyU_u*3 zs3nEHmigIgfyY_QS!_UD=}04T>9RIbI&{>35Oq=Jx=FAxFl~(baoPcO7^O0wLnI_< zT_k#PyGB9NT0x3I6yN)VBRg8*<J=xqztU04M7Tx=QTZ!H)weI`7uexvaoP<6TDe_T z^9R%KBOe}6#wXxY!@?~vn>omvGKAnt#BkaY&e%u*E3_hZ_l@N4<KMQPT!9g4gxF%W zX4xe?5&3CxQ>x5l@@Zk{yL542r8`oPIyaOQ{Ua0(G^hkXqUh>$x5ze57ZV}Fjt`Qd z#cuPgjQS(|8-OUeA^7e9Ik$0Fy8L;|PN6UGYv@&G!7v${?N$TV_lQY6{JEe%>viH? zaZnckOFCLhi=?Y?Dw0zzuf4#*V#{YdolCuGN>^_mBd#j@vf4&|hLt(!I%{E$;56Jq zMBG5cm?=0MQw187{$%nna<}O~M7%jkYE0Sc=+d-V=~?NoF)lqn!H~g5<grZOsGdm0 zH5Xx&q&!`p5XD@Kl!jm4=W>^(?xpT2hWhjZ7~hHQ3>L+uHrpEGTg$y~$UblgrPeW} zRvVv}&oALF^rD!g_?U3u1zeC(zwk{=Ye+k=OiZR{PY6zm&x(IlaG{8`@5Y^QSMx)U zs~i>3gQAkKNWv!Dpdf*QrcA;5lSZ^pv=5|a@~FzX3;kI<gfBAphV^c+kvA*aiZFf; z%sW`FoFbKChq1_#?)y=pQsT(uKaw*0OZQpg1-L){_3MeaQH&@YmsPsKr(Bj@@e*7n z);^<h<*5-0$I10I_#n94l5l4dyICq=0g-CW0+`S?z-emGvtp&vD0sQfU-SlRkIuKW zAaAnWm$K*Fj7dYF4-!6HDNORWlmXQ{sVk0qsJR07XJzjCstDAZ;z0xPVm4$L&HF?Y zfdgAV^y6!dkMA%S^YZ44EShHKUKkklAF;P?&C6OQZOulyYIJ>ga!8z=1RMDFK836~ z*Sg&Anj05qAp4(<FrpyDnx!ljjE29x#p#{%L=@=BV@KNgs>9pAg=e!w%>W@!=1BZB zH9(G#r^PBNKhXlw0wB8>6zg5GY(4w_@P@3N$>sZs#7_!*O?Q^ltApx{=(z#nbaGHW z_vc+Ml=o)XI0Z;{84ojSF_3nHD>9bI548_J39})Bh3i%k2Ze3;|Gd3D200|6>~+nB z7x1xgtE#muOs!3Y2-%L%V*u~kb%xn5@<Vn}y9tmjZKZluI=8LA2NXi9d;CZ0pf~#! zSxUwrN`$2E_U8y3dnbFY-E@fk-1M9`L_;x|yBP=Bd)TKdqy764Lclm3P~ZCX8$LIm zko81xmu!1!@e!`G>bAmc5+XM+Y_bW1gaz9fpSpE_(W~*DP#%s3=QD(@hvhZ&yPsi( zPGyzQr}V6s_Y`z`woq_VJuB;3kx*qVjE)ieS*7KVox~=IKtU1$^#-jqW^UtTOf+QO zkAh<wm+{jAdL0+~B@V4k0=-h2v%xd>6Z`j-<y;|9om-KUQ}HIr=NV06&+xGGj&({= z=m>;Z*<8CEtZjb?W(mG(*;FFH5=Lp*pwT~*g5cw^BUnrr^nUW<9+B`=elwQ^*=zju zG{nRVYsX@{O-}=uptuGyzsce{vSute@THNg<vs2w#N^@R?j$3F39%-4(EK4fL5kIb zPw%UED|t!dHnsjpW8fQPtzkHgLYNBZRTDslbeunZ%6Ss`0m&m1zG^#SKVrYS32_{H ztNc1Ovi%)dyZN($L3J~-^-O#2^NZ&f_!e%J3B=$r-oOc9%U#Jl+1RagWJS|Fbv||e zH1l}nb`G8@hM-H!uVlfA-jv|fF$gu>WHwPqpZX^`c?OMukLh*XkoP?Hh*id}AN828 z>*rtxfm86M@okfrnm)U@lzSkBEl?;>Z~yguKIG3%i#tzAy+Mx1Kb0=ubtxaZF{5Gd z43H*ZI+ff2t1x1SUM88hsaPefkZjSB6jPs{cs%C&B+*3Gr}GPs*-Ur%m0SUy_VmQU z;FTYy^FG`C`@2^6Sbij_24RxZ=AGS&9HOxWyu^>P=07<Lg+P-mhIFF_D3+hPr!$Sp zZ$jqSTQV!-)yigzrDC=z^X1(2n^PuZXZXC@W0<mlD09+!8p<ku+oV&Cz?lh4eB3n; zGvGZ*g&j)IODtx#+Xq6gdKF^kczU*lDMG7}y*=2?i9Z4&32W^dnq2wGnC~%=*fFA< zT+@?&_SvcghHniH4K~8hQ+zG{STZ7%|KaW0u0|z-d=ymc<)$8Q-T(RlEv-7yefoQM zTXv!uFvD<S%&FK$OzaQVM=sHqldVO=of?mspJU19`Ysaor<{)6)lKJ;kD`h^TR>KV z@C6R`3l2+o_YWO{u<W_=7uQ4=*-lrvB(vH-xgG$$_Vq6|p03@#AMHGu6-YKVvs$&^ z1%;B+k5bnVRS*DZ1xm{(5`8_(-u3}xTR|~&plJUm(F@tsT2y=VG-*<ha)MbhM+M4H z%wYs_EjYfV>rZ>eNnp)Z)y%5#x0iKY^u)~{TA1XzZY?-(t^o{-xF|%(p=3PQSjq<4 zPgiaIC-%=*fK|o7s4T*@CCkfaT8IcL->=x<rZW4irszhIDNOvw6v}T$bI0}F_uEse z0D_vY*NV`nH`P=ivyHCG==3`#YVabIGzIvBUeu>hcI&F={ts1W@)NgrXEr_^*tdQs zZFf_^a`Xsx#e-aJsKWHj-y|N%>c5eAB(m4)`$E80ipPQV^*+2`w=dvGb4p*0Um`Se zA$K$_<9FCKnpe@KY8l|dGk3-9{D6IXi|ECXrJdKPqj1XZ=xsAvSzn(Z#N$pI*=KuH z@i?~fGuwVOd-@}5n&Lb3frJ5zi!r>jcff%=tly4A*P~ItX=+E2p|g`C!J6vgRfD;6 z))}1`gW;F_U`t67e3JhF>X^H#mrR=_p@S!i$6)!fpE-Ph_WujiH&Q@yvk!*;F;r4P zxwjpcQ^Yykn}iQHqFMsqU2T>wXh%@DlKw1Jh4%WtiaU#Lpuu}K4H9qN*s!6iEFQ|& zX6Qc19B~@de0UbA_FySp`sQ_?w{&Xo?n8@#cEbN+-@xDSoAbQ&@<IpP&gNuDd=xo! zf1fyQ$*^EH>QyXYx_tf+Qg>O_tnaotz+VE>_`UQw98qi;gtUPoBdy@_N?S!(PWa>o z_o{#nS-t`hjzwGaZQY)=G{I1ITJblRIqFGD+XzG$f2k@-1cb~2>@ns><PvHMg1nvl zNl^sAQAz6Ne|zz`#=@VWJ-RPb-O9wjow(r3gg0N^<j&-FPArz<W0`6ipz@v)oL(Kx zH(5l`^oe`*Ig9-to?a})rLvGF0&asHWyJ-tMc~YKuYrhQ^4vRk<;P=vuy<<;9V;DQ zTsmkwXir~E?{bxLrGg*!vj=083jjVi*a#+Vg^lxVrgUVa_^buQ0t^rYkwkLYI}j|i z;7I-*@IbUjv^U|87LE`m7p%OyM%<BZ0tF)+v1?@JQ3_k&;v-<daRYtN%X39KaXl-; z#5uq@0Q40Rez#%n)voZ>POFu;b@FV)=-w!v+>6I#K$rMpF0XrmQRL??4ZsAbVujhq z7qZ_2E)lw${Ag`~A*1aNTksjW?K3<qNI8ZCjs!IH3Mf(HNBKN2yvQ7cHc1|h)4Z?Y z$DG<6kwl9`i;7S_K<F)In{Cw4uchRL`D;X0#h!}>qg8qS41EPl`n?k}L&|bD27rQq zYF%E7V5bC%zdjLt%)-zbFbw53CXbU0_X+IhU5^h%Og1rgAobq6*;KdCfppGzooRWQ zWEr_BJK_|HJh<br?_z6t_tAw~pv7P;PSu`E2yG5D;f_UwMe&{HM?Kq0%CI>+*MA{< zv7lAI;|3NJ$g$plra5~bG~R|=b&G#kefF`|3ovE-|HFDQ-Hi7LFLM-JR0v=3Xf*p4 zPGheNRUpyJXmN!Jm=2>c!;`M@zGfED?U&z@fIcsOapoT3yT4;yswy{ATv+0Y3;Zb+ z&JrBVYqDgLxjU~`N{wfXQy+4#8!?Yjh}H4@d+#7nt5M#I$?k{e5ou<<T!JKU+<!cq z(OLO}m--V8x+|D98|KIcHm^;8ovE5L8%$)_&>Qp#_tZDqJ^D7;!#n_+z*422EX)tR zh5ZxxZde#gibDYE@Wg8H?O(Y2QBD*I=)VbJ+~is@SMNDV9clFDZz?4bXh=-6e11vA zq;OyOr3_XbKl)}w1`{6Q-V1<Hdc9L8yPZD#^$&BLhu<);D$Gd2PyOA83l@%ef;i-_ z6<B2vPZ=v#I9KXbcRwAYR-s&d-1>~>Vpeui>|$1TfOF<*>DBC$td`V#7Q+qiMq}E7 zgphD>EY;0VOM!8Um7gLnG;H1SM$5bT;U<vg+9BtryThq9*}x%$z+v>1Dx~rf9}fc{ z`|46$DbZZ`P<N8((tf=7e^Bz+%m6(pQOW6pPAbLfpHE6f^PB^lz3b5M*+JS627VAo zxt|1A2yBBWZ%}Xw$X<k%jisUD)9-ybuV_}Xl`ZslPD<<G8sYATdMh>IfZVHU(_bfE zQZvVi>=xhj=s)E9?4vYuCuP}^A@#vgyl|NbgZw~9cu<A1jv4Z^IA3+wM{`+y9{2ID ztT_wr9XnZmJ4zFM3!8g-y9&kcTLtXCF^Bv<WWf8ITBoVrx)<Ww&6Vn;bzS@W@^9z5 z&hqM!)E~)ogM3Tp^HhMG=#mOKB(Wdk%}EOpZ{}%Px8&lrM%A4A&!#d(-s9#@$`e|F z7#g?!kf_uo_0B4VD$_J%2qGOJwGrF477<p2M~c%Ew4vCaE#!4ONA|Sll+3NGetgu6 zXe6TiI@ojBOdnP;&13D_OlTf=XPqC_Bz~Jy{N{GG^?^HD0nxxtvT0aM@HYa?o57BR zwaXCGAh_!vMsEyF?_<?O<pe46aTKO76k0v`I2vs4YHp}J1r#BKN*Jnlgs<cg!f!Kv z)~VfitVR6P<J99c;=o)=BZs`mFKNfMsk01O+?Y+hM^0dGc<2Q_QPLvK=H3znVb!o& z<aYmPR#5OUiU>fs2N9~u`E4NUKVh=EoR;`yVjRrRQ-3!YdNPO*aenUNDCWigha=10 z4r-cu10KM(*6r<7&DdJ`kG&bi?}q8u!}=rpL0G9iyy;LV@c|KZ7JVo%*T;7jij!%A ztFsof7GHziU_^vJ3c}3szCHk2eX+*Z?BoH$#lLvWSUNTqs>LkGq*VeQyh?K_b6zN< z`VdyKG*5YFrxUEUo1Ap)^|h}XE#4&%JM%R*E^!K=c5f}4O-V+;M&Ja~`hRpvE+h(^ z-FHR3OlDctTy5LEe|^|Keu06%?ocJ@g}`$XgTkp7Kx2bu|8DB3H%ku)B-ZP0VvjhE zoTECToqgc?vAj^uQMsCxwIJy2K*w0^?ctKuT7=GDwyAZ25vnEm-VQyi#$;3`_4hGs zhQut)S1AWrYs>-Io5M)QuviRmo&%&C3d#!_3O<~Sd?a%X-Yg0rA|?_4JX3WkDQLgk z(bl)SJW-4~lQ_Q>yUS;|nKr0!nT$imq(w!J<_<HhTF@|>WF65roFr8Wi)wMM#C8=q z!Y@Hg+^yh+>{=~-gvroe8D9(q5PZZr*c~EXfJ$9SU9q=RJp4R{-g{Q)uxb!p)|V83 zOHlHeRF7#kfsu+7U~Z@EXv2vRNq*0127#w5E~LLr!lLILVx+9x?u+T`z2Q|Rh1q&k z`wq>OOwYuldOY$ZX}p5QHd;|~e&Aw;VJp?uqphF2>6bKe^YFqN6Utb|?R$kh$nObD zWPgMSh{CeRL4_>S3cmtIjjhr8*3WiSE5jc<dl+pHR&6(|fH|u<J8)!suBY-b4hfT0 zB%i$-9_0-GUdE_m#h-O>3vQjS_uc23?YPnoqX<35wqZuf^}<p0C$7p=(yeceW^j(V zq-JSDQLwQYtZ`nne<;68wEpO|tk2^&cd2h}E0H46#A4n=7@i8qDTD%d5Za`K$@JZT z6#aOV5izye*x{9@^}`Bn2svRm$Ru^<Ul^uCLcaYp_j!BKkblv=NyXpZczW8nShCAZ zI86BJF1%Qak`zY`i3=c__}2N_qRx?hX?XV|vC<(eF;G&BbVs||N_Ql6GJOeD-?s)m zZ3AHd%Sp!-#Nu)1LjcP*GPA#t5>gp*LY(txzDHXWa3&o>2fnapy-uKfPlt;_iC4&y zHtx|@;5W<hxSq8~t<Y4A{7q*zdTHdmxT56kvwIH?I_4Hh0e0|ti|l9Y`DxYX#Vgc{ z_&<X~zyIhMRj>><yvX<yL_TQvLlR8`4<Kr{Si`aZq(b9qkf4_!Krt|_jLRlMIsHZM zj8RYSxiM3TZI$%nH|vts&8V06v9s@qwurV4)X;hHJzhKPW+VjfmG(18(bm^C+Em&E z*5N(*j7GLI{efkU`zD)Qw1wDQI<inK3R08{j<V{=52#LWSd@%5Ot{08>Rq)wb_a8L zKRE@+VGt38yEsh=gujJAfH3||*e_S4Ql#<*3IYMg24Gp%VT#!emRr}~4#8^>mzZ=t z`7Xs^u)_I@?2H(H8sDo1(NPcu<wS+i*-2(jAJCGI4J;6C#o_Ws;zc3tF+J&EcaRBd z$+qvX!?Zwh(M2wQDbS$w-6R;BHziG7{%omFDDbP9MNsF>ST3h7-{IOM9sc&b9xugD zt)35VJs54CbOQeHe!)K`nN#STgMm?V5rZz_L_ir9wb$}vVUz!Kh||#P($mB)?n5Rv zih>{^46GA=5BgE{ML9QSTUKl`I^q8FF{pWl7|}H$f%sGzOa2f;@ZxryL#{P_r)q~8 z^6{QOxtsc<T~^|yW~7`RQPuhHYzLU7OV9J}yXN~$F*!KAK|)rMmxG?#9edN1Ppn~B zM>MM)3&ajVbUkFBYI%C$j9KbP5LvP@EDOq9mw^<TTKk*eH9!3EgM#$(BrCZd`9B}y z&>GS?M;|pOSwGGvmPyhRgt2x~d?}G|Fy$X90a0h<&h*Db*~mD4gE#Q;gtrGHY=wc9 zHfyJzDSlEee!b*QNQ=-H-PYUP!<=(fwXm%4e|9G0SXdSIwaXYhU#?-z%<wwYs8R)e zW(NA_%x)Cw<F}B9$RHpaEnEQ%R-ZAuCX)~);g1UWhd0_YmKLaoVduxYBvDQN4}rwR zfl;!VoJ!oBdYpRUb5+6c_u=Aq{S11f49Z5eHrG~(62880dwb9$G8FIE|AMDfr1@yd zcU)mkZv=?G!!hy#<@{4Exd|DYD9L>RHUwU__({N?vjLeiPevnlAIOe5frMTGk*95N zjJPqaH#xzDo&hNH9Izr~GQ6);Yxt~Bx|vsYD0=v`cjZ&#e3cI|AXUz~tL8)iwkkj; zGYNS>NBZ?47cEfs7ot*{b1K29b(D3KR5y=NI%0orV@3yR{bJRSBh=JQFKpbmpfYsT z*9Q`wQ8L-^&5_cbh8-S?qu&I5wlUtL^7xQxri!u!5e?+Y3bs5MBWPz6zRt9Lm{67u zdP-3a95G@YA}oEX(Uw&l3BvDj0D0Z|j3>A^Ruez2^g=cVk)GdkTDMcb!>u{C_5!ML zpAvF)Zrm1~shpjiJv!-1y{@uo2imOnsN^!2WWmCuh>I|=Z2Z%Wgi@X(HX}#<<X0Bx zAH@w?tx!r7;Y4LU3D~hAP{WP6O#R=zEP=V99vPp<omPHCer@@vv-nO0;3)Kb9=NLW zft}smNJnk)ad-4}jinabQA?}mOs(*k&!AqR_lSdRVB{dU;{E`QX?L{n3u<HQ8)m$j z|81OtyS0XtDJOK?QD2+?EkS-VB$x_vy<Cn8{?t%k)WNBE1tt0rr(Tj%4V}lcfTZky zQ3!%J3~^*!`w28150lLo)n?fF^Nd4Vf8H#?>cbbU7ihW^RP77Lb2sm}W?mBXk8OTF zV=87CDO^r^#BvErk;pcp`wqGk>(W0xkNhULIeY5sVUQXZ(g*xvn2{?yD-YtD1lw5B zX6vUHmPqjIk02KlR|_2`6KEMoAomj_7|5mHq}!SP4WGQn9s8$~i_bUW)~EJWt?Pc1 zY^Mh;Nb4Rekh{N6T(66p%)(+$;3S%cI5_T0okHA33wq)5a=1Tq6@02DFaI-}P|5I~ zRM)Qzx<2R;-Xhm=Rd3+)jG%WcZt6REUHlR4pB^&_Hw<C`s)ZD7OYI(>Vf)^WzV`}= zN94uYlaod&o>zDLm&-)TqF29GEE;n5>S&zjcU817IsORhS+Ia0=^0fErfErGv!;%R z^*Tx3vmD(Q8HzebRsZ(Tix6QMOxFMyaw$_|nvM7N2q;mevV+YfiS?3qSusiqJk*bY zyT{jolhv(2fS_I-O|`0%1Z$#A1IMZR{4b1RkJOe6JS<j3rF<7|Lpq-2=*gp<%DqvR ziWVU~PqDD}sXO$DI27)C=s$Ck8;WnFSK4QavhPCKJ?W&$P4za&a`{>ISF;aWrsq;> zRLe<?ew!|;j#QDp8hA71xg>u1pjY^)IsKv9*>sO`S=P2iy0Cw56aSaD+GjpXwp0tr zS2^NrD`+)aaA{5js#1M|4ih)l&vvR_$KJpzX=!M+8$=W(Yx9IWCLWw?&T7u;TF8TX z4q;#HAGOe>a5u;ar%dFK6A75iIE=J>MirP9%jz}F5pJ3jVKXQ1v!?a8#dnK23td0d z+5MiWm?Qerg!`ykXPo7epu$WE{Kv4c^4G9X>I{CfwufP<NQnPsZClXmh4O+B7*?VG z958io3qL3phbfEQq2CwMj#o(${$NhDM@ul19FL9v{k^xn@&awDLNKqgxOnyJ#Nm!a zBacvfgFt=S?$*QB=JJpmqgXH4q0ta8h$g3!p1Owdw;qr%H<$A*=qJ-+TiuSGurk5& z*s`o<!^ogW9y$7Dxpr-Z*@&frUCiR9zS%ne@!-y=xBPA{g%U{BhOVN+)8hat#cb0> zuqvl4=TUO+r83YIlz@6TUhfgZ_CO*a#Y+X2Bga_hNY~f_{k{Z!5t=$M#iG>%xxxRZ z(*^#Px-=l=RoE}gO-1(-qx)&si=#5?T*}td`!V=yIn?F)dm4t@1Gfs;*K7nZoJPlL zcmTyI4!mog;hWPP<9Op5l<|5b>g3oQNCPD>8{S}$3SG(qT$ewH2;oJatV;cF-C9EG z#Pk`G_b@lpr}#<%J=DR$(SY6n$UF-a$oR42WNv`hL0@BrS-v79q5S4_#RcA+u2=Td z<6kogricOto*u=qOcVYVgoCjE(w?9q-hZDaPU=5E!uT((R)1l{@4M_OIIDCLL)Od9 z-RE;3qWsQma8k;#Y1}PNN6yVY2-`)5)gLD;4HuYRfCxBcjL(pLE$>eW!-+yFuBEz? zyVijYD#*tOcW9mY7U#ZKTS(RTaF(m7qY3x*jOo)?ypg}+2X3<}oUG}{%Yz(sW)Aae zWbf$=_oD5WeCI(XH%`Z&I6lf9b!SR_=Cug^{@QyaLtiBe`}b8dpl8!#v^+w>6ixe6 zAam|$Er1;m`O$~<B$0q;OGt3=#AwgjsZt=#l%T>Wd<#|T47pd&X^y2|7-LHBX;C-x z{AxDmzt0kmNnb54;#0tM@%|xBDxWag`5Y_GiM44|QF39L2WG#zm~>#~VnAb5o}jQ2 zG)oPgvS9u-OaRMo!-O%eBr)2HNS&$Eug|57nA|dt;(TjPGd!mT@_imfp%xd>ItTK| zc=U3N0hEiDb*fnhIJJ^);=i9-=tXZ$eH|1vi~@h@3Tn%vYN2XT+-$nWW=RKq9q!uh z#KP4W(x}qVo|-iW$E+;GOxK5=s*jUkR$7X>@CzOlq5;YmTwzTh%pUrF7AY-43R_we zuOL&K9bp;rpFb=^gZD@yp@*so)$#|E2}(Jk<$o(vEl1^NdO=z)i2LwJg~J4OeNA_V zr3+w*r{)$9`gy8!_`5-eJObxn5=s4#8r9!q#_Rl@us-ast%}CQV~LX;7lAtu=~L}N z6pBg77;C_!gvZv=U!IP{PL2vh&vhKU;^G;708vKKPq;?x-NjXv6g(rKc`dz6YLGl~ zxM*d2f)>er13peQkRcBmc#OpC^f!d0-=eLj7D4%0b|mp5Tckyc;+xrTP0Fgc$~aOJ z5MCcjj&xpeFwT=MMuzMtVW-|13#_3uk=l#CxILi8Il(yrB>5{35UgZHN&dScomP*Y zrcTIe^~e1V3CV->W=O-7-V7<oZl32KLz+ziA8irW)gCIX`4tmJg)GLfA%sCvSTA49 z(2z=1)Jv68pYr+kJDAt_z<)LJ>gJ(yfBthPDZr$gFi+o@t3?76B6sPhsgxm1ry|@G zD=aKZ8Sc^%AZhqMf0N^IgvdAACHjiMgoXQ1Ui1>=8<@(jfbm_=IHvnsXjz)XMqzg+ zI`9M`FQ0zs&`fiGIv)?td)C+SRo>fhD)}9&mH055V0Q{>#%q3g!4zd*V@=!bkaMGm z1Hi6<U?%zH)2c&8Q?0#d*+)#q63_#!nA$ZAIJYs{KX=3VVOYdAFir!N7jPD1G?!=C z^@X9A50usR%eqB~9B<b_xBLp<zW#{Z31*x9M#8%GV{Y<0cfRYq5Syrv%Ug`?$5Z$u zFl|O>c#;AVdfcv(dYgPPb8x3Yhv4tMKs(_KhHP&*8Mzu)4;<9bJ}og*mX!2CrU9Lw zZcoxj6B9?O97fj00G{!wJ4>^W?skS9yER_n@<un}adN_8=d_498%$Q@oL@ua9Xm9p zaE|{77{XGcfZMf87n)x|olk-d>({-eIoEj-+j;a%w{Y5PIZq_wvB91q>4JMV5ED`t za+Af9hVfW7?tQHDWtntqHhA<;Go8lP#sS(+#%EtiH)Vd<TZg}8tec@?T{fM%!(mMw z+^so6)SHNf+C&*gCEmzzwH#hU>8Vq?f17Ax_3<_rX9#0&g2n%WUPSXm^Xt9(|E6Jq z*55KG?9t7Veu7~SD6tQLL0Qe=nC6ynz5B=+zM(tSV|F>Bwv(HgBkber|ELQ%<1HSn zMUd7;7Do4R(T;wv>R8}%)<WK~`srM(T(0yn7P=V%Yep2#@Q4QnZx1`~_sZ+e21%6+ zJvuLRJ;hc`uja^zSFlM=rUPIFGaoaUJ@0I=pa=Vu-LXdHX8f@K{<LHDng(!|GhnN_ z&(+`mtJPQDE}R;Ax9#^T`|h{B*0=xZEK~yex0tq3yhP~GTs@;VG=F_wr24EkI#yM# zU^2nwJR`PEei$>$U6Wz3-0BH&^BBh?%u|LMfhY$2r7X7g;{#bv?L|CZ=E*-HI5$Y7 zqp&9CQU{zzZU2L*2{14<*xQkeDQqe~M<6lbhLH@-j%W>79Owk3sKleg|Ky{`c)}!m zG3oB2;EnYQ%t<*|?}=9pu_U;}&CiVB39R$GAeMu6{#FA^{~wIHg7Dts`3V@LxcQHY z{C`H|#~~BrL@V|a6Ka1n*=B0mYi5e$wjCOr94^NNt4oiHo#Pfu@@0_dt;qv-4UkJd zBA5FOk>H^3sT6z);E)-uNuP1zgZpiyB-K;4t9i9uWUGvT+k+Wu1jED1g7p)YM`6mk zpl7IJ6u8fWFeo1gMOpk)`k25Mp70ELM(MLiko2XIwYK^Y+c-09+p)VX&5f^F(yl<* z78F}2re&+`2LU=k0>k5`8Y%p-*~0RyXsx}8k+L1kCDCg4`$J>|XCw`9U^VkR?Z20y zu4o;d9#>7Xee05C;%9VRUiAkKyHIu2tyLR70zd4F^lDD{Ld!P43tA@UjeTngQTd0y zDyFsI=~{U!OJ^+a*&f~CR1k1lhR93~Vi0#mVFcW7EdHm5oPU0@5hRwMg2Vc8hX`4C z%<{c6vqAxJoPrP=>N_jr0hyG8V)9;h5m@O>JEFUkEn<9ezz+ej1>}hXqtrVa{CBxB zu3#f5SxN4v?>EUwa&#N_xki9-T|U|Q-Ti+?!e1E((QA`~ZRG|VAG!-*9CRUMU>t%Y z<MtiQj;ZfIRAq~huEm5*)t%{_-x>c~By44`dENknP_!OH!%ESt9u7seNId{hQ$ptP zgf|(ch7{%ggLaLW9682R{V|_NZEnSA!Oo*ybIB&u@KoU=ZpIiPD#nkZ)%w-X!RN_W zhbo;fTOR+K2v=@!wU@=yo~G`YcS0m6&z<N>{t~V$B6c$PClHSKO_vJT&?5LC*F3fz zzYt1;W8HQTdZn6I^9EH#A64@7^PYdVfpLcE0w2HpJJs#1gyEwOqZaavQih<%Qyz~Y zgy0{~+!41+`G@I3Mw{A<ws)?vmfyg?Zsm=#<n+d{2Ksy4Fvbe<rHKLm6$j(<@=2b( zw0Mm*R%WVwm`$AYIvgw=lXy&CN}e1TDVW0z4;@gXS0<*%qf^1j%oa|b<S;o?`MV50 zxRT~A29NW@==rc_IbRP13G;Noefdc;_h$HG#~Nq%`GOl0*{en)ZZ|(<BUU25RB<<C z7&J{sZa4z3Yn2`zfOa!M^kH-;*17D7@1=8720L`X+Y#tbljV^Ke4dq^B&xy41C%+$ zzOJuo1s#NEwvdiIuWE=&Hm_=ChQ0CS)|z*j9)XfMt|`^Mv_z{!tHebfKPFacM^0Vq zxjsZ6-tHE;jgf+6hmJ@|m(5T2yGMWBY<2G=Yye;e-Z!D)XA%SHj{6FOBHfdo!135$ zpb+;T5pr!9mSmBEPy`w#R@b{!0xJPJI5+@41UWDtPuyUStjX*Sndp7|5&rtWVdOW8 z%oMiy7e&rT@QTH6%0g94*dWY6oyB>jf^?x4YuE6XA(lcZQ2N#8nJA8X*L{|wBxJBM z{v9p*Ek7=)YWctNV@-p`|DGQ^rjpuyNXQeQ0)(boHFvYW*=VP^+76Y<v?XfvenYG= zi1_z)6gTx^F<C7nE_-1{O+*il<_}=*C@w$U8l-_g=^lS(@hTQ_InfqacP2n4duHZ? zNfP|sT4W6LdBnb@k5qhL!`)s2>By)oUT(0Dg-~^!xlI9z8ly7FhXkJ8Sd2Cy3BUif zs`dA#)~b3A8Y|9#`2aOG*aXz+n#zu2fdf66k&*kXTdVUm(uIa#EiT;{=AOn%AHns< zE*3kfSy)7qvl6&nuHumVJ<;)E@F9UT+)dfFHtx@6Gv||)m`W>nbh~XRGo6G!!FQ0d z3A=*K0BKe331d(dPcxqERk4x~iP}7CsajvQ@C5acj6mB`!3=ENKy$kYeS?xL(_pM> z5H<SDp(S6>8GFTS?dPxPuA?3t#gsRKSA38t?1gGPsPL}u=lS<sBUFjKN~;fvP8J=^ z!Ad`baDe_+(B81dvhx10%{2Ym;h!tFdzKO=z#Xrt8nwM3$ZFZ&>lQR*;gx~y9{`_S zxPLr&p;KkuN@@a8%BL@(a(KmW;TnU80fE>yk=HcI2S<qG-*95zZ_g=APw!fi*c5VK z4T<I?H1Mz5`gi4bPK5ZX_`Eg=ahPBQnQQ^Y>9mZ)4R?TXY_o9k*0b+Ou-nh`l0ZDg ztA$lGXGu3P9ggfqN$pJlVv$BXn36hc*4EO^f`EZ;O|y!B7k|yU$8`5f&3rTG(l@M- z5{_C3$!5x+NzN0U;66eN1w$Ovn6@?;TD=RUW2>GufjZm6O?ALRN83q%vNGj4)b9v) zh&upp`rL6P=!=Jt&z`J@M|&n^(aO@aW2UG#5&C;KZ*}*)wQ`SCdCOOAdEGI8eLky( zeMsVGu#Ven?XO35-{%k5Fmp*1j>$TlNT`FxY3%}Ux`a;8Tk>yRg7o)(7;DAfx<s)i zV1~mFP(BmANh-?;P-o6WjnTTS>n6JQRAl>k1^40mDrY&)Nx=D%XO*RyDSupaV@?nI zg*hq~&cbVOmzvbq-3w-IpGxg=?WY+UN1<WjiPvBt@|UwT?3yT2xB+?yrBDiE?Dz{a z(KgWfiVROMd3y_B(xJZM=elu$reA~qe7yyLfeg#P^sX&I5`<K>J2uSb>4Z957)1*P zMjnfY<{$+7GRxa4*DQCG2|c9OYsh)@uelzg-tc@;Nm~MREGA3tsNDymQ=(JH$00f} ziqs)<_mOw8`*4Zc1_>D+-08S5*8U4y^lf`vdz7%qz~gNa=66XTCFoOE*z*^hfUm$Q z^H2rHo1ZqhNfyDeM1+|RkFDbT2BOF&jZ<RW{6-Y@yHY_@(;u;^?z@IMpWuD?)sf)@ zgH^tDe!KX?%f$P6)z4K-_)^6zB_Q2nr&T@z11{Q8n@=Ar#~F*;QLvyN`IB{&>8{`; zVZ|)bG)vm{&;j8Mu8~2PgG=JJ=v9D83dRwMZ5UG{M0#-`nUtI`jrRp)VQe&sHe~+~ zIIi*;s!l9bp@n%%a^tftACBDE<Gl`G^Gn8=guF<J{%&%QG~SwALvFEHiTCof1_p`F z8@d8AZ;dvmI(KA$GVZ||yjoZ0uORCC|EzI|Haq(+y~hBge*=|}o&;|2pFcbEcQh=$ zTWfBw`1EfbsrCEDPo&GD$61gUVhGS|W(dY%BxgI22gGtglWMEe?DF>Vrvz7U%9%cQ z)6HG<LGg|hUCB+tHe_VRij-1t2?IvWRDkvGg>%X}DXD4|=Axe!KcBymt-cdz|Mw@% zlKNog6NXbm4yoU<?#q1&fz_@kS<8}{FhnxVk4K_8qPYqGX!`iL{}GmkEMc&?ao=G- zB!u29|H#X!$a(HV7Y%zxwP<y#_yyRZUmS{>@9X1yaB_5ozf`FDxQI)&S`1dCTa6C9 z>OEXqNv?fa><rFT>umkA_7<0-{S%j}ETJfYy9gRs0{ay0-*g=PB`0f}Z3d*JfwWr7 zsBunQMclL6)-NHRlj)FZy(CV?X4XtaxU+{+r&g=wTRhrEpq<GaNPy&8M2n&n>dgNL zy;UD|Io^yXnSPGrs1INg7$m)#6h>HE7)H5jFW8&j*84rJ{$9SDzWH6X248Ji8%x)@ zI=b5?2<qeh;_0*DDmZ%!y}G$seU7QP^w{{g;r!~#%|+RBz&!ntPkk}(^&wcuy4aW7 zQT}nE#%}r5jxOv87~4sEsij=+*nZljrLezpou7-WBNzNXR@>?!EsKO4fp>XQmnod7 zWw5o8v&@>SeuiI1=CAEezXOFQrsoZDt*-D3ha}iWUo~`p+kEsD_@GFWHz1@t1w8#+ zO?()cu6a&>xH+dwAidsK1mY@fHD0gl7s?+{2|vY3GqIxhMK*4V8q!P=89}w%HOm4R zMrRF7tY5ojL;@uC)9T8^7b~r%Uq01}QBAz4c6J)M@l~f!CYX8ayA6J*ebi(4W$t>a zcjOe>$rId28_yo)@NGUnT?S;+m0D>1ux}9NysUdOAGJ#Noj{V^4|rR@*gw#s<GEcn zQsT)M%Z^@k(c7rv_RAA4U0z>~UL{cMB!t6|#f_#UYLAN!-+pKMG{ZM(rC)YUAf}u< ze1%NL7j!nHUL_YbemH%&6}rG!EHqA~aP)fq9=y)o>BE&0YUXLF{EL}%`+mH6Z!1+N z(>g>5w<_?N#JsF}9&oIhc4Cfz+ASYdE}76lRsoGlW|ewm5c#pjuE7PY^Z!Qdw$$jT zeIS}8n$3ckMd_$2=pZ+w3Oa*ZT4OLPny)H5%h%HXXtzB&4~5HDJ2WBEH&Z@Sj;0Oa zKA(!?ta*(Y5bZpuSeS9Ri1vQE5GTW@5Q>K`hdc#}lNA9~2w;OHlT;0I&8rgI<#Va* z3!%m1poJ3cfkEiB1uQJ|Oz>TCP0wJQ*V0V7;jc5%lC8n*JRKjRo08VJqdOVj8*m)2 zpXX)~tB>M8HwxM?e~8wv*dPvJm5D}0XVXGu<r3)NN>vg4Q{!&A2h&jKp%;-C?d-mH zbj$t!(e)1AbuRk$cih;Gv7*Md8r!yQ8!Kqc#%^QVwr$&PgQoGjy7xZk-uwQ}`2#XW z))?zq<N40{nREWI2nI8vmVl<<Q>DgdrXsCnu5vdMnyZst#!zA#YTlnFxcKJouJ9~l z6N9IP97g+r6J?XNd@Pm+yH&5!GQQyJPb{><5#-D}Hks8a*Te~N3ZPz<_~!g<Npb#h z#@cS)u|(x=$1+jnRYpBKPj-dOeR6Y~Rphwsp-W>Nf(RT6$*-19DAzcQ(fKSb_ac?e zjHPb@OJAJs7KhRW3tL5!(;<WRR(jMmlt=}P45tbG)xlcpTcQ5^%Ir$dUnzaql9!L| ztY4C{F!hSTb2cAe2Zk{`n|77;#eF1&6#D)->c^s0bUoW~8XHJu2^%xPZSW)#6!0gv zolIbH6rnaT58%od<g7-=Z<y5Gr8KH1eYmq=@Nk_Oe|=KxI9;k+g<R>nv`9_fSYpg> zU83{vW$yyMJp7#1TD)ku;8h+)isHQ4J&FGu?_IUArbdD60n~1d#-^(uo(}0m8u8T; z@~Hw7@JHSKK`hD7B*3?<G^{)7UV6%AcB|gz?VH0BJiCr_L4C$#J%^ZBluW`Agi8W- ztJZLyJ~PMwUd{6Rk;IE5qa>Tma1jGScHM|Bm|tg>NSoY5xQC@kjPL;V3J$}sL5`*n zQ|gHbR=pWq9Qcz{!x<`363#{n>J{d44V49?U`LCf(b&l$4Vg6A>=T3GCw$tj@{7t` z-I%;PAgi1bp*J^LPjIe!bEF2}z!K#5|97Hw7nErI<QV{tYb+_)VW7-tep1F?zT^US zY%h=C-qi1q<$XL+`O96(`o5Gx;8>><K2H~TVZWpfX3E>4TB|Sspv8)wiw^&G%)Z9H zW|FHXMZiE38{|#}n+Qs@p7lz^I}RwdB(RA~**0MWGbR0lAu-yHfqm2rdKIVp&k$1I zA%rkQA~A8<7I!kbs1dJ9m?!4QFV*si>1nogAp81$Enx{|x<uk7W`ska`xxMprZi^N z8Udc__Z7<r3)-JaGhGWHjtHm(8%$Cd(Dz!`DbUgFT=DE<y=LL4uIYMCDZ@17eZ&yQ zo)@0!%aP@{jrDb3vM!sN4>~`)AmUe-c)Pd{U4zK|<2aS!@HW^vD#-+w2J!3=-%z$9 za2Tea*&@y8-7-LV{`|Z&v@P`MD7FU^?7?EeXUgrqK)banYe`2#-H%~y_+ThY-k!mO zC$AoJY@MoL*0JhWE9hKRHTl8QS!G0oa)c>r0~2<~>l#cO3yBC7M53ohZd|K1g#@9g zUF$LFJb8l+ZLWBuA)dqjuV^Xoe`iZCtm$NW-?EsctT5x}3G?_S^?x)?723oOA8<vv zM!r7H50Fr%g;INm!9e|t+5&=T7VlK?jxC(`g60YRoR93C?48?lm{+6y`}4ofd;{ta ztt<U{hE*P#n)x!^#lMXyFLpDpJgA18DZE&PMK-(T=>{jBNK=zll>V&z+36G+W(gGX zx$?FnG8hSd>Wy~ghay-#bDgTn-mObyli>qC-YNM9^VV2eKUO|=N(tXYzWf?cD(2%6 zAoE+(Zn&^*9N17d;VC@WuFhnjOoAL<&lMT8`;vTDG!sA&vek`~$EEgIdAp6b^^M#f z`Qvd{(o>4DNsEZG*=eSR6pj6sElSl4S&P!H|H?w2PVlpw)9ny-$x#PsDHgGJu}v|c zhO2^jQ%B=U@BW5$a1xpciiJxtGZnVeg_$^rTKQQx5k-~&NZQyQg~!E*Y8PW4b0s&~ zDPXG4IGyUAe0(<SUJ4vlplNlQwyyPU^1E@$z_-KRBn?0c@6G>#Mcz?KV@N8evlvyG z^w62f)498TV&@&Na+HBP5aB&!$H0mu=sqOsPn-BxF4RuVLBeC|#NKCBC61?xTz?2H zt<+6aP7DYa$hyLUmKb}<o%7;ok3m}Fi(+36A~mful|%&Ze}p}}V;hvs5Sa96!5WI# zE8_5uzPcv=zU^Ah?3kkWD}Ajg!D74?EOpD)*=TYJ3lR{nAinNzv$<!1`7#b&4`73H zlcUbHLyMI&HVIQk9|~}LUc*~<&{%tQ)@nkaZ~=O|O%We7YzaXA*el`gr249$mJ9Q- zGK2|`3q!hFOb-`2pY`N7yWFtU5G!djKmt349Abq6nMnrST^4~5FAE_}L8khJq=hjh zBHCiF&;K_Gazx@4+AZ4F$R<JDTE=?D`WG2;uGMWkj{g`GHM_hqC5z5GxaY`)g@^IP zybml5V6lY2jV~3S{3j-g3_Tnq#$uPN9N+-%OiER(`}0evH8uu}@m@8ASLGju=#6n8 zyg)Re6JVjYkcg7Jb-Ig+%y30}IF8{TUyQM&dzFYJ&o1`kz4oD4E`o0J8RkhXhpT!D z4w%GUk;Sw34uOj)8ZY(5gB_mgI}7!<H}b2iEjb-SEs78w7nI%D;|QvYJeKM<mrA$o z`Y`!?S&3xyx%c;rY%P`jv8KxRvDjNzdq?^@2O47moM@*we8d$-&V@E`lYOk)bB9Q^ z1sd!GG<0;#smRW$$d%eST^uuiZs%BT^LnRD4|(A0+Vgv}N0FQztxfwIZRzW2$6(Wm zm*nD`ArlNfeoaie{H3(jT>vFtrph%?fS%HHP?JSiI7raKOw(r2epT7S;8pfv9xVjl zSGR(dTzyd9$9G=4&u?n=f@|VeC|9s-Gl0_=v!0BLA*U2Dt~or&-kj)|S)(aL{<KPO zUj~dlA3#ABr+zSp*@<Y60Jm05F=ljNK3l|(Gcm<lZ+=`AQ40n=UZr#h7g&tg#q%;Y zpN%zeR=*$Tc*)yob@ADyR`sE;8$OL4k_%=*mlndlG8n6FlHEC{udApbCB>Uc*%3Z3 zEyxRA0zy(?j~4+U+W~Y_-5oj6;GgpDz<|&jh5#r2bUf%0%=6I`V~3FCqhBLDEq35? zc5;`+SfcIaV=4Kw&=+y%gIYdoE5tQY@6J*~%dWGwug7K<y4p<~a4W4P!g%bczg7u5 z%c3Qv>t!|Z&rg~{-O*KeOJMng+m4p0Ah0pT%E)d*NHzCJe;7pAmu9S$@B80|2Lpq1 zmKSE0W@3wiylpv9(mOiJ^%ul9&(+=De;09dWo><%TMJVb5(C3QrE<g&=ppPxCxA;a zqxdZv*2rEj5R^-QVu7KRPZgDPL+7;#bB9dW_)t63vD6V;6y^=Ca5~wWw;V=E`6@mL z-Q!!aNN7FnAdo;*##k3xAk-Sf;SWsqcS*ss!62MiYIsA%;&@U;5^sTu77JwOKm~XB zUeiQGLBD#VAFSB*D_lUcqh%&yA8$!v=pMmqzs_y8yCr@+bN<{c|7&+kvgPB*!whcI zwvq*X4;k`;*K%{^Yr#*AkqWe+x(VEGCsa*C_YzE1Bm>{d$HP&-`tB|WlC}Z?XVpq` zefKqD@`nn#)6ed5``Y_Fd3Ji3JFv-9Ym=S3Qu;N)7|o7eE><5I?8}JDmc!eaQJ-0+ zdZziKI&75Ss3y>tdHg|rK4^||f`X~p-D%5Ekb!wWGVpOI<MiI~DCqUSHOt>vPM$Ay zjoPeXS9uXK?@myMqn$6{FODks9XC0%`gEl0|2j(cd9c07MW1R}Yj|n14M)W5452I} z?V(L0sw!U3JwK8dW~XFu#rf&Hk;f;&r*gSw?J@!PPZp3#SD@|6@5{&3D{yce-s92s z2mIVKS*k4+Niou~@6m<sW86;=?5pu$G}I7TOu}R-o=WkOcu1r7840AXYZv{iAqJUp zbrv22iSpQZKt|-sbV5aP=#NKW!Mwel86PXxdI^Y7B13+i{lfgV(TH$Ao_IT6Q)e5^ zv5rzi9`Wh>kL<Nv_Yb$ML;a|+HHb9#%Hkd=&};LdLoGv|vJon=>4q#h1JvlhWgH2F zd%%qnl(6WDW8m&!2sBbG#0jdC{{;V-1Hz*=tq*hNft^A<pPm<uYssrVVc^Rb&GY-- zpr-J}l8CTC#*%?jO&D?esEMet7PuEV?rfmHH1VF|j$W3P_4N-zfcv7Tqa*4oBl6?R z>A?XnGz>N!nJ*`M7kgI-n59R}I`3&#`{Ro-1MTIodnQs<h1GGaJ5Oq1jr%5_n<GL2 zGHh)LP|g%k$9l=cqGtt)Z+3gt_$)V|NXuggSrGx5YjO7oMB`ZpXLiVIvrgx!stxa5 z`Jx!A>jZF8mP$U0H$dC7m$@bRcqHMsQmnSLbXj7>cJxJP=45|vsKP#EvE&rUs({Zs z;|7?9pUk0K*P3a4=bu-ypFH`^&u_#h9XwqP)Q4XXP$HQW;3^nAd0TM!C~SY${5UkR z6#sT}<v2AWFTE_iU+!zAp55G`AA%+NaK$G;gHk@MhnB*d<A1{i0TyPjshBIdcY+jK zBAO0UXTcL+DMgsNfSSOC{DX1E10O<kL16+cHoztb3HsMSi+Cu@?tI^U{Ym4L@O+Cn z@PcBq{>JX~4ay*=Z|cRhji%<Sp3&jh+u;^h!xBQlv<(DvgoRQ3PPkhN={_rA?NX0? zKF0A>#QR5WC*|JK=<m!`o=8a4=+8ZHOt5k>%iX+AL{rFFW9_bc3mtEUgj|ci>UD}- zdu*=yz5JoCVUm06J|TytF(PB#0O+)1fOB!`WKf<H$XVc*(ceYWmwYB&8$gd`41<2V z<Lk#YPoW9Pf&g|kb7riFX9rS9l9VF#(^qOQ>-~^o9^*=~CC0|<z7LJo)%v!?=<1b- zJ@;zu?c~|&m6U_UmfK>~V00p?({3}``8?1ubJ=F72H%ljA;Oi#^Bci;0j)`qz-}C= zu@d!i<X_xeHMbZs)|+o8&G-ab_ni{!Y&PEqey*G)W>_MQeJF9~eAK)Y@cn8~kP;Vg zrZscYHpViK_@mr{;RlgUjv1WwPB2~v^1=cK|J5qr2f|qA0SI+@?X)9+cr01%WFSRe zfVVNSb4~`TyM-}Ib83f)2m>4xH!#(cNh198puo_6DtJVx7&5ldrjxbe>p{5U9ac?_ zrwHaS5;E0}@&KHk3f6(@lk5Gmpk$)}n47mLT2Ez#iFrJ^94E<p?4w6s6ELAER{FTh zy@7MuV^p()vBg01|JU-SEJ2;vp2T|633WZQ%iaUYE(6R3L%c5dz190>YR!GTsD1l$ zg<HRL^Vqs;o9mWA<kBwM=;_fSfi;#R<&^Om5+N9rd85VK1036u5&dq5q?}N7e6cPB z<;sYNkD;W$sn)X00ul`%j)R;Ba4|&lsJOyL$wz?uSuF8rQ&wX8y8AE9{ITRo_$q$* z$G5^?bAXsrQ`h4cn8{;gir-IC4k?I2?tcdb1tacl`p1L~kitwas)va&&D6^(wSQg^ zTozO?1pTHD=RRW3sF4WL)MqJy3Bi~@PAg$Tha1SIzzr9I=+xf==G=zu{O1*O9hI_~ zdq?h0yx6b#yZ3`gxPALwu;ZG+xF_W`0Iy{1Qy@L$s9aqIOuN0MvyJmGC1(ulb#TTB z6i3o~rkrC@mp_zo`8?7=1nc;6{>&ZePVxN<g~;XUrM0KaXM!fSTK3v}_IIAr2aC!h zNA?mq;@QXFwVq8k>YEuYn~Z)XLu+SSR3;)N+d_B9l4+7TW&|(V!@ca40$`PJ``_r> z34nrM$XdtXn5g`tl$in?$9i(OJCwj4hh!m;Y>_T3+bmH|@O}*~s#Ggg>!Z+L=LKb* z<~4U1?d+fCk(dHt7wW^e-lCjR%(z$X-7B77^2st$j~t`8xQ&$)$odq(Jap6Q11wC0 z^e&3^C2XG_NSh*RTH7!`>eATqrfk<@90O%#^<<b-q;IZP)Q{nVwjtNMKk+0FwWUCm z8)Vv90p+ZEJ|~a!My?{J^(LtNwn{pHUQHGN&`F=Aq8MF2Rb5XqRNFINu2I-&Y<EK+ zBb3i3ax}{w7+xrm${HC>;XI@rdvPRNM~GVXmm0m`y|Omp4~aOnzR#?(Mrm}`xdENm zylq!}wi+Du`FNkE$BXYlC2?8JG{21js6*C3<s;VPSwDY4bKHV1?gjECa``Mtc~e0` zu_RGvs-LMNeEEWcW6*~9fz31F?3|+L@z3cNd+luxV1?OU909NGz5ZP~ykvh`Sf=Gv z;km`z57iey**A7?>b4a=Hx!0U;NVZO!-2~z?gt|-jbGMJNIWC}L?g8LKrDNom)t&C zC?uAKkcqmq=b~It4O|ZDH35mJV}&YP<YQ_NuaI^5k3kqk@?AD7CgC@R4h8l<;k1q; z)%0?F$~C(Vh4FAC>&EnT{4KR#DfXqj+&-4&kBt2lZlcU`-42um5Y$b;cu!9Yh+M-C z3*4u!Q%jJ2L0N$>0;Yn8aE%B}o#!v!@l0cr#TxC^(8f&FgTIq)oP@S@zUIB`xy>N> z6%l~!vG*F_<K@V&w}}{qRPQei4y2R!jyi1VfbHi^NitOw7^2>1D!QNIh8t*y(mKlB zK4EGd@=-qLSG?dG!}|@qGd`A-6N5#=_=@L`9xU?<Yf?&i!Tk|em)Pe4JLJjk?X9Bl zPXdW<{bS^2>*;3HGZ9Z$+3M@O7o`B5-V`ru`?hWpL!a_y{D|PIE{v<l!HS{<=DSi) z&6aUsP#O8Wb)62O@iL~uMR2k50}euAi#Cz<jc6IP295<e^AK>cicV6!snxyHCfdQL z8a$<4Wy#9Ih(9mN5BZt)!!q(lsG2$Dvc{vYrY1jRF|RPh0IP&!4S!Cd=z3*rkxfFe zq8*mmlf$$>@=S4}WEg>H{ZJu^k+Y319#ni%<xjUx+|PAeg<G;FFV|JP^-m}!zE?;Z zcYXX+S^6o+Yn8xR-K__B3_TAl$Q>U2D)5|&tBdIjWIcmlUH4`oNGJA-sf%n5><-^3 z+B<e$uGGdXmOIz>PhVzjCZ2+A&J}aACJ*xXeeJBYhOfHS?6fur?&wC#L>4nDB1X=< z!2I50y9iX#SOY{O8mIhY5-`ge4HWN<o={X3erZ1%2*d*0IFnyr`ByI7eqk5BETIrO zFU|N3F?Q($zT6ckaa5oG3P`$n&9BnUA()}y9w%NlnBJJpI&=?6?L_YI)j^+hf&TrL z4I2iOu<rAH&>gNmHavMn+gRtYZ%-$~=|t|$2|~{QG|6nG&23DUh9S&kfHnCyM1qa> zQhYWG3Vy5eO7xWd9cD-NX$s<RkevDwa3~waGlI5(@yYxBEgPiDVL^dZxgke+6Q~*U z?#+>}=28P1RQEygaJebGLtpAG?V6#bG)H5)AwfNJ{-qiy%fD_nrP$wN5#t*E4?@EJ z`maDcWuHMy&?lg$Vhn7*HFfullxgHu#{7*I(T?v!hvBusZIz4rrsH@elR+aniyxu0 z+sBESSUOE;K`hdlpkDK+!0n&|u6gxuoymW6EYb#Aj4&CT@(Bc*pwa4HclMuX<ODw@ z^NI%ylgL5oKv)snTED8*s@1Mm=91g49`p<QC#_P?M&SN9p0M47{k4<Lb<UCksA^76 zQ@JG|zUR&-x<o;~5Xxy~3U!|<{xZEN>;Z*+oqavAme7$M(wHJ#CUSOJkoO~^Q$*4s zQRNqWk$9X-tp-FN;b-ALAc<BLb*S}F{U-Frt^E7$R4oxvi52Hg15-D5IYW=-Hf#UE zayZW?V6j1u9M|1pk|JGwHX2&cFS<dsXQV$hb)uFU^|}LR5Yi{d!#o2JXzcx8*QoOZ z_3$vsqZ{_Gq420!eO{gNK+k4ZE14vnKB}Yx_oZ{Au663v^qI%fsw|s=)N)pIdoyXn zT~yIGPKNJ0q{vewNWXgL>HL295$Z29DZsb@;UVtA^SE}pA;!UrVGRMO(Nx2EbeRKm z$1vb@wA=0Gt>%yQP^?ss_QTH?dlxfjeX+w9oc%@^d?`iykU8B%Zv8wV&hh@`il3-s zAf2UyV{Yi8TAq1Qs<?CF_vx0X-F>bQq(7^{aUMX;Q*mF<1OU9Io~xCV^E{kJrWwS6 z0;lv34)_v((tF$bvxn=6ABvAB7Z3Tj1Q;|je0<rQd@2V=54?YWZSxg*A2Kutz%G8{ z^8V&9fIE%40ZB-;ydw{Dm2F(oKJ$9os7Nx12v)Y_is_3H95LXwGs36`ZB<si!4*PD zzmRDqx39DBvyX`~YtQN3^=g@;KiUbb@1$=1iRx(j`qVb-{uE`7)9nQ#T>?9-ER1v} zF3vPwhrcQ~+|S;dIMi=K@db(^I9{PRCzSj^>32*mNn+-<H71=3owUx}>#C`pe=vC3 za>G9&V9?`bMB@4Wu350FrJsKD!?@Vd65}TfX^@047Z>=UK}vl?Tr(ZG<-ZPyCA~I4 zRLUxStlS5QfW!k1AQA9$@;&`v=#Yx#ATC>pB;r-E(%enva>j#)C6c|W=gD%zZe{N) zP50v<H`Q?`neu1trYYj=zL%YggWfim4~Oe<2b|bFs3SXqcKW0@Q-i*+<{)+A5~NO8 zI@fDTW&WPe+_3q^4Fj~zpJHcwB*39+oz8*{F1}(l_&T;z27&xbR3%?0-$z8|Fl6Gk zet)%(;r3;<RPSQr#+q8dTFcG7WxL|-_z+o)dUeA&a}(AO(zu4B13IE3P^m{W#rx25 z{79evb6Z*2sgQiS%@Hc4b?mzC5naGVR>TXQS)3-;eO_7FuTUVQ1=ouHuZ8?r+K5ya zD06E<B^4#%9fBs=fdUhsSjz3}^*>>Rp!G9`0eE*8Sf`0EE<M4fai0y&nMMnFbfsv> zBaDG6Mv^3n$szUEZ@E%?4fRt(wOd^y9tvTT4;rROI>XW6yUx9IuyVqBD$<rZUrhdr zAc%f7-Xzii2J@C=Xe)=~ZcAN{?($u`PSkI?HPYFXbhUNiPWIL@(4lI>%S$~$Q7$mv zlC#Vp8ZDqI_VNw5#FqAe>!C7(v&irgRQ`zsm?RLuo81Yah8?KF->?fZEO<#M>CREj z*(Kp8%yz>cBq#hydvgv@eaSprTL)NhmQbV?E&(5fh_?**lVTmpeXrwVwd~N2go@J& z8J9z0RZ`K|kVkR{vOWa!jo&c)mVg96B8&rT0SVM$h}Mk@ht~)pWRf0Kc*K18#=rqA zZU`6%HnMn)Kb>%(uD6naq$~S9JNl#I`o78^S2unL8+l~&ZZJ_8?w$l#@WVkpceFjV z!0JLtMY<>gxKKf+k$PG2VWdBy#xwxRsHx8>EIulF@wcdLO=GM|u&mx@Dlmh%1Z}ns zcQ@aL3r2+H#kt-N3brQpCIe}G+QrC3EMjL*O|PuAL2Z{=s%G;I4%$K#wLAI{@IWRU zPSLvyb_mB5d6$a*ZM@mq>?4w7W5#S_c}P|5AIIq0B4-71u;G1Hd0p@%5wwFZ_pr)G zcLy~-UWye*l(!*A4M%q}i$+BuSlEl1LEKeX;|Sg=?QTz#34GVspNPwN5S`6S)J~%6 z<4+omzL?={4z17H#dDYJo(m@0b>jg)E|>#Z+=gRUxAlLfSg@8@rm-@sBEV%7Z9lG0 zN}ZJ=NX~!S+tiXH2VizVmoLWjRA0Ryh44iEMIy-2yic{gsERvd`l*B?W^D-i;~gUP z=sZGpfMWafznS^ltv4qXt}`Z;Zk@dp{eVBNG$a0|?M+HoZ2rLZz`tpGKwRHe&n~+^ zWXHO(N10aTPtUF_#9t0m#PXCODSpVc%Q&i$CIJ2QJD;NtwTyIF)G+jg@0zP4FnM1m zP2mkwwDt}Z=QZXZ?(bd+C%}W8am&v+MG^ZLK^%&xG!(NbK-oW?XAJBs9o=L%q!nyh z6W=4=_O0)OFVM9bWM#b4c7@ce;f`JzSBvF-9#7?WHjk^C&~DeLn%H<#TJExFL=9CL zDUcP=(<Kchfg52#U}t-?ltSi6!pRAmN6)1To-fG#!}t@QhO^S)MkHIpkiX%HYRF_G zTyeg{YCb`a7>M0P)qQIF^mH9fKgykJN;x}QVp3%awAr?!Gm9WXro1m-yE`dSDi8S> zU^K+39afxVFTOCF3Dx-MpMGLZi&$oMACY7B%rrOqrwL8Lm6Yo%>Tu<exdG&<prmxb zLAdxhp#&B490?Os0xn5s5$NA}^N|6BE7N#b#B&m-%8&nocLypFD@>0P4yx9@_4&fu z2nz!NA5J|W2hkCFprXtQAgN6Ob51FRhN2Rk>~k1^?4gVoA?Ffnicy8+{2?w8CDp}v zrZm~Dh=XM+tHa{i*WQ{2aZln|{abZ1U9uOcRioyp*Q<i79<{eR<)V9Mpz*gfLoQo` zOQek4dxKMpQWA8WPZFy9AHE=>bwWc@f<FV*y?csy6srQW!B!AE&}sy<u0cFuxUr*& zwP8lb^$19q%)39mv36`Jy1(%3UKz8|w$Xl1VO*6uf4zOX@$Po!OgSv|a9#W4p0i2M z_{i1m*`0L*z`!q;leuXOs*kSnmnIiwlF>Z}v<$f=06Yzwr(t{E@HRhF$19ree8PEG zllp}8Nz{8`iqR~)qSQ|zEMqNW?Y$*63LTsfm~eT=u7EZGenvC$p_vU;)mH>y`V5ci zD;gb4r?+prJ||90xS7>5V>B=hil!2PqN#x<0Ou~<n7_)&m|Wjir45JM{w^ou29=ZP z1^vu|)=hE21t5RVG2nZ9dld%&_V{b*(XdF1B=PbM05g?MFb0>ZhJktaL}++0M*yYo z_)-Ssa+Se%kegxkQN9nxqIHy>e>6&5;1)=v93@2E2^9>Or0A5pUaYWOL_YfAsYutL z(Omrdph~aAAScTp6uN~uh&(up9lVt1XQ)MP`8TGD2Uy{>D8TE-MsACUpMOb|6JOY? zmT*&lqA#Hi8wBsqq?+uaLgGxKAIEoq56`R0t%LC53Q)yZY(d7Ju}5CUu`AF4wPw`6 zQIjsBd~_f*@zfRN8{ZeTL?g+<k$`<z87LvXSdnN;reRk0Vcv}WjD6<ve(FdKyf^5x zKHQ(F&_`4WX?PSc3TqHazhgv~^G$=Ui-wv(Em*$!A?9H13OvX5pS#n>rJrjz&4X!e z)>`wkr_89?MnM`S?Eni=)EW>6ij;TWo4ILjWNF0zcHl;D{xes7R-b~H?SL2ND|>~k zT>@9_i&ats#yE<_aClQsrFo+~)poXG>_&pEuC4(af`tCADBZL?vG#J5Gj2mBPwvZN z{1MMYB?+NH9`sN@+wY50tFzf2N#vjG29FZO4LF<Mo=U9_iu^MjCTu|>z-CP5C6;k% z@{q>kTm_GVS0_Au_|>MDzbcV>T)WXt3DqkHDJ&R4n~4w<VnjaWg7S884n>(8l}<hn zLm5dlMd2@KQH`ZdQPf^U(bFZVn%t3`wB?Z<0@IH@OA(eC%i*01@&&#+Z34Zi#Wkz~ z*;VkirW%^9b--56s!$*}zUhoTzA^gr5TIAcCV`?BB<NxA#>`b`W4zNY_$&36Vk)UB zz_ArbUcgZH05A&-p53^39ciwWp9=$Ddxe**-&aS^_ra@MQH~!!cHpbRjAw8W7<X}L zjs(weWb^syll7P^`9hPY3q>fV*h#8SXYJm8P#;TJo;hasCInXVGr;}tBdUhLwdHTL zficDAy;ZolzjloybY12fs^J>43HQY+xx{xd=TA^{7TOC!u{$|Tv(F}(q*B`u>t`H2 znh>-EaOB3x{z?<w!egLU|LCt74Fny!9hJznGvC>?PO*o!!P&#FEff~_h<b>sE{{L7 zN1gd#IY=bNa$^JCmmInsp<`~rvP__u2HP=4j<etTvrYK<6zA=Gtc?6!)b#>pyDYZC zC~|8j=YAxuef@n%NYK|~KhOmg1p(MMx;Yaa15jYe*0Bw0{Li8Boy(BY;CmkaQ}Tv& zC>bm%b)95z&=(%-mF7z{5nQ2v9~wYOx|J*2#*}#mjqyVF)0YZ=i|k3!+a%Y?(H0;4 zH44=^MDoSIFAeBGreZDglxiNlBfO&sLwWFMvx5HW9_OCYI`x2+3S1;PBeGCYI_B|K zp`LT)m7;wuzNBgPG4?Ue2T0_@P{V$XQ44H~Fm-HqzR&Hr$eBB}Y=p$XA20VM_(u-M zr^CaziAh7dT!p<HUMcLG<;j2i2bSo1&9IfrRz|AaZ;`uMJ5)hOuz0BCSZqK%3PMlp zu$K$tJB%&o_a>);-OAn0)AaT1wWHDC`P-wj8=`CCRN6`Y&lxS9OM9lygr90s{AqaB z-6@3seRte!0YlI%_(bdl&X`({+*#~DSTu_P9+pu#K43bKpMROl#G&(Y#_zK}{$Mrx zywcv~1aETvmZ#V~xh-q+=fs&-m3M!hxxJLQy_3GmzLXn{2@4=QUtW%Bnm1tEW}QcZ zPD*gH1(3c<fE(-z7C^D4Q1rMl=|b{ZF%b;zdc^MmdyiQ<UN;e?M)G&?O+-F%b}dqA z7KL8tQ*3^dTN>iT3GkA`2jTeB(hd4dUHneYetaFa@yM0a=fC`0M>d`YO@&9F8!`LW z{Y64R2*R#hE;x5&haa=36X-W7*3ZTrh+538n)a;P)T}zsqAiE}F{1UAO<H=@W>EX~ z4Y?B78v~E>n$gtG-ePdb-p%#lu){-iOk#ZLF<&K(I4he^)8p#9@AKD=BM2M_T!NBG z8PToQG?ZSt(n^udj5RoVdn{Tb44`+E&n5G4fS3(A4B{Qk;ZEO<RZ4KR-Vv=buC7{7 zZ;qw4tBvb>EA|d{-PClf1*mT2)}q+G)@2-6UieaCwz#_M&ni1k@k+`<)w~)5#sPq_ z>DLi;*p~yx&{_&%Y<@X(jpy#{JwK8AE8RrETxwkQLrk3j`-pC5RZ|iB`Q{VaGnm4J z(3DDI-<9k|z~c3a=!&i$DCy+#g)3!y4FC8aVbr*jwd*U-IBN73#5RUQIB;v}q{#n8 zP5g5^IzT`}j4KyMlo~2kpxvKB=s_UAz|0LhRlS@QBt3#(96V_6y|#OH*Ld?=xvYyK z4-rxHVPYMDjB~FX3zgCo)i3f}xv4WhkexqY+lxUIvp<**g~d^*4`Ju4HEP>U(jHST z-@Mi>{{D3}xG+W0S}kH`2)v2ZWf!VPbThEc<)swhY4dw!9n)nE<5FVXP*-dOt8@9J z{7uw*psob_<7Ve>4=!?(2LFA@zVzN9L14PJ*n(;RDpwdi2J`7k&i<$eXX~G080dOX zFHCab5XlxMwU-#AVr&n#q6@e(gkX#I0>O<XszxGDdPbDC8vGtQuvqUmQsn(Fu`VAT z+b)5D{v~D;!4_R61mQ$QjqJw%0Wd<g)=g||KSX^0t>Q=K*fDwaU#_dN9bvI2=<P40 zQyebR@3lfW>`<!io{}^8D!mX1OOD?O6G%sS{|LCuQpnK7Y{2iS`cMff)GMiAtv&v! zh689rN`kRSfD;4g8)>Ov-QX8|V@&Gt<SQudb|Ly!y2dG#ryp-;xvsuChdyDh6V_2o zWLd_@tf-<EXT*TLfQ{60IB>5Nvu*6Z+Fa5A8qcjfaeJCiWtsc|0?Z>M>dkPHp^~D0 zYNQE4pf+uE@C>w(@;?#nb9bTyms*`qn~4UmphX-cgrGSEp<zU+Ah2jiXL20zUcmHR zvp(+vsNXvd?k3*zw~WL}fFswd?#qyK|8R>)3xyNg%Qq!u8Pjq-LSp*o@jkakSEhH^ zS;v^mxEv4tvX7MXpAUZ2+;BBUH6G=GT*DSSb!lShN-=my2qPwY*q@OHgjt329Yvsf z3i#JS#lFRuEf2Y{_@nq7hXxK@iA!!lgM{2Ern#F)Xe=v-z?~5#a`DBqYbI+c%fGZ{ zy<uiA&s&9Qc+uEP$icc<zFRBd__gmq<fA*N_oWfuPmLYDvm&!bHh-O+aC7OqzlYA6 z20HmSxJ69}MAmR~hu8#l`&PbCkK0BdMn^c!Gv!*wQj-5{#^<`>VGA|r)0;1tks_a+ ztJ)TA__#Z;h{rO-7X-%=%wfJTJ^72_PAmHsc8Q%5uckVkhi(BaL>wZhf?4zrGJqi? z?01mfnBej_xk}$B5#wuEsS^ATv@3&?$d=ESwy+<s2E$L5whTVoSE7c2eCt-=e>JXY zn4&o-NR=aX5U6lSz@f1J+6SXVEI$;7mBBi|)W~#6!7;D`m7fgvx2z$-t;ZX9ipk-i z@7OpJz#?*iMc-QDT3U;ELB<y2j&1$>)lfA2>gx28dlMhZw$6YaO9r@S%~HE-%Cp%| ziPFdvD*~ehLm-i)LcQ;#dpSTtFwK(K;Z*Xcw>EJfpwH?ME+Ej$t(pQw{)G$&X*=Ol zv?GQ=S`0!8T36<uELAjYi%!Jge|E2p(k(@cuK7L?1ZyrJ3vrCqxq0O0eg#&3B}7>j zGP;7D|18;}TatKYLCPVLC2_Whgd~qX{_S&2f;tD@CNZLnjXE*e8bou(qQU1edUu2z z(q?je>}Bl9zONcwXyf(sVN3UUx-geDSVo|)YC{Z7UGb~57S2Dnj97xU9gB?QIa70} z>jo321rt$GuZ6>9DG?9}iixK1pEpNzF)L@4?nzGbrlN)vNt5=dTARY3YF%vQQ#$(9 z!U%aj9y!FxVT=3rmMq#&tCs)s-pEN-gl>j6W`CmCB<`lGDk8bp($gJ4u+}z!fYx0r znS{q^OI1gC#Lkk0_Du~;hceGfpX`@%jK*VAsvs0NCXirB(p2Q0iynzBT#64r80tf% zROmq0f{=~eMauwI!f@vAlY0E+cw-u_<RDR-9qR4x2sliV8G1c8GFp^2hQwUS#<bOe zuZw|~*8;p=etbLZ54(KbK_0<lhFTb5A`{pj5WG;!vis(b*&)E&v6S0Wl3;>HIO{~3 zD#2Qnseou>b&t!1v6?pe!w2l-boxOQuP<GWP|RdsgO*frhcw9x8}XoX8#Z_U29CV= z7KLmG8&V9LN4P$hsQKI*KgZWtn}JnTuWeGCHdyoH9wCRF(ncqO!F_~!=^S%VE4f08 zy!cpv89)au#n`;RbQl+Fok|wO1<ic~ODh2^xIB=Ji_e-QprR(n;<zj!rQyZuJX}RI zmUjLWYRxP(f9K=c#x2F~_NPpsqdgY>Puc^yW$U005W14J-`zgtPebg1c~{oYEnmg* z#5P7d!%H|FG@|nu+>uw{UpYTGRi*7QCU4InF*$w+8ul|&a;Fo8`D#Tr+*r#72W)KV z`ILm*Oo1MYnQ3vPfm97g(8JQ}F`SPdcRW67_<r=V>#A(IdW`B5BUH!*lM9Bte?8$v z`vy;x#vxvt%RwbdM%k(i#@d*uf!BrC_0!G_5h{#H-2x?iB@}+{*zPir8562>{fnun z8f$#b>Zb=Cclb0RGxd7zX^&}%2jHJ)r+Z@))@7vkYT^1nOB_bfOPJ0{{!g4rDnW{9 zMAhp}tZ!2Csi;tHX9=)oRtlUb>~kPZ;4rBCBdWp;;z;$Z8wQzVVL|j*xH5G@eRt#u zwwau(+}*Zb^#PBRi3juYAARF5c?0-=^bPjeq3C`@ZFjUUFJ0bF;a91H;f8q@TK=21 zmU%XLl!|g_S&5!n`>2jkT`+UWe)6^C%HkK@QaDnPu8lSSTiZ~~toM|fY<O&O)o#+L zd5(JW^p?M(DoVJ=J`zdGpjHy+kt04$0PB$i@{th+p^_1TO2d{GgdAe-TvgTFW#0^y zlEIRLy15IpoI>*!Y{-n5(z&uh*W!WFO?Dp5r1@XE28J#MUq;K=rqpI&`HNYh?D^r_ zz-Q)O$Ca)%d^U&1ma%iM%Kd|kWjN2t9{itAiHkt+K(H9nDq$p9jN%6Vm<03+1z@U1 za6fy6#qjgB@>8MFt5UmjU3Sfuz%^s_1FeUNR*ttsv7Pbp>gG*C+-=mu`4}~XE#k#8 z(5Zi#CiURZWB{X*LX=5F+u#(nrN~YD<9fU2>qqz|-0y<IxP?%Nc(4>#d2$84UnIK? z+gCe^MgCxOz${y^>mm1tmPOt*ppE>eJ~#Wvh81GY(5*9`=>sLrUH2z`VblQ@^Ii9V z8F*s?(^H)8xmpkbOFp<BaKjaN#W(|ia;j-%zu4gzj^N){$Tv-_E@GWwZw6k2<J51C zf&}T7-r+$W5o5KBhGEW1ijCu}$=H6<btZ&su280wRq!ClH7)53{nG$o(~-M&9xd<D zo5qYTI8<pEMr|{P!U=^&zG5&-e9@6~^_J(HZaV+Tm;=&P$r|mRtGCsp#05MV{@n)a zbSeFKYVqZq+NFwRH7XTrGJEHo5$FTP#fOGU3C0{4$k|ch8j>nAaC73IMwCt>0p@M5 z8&`C8zj@Oy_1Ym=TH64vCB{W{V#Tp*1gfwtF0D*}J)d63DR2$u#p>^OS!OYX5Wo1j z@1L|<Cd|=|_g1;N>WJ_L8m<wSiE86s`X$f8;}>iyi`!U@SdV;;2)}NMwzw&2KiDLz zw#*zHtuxtuTllQE8<GgDq|yetooHs90<Nyl0Fkt*rk5qq`!-Ov_uNqWukHjFP<Mg^ zo#7#<_8Iw~?gY|E#oq%22YmMjms0~o_SFu<p}OdUO8<v{A;}r7b*=OWrA|206`IxQ zaos~w%2H((Tnr2zg5y?!dDNh)#8Orqpcq!|v3#;%Yt@EVdgeo;miWf|(3lVG^y-os z+VczP|9`-jKl6ra&3N975n*A-)l!6p+QNZ=HB^Gtq5J=azOc(Ohn`Z#Nlh(SQv^nA z%i^5r&&D4x-;3jBJ!YFdt=RrUz4(KL25I7&MjrhD+U#UW52bJ0V2G<o=Sp^fPt8Y5 zIqYSrvrVy20aNXbz<!8JtlDKwBZzq`bMbaF)~l$}#0duG>7=B3VyfFBK~Dn;Wh==5 zEvC$#RZToWL4i4DU%dTG0;>XZdOmBU#);fAewURGFa=|RH!Seip8x=y1Q^A@g+0Xy zQZx2}8T;>PhdUt!j_Ouh>P2!+F6}MZQE#(9p7uf!cbyErH12*mZQjL19Ln{mp_Z?k zfc?hF*2><xpO`ts(+K0bAhhQ~okaqIUN8e$tp#&*cP5BKic&S)wWkeO7IL<#LOGB7 zjbt!%FrJ&q{3xpx&R(_3xpk4O=OtV}`_ttBD?8MhKiNNsteY3d+BDhO0^A&uYIi9& z0+z`Kq;t%aS9Sk~eW~(AAf;1+GQ=>PIdEIH#{7TTmx!JJ#=b};keULZDJ02`1678! zQaX8$fkqXXsK9@dFCh65RAgcCSKl(I$buc^Ma&jdx9mnu)1tcKPA7m(@UQdkU)&3~ zUko~KIgm0W!9T*2vk+Yc9F>Gkx&t3K;ghTZ#`a?82dYcY2e4n)Fwc+nm(d--yhnuc z)&I-70RIKMh)HrRGXaq%(8RzT*!tm0hB*euDraS82aig999QXL8EGi(k0)ADT+&rO zv3%zNL`$N6FA_e~?npAemkAv$MI{OP!C;!=$Cs*u#Z7A#>v6}^;RA08ntK~AusQ_I zy~%^--XJ&s@$rAY9Y6Z;5R~%+DGUVwf0fdMe0&~B!KedSSk0-1l3;>fextmHs=K@- zkO&oY1rnjSHd~Vm>#0joJCl#iC7!3HJz&!n$MKA0xuVdaB|-skr?Ib?9#ZqgJ}AqW zo0N+WNo+Cy)yUrf8TsZuf+;{+V@-Oq2Hs-3|LElBnyn{D=7>EoPAJ9;-ZD1Pg0T?Y zz=6Y}%cx)}79sIthpjm;r}zkuXXjf$tIfKsQ$6CPpQ)lsK_`3>pEJsZ2?3@beqKyz zFM3YF&tVzSw_N6@C*vqtG`Dx~)L7MN0~TH#T;xu|!lg14rxg<mhN&8Ylf+rHvIZK} z9Oh7LrPA89+KlsmJ*;w<j1a5fVWWaAHt2Ibo`~C(M&^Y7<&K#LPKTa(H2^>~Gi{r0 zJgwS&s}RIzf*nEdlcM=p?e423QWCRz$!~wTIsXKA!_|p^&_H`ohnTQhJ8(8X4&*B0 z6_JHm%HNf(U&BVSYqOc>H~PvAp$g-=9Hnd;yMqnaW|C`;3YJi732LF}2t1W%9vgA3 zKK~B-NbZeg2bepX$_^hk#)HpK&&)M#)9zW}f15bX>Cg=y)|ltQj>oJuH$+ZyC$^t- z&AT3F?E&WXf@FVg&3Z0-Dx9Qa16him&*qy^#H?wA!_&f*yF(*-&GuY9qY-oRP&aBl z{FWbvwqC_@{WH4-Y^+LbN(5+Q0*#v)yL_CsMTRxl+krgS2VsTdUKZvLnNf3MX|1s= z-?<aOPhAM`&!YDP;Bk)p5iM<msYjP2m(zb{>_zOKs}9x8bO(9Kf6*rD0{RhAn8_Pu zQCvY(Awx>WSJ=7`sxRYg$I3!>=q%g^x??SowXGc2bUQm<_Sk8fxjXwMqbwSx;$pVs z#?1eso%o9C!zaVPTsW09Pp**5#y@tqo%2cncsh-o=MFcIkrC-TSZZN|1yJkkpYOT) zns&-KwGI8=)+?~TCm#B}0mQF53Gq?n>ZBuV(8+J@xc>O5P4e{~tT<+L@f%n-fexKa z0EW5aopiw8J1fKVV=kbb6|C66k$<t(RBbH0-jwMJ&ir)QSwGS$8Fs&+1&llYy+_?S z`6e~mySe(b*4;lF=ps`_ft(AzO_MuSUFJJ1Uq}vYKtsE2fBovJliQiIHl4}zTDmU1 z7#WU=3H*G&fB(@B?@&)o-@Ss|w7oBg!6VHz0*=s%b=-ZSH_c=?Db`nNSIh(OeEhYF za&w4`upNc<Vb$dgl)BZqDt#|)+KpJ#TP|j8=dXD8J%0xWEjus+?aW9W8FAVpbAluA zuY-X3TQnEWfFI898!R_%Dgy|}e#d#cACW1^{Fy3m+&fnZV|gDm&}SyE800N3-ah~I zfLU@ZN;zI{FvCxuckf|%n0D$XoL<(s%DhPCUC-}EXSAlxn0n!SJAb(|(4kDa*YjM* z7^{y5##IWYP-1>xFMV6&pCS2Pdvo^_8x|Aj2*&AKl*<fZ`Qu>BLm|Hak4%%(Jo~sE zJKtwBTaEXl|0Ot1H-KULKSek^e}99$dT4lo2Mw+eYC}ez)QWPA0|fM}>}~ANIZn3U z@;FY6S{D6g*sa`%?<y5iNaP+l<Ypy`PmAy7-$T0GB-4Ptqh^?NB+sk2o7AGHtbIak zR@|`|oSG{6fTSEGUpn!J;sdAX3FBvuxZ-9Wh98G^+j1eJcI5lP+Kn2FO(<~X>M%P` zWt(~l^5sj3xt&u+XGPcMaIe+!^gY|<FAV^<IK_iIeQEF!Wt?9U7OVyS{8uenc^PL} zT-g{8aqGYjkiXO8C%K1|4oqJf@I@2Em%oX7LFx+F@9}giwlHk<{Zg!$U$ffEZ#;B* zdqBy?E0%g|TWASJw^^z@Y;4>PJq)wj%+BKQu8ehYYX7ZR>eQuzQkIz?je^R}ED!dz z@Zo7#T0~cb&*>HmPO5^2Jre8@oreY85x(_~Vv7tYNazymQjpnfnecu;sRJ9dbD7!v zBWA?GdQt}}A!*2VOBmee{fPdt|Jd{TPZ55%`mP?S=stCa%1`zm46va=;1Q-t(Vo_* zkqv#I7XNMg5>~Jkge7l+5RV{7Eck1JgceZu|LlW?=QQV^o`b})9-8&+Tu+)B96zKE z6JQ_{CF)lyBwbjxADIpMi!?QO*Vm;GGT?iT`H7>MB|Yc?iZC=a5Tql<<vr3r-e_tb zWB-ifvUJeeMram2gNzQIUrZ2C7A%oXynUhM!so+QW$%Zo8d$vECa+urbDYcR1LQ;# zgU{!~hks?Jh$%E;!5&-bT!o!5De!;*q?CrO3y`KJ>{;8=pq<U$XGGb(jE=X9w>v%F z;Q>h?Z*w&njY2F_5zQ!GZr!++p)sXUWv2Pn<LMXI_Eu-wS}Xa(xHF<`9_14$NMy|= zK0$30Z?+#yz-nJyE+&v{nzf}_fRPB5&AEvE9w??>saY}B2?JV@z7@W}b_VX*JJqX} zX#5^)z)!`ViqW}9?%jmCm&mQu^n|I@1dCgYqyQ+(a~WxgkD<KvNpd&J#rbeNWPZyh zs0~O?#46$zV;laua@2#abT(!{&ZQdg1#paxLKBoJFAslo1X>yYGm7%C3CGY{_j8MT zn2-$K_^`#{$QQUq)hZfY3S|ARI!&V->myvrE+9Sis>%~@tkd}I?QY8N($XR4I-%Bc zo97l=orQ&7m>+))s%-#kppM`>hn=bO^0nf1r>adA?i(H%2xHOuv6=E;nQ)sa=AqN$ zCYdP;v2`f{)PIn0<+>r@;}FS?$Foa#-CZ%U>z|ii4DwE)QMic0)Uofs(J5@uRp6LR zlAQ7APh-ffs(;}hCj~}3%G2T<;~jVF<d{S=_47J?X2d*|+P!$`nvhp2<%58ZwAa$# zo3+E4f~M3WZx^aSoiP5PYv(4!&hvRjDn-!1>buQ%%9`oLL$?f|j$;OXyni|}G*iM0 zJ}azb)=?4F_gIbUz2BhNMwnA6a~1PjoEoyeqM$|ck)7EZCTDZhdg}=>QZ=Lf2rAKo z7<KgSY5Nj%6tn{_?3Juf7BP{vqm5%X(S|^A%Q5)fEANx>*zpB#g0<Q0K;VTzK6z7$ zO?T3?-{37UX<7mJOIv}|4tu;y_{WxBqrj>`(v6OQc1BM|Pd9p}yU#$o{i*z~)ew>0 zmjif$wcDkZwi1s|{d46Zvl1>T>$$O0`suk%c7mQ&VB6h3946cR*X_qFH=7PRKi^nR z!`62%h9^p+^d<BZdgGN6k3joG1fYE)IFd9JqrZoLf%>x2&n{Z>VJ3|RP!%4+0am=x zhcy<71c6wi>1VoWtp6$odtIEPPPn7*DYu7=R>3)vu!XE+A;XzW5dICVyMs!CnBJqT zh&c*fb%lpHs=M=>w<omVbiD1((N17HTXkCn$UgTUw}XM{jjY_4A+(nMA5MiF5pmY_ z?)ksvwI4P3rhMSq=4V`aUhX*0(&OB4rj-p+Q%>*7YHNd6Hg{<$`D09yd_x5T4??t# zuA5Nhy|4t02UCK^gM(NwX|<5xpC~Z3NP-gJA;6N^5{eL%c<E&({#1jp7(eU&sRq+p z!`_JpN;T=!R4V_p9!_QdvX-{FwZF8*U-=CXH{V{f;Q~G@9xEyR*%^Xq0BXR9S0t-n zu*u?_?yqt%N)ujG99Xnz+v49g-?PE#(nQ&mKYSE$kt3IQJ}2AyIomb!Cuyy&9J<&w zP_kjy<ne^!5qtkbP_7-kIOK6s%MD!oIR}XQsZk#1%V|_QYLz<uAxImTqU!IpoMs8E zbSwdlSmeN7D)L8b8otA8hUp4c1wcT>p&Jg*0i@c~j6peTmilF4O1v|?vrMhZw5S-E z-1YxPbQ*m$hqX|miCqke3BK()!-ICoC`9S{4(vb2I~q0YQn@i(etAcaWJE-m%5x+@ zhg6Ag>7-_XBDbRH`h!9ararZlg2d=9qpV<TDt{iEI4)bPuW6AY*Sc4&9-BV{y+C%* zL!z!2>bRyiqY#t@`TWrVG$Cl^LBTQ>0kgay+8^A6pdynCFqS_swb&U1sJ$rTfeQy- z7$2|w8F~;GfnTw|e)`Y6s7!99;#?S)IC%~UX>j(L)>sFoYlp51AMT(>NzpY3#A)lt z1eVn~j(|rOwMt7Fdke%QltF*4zgcqJs7RrF_+z7HhCOadIUH}ktnNP+a&s~8%v@+x z(E#Jq2iuJw7%GmXU<jp^1p6^^k>|5;yO8>3#*MEOUgZH_wZ!}5T-kJkd2=6;ln9(Z z$odPPSU_-wz=A;-B_*&SBF17M6qPF_)qZ2?!1mlaRqFxgpTBZJy0+MpZ>P|cPm!7B zrivYS9qk>BSf%3#E0&+^e+V;rm7i;FCjlZe@f8Gd_E|GCL)yFVtjIa^vD$e#H+*~} z3XiKgHTG8ABwwB&kzXKhZk^BqTjf@<OHusGs%t!ya^P|d4Zd_!;6H0g@Z^>-EW$!( z|40EfWi&1-%hPo1d9&Fn7v6J2-%@!cT+zcBmLNq?{u|LYlEQxt(Ji0=GtEU3D1}+- zx<~ARZeH>a2}yYJUDLtfpuM>N=((96?!S?cryh0uO`kjjjhlJ!z<&mnogFylc<>x) zUAJkcu&WyAZATv&YGGr+PD)#l`hCHO<o?3fvJ(x8ZA0#%;uEOgHYD%%EJaZR6FTyx zs-%b#4-_477j7t}5p|`XC<Kw=L^J^bWNKecj17N#1a>ITfh@82P@F@}n@ug-3z)`( zx&<DAlm6%Ou(_Xh$=8H)%;ofb5Iae>4af4-F!E{SS)*Klu*iKboC7WKzBu(i?i;g^ zJd<jCq*;Ot+QQW_tM&n^6C9A@2tvFPw^&LjHXsme681n1#4<W}<Ad!d%x~V<FB$vu z&~CtAGi*2a(DSh9S=4YDg$*0|$=3i_{NQjVnD)~mxBwDCaA=4(bbjZ9BL9$(Qs#e1 z$fSuO+(%icVe}oU9hem`sh&=5X`V~D$Qzuk$>j}(ys@_k;LOI-MyR6);>!pT@i#Su zqZU4rkiGc0taAJRFR=?w^z|A~4zEKi$Wq5O3&`M6wuUk}1T!Fn(YGtgIL{K&IsmRA z9oual?|h0sed3y5_{}APm_{u8CgM#Bzj0ciKK5!?$49G&O5@f72U9uGpw^(qFUYG7 z@hNrg@2sj*%9kFl3+R6U9HHC8e77H#td@SIH<a6?Mn1_HG7toY<dOF*$`HvE)jGnh zQ5_rAAvxwRxstv>jyaT)2nw?!H8#{lO_$W@bR^q~)aQGe)SA@a5ZO)YGqY5?y1Zyv z7#+6l<CfR8#z?f(*UZ0PS~=P_E)Z1KGzaTA9t;cQ1?*W2ASi#cM754#YgEThE5|5a z{>G=*Q$v6V=qpS`NhSBg{mEgyR&+_PM_G|S_Kx`40bb~Kimkk+wWc)|Y<Kn<u=AAd zaq|eQ9>Do*xj#PHFOlZza#DRi`4za?gW$;tjtvBuzi&|)ecPg3!Yp&nj&-P7^E$R^ z4QQ;)@h>1{P9c9%+X9KCe~N@U+9y|E;f4ZLRvF{E^h@*FFM!5qw|!l{mE*^S+7WS$ zG^^49x6_Nu&fR2$!+;I55M4nG$1*fPaB^9evMa|rZmo&^?#X40iqGc^7aXuC6<*Ll z<ShhOI8IM+rFeByzXU%M%-q(jey@40dHs??+R0cR^?HBT?Ll#Rh`qD?$!X&#-y6@a z7LyO9kS3@hee>F1htb1#5M&y)K7Jmx=J$onK@DFAYL_E|I0ZT82rEaV?c_|4ketmN zC@CZsHtndOHv5yQJ9f<e_KLSWn?XgxoQa`YNYGTQM$*km>ZuDz(<b8GSxqD$6ut$k z)s4V0SdD*y#0p8VL{<<ZU!lV{@T**yP*w=tP-588;adultfY&72U4AuSjv|6{PeEb zoaejeqYpst9ZQ)(WZKAaZ7dbMEiSMLrNeEBgd+vyQQ#doyykbn@f{HfG2AV+vMAJN z`LajO?9r83Yxl~PncF|=+V`v$0&xn(Mi-Ejq*i~_cBW3e0Tzf524u_-#1LVLvl0f0 zO<<`k`7DvX(n!}xkB@Z3nScn!D$<5Q&Zo~vbdDgE5FjC=5S<$UqrZyi7iCR!P4uTj zJ_khov)e33qmH?ft$nw#lqGsNoYb#s)1#wCtrjMph8bt+Yp!4g7PW85I7C-lAr-+y z&$53D=*gibx+Z#jq7xycBrK*9>V|&sCq_D?0!b#+!-}T6B4J{rLttPeGeUYzBV8l? z_m)7gpqrU7+emLdE}fR`73}_^KAxVFJBq1f{e}4uDrXJ_%s_ob5`_>5V;SjcN0Wg_ z$62PdoisGkHPYiFJ+NRb!h!Z{6pRUqqU3*|L%*n$B`z3)hO&>+Yf2(Uy?SGH+;1Ln zaM1Ib8sZw_(b|z5o6SQeFYl@swNdxFRoy?nsf{nE_ouY>q1ursW5R%d`UN2hZPCld zkYHJsjqzp2zDC0XIj1M(v&KoG(|v<pV&8(H{q6TwLvn~+BKVz9zrq##X?6T-+M9p; zIlv!N&VT=9rST0K8z``Q9ksFjXuG}MaPytd-ir;qIhQB1k$>M^=ZD=<2ZQnY!vFV= zSA1Jv@W;_%;pFH?y^;TMUAjE^kw0qufJpo}KCJ#|oa7N@8^eabNxkyvO<0idH>uy_ zT<h7}qF(LyM?5^qtDgw`xHzxeLJWWCYp(eEH*ej~!-GTrO|QByFTQ8%0lfAqFTCfK zv*MNW;WhW@_22aOJ8(h0<*0BJY51)d|MA-YhOMt*e>8R{{!;wWcc<;46SUUOnw3iU zXzp^VV5&x#JYVJhrQESv>OXw4{ZJd158q$Qe)AgsL1NS~CIfS1tMk~@=nQ}Vwef=g zKKttbe23O}I2%m@hg>2`H+K2opUNJoCozV>f2AIJ*k4fu$8h&2bL}6aVP`O%{P1~g zPJ=(%Z18mN)tPAbH|@04@m!s*ewaOVcI`~t{oo<T6Z6OD-k!i8leW1%&(|N#QLp*^ z?L%L;G1B%D*cfSjvqE3DF%o};XxB*VdmH+?jgesJIR4-5yq)G~)cZ9JfAq|inw-jt znhxz@@5eyd2GdUX3~dK|toC#|+K0vq7yU6CjLflm)IS0Th8XgIu@#=Dv&oOK`!G|e z4!9-mAD>t)FK@X08YrH9vOoUoe*=xmUrRO)w}0&<>J0Pk=UJF}CiZ`*Wg$*1=rRj> z76BF_z9yDUnJGL11ySdA!6~&|Ogti`#W|IhXFeair;Lo>XM(3w$14v3e+;v=^{t0o z?{(4lw-}3k>k+B5Z|6ob^y8lwsX3{RXVG42x6Lt1H2p$0=_vE<m2<0Y4ji>a@7?tm z=(*}a_@C&Rs>!d<W4nLjX~*+Fjk`4u12)C=<NNu@b80#~f9&IqsaE)`Z~dA(6f!0l z;8<b_gkS=xHK>e8zp)7ci~!07eP-r$1}%529*wfs15oF0J>S-bDJPO+Vqrv>2dN+c zNwpY=M-gW>BaR7x>6m}sy#M`o$ST9n$Zd7i^bNRrZ)lr6Ws!faKSAYr_V;hAO+B}@ zmFd4~3%FaaS7zq;=ZMD#&;NEfZkdD5<L}+_Ux((vH#N=Pw_~5k-zrmQ*L&2{@J-0| zTT6}bdodVJe^{<sUG9^iB65J{Aio6Q`}*f*{mt(;sW0{GQU5e<Xbz!Eh(g~pnpp}A zKknVtk4fioeKmhyW?<trW>1ajJIm(o`aTAomUf+E{u_41%~`xPeLIuM?B|#Hf8o!l z*?9386*{fXp;}hoN(1|)>GAuu{+jyMaBa2P)F1xR{C2o;y4=Z;KUT57Rdu$|`s^D; zzA1sL8ZpAu0_K7-MkT_GNVVoT5>!&P&LNa)T|XZt?CyWQ@(%8p;ETn=@Ex@N%`nuB z-hOB3-9PRPEw!fV!{OAw?E!Dxm;oDq{lEVXy|-ag{Plb5j{PcNB_f;y>ZjPT5_j!$ zuYV-3oYsl%@Ah65>D%t)%AaIW$ES5!5EHJ=35HaG3c13TwoNU_p-C)m+ZK8DDFc`4 zf45yVe=dL3Ux&`0e17h+RVR;GKlrcy_%2)LrGIrz9I%JA%}IOx^#qoR!=}R_bZm7V zbX?$IZVK)}!U@>I$z=L-R&fshO(c{uNBnGood551{X5H1ge6-4j{X0`q5nHu|IX3+ z-%$>#Sq&-A5uT$zUj=dy{Cj;W&w-qRjrwnxQxAWWQ6$vAsF#a>Bbif^8Ic^K{{|u3 zVVJ*i(~-7zGJf+znjAipx>`SV$_?cABL~93fl(#@={*}W_`UxQxoD^}_}K^jWht$P z_8o$M21Yt#*Z#dGhqI}r7LN0;Ft73Y!+jsXo4Z-P&|1~!4~<9AEG@lGy$n~wk^P@7 zC-8r_CogcI=lI(%*Kx3y_W1|?8OZn+9?AF?7|IxK&*|Te`EM_H=D+=P%|r0*{~Qh{ z{f_<Za5kOxT(2`}|4(2%;af;R;rCt^6e#!=ZTR*x+#n2pDhG!fen&O@*V^lk6dY#! z^|&xs$5_B@S4u`qQwmC?vfpgWkrHF#gvWn;0``fY^YhPhK=@qs|IT;Y8^CyG&3Uc> z-@hYbyWc(TdEY(Palf0C|6z{*xzF`Yd+Vx*eP6%(`}&>V!`}M)My-3<58TB{Esvbq znRBKo9CgYM3`g&L!`4jw85j?Dvj2=K2Q7=>fb>RGef^NR>rra5oTs+79I>d(3Fv=0 zIoFl0Crx!|lHm2<V|%995V{<4kt4QXIYRu>b{CmBXxS!`(4m0hu;}>a*Z&p0_6HrT z>`nFjr{MRu9ntUK;q`CZ@%8nB^pT_J0Cq*jenx0FKiJP8ZKTl2udr~~Yt?<)jthSa z3Jm{_UVn=gz7E=@pTgJQe9?AwC?-oFAieIV<7xf=^V5F?rV0eoMnbjYNJApEh67o% x(fZpN_J5fJp*GVWA8CC;%lxu_dP4Yugd1rdzaoJC@8MCv{|`6##4L3s6acK38ZiI> From 8406e04a427983ee6d6e93300fc96a5f3a6e0c45 Mon Sep 17 00:00:00 2001 From: Shahzad <shahzad.muhammad@elastic.co> Date: Thu, 1 Oct 2020 22:49:31 +0200 Subject: [PATCH 129/142] Fix long tasks query (#79099) --- .../__snapshots__/queries.test.ts.snap | 50 +++++--- .../lib/rum_client/get_long_task_metrics.ts | 121 ++++++------------ .../projections/rum_page_load_transactions.ts | 28 ---- .../plugins/apm/server/routes/rum_client.ts | 3 +- .../trial/tests/csm/long_task_metrics.ts | 6 +- 5 files changed, 77 insertions(+), 131 deletions(-) diff --git a/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap index 1c724efac37b2..dcafe09221164 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap +++ b/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap @@ -167,27 +167,42 @@ exports[`rum client dashboard queries fetches long task metrics 1`] = ` Object { "apm": Object { "events": Array [ - "span", + "transaction", ], }, "body": Object { "aggs": Object { - "transIds": Object { - "aggs": Object { - "longestLongTask": Object { - "max": Object { - "field": "span.duration.us", - }, + "longTaskCount": Object { + "percentiles": Object { + "field": "transaction.experience.longtask.count", + "hdr": Object { + "number_of_significant_value_digits": 3, }, - "sumLongTask": Object { - "sum": Object { - "field": "span.duration.us", - }, + "percents": Array [ + 50, + ], + }, + }, + "longTaskMax": Object { + "percentiles": Object { + "field": "transaction.experience.longtask.max", + "hdr": Object { + "number_of_significant_value_digits": 3, }, + "percents": Array [ + 50, + ], }, - "terms": Object { - "field": "transaction.id", - "size": 1000, + }, + "longTaskSum": Object { + "percentiles": Object { + "field": "transaction.experience.longtask.sum", + "hdr": Object { + "number_of_significant_value_digits": 3, + }, + "percents": Array [ + 50, + ], }, }, }, @@ -205,7 +220,12 @@ Object { }, Object { "term": Object { - "span.type": "longtask", + "transaction.type": "page-load", + }, + }, + Object { + "exists": Object { + "field": "transaction.marks.navigationTiming.fetchStart", }, }, Object { diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_long_task_metrics.ts b/x-pack/plugins/apm/server/lib/rum_client/get_long_task_metrics.ts index bd4bdb9ca3536..c2c86ae05d57c 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_long_task_metrics.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_long_task_metrics.ts @@ -4,51 +4,60 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - getRumLongTasksProjection, - getRumPageLoadTransactionsProjection, -} from '../../projections/rum_page_load_transactions'; +import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; import { Setup, SetupTimeRange, SetupUIFilters, } from '../helpers/setup_request'; -import { - SPAN_DURATION, - TRANSACTION_ID, -} from '../../../common/elasticsearch_fieldnames'; + +const LONG_TASK_SUM_FIELD = 'transaction.experience.longtask.sum'; +const LONG_TASK_COUNT_FIELD = 'transaction.experience.longtask.count'; +const LONG_TASK_MAX_FIELD = 'transaction.experience.longtask.max'; export async function getLongTaskMetrics({ setup, urlQuery, + percentile = 50, }: { setup: Setup & SetupTimeRange & SetupUIFilters; urlQuery?: string; + percentile?: number; }) { - const projection = getRumLongTasksProjection({ + const projection = getRumPageLoadTransactionsProjection({ setup, + urlQuery, }); const params = mergeProjection(projection, { body: { size: 0, aggs: { - transIds: { - terms: { - field: 'transaction.id', - size: 1000, + longTaskSum: { + percentiles: { + field: LONG_TASK_SUM_FIELD, + percents: [percentile], + hdr: { + number_of_significant_value_digits: 3, + }, }, - aggs: { - sumLongTask: { - sum: { - field: SPAN_DURATION, - }, + }, + longTaskCount: { + percentiles: { + field: LONG_TASK_COUNT_FIELD, + percents: [percentile], + hdr: { + number_of_significant_value_digits: 3, }, - longestLongTask: { - max: { - field: SPAN_DURATION, - }, + }, + }, + longTaskMax: { + percentiles: { + field: LONG_TASK_MAX_FIELD, + percents: [percentile], + hdr: { + number_of_significant_value_digits: 3, }, }, }, @@ -59,71 +68,15 @@ export async function getLongTaskMetrics({ const { apmEventClient } = setup; const response = await apmEventClient.search(params); - const { transIds } = response.aggregations ?? {}; - const validTransactions: string[] = await filterPageLoadTransactions({ - setup, - urlQuery, - transactionIds: (transIds?.buckets ?? []).map( - (bucket) => bucket.key as string - ), - }); - let noOfLongTasks = 0; - let sumOfLongTasks = 0; - let longestLongTask = 0; + const pkey = percentile.toFixed(1); - (transIds?.buckets ?? []).forEach((bucket) => { - if (validTransactions.includes(bucket.key as string)) { - noOfLongTasks += bucket.doc_count; - sumOfLongTasks += bucket.sumLongTask.value ?? 0; - if ((bucket.longestLongTask.value ?? 0) > longestLongTask) { - longestLongTask = bucket.longestLongTask.value!; - } - } - }); + const { longTaskSum, longTaskCount, longTaskMax } = + response.aggregations ?? {}; return { - noOfLongTasks, - sumOfLongTasks, - longestLongTask, + noOfLongTasks: longTaskCount?.values[pkey] ?? 0, + sumOfLongTasks: longTaskSum?.values[pkey] ?? 0, + longestLongTask: longTaskMax?.values[pkey] ?? 0, }; } - -async function filterPageLoadTransactions({ - setup, - urlQuery, - transactionIds, -}: { - setup: Setup & SetupTimeRange & SetupUIFilters; - urlQuery?: string; - transactionIds: string[]; -}) { - const projection = getRumPageLoadTransactionsProjection({ - setup, - urlQuery, - }); - - const params = mergeProjection(projection, { - body: { - size: transactionIds.length, - query: { - bool: { - must: [ - { - terms: { - [TRANSACTION_ID]: transactionIds, - }, - }, - ], - filter: [...projection.body.query.bool.filter], - }, - }, - _source: [TRANSACTION_ID], - }, - }); - - const { apmEventClient } = setup; - - const response = await apmEventClient.search(params); - return response.hits.hits.map((hit) => (hit._source as any).transaction.id)!; -} diff --git a/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts b/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts index a8505337e8aec..c27314923f6bd 100644 --- a/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts +++ b/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts @@ -10,7 +10,6 @@ import { SetupUIFilters, } from '../../server/lib/helpers/setup_request'; import { - SPAN_TYPE, AGENT_NAME, TRANSACTION_TYPE, SERVICE_LANGUAGE_NAME, @@ -66,33 +65,6 @@ export function getRumPageLoadTransactionsProjection({ }; } -export function getRumLongTasksProjection({ - setup, -}: { - setup: Setup & SetupTimeRange & SetupUIFilters; -}) { - const { start, end, uiFiltersES } = setup; - - const bool = { - filter: [ - { range: rangeFilter(start, end) }, - { term: { [SPAN_TYPE]: 'longtask' } }, - ...uiFiltersES, - ], - }; - - return { - apm: { - events: [ProcessorEvent.span], - }, - body: { - query: { - bool, - }, - }, - }; -} - export function getRumErrorsProjection({ setup, }: { diff --git a/x-pack/plugins/apm/server/routes/rum_client.ts b/x-pack/plugins/apm/server/routes/rum_client.ts index 2bdfaa1421eea..8dee8b759df26 100644 --- a/x-pack/plugins/apm/server/routes/rum_client.ts +++ b/x-pack/plugins/apm/server/routes/rum_client.ts @@ -177,12 +177,13 @@ export const rumLongTaskMetrics = createRoute(() => ({ const setup = await setupRequest(context, request); const { - query: { urlQuery }, + query: { urlQuery, percentile }, } = context.params; return getLongTaskMetrics({ setup, urlQuery, + percentile: percentile ? Number(percentile) : undefined, }); }, })); diff --git a/x-pack/test/apm_api_integration/trial/tests/csm/long_task_metrics.ts b/x-pack/test/apm_api_integration/trial/tests/csm/long_task_metrics.ts index 425268264612f..518c4ef8a81a7 100644 --- a/x-pack/test/apm_api_integration/trial/tests/csm/long_task_metrics.ts +++ b/x-pack/test/apm_api_integration/trial/tests/csm/long_task_metrics.ts @@ -47,9 +47,9 @@ export default function rumServicesApiTests({ getService }: FtrProviderContext) expectSnapshot(response.body).toMatchInline(` Object { - "longestLongTask": 109000, - "noOfLongTasks": 2, - "sumOfLongTasks": 168000, + "longestLongTask": 0, + "noOfLongTasks": 0, + "sumOfLongTasks": 0, } `); }); From 63ff0606df1d35978049ff9aa25f04c46be895f8 Mon Sep 17 00:00:00 2001 From: Yuliia Naumenko <jo.naumenko@gmail.com> Date: Thu, 1 Oct 2020 13:57:28 -0700 Subject: [PATCH 130/142] Extended Email action configuration with hasAuth property to identify if the connector require user credentials. Improved UX for Email connector (#78235) * Extended Email action configuration with hasAuth property to identify if the connector require user credentials. Improved UX for Email connector * Fixed failing tests and comments * Fixed type check and reverted logic of Add user and password switch button * Fixed due to the latest design requirenments * Fixed due to review comments --- .../server/builtin_action_types/email.test.ts | 7 + .../server/builtin_action_types/email.ts | 2 + .../lib/send_email.test.ts | 35 +++- .../builtin_action_types/lib/send_email.ts | 5 +- .../server/saved_objects/migrations.test.ts | 30 ++++ .../server/saved_objects/migrations.ts | 91 +++++++--- .../builtin_action_types/email/email.test.tsx | 5 + .../builtin_action_types/email/email.tsx | 20 +++ .../email/email_connector.test.tsx | 32 ++++ .../email/email_connector.tsx | 161 ++++++++++++------ .../components/builtin_action_types/types.ts | 1 + .../action_connector_form.tsx | 52 +++--- .../actions/builtin_action_types/email.ts | 3 + 13 files changed, 345 insertions(+), 99 deletions(-) diff --git a/x-pack/plugins/actions/server/builtin_action_types/email.test.ts b/x-pack/plugins/actions/server/builtin_action_types/email.test.ts index 7147483998d98..132510ea0ce84 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/email.test.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/email.test.ts @@ -55,6 +55,7 @@ describe('config validation', () => { const config: Record<string, unknown> = { service: 'gmail', from: 'bob@example.com', + hasAuth: true, }; expect(validateConfig(actionType, config)).toEqual({ ...config, @@ -66,6 +67,7 @@ describe('config validation', () => { delete config.service; config.host = 'elastic.co'; config.port = 8080; + config.hasAuth = true; expect(validateConfig(actionType, config)).toEqual({ ...config, service: null, @@ -233,6 +235,7 @@ describe('execute()', () => { port: 42, secure: true, from: 'bob@example.com', + hasAuth: true, }; const secrets: ActionTypeSecretsType = { user: 'bob', @@ -269,6 +272,7 @@ describe('execute()', () => { "message": "a message to you", "subject": "the subject", }, + "hasAuth": true, "proxySettings": undefined, "routing": Object { "bcc": Array [ @@ -298,6 +302,7 @@ describe('execute()', () => { port: 42, secure: true, from: 'bob@example.com', + hasAuth: false, }; const secrets: ActionTypeSecretsType = { user: null, @@ -327,6 +332,7 @@ describe('execute()', () => { "message": "a message to you", "subject": "the subject", }, + "hasAuth": false, "proxySettings": undefined, "routing": Object { "bcc": Array [ @@ -356,6 +362,7 @@ describe('execute()', () => { port: 42, secure: true, from: 'bob@example.com', + hasAuth: false, }; const secrets: ActionTypeSecretsType = { user: null, diff --git a/x-pack/plugins/actions/server/builtin_action_types/email.ts b/x-pack/plugins/actions/server/builtin_action_types/email.ts index 6fd2d694b06f7..be2664887d943 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/email.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/email.ts @@ -36,6 +36,7 @@ const ConfigSchemaProps = { port: schema.nullable(portSchema()), secure: schema.nullable(schema.boolean()), from: schema.string(), + hasAuth: schema.boolean({ defaultValue: true }), }; const ConfigSchema = schema.object(ConfigSchemaProps); @@ -185,6 +186,7 @@ async function executor( message: params.message, }, proxySettings: execOptions.proxySettings, + hasAuth: config.hasAuth, }; let result; diff --git a/x-pack/plugins/actions/server/builtin_action_types/lib/send_email.test.ts b/x-pack/plugins/actions/server/builtin_action_types/lib/send_email.test.ts index b6c4a4ea882e5..a1c4041628bd5 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/lib/send_email.test.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/lib/send_email.test.ts @@ -64,7 +64,7 @@ describe('send_email module', () => { }); test('handles unauthenticated email using not secure host/port', async () => { - const sendEmailOptions = getSendEmailOptions( + const sendEmailOptions = getSendEmailOptionsNoAuth( { transport: { host: 'example.com', @@ -76,12 +76,7 @@ describe('send_email module', () => { proxyRejectUnauthorizedCertificates: false, } ); - // @ts-expect-error - delete sendEmailOptions.transport.service; - // @ts-expect-error - delete sendEmailOptions.transport.user; - // @ts-expect-error - delete sendEmailOptions.transport.password; + const result = await sendEmail(mockLogger, sendEmailOptions); expect(result).toBe(sendMailMockResult); expect(createTransportMock.mock.calls[0]).toMatchInlineSnapshot(` @@ -248,5 +243,31 @@ function getSendEmailOptions( password: 'changeme', }, proxySettings, + hasAuth: true, + }; +} + +function getSendEmailOptionsNoAuth( + { content = {}, routing = {}, transport = {} } = {}, + proxySettings?: ProxySettings +) { + return { + content: { + ...content, + message: 'a message', + subject: 'a subject', + }, + routing: { + ...routing, + from: 'fred@example.com', + to: ['jim@example.com'], + cc: ['bob@example.com', 'robert@example.com'], + bcc: [], + }, + transport: { + ...transport, + }, + proxySettings, + hasAuth: false, }; } diff --git a/x-pack/plugins/actions/server/builtin_action_types/lib/send_email.ts b/x-pack/plugins/actions/server/builtin_action_types/lib/send_email.ts index dead8fee63d4f..f3cdf82bfe8cd 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/lib/send_email.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/lib/send_email.ts @@ -20,6 +20,7 @@ export interface SendEmailOptions { content: Content; proxySettings?: ProxySettings; rejectUnauthorized?: boolean; + hasAuth: boolean; } // config validation ensures either service is set or host/port are set @@ -46,14 +47,14 @@ export interface Content { // send an email export async function sendEmail(logger: Logger, options: SendEmailOptions): Promise<unknown> { - const { transport, routing, content, proxySettings, rejectUnauthorized } = options; + const { transport, routing, content, proxySettings, rejectUnauthorized, hasAuth } = options; const { service, host, port, secure, user, password } = transport; const { from, to, cc, bcc } = routing; const { subject, message } = content; const transportConfig: Record<string, unknown> = {}; - if (user != null && password != null) { + if (hasAuth && user != null && password != null) { transportConfig.auth = { user, pass: password, diff --git a/x-pack/plugins/actions/server/saved_objects/migrations.test.ts b/x-pack/plugins/actions/server/saved_objects/migrations.test.ts index d577f0c8bbc6c..1fa5889e77cb0 100644 --- a/x-pack/plugins/actions/server/saved_objects/migrations.test.ts +++ b/x-pack/plugins/actions/server/saved_objects/migrations.test.ts @@ -21,6 +21,20 @@ describe('7.10.0', () => { ); }); + test('add hasAuth config property for .email actions', () => { + const migration710 = getMigrations(encryptedSavedObjectsSetup)['7.10.0']; + const action = getMockDataForEmail({}); + expect(migration710(action, context)).toMatchObject({ + ...action, + attributes: { + ...action.attributes, + config: { + hasAuth: true, + }, + }, + }); + }); + test('rename cases configuration object', () => { const migration710 = getMigrations(encryptedSavedObjectsSetup)['7.10.0']; const action = getMockData({}); @@ -36,6 +50,22 @@ describe('7.10.0', () => { }); }); +function getMockDataForEmail( + overwrites: Record<string, unknown> = {} +): SavedObjectUnsanitizedDoc<RawAction> { + return { + attributes: { + name: 'abc', + actionTypeId: '.email', + config: {}, + secrets: { user: 'test', password: '123' }, + ...overwrites, + }, + id: uuid.v4(), + type: 'action', + }; +} + function getMockData( overwrites: Record<string, unknown> = {} ): SavedObjectUnsanitizedDoc<RawAction> { diff --git a/x-pack/plugins/actions/server/saved_objects/migrations.ts b/x-pack/plugins/actions/server/saved_objects/migrations.ts index 0006d88c44149..993beef8d9b2b 100644 --- a/x-pack/plugins/actions/server/saved_objects/migrations.ts +++ b/x-pack/plugins/actions/server/saved_objects/migrations.ts @@ -3,40 +3,87 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ - import { SavedObjectMigrationMap, SavedObjectUnsanitizedDoc, SavedObjectMigrationFn, + SavedObjectMigrationContext, } from '../../../../../src/core/server'; import { RawAction } from '../types'; import { EncryptedSavedObjectsPluginSetup } from '../../../encrypted_saved_objects/server'; +type ActionMigration = ( + doc: SavedObjectUnsanitizedDoc<RawAction> +) => SavedObjectUnsanitizedDoc<RawAction>; + export function getMigrations( encryptedSavedObjects: EncryptedSavedObjectsPluginSetup ): SavedObjectMigrationMap { - return { '7.10.0': renameCasesConfigurationObject(encryptedSavedObjects) }; + const migrationActions = encryptedSavedObjects.createMigration<RawAction, RawAction>( + (doc): doc is SavedObjectUnsanitizedDoc<RawAction> => + !!doc.attributes.config?.casesConfiguration || doc.attributes.actionTypeId === '.email', + pipeMigrations(renameCasesConfigurationObject, addHasAuthConfigurationObject) + ); + + return { + '7.10.0': executeMigrationWithErrorHandling(migrationActions, '7.10.0'), + }; } -const renameCasesConfigurationObject = ( - encryptedSavedObjects: EncryptedSavedObjectsPluginSetup -): SavedObjectMigrationFn<RawAction, RawAction> => { - return encryptedSavedObjects.createMigration<RawAction, RawAction>( - (doc): doc is SavedObjectUnsanitizedDoc<RawAction> => - !!doc.attributes.config?.casesConfiguration, - (doc: SavedObjectUnsanitizedDoc<RawAction>): SavedObjectUnsanitizedDoc<RawAction> => { - const { casesConfiguration, ...restConfiguration } = doc.attributes.config; - - return { - ...doc, - attributes: { - ...doc.attributes, - config: { - ...restConfiguration, - incidentConfiguration: casesConfiguration, - }, - }, - }; +function executeMigrationWithErrorHandling( + migrationFunc: SavedObjectMigrationFn<RawAction, RawAction>, + version: string +) { + return (doc: SavedObjectUnsanitizedDoc<RawAction>, context: SavedObjectMigrationContext) => { + try { + return migrationFunc(doc, context); + } catch (ex) { + context.log.error( + `encryptedSavedObject ${version} migration failed for action ${doc.id} with error: ${ex.message}`, + { actionDocument: doc } + ); } - ); + return doc; + }; +} + +function renameCasesConfigurationObject( + doc: SavedObjectUnsanitizedDoc<RawAction> +): SavedObjectUnsanitizedDoc<RawAction> { + if (!doc.attributes.config?.casesConfiguration) { + return doc; + } + const { casesConfiguration, ...restConfiguration } = doc.attributes.config; + + return { + ...doc, + attributes: { + ...doc.attributes, + config: { + ...restConfiguration, + incidentConfiguration: casesConfiguration, + }, + }, + }; +} + +const addHasAuthConfigurationObject = ( + doc: SavedObjectUnsanitizedDoc<RawAction> +): SavedObjectUnsanitizedDoc<RawAction> => { + const hasAuth = !!doc.attributes.secrets.user || !!doc.attributes.secrets.password; + return { + ...doc, + attributes: { + ...doc.attributes, + config: { + ...doc.attributes.config, + hasAuth, + }, + }, + }; }; + +function pipeMigrations(...migrations: ActionMigration[]): ActionMigration { + return (doc: SavedObjectUnsanitizedDoc<RawAction>) => + migrations.reduce((migratedDoc, nextMigration) => nextMigration(migratedDoc), doc); +} diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.test.tsx index e823e848f52c2..ae698f2304e4e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.test.tsx @@ -43,6 +43,7 @@ describe('connector validation', () => { port: 2323, host: 'localhost', test: 'test', + hasAuth: true, }, } as EmailActionConnector; @@ -72,6 +73,7 @@ describe('connector validation', () => { port: 2323, host: 'localhost', test: 'test', + hasAuth: false, }, } as EmailActionConnector; @@ -96,6 +98,7 @@ describe('connector validation', () => { name: 'email', config: { from: 'test@test.com', + hasAuth: true, }, } as EmailActionConnector; @@ -124,6 +127,7 @@ describe('connector validation', () => { port: 2323, host: 'localhost', test: 'test', + hasAuth: true, }, } as EmailActionConnector; @@ -152,6 +156,7 @@ describe('connector validation', () => { port: 2323, host: 'localhost', test: 'test', + hasAuth: true, }, } as EmailActionConnector; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.tsx index 3e8e71991a594..b75d809f6a327 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email.tsx @@ -75,6 +75,26 @@ export function getActionType(): ActionTypeModel<EmailConfig, EmailSecrets, Emai ) ); } + if (action.config.hasAuth && !action.secrets.user && !action.secrets.password) { + errors.user.push( + i18n.translate( + 'xpack.triggersActionsUI.components.builtinActionTypes.error.requiredAuthUserNameText', + { + defaultMessage: 'Username is required.', + } + ) + ); + } + if (action.config.hasAuth && !action.secrets.user && !action.secrets.password) { + errors.password.push( + i18n.translate( + 'xpack.triggersActionsUI.components.builtinActionTypes.error.requiredAuthPasswordText', + { + defaultMessage: 'Password is required.', + } + ) + ); + } if (action.secrets.user && !action.secrets.password) { errors.password.push( i18n.translate( diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email_connector.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email_connector.test.tsx index 6856e553ab400..2685e62eb9a6c 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email_connector.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email_connector.test.tsx @@ -21,6 +21,7 @@ describe('EmailActionConnectorFields renders', () => { name: 'email', config: { from: 'test@test.com', + hasAuth: true, }, } as EmailActionConnector; const wrapper = mountWithIntl( @@ -42,4 +43,35 @@ describe('EmailActionConnectorFields renders', () => { expect(wrapper.find('[data-test-subj="emailUserInput"]').length > 0).toBeTruthy(); expect(wrapper.find('[data-test-subj="emailPasswordInput"]').length > 0).toBeTruthy(); }); + + test('secret connector fields is not rendered when hasAuth false', () => { + const actionConnector = { + secrets: {}, + id: 'test', + actionTypeId: '.email', + name: 'email', + config: { + from: 'test@test.com', + hasAuth: false, + }, + } as EmailActionConnector; + const wrapper = mountWithIntl( + <EmailActionConnectorFields + action={actionConnector} + errors={{ from: [], port: [], host: [], user: [], password: [] }} + editActionConfig={() => {}} + editActionSecrets={() => {}} + docLinks={{ ELASTIC_WEBSITE_URL: '', DOC_LINK_VERSION: '' } as DocLinksStart} + readOnly={false} + /> + ); + expect(wrapper.find('[data-test-subj="emailFromInput"]').length > 0).toBeTruthy(); + expect(wrapper.find('[data-test-subj="emailFromInput"]').first().prop('value')).toBe( + 'test@test.com' + ); + expect(wrapper.find('[data-test-subj="emailHostInput"]').length > 0).toBeTruthy(); + expect(wrapper.find('[data-test-subj="emailPortInput"]').length > 0).toBeTruthy(); + expect(wrapper.find('[data-test-subj="emailUserInput"]').length > 0).toBeFalsy(); + expect(wrapper.find('[data-test-subj="emailPasswordInput"]').length > 0).toBeFalsy(); + }); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email_connector.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email_connector.tsx index 4ef9c2e0d4d2e..1e92e9fc2519c 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email_connector.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email/email_connector.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. */ -import React, { Fragment } from 'react'; +import React, { Fragment, useEffect } from 'react'; import { EuiFieldText, EuiFlexItem, @@ -12,6 +12,9 @@ import { EuiFieldPassword, EuiSwitch, EuiFormRow, + EuiTitle, + EuiSpacer, + EuiCallOut, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; @@ -22,8 +25,14 @@ import { EmailActionConnector } from '../types'; export const EmailActionConnectorFields: React.FunctionComponent<ActionConnectorFieldsProps< EmailActionConnector >> = ({ action, editActionConfig, editActionSecrets, errors, readOnly, docLinks }) => { - const { from, host, port, secure } = action.config; + const { from, host, port, secure, hasAuth } = action.config; const { user, password } = action.secrets; + useEffect(() => { + if (!action.id) { + editActionConfig('hasAuth', true); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); return ( <Fragment> @@ -160,60 +169,116 @@ export const EmailActionConnectorFields: React.FunctionComponent<ActionConnector </EuiFlexGroup> </EuiFlexItem> </EuiFlexGroup> - <EuiFlexGroup justifyContent="spaceBetween"> + <EuiFlexGroup> <EuiFlexItem> - <EuiFormRow - id="emailUser" - fullWidth - error={errors.user} - isInvalid={errors.user.length > 0} + <EuiSpacer size="m" /> + <EuiTitle size="xxs"> + <h4> + <FormattedMessage + id="xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.authenticationLabel" + defaultMessage="Authentication" + /> + </h4> + </EuiTitle> + <EuiSpacer size="s" /> + <EuiSwitch label={i18n.translate( - 'xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.userTextFieldLabel', + 'xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.hasAuthSwitchLabel', { - defaultMessage: 'Username', + defaultMessage: 'Require authentication for this server', } )} - > - <EuiFieldText - fullWidth - isInvalid={errors.user.length > 0} - name="user" - readOnly={readOnly} - value={user || ''} - data-test-subj="emailUserInput" - onChange={(e) => { - editActionSecrets('user', nullableString(e.target.value)); - }} - /> - </EuiFormRow> - </EuiFlexItem> - <EuiFlexItem> - <EuiFormRow - id="emailPassword" - fullWidth - error={errors.password} - isInvalid={errors.password.length > 0} - label={i18n.translate( - 'xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.passwordFieldLabel', - { - defaultMessage: 'Password', + disabled={readOnly} + checked={hasAuth} + onChange={(e) => { + editActionConfig('hasAuth', e.target.checked); + if (!e.target.checked) { + editActionSecrets('user', null); + editActionSecrets('password', null); } - )} - > - <EuiFieldPassword - fullWidth - readOnly={readOnly} - isInvalid={errors.password.length > 0} - name="password" - value={password || ''} - data-test-subj="emailPasswordInput" - onChange={(e) => { - editActionSecrets('password', nullableString(e.target.value)); - }} - /> - </EuiFormRow> + }} + /> </EuiFlexItem> </EuiFlexGroup> + {hasAuth ? ( + <> + {action.id ? ( + <> + <EuiSpacer size="m" /> + <EuiCallOut + size="s" + title="Username and password are encrypted. Please reenter values for these fields." + iconType="iInCircle" + /> + <EuiSpacer size="m" /> + </> + ) : null} + <EuiFlexGroup justifyContent="spaceBetween"> + <EuiFlexItem> + <EuiFormRow + id="emailUser" + fullWidth + error={errors.user} + isInvalid={errors.user.length > 0 && user !== undefined} + label={i18n.translate( + 'xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.userTextFieldLabel', + { + defaultMessage: 'Username', + } + )} + > + <EuiFieldText + fullWidth + isInvalid={errors.user.length > 0 && user !== undefined} + name="user" + readOnly={readOnly} + value={user || ''} + data-test-subj="emailUserInput" + onChange={(e) => { + editActionSecrets('user', nullableString(e.target.value)); + }} + onBlur={() => { + if (!user) { + editActionSecrets('user', ''); + } + }} + /> + </EuiFormRow> + </EuiFlexItem> + <EuiFlexItem> + <EuiFormRow + id="emailPassword" + fullWidth + error={errors.password} + isInvalid={errors.password.length > 0 && password !== undefined} + label={i18n.translate( + 'xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.passwordFieldLabel', + { + defaultMessage: 'Password', + } + )} + > + <EuiFieldPassword + fullWidth + readOnly={readOnly} + isInvalid={errors.password.length > 0 && password !== undefined} + name="password" + value={password || ''} + data-test-subj="emailPasswordInput" + onChange={(e) => { + editActionSecrets('password', nullableString(e.target.value)); + }} + onBlur={() => { + if (!password) { + editActionSecrets('password', ''); + } + }} + /> + </EuiFormRow> + </EuiFlexItem> + </EuiFlexGroup> + </> + ) : null} </Fragment> ); }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/types.ts b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/types.ts index f6bb08148b3cb..958d77a11c883 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/types.ts @@ -69,6 +69,7 @@ export interface EmailConfig { host: string; port: number; secure?: boolean; + hasAuth: boolean; } export interface EmailSecrets { diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_connector_form.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_connector_form.tsx index ef6621f98fac2..f91bd7382b61c 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_connector_form.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_connector_form.tsx @@ -15,6 +15,7 @@ import { EuiLoadingSpinner, EuiFlexGroup, EuiFlexItem, + EuiTitle, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; @@ -169,26 +170,37 @@ export const ActionConnectorForm = ({ </EuiFormRow> <EuiSpacer size="m" /> {FieldsComponent !== null ? ( - <Suspense - fallback={ - <EuiFlexGroup justifyContent="center"> - <EuiFlexItem grow={false}> - <EuiLoadingSpinner size="m" /> - </EuiFlexItem> - </EuiFlexGroup> - } - > - <FieldsComponent - action={connector} - errors={errors} - readOnly={!canSave} - editActionConfig={setActionConfigProperty} - editActionSecrets={setActionSecretsProperty} - http={http} - docLinks={docLinks} - consumer={consumer} - /> - </Suspense> + <> + <EuiTitle size="xxs"> + <h4> + <FormattedMessage + id="xpack.triggersActionsUI.sections.actionConnectorForm.connectorSettingsLabel" + defaultMessage="Connector settings" + /> + </h4> + </EuiTitle> + <EuiSpacer size="s" /> + <Suspense + fallback={ + <EuiFlexGroup justifyContent="center"> + <EuiFlexItem grow={false}> + <EuiLoadingSpinner size="m" /> + </EuiFlexItem> + </EuiFlexGroup> + } + > + <FieldsComponent + action={connector} + errors={errors} + readOnly={!canSave} + editActionConfig={setActionConfigProperty} + editActionSecrets={setActionSecretsProperty} + http={http} + docLinks={docLinks} + consumer={consumer} + /> + </Suspense> + </> ) : null} </EuiForm> ); diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/email.ts b/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/email.ts index 329bd3433d388..f6b0f06a6722e 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/email.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/tests/actions/builtin_action_types/email.ts @@ -25,6 +25,7 @@ export default function emailTest({ getService }: FtrProviderContext) { config: { service: '__json', from: 'bob@example.com', + hasAuth: true, }, secrets: { user: 'bob', @@ -41,6 +42,7 @@ export default function emailTest({ getService }: FtrProviderContext) { actionTypeId: '.email', config: { service: '__json', + hasAuth: true, host: null, port: null, secure: null, @@ -62,6 +64,7 @@ export default function emailTest({ getService }: FtrProviderContext) { config: { from: 'bob@example.com', service: '__json', + hasAuth: true, host: null, port: null, secure: null, From 7211f78ce195f1925ebace43905b1301bbf82577 Mon Sep 17 00:00:00 2001 From: Tyler Smalley <tyler.smalley@elastic.co> Date: Thu, 1 Oct 2020 14:38:51 -0700 Subject: [PATCH 131/142] Bumps Jest related packages (#78720) Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co> --- package.json | 14 +- .../elastic-eslint-config-kibana/package.json | 2 +- .../src/integration_tests/cluster.test.js | 2 +- packages/kbn-i18n/src/core/i18n.test.ts | 2 +- packages/kbn-optimizer/package.json | 2 +- packages/kbn-spec-to-console/package.json | 2 +- .../server/logging/rotate/log_rotator.test.ts | 6 +- .../listing/dashboard_listing.test.js | 2 +- .../step_time_field/step_time_field.test.tsx | 2 +- .../number_list/number_list.test.tsx | 8 +- .../components/splits/terms.test.js | 12 +- x-pack/package.json | 12 +- .../alerts/server/alerts_client.test.ts | 4 +- .../components/__tests__/app.test.tsx | 2 +- .../settings/__tests__/settings.test.tsx | 2 +- .../event_log/server/lib/ready_signal.test.ts | 27 +- .../plugins/licensing/public/plugin.test.ts | 32 +- .../services/ml_server_info.test.ts | 9 +- .../new_job_capabilities._service.test.ts | 11 +- .../capabilities/check_capabilities.test.ts | 21 +- .../annotation_service/annotation.test.ts | 15 +- .../new_job_caps/new_job_caps.test.ts | 12 +- .../public/lib/ensure_minimum_time.test.js | 9 +- .../monitoring/public/lib/setup_mode.test.js | 91 +- .../monitoring/public/lib/setup_mode.tsx | 2 +- .../lib/authorized_user_pre_routing.test.ts | 2 +- .../detail_panel/detail_panel.test.js | 2 +- .../sections/job_list/job_list.test.js | 2 +- .../job_list/job_table/job_table.test.js | 2 +- .../job_create_review.test.js | 2 +- .../test/client_integration/job_list.test.js | 4 +- .../client_integration/job_list_clone.test.js | 2 +- .../flow_target_select.test.tsx.snap | 16 +- .../properties/new_template_timeline.test.tsx | 12 +- .../server/lib/bulk_operation_buffer.test.ts | 33 +- .../task_manager/server/task_store.test.ts | 198 ++- .../public/app/hooks/use_index_data.test.tsx | 10 +- .../step_define/step_define_form.test.tsx | 7 +- .../step_define/step_define_summary.test.tsx | 3 +- .../public/custom_time_range_action.test.ts | 56 +- .../public/custom_time_range_badge.test.ts | 20 +- yarn.lock | 1236 +++++++++-------- 42 files changed, 978 insertions(+), 932 deletions(-) diff --git a/package.json b/package.json index 26a7fef9cfc18..0eda8dd9f4114 100644 --- a/package.json +++ b/package.json @@ -291,7 +291,7 @@ "@types/hjson": "^2.4.2", "@types/hoek": "^4.1.3", "@types/inert": "^5.1.2", - "@types/jest": "^25.2.3", + "@types/jest": "^26.0.14", "@types/jest-when": "^2.7.1", "@types/joi": "^13.4.2", "@types/jquery": "^3.3.31", @@ -337,7 +337,7 @@ "@types/supertest-as-promised": "^2.0.38", "@types/tapable": "^1.0.6", "@types/tar": "^4.0.3", - "@types/testing-library__jest-dom": "^5.9.2", + "@types/testing-library__jest-dom": "^5.9.3", "@types/testing-library__react-hooks": "^3.4.0", "@types/type-detect": "^4.0.1", "@types/uuid": "^3.4.4", @@ -356,7 +356,7 @@ "archiver": "^3.1.1", "axe-core": "^4.0.2", "babel-eslint": "^10.0.3", - "babel-jest": "^25.5.1", + "babel-jest": "^26.3.0", "babel-plugin-istanbul": "^6.0.0", "backport": "5.6.0", "brace": "0.11.1", @@ -382,7 +382,7 @@ "eslint-plugin-cypress": "^2.8.1", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-import": "^2.19.1", - "eslint-plugin-jest": "^23.10.0", + "eslint-plugin-jest": "^24.0.2", "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-mocha": "^6.2.2", "eslint-plugin-no-unsanitized": "^3.0.2", @@ -411,10 +411,10 @@ "iedriver": "^3.14.2", "immer": "^1.5.0", "intl-messageformat-parser": "^1.4.0", - "jest": "^25.5.4", + "jest": "^26.4.2", "jest-canvas-mock": "^2.2.0", - "jest-circus": "^25.5.4", - "jest-cli": "^25.5.4", + "jest-circus": "^26.4.2", + "jest-cli": "^26.4.2", "jest-environment-jsdom-thirteen": "^1.0.1", "jest-raw-loader": "^1.0.1", "jest-when": "^2.7.2", diff --git a/packages/elastic-eslint-config-kibana/package.json b/packages/elastic-eslint-config-kibana/package.json index a4bb8d5449ee8..3f2c6e9edb261 100644 --- a/packages/elastic-eslint-config-kibana/package.json +++ b/packages/elastic-eslint-config-kibana/package.json @@ -24,7 +24,7 @@ "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-import": "^2.19.1", - "eslint-plugin-jest": "^23.10.0", + "eslint-plugin-jest": "^24.0.2", "eslint-plugin-mocha": "^6.2.2", "eslint-plugin-no-unsanitized": "^3.0.2", "eslint-plugin-prefer-object-spread": "^1.2.1", diff --git a/packages/kbn-es/src/integration_tests/cluster.test.js b/packages/kbn-es/src/integration_tests/cluster.test.js index 0ae0ac0aac27a..6229a8add0d24 100644 --- a/packages/kbn-es/src/integration_tests/cluster.test.js +++ b/packages/kbn-es/src/integration_tests/cluster.test.js @@ -60,7 +60,7 @@ async function ensureResolve(promise) { function mockEsBin({ exitCode, start }) { execa.mockImplementationOnce((cmd, args, options) => - require.requireActual('execa')( + jest.requireActual('execa')( process.execPath, [ require.resolve('./__fixtures__/es_bin.js'), diff --git a/packages/kbn-i18n/src/core/i18n.test.ts b/packages/kbn-i18n/src/core/i18n.test.ts index ec08c82b502db..3364f20879c2a 100644 --- a/packages/kbn-i18n/src/core/i18n.test.ts +++ b/packages/kbn-i18n/src/core/i18n.test.ts @@ -25,7 +25,7 @@ describe('I18n engine', () => { let i18n: typeof i18nModule; beforeEach(() => { - i18n = require.requireActual('./i18n'); + i18n = jest.requireActual('./i18n'); }); afterEach(() => { diff --git a/packages/kbn-optimizer/package.json b/packages/kbn-optimizer/package.json index f90fcaec79fe0..5871c81f48aea 100644 --- a/packages/kbn-optimizer/package.json +++ b/packages/kbn-optimizer/package.json @@ -24,7 +24,7 @@ "execa": "^4.0.2", "file-loader": "^4.2.0", "istanbul-instrumenter-loader": "^3.0.1", - "jest-diff": "^25.5.0", + "jest-diff": "^26.4.2", "json-stable-stringify": "^1.0.1", "loader-utils": "^1.2.3", "node-sass": "^4.13.1", diff --git a/packages/kbn-spec-to-console/package.json b/packages/kbn-spec-to-console/package.json index 0c80c949c1d11..557f38ec740fc 100644 --- a/packages/kbn-spec-to-console/package.json +++ b/packages/kbn-spec-to-console/package.json @@ -17,7 +17,7 @@ }, "homepage": "https://github.com/jbudz/spec-to-console#readme", "devDependencies": { - "jest": "^25.5.4", + "jest": "^26.4.2", "prettier": "^2.1.1" }, "dependencies": { diff --git a/src/legacy/server/logging/rotate/log_rotator.test.ts b/src/legacy/server/logging/rotate/log_rotator.test.ts index 70842d42f5e1f..8f67b47f6949e 100644 --- a/src/legacy/server/logging/rotate/log_rotator.test.ts +++ b/src/legacy/server/logging/rotate/log_rotator.test.ts @@ -22,6 +22,7 @@ import fs, { existsSync, mkdirSync, statSync, writeFileSync } from 'fs'; import { LogRotator } from './log_rotator'; import { tmpdir } from 'os'; import { dirname, join } from 'path'; +import lodash from 'lodash'; const mockOn = jest.fn(); jest.mock('chokidar', () => ({ @@ -31,10 +32,7 @@ jest.mock('chokidar', () => ({ })), })); -jest.mock('lodash', () => ({ - ...require.requireActual('lodash'), - throttle: (fn: any) => fn, -})); +lodash.throttle = (fn: any) => fn; const tempDir = join(tmpdir(), 'kbn_log_rotator_test'); const testFilePath = join(tempDir, 'log_rotator_test_log_file.log'); diff --git a/src/plugins/dashboard/public/application/listing/dashboard_listing.test.js b/src/plugins/dashboard/public/application/listing/dashboard_listing.test.js index 6acb491f9a20c..99b1ebf047d74 100644 --- a/src/plugins/dashboard/public/application/listing/dashboard_listing.test.js +++ b/src/plugins/dashboard/public/application/listing/dashboard_listing.test.js @@ -20,7 +20,7 @@ jest.mock( 'lodash', () => ({ - ...require.requireActual('lodash'), + ...jest.requireActual('lodash'), // mock debounce to fire immediately with no internal timer debounce: (func) => { function debounced(...args) { diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/step_time_field.test.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/step_time_field.test.tsx index aec010d2dd3f8..4d1033d12d2b8 100644 --- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/step_time_field.test.tsx +++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/step_time_field.test.tsx @@ -30,7 +30,7 @@ jest.mock('./components/time_field', () => ({ TimeField: 'TimeField' })); jest.mock('./components/advanced_options', () => ({ AdvancedOptions: 'AdvancedOptions' })); jest.mock('./components/action_buttons', () => ({ ActionButtons: 'ActionButtons' })); jest.mock('./../../lib', () => ({ - extractTimeFields: require.requireActual('./../../lib').extractTimeFields, + extractTimeFields: jest.requireActual('./../../lib').extractTimeFields, ensureMinimumTime: async (fields: IFieldType) => Promise.resolve(fields), })); diff --git a/src/plugins/vis_default_editor/public/components/controls/components/number_list/number_list.test.tsx b/src/plugins/vis_default_editor/public/components/controls/components/number_list/number_list.test.tsx index 82d4b9142fb76..7964da23d8f50 100644 --- a/src/plugins/vis_default_editor/public/components/controls/components/number_list/number_list.test.tsx +++ b/src/plugins/vis_default_editor/public/components/controls/components/number_list/number_list.test.tsx @@ -33,10 +33,10 @@ jest.mock('@elastic/eui', () => ({ let counter = 1; return () => `12${counter++}`; }), - EuiSpacer: require.requireActual('@elastic/eui').EuiSpacer, - EuiFlexItem: require.requireActual('@elastic/eui').EuiFlexItem, - EuiButtonEmpty: require.requireActual('@elastic/eui').EuiButtonEmpty, - EuiFormErrorText: require.requireActual('@elastic/eui').EuiFormErrorText, + EuiSpacer: jest.requireActual('@elastic/eui').EuiSpacer, + EuiFlexItem: jest.requireActual('@elastic/eui').EuiFlexItem, + EuiButtonEmpty: jest.requireActual('@elastic/eui').EuiButtonEmpty, + EuiFormErrorText: jest.requireActual('@elastic/eui').EuiFormErrorText, })); describe('NumberList', () => { diff --git a/src/plugins/vis_type_timeseries/public/application/components/splits/terms.test.js b/src/plugins/vis_type_timeseries/public/application/components/splits/terms.test.js index 4d322cd7b7e61..da840adb75cd3 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/splits/terms.test.js +++ b/src/plugins/vis_type_timeseries/public/application/components/splits/terms.test.js @@ -23,12 +23,12 @@ import { SplitByTermsUI } from './terms'; jest.mock('@elastic/eui', () => ({ htmlIdGenerator: jest.fn(() => () => '42'), - EuiFlexGroup: require.requireActual('@elastic/eui').EuiFlexGroup, - EuiFlexItem: require.requireActual('@elastic/eui').EuiFlexItem, - EuiFormRow: require.requireActual('@elastic/eui').EuiFormRow, - EuiFieldNumber: require.requireActual('@elastic/eui').EuiFieldNumber, - EuiComboBox: require.requireActual('@elastic/eui').EuiComboBox, - EuiFieldText: require.requireActual('@elastic/eui').EuiFieldText, + EuiFlexGroup: jest.requireActual('@elastic/eui').EuiFlexGroup, + EuiFlexItem: jest.requireActual('@elastic/eui').EuiFlexItem, + EuiFormRow: jest.requireActual('@elastic/eui').EuiFormRow, + EuiFieldNumber: jest.requireActual('@elastic/eui').EuiFieldNumber, + EuiComboBox: jest.requireActual('@elastic/eui').EuiComboBox, + EuiFieldText: jest.requireActual('@elastic/eui').EuiFieldText, })); describe('src/legacy/core_plugins/metrics/public/components/splits/terms.test.js', () => { diff --git a/x-pack/package.json b/x-pack/package.json index 6c18902c77366..f9b193bb4da06 100644 --- a/x-pack/package.json +++ b/x-pack/package.json @@ -88,7 +88,7 @@ "@types/hoist-non-react-statics": "^3.3.1", "@types/http-proxy": "^1.17.4", "@types/http-proxy-agent": "^2.0.2", - "@types/jest": "^25.2.3", + "@types/jest": "^26.0.14", "@types/jest-specific-snapshot": "^0.5.4", "@types/joi": "^13.4.2", "@types/js-search": "^1.4.0", @@ -127,7 +127,7 @@ "@types/styled-components": "^5.1.0", "@types/supertest": "^2.0.5", "@types/tar-fs": "^1.16.1", - "@types/testing-library__jest-dom": "^5.9.2", + "@types/testing-library__jest-dom": "^5.9.3", "@types/testing-library__react-hooks": "^3.4.0", "@types/tinycolor2": "^1.4.1", "@types/use-resize-observer": "^6.0.0", @@ -143,7 +143,7 @@ "apollo-link-error": "^1.1.7", "apollo-link-state": "^0.4.1", "autoprefixer": "^9.7.4", - "babel-jest": "^25.5.1", + "babel-jest": "^26.3.0", "babel-loader": "^8.0.6", "babel-plugin-require-context-hook": "npm:babel-plugin-require-context-hook-babel7@1.0.0", "base64-js": "^1.3.1", @@ -188,9 +188,9 @@ "hoist-non-react-statics": "^3.3.2", "i18n-iso-countries": "^4.3.1", "icalendar": "0.7.1", - "jest": "^25.5.4", - "jest-circus": "^25.5.4", - "jest-cli": "^25.5.4", + "jest": "^26.4.2", + "jest-circus": "^26.4.2", + "jest-cli": "^26.4.2", "jest-styled-components": "^7.0.2", "js-search": "^1.4.3", "jsdom": "13.1.0", diff --git a/x-pack/plugins/alerts/server/alerts_client.test.ts b/x-pack/plugins/alerts/server/alerts_client.test.ts index a5846cd1060c5..088390c3cb6e7 100644 --- a/x-pack/plugins/alerts/server/alerts_client.test.ts +++ b/x-pack/plugins/alerts/server/alerts_client.test.ts @@ -4130,14 +4130,13 @@ describe('update()', () => { expect(taskManager.runNow).not.toHaveBeenCalled(); }); - test('updating the alert should not wait for the rerun the task to complete', async (done) => { + test('updating the alert should not wait for the rerun the task to complete', async () => { const alertId = uuid.v4(); const taskId = uuid.v4(); mockApiCalls(alertId, taskId, { interval: '10s' }, { interval: '30s' }); const resolveAfterAlertUpdatedCompletes = resolvable<{ id: string }>(); - resolveAfterAlertUpdatedCompletes.then(() => done()); taskManager.runNow.mockReset(); taskManager.runNow.mockReturnValue(resolveAfterAlertUpdatedCompletes); @@ -4165,7 +4164,6 @@ describe('update()', () => { }); expect(taskManager.runNow).toHaveBeenCalled(); - resolveAfterAlertUpdatedCompletes.resolve({ id: alertId }); }); diff --git a/x-pack/plugins/canvas/shareable_runtime/components/__tests__/app.test.tsx b/x-pack/plugins/canvas/shareable_runtime/components/__tests__/app.test.tsx index 2ec3cfde8bd68..eaf45db0a0b93 100644 --- a/x-pack/plugins/canvas/shareable_runtime/components/__tests__/app.test.tsx +++ b/x-pack/plugins/canvas/shareable_runtime/components/__tests__/app.test.tsx @@ -40,7 +40,7 @@ jest.mock('@elastic/eui/lib/components/portal/portal', () => { // Local constants are not supported in Jest mocks-- they must be // imported within the mock. // eslint-disable-next-line no-shadow - const React = require.requireActual('react'); + const React = jest.requireActual('react'); return { EuiPortal: (props: any) => <div>{props.children}</div>, }; diff --git a/x-pack/plugins/canvas/shareable_runtime/components/footer/settings/__tests__/settings.test.tsx b/x-pack/plugins/canvas/shareable_runtime/components/footer/settings/__tests__/settings.test.tsx index 34dacc7956253..28aa6ef90aedb 100644 --- a/x-pack/plugins/canvas/shareable_runtime/components/footer/settings/__tests__/settings.test.tsx +++ b/x-pack/plugins/canvas/shareable_runtime/components/footer/settings/__tests__/settings.test.tsx @@ -26,7 +26,7 @@ jest.mock('@elastic/eui/lib/services/accessibility', () => { }); jest.mock('@elastic/eui/lib/components/portal/portal', () => { // eslint-disable-next-line no-shadow - const React = require.requireActual('react'); + const React = jest.requireActual('react'); return { EuiPortal: (props: any) => <div>{props.children}</div>, }; diff --git a/x-pack/plugins/event_log/server/lib/ready_signal.test.ts b/x-pack/plugins/event_log/server/lib/ready_signal.test.ts index c216651ee94b1..d23d81861acc4 100644 --- a/x-pack/plugins/event_log/server/lib/ready_signal.test.ts +++ b/x-pack/plugins/event_log/server/lib/ready_signal.test.ts @@ -13,28 +13,9 @@ describe('ReadySignal', () => { readySignal = createReadySignal<number>(); }); - test('works as expected', async (done) => { - let value = 41; - - timeoutSet(100, async () => { - expect(value).toBe(41); - }); - - timeoutSet(250, async () => readySignal.signal(42)); - - timeoutSet(400, async () => { - expect(value).toBe(42); - - const innerValue = await readySignal.wait(); - expect(innerValue).toBe(42); - done(); - }); - - value = await readySignal.wait(); - expect(value).toBe(42); + test('works as expected', async () => { + readySignal.signal(42); + const ready = await readySignal.wait(); + expect(ready).toBe(42); }); }); - -function timeoutSet(ms: number, fn: () => Promise<unknown>): void { - setTimeout(fn, ms); -} diff --git a/x-pack/plugins/licensing/public/plugin.test.ts b/x-pack/plugins/licensing/public/plugin.test.ts index c20563dd15913..ce3fcdb042326 100644 --- a/x-pack/plugins/licensing/public/plugin.test.ts +++ b/x-pack/plugins/licensing/public/plugin.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { take } from 'rxjs/operators'; +import { take, toArray } from 'rxjs/operators'; import { mountExpiredBannerMock } from './plugin.test.mocks'; import { LicenseType } from '../common/types'; @@ -92,7 +92,7 @@ describe('licensing plugin', () => { expect(sessionStorage.getItem).toHaveBeenCalledWith(licensingSessionStorageKey); }); - it('observable receives updated licenses', async (done) => { + it('observable receives updated licenses', async () => { const types: LicenseType[] = ['gold', 'platinum']; const sessionStorage = coreMock.createStorage(); @@ -104,27 +104,17 @@ describe('licensing plugin', () => { Promise.resolve(licenseMock.createLicense({ license: { type: types.shift() } })) ); - await plugin.setup(coreSetup); + plugin.setup(coreSetup); const { refresh, license$ } = await plugin.start(coreStart); + const promise = license$.pipe(take(3), toArray()).toPromise(); - let i = 0; - license$.subscribe((value) => { - i++; - if (i === 1) { - expect(value.type).toBe('basic'); - refresh(); - } else if (i === 2) { - expect(value.type).toBe('gold'); - // since this is a synchronous subscription, we need to give the exhaustMap a chance - // to mark the subscription as complete before emitting another value on the Subject - process.nextTick(() => refresh()); - } else if (i === 3) { - expect(value.type).toBe('platinum'); - done(); - } else { - throw new Error('unreachable'); - } - }); + await refresh(); + await refresh(); + + const licenses = await promise; + expect(licenses[0].type).toBe('basic'); + expect(licenses[1].type).toBe('gold'); + expect(licenses[2].type).toBe('platinum'); }); it('saved fetched license & signature in session storage', async () => { diff --git a/x-pack/plugins/ml/public/application/services/ml_server_info.test.ts b/x-pack/plugins/ml/public/application/services/ml_server_info.test.ts index cd0f10bb7f577..e935d443f9857 100644 --- a/x-pack/plugins/ml/public/application/services/ml_server_info.test.ts +++ b/x-pack/plugins/ml/public/application/services/ml_server_info.test.ts @@ -28,9 +28,8 @@ describe('ml_server_info initial state', () => { }); describe('ml_server_info', () => { - beforeEach(async (done) => { + beforeEach(async () => { await loadMlServerInfo(); - done(); }); describe('cloud information', () => { @@ -41,23 +40,21 @@ describe('ml_server_info', () => { }); describe('defaults', () => { - it('should get defaults', async (done) => { + it('should get defaults', async () => { const defaults = getNewJobDefaults(); expect(defaults.anomaly_detectors.model_memory_limit).toBe('128mb'); expect(defaults.anomaly_detectors.categorization_examples_limit).toBe(4); expect(defaults.anomaly_detectors.model_snapshot_retention_days).toBe(1); expect(defaults.datafeeds.scroll_size).toBe(1000); - done(); }); }); describe('limits', () => { - it('should get limits', async (done) => { + it('should get limits', async () => { const limits = getNewJobLimits(); expect(limits.max_model_memory_limit).toBe('128mb'); - done(); }); }); diff --git a/x-pack/plugins/ml/public/application/services/new_job_capabilities._service.test.ts b/x-pack/plugins/ml/public/application/services/new_job_capabilities._service.test.ts index 81f05065b5139..471a55061617b 100644 --- a/x-pack/plugins/ml/public/application/services/new_job_capabilities._service.test.ts +++ b/x-pack/plugins/ml/public/application/services/new_job_capabilities._service.test.ts @@ -26,7 +26,7 @@ const indexPattern = ({ describe('new_job_capabilities_service', () => { describe('cloudwatch newJobCaps()', () => { - it('can construct job caps objects from endpoint json', async (done) => { + it('can construct job caps objects from endpoint json', async () => { await newJobCapsService.initializeFromIndexPattern(indexPattern); const { fields, aggs } = await newJobCapsService.newJobCaps; @@ -43,27 +43,22 @@ describe('new_job_capabilities_service', () => { expect(meanAgg.fields).toHaveLength(7); expect(distinctCountAgg.fields).toHaveLength(10); - done(); }); - it('job caps including text fields', async (done) => { + it('job caps including text fields', async () => { await newJobCapsService.initializeFromIndexPattern(indexPattern, true, false); const { fields, aggs } = await newJobCapsService.newJobCaps; expect(fields).toHaveLength(13); // one more field expect(aggs).toHaveLength(35); - - done(); }); - it('job caps excluding event rate', async (done) => { + it('job caps excluding event rate', async () => { await newJobCapsService.initializeFromIndexPattern(indexPattern, false, true); const { fields, aggs } = await newJobCapsService.newJobCaps; expect(fields).toHaveLength(11); // one less field expect(aggs).toHaveLength(35); - - done(); }); }); }); diff --git a/x-pack/plugins/ml/server/lib/capabilities/check_capabilities.test.ts b/x-pack/plugins/ml/server/lib/capabilities/check_capabilities.test.ts index 4dd17f8cf4889..a436bcdebde4b 100644 --- a/x-pack/plugins/ml/server/lib/capabilities/check_capabilities.test.ts +++ b/x-pack/plugins/ml/server/lib/capabilities/check_capabilities.test.ts @@ -49,7 +49,7 @@ const mlClusterClientUpgrade = ({ describe('check_capabilities', () => { describe('getCapabilities() - right number of capabilities', () => { - test('kibana capabilities count', async (done) => { + test('kibana capabilities count', async () => { const { getCapabilities } = capabilitiesProvider( mlClusterClientNonUpgrade, getAdminCapabilities(), @@ -59,12 +59,11 @@ describe('check_capabilities', () => { const { capabilities } = await getCapabilities(); const count = Object.keys(capabilities).length; expect(count).toBe(28); - done(); }); }); describe('getCapabilities() with security', () => { - test('ml_user capabilities only', async (done) => { + test('ml_user capabilities only', async () => { const { getCapabilities } = capabilitiesProvider( mlClusterClientNonUpgrade, getUserCapabilities(), @@ -110,10 +109,9 @@ describe('check_capabilities', () => { expect(capabilities.canDeleteDataFrameAnalytics).toBe(false); expect(capabilities.canCreateDataFrameAnalytics).toBe(false); expect(capabilities.canStartStopDataFrameAnalytics).toBe(false); - done(); }); - test('full capabilities', async (done) => { + test('full capabilities', async () => { const { getCapabilities } = capabilitiesProvider( mlClusterClientNonUpgrade, getAdminCapabilities(), @@ -159,10 +157,9 @@ describe('check_capabilities', () => { expect(capabilities.canDeleteDataFrameAnalytics).toBe(true); expect(capabilities.canCreateDataFrameAnalytics).toBe(true); expect(capabilities.canStartStopDataFrameAnalytics).toBe(true); - done(); }); - test('upgrade in progress with full capabilities', async (done) => { + test('upgrade in progress with full capabilities', async () => { const { getCapabilities } = capabilitiesProvider( mlClusterClientUpgrade, getAdminCapabilities(), @@ -208,10 +205,9 @@ describe('check_capabilities', () => { expect(capabilities.canDeleteDataFrameAnalytics).toBe(false); expect(capabilities.canCreateDataFrameAnalytics).toBe(false); expect(capabilities.canStartStopDataFrameAnalytics).toBe(false); - done(); }); - test('upgrade in progress with partial capabilities', async (done) => { + test('upgrade in progress with partial capabilities', async () => { const { getCapabilities } = capabilitiesProvider( mlClusterClientUpgrade, getUserCapabilities(), @@ -257,10 +253,9 @@ describe('check_capabilities', () => { expect(capabilities.canDeleteDataFrameAnalytics).toBe(false); expect(capabilities.canCreateDataFrameAnalytics).toBe(false); expect(capabilities.canStartStopDataFrameAnalytics).toBe(false); - done(); }); - test('full capabilities, ml disabled in space', async (done) => { + test('full capabilities, ml disabled in space', async () => { const { getCapabilities } = capabilitiesProvider( mlClusterClientNonUpgrade, getDefaultCapabilities(), @@ -306,11 +301,10 @@ describe('check_capabilities', () => { expect(capabilities.canDeleteDataFrameAnalytics).toBe(false); expect(capabilities.canCreateDataFrameAnalytics).toBe(false); expect(capabilities.canStartStopDataFrameAnalytics).toBe(false); - done(); }); }); - test('full capabilities, basic license, ml disabled in space', async (done) => { + test('full capabilities, basic license, ml disabled in space', async () => { const { getCapabilities } = capabilitiesProvider( mlClusterClientNonUpgrade, getDefaultCapabilities(), @@ -357,6 +351,5 @@ describe('check_capabilities', () => { expect(capabilities.canDeleteDataFrameAnalytics).toBe(false); expect(capabilities.canCreateDataFrameAnalytics).toBe(false); expect(capabilities.canStartStopDataFrameAnalytics).toBe(false); - done(); }); }); diff --git a/x-pack/plugins/ml/server/models/annotation_service/annotation.test.ts b/x-pack/plugins/ml/server/models/annotation_service/annotation.test.ts index 4c511b567615d..3d90cb0984391 100644 --- a/x-pack/plugins/ml/server/models/annotation_service/annotation.test.ts +++ b/x-pack/plugins/ml/server/models/annotation_service/annotation.test.ts @@ -35,7 +35,7 @@ describe('annotation_service', () => { }); describe('deleteAnnotation()', () => { - it('should delete annotation', async (done) => { + it('should delete annotation', async () => { const { deleteAnnotation } = annotationServiceProvider(mlClusterClientSpy); const mockFunct = mlClusterClientSpy; @@ -50,12 +50,11 @@ describe('annotation_service', () => { expect(mockFunct.asInternalUser.delete.mock.calls[0][0]).toStrictEqual(deleteParamsMock); expect(response).toBe(acknowledgedResponseMock); - done(); }); }); describe('getAnnotation()', () => { - it('should get annotations for specific job', async (done) => { + it('should get annotations for specific job', async () => { const { getAnnotations } = annotationServiceProvider(mlClusterClientSpy); const mockFunct = mlClusterClientSpy; @@ -74,7 +73,6 @@ describe('annotation_service', () => { expect(Object.keys(response.annotations)).toHaveLength(1); expect(response.annotations[jobIdMock]).toHaveLength(2); expect(isAnnotations(response.annotations[jobIdMock])).toBeTruthy(); - done(); }); it('should throw and catch an error', async () => { @@ -106,7 +104,7 @@ describe('annotation_service', () => { }); describe('indexAnnotation()', () => { - it('should index annotation', async (done) => { + it('should index annotation', async () => { const { indexAnnotation } = annotationServiceProvider(mlClusterClientSpy); const mockFunct = mlClusterClientSpy; @@ -129,10 +127,9 @@ describe('annotation_service', () => { expect(typeof annotation.modified_time).toBe('number'); expect(response).toBe(acknowledgedResponseMock); - done(); }); - it('should remove ._id and .key before updating annotation', async (done) => { + it('should remove ._id and .key before updating annotation', async () => { const { indexAnnotation } = annotationServiceProvider(mlClusterClientSpy); const mockFunct = mlClusterClientSpy; @@ -159,10 +156,9 @@ describe('annotation_service', () => { expect(typeof annotation.key).toBe('undefined'); expect(response).toBe(acknowledgedResponseMock); - done(); }); - it('should update annotation text and the username for modified_username', async (done) => { + it('should update annotation text and the username for modified_username', async () => { const { getAnnotations, indexAnnotation } = annotationServiceProvider(mlClusterClientSpy); const mockFunct = mlClusterClientSpy; @@ -196,7 +192,6 @@ describe('annotation_service', () => { expect(modifiedAnnotation.modified_username).toBe(modifiedUsernameMock); expect(typeof modifiedAnnotation.create_time).toBe('number'); expect(typeof modifiedAnnotation.modified_time).toBe('number'); - done(); }); }); }); diff --git a/x-pack/plugins/ml/server/models/job_service/new_job_caps/new_job_caps.test.ts b/x-pack/plugins/ml/server/models/job_service/new_job_caps/new_job_caps.test.ts index 891cb2e0d1e64..1169123e93ea3 100644 --- a/x-pack/plugins/ml/server/models/job_service/new_job_caps/new_job_caps.test.ts +++ b/x-pack/plugins/ml/server/models/job_service/new_job_caps/new_job_caps.test.ts @@ -48,42 +48,38 @@ describe('job_service - job_caps', () => { }); describe('farequote newJobCaps()', () => { - it('can get job caps for index pattern', async (done) => { + it('can get job caps for index pattern', async () => { const indexPattern = 'farequote-*'; const isRollup = false; const { newJobCaps } = newJobCapsProvider(mlClusterClientNonRollupMock); const response = await newJobCaps(indexPattern, isRollup, savedObjectsClientMock); expect(response).toEqual(farequoteJobCaps); - done(); }); - it('can get rollup job caps for non rollup index pattern', async (done) => { + it('can get rollup job caps for non rollup index pattern', async () => { const indexPattern = 'farequote-*'; const isRollup = true; const { newJobCaps } = newJobCapsProvider(mlClusterClientNonRollupMock); const response = await newJobCaps(indexPattern, isRollup, savedObjectsClientMock); expect(response).toEqual(farequoteJobCapsEmpty); - done(); }); }); describe('cloudwatch newJobCaps()', () => { - it('can get rollup job caps for rollup index pattern', async (done) => { + it('can get rollup job caps for rollup index pattern', async () => { const indexPattern = 'cloud_roll_index'; const isRollup = true; const { newJobCaps } = newJobCapsProvider(mlClusterClientRollupMock); const response = await newJobCaps(indexPattern, isRollup, savedObjectsClientMock); expect(response).toEqual(cloudwatchJobCaps); - done(); }); - it('can get non rollup job caps for rollup index pattern', async (done) => { + it('can get non rollup job caps for rollup index pattern', async () => { const indexPattern = 'cloud_roll_index'; const isRollup = false; const { newJobCaps } = newJobCapsProvider(mlClusterClientRollupMock); const response = await newJobCaps(indexPattern, isRollup, savedObjectsClientMock); expect(response).not.toEqual(cloudwatchJobCaps); - done(); }); }); }); diff --git a/x-pack/plugins/monitoring/public/lib/ensure_minimum_time.test.js b/x-pack/plugins/monitoring/public/lib/ensure_minimum_time.test.js index f37dbe3283d29..eda9c17db4e39 100644 --- a/x-pack/plugins/monitoring/public/lib/ensure_minimum_time.test.js +++ b/x-pack/plugins/monitoring/public/lib/ensure_minimum_time.test.js @@ -7,28 +7,25 @@ import { ensureMinimumTime } from './ensure_minimum_time'; describe('ensureMinimumTime', () => { - it('resolves single promise', async (done) => { + it('resolves single promise', async () => { const promiseA = new Promise((resolve) => resolve('a')); const a = await ensureMinimumTime(promiseA, 0); expect(a).toBe('a'); - done(); }); - it('resolves multiple promises', async (done) => { + it('resolves multiple promises', async () => { const promiseA = new Promise((resolve) => resolve('a')); const promiseB = new Promise((resolve) => resolve('b')); const [a, b] = await ensureMinimumTime([promiseA, promiseB], 0); expect(a).toBe('a'); expect(b).toBe('b'); - done(); }); - it('resolves in the amount of time provided, at minimum', async (done) => { + it('resolves in the amount of time provided, at minimum', async () => { const startTime = new Date().getTime(); const promise = new Promise((resolve) => resolve()); await ensureMinimumTime(promise, 100); const endTime = new Date().getTime(); expect(endTime - startTime).toBeGreaterThanOrEqual(100); - done(); }); }); diff --git a/x-pack/plugins/monitoring/public/lib/setup_mode.test.js b/x-pack/plugins/monitoring/public/lib/setup_mode.test.js index 9aa5a6bdc0496..424da9d27ff0c 100644 --- a/x-pack/plugins/monitoring/public/lib/setup_mode.test.js +++ b/x-pack/plugins/monitoring/public/lib/setup_mode.test.js @@ -23,7 +23,13 @@ jest.mock('react-dom', () => ({ jest.mock('../legacy_shims', () => { return { Legacy: { - shims: { getAngularInjector: () => ({ get: () => ({ get: () => 'utc' }) }) }, + shims: { + getAngularInjector: () => ({ get: () => ({ get: () => 'utc' }) }), + toastNotifications: { + addDanger: jest.fn(), + }, + I18nContext: '<div>', + }, }, }; }); @@ -59,9 +65,6 @@ const angularStateMock = { // We are no longer waiting for setup mode data to be fetched when enabling // so we need to wait for the next tick for the async action to finish -function waitForSetupModeData(action) { - process.nextTick(action); -} function setModulesAndMocks() { jest.clearAllMocks().resetModules(); @@ -75,6 +78,10 @@ function setModulesAndMocks() { setSetupModeMenuItem = setupMode.setSetupModeMenuItem; } +function waitForSetupModeData() { + return new Promise((resolve) => process.nextTick(resolve)); +} + describe('setup_mode', () => { beforeEach(async () => { setModulesAndMocks(); @@ -96,22 +103,22 @@ describe('setup_mode', () => { }); it('should enable toggle mode', async () => { - initSetupModeState(angularStateMock.scope, angularStateMock.injector); - await toggleSetupMode(true); + await initSetupModeState(angularStateMock.scope, angularStateMock.injector); + toggleSetupMode(true); expect(injectorModulesMock.globalState.inSetupMode).toBe(true); }); it('should disable toggle mode', async () => { - initSetupModeState(angularStateMock.scope, angularStateMock.injector); - await toggleSetupMode(false); + await initSetupModeState(angularStateMock.scope, angularStateMock.injector); + toggleSetupMode(false); expect(injectorModulesMock.globalState.inSetupMode).toBe(false); }); it('should set top nav config', async () => { const render = require('react-dom').render; - initSetupModeState(angularStateMock.scope, angularStateMock.injector); + await initSetupModeState(angularStateMock.scope, angularStateMock.injector); setSetupModeMenuItem(); - await toggleSetupMode(true); + toggleSetupMode(true); expect(render.mock.calls.length).toBe(2); }); }); @@ -121,7 +128,7 @@ describe('setup_mode', () => { data = {}; }); - it('should not fetch data if the user does not have sufficient permissions', async (done) => { + it('should not fetch data if the user does not have sufficient permissions', async () => { const addDanger = jest.fn(); jest.doMock('../legacy_shims', () => ({ Legacy: { @@ -129,6 +136,7 @@ describe('setup_mode', () => { toastNotifications: { addDanger, }, + I18nContext: '<div>', }, }, })); @@ -138,20 +146,19 @@ describe('setup_mode', () => { }, }; setModulesAndMocks(); - initSetupModeState(angularStateMock.scope, angularStateMock.injector); - await toggleSetupMode(true); - waitForSetupModeData(() => { - const state = getSetupModeState(); - expect(state.enabled).toBe(false); - expect(addDanger).toHaveBeenCalledWith({ - title: 'Setup mode is not available', - text: 'You do not have the necessary permissions to do this.', - }); - done(); + await initSetupModeState(angularStateMock.scope, angularStateMock.injector); + toggleSetupMode(true); + await waitForSetupModeData(); + + const state = getSetupModeState(); + expect(state.enabled).toBe(false); + expect(addDanger).toHaveBeenCalledWith({ + title: 'Setup mode is not available', + text: 'You do not have the necessary permissions to do this.', }); }); - it('should set the newly discovered cluster uuid', async (done) => { + it('should set the newly discovered cluster uuid', async () => { const clusterUuid = '1ajy'; data = { _meta: { @@ -166,15 +173,14 @@ describe('setup_mode', () => { }, }, }; - initSetupModeState(angularStateMock.scope, angularStateMock.injector); - await toggleSetupMode(true); - waitForSetupModeData(() => { - expect(injectorModulesMock.globalState.cluster_uuid).toBe(clusterUuid); - done(); - }); + await initSetupModeState(angularStateMock.scope, angularStateMock.injector); + toggleSetupMode(true); + await waitForSetupModeData(); + + expect(injectorModulesMock.globalState.cluster_uuid).toBe(clusterUuid); }); - it('should fetch data for a given cluster', async (done) => { + it('should fetch data for a given cluster', async () => { const clusterUuid = '1ajy'; data = { _meta: { @@ -190,22 +196,23 @@ describe('setup_mode', () => { }, }; - initSetupModeState(angularStateMock.scope, angularStateMock.injector); - await toggleSetupMode(true); - waitForSetupModeData(() => { - expect(injectorModulesMock.$http.post).toHaveBeenCalledWith( - `../api/monitoring/v1/setup/collection/cluster/${clusterUuid}`, - { - ccs: undefined, - } - ); - done(); - }); + await initSetupModeState(angularStateMock.scope, angularStateMock.injector); + toggleSetupMode(true); + await waitForSetupModeData(); + + expect(injectorModulesMock.$http.post).toHaveBeenCalledWith( + `../api/monitoring/v1/setup/collection/cluster/${clusterUuid}`, + { + ccs: undefined, + } + ); }); it('should fetch data for a single node', async () => { - initSetupModeState(angularStateMock.scope, angularStateMock.injector); - await toggleSetupMode(true); + await initSetupModeState(angularStateMock.scope, angularStateMock.injector); + toggleSetupMode(true); + await waitForSetupModeData(); + injectorModulesMock.$http.post.mockClear(); await updateSetupModeData('45asd'); expect(injectorModulesMock.$http.post).toHaveBeenCalledWith( diff --git a/x-pack/plugins/monitoring/public/lib/setup_mode.tsx b/x-pack/plugins/monitoring/public/lib/setup_mode.tsx index 3e555c843a0bb..6b956ce71c009 100644 --- a/x-pack/plugins/monitoring/public/lib/setup_mode.tsx +++ b/x-pack/plugins/monitoring/public/lib/setup_mode.tsx @@ -206,7 +206,7 @@ export const initSetupModeState = async ($scope: any, $injector: any, callback?: const globalState = $injector.get('globalState'); if (globalState.inSetupMode) { - await toggleSetupMode(true); + toggleSetupMode(true); } }; diff --git a/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.test.ts b/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.test.ts index 932ebfdd22bbc..cee8a88000e29 100644 --- a/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.test.ts +++ b/x-pack/plugins/reporting/server/routes/lib/authorized_user_pre_routing.test.ts @@ -130,7 +130,7 @@ describe('authorized_user_pre_routing', function () { ).toMatchObject({ body: `Sorry, you don't have access to Reporting` }); }); - it('should return from handler when security is enabled and user has explicitly allowed role', async function (done) { + it('should return from handler when security is enabled and user has explicitly allowed role', function (done) { mockCore.getPluginSetupDeps = () => (({ // @ts-ignore diff --git a/x-pack/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 index f9f3cda6f2c20..3ac2ee5f5aadb 100644 --- a/x-pack/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 @@ -18,7 +18,7 @@ import { } from '../../components'; jest.mock('../../../../kibana_services', () => { - const services = require.requireActual('../../../../kibana_services'); + const services = jest.requireActual('../../../../kibana_services'); return { ...services, trackUiMetric: jest.fn(), diff --git a/x-pack/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 index e0fb73ef9c3bb..ea70bdb3fbc41 100644 --- a/x-pack/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 @@ -14,7 +14,7 @@ import { coreMock } from '../../../../../../../src/core/public/mocks'; const startMock = coreMock.createStart(); jest.mock('../../services', () => { - const services = require.requireActual('../../services'); + const services = jest.requireActual('../../services'); return { ...services, getRouterLinkProps: (link) => ({ href: link }), diff --git a/x-pack/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 index 481c419403754..462742bee978f 100644 --- a/x-pack/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 @@ -12,7 +12,7 @@ import { rollupJobsStore } from '../../../store'; import { JobTable } from './job_table'; jest.mock('../../../../kibana_services', () => { - const services = require.requireActual('../../../../kibana_services'); + const services = jest.requireActual('../../../../kibana_services'); return { ...services, trackUiMetric: jest.fn(), diff --git a/x-pack/plugins/rollup/public/test/client_integration/job_create_review.test.js b/x-pack/plugins/rollup/public/test/client_integration/job_create_review.test.js index 87fdabae18240..d50a718e5c529 100644 --- a/x-pack/plugins/rollup/public/test/client_integration/job_create_review.test.js +++ b/x-pack/plugins/rollup/public/test/client_integration/job_create_review.test.js @@ -16,7 +16,7 @@ jest.mock('lodash', () => ({ })); jest.mock('../../kibana_services', () => { - const services = require.requireActual('../../kibana_services'); + const services = jest.requireActual('../../kibana_services'); return { ...services, getUiStatsReporter: jest.fn(() => () => {}), diff --git a/x-pack/plugins/rollup/public/test/client_integration/job_list.test.js b/x-pack/plugins/rollup/public/test/client_integration/job_list.test.js index f05e9fd1decd6..4091f79052b23 100644 --- a/x-pack/plugins/rollup/public/test/client_integration/job_list.test.js +++ b/x-pack/plugins/rollup/public/test/client_integration/job_list.test.js @@ -10,7 +10,7 @@ import { JOBS } from './helpers/constants'; import { coreMock } from '../../../../../../src/core/public/mocks'; jest.mock('../../crud_app/services', () => { - const services = require.requireActual('../../crud_app/services'); + const services = jest.requireActual('../../crud_app/services'); return { ...services, getRouterLinkProps: (link) => ({ href: link }), @@ -18,7 +18,7 @@ jest.mock('../../crud_app/services', () => { }); jest.mock('../../kibana_services', () => { - const services = require.requireActual('../../kibana_services'); + const services = jest.requireActual('../../kibana_services'); return { ...services, getUiStatsReporter: jest.fn(() => () => {}), diff --git a/x-pack/plugins/rollup/public/test/client_integration/job_list_clone.test.js b/x-pack/plugins/rollup/public/test/client_integration/job_list_clone.test.js index 76be39a2c0e09..7513e88a01fc8 100644 --- a/x-pack/plugins/rollup/public/test/client_integration/job_list_clone.test.js +++ b/x-pack/plugins/rollup/public/test/client_integration/job_list_clone.test.js @@ -16,7 +16,7 @@ jest.mock('lodash', () => ({ })); jest.mock('../../kibana_services', () => { - const services = require.requireActual('../../kibana_services'); + const services = jest.requireActual('../../kibana_services'); return { ...services, getUiStatsReporter: jest.fn(() => () => {}), diff --git a/x-pack/plugins/security_solution/public/network/components/flow_controls/__snapshots__/flow_target_select.test.tsx.snap b/x-pack/plugins/security_solution/public/network/components/flow_controls/__snapshots__/flow_target_select.test.tsx.snap index 6e38b5eeff5f6..efc4d4be9e957 100644 --- a/x-pack/plugins/security_solution/public/network/components/flow_controls/__snapshots__/flow_target_select.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/network/components/flow_controls/__snapshots__/flow_target_select.test.tsx.snap @@ -7,21 +7,7 @@ exports[`FlowTargetSelect Component rendering it renders the FlowTargetSelect 1` hasDividers={false} isInvalid={false} isLoading={false} - onChange={ - [MockFunction] { - "calls": Array [ - Array [ - "destination", - ], - ], - "results": Array [ - Object { - "type": "return", - "value": undefined, - }, - ], - } - } + onChange={[MockFunction]} options={ Array [ Object { diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/properties/new_template_timeline.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/properties/new_template_timeline.test.tsx index b142484872813..b6e921ae9c001 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/properties/new_template_timeline.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/properties/new_template_timeline.test.tsx @@ -38,6 +38,10 @@ describe('NewTemplateTimeline', () => { const mockTitle = 'NEW_TIMELINE'; let wrapper: ReactWrapper; + beforeEach(() => { + jest.clearAllMocks(); + }); + describe('render if CRUD', () => { beforeAll(() => { (useKibana as jest.Mock).mockReturnValue({ @@ -52,10 +56,6 @@ describe('NewTemplateTimeline', () => { }, }); - afterAll(() => { - (useKibana as jest.Mock).mockReset(); - }); - wrapper = mount( <ReduxStoreProvider store={store}> <NewTemplateTimeline outline={true} closeGearMenu={mockClosePopover} title={mockTitle} /> @@ -100,10 +100,6 @@ describe('NewTemplateTimeline', () => { ); }); - afterAll(() => { - (useKibana as jest.Mock).mockReset(); - }); - test('no render', () => { expect( wrapper.find('[data-test-subj="template-timeline-new-with-border"]').exists() diff --git a/x-pack/plugins/task_manager/server/lib/bulk_operation_buffer.test.ts b/x-pack/plugins/task_manager/server/lib/bulk_operation_buffer.test.ts index 25abd92b32a26..c007b32338496 100644 --- a/x-pack/plugins/task_manager/server/lib/bulk_operation_buffer.test.ts +++ b/x-pack/plugins/task_manager/server/lib/bulk_operation_buffer.test.ts @@ -161,7 +161,7 @@ describe('Bulk Operation Buffer', () => { }); }); - test('handles both resolutions and rejections at individual task level', async (done) => { + test('handles both resolutions and rejections at individual task level', async () => { const bulkUpdate: jest.Mocked<BulkOperation<TaskInstance, Error>> = jest.fn( ([task1, task2, task3]) => { return Promise.resolve([ @@ -178,7 +178,7 @@ describe('Bulk Operation Buffer', () => { const task2 = createTask(); const task3 = createTask(); - return Promise.all([ + await Promise.all([ expect(bufferedUpdate(task1)).resolves.toMatchObject(incrementAttempts(task1)), expect(bufferedUpdate(task2)).rejects.toMatchObject( mapErr( @@ -187,13 +187,12 @@ describe('Bulk Operation Buffer', () => { ) ), expect(bufferedUpdate(task3)).resolves.toMatchObject(incrementAttempts(task3)), - ]).then(() => { - expect(bulkUpdate).toHaveBeenCalledTimes(1); - done(); - }); + ]); + + expect(bulkUpdate).toHaveBeenCalledTimes(1); }); - test('handles bulkUpdate failure', async (done) => { + test('handles bulkUpdate failure', async () => { const bulkUpdate: jest.Mocked<BulkOperation<TaskInstance, Error>> = jest.fn(() => { return Promise.reject(new Error('bulkUpdate is an illusion')); }); @@ -204,7 +203,7 @@ describe('Bulk Operation Buffer', () => { const task2 = createTask(); const task3 = createTask(); - return Promise.all([ + await Promise.all([ expect(bufferedUpdate(task1)).rejects.toMatchInlineSnapshot(` Object { "error": [Error: bulkUpdate is an illusion], @@ -223,13 +222,12 @@ describe('Bulk Operation Buffer', () => { "tag": "err", } `), - ]).then(() => { - expect(bulkUpdate).toHaveBeenCalledTimes(1); - done(); - }); + ]); + + expect(bulkUpdate).toHaveBeenCalledTimes(1); }); - test('logs unknown bulk operation results', async (done) => { + test('logs unknown bulk operation results', async () => { const bulkUpdate: jest.Mocked<BulkOperation<TaskInstance, Error>> = jest.fn( ([task1, task2, task3]) => { return Promise.resolve([ @@ -248,7 +246,7 @@ describe('Bulk Operation Buffer', () => { const task2 = createTask(); const task3 = createTask(); - return Promise.all([ + await Promise.all([ expect(bufferedUpdate(task1)).resolves.toMatchObject(incrementAttempts(task1)), expect(bufferedUpdate(task2)).rejects.toMatchObject( asErr(new Error(`Unhandled buffered operation for entity: ${task2.id}`)) @@ -256,10 +254,9 @@ describe('Bulk Operation Buffer', () => { expect(bufferedUpdate(task3)).rejects.toMatchObject( asErr(new Error(`Unhandled buffered operation for entity: ${task3.id}`)) ), - ]).then(() => { - expect(logger.warn).toHaveBeenCalledTimes(2); - done(); - }); + ]); + + expect(logger.warn).toHaveBeenCalledTimes(2); }); }); }); diff --git a/x-pack/plugins/task_manager/server/task_store.test.ts b/x-pack/plugins/task_manager/server/task_store.test.ts index 45c41b4d1d69d..f5fafe83748d9 100644 --- a/x-pack/plugins/task_manager/server/task_store.test.ts +++ b/x-pack/plugins/task_manager/server/task_store.test.ts @@ -7,7 +7,7 @@ import _ from 'lodash'; import sinon from 'sinon'; import uuid from 'uuid'; -import { filter } from 'rxjs/operators'; +import { filter, take } from 'rxjs/operators'; import { Option, some, none } from 'fp-ts/lib/Option'; import { @@ -1242,7 +1242,7 @@ if (doc['task.runAt'].size()!=0) { return { taskManagerId, runAt, tasks }; } - test('emits an event when a task is succesfully claimed by id', async (done) => { + test('emits an event when a task is succesfully claimed by id', async () => { const { taskManagerId, runAt, tasks } = generateTasks(); const callCluster = sinon.spy(async (name: string, params?: unknown) => name === 'updateByQuery' @@ -1262,49 +1262,47 @@ if (doc['task.runAt'].size()!=0) { index: '', }); - const sub = store.events + const promise = store.events .pipe( filter( (event: TaskEvent<ConcreteTaskInstance, Option<ConcreteTaskInstance>>) => event.id === 'claimed-by-id' - ) + ), + take(1) ) - .subscribe({ - next: (event: TaskEvent<ConcreteTaskInstance, Option<ConcreteTaskInstance>>) => { - expect(event).toMatchObject( - asTaskClaimEvent( - 'claimed-by-id', - asOk({ - id: 'claimed-by-id', - runAt, - taskType: 'foo', - schedule: undefined, - attempts: 0, - status: 'claiming' as TaskStatus, - params: { hello: 'world' }, - state: { baby: 'Henhen' }, - user: 'jimbo', - scope: ['reporting'], - ownerId: taskManagerId, - startedAt: null, - retryAt: null, - scheduledAt: new Date(), - }) - ) - ); - sub.unsubscribe(); - done(); - }, - }); + .toPromise(); await store.claimAvailableTasks({ claimTasksById: ['claimed-by-id'], claimOwnershipUntil: new Date(), size: 10, }); + + const event = await promise; + expect(event).toMatchObject( + asTaskClaimEvent( + 'claimed-by-id', + asOk({ + id: 'claimed-by-id', + runAt, + taskType: 'foo', + schedule: undefined, + attempts: 0, + status: 'claiming' as TaskStatus, + params: { hello: 'world' }, + state: { baby: 'Henhen' }, + user: 'jimbo', + scope: ['reporting'], + ownerId: taskManagerId, + startedAt: null, + retryAt: null, + scheduledAt: new Date(), + }) + ) + ); }); - test('emits an event when a task is succesfully by scheduling', async (done) => { + test('emits an event when a task is succesfully by scheduling', async () => { const { taskManagerId, runAt, tasks } = generateTasks(); const callCluster = sinon.spy(async (name: string, params?: unknown) => name === 'updateByQuery' @@ -1324,49 +1322,47 @@ if (doc['task.runAt'].size()!=0) { index: '', }); - const sub = store.events + const promise = store.events .pipe( filter( (event: TaskEvent<ConcreteTaskInstance, Option<ConcreteTaskInstance>>) => event.id === 'claimed-by-schedule' - ) + ), + take(1) ) - .subscribe({ - next: (event: TaskEvent<ConcreteTaskInstance, Option<ConcreteTaskInstance>>) => { - expect(event).toMatchObject( - asTaskClaimEvent( - 'claimed-by-schedule', - asOk({ - id: 'claimed-by-schedule', - runAt, - taskType: 'bar', - schedule: { interval: '5m' }, - attempts: 2, - status: 'claiming' as TaskStatus, - params: { shazm: 1 }, - state: { henry: 'The 8th' }, - user: 'dabo', - scope: ['reporting', 'ceo'], - ownerId: taskManagerId, - startedAt: null, - retryAt: null, - scheduledAt: new Date(), - }) - ) - ); - sub.unsubscribe(); - done(); - }, - }); + .toPromise(); await store.claimAvailableTasks({ claimTasksById: ['claimed-by-id'], claimOwnershipUntil: new Date(), size: 10, }); + + const event = await promise; + expect(event).toMatchObject( + asTaskClaimEvent( + 'claimed-by-schedule', + asOk({ + id: 'claimed-by-schedule', + runAt, + taskType: 'bar', + schedule: { interval: '5m' }, + attempts: 2, + status: 'claiming' as TaskStatus, + params: { shazm: 1 }, + state: { henry: 'The 8th' }, + user: 'dabo', + scope: ['reporting', 'ceo'], + ownerId: taskManagerId, + startedAt: null, + retryAt: null, + scheduledAt: new Date(), + }) + ) + ); }); - test('emits an event when the store fails to claim a required task by id', async (done) => { + test('emits an event when the store fails to claim a required task by id', async () => { const { taskManagerId, runAt, tasks } = generateTasks(); const callCluster = sinon.spy(async (name: string, params?: unknown) => name === 'updateByQuery' @@ -1386,51 +1382,49 @@ if (doc['task.runAt'].size()!=0) { index: '', }); - const sub = store.events + const promise = store.events .pipe( filter( (event: TaskEvent<ConcreteTaskInstance, Option<ConcreteTaskInstance>>) => event.id === 'already-running' - ) + ), + take(1) ) - .subscribe({ - next: (event: TaskEvent<ConcreteTaskInstance, Option<ConcreteTaskInstance>>) => { - expect(event).toMatchObject( - asTaskClaimEvent( - 'already-running', - asErr( - some({ - id: 'already-running', - runAt, - taskType: 'bar', - schedule: { interval: '5m' }, - attempts: 2, - status: 'running' as TaskStatus, - params: { shazm: 1 }, - state: { henry: 'The 8th' }, - user: 'dabo', - scope: ['reporting', 'ceo'], - ownerId: taskManagerId, - startedAt: null, - retryAt: null, - scheduledAt: new Date(), - }) - ) - ) - ); - sub.unsubscribe(); - done(); - }, - }); + .toPromise(); await store.claimAvailableTasks({ claimTasksById: ['already-running'], claimOwnershipUntil: new Date(), size: 10, }); + + const event = await promise; + expect(event).toMatchObject( + asTaskClaimEvent( + 'already-running', + asErr( + some({ + id: 'already-running', + runAt, + taskType: 'bar', + schedule: { interval: '5m' }, + attempts: 2, + status: 'running' as TaskStatus, + params: { shazm: 1 }, + state: { henry: 'The 8th' }, + user: 'dabo', + scope: ['reporting', 'ceo'], + ownerId: taskManagerId, + startedAt: null, + retryAt: null, + scheduledAt: new Date(), + }) + ) + ) + ); }); - test('emits an event when the store fails to find a task which was required by id', async (done) => { + test('emits an event when the store fails to find a task which was required by id', async () => { const { taskManagerId, tasks } = generateTasks(); const callCluster = sinon.spy(async (name: string, params?: unknown) => name === 'updateByQuery' @@ -1450,26 +1444,24 @@ if (doc['task.runAt'].size()!=0) { index: '', }); - const sub = store.events + const promise = store.events .pipe( filter( (event: TaskEvent<ConcreteTaskInstance, Option<ConcreteTaskInstance>>) => event.id === 'unknown-task' - ) + ), + take(1) ) - .subscribe({ - next: (event: TaskEvent<ConcreteTaskInstance, Option<ConcreteTaskInstance>>) => { - expect(event).toMatchObject(asTaskClaimEvent('unknown-task', asErr(none))); - sub.unsubscribe(); - done(); - }, - }); + .toPromise(); await store.claimAvailableTasks({ claimTasksById: ['unknown-task'], claimOwnershipUntil: new Date(), size: 10, }); + + const event = await promise; + expect(event).toMatchObject(asTaskClaimEvent('unknown-task', asErr(none))); }); }); }); diff --git a/x-pack/plugins/transform/public/app/hooks/use_index_data.test.tsx b/x-pack/plugins/transform/public/app/hooks/use_index_data.test.tsx index 4d752ee65fbfd..8b514b3e06519 100644 --- a/x-pack/plugins/transform/public/app/hooks/use_index_data.test.tsx +++ b/x-pack/plugins/transform/public/app/hooks/use_index_data.test.tsx @@ -6,7 +6,7 @@ import React, { FC } from 'react'; -import { render, wait } from '@testing-library/react'; +import { render } from '@testing-library/react'; import { renderHook } from '@testing-library/react-hooks'; import { CoreSetup } from 'src/core/public'; @@ -33,7 +33,7 @@ const query: SimpleQuery = { }; describe('Transform: useIndexData()', () => { - test('indexPattern set triggers loading', async (done) => { + test('indexPattern set triggers loading', async () => { const mlShared = await getMlSharedImports(); const wrapper: FC = ({ children }) => ( <MlSharedContext.Provider value={mlShared}>{children}</MlSharedContext.Provider> @@ -58,13 +58,11 @@ describe('Transform: useIndexData()', () => { expect(IndexObj.errorMessage).toBe(''); expect(IndexObj.status).toBe(1); expect(IndexObj.tableItems).toEqual([]); - done(); }); }); describe('Transform: <DataGrid /> with useIndexData()', () => { - // Using the async/await wait()/done() pattern to avoid act() errors. - test('Minimal initialization', async (done) => { + test('Minimal initialization', async () => { // Arrange const indexPattern = { title: 'the-index-pattern-title', @@ -97,7 +95,5 @@ describe('Transform: <DataGrid /> with useIndexData()', () => { // Act // Assert expect(getByText('the-index-preview-title')).toBeInTheDocument(); - await wait(); - done(); }); }); diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/step_define_form.test.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/step_define_form.test.tsx index cf1bfda6128ef..a03ce841a09ad 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/step_define_form.test.tsx +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/step_define_form.test.tsx @@ -5,7 +5,7 @@ */ import React from 'react'; -import { render, wait } from '@testing-library/react'; +import { render } from '@testing-library/react'; import { I18nProvider } from '@kbn/i18n/react'; @@ -51,8 +51,7 @@ const createMockStorage = () => ({ }); describe('Transform: <DefinePivotForm />', () => { - // Using the async/await wait()/done() pattern to avoid act() errors. - test('Minimal initialization', async (done) => { + test('Minimal initialization', async () => { // Arrange const mlSharedImports = await getMlSharedImports(); @@ -85,8 +84,6 @@ describe('Transform: <DefinePivotForm />', () => { // Assert expect(getByText('Index pattern')).toBeInTheDocument(); expect(getByText(searchItems.indexPattern.title)).toBeInTheDocument(); - await wait(); - done(); }); }); diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/step_define_summary.test.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/step_define_summary.test.tsx index 7aed0568e6efc..b3cd8a2937952 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/step_define_summary.test.tsx +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/step_define_summary.test.tsx @@ -27,7 +27,7 @@ import { getMlSharedImports } from '../../../../../shared_imports'; describe('Transform: <DefinePivotSummary />', () => { // Using the async/await wait()/done() pattern to avoid act() errors. - test('Minimal initialization', async (done) => { + test('Minimal initialization', async () => { // Arrange const mlSharedImports = await getMlSharedImports(); @@ -72,6 +72,5 @@ describe('Transform: <DefinePivotSummary />', () => { expect(getByText('Group by')).toBeInTheDocument(); expect(getByText('Aggregations')).toBeInTheDocument(); await wait(); - done(); }); }); diff --git a/x-pack/plugins/ui_actions_enhanced/public/custom_time_range_action.test.ts b/x-pack/plugins/ui_actions_enhanced/public/custom_time_range_action.test.ts index 9af79c9ac5259..99971c42e5512 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/custom_time_range_action.test.ts +++ b/x-pack/plugins/ui_actions_enhanced/public/custom_time_range_action.test.ts @@ -5,7 +5,7 @@ */ import { findTestSubject } from '@elastic/eui/lib/test'; -import { skip } from 'rxjs/operators'; +import { skip, take } from 'rxjs/operators'; import * as Rx from 'rxjs'; import { mount } from 'enzyme'; @@ -27,7 +27,7 @@ const createOpenModalMock = () => { return mock; }; -test('Custom time range action prevents embeddable from using container time', async (done) => { +test('Custom time range action prevents embeddable from using container time', async () => { const container = new TimeRangeContainer( { timeRange: { from: 'now-15m', to: 'now' }, @@ -79,19 +79,19 @@ test('Custom time range action prevents embeddable from using container time', a findTestSubject(wrapper, 'addPerPanelTimeRangeButton').simulate('click'); - const subscription = Rx.merge(container.getOutput$(), container.getInput$()) - .pipe(skip(2)) - .subscribe(() => { - expect(child1.getInput().timeRange).toEqual({ from: 'now-30days', to: 'now-29days' }); - expect(child2.getInput().timeRange).toEqual({ from: 'now-30m', to: 'now-1m' }); - subscription.unsubscribe(); - done(); - }); + const promise = Rx.merge(container.getOutput$(), container.getOutput$(), container.getInput$()) + .pipe(skip(2), take(1)) + .toPromise(); container.updateInput({ timeRange: { from: 'now-30m', to: 'now-1m' } }); + + await promise; + + expect(child1.getInput().timeRange).toEqual({ from: 'now-30days', to: 'now-29days' }); + expect(child2.getInput().timeRange).toEqual({ from: 'now-30m', to: 'now-1m' }); }); -test('Removing custom time range action resets embeddable back to container time', async (done) => { +test('Removing custom time range action resets embeddable back to container time', async () => { const container = new TimeRangeContainer( { timeRange: { from: 'now-15m', to: 'now' }, @@ -153,19 +153,19 @@ test('Removing custom time range action resets embeddable back to container time const wrapper2 = mount(openModal2); findTestSubject(wrapper2, 'removePerPanelTimeRangeButton').simulate('click'); - const subscription = Rx.merge(container.getOutput$(), container.getInput$()) - .pipe(skip(2)) - .subscribe(() => { - expect(child1.getInput().timeRange).toEqual({ from: 'now-10m', to: 'now-5m' }); - expect(child2.getInput().timeRange).toEqual({ from: 'now-10m', to: 'now-5m' }); - subscription.unsubscribe(); - done(); - }); + const promise = Rx.merge(container.getOutput$(), container.getOutput$(), container.getInput$()) + .pipe(skip(2), take(1)) + .toPromise(); container.updateInput({ timeRange: { from: 'now-10m', to: 'now-5m' } }); + + await promise; + + expect(child1.getInput().timeRange).toEqual({ from: 'now-10m', to: 'now-5m' }); + expect(child2.getInput().timeRange).toEqual({ from: 'now-10m', to: 'now-5m' }); }); -test('Cancelling custom time range action leaves state alone', async (done) => { +test('Cancelling custom time range action leaves state alone', async () => { const container = new TimeRangeContainer( { timeRange: { from: 'now-15m', to: 'now' }, @@ -212,16 +212,16 @@ test('Cancelling custom time range action leaves state alone', async (done) => { findTestSubject(wrapper, 'cancelPerPanelTimeRangeButton').simulate('click'); - const subscription = Rx.merge(container.getOutput$(), container.getInput$()) - .pipe(skip(2)) - .subscribe(() => { - expect(child1.getInput().timeRange).toEqual({ from: '1', to: '2' }); - expect(child2.getInput().timeRange).toEqual({ from: 'now-30m', to: 'now-1m' }); - subscription.unsubscribe(); - done(); - }); + const promise = Rx.merge(container.getOutput$(), container.getOutput$(), container.getInput$()) + .pipe(skip(2), take(1)) + .toPromise(); container.updateInput({ timeRange: { from: 'now-30m', to: 'now-1m' } }); + + await promise; + + expect(child1.getInput().timeRange).toEqual({ from: '1', to: '2' }); + expect(child2.getInput().timeRange).toEqual({ from: 'now-30m', to: 'now-1m' }); }); test(`badge is compatible with embeddable that inherits from parent`, async () => { diff --git a/x-pack/plugins/ui_actions_enhanced/public/custom_time_range_badge.test.ts b/x-pack/plugins/ui_actions_enhanced/public/custom_time_range_badge.test.ts index 03fb80c3ce75b..a839079137905 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/custom_time_range_badge.test.ts +++ b/x-pack/plugins/ui_actions_enhanced/public/custom_time_range_badge.test.ts @@ -5,7 +5,7 @@ */ import { findTestSubject } from '@elastic/eui/lib/test'; -import { skip } from 'rxjs/operators'; +import { skip, take } from 'rxjs/operators'; import * as Rx from 'rxjs'; import { mount } from 'enzyme'; import { TimeRangeEmbeddable, TimeRangeContainer, TIME_RANGE_EMBEDDABLE } from './test_helpers'; @@ -13,7 +13,7 @@ import { CustomTimeRangeBadge } from './custom_time_range_badge'; import { ReactElement } from 'react'; import { nextTick } from 'test_utils/enzyme_helpers'; -test('Removing custom time range from badge resets embeddable back to container time', async (done) => { +test('Removing custom time range from badge resets embeddable back to container time', async () => { const container = new TimeRangeContainer( { timeRange: { from: 'now-15m', to: 'now' }, @@ -60,16 +60,16 @@ test('Removing custom time range from badge resets embeddable back to container const wrapper = mount(openModal); findTestSubject(wrapper, 'removePerPanelTimeRangeButton').simulate('click'); - const subscription = Rx.merge(child1.getInput$(), container.getOutput$(), container.getInput$()) - .pipe(skip(4)) - .subscribe(() => { - expect(child1.getInput().timeRange).toEqual({ from: 'now-10m', to: 'now-5m' }); - expect(child2.getInput().timeRange).toEqual({ from: 'now-10m', to: 'now-5m' }); - subscription.unsubscribe(); - done(); - }); + const promise = Rx.merge(child1.getInput$(), container.getOutput$(), container.getInput$()) + .pipe(skip(4), take(1)) + .toPromise(); container.updateInput({ timeRange: { from: 'now-10m', to: 'now-5m' } }); + + await promise; + + expect(child1.getInput().timeRange).toEqual({ from: 'now-10m', to: 'now-5m' }); + expect(child2.getInput().timeRange).toEqual({ from: 'now-10m', to: 'now-5m' }); }); test(`badge is not compatible with embeddable that inherits from parent`, async () => { diff --git a/yarn.lock b/yarn.lock index 876f938cfce88..77e3a399c4313 100644 --- a/yarn.lock +++ b/yarn.lock @@ -514,6 +514,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" @@ -1650,59 +1657,61 @@ chalk "^2.0.1" slash "^2.0.0" -"@jest/console@^25.5.0": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.5.0.tgz#770800799d510f37329c508a9edd0b7b447d9abb" - integrity sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw== +"@jest/console@^26.3.0": + version "26.3.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.3.0.tgz#ed04063efb280c88ba87388b6f16427c0a85c856" + integrity sha512-/5Pn6sJev0nPUcAdpJHMVIsA8sKizL2ZkcKPE5+dJrCccks7tcM7c9wbgHudBJbxXLoTbqsHkG1Dofoem4F09w== dependencies: - "@jest/types" "^25.5.0" - chalk "^3.0.0" - jest-message-util "^25.5.0" - jest-util "^25.5.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.3.0" + jest-util "^26.3.0" slash "^3.0.0" -"@jest/core@^25.5.4": - version "25.5.4" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.5.4.tgz#3ef7412f7339210f003cdf36646bbca786efe7b4" - integrity sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA== +"@jest/core@^26.4.2": + version "26.4.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.4.2.tgz#85d0894f31ac29b5bab07aa86806d03dd3d33edc" + integrity sha512-sDva7YkeNprxJfepOctzS8cAk9TOekldh+5FhVuXS40+94SHbiicRO1VV2tSoRtgIo+POs/Cdyf8p76vPTd6dg== dependencies: - "@jest/console" "^25.5.0" - "@jest/reporters" "^25.5.1" - "@jest/test-result" "^25.5.0" - "@jest/transform" "^25.5.1" - "@jest/types" "^25.5.0" + "@jest/console" "^26.3.0" + "@jest/reporters" "^26.4.1" + "@jest/test-result" "^26.3.0" + "@jest/transform" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" ansi-escapes "^4.2.1" - chalk "^3.0.0" + chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^25.5.0" - jest-config "^25.5.4" - jest-haste-map "^25.5.1" - jest-message-util "^25.5.0" - jest-regex-util "^25.2.6" - jest-resolve "^25.5.1" - jest-resolve-dependencies "^25.5.4" - jest-runner "^25.5.4" - jest-runtime "^25.5.4" - jest-snapshot "^25.5.1" - jest-util "^25.5.0" - jest-validate "^25.5.0" - jest-watcher "^25.5.0" + jest-changed-files "^26.3.0" + jest-config "^26.4.2" + jest-haste-map "^26.3.0" + jest-message-util "^26.3.0" + jest-regex-util "^26.0.0" + jest-resolve "^26.4.0" + jest-resolve-dependencies "^26.4.2" + jest-runner "^26.4.2" + jest-runtime "^26.4.2" + jest-snapshot "^26.4.2" + jest-util "^26.3.0" + jest-validate "^26.4.2" + jest-watcher "^26.3.0" micromatch "^4.0.2" p-each-series "^2.1.0" - realpath-native "^2.0.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^25.5.0": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.5.0.tgz#aa33b0c21a716c65686638e7ef816c0e3a0c7b37" - integrity sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA== +"@jest/environment@^26.3.0": + version "26.3.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.3.0.tgz#e6953ab711ae3e44754a025f838bde1a7fd236a0" + integrity sha512-EW+MFEo0DGHahf83RAaiqQx688qpXgl99wdb8Fy67ybyzHwR1a58LHcO376xQJHfmoXTu89M09dH3J509cx2AA== dependencies: - "@jest/fake-timers" "^25.5.0" - "@jest/types" "^25.5.0" - jest-mock "^25.5.0" + "@jest/fake-timers" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + jest-mock "^26.3.0" "@jest/fake-timers@^24.9.0": version "24.9.0" @@ -1713,57 +1722,58 @@ jest-message-util "^24.9.0" jest-mock "^24.9.0" -"@jest/fake-timers@^25.5.0": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.5.0.tgz#46352e00533c024c90c2bc2ad9f2959f7f114185" - integrity sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ== +"@jest/fake-timers@^26.3.0": + version "26.3.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.3.0.tgz#f515d4667a6770f60ae06ae050f4e001126c666a" + integrity sha512-ZL9ytUiRwVP8ujfRepffokBvD2KbxbqMhrXSBhSdAhISCw3gOkuntisiSFv+A6HN0n0fF4cxzICEKZENLmW+1A== dependencies: - "@jest/types" "^25.5.0" - jest-message-util "^25.5.0" - jest-mock "^25.5.0" - jest-util "^25.5.0" - lolex "^5.0.0" + "@jest/types" "^26.3.0" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.3.0" + jest-mock "^26.3.0" + jest-util "^26.3.0" -"@jest/globals@^25.5.2": - version "25.5.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-25.5.2.tgz#5e45e9de8d228716af3257eeb3991cc2e162ca88" - integrity sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA== +"@jest/globals@^26.4.2": + version "26.4.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.4.2.tgz#73c2a862ac691d998889a241beb3dc9cada40d4a" + integrity sha512-Ot5ouAlehhHLRhc+sDz2/9bmNv9p5ZWZ9LE1pXGGTCXBasmi5jnYjlgYcYt03FBwLmZXCZ7GrL29c33/XRQiow== dependencies: - "@jest/environment" "^25.5.0" - "@jest/types" "^25.5.0" - expect "^25.5.0" + "@jest/environment" "^26.3.0" + "@jest/types" "^26.3.0" + expect "^26.4.2" -"@jest/reporters@^25.5.1": - version "25.5.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.5.1.tgz#cb686bcc680f664c2dbaf7ed873e93aa6811538b" - integrity sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw== +"@jest/reporters@^26.4.1": + version "26.4.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.4.1.tgz#3b4d6faf28650f3965f8b97bc3d114077fb71795" + integrity sha512-aROTkCLU8++yiRGVxLsuDmZsQEKO6LprlrxtAuzvtpbIFl3eIjgIf3EUxDKgomkS25R9ZzwGEdB5weCcBZlrpQ== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^25.5.0" - "@jest/test-result" "^25.5.0" - "@jest/transform" "^25.5.1" - "@jest/types" "^25.5.0" - chalk "^3.0.0" + "@jest/console" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/transform" "^26.3.0" + "@jest/types" "^26.3.0" + chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.2" graceful-fs "^4.2.4" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.0" + istanbul-lib-instrument "^4.0.3" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^25.5.1" - jest-resolve "^25.5.1" - jest-util "^25.5.0" - jest-worker "^25.5.0" + jest-haste-map "^26.3.0" + jest-resolve "^26.4.0" + jest-util "^26.3.0" + jest-worker "^26.3.0" slash "^3.0.0" source-map "^0.6.0" - string-length "^3.1.0" + string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^4.1.3" + v8-to-istanbul "^5.0.1" optionalDependencies: - node-notifier "^6.0.0" + node-notifier "^8.0.0" "@jest/source-map@^24.9.0": version "24.9.0" @@ -1774,10 +1784,10 @@ graceful-fs "^4.1.15" source-map "^0.6.0" -"@jest/source-map@^25.5.0": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.5.0.tgz#df5c20d6050aa292c2c6d3f0d2c7606af315bd1b" - integrity sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ== +"@jest/source-map@^26.3.0": + version "26.3.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.3.0.tgz#0e646e519883c14c551f7b5ae4ff5f1bfe4fc3d9" + integrity sha512-hWX5IHmMDWe1kyrKl7IhFwqOuAreIwHhbe44+XH2ZRHjrKIh0LO5eLQ/vxHFeAfRwJapmxuqlGAEYLadDq6ZGQ== dependencies: callsites "^3.0.0" graceful-fs "^4.2.4" @@ -1792,50 +1802,28 @@ "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/test-result@^25.5.0": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.5.0.tgz#139a043230cdeffe9ba2d8341b27f2efc77ce87c" - integrity sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A== +"@jest/test-result@^26.3.0": + version "26.3.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.3.0.tgz#46cde01fa10c0aaeb7431bf71e4a20d885bc7fdb" + integrity sha512-a8rbLqzW/q7HWheFVMtghXV79Xk+GWwOK1FrtimpI5n1la2SY0qHri3/b0/1F0Ve0/yJmV8pEhxDfVwiUBGtgg== dependencies: - "@jest/console" "^25.5.0" - "@jest/types" "^25.5.0" + "@jest/console" "^26.3.0" + "@jest/types" "^26.3.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^25.5.4": - version "25.5.4" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737" - integrity sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA== - dependencies: - "@jest/test-result" "^25.5.0" - graceful-fs "^4.2.4" - jest-haste-map "^25.5.1" - jest-runner "^25.5.4" - jest-runtime "^25.5.4" - -"@jest/transform@^25.5.1": - version "25.5.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3" - integrity sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg== +"@jest/test-sequencer@^26.4.2": + version "26.4.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.4.2.tgz#58a3760a61eec758a2ce6080201424580d97cbba" + integrity sha512-83DRD8N3M0tOhz9h0bn6Kl6dSp+US6DazuVF8J9m21WAp5x7CqSMaNycMP0aemC/SH/pDQQddbsfHRTBXVUgog== dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^25.5.0" - babel-plugin-istanbul "^6.0.0" - chalk "^3.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" + "@jest/test-result" "^26.3.0" graceful-fs "^4.2.4" - jest-haste-map "^25.5.1" - jest-regex-util "^25.2.6" - jest-util "^25.5.0" - micromatch "^4.0.2" - pirates "^4.0.1" - realpath-native "^2.0.0" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" + jest-haste-map "^26.3.0" + jest-runner "^26.4.2" + jest-runtime "^26.4.2" -"@jest/transform@^26.0.0": +"@jest/transform@^26.0.0", "@jest/transform@^26.3.0": version "26.3.0" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.3.0.tgz#c393e0e01459da8a8bfc6d2a7c2ece1a13e8ba55" integrity sha512-Isj6NB68QorGoFWvcOjlUhpkT56PqNIsXKR7XfvoDlCANn/IANlh8DrKAA2l2JKC3yWSMH5wS0GwuQM20w3b2A== @@ -2841,6 +2829,13 @@ dependencies: type-detect "4.0.8" +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + "@sinonjs/formatio@^3.2.1": version "3.2.2" resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c" @@ -3753,6 +3748,17 @@ resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.4.tgz#bfd5b0d0d1ba13e351dff65b6e52783b816826c8" integrity sha512-WiZhq3SVJHFRgRYLXvpf65XnV6ipVHhnNaNvE8yCimejrGglkg38kEj0JcizqwSHxmPSjcTlig/6JouxLGEhGw== +"@types/babel__core@^7.0.0": + version "7.1.10" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.10.tgz#ca58fc195dd9734e77e57c6f2df565623636ab40" + integrity sha512-x8OM8XzITIMyiwl5Vmo2B1cR1S1Ipkyv4mdlbJjMa1lmuKvKY9FrBbEANIaMlnWn5Rf7uO+rC/VgYabNkE17Hw== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__core@^7.1.2": version "7.1.2" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" @@ -4374,7 +4380,7 @@ dependencies: "@types/jest" "*" -"@types/jest@*", "@types/jest@^25.1.1", "@types/jest@^25.2.3": +"@types/jest@*", "@types/jest@^25.1.1": version "25.2.3" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.2.3.tgz#33d27e4c4716caae4eced355097a47ad363fdcaf" integrity sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw== @@ -4382,6 +4388,14 @@ jest-diff "^25.2.1" pretty-format "^25.2.1" +"@types/jest@^26.0.14": + version "26.0.14" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.14.tgz#078695f8f65cb55c5a98450d65083b2b73e5a3f3" + integrity sha512-Hz5q8Vu0D288x3iWXePSn53W7hAjP0H7EQ6QvDO9c7t46mR0lNOLlfuwQ+JkVxuhygHzlzPX+0jKdA3ZgSh+Vg== + dependencies: + jest-diff "^25.2.1" + pretty-format "^25.2.1" + "@types/joi@*", "@types/joi@^13.4.2": version "13.6.1" resolved "https://registry.yarnpkg.com/@types/joi/-/joi-13.6.1.tgz#325486a397504f8e22c8c551dc8b0e1d41d5d5ae" @@ -4768,11 +4782,6 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.16.1.tgz#328d1c9b54402e44119398bcb6a31b7bbd606d59" integrity sha512-db6pZL5QY3JrlCHBhYQzYDci0xnoDuxfseUuguLRr3JNk+bnCfpkK6p8quiUDyO8A0vbpBKkk59Fw125etrNeA== -"@types/prettier@^1.19.0": - version "1.19.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" - integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== - "@types/prettier@^2.0.0", "@types/prettier@^2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.0.2.tgz#5bb52ee68d0f8efa9cc0099920e56be6cc4e37f3" @@ -5166,13 +5175,20 @@ resolved "https://registry.yarnpkg.com/@types/tempy/-/tempy-0.2.0.tgz#8b7a93f6912aef25cc0b8d8a80ff974151478685" integrity sha512-YaX74QljqR45Xu7dd22wMvzTS+ItUiSyDl9XJl6WTgYNE09r2TF+mV2FDjWRM5Sdzf9C9dXRTUdz9J5SoEYxXg== -"@types/testing-library__jest-dom@^5.9.1", "@types/testing-library__jest-dom@^5.9.2": +"@types/testing-library__jest-dom@^5.9.1": version "5.9.2" resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.2.tgz#59e4771a1cf87d51e89a5cc8195cd3b647cba322" integrity sha512-K7nUSpH/5i8i0NagTJ+uFUDRueDlnMNhJtMjMwTGPPSqyImbWC/hgKPDCKt6Phu2iMJg2kWqlax+Ucj2DKMwpA== dependencies: "@types/jest" "*" +"@types/testing-library__jest-dom@^5.9.3": + version "5.9.3" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.3.tgz#574039e210140a536c6ec891063289fb742a75eb" + integrity sha512-5YxiCFA2vk0cxq2LIxYgHBpFlnJvMH9bkUIVNin+1GXT+LZgVOgXBeEyyo2ZrGXMO/KWe1ZV3p7Kb6LJAvJasw== + dependencies: + "@types/jest" "*" + "@types/testing-library__react-hooks@^3.3.0", "@types/testing-library__react-hooks@^3.4.0": version "3.4.0" resolved "https://registry.yarnpkg.com/@types/testing-library__react-hooks/-/testing-library__react-hooks-3.4.0.tgz#be148b7fa7d19cd3349c4ef9d9534486bc582fcc" @@ -5409,14 +5425,17 @@ eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/experimental-utils@^2.5.0": - version "2.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.15.0.tgz#41e35313bfaef91650ddb5380846d1c78a780070" - integrity sha512-Qkxu5zndY5hqlcQkmA88gfLvqQulMpX/TN91XC7OuXsRf4XG5xLGie0sbpX97o/oeccjeZYRMipIsjKk/tjDHA== +"@typescript-eslint/experimental-utils@^4.0.1": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.3.0.tgz#3f3c6c508e01b8050d51b016e7f7da0e3aefcb87" + integrity sha512-cmmIK8shn3mxmhpKfzMMywqiEheyfXLV/+yPDnOTvQX/ztngx7Lg/OD26J8gTZfkLKUmaEBxO2jYP3keV7h2OQ== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.15.0" + "@typescript-eslint/scope-manager" "4.3.0" + "@typescript-eslint/types" "4.3.0" + "@typescript-eslint/typescript-estree" "4.3.0" eslint-scope "^5.0.0" + eslint-utils "^2.0.0" "@typescript-eslint/parser@^3.10.0": version "3.10.0" @@ -5429,23 +5448,23 @@ "@typescript-eslint/typescript-estree" "3.10.0" eslint-visitor-keys "^1.1.0" +"@typescript-eslint/scope-manager@4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.3.0.tgz#c743227e087545968080d2362cfb1273842cb6a7" + integrity sha512-cTeyP5SCNE8QBRfc+Lgh4Xpzje46kNUhXYfc3pQWmJif92sjrFuHT9hH4rtOkDTo/si9Klw53yIr+djqGZS1ig== + dependencies: + "@typescript-eslint/types" "4.3.0" + "@typescript-eslint/visitor-keys" "4.3.0" + "@typescript-eslint/types@3.10.0": version "3.10.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.0.tgz#b81906674eca94a884345ba0bc1aaf6cd4da912a" integrity sha512-ktUWSa75heQNwH85GRM7qP/UUrXqx9d6yIdw0iLO9/uE1LILW+i+3+B64dUodUS2WFWLzKTlwfi9giqrODibWg== -"@typescript-eslint/typescript-estree@2.15.0": - version "2.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.15.0.tgz#79ae52eed8701b164d91e968a65d85a9105e76d3" - integrity sha512-L6Pog+w3VZzXkAdyqA0VlwybF8WcwZX+mufso86CMxSdWmcizJ38lgBdpqTbc9bo92iyi0rOvmATKiwl+amjxg== - dependencies: - debug "^4.1.1" - eslint-visitor-keys "^1.1.0" - glob "^7.1.6" - is-glob "^4.0.1" - lodash.unescape "4.0.1" - semver "^6.3.0" - tsutils "^3.17.1" +"@typescript-eslint/types@4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.3.0.tgz#1f0b2d5e140543e2614f06d48fb3ae95193c6ddf" + integrity sha512-Cx9TpRvlRjOppGsU6Y6KcJnUDOelja2NNCX6AZwtVHRzaJkdytJWMuYiqi8mS35MRNA3cJSwDzXePfmhU6TANw== "@typescript-eslint/typescript-estree@3.10.0": version "3.10.0" @@ -5461,6 +5480,20 @@ semver "^7.3.2" tsutils "^3.17.1" +"@typescript-eslint/typescript-estree@4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.3.0.tgz#0edc1068e6b2e4c7fdc54d61e329fce76241cee8" + integrity sha512-ZAI7xjkl+oFdLV/COEz2tAbQbR3XfgqHEGy0rlUXzfGQic6EBCR4s2+WS3cmTPG69aaZckEucBoTxW9PhzHxxw== + dependencies: + "@typescript-eslint/types" "4.3.0" + "@typescript-eslint/visitor-keys" "4.3.0" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + "@typescript-eslint/typescript-estree@^1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.9.0.tgz#5d6d49be936e96fb0f859673480f89b070a5dd9b" @@ -5476,6 +5509,14 @@ dependencies: eslint-visitor-keys "^1.1.0" +"@typescript-eslint/visitor-keys@4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.3.0.tgz#0e5ab0a09552903edeae205982e8521e17635ae0" + integrity sha512-xZxkuR7XLM6RhvLkgv9yYlTcBHnTULzfnw4i6+z2TGBLy9yljAypQaZl9c3zFvy7PNI7fYWyvKYtohyF8au3cw== + dependencies: + "@typescript-eslint/types" "4.3.0" + eslint-visitor-keys "^2.0.0" + "@webassemblyjs/ast@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" @@ -5844,6 +5885,11 @@ abab@^2.0.0: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== +abab@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -5885,7 +5931,7 @@ accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn-globals@^4.3.0, acorn-globals@^4.3.2: +acorn-globals@^4.3.0: version "4.3.4" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== @@ -5893,6 +5939,14 @@ acorn-globals@^4.3.0, acorn-globals@^4.3.2: acorn "^6.0.1" acorn-walk "^6.0.1" +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" @@ -5924,6 +5978,11 @@ acorn-walk@^7.0.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e" integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ== +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + acorn@5.X, acorn@^5.0.3, acorn@^5.5.0: version "5.7.4" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" @@ -5949,6 +6008,11 @@ acorn@^7.1.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== +acorn@^7.1.1: + version "7.4.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" + integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== + address@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -7030,7 +7094,7 @@ async-foreach@^0.1.3: resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= -async-limiter@^1.0.0, async-limiter@~1.0.0: +async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== @@ -7270,17 +7334,17 @@ babel-helper-to-multiple-sequence-expressions@^0.5.0: resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz#a3f924e3561882d42fcf48907aa98f7979a4588d" integrity sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA== -babel-jest@^25.5.1: - version "25.5.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853" - integrity sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ== +babel-jest@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.3.0.tgz#10d0ca4b529ca3e7d1417855ef7d7bd6fc0c3463" + integrity sha512-sxPnQGEyHAOPF8NcUsD0g7hDCnvLL2XyblRBcgrzTWBB/mAIpWow3n1bEL+VghnnZfreLhFSBsFluRoK2tRK4g== dependencies: - "@jest/transform" "^25.5.1" - "@jest/types" "^25.5.0" + "@jest/transform" "^26.3.0" + "@jest/types" "^26.3.0" "@types/babel__core" "^7.1.7" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^25.5.0" - chalk "^3.0.0" + babel-preset-jest "^26.3.0" + chalk "^4.0.0" graceful-fs "^4.2.4" slash "^3.0.0" @@ -7378,13 +7442,14 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677" - integrity sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g== +babel-plugin-jest-hoist@^26.2.0: + version "26.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.2.0.tgz#bdd0011df0d3d513e5e95f76bd53b51147aca2dd" + integrity sha512-B/hVMRv8Nh1sQ1a3EY8I0n4Y1Wty3NrR5ebOyVT302op+DOAau+xNEImGMsUWOC3++ZlMooCytKz+NgN8aKGbA== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" babel-plugin-macros@^2.0.0: @@ -7588,14 +7653,15 @@ babel-polyfill@^6.26.0: core-js "^2.5.0" regenerator-runtime "^0.10.5" -babel-preset-current-node-syntax@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6" - integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw== +babel-preset-current-node-syntax@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz#b4b547acddbf963cba555ba9f9cbbb70bfd044da" + integrity sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -7604,13 +7670,13 @@ babel-preset-current-node-syntax@^0.1.2: "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -babel-preset-jest@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49" - integrity sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw== +babel-preset-jest@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.3.0.tgz#ed6344506225c065fd8a0b53e191986f74890776" + integrity sha512-5WPdf7nyYi2/eRxCbVrE1kKCWxgWY4RsPEbdJWFm7QsesFGqjdkyLeu1zRkwM1cxK6EPIlNd6d2AxLk7J+t4pw== dependencies: - babel-plugin-jest-hoist "^25.5.0" - babel-preset-current-node-syntax "^0.1.2" + babel-plugin-jest-hoist "^26.2.0" + babel-preset-current-node-syntax "^0.1.3" "babel-preset-minify@^0.5.0 || 0.6.0-alpha.5": version "0.5.0" @@ -8143,6 +8209,11 @@ browser-process-hrtime@^0.1.2: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" integrity sha1-Ql1opY00R/AqBKqJQYf86K+Le44= +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + browser-resolve@^1.11.3, browser-resolve@^1.8.1: version "1.11.3" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" @@ -8851,6 +8922,11 @@ change-emitter@^0.1.2: resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" integrity sha1-6LL+PX8at9aaMhma/5HqaTFAlRU= +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + character-entities-html4@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" @@ -10451,7 +10527,7 @@ cssom@0.3.x, cssom@^0.3.4, cssom@~0.3.6: resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== -cssom@^0.4.1: +cssom@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== @@ -10463,10 +10539,10 @@ cssstyle@^1.1.1: dependencies: cssom "0.3.x" -cssstyle@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.2.0.tgz#e4c44debccd6b7911ed617a4395e5754bba59992" - integrity sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA== +cssstyle@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== dependencies: cssom "~0.3.6" @@ -10875,6 +10951,15 @@ data-urls@^1.1.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + date-fns@^1.27.2: version "1.29.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" @@ -10965,6 +11050,11 @@ decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, deca resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decimal.js@^10.2.0: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -11641,6 +11731,13 @@ domexception@^1.0.1: dependencies: webidl-conversions "^4.0.2" +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + domhandler@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" @@ -11992,6 +12089,11 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +emittery@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451" + integrity sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ== + "emoji-regex@>=6.0.0 <=6.1.1": version "6.1.1" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" @@ -12481,7 +12583,7 @@ escodegen@^1.11.1: optionalDependencies: source-map "~0.6.1" -escodegen@^1.12.0: +escodegen@^1.12.0, escodegen@^1.14.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== @@ -12644,12 +12746,12 @@ eslint-plugin-import@^2.19.1: read-pkg-up "^2.0.0" resolve "^1.12.0" -eslint-plugin-jest@^23.10.0: - version "23.10.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.10.0.tgz#4738c7ca9e6513da50f4e99d7b161c1f82fa8e8f" - integrity sha512-cHC//nesojSO1MLxVmFJR/bUaQQG7xvMHQD8YLbsQzevR41WKm8paKDUv2wMHlUy5XLZUmNcWuflOi4apS8D+Q== +eslint-plugin-jest@^24.0.2: + version "24.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.0.2.tgz#4bf0fcdc86289d702a7dacb430b4363482af773b" + integrity sha512-DSBLNpkKDOpUJQkTGSs5sVJWsu0nDyQ2rYxkr0Eh7nrkc5bMUr/dlDbtTj3l8y6UaCVsem6rryF1OZrKnz1S5g== dependencies: - "@typescript-eslint/experimental-utils" "^2.5.0" + "@typescript-eslint/experimental-utils" "^4.0.1" eslint-plugin-jsx-a11y@^6.2.3: version "6.2.3" @@ -12779,6 +12881,11 @@ eslint-visitor-keys@^1.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + eslint@^2.7.0: version "2.13.1" resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.13.1.tgz#e4cc8fa0f009fb829aaae23855a29360be1f6c11" @@ -13055,10 +13162,10 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^3.2.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== +execa@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" + integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== dependencies: cross-spawn "^7.0.0" get-stream "^5.0.0" @@ -13067,7 +13174,6 @@ execa@^3.2.0: merge-stream "^2.0.0" npm-run-path "^4.0.0" onetime "^5.1.0" - p-finally "^2.0.0" signal-exit "^3.0.2" strip-final-newline "^2.0.0" @@ -13152,18 +13258,6 @@ expect@^24.8.0, expect@^24.9.0: jest-message-util "^24.9.0" jest-regex-util "^24.9.0" -expect@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-25.5.0.tgz#f07f848712a2813bb59167da3fb828ca21f58bba" - integrity sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA== - dependencies: - "@jest/types" "^25.5.0" - ansi-styles "^4.0.0" - jest-get-type "^25.2.6" - jest-matcher-utils "^25.5.0" - jest-message-util "^25.5.0" - jest-regex-util "^25.2.6" - expect@^26.4.0: version "26.4.0" resolved "https://registry.yarnpkg.com/expect/-/expect-26.4.0.tgz#34a0aae523343b0931ff1cf0aa972dfe40edfab4" @@ -13176,6 +13270,18 @@ expect@^26.4.0: jest-message-util "^26.3.0" jest-regex-util "^26.0.0" +expect@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.4.2.tgz#36db120928a5a2d7d9736643032de32f24e1b2a1" + integrity sha512-IlJ3X52Z0lDHm7gjEp+m76uX46ldH5VpqmU0006vqDju/285twh7zaWMRhs67VpQhBwjjMchk+p5aA0VkERCAA== + dependencies: + "@jest/types" "^26.3.0" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.4.2" + jest-message-util "^26.3.0" + jest-regex-util "^26.0.0" + expiry-js@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/expiry-js/-/expiry-js-0.1.7.tgz#76be8c05e572bf936df40c1766448d0b3b2f555f" @@ -16085,6 +16191,13 @@ html-encoding-sniffer@^1.0.2: dependencies: whatwg-encoding "^1.0.1" +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + html-entities@^1.2.0, html-entities@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" @@ -17499,6 +17612,11 @@ is-plain-object@^5.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + is-promise@^2.1, is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -17726,6 +17844,13 @@ is-wsl@^2.1.1: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + is-yarn-global@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" @@ -17860,6 +17985,16 @@ istanbul-lib-instrument@^4.0.0: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" +istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + istanbul-lib-processinfo@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz#e1426514662244b2f25df728e8fd1ba35fe53b9c" @@ -17962,82 +18097,83 @@ jest-canvas-mock@^2.2.0: cssfontparser "^1.2.1" parse-color "^1.0.0" -jest-changed-files@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.5.0.tgz#141cc23567ceb3f534526f8614ba39421383634c" - integrity sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw== +jest-changed-files@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.3.0.tgz#68fb2a7eb125f50839dab1f5a17db3607fe195b1" + integrity sha512-1C4R4nijgPltX6fugKxM4oQ18zimS7LqQ+zTTY8lMCMFPrxqBFb7KJH0Z2fRQJvw2Slbaipsqq7s1mgX5Iot+g== dependencies: - "@jest/types" "^25.5.0" - execa "^3.2.0" + "@jest/types" "^26.3.0" + execa "^4.0.0" throat "^5.0.0" -jest-circus@^25.5.4: - version "25.5.4" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-25.5.4.tgz#d5578346f53d5604b7b1d1e5e56be48b1c73c61d" - integrity sha512-nOLJXZjWuV2i8yQ2w+MZ8NhFuqrbgpPAa4mh+DWPYmNI377YYpDKvDUrLMW8U1sa2iGt5mjKQbmJz2SK9AYjWg== +jest-circus@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-26.4.2.tgz#f84487d2ea635cadf1feb269b14ad0602135ad17" + integrity sha512-gzxoteivskdUTNxT7Jx6hrANsEm+x1wh8jaXmQCtzC7zoNWirk9chYdSosHFC4tJlfDZa0EsPreVAxLicLsV0w== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^25.5.0" - "@jest/test-result" "^25.5.0" - "@jest/types" "^25.5.0" - chalk "^3.0.0" + "@jest/environment" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + chalk "^4.0.0" co "^4.6.0" - expect "^25.5.0" + dedent "^0.7.0" + expect "^26.4.2" is-generator-fn "^2.0.0" - jest-each "^25.5.0" - jest-matcher-utils "^25.5.0" - jest-message-util "^25.5.0" - jest-runtime "^25.5.4" - jest-snapshot "^25.5.1" - jest-util "^25.5.0" - pretty-format "^25.5.0" - stack-utils "^1.0.1" + jest-each "^26.4.2" + jest-matcher-utils "^26.4.2" + jest-message-util "^26.3.0" + jest-runner "^26.4.2" + jest-runtime "^26.4.2" + jest-snapshot "^26.4.2" + jest-util "^26.3.0" + pretty-format "^26.4.2" + stack-utils "^2.0.2" throat "^5.0.0" -jest-cli@^25.5.4: - version "25.5.4" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.5.4.tgz#b9f1a84d1301a92c5c217684cb79840831db9f0d" - integrity sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw== +jest-cli@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.4.2.tgz#24afc6e4dfc25cde4c7ec4226fb7db5f157c21da" + integrity sha512-zb+lGd/SfrPvoRSC/0LWdaWCnscXc1mGYW//NP4/tmBvRPT3VntZ2jtKUONsRi59zc5JqmsSajA9ewJKFYp8Cw== dependencies: - "@jest/core" "^25.5.4" - "@jest/test-result" "^25.5.0" - "@jest/types" "^25.5.0" - chalk "^3.0.0" + "@jest/core" "^26.4.2" + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" + chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^25.5.4" - jest-util "^25.5.0" - jest-validate "^25.5.0" + jest-config "^26.4.2" + jest-util "^26.3.0" + jest-validate "^26.4.2" prompts "^2.0.1" - realpath-native "^2.0.0" yargs "^15.3.1" -jest-config@^25.5.4: - version "25.5.4" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c" - integrity sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg== +jest-config@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.4.2.tgz#da0cbb7dc2c131ffe831f0f7f2a36256e6086558" + integrity sha512-QBf7YGLuToiM8PmTnJEdRxyYy3mHWLh24LJZKVdXZ2PNdizSe1B/E8bVm+HYcjbEzGuVXDv/di+EzdO/6Gq80A== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^25.5.4" - "@jest/types" "^25.5.0" - babel-jest "^25.5.1" - chalk "^3.0.0" + "@jest/test-sequencer" "^26.4.2" + "@jest/types" "^26.3.0" + babel-jest "^26.3.0" + chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - jest-environment-jsdom "^25.5.0" - jest-environment-node "^25.5.0" - jest-get-type "^25.2.6" - jest-jasmine2 "^25.5.4" - jest-regex-util "^25.2.6" - jest-resolve "^25.5.1" - jest-util "^25.5.0" - jest-validate "^25.5.0" + jest-environment-jsdom "^26.3.0" + jest-environment-node "^26.3.0" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.4.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.4.0" + jest-util "^26.3.0" + jest-validate "^26.4.2" micromatch "^4.0.2" - pretty-format "^25.5.0" - realpath-native "^2.0.0" + pretty-format "^26.4.2" jest-diff@^24.9.0: version "24.9.0" @@ -18049,7 +18185,7 @@ jest-diff@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" -jest-diff@^25.2.1, jest-diff@^25.5.0: +jest-diff@^25.2.1: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== @@ -18069,23 +18205,33 @@ jest-diff@^26.4.0: jest-get-type "^26.3.0" pretty-format "^26.4.0" -jest-docblock@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" - integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== +jest-diff@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.4.2.tgz#a1b7b303bcc534aabdb3bd4a7caf594ac059f5aa" + integrity sha512-6T1XQY8U28WH0Z5rGpQ+VqZSZz8EN8rZcBtfvXaOkbwxIEeRre6qnuZQlbY1AJ4MKDxQF8EkrCvK+hL/VkyYLQ== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.3.0" + jest-get-type "^26.3.0" + pretty-format "^26.4.2" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== dependencies: detect-newline "^3.0.0" -jest-each@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516" - integrity sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA== +jest-each@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.4.2.tgz#bb14f7f4304f2bb2e2b81f783f989449b8b6ffae" + integrity sha512-p15rt8r8cUcRY0Mvo1fpkOGYm7iI8S6ySxgIdfh3oOIv+gHwrHTy5VWCGOecWUhDsit4Nz8avJWdT07WLpbwDA== dependencies: - "@jest/types" "^25.5.0" - chalk "^3.0.0" - jest-get-type "^25.2.6" - jest-util "^25.5.0" - pretty-format "^25.5.0" + "@jest/types" "^26.3.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.3.0" + pretty-format "^26.4.2" jest-environment-jsdom-thirteen@^1.0.1: version "1.0.1" @@ -18096,29 +18242,30 @@ jest-environment-jsdom-thirteen@^1.0.1: jest-util "^24.0.0" jsdom "^13.0.0" -jest-environment-jsdom@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834" - integrity sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A== +jest-environment-jsdom@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.3.0.tgz#3b749ba0f3a78e92ba2c9ce519e16e5dd515220c" + integrity sha512-zra8He2btIMJkAzvLaiZ9QwEPGEetbxqmjEBQwhH3CA+Hhhu0jSiEJxnJMbX28TGUvPLxBt/zyaTLrOPF4yMJA== dependencies: - "@jest/environment" "^25.5.0" - "@jest/fake-timers" "^25.5.0" - "@jest/types" "^25.5.0" - jest-mock "^25.5.0" - jest-util "^25.5.0" - jsdom "^15.2.1" + "@jest/environment" "^26.3.0" + "@jest/fake-timers" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + jest-mock "^26.3.0" + jest-util "^26.3.0" + jsdom "^16.2.2" -jest-environment-node@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1" - integrity sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA== +jest-environment-node@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.3.0.tgz#56c6cfb506d1597f94ee8d717072bda7228df849" + integrity sha512-c9BvYoo+FGcMj5FunbBgtBnbR5qk3uky8PKyRVpSfe2/8+LrNQMiXX53z6q2kY+j15SkjQCOSL/6LHnCPLVHNw== dependencies: - "@jest/environment" "^25.5.0" - "@jest/fake-timers" "^25.5.0" - "@jest/types" "^25.5.0" - jest-mock "^25.5.0" - jest-util "^25.5.0" - semver "^6.3.0" + "@jest/environment" "^26.3.0" + "@jest/fake-timers" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + jest-mock "^26.3.0" + jest-util "^26.3.0" jest-get-type@^24.9.0: version "24.9.0" @@ -18135,26 +18282,6 @@ jest-get-type@^26.3.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-haste-map@^25.5.1: - version "25.5.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943" - integrity sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ== - dependencies: - "@jest/types" "^25.5.0" - "@types/graceful-fs" "^4.1.2" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-serializer "^25.5.0" - jest-util "^25.5.0" - jest-worker "^25.5.0" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - which "^2.0.2" - optionalDependencies: - fsevents "^2.1.2" - jest-haste-map@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.3.0.tgz#c51a3b40100d53ab777bfdad382d2e7a00e5c726" @@ -18176,36 +18303,37 @@ jest-haste-map@^26.3.0: optionalDependencies: fsevents "^2.1.2" -jest-jasmine2@^25.5.4: - version "25.5.4" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968" - integrity sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ== +jest-jasmine2@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.4.2.tgz#18a9d5bec30904267ac5e9797570932aec1e2257" + integrity sha512-z7H4EpCldHN1J8fNgsja58QftxBSL+JcwZmaXIvV9WKIM+x49F4GLHu/+BQh2kzRKHAgaN/E82od+8rTOBPyPA== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^25.5.0" - "@jest/source-map" "^25.5.0" - "@jest/test-result" "^25.5.0" - "@jest/types" "^25.5.0" - chalk "^3.0.0" + "@jest/environment" "^26.3.0" + "@jest/source-map" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + chalk "^4.0.0" co "^4.6.0" - expect "^25.5.0" + expect "^26.4.2" is-generator-fn "^2.0.0" - jest-each "^25.5.0" - jest-matcher-utils "^25.5.0" - jest-message-util "^25.5.0" - jest-runtime "^25.5.4" - jest-snapshot "^25.5.1" - jest-util "^25.5.0" - pretty-format "^25.5.0" + jest-each "^26.4.2" + jest-matcher-utils "^26.4.2" + jest-message-util "^26.3.0" + jest-runtime "^26.4.2" + jest-snapshot "^26.4.2" + jest-util "^26.3.0" + pretty-format "^26.4.2" throat "^5.0.0" -jest-leak-detector@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb" - integrity sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA== +jest-leak-detector@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.4.2.tgz#c73e2fa8757bf905f6f66fb9e0070b70fa0f573f" + integrity sha512-akzGcxwxtE+9ZJZRW+M2o+nTNnmQZxrHJxX/HjgDaU5+PLmY1qnQPnMjgADPGCRPhB+Yawe1iij0REe+k/aHoA== dependencies: - jest-get-type "^25.2.6" - pretty-format "^25.5.0" + jest-get-type "^26.3.0" + pretty-format "^26.4.2" jest-matcher-utils@^24.9.0: version "24.9.0" @@ -18217,16 +18345,6 @@ jest-matcher-utils@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" -jest-matcher-utils@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867" - integrity sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw== - dependencies: - chalk "^3.0.0" - jest-diff "^25.5.0" - jest-get-type "^25.2.6" - pretty-format "^25.5.0" - jest-matcher-utils@^26.4.0: version "26.4.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.4.0.tgz#2bce9a939e008b894faf1bd4b5bb58facd00c252" @@ -18237,6 +18355,16 @@ jest-matcher-utils@^26.4.0: jest-get-type "^26.3.0" pretty-format "^26.4.0" +jest-matcher-utils@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.4.2.tgz#fa81f3693f7cb67e5fc1537317525ef3b85f4b06" + integrity sha512-KcbNqWfWUG24R7tu9WcAOKKdiXiXCbMvQYT6iodZ9k1f7065k0keUOW6XpJMMvah+hTfqkhJhRXmA3r3zMAg0Q== + dependencies: + chalk "^4.0.0" + jest-diff "^26.4.2" + jest-get-type "^26.3.0" + pretty-format "^26.4.2" + jest-message-util@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" @@ -18251,20 +18379,6 @@ jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" -jest-message-util@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea" - integrity sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^25.5.0" - "@types/stack-utils" "^1.0.1" - chalk "^3.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - slash "^3.0.0" - stack-utils "^1.0.1" - jest-message-util@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.3.0.tgz#3bdb538af27bb417f2d4d16557606fd082d5841a" @@ -18286,12 +18400,13 @@ jest-mock@^24.0.0, jest-mock@^24.9.0: dependencies: "@jest/types" "^24.9.0" -jest-mock@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.5.0.tgz#a91a54dabd14e37ecd61665d6b6e06360a55387a" - integrity sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA== +jest-mock@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.3.0.tgz#ee62207c3c5ebe5f35b760e1267fee19a1cfdeba" + integrity sha512-PeaRrg8Dc6mnS35gOo/CbZovoDPKAeB1FICZiuagAgGvbWdNNyjQjkOaGUa/3N3JtpQ/Mh9P4A2D4Fv51NnP8Q== dependencies: - "@jest/types" "^25.5.0" + "@jest/types" "^26.3.0" + "@types/node" "*" jest-pnp-resolver@^1.2.1: version "1.2.1" @@ -18313,24 +18428,19 @@ jest-regex-util@^24.9.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== -jest-regex-util@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" - integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== - jest-regex-util@^26.0.0: version "26.0.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-resolve-dependencies@^25.5.4: - version "25.5.4" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7" - integrity sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw== +jest-resolve-dependencies@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.4.2.tgz#739bdb027c14befb2fe5aabbd03f7bab355f1dc5" + integrity sha512-ADHaOwqEcVc71uTfySzSowA/RdxUpCxhxa2FNLiin9vWLB1uLPad3we+JSSROq5+SrL9iYPdZZF8bdKM7XABTQ== dependencies: - "@jest/types" "^25.5.0" - jest-regex-util "^25.2.6" - jest-snapshot "^25.5.1" + "@jest/types" "^26.3.0" + jest-regex-util "^26.0.0" + jest-snapshot "^26.4.2" jest-resolve@^24.9.0: version "24.9.0" @@ -18343,21 +18453,6 @@ jest-resolve@^24.9.0: jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" -jest-resolve@^25.5.1: - version "25.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829" - integrity sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ== - dependencies: - "@jest/types" "^25.5.0" - browser-resolve "^1.11.3" - chalk "^3.0.0" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.1" - read-pkg-up "^7.0.1" - realpath-native "^2.0.0" - resolve "^1.17.0" - slash "^3.0.0" - jest-resolve@^26.4.0: version "26.4.0" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.4.0.tgz#6dc0af7fb93e65b73fec0368ca2b76f3eb59a6d7" @@ -18372,70 +18467,64 @@ jest-resolve@^26.4.0: resolve "^1.17.0" slash "^3.0.0" -jest-runner@^25.5.4: - version "25.5.4" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d" - integrity sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg== +jest-runner@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.4.2.tgz#c3ec5482c8edd31973bd3935df5a449a45b5b853" + integrity sha512-FgjDHeVknDjw1gRAYaoUoShe1K3XUuFMkIaXbdhEys+1O4bEJS8Avmn4lBwoMfL8O5oFTdWYKcf3tEJyyYyk8g== dependencies: - "@jest/console" "^25.5.0" - "@jest/environment" "^25.5.0" - "@jest/test-result" "^25.5.0" - "@jest/types" "^25.5.0" - chalk "^3.0.0" + "@jest/console" "^26.3.0" + "@jest/environment" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-config "^25.5.4" - jest-docblock "^25.3.0" - jest-haste-map "^25.5.1" - jest-jasmine2 "^25.5.4" - jest-leak-detector "^25.5.0" - jest-message-util "^25.5.0" - jest-resolve "^25.5.1" - jest-runtime "^25.5.4" - jest-util "^25.5.0" - jest-worker "^25.5.0" + jest-config "^26.4.2" + jest-docblock "^26.0.0" + jest-haste-map "^26.3.0" + jest-leak-detector "^26.4.2" + jest-message-util "^26.3.0" + jest-resolve "^26.4.0" + jest-runtime "^26.4.2" + jest-util "^26.3.0" + jest-worker "^26.3.0" source-map-support "^0.5.6" throat "^5.0.0" -jest-runtime@^25.5.4: - version "25.5.4" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab" - integrity sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ== - dependencies: - "@jest/console" "^25.5.0" - "@jest/environment" "^25.5.0" - "@jest/globals" "^25.5.2" - "@jest/source-map" "^25.5.0" - "@jest/test-result" "^25.5.0" - "@jest/transform" "^25.5.1" - "@jest/types" "^25.5.0" +jest-runtime@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.4.2.tgz#94ce17890353c92e4206580c73a8f0c024c33c42" + integrity sha512-4Pe7Uk5a80FnbHwSOk7ojNCJvz3Ks2CNQWT5Z7MJo4tX0jb3V/LThKvD9tKPNVNyeMH98J/nzGlcwc00R2dSHQ== + dependencies: + "@jest/console" "^26.3.0" + "@jest/environment" "^26.3.0" + "@jest/fake-timers" "^26.3.0" + "@jest/globals" "^26.4.2" + "@jest/source-map" "^26.3.0" + "@jest/test-result" "^26.3.0" + "@jest/transform" "^26.3.0" + "@jest/types" "^26.3.0" "@types/yargs" "^15.0.0" - chalk "^3.0.0" + chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-config "^25.5.4" - jest-haste-map "^25.5.1" - jest-message-util "^25.5.0" - jest-mock "^25.5.0" - jest-regex-util "^25.2.6" - jest-resolve "^25.5.1" - jest-snapshot "^25.5.1" - jest-util "^25.5.0" - jest-validate "^25.5.0" - realpath-native "^2.0.0" + jest-config "^26.4.2" + jest-haste-map "^26.3.0" + jest-message-util "^26.3.0" + jest-mock "^26.3.0" + jest-regex-util "^26.0.0" + jest-resolve "^26.4.0" + jest-snapshot "^26.4.2" + jest-util "^26.3.0" + jest-validate "^26.4.2" slash "^3.0.0" strip-bom "^4.0.0" yargs "^15.3.1" -jest-serializer@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b" - integrity sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA== - dependencies: - graceful-fs "^4.2.4" - jest-serializer@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.3.0.tgz#1c9d5e1b74d6e5f7e7f9627080fa205d976c33ef" @@ -18463,27 +18552,6 @@ jest-snapshot@^24.1.0: pretty-format "^24.9.0" semver "^6.2.0" -jest-snapshot@^25.5.1: - version "25.5.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f" - integrity sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^25.5.0" - "@types/prettier" "^1.19.0" - chalk "^3.0.0" - expect "^25.5.0" - graceful-fs "^4.2.4" - jest-diff "^25.5.0" - jest-get-type "^25.2.6" - jest-matcher-utils "^25.5.0" - jest-message-util "^25.5.0" - jest-resolve "^25.5.1" - make-dir "^3.0.0" - natural-compare "^1.4.0" - pretty-format "^25.5.0" - semver "^6.3.0" - jest-snapshot@^26.3.0: version "26.4.0" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.4.0.tgz#efd42eef09bcb33e9a3eb98e229f2368c73c9235" @@ -18505,6 +18573,27 @@ jest-snapshot@^26.3.0: pretty-format "^26.4.0" semver "^7.3.2" +jest-snapshot@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.4.2.tgz#87d3ac2f2bd87ea8003602fbebd8fcb9e94104f6" + integrity sha512-N6Uub8FccKlf5SBFnL2Ri/xofbaA68Cc3MGjP/NuwgnsvWh+9hLIR/DhrxbSiKXMY9vUW5dI6EW1eHaDHqe9sg== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.3.0" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.4.2" + graceful-fs "^4.2.4" + jest-diff "^26.4.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.3.0" + jest-matcher-utils "^26.4.2" + jest-message-util "^26.3.0" + jest-resolve "^26.4.0" + natural-compare "^1.4.0" + pretty-format "^26.4.2" + semver "^7.3.2" + jest-specific-snapshot@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/jest-specific-snapshot/-/jest-specific-snapshot-2.0.0.tgz#425fe524b25df154aa39f97fa6fe9726faaac273" @@ -18544,17 +18633,6 @@ jest-util@^24.0.0: slash "^2.0.0" source-map "^0.6.0" -jest-util@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0" - integrity sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA== - dependencies: - "@jest/types" "^25.5.0" - chalk "^3.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - make-dir "^3.0.0" - jest-util@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.3.0.tgz#a8974b191df30e2bf523ebbfdbaeb8efca535b3e" @@ -18567,29 +18645,30 @@ jest-util@^26.3.0: is-ci "^2.0.0" micromatch "^4.0.2" -jest-validate@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a" - integrity sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ== +jest-validate@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.4.2.tgz#e871b0dfe97747133014dcf6445ee8018398f39c" + integrity sha512-blft+xDX7XXghfhY0mrsBCYhX365n8K5wNDC4XAcNKqqjEzsRUSXP44m6PL0QJEW2crxQFLLztVnJ4j7oPlQrQ== dependencies: - "@jest/types" "^25.5.0" - camelcase "^5.3.1" - chalk "^3.0.0" - jest-get-type "^25.2.6" + "@jest/types" "^26.3.0" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" leven "^3.1.0" - pretty-format "^25.5.0" + pretty-format "^26.4.2" -jest-watcher@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.5.0.tgz#d6110d101df98badebe435003956fd4a465e8456" - integrity sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q== +jest-watcher@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.3.0.tgz#f8ef3068ddb8af160ef868400318dc4a898eed08" + integrity sha512-XnLdKmyCGJ3VoF6G/p5ohbJ04q/vv5aH9ENI+i6BL0uu9WWB6Z7Z2lhQQk0d2AVZcRGp1yW+/TsoToMhBFPRdQ== dependencies: - "@jest/test-result" "^25.5.0" - "@jest/types" "^25.5.0" + "@jest/test-result" "^26.3.0" + "@jest/types" "^26.3.0" + "@types/node" "*" ansi-escapes "^4.2.1" - chalk "^3.0.0" - jest-util "^25.5.0" - string-length "^3.1.0" + chalk "^4.0.0" + jest-util "^26.3.0" + string-length "^4.0.1" jest-when@^2.7.2: version "2.7.2" @@ -18599,7 +18678,7 @@ jest-when@^2.7.2: bunyan "^1.8.12" expect "^24.8.0" -jest-worker@^25.4.0, jest-worker@^25.5.0: +jest-worker@^25.4.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== @@ -18616,14 +18695,14 @@ jest-worker@^26.2.1, jest-worker@^26.3.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest@^25.5.4: - version "25.5.4" - resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db" - integrity sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ== +jest@^26.4.2: + version "26.4.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.4.2.tgz#7e8bfb348ec33f5459adeaffc1a25d5752d9d312" + integrity sha512-LLCjPrUh98Ik8CzW8LLVnSCfLaiY+wbK53U7VxnFSX7Q+kWC4noVeDvGWIFw0Amfq1lq2VfGm7YHWSLBV62MJw== dependencies: - "@jest/core" "^25.5.4" + "@jest/core" "^26.4.2" import-local "^3.0.2" - jest-cli "^25.5.4" + jest-cli "^26.4.2" jimp@^0.14.0: version "0.14.0" @@ -18750,36 +18829,36 @@ jsdom@13.1.0, jsdom@^13.0.0: ws "^6.1.2" xml-name-validator "^3.0.0" -jsdom@^15.2.1: - version "15.2.1" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" - integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== - dependencies: - abab "^2.0.0" - acorn "^7.1.0" - acorn-globals "^4.3.2" - array-equal "^1.0.0" - cssom "^0.4.1" - cssstyle "^2.0.0" - data-urls "^1.1.0" - domexception "^1.0.1" - escodegen "^1.11.1" - html-encoding-sniffer "^1.0.2" +jsdom@^16.2.2: + version "16.4.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" + integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== + dependencies: + abab "^2.0.3" + acorn "^7.1.1" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.2.0" + data-urls "^2.0.0" + decimal.js "^10.2.0" + domexception "^2.0.1" + escodegen "^1.14.1" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" nwsapi "^2.2.0" - parse5 "5.1.0" - pn "^1.1.0" - request "^2.88.0" - request-promise-native "^1.0.7" - saxes "^3.1.9" - symbol-tree "^3.2.2" + parse5 "5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + saxes "^5.0.0" + symbol-tree "^3.2.4" tough-cookie "^3.0.1" - w3c-hr-time "^1.0.1" - w3c-xmlserializer "^1.1.2" - webidl-conversions "^4.0.2" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" whatwg-encoding "^1.0.5" whatwg-mimetype "^2.3.0" - whatwg-url "^7.0.0" - ws "^7.0.0" + whatwg-url "^8.0.0" + ws "^7.2.3" xml-name-validator "^3.0.0" jsesc@^1.3.0: @@ -20011,7 +20090,7 @@ lolex@^4.2.0: resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.2.0.tgz#ddbd7f6213ca1ea5826901ab1222b65d714b3cd7" integrity sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg== -lolex@^5.0.0, lolex@^5.0.1: +lolex@^5.0.1: version "5.1.2" resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== @@ -21653,16 +21732,17 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12" - integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw== +node-notifier@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.0.tgz#a7eee2d51da6d0f7ff5094bc7108c911240c1620" + integrity sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA== dependencies: growly "^1.3.0" - is-wsl "^2.1.1" - semver "^6.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" shellwords "^0.1.1" - which "^1.3.1" + uuid "^8.3.0" + which "^2.0.2" node-pre-gyp@^0.11.0: version "0.11.0" @@ -22583,11 +22663,6 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - p-is-promise@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" @@ -22977,6 +23052,11 @@ parse5@5.1.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== +parse5@5.1.1, parse5@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + parse5@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" @@ -22984,11 +23064,6 @@ parse5@^3.0.1: dependencies: "@types/node" "*" -parse5@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== - parse5@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" @@ -25249,11 +25324,6 @@ realpath-native@^1.1.0: dependencies: util.promisify "^1.0.0" -realpath-native@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866" - integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q== - recast@^0.14.7: version "0.14.7" resolved "https://registry.yarnpkg.com/recast/-/recast-0.14.7.tgz#4f1497c2b5826d42a66e8e3c9d80c512983ff61d" @@ -25874,7 +25944,14 @@ request-promise-core@1.1.3: dependencies: lodash "^4.17.15" -request-promise-native@^1.0.5, request-promise-native@^1.0.7: +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.5: version "1.0.8" resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== @@ -25883,6 +25960,15 @@ request-promise-native@^1.0.5, request-promise-native@^1.0.7: stealthy-require "^1.1.1" tough-cookie "^2.3.3" +request-promise-native@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + request-promise@^4.2.2: version "4.2.4" resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.4.tgz#1c5ed0d71441e38ad58c7ce4ea4ea5b06d54b310" @@ -26531,13 +26617,20 @@ sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -saxes@^3.1.4, saxes@^3.1.9: +saxes@^3.1.4: version "3.1.11" resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== dependencies: xmlchars "^2.1.1" +saxes@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + scheduler@^0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.18.0.tgz#5901ad6659bc1d8f3fdaf36eb7a67b0d6746b1c4" @@ -27693,13 +27786,13 @@ string-length@^2.0.0: astral-regex "^1.0.0" strip-ansi "^4.0.0" -string-length@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" - integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== +string-length@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" + integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== dependencies: - astral-regex "^1.0.0" - strip-ansi "^5.2.0" + char-regex "^1.0.2" + strip-ansi "^6.0.0" string-replace-loader@^2.2.0: version "2.2.0" @@ -28270,6 +28363,11 @@ symbol-tree@^3.2.2: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + symbol.prototype.description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/symbol.prototype.description/-/symbol.prototype.description-1.0.0.tgz#6e355660eb1e44ca8ad53a68fdb72ef131ca4b12" @@ -29029,6 +29127,13 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + traceparent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/traceparent/-/traceparent-1.0.0.tgz#9b14445cdfe5c19f023f1c04d249c3d8e003a5ce" @@ -30143,10 +30248,10 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== -v8-to-istanbul@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz#22fe35709a64955f49a08a7c7c959f6520ad6f20" - integrity sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng== +v8-to-istanbul@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz#0608f5b49a481458625edb058488607f25498ba5" + integrity sha512-mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -30823,7 +30928,14 @@ w3c-hr-time@^1.0.1: dependencies: browser-process-hrtime "^0.1.2" -w3c-xmlserializer@^1.0.1, w3c-xmlserializer@^1.1.2: +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== @@ -30832,6 +30944,13 @@ w3c-xmlserializer@^1.0.1, w3c-xmlserializer@^1.1.2: webidl-conversions "^4.0.2" xml-name-validator "^3.0.0" +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + walk@2.3.x: version "2.3.9" resolved "https://registry.yarnpkg.com/walk/-/walk-2.3.9.tgz#31b4db6678f2ae01c39ea9fb8725a9031e558a7b" @@ -30937,6 +31056,16 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + webpack-cli@^3.3.10: version "3.3.10" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.10.tgz#17b279267e9b4fb549023fae170da8e6e766da13" @@ -31193,6 +31322,15 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" +whatwg-url@^8.0.0: + version "8.2.2" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.2.2.tgz#85e7f9795108b53d554cec640b2e8aee2a0d4bfd" + integrity sha512-PcVnO6NiewhkmzV0qn7A+UZ9Xx4maNTI+O+TShmfE4pqjoCMwUMjkvoNhNHPTvgR7QH9Xt3R13iHuWy2sToFxQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + which-boxed-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.1.tgz#cbe8f838ebe91ba2471bb69e9edbda67ab5a5ec1" @@ -31535,12 +31673,10 @@ ws@^6.1.2, ws@^6.2.1: dependencies: async-limiter "~1.0.0" -ws@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.0.tgz#422eda8c02a4b5dba7744ba66eebbd84bcef0ec7" - integrity sha512-+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg== - dependencies: - async-limiter "^1.0.0" +ws@^7.2.3: + version "7.3.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" + integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== x-is-function@^1.0.4: version "1.0.4" @@ -31634,7 +31770,7 @@ xmlbuilder@~9.0.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f" integrity sha1-UZy0ymhtAFqEINNJbz8MruzKWA8= -xmlchars@^2.1.1: +xmlchars@^2.1.1, xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== From 5f187307c2e20ea1c8057a0e65c7b5801a4467f6 Mon Sep 17 00:00:00 2001 From: Jen Huang <its.jenetic@gmail.com> Date: Thu, 1 Oct 2020 14:50:03 -0700 Subject: [PATCH 132/142] Fix condition for filtering to installed packages (#79205) --- .../ingest_manager/server/services/epm/packages/get.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/ingest_manager/server/services/epm/packages/get.ts b/x-pack/plugins/ingest_manager/server/services/epm/packages/get.ts index c4232247cc4bd..2d11b6157804f 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/packages/get.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/packages/get.ts @@ -51,14 +51,14 @@ export async function getPackages( } // Get package names for packages which cannot have more than one package policy on an agent policy -// Assume packages only export one config template for now +// Assume packages only export one policy template for now export async function getLimitedPackages(options: { savedObjectsClient: SavedObjectsClientContract; }): Promise<string[]> { const { savedObjectsClient } = options; const allPackages = await getPackages({ savedObjectsClient, experimental: true }); const installedPackages = allPackages.filter( - (pkg) => (pkg.status = InstallationStatus.installed) + (pkg) => pkg.status === InstallationStatus.installed ); const installedPackagesInfo = await Promise.all( installedPackages.map((pkgInstall) => { From 117b5771dcee1b3ee00e56d9c7bb025e459fec14 Mon Sep 17 00:00:00 2001 From: Patrick Mueller <pmuellr@gmail.com> Date: Thu, 1 Oct 2020 18:06:26 -0400 Subject: [PATCH 133/142] [Alerting] formalize alert status and add status fields to alert saved object (#75553) resolves https://github.com/elastic/kibana/issues/51099 This formalizes the concept of "alert status", in terms of it's execution, with some new fields in the alert saved object and types used with the alert client and http APIs. These fields are read-only from the client point-of-view; they are provided in the alert structures, but are only updated by the alerting framework itself. The values will be updated after each run of the alert type executor. The data is added to the alert as the `executionStatus` field, with the following shape: ```ts interface AlertExecutionStatus { status: 'ok' | 'active' | 'error' | 'pending' | 'unknown'; lastExecutionDate: Date; error?: { reason: 'read' | 'decrypt' | 'execute' | 'unknown'; message: string; }; } ``` --- x-pack/plugins/alerts/common/alert.ts | 23 ++ .../alerts/server/alerts_client.test.ts | 20 ++ x-pack/plugins/alerts/server/alerts_client.ts | 21 +- .../server/lib/alert_execution_status.test.ts | 185 ++++++++++ .../server/lib/alert_execution_status.ts | 66 ++++ ...rt_instance_summary_from_event_log.test.ts | 4 + .../server/lib/error_with_reason.test.ts | 28 ++ .../alerts/server/lib/error_with_reason.ts | 29 ++ x-pack/plugins/alerts/server/lib/index.ts | 7 + .../lib/is_alert_not_found_error.test.ts | 22 +- .../server/lib/is_alert_not_found_error.ts | 8 +- x-pack/plugins/alerts/server/plugin.ts | 1 + .../alerts/server/routes/create.test.ts | 7 +- .../plugins/alerts/server/routes/get.test.ts | 7 +- .../alerts/server/saved_objects/index.ts | 13 +- .../alerts/server/saved_objects/mappings.json | 20 ++ .../server/saved_objects/migrations.test.ts | 30 +- .../alerts/server/saved_objects/migrations.ts | 23 +- .../saved_objects/partially_update_alert.ts | 4 +- .../task_runner/alert_task_instance.test.ts | 4 + .../server/task_runner/task_runner.test.ts | 15 +- .../alerts/server/task_runner/task_runner.ts | 59 +++- .../task_runner/task_runner_factory.test.ts | 6 +- .../server/task_runner/task_runner_factory.ts | 3 +- x-pack/plugins/alerts/server/types.ts | 15 + .../routes/__mocks__/request_responses.ts | 8 + .../rules/patch_rules.mock.ts | 4 + .../public/application/lib/alert_api.test.ts | 8 + .../public/application/lib/alert_api.ts | 5 +- .../components/alert_details.test.tsx | 4 + .../components/alert_details_route.test.tsx | 4 + .../components/alert_instances.test.tsx | 4 + .../components/alert_instances_route.test.tsx | 4 + .../components/view_in_app.test.tsx | 4 + .../sections/alert_form/alert_edit.test.tsx | 9 +- .../with_bulk_alert_api_operations.test.tsx | 4 + .../common/lib/test_assertions.ts | 18 + .../tests/alerting/create.ts | 1 + .../tests/alerting/execution_status.ts | 87 +++++ .../tests/alerting/find.ts | 81 +++++ .../security_and_spaces/tests/alerting/get.ts | 1 + .../tests/alerting/index.ts | 1 + .../tests/alerting/update.ts | 5 + .../spaces_only/tests/alerting/create.ts | 1 + .../tests/alerting/execution_status.ts | 333 ++++++++++++++++++ .../spaces_only/tests/alerting/find.ts | 1 + .../spaces_only/tests/alerting/get.ts | 1 + .../spaces_only/tests/alerting/index.ts | 1 + .../spaces_only/tests/alerting/update.ts | 1 + .../detection_engine_api_integration/utils.ts | 13 +- 50 files changed, 1176 insertions(+), 47 deletions(-) create mode 100644 x-pack/plugins/alerts/server/lib/alert_execution_status.test.ts create mode 100644 x-pack/plugins/alerts/server/lib/alert_execution_status.ts create mode 100644 x-pack/plugins/alerts/server/lib/error_with_reason.test.ts create mode 100644 x-pack/plugins/alerts/server/lib/error_with_reason.ts create mode 100644 x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/execution_status.ts create mode 100644 x-pack/test/alerting_api_integration/spaces_only/tests/alerting/execution_status.ts diff --git a/x-pack/plugins/alerts/common/alert.ts b/x-pack/plugins/alerts/common/alert.ts index 3ff7ed742e810..4ebe66f7b7c9f 100644 --- a/x-pack/plugins/alerts/common/alert.ts +++ b/x-pack/plugins/alerts/common/alert.ts @@ -15,6 +15,28 @@ export interface IntervalSchedule extends SavedObjectAttributes { interval: string; } +// for the `typeof ThingValues[number]` types below, become string types that +// only accept the values in the associated string arrays +export const AlertExecutionStatusValues = ['ok', 'active', 'error', 'pending', 'unknown'] as const; +export type AlertExecutionStatuses = typeof AlertExecutionStatusValues[number]; + +export const AlertExecutionStatusErrorReasonValues = [ + 'read', + 'decrypt', + 'execute', + 'unknown', +] as const; +export type AlertExecutionStatusErrorReasons = typeof AlertExecutionStatusErrorReasonValues[number]; + +export interface AlertExecutionStatus { + status: AlertExecutionStatuses; + lastExecutionDate: Date; + error?: { + reason: AlertExecutionStatusErrorReasons; + message: string; + }; +} + export type AlertActionParams = SavedObjectAttributes; export interface AlertAction { @@ -44,6 +66,7 @@ export interface Alert { throttle: string | null; muteAll: boolean; mutedInstanceIds: string[]; + executionStatus: AlertExecutionStatus; } export type SanitizedAlert = Omit<Alert, 'apiKey'>; diff --git a/x-pack/plugins/alerts/server/alerts_client.test.ts b/x-pack/plugins/alerts/server/alerts_client.test.ts index 088390c3cb6e7..b20018fcc26f7 100644 --- a/x-pack/plugins/alerts/server/alerts_client.test.ts +++ b/x-pack/plugins/alerts/server/alerts_client.test.ts @@ -393,6 +393,11 @@ describe('create()', () => { "createdAt": "2019-02-12T21:01:22.479Z", "createdBy": "elastic", "enabled": true, + "executionStatus": Object { + "error": null, + "lastExecutionDate": "2019-02-12T21:01:22.479Z", + "status": "pending", + }, "meta": Object { "versionApiKeyLastmodified": "v7.10.0", }, @@ -1034,6 +1039,11 @@ describe('create()', () => { muteAll: false, mutedInstanceIds: [], tags: ['foo'], + executionStatus: { + lastExecutionDate: '2019-02-12T21:01:22.479Z', + status: 'pending', + error: null, + }, }, { references: [ @@ -1150,6 +1160,11 @@ describe('create()', () => { muteAll: false, mutedInstanceIds: [], tags: ['foo'], + executionStatus: { + lastExecutionDate: '2019-02-12T21:01:22.479Z', + status: 'pending', + error: null, + }, }, { references: [ @@ -2506,6 +2521,11 @@ const BaseAlertInstanceSummarySavedObject: SavedObject<RawAlert> = { throttle: null, muteAll: false, mutedInstanceIds: [], + executionStatus: { + status: 'unknown', + lastExecutionDate: '2020-08-20T19:23:38Z', + error: null, + }, }, references: [], }; diff --git a/x-pack/plugins/alerts/server/alerts_client.ts b/x-pack/plugins/alerts/server/alerts_client.ts index bcc3c9bcf7e55..bd278d39c6229 100644 --- a/x-pack/plugins/alerts/server/alerts_client.ts +++ b/x-pack/plugins/alerts/server/alerts_client.ts @@ -28,7 +28,7 @@ import { AlertTaskState, AlertInstanceSummary, } from './types'; -import { validateAlertTypeParams } from './lib'; +import { validateAlertTypeParams, alertExecutionStatusFromRaw } from './lib'; import { InvalidateAPIKeyParams, GrantAPIKeyResult as SecurityPluginGrantAPIKeyResult, @@ -122,6 +122,7 @@ export interface CreateOptions { | 'muteAll' | 'mutedInstanceIds' | 'actions' + | 'executionStatus' > & { actions: NormalizedAlertAction[] }; options?: { migrationVersion?: Record<string, string>; @@ -228,6 +229,11 @@ export class AlertsClient { params: validatedAlertTypeParams as RawAlert['params'], muteAll: false, mutedInstanceIds: [], + executionStatus: { + status: 'pending', + lastExecutionDate: new Date().toISOString(), + error: null, + }, }; let createdAlert: SavedObject<RawAlert>; try { @@ -978,9 +984,19 @@ export class AlertsClient { updatedAt: SavedObject['updated_at'] = createdAt, references: SavedObjectReference[] | undefined ): PartialAlert { + // Not the prettiest code here, but if we want to use most of the + // alert fields from the rawAlert using `...rawAlert` kind of access, we + // need to specifically delete the executionStatus as it's a different type + // in RawAlert and Alert. Probably next time we need to do something similar + // here, we should look at redesigning the implementation of this method. + const rawAlertWithoutExecutionStatus: Partial<Omit<RawAlert, 'executionStatus'>> = { + ...rawAlert, + }; + delete rawAlertWithoutExecutionStatus.executionStatus; + const executionStatus = alertExecutionStatusFromRaw(this.logger, id, rawAlert.executionStatus); return { id, - ...rawAlert, + ...rawAlertWithoutExecutionStatus, // we currently only support the Interval Schedule type // Once we support additional types, this type signature will likely change schedule: rawAlert.schedule as IntervalSchedule, @@ -990,6 +1006,7 @@ export class AlertsClient { ...(updatedAt ? { updatedAt: new Date(updatedAt) } : {}), ...(createdAt ? { createdAt: new Date(createdAt) } : {}), ...(scheduledTaskId ? { scheduledTaskId } : {}), + ...(executionStatus ? { executionStatus } : {}), }; } diff --git a/x-pack/plugins/alerts/server/lib/alert_execution_status.test.ts b/x-pack/plugins/alerts/server/lib/alert_execution_status.test.ts new file mode 100644 index 0000000000000..3372d19cd4090 --- /dev/null +++ b/x-pack/plugins/alerts/server/lib/alert_execution_status.test.ts @@ -0,0 +1,185 @@ +/* + * 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 { loggingSystemMock } from '../../../../../src/core/server/mocks'; +import { AlertExecutionStatusErrorReasons } from '../types'; +import { + executionStatusFromState, + executionStatusFromError, + alertExecutionStatusToRaw, + alertExecutionStatusFromRaw, +} from './alert_execution_status'; +import { ErrorWithReason } from './error_with_reason'; + +const MockLogger = loggingSystemMock.create().get(); + +describe('AlertExecutionStatus', () => { + beforeEach(() => { + jest.resetAllMocks(); + }); + + describe('executionStatusFromState()', () => { + test('empty task state', () => { + const status = executionStatusFromState({}); + checkDateIsNearNow(status.lastExecutionDate); + expect(status.status).toBe('ok'); + expect(status.error).toBe(undefined); + }); + + test('task state with no instances', () => { + const status = executionStatusFromState({ alertInstances: {} }); + checkDateIsNearNow(status.lastExecutionDate); + expect(status.status).toBe('ok'); + expect(status.error).toBe(undefined); + }); + + test('task state with one instance', () => { + const status = executionStatusFromState({ alertInstances: { a: {} } }); + checkDateIsNearNow(status.lastExecutionDate); + expect(status.status).toBe('active'); + expect(status.error).toBe(undefined); + }); + }); + + describe('executionStatusFromError()', () => { + test('error with no reason', () => { + const status = executionStatusFromError(new Error('boo!')); + expect(status.status).toBe('error'); + expect(status.error).toMatchInlineSnapshot(` + Object { + "message": "boo!", + "reason": "unknown", + } + `); + }); + + test('error with a reason', () => { + const status = executionStatusFromError(new ErrorWithReason('execute', new Error('hoo!'))); + expect(status.status).toBe('error'); + expect(status.error).toMatchInlineSnapshot(` + Object { + "message": "hoo!", + "reason": "execute", + } + `); + }); + }); + + describe('alertExecutionStatusToRaw()', () => { + const date = new Date('2020-09-03T16:26:58Z'); + const status = 'ok'; + const reason: AlertExecutionStatusErrorReasons = 'decrypt'; + const error = { reason, message: 'wops' }; + + test('status without an error', () => { + expect(alertExecutionStatusToRaw({ lastExecutionDate: date, status })).toMatchInlineSnapshot(` + Object { + "error": null, + "lastExecutionDate": "2020-09-03T16:26:58.000Z", + "status": "ok", + } + `); + }); + + test('status with an error', () => { + expect(alertExecutionStatusToRaw({ lastExecutionDate: date, status, error })) + .toMatchInlineSnapshot(` + Object { + "error": Object { + "message": "wops", + "reason": "decrypt", + }, + "lastExecutionDate": "2020-09-03T16:26:58.000Z", + "status": "ok", + } + `); + }); + }); + + describe('alertExecutionStatusFromRaw()', () => { + const date = new Date('2020-09-03T16:26:58Z').toISOString(); + const status = 'active'; + const reason: AlertExecutionStatusErrorReasons = 'execute'; + const error = { reason, message: 'wops' }; + + test('no input', () => { + const result = alertExecutionStatusFromRaw(MockLogger, 'alert-id'); + expect(result).toBe(undefined); + }); + + test('undefined input', () => { + const result = alertExecutionStatusFromRaw(MockLogger, 'alert-id', undefined); + expect(result).toBe(undefined); + }); + + test('null input', () => { + const result = alertExecutionStatusFromRaw(MockLogger, 'alert-id', null); + expect(result).toBe(undefined); + }); + + test('invalid date', () => { + const result = alertExecutionStatusFromRaw(MockLogger, 'alert-id', { + lastExecutionDate: 'an invalid date', + })!; + checkDateIsNearNow(result.lastExecutionDate); + expect(result.status).toBe('unknown'); + expect(result.error).toBe(undefined); + expect(MockLogger.debug).toBeCalledWith( + 'invalid alertExecutionStatus lastExecutionDate "an invalid date" in raw alert alert-id' + ); + }); + + test('valid date', () => { + const result = alertExecutionStatusFromRaw(MockLogger, 'alert-id', { + lastExecutionDate: date, + }); + expect(result).toMatchInlineSnapshot(` + Object { + "lastExecutionDate": 2020-09-03T16:26:58.000Z, + "status": "unknown", + } + `); + }); + + test('valid status and date', () => { + const result = alertExecutionStatusFromRaw(MockLogger, 'alert-id', { + status, + lastExecutionDate: date, + }); + expect(result).toMatchInlineSnapshot(` + Object { + "lastExecutionDate": 2020-09-03T16:26:58.000Z, + "status": "active", + } + `); + }); + + test('valid status, date and error', () => { + const result = alertExecutionStatusFromRaw(MockLogger, 'alert-id', { + status, + lastExecutionDate: date, + error, + }); + expect(result).toMatchInlineSnapshot(` + Object { + "error": Object { + "message": "wops", + "reason": "execute", + }, + "lastExecutionDate": 2020-09-03T16:26:58.000Z, + "status": "active", + } + `); + }); + }); +}); + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function checkDateIsNearNow(date: any) { + expect(date instanceof Date).toBe(true); + // allow for lots of slop in the time difference + expect(Date.now() - date.valueOf()).toBeLessThanOrEqual(10000); +} diff --git a/x-pack/plugins/alerts/server/lib/alert_execution_status.ts b/x-pack/plugins/alerts/server/lib/alert_execution_status.ts new file mode 100644 index 0000000000000..9eb0c8817f28c --- /dev/null +++ b/x-pack/plugins/alerts/server/lib/alert_execution_status.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 { Logger } from 'src/core/server'; +import { AlertTaskState, AlertExecutionStatus, RawAlertExecutionStatus } from '../types'; +import { getReasonFromError } from './error_with_reason'; + +export function executionStatusFromState(state: AlertTaskState): AlertExecutionStatus { + const instanceIds = Object.keys(state.alertInstances ?? {}); + return { + lastExecutionDate: new Date(), + status: instanceIds.length === 0 ? 'ok' : 'active', + }; +} + +export function executionStatusFromError(error: Error): AlertExecutionStatus { + return { + lastExecutionDate: new Date(), + status: 'error', + error: { + reason: getReasonFromError(error), + message: error.message, + }, + }; +} + +export function alertExecutionStatusToRaw({ + lastExecutionDate, + status, + error, +}: AlertExecutionStatus): RawAlertExecutionStatus { + return { + lastExecutionDate: lastExecutionDate.toISOString(), + status, + // explicitly setting to null (in case undefined) due to partial update concerns + error: error ?? null, + }; +} + +export function alertExecutionStatusFromRaw( + logger: Logger, + alertId: string, + rawAlertExecutionStatus?: Partial<RawAlertExecutionStatus> | null | undefined +): AlertExecutionStatus | undefined { + if (!rawAlertExecutionStatus) return undefined; + + const { lastExecutionDate, status = 'unknown', error } = rawAlertExecutionStatus; + + let parsedDateMillis = lastExecutionDate ? Date.parse(lastExecutionDate) : Date.now(); + if (isNaN(parsedDateMillis)) { + logger.debug( + `invalid alertExecutionStatus lastExecutionDate "${lastExecutionDate}" in raw alert ${alertId}` + ); + parsedDateMillis = Date.now(); + } + + const parsedDate = new Date(parsedDateMillis); + if (error) { + return { lastExecutionDate: parsedDate, status, error }; + } else { + return { lastExecutionDate: parsedDate, status }; + } +} diff --git a/x-pack/plugins/alerts/server/lib/alert_instance_summary_from_event_log.test.ts b/x-pack/plugins/alerts/server/lib/alert_instance_summary_from_event_log.test.ts index b5936cf3577b3..566a1770c0658 100644 --- a/x-pack/plugins/alerts/server/lib/alert_instance_summary_from_event_log.test.ts +++ b/x-pack/plugins/alerts/server/lib/alert_instance_summary_from_event_log.test.ts @@ -511,4 +511,8 @@ const BaseAlert: SanitizedAlert = { createdAt: new Date(), updatedAt: new Date(), apiKeyOwner: null, + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, }; diff --git a/x-pack/plugins/alerts/server/lib/error_with_reason.test.ts b/x-pack/plugins/alerts/server/lib/error_with_reason.test.ts new file mode 100644 index 0000000000000..f31f584400308 --- /dev/null +++ b/x-pack/plugins/alerts/server/lib/error_with_reason.test.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 { ErrorWithReason, getReasonFromError, isErrorWithReason } from './error_with_reason'; + +describe('ErrorWithReason', () => { + const plainError = new Error('well, actually'); + const errorWithReason = new ErrorWithReason('decrypt', plainError); + + test('ErrorWithReason class', () => { + expect(errorWithReason.message).toBe(plainError.message); + expect(errorWithReason.error).toBe(plainError); + expect(errorWithReason.reason).toBe('decrypt'); + }); + + test('getReasonFromError()', () => { + expect(getReasonFromError(plainError)).toBe('unknown'); + expect(getReasonFromError(errorWithReason)).toBe('decrypt'); + }); + + test('isErrorWithReason()', () => { + expect(isErrorWithReason(plainError)).toBe(false); + expect(isErrorWithReason(errorWithReason)).toBe(true); + }); +}); diff --git a/x-pack/plugins/alerts/server/lib/error_with_reason.ts b/x-pack/plugins/alerts/server/lib/error_with_reason.ts new file mode 100644 index 0000000000000..29eb666e64427 --- /dev/null +++ b/x-pack/plugins/alerts/server/lib/error_with_reason.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. + */ + +import { AlertExecutionStatusErrorReasons } from '../types'; + +export class ErrorWithReason extends Error { + public readonly reason: AlertExecutionStatusErrorReasons; + public readonly error: Error; + + constructor(reason: AlertExecutionStatusErrorReasons, error: Error) { + super(error.message); + this.error = error; + this.reason = reason; + } +} + +export function getReasonFromError(error: Error): AlertExecutionStatusErrorReasons { + if (isErrorWithReason(error)) { + return error.reason; + } + return 'unknown'; +} + +export function isErrorWithReason(error: Error | ErrorWithReason): error is ErrorWithReason { + return error instanceof ErrorWithReason; +} diff --git a/x-pack/plugins/alerts/server/lib/index.ts b/x-pack/plugins/alerts/server/lib/index.ts index 2f610aafd8c31..32047ae5cbfa8 100644 --- a/x-pack/plugins/alerts/server/lib/index.ts +++ b/x-pack/plugins/alerts/server/lib/index.ts @@ -7,3 +7,10 @@ export { parseDuration, validateDurationSchema } from '../../common/parse_duration'; export { LicenseState } from './license_state'; export { validateAlertTypeParams } from './validate_alert_type_params'; +export { ErrorWithReason, getReasonFromError, isErrorWithReason } from './error_with_reason'; +export { + executionStatusFromState, + executionStatusFromError, + alertExecutionStatusToRaw, + alertExecutionStatusFromRaw, +} from './alert_execution_status'; diff --git a/x-pack/plugins/alerts/server/lib/is_alert_not_found_error.test.ts b/x-pack/plugins/alerts/server/lib/is_alert_not_found_error.test.ts index 46ceee3ce420b..b570957d82de4 100644 --- a/x-pack/plugins/alerts/server/lib/is_alert_not_found_error.test.ts +++ b/x-pack/plugins/alerts/server/lib/is_alert_not_found_error.test.ts @@ -5,27 +5,27 @@ */ import { isAlertSavedObjectNotFoundError } from './is_alert_not_found_error'; +import { ErrorWithReason } from './error_with_reason'; import { SavedObjectsErrorHelpers } from '../../../../../src/core/server'; import uuid from 'uuid'; describe('isAlertSavedObjectNotFoundError', () => { + const id = uuid.v4(); + const errorSONF = SavedObjectsErrorHelpers.createGenericNotFoundError('alert', id); + test('identifies SavedObjects Not Found errors', () => { - const id = uuid.v4(); // ensure the error created by SO parses as a string with the format we expect - expect( - `${SavedObjectsErrorHelpers.createGenericNotFoundError('alert', id)}`.includes(`alert/${id}`) - ).toBe(true); - - const errorBySavedObjectsHelper = SavedObjectsErrorHelpers.createGenericNotFoundError( - 'alert', - id - ); + expect(`${errorSONF}`.includes(`alert/${id}`)).toBe(true); - expect(isAlertSavedObjectNotFoundError(errorBySavedObjectsHelper, id)).toBe(true); + expect(isAlertSavedObjectNotFoundError(errorSONF, id)).toBe(true); }); test('identifies generic errors', () => { - const id = uuid.v4(); expect(isAlertSavedObjectNotFoundError(new Error(`not found`), id)).toBe(false); }); + + test('identifies SavedObjects Not Found errors wrapped in an ErrorWithReason', () => { + const error = new ErrorWithReason('read', errorSONF); + expect(isAlertSavedObjectNotFoundError(error, id)).toBe(true); + }); }); diff --git a/x-pack/plugins/alerts/server/lib/is_alert_not_found_error.ts b/x-pack/plugins/alerts/server/lib/is_alert_not_found_error.ts index 0aa83ad0e883c..038e234586688 100644 --- a/x-pack/plugins/alerts/server/lib/is_alert_not_found_error.ts +++ b/x-pack/plugins/alerts/server/lib/is_alert_not_found_error.ts @@ -5,7 +5,13 @@ */ import { SavedObjectsErrorHelpers } from '../../../../../src/core/server'; +import { isErrorWithReason } from './error_with_reason'; export function isAlertSavedObjectNotFoundError(err: Error, alertId: string) { - return SavedObjectsErrorHelpers.isNotFoundError(err) && `${err}`.includes(alertId); + // if this is an error with a reason, the actual error needs to be extracted + const actualError = isErrorWithReason(err) ? err.error : err; + + return ( + SavedObjectsErrorHelpers.isNotFoundError(actualError) && `${actualError}`.includes(alertId) + ); } diff --git a/x-pack/plugins/alerts/server/plugin.ts b/x-pack/plugins/alerts/server/plugin.ts index e9caf4b78e627..4cdcac4c9e889 100644 --- a/x-pack/plugins/alerts/server/plugin.ts +++ b/x-pack/plugins/alerts/server/plugin.ts @@ -264,6 +264,7 @@ export class AlertingPlugin { encryptedSavedObjectsClient, getBasePath: this.getBasePath, eventLogger: this.eventLogger!, + internalSavedObjectsRepository: core.savedObjects.createInternalRepository(['alert']), }); this.eventLogService!.registerSavedObjectProvider('alert', (request) => { diff --git a/x-pack/plugins/alerts/server/routes/create.test.ts b/x-pack/plugins/alerts/server/routes/create.test.ts index 274acaf01c475..51c5d2525631d 100644 --- a/x-pack/plugins/alerts/server/routes/create.test.ts +++ b/x-pack/plugins/alerts/server/routes/create.test.ts @@ -10,6 +10,7 @@ import { mockLicenseState } from '../lib/license_state.mock'; import { verifyApiAccess } from '../lib/license_api_access'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { alertsClientMock } from '../alerts_client.mock'; +import { Alert } from '../../common/alert'; const alertsClient = alertsClientMock.create(); @@ -46,7 +47,7 @@ describe('createAlertRoute', () => { ], }; - const createResult = { + const createResult: Alert = { ...mockedAlert, enabled: true, muteAll: false, @@ -64,6 +65,10 @@ describe('createAlertRoute', () => { actionTypeId: 'test', }, ], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, }; it('creates an alert with proper parameters', async () => { diff --git a/x-pack/plugins/alerts/server/routes/get.test.ts b/x-pack/plugins/alerts/server/routes/get.test.ts index 8c4b06adf70f7..c60177e90b79d 100644 --- a/x-pack/plugins/alerts/server/routes/get.test.ts +++ b/x-pack/plugins/alerts/server/routes/get.test.ts @@ -10,6 +10,7 @@ import { mockLicenseState } from '../lib/license_state.mock'; import { verifyApiAccess } from '../lib/license_api_access'; import { mockHandlerArguments } from './_mock_handler_arguments'; import { alertsClientMock } from '../alerts_client.mock'; +import { Alert } from '../../common'; const alertsClient = alertsClientMock.create(); jest.mock('../lib/license_api_access.ts', () => ({ @@ -21,7 +22,7 @@ beforeEach(() => { }); describe('getAlertRoute', () => { - const mockedAlert = { + const mockedAlert: Alert = { id: '1', alertTypeId: '1', schedule: { interval: '10s' }, @@ -51,6 +52,10 @@ describe('getAlertRoute', () => { apiKeyOwner: '', throttle: '30s', mutedInstanceIds: [], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, }; it('gets an alert with proper parameters', async () => { diff --git a/x-pack/plugins/alerts/server/saved_objects/index.ts b/x-pack/plugins/alerts/server/saved_objects/index.ts index 51ac68b589977..9aa1f86676eaa 100644 --- a/x-pack/plugins/alerts/server/saved_objects/index.ts +++ b/x-pack/plugins/alerts/server/saved_objects/index.ts @@ -16,15 +16,19 @@ export const AlertAttributesExcludedFromAAD = [ 'muteAll', 'mutedInstanceIds', 'updatedBy', + 'executionStatus', ]; // useful for Pick<RawAlert, AlertAttributesExcludedFromAADType> which is a // type which is a subset of RawAlert with just attributes excluded from AAD + +// useful for Pick<RawAlert, AlertAttributesExcludedFromAADType> export type AlertAttributesExcludedFromAADType = | 'scheduledTaskId' | 'muteAll' | 'mutedInstanceIds' - | 'updatedBy'; + | 'updatedBy' + | 'executionStatus'; export function setupSavedObjects( savedObjects: SavedObjectsServiceSetup, @@ -42,11 +46,6 @@ export function setupSavedObjects( encryptedSavedObjects.registerType({ type: 'alert', attributesToEncrypt: new Set(['apiKey']), - attributesToExcludeFromAAD: new Set([ - 'scheduledTaskId', - 'muteAll', - 'mutedInstanceIds', - 'updatedBy', - ]), + attributesToExcludeFromAAD: new Set(AlertAttributesExcludedFromAAD), }); } diff --git a/x-pack/plugins/alerts/server/saved_objects/mappings.json b/x-pack/plugins/alerts/server/saved_objects/mappings.json index 8440b963975ff..a6c92080f18be 100644 --- a/x-pack/plugins/alerts/server/saved_objects/mappings.json +++ b/x-pack/plugins/alerts/server/saved_objects/mappings.json @@ -83,6 +83,26 @@ "type": "keyword" } } + }, + "executionStatus": { + "properties": { + "status": { + "type": "keyword" + }, + "lastExecutionDate": { + "type": "date" + }, + "error": { + "properties": { + "reason": { + "type": "keyword" + }, + "message": { + "type": "keyword" + } + } + } + } } } } diff --git a/x-pack/plugins/alerts/server/saved_objects/migrations.test.ts b/x-pack/plugins/alerts/server/saved_objects/migrations.test.ts index 10e1a9ae421b7..8c9d10769b18a 100644 --- a/x-pack/plugins/alerts/server/saved_objects/migrations.test.ts +++ b/x-pack/plugins/alerts/server/saved_objects/migrations.test.ts @@ -177,7 +177,7 @@ describe('7.10.0', () => { }, ], }); - expect(migration710(alert, { log })).toEqual({ + expect(migration710(alert, { log })).toMatchObject({ ...alert, attributes: { ...alert.attributes, @@ -199,6 +199,32 @@ describe('7.10.0', () => { }, }); }); + + test('creates execution status', () => { + const migration710 = getMigrations(encryptedSavedObjectsSetup)['7.10.0']; + const alert = getMockData(); + const dateStart = Date.now(); + const migratedAlert = migration710(alert, { log }); + const dateStop = Date.now(); + const dateExecutionStatus = Date.parse( + migratedAlert.attributes.executionStatus.lastExecutionDate + ); + + expect(dateStart).toBeLessThanOrEqual(dateExecutionStatus); + expect(dateStop).toBeGreaterThanOrEqual(dateExecutionStatus); + + expect(migratedAlert).toMatchObject({ + ...alert, + attributes: { + ...alert.attributes, + executionStatus: { + lastExecutionDate: migratedAlert.attributes.executionStatus.lastExecutionDate, + status: 'pending', + error: null, + }, + }, + }); + }); }); describe('7.10.0 migrates with failure', () => { @@ -237,7 +263,7 @@ describe('7.10.0 migrates with failure', () => { function getMockData( overwrites: Record<string, unknown> = {} -): SavedObjectUnsanitizedDoc<RawAlert> { +): SavedObjectUnsanitizedDoc<Partial<RawAlert>> { return { attributes: { enabled: true, diff --git a/x-pack/plugins/alerts/server/saved_objects/migrations.ts b/x-pack/plugins/alerts/server/saved_objects/migrations.ts index 537c21e85c0bd..0b2c86b84f67b 100644 --- a/x-pack/plugins/alerts/server/saved_objects/migrations.ts +++ b/x-pack/plugins/alerts/server/saved_objects/migrations.ts @@ -30,7 +30,11 @@ export function getMigrations( // migrate all documents in 7.10 in order to add the "meta" RBAC field return true; }, - pipeMigrations(markAsLegacyAndChangeConsumer, setAlertIdAsDefaultDedupkeyOnPagerDutyActions) + pipeMigrations( + markAsLegacyAndChangeConsumer, + setAlertIdAsDefaultDedupkeyOnPagerDutyActions, + initializeExecutionStatus + ) ); return { @@ -110,6 +114,23 @@ function setAlertIdAsDefaultDedupkeyOnPagerDutyActions( }; } +function initializeExecutionStatus( + doc: SavedObjectUnsanitizedDoc<RawAlert> +): SavedObjectUnsanitizedDoc<RawAlert> { + const { attributes } = doc; + return { + ...doc, + attributes: { + ...attributes, + executionStatus: { + status: 'pending', + lastExecutionDate: new Date().toISOString(), + error: null, + }, + }, + }; +} + function pipeMigrations(...migrations: AlertMigration[]): AlertMigration { return (doc: SavedObjectUnsanitizedDoc<RawAlert>) => migrations.reduce((migratedDoc, nextMigration) => nextMigration(migratedDoc), doc); diff --git a/x-pack/plugins/alerts/server/saved_objects/partially_update_alert.ts b/x-pack/plugins/alerts/server/saved_objects/partially_update_alert.ts index cc25aaba35798..b829a6788a3dd 100644 --- a/x-pack/plugins/alerts/server/saved_objects/partially_update_alert.ts +++ b/x-pack/plugins/alerts/server/saved_objects/partially_update_alert.ts @@ -15,7 +15,9 @@ import { import { AlertAttributesExcludedFromAAD, AlertAttributesExcludedFromAADType } from './index'; -export type PartiallyUpdateableAlertAttributes = Pick<RawAlert, AlertAttributesExcludedFromAADType>; +export type PartiallyUpdateableAlertAttributes = Partial< + Pick<RawAlert, AlertAttributesExcludedFromAADType> +>; export interface PartiallyUpdateAlertSavedObjectOptions { version?: string; diff --git a/x-pack/plugins/alerts/server/task_runner/alert_task_instance.test.ts b/x-pack/plugins/alerts/server/task_runner/alert_task_instance.test.ts index efac4c5dcdc01..cf0dd9d135e27 100644 --- a/x-pack/plugins/alerts/server/task_runner/alert_task_instance.test.ts +++ b/x-pack/plugins/alerts/server/task_runner/alert_task_instance.test.ts @@ -29,6 +29,10 @@ const alert: SanitizedAlert = { throttle: null, muteAll: false, mutedInstanceIds: [], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, }; describe('Alert Task Instance', () => { diff --git a/x-pack/plugins/alerts/server/task_runner/task_runner.test.ts b/x-pack/plugins/alerts/server/task_runner/task_runner.test.ts index 801d30b6406ee..d9af3d0ae6d5b 100644 --- a/x-pack/plugins/alerts/server/task_runner/task_runner.test.ts +++ b/x-pack/plugins/alerts/server/task_runner/task_runner.test.ts @@ -11,14 +11,17 @@ import { ConcreteTaskInstance, TaskStatus } from '../../../task_manager/server'; import { TaskRunnerContext } from './task_runner_factory'; import { TaskRunner } from './task_runner'; import { encryptedSavedObjectsMock } from '../../../encrypted_saved_objects/server/mocks'; -import { loggingSystemMock } from '../../../../../src/core/server/mocks'; +import { + loggingSystemMock, + savedObjectsRepositoryMock, +} from '../../../../../src/core/server/mocks'; import { PluginStartContract as ActionsPluginStart } from '../../../actions/server'; import { actionsMock, actionsClientMock } from '../../../actions/server/mocks'; import { alertsMock, alertsClientMock } from '../mocks'; import { eventLoggerMock } from '../../../event_log/server/event_logger.mock'; import { IEventLogger } from '../../../event_log/server'; import { SavedObjectsErrorHelpers } from '../../../../../src/core/server'; - +import { Alert } from '../../common'; const alertType = { id: 'test', name: 'My test alert', @@ -71,9 +74,10 @@ describe('Task Runner', () => { spaceIdToNamespace: jest.fn().mockReturnValue(undefined), getBasePath: jest.fn().mockReturnValue(undefined), eventLogger: eventLoggerMock.create(), + internalSavedObjectsRepository: savedObjectsRepositoryMock.create(), }; - const mockedAlertTypeSavedObject = { + const mockedAlertTypeSavedObject: Alert = { id: '1', consumer: 'bar', createdAt: new Date('2019-02-12T21:01:22.479Z'), @@ -82,6 +86,7 @@ describe('Task Runner', () => { muteAll: false, enabled: true, alertTypeId: '123', + apiKey: '', apiKeyOwner: 'elastic', schedule: { interval: '10s' }, name: 'alert-name', @@ -102,6 +107,10 @@ describe('Task Runner', () => { }, }, ], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, }; beforeEach(() => { diff --git a/x-pack/plugins/alerts/server/task_runner/task_runner.ts b/x-pack/plugins/alerts/server/task_runner/task_runner.ts index 7ea3f83d747c0..1ccf14a3a5334 100644 --- a/x-pack/plugins/alerts/server/task_runner/task_runner.ts +++ b/x-pack/plugins/alerts/server/task_runner/task_runner.ts @@ -11,7 +11,13 @@ import { ConcreteTaskInstance } from '../../../task_manager/server'; import { createExecutionHandler } from './create_execution_handler'; import { AlertInstance, createAlertInstanceFactory } from '../alert_instance'; import { getNextRunAt } from './get_next_run_at'; -import { validateAlertTypeParams } from '../lib'; +import { + validateAlertTypeParams, + executionStatusFromState, + executionStatusFromError, + alertExecutionStatusToRaw, + ErrorWithReason, +} from '../lib'; import { AlertType, RawAlert, @@ -22,6 +28,7 @@ import { Alert, AlertExecutorOptions, SanitizedAlert, + AlertExecutionStatus, } from '../types'; import { promiseResult, map, Resultable, asOk, asErr, resolveErr } from '../lib/result_type'; import { taskInstanceToAlertTaskInstance } from './alert_task_instance'; @@ -29,6 +36,7 @@ import { EVENT_LOG_ACTIONS } from '../plugin'; import { IEvent, IEventLogger, SAVED_OBJECT_REL_PRIMARY } from '../../../event_log/server'; import { isAlertSavedObjectNotFoundError } from '../lib/is_alert_not_found_error'; import { AlertsClient } from '../alerts_client'; +import { partiallyUpdateAlert } from '../saved_objects'; const FALLBACK_RETRY_INTERVAL: IntervalSchedule = { interval: '5m' }; @@ -204,7 +212,7 @@ export class TaskRunner { event.event = event.event || {}; event.event.outcome = 'failure'; eventLogger.logEvent(event); - throw err; + throw new ErrorWithReason('execute', err); } eventLogger.stopTiming(event); @@ -278,15 +286,22 @@ export class TaskRunner { const { params: { alertId, spaceId }, } = this.taskInstance; + let apiKey: string | null; + try { + apiKey = await this.getApiKeyForAlertPermissions(alertId, spaceId); + } catch (err) { + throw new ErrorWithReason('decrypt', err); + } + const [services, alertsClient] = this.getServicesWithSpaceLevelPermissions(spaceId, apiKey); - const apiKey = await this.getApiKeyForAlertPermissions(alertId, spaceId); - const [services, alertsClient] = await this.getServicesWithSpaceLevelPermissions( - spaceId, - apiKey - ); + let alert: SanitizedAlert; // Ensure API key is still valid and user has access - const alert = await alertsClient.get({ id: alertId }); + try { + alert = await alertsClient.get({ id: alertId }); + } catch (err) { + throw new ErrorWithReason('read', err); + } return { state: await promiseResult<AlertTaskState, Error>( @@ -306,12 +321,38 @@ export class TaskRunner { async run(): Promise<AlertTaskRunResult> { const { - params: { alertId }, + params: { alertId, spaceId }, startedAt: previousStartedAt, state: originalState, } = this.taskInstance; const { state, runAt } = await errorAsAlertTaskRunResult(this.loadAlertAttributesAndRun()); + const namespace = spaceId === 'default' ? undefined : spaceId; + + const executionStatus: AlertExecutionStatus = map( + state, + (alertTaskState: AlertTaskState) => executionStatusFromState(alertTaskState), + (err: Error) => executionStatusFromError(err) + ); + this.logger.debug( + `alertExecutionStatus for ${this.alertType.id}:${alertId}: ${JSON.stringify(executionStatus)}` + ); + + const client = this.context.internalSavedObjectsRepository; + const attributes = { + executionStatus: alertExecutionStatusToRaw(executionStatus), + }; + + try { + await partiallyUpdateAlert(client, alertId, attributes, { + ignore404: true, + namespace, + }); + } catch (err) { + this.logger.error( + `error updating alert execution status for ${this.alertType.id}:${alertId} ${err.message}` + ); + } return { state: map<AlertTaskState, Error, AlertTaskState>( diff --git a/x-pack/plugins/alerts/server/task_runner/task_runner_factory.test.ts b/x-pack/plugins/alerts/server/task_runner/task_runner_factory.test.ts index 9af7d9ddc44eb..5da8e4296f4dd 100644 --- a/x-pack/plugins/alerts/server/task_runner/task_runner_factory.test.ts +++ b/x-pack/plugins/alerts/server/task_runner/task_runner_factory.test.ts @@ -8,7 +8,10 @@ import sinon from 'sinon'; import { ConcreteTaskInstance, TaskStatus } from '../../../task_manager/server'; import { TaskRunnerContext, TaskRunnerFactory } from './task_runner_factory'; import { encryptedSavedObjectsMock } from '../../../encrypted_saved_objects/server/mocks'; -import { loggingSystemMock } from '../../../../../src/core/server/mocks'; +import { + loggingSystemMock, + savedObjectsRepositoryMock, +} from '../../../../../src/core/server/mocks'; import { actionsMock } from '../../../actions/server/mocks'; import { alertsMock, alertsClientMock } from '../mocks'; import { eventLoggerMock } from '../../../event_log/server/event_logger.mock'; @@ -63,6 +66,7 @@ describe('Task Runner Factory', () => { spaceIdToNamespace: jest.fn().mockReturnValue(undefined), getBasePath: jest.fn().mockReturnValue(undefined), eventLogger: eventLoggerMock.create(), + internalSavedObjectsRepository: savedObjectsRepositoryMock.create(), }; beforeEach(() => { diff --git a/x-pack/plugins/alerts/server/task_runner/task_runner_factory.ts b/x-pack/plugins/alerts/server/task_runner/task_runner_factory.ts index 6f83e34cdbe03..944c4dc64ce7a 100644 --- a/x-pack/plugins/alerts/server/task_runner/task_runner_factory.ts +++ b/x-pack/plugins/alerts/server/task_runner/task_runner_factory.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 { Logger, KibanaRequest } from '../../../../../src/core/server'; +import { Logger, KibanaRequest, ISavedObjectsRepository } from '../../../../../src/core/server'; import { RunContext } from '../../../task_manager/server'; import { EncryptedSavedObjectsClient } from '../../../encrypted_saved_objects/server'; import { PluginStartContract as ActionsPluginStartContract } from '../../../actions/server'; @@ -26,6 +26,7 @@ export interface TaskRunnerContext { encryptedSavedObjectsClient: EncryptedSavedObjectsClient; spaceIdToNamespace: SpaceIdToNamespaceFunction; getBasePath: GetBasePathFunction; + internalSavedObjectsRepository: ISavedObjectsRepository; } export class TaskRunnerFactory { diff --git a/x-pack/plugins/alerts/server/types.ts b/x-pack/plugins/alerts/server/types.ts index 8d568e8b7ecd1..03d41724213ce 100644 --- a/x-pack/plugins/alerts/server/types.ts +++ b/x-pack/plugins/alerts/server/types.ts @@ -24,6 +24,8 @@ import { AlertTypeState, AlertInstanceContext, AlertInstanceState, + AlertExecutionStatuses, + AlertExecutionStatusErrorReasons, } from '../common'; export type WithoutQueryAndParams<T> = Pick<T, Exclude<keyof T, 'query' | 'params'>>; @@ -115,6 +117,18 @@ export interface AlertMeta extends SavedObjectAttributes { versionApiKeyLastmodified?: string; } +// note that the `error` property is "null-able", as we're doing a partial +// update on the alert when we update this data, but need to ensure we +// delete any previous error if the current status has no error +export interface RawAlertExecutionStatus extends SavedObjectAttributes { + status: AlertExecutionStatuses; + lastExecutionDate: string; + error: null | { + reason: AlertExecutionStatusErrorReasons; + message: string; + }; +} + export type PartialAlert = Pick<Alert, 'id'> & Partial<Omit<Alert, 'id'>>; export interface RawAlert extends SavedObjectAttributes { @@ -136,6 +150,7 @@ export interface RawAlert extends SavedObjectAttributes { muteAll: boolean; mutedInstanceIds: string[]; meta?: AlertMeta; + executionStatus: RawAlertExecutionStatus; } export type AlertInfoParams = Pick< diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts index 5d9cfb4bb4492..9081831c45497 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts @@ -419,6 +419,10 @@ export const getResult = (): RuleAlertType => ({ muteAll: false, mutedInstanceIds: [], scheduledTaskId: '2dabe330-0702-11ea-8b50-773b89126888', + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, }); export const getMlResult = (): RuleAlertType => { @@ -630,6 +634,10 @@ export const getNotificationResult = (): RuleNotificationAlertType => ({ mutedInstanceIds: [], scheduledTaskId: '62b3a130-6b70-11ea-9ce9-6b9818c4cbd7', updatedAt: new Date('2020-03-21T12:37:08.730Z'), + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, }); export const getFindNotificationsResultWithSingleHit = (): FindHit<RuleNotificationAlertType> => ({ diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.mock.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.mock.ts index aeb136a969aa1..8672c85f98426 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.mock.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.mock.ts @@ -110,6 +110,10 @@ const rule: SanitizedAlert = { muteAll: false, mutedInstanceIds: [], scheduledTaskId: '2dabe330-0702-11ea-8b50-773b89126888', + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, }; export const getPatchRulesOptionsMock = (): PatchRulesOptions => ({ diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api.test.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api.test.ts index fc5d301cb7cd0..f6cefb77a240e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api.test.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api.test.ts @@ -398,6 +398,10 @@ describe('createAlert', () => { updatedBy: null, muteAll: false, mutedInstanceIds: [], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, }; http.post.mockResolvedValueOnce(resolvedValue); @@ -440,6 +444,10 @@ describe('updateAlert', () => { updatedBy: null, muteAll: false, mutedInstanceIds: [], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, }; http.put.mockResolvedValueOnce(resolvedValue); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api.ts index 97feea6ba8a0f..d5711a3e8c919 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api.ts @@ -136,7 +136,10 @@ export async function createAlert({ alert, }: { http: HttpSetup; - alert: Omit<AlertWithoutId, 'createdBy' | 'updatedBy' | 'muteAll' | 'mutedInstanceIds'>; + alert: Omit< + AlertWithoutId, + 'createdBy' | 'updatedBy' | 'muteAll' | 'mutedInstanceIds' | 'executionStatus' + >; }): Promise<Alert> { return await http.post(`${BASE_ALERT_API_PATH}/alert`, { body: JSON.stringify(alert), diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_details.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_details.test.tsx index 16d1a5c7c9c65..5c9969221cfc3 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_details.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_details.test.tsx @@ -757,6 +757,10 @@ function mockAlert(overloads: Partial<Alert> = {}): Alert { throttle: null, muteAll: false, mutedInstanceIds: [], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, ...overloads, }; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_details_route.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_details_route.test.tsx index 7a40104e97d9f..5ed924c37fe7a 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_details_route.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_details_route.test.tsx @@ -404,6 +404,10 @@ function mockAlert(overloads: Partial<Alert> = {}): Alert { throttle: null, muteAll: false, mutedInstanceIds: [], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, ...overloads, }; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_instances.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_instances.test.tsx index f59b836a7936e..2c1020ff1d5b3 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_instances.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_instances.test.tsx @@ -254,6 +254,10 @@ function mockAlert(overloads: Partial<Alert> = {}): Alert { throttle: null, muteAll: false, mutedInstanceIds: [], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, ...overloads, }; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_instances_route.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_instances_route.test.tsx index d92148a8fea53..603f06d0bbae4 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_instances_route.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alert_instances_route.test.tsx @@ -132,6 +132,10 @@ function mockAlert(overloads: Partial<Alert> = {}): Alert { throttle: null, muteAll: false, mutedInstanceIds: [], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, ...overloads, }; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/view_in_app.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/view_in_app.test.tsx index 54d335aaba5aa..7e43fd22ff8c8 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/view_in_app.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/view_in_app.test.tsx @@ -105,6 +105,10 @@ function mockAlert(overloads: Partial<Alert> = {}): Alert { throttle: null, muteAll: false, mutedInstanceIds: [], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, ...overloads, }; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.test.tsx index e408c7fcb8144..24eb7aabb9549 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.test.tsx @@ -8,7 +8,7 @@ import { mountWithIntl, nextTick } from 'test_utils/enzyme_helpers'; import { act } from 'react-dom/test-utils'; import { coreMock } from '../../../../../../../src/core/public/mocks'; import { actionTypeRegistryMock } from '../../action_type_registry.mock'; -import { ValidationResult } from '../../../types'; +import { ValidationResult, Alert } from '../../../types'; import { AlertsContextProvider } from '../../context/alerts_context'; import { alertTypeRegistryMock } from '../../alert_type_registry.mock'; import { ReactWrapper } from 'enzyme'; @@ -73,7 +73,7 @@ describe('alert_edit', () => { actionParamsFields: null, }; - const alert = { + const alert: Alert = { id: 'ab5661e0-197e-45ee-b477-302d89193b5e', params: { aggType: 'average', @@ -93,7 +93,6 @@ describe('alert_edit', () => { actionTypeId: 'my-action-type', group: 'threshold met', params: { message: 'Alert [{{ctx.metadata.name}}] has exceeded the threshold' }, - message: 'Alert [{{ctx.metadata.name}}] has exceeded the threshold', id: '917f5d41-fbc4-4056-a8ad-ac592f7dcee2', }, ], @@ -107,6 +106,10 @@ describe('alert_edit', () => { muteAll: false, mutedInstanceIds: [], updatedAt: new Date(), + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, }; actionTypeRegistry.get.mockReturnValueOnce(actionTypeModel); actionTypeRegistry.has.mockReturnValue(true); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/with_bulk_alert_api_operations.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/with_bulk_alert_api_operations.test.tsx index 074e2d5147b5e..72d4f8857a610 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/with_bulk_alert_api_operations.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/with_bulk_alert_api_operations.test.tsx @@ -264,6 +264,10 @@ function mockAlert(overloads: Partial<Alert> = {}): Alert { throttle: null, muteAll: false, mutedInstanceIds: [], + executionStatus: { + status: 'unknown', + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + }, ...overloads, }; } diff --git a/x-pack/test/alerting_api_integration/common/lib/test_assertions.ts b/x-pack/test/alerting_api_integration/common/lib/test_assertions.ts index 9495dd4cfae82..6124a5fb7c358 100644 --- a/x-pack/test/alerting_api_integration/common/lib/test_assertions.ts +++ b/x-pack/test/alerting_api_integration/common/lib/test_assertions.ts @@ -15,3 +15,21 @@ export function ensureDatetimeIsWithinRange( expect(diff).to.be.greaterThan(expectedDiff - buffer); expect(diff).to.be.lessThan(expectedDiff + buffer); } + +export function ensureDatetimesAreOrdered(dates: Array<Date | string | number>) { + const dateStrings = dates.map(normalizeDate); + const sortedDateStrings = dateStrings.slice().sort(); + expect(dateStrings).to.eql(sortedDateStrings); +} + +function normalizeDate(date: Date | string | number): string { + if (typeof date === 'number') return new Date(date).toISOString(); + if (date instanceof Date) return date.toISOString(); + + const dateString = `${date}`; + const dateNumber = Date.parse(dateString); + if (isNaN(dateNumber)) { + throw new Error(`invalid date string: "${dateString}"`); + } + return new Date(dateNumber).toISOString(); +} diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/create.ts b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/create.ts index 983f87405a1a6..19d90378e8b7a 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/create.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/create.ts @@ -119,6 +119,7 @@ export default function createAlertTests({ getService }: FtrProviderContext) { apiKeyOwner: user.username, muteAll: false, mutedInstanceIds: [], + executionStatus: response.body.executionStatus, }); expect(typeof response.body.scheduledTaskId).to.be('string'); expect(Date.parse(response.body.createdAt)).to.be.greaterThan(0); diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/execution_status.ts b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/execution_status.ts new file mode 100644 index 0000000000000..8fb89042e4a90 --- /dev/null +++ b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/execution_status.ts @@ -0,0 +1,87 @@ +/* + * 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 { Spaces } from '../../scenarios'; +import { getUrlPrefix, getTestAlertData, ObjectRemover } from '../../../common/lib'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +// eslint-disable-next-line import/no-default-export +export default function executionStatusAlertTests({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + const spaceId = Spaces[0].id; + + // the only tests here are those that can't be run in spaces_only + describe('executionStatus', () => { + const objectRemover = new ObjectRemover(supertest); + + after(async () => await objectRemover.removeAll()); + + it('should eventually have error reason "decrypt" when appropriate', async () => { + const response = await supertest + .post(`${getUrlPrefix(spaceId)}/api/alerts/alert`) + .set('kbn-xsrf', 'foo') + .send( + getTestAlertData({ + alertTypeId: 'test.noop', + schedule: { interval: '1s' }, + }) + ); + expect(response.status).to.eql(200); + const alertId = response.body.id; + objectRemover.add(spaceId, alertId, 'alert', 'alerts'); + + let executionStatus = await waitForStatus(alertId, new Set(['ok']), 10000); + + // break AAD + await supertest + .put(`${getUrlPrefix(spaceId)}/api/alerts_fixture/saved_object/alert/${alertId}`) + .set('kbn-xsrf', 'foo') + .send({ + attributes: { + name: 'bar', + }, + }) + .expect(200); + + executionStatus = await waitForStatus(alertId, new Set(['error'])); + expect(executionStatus.error).to.be.ok(); + expect(executionStatus.error.reason).to.be('decrypt'); + expect(executionStatus.error.message).to.be('Unable to decrypt attribute "apiKey"'); + }); + }); + + const WaitForStatusIncrement = 500; + + async function waitForStatus( + id: string, + statuses: Set<string>, + waitMillis: number = 10000 + ): Promise<Record<string, any>> { + if (waitMillis < 0) { + expect().fail(`waiting for alert ${id} statuses ${Array.from(statuses)} timed out`); + } + + const response = await supertest.get(`${getUrlPrefix(spaceId)}/api/alerts/alert/${id}`); + expect(response.status).to.eql(200); + const { status } = response.body.executionStatus; + if (statuses.has(status)) return response.body.executionStatus; + + // eslint-disable-next-line no-console + console.log( + `waitForStatus(${Array.from(statuses)}): got ${JSON.stringify( + response.body.executionStatus + )}, retrying` + ); + + await delay(WaitForStatusIncrement); + return await waitForStatus(id, statuses, waitMillis - WaitForStatusIncrement); + } +} + +async function delay(millis: number): Promise<void> { + await new Promise((resolve) => setTimeout(resolve, millis)); +} diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/find.ts b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/find.ts index 268212d4294d0..adfe5cd27b33a 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/find.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/find.ts @@ -79,6 +79,7 @@ export default function createFindTests({ getService }: FtrProviderContext) { apiKeyOwner: 'elastic', muteAll: false, mutedInstanceIds: [], + executionStatus: match.executionStatus, }); expect(Date.parse(match.createdAt)).to.be.greaterThan(0); expect(Date.parse(match.updatedAt)).to.be.greaterThan(0); @@ -273,6 +274,7 @@ export default function createFindTests({ getService }: FtrProviderContext) { mutedInstanceIds: [], createdAt: match.createdAt, updatedAt: match.updatedAt, + executionStatus: match.executionStatus, }); expect(Date.parse(match.createdAt)).to.be.greaterThan(0); expect(Date.parse(match.updatedAt)).to.be.greaterThan(0); @@ -359,6 +361,85 @@ export default function createFindTests({ getService }: FtrProviderContext) { } }); + it('should handle find alert request with executionStatus field appropriately', async () => { + const myTag = uuid.v4(); + const { body: createdAlert } = await supertest + .post(`${getUrlPrefix(space.id)}/api/alerts/alert`) + .set('kbn-xsrf', 'foo') + .send( + getTestAlertData({ + enabled: false, + tags: [myTag], + alertTypeId: 'test.restricted-noop', + consumer: 'alertsRestrictedFixture', + }) + ) + .expect(200); + objectRemover.add(space.id, createdAlert.id, 'alert', 'alerts'); + + // create another type with same tag + const { body: createdSecondAlert } = await supertest + .post(`${getUrlPrefix(space.id)}/api/alerts/alert`) + .set('kbn-xsrf', 'foo') + .send( + getTestAlertData({ + tags: [myTag], + alertTypeId: 'test.restricted-noop', + consumer: 'alertsRestrictedFixture', + }) + ) + .expect(200); + objectRemover.add(space.id, createdSecondAlert.id, 'alert', 'alerts'); + + const response = await supertestWithoutAuth + .get( + `${getUrlPrefix( + space.id + )}/api/alerts/_find?filter=alert.attributes.alertTypeId:test.restricted-noop&fields=["tags","executionStatus"]&sort_field=createdAt` + ) + .auth(user.username, user.password); + + switch (scenario.id) { + case 'no_kibana_privileges at space1': + case 'space_1_all at space2': + expect(response.statusCode).to.eql(403); + expect(response.body).to.eql({ + error: 'Forbidden', + message: `Unauthorized to find any alert types`, + statusCode: 403, + }); + break; + case 'space_1_all at space1': + case 'space_1_all_alerts_none_actions at space1': + expect(response.statusCode).to.eql(200); + expect(response.body.data).to.eql([]); + break; + case 'global_read at space1': + case 'superuser at space1': + case 'space_1_all_with_restricted_fixture at space1': + expect(response.statusCode).to.eql(200); + expect(response.body.page).to.equal(1); + expect(response.body.perPage).to.be.greaterThan(0); + expect(response.body.total).to.be.greaterThan(0); + const [matchFirst, matchSecond] = response.body.data; + expect(omit(matchFirst, 'updatedAt')).to.eql({ + id: createdAlert.id, + actions: [], + tags: [myTag], + executionStatus: matchFirst.executionStatus, + }); + expect(omit(matchSecond, 'updatedAt')).to.eql({ + id: createdSecondAlert.id, + actions: [], + tags: [myTag], + executionStatus: matchSecond.executionStatus, + }); + break; + default: + throw new Error(`Scenario untested: ${JSON.stringify(scenario)}`); + } + }); + it(`shouldn't find alert from another space`, async () => { const { body: createdAlert } = await supertest .post(`${getUrlPrefix(space.id)}/api/alerts/alert`) diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/get.ts b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/get.ts index 1043ece08a2ac..93e9be771ab5c 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/get.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/get.ts @@ -75,6 +75,7 @@ export default function createGetTests({ getService }: FtrProviderContext) { apiKeyOwner: 'elastic', muteAll: false, mutedInstanceIds: [], + executionStatus: response.body.executionStatus, }); expect(Date.parse(response.body.createdAt)).to.be.greaterThan(0); expect(Date.parse(response.body.updatedAt)).to.be.greaterThan(0); diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/index.ts b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/index.ts index fa0130780cb69..1fbee9e18fdaa 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/index.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/index.ts @@ -14,6 +14,7 @@ export default function alertingTests({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./delete')); loadTestFile(require.resolve('./disable')); loadTestFile(require.resolve('./enable')); + loadTestFile(require.resolve('./execution_status')); loadTestFile(require.resolve('./get')); loadTestFile(require.resolve('./get_alert_state')); loadTestFile(require.resolve('./get_alert_instance_summary')); diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/update.ts b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/update.ts index 48269cc1c4498..d75aa868253de 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/update.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/update.ts @@ -129,6 +129,7 @@ export default function createUpdateTests({ getService }: FtrProviderContext) { scheduledTaskId: createdAlert.scheduledTaskId, createdAt: response.body.createdAt, updatedAt: response.body.updatedAt, + executionStatus: response.body.executionStatus, }); expect(Date.parse(response.body.createdAt)).to.be.greaterThan(0); expect(Date.parse(response.body.updatedAt)).to.be.greaterThan(0); @@ -211,6 +212,7 @@ export default function createUpdateTests({ getService }: FtrProviderContext) { scheduledTaskId: createdAlert.scheduledTaskId, createdAt: response.body.createdAt, updatedAt: response.body.updatedAt, + executionStatus: response.body.executionStatus, }); expect(Date.parse(response.body.createdAt)).to.be.greaterThan(0); expect(Date.parse(response.body.updatedAt)).to.be.greaterThan(0); @@ -304,6 +306,7 @@ export default function createUpdateTests({ getService }: FtrProviderContext) { scheduledTaskId: createdAlert.scheduledTaskId, createdAt: response.body.createdAt, updatedAt: response.body.updatedAt, + executionStatus: response.body.executionStatus, }); expect(Date.parse(response.body.createdAt)).to.be.greaterThan(0); expect(Date.parse(response.body.updatedAt)).to.be.greaterThan(0); @@ -397,6 +400,7 @@ export default function createUpdateTests({ getService }: FtrProviderContext) { scheduledTaskId: createdAlert.scheduledTaskId, createdAt: response.body.createdAt, updatedAt: response.body.updatedAt, + executionStatus: response.body.executionStatus, }); expect(Date.parse(response.body.createdAt)).to.be.greaterThan(0); expect(Date.parse(response.body.updatedAt)).to.be.greaterThan(0); @@ -486,6 +490,7 @@ export default function createUpdateTests({ getService }: FtrProviderContext) { scheduledTaskId: createdAlert.scheduledTaskId, createdAt: response.body.createdAt, updatedAt: response.body.updatedAt, + executionStatus: response.body.executionStatus, }); expect(Date.parse(response.body.createdAt)).to.be.greaterThan(0); expect(Date.parse(response.body.updatedAt)).to.be.greaterThan(0); diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/create.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/create.ts index 86775f77a7671..41f6b66c30aaf 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/create.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/create.ts @@ -87,6 +87,7 @@ export default function createAlertTests({ getService }: FtrProviderContext) { mutedInstanceIds: [], createdAt: response.body.createdAt, updatedAt: response.body.updatedAt, + executionStatus: response.body.executionStatus, }); expect(Date.parse(response.body.createdAt)).to.be.greaterThan(0); expect(Date.parse(response.body.updatedAt)).to.be.greaterThan(0); diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/execution_status.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/execution_status.ts new file mode 100644 index 0000000000000..ac63fe8faadc7 --- /dev/null +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/execution_status.ts @@ -0,0 +1,333 @@ +/* + * 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 { Spaces } from '../../scenarios'; +import { + checkAAD, + getUrlPrefix, + getTestAlertData, + ObjectRemover, + ensureDatetimesAreOrdered, +} from '../../../common/lib'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +// eslint-disable-next-line import/no-default-export +export default function executionStatusAlertTests({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + + describe('executionStatus', () => { + const objectRemover = new ObjectRemover(supertest); + + after(async () => await objectRemover.removeAll()); + + it('should be "pending" for newly created alert', async () => { + const dateStart = Date.now(); + const response = await supertest + .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerts/alert`) + .set('kbn-xsrf', 'foo') + .send(getTestAlertData()); + const dateEnd = Date.now(); + expect(response.status).to.eql(200); + objectRemover.add(Spaces.space1.id, response.body.id, 'alert', 'alerts'); + + expect(response.body.executionStatus).to.be.ok(); + const { status, lastExecutionDate, error } = response.body.executionStatus; + expect(status).to.be('pending'); + ensureDatetimesAreOrdered([dateStart, lastExecutionDate, dateEnd]); + expect(error).not.to.be.ok(); + + // Ensure AAD isn't broken + await checkAAD({ + supertest, + spaceId: Spaces.space1.id, + type: 'alert', + id: response.body.id, + }); + }); + + it('should eventually be "ok" for no-op alert', async () => { + const dates = []; + dates.push(Date.now()); + const response = await supertest + .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerts/alert`) + .set('kbn-xsrf', 'foo') + .send( + getTestAlertData({ + alertTypeId: 'test.noop', + schedule: { interval: '1s' }, + }) + ); + expect(response.status).to.eql(200); + const alertId = response.body.id; + dates.push(response.body.executionStatus.lastExecutionDate); + dates.push(Date.now()); + objectRemover.add(Spaces.space1.id, alertId, 'alert', 'alerts'); + + const executionStatus = await waitForStatus(alertId, new Set(['ok'])); + dates.push(executionStatus.lastExecutionDate); + dates.push(Date.now()); + ensureDatetimesAreOrdered(dates); + + // Ensure AAD isn't broken + await checkAAD({ + supertest, + spaceId: Spaces.space1.id, + type: 'alert', + id: response.body.id, + }); + }); + + it('should eventually be "active" for firing alert', async () => { + const dates = []; + dates.push(Date.now()); + const response = await supertest + .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerts/alert`) + .set('kbn-xsrf', 'foo') + .send( + getTestAlertData({ + alertTypeId: 'test.patternFiring', + schedule: { interval: '1s' }, + params: { + pattern: { instance: trues(100) }, + }, + }) + ); + expect(response.status).to.eql(200); + const alertId = response.body.id; + dates.push(response.body.executionStatus.lastExecutionDate); + dates.push(Date.now()); + objectRemover.add(Spaces.space1.id, alertId, 'alert', 'alerts'); + + const executionStatus = await waitForStatus(alertId, new Set(['active'])); + dates.push(executionStatus.lastExecutionDate); + dates.push(Date.now()); + ensureDatetimesAreOrdered(dates); + + // Ensure AAD isn't broken + await checkAAD({ + supertest, + spaceId: Spaces.space1.id, + type: 'alert', + id: response.body.id, + }); + }); + + it('should eventually be "error" for an error alert', async () => { + const dates = []; + dates.push(Date.now()); + const response = await supertest + .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerts/alert`) + .set('kbn-xsrf', 'foo') + .send( + getTestAlertData({ + alertTypeId: 'test.throw', + schedule: { interval: '1s' }, + }) + ); + expect(response.status).to.eql(200); + const alertId = response.body.id; + dates.push(response.body.executionStatus.lastExecutionDate); + dates.push(Date.now()); + objectRemover.add(Spaces.space1.id, alertId, 'alert', 'alerts'); + + const executionStatus = await waitForStatus(alertId, new Set(['error'])); + dates.push(executionStatus.lastExecutionDate); + dates.push(Date.now()); + ensureDatetimesAreOrdered(dates); + + // Ensure AAD isn't broken + await checkAAD({ + supertest, + spaceId: Spaces.space1.id, + type: 'alert', + id: response.body.id, + }); + }); + + // not sure how to test the read error reason! + + // note the decrypt error reason is tested in security_and_spaces, can't be tested + // without security on + + it('should eventually have error reason "execute" when appropriate', async () => { + const response = await supertest + .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerts/alert`) + .set('kbn-xsrf', 'foo') + .send( + getTestAlertData({ + alertTypeId: 'test.throw', + schedule: { interval: '1s' }, + }) + ); + expect(response.status).to.eql(200); + const alertId = response.body.id; + objectRemover.add(Spaces.space1.id, alertId, 'alert', 'alerts'); + + const executionStatus = await waitForStatus(alertId, new Set(['error'])); + expect(executionStatus.error).to.be.ok(); + expect(executionStatus.error.reason).to.be('execute'); + expect(executionStatus.error.message).to.be('this alert is intended to fail'); + }); + + it('should eventually have error reason "unknown" when appropriate', async () => { + const response = await supertest + .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerts/alert`) + .set('kbn-xsrf', 'foo') + .send( + getTestAlertData({ + alertTypeId: 'test.validation', + schedule: { interval: '1s' }, + params: { param1: 'valid now, but will change to a number soon!' }, + }) + ); + expect(response.status).to.eql(200); + const alertId = response.body.id; + objectRemover.add(Spaces.space1.id, alertId, 'alert', 'alerts'); + + let executionStatus = await waitForStatus(alertId, new Set(['ok'])); + + // break the validation of the params + await supertest + .put(`${getUrlPrefix(Spaces.space1.id)}/api/alerts_fixture/saved_object/alert/${alertId}`) + .set('kbn-xsrf', 'foo') + .send({ + attributes: { + params: { param1: 42 }, + }, + }) + .expect(200); + + executionStatus = await waitForStatus(alertId, new Set(['error'])); + expect(executionStatus.error).to.be.ok(); + expect(executionStatus.error.reason).to.be('unknown'); + + const message = 'params invalid: [param1]: expected value of type [string] but got [number]'; + expect(executionStatus.error.message).to.be(message); + }); + + it('should be able to find over all the fields', async () => { + const startDate = Date.now(); + const createResponse = await supertest + .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerts/alert`) + .set('kbn-xsrf', 'foo') + .send( + getTestAlertData({ + alertTypeId: 'test.throw', + schedule: { interval: '1s' }, + }) + ); + expect(createResponse.status).to.eql(200); + const alertId = createResponse.body.id; + objectRemover.add(Spaces.space1.id, alertId, 'alert', 'alerts'); + + await waitForStatus(alertId, new Set(['error'])); + + let filter = `lastExecutionDate>${startDate}`; + let executionStatus = await waitForFindStatus(alertId, new Set(['error']), filter); + expectErrorExecutionStatus(executionStatus, startDate); + + filter = `status:error`; + executionStatus = await waitForFindStatus(alertId, new Set(['error']), filter); + expectErrorExecutionStatus(executionStatus, startDate); + + filter = `error.message:*intended*`; + executionStatus = await waitForFindStatus(alertId, new Set(['error']), filter); + expectErrorExecutionStatus(executionStatus, startDate); + + filter = `error.reason:execute`; + executionStatus = await waitForFindStatus(alertId, new Set(['error']), filter); + expectErrorExecutionStatus(executionStatus, startDate); + }); + }); + + const WaitForStatusIncrement = 500; + + async function waitForStatus( + id: string, + statuses: Set<string>, + waitMillis: number = 10000 + ): Promise<Record<string, any>> { + if (waitMillis < 0) { + expect().fail(`waiting for alert ${id} statuses ${Array.from(statuses)} timed out`); + } + + const response = await supertest.get( + `${getUrlPrefix(Spaces.space1.id)}/api/alerts/alert/${id}` + ); + expect(response.status).to.eql(200); + const { status } = response.body.executionStatus; + + const message = `waitForStatus(${Array.from(statuses)}): got ${JSON.stringify( + response.body.executionStatus + )}`; + + if (statuses.has(status)) { + return response.body.executionStatus; + } + + // eslint-disable-next-line no-console + console.log(`${message}, retrying`); + + await delay(WaitForStatusIncrement); + return await waitForStatus(id, statuses, waitMillis - WaitForStatusIncrement); + } + + async function waitForFindStatus( + id: string, + statuses: Set<string>, + filter: string, + waitMillis: number = 10000 + ): Promise<Record<string, any>> { + if (waitMillis < 0) { + expect().fail(`waiting for find alert ${id} statuses ${Array.from(statuses)} timed out`); + } + + const findUri = getFindUri(filter); + const response = await supertest.get(`${getUrlPrefix(Spaces.space1.id)}/${findUri}`); + + expect(response.status).to.eql(200); + const { executionStatus } = response.body.data.find((obj: any) => obj.id === id); + + const message = `waitForFindStatus(${Array.from(statuses)}): got ${JSON.stringify( + executionStatus + )}`; + + if (statuses.has(executionStatus.status)) { + return executionStatus; + } + + // eslint-disable-next-line no-console + console.log(`${message}, retrying`); + + await delay(WaitForStatusIncrement); + return await waitForStatus(id, statuses, waitMillis - WaitForStatusIncrement); + } +} + +function expectErrorExecutionStatus(executionStatus: Record<string, any>, startDate: number) { + expect(executionStatus.status).to.equal('error'); + + const statusDate = Date.parse(executionStatus.lastExecutionDate); + const stopDate = Date.now(); + expect(startDate).to.be.lessThan(statusDate); + expect(stopDate).to.be.greaterThan(statusDate); + + expect(executionStatus.error.message).to.equal('this alert is intended to fail'); + expect(executionStatus.error.reason).to.equal('execute'); +} + +function getFindUri(filter: string) { + return `api/alerts/_find?filter=alert.attributes.executionStatus.${filter}`; +} + +function trues(length: number): boolean[] { + return new Array(length).fill(true); +} + +async function delay(millis: number): Promise<void> { + await new Promise((resolve) => setTimeout(resolve, millis)); +} diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/find.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/find.ts index b28ce89b30472..850ec24789f5b 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/find.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/find.ts @@ -56,6 +56,7 @@ export default function createFindTests({ getService }: FtrProviderContext) { mutedInstanceIds: [], createdAt: match.createdAt, updatedAt: match.updatedAt, + executionStatus: match.executionStatus, }); expect(Date.parse(match.createdAt)).to.be.greaterThan(0); expect(Date.parse(match.updatedAt)).to.be.greaterThan(0); diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/get.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/get.ts index 165eaa09126a8..14a57f57c9237 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/get.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/get.ts @@ -50,6 +50,7 @@ export default function createGetTests({ getService }: FtrProviderContext) { mutedInstanceIds: [], createdAt: response.body.createdAt, updatedAt: response.body.updatedAt, + executionStatus: response.body.executionStatus, }); expect(Date.parse(response.body.createdAt)).to.be.greaterThan(0); expect(Date.parse(response.body.updatedAt)).to.be.greaterThan(0); diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts index 1907eed728053..a80970788e517 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts @@ -23,6 +23,7 @@ export default function alertingTests({ loadTestFile, getService }: FtrProviderC loadTestFile(require.resolve('./get_alert_instance_summary')); loadTestFile(require.resolve('./list_alert_types')); loadTestFile(require.resolve('./event_log')); + loadTestFile(require.resolve('./execution_status')); loadTestFile(require.resolve('./mute_all')); loadTestFile(require.resolve('./mute_instance')); loadTestFile(require.resolve('./unmute_all')); diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/update.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/update.ts index 9c8e6f6b8d94c..f44a7d7131879 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/update.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/update.ts @@ -57,6 +57,7 @@ export default function createUpdateTests({ getService }: FtrProviderContext) { scheduledTaskId: createdAlert.scheduledTaskId, createdAt: response.body.createdAt, updatedAt: response.body.updatedAt, + executionStatus: response.body.executionStatus, }); expect(Date.parse(response.body.createdAt)).to.be.greaterThan(0); expect(Date.parse(response.body.updatedAt)).to.be.greaterThan(0); diff --git a/x-pack/test/detection_engine_api_integration/utils.ts b/x-pack/test/detection_engine_api_integration/utils.ts index 1dba1a154373b..5d82eed41d3c5 100644 --- a/x-pack/test/detection_engine_api_integration/utils.ts +++ b/x-pack/test/detection_engine_api_integration/utils.ts @@ -248,16 +248,25 @@ export const getSimpleMlRuleOutput = (ruleId = 'rule-1'): Partial<RulesSchema> = export const deleteAllAlerts = async (es: Client, retryCount = 20): Promise<void> => { if (retryCount > 0) { try { - await es.deleteByQuery({ + const result = await es.deleteByQuery({ index: '.kibana', q: 'type:alert', wait_for_completion: true, refresh: true, + conflicts: 'proceed', body: {}, }); + // deleteByQuery will cause version conflicts as alerts are being updated + // by background processes; the code below accounts for that + if (result.body.version_conflicts !== 0) { + throw new Error(`Version conflicts for ${result.body.version_conflicts} alerts`); + } } catch (err) { // eslint-disable-next-line no-console - console.log(`Failure trying to deleteAllAlerts, retries left are: ${retryCount - 1}`, err); + console.log(`Error in deleteAllAlerts(), retries left: ${retryCount - 1}`, err); + + // retry, counting down, and delay a bit before + await new Promise((resolve) => setTimeout(resolve, 250)); await deleteAllAlerts(es, retryCount - 1); } } else { From d6c712842d86482d23534298315d3f849384496d Mon Sep 17 00:00:00 2001 From: Frank Hassanabad <frank.hassanabad@elastic.co> Date: Thu, 1 Oct 2020 16:31:00 -0600 Subject: [PATCH 134/142] [Security Solution][Detection Engine] Adds threat matching to the rule creator (#78955) ## Summary This adds threat matching rule type to the rule creator. Screen shot of creating a threat match <img width="1023" alt="Screen Shot 2020-09-30 at 3 31 09 PM" src="https://user-images.githubusercontent.com/1151048/94742158-791b1c00-0332-11eb-9d79-78ab431322f0.png"> --- Screen shot of the description after creating one <img width="1128" alt="Screen Shot 2020-09-30 at 3 29 32 PM" src="https://user-images.githubusercontent.com/1151048/94742203-8b955580-0332-11eb-837f-5b4383044a13.png"> --- Screen shot of first creating a threat match without values filled out <img width="1017" alt="Screen Shot 2020-09-30 at 3 27 29 PM" src="https://user-images.githubusercontent.com/1151048/94742222-95b75400-0332-11eb-9872-e7670e917941.png"> Additions and bug fixes: * Changes the threat index to be an array * Adds a threat_language to the REST schema so that we can use KQL, Lucene, (others in the future) * Adds plumbing for threat_list to work with the other REST endpoints such as PUT, PATCH, etc... * Adds the AND, OR dialog and user interface **Usage** If you are a team member using the team servers you can skip this usage section of creating threat index. Otherwise if you want to know how to create a mock threat index, instructions are below. Go to the folder: ```ts /kibana/x-pack/plugins/security_solution/server/lib/detection_engine/scripts ``` And post a small ECS threat mapping to the index called `mock-threat-list`: ```ts ./create_threat_mapping.sh ``` Then to post a small number of threats that represent simple port numbers you can run: ```ts ./create_threat_data.sh ``` However, feel free to also manually create them directly in your dev tools like so: ```ts # Posts a threat list item called some-name with an IP but change these out for valid data in your system PUT mock-threat-list-1/_doc/9999 { "@timestamp": "2020-09-09T20:30:45.725Z", "host": { "name": "some-name", "ip": "127.0.0.1" } } ``` ```ts # Posts a destination port number to watch PUT mock-threat-list-1/_doc/10000 { "@timestamp": "2020-09-08T20:30:45.725Z", "destination": { "port": "443" } } ``` ```ts # Posts a source port number to watch PUT mock-threat-list-1/_doc/10001 { "@timestamp": "2020-09-08T20:30:45.725Z", "source": { "port": "443" } } ``` ### Checklist - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/master/packages/kbn-i18n/README.md) - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] This was checked for [keyboard-only and screenreader accessibility](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Accessibility_testing_checklist) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --- .../add_prepackaged_rules_schema.mock.ts | 4 +- .../request/add_prepackaged_rules_schema.ts | 2 + .../request/create_rules_schema.mock.ts | 4 +- .../schemas/request/create_rules_schema.ts | 2 + .../request/import_rules_schema.mock.ts | 4 +- .../schemas/request/import_rules_schema.ts | 2 + .../schemas/request/patch_rules_schema.ts | 12 + .../schemas/request/update_rules_schema.ts | 12 + .../schemas/response/rules_schema.mocks.ts | 2 +- .../schemas/response/rules_schema.test.ts | 4 +- .../schemas/response/rules_schema.ts | 3 + .../detection_engine/schemas/types/index.ts | 1 + .../schemas/types/threat_mapping.ts | 40 +- .../threat_match/and_badge.test.tsx | 46 +++ .../components/threat_match/and_badge.tsx | 50 +++ .../threat_match/entry_delete_button.test.tsx | 123 ++++++ .../threat_match/entry_delete_button.tsx | 67 +++ .../threat_match/entry_item.test.tsx | 130 ++++++ .../components/threat_match/entry_item.tsx | 131 ++++++ .../components/threat_match/helpers.test.tsx | 225 +++++++++++ .../components/threat_match/helpers.tsx | 171 ++++++++ .../components/threat_match/index.test.tsx | 304 ++++++++++++++ .../common/components/threat_match/index.tsx | 220 ++++++++++ .../threat_match/list_item.test.tsx | 382 ++++++++++++++++++ .../components/threat_match/list_item.tsx | 120 ++++++ .../threat_match/logic_buttons.stories.tsx | 49 +++ .../threat_match/logic_buttons.test.tsx | 90 +++++ .../components/threat_match/logic_buttons.tsx | 55 +++ .../components/threat_match/reducer.test.ts | 101 +++++ .../common/components/threat_match/reducer.ts | 51 +++ .../components/threat_match/translations.ts | 37 ++ .../common/components/threat_match/types.ts | 26 ++ .../rules/description_step/helpers.tsx | 42 +- .../rules/description_step/index.tsx | 22 +- .../rules/description_step/translations.tsx | 7 + .../rules/description_step/types.ts | 1 + .../rules/select_rule_type/index.tsx | 23 ++ .../rules/select_rule_type/translations.ts | 14 + .../rules/step_define_rule/index.tsx | 63 ++- .../rules/step_define_rule/schema.tsx | 136 ++++++- .../rules/step_define_rule/translations.tsx | 21 + .../rules/threatmatch_input/index.tsx | 114 ++++++ .../rules/threatmatch_input/translations.ts | 14 + .../detection_engine/rules/types.ts | 14 +- .../rules/all/__mocks__/mock.ts | 3 + .../detection_engine/rules/create/helpers.ts | 80 +++- .../detection_engine/rules/create/index.tsx | 8 +- .../detection_engine/rules/helpers.test.tsx | 30 ++ .../pages/detection_engine/rules/helpers.tsx | 8 +- .../pages/detection_engine/rules/types.ts | 9 +- .../routes/__mocks__/request_responses.ts | 1 + .../routes/rules/create_rules_bulk_route.ts | 2 + .../routes/rules/create_rules_route.ts | 2 + .../routes/rules/import_rules_route.ts | 9 +- .../routes/rules/patch_rules_bulk_route.ts | 10 + .../routes/rules/patch_rules_route.ts | 10 + .../routes/rules/update_rules_bulk_route.ts | 10 + .../routes/rules/update_rules_route.ts | 10 + .../routes/rules/utils.test.ts | 4 +- .../detection_engine/routes/rules/utils.ts | 1 + .../rules/create_rules.mock.ts | 2 + .../detection_engine/rules/create_rules.ts | 2 + .../rules/install_prepacked_rules.ts | 2 + .../rules/patch_rules.mock.ts | 10 + .../lib/detection_engine/rules/patch_rules.ts | 15 + .../lib/detection_engine/rules/types.ts | 12 + .../rules/update_prepacked_rules.ts | 10 + .../rules/update_rules.mock.ts | 10 + .../detection_engine/rules/update_rules.ts | 15 + .../lib/detection_engine/rules/utils.test.ts | 15 + .../lib/detection_engine/rules/utils.ts | 14 +- .../queries/query_with_threat_mapping.json | 2 +- .../signals/__mocks__/es_results.ts | 1 + .../detection_engine/signals/build_rule.ts | 1 + .../signals/signal_params_schema.ts | 3 +- .../signals/signal_rule_alert_type.ts | 2 + .../threat_mapping/create_threat_signal.ts | 4 +- .../threat_mapping/create_threat_signals.ts | 5 +- .../signals/threat_mapping/get_threat_list.ts | 9 +- .../signals/threat_mapping/types.ts | 9 +- .../server/lib/detection_engine/types.ts | 2 + 81 files changed, 3224 insertions(+), 59 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/and_badge.test.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/and_badge.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/entry_delete_button.test.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/entry_delete_button.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.test.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/helpers.test.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/index.test.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/list_item.test.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/logic_buttons.stories.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/logic_buttons.test.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/logic_buttons.tsx create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/reducer.test.ts create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/reducer.ts create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/translations.ts create mode 100644 x-pack/plugins/security_solution/public/common/components/threat_match/types.ts create mode 100644 x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx create mode 100644 x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/translations.ts diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/add_prepackaged_rules_schema.mock.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/add_prepackaged_rules_schema.mock.ts index 777256ff961f9..c033e0adccf0f 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/add_prepackaged_rules_schema.mock.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/add_prepackaged_rules_schema.mock.ts @@ -60,7 +60,7 @@ export const getAddPrepackagedThreatMatchRulesSchemaMock = (): AddPrepackagedRul rule_id: 'rule-1', version: 1, threat_query: '*:*', - threat_index: 'list-index', + threat_index: ['list-index'], threat_mapping: [ { entries: [ @@ -118,7 +118,7 @@ export const getAddPrepackagedThreatMatchRulesSchemaDecodedMock = (): AddPrepack exceptions_list: [], rule_id: 'rule-1', threat_query: '*:*', - threat_index: 'list-index', + threat_index: ['list-index'], threat_mapping: [ { entries: [ diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/add_prepackaged_rules_schema.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/add_prepackaged_rules_schema.ts index 3f338c57dd930..6ffbf4e4c8d4c 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/add_prepackaged_rules_schema.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/add_prepackaged_rules_schema.ts @@ -51,6 +51,7 @@ import { threat_query, threat_filters, threat_mapping, + threat_language, } from '../types/threat_mapping'; import { @@ -128,6 +129,7 @@ export const addPrepackagedRulesSchema = t.intersection([ threat_mapping, // defaults to "undefined" if not set during decode threat_query, // defaults to "undefined" if not set during decode threat_index, // defaults to "undefined" if not set during decode + threat_language, // defaults "undefined" if not set during decode }) ), ]); diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/create_rules_schema.mock.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/create_rules_schema.mock.ts index 32299be500b45..94dd1215d8026 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/create_rules_schema.mock.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/create_rules_schema.mock.ts @@ -66,7 +66,7 @@ export const getCreateThreatMatchRulesSchemaMock = (ruleId = 'rule-1'): CreateRu language: 'kuery', rule_id: ruleId, threat_query: '*:*', - threat_index: 'list-index', + threat_index: ['list-index'], threat_mapping: [ { entries: [ @@ -124,7 +124,7 @@ export const getCreateThreatMatchRulesSchemaDecodedMock = (): CreateRulesSchemaD exceptions_list: [], rule_id: 'rule-1', threat_query: '*:*', - threat_index: 'list-index', + threat_index: ['list-index'], threat_mapping: [ { entries: [ diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/create_rules_schema.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/create_rules_schema.ts index 2489210a26c8f..d8e7614fcb840 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/create_rules_schema.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/create_rules_schema.ts @@ -52,6 +52,7 @@ import { threat_query, threat_filters, threat_mapping, + threat_language, } from '../types/threat_mapping'; import { @@ -124,6 +125,7 @@ export const createRulesSchema = t.intersection([ threat_query, // defaults to "undefined" if not set during decode threat_filters, // defaults to "undefined" if not set during decode threat_index, // defaults to "undefined" if not set during decode + threat_language, // defaults "undefined" if not set during decode }) ), ]); diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/import_rules_schema.mock.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/import_rules_schema.mock.ts index 160dbb92b74cd..2eea9ac0f30c7 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/import_rules_schema.mock.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/import_rules_schema.mock.ts @@ -86,7 +86,7 @@ export const getImportThreatMatchRulesSchemaMock = (ruleId = 'rule-1'): ImportRu risk_score: 55, language: 'kuery', rule_id: ruleId, - threat_index: 'index-123', + threat_index: ['index-123'], threat_mapping: [{ entries: [{ field: 'host.name', type: 'mapping', value: 'host.name' }] }], threat_query: '*:*', threat_filters: [ @@ -136,7 +136,7 @@ export const getImportThreatMatchRulesSchemaDecodedMock = (): ImportRulesSchemaD rule_id: 'rule-1', immutable: false, threat_query: '*:*', - threat_index: 'index-123', + threat_index: ['index-123'], threat_mapping: [ { entries: [ diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/import_rules_schema.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/import_rules_schema.ts index a411b3d439a1f..852394b74767b 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/import_rules_schema.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/import_rules_schema.ts @@ -58,6 +58,7 @@ import { threat_query, threat_filters, threat_mapping, + threat_language, } from '../types/threat_mapping'; import { @@ -147,6 +148,7 @@ export const importRulesSchema = t.intersection([ threat_mapping, // defaults to "undefined" if not set during decode threat_query, // defaults to "undefined" if not set during decode threat_index, // defaults to "undefined" if not set during decode + threat_language, // defaults "undefined" if not set during decode }) ), ]); diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/patch_rules_schema.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/patch_rules_schema.ts index 40e79d96a9e6b..f4dce5c7ac05f 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/patch_rules_schema.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/patch_rules_schema.ts @@ -48,6 +48,13 @@ import { severity_mapping, event_category_override, } from '../common/schemas'; +import { + threat_index, + threat_query, + threat_filters, + threat_mapping, + threat_language, +} from '../types/threat_mapping'; import { listArrayOrUndefined } from '../types/lists'; /** @@ -97,6 +104,11 @@ export const patchRulesSchema = t.exact( note, version, exceptions_list: listArrayOrUndefined, + threat_index, + threat_query, + threat_filters, + threat_mapping, + threat_language, }) ); diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/update_rules_schema.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/update_rules_schema.ts index 8a13dd2f4e908..b0cd8b1c53688 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/request/update_rules_schema.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/request/update_rules_schema.ts @@ -49,6 +49,13 @@ import { SeverityMapping, event_category_override, } from '../common/schemas'; +import { + threat_index, + threat_query, + threat_filters, + threat_mapping, + threat_language, +} from '../types/threat_mapping'; import { DefaultStringArray, @@ -122,6 +129,11 @@ export const updateRulesSchema = t.intersection([ note, // defaults to "undefined" if not set during decode version, // defaults to "undefined" if not set during decode exceptions_list: DefaultListArray, // defaults to empty array if not set during decode + threat_mapping, // defaults to "undefined" if not set during decode + threat_query, // defaults to "undefined" if not set during decode + threat_filters, // defaults to "undefined" if not set during decode + threat_index, // defaults to "undefined" if not set during decode + threat_language, // defaults "undefined" if not set during decode }) ), ]); diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.mocks.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.mocks.ts index aaa246c82d9d7..340f93150ce5c 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.mocks.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.mocks.ts @@ -87,7 +87,7 @@ export const getThreatMatchingSchemaMock = (anchorDate: string = ANCHOR_DATE): R return { ...getRulesSchemaMock(anchorDate), type: 'threat_match', - threat_index: 'index-123', + threat_index: ['index-123'], threat_mapping: [{ entries: [{ field: 'host.name', type: 'mapping', value: 'host.name' }] }], threat_query: '*:*', threat_filters: [ diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.test.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.test.ts index c5bad3c55066b..82675768a11b7 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.test.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.test.ts @@ -626,7 +626,7 @@ describe('rules_schema', () => { const message = pipe(checked, foldLeftRight); expect(getPaths(left(message.errors))).toEqual([ - 'invalid keys "threat_index,threat_mapping,[{"entries":[{"field":"host.name","type":"mapping","value":"host.name"}]}],threat_query,threat_filters,[{"bool":{"must":[{"query_string":{"query":"host.name: linux","analyze_wildcard":true,"time_zone":"Zulu"}}],"filter":[],"should":[],"must_not":[]}}]"', + 'invalid keys "threat_index,["index-123"],threat_mapping,[{"entries":[{"field":"host.name","type":"mapping","value":"host.name"}]}],threat_query,threat_filters,[{"bool":{"must":[{"query_string":{"query":"host.name: linux","analyze_wildcard":true,"time_zone":"Zulu"}}],"filter":[],"should":[],"must_not":[]}}]"', ]); expect(message.schema).toEqual({}); }); @@ -764,7 +764,7 @@ describe('rules_schema', () => { test('should return 5 fields for a rule of type "threat_match"', () => { const fields = addThreatMatchFields({ type: 'threat_match' }); - expect(fields.length).toEqual(5); + expect(fields.length).toEqual(6); }); }); diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.ts index 908425a7496d0..e85beddf0e51e 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/response/rules_schema.ts @@ -66,6 +66,7 @@ import { threat_query, threat_filters, threat_mapping, + threat_language, } from '../types/threat_mapping'; import { DefaultListArray } from '../types/lists_default_array'; @@ -144,6 +145,7 @@ export const dependentRulesSchema = t.partial({ threat_index, threat_query, threat_mapping, + threat_language, }); /** @@ -277,6 +279,7 @@ export const addThreatMatchFields = (typeAndTimelineOnly: TypeAndTimelineOnly): t.exact(t.type({ threat_query: dependentRulesSchema.props.threat_query })), t.exact(t.type({ threat_index: dependentRulesSchema.props.threat_index })), t.exact(t.type({ threat_mapping: dependentRulesSchema.props.threat_mapping })), + t.exact(t.partial({ threat_language: dependentRulesSchema.props.threat_language })), t.exact(t.partial({ threat_filters: dependentRulesSchema.props.threat_filters })), t.exact(t.partial({ saved_id: dependentRulesSchema.props.saved_id })), ]; diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/types/index.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/types/index.ts index aab9a550d25e7..28a66d2948a92 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/types/index.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/types/index.ts @@ -33,4 +33,5 @@ export * from './positive_integer'; export * from './positive_integer_greater_than_zero'; export * from './references_default_array'; export * from './risk_score'; +export * from './threat_mapping'; export * from './uuid'; diff --git a/x-pack/plugins/security_solution/common/detection_engine/schemas/types/threat_mapping.ts b/x-pack/plugins/security_solution/common/detection_engine/schemas/types/threat_mapping.ts index f2b4754c2d113..a1be6485f596b 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/schemas/types/threat_mapping.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/schemas/types/threat_mapping.ts @@ -7,6 +7,7 @@ /* eslint-disable @typescript-eslint/naming-convention */ import * as t from 'io-ts'; +import { language } from '../common/schemas'; import { NonEmptyString } from './non_empty_string'; export const threat_query = t.string; @@ -19,29 +20,38 @@ export type ThreatFilters = t.TypeOf<typeof threat_filters>; export const threatFiltersOrUndefined = t.union([threat_filters, t.undefined]); export type ThreatFiltersOrUndefined = t.TypeOf<typeof threatFiltersOrUndefined>; -export const threatMappingEntries = t.array( - t.exact( - t.type({ - field: NonEmptyString, - type: t.keyof({ mapping: null }), - value: NonEmptyString, - }) - ) +export const threatMapEntry = t.exact( + t.type({ + field: NonEmptyString, + type: t.keyof({ mapping: null }), + value: NonEmptyString, + }) ); + +export type ThreatMapEntry = t.TypeOf<typeof threatMapEntry>; + +export const threatMappingEntries = t.array(threatMapEntry); export type ThreatMappingEntries = t.TypeOf<typeof threatMappingEntries>; -export const threat_mapping = t.array( - t.exact( - t.type({ - entries: threatMappingEntries, - }) - ) +export const threatMap = t.exact( + t.type({ + entries: threatMappingEntries, + }) ); +export type ThreatMap = t.TypeOf<typeof threatMap>; + +export const threat_mapping = t.array(threatMap); export type ThreatMapping = t.TypeOf<typeof threat_mapping>; export const threatMappingOrUndefined = t.union([threat_mapping, t.undefined]); export type ThreatMappingOrUndefined = t.TypeOf<typeof threatMappingOrUndefined>; -export const threat_index = t.string; +export const threat_index = t.array(t.string); +export type ThreatIndex = t.TypeOf<typeof threat_index>; export const threatIndexOrUndefined = t.union([threat_index, t.undefined]); export type ThreatIndexOrUndefined = t.TypeOf<typeof threatIndexOrUndefined>; + +export const threat_language = t.union([language, t.undefined]); +export type ThreatLanguage = t.TypeOf<typeof threat_language>; +export const threatLanguageOrUndefined = t.union([threat_language, t.undefined]); +export type ThreatLanguageOrUndefined = t.TypeOf<typeof threatLanguageOrUndefined>; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/and_badge.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/and_badge.test.tsx new file mode 100644 index 0000000000000..87d2b5ede7d67 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/and_badge.test.tsx @@ -0,0 +1,46 @@ +/* + * 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 { ThemeProvider } from 'styled-components'; +import { mount } from 'enzyme'; +import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; + +import { AndBadgeComponent } from './and_badge'; + +describe('AndBadgeComponent', () => { + test('it renders entryItemIndexItemEntryFirstRowAndBadge for very first item', () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <AndBadgeComponent entriesLength={2} entryItemIndex={0} /> + </ThemeProvider> + ); + + expect(wrapper.find('[data-test-subj="entryItemEntryFirstRowAndBadge"]').exists()).toBeTruthy(); + }); + + test('it renders entryItemEntryInvisibleAndBadge if "entriesLength" is 1 or less', () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <AndBadgeComponent entriesLength={1} entryItemIndex={0} /> + </ThemeProvider> + ); + + expect( + wrapper.find('[data-test-subj="entryItemEntryInvisibleAndBadge"]').exists() + ).toBeTruthy(); + }); + + test('it renders regular "and" badge if item is not the first one and includes more than one entry', () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <AndBadgeComponent entriesLength={2} entryItemIndex={1} /> + </ThemeProvider> + ); + + expect(wrapper.find('[data-test-subj="entryItemEntryAndBadge"]').exists()).toBeTruthy(); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/and_badge.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/and_badge.tsx new file mode 100644 index 0000000000000..fd8d3f08e5de3 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/and_badge.tsx @@ -0,0 +1,50 @@ +/* + * 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 { EuiFlexItem } from '@elastic/eui'; +import styled from 'styled-components'; + +import { AndOrBadge } from '../and_or_badge'; + +const MyInvisibleAndBadge = styled(EuiFlexItem)` + visibility: hidden; +`; + +const MyFirstRowContainer = styled(EuiFlexItem)` + padding-top: 20px; +`; + +interface AndBadgeProps { + entriesLength: number; + entryItemIndex: number; +} + +export const AndBadgeComponent = React.memo<AndBadgeProps>(({ entriesLength, entryItemIndex }) => { + const badge = <AndOrBadge includeAntennas type="and" />; + + if (entriesLength > 1 && entryItemIndex === 0) { + return ( + <MyFirstRowContainer grow={false} data-test-subj="entryItemEntryFirstRowAndBadge"> + {badge} + </MyFirstRowContainer> + ); + } else if (entriesLength <= 1) { + return ( + <MyInvisibleAndBadge grow={false} data-test-subj="entryItemEntryInvisibleAndBadge"> + {badge} + </MyInvisibleAndBadge> + ); + } else { + return ( + <EuiFlexItem grow={false} data-test-subj="entryItemEntryAndBadge"> + {badge} + </EuiFlexItem> + ); + } +}); + +AndBadgeComponent.displayName = 'AndBadge'; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/entry_delete_button.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_delete_button.test.tsx new file mode 100644 index 0000000000000..063499902094c --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_delete_button.test.tsx @@ -0,0 +1,123 @@ +/* + * 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 { mount } from 'enzyme'; +import React from 'react'; +import { ThreatMappingEntries } from '../../../../common/detection_engine/schemas/types'; + +import { EntryDeleteButtonComponent } from './entry_delete_button'; + +const entries: ThreatMappingEntries = [ + { + field: 'field.one', + type: 'mapping', + value: 'field.one', + }, +]; + +describe('EntryDeleteButtonComponent', () => { + test('it renders firstRowDeleteButton for very first entry', () => { + const wrapper = mount( + <EntryDeleteButtonComponent + entryIndex={0} + itemIndex={0} + isOnlyItem={false} + entries={entries} + onDelete={jest.fn()} + /> + ); + + expect(wrapper.find('[data-test-subj="firstRowDeleteButton"] button')).toHaveLength(1); + }); + + test('it does not render firstRowDeleteButton if entryIndex is not 0', () => { + const wrapper = mount( + <EntryDeleteButtonComponent + entryIndex={1} + itemIndex={0} + isOnlyItem={false} + entries={entries} + onDelete={jest.fn()} + /> + ); + + expect(wrapper.find('[data-test-subj="firstRowDeleteButton"]')).toHaveLength(0); + expect(wrapper.find('[data-test-subj="deleteButton"] button')).toHaveLength(1); + }); + + test('it does not render firstRowDeleteButton if itemIndex is not 0', () => { + const wrapper = mount( + <EntryDeleteButtonComponent + entryIndex={0} + itemIndex={1} + isOnlyItem={false} + entries={entries} + onDelete={jest.fn()} + /> + ); + + expect(wrapper.find('[data-test-subj="firstRowDeleteButton"]')).toHaveLength(0); + expect(wrapper.find('[data-test-subj="deleteButton"] button')).toHaveLength(1); + }); + + test('it invokes "onDelete" when button is clicked', () => { + const onDelete = jest.fn(); + + const wrapper = mount( + <EntryDeleteButtonComponent + entryIndex={0} + itemIndex={1} + isOnlyItem={false} + entries={entries} + onDelete={onDelete} + /> + ); + wrapper.find('[data-test-subj="deleteButton"] button').simulate('click'); + + expect(onDelete).toHaveBeenCalledTimes(1); + expect(onDelete).toHaveBeenCalledWith(0); + }); + + test('it disables button if it is the only entry left and no field has been selected', () => { + const emptyEntries: ThreatMappingEntries = [ + { + field: '', + type: 'mapping', + value: 'field.one', + }, + ]; + + const wrapper = mount( + <EntryDeleteButtonComponent + entryIndex={0} + itemIndex={0} + isOnlyItem + entries={emptyEntries} + onDelete={jest.fn()} + /> + ); + + const button = wrapper.find('[data-test-subj="firstRowDeleteButton"] button').at(0); + + expect(button.prop('disabled')).toBeTruthy(); + }); + + test('it does not disable button if it is the only entry left and field has been selected', () => { + const wrapper = mount( + <EntryDeleteButtonComponent + entryIndex={1} + itemIndex={0} + isOnlyItem + entries={entries} + onDelete={jest.fn()} + /> + ); + + const button = wrapper.find('[data-test-subj="deleteButton"] button').at(0); + + expect(button.prop('disabled')).toBeFalsy(); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/entry_delete_button.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_delete_button.tsx new file mode 100644 index 0000000000000..10a82855bb0a3 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_delete_button.tsx @@ -0,0 +1,67 @@ +/* + * 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, { useCallback } from 'react'; +import { EuiButtonIcon, EuiFlexItem } from '@elastic/eui'; +import styled from 'styled-components'; + +import { Entry } from './types'; + +const MyFirstRowContainer = styled(EuiFlexItem)` + padding-top: 20px; +`; + +interface EntryDeleteButtonProps { + entries: Entry[]; + isOnlyItem: boolean; + entryIndex: number; + itemIndex: number; + onDelete: (item: number) => void; +} + +export const EntryDeleteButtonComponent = React.memo<EntryDeleteButtonProps>( + ({ entries, isOnlyItem, entryIndex, itemIndex, onDelete }) => { + const isDisabled: boolean = + isOnlyItem && + entries.length === 1 && + itemIndex === 0 && + (entries[0].field == null || entries[0].field === ''); + + const handleDelete = useCallback((): void => { + onDelete(entryIndex); + }, [onDelete, entryIndex]); + + const button = ( + <EuiButtonIcon + color="danger" + iconType="trash" + onClick={handleDelete} + isDisabled={isDisabled} + aria-label="entryDeleteButton" + className="itemEntryDeleteButton" + data-test-subj="itemEntryDeleteButton" + /> + ); + + if (entryIndex === 0 && itemIndex === 0) { + // This logic was added to work around it including the field + // labels in centering the delete icon for the first row + return ( + <MyFirstRowContainer grow={false} data-test-subj="firstRowDeleteButton"> + {button} + </MyFirstRowContainer> + ); + } else { + return ( + <EuiFlexItem grow={false} data-test-subj="deleteButton"> + {button} + </EuiFlexItem> + ); + } + } +); + +EntryDeleteButtonComponent.displayName = 'EntryDeleteButton'; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.test.tsx new file mode 100644 index 0000000000000..36033c358766d --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.test.tsx @@ -0,0 +1,130 @@ +/* + * 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 { mount } from 'enzyme'; +import React from 'react'; +import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; + +import { EntryItem } from './entry_item'; +import { + fields, + getField, +} from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; +import { IndexPattern } from 'src/plugins/data/public'; + +jest.mock('../../../common/lib/kibana'); + +describe('EntryItem', () => { + test('it renders field labels if "showLabel" is "true"', () => { + const wrapper = mount( + <EntryItem + entry={{ + field: undefined, + value: undefined, + type: 'mapping', + entryIndex: 0, + }} + indexPattern={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + showLabel={true} + onChange={jest.fn()} + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + /> + ); + + expect(wrapper.find('[data-test-subj="threatFieldInputFormRow"]')).not.toEqual(0); + }); + + test('it invokes "onChange" when new field is selected and resets value fields', () => { + const mockOnChange = jest.fn(); + const wrapper = mount( + <EntryItem + entry={{ + field: getField('ip'), + type: 'mapping', + value: getField('ip'), + entryIndex: 0, + }} + indexPattern={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + showLabel={false} + onChange={mockOnChange} + /> + ); + + ((wrapper.find(EuiComboBox).at(0).props() as unknown) as { + onChange: (a: EuiComboBoxOptionOption[]) => void; + }).onChange([{ label: 'machine.os' }]); + + expect(mockOnChange).toHaveBeenCalledWith( + { + field: 'machine.os', + type: 'mapping', + value: 'ip', + }, + 0 + ); + }); + + test('it invokes "onChange" when new value is selected', () => { + const mockOnChange = jest.fn(); + const wrapper = mount( + <EntryItem + entry={{ + field: getField('ip'), + type: 'mapping', + value: getField('ip'), + entryIndex: 0, + }} + indexPattern={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + showLabel={false} + onChange={mockOnChange} + /> + ); + + ((wrapper.find(EuiComboBox).at(1).props() as unknown) as { + onChange: (a: EuiComboBoxOptionOption[]) => void; + }).onChange([{ label: 'is not' }]); + + expect(mockOnChange).toHaveBeenCalledWith({ field: 'ip', type: 'mapping', value: '' }, 0); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx new file mode 100644 index 0000000000000..c99e63ff4eda0 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx @@ -0,0 +1,131 @@ +/* + * 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, { useCallback, useMemo } from 'react'; +import { EuiFormRow, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import styled from 'styled-components'; + +import { IFieldType, IndexPattern } from '../../../../../../../src/plugins/data/common'; +import { FieldComponent } from '../autocomplete/field'; +import { FormattedEntry, Entry } from './types'; +import * as i18n from './translations'; +import { getEntryOnFieldChange, getEntryOnThreatFieldChange } from './helpers'; + +interface EntryItemProps { + entry: FormattedEntry; + indexPattern: IndexPattern; + threatIndexPatterns: IndexPattern; + showLabel: boolean; + onChange: (arg: Entry, i: number) => void; +} + +const FlexItemWithLabel = styled(EuiFlexItem)` + padding-top: 20px; + text-align: center; +`; + +const FlexItemWithoutLabel = styled(EuiFlexItem)` + text-align: center; +`; + +export const EntryItem: React.FC<EntryItemProps> = ({ + entry, + indexPattern, + threatIndexPatterns, + showLabel, + onChange, +}): JSX.Element => { + const handleFieldChange = useCallback( + ([newField]: IFieldType[]): void => { + const { updatedEntry, index } = getEntryOnFieldChange(entry, newField); + onChange(updatedEntry, index); + }, + [onChange, entry] + ); + + const handleThreatFieldChange = useCallback( + ([newField]: IFieldType[]): void => { + const { updatedEntry, index } = getEntryOnThreatFieldChange(entry, newField); + onChange(updatedEntry, index); + }, + [onChange, entry] + ); + + const renderFieldInput = useMemo(() => { + const comboBox = ( + <FieldComponent + placeholder={i18n.FIELD_PLACEHOLDER} + indexPattern={indexPattern} + selectedField={entry.field} + isClearable={false} + isLoading={false} + isDisabled={indexPattern == null} + onChange={handleFieldChange} + data-test-subj="entryField" + fieldInputWidth={360} + /> + ); + + if (showLabel) { + return ( + <EuiFormRow label={i18n.FIELD} data-test-subj="entryItemFieldInputFormRow"> + {comboBox} + </EuiFormRow> + ); + } else { + return comboBox; + } + }, [handleFieldChange, indexPattern, entry, showLabel]); + + const renderThreatFieldInput = useMemo(() => { + const comboBox = ( + <FieldComponent + placeholder={i18n.FIELD_PLACEHOLDER} + indexPattern={threatIndexPatterns} + selectedField={entry.value} + isClearable={false} + isLoading={false} + isDisabled={threatIndexPatterns == null} + onChange={handleThreatFieldChange} + data-test-subj="threatEntryField" + fieldInputWidth={360} + /> + ); + + if (showLabel) { + return ( + <EuiFormRow label={i18n.THREAT_FIELD} data-test-subj="threatFieldInputFormRow"> + {comboBox} + </EuiFormRow> + ); + } else { + return comboBox; + } + }, [handleThreatFieldChange, threatIndexPatterns, entry, showLabel]); + + return ( + <EuiFlexGroup + direction="row" + gutterSize="s" + alignItems="center" + justifyContent="spaceAround" + data-test-subj="itemEntryContainer" + > + <EuiFlexItem grow={false}>{renderFieldInput}</EuiFlexItem> + <EuiFlexItem grow={true}> + <EuiFlexGroup justifyContent="spaceAround" alignItems="center"> + {showLabel ? ( + <FlexItemWithLabel grow={true}>{i18n.MATCHES}</FlexItemWithLabel> + ) : ( + <FlexItemWithoutLabel grow={true}>{i18n.MATCHES}</FlexItemWithoutLabel> + )} + </EuiFlexGroup> + </EuiFlexItem> + <EuiFlexItem grow={false}>{renderThreatFieldInput}</EuiFlexItem> + </EuiFlexGroup> + ); +}; + +EntryItem.displayName = 'EntryItem'; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.test.tsx new file mode 100644 index 0000000000000..7bab8e93ea9db --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.test.tsx @@ -0,0 +1,225 @@ +/* + * 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 { + fields, + getField, +} from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; +import { Entry, EmptyEntry, ThreatMapEntries, FormattedEntry } from './types'; +import { IndexPattern } from '../../../../../../../src/plugins/data/common'; +import moment from 'moment-timezone'; + +import { + filterItems, + getEntryOnFieldChange, + getFormattedEntries, + getFormattedEntry, + getUpdatedEntriesOnDelete, +} from './helpers'; +import { ThreatMapEntry } from '../../../../common/detection_engine/schemas/types'; + +const getMockIndexPattern = (): IndexPattern => + ({ + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern); + +const getMockEntry = (): FormattedEntry => ({ + field: getField('ip'), + value: getField('ip'), + type: 'mapping', + entryIndex: 0, +}); + +describe('Helpers', () => { + beforeEach(() => { + moment.tz.setDefault('UTC'); + }); + + afterEach(() => { + moment.tz.setDefault('Browser'); + }); + + describe('#getFormattedEntry', () => { + test('it returns entry with a value when "item.field" is of type "text" and matching keyword field exists', () => { + const payloadIndexPattern: IndexPattern = { + ...getMockIndexPattern(), + fields: [ + ...fields, + { + name: 'machine.os.raw.text', + type: 'string', + esTypes: ['text'], + count: 0, + scripted: false, + searchable: false, + aggregatable: false, + readFromDocValues: true, + }, + ], + } as IndexPattern; + const payloadItem: Entry = { + field: 'machine.os.raw.text', + type: 'mapping', + value: 'some os', + }; + const output = getFormattedEntry(payloadIndexPattern, payloadItem, 0); + const expected: FormattedEntry = { + entryIndex: 0, + field: { + name: 'machine.os.raw.text', + type: 'string', + esTypes: ['text'], + count: 0, + scripted: false, + searchable: false, + aggregatable: false, + readFromDocValues: true, + }, + type: 'mapping', + value: undefined, + }; + expect(output).toEqual(expected); + }); + }); + + describe('#getFormattedEntries', () => { + test('it returns formatted entry with fields undefined if it unable to find a matching index pattern field', () => { + const payloadIndexPattern: IndexPattern = getMockIndexPattern(); + const payloadItems: Entry[] = [{ field: 'field.one', type: 'mapping', value: 'field.one' }]; + const output = getFormattedEntries(payloadIndexPattern, payloadItems); + const expected: FormattedEntry[] = [ + { + entryIndex: 0, + field: undefined, + value: undefined, + type: 'mapping', + }, + ]; + expect(output).toEqual(expected); + }); + + test('it returns formatted entries', () => { + const payloadIndexPattern: IndexPattern = getMockIndexPattern(); + const payloadItems: Entry[] = [ + { field: 'machine.os', type: 'mapping', value: 'machine.os' }, + { field: 'ip', type: 'mapping', value: 'ip' }, + ]; + const output = getFormattedEntries(payloadIndexPattern, payloadItems); + const expected: FormattedEntry[] = [ + { + field: { + name: 'machine.os', + type: 'string', + esTypes: ['text'], + count: 0, + scripted: false, + searchable: true, + aggregatable: true, + readFromDocValues: false, + }, + type: 'mapping', + value: { + name: 'machine.os', + type: 'string', + esTypes: ['text'], + count: 0, + scripted: false, + searchable: true, + aggregatable: true, + readFromDocValues: false, + }, + entryIndex: 0, + }, + { + field: { + name: 'ip', + type: 'ip', + esTypes: ['ip'], + count: 0, + scripted: false, + searchable: true, + aggregatable: true, + readFromDocValues: true, + }, + type: 'mapping', + value: { + name: 'ip', + type: 'ip', + esTypes: ['ip'], + count: 0, + scripted: false, + searchable: true, + aggregatable: true, + readFromDocValues: true, + }, + entryIndex: 1, + }, + ]; + expect(output).toEqual(expected); + }); + }); + + describe('#getUpdatedEntriesOnDelete', () => { + test('it removes entry corresponding to "entryIndex"', () => { + const payloadItem: ThreatMapEntries = { + entries: [ + { field: 'field.one', type: 'mapping', value: 'field.one' }, + { field: 'field.two', type: 'mapping', value: 'field.two' }, + ], + }; + const output = getUpdatedEntriesOnDelete(payloadItem, 0); + const expected: ThreatMapEntries = { + entries: [ + { + field: 'field.two', + type: 'mapping', + value: 'field.two', + }, + ], + }; + expect(output).toEqual(expected); + }); + }); + + describe('#getEntryOnFieldChange', () => { + test('it returns field of type "match" with updated field', () => { + const payloadItem = getMockEntry(); + const payloadIFieldType = getField('ip'); + const output = getEntryOnFieldChange(payloadItem, payloadIFieldType); + const expected: { updatedEntry: Entry; index: number } = { + index: 0, + updatedEntry: { + field: 'ip', + type: 'mapping', + value: 'ip', + }, + }; + expect(output).toEqual(expected); + }); + }); + + describe('#filterItems', () => { + test('it removes entry items with "value" of "undefined"', () => { + const entry: ThreatMapEntry = { field: 'host.name', type: 'mapping', value: 'host.name' }; + const mockEmpty: EmptyEntry = { + field: 'host.name', + type: 'mapping', + value: undefined, + }; + const items = filterItems([ + { + entries: [entry], + }, + { + entries: [mockEmpty], + }, + ]); + expect(items).toEqual([{ entries: [entry] }]); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx new file mode 100644 index 0000000000000..9b155e1d568a8 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx @@ -0,0 +1,171 @@ +/* + * 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 { + ThreatMap, + threatMap, + ThreatMapping, +} from '../../../../common/detection_engine/schemas/types'; + +import { IndexPattern, IFieldType } from '../../../../../../../src/plugins/data/common'; +import { Entry, FormattedEntry, ThreatMapEntries, EmptyEntry } from './types'; + +/** + * Formats the entry into one that is easily usable for the UI. + * + * @param patterns IndexPattern containing available fields on rule index + * @param item item entry + * @param itemIndex entry index + */ +export const getFormattedEntry = ( + indexPattern: IndexPattern, + item: Entry, + itemIndex: number +): FormattedEntry => { + const { fields } = indexPattern; + const field = item.field; + const threatField = item.value; + const [foundField] = fields.filter(({ name }) => field != null && field === name); + const [threatFoundField] = fields.filter( + ({ name }) => threatField != null && threatField === name + ); + return { + field: foundField, + type: 'mapping', + value: threatFoundField, + entryIndex: itemIndex, + }; +}; + +/** + * Formats the entries to be easily usable for the UI + * + * @param patterns IndexPattern containing available fields on rule index + * @param entries item entries + */ +export const getFormattedEntries = ( + indexPattern: IndexPattern, + entries: Entry[] +): FormattedEntry[] => { + return entries.reduce<FormattedEntry[]>((acc, item, index) => { + const newItemEntry = getFormattedEntry(indexPattern, item, index); + return [...acc, newItemEntry]; + }, []); +}; + +/** + * Determines whether an entire entry or item need to be removed + * + * @param item + * @param entryIndex index of given entry + * + */ +export const getUpdatedEntriesOnDelete = ( + item: ThreatMapEntries, + entryIndex: number +): ThreatMapEntries => { + return { + ...item, + entries: [...item.entries.slice(0, entryIndex), ...item.entries.slice(entryIndex + 1)], + }; +}; + +/** + * Determines proper entry update when user selects new field + * + * @param item - current item entry values + * @param newField - newly selected field + * + */ +export const getEntryOnFieldChange = ( + item: FormattedEntry, + newField: IFieldType +): { updatedEntry: Entry; index: number } => { + const { entryIndex } = item; + return { + updatedEntry: { + field: newField != null ? newField.name : '', + type: 'mapping', + value: item.value != null ? item.value.name : '', + }, + index: entryIndex, + }; +}; + +/** + * Determines proper entry update when user selects new field + * + * @param item - current item entry values + * @param newField - newly selected field + * + */ +export const getEntryOnThreatFieldChange = ( + item: FormattedEntry, + newField: IFieldType +): { updatedEntry: Entry; index: number } => { + const { entryIndex } = item; + return { + updatedEntry: { + field: item.field != null ? item.field.name : '', + type: 'mapping', + value: newField != null ? newField.name : '', + }, + index: entryIndex, + }; +}; + +export const getDefaultEmptyEntry = (): EmptyEntry => ({ + field: '', + type: 'mapping', + value: '', +}); + +export const getNewItem = (): ThreatMap => { + return { + entries: [ + { + field: '', + type: 'mapping', + value: '', + }, + ], + }; +}; + +export const filterItems = (items: ThreatMapEntries[]): ThreatMapping => { + return items.reduce<ThreatMapping>((acc, item) => { + const newItem = { ...item, entries: item.entries }; + if (threatMap.is(newItem)) { + return [...acc, newItem]; + } else { + return acc; + } + }, []); +}; + +/** + * Given a list of items checks each one to see if any of them have an empty field + * or an empty value. + * @param items The items to check if we have an empty entries. + */ +export const containsInvalidItems = (items: ThreatMapEntries[]): boolean => { + return items.some((item) => + item.entries.some((subEntry) => subEntry.field === '' || subEntry.value === '') + ); +}; + +/** + * Given a list of items checks if we have a single empty entry and if we do returns true. + * @param items The items to check if we have a single empty entry. + */ +export const singleEntryThreat = (items: ThreatMapEntries[]): boolean => { + return ( + items.length === 1 && + items[0].entries.length === 1 && + items[0].entries[0].field === '' && + items[0].entries[0].value === '' + ); +}; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/index.test.tsx new file mode 100644 index 0000000000000..14bc64c90a661 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/index.test.tsx @@ -0,0 +1,304 @@ +/* + * 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 { ThemeProvider } from 'styled-components'; +import { mount } from 'enzyme'; +import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; +import { waitFor } from '@testing-library/react'; + +import { fields } from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; + +import { useKibana } from '../../../common/lib/kibana'; + +import { ThreatMatchComponent } from './'; +import { ThreatMapEntries } from './types'; +import { IndexPattern } from 'src/plugins/data/public'; + +jest.mock('../../../common/lib/kibana'); + +const getPayLoad = (): ThreatMapEntries[] => [ + { entries: [{ field: 'host.name', type: 'mapping', value: 'host.name' }] }, +]; + +const getDoublePayLoad = (): ThreatMapEntries[] => [ + { entries: [{ field: 'host.name', type: 'mapping', value: 'host.name' }] }, + { entries: [{ field: 'host.name', type: 'mapping', value: 'host.name' }] }, +]; + +describe('ThreatMatchComponent', () => { + const getValueSuggestionsMock = jest.fn().mockResolvedValue(['value 1', 'value 2']); + + beforeEach(() => { + (useKibana as jest.Mock).mockReturnValue({ + services: { + data: { + autocomplete: { + getValueSuggestions: getValueSuggestionsMock, + }, + }, + }, + }); + }); + + afterEach(() => { + getValueSuggestionsMock.mockClear(); + }); + + test('it displays empty entry if no "listItems" are passed in', () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <ThreatMatchComponent + listItems={[]} + indexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + onChange={jest.fn()} + /> + </ThemeProvider> + ); + + expect(wrapper.find('EuiFlexGroup[data-test-subj="itemEntryContainer"]')).toHaveLength(1); + expect(wrapper.find('[data-test-subj="entryField"]').text()).toEqual('Search'); + expect(wrapper.find('[data-test-subj="threatEntryField"]').text()).toEqual('Search'); + }); + + test('it displays "Search" for "listItems" that are passed in', async () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <ThreatMatchComponent + listItems={getPayLoad()} + indexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + onChange={jest.fn()} + /> + </ThemeProvider> + ); + expect(wrapper.find('EuiFlexGroup[data-test-subj="itemEntryContainer"]')).toHaveLength(1); + expect(wrapper.find('[data-test-subj="entryField"]').at(0).text()).toEqual('Search'); + + wrapper.unmount(); + }); + + test('it displays "or", "and" enabled', () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <ThreatMatchComponent + listItems={[]} + indexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + onChange={jest.fn()} + /> + </ThemeProvider> + ); + + expect(wrapper.find('[data-test-subj="andButton"] button').prop('disabled')).toBeFalsy(); + expect(wrapper.find('[data-test-subj="orButton"] button').prop('disabled')).toBeFalsy(); + }); + + test('it adds an entry when "and" clicked', async () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <ThreatMatchComponent + listItems={[]} + indexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + onChange={jest.fn()} + /> + </ThemeProvider> + ); + + expect(wrapper.find('EuiFlexGroup[data-test-subj="itemEntryContainer"]')).toHaveLength(1); + + wrapper.find('[data-test-subj="andButton"] button').simulate('click'); + + await waitFor(() => { + expect(wrapper.find('EuiFlexGroup[data-test-subj="itemEntryContainer"]')).toHaveLength(2); + expect(wrapper.find('[data-test-subj="entryField"]').at(0).text()).toEqual('Search'); + expect(wrapper.find('[data-test-subj="threatEntryField"]').at(0).text()).toEqual('Search'); + expect(wrapper.find('[data-test-subj="entryField"]').at(1).text()).toEqual('Search'); + expect(wrapper.find('[data-test-subj="threatEntryField"]').at(1).text()).toEqual('Search'); + }); + }); + + test('it adds an item when "or" clicked', async () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <ThreatMatchComponent + listItems={[]} + indexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + onChange={jest.fn()} + /> + </ThemeProvider> + ); + + expect(wrapper.find('EuiFlexGroup[data-test-subj="entriesContainer"]')).toHaveLength(1); + + wrapper.find('[data-test-subj="orButton"] button').simulate('click'); + + await waitFor(() => { + expect(wrapper.find('EuiFlexGroup[data-test-subj="entriesContainer"]')).toHaveLength(2); + expect(wrapper.find('[data-test-subj="entryField"]').at(0).text()).toEqual('Search'); + expect(wrapper.find('[data-test-subj="threatEntryField"]').at(0).text()).toEqual('Search'); + expect(wrapper.find('[data-test-subj="entryField"]').at(1).text()).toEqual('Search'); + expect(wrapper.find('[data-test-subj="threatEntryField"]').at(1).text()).toEqual('Search'); + }); + }); + + test('it removes one row if user deletes a row', () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <ThreatMatchComponent + listItems={getDoublePayLoad()} + indexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + onChange={jest.fn()} + /> + </ThemeProvider> + ); + + expect(wrapper.find('[data-test-subj="entriesContainer"]').length).toEqual(4); + wrapper.find('[data-test-subj="firstRowDeleteButton"] button').simulate('click'); + expect(wrapper.find('[data-test-subj="entriesContainer"]').length).toEqual(2); + wrapper.unmount(); + }); + + test('it displays "and" badge if at least one item includes more than one entry', () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <ThreatMatchComponent + listItems={[]} + indexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + onChange={jest.fn()} + /> + </ThemeProvider> + ); + + expect(wrapper.find('[data-test-subj="entryItemEntryFirstRowAndBadge"]').exists()).toBeFalsy(); + + wrapper.find('[data-test-subj="andButton"] button').simulate('click'); + + expect(wrapper.find('[data-test-subj="entryItemEntryFirstRowAndBadge"]').exists()).toBeTruthy(); + }); + + test('it does not display "and" badge if none of the items include more than one entry', () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <ThreatMatchComponent + listItems={[]} + indexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + onChange={jest.fn()} + /> + </ThemeProvider> + ); + + wrapper.find('[data-test-subj="orButton"] button').simulate('click'); + + expect(wrapper.find('[data-test-subj="entryItemEntryFirstRowAndBadge"]').exists()).toBeFalsy(); + + wrapper.find('[data-test-subj="orButton"] button').simulate('click'); + + expect(wrapper.find('[data-test-subj="entryItemEntryFirstRowAndBadge"]').exists()).toBeFalsy(); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx new file mode 100644 index 0000000000000..d3936e10bd877 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx @@ -0,0 +1,220 @@ +/* + * 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, { useCallback, useEffect, useReducer } from 'react'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import styled from 'styled-components'; + +import { ThreatMapping } from '../../../../common/detection_engine/schemas/types'; +import { ListItemComponent } from './list_item'; +import { IndexPattern } from '../../../../../../../src/plugins/data/common'; +import { AndOrBadge } from '../and_or_badge'; +import { LogicButtons } from './logic_buttons'; +import { ThreatMapEntries } from './types'; +import { State, reducer } from './reducer'; +import { getDefaultEmptyEntry, getNewItem, filterItems } from './helpers'; + +const MyInvisibleAndBadge = styled(EuiFlexItem)` + visibility: hidden; +`; + +const MyAndBadge = styled(AndOrBadge)` + & > .euiFlexItem { + margin: 0; + } +`; + +const MyButtonsContainer = styled(EuiFlexItem)` + margin: 16px 0; +`; + +const initialState: State = { + andLogicIncluded: false, + entries: [], + entriesToDelete: [], +}; + +interface OnChangeProps { + entryItems: ThreatMapping; + entriesToDelete: ThreatMapEntries[]; +} + +interface ThreatMatchComponentProps { + listItems: ThreatMapEntries[]; + indexPatterns: IndexPattern; + threatIndexPatterns: IndexPattern; + onChange: (arg: OnChangeProps) => void; +} + +export const ThreatMatchComponent = ({ + listItems, + indexPatterns, + threatIndexPatterns, + onChange, +}: ThreatMatchComponentProps) => { + const [{ entries, entriesToDelete, andLogicIncluded }, dispatch] = useReducer(reducer(), { + ...initialState, + }); + + const setUpdateEntries = useCallback( + (items: ThreatMapEntries[]): void => { + dispatch({ + type: 'setEntries', + entries: items, + }); + }, + [dispatch] + ); + + const setDefaultEntries = useCallback( + (item: ThreatMapEntries): void => { + dispatch({ + type: 'setDefault', + initialState, + lastEntry: item, + }); + }, + [dispatch] + ); + + const handleEntryItemChange = useCallback( + (item: ThreatMapEntries, index: number): void => { + const updatedEntries = [ + ...entries.slice(0, index), + { + ...item, + }, + ...entries.slice(index + 1), + ]; + + setUpdateEntries(updatedEntries); + }, + [setUpdateEntries, entries] + ); + + const handleDeleteEntryItem = useCallback( + (item: ThreatMapEntries, itemIndex: number): void => { + if (item.entries.length === 0) { + const updatedEntries = [...entries.slice(0, itemIndex), ...entries.slice(itemIndex + 1)]; + // if it's the only item left, don't delete it just add a default entry to it + if (updatedEntries.length === 0) { + setDefaultEntries(item); + } else { + setUpdateEntries([...entries.slice(0, itemIndex), ...entries.slice(itemIndex + 1)]); + } + } else { + handleEntryItemChange(item, itemIndex); + } + }, + [handleEntryItemChange, setUpdateEntries, entries, setDefaultEntries] + ); + + const handleAddNewEntryItemEntry = useCallback((): void => { + const lastEntry = entries[entries.length - 1]; + const { entries: innerEntries } = lastEntry; + + const updatedEntry: ThreatMapEntries = { + ...lastEntry, + entries: [...innerEntries, getDefaultEmptyEntry()], + }; + + setUpdateEntries([...entries.slice(0, entries.length - 1), { ...updatedEntry }]); + }, [setUpdateEntries, entries]); + + const handleAddNewEntryItem = useCallback((): void => { + // There is a case where there are numerous list items, all with + // empty `entries` array. + const newItem = getNewItem(); + setUpdateEntries([...entries, { ...newItem }]); + }, [setUpdateEntries, entries]); + + const handleAddClick = useCallback((): void => { + handleAddNewEntryItemEntry(); + }, [handleAddNewEntryItemEntry]); + + // Bubble up changes to parent + useEffect(() => { + onChange({ entryItems: filterItems(entries), entriesToDelete }); + }, [onChange, entriesToDelete, entries]); + + // Defaults to never be sans entry, instead + // always falls back to an empty entry if user deletes all + useEffect(() => { + if ( + entries.length === 0 || + (entries.length === 1 && entries[0].entries != null && entries[0].entries.length === 0) + ) { + handleAddNewEntryItem(); + } + }, [entries, handleAddNewEntryItem]); + + useEffect(() => { + if (listItems.length > 0) { + setUpdateEntries(listItems); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + return ( + <EuiFlexGroup gutterSize="s" direction="column"> + {entries.map((entryListItem, index) => ( + <EuiFlexItem grow={1} key={`${index}`}> + <EuiFlexGroup gutterSize="s" direction="column"> + {index !== 0 && + (andLogicIncluded ? ( + <EuiFlexItem grow={false}> + <EuiFlexGroup gutterSize="none" direction="row"> + <MyInvisibleAndBadge grow={false}> + <MyAndBadge includeAntennas type="and" /> + </MyInvisibleAndBadge> + <EuiFlexItem grow={false}> + <MyAndBadge type="or" /> + </EuiFlexItem> + </EuiFlexGroup> + </EuiFlexItem> + ) : ( + <EuiFlexItem grow={false}> + <MyAndBadge type="or" /> + </EuiFlexItem> + ))} + <EuiFlexItem grow={false}> + <ListItemComponent + key={`${index}`} + listItem={entryListItem} + listId={`${index}`} + indexPattern={indexPatterns} + threatIndexPatterns={threatIndexPatterns} + listItemIndex={index} + andLogicIncluded={andLogicIncluded} + isOnlyItem={entries.length === 1} + onDeleteEntryItem={handleDeleteEntryItem} + onChangeEntryItem={handleEntryItemChange} + /> + </EuiFlexItem> + </EuiFlexGroup> + </EuiFlexItem> + ))} + + <MyButtonsContainer data-test-subj={'andOrOperatorButtons'}> + <EuiFlexGroup gutterSize="s"> + {andLogicIncluded && ( + <MyInvisibleAndBadge grow={false}> + <AndOrBadge includeAntennas type="and" /> + </MyInvisibleAndBadge> + )} + <EuiFlexItem grow={1}> + <LogicButtons + isOrDisabled={false} + isAndDisabled={false} + onOrClicked={handleAddNewEntryItem} + onAndClicked={handleAddClick} + /> + </EuiFlexItem> + </EuiFlexGroup> + </MyButtonsContainer> + </EuiFlexGroup> + ); +}; + +ThreatMatchComponent.displayName = 'ThreatMatch'; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.test.tsx new file mode 100644 index 0000000000000..90492bc46e2b0 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.test.tsx @@ -0,0 +1,382 @@ +/* + * 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 { ThemeProvider } from 'styled-components'; +import { mount } from 'enzyme'; +import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; + +import { useKibana } from '../../../common/lib/kibana'; +import { fields } from '../../../../../../../src/plugins/data/common/index_patterns/fields/fields.mocks'; + +import { ListItemComponent } from './list_item'; +import { ThreatMapEntries } from './types'; +import { IndexPattern } from 'src/plugins/data/public'; + +jest.mock('../../../common/lib/kibana'); + +const singlePayload = (): ThreatMapEntries => ({ + entries: [ + { + field: 'field.one', + type: 'mapping', + value: 'field.one', + }, + ], +}); + +const doublePayload = (): ThreatMapEntries => ({ + entries: [ + { + field: 'field.one', + type: 'mapping', + value: 'field.one', + }, + { + field: 'field.two', + type: 'mapping', + value: 'field.two', + }, + ], +}); + +describe('ListItemComponent', () => { + const getValueSuggestionsMock = jest.fn().mockResolvedValue(['field.one', 'field.two']); + + beforeAll(() => { + (useKibana as jest.Mock).mockReturnValue({ + services: { + data: { + autocomplete: { + getValueSuggestions: getValueSuggestionsMock, + }, + }, + }, + }); + }); + + afterEach(() => { + getValueSuggestionsMock.mockClear(); + }); + + describe('and badge logic', () => { + test('it renders "and" badge with extra top padding for the first item when "andLogicIncluded" is "true"', () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <ListItemComponent + listItem={doublePayload()} + listId={'123'} + listItemIndex={0} + indexPattern={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + andLogicIncluded={true} + isOnlyItem={false} + onDeleteEntryItem={jest.fn()} + onChangeEntryItem={jest.fn()} + /> + </ThemeProvider> + ); + + expect( + wrapper.find('[data-test-subj="entryItemEntryFirstRowAndBadge"]').exists() + ).toBeTruthy(); + }); + + test('it renders "and" badge when more than one item entry exists and it is not the first item', () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <ListItemComponent + listItem={doublePayload()} + listId={'123'} + listItemIndex={1} + indexPattern={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + andLogicIncluded={true} + isOnlyItem={false} + onDeleteEntryItem={jest.fn()} + onChangeEntryItem={jest.fn()} + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + /> + </ThemeProvider> + ); + + expect(wrapper.find('[data-test-subj="entryItemEntryAndBadge"]').exists()).toBeTruthy(); + }); + + test('it renders indented "and" badge when "andLogicIncluded" is "true" and only one entry exists', () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <ListItemComponent + listItem={singlePayload()} + listId={'123'} + listItemIndex={1} + indexPattern={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + andLogicIncluded={true} + isOnlyItem={false} + onDeleteEntryItem={jest.fn()} + onChangeEntryItem={jest.fn()} + /> + </ThemeProvider> + ); + + expect( + wrapper.find('[data-test-subj="entryItemEntryInvisibleAndBadge"]').exists() + ).toBeTruthy(); + }); + + test('it renders no "and" badge when "andLogicIncluded" is "false"', () => { + const wrapper = mount( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}> + <ListItemComponent + listItem={singlePayload()} + listId={'123'} + listItemIndex={1} + indexPattern={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + andLogicIncluded={false} + isOnlyItem={false} + onDeleteEntryItem={jest.fn()} + onChangeEntryItem={jest.fn()} + /> + </ThemeProvider> + ); + + expect( + wrapper.find('[data-test-subj="entryItemEntryInvisibleAndBadge"]').exists() + ).toBeFalsy(); + expect(wrapper.find('[data-test-subj="entryItemEntryAndBadge"]').exists()).toBeFalsy(); + expect( + wrapper.find('[data-test-subj="entryItemEntryFirstRowAndBadge"]').exists() + ).toBeFalsy(); + }); + }); + + describe('delete button logic', () => { + test('it renders delete button disabled when it is only entry left', () => { + const item: ThreatMapEntries = { + entries: [{ ...singlePayload(), field: '', type: 'mapping', value: '' }], + }; + const wrapper = mount( + <ListItemComponent + listItem={item} + listId={'123'} + listItemIndex={0} + indexPattern={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + andLogicIncluded={false} + isOnlyItem={true} + onDeleteEntryItem={jest.fn()} + onChangeEntryItem={jest.fn()} + /> + ); + + expect( + wrapper.find('[data-test-subj="itemEntryDeleteButton"] button').props().disabled + ).toBeTruthy(); + }); + + test('it does not render delete button disabled when it is not the only entry left', () => { + const wrapper = mount( + <ListItemComponent + listItem={singlePayload()} + listId={'123'} + listItemIndex={0} + indexPattern={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + andLogicIncluded={false} + isOnlyItem={false} + onDeleteEntryItem={jest.fn()} + onChangeEntryItem={jest.fn()} + /> + ); + + expect( + wrapper.find('[data-test-subj="itemEntryDeleteButton"] button').props().disabled + ).toBeFalsy(); + }); + + test('it does not render delete button disabled when "entryItemIndex" is not "0"', () => { + const wrapper = mount( + <ListItemComponent + listItem={singlePayload()} + listId={'123'} + listItemIndex={1} + indexPattern={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + andLogicIncluded={false} + // if entryItemIndex is not 0, wouldn't make sense for + // this to be true, but done for testing purposes + isOnlyItem={true} + onDeleteEntryItem={jest.fn()} + onChangeEntryItem={jest.fn()} + /> + ); + + expect( + wrapper.find('[data-test-subj="itemEntryDeleteButton"] button').props().disabled + ).toBeFalsy(); + }); + + test('it does not render delete button disabled when more than one entry exists', () => { + const wrapper = mount( + <ListItemComponent + listItem={doublePayload()} + listId={'123'} + listItemIndex={0} + indexPattern={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + andLogicIncluded={false} + isOnlyItem={true} + onDeleteEntryItem={jest.fn()} + onChangeEntryItem={jest.fn()} + /> + ); + + expect( + wrapper.find('[data-test-subj="itemEntryDeleteButton"] button').at(0).props().disabled + ).toBeFalsy(); + }); + + test('it invokes "onChangeEntryItem" when delete button clicked', () => { + const mockOnDeleteEntryItem = jest.fn(); + const wrapper = mount( + <ListItemComponent + listItem={doublePayload()} + listId={'123'} + listItemIndex={0} + indexPattern={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + threatIndexPatterns={ + { + id: '1234', + title: 'logstash-*', + fields, + } as IndexPattern + } + andLogicIncluded={false} + isOnlyItem={true} + onDeleteEntryItem={mockOnDeleteEntryItem} + onChangeEntryItem={jest.fn()} + /> + ); + + wrapper.find('[data-test-subj="itemEntryDeleteButton"] button').at(0).simulate('click'); + + const expected: ThreatMapEntries = { + entries: [ + { + field: 'field.two', + type: 'mapping', + value: 'field.two', + }, + ], + }; + + expect(mockOnDeleteEntryItem).toHaveBeenCalledWith(expected, 0); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx new file mode 100644 index 0000000000000..578986ccf17e4 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx @@ -0,0 +1,120 @@ +/* + * 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, { useMemo, useCallback } from 'react'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import styled from 'styled-components'; + +import { IndexPattern } from '../../../../../../../src/plugins/data/common'; +import { getFormattedEntries, getUpdatedEntriesOnDelete } from './helpers'; +import { FormattedEntry, ThreatMapEntries, Entry } from './types'; +import { EntryItem } from './entry_item'; +import { EntryDeleteButtonComponent } from './entry_delete_button'; +import { AndBadgeComponent } from './and_badge'; + +const MyOverflowContainer = styled(EuiFlexItem)` + overflow: hidden; + width: 100%; +`; + +interface ListItemProps { + listItem: ThreatMapEntries; + listId: string; + listItemIndex: number; + indexPattern: IndexPattern; + threatIndexPatterns: IndexPattern; + andLogicIncluded: boolean; + isOnlyItem: boolean; + onDeleteEntryItem: (item: ThreatMapEntries, index: number) => void; + onChangeEntryItem: (item: ThreatMapEntries, index: number) => void; +} + +export const ListItemComponent = React.memo<ListItemProps>( + ({ + listItem, + listId, + listItemIndex, + indexPattern, + threatIndexPatterns, + isOnlyItem, + andLogicIncluded, + onDeleteEntryItem, + onChangeEntryItem, + }) => { + const handleEntryChange = useCallback( + (entry: Entry, entryIndex: number): void => { + const updatedEntries: Entry[] = [ + ...listItem.entries.slice(0, entryIndex), + { ...entry }, + ...listItem.entries.slice(entryIndex + 1), + ]; + const updatedEntryItem: ThreatMapEntries = { + ...listItem, + entries: updatedEntries, + }; + onChangeEntryItem(updatedEntryItem, listItemIndex); + }, + [onChangeEntryItem, listItem, listItemIndex] + ); + + const handleDeleteEntry = useCallback( + (entryIndex: number): void => { + const updatedEntryItem = getUpdatedEntriesOnDelete(listItem, entryIndex); + + onDeleteEntryItem(updatedEntryItem, listItemIndex); + }, + [listItem, onDeleteEntryItem, listItemIndex] + ); + + const entries = useMemo( + (): FormattedEntry[] => + indexPattern != null && listItem.entries.length > 0 + ? getFormattedEntries(indexPattern, listItem.entries) + : [], + [listItem.entries, indexPattern] + ); + return ( + <EuiFlexItem> + <EuiFlexGroup gutterSize="s" data-test-subj="entriesContainer"> + {andLogicIncluded && ( + <AndBadgeComponent + entriesLength={listItem.entries.length} + entryItemIndex={listItemIndex} + /> + )} + <MyOverflowContainer grow={6}> + <EuiFlexGroup gutterSize="s" direction="column"> + {entries.map((item, index) => ( + <EuiFlexItem key={`${listId}-${index}`} grow={1}> + <EuiFlexGroup gutterSize="xs" alignItems="center" direction="row"> + <MyOverflowContainer grow={1}> + <EntryItem + entry={item} + threatIndexPatterns={threatIndexPatterns} + indexPattern={indexPattern} + showLabel={listItemIndex === 0 && index === 0} + onChange={handleEntryChange} + /> + </MyOverflowContainer> + <EntryDeleteButtonComponent + entries={listItem.entries} + isOnlyItem={isOnlyItem} + entryIndex={item.entryIndex} + itemIndex={listItemIndex} + onDelete={handleDeleteEntry} + /> + </EuiFlexGroup> + </EuiFlexItem> + ))} + </EuiFlexGroup> + </MyOverflowContainer> + </EuiFlexGroup> + </EuiFlexItem> + ); + } +); + +ListItemComponent.displayName = 'ListItem'; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/logic_buttons.stories.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/logic_buttons.stories.tsx new file mode 100644 index 0000000000000..dc2fa79a7b8c1 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/logic_buttons.stories.tsx @@ -0,0 +1,49 @@ +/* + * 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 { storiesOf, addDecorator } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import React from 'react'; +import { ThemeProvider } from 'styled-components'; +import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; + +import { LogicButtons } from './logic_buttons'; + +addDecorator((storyFn) => ( + <ThemeProvider theme={() => ({ eui: euiLightVars, darkMode: false })}>{storyFn()}</ThemeProvider> +)); + +storiesOf('ThreatMatching|LogicButtons', module) + .add('and/or buttons', () => { + return ( + <LogicButtons + isAndDisabled={false} + isOrDisabled={false} + onOrClicked={action('onClick')} + onAndClicked={action('onClick')} + /> + ); + }) + .add('and disabled', () => { + return ( + <LogicButtons + isAndDisabled + isOrDisabled={false} + onOrClicked={action('onClick')} + onAndClicked={action('onClick')} + /> + ); + }) + .add('or disabled', () => { + return ( + <LogicButtons + isAndDisabled={false} + isOrDisabled + onOrClicked={action('onClick')} + onAndClicked={action('onClick')} + /> + ); + }); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/logic_buttons.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/logic_buttons.test.tsx new file mode 100644 index 0000000000000..cd2fe3dc8f550 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/logic_buttons.test.tsx @@ -0,0 +1,90 @@ +/* + * 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 { mount } from 'enzyme'; +import React from 'react'; + +import { LogicButtons } from './logic_buttons'; + +describe('LogicButtons', () => { + test('it renders "and" and "or" buttons', () => { + const wrapper = mount( + <LogicButtons + isAndDisabled={false} + isOrDisabled={false} + onOrClicked={jest.fn()} + onAndClicked={jest.fn()} + /> + ); + + expect(wrapper.find('[data-test-subj="andButton"] button')).toHaveLength(1); + expect(wrapper.find('[data-test-subj="orButton"] button')).toHaveLength(1); + }); + + test('it invokes "onOrClicked" when "or" button is clicked', () => { + const onOrClicked = jest.fn(); + + const wrapper = mount( + <LogicButtons + isAndDisabled={false} + isOrDisabled={false} + onOrClicked={onOrClicked} + onAndClicked={jest.fn()} + /> + ); + + wrapper.find('[data-test-subj="orButton"] button').simulate('click'); + + expect(onOrClicked).toHaveBeenCalledTimes(1); + }); + + test('it invokes "onAndClicked" when "and" button is clicked', () => { + const onAndClicked = jest.fn(); + + const wrapper = mount( + <LogicButtons + isAndDisabled={false} + isOrDisabled={false} + onOrClicked={jest.fn()} + onAndClicked={onAndClicked} + /> + ); + + wrapper.find('[data-test-subj="andButton"] button').simulate('click'); + + expect(onAndClicked).toHaveBeenCalledTimes(1); + }); + + test('it disables "and" button if "isAndDisabled" is true', () => { + const wrapper = mount( + <LogicButtons + isOrDisabled={false} + isAndDisabled + onOrClicked={jest.fn()} + onAndClicked={jest.fn()} + /> + ); + + const andButton = wrapper.find('[data-test-subj="andButton"] button').at(0); + + expect(andButton.prop('disabled')).toBeTruthy(); + }); + + test('it disables "or" button if "isOrDisabled" is "true"', () => { + const wrapper = mount( + <LogicButtons + isOrDisabled + isAndDisabled={false} + onOrClicked={jest.fn()} + onAndClicked={jest.fn()} + /> + ); + + const orButton = wrapper.find('[data-test-subj="orButton"] button').at(0); + + expect(orButton.prop('disabled')).toBeTruthy(); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/logic_buttons.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/logic_buttons.tsx new file mode 100644 index 0000000000000..abfbfecdb1baa --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/logic_buttons.tsx @@ -0,0 +1,55 @@ +/* + * 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 { EuiFlexGroup, EuiFlexItem, EuiButton } from '@elastic/eui'; +import styled from 'styled-components'; + +import * as i18n from './translations'; + +const MyEuiButton = styled(EuiButton)` + min-width: 95px; +`; + +interface LogicButtonsProps { + isOrDisabled: boolean; + isAndDisabled: boolean; + onAndClicked: () => void; + onOrClicked: () => void; +} + +export const LogicButtons: React.FC<LogicButtonsProps> = ({ + isOrDisabled = false, + isAndDisabled = false, + onAndClicked, + onOrClicked, +}) => ( + <EuiFlexGroup gutterSize="s" alignItems="center"> + <EuiFlexItem grow={false}> + <MyEuiButton + fill + size="s" + iconType="plusInCircle" + onClick={onAndClicked} + data-test-subj="andButton" + isDisabled={isAndDisabled} + > + {i18n.AND} + </MyEuiButton> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <MyEuiButton + fill + size="s" + iconType="plusInCircle" + onClick={onOrClicked} + isDisabled={isOrDisabled} + data-test-subj="orButton" + > + {i18n.OR} + </MyEuiButton> + </EuiFlexItem> + </EuiFlexGroup> +); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/reducer.test.ts b/x-pack/plugins/security_solution/public/common/components/threat_match/reducer.test.ts new file mode 100644 index 0000000000000..6b2a443ec45a5 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/reducer.test.ts @@ -0,0 +1,101 @@ +/* + * 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 { ThreatMapEntries } from './types'; +import { State, reducer } from './reducer'; +import { getDefaultEmptyEntry } from './helpers'; +import { ThreatMapEntry } from '../../../../common/detection_engine/schemas/types'; + +const initialState: State = { + andLogicIncluded: false, + entries: [], + entriesToDelete: [], +}; + +const getEntry = (): ThreatMapEntry => ({ + field: 'host.name', + type: 'mapping', + value: 'host.name', +}); + +describe('reducer', () => { + describe('#setEntries', () => { + test('should return "andLogicIncluded" ', () => { + const update = reducer()(initialState, { + type: 'setEntries', + entries: [], + }); + const expected: State = { + andLogicIncluded: false, + entries: [], + entriesToDelete: [], + }; + expect(update).toEqual(expected); + }); + + test('should set "andLogicIncluded" to true if any of the entries include entries with length greater than 1 ', () => { + const entries: ThreatMapEntries[] = [ + { + entries: [getEntry(), getEntry()], + }, + ]; + const { andLogicIncluded } = reducer()(initialState, { + type: 'setEntries', + entries, + }); + + expect(andLogicIncluded).toBeTruthy(); + }); + + test('should set "andLogicIncluded" to false if any of the entries include entries with length greater than 1 ', () => { + const entries: ThreatMapEntries[] = [ + { + entries: [getEntry()], + }, + ]; + const { andLogicIncluded } = reducer()(initialState, { + type: 'setEntries', + entries, + }); + + expect(andLogicIncluded).toBeFalsy(); + }); + }); + + describe('#setDefault', () => { + test('should restore initial state and add default empty entry to item" ', () => { + const entries: ThreatMapEntries[] = [ + { + entries: [getEntry()], + }, + ]; + + const update = reducer()( + { + andLogicIncluded: true, + entries, + entriesToDelete: [], + }, + { + type: 'setDefault', + initialState, + lastEntry: { + entries: [], + }, + } + ); + + expect(update).toEqual({ + ...initialState, + entries: [ + { + entries: [getDefaultEmptyEntry()], + }, + ], + }); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/reducer.ts b/x-pack/plugins/security_solution/public/common/components/threat_match/reducer.ts new file mode 100644 index 0000000000000..3fd19d40afa53 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/reducer.ts @@ -0,0 +1,51 @@ +/* + * 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 { ThreatMapEntries } from './types'; +import { getDefaultEmptyEntry } from './helpers'; + +export type ViewerModalName = 'addModal' | 'editModal' | null; + +export interface State { + andLogicIncluded: boolean; + entries: ThreatMapEntries[]; + entriesToDelete: ThreatMapEntries[]; +} + +export type Action = + | { + type: 'setEntries'; + entries: ThreatMapEntries[]; + } + | { + type: 'setDefault'; + initialState: State; + lastEntry: ThreatMapEntries; + }; + +export const reducer = () => (state: State, action: Action): State => { + switch (action.type) { + case 'setEntries': { + const isAndLogicIncluded = + action.entries.filter(({ entries }) => entries.length > 1).length > 0; + + const returnState = { + ...state, + andLogicIncluded: isAndLogicIncluded, + entries: action.entries, + }; + return returnState; + } + case 'setDefault': { + return { + ...state, + ...action.initialState, + entries: [{ ...action.lastEntry, entries: [getDefaultEmptyEntry()] }], + }; + } + default: + return state; + } +}; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/translations.ts b/x-pack/plugins/security_solution/public/common/components/threat_match/translations.ts new file mode 100644 index 0000000000000..ca9f6a13856cf --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/translations.ts @@ -0,0 +1,37 @@ +/* + * 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 const FIELD = i18n.translate('xpack.securitySolution.threatMatch.fieldDescription', { + defaultMessage: 'Field', +}); + +export const THREAT_FIELD = i18n.translate( + 'xpack.securitySolution.threatMatch.threatFieldDescription', + { + defaultMessage: 'Threat index field', + } +); + +export const FIELD_PLACEHOLDER = i18n.translate( + 'xpack.securitySolution.threatMatch.fieldPlaceholderDescription', + { + defaultMessage: 'Search', + } +); + +export const MATCHES = i18n.translate('xpack.securitySolution.threatMatch.matchesLabel', { + defaultMessage: 'MATCHES', +}); + +export const AND = i18n.translate('xpack.securitySolution.threatMatch.andDescription', { + defaultMessage: 'AND', +}); + +export const OR = i18n.translate('xpack.securitySolution.threatMatch.orDescription', { + defaultMessage: 'OR', +}); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/types.ts b/x-pack/plugins/security_solution/public/common/components/threat_match/types.ts new file mode 100644 index 0000000000000..0cbd885db2d54 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/types.ts @@ -0,0 +1,26 @@ +/* + * 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 { ThreatMap, ThreatMapEntry } from '../../../../common/detection_engine/schemas/types'; +import { IFieldType } from '../../../../../../../src/plugins/data/common'; + +export interface FormattedEntry { + field: IFieldType | undefined; + type: 'mapping'; + value: IFieldType | undefined; + entryIndex: number; +} + +export interface EmptyEntry { + field: string | undefined; + type: 'mapping'; + value: string | undefined; +} + +export type Entry = ThreatMapEntry | EmptyEntry; + +export type ThreatMapEntries = Omit<ThreatMap, 'entries'> & { + entries: Entry[]; +}; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx index 4d46d4dc86846..9ef1dd2bcb204 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx @@ -21,6 +21,8 @@ import { isEmpty } from 'lodash/fp'; import React from 'react'; import styled from 'styled-components'; +import { MATCHES, AND, OR } from '../../../../common/components/threat_match/translations'; +import { ThreatMapping } from '../../../../../common/detection_engine/schemas/types'; import { assertUnreachable } from '../../../../../common/utility_types'; import * as i18nSeverity from '../severity_mapping/translations'; import * as i18nRiskScore from '../risk_score_mapping/translations'; @@ -56,6 +58,7 @@ export const buildQueryBarDescription = ({ query, savedId, indexPatterns, + queryLabel, }: BuildQueryBarDescription): ListItems[] => { let items: ListItems[] = []; if (!isEmpty(filters)) { @@ -89,7 +92,7 @@ export const buildQueryBarDescription = ({ items = [ ...items, { - title: <>{i18n.QUERY_LABEL} </>, + title: <>{queryLabel ?? i18n.QUERY_LABEL} </>, description: <>{query} </>, }, ]; @@ -416,3 +419,40 @@ export const buildThresholdDescription = (label: string, threshold: Threshold): ), }, ]; + +export const buildThreatMappingDescription = ( + title: string, + threatMapping: ThreatMapping +): ListItems[] => { + const description = threatMapping.reduce<string>( + (accumThreatMaps, threatMap, threatMapIndex, { length: threatMappingLength }) => { + const matches = threatMap.entries.reduce<string>( + (accumItems, item, itemsIndex, { length: threatMapLength }) => { + if (threatMapLength === 1) { + return `${item.field} ${MATCHES} ${item.value}`; + } else if (itemsIndex === 0) { + return `(${item.field} ${MATCHES} ${item.value})`; + } else { + return `${accumItems} ${AND} (${item.field} ${MATCHES} ${item.value})`; + } + }, + '' + ); + + if (threatMappingLength === 1) { + return `${matches}`; + } else if (threatMapIndex === 0) { + return `(${matches})`; + } else { + return `${accumThreatMaps} ${OR} (${matches})`; + } + }, + '' + ); + return [ + { + title, + description, + }, + ]; +}; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx index 99e36669f78bb..83d087e60bc7d 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx @@ -9,6 +9,7 @@ import { isEmpty, chunk, get, pick, isNumber } from 'lodash/fp'; import React, { memo, useState } from 'react'; import styled from 'styled-components'; +import { ThreatMapping } from '../../../../../common/detection_engine/schemas/types'; import { IIndexPattern, Filter, @@ -36,11 +37,13 @@ import { buildRiskScoreDescription, buildRuleTypeDescription, buildThresholdDescription, + buildThreatMappingDescription, } from './helpers'; import { buildMlJobDescription } from './ml_job_description'; import { buildActionsDescription } from './actions_description'; import { buildThrottleDescription } from './throttle_description'; import { Type } from '../../../../../common/detection_engine/schemas/common/schemas'; +import { THREAT_QUERY_LABEL } from './translations'; const DescriptionListContainer = styled(EuiDescriptionList)` &.euiDescriptionList--column .euiDescriptionList__title { @@ -156,6 +159,7 @@ export const addFilterStateIfNotThere = (filters: Filter[]): Filter[] => { }); }; +/* eslint complexity: ["error", 21]*/ export const getDescriptionItem = ( field: string, label: string, @@ -189,7 +193,7 @@ export const getDescriptionItem = ( } else if (field === 'falsePositives') { const values: string[] = get(field, data); return buildUnorderedListArrayDescription(label, field, values); - } else if (Array.isArray(get(field, data))) { + } else if (Array.isArray(get(field, data)) && field !== 'threatMapping') { const values: string[] = get(field, data); return buildStringArrayDescription(label, field, values); } else if (field === 'riskScore') { @@ -214,6 +218,22 @@ export const getDescriptionItem = ( return buildRuleTypeDescription(label, ruleType); } else if (field === 'kibanaSiemAppUrl') { return []; + } else if (field === 'threatQueryBar') { + const filters = addFilterStateIfNotThere(get('threatQueryBar.filters', data) ?? []); + const query = get('threatQueryBar.query.query', data); + const savedId = get('threatQueryBar.saved_id', data); + return buildQueryBarDescription({ + field, + filters, + filterManager, + query, + savedId, + indexPatterns, + queryLabel: THREAT_QUERY_LABEL, + }); + } else if (field === 'threatMapping') { + const threatMap: ThreatMapping = get(field, data); + return buildThreatMappingDescription(label, threatMap); } const description: string = get(field, data); diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/translations.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/translations.tsx index d714f04f519d4..d9186c2da7225 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/translations.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/translations.tsx @@ -20,6 +20,13 @@ export const QUERY_LABEL = i18n.translate( } ); +export const THREAT_QUERY_LABEL = i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.threatQueryLabel', + { + defaultMessage: 'Threat query', + } +); + export const SAVED_ID_LABEL = i18n.translate( 'xpack.securitySolution.detectionEngine.createRule.savedIdLabel', { diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts index bcda5ff67a9a6..719c38689b722 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts @@ -24,6 +24,7 @@ export interface BuildQueryBarDescription { query: string; savedId: string; indexPatterns?: IIndexPattern; + queryLabel?: string; } export interface BuildThreatDescription { diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/select_rule_type/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/select_rule_type/index.tsx index 169e4f81d3498..9a1d11a2dfe42 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/select_rule_type/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/select_rule_type/index.tsx @@ -12,6 +12,7 @@ import { isThresholdRule, isEqlRule, isQueryRule, + isThreatMatchRule, } from '../../../../../common/detection_engine/utils'; import { FieldHook } from '../../../../shared_imports'; import { useKibana } from '../../../../common/lib/kibana'; @@ -45,6 +46,7 @@ export const SelectRuleType: React.FC<SelectRuleTypeProps> = ({ const setMl = useCallback(() => setType('machine_learning'), [setType]); const setQuery = useCallback(() => setType('query'), [setType]); const setThreshold = useCallback(() => setType('threshold'), [setType]); + const setThreatMatch = useCallback(() => setType('threat_match'), [setType]); const mlCardDisabled = isReadOnly || !hasValidLicense || !isMlAdmin; const licensingUrl = useKibana().services.application.getUrlForApp('kibana', { path: '#/management/stack/license_management', @@ -86,6 +88,15 @@ export const SelectRuleType: React.FC<SelectRuleTypeProps> = ({ [isReadOnly, ruleType, setThreshold] ); + const threatMatchSelectableConfig = useMemo( + () => ({ + isDisabled: isReadOnly, + onClick: setThreatMatch, + isSelected: isThreatMatchRule(ruleType), + }), + [isReadOnly, ruleType, setThreatMatch] + ); + return ( <EuiFormRow fullWidth @@ -138,6 +149,18 @@ export const SelectRuleType: React.FC<SelectRuleTypeProps> = ({ selectable={eqlSelectableConfig} /> </EuiFlexItem> + <EuiFlexItem> + <EuiCard + data-test-subj="threatMatchRuleType" + title={i18n.THREAT_MATCH_TYPE_TITLE} + description={i18n.THREAT_MATCH_TYPE_DESCRIPTION} + icon={<EuiIcon size="l" type="list" />} + isDisabled={ + threatMatchSelectableConfig.isDisabled && !threatMatchSelectableConfig.isSelected + } + selectable={threatMatchSelectableConfig} + /> + </EuiFlexItem> </EuiFlexGrid> </EuiFormRow> ); diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/select_rule_type/translations.ts b/x-pack/plugins/security_solution/public/detections/components/rules/select_rule_type/translations.ts index e7b231ca74958..7043aa2d2f956 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/select_rule_type/translations.ts +++ b/x-pack/plugins/security_solution/public/detections/components/rules/select_rule_type/translations.ts @@ -62,3 +62,17 @@ export const THRESHOLD_TYPE_DESCRIPTION = i18n.translate( defaultMessage: 'Aggregate query results to detect when number of matches exceeds threshold.', } ); + +export const THREAT_MATCH_TYPE_TITLE = i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepDefineRule.ruleTypeField.threatMatchTitle', + { + defaultMessage: 'Threat Match', + } +); + +export const THREAT_MATCH_TYPE_DESCRIPTION = i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepDefineRule.ruleTypeField.threatMatchDescription', + { + defaultMessage: 'Upload value lists to write rules around a list of known bad attributes', + } +); diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx index dc31db76c3911..f728a508fef86 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx @@ -11,6 +11,7 @@ import styled from 'styled-components'; // eslint-disable-next-line no-restricted-imports import isEqual from 'lodash/isEqual'; +import { IndexPattern } from 'src/plugins/data/public'; import { DEFAULT_INDEX_KEY } from '../../../../../common/constants'; import { DEFAULT_TIMELINE_TITLE } from '../../../../timelines/components/timeline/translations'; import { isMlRule } from '../../../../../common/machine_learning/helpers'; @@ -47,8 +48,13 @@ import { } from '../../../../shared_imports'; import { schema } from './schema'; import * as i18n from './translations'; -import { isEqlRule, isThresholdRule } from '../../../../../common/detection_engine/utils'; +import { + isEqlRule, + isThreatMatchRule, + isThresholdRule, +} from '../../../../../common/detection_engine/utils'; import { EqlQueryBar } from '../eql_query_bar'; +import { ThreatMatchInput } from '../threatmatch_input'; import { useFetchIndex } from '../../../../common/containers/source'; const CommonUseField = getUseField({ component: Field }); @@ -62,11 +68,18 @@ const stepDefineDefaultValue: DefineStepRule = { index: [], machineLearningJobId: '', ruleType: 'query', + threatIndex: [], queryBar: { query: { query: '', language: 'kuery' }, filters: [], saved_id: undefined, }, + threatQueryBar: { + query: { query: '*:*', language: 'kuery' }, + filters: [], + saved_id: undefined, + }, + threatMapping: [], threshold: { field: [], value: '200', @@ -121,14 +134,22 @@ const StepDefineRuleComponent: FC<StepDefineRuleProps> = ({ schema, }); const { getFields, getFormData, reset, submit } = form; - const [{ index: formIndex, ruleType: formRuleType }] = (useFormData({ - form, - watch: ['index', 'ruleType'], - }) as unknown) as [Partial<DefineStepRule>]; + const [{ index: formIndex, ruleType: formRuleType, threatIndex: formThreatIndex }] = (useFormData( + { + form, + watch: ['index', 'ruleType', 'threatIndex'], + } + ) as unknown) as [Partial<DefineStepRule>]; const index = formIndex || initialState.index; + const threatIndex = formThreatIndex || initialState.threatIndex; const ruleType = formRuleType || initialState.ruleType; const [indexPatternsLoading, { browserFields, indexPatterns }] = useFetchIndex(index); + const [ + threatIndexPatternsLoading, + { browserFields: threatBrowserFields, indexPatterns: threatIndexPatterns }, + ] = useFetchIndex(threatIndex); + // reset form when rule type changes useEffect(() => { reset({ resetValues: false }); @@ -146,7 +167,7 @@ const StepDefineRuleComponent: FC<StepDefineRuleProps> = ({ const getData = useCallback(async () => { const result = await submit(); - return result?.isValid + return result.isValid ? result : { isValid: false, @@ -184,6 +205,19 @@ const StepDefineRuleComponent: FC<StepDefineRuleProps> = ({ [browserFields] ); + const ThreatMatchInputChildren = useCallback( + ({ threatMapping }) => ( + <ThreatMatchInput + threatBrowserFields={threatBrowserFields} + indexPatterns={indexPatterns as IndexPattern} + threatIndexPatterns={threatIndexPatterns as IndexPattern} + threatMapping={threatMapping} + threatIndexPatternsLoading={threatIndexPatternsLoading} + /> + ), + [threatBrowserFields, threatIndexPatternsLoading, threatIndexPatterns, indexPatterns] + ); + return isReadOnlyView ? ( <StepContentWrapper data-test-subj="definitionRule" addPadding={addPadding}> <StepRuleDescription @@ -309,6 +343,23 @@ const StepDefineRuleComponent: FC<StepDefineRuleProps> = ({ </UseMultiFields> </> </RuleTypeEuiFormRow> + <RuleTypeEuiFormRow + $isVisible={isThreatMatchRule(ruleType)} + data-test-subj="threatMatchInput" + fullWidth + > + <> + <UseMultiFields + fields={{ + threatMapping: { + path: 'threatMapping', + }, + }} + > + {ThreatMatchInputChildren} + </UseMultiFields> + </> + </RuleTypeEuiFormRow> <UseField path="timeline" component={PickTimeline} diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/schema.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/schema.tsx index 07eff94bbbef4..9c2f8fd80f66e 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/schema.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/schema.tsx @@ -9,6 +9,11 @@ import { EuiText } from '@elastic/eui'; import { isEmpty } from 'lodash/fp'; import React from 'react'; +import { + singleEntryThreat, + containsInvalidItems, +} from '../../../../common/components/threat_match/helpers'; +import { isThreatMatchRule } from '../../../../../common/detection_engine/utils'; import { isMlRule } from '../../../../../common/machine_learning/helpers'; import { esKuery } from '../../../../../../../../src/plugins/data/public'; import { FieldValueQueryBar } from '../query_bar'; @@ -20,7 +25,14 @@ import { ValidationFunc, } from '../../../../shared_imports'; import { DefineStepRule } from '../../../pages/detection_engine/rules/types'; -import { CUSTOM_QUERY_REQUIRED, INVALID_CUSTOM_QUERY, INDEX_HELPER_TEXT } from './translations'; +import { + CUSTOM_QUERY_REQUIRED, + INVALID_CUSTOM_QUERY, + INDEX_HELPER_TEXT, + THREAT_MATCH_INDEX_HELPER_TEXT, + THREAT_MATCH_REQUIRED, + THREAT_MATCH_EMPTIES, +} from './translations'; export const schema: FormSchema<DefineStepRule> = { index: { @@ -219,4 +231,126 @@ export const schema: FormSchema<DefineStepRule> = { ], }, }, + threatIndex: { + type: FIELD_TYPES.COMBO_BOX, + label: i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepDefineRule.fieldThreatIndexPatternsLabel', + { + defaultMessage: 'Threat index patterns', + } + ), + helpText: <EuiText size="xs">{THREAT_MATCH_INDEX_HELPER_TEXT}</EuiText>, + validations: [ + { + validator: ( + ...args: Parameters<ValidationFunc> + ): ReturnType<ValidationFunc<{}, ERROR_CODE>> | undefined => { + const [{ formData }] = args; + const needsValidation = isThreatMatchRule(formData.ruleType); + if (!needsValidation) { + return; + } + return fieldValidators.emptyField( + i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepDefineRule.threatMatchoutputIndiceNameFieldRequiredError', + { + defaultMessage: 'A minimum of one index pattern is required.', + } + ) + )(...args); + }, + }, + ], + }, + threatMapping: { + label: i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepDefineRule.fieldThreatMappingLabel', + { + defaultMessage: 'Threat Mapping', + } + ), + validations: [ + { + validator: ( + ...args: Parameters<ValidationFunc> + ): ReturnType<ValidationFunc<{}, ERROR_CODE>> | undefined => { + const [{ path, formData }] = args; + const needsValidation = isThreatMatchRule(formData.ruleType); + if (!needsValidation) { + return; + } + if (singleEntryThreat(formData.threatMapping)) { + return { + code: 'ERR_FIELD_MISSING', + path, + message: THREAT_MATCH_REQUIRED, + }; + } else if (containsInvalidItems(formData.threatMapping)) { + return { + code: 'ERR_FIELD_MISSING', + path, + message: THREAT_MATCH_EMPTIES, + }; + } else { + return undefined; + } + }, + }, + ], + }, + threatQueryBar: { + label: i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepDefineRule.fieldThreatQueryBarLabel', + { + defaultMessage: 'Threat index query', + } + ), + validations: [ + { + validator: ( + ...args: Parameters<ValidationFunc> + ): ReturnType<ValidationFunc<{}, ERROR_CODE>> | undefined => { + const [{ value, path, formData }] = args; + const needsValidation = isThreatMatchRule(formData.ruleType); + if (!needsValidation) { + return; + } + + const { query, filters } = value as FieldValueQueryBar; + + return isEmpty(query.query as string) && isEmpty(filters) + ? { + code: 'ERR_FIELD_MISSING', + path, + message: CUSTOM_QUERY_REQUIRED, + } + : undefined; + }, + }, + { + validator: ( + ...args: Parameters<ValidationFunc> + ): ReturnType<ValidationFunc<{}, ERROR_CODE>> | undefined => { + const [{ value, path, formData }] = args; + const needsValidation = isThreatMatchRule(formData.ruleType); + if (!needsValidation) { + return; + } + const { query } = value as FieldValueQueryBar; + + if (!isEmpty(query.query as string) && query.language === 'kuery') { + try { + esKuery.fromKueryExpression(query.query); + } catch (err) { + return { + code: 'ERR_FIELD_FORMAT', + path, + message: INVALID_CUSTOM_QUERY, + }; + } + } + }, + }, + ], + }, }; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/translations.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/translations.tsx index 860ed1831fdc6..8e0a3f9b8659e 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/translations.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/translations.tsx @@ -70,3 +70,24 @@ export const ENABLE_ML_JOB_WARNING = i18n.translate( 'This ML job is not currently running. Please set this job to run via "ML job settings" before activating this rule.', } ); + +export const THREAT_MATCH_INDEX_HELPER_TEXT = i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepDefineRule.threatMatchingIcesHelperDescription', + { + defaultMessage: 'Select threat indices', + } +); + +export const THREAT_MATCH_REQUIRED = i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepDefineRule.customThreatQueryFieldRequiredError', + { + defaultMessage: 'At least one threat match is required.', + } +); + +export const THREAT_MATCH_EMPTIES = i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepDefineRule.customThreatQueryFieldRequiredEmptyError', + { + defaultMessage: 'All matches require both a field and threat index field.', + } +); diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx new file mode 100644 index 0000000000000..2a4609a2f5e9e --- /dev/null +++ b/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx @@ -0,0 +1,114 @@ +/* + * 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, { useCallback } from 'react'; +import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiFormRow } from '@elastic/eui'; + +import { ThreatMapEntries } from '../../../../common/components/threat_match/types'; +import { ThreatMatchComponent } from '../../../../common/components/threat_match'; +import { BrowserField } from '../../../../common/containers/source'; +import { + FieldHook, + Field, + getUseField, + UseField, + getFieldValidityAndErrorMessage, +} from '../../../../shared_imports'; +import { schema } from '../step_define_rule/schema'; +import { QueryBarDefineRule } from '../query_bar'; +import { IndexPattern } from '../../../../../../../../src/plugins/data/public'; + +const CommonUseField = getUseField({ component: Field }); + +interface ThreatMatchInputProps { + threatMapping: FieldHook; + threatBrowserFields: Readonly<Record<string, Partial<BrowserField>>>; + threatIndexPatterns: IndexPattern; + indexPatterns: IndexPattern; + threatIndexPatternsLoading: boolean; +} + +const ThreatMatchInputComponent: React.FC<ThreatMatchInputProps> = ({ + threatMapping, + indexPatterns, + threatIndexPatterns, + threatIndexPatternsLoading, + threatBrowserFields, +}: ThreatMatchInputProps) => { + const { setValue, value: threatItems } = threatMapping; + const { isInvalid, errorMessage } = getFieldValidityAndErrorMessage(threatMapping); + const handleBuilderOnChange = useCallback( + ({ entryItems }: { entryItems: ThreatMapEntries[] }): void => { + setValue(entryItems); + }, + [setValue] + ); + return ( + <> + <EuiSpacer size="m" /> + <EuiFlexGroup direction="column"> + <EuiFlexItem grow={true}> + <CommonUseField + path="threatIndex" + config={{ + ...schema.threatIndex, + labelAppend: null, + }} + componentProps={{ + idAria: 'detectionEngineStepDefineRuleThreatMatchIndices', + 'data-test-subj': 'detectionEngineStepDefineRuleThreatMatchIndices', + euiFieldProps: { + fullWidth: true, + isDisabled: false, + placeholder: '', + }, + }} + /> + </EuiFlexItem> + <EuiFlexItem grow={true}> + <UseField + path="threatQueryBar" + config={{ + ...schema.threatQueryBar, + labelAppend: null, + }} + component={QueryBarDefineRule} + componentProps={{ + browserFields: threatBrowserFields, + idAria: 'detectionEngineStepDefineThreatRuleQueryBar', + indexPattern: threatIndexPatterns, + isDisabled: false, + isLoading: threatIndexPatternsLoading, + dataTestSubj: 'detectionEngineStepDefineThreatRuleQueryBar', + openTimelineSearch: false, + }} + /> + </EuiFlexItem> + </EuiFlexGroup> + <EuiSpacer size="m" /> + <EuiFormRow + label={threatMapping.label} + labelAppend={threatMapping.labelAppend} + helpText={threatMapping.helpText} + error={errorMessage} + isInvalid={isInvalid} + fullWidth + > + <ThreatMatchComponent + listItems={threatItems as ThreatMapEntries[]} + indexPatterns={indexPatterns} + threatIndexPatterns={threatIndexPatterns} + data-test-subj="threatmatch-builder" + id-aria="threatmatch-builder" + onChange={handleBuilderOnChange} + /> + </EuiFormRow> + <EuiSpacer size="m" /> + </> + ); +}; + +export const ThreatMatchInput = React.memo(ThreatMatchInputComponent); diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/translations.ts b/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/translations.ts new file mode 100644 index 0000000000000..0aa268ae24ae1 --- /dev/null +++ b/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/translations.ts @@ -0,0 +1,14 @@ +/* + * 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 const THREAT_MATCH_FIELD_PLACEHOLDER = i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepDefineRule.threatMatchField.threatMatchFieldPlaceholderText', + { + defaultMessage: 'All results', + } +); diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/types.ts b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/types.ts index 49579e893029b..e9c89130736c0 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/types.ts +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/types.ts @@ -18,7 +18,14 @@ import { threshold, type, } from '../../../../../common/detection_engine/schemas/common/schemas'; -import { listArray } from '../../../../../common/detection_engine/schemas/types'; +import { + listArray, + threat_query, + threat_index, + threat_mapping, + threat_language, + threat_filters, +} from '../../../../../common/detection_engine/schemas/types'; import { CreateRulesSchema, PatchRulesSchema, @@ -110,6 +117,11 @@ export const RuleSchema = t.intersection([ status: t.string, status_date: t.string, threshold, + threat_query, + threat_filters, + threat_index, + threat_mapping, + threat_language, timeline_id: t.string, timeline_title: t.string, timestamp_override, diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts index 5a626ce0ff00a..5851177a4e4ab 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts @@ -212,10 +212,13 @@ export const mockDefineStepRule = (): DefineStepRule => ({ machineLearningJobId: '', index: ['filebeat-'], queryBar: mockQueryBar, + threatQueryBar: mockQueryBar, + threatMapping: [], timeline: { id: '86aa74d0-2136-11ea-9864-ebc8cc1cb8c2', title: 'Titled timeline', }, + threatIndex: [], threshold: { field: [''], value: '100', diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/create/helpers.ts b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/create/helpers.ts index 65a5c6aca0050..160809a2ba3cd 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/create/helpers.ts +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/create/helpers.ts @@ -73,28 +73,77 @@ export interface RuleFields { index: unknown; ruleType: unknown; threshold?: unknown; + threatIndex?: unknown; + threatQueryBar?: unknown; + threatMapping?: unknown; + threatLanguage?: unknown; } -type QueryRuleFields<T> = Omit<T, 'anomalyThreshold' | 'machineLearningJobId' | 'threshold'>; -type ThresholdRuleFields<T> = Omit<T, 'anomalyThreshold' | 'machineLearningJobId'>; -type MlRuleFields<T> = Omit<T, 'queryBar' | 'index' | 'threshold'>; + +type QueryRuleFields<T> = Omit< + T, + | 'anomalyThreshold' + | 'machineLearningJobId' + | 'threshold' + | 'threatIndex' + | 'threatQueryBar' + | 'threatMapping' +>; +type ThresholdRuleFields<T> = Omit< + T, + 'anomalyThreshold' | 'machineLearningJobId' | 'threatIndex' | 'threatQueryBar' | 'threatMapping' +>; +type MlRuleFields<T> = Omit< + T, + 'queryBar' | 'index' | 'threshold' | 'threatIndex' | 'threatQueryBar' | 'threatMapping' +>; +type ThreatMatchRuleFields<T> = Omit<T, 'anomalyThreshold' | 'machineLearningJobId' | 'threshold'>; const isMlFields = <T>( - fields: QueryRuleFields<T> | MlRuleFields<T> | ThresholdRuleFields<T> + fields: QueryRuleFields<T> | MlRuleFields<T> | ThresholdRuleFields<T> | ThreatMatchRuleFields<T> ): fields is MlRuleFields<T> => has('anomalyThreshold', fields); const isThresholdFields = <T>( - fields: QueryRuleFields<T> | MlRuleFields<T> | ThresholdRuleFields<T> + fields: QueryRuleFields<T> | MlRuleFields<T> | ThresholdRuleFields<T> | ThreatMatchRuleFields<T> ): fields is ThresholdRuleFields<T> => has('threshold', fields); -export const filterRuleFieldsForType = <T extends RuleFields>(fields: T, type: Type) => { +const isThreatMatchFields = <T>( + fields: QueryRuleFields<T> | MlRuleFields<T> | ThresholdRuleFields<T> | ThreatMatchRuleFields<T> +): fields is ThreatMatchRuleFields<T> => has('threatIndex', fields); + +export const filterRuleFieldsForType = <T extends RuleFields>( + fields: T, + type: Type +): QueryRuleFields<T> | MlRuleFields<T> | ThresholdRuleFields<T> | ThreatMatchRuleFields<T> => { switch (type) { case 'machine_learning': - const { index, queryBar, threshold, ...mlRuleFields } = fields; + const { + index, + queryBar, + threshold, + threatIndex, + threatQueryBar, + threatMapping, + ...mlRuleFields + } = fields; return mlRuleFields; case 'threshold': - const { anomalyThreshold, machineLearningJobId, ...thresholdRuleFields } = fields; + const { + anomalyThreshold, + machineLearningJobId, + threatIndex: _removedThreatIndex, + threatQueryBar: _removedThreatQueryBar, + threatMapping: _removedThreatMapping, + ...thresholdRuleFields + } = fields; return thresholdRuleFields; case 'threat_match': + const { + anomalyThreshold: _removedAnomalyThreshold, + machineLearningJobId: _removedMachineLearningJobId, + threshold: _removedThreshold, + ...threatMatchRuleFields + } = fields; + return threatMatchRuleFields; case 'query': case 'saved_query': case 'eql': @@ -102,6 +151,9 @@ export const filterRuleFieldsForType = <T extends RuleFields>(fields: T, type: T anomalyThreshold: _a, machineLearningJobId: _m, threshold: _t, + threatIndex: __removedThreatIndex, + threatQueryBar: __removedThreatQueryBar, + threatMapping: __removedThreatMapping, ...queryRuleFields } = fields; return queryRuleFields; @@ -140,6 +192,18 @@ export const formatDefineStepData = (defineStepData: DefineStepRule): DefineStep }, }), } + : isThreatMatchFields(ruleFields) + ? { + index: ruleFields.index, + filters: ruleFields.queryBar?.filters, + language: ruleFields.queryBar?.query?.language, + query: ruleFields.queryBar?.query?.query as string, + saved_id: ruleFields.queryBar?.saved_id, + threat_index: ruleFields.threatIndex, + threat_query: ruleFields.threatQueryBar?.query?.query as string, + threat_mapping: ruleFields.threatMapping, + threat_language: ruleFields.threatQueryBar?.query?.language, + } : { index: ruleFields.index, filters: ruleFields.queryBar?.filters, diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/create/index.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/create/index.tsx index 48247392dfe7f..542b7b1b84c3c 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/create/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/create/index.tsx @@ -183,10 +183,10 @@ const CreateRulePageComponent: React.FC = () => { if (nextStep != null) { goToStep(nextStep); } else { - const defineStep = await stepsData.current[RuleStep.defineRule]; - const aboutStep = await stepsData.current[RuleStep.aboutRule]; - const scheduleStep = await stepsData.current[RuleStep.scheduleRule]; - const actionsStep = await stepsData.current[RuleStep.ruleActions]; + const defineStep = stepsData.current[RuleStep.defineRule]; + const aboutStep = stepsData.current[RuleStep.aboutRule]; + const scheduleStep = stepsData.current[RuleStep.scheduleRule]; + const actionsStep = stepsData.current[RuleStep.ruleActions]; if ( stepIsValid(defineStep) && diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.test.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.test.tsx index 8545e5da512bb..0cd75506fa9f5 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.test.tsx @@ -82,6 +82,16 @@ describe('rule helpers', () => { field: ['host.name'], value: '50', }, + threatIndex: [], + threatMapping: [], + threatQueryBar: { + query: { + query: '', + language: '', + }, + filters: [], + saved_id: undefined, + }, timeline: { id: '86aa74d0-2136-11ea-9864-ebc8cc1cb8c2', title: 'Titled timeline', @@ -217,6 +227,16 @@ describe('rule helpers', () => { field: [], value: '100', }, + threatIndex: [], + threatMapping: [], + threatQueryBar: { + query: { + query: '', + language: '', + }, + filters: [], + saved_id: undefined, + }, timeline: { id: '86aa74d0-2136-11ea-9864-ebc8cc1cb8c2', title: 'Untitled timeline', @@ -249,6 +269,16 @@ describe('rule helpers', () => { field: [], value: '100', }, + threatIndex: [], + threatMapping: [], + threatQueryBar: { + query: { + query: '', + language: '', + }, + filters: [], + saved_id: undefined, + }, timeline: { id: '86aa74d0-2136-11ea-9864-ebc8cc1cb8c2', title: 'Untitled timeline', diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx index 42fbe40d690ea..456bf8419a1f7 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx @@ -79,6 +79,13 @@ export const getDefineStepsData = (rule: Rule): DefineStepRule => ({ anomalyThreshold: rule.anomaly_threshold ?? 50, machineLearningJobId: rule.machine_learning_job_id ?? '', index: rule.index ?? [], + threatIndex: rule.threat_index ?? [], + threatQueryBar: { + query: { query: rule.threat_query ?? '', language: rule.threat_language ?? '' }, + filters: (rule.threat_filters ?? []) as Filter[], + saved_id: undefined, + }, + threatMapping: rule.threat_mapping ?? [], queryBar: { query: { query: rule.query ?? '', language: rule.language ?? '' }, filters: (rule.filters ?? []) as Filter[], @@ -341,7 +348,6 @@ export const getActionMessageRuleParams = (ruleType: Type): string[] => { 'threat', 'type', 'version', - // 'lists', ]; const ruleParamsKeys = [ diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts index e3d0ea123872a..f2afe32b1e12c 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts @@ -22,7 +22,11 @@ import { Type, Severity, } from '../../../../../common/detection_engine/schemas/common/schemas'; -import { List } from '../../../../../common/detection_engine/schemas/types'; +import { + List, + ThreatIndex, + ThreatMapping, +} from '../../../../../common/detection_engine/schemas/types'; export interface EuiBasicTableSortTypes { field: string; @@ -124,6 +128,9 @@ export interface DefineStepRule { ruleType: Type; timeline: FieldValueTimeline; threshold: FieldValueThreshold; + threatIndex: ThreatIndex; + threatQueryBar: FieldValueQueryBar; + threatMapping: ThreatMapping; } export interface ScheduleStepRule { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts index 9081831c45497..894ac2e0bb703 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_responses.ts @@ -399,6 +399,7 @@ export const getResult = (): RuleAlertType => ({ timestampOverride: undefined, threatFilters: undefined, threatMapping: undefined, + threatLanguage: undefined, threatIndex: undefined, threatQuery: undefined, references: ['http://www.example.com', 'https://ww.example.com'], diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts index 067a4352e1080..09e161166dddf 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts @@ -96,6 +96,7 @@ export const createRulesBulkRoute = (router: IRouter, ml: SetupPlugins['ml']) => threat_index: threatIndex, threat_mapping: threatMapping, threat_query: threatQuery, + threat_language: threatLanguage, threshold, throttle, timestamp_override: timestampOverride, @@ -186,6 +187,7 @@ export const createRulesBulkRoute = (router: IRouter, ml: SetupPlugins['ml']) => threatMapping, threatQuery, threatIndex, + threatLanguage, threshold, timestampOverride, references, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_route.ts index 54df87ca17787..9940a56988c77 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_route.ts @@ -84,6 +84,7 @@ export const createRulesRoute = (router: IRouter, ml: SetupPlugins['ml']): void threat_index: threatIndex, threat_query: threatQuery, threat_mapping: threatMapping, + threat_language: threatLanguage, throttle, timestamp_override: timestampOverride, to, @@ -175,6 +176,7 @@ export const createRulesRoute = (router: IRouter, ml: SetupPlugins['ml']): void threatIndex, threatQuery, threatMapping, + threatLanguage, timestampOverride, references, note, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/import_rules_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/import_rules_route.ts index 4dbca5df0041c..fb9d9c4ea72cf 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/import_rules_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/import_rules_route.ts @@ -163,6 +163,7 @@ export const importRulesRoute = (router: IRouter, config: ConfigType, ml: SetupP threat_index: threatIndex, threat_query: threatQuery, threat_mapping: threatMapping, + threat_language: threatLanguage, threshold, timestamp_override: timestampOverride, to, @@ -223,11 +224,12 @@ export const importRulesRoute = (router: IRouter, config: ConfigType, ml: SetupP to, type, threat, + threshold, threatFilters, threatIndex, threatQuery, - threshold, threatMapping, + threatLanguage, timestampOverride, references, note, @@ -272,6 +274,11 @@ export const importRulesRoute = (router: IRouter, config: ConfigType, ml: SetupP type, threat, threshold, + threatFilters, + threatIndex, + threatQuery, + threatMapping, + threatLanguage, references, note, version, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts index 39bbe9ee686a4..081e804cf7356 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts @@ -87,6 +87,11 @@ export const patchRulesBulkRoute = (router: IRouter, ml: SetupPlugins['ml']) => type, threat, threshold, + threat_filters: threatFilters, + threat_index: threatIndex, + threat_query: threatQuery, + threat_mapping: threatMapping, + threat_language: threatLanguage, timestamp_override: timestampOverride, throttle, references, @@ -147,6 +152,11 @@ export const patchRulesBulkRoute = (router: IRouter, ml: SetupPlugins['ml']) => type, threat, threshold, + threatFilters, + threatIndex, + threatQuery, + threatMapping, + threatLanguage, timestampOverride, references, note, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/patch_rules_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/patch_rules_route.ts index 879bd8d5b8a1d..baa5468f862c3 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/patch_rules_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/patch_rules_route.ts @@ -78,6 +78,11 @@ export const patchRulesRoute = (router: IRouter, ml: SetupPlugins['ml']) => { type, threat, threshold, + threat_filters: threatFilters, + threat_index: threatIndex, + threat_query: threatQuery, + threat_mapping: threatMapping, + threat_language: threatLanguage, timestamp_override: timestampOverride, throttle, references, @@ -146,6 +151,11 @@ export const patchRulesRoute = (router: IRouter, ml: SetupPlugins['ml']) => { type, threat, threshold, + threatFilters, + threatIndex, + threatQuery, + threatMapping, + threatLanguage, timestampOverride, references, note, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts index 4df0773f86317..8828bbe6c9826 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts @@ -91,6 +91,11 @@ export const updateRulesBulkRoute = (router: IRouter, ml: SetupPlugins['ml']) => type, threat, threshold, + threat_filters: threatFilters, + threat_index: threatIndex, + threat_query: threatQuery, + threat_mapping: threatMapping, + threat_language: threatLanguage, throttle, timestamp_override: timestampOverride, references, @@ -158,6 +163,11 @@ export const updateRulesBulkRoute = (router: IRouter, ml: SetupPlugins['ml']) => type, threat, threshold, + threatFilters, + threatIndex, + threatQuery, + threatMapping, + threatLanguage, timestampOverride, references, note, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/update_rules_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/update_rules_route.ts index ef698db008d80..1fa3bb8c9bc82 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/update_rules_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/update_rules_route.ts @@ -81,6 +81,11 @@ export const updateRulesRoute = (router: IRouter, ml: SetupPlugins['ml']) => { type, threat, threshold, + threat_filters: threatFilters, + threat_index: threatIndex, + threat_query: threatQuery, + threat_mapping: threatMapping, + threat_language: threatLanguage, throttle, timestamp_override: timestampOverride, references, @@ -148,6 +153,11 @@ export const updateRulesRoute = (router: IRouter, ml: SetupPlugins['ml']) => { type, threat, threshold, + threatFilters, + threatIndex, + threatQuery, + threatMapping, + threatLanguage, timestampOverride, references, note, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.test.ts index 2159245f2f735..13eb7495a898a 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.test.ts @@ -156,7 +156,7 @@ describe('utils', () => { ], }, ]; - threatRule.params.threatIndex = 'index-123'; + threatRule.params.threatIndex = ['index-123']; threatRule.params.threatFilters = threatFilters; threatRule.params.threatMapping = threatMapping; threatRule.params.threatQuery = '*:*'; @@ -164,7 +164,7 @@ describe('utils', () => { const rule = transformAlertToRule(threatRule); expect(rule).toEqual( expect.objectContaining({ - threat_index: 'index-123', + threat_index: ['index-123'], threat_filters: threatFilters, threat_mapping: threatMapping, threat_query: '*:*', diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.ts index c75b32b614e07..fb4ba855f6536 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/utils.ts @@ -150,6 +150,7 @@ export const transformAlertToRule = ( threat_index: alert.params.threatIndex, threat_query: alert.params.threatQuery, threat_mapping: alert.params.threatMapping, + threat_language: alert.params.threatLanguage, throttle: ruleActions?.ruleThrottle || 'no_actions', timestamp_override: alert.params.timestampOverride, note: alert.params.note, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.mock.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.mock.ts index a6034f3d7b7b3..271b1043ea568 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.mock.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.mock.ts @@ -42,6 +42,7 @@ export const getCreateRulesOptionsMock = (): CreateRulesOptions => ({ threat: [], threatFilters: undefined, threatMapping: undefined, + threatLanguage: undefined, threatQuery: undefined, threatIndex: undefined, threshold: undefined, @@ -92,6 +93,7 @@ export const getCreateMlRulesOptionsMock = (): CreateRulesOptions => ({ threatIndex: undefined, threatMapping: undefined, threatQuery: undefined, + threatLanguage: undefined, threshold: undefined, timestampOverride: undefined, to: 'now', diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts index 3a311d03e3c89..776882d0f8494 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts @@ -45,6 +45,7 @@ export const createRules = async ({ threat, threatFilters, threatIndex, + threatLanguage, threatQuery, threatMapping, threshold, @@ -96,6 +97,7 @@ export const createRules = async ({ threatIndex, threatQuery, threatMapping, + threatLanguage, timestampOverride, to, type, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/install_prepacked_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/install_prepacked_rules.ts index 38adc03c00d50..0a43c652234d0 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/install_prepacked_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/install_prepacked_rules.ts @@ -50,6 +50,7 @@ export const installPrepackagedRules = ( threat, threat_filters: threatFilters, threat_mapping: threatMapping, + threat_language: threatLanguage, threat_query: threatQuery, threat_index: threatIndex, threshold, @@ -101,6 +102,7 @@ export const installPrepackagedRules = ( threat, threatFilters, threatMapping, + threatLanguage, threatQuery, threatIndex, threshold, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.mock.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.mock.ts index 8672c85f98426..ef7cd35f28f1b 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.mock.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.mock.ts @@ -149,6 +149,11 @@ export const getPatchRulesOptionsMock = (): PatchRulesOptions => ({ tags: [], threat: [], threshold: undefined, + threatFilters: undefined, + threatIndex: undefined, + threatQuery: undefined, + threatMapping: undefined, + threatLanguage: undefined, timestampOverride: undefined, to: 'now', type: 'query', @@ -193,6 +198,11 @@ export const getPatchMlRulesOptionsMock = (): PatchRulesOptions => ({ tags: [], threat: [], threshold: undefined, + threatFilters: undefined, + threatIndex: undefined, + threatQuery: undefined, + threatMapping: undefined, + threatLanguage: undefined, timestampOverride: undefined, to: 'now', type: 'machine_learning', diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.ts index 852ff06bdc736..1982dcf9dd9b6 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/patch_rules.ts @@ -44,6 +44,11 @@ export const patchRules = async ({ tags, threat, threshold, + threatFilters, + threatIndex, + threatQuery, + threatMapping, + threatLanguage, timestampOverride, to, type, @@ -87,6 +92,11 @@ export const patchRules = async ({ tags, threat, threshold, + threatFilters, + threatIndex, + threatQuery, + threatMapping, + threatLanguage, timestampOverride, to, type, @@ -126,6 +136,11 @@ export const patchRules = async ({ severityMapping, threat, threshold, + threatFilters, + threatIndex, + threatQuery, + threatMapping, + threatLanguage, timestampOverride, to, type, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/types.ts index d688e1b338e21..8af622e6a128b 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/types.ts @@ -91,6 +91,7 @@ import { ThreatQueryOrUndefined, ThreatMappingOrUndefined, ThreatFiltersOrUndefined, + ThreatLanguageOrUndefined, } from '../../../../common/detection_engine/schemas/types/threat_mapping'; import { AlertsClient, PartialAlert } from '../../../../../alerts/server'; @@ -219,6 +220,7 @@ export interface CreateRulesOptions { threatIndex: ThreatIndexOrUndefined; threatQuery: ThreatQueryOrUndefined; threatMapping: ThreatMappingOrUndefined; + threatLanguage: ThreatLanguageOrUndefined; timestampOverride: TimestampOverrideOrUndefined; to: To; type: Type; @@ -264,6 +266,11 @@ export interface UpdateRulesOptions { tags: Tags; threat: Threat; threshold: ThresholdOrUndefined; + threatFilters: ThreatFiltersOrUndefined; + threatIndex: ThreatIndexOrUndefined; + threatQuery: ThreatQueryOrUndefined; + threatMapping: ThreatMappingOrUndefined; + threatLanguage: ThreatLanguageOrUndefined; timestampOverride: TimestampOverrideOrUndefined; to: To; type: Type; @@ -307,6 +314,11 @@ export interface PatchRulesOptions { tags: TagsOrUndefined; threat: ThreatOrUndefined; threshold: ThresholdOrUndefined; + threatFilters: ThreatFiltersOrUndefined; + threatIndex: ThreatIndexOrUndefined; + threatQuery: ThreatQueryOrUndefined; + threatMapping: ThreatMappingOrUndefined; + threatLanguage: ThreatLanguageOrUndefined; timestampOverride: TimestampOverrideOrUndefined; to: ToOrUndefined; type: TypeOrUndefined; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_prepacked_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_prepacked_rules.ts index 01a481ed7b2d9..c685c4198c119 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_prepacked_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_prepacked_rules.ts @@ -47,6 +47,11 @@ export const updatePrepackagedRules = async ( type, threat, threshold, + threat_filters: threatFilters, + threat_index: threatIndex, + threat_query: threatQuery, + threat_mapping: threatMapping, + threat_language: threatLanguage, timestamp_override: timestampOverride, references, version, @@ -97,6 +102,11 @@ export const updatePrepackagedRules = async ( type, threat, threshold, + threatFilters, + threatIndex, + threatQuery, + threatMapping, + threatLanguage, references, version, note, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_rules.mock.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_rules.mock.ts index 8cdc904a861c7..a33651580ef22 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_rules.mock.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_rules.mock.ts @@ -43,6 +43,11 @@ export const getUpdateRulesOptionsMock = (): UpdateRulesOptions => ({ tags: [], threat: [], threshold: undefined, + threatFilters: undefined, + threatIndex: undefined, + threatQuery: undefined, + threatMapping: undefined, + threatLanguage: undefined, timestampOverride: undefined, to: 'now', type: 'query', @@ -88,6 +93,11 @@ export const getUpdateMlRulesOptionsMock = (): UpdateRulesOptions => ({ tags: [], threat: [], threshold: undefined, + threatFilters: undefined, + threatIndex: undefined, + threatQuery: undefined, + threatMapping: undefined, + threatLanguage: undefined, timestampOverride: undefined, to: 'now', type: 'machine_learning', diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_rules.ts index 08df785884b76..3da921ed47f26 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/update_rules.ts @@ -45,6 +45,11 @@ export const updateRules = async ({ tags, threat, threshold, + threatFilters, + threatIndex, + threatQuery, + threatMapping, + threatLanguage, timestampOverride, to, type, @@ -89,6 +94,11 @@ export const updateRules = async ({ tags, threat, threshold, + threatFilters, + threatIndex, + threatQuery, + threatMapping, + threatLanguage, timestampOverride, to, type, @@ -134,6 +144,11 @@ export const updateRules = async ({ severityMapping, threat, threshold, + threatFilters, + threatIndex, + threatQuery, + threatMapping, + threatLanguage, timestampOverride, to, type, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.test.ts index 227f574bc4e4b..654383ff97c7a 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.test.ts @@ -55,6 +55,11 @@ describe('utils', () => { tags: undefined, threat: undefined, threshold: undefined, + threatFilters: undefined, + threatIndex: undefined, + threatQuery: undefined, + threatMapping: undefined, + threatLanguage: undefined, to: undefined, timestampOverride: undefined, type: undefined, @@ -98,6 +103,11 @@ describe('utils', () => { tags: undefined, threat: undefined, threshold: undefined, + threatFilters: undefined, + threatIndex: undefined, + threatQuery: undefined, + threatMapping: undefined, + threatLanguage: undefined, to: undefined, timestampOverride: undefined, type: undefined, @@ -141,6 +151,11 @@ describe('utils', () => { tags: undefined, threat: undefined, threshold: undefined, + threatFilters: undefined, + threatIndex: undefined, + threatQuery: undefined, + threatMapping: undefined, + threatLanguage: undefined, to: undefined, timestampOverride: undefined, type: undefined, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.ts index d9f953f2803a6..a9a100543b528 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/utils.ts @@ -42,7 +42,14 @@ import { EventCategoryOverrideOrUndefined, } from '../../../../common/detection_engine/schemas/common/schemas'; import { PartialFilter } from '../types'; -import { ListArrayOrUndefined } from '../../../../common/detection_engine/schemas/types'; +import { + ListArrayOrUndefined, + ThreatFiltersOrUndefined, + ThreatIndexOrUndefined, + ThreatLanguageOrUndefined, + ThreatMappingOrUndefined, + ThreatQueryOrUndefined, +} from '../../../../common/detection_engine/schemas/types'; export const calculateInterval = ( interval: string | undefined, @@ -86,6 +93,11 @@ export interface UpdateProperties { tags: TagsOrUndefined; threat: ThreatOrUndefined; threshold: ThresholdOrUndefined; + threatFilters: ThreatFiltersOrUndefined; + threatIndex: ThreatIndexOrUndefined; + threatQuery: ThreatQueryOrUndefined; + threatMapping: ThreatMappingOrUndefined; + threatLanguage: ThreatLanguageOrUndefined; timestampOverride: TimestampOverrideOrUndefined; to: ToOrUndefined; type: TypeOrUndefined; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/scripts/rules/queries/query_with_threat_mapping.json b/x-pack/plugins/security_solution/server/lib/detection_engine/scripts/rules/queries/query_with_threat_mapping.json index c914e568048a1..1e2f217751e96 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/scripts/rules/queries/query_with_threat_mapping.json +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/scripts/rules/queries/query_with_threat_mapping.json @@ -7,7 +7,7 @@ "type": "threat_match", "query": "*:*", "tags": ["tag_1", "tag_2"], - "threat_index": "mock-threat-list", + "threat_index": ["mock-threat-list"], "threat_query": "*:*", "threat_mapping": [ { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/__mocks__/es_results.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/__mocks__/es_results.ts index 501cd1fa6ecfb..cbf70f3119b31 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/__mocks__/es_results.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/__mocks__/es_results.ts @@ -60,6 +60,7 @@ export const sampleRuleAlertParams = ( threatQuery: undefined, threatMapping: undefined, threatIndex: undefined, + threatLanguage: undefined, timelineId: undefined, timelineTitle: undefined, timestampOverride: undefined, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_rule.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_rule.ts index 344f705c4af24..6a76c7842e451 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_rule.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_rule.ts @@ -168,6 +168,7 @@ export const buildRuleWithoutOverrides = ( threat_index: ruleParams.threatIndex, threat_query: ruleParams.threatQuery, threat_mapping: ruleParams.threatMapping, + threat_language: ruleParams.threatLanguage, }; return removeInternalTagsFromRule(rule); }; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_params_schema.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_params_schema.ts index 4006345b24385..cfe71f66395b0 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_params_schema.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_params_schema.ts @@ -50,9 +50,10 @@ const signalSchema = schema.object({ exceptions_list: schema.maybe(schema.arrayOf(schema.object({}, { unknowns: 'allow' }))), // For backwards compatibility with customers that had a data bug in 7.8. Once we use a migration script please remove this. exceptionsList: schema.maybe(schema.arrayOf(schema.object({}, { unknowns: 'allow' }))), threatFilters: schema.nullable(schema.arrayOf(schema.object({}, { unknowns: 'allow' }))), - threatIndex: schema.maybe(schema.string()), + threatIndex: schema.maybe(schema.arrayOf(schema.string())), threatQuery: schema.maybe(schema.string()), threatMapping: schema.maybe(schema.arrayOf(schema.object({}, { unknowns: 'allow' }))), + threatLanguage: schema.maybe(schema.string()), }); /** diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts index 95348808bb58f..9436dc9cf8a8e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/signal_rule_alert_type.ts @@ -112,6 +112,7 @@ export const signalRulesAlertType = ({ threatQuery, threatIndex, threatMapping, + threatLanguage, type, exceptionsList, } = params; @@ -389,6 +390,7 @@ export const signalRulesAlertType = ({ throttle, threatFilters: threatFilters ?? [], threatQuery, + threatLanguage, buildRuleMessage, threatIndex, }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signal.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signal.ts index 560e7ad7fe2cb..09ddfb342496d 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signal.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signal.ts @@ -45,6 +45,7 @@ export const createThreatSignal = async ({ throttle, threatFilters, threatQuery, + threatLanguage, buildRuleMessage, threatIndex, name, @@ -105,8 +106,9 @@ export const createThreatSignal = async ({ callCluster: services.callCluster, exceptionItems, query: threatQuery, + language: threatLanguage, threatFilters, - index: [threatIndex], + index: threatIndex, searchAfter, sortField: undefined, sortOrder: undefined, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signals.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signals.ts index f44c7a9684457..eeace508c9bfe 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signals.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/create_threat_signals.ts @@ -41,6 +41,7 @@ export const createThreatSignals = async ({ throttle, threatFilters, threatQuery, + threatLanguage, buildRuleMessage, threatIndex, name, @@ -59,7 +60,8 @@ export const createThreatSignals = async ({ exceptionItems, threatFilters, query: threatQuery, - index: [threatIndex], + language: threatLanguage, + index: threatIndex, searchAfter: undefined, sortField: undefined, sortOrder: undefined, @@ -99,6 +101,7 @@ export const createThreatSignals = async ({ threatQuery, buildRuleMessage, threatIndex, + threatLanguage, name, currentThreatList: threatList, currentResult: results, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/get_threat_list.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/get_threat_list.ts index 8b381ca0d96dc..3c3f5b544bb17 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/get_threat_list.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/get_threat_list.ts @@ -21,6 +21,7 @@ export const MAX_PER_PAGE = 9000; export const getThreatList = async ({ callCluster, query, + language, index, perPage, searchAfter, @@ -33,7 +34,13 @@ export const getThreatList = async ({ if (calculatedPerPage > 10000) { throw new TypeError('perPage cannot exceed the size of 10000'); } - const queryFilter = getQueryFilter(query, 'kuery', threatFilters, index, exceptionItems); + const queryFilter = getQueryFilter( + query, + language ?? 'kuery', + threatFilters, + index, + exceptionItems + ); const response: SearchResponse<ThreatListItem> = await callCluster('search', { body: { query: queryFilter, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts index 7cd6e5196ea68..06c9c4c13c5f3 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/types.ts @@ -15,6 +15,8 @@ import { ThreatQuery, ThreatMapping, ThreatMappingEntries, + ThreatIndex, + ThreatLanguageOrUndefined, } from '../../../../../common/detection_engine/schemas/types/threat_mapping'; import { PartialFilter, RuleTypeParams } from '../../types'; import { AlertServices } from '../../../../../../alerts/server'; @@ -57,7 +59,8 @@ export interface CreateThreatSignalsOptions { threatFilters: PartialFilter[]; threatQuery: ThreatQuery; buildRuleMessage: BuildRuleMessage; - threatIndex: string; + threatIndex: ThreatIndex; + threatLanguage: ThreatLanguageOrUndefined; name: string; } @@ -93,7 +96,8 @@ export interface CreateThreatSignalOptions { threatFilters: PartialFilter[]; threatQuery: ThreatQuery; buildRuleMessage: BuildRuleMessage; - threatIndex: string; + threatIndex: ThreatIndex; + threatLanguage: ThreatLanguageOrUndefined; name: string; currentThreatList: SearchResponse<ThreatListItem>; currentResult: SearchAfterAndBulkCreateReturnType; @@ -138,6 +142,7 @@ export interface BooleanFilter { export interface GetThreatListOptions { callCluster: ILegacyScopedClusterClient['callAsCurrentUser']; query: string; + language: ThreatLanguageOrUndefined; index: string[]; perPage?: number; searchAfter: string[] | undefined; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts index 728f5b1dd867f..cf4d989c1f4c8 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts @@ -43,6 +43,7 @@ import { ThreatIndexOrUndefined, ThreatQueryOrUndefined, ThreatMappingOrUndefined, + ThreatLanguageOrUndefined, } from '../../../common/detection_engine/schemas/types/threat_mapping'; import { LegacyCallAPIOptions } from '../../../../../../src/core/server'; @@ -85,6 +86,7 @@ export interface RuleTypeParams { threatIndex: ThreatIndexOrUndefined; threatQuery: ThreatQueryOrUndefined; threatMapping: ThreatMappingOrUndefined; + threatLanguage: ThreatLanguageOrUndefined; timestampOverride: TimestampOverrideOrUndefined; to: To; type: Type; From 0ee253e9e016b776e45387e3e30c0cec0721d372 Mon Sep 17 00:00:00 2001 From: Spencer <email@spalger.com> Date: Thu, 1 Oct 2020 16:43:13 -0700 Subject: [PATCH 135/142] [optimizer] strip proptypes from plugin bundles in production (#79221) Co-authored-by: spalger <spalger@users.noreply.github.com> --- packages/kbn-babel-preset/package.json | 1 + packages/kbn-babel-preset/webpack_preset.js | 13 +++++++++++++ packages/kbn-optimizer/src/worker/webpack.config.ts | 1 + yarn.lock | 5 +++++ 4 files changed, 20 insertions(+) diff --git a/packages/kbn-babel-preset/package.json b/packages/kbn-babel-preset/package.json index d6d1a78dd4a23..bc4e0ec338f94 100644 --- a/packages/kbn-babel-preset/package.json +++ b/packages/kbn-babel-preset/package.json @@ -15,6 +15,7 @@ "babel-plugin-add-module-exports": "^1.0.2", "babel-plugin-styled-components": "^1.10.7", "babel-plugin-transform-define": "^1.3.1", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24", "react-is": "^16.8.0", "styled-components": "^5.1.0" } diff --git a/packages/kbn-babel-preset/webpack_preset.js b/packages/kbn-babel-preset/webpack_preset.js index a43d607edb17c..503b99d3c3e8a 100644 --- a/packages/kbn-babel-preset/webpack_preset.js +++ b/packages/kbn-babel-preset/webpack_preset.js @@ -40,5 +40,18 @@ module.exports = () => { }, ], ], + env: { + production: { + plugins: [ + [ + require.resolve('babel-plugin-transform-react-remove-prop-types'), + { + mode: 'remove', + removeImport: true, + }, + ], + ], + }, + }, }; }; diff --git a/packages/kbn-optimizer/src/worker/webpack.config.ts b/packages/kbn-optimizer/src/worker/webpack.config.ts index 2edf1c999888e..9678dd5de868b 100644 --- a/packages/kbn-optimizer/src/worker/webpack.config.ts +++ b/packages/kbn-optimizer/src/worker/webpack.config.ts @@ -200,6 +200,7 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker: loader: 'babel-loader', options: { babelrc: false, + envName: worker.dist ? 'production' : 'development', presets: IS_CODE_COVERAGE ? [ISTANBUL_PRESET_PATH, BABEL_PRESET_PATH] : [BABEL_PRESET_PATH], diff --git a/yarn.lock b/yarn.lock index 77e3a399c4313..d795a174cfaa0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7612,6 +7612,11 @@ babel-plugin-transform-property-literals@^6.9.4: dependencies: esutils "^2.0.2" +babel-plugin-transform-react-remove-prop-types@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== + babel-plugin-transform-regexp-constructors@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz#58b7775b63afcf33328fae9a5f88fbd4fb0b4965" From e5d8d49164a8d993bdd314dd6c800f9186092148 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiagoffcc@hotmail.com> Date: Fri, 2 Oct 2020 00:46:00 +0100 Subject: [PATCH 136/142] chore(NA): assures a single version for the same dependency across the entire project (#78825) * chore(NA): script to check for multiple version of same dependency * chore(NA): remove multiple versions for the same dependency * chore(NA): hook single_version_dependencies script into the CI * chore(NA): remove grunt from the CI hook integration * chore(NA): update kbn pm dist * chore(NA): fix typechecking * chore(NA): update code to run under last extract-zip version * fix(NA): multiple versions of the same type dependency * move validation to bootstrap (#13) Co-authored-by: spalger <spalger@users.noreply.github.com> * chore(NA): todo to remove logic to validate single version deps once we move into a single package.json * chore(NA): remove verify dependency versions jenkins task * chore(NA): update kbn pm dist file * chore(NA): remove last mention to verify_dependency_versions.sh fom tasks.groovy Co-authored-by: Spencer <email@spalger.com> Co-authored-by: spalger <spalger@users.noreply.github.com> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> --- package.json | 10 +- packages/kbn-apm-config-loader/package.json | 2 +- packages/kbn-es/package.json | 2 +- packages/kbn-plugin-helpers/package.json | 2 +- packages/kbn-pm/dist/index.js | 4764 +++++++++-------- packages/kbn-pm/package.json | 6 +- .../kbn-pm/src/utils/validate_yarn_lock.ts | 62 + packages/kbn-release-notes/package.json | 2 +- packages/kbn-storybook/package.json | 4 +- packages/kbn-storybook/webpack.config.ts | 4 - packages/kbn-test/package.json | 2 +- packages/kbn-ui-framework/package.json | 6 +- tasks/config/run.js | 4 - tasks/jenkins.js | 1 - tasks/verify_dependency_versions.js | 53 - .../checks/verify_dependency_versions.sh | 5 - vars/tasks.groovy | 1 - x-pack/package.json | 12 +- x-pack/plugins/apm/e2e/package.json | 2 +- x-pack/plugins/apm/scripts/package.json | 2 +- .../server/browsers/extract/unzip.js | 16 +- .../public/common/mock/timeline_results.ts | 2 +- .../scripts/beat_docs/build.js | 38 +- yarn.lock | 363 +- 24 files changed, 2667 insertions(+), 2698 deletions(-) delete mode 100644 tasks/verify_dependency_versions.js delete mode 100755 test/scripts/checks/verify_dependency_versions.sh diff --git a/package.json b/package.json index 0eda8dd9f4114..ff98d7f85dcef 100644 --- a/package.json +++ b/package.json @@ -151,7 +151,7 @@ "angular-sanitize": "^1.8.0", "bluebird": "3.5.5", "boom": "^7.2.0", - "chalk": "^2.4.2", + "chalk": "^4.1.0", "check-disk-space": "^2.1.0", "chokidar": "^3.4.2", "color": "1.0.3", @@ -331,7 +331,7 @@ "@types/selenium-webdriver": "^4.0.9", "@types/semver": "^5.5.0", "@types/sinon": "^7.0.13", - "@types/strip-ansi": "^3.0.0", + "@types/strip-ansi": "^5.2.1", "@types/styled-components": "^5.1.0", "@types/supertest": "^2.0.5", "@types/supertest-as-promised": "^2.0.38", @@ -343,7 +343,7 @@ "@types/uuid": "^3.4.4", "@types/vinyl": "^2.0.4", "@types/vinyl-fs": "^2.4.11", - "@types/webpack": "^4.41.21", + "@types/webpack": "^4.41.3", "@types/webpack-env": "^1.15.2", "@types/zen-observable": "^0.8.0", "@typescript-eslint/eslint-plugin": "^3.10.0", @@ -470,10 +470,10 @@ "selenium-webdriver": "^4.0.0-alpha.7", "simple-git": "1.116.0", "sinon": "^7.4.2", - "strip-ansi": "^3.0.1", + "strip-ansi": "^6.0.0", "supertest": "^3.1.0", "supertest-as-promised": "^4.0.2", - "tape": "^4.13.0", + "tape": "^5.0.1", "topojson-client": "3.0.0", "tree-kill": "^1.2.2", "typescript": "4.0.2", diff --git a/packages/kbn-apm-config-loader/package.json b/packages/kbn-apm-config-loader/package.json index 1982ccdeda0ff..c570fdc0218b9 100644 --- a/packages/kbn-apm-config-loader/package.json +++ b/packages/kbn-apm-config-loader/package.json @@ -18,6 +18,6 @@ }, "devDependencies": { "typescript": "4.0.2", - "tsd": "^0.7.4" + "tsd": "^0.13.1" } } diff --git a/packages/kbn-es/package.json b/packages/kbn-es/package.json index 40d34c5d710bb..c3733094350be 100644 --- a/packages/kbn-es/package.json +++ b/packages/kbn-es/package.json @@ -9,7 +9,7 @@ "kbn:watch": "node scripts/build --watch" }, "dependencies": { - "@elastic/elasticsearch": "7.9.0-rc.1", + "@elastic/elasticsearch": "7.9.1", "@kbn/dev-utils": "1.0.0", "abort-controller": "^3.0.0", "chalk": "^4.1.0", diff --git a/packages/kbn-plugin-helpers/package.json b/packages/kbn-plugin-helpers/package.json index 65b44b6965048..a2c4e1e2134e7 100644 --- a/packages/kbn-plugin-helpers/package.json +++ b/packages/kbn-plugin-helpers/package.json @@ -18,7 +18,7 @@ "del": "^5.1.0", "execa": "^4.0.2", "gulp-zip": "^5.0.2", - "inquirer": "^1.2.2", + "inquirer": "^7.3.3", "load-json-file": "^6.2.0", "vinyl-fs": "^3.0.3" }, diff --git a/packages/kbn-pm/dist/index.js b/packages/kbn-pm/dist/index.js index 7dcfc1d778ea8..2882a72b3ac9d 100644 --- a/packages/kbn-pm/dist/index.js +++ b/packages/kbn-pm/dist/index.js @@ -94,7 +94,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _cli__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "run", function() { return _cli__WEBPACK_IMPORTED_MODULE_0__["run"]; }); -/* harmony import */ var _production__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(496); +/* harmony import */ var _production__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(500); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildProductionProjects", function() { return _production__WEBPACK_IMPORTED_MODULE_1__["buildProductionProjects"]; }); /* harmony import */ var _utils_projects__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(145); @@ -103,10 +103,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils_project__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(163); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Project", function() { return _utils_project__WEBPACK_IMPORTED_MODULE_3__["Project"]; }); -/* harmony import */ var _utils_workspaces__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(275); +/* harmony import */ var _utils_workspaces__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(270); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "copyWorkspacePackages", function() { return _utils_workspaces__WEBPACK_IMPORTED_MODULE_4__["copyWorkspacePackages"]; }); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(276); +/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(271); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getProjectPaths", function() { return _config__WEBPACK_IMPORTED_MODULE_5__["getProjectPaths"]; }); /* @@ -150,7 +150,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _kbn_dev_utils_tooling_log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5); /* harmony import */ var _kbn_dev_utils_tooling_log__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_kbn_dev_utils_tooling_log__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _commands__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(127); -/* harmony import */ var _run__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(489); +/* harmony import */ var _run__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(493); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(143); /* * Licensed to Elasticsearch B.V. under one or more contributor @@ -8763,9 +8763,9 @@ exports.ToolingLogCollectingWriter = ToolingLogCollectingWriter; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "commands", function() { return commands; }); /* harmony import */ var _bootstrap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(128); -/* harmony import */ var _clean__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(284); -/* harmony import */ var _run__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(388); -/* harmony import */ var _watch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(389); +/* harmony import */ var _clean__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(279); +/* harmony import */ var _run__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(392); +/* harmony import */ var _watch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(393); /* * Licensed to Elasticsearch B.V. under one or more contributor * license agreements. See the NOTICE file distributed with @@ -8806,10 +8806,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(143); /* harmony import */ var _utils_parallelize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(144); /* harmony import */ var _utils_projects__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(145); -/* harmony import */ var _utils_project_checksums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(277); -/* harmony import */ var _utils_bootstrap_cache_file__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(282); -/* harmony import */ var _utils_yarn_lock__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(279); -/* harmony import */ var _utils_validate_yarn_lock__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(283); +/* harmony import */ var _utils_project_checksums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(272); +/* harmony import */ var _utils_bootstrap_cache_file__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(277); +/* harmony import */ var _utils_yarn_lock__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(274); +/* harmony import */ var _utils_validate_yarn_lock__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(278); /* * Licensed to Elasticsearch B.V. under one or more contributor * license agreements. See the NOTICE file distributed with @@ -10831,7 +10831,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var util__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(util__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(162); /* harmony import */ var _project__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(163); -/* harmony import */ var _workspaces__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(275); +/* harmony import */ var _workspaces__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(270); /* * Licensed to Elasticsearch B.V. under one or more contributor * license agreements. See the NOTICE file distributed with @@ -23648,11 +23648,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "spawnStreaming", function() { return spawnStreaming; }); /* harmony import */ var stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(137); /* harmony import */ var stream__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(stream__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(227); +/* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(112); /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(chalk__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(232); +/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(227); /* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(execa__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var strong_log_transformer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(267); +/* harmony import */ var strong_log_transformer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(262); /* harmony import */ var strong_log_transformer__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(strong_log_transformer__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(143); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } @@ -23743,602 +23743,18 @@ function spawnStreaming(command, args, opts, { "use strict"; -const ansiStyles = __webpack_require__(113); -const {stdout: stdoutColor, stderr: stderrColor} = __webpack_require__(228); -const { - stringReplaceAll, - stringEncaseCRLFWithFirstIndex -} = __webpack_require__(230); - -const {isArray} = Array; - -// `supportsColor.level` → `ansiStyles.color[name]` mapping -const levelMapping = [ - 'ansi', - 'ansi', - 'ansi256', - 'ansi16m' -]; - -const styles = Object.create(null); - -const applyOptions = (object, options = {}) => { - if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) { - throw new Error('The `level` option should be an integer from 0 to 3'); - } - - // Detect level if not set manually - const colorLevel = stdoutColor ? stdoutColor.level : 0; - object.level = options.level === undefined ? colorLevel : options.level; -}; - -class ChalkClass { - constructor(options) { - // eslint-disable-next-line no-constructor-return - return chalkFactory(options); - } -} - -const chalkFactory = options => { - const chalk = {}; - applyOptions(chalk, options); - - chalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_); - - Object.setPrototypeOf(chalk, Chalk.prototype); - Object.setPrototypeOf(chalk.template, chalk); - - chalk.template.constructor = () => { - throw new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.'); - }; - - chalk.template.Instance = ChalkClass; - - return chalk.template; -}; - -function Chalk(options) { - return chalkFactory(options); -} - -for (const [styleName, style] of Object.entries(ansiStyles)) { - styles[styleName] = { - get() { - const builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty); - Object.defineProperty(this, styleName, {value: builder}); - return builder; - } - }; -} - -styles.visible = { - get() { - const builder = createBuilder(this, this._styler, true); - Object.defineProperty(this, 'visible', {value: builder}); - return builder; - } -}; - -const usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256']; - -for (const model of usedModels) { - styles[model] = { - get() { - const {level} = this; - return function (...arguments_) { - const styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler); - return createBuilder(this, styler, this._isEmpty); - }; - } - }; -} - -for (const model of usedModels) { - const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); - styles[bgModel] = { - get() { - const {level} = this; - return function (...arguments_) { - const styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler); - return createBuilder(this, styler, this._isEmpty); - }; - } - }; -} - -const proto = Object.defineProperties(() => {}, { - ...styles, - level: { - enumerable: true, - get() { - return this._generator.level; - }, - set(level) { - this._generator.level = level; - } - } -}); - -const createStyler = (open, close, parent) => { - let openAll; - let closeAll; - if (parent === undefined) { - openAll = open; - closeAll = close; - } else { - openAll = parent.openAll + open; - closeAll = close + parent.closeAll; - } - - return { - open, - close, - openAll, - closeAll, - parent - }; -}; - -const createBuilder = (self, _styler, _isEmpty) => { - const builder = (...arguments_) => { - if (isArray(arguments_[0]) && isArray(arguments_[0].raw)) { - // Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}` - return applyStyle(builder, chalkTag(builder, ...arguments_)); - } - - // Single argument is hot path, implicit coercion is faster than anything - // eslint-disable-next-line no-implicit-coercion - return applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' ')); - }; - - // We alter the prototype because we must return a function, but there is - // no way to create a function with a different prototype - Object.setPrototypeOf(builder, proto); - - builder._generator = self; - builder._styler = _styler; - builder._isEmpty = _isEmpty; - - return builder; -}; - -const applyStyle = (self, string) => { - if (self.level <= 0 || !string) { - return self._isEmpty ? '' : string; - } - - let styler = self._styler; - - if (styler === undefined) { - return string; - } - - const {openAll, closeAll} = styler; - if (string.indexOf('\u001B') !== -1) { - while (styler !== undefined) { - // Replace any instances already present with a re-opening code - // otherwise only the part of the string until said closing code - // will be colored, and the rest will simply be 'plain'. - string = stringReplaceAll(string, styler.close, styler.open); - - styler = styler.parent; - } - } - - // We can move both next actions out of loop, because remaining actions in loop won't have - // any/visible effect on parts we add here. Close the styling before a linebreak and reopen - // after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92 - const lfIndex = string.indexOf('\n'); - if (lfIndex !== -1) { - string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex); - } - - return openAll + string + closeAll; -}; - -let template; -const chalkTag = (chalk, ...strings) => { - const [firstString] = strings; - - if (!isArray(firstString) || !isArray(firstString.raw)) { - // If chalk() was called by itself or with a string, - // return the string itself as a string. - return strings.join(' '); - } - - const arguments_ = strings.slice(1); - const parts = [firstString.raw[0]]; - - for (let i = 1; i < firstString.length; i++) { - parts.push( - String(arguments_[i - 1]).replace(/[{}\\]/g, '\\$&'), - String(firstString.raw[i]) - ); - } - - if (template === undefined) { - template = __webpack_require__(231); - } - - return template(chalk, parts.join('')); -}; - -Object.defineProperties(Chalk.prototype, styles); - -const chalk = Chalk(); // eslint-disable-line new-cap -chalk.supportsColor = stdoutColor; -chalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap -chalk.stderr.supportsColor = stderrColor; - -module.exports = chalk; - - -/***/ }), -/* 228 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -const os = __webpack_require__(120); -const tty = __webpack_require__(121); -const hasFlag = __webpack_require__(229); - -const {env} = process; - -let forceColor; -if (hasFlag('no-color') || - hasFlag('no-colors') || - hasFlag('color=false') || - hasFlag('color=never')) { - forceColor = 0; -} else if (hasFlag('color') || - hasFlag('colors') || - hasFlag('color=true') || - hasFlag('color=always')) { - forceColor = 1; -} - -if ('FORCE_COLOR' in env) { - if (env.FORCE_COLOR === 'true') { - forceColor = 1; - } else if (env.FORCE_COLOR === 'false') { - forceColor = 0; - } else { - forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); - } -} - -function translateLevel(level) { - if (level === 0) { - return false; - } - - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; -} - -function supportsColor(haveStream, streamIsTTY) { - if (forceColor === 0) { - return 0; - } - - if (hasFlag('color=16m') || - hasFlag('color=full') || - hasFlag('color=truecolor')) { - return 3; - } - - if (hasFlag('color=256')) { - return 2; - } - - if (haveStream && !streamIsTTY && forceColor === undefined) { - return 0; - } - - const min = forceColor || 0; - - if (env.TERM === 'dumb') { - return min; - } - - if (process.platform === 'win32') { - // Windows 10 build 10586 is the first Windows release that supports 256 colors. - // Windows 10 build 14931 is the first release that supports 16m/TrueColor. - const osRelease = os.release().split('.'); - if ( - Number(osRelease[0]) >= 10 && - Number(osRelease[2]) >= 10586 - ) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } - - return 1; - } - - if ('CI' in env) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { - return 1; - } - - return min; - } - - if ('TEAMCITY_VERSION' in env) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; - } - - if ('GITHUB_ACTIONS' in env) { - return 1; - } - - if (env.COLORTERM === 'truecolor') { - return 3; - } - - if ('TERM_PROGRAM' in env) { - const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); - - switch (env.TERM_PROGRAM) { - case 'iTerm.app': - return version >= 3 ? 3 : 2; - case 'Apple_Terminal': - return 2; - // No default - } - } - - if (/-256(color)?$/i.test(env.TERM)) { - return 2; - } - - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { - return 1; - } - - if ('COLORTERM' in env) { - return 1; - } - - return min; -} - -function getSupportLevel(stream) { - const level = supportsColor(stream, stream && stream.isTTY); - return translateLevel(level); -} - -module.exports = { - supportsColor: getSupportLevel, - stdout: translateLevel(supportsColor(true, tty.isatty(1))), - stderr: translateLevel(supportsColor(true, tty.isatty(2))) -}; - - -/***/ }), -/* 229 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = (flag, argv = process.argv) => { - const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); - const position = argv.indexOf(prefix + flag); - const terminatorPosition = argv.indexOf('--'); - return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); -}; - - -/***/ }), -/* 230 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -const stringReplaceAll = (string, substring, replacer) => { - let index = string.indexOf(substring); - if (index === -1) { - return string; - } - - const substringLength = substring.length; - let endIndex = 0; - let returnValue = ''; - do { - returnValue += string.substr(endIndex, index - endIndex) + substring + replacer; - endIndex = index + substringLength; - index = string.indexOf(substring, endIndex); - } while (index !== -1); - - returnValue += string.substr(endIndex); - return returnValue; -}; - -const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => { - let endIndex = 0; - let returnValue = ''; - do { - const gotCR = string[index - 1] === '\r'; - returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\r\n' : '\n') + postfix; - endIndex = index + 1; - index = string.indexOf('\n', endIndex); - } while (index !== -1); - - returnValue += string.substr(endIndex); - return returnValue; -}; - -module.exports = { - stringReplaceAll, - stringEncaseCRLFWithFirstIndex -}; - - -/***/ }), -/* 231 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -const TEMPLATE_REGEX = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; -const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; -const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; -const ESCAPE_REGEX = /\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi; - -const ESCAPES = new Map([ - ['n', '\n'], - ['r', '\r'], - ['t', '\t'], - ['b', '\b'], - ['f', '\f'], - ['v', '\v'], - ['0', '\0'], - ['\\', '\\'], - ['e', '\u001B'], - ['a', '\u0007'] -]); - -function unescape(c) { - const u = c[0] === 'u'; - const bracket = c[1] === '{'; - - if ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) { - return String.fromCharCode(parseInt(c.slice(1), 16)); - } - - if (u && bracket) { - return String.fromCodePoint(parseInt(c.slice(2, -1), 16)); - } - - return ESCAPES.get(c) || c; -} - -function parseArguments(name, arguments_) { - const results = []; - const chunks = arguments_.trim().split(/\s*,\s*/g); - let matches; - - for (const chunk of chunks) { - const number = Number(chunk); - if (!Number.isNaN(number)) { - results.push(number); - } else if ((matches = chunk.match(STRING_REGEX))) { - results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character)); - } else { - throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); - } - } - - return results; -} - -function parseStyle(style) { - STYLE_REGEX.lastIndex = 0; - - const results = []; - let matches; - - while ((matches = STYLE_REGEX.exec(style)) !== null) { - const name = matches[1]; - - if (matches[2]) { - const args = parseArguments(name, matches[2]); - results.push([name].concat(args)); - } else { - results.push([name]); - } - } - - return results; -} - -function buildStyle(chalk, styles) { - const enabled = {}; - - for (const layer of styles) { - for (const style of layer.styles) { - enabled[style[0]] = layer.inverse ? null : style.slice(1); - } - } - - let current = chalk; - for (const [styleName, styles] of Object.entries(enabled)) { - if (!Array.isArray(styles)) { - continue; - } - - if (!(styleName in current)) { - throw new Error(`Unknown Chalk style: ${styleName}`); - } - - current = styles.length > 0 ? current[styleName](...styles) : current[styleName]; - } - - return current; -} - -module.exports = (chalk, temporary) => { - const styles = []; - const chunks = []; - let chunk = []; - - // eslint-disable-next-line max-params - temporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => { - if (escapeCharacter) { - chunk.push(unescape(escapeCharacter)); - } else if (style) { - const string = chunk.join(''); - chunk = []; - chunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string)); - styles.push({inverse, styles: parseStyle(style)}); - } else if (close) { - if (styles.length === 0) { - throw new Error('Found extraneous } in Chalk template literal'); - } - - chunks.push(buildStyle(chalk, styles)(chunk.join(''))); - chunk = []; - styles.pop(); - } else { - chunk.push(character); - } - }); - - chunks.push(chunk.join('')); - - if (styles.length > 0) { - const errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`; - throw new Error(errMessage); - } - - return chunks.join(''); -}; - - -/***/ }), -/* 232 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - const path = __webpack_require__(4); -const childProcess = __webpack_require__(233); -const crossSpawn = __webpack_require__(234); -const stripFinalNewline = __webpack_require__(247); -const npmRunPath = __webpack_require__(248); -const onetime = __webpack_require__(249); -const makeError = __webpack_require__(251); -const normalizeStdio = __webpack_require__(256); -const {spawnedKill, spawnedCancel, setupTimeout, setExitHandler} = __webpack_require__(257); -const {handleInput, getSpawnedResult, makeAllStream, validateInputSync} = __webpack_require__(258); -const {mergePromise, getSpawnedPromise} = __webpack_require__(265); -const {joinCommand, parseCommand} = __webpack_require__(266); +const childProcess = __webpack_require__(228); +const crossSpawn = __webpack_require__(229); +const stripFinalNewline = __webpack_require__(242); +const npmRunPath = __webpack_require__(243); +const onetime = __webpack_require__(244); +const makeError = __webpack_require__(246); +const normalizeStdio = __webpack_require__(251); +const {spawnedKill, spawnedCancel, setupTimeout, setExitHandler} = __webpack_require__(252); +const {handleInput, getSpawnedResult, makeAllStream, validateInputSync} = __webpack_require__(253); +const {mergePromise, getSpawnedPromise} = __webpack_require__(260); +const {joinCommand, parseCommand} = __webpack_require__(261); const DEFAULT_MAX_BUFFER = 1000 * 1000 * 100; @@ -24585,21 +24001,21 @@ module.exports.node = (scriptPath, args, options = {}) => { /***/ }), -/* 233 */ +/* 228 */ /***/ (function(module, exports) { module.exports = require("child_process"); /***/ }), -/* 234 */ +/* 229 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const cp = __webpack_require__(233); -const parse = __webpack_require__(235); -const enoent = __webpack_require__(246); +const cp = __webpack_require__(228); +const parse = __webpack_require__(230); +const enoent = __webpack_require__(241); function spawn(command, args, options) { // Parse the arguments @@ -24637,16 +24053,16 @@ module.exports._enoent = enoent; /***/ }), -/* 235 */ +/* 230 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const resolveCommand = __webpack_require__(236); -const escape = __webpack_require__(242); -const readShebang = __webpack_require__(243); +const resolveCommand = __webpack_require__(231); +const escape = __webpack_require__(237); +const readShebang = __webpack_require__(238); const isWin = process.platform === 'win32'; const isExecutableRegExp = /\.(?:com|exe)$/i; @@ -24735,15 +24151,15 @@ module.exports = parse; /***/ }), -/* 236 */ +/* 231 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const which = __webpack_require__(237); -const pathKey = __webpack_require__(241)(); +const which = __webpack_require__(232); +const pathKey = __webpack_require__(236)(); function resolveCommandAttempt(parsed, withoutPathExt) { const cwd = process.cwd(); @@ -24793,7 +24209,7 @@ module.exports = resolveCommand; /***/ }), -/* 237 */ +/* 232 */ /***/ (function(module, exports, __webpack_require__) { const isWindows = process.platform === 'win32' || @@ -24802,7 +24218,7 @@ const isWindows = process.platform === 'win32' || const path = __webpack_require__(4) const COLON = isWindows ? ';' : ':' -const isexe = __webpack_require__(238) +const isexe = __webpack_require__(233) const getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' }) @@ -24924,15 +24340,15 @@ which.sync = whichSync /***/ }), -/* 238 */ +/* 233 */ /***/ (function(module, exports, __webpack_require__) { var fs = __webpack_require__(133) var core if (process.platform === 'win32' || global.TESTING_WINDOWS) { - core = __webpack_require__(239) + core = __webpack_require__(234) } else { - core = __webpack_require__(240) + core = __webpack_require__(235) } module.exports = isexe @@ -24987,7 +24403,7 @@ function sync (path, options) { /***/ }), -/* 239 */ +/* 234 */ /***/ (function(module, exports, __webpack_require__) { module.exports = isexe @@ -25035,7 +24451,7 @@ function sync (path, options) { /***/ }), -/* 240 */ +/* 235 */ /***/ (function(module, exports, __webpack_require__) { module.exports = isexe @@ -25082,7 +24498,7 @@ function checkMode (stat, options) { /***/ }), -/* 241 */ +/* 236 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25105,7 +24521,7 @@ module.exports.default = pathKey; /***/ }), -/* 242 */ +/* 237 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25157,14 +24573,14 @@ module.exports.argument = escapeArgument; /***/ }), -/* 243 */ +/* 238 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(133); -const shebangCommand = __webpack_require__(244); +const shebangCommand = __webpack_require__(239); function readShebang(command) { // Read the first 150 bytes from the file @@ -25187,12 +24603,12 @@ module.exports = readShebang; /***/ }), -/* 244 */ +/* 239 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const shebangRegex = __webpack_require__(245); +const shebangRegex = __webpack_require__(240); module.exports = (string = '') => { const match = string.match(shebangRegex); @@ -25213,7 +24629,7 @@ module.exports = (string = '') => { /***/ }), -/* 245 */ +/* 240 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25222,7 +24638,7 @@ module.exports = /^#!(.*)/; /***/ }), -/* 246 */ +/* 241 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25288,7 +24704,7 @@ module.exports = { /***/ }), -/* 247 */ +/* 242 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25311,13 +24727,13 @@ module.exports = input => { /***/ }), -/* 248 */ +/* 243 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const pathKey = __webpack_require__(241); +const pathKey = __webpack_require__(236); const npmRunPath = options => { options = { @@ -25365,12 +24781,12 @@ module.exports.env = options => { /***/ }), -/* 249 */ +/* 244 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const mimicFn = __webpack_require__(250); +const mimicFn = __webpack_require__(245); const calledFunctions = new WeakMap(); @@ -25422,7 +24838,7 @@ module.exports.callCount = fn => { /***/ }), -/* 250 */ +/* 245 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25442,12 +24858,12 @@ module.exports.default = mimicFn; /***/ }), -/* 251 */ +/* 246 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const {signalsByName} = __webpack_require__(252); +const {signalsByName} = __webpack_require__(247); const getErrorPrefix = ({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled}) => { if (timedOut) { @@ -25535,14 +24951,14 @@ module.exports = makeError; /***/ }), -/* 252 */ +/* 247 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports,"__esModule",{value:true});exports.signalsByNumber=exports.signalsByName=void 0;var _os=__webpack_require__(120); -var _signals=__webpack_require__(253); -var _realtime=__webpack_require__(255); +var _signals=__webpack_require__(248); +var _realtime=__webpack_require__(250); @@ -25612,14 +25028,14 @@ const signalsByNumber=getSignalsByNumber();exports.signalsByNumber=signalsByNumb //# sourceMappingURL=main.js.map /***/ }), -/* 253 */ +/* 248 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports,"__esModule",{value:true});exports.getSignals=void 0;var _os=__webpack_require__(120); -var _core=__webpack_require__(254); -var _realtime=__webpack_require__(255); +var _core=__webpack_require__(249); +var _realtime=__webpack_require__(250); @@ -25653,7 +25069,7 @@ return{name,number,description,supported,action,forced,standard}; //# sourceMappingURL=signals.js.map /***/ }), -/* 254 */ +/* 249 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25932,7 +25348,7 @@ standard:"other"}];exports.SIGNALS=SIGNALS; //# sourceMappingURL=core.js.map /***/ }), -/* 255 */ +/* 250 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -25957,7 +25373,7 @@ const SIGRTMAX=64;exports.SIGRTMAX=SIGRTMAX; //# sourceMappingURL=realtime.js.map /***/ }), -/* 256 */ +/* 251 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26016,7 +25432,7 @@ module.exports.node = opts => { /***/ }), -/* 257 */ +/* 252 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26135,14 +25551,14 @@ module.exports = { /***/ }), -/* 258 */ +/* 253 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const isStream = __webpack_require__(259); -const getStream = __webpack_require__(260); -const mergeStream = __webpack_require__(264); +const isStream = __webpack_require__(254); +const getStream = __webpack_require__(255); +const mergeStream = __webpack_require__(259); // `input` option const handleInput = (spawned, input) => { @@ -26239,7 +25655,7 @@ module.exports = { /***/ }), -/* 259 */ +/* 254 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26275,13 +25691,13 @@ module.exports = isStream; /***/ }), -/* 260 */ +/* 255 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pump = __webpack_require__(261); -const bufferStream = __webpack_require__(263); +const pump = __webpack_require__(256); +const bufferStream = __webpack_require__(258); class MaxBufferError extends Error { constructor() { @@ -26340,11 +25756,11 @@ module.exports.MaxBufferError = MaxBufferError; /***/ }), -/* 261 */ +/* 256 */ /***/ (function(module, exports, __webpack_require__) { var once = __webpack_require__(161) -var eos = __webpack_require__(262) +var eos = __webpack_require__(257) var fs = __webpack_require__(133) // we only need fs to get the ReadStream and WriteStream prototypes var noop = function () {} @@ -26428,7 +25844,7 @@ module.exports = pump /***/ }), -/* 262 */ +/* 257 */ /***/ (function(module, exports, __webpack_require__) { var once = __webpack_require__(161); @@ -26528,7 +25944,7 @@ module.exports = eos; /***/ }), -/* 263 */ +/* 258 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26587,7 +26003,7 @@ module.exports = options => { /***/ }), -/* 264 */ +/* 259 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26635,7 +26051,7 @@ module.exports = function (/*streams...*/) { /***/ }), -/* 265 */ +/* 260 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26688,7 +26104,7 @@ module.exports = { /***/ }), -/* 266 */ +/* 261 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26733,7 +26149,7 @@ module.exports = { /***/ }), -/* 267 */ +/* 262 */ /***/ (function(module, exports, __webpack_require__) { // Copyright IBM Corp. 2014,2018. All Rights Reserved. @@ -26741,12 +26157,12 @@ module.exports = { // This file is licensed under the Apache License 2.0. // License text available at https://opensource.org/licenses/Apache-2.0 -module.exports = __webpack_require__(268); -module.exports.cli = __webpack_require__(272); +module.exports = __webpack_require__(263); +module.exports.cli = __webpack_require__(267); /***/ }), -/* 268 */ +/* 263 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26761,9 +26177,9 @@ var stream = __webpack_require__(137); var util = __webpack_require__(111); var fs = __webpack_require__(133); -var through = __webpack_require__(269); -var duplexer = __webpack_require__(270); -var StringDecoder = __webpack_require__(271).StringDecoder; +var through = __webpack_require__(264); +var duplexer = __webpack_require__(265); +var StringDecoder = __webpack_require__(266).StringDecoder; module.exports = Logger; @@ -26952,7 +26368,7 @@ function lineMerger(host) { /***/ }), -/* 269 */ +/* 264 */ /***/ (function(module, exports, __webpack_require__) { var Stream = __webpack_require__(137) @@ -27066,7 +26482,7 @@ function through (write, end, opts) { /***/ }), -/* 270 */ +/* 265 */ /***/ (function(module, exports, __webpack_require__) { var Stream = __webpack_require__(137) @@ -27159,13 +26575,13 @@ function duplex(writer, reader) { /***/ }), -/* 271 */ +/* 266 */ /***/ (function(module, exports) { module.exports = require("string_decoder"); /***/ }), -/* 272 */ +/* 267 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -27176,11 +26592,11 @@ module.exports = require("string_decoder"); -var minimist = __webpack_require__(273); +var minimist = __webpack_require__(268); var path = __webpack_require__(4); -var Logger = __webpack_require__(268); -var pkg = __webpack_require__(274); +var Logger = __webpack_require__(263); +var pkg = __webpack_require__(269); module.exports = cli; @@ -27234,7 +26650,7 @@ function usage($0, p) { /***/ }), -/* 273 */ +/* 268 */ /***/ (function(module, exports) { module.exports = function (args, opts) { @@ -27485,13 +26901,13 @@ function isNumber (x) { /***/ }), -/* 274 */ +/* 269 */ /***/ (function(module) { module.exports = JSON.parse("{\"name\":\"strong-log-transformer\",\"version\":\"2.1.0\",\"description\":\"Stream transformer that prefixes lines with timestamps and other things.\",\"author\":\"Ryan Graham <ryan@strongloop.com>\",\"license\":\"Apache-2.0\",\"repository\":{\"type\":\"git\",\"url\":\"git://github.com/strongloop/strong-log-transformer\"},\"keywords\":[\"logging\",\"streams\"],\"bugs\":{\"url\":\"https://github.com/strongloop/strong-log-transformer/issues\"},\"homepage\":\"https://github.com/strongloop/strong-log-transformer\",\"directories\":{\"test\":\"test\"},\"bin\":{\"sl-log-transformer\":\"bin/sl-log-transformer.js\"},\"main\":\"index.js\",\"scripts\":{\"test\":\"tap --100 test/test-*\"},\"dependencies\":{\"duplexer\":\"^0.1.1\",\"minimist\":\"^1.2.0\",\"through\":\"^2.3.4\"},\"devDependencies\":{\"tap\":\"^12.0.1\"},\"engines\":{\"node\":\">=4\"}}"); /***/ }), -/* 275 */ +/* 270 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -27504,7 +26920,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(111); /* harmony import */ var util__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(util__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(276); +/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(271); /* harmony import */ var _fs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(130); /* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(164); /* harmony import */ var _projects__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(145); @@ -27599,7 +27015,7 @@ function packagesFromGlobPattern({ } /***/ }), -/* 276 */ +/* 271 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -27669,7 +27085,7 @@ function getProjectPaths({ } /***/ }), -/* 277 */ +/* 272 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -27677,13 +27093,13 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAllChecksums", function() { return getAllChecksums; }); /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(133); /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(278); +/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(273); /* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(crypto__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(111); /* harmony import */ var util__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(util__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(232); +/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(227); /* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(execa__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _yarn_lock__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(279); +/* harmony import */ var _yarn_lock__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(274); /* * Licensed to Elasticsearch B.V. under one or more contributor * license agreements. See the NOTICE file distributed with @@ -27882,20 +27298,20 @@ async function getAllChecksums(kbn, log, yarnLock) { } /***/ }), -/* 278 */ +/* 273 */ /***/ (function(module, exports) { module.exports = require("crypto"); /***/ }), -/* 279 */ +/* 274 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "readYarnLock", function() { return readYarnLock; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveDepsForProject", function() { return resolveDepsForProject; }); -/* harmony import */ var _yarnpkg_lockfile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(280); +/* harmony import */ var _yarnpkg_lockfile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(275); /* harmony import */ var _yarnpkg_lockfile__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_yarnpkg_lockfile__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _utils_fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(130); /* @@ -28008,7 +27424,7 @@ function resolveDepsForProject({ } /***/ }), -/* 280 */ +/* 275 */ /***/ (function(module, exports, __webpack_require__) { module.exports = @@ -29567,7 +28983,7 @@ module.exports = invariant; /* 9 */ /***/ (function(module, exports) { -module.exports = __webpack_require__(278); +module.exports = __webpack_require__(273); /***/ }), /* 10 */, @@ -31891,7 +31307,7 @@ function onceStrict (fn) { /* 63 */ /***/ (function(module, exports) { -module.exports = __webpack_require__(281); +module.exports = __webpack_require__(276); /***/ }), /* 64 */, @@ -38286,13 +37702,13 @@ module.exports = process && support(supportLevel); /******/ ]); /***/ }), -/* 281 */ +/* 276 */ /***/ (function(module, exports) { module.exports = require("buffer"); /***/ }), -/* 282 */ +/* 277 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -38389,13 +37805,13 @@ class BootstrapCacheFile { } /***/ }), -/* 283 */ +/* 278 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateYarnLock", function() { return validateYarnLock; }); -/* harmony import */ var _yarnpkg_lockfile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(280); +/* harmony import */ var _yarnpkg_lockfile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(275); /* harmony import */ var _yarnpkg_lockfile__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_yarnpkg_lockfile__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var dedent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var dedent__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dedent__WEBPACK_IMPORTED_MODULE_1__); @@ -38490,21 +37906,73 @@ async function validateYarnLock(kbn, yarnLock) { `); process.exit(1); + } // TODO: remove this once we move into a single package.json + // look through all the package.json files to find packages which have mismatched version ranges + + + const depRanges = new Map(); + + for (const project of kbn.getAllProjects().values()) { + for (const [dep, range] of Object.entries(project.allDependencies)) { + const existingDep = depRanges.get(dep); + + if (!existingDep) { + depRanges.set(dep, [{ + range, + projects: [project] + }]); + continue; + } + + const existingRange = existingDep.find(existing => existing.range === range); + + if (!existingRange) { + existingDep.push({ + range, + projects: [project] + }); + continue; + } + + existingRange.projects.push(project); + } + } + + const duplicateRanges = Array.from(depRanges.entries()).filter(([, ranges]) => ranges.length > 1).reduce((acc, [dep, ranges]) => [...acc, dep, ...ranges.map(({ + range, + projects + }) => ` ${range} => ${projects.map(p => p.name).join(', ')}`)], []).join('\n '); + + if (duplicateRanges) { + _log__WEBPACK_IMPORTED_MODULE_3__["log"].error(dedent__WEBPACK_IMPORTED_MODULE_1___default.a` + + [single_version_dependencies] Multiple version ranges for the same dependency + were found declared across different package.json files. Please consolidate + those to match across all package.json files. Different versions for the + same dependency is not supported. + + If you have questions about this please reach out to the operations team. + + The conflicting dependencies are: + + ${duplicateRanges} + `); + process.exit(1); } _log__WEBPACK_IMPORTED_MODULE_3__["log"].success('yarn.lock analysis completed without any issues'); } /***/ }), -/* 284 */ +/* 279 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CleanCommand", function() { return CleanCommand; }); -/* harmony import */ var del__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(285); +/* harmony import */ var del__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(280); /* harmony import */ var del__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(del__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var ora__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(372); +/* harmony import */ var ora__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(367); /* harmony import */ var ora__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(ora__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__); @@ -38604,21 +38072,21 @@ const CleanCommand = { }; /***/ }), -/* 285 */ +/* 280 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const {promisify} = __webpack_require__(111); const path = __webpack_require__(4); -const globby = __webpack_require__(286); -const isGlob = __webpack_require__(364); -const slash = __webpack_require__(362); +const globby = __webpack_require__(281); +const isGlob = __webpack_require__(359); +const slash = __webpack_require__(357); const gracefulFs = __webpack_require__(132); -const isPathCwd = __webpack_require__(365); -const isPathInside = __webpack_require__(366); -const rimraf = __webpack_require__(367); -const pMap = __webpack_require__(368); +const isPathCwd = __webpack_require__(360); +const isPathInside = __webpack_require__(361); +const rimraf = __webpack_require__(362); +const pMap = __webpack_require__(363); const rimrafP = promisify(rimraf); @@ -38732,19 +38200,19 @@ module.exports.sync = (patterns, {force, dryRun, cwd = process.cwd(), ...options /***/ }), -/* 286 */ +/* 281 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(133); -const arrayUnion = __webpack_require__(287); -const merge2 = __webpack_require__(288); +const arrayUnion = __webpack_require__(282); +const merge2 = __webpack_require__(283); const glob = __webpack_require__(146); -const fastGlob = __webpack_require__(289); -const dirGlob = __webpack_require__(358); -const gitignore = __webpack_require__(360); -const {FilterStream, UniqueStream} = __webpack_require__(363); +const fastGlob = __webpack_require__(284); +const dirGlob = __webpack_require__(353); +const gitignore = __webpack_require__(355); +const {FilterStream, UniqueStream} = __webpack_require__(358); const DEFAULT_FILTER = () => false; @@ -38917,7 +38385,7 @@ module.exports.gitignore = gitignore; /***/ }), -/* 287 */ +/* 282 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -38929,7 +38397,7 @@ module.exports = (...arguments_) => { /***/ }), -/* 288 */ +/* 283 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39080,17 +38548,17 @@ function pauseStreams (streams, options) { /***/ }), -/* 289 */ +/* 284 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const taskManager = __webpack_require__(290); -const async_1 = __webpack_require__(319); -const stream_1 = __webpack_require__(354); -const sync_1 = __webpack_require__(355); -const settings_1 = __webpack_require__(357); -const utils = __webpack_require__(291); +const taskManager = __webpack_require__(285); +const async_1 = __webpack_require__(314); +const stream_1 = __webpack_require__(349); +const sync_1 = __webpack_require__(350); +const settings_1 = __webpack_require__(352); +const utils = __webpack_require__(286); async function FastGlob(source, options) { assertPatternsInput(source); const works = getWorks(source, async_1.default, options); @@ -39154,13 +38622,13 @@ module.exports = FastGlob; /***/ }), -/* 290 */ +/* 285 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(291); +const utils = __webpack_require__(286); function generate(patterns, settings) { const positivePatterns = getPositivePatterns(patterns); const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); @@ -39225,30 +38693,30 @@ exports.convertPatternGroupToTask = convertPatternGroupToTask; /***/ }), -/* 291 */ +/* 286 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const array = __webpack_require__(292); +const array = __webpack_require__(287); exports.array = array; -const errno = __webpack_require__(293); +const errno = __webpack_require__(288); exports.errno = errno; -const fs = __webpack_require__(294); +const fs = __webpack_require__(289); exports.fs = fs; -const path = __webpack_require__(295); +const path = __webpack_require__(290); exports.path = path; -const pattern = __webpack_require__(296); +const pattern = __webpack_require__(291); exports.pattern = pattern; -const stream = __webpack_require__(317); +const stream = __webpack_require__(312); exports.stream = stream; -const string = __webpack_require__(318); +const string = __webpack_require__(313); exports.string = string; /***/ }), -/* 292 */ +/* 287 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39276,7 +38744,7 @@ exports.splitWhen = splitWhen; /***/ }), -/* 293 */ +/* 288 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39289,7 +38757,7 @@ exports.isEnoentCodeError = isEnoentCodeError; /***/ }), -/* 294 */ +/* 289 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39314,7 +38782,7 @@ exports.createDirentFromStats = createDirentFromStats; /***/ }), -/* 295 */ +/* 290 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -39353,16 +38821,16 @@ exports.removeLeadingDotSegment = removeLeadingDotSegment; /***/ }), -/* 296 */ +/* 291 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); -const globParent = __webpack_require__(297); -const micromatch = __webpack_require__(300); -const picomatch = __webpack_require__(311); +const globParent = __webpack_require__(292); +const micromatch = __webpack_require__(295); +const picomatch = __webpack_require__(306); const GLOBSTAR = '**'; const ESCAPE_SYMBOL = '\\'; const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; @@ -39472,13 +38940,13 @@ exports.matchAny = matchAny; /***/ }), -/* 297 */ +/* 292 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isGlob = __webpack_require__(298); +var isGlob = __webpack_require__(293); var pathPosixDirname = __webpack_require__(4).posix.dirname; var isWin32 = __webpack_require__(120).platform() === 'win32'; @@ -39520,7 +38988,7 @@ module.exports = function globParent(str, opts) { /***/ }), -/* 298 */ +/* 293 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -39530,7 +38998,7 @@ module.exports = function globParent(str, opts) { * Released under the MIT License. */ -var isExtglob = __webpack_require__(299); +var isExtglob = __webpack_require__(294); var chars = { '{': '}', '(': ')', '[': ']'}; var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/; @@ -39574,7 +39042,7 @@ module.exports = function isGlob(str, options) { /***/ }), -/* 299 */ +/* 294 */ /***/ (function(module, exports) { /*! @@ -39600,16 +39068,16 @@ module.exports = function isExtglob(str) { /***/ }), -/* 300 */ +/* 295 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const util = __webpack_require__(111); -const braces = __webpack_require__(301); -const picomatch = __webpack_require__(311); -const utils = __webpack_require__(314); +const braces = __webpack_require__(296); +const picomatch = __webpack_require__(306); +const utils = __webpack_require__(309); const isEmptyString = val => typeof val === 'string' && (val === '' || val === './'); /** @@ -40074,16 +39542,16 @@ module.exports = micromatch; /***/ }), -/* 301 */ +/* 296 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const stringify = __webpack_require__(302); -const compile = __webpack_require__(304); -const expand = __webpack_require__(308); -const parse = __webpack_require__(309); +const stringify = __webpack_require__(297); +const compile = __webpack_require__(299); +const expand = __webpack_require__(303); +const parse = __webpack_require__(304); /** * Expand the given pattern or create a regex-compatible string. @@ -40251,13 +39719,13 @@ module.exports = braces; /***/ }), -/* 302 */ +/* 297 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const utils = __webpack_require__(303); +const utils = __webpack_require__(298); module.exports = (ast, options = {}) => { let stringify = (node, parent = {}) => { @@ -40290,7 +39758,7 @@ module.exports = (ast, options = {}) => { /***/ }), -/* 303 */ +/* 298 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40409,14 +39877,14 @@ exports.flatten = (...args) => { /***/ }), -/* 304 */ +/* 299 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const fill = __webpack_require__(305); -const utils = __webpack_require__(303); +const fill = __webpack_require__(300); +const utils = __webpack_require__(298); const compile = (ast, options = {}) => { let walk = (node, parent = {}) => { @@ -40473,7 +39941,7 @@ module.exports = compile; /***/ }), -/* 305 */ +/* 300 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40487,7 +39955,7 @@ module.exports = compile; const util = __webpack_require__(111); -const toRegexRange = __webpack_require__(306); +const toRegexRange = __webpack_require__(301); const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); @@ -40729,7 +40197,7 @@ module.exports = fill; /***/ }), -/* 306 */ +/* 301 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -40742,7 +40210,7 @@ module.exports = fill; -const isNumber = __webpack_require__(307); +const isNumber = __webpack_require__(302); const toRegexRange = (min, max, options) => { if (isNumber(min) === false) { @@ -41024,7 +40492,7 @@ module.exports = toRegexRange; /***/ }), -/* 307 */ +/* 302 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41049,15 +40517,15 @@ module.exports = function(num) { /***/ }), -/* 308 */ +/* 303 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const fill = __webpack_require__(305); -const stringify = __webpack_require__(302); -const utils = __webpack_require__(303); +const fill = __webpack_require__(300); +const stringify = __webpack_require__(297); +const utils = __webpack_require__(298); const append = (queue = '', stash = '', enclose = false) => { let result = []; @@ -41169,13 +40637,13 @@ module.exports = expand; /***/ }), -/* 309 */ +/* 304 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const stringify = __webpack_require__(302); +const stringify = __webpack_require__(297); /** * Constants @@ -41197,7 +40665,7 @@ const { CHAR_SINGLE_QUOTE, /* ' */ CHAR_NO_BREAK_SPACE, CHAR_ZERO_WIDTH_NOBREAK_SPACE -} = __webpack_require__(310); +} = __webpack_require__(305); /** * parse @@ -41509,7 +40977,7 @@ module.exports = parse; /***/ }), -/* 310 */ +/* 305 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -41573,27 +41041,27 @@ module.exports = { /***/ }), -/* 311 */ +/* 306 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -module.exports = __webpack_require__(312); +module.exports = __webpack_require__(307); /***/ }), -/* 312 */ +/* 307 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const scan = __webpack_require__(313); -const parse = __webpack_require__(316); -const utils = __webpack_require__(314); -const constants = __webpack_require__(315); +const scan = __webpack_require__(308); +const parse = __webpack_require__(311); +const utils = __webpack_require__(309); +const constants = __webpack_require__(310); const isObject = val => val && typeof val === 'object' && !Array.isArray(val); /** @@ -41929,13 +41397,13 @@ module.exports = picomatch; /***/ }), -/* 313 */ +/* 308 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const utils = __webpack_require__(314); +const utils = __webpack_require__(309); const { CHAR_ASTERISK, /* * */ CHAR_AT, /* @ */ @@ -41952,7 +41420,7 @@ const { CHAR_RIGHT_CURLY_BRACE, /* } */ CHAR_RIGHT_PARENTHESES, /* ) */ CHAR_RIGHT_SQUARE_BRACKET /* ] */ -} = __webpack_require__(315); +} = __webpack_require__(310); const isPathSeparator = code => { return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; @@ -42319,7 +41787,7 @@ module.exports = scan; /***/ }), -/* 314 */ +/* 309 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42332,7 +41800,7 @@ const { REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL -} = __webpack_require__(315); +} = __webpack_require__(310); exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); @@ -42390,7 +41858,7 @@ exports.wrapOutput = (input, state = {}, options = {}) => { /***/ }), -/* 315 */ +/* 310 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -42576,14 +42044,14 @@ module.exports = { /***/ }), -/* 316 */ +/* 311 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const constants = __webpack_require__(315); -const utils = __webpack_require__(314); +const constants = __webpack_require__(310); +const utils = __webpack_require__(309); /** * Constants @@ -43661,13 +43129,13 @@ module.exports = parse; /***/ }), -/* 317 */ +/* 312 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const merge2 = __webpack_require__(288); +const merge2 = __webpack_require__(283); function merge(streams) { const mergedStream = merge2(streams); streams.forEach((stream) => { @@ -43684,7 +43152,7 @@ function propagateCloseEventToSources(streams) { /***/ }), -/* 318 */ +/* 313 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43701,14 +43169,14 @@ exports.isEmpty = isEmpty; /***/ }), -/* 319 */ +/* 314 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const stream_1 = __webpack_require__(320); -const provider_1 = __webpack_require__(347); +const stream_1 = __webpack_require__(315); +const provider_1 = __webpack_require__(342); class ProviderAsync extends provider_1.default { constructor() { super(...arguments); @@ -43736,16 +43204,16 @@ exports.default = ProviderAsync; /***/ }), -/* 320 */ +/* 315 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const stream_1 = __webpack_require__(137); -const fsStat = __webpack_require__(321); -const fsWalk = __webpack_require__(326); -const reader_1 = __webpack_require__(346); +const fsStat = __webpack_require__(316); +const fsWalk = __webpack_require__(321); +const reader_1 = __webpack_require__(341); class ReaderStream extends reader_1.default { constructor() { super(...arguments); @@ -43798,15 +43266,15 @@ exports.default = ReaderStream; /***/ }), -/* 321 */ +/* 316 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const async = __webpack_require__(322); -const sync = __webpack_require__(323); -const settings_1 = __webpack_require__(324); +const async = __webpack_require__(317); +const sync = __webpack_require__(318); +const settings_1 = __webpack_require__(319); exports.Settings = settings_1.default; function stat(path, optionsOrSettingsOrCallback, callback) { if (typeof optionsOrSettingsOrCallback === 'function') { @@ -43829,7 +43297,7 @@ function getSettings(settingsOrOptions = {}) { /***/ }), -/* 322 */ +/* 317 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43867,7 +43335,7 @@ function callSuccessCallback(callback, result) { /***/ }), -/* 323 */ +/* 318 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43896,13 +43364,13 @@ exports.read = read; /***/ }), -/* 324 */ +/* 319 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fs = __webpack_require__(325); +const fs = __webpack_require__(320); class Settings { constructor(_options = {}) { this._options = _options; @@ -43919,7 +43387,7 @@ exports.default = Settings; /***/ }), -/* 325 */ +/* 320 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43942,16 +43410,16 @@ exports.createFileSystemAdapter = createFileSystemAdapter; /***/ }), -/* 326 */ +/* 321 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const async_1 = __webpack_require__(327); -const stream_1 = __webpack_require__(342); -const sync_1 = __webpack_require__(343); -const settings_1 = __webpack_require__(345); +const async_1 = __webpack_require__(322); +const stream_1 = __webpack_require__(337); +const sync_1 = __webpack_require__(338); +const settings_1 = __webpack_require__(340); exports.Settings = settings_1.default; function walk(directory, optionsOrSettingsOrCallback, callback) { if (typeof optionsOrSettingsOrCallback === 'function') { @@ -43981,13 +43449,13 @@ function getSettings(settingsOrOptions = {}) { /***/ }), -/* 327 */ +/* 322 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const async_1 = __webpack_require__(328); +const async_1 = __webpack_require__(323); class AsyncProvider { constructor(_root, _settings) { this._root = _root; @@ -44018,17 +43486,17 @@ function callSuccessCallback(callback, entries) { /***/ }), -/* 328 */ +/* 323 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const events_1 = __webpack_require__(155); -const fsScandir = __webpack_require__(329); -const fastq = __webpack_require__(338); -const common = __webpack_require__(340); -const reader_1 = __webpack_require__(341); +const fsScandir = __webpack_require__(324); +const fastq = __webpack_require__(333); +const common = __webpack_require__(335); +const reader_1 = __webpack_require__(336); class AsyncReader extends reader_1.default { constructor(_root, _settings) { super(_root, _settings); @@ -44118,15 +43586,15 @@ exports.default = AsyncReader; /***/ }), -/* 329 */ +/* 324 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const async = __webpack_require__(330); -const sync = __webpack_require__(335); -const settings_1 = __webpack_require__(336); +const async = __webpack_require__(325); +const sync = __webpack_require__(330); +const settings_1 = __webpack_require__(331); exports.Settings = settings_1.default; function scandir(path, optionsOrSettingsOrCallback, callback) { if (typeof optionsOrSettingsOrCallback === 'function') { @@ -44149,16 +43617,16 @@ function getSettings(settingsOrOptions = {}) { /***/ }), -/* 330 */ +/* 325 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fsStat = __webpack_require__(321); -const rpl = __webpack_require__(331); -const constants_1 = __webpack_require__(332); -const utils = __webpack_require__(333); +const fsStat = __webpack_require__(316); +const rpl = __webpack_require__(326); +const constants_1 = __webpack_require__(327); +const utils = __webpack_require__(328); function read(directory, settings, callback) { if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { return readdirWithFileTypes(directory, settings, callback); @@ -44246,7 +43714,7 @@ function callSuccessCallback(callback, result) { /***/ }), -/* 331 */ +/* 326 */ /***/ (function(module, exports) { module.exports = runParallel @@ -44300,7 +43768,7 @@ function runParallel (tasks, cb) { /***/ }), -/* 332 */ +/* 327 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44320,18 +43788,18 @@ exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_B /***/ }), -/* 333 */ +/* 328 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fs = __webpack_require__(334); +const fs = __webpack_require__(329); exports.fs = fs; /***/ }), -/* 334 */ +/* 329 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44356,15 +43824,15 @@ exports.createDirentFromStats = createDirentFromStats; /***/ }), -/* 335 */ +/* 330 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fsStat = __webpack_require__(321); -const constants_1 = __webpack_require__(332); -const utils = __webpack_require__(333); +const fsStat = __webpack_require__(316); +const constants_1 = __webpack_require__(327); +const utils = __webpack_require__(328); function read(directory, settings) { if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { return readdirWithFileTypes(directory, settings); @@ -44415,15 +43883,15 @@ exports.readdir = readdir; /***/ }), -/* 336 */ +/* 331 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); -const fsStat = __webpack_require__(321); -const fs = __webpack_require__(337); +const fsStat = __webpack_require__(316); +const fs = __webpack_require__(332); class Settings { constructor(_options = {}) { this._options = _options; @@ -44446,7 +43914,7 @@ exports.default = Settings; /***/ }), -/* 337 */ +/* 332 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44471,13 +43939,13 @@ exports.createFileSystemAdapter = createFileSystemAdapter; /***/ }), -/* 338 */ +/* 333 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var reusify = __webpack_require__(339) +var reusify = __webpack_require__(334) function fastqueue (context, worker, concurrency) { if (typeof context === 'function') { @@ -44651,7 +44119,7 @@ module.exports = fastqueue /***/ }), -/* 339 */ +/* 334 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44691,7 +44159,7 @@ module.exports = reusify /***/ }), -/* 340 */ +/* 335 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44722,13 +44190,13 @@ exports.joinPathSegments = joinPathSegments; /***/ }), -/* 341 */ +/* 336 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const common = __webpack_require__(340); +const common = __webpack_require__(335); class Reader { constructor(_root, _settings) { this._root = _root; @@ -44740,14 +44208,14 @@ exports.default = Reader; /***/ }), -/* 342 */ +/* 337 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const stream_1 = __webpack_require__(137); -const async_1 = __webpack_require__(328); +const async_1 = __webpack_require__(323); class StreamProvider { constructor(_root, _settings) { this._root = _root; @@ -44777,13 +44245,13 @@ exports.default = StreamProvider; /***/ }), -/* 343 */ +/* 338 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const sync_1 = __webpack_require__(344); +const sync_1 = __webpack_require__(339); class SyncProvider { constructor(_root, _settings) { this._root = _root; @@ -44798,15 +44266,15 @@ exports.default = SyncProvider; /***/ }), -/* 344 */ +/* 339 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fsScandir = __webpack_require__(329); -const common = __webpack_require__(340); -const reader_1 = __webpack_require__(341); +const fsScandir = __webpack_require__(324); +const common = __webpack_require__(335); +const reader_1 = __webpack_require__(336); class SyncReader extends reader_1.default { constructor() { super(...arguments); @@ -44864,14 +44332,14 @@ exports.default = SyncReader; /***/ }), -/* 345 */ +/* 340 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); -const fsScandir = __webpack_require__(329); +const fsScandir = __webpack_require__(324); class Settings { constructor(_options = {}) { this._options = _options; @@ -44897,15 +44365,15 @@ exports.default = Settings; /***/ }), -/* 346 */ +/* 341 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); -const fsStat = __webpack_require__(321); -const utils = __webpack_require__(291); +const fsStat = __webpack_require__(316); +const utils = __webpack_require__(286); class Reader { constructor(_settings) { this._settings = _settings; @@ -44937,17 +44405,17 @@ exports.default = Reader; /***/ }), -/* 347 */ +/* 342 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); -const deep_1 = __webpack_require__(348); -const entry_1 = __webpack_require__(351); -const error_1 = __webpack_require__(352); -const entry_2 = __webpack_require__(353); +const deep_1 = __webpack_require__(343); +const entry_1 = __webpack_require__(346); +const error_1 = __webpack_require__(347); +const entry_2 = __webpack_require__(348); class Provider { constructor(_settings) { this._settings = _settings; @@ -44992,14 +44460,14 @@ exports.default = Provider; /***/ }), -/* 348 */ +/* 343 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(291); -const partial_1 = __webpack_require__(349); +const utils = __webpack_require__(286); +const partial_1 = __webpack_require__(344); class DeepFilter { constructor(_settings, _micromatchOptions) { this._settings = _settings; @@ -45053,13 +44521,13 @@ exports.default = DeepFilter; /***/ }), -/* 349 */ +/* 344 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const matcher_1 = __webpack_require__(350); +const matcher_1 = __webpack_require__(345); class PartialMatcher extends matcher_1.default { match(filepath) { const parts = filepath.split('/'); @@ -45098,13 +44566,13 @@ exports.default = PartialMatcher; /***/ }), -/* 350 */ +/* 345 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(291); +const utils = __webpack_require__(286); class Matcher { constructor(_patterns, _settings, _micromatchOptions) { this._patterns = _patterns; @@ -45155,13 +44623,13 @@ exports.default = Matcher; /***/ }), -/* 351 */ +/* 346 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(291); +const utils = __webpack_require__(286); class EntryFilter { constructor(_settings, _micromatchOptions) { this._settings = _settings; @@ -45217,13 +44685,13 @@ exports.default = EntryFilter; /***/ }), -/* 352 */ +/* 347 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(291); +const utils = __webpack_require__(286); class ErrorFilter { constructor(_settings) { this._settings = _settings; @@ -45239,13 +44707,13 @@ exports.default = ErrorFilter; /***/ }), -/* 353 */ +/* 348 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(291); +const utils = __webpack_require__(286); class EntryTransformer { constructor(_settings) { this._settings = _settings; @@ -45272,15 +44740,15 @@ exports.default = EntryTransformer; /***/ }), -/* 354 */ +/* 349 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const stream_1 = __webpack_require__(137); -const stream_2 = __webpack_require__(320); -const provider_1 = __webpack_require__(347); +const stream_2 = __webpack_require__(315); +const provider_1 = __webpack_require__(342); class ProviderStream extends provider_1.default { constructor() { super(...arguments); @@ -45310,14 +44778,14 @@ exports.default = ProviderStream; /***/ }), -/* 355 */ +/* 350 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const sync_1 = __webpack_require__(356); -const provider_1 = __webpack_require__(347); +const sync_1 = __webpack_require__(351); +const provider_1 = __webpack_require__(342); class ProviderSync extends provider_1.default { constructor() { super(...arguments); @@ -45340,15 +44808,15 @@ exports.default = ProviderSync; /***/ }), -/* 356 */ +/* 351 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fsStat = __webpack_require__(321); -const fsWalk = __webpack_require__(326); -const reader_1 = __webpack_require__(346); +const fsStat = __webpack_require__(316); +const fsWalk = __webpack_require__(321); +const reader_1 = __webpack_require__(341); class ReaderSync extends reader_1.default { constructor() { super(...arguments); @@ -45390,7 +44858,7 @@ exports.default = ReaderSync; /***/ }), -/* 357 */ +/* 352 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45449,13 +44917,13 @@ exports.default = Settings; /***/ }), -/* 358 */ +/* 353 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const pathType = __webpack_require__(359); +const pathType = __webpack_require__(354); const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; @@ -45531,7 +44999,7 @@ module.exports.sync = (input, options) => { /***/ }), -/* 359 */ +/* 354 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45581,7 +45049,7 @@ exports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink'); /***/ }), -/* 360 */ +/* 355 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45589,9 +45057,9 @@ exports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink'); const {promisify} = __webpack_require__(111); const fs = __webpack_require__(133); const path = __webpack_require__(4); -const fastGlob = __webpack_require__(289); -const gitIgnore = __webpack_require__(361); -const slash = __webpack_require__(362); +const fastGlob = __webpack_require__(284); +const gitIgnore = __webpack_require__(356); +const slash = __webpack_require__(357); const DEFAULT_IGNORE = [ '**/node_modules/**', @@ -45705,7 +45173,7 @@ module.exports.sync = options => { /***/ }), -/* 361 */ +/* 356 */ /***/ (function(module, exports) { // A simple implementation of make-array @@ -46308,7 +45776,7 @@ if ( /***/ }), -/* 362 */ +/* 357 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46326,7 +45794,7 @@ module.exports = path => { /***/ }), -/* 363 */ +/* 358 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46379,7 +45847,7 @@ module.exports = { /***/ }), -/* 364 */ +/* 359 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -46389,7 +45857,7 @@ module.exports = { * Released under the MIT License. */ -var isExtglob = __webpack_require__(299); +var isExtglob = __webpack_require__(294); var chars = { '{': '}', '(': ')', '[': ']'}; var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/; @@ -46433,7 +45901,7 @@ module.exports = function isGlob(str, options) { /***/ }), -/* 365 */ +/* 360 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46455,7 +45923,7 @@ module.exports = path_ => { /***/ }), -/* 366 */ +/* 361 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46483,7 +45951,7 @@ module.exports = (childPath, parentPath) => { /***/ }), -/* 367 */ +/* 362 */ /***/ (function(module, exports, __webpack_require__) { const assert = __webpack_require__(139) @@ -46849,12 +46317,12 @@ rimraf.sync = rimrafSync /***/ }), -/* 368 */ +/* 363 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const AggregateError = __webpack_require__(369); +const AggregateError = __webpack_require__(364); module.exports = async ( iterable, @@ -46937,13 +46405,13 @@ module.exports = async ( /***/ }), -/* 369 */ +/* 364 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const indentString = __webpack_require__(370); -const cleanStack = __webpack_require__(371); +const indentString = __webpack_require__(365); +const cleanStack = __webpack_require__(366); const cleanInternalStack = stack => stack.replace(/\s+at .*aggregate-error\/index.js:\d+:\d+\)?/g, ''); @@ -46991,7 +46459,7 @@ module.exports = AggregateError; /***/ }), -/* 370 */ +/* 365 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47033,7 +46501,7 @@ module.exports = (string, count = 1, options) => { /***/ }), -/* 371 */ +/* 366 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47080,47 +46548,221 @@ module.exports = (stack, options) => { /***/ }), -/* 372 */ +/* 367 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const chalk = __webpack_require__(373); -const cliCursor = __webpack_require__(378); -const cliSpinners = __webpack_require__(382); -const logSymbols = __webpack_require__(384); +const readline = __webpack_require__(368); +const chalk = __webpack_require__(369); +const cliCursor = __webpack_require__(374); +const cliSpinners = __webpack_require__(376); +const logSymbols = __webpack_require__(378); +const stripAnsi = __webpack_require__(384); +const wcwidth = __webpack_require__(386); +const isInteractive = __webpack_require__(390); +const MuteStream = __webpack_require__(391); + +const TEXT = Symbol('text'); +const PREFIX_TEXT = Symbol('prefixText'); + +const ASCII_ETX_CODE = 0x03; // Ctrl+C emits this code + +class StdinDiscarder { + constructor() { + this.requests = 0; + + this.mutedStream = new MuteStream(); + this.mutedStream.pipe(process.stdout); + this.mutedStream.mute(); + + const self = this; + this.ourEmit = function (event, data, ...args) { + const {stdin} = process; + if (self.requests > 0 || stdin.emit === self.ourEmit) { + if (event === 'keypress') { // Fixes readline behavior + return; + } + + if (event === 'data' && data.includes(ASCII_ETX_CODE)) { + process.emit('SIGINT'); + } + + Reflect.apply(self.oldEmit, this, [event, data, ...args]); + } else { + Reflect.apply(process.stdin.emit, this, [event, data, ...args]); + } + }; + } + + start() { + this.requests++; + + if (this.requests === 1) { + this.realStart(); + } + } + + stop() { + if (this.requests <= 0) { + throw new Error('`stop` called more times than `start`'); + } + + this.requests--; + + if (this.requests === 0) { + this.realStop(); + } + } + + realStart() { + // No known way to make it work reliably on Windows + if (process.platform === 'win32') { + return; + } + + this.rl = readline.createInterface({ + input: process.stdin, + output: this.mutedStream + }); + + this.rl.on('SIGINT', () => { + if (process.listenerCount('SIGINT') === 0) { + process.emit('SIGINT'); + } else { + this.rl.close(); + process.kill(process.pid, 'SIGINT'); + } + }); + } + + realStop() { + if (process.platform === 'win32') { + return; + } + + this.rl.close(); + this.rl = undefined; + } +} + +let stdinDiscarder; class Ora { constructor(options) { + if (!stdinDiscarder) { + stdinDiscarder = new StdinDiscarder(); + } + if (typeof options === 'string') { options = { text: options }; } - this.options = Object.assign({ + this.options = { text: '', color: 'cyan', - stream: process.stderr - }, options); - - const sp = this.options.spinner; - this.spinner = typeof sp === 'object' ? sp : (process.platform === 'win32' ? cliSpinners.line : (cliSpinners[sp] || cliSpinners.dots)); // eslint-disable-line no-nested-ternary + stream: process.stderr, + discardStdin: true, + ...options + }; - if (this.spinner.frames === undefined) { - throw new Error('Spinner must define `frames`'); - } + this.spinner = this.options.spinner; - this.text = this.options.text; this.color = this.options.color; + this.hideCursor = this.options.hideCursor !== false; this.interval = this.options.interval || this.spinner.interval || 100; this.stream = this.options.stream; - this.id = null; + this.id = undefined; + this.isEnabled = typeof this.options.isEnabled === 'boolean' ? this.options.isEnabled : isInteractive({stream: this.stream}); + + // Set *after* `this.stream` + this.text = this.options.text; + this.prefixText = this.options.prefixText; + this.linesToClear = 0; + this.indent = this.options.indent; + this.discardStdin = this.options.discardStdin; + this.isDiscardingStdin = false; + } + + get indent() { + return this._indent; + } + + set indent(indent = 0) { + if (!(indent >= 0 && Number.isInteger(indent))) { + throw new Error('The `indent` option must be an integer from 0 and up'); + } + + this._indent = indent; + } + + _updateInterval(interval) { + if (interval !== undefined) { + this.interval = interval; + } + } + + get spinner() { + return this._spinner; + } + + set spinner(spinner) { this.frameIndex = 0; - this.enabled = typeof this.options.enabled === 'boolean' ? this.options.enabled : ((this.stream && this.stream.isTTY) && !process.env.CI); + + if (typeof spinner === 'object') { + if (spinner.frames === undefined) { + throw new Error('The given spinner must have a `frames` property'); + } + + this._spinner = spinner; + } else if (process.platform === 'win32') { + this._spinner = cliSpinners.line; + } else if (spinner === undefined) { + // Set default spinner + this._spinner = cliSpinners.dots; + } else if (cliSpinners[spinner]) { + this._spinner = cliSpinners[spinner]; + } else { + throw new Error(`There is no built-in spinner named '${spinner}'. See https://github.com/sindresorhus/cli-spinners/blob/master/spinners.json for a full list.`); + } + + this._updateInterval(this._spinner.interval); + } + + get text() { + return this[TEXT]; + } + + get prefixText() { + return this[PREFIX_TEXT]; + } + + get isSpinning() { + return this.id !== undefined; } + + updateLineCount() { + const columns = this.stream.columns || 80; + const fullPrefixText = (typeof this[PREFIX_TEXT] === 'string') ? this[PREFIX_TEXT] + '-' : ''; + this.lineCount = stripAnsi(fullPrefixText + '--' + this[TEXT]).split('\n').reduce((count, line) => { + return count + Math.max(1, Math.ceil(wcwidth(line) / columns)); + }, 0); + } + + set text(value) { + this[TEXT] = value; + this.updateLineCount(); + } + + set prefixText(value) { + this[PREFIX_TEXT] = value; + this.updateLineCount(); + } + frame() { - const frames = this.spinner.frames; + const {frames} = this.spinner; let frame = frames[this.frameIndex]; if (this.color) { @@ -47128,92 +46770,129 @@ class Ora { } this.frameIndex = ++this.frameIndex % frames.length; + const fullPrefixText = (typeof this.prefixText === 'string' && this.prefixText !== '') ? this.prefixText + ' ' : ''; + const fullText = typeof this.text === 'string' ? ' ' + this.text : ''; - return frame + ' ' + this.text; + return fullPrefixText + frame + fullText; } + clear() { - if (!this.enabled) { + if (!this.isEnabled || !this.stream.isTTY) { return this; } - this.stream.clearLine(); - this.stream.cursorTo(0); + for (let i = 0; i < this.linesToClear; i++) { + if (i > 0) { + this.stream.moveCursor(0, -1); + } + + this.stream.clearLine(); + this.stream.cursorTo(this.indent); + } + + this.linesToClear = 0; return this; } + render() { this.clear(); this.stream.write(this.frame()); + this.linesToClear = this.lineCount; return this; } + start(text) { if (text) { this.text = text; } - if (!this.enabled || this.id) { + if (!this.isEnabled) { + if (this.text) { + this.stream.write(`- ${this.text}\n`); + } + + return this; + } + + if (this.isSpinning) { return this; } - cliCursor.hide(this.stream); + if (this.hideCursor) { + cliCursor.hide(this.stream); + } + + if (this.discardStdin && process.stdin.isTTY) { + this.isDiscardingStdin = true; + stdinDiscarder.start(); + } + this.render(); this.id = setInterval(this.render.bind(this), this.interval); return this; } + stop() { - if (!this.enabled) { + if (!this.isEnabled) { return this; } clearInterval(this.id); - this.id = null; + this.id = undefined; this.frameIndex = 0; this.clear(); - cliCursor.show(this.stream); + if (this.hideCursor) { + cliCursor.show(this.stream); + } + + if (this.discardStdin && process.stdin.isTTY && this.isDiscardingStdin) { + stdinDiscarder.stop(); + this.isDiscardingStdin = false; + } return this; } + succeed(text) { return this.stopAndPersist({symbol: logSymbols.success, text}); } + fail(text) { return this.stopAndPersist({symbol: logSymbols.error, text}); } + warn(text) { return this.stopAndPersist({symbol: logSymbols.warning, text}); } - info(text) { - return this.stopAndPersist({symbol: logSymbols.info, text}); - } - stopAndPersist(options) { - if (!this.enabled) { - return this; - } - // Legacy argument - // TODO: Deprecate sometime in the future - if (typeof options === 'string') { - options = { - symbol: options - }; - } + info(text) { + return this.stopAndPersist({symbol: logSymbols.info, text}); + } - options = options || {}; + stopAndPersist(options = {}) { + const prefixText = options.prefixText || this.prefixText; + const fullPrefixText = (typeof prefixText === 'string' && prefixText !== '') ? prefixText + ' ' : ''; + const text = options.text || this.text; + const fullText = (typeof text === 'string') ? ' ' + text : ''; this.stop(); - this.stream.write(`${options.symbol || ' '} ${options.text || this.text}\n`); + this.stream.write(`${fullPrefixText}${options.symbol || ' '}${fullText}\n`); return this; } } -module.exports = function (opts) { - return new Ora(opts); +const oraFactory = function (options) { + return new Ora(options); }; +module.exports = oraFactory; + module.exports.promise = (action, options) => { + // eslint-disable-next-line promise/prefer-await-to-then if (typeof action.then !== 'function') { throw new TypeError('Parameter `action` must be a Promise'); } @@ -47221,451 +46900,298 @@ module.exports.promise = (action, options) => { const spinner = new Ora(options); spinner.start(); - action.then( - () => { + (async () => { + try { + await action; spinner.succeed(); - }, - () => { + } catch (_) { spinner.fail(); } - ); + })(); return spinner; }; /***/ }), -/* 373 */ -/***/ (function(module, exports, __webpack_require__) { +/* 368 */ +/***/ (function(module, exports) { -"use strict"; +module.exports = require("readline"); -const escapeStringRegexp = __webpack_require__(178); -const ansiStyles = __webpack_require__(374); -const stdoutColor = __webpack_require__(375).stdout; +/***/ }), +/* 369 */ +/***/ (function(module, exports, __webpack_require__) { -const template = __webpack_require__(377); +"use strict"; -const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); +const ansiStyles = __webpack_require__(113); +const {stdout: stdoutColor, stderr: stderrColor} = __webpack_require__(370); +const { + stringReplaceAll, + stringEncaseCRLFWithFirstIndex +} = __webpack_require__(372); // `supportsColor.level` → `ansiStyles.color[name]` mapping -const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; - -// `color-convert` models to exclude from the Chalk API due to conflicts and such -const skipModels = new Set(['gray']); +const levelMapping = [ + 'ansi', + 'ansi', + 'ansi256', + 'ansi16m' +]; const styles = Object.create(null); -function applyOptions(obj, options) { - options = options || {}; +const applyOptions = (object, options = {}) => { + if (options.level > 3 || options.level < 0) { + throw new Error('The `level` option should be an integer from 0 to 3'); + } // Detect level if not set manually - const scLevel = stdoutColor ? stdoutColor.level : 0; - obj.level = options.level === undefined ? scLevel : options.level; - obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0; + const colorLevel = stdoutColor ? stdoutColor.level : 0; + object.level = options.level === undefined ? colorLevel : options.level; +}; + +class ChalkClass { + constructor(options) { + return chalkFactory(options); + } } -function Chalk(options) { - // We check for this.template here since calling `chalk.constructor()` - // by itself will have a `this` of a previously constructed chalk object - if (!this || !(this instanceof Chalk) || this.template) { - const chalk = {}; - applyOptions(chalk, options); +const chalkFactory = options => { + const chalk = {}; + applyOptions(chalk, options); - chalk.template = function () { - const args = [].slice.call(arguments); - return chalkTag.apply(null, [chalk.template].concat(args)); - }; + chalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_); - Object.setPrototypeOf(chalk, Chalk.prototype); - Object.setPrototypeOf(chalk.template, chalk); + Object.setPrototypeOf(chalk, Chalk.prototype); + Object.setPrototypeOf(chalk.template, chalk); - chalk.template.constructor = Chalk; + chalk.template.constructor = () => { + throw new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.'); + }; - return chalk.template; - } + chalk.template.Instance = ChalkClass; - applyOptions(this, options); -} + return chalk.template; +}; -// Use bright blue on Windows as the normal blue color is illegible -if (isSimpleWindowsTerm) { - ansiStyles.blue.open = '\u001B[94m'; +function Chalk(options) { + return chalkFactory(options); } -for (const key of Object.keys(ansiStyles)) { - ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); - - styles[key] = { +for (const [styleName, style] of Object.entries(ansiStyles)) { + styles[styleName] = { get() { - const codes = ansiStyles[key]; - return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); + const builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty); + Object.defineProperty(this, styleName, {value: builder}); + return builder; } }; } styles.visible = { get() { - return build.call(this, this._styles || [], true, 'visible'); + const builder = createBuilder(this, this._styler, true); + Object.defineProperty(this, 'visible', {value: builder}); + return builder; } }; -ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g'); -for (const model of Object.keys(ansiStyles.color.ansi)) { - if (skipModels.has(model)) { - continue; - } +const usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256']; +for (const model of usedModels) { styles[model] = { get() { - const level = this.level; - return function () { - const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments); - const codes = { - open, - close: ansiStyles.color.close, - closeRe: ansiStyles.color.closeRe - }; - return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + const {level} = this; + return function (...arguments_) { + const styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler); + return createBuilder(this, styler, this._isEmpty); }; } }; } -ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g'); -for (const model of Object.keys(ansiStyles.bgColor.ansi)) { - if (skipModels.has(model)) { - continue; - } - +for (const model of usedModels) { const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); styles[bgModel] = { get() { - const level = this.level; - return function () { - const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments); - const codes = { - open, - close: ansiStyles.bgColor.close, - closeRe: ansiStyles.bgColor.closeRe - }; - return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + const {level} = this; + return function (...arguments_) { + const styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler); + return createBuilder(this, styler, this._isEmpty); }; } }; } -const proto = Object.defineProperties(() => {}, styles); - -function build(_styles, _empty, key) { - const builder = function () { - return applyStyle.apply(builder, arguments); - }; - - builder._styles = _styles; - builder._empty = _empty; - - const self = this; - - Object.defineProperty(builder, 'level', { +const proto = Object.defineProperties(() => {}, { + ...styles, + level: { enumerable: true, get() { - return self.level; + return this._generator.level; }, set(level) { - self.level = level; + this._generator.level = level; } - }); + } +}); - Object.defineProperty(builder, 'enabled', { - enumerable: true, - get() { - return self.enabled; - }, - set(enabled) { - self.enabled = enabled; - } - }); +const createStyler = (open, close, parent) => { + let openAll; + let closeAll; + if (parent === undefined) { + openAll = open; + closeAll = close; + } else { + openAll = parent.openAll + open; + closeAll = close + parent.closeAll; + } - // See below for fix regarding invisible grey/dim combination on Windows - builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey'; + return { + open, + close, + openAll, + closeAll, + parent + }; +}; + +const createBuilder = (self, _styler, _isEmpty) => { + const builder = (...arguments_) => { + // Single argument is hot path, implicit coercion is faster than anything + // eslint-disable-next-line no-implicit-coercion + return applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' ')); + }; // `__proto__` is used because we must return a function, but there is // no way to create a function with a different prototype builder.__proto__ = proto; // eslint-disable-line no-proto - return builder; -} + builder._generator = self; + builder._styler = _styler; + builder._isEmpty = _isEmpty; -function applyStyle() { - // Support varags, but simply cast to string in case there's only one arg - const args = arguments; - const argsLen = args.length; - let str = String(arguments[0]); + return builder; +}; - if (argsLen === 0) { - return ''; +const applyStyle = (self, string) => { + if (self.level <= 0 || !string) { + return self._isEmpty ? '' : string; } - if (argsLen > 1) { - // Don't slice `arguments`, it prevents V8 optimizations - for (let a = 1; a < argsLen; a++) { - str += ' ' + args[a]; - } - } + let styler = self._styler; - if (!this.enabled || this.level <= 0 || !str) { - return this._empty ? '' : str; + if (styler === undefined) { + return string; } - // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe, - // see https://github.com/chalk/chalk/issues/58 - // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop. - const originalDim = ansiStyles.dim.open; - if (isSimpleWindowsTerm && this.hasGrey) { - ansiStyles.dim.open = ''; - } + const {openAll, closeAll} = styler; + if (string.indexOf('\u001B') !== -1) { + while (styler !== undefined) { + // Replace any instances already present with a re-opening code + // otherwise only the part of the string until said closing code + // will be colored, and the rest will simply be 'plain'. + string = stringReplaceAll(string, styler.close, styler.open); - for (const code of this._styles.slice().reverse()) { - // Replace any instances already present with a re-opening code - // otherwise only the part of the string until said closing code - // will be colored, and the rest will simply be 'plain'. - str = code.open + str.replace(code.closeRe, code.open) + code.close; + styler = styler.parent; + } + } - // Close the styling before a linebreak and reopen - // after next line to fix a bleed issue on macOS - // https://github.com/chalk/chalk/pull/92 - str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`); + // We can move both next actions out of loop, because remaining actions in loop won't have + // any/visible effect on parts we add here. Close the styling before a linebreak and reopen + // after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92 + const lfIndex = string.indexOf('\n'); + if (lfIndex !== -1) { + string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex); } - // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue - ansiStyles.dim.open = originalDim; + return openAll + string + closeAll; +}; - return str; -} +let template; +const chalkTag = (chalk, ...strings) => { + const [firstString] = strings; -function chalkTag(chalk, strings) { - if (!Array.isArray(strings)) { + if (!Array.isArray(firstString)) { // If chalk() was called by itself or with a string, // return the string itself as a string. - return [].slice.call(arguments, 1).join(' '); + return strings.join(' '); } - const args = [].slice.call(arguments, 2); - const parts = [strings.raw[0]]; + const arguments_ = strings.slice(1); + const parts = [firstString.raw[0]]; - for (let i = 1; i < strings.length; i++) { - parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&')); - parts.push(String(strings.raw[i])); + for (let i = 1; i < firstString.length; i++) { + parts.push( + String(arguments_[i - 1]).replace(/[{}\\]/g, '\\$&'), + String(firstString.raw[i]) + ); + } + + if (template === undefined) { + template = __webpack_require__(373); } return template(chalk, parts.join('')); -} +}; Object.defineProperties(Chalk.prototype, styles); -module.exports = Chalk(); // eslint-disable-line new-cap -module.exports.supportsColor = stdoutColor; -module.exports.default = module.exports; // For TypeScript - - -/***/ }), -/* 374 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(module) { -const colorConvert = __webpack_require__(180); - -const wrapAnsi16 = (fn, offset) => function () { - const code = fn.apply(colorConvert, arguments); - return `\u001B[${code + offset}m`; -}; - -const wrapAnsi256 = (fn, offset) => function () { - const code = fn.apply(colorConvert, arguments); - return `\u001B[${38 + offset};5;${code}m`; -}; +const chalk = Chalk(); // eslint-disable-line new-cap +chalk.supportsColor = stdoutColor; +chalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap +chalk.stderr.supportsColor = stderrColor; -const wrapAnsi16m = (fn, offset) => function () { - const rgb = fn.apply(colorConvert, arguments); - return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; +// For TypeScript +chalk.Level = { + None: 0, + Basic: 1, + Ansi256: 2, + TrueColor: 3, + 0: 'None', + 1: 'Basic', + 2: 'Ansi256', + 3: 'TrueColor' }; -function assembleStyles() { - const codes = new Map(); - const styles = { - modifier: { - reset: [0, 0], - // 21 isn't widely supported and 22 does the same thing - bold: [1, 22], - dim: [2, 22], - italic: [3, 23], - underline: [4, 24], - inverse: [7, 27], - hidden: [8, 28], - strikethrough: [9, 29] - }, - color: { - black: [30, 39], - red: [31, 39], - green: [32, 39], - yellow: [33, 39], - blue: [34, 39], - magenta: [35, 39], - cyan: [36, 39], - white: [37, 39], - gray: [90, 39], - - // Bright color - redBright: [91, 39], - greenBright: [92, 39], - yellowBright: [93, 39], - blueBright: [94, 39], - magentaBright: [95, 39], - cyanBright: [96, 39], - whiteBright: [97, 39] - }, - bgColor: { - bgBlack: [40, 49], - bgRed: [41, 49], - bgGreen: [42, 49], - bgYellow: [43, 49], - bgBlue: [44, 49], - bgMagenta: [45, 49], - bgCyan: [46, 49], - bgWhite: [47, 49], - - // Bright color - bgBlackBright: [100, 49], - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] - } - }; - - // Fix humans - styles.color.grey = styles.color.gray; - - for (const groupName of Object.keys(styles)) { - const group = styles[groupName]; - - for (const styleName of Object.keys(group)) { - const style = group[styleName]; - - styles[styleName] = { - open: `\u001B[${style[0]}m`, - close: `\u001B[${style[1]}m` - }; - - group[styleName] = styles[styleName]; - - codes.set(style[0], style[1]); - } - - Object.defineProperty(styles, groupName, { - value: group, - enumerable: false - }); - - Object.defineProperty(styles, 'codes', { - value: codes, - enumerable: false - }); - } - - const ansi2ansi = n => n; - const rgb2rgb = (r, g, b) => [r, g, b]; - - styles.color.close = '\u001B[39m'; - styles.bgColor.close = '\u001B[49m'; - - styles.color.ansi = { - ansi: wrapAnsi16(ansi2ansi, 0) - }; - styles.color.ansi256 = { - ansi256: wrapAnsi256(ansi2ansi, 0) - }; - styles.color.ansi16m = { - rgb: wrapAnsi16m(rgb2rgb, 0) - }; - - styles.bgColor.ansi = { - ansi: wrapAnsi16(ansi2ansi, 10) - }; - styles.bgColor.ansi256 = { - ansi256: wrapAnsi256(ansi2ansi, 10) - }; - styles.bgColor.ansi16m = { - rgb: wrapAnsi16m(rgb2rgb, 10) - }; - - for (let key of Object.keys(colorConvert)) { - if (typeof colorConvert[key] !== 'object') { - continue; - } - - const suite = colorConvert[key]; - - if (key === 'ansi16') { - key = 'ansi'; - } - - if ('ansi16' in suite) { - styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0); - styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10); - } - - if ('ansi256' in suite) { - styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0); - styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10); - } - - if ('rgb' in suite) { - styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0); - styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10); - } - } - - return styles; -} - -// Make the export immutable -Object.defineProperty(module, 'exports', { - enumerable: true, - get: assembleStyles -}); +module.exports = chalk; -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(114)(module))) /***/ }), -/* 375 */ +/* 370 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const os = __webpack_require__(120); -const hasFlag = __webpack_require__(376); +const tty = __webpack_require__(121); +const hasFlag = __webpack_require__(371); -const env = process.env; +const {env} = process; let forceColor; if (hasFlag('no-color') || hasFlag('no-colors') || - hasFlag('color=false')) { - forceColor = false; + hasFlag('color=false') || + hasFlag('color=never')) { + forceColor = 0; } else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true') || hasFlag('color=always')) { - forceColor = true; + forceColor = 1; } + if ('FORCE_COLOR' in env) { - forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; + if (env.FORCE_COLOR === 'true') { + forceColor = 1; + } else if (env.FORCE_COLOR === 'false') { + forceColor = 0; + } else { + forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); + } } function translateLevel(level) { @@ -47681,8 +47207,8 @@ function translateLevel(level) { }; } -function supportsColor(stream) { - if (forceColor === false) { +function supportsColor(haveStream, streamIsTTY) { + if (forceColor === 0) { return 0; } @@ -47696,22 +47222,21 @@ function supportsColor(stream) { return 2; } - if (stream && !stream.isTTY && forceColor !== true) { + if (haveStream && !streamIsTTY && forceColor === undefined) { return 0; } - const min = forceColor ? 1 : 0; + const min = forceColor || 0; + + if (env.TERM === 'dumb') { + return min; + } if (process.platform === 'win32') { - // Node.js 7.5.0 is the first version of Node.js to include a patch to - // libuv that enables 256 color output on Windows. Anything earlier and it - // won't work. However, here we target Node.js 8 at minimum as it is an LTS - // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows - // release that supports 256 colors. Windows 10 build 14931 is the first release - // that supports 16m/TrueColor. + // Windows 10 build 10586 is the first Windows release that supports 256 colors. + // Windows 10 build 14931 is the first release that supports 16m/TrueColor. const osRelease = os.release().split('.'); if ( - Number(process.versions.node.split('.')[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586 ) { @@ -47733,6 +47258,10 @@ function supportsColor(stream) { return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; } + if ('GITHUB_ACTIONS' in env) { + return 1; + } + if (env.COLORTERM === 'truecolor') { return 3; } @@ -47761,50 +47290,92 @@ function supportsColor(stream) { return 1; } - if (env.TERM === 'dumb') { - return min; - } - return min; } function getSupportLevel(stream) { - const level = supportsColor(stream); + const level = supportsColor(stream, stream && stream.isTTY); return translateLevel(level); } module.exports = { supportsColor: getSupportLevel, - stdout: getSupportLevel(process.stdout), - stderr: getSupportLevel(process.stderr) + stdout: translateLevel(supportsColor(true, tty.isatty(1))), + stderr: translateLevel(supportsColor(true, tty.isatty(2))) }; /***/ }), -/* 376 */ +/* 371 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -module.exports = (flag, argv) => { - argv = argv || process.argv; + +module.exports = (flag, argv = process.argv) => { const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); - const pos = argv.indexOf(prefix + flag); - const terminatorPos = argv.indexOf('--'); - return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf('--'); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); }; /***/ }), -/* 377 */ +/* 372 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; + +const stringReplaceAll = (string, substring, replacer) => { + let index = string.indexOf(substring); + if (index === -1) { + return string; + } + + const substringLength = substring.length; + let endIndex = 0; + let returnValue = ''; + do { + returnValue += string.substr(endIndex, index - endIndex) + substring + replacer; + endIndex = index + substringLength; + index = string.indexOf(substring, endIndex); + } while (index !== -1); + + returnValue += string.substr(endIndex); + return returnValue; +}; + +const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => { + let endIndex = 0; + let returnValue = ''; + do { + const gotCR = string[index - 1] === '\r'; + returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\r\n' : '\n') + postfix; + endIndex = index + 1; + index = string.indexOf('\n', endIndex); + } while (index !== -1); + + returnValue += string.substr(endIndex); + return returnValue; +}; + +module.exports = { + stringReplaceAll, + stringEncaseCRLFWithFirstIndex +}; + + +/***/ }), +/* 373 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const TEMPLATE_REGEX = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; -const ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; +const ESCAPE_REGEX = /\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi; const ESCAPES = new Map([ ['n', '\n'], @@ -47820,23 +47391,31 @@ const ESCAPES = new Map([ ]); function unescape(c) { - if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) { + const u = c[0] === 'u'; + const bracket = c[1] === '{'; + + if ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) { return String.fromCharCode(parseInt(c.slice(1), 16)); } + if (u && bracket) { + return String.fromCodePoint(parseInt(c.slice(2, -1), 16)); + } + return ESCAPES.get(c) || c; } -function parseArguments(name, args) { +function parseArguments(name, arguments_) { const results = []; - const chunks = args.trim().split(/\s*,\s*/g); + const chunks = arguments_.trim().split(/\s*,\s*/g); let matches; for (const chunk of chunks) { - if (!isNaN(chunk)) { - results.push(Number(chunk)); + const number = Number(chunk); + if (!Number.isNaN(number)) { + results.push(number); } else if ((matches = chunk.match(STRING_REGEX))) { - results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr)); + results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character)); } else { throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); } @@ -47875,36 +47454,34 @@ function buildStyle(chalk, styles) { } let current = chalk; - for (const styleName of Object.keys(enabled)) { - if (Array.isArray(enabled[styleName])) { - if (!(styleName in current)) { - throw new Error(`Unknown Chalk style: ${styleName}`); - } + for (const [styleName, styles] of Object.entries(enabled)) { + if (!Array.isArray(styles)) { + continue; + } - if (enabled[styleName].length > 0) { - current = current[styleName].apply(current, enabled[styleName]); - } else { - current = current[styleName]; - } + if (!(styleName in current)) { + throw new Error(`Unknown Chalk style: ${styleName}`); } + + current = styles.length > 0 ? current[styleName](...styles) : current[styleName]; } return current; } -module.exports = (chalk, tmp) => { +module.exports = (chalk, temporary) => { const styles = []; const chunks = []; let chunk = []; // eslint-disable-next-line max-params - tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => { - if (escapeChar) { - chunk.push(unescape(escapeChar)); + temporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => { + if (escapeCharacter) { + chunk.push(unescape(escapeCharacter)); } else if (style) { - const str = chunk.join(''); + const string = chunk.join(''); chunk = []; - chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str)); + chunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string)); styles.push({inverse, styles: parseStyle(style)}); } else if (close) { if (styles.length === 0) { @@ -47915,7 +47492,7 @@ module.exports = (chalk, tmp) => { chunk = []; styles.pop(); } else { - chunk.push(chr); + chunk.push(character); } }); @@ -47931,151 +47508,100 @@ module.exports = (chalk, tmp) => { /***/ }), -/* 378 */ +/* 374 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const restoreCursor = __webpack_require__(379); - -let hidden = false; +const restoreCursor = __webpack_require__(375); -exports.show = stream => { - const s = stream || process.stderr; +let isHidden = false; - if (!s.isTTY) { +exports.show = (writableStream = process.stderr) => { + if (!writableStream.isTTY) { return; } - hidden = false; - s.write('\u001b[?25h'); + isHidden = false; + writableStream.write('\u001B[?25h'); }; -exports.hide = stream => { - const s = stream || process.stderr; - - if (!s.isTTY) { +exports.hide = (writableStream = process.stderr) => { + if (!writableStream.isTTY) { return; } restoreCursor(); - hidden = true; - s.write('\u001b[?25l'); + isHidden = true; + writableStream.write('\u001B[?25l'); }; -exports.toggle = (force, stream) => { +exports.toggle = (force, writableStream) => { if (force !== undefined) { - hidden = force; + isHidden = force; } - if (hidden) { - exports.show(stream); + if (isHidden) { + exports.show(writableStream); } else { - exports.hide(stream); + exports.hide(writableStream); } }; /***/ }), -/* 379 */ +/* 375 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const onetime = __webpack_require__(380); +const onetime = __webpack_require__(244); const signalExit = __webpack_require__(217); module.exports = onetime(() => { signalExit(() => { - process.stderr.write('\u001b[?25h'); + process.stderr.write('\u001B[?25h'); }, {alwaysLast: true}); }); /***/ }), -/* 380 */ +/* 376 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const mimicFn = __webpack_require__(381); - -module.exports = (fn, opts) => { - // TODO: Remove this in v3 - if (opts === true) { - throw new TypeError('The second argument is now an options object'); - } - - if (typeof fn !== 'function') { - throw new TypeError('Expected a function'); - } - - opts = opts || {}; - - let ret; - let called = false; - const fnName = fn.displayName || fn.name || '<anonymous>'; - - const onetime = function () { - if (called) { - if (opts.throw === true) { - throw new Error(`Function \`${fnName}\` can only be called once`); - } - - return ret; - } - - called = true; - ret = fn.apply(this, arguments); - fn = null; - return ret; - }; +const spinners = Object.assign({}, __webpack_require__(377)); - mimicFn(onetime, fn); +const spinnersList = Object.keys(spinners); - return onetime; -}; - - -/***/ }), -/* 381 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -module.exports = (to, from) => { - // TODO: use `Reflect.ownKeys()` when targeting Node.js 6 - for (const prop of Object.getOwnPropertyNames(from).concat(Object.getOwnPropertySymbols(from))) { - Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop)); +Object.defineProperty(spinners, 'random', { + get() { + const randomIndex = Math.floor(Math.random() * spinnersList.length); + const spinnerName = spinnersList[randomIndex]; + return spinners[spinnerName]; } +}); - return to; -}; - - -/***/ }), -/* 382 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -module.exports = __webpack_require__(383); +module.exports = spinners; +// TODO: Remove this for the next major release +module.exports.default = spinners; /***/ }), -/* 383 */ +/* 377 */ /***/ (function(module) { -module.exports = JSON.parse("{\"dots\":{\"interval\":80,\"frames\":[\"⠋\",\"⠙\",\"⠹\",\"⠸\",\"⠼\",\"⠴\",\"⠦\",\"⠧\",\"⠇\",\"⠏\"]},\"dots2\":{\"interval\":80,\"frames\":[\"⣾\",\"⣽\",\"⣻\",\"⢿\",\"⡿\",\"⣟\",\"⣯\",\"⣷\"]},\"dots3\":{\"interval\":80,\"frames\":[\"⠋\",\"⠙\",\"⠚\",\"⠞\",\"⠖\",\"⠦\",\"⠴\",\"⠲\",\"⠳\",\"⠓\"]},\"dots4\":{\"interval\":80,\"frames\":[\"⠄\",\"⠆\",\"⠇\",\"⠋\",\"⠙\",\"⠸\",\"⠰\",\"⠠\",\"⠰\",\"⠸\",\"⠙\",\"⠋\",\"⠇\",\"⠆\"]},\"dots5\":{\"interval\":80,\"frames\":[\"⠋\",\"⠙\",\"⠚\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠲\",\"⠴\",\"⠦\",\"⠖\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠓\",\"⠋\"]},\"dots6\":{\"interval\":80,\"frames\":[\"⠁\",\"⠉\",\"⠙\",\"⠚\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠲\",\"⠴\",\"⠤\",\"⠄\",\"⠄\",\"⠤\",\"⠴\",\"⠲\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠚\",\"⠙\",\"⠉\",\"⠁\"]},\"dots7\":{\"interval\":80,\"frames\":[\"⠈\",\"⠉\",\"⠋\",\"⠓\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠖\",\"⠦\",\"⠤\",\"⠠\",\"⠠\",\"⠤\",\"⠦\",\"⠖\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠓\",\"⠋\",\"⠉\",\"⠈\"]},\"dots8\":{\"interval\":80,\"frames\":[\"⠁\",\"⠁\",\"⠉\",\"⠙\",\"⠚\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠲\",\"⠴\",\"⠤\",\"⠄\",\"⠄\",\"⠤\",\"⠠\",\"⠠\",\"⠤\",\"⠦\",\"⠖\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠓\",\"⠋\",\"⠉\",\"⠈\",\"⠈\"]},\"dots9\":{\"interval\":80,\"frames\":[\"⢹\",\"⢺\",\"⢼\",\"⣸\",\"⣇\",\"⡧\",\"⡗\",\"⡏\"]},\"dots10\":{\"interval\":80,\"frames\":[\"⢄\",\"⢂\",\"⢁\",\"⡁\",\"⡈\",\"⡐\",\"⡠\"]},\"dots11\":{\"interval\":100,\"frames\":[\"⠁\",\"⠂\",\"⠄\",\"⡀\",\"⢀\",\"⠠\",\"⠐\",\"⠈\"]},\"dots12\":{\"interval\":80,\"frames\":[\"⢀⠀\",\"⡀⠀\",\"⠄⠀\",\"⢂⠀\",\"⡂⠀\",\"⠅⠀\",\"⢃⠀\",\"⡃⠀\",\"⠍⠀\",\"⢋⠀\",\"⡋⠀\",\"⠍⠁\",\"⢋⠁\",\"⡋⠁\",\"⠍⠉\",\"⠋⠉\",\"⠋⠉\",\"⠉⠙\",\"⠉⠙\",\"⠉⠩\",\"⠈⢙\",\"⠈⡙\",\"⢈⠩\",\"⡀⢙\",\"⠄⡙\",\"⢂⠩\",\"⡂⢘\",\"⠅⡘\",\"⢃⠨\",\"⡃⢐\",\"⠍⡐\",\"⢋⠠\",\"⡋⢀\",\"⠍⡁\",\"⢋⠁\",\"⡋⠁\",\"⠍⠉\",\"⠋⠉\",\"⠋⠉\",\"⠉⠙\",\"⠉⠙\",\"⠉⠩\",\"⠈⢙\",\"⠈⡙\",\"⠈⠩\",\"⠀⢙\",\"⠀⡙\",\"⠀⠩\",\"⠀⢘\",\"⠀⡘\",\"⠀⠨\",\"⠀⢐\",\"⠀⡐\",\"⠀⠠\",\"⠀⢀\",\"⠀⡀\"]},\"line\":{\"interval\":130,\"frames\":[\"-\",\"\\\\\",\"|\",\"/\"]},\"line2\":{\"interval\":100,\"frames\":[\"⠂\",\"-\",\"–\",\"—\",\"–\",\"-\"]},\"pipe\":{\"interval\":100,\"frames\":[\"┤\",\"┘\",\"┴\",\"└\",\"├\",\"┌\",\"┬\",\"┐\"]},\"simpleDots\":{\"interval\":400,\"frames\":[\". \",\".. \",\"...\",\" \"]},\"simpleDotsScrolling\":{\"interval\":200,\"frames\":[\". \",\".. \",\"...\",\" ..\",\" .\",\" \"]},\"star\":{\"interval\":70,\"frames\":[\"✶\",\"✸\",\"✹\",\"✺\",\"✹\",\"✷\"]},\"star2\":{\"interval\":80,\"frames\":[\"+\",\"x\",\"*\"]},\"flip\":{\"interval\":70,\"frames\":[\"_\",\"_\",\"_\",\"-\",\"`\",\"`\",\"'\",\"´\",\"-\",\"_\",\"_\",\"_\"]},\"hamburger\":{\"interval\":100,\"frames\":[\"☱\",\"☲\",\"☴\"]},\"growVertical\":{\"interval\":120,\"frames\":[\"▁\",\"▃\",\"▄\",\"▅\",\"▆\",\"▇\",\"▆\",\"▅\",\"▄\",\"▃\"]},\"growHorizontal\":{\"interval\":120,\"frames\":[\"▏\",\"▎\",\"▍\",\"▌\",\"▋\",\"▊\",\"▉\",\"▊\",\"▋\",\"▌\",\"▍\",\"▎\"]},\"balloon\":{\"interval\":140,\"frames\":[\" \",\".\",\"o\",\"O\",\"@\",\"*\",\" \"]},\"balloon2\":{\"interval\":120,\"frames\":[\".\",\"o\",\"O\",\"°\",\"O\",\"o\",\".\"]},\"noise\":{\"interval\":100,\"frames\":[\"▓\",\"▒\",\"░\"]},\"bounce\":{\"interval\":120,\"frames\":[\"⠁\",\"⠂\",\"⠄\",\"⠂\"]},\"boxBounce\":{\"interval\":120,\"frames\":[\"▖\",\"▘\",\"▝\",\"▗\"]},\"boxBounce2\":{\"interval\":100,\"frames\":[\"▌\",\"▀\",\"▐\",\"▄\"]},\"triangle\":{\"interval\":50,\"frames\":[\"◢\",\"◣\",\"◤\",\"◥\"]},\"arc\":{\"interval\":100,\"frames\":[\"◜\",\"◠\",\"◝\",\"◞\",\"◡\",\"◟\"]},\"circle\":{\"interval\":120,\"frames\":[\"◡\",\"⊙\",\"◠\"]},\"squareCorners\":{\"interval\":180,\"frames\":[\"◰\",\"◳\",\"◲\",\"◱\"]},\"circleQuarters\":{\"interval\":120,\"frames\":[\"◴\",\"◷\",\"◶\",\"◵\"]},\"circleHalves\":{\"interval\":50,\"frames\":[\"◐\",\"◓\",\"◑\",\"◒\"]},\"squish\":{\"interval\":100,\"frames\":[\"╫\",\"╪\"]},\"toggle\":{\"interval\":250,\"frames\":[\"⊶\",\"⊷\"]},\"toggle2\":{\"interval\":80,\"frames\":[\"▫\",\"▪\"]},\"toggle3\":{\"interval\":120,\"frames\":[\"□\",\"■\"]},\"toggle4\":{\"interval\":100,\"frames\":[\"■\",\"□\",\"▪\",\"▫\"]},\"toggle5\":{\"interval\":100,\"frames\":[\"▮\",\"▯\"]},\"toggle6\":{\"interval\":300,\"frames\":[\"ဝ\",\"၀\"]},\"toggle7\":{\"interval\":80,\"frames\":[\"⦾\",\"⦿\"]},\"toggle8\":{\"interval\":100,\"frames\":[\"◍\",\"◌\"]},\"toggle9\":{\"interval\":100,\"frames\":[\"◉\",\"◎\"]},\"toggle10\":{\"interval\":100,\"frames\":[\"㊂\",\"㊀\",\"㊁\"]},\"toggle11\":{\"interval\":50,\"frames\":[\"⧇\",\"⧆\"]},\"toggle12\":{\"interval\":120,\"frames\":[\"☗\",\"☖\"]},\"toggle13\":{\"interval\":80,\"frames\":[\"=\",\"*\",\"-\"]},\"arrow\":{\"interval\":100,\"frames\":[\"←\",\"↖\",\"↑\",\"↗\",\"→\",\"↘\",\"↓\",\"↙\"]},\"arrow2\":{\"interval\":80,\"frames\":[\"⬆️ \",\"↗️ \",\"➡️ \",\"↘️ \",\"⬇️ \",\"↙️ \",\"⬅️ \",\"↖️ \"]},\"arrow3\":{\"interval\":120,\"frames\":[\"▹▹▹▹▹\",\"▸▹▹▹▹\",\"▹▸▹▹▹\",\"▹▹▸▹▹\",\"▹▹▹▸▹\",\"▹▹▹▹▸\"]},\"bouncingBar\":{\"interval\":80,\"frames\":[\"[ ]\",\"[= ]\",\"[== ]\",\"[=== ]\",\"[ ===]\",\"[ ==]\",\"[ =]\",\"[ ]\",\"[ =]\",\"[ ==]\",\"[ ===]\",\"[====]\",\"[=== ]\",\"[== ]\",\"[= ]\"]},\"bouncingBall\":{\"interval\":80,\"frames\":[\"( ● )\",\"( ● )\",\"( ● )\",\"( ● )\",\"( ●)\",\"( ● )\",\"( ● )\",\"( ● )\",\"( ● )\",\"(● )\"]},\"smiley\":{\"interval\":200,\"frames\":[\"😄 \",\"😝 \"]},\"monkey\":{\"interval\":300,\"frames\":[\"🙈 \",\"🙈 \",\"🙉 \",\"🙊 \"]},\"hearts\":{\"interval\":100,\"frames\":[\"💛 \",\"💙 \",\"💜 \",\"💚 \",\"❤️ \"]},\"clock\":{\"interval\":100,\"frames\":[\"🕐 \",\"🕑 \",\"🕒 \",\"🕓 \",\"🕔 \",\"🕕 \",\"🕖 \",\"🕗 \",\"🕘 \",\"🕙 \",\"🕚 \"]},\"earth\":{\"interval\":180,\"frames\":[\"🌍 \",\"🌎 \",\"🌏 \"]},\"moon\":{\"interval\":80,\"frames\":[\"🌑 \",\"🌒 \",\"🌓 \",\"🌔 \",\"🌕 \",\"🌖 \",\"🌗 \",\"🌘 \"]},\"runner\":{\"interval\":140,\"frames\":[\"🚶 \",\"🏃 \"]},\"pong\":{\"interval\":80,\"frames\":[\"▐⠂ ▌\",\"▐⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂▌\",\"▐ ⠠▌\",\"▐ ⡀▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐⠠ ▌\"]},\"shark\":{\"interval\":120,\"frames\":[\"▐|\\\\____________▌\",\"▐_|\\\\___________▌\",\"▐__|\\\\__________▌\",\"▐___|\\\\_________▌\",\"▐____|\\\\________▌\",\"▐_____|\\\\_______▌\",\"▐______|\\\\______▌\",\"▐_______|\\\\_____▌\",\"▐________|\\\\____▌\",\"▐_________|\\\\___▌\",\"▐__________|\\\\__▌\",\"▐___________|\\\\_▌\",\"▐____________|\\\\▌\",\"▐____________/|▌\",\"▐___________/|_▌\",\"▐__________/|__▌\",\"▐_________/|___▌\",\"▐________/|____▌\",\"▐_______/|_____▌\",\"▐______/|______▌\",\"▐_____/|_______▌\",\"▐____/|________▌\",\"▐___/|_________▌\",\"▐__/|__________▌\",\"▐_/|___________▌\",\"▐/|____________▌\"]},\"dqpb\":{\"interval\":100,\"frames\":[\"d\",\"q\",\"p\",\"b\"]},\"weather\":{\"interval\":100,\"frames\":[\"☀️ \",\"☀️ \",\"☀️ \",\"🌤 \",\"⛅️ \",\"🌥 \",\"☁️ \",\"🌧 \",\"🌨 \",\"🌧 \",\"🌨 \",\"🌧 \",\"🌨 \",\"⛈ \",\"🌨 \",\"🌧 \",\"🌨 \",\"☁️ \",\"🌥 \",\"⛅️ \",\"🌤 \",\"☀️ \",\"☀️ \"]},\"christmas\":{\"interval\":400,\"frames\":[\"🌲\",\"🎄\"]}}"); +module.exports = JSON.parse("{\"dots\":{\"interval\":80,\"frames\":[\"⠋\",\"⠙\",\"⠹\",\"⠸\",\"⠼\",\"⠴\",\"⠦\",\"⠧\",\"⠇\",\"⠏\"]},\"dots2\":{\"interval\":80,\"frames\":[\"⣾\",\"⣽\",\"⣻\",\"⢿\",\"⡿\",\"⣟\",\"⣯\",\"⣷\"]},\"dots3\":{\"interval\":80,\"frames\":[\"⠋\",\"⠙\",\"⠚\",\"⠞\",\"⠖\",\"⠦\",\"⠴\",\"⠲\",\"⠳\",\"⠓\"]},\"dots4\":{\"interval\":80,\"frames\":[\"⠄\",\"⠆\",\"⠇\",\"⠋\",\"⠙\",\"⠸\",\"⠰\",\"⠠\",\"⠰\",\"⠸\",\"⠙\",\"⠋\",\"⠇\",\"⠆\"]},\"dots5\":{\"interval\":80,\"frames\":[\"⠋\",\"⠙\",\"⠚\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠲\",\"⠴\",\"⠦\",\"⠖\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠓\",\"⠋\"]},\"dots6\":{\"interval\":80,\"frames\":[\"⠁\",\"⠉\",\"⠙\",\"⠚\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠲\",\"⠴\",\"⠤\",\"⠄\",\"⠄\",\"⠤\",\"⠴\",\"⠲\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠚\",\"⠙\",\"⠉\",\"⠁\"]},\"dots7\":{\"interval\":80,\"frames\":[\"⠈\",\"⠉\",\"⠋\",\"⠓\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠖\",\"⠦\",\"⠤\",\"⠠\",\"⠠\",\"⠤\",\"⠦\",\"⠖\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠓\",\"⠋\",\"⠉\",\"⠈\"]},\"dots8\":{\"interval\":80,\"frames\":[\"⠁\",\"⠁\",\"⠉\",\"⠙\",\"⠚\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠲\",\"⠴\",\"⠤\",\"⠄\",\"⠄\",\"⠤\",\"⠠\",\"⠠\",\"⠤\",\"⠦\",\"⠖\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠓\",\"⠋\",\"⠉\",\"⠈\",\"⠈\"]},\"dots9\":{\"interval\":80,\"frames\":[\"⢹\",\"⢺\",\"⢼\",\"⣸\",\"⣇\",\"⡧\",\"⡗\",\"⡏\"]},\"dots10\":{\"interval\":80,\"frames\":[\"⢄\",\"⢂\",\"⢁\",\"⡁\",\"⡈\",\"⡐\",\"⡠\"]},\"dots11\":{\"interval\":100,\"frames\":[\"⠁\",\"⠂\",\"⠄\",\"⡀\",\"⢀\",\"⠠\",\"⠐\",\"⠈\"]},\"dots12\":{\"interval\":80,\"frames\":[\"⢀⠀\",\"⡀⠀\",\"⠄⠀\",\"⢂⠀\",\"⡂⠀\",\"⠅⠀\",\"⢃⠀\",\"⡃⠀\",\"⠍⠀\",\"⢋⠀\",\"⡋⠀\",\"⠍⠁\",\"⢋⠁\",\"⡋⠁\",\"⠍⠉\",\"⠋⠉\",\"⠋⠉\",\"⠉⠙\",\"⠉⠙\",\"⠉⠩\",\"⠈⢙\",\"⠈⡙\",\"⢈⠩\",\"⡀⢙\",\"⠄⡙\",\"⢂⠩\",\"⡂⢘\",\"⠅⡘\",\"⢃⠨\",\"⡃⢐\",\"⠍⡐\",\"⢋⠠\",\"⡋⢀\",\"⠍⡁\",\"⢋⠁\",\"⡋⠁\",\"⠍⠉\",\"⠋⠉\",\"⠋⠉\",\"⠉⠙\",\"⠉⠙\",\"⠉⠩\",\"⠈⢙\",\"⠈⡙\",\"⠈⠩\",\"⠀⢙\",\"⠀⡙\",\"⠀⠩\",\"⠀⢘\",\"⠀⡘\",\"⠀⠨\",\"⠀⢐\",\"⠀⡐\",\"⠀⠠\",\"⠀⢀\",\"⠀⡀\"]},\"dots8Bit\":{\"interval\":80,\"frames\":[\"⠀\",\"⠁\",\"⠂\",\"⠃\",\"⠄\",\"⠅\",\"⠆\",\"⠇\",\"⡀\",\"⡁\",\"⡂\",\"⡃\",\"⡄\",\"⡅\",\"⡆\",\"⡇\",\"⠈\",\"⠉\",\"⠊\",\"⠋\",\"⠌\",\"⠍\",\"⠎\",\"⠏\",\"⡈\",\"⡉\",\"⡊\",\"⡋\",\"⡌\",\"⡍\",\"⡎\",\"⡏\",\"⠐\",\"⠑\",\"⠒\",\"⠓\",\"⠔\",\"⠕\",\"⠖\",\"⠗\",\"⡐\",\"⡑\",\"⡒\",\"⡓\",\"⡔\",\"⡕\",\"⡖\",\"⡗\",\"⠘\",\"⠙\",\"⠚\",\"⠛\",\"⠜\",\"⠝\",\"⠞\",\"⠟\",\"⡘\",\"⡙\",\"⡚\",\"⡛\",\"⡜\",\"⡝\",\"⡞\",\"⡟\",\"⠠\",\"⠡\",\"⠢\",\"⠣\",\"⠤\",\"⠥\",\"⠦\",\"⠧\",\"⡠\",\"⡡\",\"⡢\",\"⡣\",\"⡤\",\"⡥\",\"⡦\",\"⡧\",\"⠨\",\"⠩\",\"⠪\",\"⠫\",\"⠬\",\"⠭\",\"⠮\",\"⠯\",\"⡨\",\"⡩\",\"⡪\",\"⡫\",\"⡬\",\"⡭\",\"⡮\",\"⡯\",\"⠰\",\"⠱\",\"⠲\",\"⠳\",\"⠴\",\"⠵\",\"⠶\",\"⠷\",\"⡰\",\"⡱\",\"⡲\",\"⡳\",\"⡴\",\"⡵\",\"⡶\",\"⡷\",\"⠸\",\"⠹\",\"⠺\",\"⠻\",\"⠼\",\"⠽\",\"⠾\",\"⠿\",\"⡸\",\"⡹\",\"⡺\",\"⡻\",\"⡼\",\"⡽\",\"⡾\",\"⡿\",\"⢀\",\"⢁\",\"⢂\",\"⢃\",\"⢄\",\"⢅\",\"⢆\",\"⢇\",\"⣀\",\"⣁\",\"⣂\",\"⣃\",\"⣄\",\"⣅\",\"⣆\",\"⣇\",\"⢈\",\"⢉\",\"⢊\",\"⢋\",\"⢌\",\"⢍\",\"⢎\",\"⢏\",\"⣈\",\"⣉\",\"⣊\",\"⣋\",\"⣌\",\"⣍\",\"⣎\",\"⣏\",\"⢐\",\"⢑\",\"⢒\",\"⢓\",\"⢔\",\"⢕\",\"⢖\",\"⢗\",\"⣐\",\"⣑\",\"⣒\",\"⣓\",\"⣔\",\"⣕\",\"⣖\",\"⣗\",\"⢘\",\"⢙\",\"⢚\",\"⢛\",\"⢜\",\"⢝\",\"⢞\",\"⢟\",\"⣘\",\"⣙\",\"⣚\",\"⣛\",\"⣜\",\"⣝\",\"⣞\",\"⣟\",\"⢠\",\"⢡\",\"⢢\",\"⢣\",\"⢤\",\"⢥\",\"⢦\",\"⢧\",\"⣠\",\"⣡\",\"⣢\",\"⣣\",\"⣤\",\"⣥\",\"⣦\",\"⣧\",\"⢨\",\"⢩\",\"⢪\",\"⢫\",\"⢬\",\"⢭\",\"⢮\",\"⢯\",\"⣨\",\"⣩\",\"⣪\",\"⣫\",\"⣬\",\"⣭\",\"⣮\",\"⣯\",\"⢰\",\"⢱\",\"⢲\",\"⢳\",\"⢴\",\"⢵\",\"⢶\",\"⢷\",\"⣰\",\"⣱\",\"⣲\",\"⣳\",\"⣴\",\"⣵\",\"⣶\",\"⣷\",\"⢸\",\"⢹\",\"⢺\",\"⢻\",\"⢼\",\"⢽\",\"⢾\",\"⢿\",\"⣸\",\"⣹\",\"⣺\",\"⣻\",\"⣼\",\"⣽\",\"⣾\",\"⣿\"]},\"line\":{\"interval\":130,\"frames\":[\"-\",\"\\\\\",\"|\",\"/\"]},\"line2\":{\"interval\":100,\"frames\":[\"⠂\",\"-\",\"–\",\"—\",\"–\",\"-\"]},\"pipe\":{\"interval\":100,\"frames\":[\"┤\",\"┘\",\"┴\",\"└\",\"├\",\"┌\",\"┬\",\"┐\"]},\"simpleDots\":{\"interval\":400,\"frames\":[\". \",\".. \",\"...\",\" \"]},\"simpleDotsScrolling\":{\"interval\":200,\"frames\":[\". \",\".. \",\"...\",\" ..\",\" .\",\" \"]},\"star\":{\"interval\":70,\"frames\":[\"✶\",\"✸\",\"✹\",\"✺\",\"✹\",\"✷\"]},\"star2\":{\"interval\":80,\"frames\":[\"+\",\"x\",\"*\"]},\"flip\":{\"interval\":70,\"frames\":[\"_\",\"_\",\"_\",\"-\",\"`\",\"`\",\"'\",\"´\",\"-\",\"_\",\"_\",\"_\"]},\"hamburger\":{\"interval\":100,\"frames\":[\"☱\",\"☲\",\"☴\"]},\"growVertical\":{\"interval\":120,\"frames\":[\"▁\",\"▃\",\"▄\",\"▅\",\"▆\",\"▇\",\"▆\",\"▅\",\"▄\",\"▃\"]},\"growHorizontal\":{\"interval\":120,\"frames\":[\"▏\",\"▎\",\"▍\",\"▌\",\"▋\",\"▊\",\"▉\",\"▊\",\"▋\",\"▌\",\"▍\",\"▎\"]},\"balloon\":{\"interval\":140,\"frames\":[\" \",\".\",\"o\",\"O\",\"@\",\"*\",\" \"]},\"balloon2\":{\"interval\":120,\"frames\":[\".\",\"o\",\"O\",\"°\",\"O\",\"o\",\".\"]},\"noise\":{\"interval\":100,\"frames\":[\"▓\",\"▒\",\"░\"]},\"bounce\":{\"interval\":120,\"frames\":[\"⠁\",\"⠂\",\"⠄\",\"⠂\"]},\"boxBounce\":{\"interval\":120,\"frames\":[\"▖\",\"▘\",\"▝\",\"▗\"]},\"boxBounce2\":{\"interval\":100,\"frames\":[\"▌\",\"▀\",\"▐\",\"▄\"]},\"triangle\":{\"interval\":50,\"frames\":[\"◢\",\"◣\",\"◤\",\"◥\"]},\"arc\":{\"interval\":100,\"frames\":[\"◜\",\"◠\",\"◝\",\"◞\",\"◡\",\"◟\"]},\"circle\":{\"interval\":120,\"frames\":[\"◡\",\"⊙\",\"◠\"]},\"squareCorners\":{\"interval\":180,\"frames\":[\"◰\",\"◳\",\"◲\",\"◱\"]},\"circleQuarters\":{\"interval\":120,\"frames\":[\"◴\",\"◷\",\"◶\",\"◵\"]},\"circleHalves\":{\"interval\":50,\"frames\":[\"◐\",\"◓\",\"◑\",\"◒\"]},\"squish\":{\"interval\":100,\"frames\":[\"╫\",\"╪\"]},\"toggle\":{\"interval\":250,\"frames\":[\"⊶\",\"⊷\"]},\"toggle2\":{\"interval\":80,\"frames\":[\"▫\",\"▪\"]},\"toggle3\":{\"interval\":120,\"frames\":[\"□\",\"■\"]},\"toggle4\":{\"interval\":100,\"frames\":[\"■\",\"□\",\"▪\",\"▫\"]},\"toggle5\":{\"interval\":100,\"frames\":[\"▮\",\"▯\"]},\"toggle6\":{\"interval\":300,\"frames\":[\"ဝ\",\"၀\"]},\"toggle7\":{\"interval\":80,\"frames\":[\"⦾\",\"⦿\"]},\"toggle8\":{\"interval\":100,\"frames\":[\"◍\",\"◌\"]},\"toggle9\":{\"interval\":100,\"frames\":[\"◉\",\"◎\"]},\"toggle10\":{\"interval\":100,\"frames\":[\"㊂\",\"㊀\",\"㊁\"]},\"toggle11\":{\"interval\":50,\"frames\":[\"⧇\",\"⧆\"]},\"toggle12\":{\"interval\":120,\"frames\":[\"☗\",\"☖\"]},\"toggle13\":{\"interval\":80,\"frames\":[\"=\",\"*\",\"-\"]},\"arrow\":{\"interval\":100,\"frames\":[\"←\",\"↖\",\"↑\",\"↗\",\"→\",\"↘\",\"↓\",\"↙\"]},\"arrow2\":{\"interval\":80,\"frames\":[\"⬆️ \",\"↗️ \",\"➡️ \",\"↘️ \",\"⬇️ \",\"↙️ \",\"⬅️ \",\"↖️ \"]},\"arrow3\":{\"interval\":120,\"frames\":[\"▹▹▹▹▹\",\"▸▹▹▹▹\",\"▹▸▹▹▹\",\"▹▹▸▹▹\",\"▹▹▹▸▹\",\"▹▹▹▹▸\"]},\"bouncingBar\":{\"interval\":80,\"frames\":[\"[ ]\",\"[= ]\",\"[== ]\",\"[=== ]\",\"[ ===]\",\"[ ==]\",\"[ =]\",\"[ ]\",\"[ =]\",\"[ ==]\",\"[ ===]\",\"[====]\",\"[=== ]\",\"[== ]\",\"[= ]\"]},\"bouncingBall\":{\"interval\":80,\"frames\":[\"( ● )\",\"( ● )\",\"( ● )\",\"( ● )\",\"( ●)\",\"( ● )\",\"( ● )\",\"( ● )\",\"( ● )\",\"(● )\"]},\"smiley\":{\"interval\":200,\"frames\":[\"😄 \",\"😝 \"]},\"monkey\":{\"interval\":300,\"frames\":[\"🙈 \",\"🙈 \",\"🙉 \",\"🙊 \"]},\"hearts\":{\"interval\":100,\"frames\":[\"💛 \",\"💙 \",\"💜 \",\"💚 \",\"❤️ \"]},\"clock\":{\"interval\":100,\"frames\":[\"🕛 \",\"🕐 \",\"🕑 \",\"🕒 \",\"🕓 \",\"🕔 \",\"🕕 \",\"🕖 \",\"🕗 \",\"🕘 \",\"🕙 \",\"🕚 \"]},\"earth\":{\"interval\":180,\"frames\":[\"🌍 \",\"🌎 \",\"🌏 \"]},\"material\":{\"interval\":17,\"frames\":[\"█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"███████▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"████████▁▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"██████████▁▁▁▁▁▁▁▁▁▁\",\"███████████▁▁▁▁▁▁▁▁▁\",\"█████████████▁▁▁▁▁▁▁\",\"██████████████▁▁▁▁▁▁\",\"██████████████▁▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁▁██████████████▁▁▁▁\",\"▁▁▁██████████████▁▁▁\",\"▁▁▁▁█████████████▁▁▁\",\"▁▁▁▁██████████████▁▁\",\"▁▁▁▁██████████████▁▁\",\"▁▁▁▁▁██████████████▁\",\"▁▁▁▁▁██████████████▁\",\"▁▁▁▁▁██████████████▁\",\"▁▁▁▁▁▁██████████████\",\"▁▁▁▁▁▁██████████████\",\"▁▁▁▁▁▁▁█████████████\",\"▁▁▁▁▁▁▁█████████████\",\"▁▁▁▁▁▁▁▁████████████\",\"▁▁▁▁▁▁▁▁████████████\",\"▁▁▁▁▁▁▁▁▁███████████\",\"▁▁▁▁▁▁▁▁▁███████████\",\"▁▁▁▁▁▁▁▁▁▁██████████\",\"▁▁▁▁▁▁▁▁▁▁██████████\",\"▁▁▁▁▁▁▁▁▁▁▁▁████████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁███████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████\",\"█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████\",\"██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██\",\"█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"██████▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"████████▁▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"███████████▁▁▁▁▁▁▁▁▁\",\"████████████▁▁▁▁▁▁▁▁\",\"████████████▁▁▁▁▁▁▁▁\",\"██████████████▁▁▁▁▁▁\",\"██████████████▁▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁▁▁█████████████▁▁▁▁\",\"▁▁▁▁▁████████████▁▁▁\",\"▁▁▁▁▁████████████▁▁▁\",\"▁▁▁▁▁▁███████████▁▁▁\",\"▁▁▁▁▁▁▁▁█████████▁▁▁\",\"▁▁▁▁▁▁▁▁█████████▁▁▁\",\"▁▁▁▁▁▁▁▁▁█████████▁▁\",\"▁▁▁▁▁▁▁▁▁█████████▁▁\",\"▁▁▁▁▁▁▁▁▁▁█████████▁\",\"▁▁▁▁▁▁▁▁▁▁▁████████▁\",\"▁▁▁▁▁▁▁▁▁▁▁████████▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁███████▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁███████▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁███████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁███████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\"]},\"moon\":{\"interval\":80,\"frames\":[\"🌑 \",\"🌒 \",\"🌓 \",\"🌔 \",\"🌕 \",\"🌖 \",\"🌗 \",\"🌘 \"]},\"runner\":{\"interval\":140,\"frames\":[\"🚶 \",\"🏃 \"]},\"pong\":{\"interval\":80,\"frames\":[\"▐⠂ ▌\",\"▐⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂▌\",\"▐ ⠠▌\",\"▐ ⡀▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐⠠ ▌\"]},\"shark\":{\"interval\":120,\"frames\":[\"▐|\\\\____________▌\",\"▐_|\\\\___________▌\",\"▐__|\\\\__________▌\",\"▐___|\\\\_________▌\",\"▐____|\\\\________▌\",\"▐_____|\\\\_______▌\",\"▐______|\\\\______▌\",\"▐_______|\\\\_____▌\",\"▐________|\\\\____▌\",\"▐_________|\\\\___▌\",\"▐__________|\\\\__▌\",\"▐___________|\\\\_▌\",\"▐____________|\\\\▌\",\"▐____________/|▌\",\"▐___________/|_▌\",\"▐__________/|__▌\",\"▐_________/|___▌\",\"▐________/|____▌\",\"▐_______/|_____▌\",\"▐______/|______▌\",\"▐_____/|_______▌\",\"▐____/|________▌\",\"▐___/|_________▌\",\"▐__/|__________▌\",\"▐_/|___________▌\",\"▐/|____________▌\"]},\"dqpb\":{\"interval\":100,\"frames\":[\"d\",\"q\",\"p\",\"b\"]},\"weather\":{\"interval\":100,\"frames\":[\"☀️ \",\"☀️ \",\"☀️ \",\"🌤 \",\"⛅️ \",\"🌥 \",\"☁️ \",\"🌧 \",\"🌨 \",\"🌧 \",\"🌨 \",\"🌧 \",\"🌨 \",\"⛈ \",\"🌨 \",\"🌧 \",\"🌨 \",\"☁️ \",\"🌥 \",\"⛅️ \",\"🌤 \",\"☀️ \",\"☀️ \"]},\"christmas\":{\"interval\":400,\"frames\":[\"🌲\",\"🎄\"]},\"grenade\":{\"interval\":80,\"frames\":[\"، \",\"′ \",\" ´ \",\" ‾ \",\" ⸌\",\" ⸊\",\" |\",\" ⁎\",\" ⁕\",\" ෴ \",\" ⁓\",\" \",\" \",\" \"]},\"point\":{\"interval\":125,\"frames\":[\"∙∙∙\",\"●∙∙\",\"∙●∙\",\"∙∙●\",\"∙∙∙\"]},\"layer\":{\"interval\":150,\"frames\":[\"-\",\"=\",\"≡\"]},\"betaWave\":{\"interval\":80,\"frames\":[\"ρββββββ\",\"βρβββββ\",\"ββρββββ\",\"βββρβββ\",\"ββββρββ\",\"βββββρβ\",\"ββββββρ\"]}}"); /***/ }), -/* 384 */ +/* 378 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const chalk = __webpack_require__(385); +const chalk = __webpack_require__(379); const isSupported = process.platform !== 'win32' || process.env.CI || process.env.TERM === 'xterm-256color'; @@ -48097,16 +47623,16 @@ module.exports = isSupported ? main : fallbacks; /***/ }), -/* 385 */ +/* 379 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const escapeStringRegexp = __webpack_require__(178); -const ansiStyles = __webpack_require__(386); -const stdoutColor = __webpack_require__(184).stdout; +const ansiStyles = __webpack_require__(380); +const stdoutColor = __webpack_require__(381).stdout; -const template = __webpack_require__(387); +const template = __webpack_require__(383); const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); @@ -48332,7 +47858,7 @@ module.exports.default = module.exports; // For TypeScript /***/ }), -/* 386 */ +/* 380 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48505,7 +48031,160 @@ Object.defineProperty(module, 'exports', { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(114)(module))) /***/ }), -/* 387 */ +/* 381 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const os = __webpack_require__(120); +const hasFlag = __webpack_require__(382); + +const env = process.env; + +let forceColor; +if (hasFlag('no-color') || + hasFlag('no-colors') || + hasFlag('color=false')) { + forceColor = false; +} else if (hasFlag('color') || + hasFlag('colors') || + hasFlag('color=true') || + hasFlag('color=always')) { + forceColor = true; +} +if ('FORCE_COLOR' in env) { + forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} + +function supportsColor(stream) { + if (forceColor === false) { + return 0; + } + + if (hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + + if (stream && !stream.isTTY && forceColor !== true) { + return 0; + } + + const min = forceColor ? 1 : 0; + + if (process.platform === 'win32') { + // Node.js 7.5.0 is the first version of Node.js to include a patch to + // libuv that enables 256 color output on Windows. Anything earlier and it + // won't work. However, here we target Node.js 8 at minimum as it is an LTS + // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows + // release that supports 256 colors. Windows 10 build 14931 is the first release + // that supports 16m/TrueColor. + const osRelease = os.release().split('.'); + if ( + Number(process.versions.node.split('.')[0]) >= 8 && + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + + if (env.COLORTERM === 'truecolor') { + return 3; + } + + if ('TERM_PROGRAM' in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + if (env.TERM === 'dumb') { + return min; + } + + return min; +} + +function getSupportLevel(stream) { + const level = supportsColor(stream); + return translateLevel(level); +} + +module.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) +}; + + +/***/ }), +/* 382 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +module.exports = (flag, argv) => { + argv = argv || process.argv; + const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); + const pos = argv.indexOf(prefix + flag); + const terminatorPos = argv.indexOf('--'); + return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); +}; + + +/***/ }), +/* 383 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48639,8 +48318,555 @@ module.exports = (chalk, tmp) => { }; +/***/ }), +/* 384 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +const ansiRegex = __webpack_require__(385); + +module.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; + + +/***/ }), +/* 385 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = ({onlyFirst = false} = {}) => { + const pattern = [ + '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', + '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' + ].join('|'); + + return new RegExp(pattern, onlyFirst ? undefined : 'g'); +}; + + +/***/ }), +/* 386 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var defaults = __webpack_require__(387) +var combining = __webpack_require__(389) + +var DEFAULTS = { + nul: 0, + control: 0 +} + +module.exports = function wcwidth(str) { + return wcswidth(str, DEFAULTS) +} + +module.exports.config = function(opts) { + opts = defaults(opts || {}, DEFAULTS) + return function wcwidth(str) { + return wcswidth(str, opts) + } +} + +/* + * The following functions define the column width of an ISO 10646 + * character as follows: + * - The null character (U+0000) has a column width of 0. + * - Other C0/C1 control characters and DEL will lead to a return value + * of -1. + * - Non-spacing and enclosing combining characters (general category + * code Mn or Me in the + * Unicode database) have a column width of 0. + * - SOFT HYPHEN (U+00AD) has a column width of 1. + * - Other format characters (general category code Cf in the Unicode + * database) and ZERO WIDTH + * SPACE (U+200B) have a column width of 0. + * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF) + * have a column width of 0. + * - Spacing characters in the East Asian Wide (W) or East Asian + * Full-width (F) category as + * defined in Unicode Technical Report #11 have a column width of 2. + * - All remaining characters (including all printable ISO 8859-1 and + * WGL4 characters, Unicode control characters, etc.) have a column + * width of 1. + * This implementation assumes that characters are encoded in ISO 10646. +*/ + +function wcswidth(str, opts) { + if (typeof str !== 'string') return wcwidth(str, opts) + + var s = 0 + for (var i = 0; i < str.length; i++) { + var n = wcwidth(str.charCodeAt(i), opts) + if (n < 0) return -1 + s += n + } + + return s +} + +function wcwidth(ucs, opts) { + // test for 8-bit control characters + if (ucs === 0) return opts.nul + if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) return opts.control + + // binary search in table of non-spacing characters + if (bisearch(ucs)) return 0 + + // if we arrive here, ucs is not a combining or C0/C1 control character + return 1 + + (ucs >= 0x1100 && + (ucs <= 0x115f || // Hangul Jamo init. consonants + ucs == 0x2329 || ucs == 0x232a || + (ucs >= 0x2e80 && ucs <= 0xa4cf && + ucs != 0x303f) || // CJK ... Yi + (ucs >= 0xac00 && ucs <= 0xd7a3) || // Hangul Syllables + (ucs >= 0xf900 && ucs <= 0xfaff) || // CJK Compatibility Ideographs + (ucs >= 0xfe10 && ucs <= 0xfe19) || // Vertical forms + (ucs >= 0xfe30 && ucs <= 0xfe6f) || // CJK Compatibility Forms + (ucs >= 0xff00 && ucs <= 0xff60) || // Fullwidth Forms + (ucs >= 0xffe0 && ucs <= 0xffe6) || + (ucs >= 0x20000 && ucs <= 0x2fffd) || + (ucs >= 0x30000 && ucs <= 0x3fffd))); +} + +function bisearch(ucs) { + var min = 0 + var max = combining.length - 1 + var mid + + if (ucs < combining[0][0] || ucs > combining[max][1]) return false + + while (max >= min) { + mid = Math.floor((min + max) / 2) + if (ucs > combining[mid][1]) min = mid + 1 + else if (ucs < combining[mid][0]) max = mid - 1 + else return true + } + + return false +} + + +/***/ }), +/* 387 */ +/***/ (function(module, exports, __webpack_require__) { + +var clone = __webpack_require__(388); + +module.exports = function(options, defaults) { + options = options || {}; + + Object.keys(defaults).forEach(function(key) { + if (typeof options[key] === 'undefined') { + options[key] = clone(defaults[key]); + } + }); + + return options; +}; + /***/ }), /* 388 */ +/***/ (function(module, exports, __webpack_require__) { + +var clone = (function() { +'use strict'; + +/** + * Clones (copies) an Object using deep copying. + * + * This function supports circular references by default, but if you are certain + * there are no circular references in your object, you can save some CPU time + * by calling clone(obj, false). + * + * Caution: if `circular` is false and `parent` contains circular references, + * your program may enter an infinite loop and crash. + * + * @param `parent` - the object to be cloned + * @param `circular` - set to true if the object to be cloned may contain + * circular references. (optional - true by default) + * @param `depth` - set to a number if the object is only to be cloned to + * a particular depth. (optional - defaults to Infinity) + * @param `prototype` - sets the prototype to be used when cloning an object. + * (optional - defaults to parent prototype). +*/ +function clone(parent, circular, depth, prototype) { + var filter; + if (typeof circular === 'object') { + depth = circular.depth; + prototype = circular.prototype; + filter = circular.filter; + circular = circular.circular + } + // maintain two arrays for circular references, where corresponding parents + // and children have the same index + var allParents = []; + var allChildren = []; + + var useBuffer = typeof Buffer != 'undefined'; + + if (typeof circular == 'undefined') + circular = true; + + if (typeof depth == 'undefined') + depth = Infinity; + + // recurse this function so we don't reset allParents and allChildren + function _clone(parent, depth) { + // cloning null always returns null + if (parent === null) + return null; + + if (depth == 0) + return parent; + + var child; + var proto; + if (typeof parent != 'object') { + return parent; + } + + if (clone.__isArray(parent)) { + child = []; + } else if (clone.__isRegExp(parent)) { + child = new RegExp(parent.source, __getRegExpFlags(parent)); + if (parent.lastIndex) child.lastIndex = parent.lastIndex; + } else if (clone.__isDate(parent)) { + child = new Date(parent.getTime()); + } else if (useBuffer && Buffer.isBuffer(parent)) { + if (Buffer.allocUnsafe) { + // Node.js >= 4.5.0 + child = Buffer.allocUnsafe(parent.length); + } else { + // Older Node.js versions + child = new Buffer(parent.length); + } + parent.copy(child); + return child; + } else { + if (typeof prototype == 'undefined') { + proto = Object.getPrototypeOf(parent); + child = Object.create(proto); + } + else { + child = Object.create(prototype); + proto = prototype; + } + } + + if (circular) { + var index = allParents.indexOf(parent); + + if (index != -1) { + return allChildren[index]; + } + allParents.push(parent); + allChildren.push(child); + } + + for (var i in parent) { + var attrs; + if (proto) { + attrs = Object.getOwnPropertyDescriptor(proto, i); + } + + if (attrs && attrs.set == null) { + continue; + } + child[i] = _clone(parent[i], depth - 1); + } + + return child; + } + + return _clone(parent, depth); +} + +/** + * Simple flat clone using prototype, accepts only objects, usefull for property + * override on FLAT configuration object (no nested props). + * + * USE WITH CAUTION! This may not behave as you wish if you do not know how this + * works. + */ +clone.clonePrototype = function clonePrototype(parent) { + if (parent === null) + return null; + + var c = function () {}; + c.prototype = parent; + return new c(); +}; + +// private utility functions + +function __objToStr(o) { + return Object.prototype.toString.call(o); +}; +clone.__objToStr = __objToStr; + +function __isDate(o) { + return typeof o === 'object' && __objToStr(o) === '[object Date]'; +}; +clone.__isDate = __isDate; + +function __isArray(o) { + return typeof o === 'object' && __objToStr(o) === '[object Array]'; +}; +clone.__isArray = __isArray; + +function __isRegExp(o) { + return typeof o === 'object' && __objToStr(o) === '[object RegExp]'; +}; +clone.__isRegExp = __isRegExp; + +function __getRegExpFlags(re) { + var flags = ''; + if (re.global) flags += 'g'; + if (re.ignoreCase) flags += 'i'; + if (re.multiline) flags += 'm'; + return flags; +}; +clone.__getRegExpFlags = __getRegExpFlags; + +return clone; +})(); + +if ( true && module.exports) { + module.exports = clone; +} + + +/***/ }), +/* 389 */ +/***/ (function(module, exports) { + +module.exports = [ + [ 0x0300, 0x036F ], [ 0x0483, 0x0486 ], [ 0x0488, 0x0489 ], + [ 0x0591, 0x05BD ], [ 0x05BF, 0x05BF ], [ 0x05C1, 0x05C2 ], + [ 0x05C4, 0x05C5 ], [ 0x05C7, 0x05C7 ], [ 0x0600, 0x0603 ], + [ 0x0610, 0x0615 ], [ 0x064B, 0x065E ], [ 0x0670, 0x0670 ], + [ 0x06D6, 0x06E4 ], [ 0x06E7, 0x06E8 ], [ 0x06EA, 0x06ED ], + [ 0x070F, 0x070F ], [ 0x0711, 0x0711 ], [ 0x0730, 0x074A ], + [ 0x07A6, 0x07B0 ], [ 0x07EB, 0x07F3 ], [ 0x0901, 0x0902 ], + [ 0x093C, 0x093C ], [ 0x0941, 0x0948 ], [ 0x094D, 0x094D ], + [ 0x0951, 0x0954 ], [ 0x0962, 0x0963 ], [ 0x0981, 0x0981 ], + [ 0x09BC, 0x09BC ], [ 0x09C1, 0x09C4 ], [ 0x09CD, 0x09CD ], + [ 0x09E2, 0x09E3 ], [ 0x0A01, 0x0A02 ], [ 0x0A3C, 0x0A3C ], + [ 0x0A41, 0x0A42 ], [ 0x0A47, 0x0A48 ], [ 0x0A4B, 0x0A4D ], + [ 0x0A70, 0x0A71 ], [ 0x0A81, 0x0A82 ], [ 0x0ABC, 0x0ABC ], + [ 0x0AC1, 0x0AC5 ], [ 0x0AC7, 0x0AC8 ], [ 0x0ACD, 0x0ACD ], + [ 0x0AE2, 0x0AE3 ], [ 0x0B01, 0x0B01 ], [ 0x0B3C, 0x0B3C ], + [ 0x0B3F, 0x0B3F ], [ 0x0B41, 0x0B43 ], [ 0x0B4D, 0x0B4D ], + [ 0x0B56, 0x0B56 ], [ 0x0B82, 0x0B82 ], [ 0x0BC0, 0x0BC0 ], + [ 0x0BCD, 0x0BCD ], [ 0x0C3E, 0x0C40 ], [ 0x0C46, 0x0C48 ], + [ 0x0C4A, 0x0C4D ], [ 0x0C55, 0x0C56 ], [ 0x0CBC, 0x0CBC ], + [ 0x0CBF, 0x0CBF ], [ 0x0CC6, 0x0CC6 ], [ 0x0CCC, 0x0CCD ], + [ 0x0CE2, 0x0CE3 ], [ 0x0D41, 0x0D43 ], [ 0x0D4D, 0x0D4D ], + [ 0x0DCA, 0x0DCA ], [ 0x0DD2, 0x0DD4 ], [ 0x0DD6, 0x0DD6 ], + [ 0x0E31, 0x0E31 ], [ 0x0E34, 0x0E3A ], [ 0x0E47, 0x0E4E ], + [ 0x0EB1, 0x0EB1 ], [ 0x0EB4, 0x0EB9 ], [ 0x0EBB, 0x0EBC ], + [ 0x0EC8, 0x0ECD ], [ 0x0F18, 0x0F19 ], [ 0x0F35, 0x0F35 ], + [ 0x0F37, 0x0F37 ], [ 0x0F39, 0x0F39 ], [ 0x0F71, 0x0F7E ], + [ 0x0F80, 0x0F84 ], [ 0x0F86, 0x0F87 ], [ 0x0F90, 0x0F97 ], + [ 0x0F99, 0x0FBC ], [ 0x0FC6, 0x0FC6 ], [ 0x102D, 0x1030 ], + [ 0x1032, 0x1032 ], [ 0x1036, 0x1037 ], [ 0x1039, 0x1039 ], + [ 0x1058, 0x1059 ], [ 0x1160, 0x11FF ], [ 0x135F, 0x135F ], + [ 0x1712, 0x1714 ], [ 0x1732, 0x1734 ], [ 0x1752, 0x1753 ], + [ 0x1772, 0x1773 ], [ 0x17B4, 0x17B5 ], [ 0x17B7, 0x17BD ], + [ 0x17C6, 0x17C6 ], [ 0x17C9, 0x17D3 ], [ 0x17DD, 0x17DD ], + [ 0x180B, 0x180D ], [ 0x18A9, 0x18A9 ], [ 0x1920, 0x1922 ], + [ 0x1927, 0x1928 ], [ 0x1932, 0x1932 ], [ 0x1939, 0x193B ], + [ 0x1A17, 0x1A18 ], [ 0x1B00, 0x1B03 ], [ 0x1B34, 0x1B34 ], + [ 0x1B36, 0x1B3A ], [ 0x1B3C, 0x1B3C ], [ 0x1B42, 0x1B42 ], + [ 0x1B6B, 0x1B73 ], [ 0x1DC0, 0x1DCA ], [ 0x1DFE, 0x1DFF ], + [ 0x200B, 0x200F ], [ 0x202A, 0x202E ], [ 0x2060, 0x2063 ], + [ 0x206A, 0x206F ], [ 0x20D0, 0x20EF ], [ 0x302A, 0x302F ], + [ 0x3099, 0x309A ], [ 0xA806, 0xA806 ], [ 0xA80B, 0xA80B ], + [ 0xA825, 0xA826 ], [ 0xFB1E, 0xFB1E ], [ 0xFE00, 0xFE0F ], + [ 0xFE20, 0xFE23 ], [ 0xFEFF, 0xFEFF ], [ 0xFFF9, 0xFFFB ], + [ 0x10A01, 0x10A03 ], [ 0x10A05, 0x10A06 ], [ 0x10A0C, 0x10A0F ], + [ 0x10A38, 0x10A3A ], [ 0x10A3F, 0x10A3F ], [ 0x1D167, 0x1D169 ], + [ 0x1D173, 0x1D182 ], [ 0x1D185, 0x1D18B ], [ 0x1D1AA, 0x1D1AD ], + [ 0x1D242, 0x1D244 ], [ 0xE0001, 0xE0001 ], [ 0xE0020, 0xE007F ], + [ 0xE0100, 0xE01EF ] +] + + +/***/ }), +/* 390 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = ({stream = process.stdout} = {}) => { + return Boolean( + stream && stream.isTTY && + process.env.TERM !== 'dumb' && + !('CI' in process.env) + ); +}; + + +/***/ }), +/* 391 */ +/***/ (function(module, exports, __webpack_require__) { + +var Stream = __webpack_require__(137) + +module.exports = MuteStream + +// var out = new MuteStream(process.stdout) +// argument auto-pipes +function MuteStream (opts) { + Stream.apply(this) + opts = opts || {} + this.writable = this.readable = true + this.muted = false + this.on('pipe', this._onpipe) + this.replace = opts.replace + + // For readline-type situations + // This much at the start of a line being redrawn after a ctrl char + // is seen (such as backspace) won't be redrawn as the replacement + this._prompt = opts.prompt || null + this._hadControl = false +} + +MuteStream.prototype = Object.create(Stream.prototype) + +Object.defineProperty(MuteStream.prototype, 'constructor', { + value: MuteStream, + enumerable: false +}) + +MuteStream.prototype.mute = function () { + this.muted = true +} + +MuteStream.prototype.unmute = function () { + this.muted = false +} + +Object.defineProperty(MuteStream.prototype, '_onpipe', { + value: onPipe, + enumerable: false, + writable: true, + configurable: true +}) + +function onPipe (src) { + this._src = src +} + +Object.defineProperty(MuteStream.prototype, 'isTTY', { + get: getIsTTY, + set: setIsTTY, + enumerable: true, + configurable: true +}) + +function getIsTTY () { + return( (this._dest) ? this._dest.isTTY + : (this._src) ? this._src.isTTY + : false + ) +} + +// basically just get replace the getter/setter with a regular value +function setIsTTY (isTTY) { + Object.defineProperty(this, 'isTTY', { + value: isTTY, + enumerable: true, + writable: true, + configurable: true + }) +} + +Object.defineProperty(MuteStream.prototype, 'rows', { + get: function () { + return( this._dest ? this._dest.rows + : this._src ? this._src.rows + : undefined ) + }, enumerable: true, configurable: true }) + +Object.defineProperty(MuteStream.prototype, 'columns', { + get: function () { + return( this._dest ? this._dest.columns + : this._src ? this._src.columns + : undefined ) + }, enumerable: true, configurable: true }) + + +MuteStream.prototype.pipe = function (dest, options) { + this._dest = dest + return Stream.prototype.pipe.call(this, dest, options) +} + +MuteStream.prototype.pause = function () { + if (this._src) return this._src.pause() +} + +MuteStream.prototype.resume = function () { + if (this._src) return this._src.resume() +} + +MuteStream.prototype.write = function (c) { + if (this.muted) { + if (!this.replace) return true + if (c.match(/^\u001b/)) { + if(c.indexOf(this._prompt) === 0) { + c = c.substr(this._prompt.length); + c = c.replace(/./g, this.replace); + c = this._prompt + c; + } + this._hadControl = true + return this.emit('data', c) + } else { + if (this._prompt && this._hadControl && + c.indexOf(this._prompt) === 0) { + this._hadControl = false + this.emit('data', this._prompt) + c = c.substr(this._prompt.length) + } + c = c.toString().replace(/./g, this.replace) + } + } + this.emit('data', c) +} + +MuteStream.prototype.end = function (c) { + if (this.muted) { + if (c && this.replace) { + c = c.toString().replace(/./g, this.replace) + } else { + c = null + } + } + if (c) this.emit('data', c) + this.emit('end') +} + +function proxy (fn) { return function () { + var d = this._dest + var s = this._src + if (d && d[fn]) d[fn].apply(d, arguments) + if (s && s[fn]) s[fn].apply(s, arguments) +}} + +MuteStream.prototype.destroy = proxy('destroy') +MuteStream.prototype.destroySoon = proxy('destroySoon') +MuteStream.prototype.close = proxy('close') + + +/***/ }), +/* 392 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -48701,7 +48927,7 @@ const RunCommand = { }; /***/ }), -/* 389 */ +/* 393 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -48711,7 +48937,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(143); /* harmony import */ var _utils_parallelize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(144); /* harmony import */ var _utils_projects__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(145); -/* harmony import */ var _utils_watch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(390); +/* harmony import */ var _utils_watch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(394); /* * Licensed to Elasticsearch B.V. under one or more contributor * license agreements. See the NOTICE file distributed with @@ -48796,14 +49022,14 @@ const WatchCommand = { }; /***/ }), -/* 390 */ +/* 394 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "waitUntilWatchIsReady", function() { return waitUntilWatchIsReady; }); /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(391); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(395); /* * Licensed to Elasticsearch B.V. under one or more contributor * license agreements. See the NOTICE file distributed with @@ -48870,141 +49096,141 @@ function waitUntilWatchIsReady(stream, opts = {}) { } /***/ }), -/* 391 */ +/* 395 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(392); +/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(396); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "audit", function() { return _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__["audit"]; }); -/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(393); +/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(397); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__["auditTime"]; }); -/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(394); +/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(398); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__["buffer"]; }); -/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(395); +/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(399); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferCount", function() { return _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__["bufferCount"]; }); -/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(396); +/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(400); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferTime", function() { return _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__["bufferTime"]; }); -/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(397); +/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(401); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferToggle", function() { return _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__["bufferToggle"]; }); -/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(398); +/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(402); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferWhen", function() { return _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__["bufferWhen"]; }); -/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(399); +/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(403); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "catchError", function() { return _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__["catchError"]; }); -/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(400); +/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(404); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineAll", function() { return _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__["combineAll"]; }); -/* harmony import */ var _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(401); +/* harmony import */ var _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(405); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__["combineLatest"]; }); -/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(402); +/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(406); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__["concat"]; }); /* harmony import */ var _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(80); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatAll", function() { return _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__["concatAll"]; }); -/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(403); +/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(407); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMap", function() { return _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__["concatMap"]; }); -/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(404); +/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(408); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__["concatMapTo"]; }); -/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(405); +/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(409); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "count", function() { return _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__["count"]; }); -/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(406); +/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(410); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__["debounce"]; }); -/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(407); +/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(411); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounceTime", function() { return _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__["debounceTime"]; }); -/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(408); +/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(412); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultIfEmpty", function() { return _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__["defaultIfEmpty"]; }); -/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(409); +/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(413); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__["delay"]; }); -/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(411); +/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(415); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delayWhen", function() { return _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__["delayWhen"]; }); -/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(412); +/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(416); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dematerialize", function() { return _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__["dematerialize"]; }); -/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(413); +/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(417); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__["distinct"]; }); -/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(414); +/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(418); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__["distinctUntilChanged"]; }); -/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(415); +/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(419); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__["distinctUntilKeyChanged"]; }); -/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(416); +/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(420); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__["elementAt"]; }); -/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(419); +/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(423); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "endWith", function() { return _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__["endWith"]; }); -/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(420); +/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(424); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "every", function() { return _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__["every"]; }); -/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(421); +/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(425); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaust", function() { return _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__["exhaust"]; }); -/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(422); +/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(426); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaustMap", function() { return _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__["exhaustMap"]; }); -/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(423); +/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(427); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "expand", function() { return _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__["expand"]; }); /* harmony import */ var _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(104); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__["filter"]; }); -/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(424); +/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(428); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "finalize", function() { return _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__["finalize"]; }); -/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(425); +/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(429); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "find", function() { return _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__["find"]; }); -/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(426); +/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(430); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__["findIndex"]; }); -/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(427); +/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(431); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "first", function() { return _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__["first"]; }); /* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(31); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__["groupBy"]; }); -/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(428); +/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(432); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ignoreElements", function() { return _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__["ignoreElements"]; }); -/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(429); +/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(433); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__["isEmpty"]; }); -/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(430); +/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(434); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "last", function() { return _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__["last"]; }); /* harmony import */ var _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(66); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__["map"]; }); -/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(432); +/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(436); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapTo", function() { return _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__["mapTo"]; }); -/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(433); +/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(437); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "materialize", function() { return _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__["materialize"]; }); -/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(434); +/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(438); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__["max"]; }); -/* harmony import */ var _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(437); +/* harmony import */ var _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(441); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__["merge"]; }); /* harmony import */ var _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(81); @@ -49015,175 +49241,175 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flatMap", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__["mergeMap"]; }); -/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(438); +/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(442); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeMapTo", function() { return _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__["mergeMapTo"]; }); -/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(439); +/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(443); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeScan", function() { return _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__["mergeScan"]; }); -/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(440); +/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(444); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__["min"]; }); -/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(441); +/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(445); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "multicast", function() { return _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__["multicast"]; }); /* harmony import */ var _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(41); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "observeOn", function() { return _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__["observeOn"]; }); -/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(442); +/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(446); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__["onErrorResumeNext"]; }); -/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(443); +/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(447); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairwise", function() { return _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__["pairwise"]; }); -/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(444); +/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(448); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__["partition"]; }); -/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(445); +/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(449); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pluck", function() { return _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__["pluck"]; }); -/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(446); +/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(450); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__["publish"]; }); -/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(447); +/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(451); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__["publishBehavior"]; }); -/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(448); +/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(452); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__["publishLast"]; }); -/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(449); +/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(453); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__["publishReplay"]; }); -/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(450); +/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(454); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "race", function() { return _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__["race"]; }); -/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(435); +/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(439); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__["reduce"]; }); -/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(451); +/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(455); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__["repeat"]; }); -/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(452); +/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(456); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeatWhen", function() { return _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__["repeatWhen"]; }); -/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(453); +/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(457); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__["retry"]; }); -/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(454); +/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(458); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retryWhen", function() { return _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__["retryWhen"]; }); /* harmony import */ var _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(30); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "refCount", function() { return _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__["refCount"]; }); -/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(455); +/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(459); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sample", function() { return _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__["sample"]; }); -/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(456); +/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(460); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sampleTime", function() { return _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__["sampleTime"]; }); -/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(436); +/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(440); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__["scan"]; }); -/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(457); +/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(461); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sequenceEqual", function() { return _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__["sequenceEqual"]; }); -/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(458); +/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(462); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "share", function() { return _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__["share"]; }); -/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(459); +/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(463); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shareReplay", function() { return _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__["shareReplay"]; }); -/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(460); +/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(464); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "single", function() { return _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__["single"]; }); -/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(461); +/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(465); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skip", function() { return _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__["skip"]; }); -/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(462); +/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(466); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipLast", function() { return _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__["skipLast"]; }); -/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(463); +/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(467); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipUntil", function() { return _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__["skipUntil"]; }); -/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(464); +/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(468); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipWhile", function() { return _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__["skipWhile"]; }); -/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(465); +/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(469); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "startWith", function() { return _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__["startWith"]; }); -/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(466); +/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(470); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__["subscribeOn"]; }); -/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(468); +/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(472); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__["switchAll"]; }); -/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(469); +/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(473); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMap", function() { return _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__["switchMap"]; }); -/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(470); +/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(474); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__["switchMapTo"]; }); -/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(418); +/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(422); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "take", function() { return _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__["take"]; }); -/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(431); +/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(435); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeLast", function() { return _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__["takeLast"]; }); -/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(471); +/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(475); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeUntil", function() { return _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__["takeUntil"]; }); -/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(472); +/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(476); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeWhile", function() { return _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__["takeWhile"]; }); -/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(473); +/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(477); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__["tap"]; }); -/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(474); +/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(478); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__["throttle"]; }); -/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(475); +/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(479); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttleTime", function() { return _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__["throttleTime"]; }); -/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(417); +/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(421); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwIfEmpty", function() { return _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__["throwIfEmpty"]; }); -/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(476); +/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(480); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__["timeInterval"]; }); -/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(477); +/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(481); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__["timeout"]; }); -/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(478); +/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(482); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__["timeoutWith"]; }); -/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(479); +/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(483); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timestamp", function() { return _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__["timestamp"]; }); -/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(480); +/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(484); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__["toArray"]; }); -/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(481); +/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(485); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__["window"]; }); -/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(482); +/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(486); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowCount", function() { return _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__["windowCount"]; }); -/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(483); +/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(487); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowTime", function() { return _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__["windowTime"]; }); -/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(484); +/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(488); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowToggle", function() { return _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__["windowToggle"]; }); -/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(485); +/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(489); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowWhen", function() { return _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__["windowWhen"]; }); -/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(486); +/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(490); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withLatestFrom", function() { return _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__["withLatestFrom"]; }); -/* harmony import */ var _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(487); +/* harmony import */ var _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(491); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__["zip"]; }); -/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(488); +/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(492); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zipAll", function() { return _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__["zipAll"]; }); /** PURE_IMPORTS_START PURE_IMPORTS_END */ @@ -49295,7 +49521,7 @@ __webpack_require__.r(__webpack_exports__); /***/ }), -/* 392 */ +/* 396 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -49376,14 +49602,14 @@ var AuditSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 393 */ +/* 397 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return auditTime; }); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55); -/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(392); +/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(396); /* harmony import */ var _observable_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(107); /** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */ @@ -49399,7 +49625,7 @@ function auditTime(duration, scheduler) { /***/ }), -/* 394 */ +/* 398 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -49448,7 +49674,7 @@ var BufferSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 395 */ +/* 399 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -49549,7 +49775,7 @@ var BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 396 */ +/* 400 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -49710,7 +49936,7 @@ function dispatchBufferClose(arg) { /***/ }), -/* 397 */ +/* 401 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -49830,7 +50056,7 @@ var BufferToggleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 398 */ +/* 402 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -49925,7 +50151,7 @@ var BufferWhenSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 399 */ +/* 403 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -49989,7 +50215,7 @@ var CatchSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 400 */ +/* 404 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50005,7 +50231,7 @@ function combineAll(project) { /***/ }), -/* 401 */ +/* 405 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50037,7 +50263,7 @@ function combineLatest() { /***/ }), -/* 402 */ +/* 406 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50057,7 +50283,7 @@ function concat() { /***/ }), -/* 403 */ +/* 407 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50073,13 +50299,13 @@ function concatMap(project, resultSelector) { /***/ }), -/* 404 */ +/* 408 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return concatMapTo; }); -/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(403); +/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(407); /** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */ function concatMapTo(innerObservable, resultSelector) { @@ -50089,7 +50315,7 @@ function concatMapTo(innerObservable, resultSelector) { /***/ }), -/* 405 */ +/* 409 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50154,7 +50380,7 @@ var CountSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 406 */ +/* 410 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50242,7 +50468,7 @@ var DebounceSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 407 */ +/* 411 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50318,7 +50544,7 @@ function dispatchNext(subscriber) { /***/ }), -/* 408 */ +/* 412 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50368,7 +50594,7 @@ var DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 409 */ +/* 413 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50376,7 +50602,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return delay; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55); -/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(410); +/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(414); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11); /* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(42); /** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */ @@ -50475,7 +50701,7 @@ var DelayMessage = /*@__PURE__*/ (function () { /***/ }), -/* 410 */ +/* 414 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50489,7 +50715,7 @@ function isDate(value) { /***/ }), -/* 411 */ +/* 415 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50635,7 +50861,7 @@ var SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 412 */ +/* 416 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50673,7 +50899,7 @@ var DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 413 */ +/* 417 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50751,7 +50977,7 @@ var DistinctSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 414 */ +/* 418 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50822,13 +51048,13 @@ var DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 415 */ +/* 419 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return distinctUntilKeyChanged; }); -/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(414); +/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(418); /** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */ function distinctUntilKeyChanged(key, compare) { @@ -50838,7 +51064,7 @@ function distinctUntilKeyChanged(key, compare) { /***/ }), -/* 416 */ +/* 420 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50846,9 +51072,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return elementAt; }); /* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62); /* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(104); -/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(417); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(408); -/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(418); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(421); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(412); +/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(422); /** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */ @@ -50870,7 +51096,7 @@ function elementAt(index, defaultValue) { /***/ }), -/* 417 */ +/* 421 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50936,7 +51162,7 @@ function defaultErrorFactory() { /***/ }), -/* 418 */ +/* 422 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -50998,7 +51224,7 @@ var TakeSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 419 */ +/* 423 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51020,7 +51246,7 @@ function endWith() { /***/ }), -/* 420 */ +/* 424 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51082,7 +51308,7 @@ var EverySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 421 */ +/* 425 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51139,7 +51365,7 @@ var SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 422 */ +/* 426 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51239,7 +51465,7 @@ var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 423 */ +/* 427 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51358,7 +51584,7 @@ var ExpandSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 424 */ +/* 428 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51396,7 +51622,7 @@ var FinallySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 425 */ +/* 429 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51468,13 +51694,13 @@ var FindValueSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 426 */ +/* 430 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return findIndex; }); -/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(425); +/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(429); /** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */ function findIndex(predicate, thisArg) { @@ -51484,7 +51710,7 @@ function findIndex(predicate, thisArg) { /***/ }), -/* 427 */ +/* 431 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51492,9 +51718,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "first", function() { return first; }); /* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63); /* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(104); -/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(418); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(408); -/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(417); +/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(422); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(412); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(421); /* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25); /** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */ @@ -51511,7 +51737,7 @@ function first(predicate, defaultValue) { /***/ }), -/* 428 */ +/* 432 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51548,7 +51774,7 @@ var IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 429 */ +/* 433 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51592,7 +51818,7 @@ var IsEmptySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 430 */ +/* 434 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51600,9 +51826,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "last", function() { return last; }); /* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63); /* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(104); -/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(431); -/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(417); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(408); +/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(435); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(421); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(412); /* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25); /** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */ @@ -51619,7 +51845,7 @@ function last(predicate, defaultValue) { /***/ }), -/* 431 */ +/* 435 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51696,7 +51922,7 @@ var TakeLastSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 432 */ +/* 436 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51735,7 +51961,7 @@ var MapToSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 433 */ +/* 437 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51785,13 +52011,13 @@ var MaterializeSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 434 */ +/* 438 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; }); -/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(435); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(439); /** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ function max(comparer) { @@ -51804,15 +52030,15 @@ function max(comparer) { /***/ }), -/* 435 */ +/* 439 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return reduce; }); -/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(436); -/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(431); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(408); +/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(440); +/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(435); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(412); /* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24); /** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */ @@ -51833,7 +52059,7 @@ function reduce(accumulator, seed) { /***/ }), -/* 436 */ +/* 440 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51915,7 +52141,7 @@ var ScanSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 437 */ +/* 441 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51935,7 +52161,7 @@ function merge() { /***/ }), -/* 438 */ +/* 442 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -51960,7 +52186,7 @@ function mergeMapTo(innerObservable, resultSelector, concurrent) { /***/ }), -/* 439 */ +/* 443 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52075,13 +52301,13 @@ var MergeScanSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 440 */ +/* 444 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "min", function() { return min; }); -/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(435); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(439); /** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ function min(comparer) { @@ -52094,7 +52320,7 @@ function min(comparer) { /***/ }), -/* 441 */ +/* 445 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52143,7 +52369,7 @@ var MulticastOperator = /*@__PURE__*/ (function () { /***/ }), -/* 442 */ +/* 446 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52237,7 +52463,7 @@ var OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 443 */ +/* 447 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52285,7 +52511,7 @@ var PairwiseSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 444 */ +/* 448 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52308,7 +52534,7 @@ function partition(predicate, thisArg) { /***/ }), -/* 445 */ +/* 449 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52348,14 +52574,14 @@ function plucker(props, length) { /***/ }), -/* 446 */ +/* 450 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return publish; }); /* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(441); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(445); /** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */ @@ -52368,14 +52594,14 @@ function publish(selector) { /***/ }), -/* 447 */ +/* 451 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return publishBehavior; }); /* harmony import */ var _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(441); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(445); /** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */ @@ -52386,14 +52612,14 @@ function publishBehavior(value) { /***/ }), -/* 448 */ +/* 452 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return publishLast; }); /* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(441); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(445); /** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */ @@ -52404,14 +52630,14 @@ function publishLast() { /***/ }), -/* 449 */ +/* 453 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return publishReplay; }); /* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(441); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(445); /** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */ @@ -52427,7 +52653,7 @@ function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { /***/ }), -/* 450 */ +/* 454 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52454,7 +52680,7 @@ function race() { /***/ }), -/* 451 */ +/* 455 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52519,7 +52745,7 @@ var RepeatSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 452 */ +/* 456 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52615,7 +52841,7 @@ var RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 453 */ +/* 457 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52668,7 +52894,7 @@ var RetrySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 454 */ +/* 458 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52756,7 +52982,7 @@ var RetryWhenSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 455 */ +/* 459 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52813,7 +53039,7 @@ var SampleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 456 */ +/* 460 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52873,7 +53099,7 @@ function dispatchNotification(state) { /***/ }), -/* 457 */ +/* 461 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -52996,13 +53222,13 @@ var SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 458 */ +/* 462 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "share", function() { return share; }); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(441); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(445); /* harmony import */ var _refCount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30); /* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27); /** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */ @@ -53019,7 +53245,7 @@ function share() { /***/ }), -/* 459 */ +/* 463 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53084,7 +53310,7 @@ function shareReplayOperator(_a) { /***/ }), -/* 460 */ +/* 464 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53164,7 +53390,7 @@ var SingleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 461 */ +/* 465 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53206,7 +53432,7 @@ var SkipSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 462 */ +/* 466 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53268,7 +53494,7 @@ var SkipLastSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 463 */ +/* 467 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53329,7 +53555,7 @@ var SkipUntilSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 464 */ +/* 468 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53385,7 +53611,7 @@ var SkipWhileSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 465 */ +/* 469 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53414,13 +53640,13 @@ function startWith() { /***/ }), -/* 466 */ +/* 470 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return subscribeOn; }); -/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(467); +/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(471); /** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */ function subscribeOn(scheduler, delay) { @@ -53445,7 +53671,7 @@ var SubscribeOnOperator = /*@__PURE__*/ (function () { /***/ }), -/* 467 */ +/* 471 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53509,13 +53735,13 @@ var SubscribeOnObservable = /*@__PURE__*/ (function (_super) { /***/ }), -/* 468 */ +/* 472 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return switchAll; }); -/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(469); +/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(473); /* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25); /** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */ @@ -53527,7 +53753,7 @@ function switchAll() { /***/ }), -/* 469 */ +/* 473 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53621,13 +53847,13 @@ var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 470 */ +/* 474 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return switchMapTo; }); -/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(469); +/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(473); /** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */ function switchMapTo(innerObservable, resultSelector) { @@ -53637,7 +53863,7 @@ function switchMapTo(innerObservable, resultSelector) { /***/ }), -/* 471 */ +/* 475 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53687,7 +53913,7 @@ var TakeUntilSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 472 */ +/* 476 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53755,7 +53981,7 @@ var TakeWhileSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 473 */ +/* 477 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53843,7 +54069,7 @@ var TapSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 474 */ +/* 478 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53947,7 +54173,7 @@ var ThrottleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 475 */ +/* 479 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53956,7 +54182,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55); -/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(474); +/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(478); /** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */ @@ -54045,7 +54271,7 @@ function dispatchNext(arg) { /***/ }), -/* 476 */ +/* 480 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54053,7 +54279,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return timeInterval; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TimeInterval", function() { return TimeInterval; }); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55); -/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(436); +/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(440); /* harmony import */ var _observable_defer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(90); /* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(66); /** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */ @@ -54089,7 +54315,7 @@ var TimeInterval = /*@__PURE__*/ (function () { /***/ }), -/* 477 */ +/* 481 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54097,7 +54323,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return timeout; }); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55); /* harmony import */ var _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64); -/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(478); +/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(482); /* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49); /** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */ @@ -54114,7 +54340,7 @@ function timeout(due, scheduler) { /***/ }), -/* 478 */ +/* 482 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54122,7 +54348,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return timeoutWith; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55); -/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(410); +/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(414); /* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(69); /* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70); /** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ @@ -54196,7 +54422,7 @@ var TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 479 */ +/* 483 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54226,13 +54452,13 @@ var Timestamp = /*@__PURE__*/ (function () { /***/ }), -/* 480 */ +/* 484 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return toArray; }); -/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(435); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(439); /** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ function toArrayReducer(arr, item, index) { @@ -54249,7 +54475,7 @@ function toArray() { /***/ }), -/* 481 */ +/* 485 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54329,7 +54555,7 @@ var WindowSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 482 */ +/* 486 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54419,7 +54645,7 @@ var WindowCountSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 483 */ +/* 487 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54589,7 +54815,7 @@ function dispatchWindowClose(state) { /***/ }), -/* 484 */ +/* 488 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54732,7 +54958,7 @@ var WindowToggleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 485 */ +/* 489 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54829,7 +55055,7 @@ var WindowSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 486 */ +/* 490 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54924,7 +55150,7 @@ var WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 487 */ +/* 491 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54946,7 +55172,7 @@ function zip() { /***/ }), -/* 488 */ +/* 492 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54962,7 +55188,7 @@ function zipAll(project) { /***/ }), -/* 489 */ +/* 493 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54971,8 +55197,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils_errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(162); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(143); /* harmony import */ var _utils_projects__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(145); -/* harmony import */ var _utils_projects_tree__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(490); -/* harmony import */ var _utils_kibana__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(491); +/* harmony import */ var _utils_projects_tree__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(494); +/* harmony import */ var _utils_kibana__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(495); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } @@ -55054,13 +55280,13 @@ function toArray(value) { } /***/ }), -/* 490 */ +/* 494 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderProjectsTree", function() { return renderProjectsTree; }); -/* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(227); +/* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(112); /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(chalk__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__); @@ -55207,7 +55433,7 @@ function addProjectToTree(tree, pathParts, project) { } /***/ }), -/* 491 */ +/* 495 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55215,13 +55441,13 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Kibana", function() { return Kibana; }); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var multimatch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(492); +/* harmony import */ var multimatch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(496); /* harmony import */ var multimatch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(multimatch__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var is_path_inside__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(366); +/* harmony import */ var is_path_inside__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(361); /* harmony import */ var is_path_inside__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(is_path_inside__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _yarn_lock__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(279); +/* harmony import */ var _yarn_lock__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(274); /* harmony import */ var _projects__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(145); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(276); +/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(271); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } @@ -55383,15 +55609,15 @@ class Kibana { } /***/ }), -/* 492 */ +/* 496 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const minimatch = __webpack_require__(149); -const arrayUnion = __webpack_require__(493); -const arrayDiffer = __webpack_require__(494); -const arrify = __webpack_require__(495); +const arrayUnion = __webpack_require__(497); +const arrayDiffer = __webpack_require__(498); +const arrify = __webpack_require__(499); module.exports = (list, patterns, options = {}) => { list = arrify(list); @@ -55415,7 +55641,7 @@ module.exports = (list, patterns, options = {}) => { /***/ }), -/* 493 */ +/* 497 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -55427,7 +55653,7 @@ module.exports = (...arguments_) => { /***/ }), -/* 494 */ +/* 498 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -55442,7 +55668,7 @@ module.exports = arrayDiffer; /***/ }), -/* 495 */ +/* 499 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -55472,12 +55698,12 @@ module.exports = arrify; /***/ }), -/* 496 */ +/* 500 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _build_production_projects__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(497); +/* harmony import */ var _build_production_projects__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(501); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildProductionProjects", function() { return _build_production_projects__WEBPACK_IMPORTED_MODULE_0__["buildProductionProjects"]; }); /* @@ -55501,19 +55727,19 @@ __webpack_require__.r(__webpack_exports__); /***/ }), -/* 497 */ +/* 501 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildProductionProjects", function() { return buildProductionProjects; }); -/* harmony import */ var cpy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(498); +/* harmony import */ var cpy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(502); /* harmony import */ var cpy__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cpy__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var del__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(285); +/* harmony import */ var del__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(280); /* harmony import */ var del__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(del__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(276); +/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(271); /* harmony import */ var _utils_fs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(130); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(143); /* harmony import */ var _utils_package_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(164); @@ -55649,7 +55875,7 @@ async function copyToBuild(project, kibanaRoot, buildRoot) { } /***/ }), -/* 498 */ +/* 502 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -55657,13 +55883,13 @@ async function copyToBuild(project, kibanaRoot, buildRoot) { const EventEmitter = __webpack_require__(155); const path = __webpack_require__(4); const os = __webpack_require__(120); -const pAll = __webpack_require__(499); -const arrify = __webpack_require__(501); -const globby = __webpack_require__(502); -const isGlob = __webpack_require__(700); -const cpFile = __webpack_require__(701); -const junk = __webpack_require__(713); -const CpyError = __webpack_require__(714); +const pAll = __webpack_require__(503); +const arrify = __webpack_require__(505); +const globby = __webpack_require__(506); +const isGlob = __webpack_require__(704); +const cpFile = __webpack_require__(705); +const junk = __webpack_require__(717); +const CpyError = __webpack_require__(718); const defaultOptions = { ignoreJunk: true @@ -55782,12 +56008,12 @@ module.exports = (source, destination, { /***/ }), -/* 499 */ +/* 503 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pMap = __webpack_require__(500); +const pMap = __webpack_require__(504); module.exports = (iterable, options) => pMap(iterable, element => element(), options); // TODO: Remove this for the next major release @@ -55795,7 +56021,7 @@ module.exports.default = module.exports; /***/ }), -/* 500 */ +/* 504 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -55874,7 +56100,7 @@ module.exports.default = pMap; /***/ }), -/* 501 */ +/* 505 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -55904,17 +56130,17 @@ module.exports = arrify; /***/ }), -/* 502 */ +/* 506 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(133); -const arrayUnion = __webpack_require__(503); +const arrayUnion = __webpack_require__(507); const glob = __webpack_require__(146); -const fastGlob = __webpack_require__(505); -const dirGlob = __webpack_require__(693); -const gitignore = __webpack_require__(696); +const fastGlob = __webpack_require__(509); +const dirGlob = __webpack_require__(697); +const gitignore = __webpack_require__(700); const DEFAULT_FILTER = () => false; @@ -56059,12 +56285,12 @@ module.exports.gitignore = gitignore; /***/ }), -/* 503 */ +/* 507 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var arrayUniq = __webpack_require__(504); +var arrayUniq = __webpack_require__(508); module.exports = function () { return arrayUniq([].concat.apply([], arguments)); @@ -56072,7 +56298,7 @@ module.exports = function () { /***/ }), -/* 504 */ +/* 508 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -56141,10 +56367,10 @@ if ('Set' in global) { /***/ }), -/* 505 */ +/* 509 */ /***/ (function(module, exports, __webpack_require__) { -const pkg = __webpack_require__(506); +const pkg = __webpack_require__(510); module.exports = pkg.async; module.exports.default = pkg.async; @@ -56157,19 +56383,19 @@ module.exports.generateTasks = pkg.generateTasks; /***/ }), -/* 506 */ +/* 510 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var optionsManager = __webpack_require__(507); -var taskManager = __webpack_require__(508); -var reader_async_1 = __webpack_require__(664); -var reader_stream_1 = __webpack_require__(688); -var reader_sync_1 = __webpack_require__(689); -var arrayUtils = __webpack_require__(691); -var streamUtils = __webpack_require__(692); +var optionsManager = __webpack_require__(511); +var taskManager = __webpack_require__(512); +var reader_async_1 = __webpack_require__(668); +var reader_stream_1 = __webpack_require__(692); +var reader_sync_1 = __webpack_require__(693); +var arrayUtils = __webpack_require__(695); +var streamUtils = __webpack_require__(696); /** * Synchronous API. */ @@ -56235,7 +56461,7 @@ function isString(source) { /***/ }), -/* 507 */ +/* 511 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -56273,13 +56499,13 @@ exports.prepare = prepare; /***/ }), -/* 508 */ +/* 512 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var patternUtils = __webpack_require__(509); +var patternUtils = __webpack_require__(513); /** * Generate tasks based on parent directory of each pattern. */ @@ -56370,16 +56596,16 @@ exports.convertPatternGroupToTask = convertPatternGroupToTask; /***/ }), -/* 509 */ +/* 513 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var path = __webpack_require__(4); -var globParent = __webpack_require__(510); -var isGlob = __webpack_require__(513); -var micromatch = __webpack_require__(514); +var globParent = __webpack_require__(514); +var isGlob = __webpack_require__(517); +var micromatch = __webpack_require__(518); var GLOBSTAR = '**'; /** * Return true for static pattern. @@ -56525,15 +56751,15 @@ exports.matchAny = matchAny; /***/ }), -/* 510 */ +/* 514 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var path = __webpack_require__(4); -var isglob = __webpack_require__(511); -var pathDirname = __webpack_require__(512); +var isglob = __webpack_require__(515); +var pathDirname = __webpack_require__(516); var isWin32 = __webpack_require__(120).platform() === 'win32'; module.exports = function globParent(str) { @@ -56556,7 +56782,7 @@ module.exports = function globParent(str) { /***/ }), -/* 511 */ +/* 515 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -56566,7 +56792,7 @@ module.exports = function globParent(str) { * Licensed under the MIT License. */ -var isExtglob = __webpack_require__(299); +var isExtglob = __webpack_require__(294); module.exports = function isGlob(str) { if (typeof str !== 'string' || str === '') { @@ -56587,7 +56813,7 @@ module.exports = function isGlob(str) { /***/ }), -/* 512 */ +/* 516 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -56737,7 +56963,7 @@ module.exports.win32 = win32; /***/ }), -/* 513 */ +/* 517 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -56747,7 +56973,7 @@ module.exports.win32 = win32; * Released under the MIT License. */ -var isExtglob = __webpack_require__(299); +var isExtglob = __webpack_require__(294); var chars = { '{': '}', '(': ')', '[': ']'}; module.exports = function isGlob(str, options) { @@ -56789,7 +57015,7 @@ module.exports = function isGlob(str, options) { /***/ }), -/* 514 */ +/* 518 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -56800,18 +57026,18 @@ module.exports = function isGlob(str, options) { */ var util = __webpack_require__(111); -var braces = __webpack_require__(515); -var toRegex = __webpack_require__(617); -var extend = __webpack_require__(625); +var braces = __webpack_require__(519); +var toRegex = __webpack_require__(621); +var extend = __webpack_require__(629); /** * Local dependencies */ -var compilers = __webpack_require__(628); -var parsers = __webpack_require__(660); -var cache = __webpack_require__(661); -var utils = __webpack_require__(662); +var compilers = __webpack_require__(632); +var parsers = __webpack_require__(664); +var cache = __webpack_require__(665); +var utils = __webpack_require__(666); var MAX_LENGTH = 1024 * 64; /** @@ -57673,7 +57899,7 @@ module.exports = micromatch; /***/ }), -/* 515 */ +/* 519 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -57683,18 +57909,18 @@ module.exports = micromatch; * Module dependencies */ -var toRegex = __webpack_require__(516); -var unique = __webpack_require__(528); -var extend = __webpack_require__(525); +var toRegex = __webpack_require__(520); +var unique = __webpack_require__(532); +var extend = __webpack_require__(529); /** * Local dependencies */ -var compilers = __webpack_require__(529); -var parsers = __webpack_require__(544); -var Braces = __webpack_require__(554); -var utils = __webpack_require__(530); +var compilers = __webpack_require__(533); +var parsers = __webpack_require__(548); +var Braces = __webpack_require__(558); +var utils = __webpack_require__(534); var MAX_LENGTH = 1024 * 64; var cache = {}; @@ -57998,15 +58224,15 @@ module.exports = braces; /***/ }), -/* 516 */ +/* 520 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var define = __webpack_require__(517); -var extend = __webpack_require__(525); -var not = __webpack_require__(527); +var define = __webpack_require__(521); +var extend = __webpack_require__(529); +var not = __webpack_require__(531); var MAX_LENGTH = 1024 * 64; /** @@ -58153,7 +58379,7 @@ module.exports.makeRe = makeRe; /***/ }), -/* 517 */ +/* 521 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -58166,7 +58392,7 @@ module.exports.makeRe = makeRe; -var isDescriptor = __webpack_require__(518); +var isDescriptor = __webpack_require__(522); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -58191,7 +58417,7 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 518 */ +/* 522 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -58204,9 +58430,9 @@ module.exports = function defineProperty(obj, prop, val) { -var typeOf = __webpack_require__(519); -var isAccessor = __webpack_require__(520); -var isData = __webpack_require__(523); +var typeOf = __webpack_require__(523); +var isAccessor = __webpack_require__(524); +var isData = __webpack_require__(527); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -58220,7 +58446,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 519 */ +/* 523 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -58373,7 +58599,7 @@ function isBuffer(val) { /***/ }), -/* 520 */ +/* 524 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -58386,7 +58612,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(521); +var typeOf = __webpack_require__(525); // accessor descriptor properties var accessor = { @@ -58449,10 +58675,10 @@ module.exports = isAccessorDescriptor; /***/ }), -/* 521 */ +/* 525 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(522); +var isBuffer = __webpack_require__(526); var toString = Object.prototype.toString; /** @@ -58571,7 +58797,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 522 */ +/* 526 */ /***/ (function(module, exports) { /*! @@ -58598,7 +58824,7 @@ function isSlowBuffer (obj) { /***/ }), -/* 523 */ +/* 527 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -58611,7 +58837,7 @@ function isSlowBuffer (obj) { -var typeOf = __webpack_require__(524); +var typeOf = __webpack_require__(528); // data descriptor properties var data = { @@ -58660,10 +58886,10 @@ module.exports = isDataDescriptor; /***/ }), -/* 524 */ +/* 528 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(522); +var isBuffer = __webpack_require__(526); var toString = Object.prototype.toString; /** @@ -58782,13 +59008,13 @@ module.exports = function kindOf(val) { /***/ }), -/* 525 */ +/* 529 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(526); +var isObject = __webpack_require__(530); module.exports = function extend(o/*, objects*/) { if (!isObject(o)) { o = {}; } @@ -58822,7 +59048,7 @@ function hasOwn(obj, key) { /***/ }), -/* 526 */ +/* 530 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -58842,13 +59068,13 @@ module.exports = function isExtendable(val) { /***/ }), -/* 527 */ +/* 531 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extend = __webpack_require__(525); +var extend = __webpack_require__(529); /** * The main export is a function that takes a `pattern` string and an `options` object. @@ -58915,7 +59141,7 @@ module.exports = toRegex; /***/ }), -/* 528 */ +/* 532 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -58965,13 +59191,13 @@ module.exports.immutable = function uniqueImmutable(arr) { /***/ }), -/* 529 */ +/* 533 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var utils = __webpack_require__(530); +var utils = __webpack_require__(534); module.exports = function(braces, options) { braces.compiler @@ -59254,25 +59480,25 @@ function hasQueue(node) { /***/ }), -/* 530 */ +/* 534 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var splitString = __webpack_require__(531); +var splitString = __webpack_require__(535); var utils = module.exports; /** * Module dependencies */ -utils.extend = __webpack_require__(525); -utils.flatten = __webpack_require__(537); -utils.isObject = __webpack_require__(535); -utils.fillRange = __webpack_require__(538); -utils.repeat = __webpack_require__(543); -utils.unique = __webpack_require__(528); +utils.extend = __webpack_require__(529); +utils.flatten = __webpack_require__(541); +utils.isObject = __webpack_require__(539); +utils.fillRange = __webpack_require__(542); +utils.repeat = __webpack_require__(547); +utils.unique = __webpack_require__(532); utils.define = function(obj, key, val) { Object.defineProperty(obj, key, { @@ -59604,7 +59830,7 @@ utils.escapeRegex = function(str) { /***/ }), -/* 531 */ +/* 535 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59617,7 +59843,7 @@ utils.escapeRegex = function(str) { -var extend = __webpack_require__(532); +var extend = __webpack_require__(536); module.exports = function(str, options, fn) { if (typeof str !== 'string') { @@ -59782,14 +60008,14 @@ function keepEscaping(opts, str, idx) { /***/ }), -/* 532 */ +/* 536 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(533); -var assignSymbols = __webpack_require__(536); +var isExtendable = __webpack_require__(537); +var assignSymbols = __webpack_require__(540); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -59849,7 +60075,7 @@ function isEnum(obj, key) { /***/ }), -/* 533 */ +/* 537 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59862,7 +60088,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(534); +var isPlainObject = __webpack_require__(538); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -59870,7 +60096,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 534 */ +/* 538 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59883,7 +60109,7 @@ module.exports = function isExtendable(val) { -var isObject = __webpack_require__(535); +var isObject = __webpack_require__(539); function isObjectObject(o) { return isObject(o) === true @@ -59914,7 +60140,7 @@ module.exports = function isPlainObject(o) { /***/ }), -/* 535 */ +/* 539 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59933,7 +60159,7 @@ module.exports = function isObject(val) { /***/ }), -/* 536 */ +/* 540 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59980,7 +60206,7 @@ module.exports = function(receiver, objects) { /***/ }), -/* 537 */ +/* 541 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60009,7 +60235,7 @@ function flat(arr, res) { /***/ }), -/* 538 */ +/* 542 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60023,10 +60249,10 @@ function flat(arr, res) { var util = __webpack_require__(111); -var isNumber = __webpack_require__(539); -var extend = __webpack_require__(525); -var repeat = __webpack_require__(541); -var toRegex = __webpack_require__(542); +var isNumber = __webpack_require__(543); +var extend = __webpack_require__(529); +var repeat = __webpack_require__(545); +var toRegex = __webpack_require__(546); /** * Return a range of numbers or letters. @@ -60224,7 +60450,7 @@ module.exports = fillRange; /***/ }), -/* 539 */ +/* 543 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60237,7 +60463,7 @@ module.exports = fillRange; -var typeOf = __webpack_require__(540); +var typeOf = __webpack_require__(544); module.exports = function isNumber(num) { var type = typeOf(num); @@ -60253,10 +60479,10 @@ module.exports = function isNumber(num) { /***/ }), -/* 540 */ +/* 544 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(522); +var isBuffer = __webpack_require__(526); var toString = Object.prototype.toString; /** @@ -60375,7 +60601,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 541 */ +/* 545 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60452,7 +60678,7 @@ function repeat(str, num) { /***/ }), -/* 542 */ +/* 546 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60465,8 +60691,8 @@ function repeat(str, num) { -var repeat = __webpack_require__(541); -var isNumber = __webpack_require__(539); +var repeat = __webpack_require__(545); +var isNumber = __webpack_require__(543); var cache = {}; function toRegexRange(min, max, options) { @@ -60753,7 +60979,7 @@ module.exports = toRegexRange; /***/ }), -/* 543 */ +/* 547 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60778,14 +61004,14 @@ module.exports = function repeat(ele, num) { /***/ }), -/* 544 */ +/* 548 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Node = __webpack_require__(545); -var utils = __webpack_require__(530); +var Node = __webpack_require__(549); +var utils = __webpack_require__(534); /** * Braces parsers @@ -61145,15 +61371,15 @@ function concatNodes(pos, node, parent, options) { /***/ }), -/* 545 */ +/* 549 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(535); -var define = __webpack_require__(546); -var utils = __webpack_require__(553); +var isObject = __webpack_require__(539); +var define = __webpack_require__(550); +var utils = __webpack_require__(557); var ownNames; /** @@ -61644,7 +61870,7 @@ exports = module.exports = Node; /***/ }), -/* 546 */ +/* 550 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61657,7 +61883,7 @@ exports = module.exports = Node; -var isDescriptor = __webpack_require__(547); +var isDescriptor = __webpack_require__(551); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -61682,7 +61908,7 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 547 */ +/* 551 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61695,9 +61921,9 @@ module.exports = function defineProperty(obj, prop, val) { -var typeOf = __webpack_require__(548); -var isAccessor = __webpack_require__(549); -var isData = __webpack_require__(551); +var typeOf = __webpack_require__(552); +var isAccessor = __webpack_require__(553); +var isData = __webpack_require__(555); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -61711,7 +61937,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 548 */ +/* 552 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -61846,7 +62072,7 @@ function isBuffer(val) { /***/ }), -/* 549 */ +/* 553 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61859,7 +62085,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(550); +var typeOf = __webpack_require__(554); // accessor descriptor properties var accessor = { @@ -61922,7 +62148,7 @@ module.exports = isAccessorDescriptor; /***/ }), -/* 550 */ +/* 554 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -62057,7 +62283,7 @@ function isBuffer(val) { /***/ }), -/* 551 */ +/* 555 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62070,7 +62296,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(552); +var typeOf = __webpack_require__(556); module.exports = function isDataDescriptor(obj, prop) { // data descriptor properties @@ -62113,7 +62339,7 @@ module.exports = function isDataDescriptor(obj, prop) { /***/ }), -/* 552 */ +/* 556 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -62248,13 +62474,13 @@ function isBuffer(val) { /***/ }), -/* 553 */ +/* 557 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var typeOf = __webpack_require__(540); +var typeOf = __webpack_require__(544); var utils = module.exports; /** @@ -63274,17 +63500,17 @@ function assert(val, message) { /***/ }), -/* 554 */ +/* 558 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extend = __webpack_require__(525); -var Snapdragon = __webpack_require__(555); -var compilers = __webpack_require__(529); -var parsers = __webpack_require__(544); -var utils = __webpack_require__(530); +var extend = __webpack_require__(529); +var Snapdragon = __webpack_require__(559); +var compilers = __webpack_require__(533); +var parsers = __webpack_require__(548); +var utils = __webpack_require__(534); /** * Customize Snapdragon parser and renderer @@ -63385,17 +63611,17 @@ module.exports = Braces; /***/ }), -/* 555 */ +/* 559 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Base = __webpack_require__(556); -var define = __webpack_require__(517); -var Compiler = __webpack_require__(585); -var Parser = __webpack_require__(614); -var utils = __webpack_require__(594); +var Base = __webpack_require__(560); +var define = __webpack_require__(521); +var Compiler = __webpack_require__(589); +var Parser = __webpack_require__(618); +var utils = __webpack_require__(598); var regexCache = {}; var cache = {}; @@ -63566,20 +63792,20 @@ module.exports.Parser = Parser; /***/ }), -/* 556 */ +/* 560 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(111); -var define = __webpack_require__(557); -var CacheBase = __webpack_require__(558); -var Emitter = __webpack_require__(559); -var isObject = __webpack_require__(535); -var merge = __webpack_require__(576); -var pascal = __webpack_require__(579); -var cu = __webpack_require__(580); +var define = __webpack_require__(561); +var CacheBase = __webpack_require__(562); +var Emitter = __webpack_require__(563); +var isObject = __webpack_require__(539); +var merge = __webpack_require__(580); +var pascal = __webpack_require__(583); +var cu = __webpack_require__(584); /** * Optionally define a custom `cache` namespace to use. @@ -64008,7 +64234,7 @@ module.exports.namespace = namespace; /***/ }), -/* 557 */ +/* 561 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64021,7 +64247,7 @@ module.exports.namespace = namespace; -var isDescriptor = __webpack_require__(547); +var isDescriptor = __webpack_require__(551); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -64046,21 +64272,21 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 558 */ +/* 562 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(535); -var Emitter = __webpack_require__(559); -var visit = __webpack_require__(560); -var toPath = __webpack_require__(563); -var union = __webpack_require__(564); -var del = __webpack_require__(568); -var get = __webpack_require__(566); -var has = __webpack_require__(573); -var set = __webpack_require__(567); +var isObject = __webpack_require__(539); +var Emitter = __webpack_require__(563); +var visit = __webpack_require__(564); +var toPath = __webpack_require__(567); +var union = __webpack_require__(568); +var del = __webpack_require__(572); +var get = __webpack_require__(570); +var has = __webpack_require__(577); +var set = __webpack_require__(571); /** * Create a `Cache` constructor that when instantiated will @@ -64314,7 +64540,7 @@ module.exports.namespace = namespace; /***/ }), -/* 559 */ +/* 563 */ /***/ (function(module, exports, __webpack_require__) { @@ -64483,7 +64709,7 @@ Emitter.prototype.hasListeners = function(event){ /***/ }), -/* 560 */ +/* 564 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64496,8 +64722,8 @@ Emitter.prototype.hasListeners = function(event){ -var visit = __webpack_require__(561); -var mapVisit = __webpack_require__(562); +var visit = __webpack_require__(565); +var mapVisit = __webpack_require__(566); module.exports = function(collection, method, val) { var result; @@ -64520,7 +64746,7 @@ module.exports = function(collection, method, val) { /***/ }), -/* 561 */ +/* 565 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64533,7 +64759,7 @@ module.exports = function(collection, method, val) { -var isObject = __webpack_require__(535); +var isObject = __webpack_require__(539); module.exports = function visit(thisArg, method, target, val) { if (!isObject(thisArg) && typeof thisArg !== 'function') { @@ -64560,14 +64786,14 @@ module.exports = function visit(thisArg, method, target, val) { /***/ }), -/* 562 */ +/* 566 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(111); -var visit = __webpack_require__(561); +var visit = __webpack_require__(565); /** * Map `visit` over an array of objects. @@ -64604,7 +64830,7 @@ function isObject(val) { /***/ }), -/* 563 */ +/* 567 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64617,7 +64843,7 @@ function isObject(val) { -var typeOf = __webpack_require__(540); +var typeOf = __webpack_require__(544); module.exports = function toPath(args) { if (typeOf(args) !== 'arguments') { @@ -64644,16 +64870,16 @@ function filter(arr) { /***/ }), -/* 564 */ +/* 568 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(526); -var union = __webpack_require__(565); -var get = __webpack_require__(566); -var set = __webpack_require__(567); +var isObject = __webpack_require__(530); +var union = __webpack_require__(569); +var get = __webpack_require__(570); +var set = __webpack_require__(571); module.exports = function unionValue(obj, prop, value) { if (!isObject(obj)) { @@ -64681,7 +64907,7 @@ function arrayify(val) { /***/ }), -/* 565 */ +/* 569 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64717,7 +64943,7 @@ module.exports = function union(init) { /***/ }), -/* 566 */ +/* 570 */ /***/ (function(module, exports) { /*! @@ -64773,7 +64999,7 @@ function toString(val) { /***/ }), -/* 567 */ +/* 571 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64786,10 +65012,10 @@ function toString(val) { -var split = __webpack_require__(531); -var extend = __webpack_require__(525); -var isPlainObject = __webpack_require__(534); -var isObject = __webpack_require__(526); +var split = __webpack_require__(535); +var extend = __webpack_require__(529); +var isPlainObject = __webpack_require__(538); +var isObject = __webpack_require__(530); module.exports = function(obj, prop, val) { if (!isObject(obj)) { @@ -64835,7 +65061,7 @@ function isValidKey(key) { /***/ }), -/* 568 */ +/* 572 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64848,8 +65074,8 @@ function isValidKey(key) { -var isObject = __webpack_require__(535); -var has = __webpack_require__(569); +var isObject = __webpack_require__(539); +var has = __webpack_require__(573); module.exports = function unset(obj, prop) { if (!isObject(obj)) { @@ -64874,7 +65100,7 @@ module.exports = function unset(obj, prop) { /***/ }), -/* 569 */ +/* 573 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64887,9 +65113,9 @@ module.exports = function unset(obj, prop) { -var isObject = __webpack_require__(570); -var hasValues = __webpack_require__(572); -var get = __webpack_require__(566); +var isObject = __webpack_require__(574); +var hasValues = __webpack_require__(576); +var get = __webpack_require__(570); module.exports = function(obj, prop, noZero) { if (isObject(obj)) { @@ -64900,7 +65126,7 @@ module.exports = function(obj, prop, noZero) { /***/ }), -/* 570 */ +/* 574 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64913,7 +65139,7 @@ module.exports = function(obj, prop, noZero) { -var isArray = __webpack_require__(571); +var isArray = __webpack_require__(575); module.exports = function isObject(val) { return val != null && typeof val === 'object' && isArray(val) === false; @@ -64921,7 +65147,7 @@ module.exports = function isObject(val) { /***/ }), -/* 571 */ +/* 575 */ /***/ (function(module, exports) { var toString = {}.toString; @@ -64932,7 +65158,7 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 572 */ +/* 576 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64975,7 +65201,7 @@ module.exports = function hasValue(o, noZero) { /***/ }), -/* 573 */ +/* 577 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64988,9 +65214,9 @@ module.exports = function hasValue(o, noZero) { -var isObject = __webpack_require__(535); -var hasValues = __webpack_require__(574); -var get = __webpack_require__(566); +var isObject = __webpack_require__(539); +var hasValues = __webpack_require__(578); +var get = __webpack_require__(570); module.exports = function(val, prop) { return hasValues(isObject(val) && prop ? get(val, prop) : val); @@ -64998,7 +65224,7 @@ module.exports = function(val, prop) { /***/ }), -/* 574 */ +/* 578 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65011,8 +65237,8 @@ module.exports = function(val, prop) { -var typeOf = __webpack_require__(575); -var isNumber = __webpack_require__(539); +var typeOf = __webpack_require__(579); +var isNumber = __webpack_require__(543); module.exports = function hasValue(val) { // is-number checks for NaN and other edge cases @@ -65065,10 +65291,10 @@ module.exports = function hasValue(val) { /***/ }), -/* 575 */ +/* 579 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(522); +var isBuffer = __webpack_require__(526); var toString = Object.prototype.toString; /** @@ -65190,14 +65416,14 @@ module.exports = function kindOf(val) { /***/ }), -/* 576 */ +/* 580 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(577); -var forIn = __webpack_require__(578); +var isExtendable = __webpack_require__(581); +var forIn = __webpack_require__(582); function mixinDeep(target, objects) { var len = arguments.length, i = 0; @@ -65261,7 +65487,7 @@ module.exports = mixinDeep; /***/ }), -/* 577 */ +/* 581 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65274,7 +65500,7 @@ module.exports = mixinDeep; -var isPlainObject = __webpack_require__(534); +var isPlainObject = __webpack_require__(538); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -65282,7 +65508,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 578 */ +/* 582 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65305,7 +65531,7 @@ module.exports = function forIn(obj, fn, thisArg) { /***/ }), -/* 579 */ +/* 583 */ /***/ (function(module, exports) { /*! @@ -65332,14 +65558,14 @@ module.exports = pascalcase; /***/ }), -/* 580 */ +/* 584 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(111); -var utils = __webpack_require__(581); +var utils = __webpack_require__(585); /** * Expose class utils @@ -65704,7 +65930,7 @@ cu.bubble = function(Parent, events) { /***/ }), -/* 581 */ +/* 585 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65718,10 +65944,10 @@ var utils = {}; * Lazily required module dependencies */ -utils.union = __webpack_require__(565); -utils.define = __webpack_require__(517); -utils.isObj = __webpack_require__(535); -utils.staticExtend = __webpack_require__(582); +utils.union = __webpack_require__(569); +utils.define = __webpack_require__(521); +utils.isObj = __webpack_require__(539); +utils.staticExtend = __webpack_require__(586); /** @@ -65732,7 +65958,7 @@ module.exports = utils; /***/ }), -/* 582 */ +/* 586 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65745,8 +65971,8 @@ module.exports = utils; -var copy = __webpack_require__(583); -var define = __webpack_require__(517); +var copy = __webpack_require__(587); +var define = __webpack_require__(521); var util = __webpack_require__(111); /** @@ -65829,15 +66055,15 @@ module.exports = extend; /***/ }), -/* 583 */ +/* 587 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var typeOf = __webpack_require__(540); -var copyDescriptor = __webpack_require__(584); -var define = __webpack_require__(517); +var typeOf = __webpack_require__(544); +var copyDescriptor = __webpack_require__(588); +var define = __webpack_require__(521); /** * Copy static properties, prototype properties, and descriptors from one object to another. @@ -66010,7 +66236,7 @@ module.exports.has = has; /***/ }), -/* 584 */ +/* 588 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66098,16 +66324,16 @@ function isObject(val) { /***/ }), -/* 585 */ +/* 589 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var use = __webpack_require__(586); -var define = __webpack_require__(517); -var debug = __webpack_require__(588)('snapdragon:compiler'); -var utils = __webpack_require__(594); +var use = __webpack_require__(590); +var define = __webpack_require__(521); +var debug = __webpack_require__(592)('snapdragon:compiler'); +var utils = __webpack_require__(598); /** * Create a new `Compiler` with the given `options`. @@ -66261,7 +66487,7 @@ Compiler.prototype = { // source map support if (opts.sourcemap) { - var sourcemaps = __webpack_require__(613); + var sourcemaps = __webpack_require__(617); sourcemaps(this); this.mapVisit(this.ast.nodes); this.applySourceMaps(); @@ -66282,7 +66508,7 @@ module.exports = Compiler; /***/ }), -/* 586 */ +/* 590 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66295,7 +66521,7 @@ module.exports = Compiler; -var utils = __webpack_require__(587); +var utils = __webpack_require__(591); module.exports = function base(app, opts) { if (!utils.isObject(app) && typeof app !== 'function') { @@ -66410,7 +66636,7 @@ module.exports = function base(app, opts) { /***/ }), -/* 587 */ +/* 591 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66424,8 +66650,8 @@ var utils = {}; * Lazily required module dependencies */ -utils.define = __webpack_require__(517); -utils.isObject = __webpack_require__(535); +utils.define = __webpack_require__(521); +utils.isObject = __webpack_require__(539); utils.isString = function(val) { @@ -66440,7 +66666,7 @@ module.exports = utils; /***/ }), -/* 588 */ +/* 592 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -66449,14 +66675,14 @@ module.exports = utils; */ if (typeof process !== 'undefined' && process.type === 'renderer') { - module.exports = __webpack_require__(589); + module.exports = __webpack_require__(593); } else { - module.exports = __webpack_require__(592); + module.exports = __webpack_require__(596); } /***/ }), -/* 589 */ +/* 593 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -66465,7 +66691,7 @@ if (typeof process !== 'undefined' && process.type === 'renderer') { * Expose `debug()` as the module. */ -exports = module.exports = __webpack_require__(590); +exports = module.exports = __webpack_require__(594); exports.log = log; exports.formatArgs = formatArgs; exports.save = save; @@ -66647,7 +66873,7 @@ function localstorage() { /***/ }), -/* 590 */ +/* 594 */ /***/ (function(module, exports, __webpack_require__) { @@ -66663,7 +66889,7 @@ exports.coerce = coerce; exports.disable = disable; exports.enable = enable; exports.enabled = enabled; -exports.humanize = __webpack_require__(591); +exports.humanize = __webpack_require__(595); /** * The currently active debug mode names, and names to skip. @@ -66855,7 +67081,7 @@ function coerce(val) { /***/ }), -/* 591 */ +/* 595 */ /***/ (function(module, exports) { /** @@ -67013,7 +67239,7 @@ function plural(ms, n, name) { /***/ }), -/* 592 */ +/* 596 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -67029,7 +67255,7 @@ var util = __webpack_require__(111); * Expose `debug()` as the module. */ -exports = module.exports = __webpack_require__(590); +exports = module.exports = __webpack_require__(594); exports.init = init; exports.log = log; exports.formatArgs = formatArgs; @@ -67208,7 +67434,7 @@ function createWritableStdioStream (fd) { case 'PIPE': case 'TCP': - var net = __webpack_require__(593); + var net = __webpack_require__(597); stream = new net.Socket({ fd: fd, readable: false, @@ -67267,13 +67493,13 @@ exports.enable(load()); /***/ }), -/* 593 */ +/* 597 */ /***/ (function(module, exports) { module.exports = require("net"); /***/ }), -/* 594 */ +/* 598 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -67283,9 +67509,9 @@ module.exports = require("net"); * Module dependencies */ -exports.extend = __webpack_require__(525); -exports.SourceMap = __webpack_require__(595); -exports.sourceMapResolve = __webpack_require__(606); +exports.extend = __webpack_require__(529); +exports.SourceMap = __webpack_require__(599); +exports.sourceMapResolve = __webpack_require__(610); /** * Convert backslash in the given string to forward slashes @@ -67328,7 +67554,7 @@ exports.last = function(arr, n) { /***/ }), -/* 595 */ +/* 599 */ /***/ (function(module, exports, __webpack_require__) { /* @@ -67336,13 +67562,13 @@ exports.last = function(arr, n) { * Licensed under the New BSD license. See LICENSE.txt or: * http://opensource.org/licenses/BSD-3-Clause */ -exports.SourceMapGenerator = __webpack_require__(596).SourceMapGenerator; -exports.SourceMapConsumer = __webpack_require__(602).SourceMapConsumer; -exports.SourceNode = __webpack_require__(605).SourceNode; +exports.SourceMapGenerator = __webpack_require__(600).SourceMapGenerator; +exports.SourceMapConsumer = __webpack_require__(606).SourceMapConsumer; +exports.SourceNode = __webpack_require__(609).SourceNode; /***/ }), -/* 596 */ +/* 600 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -67352,10 +67578,10 @@ exports.SourceNode = __webpack_require__(605).SourceNode; * http://opensource.org/licenses/BSD-3-Clause */ -var base64VLQ = __webpack_require__(597); -var util = __webpack_require__(599); -var ArraySet = __webpack_require__(600).ArraySet; -var MappingList = __webpack_require__(601).MappingList; +var base64VLQ = __webpack_require__(601); +var util = __webpack_require__(603); +var ArraySet = __webpack_require__(604).ArraySet; +var MappingList = __webpack_require__(605).MappingList; /** * An instance of the SourceMapGenerator represents a source map which is @@ -67764,7 +67990,7 @@ exports.SourceMapGenerator = SourceMapGenerator; /***/ }), -/* 597 */ +/* 601 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -67804,7 +68030,7 @@ exports.SourceMapGenerator = SourceMapGenerator; * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -var base64 = __webpack_require__(598); +var base64 = __webpack_require__(602); // A single base 64 digit can contain 6 bits of data. For the base 64 variable // length quantities we use in the source map spec, the first bit is the sign, @@ -67910,7 +68136,7 @@ exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { /***/ }), -/* 598 */ +/* 602 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -67983,7 +68209,7 @@ exports.decode = function (charCode) { /***/ }), -/* 599 */ +/* 603 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -68406,7 +68632,7 @@ exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflate /***/ }), -/* 600 */ +/* 604 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -68416,7 +68642,7 @@ exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflate * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(599); +var util = __webpack_require__(603); var has = Object.prototype.hasOwnProperty; var hasNativeMap = typeof Map !== "undefined"; @@ -68533,7 +68759,7 @@ exports.ArraySet = ArraySet; /***/ }), -/* 601 */ +/* 605 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -68543,7 +68769,7 @@ exports.ArraySet = ArraySet; * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(599); +var util = __webpack_require__(603); /** * Determine whether mappingB is after mappingA with respect to generated @@ -68618,7 +68844,7 @@ exports.MappingList = MappingList; /***/ }), -/* 602 */ +/* 606 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -68628,11 +68854,11 @@ exports.MappingList = MappingList; * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(599); -var binarySearch = __webpack_require__(603); -var ArraySet = __webpack_require__(600).ArraySet; -var base64VLQ = __webpack_require__(597); -var quickSort = __webpack_require__(604).quickSort; +var util = __webpack_require__(603); +var binarySearch = __webpack_require__(607); +var ArraySet = __webpack_require__(604).ArraySet; +var base64VLQ = __webpack_require__(601); +var quickSort = __webpack_require__(608).quickSort; function SourceMapConsumer(aSourceMap) { var sourceMap = aSourceMap; @@ -69706,7 +69932,7 @@ exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; /***/ }), -/* 603 */ +/* 607 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -69823,7 +70049,7 @@ exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { /***/ }), -/* 604 */ +/* 608 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -69943,7 +70169,7 @@ exports.quickSort = function (ary, comparator) { /***/ }), -/* 605 */ +/* 609 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -69953,8 +70179,8 @@ exports.quickSort = function (ary, comparator) { * http://opensource.org/licenses/BSD-3-Clause */ -var SourceMapGenerator = __webpack_require__(596).SourceMapGenerator; -var util = __webpack_require__(599); +var SourceMapGenerator = __webpack_require__(600).SourceMapGenerator; +var util = __webpack_require__(603); // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other // operating systems these days (capturing the result). @@ -70362,17 +70588,17 @@ exports.SourceNode = SourceNode; /***/ }), -/* 606 */ +/* 610 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2014, 2015, 2016, 2017 Simon Lydell // X11 (“MIT”) Licensed. (See LICENSE.) -var sourceMappingURL = __webpack_require__(607) -var resolveUrl = __webpack_require__(608) -var decodeUriComponent = __webpack_require__(609) -var urix = __webpack_require__(611) -var atob = __webpack_require__(612) +var sourceMappingURL = __webpack_require__(611) +var resolveUrl = __webpack_require__(612) +var decodeUriComponent = __webpack_require__(613) +var urix = __webpack_require__(615) +var atob = __webpack_require__(616) @@ -70670,7 +70896,7 @@ module.exports = { /***/ }), -/* 607 */ +/* 611 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;// Copyright 2014 Simon Lydell @@ -70733,7 +70959,7 @@ void (function(root, factory) { /***/ }), -/* 608 */ +/* 612 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2014 Simon Lydell @@ -70751,13 +70977,13 @@ module.exports = resolveUrl /***/ }), -/* 609 */ +/* 613 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2017 Simon Lydell // X11 (“MIT”) Licensed. (See LICENSE.) -var decodeUriComponent = __webpack_require__(610) +var decodeUriComponent = __webpack_require__(614) function customDecodeUriComponent(string) { // `decodeUriComponent` turns `+` into ` `, but that's not wanted. @@ -70768,7 +70994,7 @@ module.exports = customDecodeUriComponent /***/ }), -/* 610 */ +/* 614 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70869,7 +71095,7 @@ module.exports = function (encodedURI) { /***/ }), -/* 611 */ +/* 615 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2014 Simon Lydell @@ -70892,7 +71118,7 @@ module.exports = urix /***/ }), -/* 612 */ +/* 616 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70906,7 +71132,7 @@ module.exports = atob.atob = atob; /***/ }), -/* 613 */ +/* 617 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70914,8 +71140,8 @@ module.exports = atob.atob = atob; var fs = __webpack_require__(133); var path = __webpack_require__(4); -var define = __webpack_require__(517); -var utils = __webpack_require__(594); +var define = __webpack_require__(521); +var utils = __webpack_require__(598); /** * Expose `mixin()`. @@ -71058,19 +71284,19 @@ exports.comment = function(node) { /***/ }), -/* 614 */ +/* 618 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var use = __webpack_require__(586); +var use = __webpack_require__(590); var util = __webpack_require__(111); -var Cache = __webpack_require__(615); -var define = __webpack_require__(517); -var debug = __webpack_require__(588)('snapdragon:parser'); -var Position = __webpack_require__(616); -var utils = __webpack_require__(594); +var Cache = __webpack_require__(619); +var define = __webpack_require__(521); +var debug = __webpack_require__(592)('snapdragon:parser'); +var Position = __webpack_require__(620); +var utils = __webpack_require__(598); /** * Create a new `Parser` with the given `input` and `options`. @@ -71598,7 +71824,7 @@ module.exports = Parser; /***/ }), -/* 615 */ +/* 619 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -71705,13 +71931,13 @@ MapCache.prototype.del = function mapDelete(key) { /***/ }), -/* 616 */ +/* 620 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var define = __webpack_require__(517); +var define = __webpack_require__(521); /** * Store position for a node @@ -71726,16 +71952,16 @@ module.exports = function Position(start, parser) { /***/ }), -/* 617 */ +/* 621 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var safe = __webpack_require__(618); -var define = __webpack_require__(624); -var extend = __webpack_require__(625); -var not = __webpack_require__(627); +var safe = __webpack_require__(622); +var define = __webpack_require__(628); +var extend = __webpack_require__(629); +var not = __webpack_require__(631); var MAX_LENGTH = 1024 * 64; /** @@ -71888,10 +72114,10 @@ module.exports.makeRe = makeRe; /***/ }), -/* 618 */ +/* 622 */ /***/ (function(module, exports, __webpack_require__) { -var parse = __webpack_require__(619); +var parse = __webpack_require__(623); var types = parse.types; module.exports = function (re, opts) { @@ -71937,13 +72163,13 @@ function isRegExp (x) { /***/ }), -/* 619 */ +/* 623 */ /***/ (function(module, exports, __webpack_require__) { -var util = __webpack_require__(620); -var types = __webpack_require__(621); -var sets = __webpack_require__(622); -var positions = __webpack_require__(623); +var util = __webpack_require__(624); +var types = __webpack_require__(625); +var sets = __webpack_require__(626); +var positions = __webpack_require__(627); module.exports = function(regexpStr) { @@ -72225,11 +72451,11 @@ module.exports.types = types; /***/ }), -/* 620 */ +/* 624 */ /***/ (function(module, exports, __webpack_require__) { -var types = __webpack_require__(621); -var sets = __webpack_require__(622); +var types = __webpack_require__(625); +var sets = __webpack_require__(626); // All of these are private and only used by randexp. @@ -72342,7 +72568,7 @@ exports.error = function(regexp, msg) { /***/ }), -/* 621 */ +/* 625 */ /***/ (function(module, exports) { module.exports = { @@ -72358,10 +72584,10 @@ module.exports = { /***/ }), -/* 622 */ +/* 626 */ /***/ (function(module, exports, __webpack_require__) { -var types = __webpack_require__(621); +var types = __webpack_require__(625); var INTS = function() { return [{ type: types.RANGE , from: 48, to: 57 }]; @@ -72446,10 +72672,10 @@ exports.anyChar = function() { /***/ }), -/* 623 */ +/* 627 */ /***/ (function(module, exports, __webpack_require__) { -var types = __webpack_require__(621); +var types = __webpack_require__(625); exports.wordBoundary = function() { return { type: types.POSITION, value: 'b' }; @@ -72469,7 +72695,7 @@ exports.end = function() { /***/ }), -/* 624 */ +/* 628 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72482,8 +72708,8 @@ exports.end = function() { -var isobject = __webpack_require__(535); -var isDescriptor = __webpack_require__(547); +var isobject = __webpack_require__(539); +var isDescriptor = __webpack_require__(551); var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) ? Reflect.defineProperty : Object.defineProperty; @@ -72514,14 +72740,14 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 625 */ +/* 629 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(626); -var assignSymbols = __webpack_require__(536); +var isExtendable = __webpack_require__(630); +var assignSymbols = __webpack_require__(540); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -72581,7 +72807,7 @@ function isEnum(obj, key) { /***/ }), -/* 626 */ +/* 630 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72594,7 +72820,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(534); +var isPlainObject = __webpack_require__(538); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -72602,14 +72828,14 @@ module.exports = function isExtendable(val) { /***/ }), -/* 627 */ +/* 631 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extend = __webpack_require__(625); -var safe = __webpack_require__(618); +var extend = __webpack_require__(629); +var safe = __webpack_require__(622); /** * The main export is a function that takes a `pattern` string and an `options` object. @@ -72681,14 +72907,14 @@ module.exports = toRegex; /***/ }), -/* 628 */ +/* 632 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var nanomatch = __webpack_require__(629); -var extglob = __webpack_require__(644); +var nanomatch = __webpack_require__(633); +var extglob = __webpack_require__(648); module.exports = function(snapdragon) { var compilers = snapdragon.compiler.compilers; @@ -72765,7 +72991,7 @@ function escapeExtglobs(compiler) { /***/ }), -/* 629 */ +/* 633 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72776,17 +73002,17 @@ function escapeExtglobs(compiler) { */ var util = __webpack_require__(111); -var toRegex = __webpack_require__(516); -var extend = __webpack_require__(630); +var toRegex = __webpack_require__(520); +var extend = __webpack_require__(634); /** * Local dependencies */ -var compilers = __webpack_require__(632); -var parsers = __webpack_require__(633); -var cache = __webpack_require__(636); -var utils = __webpack_require__(638); +var compilers = __webpack_require__(636); +var parsers = __webpack_require__(637); +var cache = __webpack_require__(640); +var utils = __webpack_require__(642); var MAX_LENGTH = 1024 * 64; /** @@ -73610,14 +73836,14 @@ module.exports = nanomatch; /***/ }), -/* 630 */ +/* 634 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(631); -var assignSymbols = __webpack_require__(536); +var isExtendable = __webpack_require__(635); +var assignSymbols = __webpack_require__(540); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -73677,7 +73903,7 @@ function isEnum(obj, key) { /***/ }), -/* 631 */ +/* 635 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -73690,7 +73916,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(534); +var isPlainObject = __webpack_require__(538); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -73698,7 +73924,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 632 */ +/* 636 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74044,15 +74270,15 @@ module.exports = function(nanomatch, options) { /***/ }), -/* 633 */ +/* 637 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var regexNot = __webpack_require__(527); -var toRegex = __webpack_require__(516); -var isOdd = __webpack_require__(634); +var regexNot = __webpack_require__(531); +var toRegex = __webpack_require__(520); +var isOdd = __webpack_require__(638); /** * Characters to use in negation regex (we want to "not" match @@ -74438,7 +74664,7 @@ module.exports.not = NOT_REGEX; /***/ }), -/* 634 */ +/* 638 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74451,7 +74677,7 @@ module.exports.not = NOT_REGEX; -var isNumber = __webpack_require__(635); +var isNumber = __webpack_require__(639); module.exports = function isOdd(i) { if (!isNumber(i)) { @@ -74465,7 +74691,7 @@ module.exports = function isOdd(i) { /***/ }), -/* 635 */ +/* 639 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74493,14 +74719,14 @@ module.exports = function isNumber(num) { /***/ }), -/* 636 */ +/* 640 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = new (__webpack_require__(637))(); +module.exports = new (__webpack_require__(641))(); /***/ }), -/* 637 */ +/* 641 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74513,7 +74739,7 @@ module.exports = new (__webpack_require__(637))(); -var MapCache = __webpack_require__(615); +var MapCache = __webpack_require__(619); /** * Create a new `FragmentCache` with an optional object to use for `caches`. @@ -74635,7 +74861,7 @@ exports = module.exports = FragmentCache; /***/ }), -/* 638 */ +/* 642 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74648,14 +74874,14 @@ var path = __webpack_require__(4); * Module dependencies */ -var isWindows = __webpack_require__(639)(); -var Snapdragon = __webpack_require__(555); -utils.define = __webpack_require__(640); -utils.diff = __webpack_require__(641); -utils.extend = __webpack_require__(630); -utils.pick = __webpack_require__(642); -utils.typeOf = __webpack_require__(643); -utils.unique = __webpack_require__(528); +var isWindows = __webpack_require__(643)(); +var Snapdragon = __webpack_require__(559); +utils.define = __webpack_require__(644); +utils.diff = __webpack_require__(645); +utils.extend = __webpack_require__(634); +utils.pick = __webpack_require__(646); +utils.typeOf = __webpack_require__(647); +utils.unique = __webpack_require__(532); /** * Returns true if the given value is effectively an empty string @@ -75021,7 +75247,7 @@ utils.unixify = function(options) { /***/ }), -/* 639 */ +/* 643 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -75049,7 +75275,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 640 */ +/* 644 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75062,8 +75288,8 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ -var isobject = __webpack_require__(535); -var isDescriptor = __webpack_require__(547); +var isobject = __webpack_require__(539); +var isDescriptor = __webpack_require__(551); var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) ? Reflect.defineProperty : Object.defineProperty; @@ -75094,7 +75320,7 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 641 */ +/* 645 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75148,7 +75374,7 @@ function diffArray(one, two) { /***/ }), -/* 642 */ +/* 646 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75161,7 +75387,7 @@ function diffArray(one, two) { -var isObject = __webpack_require__(535); +var isObject = __webpack_require__(539); module.exports = function pick(obj, keys) { if (!isObject(obj) && typeof obj !== 'function') { @@ -75190,7 +75416,7 @@ module.exports = function pick(obj, keys) { /***/ }), -/* 643 */ +/* 647 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -75325,7 +75551,7 @@ function isBuffer(val) { /***/ }), -/* 644 */ +/* 648 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75335,18 +75561,18 @@ function isBuffer(val) { * Module dependencies */ -var extend = __webpack_require__(525); -var unique = __webpack_require__(528); -var toRegex = __webpack_require__(516); +var extend = __webpack_require__(529); +var unique = __webpack_require__(532); +var toRegex = __webpack_require__(520); /** * Local dependencies */ -var compilers = __webpack_require__(645); -var parsers = __webpack_require__(656); -var Extglob = __webpack_require__(659); -var utils = __webpack_require__(658); +var compilers = __webpack_require__(649); +var parsers = __webpack_require__(660); +var Extglob = __webpack_require__(663); +var utils = __webpack_require__(662); var MAX_LENGTH = 1024 * 64; /** @@ -75663,13 +75889,13 @@ module.exports = extglob; /***/ }), -/* 645 */ +/* 649 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var brackets = __webpack_require__(646); +var brackets = __webpack_require__(650); /** * Extglob compilers @@ -75839,7 +76065,7 @@ module.exports = function(extglob) { /***/ }), -/* 646 */ +/* 650 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75849,17 +76075,17 @@ module.exports = function(extglob) { * Local dependencies */ -var compilers = __webpack_require__(647); -var parsers = __webpack_require__(649); +var compilers = __webpack_require__(651); +var parsers = __webpack_require__(653); /** * Module dependencies */ -var debug = __webpack_require__(651)('expand-brackets'); -var extend = __webpack_require__(525); -var Snapdragon = __webpack_require__(555); -var toRegex = __webpack_require__(516); +var debug = __webpack_require__(655)('expand-brackets'); +var extend = __webpack_require__(529); +var Snapdragon = __webpack_require__(559); +var toRegex = __webpack_require__(520); /** * Parses the given POSIX character class `pattern` and returns a @@ -76057,13 +76283,13 @@ module.exports = brackets; /***/ }), -/* 647 */ +/* 651 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var posix = __webpack_require__(648); +var posix = __webpack_require__(652); module.exports = function(brackets) { brackets.compiler @@ -76151,7 +76377,7 @@ module.exports = function(brackets) { /***/ }), -/* 648 */ +/* 652 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -76180,14 +76406,14 @@ module.exports = { /***/ }), -/* 649 */ +/* 653 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var utils = __webpack_require__(650); -var define = __webpack_require__(517); +var utils = __webpack_require__(654); +var define = __webpack_require__(521); /** * Text regex @@ -76406,14 +76632,14 @@ module.exports.TEXT_REGEX = TEXT_REGEX; /***/ }), -/* 650 */ +/* 654 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var toRegex = __webpack_require__(516); -var regexNot = __webpack_require__(527); +var toRegex = __webpack_require__(520); +var regexNot = __webpack_require__(531); var cached; /** @@ -76447,7 +76673,7 @@ exports.createRegex = function(pattern, include) { /***/ }), -/* 651 */ +/* 655 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -76456,14 +76682,14 @@ exports.createRegex = function(pattern, include) { */ if (typeof process !== 'undefined' && process.type === 'renderer') { - module.exports = __webpack_require__(652); + module.exports = __webpack_require__(656); } else { - module.exports = __webpack_require__(655); + module.exports = __webpack_require__(659); } /***/ }), -/* 652 */ +/* 656 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -76472,7 +76698,7 @@ if (typeof process !== 'undefined' && process.type === 'renderer') { * Expose `debug()` as the module. */ -exports = module.exports = __webpack_require__(653); +exports = module.exports = __webpack_require__(657); exports.log = log; exports.formatArgs = formatArgs; exports.save = save; @@ -76654,7 +76880,7 @@ function localstorage() { /***/ }), -/* 653 */ +/* 657 */ /***/ (function(module, exports, __webpack_require__) { @@ -76670,7 +76896,7 @@ exports.coerce = coerce; exports.disable = disable; exports.enable = enable; exports.enabled = enabled; -exports.humanize = __webpack_require__(654); +exports.humanize = __webpack_require__(658); /** * The currently active debug mode names, and names to skip. @@ -76862,7 +77088,7 @@ function coerce(val) { /***/ }), -/* 654 */ +/* 658 */ /***/ (function(module, exports) { /** @@ -77020,7 +77246,7 @@ function plural(ms, n, name) { /***/ }), -/* 655 */ +/* 659 */ /***/ (function(module, exports, __webpack_require__) { /** @@ -77036,7 +77262,7 @@ var util = __webpack_require__(111); * Expose `debug()` as the module. */ -exports = module.exports = __webpack_require__(653); +exports = module.exports = __webpack_require__(657); exports.init = init; exports.log = log; exports.formatArgs = formatArgs; @@ -77215,7 +77441,7 @@ function createWritableStdioStream (fd) { case 'PIPE': case 'TCP': - var net = __webpack_require__(593); + var net = __webpack_require__(597); stream = new net.Socket({ fd: fd, readable: false, @@ -77274,15 +77500,15 @@ exports.enable(load()); /***/ }), -/* 656 */ +/* 660 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var brackets = __webpack_require__(646); -var define = __webpack_require__(657); -var utils = __webpack_require__(658); +var brackets = __webpack_require__(650); +var define = __webpack_require__(661); +var utils = __webpack_require__(662); /** * Characters to use in text regex (we want to "not" match @@ -77437,7 +77663,7 @@ module.exports = parsers; /***/ }), -/* 657 */ +/* 661 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -77450,7 +77676,7 @@ module.exports = parsers; -var isDescriptor = __webpack_require__(547); +var isDescriptor = __webpack_require__(551); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -77475,14 +77701,14 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 658 */ +/* 662 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var regex = __webpack_require__(527); -var Cache = __webpack_require__(637); +var regex = __webpack_require__(531); +var Cache = __webpack_require__(641); /** * Utils @@ -77551,7 +77777,7 @@ utils.createRegex = function(str) { /***/ }), -/* 659 */ +/* 663 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -77561,16 +77787,16 @@ utils.createRegex = function(str) { * Module dependencies */ -var Snapdragon = __webpack_require__(555); -var define = __webpack_require__(657); -var extend = __webpack_require__(525); +var Snapdragon = __webpack_require__(559); +var define = __webpack_require__(661); +var extend = __webpack_require__(529); /** * Local dependencies */ -var compilers = __webpack_require__(645); -var parsers = __webpack_require__(656); +var compilers = __webpack_require__(649); +var parsers = __webpack_require__(660); /** * Customize Snapdragon parser and renderer @@ -77636,16 +77862,16 @@ module.exports = Extglob; /***/ }), -/* 660 */ +/* 664 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extglob = __webpack_require__(644); -var nanomatch = __webpack_require__(629); -var regexNot = __webpack_require__(527); -var toRegex = __webpack_require__(617); +var extglob = __webpack_require__(648); +var nanomatch = __webpack_require__(633); +var regexNot = __webpack_require__(531); +var toRegex = __webpack_require__(621); var not; /** @@ -77726,14 +77952,14 @@ function textRegex(pattern) { /***/ }), -/* 661 */ +/* 665 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = new (__webpack_require__(637))(); +module.exports = new (__webpack_require__(641))(); /***/ }), -/* 662 */ +/* 666 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -77746,13 +77972,13 @@ var path = __webpack_require__(4); * Module dependencies */ -var Snapdragon = __webpack_require__(555); -utils.define = __webpack_require__(624); -utils.diff = __webpack_require__(641); -utils.extend = __webpack_require__(625); -utils.pick = __webpack_require__(642); -utils.typeOf = __webpack_require__(663); -utils.unique = __webpack_require__(528); +var Snapdragon = __webpack_require__(559); +utils.define = __webpack_require__(628); +utils.diff = __webpack_require__(645); +utils.extend = __webpack_require__(629); +utils.pick = __webpack_require__(646); +utils.typeOf = __webpack_require__(667); +utils.unique = __webpack_require__(532); /** * Returns true if the platform is windows, or `path.sep` is `\\`. @@ -78049,7 +78275,7 @@ utils.unixify = function(options) { /***/ }), -/* 663 */ +/* 667 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -78184,7 +78410,7 @@ function isBuffer(val) { /***/ }), -/* 664 */ +/* 668 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78203,9 +78429,9 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var readdir = __webpack_require__(665); -var reader_1 = __webpack_require__(678); -var fs_stream_1 = __webpack_require__(682); +var readdir = __webpack_require__(669); +var reader_1 = __webpack_require__(682); +var fs_stream_1 = __webpack_require__(686); var ReaderAsync = /** @class */ (function (_super) { __extends(ReaderAsync, _super); function ReaderAsync() { @@ -78266,15 +78492,15 @@ exports.default = ReaderAsync; /***/ }), -/* 665 */ +/* 669 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const readdirSync = __webpack_require__(666); -const readdirAsync = __webpack_require__(674); -const readdirStream = __webpack_require__(677); +const readdirSync = __webpack_require__(670); +const readdirAsync = __webpack_require__(678); +const readdirStream = __webpack_require__(681); module.exports = exports = readdirAsyncPath; exports.readdir = exports.readdirAsync = exports.async = readdirAsyncPath; @@ -78358,7 +78584,7 @@ function readdirStreamStat (dir, options) { /***/ }), -/* 666 */ +/* 670 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78366,11 +78592,11 @@ function readdirStreamStat (dir, options) { module.exports = readdirSync; -const DirectoryReader = __webpack_require__(667); +const DirectoryReader = __webpack_require__(671); let syncFacade = { - fs: __webpack_require__(672), - forEach: __webpack_require__(673), + fs: __webpack_require__(676), + forEach: __webpack_require__(677), sync: true }; @@ -78399,7 +78625,7 @@ function readdirSync (dir, options, internalOptions) { /***/ }), -/* 667 */ +/* 671 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -78408,9 +78634,9 @@ function readdirSync (dir, options, internalOptions) { const Readable = __webpack_require__(137).Readable; const EventEmitter = __webpack_require__(155).EventEmitter; const path = __webpack_require__(4); -const normalizeOptions = __webpack_require__(668); -const stat = __webpack_require__(670); -const call = __webpack_require__(671); +const normalizeOptions = __webpack_require__(672); +const stat = __webpack_require__(674); +const call = __webpack_require__(675); /** * Asynchronously reads the contents of a directory and streams the results @@ -78786,14 +79012,14 @@ module.exports = DirectoryReader; /***/ }), -/* 668 */ +/* 672 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const globToRegExp = __webpack_require__(669); +const globToRegExp = __webpack_require__(673); module.exports = normalizeOptions; @@ -78970,7 +79196,7 @@ function normalizeOptions (options, internalOptions) { /***/ }), -/* 669 */ +/* 673 */ /***/ (function(module, exports) { module.exports = function (glob, opts) { @@ -79107,13 +79333,13 @@ module.exports = function (glob, opts) { /***/ }), -/* 670 */ +/* 674 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const call = __webpack_require__(671); +const call = __webpack_require__(675); module.exports = stat; @@ -79188,7 +79414,7 @@ function symlinkStat (fs, path, lstats, callback) { /***/ }), -/* 671 */ +/* 675 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79249,14 +79475,14 @@ function callOnce (fn) { /***/ }), -/* 672 */ +/* 676 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(133); -const call = __webpack_require__(671); +const call = __webpack_require__(675); /** * A facade around {@link fs.readdirSync} that allows it to be called @@ -79320,7 +79546,7 @@ exports.lstat = function (path, callback) { /***/ }), -/* 673 */ +/* 677 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79349,7 +79575,7 @@ function syncForEach (array, iterator, done) { /***/ }), -/* 674 */ +/* 678 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79357,12 +79583,12 @@ function syncForEach (array, iterator, done) { module.exports = readdirAsync; -const maybe = __webpack_require__(675); -const DirectoryReader = __webpack_require__(667); +const maybe = __webpack_require__(679); +const DirectoryReader = __webpack_require__(671); let asyncFacade = { fs: __webpack_require__(133), - forEach: __webpack_require__(676), + forEach: __webpack_require__(680), async: true }; @@ -79404,7 +79630,7 @@ function readdirAsync (dir, options, callback, internalOptions) { /***/ }), -/* 675 */ +/* 679 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79431,7 +79657,7 @@ module.exports = function maybe (cb, promise) { /***/ }), -/* 676 */ +/* 680 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79467,7 +79693,7 @@ function asyncForEach (array, iterator, done) { /***/ }), -/* 677 */ +/* 681 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79475,11 +79701,11 @@ function asyncForEach (array, iterator, done) { module.exports = readdirStream; -const DirectoryReader = __webpack_require__(667); +const DirectoryReader = __webpack_require__(671); let streamFacade = { fs: __webpack_require__(133), - forEach: __webpack_require__(676), + forEach: __webpack_require__(680), async: true }; @@ -79499,16 +79725,16 @@ function readdirStream (dir, options, internalOptions) { /***/ }), -/* 678 */ +/* 682 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var path = __webpack_require__(4); -var deep_1 = __webpack_require__(679); -var entry_1 = __webpack_require__(681); -var pathUtil = __webpack_require__(680); +var deep_1 = __webpack_require__(683); +var entry_1 = __webpack_require__(685); +var pathUtil = __webpack_require__(684); var Reader = /** @class */ (function () { function Reader(options) { this.options = options; @@ -79574,14 +79800,14 @@ exports.default = Reader; /***/ }), -/* 679 */ +/* 683 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var pathUtils = __webpack_require__(680); -var patternUtils = __webpack_require__(509); +var pathUtils = __webpack_require__(684); +var patternUtils = __webpack_require__(513); var DeepFilter = /** @class */ (function () { function DeepFilter(options, micromatchOptions) { this.options = options; @@ -79664,7 +79890,7 @@ exports.default = DeepFilter; /***/ }), -/* 680 */ +/* 684 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79695,14 +79921,14 @@ exports.makeAbsolute = makeAbsolute; /***/ }), -/* 681 */ +/* 685 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var pathUtils = __webpack_require__(680); -var patternUtils = __webpack_require__(509); +var pathUtils = __webpack_require__(684); +var patternUtils = __webpack_require__(513); var EntryFilter = /** @class */ (function () { function EntryFilter(options, micromatchOptions) { this.options = options; @@ -79787,7 +80013,7 @@ exports.default = EntryFilter; /***/ }), -/* 682 */ +/* 686 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79807,8 +80033,8 @@ var __extends = (this && this.__extends) || (function () { })(); Object.defineProperty(exports, "__esModule", { value: true }); var stream = __webpack_require__(137); -var fsStat = __webpack_require__(683); -var fs_1 = __webpack_require__(687); +var fsStat = __webpack_require__(687); +var fs_1 = __webpack_require__(691); var FileSystemStream = /** @class */ (function (_super) { __extends(FileSystemStream, _super); function FileSystemStream() { @@ -79858,14 +80084,14 @@ exports.default = FileSystemStream; /***/ }), -/* 683 */ +/* 687 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const optionsManager = __webpack_require__(684); -const statProvider = __webpack_require__(686); +const optionsManager = __webpack_require__(688); +const statProvider = __webpack_require__(690); /** * Asynchronous API. */ @@ -79896,13 +80122,13 @@ exports.statSync = statSync; /***/ }), -/* 684 */ +/* 688 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fsAdapter = __webpack_require__(685); +const fsAdapter = __webpack_require__(689); function prepare(opts) { const options = Object.assign({ fs: fsAdapter.getFileSystemAdapter(opts ? opts.fs : undefined), @@ -79915,7 +80141,7 @@ exports.prepare = prepare; /***/ }), -/* 685 */ +/* 689 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79938,7 +80164,7 @@ exports.getFileSystemAdapter = getFileSystemAdapter; /***/ }), -/* 686 */ +/* 690 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79990,7 +80216,7 @@ exports.isFollowedSymlink = isFollowedSymlink; /***/ }), -/* 687 */ +/* 691 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80021,7 +80247,7 @@ exports.default = FileSystem; /***/ }), -/* 688 */ +/* 692 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80041,9 +80267,9 @@ var __extends = (this && this.__extends) || (function () { })(); Object.defineProperty(exports, "__esModule", { value: true }); var stream = __webpack_require__(137); -var readdir = __webpack_require__(665); -var reader_1 = __webpack_require__(678); -var fs_stream_1 = __webpack_require__(682); +var readdir = __webpack_require__(669); +var reader_1 = __webpack_require__(682); +var fs_stream_1 = __webpack_require__(686); var TransformStream = /** @class */ (function (_super) { __extends(TransformStream, _super); function TransformStream(reader) { @@ -80111,7 +80337,7 @@ exports.default = ReaderStream; /***/ }), -/* 689 */ +/* 693 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80130,9 +80356,9 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var readdir = __webpack_require__(665); -var reader_1 = __webpack_require__(678); -var fs_sync_1 = __webpack_require__(690); +var readdir = __webpack_require__(669); +var reader_1 = __webpack_require__(682); +var fs_sync_1 = __webpack_require__(694); var ReaderSync = /** @class */ (function (_super) { __extends(ReaderSync, _super); function ReaderSync() { @@ -80192,7 +80418,7 @@ exports.default = ReaderSync; /***/ }), -/* 690 */ +/* 694 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80211,8 +80437,8 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var fsStat = __webpack_require__(683); -var fs_1 = __webpack_require__(687); +var fsStat = __webpack_require__(687); +var fs_1 = __webpack_require__(691); var FileSystemSync = /** @class */ (function (_super) { __extends(FileSystemSync, _super); function FileSystemSync() { @@ -80258,7 +80484,7 @@ exports.default = FileSystemSync; /***/ }), -/* 691 */ +/* 695 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80274,13 +80500,13 @@ exports.flatten = flatten; /***/ }), -/* 692 */ +/* 696 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var merge2 = __webpack_require__(288); +var merge2 = __webpack_require__(283); /** * Merge multiple streams and propagate their errors into one stream in parallel. */ @@ -80295,13 +80521,13 @@ exports.merge = merge; /***/ }), -/* 693 */ +/* 697 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const pathType = __webpack_require__(694); +const pathType = __webpack_require__(698); const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; @@ -80367,13 +80593,13 @@ module.exports.sync = (input, opts) => { /***/ }), -/* 694 */ +/* 698 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(133); -const pify = __webpack_require__(695); +const pify = __webpack_require__(699); function type(fn, fn2, fp) { if (typeof fp !== 'string') { @@ -80416,7 +80642,7 @@ exports.symlinkSync = typeSync.bind(null, 'lstatSync', 'isSymbolicLink'); /***/ }), -/* 695 */ +/* 699 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80507,17 +80733,17 @@ module.exports = (obj, opts) => { /***/ }), -/* 696 */ +/* 700 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(133); const path = __webpack_require__(4); -const fastGlob = __webpack_require__(505); -const gitIgnore = __webpack_require__(697); -const pify = __webpack_require__(698); -const slash = __webpack_require__(699); +const fastGlob = __webpack_require__(509); +const gitIgnore = __webpack_require__(701); +const pify = __webpack_require__(702); +const slash = __webpack_require__(703); const DEFAULT_IGNORE = [ '**/node_modules/**', @@ -80615,7 +80841,7 @@ module.exports.sync = options => { /***/ }), -/* 697 */ +/* 701 */ /***/ (function(module, exports) { // A simple implementation of make-array @@ -81084,7 +81310,7 @@ module.exports = options => new IgnoreBase(options) /***/ }), -/* 698 */ +/* 702 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81159,7 +81385,7 @@ module.exports = (input, options) => { /***/ }), -/* 699 */ +/* 703 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81177,7 +81403,7 @@ module.exports = input => { /***/ }), -/* 700 */ +/* 704 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -81187,7 +81413,7 @@ module.exports = input => { * Released under the MIT License. */ -var isExtglob = __webpack_require__(299); +var isExtglob = __webpack_require__(294); var chars = { '{': '}', '(': ')', '[': ']'}; var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/; @@ -81231,17 +81457,17 @@ module.exports = function isGlob(str, options) { /***/ }), -/* 701 */ +/* 705 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); const {constants: fsConstants} = __webpack_require__(133); -const pEvent = __webpack_require__(702); -const CpFileError = __webpack_require__(705); -const fs = __webpack_require__(709); -const ProgressEmitter = __webpack_require__(712); +const pEvent = __webpack_require__(706); +const CpFileError = __webpack_require__(709); +const fs = __webpack_require__(713); +const ProgressEmitter = __webpack_require__(716); const cpFileAsync = async (source, destination, options, progressEmitter) => { let readError; @@ -81355,12 +81581,12 @@ module.exports.sync = (source, destination, options) => { /***/ }), -/* 702 */ +/* 706 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pTimeout = __webpack_require__(703); +const pTimeout = __webpack_require__(707); const symbolAsyncIterator = Symbol.asyncIterator || '@@asyncIterator'; @@ -81651,12 +81877,12 @@ module.exports.iterator = (emitter, event, options) => { /***/ }), -/* 703 */ +/* 707 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pFinally = __webpack_require__(704); +const pFinally = __webpack_require__(708); class TimeoutError extends Error { constructor(message) { @@ -81702,7 +81928,7 @@ module.exports.TimeoutError = TimeoutError; /***/ }), -/* 704 */ +/* 708 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81724,12 +81950,12 @@ module.exports = (promise, onFinally) => { /***/ }), -/* 705 */ +/* 709 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const NestedError = __webpack_require__(706); +const NestedError = __webpack_require__(710); class CpFileError extends NestedError { constructor(message, nested) { @@ -81743,10 +81969,10 @@ module.exports = CpFileError; /***/ }), -/* 706 */ +/* 710 */ /***/ (function(module, exports, __webpack_require__) { -var inherits = __webpack_require__(707); +var inherits = __webpack_require__(711); var NestedError = function (message, nested) { this.nested = nested; @@ -81797,7 +82023,7 @@ module.exports = NestedError; /***/ }), -/* 707 */ +/* 711 */ /***/ (function(module, exports, __webpack_require__) { try { @@ -81805,12 +82031,12 @@ try { if (typeof util.inherits !== 'function') throw ''; module.exports = util.inherits; } catch (e) { - module.exports = __webpack_require__(708); + module.exports = __webpack_require__(712); } /***/ }), -/* 708 */ +/* 712 */ /***/ (function(module, exports) { if (typeof Object.create === 'function') { @@ -81839,16 +82065,16 @@ if (typeof Object.create === 'function') { /***/ }), -/* 709 */ +/* 713 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const {promisify} = __webpack_require__(111); const fs = __webpack_require__(132); -const makeDir = __webpack_require__(710); -const pEvent = __webpack_require__(702); -const CpFileError = __webpack_require__(705); +const makeDir = __webpack_require__(714); +const pEvent = __webpack_require__(706); +const CpFileError = __webpack_require__(709); const stat = promisify(fs.stat); const lstat = promisify(fs.lstat); @@ -81945,7 +82171,7 @@ exports.copyFileSync = (source, destination, flags) => { /***/ }), -/* 710 */ +/* 714 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81953,7 +82179,7 @@ exports.copyFileSync = (source, destination, flags) => { const fs = __webpack_require__(133); const path = __webpack_require__(4); const {promisify} = __webpack_require__(111); -const semver = __webpack_require__(711); +const semver = __webpack_require__(715); const useNativeRecursiveOption = semver.satisfies(process.version, '>=10.12.0'); @@ -82108,7 +82334,7 @@ module.exports.sync = (input, options) => { /***/ }), -/* 711 */ +/* 715 */ /***/ (function(module, exports) { exports = module.exports = SemVer @@ -83710,7 +83936,7 @@ function coerce (version, options) { /***/ }), -/* 712 */ +/* 716 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83751,7 +83977,7 @@ module.exports = ProgressEmitter; /***/ }), -/* 713 */ +/* 717 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83797,12 +84023,12 @@ exports.default = module.exports; /***/ }), -/* 714 */ +/* 718 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const NestedError = __webpack_require__(715); +const NestedError = __webpack_require__(719); class CpyError extends NestedError { constructor(message, nested) { @@ -83816,7 +84042,7 @@ module.exports = CpyError; /***/ }), -/* 715 */ +/* 719 */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(111).inherits; diff --git a/packages/kbn-pm/package.json b/packages/kbn-pm/package.json index c2f9236d9e798..f4e9ee8249900 100644 --- a/packages/kbn-pm/package.json +++ b/packages/kbn-pm/package.json @@ -28,7 +28,7 @@ "@types/node": ">=10.17.17 <10.20.0", "@types/ora": "^1.3.5", "@types/read-pkg": "^4.0.0", - "@types/strip-ansi": "^3.0.0", + "@types/strip-ansi": "^5.2.1", "@types/strong-log-transformer": "^1.0.0", "@types/tempy": "^0.2.0", "@types/write-pkg": "^3.1.0", @@ -50,13 +50,13 @@ "log-symbols": "^2.2.0", "multimatch": "^4.0.0", "ncp": "^2.0.0", - "ora": "^1.4.0", + "ora": "^4.0.4", "prettier": "^2.1.1", "read-pkg": "^5.2.0", "rxjs": "^6.5.5", "spawn-sync": "^1.0.15", "string-replace-loader": "^2.2.0", - "strip-ansi": "^4.0.0", + "strip-ansi": "^6.0.0", "strong-log-transformer": "^2.1.0", "tempy": "^0.3.0", "typescript": "4.0.2", diff --git a/packages/kbn-pm/src/utils/validate_yarn_lock.ts b/packages/kbn-pm/src/utils/validate_yarn_lock.ts index e110dc4d921cf..ec853a3a958fb 100644 --- a/packages/kbn-pm/src/utils/validate_yarn_lock.ts +++ b/packages/kbn-pm/src/utils/validate_yarn_lock.ts @@ -25,6 +25,7 @@ import { writeFile } from './fs'; import { Kibana } from './kibana'; import { YarnLock } from './yarn_lock'; import { log } from './log'; +import { Project } from './project'; export async function validateYarnLock(kbn: Kibana, yarnLock: YarnLock) { // look through all of the packages in the yarn.lock file to see if @@ -95,5 +96,66 @@ export async function validateYarnLock(kbn: Kibana, yarnLock: YarnLock) { process.exit(1); } + // TODO: remove this once we move into a single package.json + // look through all the package.json files to find packages which have mismatched version ranges + const depRanges = new Map<string, Array<{ range: string; projects: Project[] }>>(); + for (const project of kbn.getAllProjects().values()) { + for (const [dep, range] of Object.entries(project.allDependencies)) { + const existingDep = depRanges.get(dep); + if (!existingDep) { + depRanges.set(dep, [ + { + range, + projects: [project], + }, + ]); + continue; + } + + const existingRange = existingDep.find((existing) => existing.range === range); + if (!existingRange) { + existingDep.push({ + range, + projects: [project], + }); + continue; + } + + existingRange.projects.push(project); + } + } + + const duplicateRanges = Array.from(depRanges.entries()) + .filter(([, ranges]) => ranges.length > 1) + .reduce( + (acc: string[], [dep, ranges]) => [ + ...acc, + dep, + ...ranges.map( + ({ range, projects }) => ` ${range} => ${projects.map((p) => p.name).join(', ')}` + ), + ], + [] + ) + .join('\n '); + + if (duplicateRanges) { + log.error(dedent` + + [single_version_dependencies] Multiple version ranges for the same dependency + were found declared across different package.json files. Please consolidate + those to match across all package.json files. Different versions for the + same dependency is not supported. + + If you have questions about this please reach out to the operations team. + + The conflicting dependencies are: + + ${duplicateRanges} + `); + + process.exit(1); + } + log.success('yarn.lock analysis completed without any issues'); } diff --git a/packages/kbn-release-notes/package.json b/packages/kbn-release-notes/package.json index f8971fa02aa87..268530c22399a 100644 --- a/packages/kbn-release-notes/package.json +++ b/packages/kbn-release-notes/package.json @@ -13,7 +13,7 @@ "axios": "^0.19.2", "cheerio": "0.22.0", "dedent": "^0.7.0", - "graphql": "^14.0.0", + "graphql": "^0.13.2", "graphql-tag": "^2.10.3", "terminal-link": "^2.1.1" }, diff --git a/packages/kbn-storybook/package.json b/packages/kbn-storybook/package.json index 05fdb8489a1c3..58359159e950d 100644 --- a/packages/kbn-storybook/package.json +++ b/packages/kbn-storybook/package.json @@ -13,8 +13,8 @@ "@storybook/core": "^6.0.16", "@storybook/react": "^6.0.16", "@storybook/theming": "^6.0.16", - "@types/loader-utils": "^2.0.1", - "@types/webpack": "^4.41.5", + "@types/loader-utils": "^1.1.3", + "@types/webpack": "^4.41.3", "@types/webpack-env": "^1.15.2", "@types/webpack-merge": "^4.1.5", "@kbn/utils": "1.0.0", diff --git a/packages/kbn-storybook/webpack.config.ts b/packages/kbn-storybook/webpack.config.ts index 98fca597ffd78..84f8cfaefd669 100644 --- a/packages/kbn-storybook/webpack.config.ts +++ b/packages/kbn-storybook/webpack.config.ts @@ -100,9 +100,5 @@ export default function ({ config: storybookConfig }: { config: Configuration }) if (htmlWebpackPlugin) { htmlWebpackPlugin.options.template = require.resolve('../lib/templates/index.ejs'); } - - // @ts-expect-error There's a long error here about the types of the - // incompatibility of Configuration, but it looks like it just may be Webpack - // type definition related. return webpackMerge(storybookConfig, config); } diff --git a/packages/kbn-test/package.json b/packages/kbn-test/package.json index c616c836d5ff4..4e86ec4bd72e0 100644 --- a/packages/kbn-test/package.json +++ b/packages/kbn-test/package.json @@ -32,7 +32,7 @@ "lodash": "^4.17.20", "parse-link-header": "^1.0.1", "rxjs": "^6.5.5", - "strip-ansi": "^5.2.0", + "strip-ansi": "^6.0.0", "tar-fs": "^2.1.0", "xml2js": "^0.4.22", "zlib": "^1.0.5" diff --git a/packages/kbn-ui-framework/package.json b/packages/kbn-ui-framework/package.json index be18b7cfc0d01..676985fa24740 100644 --- a/packages/kbn-ui-framework/package.json +++ b/packages/kbn-ui-framework/package.json @@ -58,10 +58,10 @@ "postcss-loader": "^3.0.0", "raw-loader": "^3.1.0", "react-dom": "^16.12.0", - "react-redux": "^5.1.2", - "react-router": "^3.2.0", + "react-redux": "^7.2.0", + "react-router": "^5.2.0", "react-router-redux": "^4.0.8", - "redux": "3.7.2", + "redux": "^4.0.5", "redux-thunk": "^2.3.0", "regenerator-runtime": "^0.13.3", "sass-loader": "^8.0.2", diff --git a/tasks/config/run.js b/tasks/config/run.js index 148be6ea8afaa..eddcb0bdd59d0 100644 --- a/tasks/config/run.js +++ b/tasks/config/run.js @@ -240,10 +240,6 @@ module.exports = function () { args: ['scripts/check_licenses', '--dev'], }), - verifyDependencyVersions: gruntTaskWithGithubChecks( - 'Verify dependency versions', - 'verifyDependencyVersions' - ), test_jest: gruntTaskWithGithubChecks('Jest tests', 'test:jest'), test_jest_integration: gruntTaskWithGithubChecks( 'Jest integration tests', diff --git a/tasks/jenkins.js b/tasks/jenkins.js index 90efadf41c435..4e3358ce81bbd 100644 --- a/tasks/jenkins.js +++ b/tasks/jenkins.js @@ -31,7 +31,6 @@ module.exports = function (grunt) { 'run:checkFileCasing', 'run:checkLockfileSymlinks', 'run:licenses', - 'run:verifyDependencyVersions', 'run:verifyNotice', 'run:mocha', 'run:test_jest', diff --git a/tasks/verify_dependency_versions.js b/tasks/verify_dependency_versions.js deleted file mode 100644 index 14ecbb9ba8603..0000000000000 --- a/tasks/verify_dependency_versions.js +++ /dev/null @@ -1,53 +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 { size } from 'lodash'; -import kibana from '../package.json'; -import xpack from '../x-pack/package.json'; - -function getMismatches(depType) { - return Object.keys(kibana[depType]) - .map((key) => { - const xpackValue = xpack[depType][key]; - const kibanaValue = kibana[depType][key]; - if (xpackValue && kibanaValue && xpackValue !== kibanaValue && !key.includes('@kbn/')) { - return { - key, - xpack: xpackValue, - kibana: kibanaValue, - }; - } - }) - .filter((key) => !!key); -} - -export default function verifyDependencyVersions(grunt) { - grunt.registerTask('verifyDependencyVersions', 'Checks dependency versions', () => { - const devDependenciesMismatches = getMismatches('devDependencies'); - if (size(devDependenciesMismatches) > 0) { - grunt.log.error( - 'The following devDependencies do not match:', - JSON.stringify(devDependenciesMismatches, null, 4) - ); - return false; - } else { - grunt.log.writeln('devDependencies match!'); - } - }); -} diff --git a/test/scripts/checks/verify_dependency_versions.sh b/test/scripts/checks/verify_dependency_versions.sh deleted file mode 100755 index b73a71e7ff7fd..0000000000000 --- a/test/scripts/checks/verify_dependency_versions.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -source src/dev/ci_setup/setup_env.sh - -yarn run grunt run:verifyDependencyVersions diff --git a/vars/tasks.groovy b/vars/tasks.groovy index edd2c0aa47401..09ff1b0a7d95b 100644 --- a/vars/tasks.groovy +++ b/vars/tasks.groovy @@ -12,7 +12,6 @@ def check() { kibanaPipeline.scriptTask('Check File Casing', 'test/scripts/checks/file_casing.sh'), kibanaPipeline.scriptTask('Check Lockfile Symlinks', 'test/scripts/checks/lock_file_symlinks.sh'), kibanaPipeline.scriptTask('Check Licenses', 'test/scripts/checks/licenses.sh'), - kibanaPipeline.scriptTask('Verify Dependency Versions', 'test/scripts/checks/verify_dependency_versions.sh'), kibanaPipeline.scriptTask('Verify NOTICE', 'test/scripts/checks/verify_notice.sh'), kibanaPipeline.scriptTask('Test Projects', 'test/scripts/checks/test_projects.sh'), kibanaPipeline.scriptTask('Test Hardening', 'test/scripts/checks/test_hardening.sh'), diff --git a/x-pack/package.json b/x-pack/package.json index f9b193bb4da06..5742200b55d9f 100644 --- a/x-pack/package.json +++ b/x-pack/package.json @@ -29,7 +29,7 @@ "**/@types/node": ">=10.17.17 <10.20.0" }, "devDependencies": { - "@cypress/webpack-preprocessor": "^4.1.0", + "@cypress/webpack-preprocessor": "^5.4.1", "@elastic/apm-rum-react": "^1.2.5", "@elastic/maki": "6.3.0", "@kbn/dev-utils": "1.0.0", @@ -159,7 +159,7 @@ "copy-to-clipboard": "^3.0.8", "copy-webpack-plugin": "^6.0.2", "cronstrue": "^1.51.0", - "cypress": "5.0.0", + "cypress": "^5.0.0", "cypress-multi-reporters": "^1.2.3", "cypress-promise": "^1.1.0", "d3": "3.5.17", @@ -257,7 +257,7 @@ "tinycolor2": "1.4.1", "topojson-client": "3.0.0", "tree-kill": "^1.2.2", - "ts-loader": "^6.0.4", + "ts-loader": "^7.0.5", "typescript": "4.0.2", "typescript-fsa": "^3.0.0", "typescript-fsa-reducers": "^1.2.1", @@ -309,7 +309,7 @@ "dedent": "^0.7.0", "del": "^5.1.0", "elasticsearch": "^16.7.0", - "extract-zip": "^1.7.0", + "extract-zip": "^2.0.1", "file-type": "^10.9.0", "font-awesome": "4.7.0", "fp-ts": "^2.3.1", @@ -321,7 +321,7 @@ "glob": "^7.1.2", "graphql": "^0.13.2", "graphql-fields": "^1.0.2", - "graphql-tag": "^2.9.2", + "graphql-tag": "^2.10.3", "graphql-tools": "^3.0.2", "h2o2": "^8.1.2", "handlebars": "4.7.6", @@ -372,7 +372,7 @@ "redux-observable": "^1.2.0", "redux-thunk": "^2.3.0", "request": "^2.88.0", - "rison-node": "0.3.1", + "rison-node": "1.0.2", "rxjs": "^6.5.5", "semver": "^5.7.0", "set-value": "^3.0.2", diff --git a/x-pack/plugins/apm/e2e/package.json b/x-pack/plugins/apm/e2e/package.json index 649198b7eae11..041f9ea7f21c0 100644 --- a/x-pack/plugins/apm/e2e/package.json +++ b/x-pack/plugins/apm/e2e/package.json @@ -14,7 +14,7 @@ "@types/node": ">=10.17.17 <10.20.0", "axios": "^0.19.2", "cypress-cucumber-preprocessor": "^2.5.2", - "cypress": "^4.9.0", + "cypress": "^5.0.0", "ora": "^4.0.4", "p-limit": "^3.0.1", "p-retry": "^4.2.0", diff --git a/x-pack/plugins/apm/scripts/package.json b/x-pack/plugins/apm/scripts/package.json index d3e2d42f972a9..c68dc49cd9370 100644 --- a/x-pack/plugins/apm/scripts/package.json +++ b/x-pack/plugins/apm/scripts/package.json @@ -4,7 +4,7 @@ "main": "index.js", "license": "MIT", "dependencies": { - "@elastic/elasticsearch": "7.9.0-rc.1", + "@elastic/elasticsearch": "7.9.1", "@octokit/rest": "^16.35.0", "console-stamp": "^0.2.9", "hdr-histogram-js": "^1.2.0" diff --git a/x-pack/plugins/reporting/server/browsers/extract/unzip.js b/x-pack/plugins/reporting/server/browsers/extract/unzip.js index d57d04a52f46e..d5166f149372a 100644 --- a/x-pack/plugins/reporting/server/browsers/extract/unzip.js +++ b/x-pack/plugins/reporting/server/browsers/extract/unzip.js @@ -7,14 +7,10 @@ import extractZip from 'extract-zip'; import { ExtractError } from './extract_error'; -export function unzip(filepath, target) { - return new Promise(function (resolve, reject) { - extractZip(filepath, { dir: target }, (err) => { - if (err) { - return reject(new ExtractError(err)); - } - - resolve(); - }); - }); +export async function unzip(filepath, target) { + try { + await extractZip(filepath, { dir: target }); + } catch (err) { + throw new ExtractError(err); + } } diff --git a/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts b/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts index 9f26fc22ede53..ed226fb0c984f 100644 --- a/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts +++ b/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts @@ -32,7 +32,7 @@ export interface MockedProvidedQuery { export const mockOpenTimelineQueryResults: MockedProvidedQuery[] = [ { request: { - query: allTimelinesQuery, + query: (allTimelinesQuery as unknown) as GetAllTimeline.Query, variables: { onlyUserFavorite: false, pageInfo: { diff --git a/x-pack/plugins/security_solution/scripts/beat_docs/build.js b/x-pack/plugins/security_solution/scripts/beat_docs/build.js index 9b3607593a5db..3dbfb75fbe32e 100644 --- a/x-pack/plugins/security_solution/scripts/beat_docs/build.js +++ b/x-pack/plugins/security_solution/scripts/beat_docs/build.js @@ -135,25 +135,25 @@ const convertSchemaToHash = (schema, beatFields) => { }, beatFields); }; -const manageZipFields = async (beat, filePath, beatFields) => - new Promise((resolve, reject) => { - extract(filePath, { dir: beat.outputDir }, (err) => { - if (err) { - return reject(new Error(err)); - } - console.log('building fields', beat.index); - const obj = yaml.load( - fs.readFileSync(`${beat.outputDir}/winlogbeat-7.9.0-windows-x86_64/fields.yml`, { - encoding: 'utf-8', - }) - ); - const eBeatFields = convertSchemaToHash(obj, beatFields); - console.log('deleting files', beat.index); - rimraf.sync(`${beat.outputDir}/winlogbeat-7.9.0-windows-x86_64`); - rimraf.sync(beat.filePath); - resolve(eBeatFields); - }); - }); +const manageZipFields = async (beat, filePath, beatFields) => { + try { + await extract(filePath, { dir: beat.outputDir }); + console.log('building fields', beat.index); + const obj = yaml.load( + fs.readFileSync(`${beat.outputDir}/winlogbeat-7.9.0-windows-x86_64/fields.yml`, { + encoding: 'utf-8', + }) + ); + const eBeatFields = convertSchemaToHash(obj, beatFields); + console.log('deleting files', beat.index); + rimraf.sync(`${beat.outputDir}/winlogbeat-7.9.0-windows-x86_64`); + rimraf.sync(beat.filePath); + + return eBeatFields; + } catch (err) { + throw new Error(err); + } +}; const manageTarFields = async (beat, filePath, beatFields) => new Promise((resolve, reject) => { diff --git a/yarn.lock b/yarn.lock index d795a174cfaa0..2d72b6d6c3bb6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -63,7 +63,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.0.1", "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.7.5", "@babel/core@^7.9.0": +"@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.7.5", "@babel/core@^7.9.0": version "7.11.1" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.1.tgz#2c55b604e73a40dc21b0e52650b11c65cf276643" integrity sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ== @@ -926,7 +926,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/preset-env@^7.0.0", "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.9.5", "@babel/preset-env@^7.9.6": +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.9.5", "@babel/preset-env@^7.9.6": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== @@ -1168,17 +1168,14 @@ tunnel-agent "^0.6.0" uuid "^3.3.2" -"@cypress/webpack-preprocessor@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@cypress/webpack-preprocessor/-/webpack-preprocessor-4.1.0.tgz#8c4debc0b1abf045b62524d1996dd9aeaf7e86a8" - integrity sha512-LbxsdYVpHGoC2fMOdW0aQvuvVRD7aZx8p8DrP53HISpl7bD1PqLGWKzhHn7cGG24UHycBJrbaEeKEosW29W1dg== +"@cypress/webpack-preprocessor@^5.4.1": + version "5.4.6" + resolved "https://registry.yarnpkg.com/@cypress/webpack-preprocessor/-/webpack-preprocessor-5.4.6.tgz#667f8007cbe6ee219ce7e45a7f1400d3e2401032" + integrity sha512-78hWoTUUEncv647badwVbyszvmwI1r9GaY/xy7V0sz0VVC90ByuDkLpvN+J0VP6enthob4dIPXcm0f9Tb1UKQQ== dependencies: - bluebird "3.5.0" - debug "3.1.0" - optionalDependencies: - "@babel/core" "^7.0.1" - "@babel/preset-env" "^7.0.0" - babel-loader "^8.0.2" + bluebird "^3.7.1" + debug "^4.1.1" + lodash "^4.17.20" "@cypress/xvfb@^1.2.4": version "1.2.4" @@ -1246,17 +1243,6 @@ utility-types "^3.10.0" uuid "^3.3.2" -"@elastic/elasticsearch@7.9.0-rc.1": - version "7.9.0-rc.1" - resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-7.9.0-rc.1.tgz#50205507ec84ccb95cb7a6d36e5570808749fee9" - integrity sha512-rVjiVj7VPLCusJPfywpb3gvcaA99uylYSum1Frcq4vi2Iqg118KXgYW6GOis2Y70oDZ6w6XRlT0ze5NA6SBa+g== - dependencies: - debug "^4.1.1" - decompress-response "^4.2.0" - ms "^2.1.1" - pump "^3.0.0" - secure-json-parse "^2.1.0" - "@elastic/elasticsearch@7.9.1": version "7.9.1" resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-7.9.1.tgz#40f1c38e8f70d783851c13be78a7cb346891c15e" @@ -4487,14 +4473,6 @@ "@types/node" "*" "@types/webpack" "*" -"@types/loader-utils@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/loader-utils/-/loader-utils-2.0.1.tgz#4073425aca25762099823f7b922e86599c2b85ec" - integrity sha512-X3jTNi/I2AEd2WrHdSqRppPkYzWkRMNGxJzeMwS0o3hVi8ZB6JCnf/XyQmqpUuCidld5lC/1VxVgTktEweRK+w== - dependencies: - "@types/node" "*" - "@types/webpack" "*" - "@types/lodash.difference@^4.5.6": version "4.5.6" resolved "https://registry.yarnpkg.com/@types/lodash.difference/-/lodash.difference-4.5.6.tgz#41ec5c4e684eeacf543848a9a1b2a4856ccf9853" @@ -5085,11 +5063,6 @@ resolved "https://registry.yarnpkg.com/@types/stats-lite/-/stats-lite-2.2.0.tgz#bc8190bf9dfa1e16b89eaa2b433c99dff0804de9" integrity sha512-YV6SS4QC+pbzqjMIV8qVSTDOOazgKBLTVaN+7PfuxELjz/eyzc20KwDVGPrbHt2OcYMA7K2ezLB45Cp6DpNOSQ== -"@types/strip-ansi@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/strip-ansi/-/strip-ansi-3.0.0.tgz#9b63d453a6b54aa849182207711a08be8eea48ae" - integrity sha1-m2PUU6a1SqhJGCIHcRoIvo7qSK4= - "@types/strip-ansi@^5.2.1": version "5.2.1" resolved "https://registry.yarnpkg.com/@types/strip-ansi/-/strip-ansi-5.2.1.tgz#acd97f1f091e332bb7ce697c4609eb2370fa2a92" @@ -5339,7 +5312,7 @@ "@types/webpack-sources" "*" source-map "^0.6.0" -"@types/webpack@^4.41.21", "@types/webpack@^4.41.5", "@types/webpack@^4.41.8": +"@types/webpack@^4.41.8": version "4.41.21" resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.21.tgz#cc685b332c33f153bb2f5fc1fa3ac8adeb592dee" integrity sha512-2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA== @@ -6283,11 +6256,6 @@ ansi-escapes@^1.0.0, ansi-escapes@^1.1.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= -ansi-escapes@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" - integrity sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs= - ansi-escapes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" @@ -7348,7 +7316,7 @@ babel-jest@^26.3.0: graceful-fs "^4.2.4" slash "^3.0.0" -babel-loader@^8.0.2, babel-loader@^8.0.6: +babel-loader@^8.0.6: version "8.0.6" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== @@ -7985,17 +7953,12 @@ bluebird-retry@^0.11.0: resolved "https://registry.yarnpkg.com/bluebird-retry/-/bluebird-retry-0.11.0.tgz#1289ab22cbbc3a02587baad35595351dd0c1c047" integrity sha1-EomrIsu8OgJYe6rTVZU1HdDBwEc= -bluebird@3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" - integrity sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw= - bluebird@3.5.5, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.5: version "3.5.5" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== -bluebird@3.7.2, bluebird@^3.7.2: +bluebird@3.7.2, bluebird@^3.7.1, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -8672,15 +8635,6 @@ camelcase-keys@^2.0.0: camelcase "^2.0.0" map-obj "^1.0.0" -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" - integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - camelcase-keys@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" @@ -8705,7 +8659,7 @@ camelcase@^3.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= -camelcase@^4.0.0, camelcase@^4.1.0: +camelcase@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= @@ -9245,17 +9199,12 @@ cli-spinners@^0.1.2: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" integrity sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw= -cli-spinners@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.1.0.tgz#f1847b168844d917a671eb9d147e3df497c90d06" - integrity sha1-8YR7FohE2RemceudFH499JfJDQY= - cli-spinners@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.1.0.tgz#22c34b4d51f573240885b201efda4e4ec9fff3c7" integrity sha512-8B00fJOEh1HPrx4fo5eW16XmE1PcL1tGpGrxy63CXGP9nHdPBN63X75hA1zhvQuhVztJWLqV58Roj2qlNM7cAA== -cli-spinners@^2.4.0: +cli-spinners@^2.2.0, cli-spinners@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== @@ -10219,7 +10168,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-react-class@^15.5.1, create-react-class@^15.5.2: +create-react-class@^15.5.2: version "15.6.3" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== @@ -10586,10 +10535,10 @@ cypress-promise@^1.1.0: resolved "https://registry.yarnpkg.com/cypress-promise/-/cypress-promise-1.1.0.tgz#f2d66965945fe198431aaf692d5157cea9d47b25" integrity sha512-DhIf5PJ/a0iY+Yii6n7Rbwq+9TJxU4pupXYzf9mZd8nPG0AzQrj9i+pqINv4xbI2EV1p+PKW3maCkR7oPG4GrA== -cypress@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-5.0.0.tgz#6957e299b790af8b1cd7bea68261b8935646f72e" - integrity sha512-jhPd0PMO1dPSBNpx6pHVLkmnnaTfMy3wCoacHAKJ9LJG06y16zqUNSFri64N4BjuGe8y6mNMt8TdgKnmy9muCg== +cypress@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-5.2.0.tgz#6902efd90703242a2539f0623c6e1118aff01f95" + integrity sha512-9S2spcrpIXrQ+CQIKHsjRoLQyRc2ehB06clJXPXXp1zyOL/uZMM3Qc20ipNki4CcNwY0nBTQZffPbRpODeGYQg== dependencies: "@cypress/listr-verbose-renderer" "^0.4.1" "@cypress/request" "^2.88.5" @@ -11042,7 +10991,7 @@ debuglog@^1.0.1: resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= -decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: +decamelize-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= @@ -11098,7 +11047,7 @@ deep-eql@^0.1.3: dependencies: type-detect "0.1.1" -deep-equal@^1.0.0, deep-equal@^1.1.1, deep-equal@~1.1.1: +deep-equal@^1.0.0, deep-equal@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== @@ -11843,7 +11792,7 @@ dotenv@^8.1.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== -dotignore@^0.1.2, dotignore@~0.1.2: +dotignore@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== @@ -12640,17 +12589,6 @@ eslint-config-prettier@^6.11.0: dependencies: get-stdin "^6.0.0" -eslint-formatter-pretty@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-formatter-pretty/-/eslint-formatter-pretty-1.3.0.tgz#985d9e41c1f8475f4a090c5dbd2dfcf2821d607e" - integrity sha512-5DY64Y1rYCm7cfFDHEGUn54bvCnK+wSUVF07N8oXeqUJFSd+gnYOTXbzelQ1HurESluY6gnEQPmXOIkB4Wa+gA== - dependencies: - ansi-escapes "^2.0.0" - chalk "^2.1.0" - log-symbols "^2.0.0" - plur "^2.1.2" - string-width "^2.0.0" - eslint-formatter-pretty@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eslint-formatter-pretty/-/eslint-formatter-pretty-4.0.0.tgz#dc15f3bf4fb51b7ba5fbedb77f57ba8841140ce2" @@ -14801,7 +14739,7 @@ glob@^6.0.1, glob@^6.0.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1, glob@~7.1.4, glob@~7.1.6: +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1, glob@~7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -15015,7 +14953,7 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -globby@^9.1.0, globby@^9.2.0: +globby@^9.2.0: version "9.2.0" resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== @@ -15383,7 +15321,7 @@ graphql-tag-pluck@0.6.0: source-map-support "^0.5.9" typescript "^3.2.2" -graphql-tag@2.10.1, graphql-tag@^2.9.2: +graphql-tag@2.10.1: version "2.10.1" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.1.tgz#10aa41f1cd8fae5373eaf11f1f67260a3cad5e02" integrity sha512-jApXqWBzNXQ8jYa/HLkZJaVw9jgwNqZkywa2zfFn16Iv1Zb7ELNHkJaXHR7Quvd5SIGsy6Ny7SUKATgnu05uEg== @@ -15439,13 +15377,6 @@ graphql@^0.13.2: dependencies: iterall "^1.2.1" -graphql@^14.0.0: - version "14.6.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.6.0.tgz#57822297111e874ea12f5cd4419616930cd83e49" - integrity sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg== - dependencies: - iterall "^1.2.2" - graphviz@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/graphviz/-/graphviz-0.0.8.tgz#e599e40733ef80e1653bfe89a5f031ecf2aa4aaa" @@ -16102,16 +16033,6 @@ history-extra@^5.0.1: resolved "https://registry.yarnpkg.com/history-extra/-/history-extra-5.0.1.tgz#95a2e59dda526c4241d0ae1b124a77a5e4675ce8" integrity sha512-6XV1L1lHgporVWgppa/Kq+Fnz4lhBew7iMxYCTfzVmoEywsAKJnTjdw1zOd+EGLHGYp0/V8jSVMEgqx4QbHLTw== -history@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/history/-/history-3.3.0.tgz#fcedcce8f12975371545d735461033579a6dae9c" - integrity sha1-/O3M6PEpdTcVRdc1RhAzV5ptrpw= - dependencies: - invariant "^2.2.1" - loose-envify "^1.2.0" - query-string "^4.2.2" - warning "^3.0.0" - history@^4.9.0: version "4.9.0" resolved "https://registry.yarnpkg.com/history/-/history-4.9.0.tgz#84587c2068039ead8af769e9d6a6860a14fa1bca" @@ -16773,7 +16694,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -16870,7 +16791,7 @@ inquirer@^0.12.0: strip-ansi "^3.0.0" through "^2.3.6" -inquirer@^1.0.2, inquirer@^1.2.2: +inquirer@^1.0.2: version "1.2.3" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918" integrity sha1-TexvMvN+97sLLtPx0aXD9UUHSRg= @@ -17038,7 +16959,7 @@ invariant@2.2.4, invariant@^2.1.0, invariant@^2.1.1, invariant@^2.2.3, invariant dependencies: loose-envify "^1.0.0" -invariant@^2.2.1, invariant@^2.2.2: +invariant@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" integrity sha1-nh9WrArNtr8wMwbzOL47IErmA2A= @@ -17089,11 +17010,6 @@ iron@5.x.x: cryptiles "4.x.x" hoek "5.x.x" -irregular-plurals@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.4.0.tgz#2ca9b033651111855412f16be5d77c62a458a766" - integrity sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y= - irregular-plurals@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-3.2.0.tgz#b19c490a0723798db51b235d7e39add44dab0822" @@ -17637,7 +17553,7 @@ is-redirect@^1.0.0: resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= -is-regex@^1.0.4, is-regex@^1.0.5, is-regex@~1.0.5: +is-regex@^1.0.4, is-regex@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== @@ -18066,11 +17982,6 @@ iterall@^1.1.3, iterall@^1.2.1: resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" integrity sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA== -iterall@^1.2.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" - integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== - iterate-iterator@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.1.tgz#1693a768c1ddd79c969051459453f082fe82e9f6" @@ -19737,7 +19648,7 @@ locutus@^2.0.5: resolved "https://registry.yarnpkg.com/locutus/-/locutus-2.0.10.tgz#f903619466a98a4ab76e8b87a5854b55a743b917" integrity sha512-AZg2kCqrquMJ5FehDsBidV0qHl98NrsYtseUClzjAQ3HFnsDBJTCwGVplSQ82t9/QfgahqvTjaKcZqZkHmS0wQ== -lodash-es@^4.17.11, lodash-es@^4.2.1: +lodash-es@^4.17.11: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== @@ -19997,7 +19908,7 @@ lodash.uniq@4.5.0, lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.17.11, lodash@4.17.15, lodash@>4.17.4, lodash@^4, lodash@^4.0.0, lodash@^4.0.1, lodash@^4.10.0, lodash@^4.11.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.2, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@~4.17.10, lodash@~4.17.15, lodash@~4.17.5: +lodash@4.17.11, lodash@4.17.15, lodash@>4.17.4, lodash@^4, lodash@^4.0.0, lodash@^4.0.1, lodash@^4.10.0, lodash@^4.11.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.2, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@~4.17.10, lodash@~4.17.15, lodash@~4.17.5: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -20010,14 +19921,14 @@ log-ok@^0.1.1: ansi-green "^0.1.1" success-symbol "^0.1.0" -log-symbols@2.2.0, log-symbols@^2.0.0, log-symbols@^2.1.0, log-symbols@^2.2.0: +log-symbols@2.2.0, log-symbols@^2.1.0, log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: chalk "^2.0.1" -log-symbols@3.0.0: +log-symbols@3.0.0, log-symbols@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== @@ -20326,11 +20237,6 @@ map-obj@^1.0.0, map-obj@^1.0.1: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= - map-obj@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" @@ -20647,21 +20553,6 @@ meow@^3.0.0, meow@^3.3.0, meow@^3.7.0: redent "^1.0.0" trim-newlines "^1.0.0" -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" - meow@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" @@ -20927,14 +20818,6 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: dependencies: brace-expansion "^1.1.7" -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" - integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - minimist-options@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -22161,7 +22044,7 @@ object-identity-map@^1.0.2: dependencies: object.entries "^1.1.0" -object-inspect@^1.6.0, object-inspect@^1.7.0, object-inspect@~1.7.0: +object-inspect@^1.6.0, object-inspect@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== @@ -22485,16 +22368,6 @@ ora@^0.2.3: cli-spinners "^0.1.2" object-assign "^4.0.1" -ora@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-1.4.0.tgz#884458215b3a5d4097592285f93321bb7a79e2e5" - integrity sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw== - dependencies: - chalk "^2.1.0" - cli-cursor "^2.1.0" - cli-spinners "^1.0.1" - log-symbols "^2.1.0" - ora@^3.0.0: version "3.4.0" resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" @@ -22507,6 +22380,20 @@ ora@^3.0.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" +ora@^4.0.4: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-4.1.1.tgz#566cc0348a15c36f5f0e979612842e02ba9dddbc" + integrity sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A== + dependencies: + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + ora@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8" @@ -23450,13 +23337,6 @@ plugin-error@^1.0.1: arr-union "^3.1.0" extend-shallow "^3.0.2" -plur@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" - integrity sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo= - dependencies: - irregular-plurals "^1.0.0" - plur@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/plur/-/plur-4.0.0.tgz#729aedb08f452645fe8c58ef115bf16b0a73ef84" @@ -23911,7 +23791,7 @@ prop-types-exact@^1.2.0: object.assign "^4.1.0" reflect.ownkeys "^0.2.0" -prop-types@15.7.2, prop-types@15.x, prop-types@^15.5.10, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@15.7.2, prop-types@15.x, prop-types@^15.5.10, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -24149,7 +24029,7 @@ qs@^6.6.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.8.0.tgz#87b763f0d37ca54200334cd57bb2ef8f68a1d081" integrity sha512-tPSkj8y92PfZVbinY1n84i1Qdx75lZjMQYx9WZhnkofyxzw2r7Ho39G3/aEvSUdebxpnnM4LZJCtvE/Aq3+s9w== -query-string@^4.1.0, query-string@^4.2.2: +query-string@^4.1.0: version "4.3.4" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= @@ -24197,11 +24077,6 @@ queue@6.0.1: dependencies: inherits "~2.0.3" -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" - integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= - quick-lru@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" @@ -24706,7 +24581,7 @@ react-lib-adler32@^1.0.3: resolved "https://registry.yarnpkg.com/react-lib-adler32/-/react-lib-adler32-1.0.3.tgz#63df1aed274eabcc1c5067077ea281ec30888ba7" integrity sha512-AqFqdt4cP0RPffHNjVHZ7tyIgnoSzNxgFhG8XKMXCtA1dZ72gTPO4iYFwWDKHqvE8sHS14rhltQTdbXU5G4BFA== -react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: +react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== @@ -24783,19 +24658,6 @@ react-portal@^3.2.0: dependencies: prop-types "^15.5.8" -react-redux@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.1.2.tgz#b19cf9e21d694422727bf798e934a916c4080f57" - integrity sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q== - dependencies: - "@babel/runtime" "^7.1.2" - hoist-non-react-statics "^3.3.0" - invariant "^2.2.4" - loose-envify "^1.1.0" - prop-types "^15.6.1" - react-is "^16.6.0" - react-lifecycles-compat "^3.0.0" - react-redux@^7.1.0, react-redux@^7.1.1, react-redux@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.0.tgz#f970f62192b3981642fec46fd0db18a074fe879d" @@ -24884,19 +24746,6 @@ react-router@5.2.0, react-router@^5.2.0: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-3.2.1.tgz#b9a3279962bdfbe684c8bd0482b81ef288f0f244" - integrity sha512-SXkhC0nr3G0ltzVU07IN8jYl0bB6FsrDIqlLC9dK3SITXqyTJyM7yhXlUqs89w3Nqi5OkXsfRUeHX+P874HQrg== - dependencies: - create-react-class "^15.5.1" - history "^3.0.0" - hoist-non-react-statics "^2.3.1" - invariant "^2.2.1" - loose-envify "^1.2.0" - prop-types "^15.5.6" - warning "^3.0.0" - react-select@^3.0.8: version "3.1.0" resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.1.0.tgz#ab098720b2e9fe275047c993f0d0caf5ded17c27" @@ -25174,14 +25023,6 @@ read-pkg-up@^2.0.0: find-up "^2.0.0" read-pkg "^2.0.0" -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - read-pkg-up@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" @@ -25389,14 +25230,6 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" - integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= - dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" - redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -25460,16 +25293,6 @@ redux-thunks@^1.0.0: resolved "https://registry.yarnpkg.com/redux-thunks/-/redux-thunks-1.0.0.tgz#56e03b86d281a2664c884ab05c543d9ab1673658" integrity sha1-VuA7htKBomZMiEqwXFQ9mrFnNlg= -redux@3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" - integrity sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A== - dependencies: - lodash "^4.2.1" - lodash-es "^4.2.1" - loose-envify "^1.1.0" - symbol-observable "^1.0.3" - redux@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.0.tgz#aa698a92b729315d22b34a0553d7e6533555cc03" @@ -26216,13 +26039,6 @@ resolve@~1.10.1: dependencies: path-parse "^1.0.6" -resolve@~1.14.2: - version "1.14.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.2.tgz#dbf31d0fa98b1f29aa5169783b9c290cb865fea2" - integrity sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ== - dependencies: - path-parse "^1.0.6" - responselike@1.0.2, responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" @@ -26352,11 +26168,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^2.0.0" inherits "^2.0.1" -rison-node@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/rison-node/-/rison-node-0.3.1.tgz#fc540015500fc146f3b27d8d25dd5742122552a6" - integrity sha1-/FQAFVAPwUbzsn2NJd1XQhIlUqY= - rison-node@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/rison-node/-/rison-node-1.0.2.tgz#b7b5f37f39f5ae2a51a973a33c9aa17239a33e4b" @@ -27877,7 +27688,7 @@ string.prototype.padstart@^3.0.0: es-abstract "^1.4.3" function-bind "^1.0.2" -string.prototype.trim@^1.2.1, string.prototype.trim@~1.2.1: +string.prototype.trim@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== @@ -28053,11 +27864,6 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= - strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -28358,7 +28164,7 @@ symbol-observable@1.0.1: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= -symbol-observable@^1.0.2, symbol-observable@^1.0.3, symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: +symbol-observable@^1.0.2, symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -28452,27 +28258,6 @@ tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tape@^4.13.0: - version "4.13.0" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.13.0.tgz#e2f581ff5f12a7cbd787e9f83c76c2851782fce2" - integrity sha512-J/hvA+GJnuWJ0Sj8Z0dmu3JgMNU+MmusvkCT7+SN4/2TklW18FNCp/UuHIEhPZwHfy4sXfKYgC7kypKg4umbOw== - dependencies: - deep-equal "~1.1.1" - defined "~1.0.0" - dotignore "~0.1.2" - for-each "~0.3.3" - function-bind "~1.1.1" - glob "~7.1.6" - has "~1.0.3" - inherits "~2.0.4" - is-regex "~1.0.5" - minimist "~1.2.0" - object-inspect "~1.7.0" - resolve "~1.14.2" - resumer "~0.0.0" - string.prototype.trim "~1.2.1" - through "~2.3.8" - tape@^4.5.1: version "4.10.2" resolved "https://registry.yarnpkg.com/tape/-/tape-4.10.2.tgz#129fcf62f86df92687036a52cce7b8ddcaffd7a6" @@ -29176,11 +28961,6 @@ trim-newlines@^1.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" - integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= - trim-newlines@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" @@ -29259,10 +29039,10 @@ ts-invariant@^0.4.0: dependencies: tslib "^1.9.3" -ts-loader@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-6.0.4.tgz#bc331ad91a887a60632d94c9f79448666f2c4b63" - integrity sha512-p2zJYe7OtwR+49kv4gs7v4dMrfYD1IPpOtqiSPCbe8oR+4zEBtdHwzM7A7M91F+suReqgzZrlClk4LRSSp882g== +ts-loader@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-7.0.5.tgz#789338fb01cb5dc0a33c54e50558b34a73c9c4c5" + integrity sha512-zXypEIT6k3oTc+OZNx/cqElrsbBtYqDknf48OZos0NQ3RTt045fBIU8RRSu+suObBzYB355aIPGOe/3kj9h7Ig== dependencies: chalk "^2.3.0" enhanced-resolve "^4.0.0" @@ -29292,19 +29072,6 @@ tsd@^0.13.1: read-pkg-up "^7.0.0" update-notifier "^4.1.0" -tsd@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/tsd/-/tsd-0.7.4.tgz#d9aba567f1394641821a6800dcee60746c87bd03" - integrity sha512-cqr1s2GHtVkU3L/4BXDaeJOjFEuZ7iOVC+hwmyx4G7Eo26mSXCFNnwFm4EasK/MW2HdY3AQWux+AjYzDYLzZow== - dependencies: - eslint-formatter-pretty "^1.3.0" - globby "^9.1.0" - meow "^5.0.0" - path-exists "^3.0.0" - read-pkg-up "^4.0.0" - typescript "^3.0.1" - update-notifier "^2.5.0" - tslib@^1, tslib@^1.0.0, tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.13.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" @@ -29476,7 +29243,7 @@ typescript-tuple@^2.2.1: dependencies: typescript-compare "^0.0.2" -typescript@4.0.2, typescript@^3.0.1, typescript@^3.0.3, typescript@^3.2.2, typescript@^3.3.3333, typescript@^3.4.5, typescript@~3.7.2: +typescript@4.0.2, typescript@^3.0.3, typescript@^3.2.2, typescript@^3.3.3333, typescript@^3.4.5, typescript@~3.7.2: version "4.0.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.2.tgz#7ea7c88777c723c681e33bf7988be5d008d05ac2" integrity sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ== @@ -30982,13 +30749,6 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.x" -warning@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" - integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= - dependencies: - loose-envify "^1.0.0" - warning@^4.0.2, warning@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" @@ -31868,13 +31628,6 @@ yargs-parser@5.0.0-security.0: camelcase "^3.0.0" object.assign "^4.1.0" -yargs-parser@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" - yargs-parser@^18.1.2, yargs-parser@^18.1.3: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" From 1841495322d4abe63c3985e9c7456bda01652292 Mon Sep 17 00:00:00 2001 From: Phillip Burch <phillip.burch@live.com> Date: Thu, 1 Oct 2020 18:54:46 -0500 Subject: [PATCH 137/142] [Metrics UI] Override anomaly detection partition field (#79214) * Add ability to override datafeeds and job config for partition field * Remove debug * UX cleanup * Fix types, delete dead code * Fix types --- .../containers/ml/infra_ml_module_types.ts | 4 +- .../containers/ml/infra_ml_setup_state.ts | 289 ------------------ .../metrics_hosts/module_descriptor.ts | 135 +++++--- .../modules/metrics_k8s/module_descriptor.ts | 143 ++++++--- .../anomoly_detection_flyout.tsx | 4 +- .../ml/anomaly_detection/flyout_home.tsx | 113 +++---- .../ml/anomaly_detection/job_setup_screen.tsx | 3 +- 7 files changed, 247 insertions(+), 444 deletions(-) delete mode 100644 x-pack/plugins/infra/public/containers/ml/infra_ml_setup_state.ts diff --git a/x-pack/plugins/infra/public/containers/ml/infra_ml_module_types.ts b/x-pack/plugins/infra/public/containers/ml/infra_ml_module_types.ts index a9f2671de8259..e36f38add641a 100644 --- a/x-pack/plugins/infra/public/containers/ml/infra_ml_module_types.ts +++ b/x-pack/plugins/infra/public/containers/ml/infra_ml_module_types.ts @@ -33,11 +33,11 @@ export interface ModuleDescriptor<JobType extends string> { partitionField?: string ) => Promise<SetupMlModuleResponsePayload>; cleanUpModule: (spaceId: string, sourceId: string) => Promise<DeleteJobsResponsePayload>; - validateSetupIndices: ( + validateSetupIndices?: ( indices: string[], timestampField: string ) => Promise<ValidationIndicesResponsePayload>; - validateSetupDatasets: ( + validateSetupDatasets?: ( indices: string[], timestampField: string, startTime: number, diff --git a/x-pack/plugins/infra/public/containers/ml/infra_ml_setup_state.ts b/x-pack/plugins/infra/public/containers/ml/infra_ml_setup_state.ts deleted file mode 100644 index 0dfe3b301f240..0000000000000 --- a/x-pack/plugins/infra/public/containers/ml/infra_ml_setup_state.ts +++ /dev/null @@ -1,289 +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 { isEqual } from 'lodash'; -import { useCallback, useEffect, useMemo, useState } from 'react'; -import { usePrevious } from 'react-use'; -import { - combineDatasetFilters, - DatasetFilter, - filterDatasetFilter, - isExampleDataIndex, -} from '../../../common/infra_ml'; -import { - AvailableIndex, - ValidationIndicesError, - ValidationUIError, -} from '../../components/logging/log_analysis_setup/initial_configuration_step'; -import { useTrackedPromise } from '../../utils/use_tracked_promise'; -import { ModuleDescriptor, ModuleSourceConfiguration } from './infra_ml_module_types'; - -type SetupHandler = ( - indices: string[], - startTime: number | undefined, - endTime: number | undefined, - datasetFilter: DatasetFilter -) => void; - -interface AnalysisSetupStateArguments<JobType extends string> { - cleanUpAndSetUpModule: SetupHandler; - moduleDescriptor: ModuleDescriptor<JobType>; - setUpModule: SetupHandler; - sourceConfiguration: ModuleSourceConfiguration; -} - -const fourWeeksInMs = 86400000 * 7 * 4; - -export const useAnalysisSetupState = <JobType extends string>({ - cleanUpAndSetUpModule, - moduleDescriptor: { validateSetupDatasets, validateSetupIndices }, - setUpModule, - sourceConfiguration, -}: AnalysisSetupStateArguments<JobType>) => { - const [startTime, setStartTime] = useState<number | undefined>(Date.now() - fourWeeksInMs); - const [endTime, setEndTime] = useState<number | undefined>(undefined); - - const isTimeRangeValid = useMemo( - () => (startTime != null && endTime != null ? startTime < endTime : true), - [endTime, startTime] - ); - - const [validatedIndices, setValidatedIndices] = useState<AvailableIndex[]>( - sourceConfiguration.indices.map((indexName) => ({ - name: indexName, - validity: 'unknown' as const, - })) - ); - - const updateIndicesWithValidationErrors = useCallback( - (validationErrors: ValidationIndicesError[]) => - setValidatedIndices((availableIndices) => - availableIndices.map((previousAvailableIndex) => { - const indexValiationErrors = validationErrors.filter( - ({ index }) => index === previousAvailableIndex.name - ); - - if (indexValiationErrors.length > 0) { - return { - validity: 'invalid', - name: previousAvailableIndex.name, - errors: indexValiationErrors, - }; - } else if (previousAvailableIndex.validity === 'valid') { - return { - ...previousAvailableIndex, - validity: 'valid', - errors: [], - }; - } else { - return { - validity: 'valid', - name: previousAvailableIndex.name, - isSelected: !isExampleDataIndex(previousAvailableIndex.name), - availableDatasets: [], - datasetFilter: { - type: 'includeAll' as const, - }, - }; - } - }) - ), - [] - ); - - const updateIndicesWithAvailableDatasets = useCallback( - (availableDatasets: Array<{ indexName: string; datasets: string[] }>) => - setValidatedIndices((availableIndices) => - availableIndices.map((previousAvailableIndex) => { - if (previousAvailableIndex.validity !== 'valid') { - return previousAvailableIndex; - } - - const availableDatasetsForIndex = availableDatasets.filter( - ({ indexName }) => indexName === previousAvailableIndex.name - ); - const newAvailableDatasets = availableDatasetsForIndex.flatMap( - ({ datasets }) => datasets - ); - - // filter out datasets that have disappeared if this index' datasets were updated - const newDatasetFilter: DatasetFilter = - availableDatasetsForIndex.length > 0 - ? filterDatasetFilter(previousAvailableIndex.datasetFilter, (dataset) => - newAvailableDatasets.includes(dataset) - ) - : previousAvailableIndex.datasetFilter; - - return { - ...previousAvailableIndex, - availableDatasets: newAvailableDatasets, - datasetFilter: newDatasetFilter, - }; - }) - ), - [] - ); - - const validIndexNames = useMemo( - () => validatedIndices.filter((index) => index.validity === 'valid').map((index) => index.name), - [validatedIndices] - ); - - const selectedIndexNames = useMemo( - () => - validatedIndices - .filter((index) => index.validity === 'valid' && index.isSelected) - .map((i) => i.name), - [validatedIndices] - ); - - const datasetFilter = useMemo( - () => - validatedIndices - .flatMap((validatedIndex) => - validatedIndex.validity === 'valid' - ? validatedIndex.datasetFilter - : { type: 'includeAll' as const } - ) - .reduce(combineDatasetFilters, { type: 'includeAll' as const }), - [validatedIndices] - ); - - const [validateIndicesRequest, validateIndices] = useTrackedPromise( - { - cancelPreviousOn: 'resolution', - createPromise: async () => { - return await validateSetupIndices( - sourceConfiguration.indices, - sourceConfiguration.timestampField - ); - }, - onResolve: ({ data: { errors } }) => { - updateIndicesWithValidationErrors(errors); - }, - onReject: () => { - setValidatedIndices([]); - }, - }, - [sourceConfiguration.indices, sourceConfiguration.timestampField] - ); - - const [validateDatasetsRequest, validateDatasets] = useTrackedPromise( - { - cancelPreviousOn: 'resolution', - createPromise: async () => { - if (validIndexNames.length === 0) { - return { data: { datasets: [] } }; - } - - return await validateSetupDatasets( - validIndexNames, - sourceConfiguration.timestampField, - startTime ?? 0, - endTime ?? Date.now() - ); - }, - onResolve: ({ data: { datasets } }) => { - updateIndicesWithAvailableDatasets(datasets); - }, - }, - [validIndexNames, sourceConfiguration.timestampField, startTime, endTime] - ); - - const setUp = useCallback(() => { - return setUpModule(selectedIndexNames, startTime, endTime, datasetFilter); - }, [setUpModule, selectedIndexNames, startTime, endTime, datasetFilter]); - - const cleanUpAndSetUp = useCallback(() => { - return cleanUpAndSetUpModule(selectedIndexNames, startTime, endTime, datasetFilter); - }, [cleanUpAndSetUpModule, selectedIndexNames, startTime, endTime, datasetFilter]); - - const isValidating = useMemo( - () => validateIndicesRequest.state === 'pending' || validateDatasetsRequest.state === 'pending', - [validateDatasetsRequest.state, validateIndicesRequest.state] - ); - - const validationErrors = useMemo<ValidationUIError[]>(() => { - if (isValidating) { - return []; - } - - return [ - // validate request status - ...(validateIndicesRequest.state === 'rejected' || - validateDatasetsRequest.state === 'rejected' - ? [{ error: 'NETWORK_ERROR' as const }] - : []), - // validation request results - ...validatedIndices.reduce<ValidationUIError[]>((errors, index) => { - return index.validity === 'invalid' && selectedIndexNames.includes(index.name) - ? [...errors, ...index.errors] - : errors; - }, []), - // index count - ...(selectedIndexNames.length === 0 ? [{ error: 'TOO_FEW_SELECTED_INDICES' as const }] : []), - // time range - ...(!isTimeRangeValid ? [{ error: 'INVALID_TIME_RANGE' as const }] : []), - ]; - }, [ - isValidating, - validateIndicesRequest.state, - validateDatasetsRequest.state, - validatedIndices, - selectedIndexNames, - isTimeRangeValid, - ]); - - const prevStartTime = usePrevious(startTime); - const prevEndTime = usePrevious(endTime); - const prevValidIndexNames = usePrevious(validIndexNames); - - useEffect(() => { - if (!isTimeRangeValid) { - return; - } - - validateIndices(); - }, [isTimeRangeValid, validateIndices]); - - useEffect(() => { - if (!isTimeRangeValid) { - return; - } - - if ( - startTime !== prevStartTime || - endTime !== prevEndTime || - !isEqual(validIndexNames, prevValidIndexNames) - ) { - validateDatasets(); - } - }, [ - endTime, - isTimeRangeValid, - prevEndTime, - prevStartTime, - prevValidIndexNames, - startTime, - validIndexNames, - validateDatasets, - ]); - - return { - cleanUpAndSetUp, - datasetFilter, - endTime, - isValidating, - selectedIndexNames, - setEndTime, - setStartTime, - setUp, - startTime, - validatedIndices, - setValidatedIndices, - validationErrors, - }; -}; diff --git a/x-pack/plugins/infra/public/containers/ml/modules/metrics_hosts/module_descriptor.ts b/x-pack/plugins/infra/public/containers/ml/modules/metrics_hosts/module_descriptor.ts index cec87fb1144e3..7ea87c3d21322 100644 --- a/x-pack/plugins/infra/public/containers/ml/modules/metrics_hosts/module_descriptor.ts +++ b/x-pack/plugins/infra/public/containers/ml/modules/metrics_hosts/module_descriptor.ts @@ -10,17 +10,27 @@ import { cleanUpJobsAndDatafeeds } from '../../infra_ml_cleanup'; import { callJobsSummaryAPI } from '../../api/ml_get_jobs_summary_api'; import { callGetMlModuleAPI } from '../../api/ml_get_module'; import { callSetupMlModuleAPI } from '../../api/ml_setup_module_api'; -import { callValidateIndicesAPI } from '../../../logs/log_analysis/api/validate_indices'; -import { callValidateDatasetsAPI } from '../../../logs/log_analysis/api/validate_datasets'; import { metricsHostsJobTypes, getJobId, MetricsHostsJobType, DatasetFilter, bucketSpan, - partitionField, } from '../../../../../common/infra_ml'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import MemoryJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_memory_usage.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import MemoryDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_memory_usage.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkInJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_in.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkInDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_in.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkOutJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/hosts_network_out.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkOutDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_hosts/ml/datafeed_hosts_network_out.json'; +type JobType = 'hosts_memory_usage' | 'hosts_network_in' | 'hosts_network_out'; const moduleId = 'metrics_ui_hosts'; const moduleName = i18n.translate('xpack.infra.ml.metricsModuleName', { defaultMessage: 'Metrics anomanly detection', @@ -54,23 +64,68 @@ const setUpModule = async ( end: number | undefined, datasetFilter: DatasetFilter, { spaceId, sourceId, indices, timestampField }: ModuleSourceConfiguration, - pField?: string + partitionField?: string ) => { const indexNamePattern = indices.join(','); - const jobIds = ['hosts_memory_usage', 'hosts_network_in', 'hosts_network_out']; - const jobOverrides = jobIds.map((id) => ({ - job_id: id, - data_description: { - time_field: timestampField, - }, - custom_settings: { - metrics_source_config: { - indexPattern: indexNamePattern, - timestampField, - bucketSpan, + const jobIds: JobType[] = ['hosts_memory_usage', 'hosts_network_in', 'hosts_network_out']; + + const jobOverrides = jobIds.map((id) => { + const { job: defaultJobConfig } = getDefaultJobConfigs(id); + + // eslint-disable-next-line @typescript-eslint/naming-convention + const analysis_config: any = { + ...defaultJobConfig.analysis_config, + }; + + if (partitionField) { + analysis_config.detectors[0].partition_field_name = partitionField; + if (analysis_config.influencers.indexOf(partitionField) === -1) { + analysis_config.influencers.push(partitionField); + } + } + + return { + job_id: id, + data_description: { + time_field: timestampField, + }, + analysis_config, + custom_settings: { + metrics_source_config: { + indexPattern: indexNamePattern, + timestampField, + bucketSpan, + }, + }, + }; + }); + + const datafeedOverrides = jobIds.map((id) => { + const { datafeed: defaultDatafeedConfig } = getDefaultJobConfigs(id); + + if (!partitionField || id === 'hosts_memory_usage') { + // Since the host memory usage doesn't have custom aggs, we don't need to do anything to add a partition field + return defaultDatafeedConfig; + } + + // If we have a partition field, we need to change the aggregation to do a terms agg at the top level + const aggregations = { + [partitionField]: { + terms: { + field: partitionField, + }, + aggregations: { + ...defaultDatafeedConfig.aggregations, + }, }, - }, - })); + }; + + return { + ...defaultDatafeedConfig, + job_id: id, + aggregations, + }; + }); return callSetupMlModuleAPI( moduleId, @@ -80,34 +135,32 @@ const setUpModule = async ( sourceId, indexNamePattern, jobOverrides, - [] + datafeedOverrides ); }; -const cleanUpModule = async (spaceId: string, sourceId: string) => { - return await cleanUpJobsAndDatafeeds(spaceId, sourceId, metricsHostsJobTypes); -}; - -const validateSetupIndices = async (indices: string[], timestampField: string) => { - return await callValidateIndicesAPI(indices, [ - { - name: timestampField, - validTypes: ['date'], - }, - { - name: partitionField, - validTypes: ['keyword'], - }, - ]); +const getDefaultJobConfigs = (jobId: JobType): { datafeed: any; job: any } => { + switch (jobId) { + case 'hosts_memory_usage': + return { + datafeed: MemoryDatafeed, + job: MemoryJob, + }; + case 'hosts_network_in': + return { + datafeed: NetworkInDatafeed, + job: NetworkInJob, + }; + case 'hosts_network_out': + return { + datafeed: NetworkOutDatafeed, + job: NetworkOutJob, + }; + } }; -const validateSetupDatasets = async ( - indices: string[], - timestampField: string, - startTime: number, - endTime: number -) => { - return await callValidateDatasetsAPI(indices, timestampField, startTime, endTime); +const cleanUpModule = async (spaceId: string, sourceId: string) => { + return await cleanUpJobsAndDatafeeds(spaceId, sourceId, metricsHostsJobTypes); }; export const metricHostsModule: ModuleDescriptor<MetricsHostsJobType> = { @@ -121,6 +174,4 @@ export const metricHostsModule: ModuleDescriptor<MetricsHostsJobType> = { getModuleDefinition, setUpModule, cleanUpModule, - validateSetupDatasets, - validateSetupIndices, }; diff --git a/x-pack/plugins/infra/public/containers/ml/modules/metrics_k8s/module_descriptor.ts b/x-pack/plugins/infra/public/containers/ml/modules/metrics_k8s/module_descriptor.ts index cbcff1c307af6..eaf7489c84eb4 100644 --- a/x-pack/plugins/infra/public/containers/ml/modules/metrics_k8s/module_descriptor.ts +++ b/x-pack/plugins/infra/public/containers/ml/modules/metrics_k8s/module_descriptor.ts @@ -10,17 +10,28 @@ import { cleanUpJobsAndDatafeeds } from '../../infra_ml_cleanup'; import { callJobsSummaryAPI } from '../../api/ml_get_jobs_summary_api'; import { callGetMlModuleAPI } from '../../api/ml_get_module'; import { callSetupMlModuleAPI } from '../../api/ml_setup_module_api'; -import { callValidateIndicesAPI } from '../../../logs/log_analysis/api/validate_indices'; -import { callValidateDatasetsAPI } from '../../../logs/log_analysis/api/validate_datasets'; import { metricsK8SJobTypes, getJobId, MetricK8sJobType, DatasetFilter, bucketSpan, - partitionField, } from '../../../../../common/infra_ml'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import MemoryJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_memory_usage.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import MemoryDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_memory_usage.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkInJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_in.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkInDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_in.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkOutJob from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/k8s_network_out.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import NetworkOutDatafeed from '../../../../../../ml/server/models/data_recognizer/modules/metrics_ui_k8s/ml/datafeed_k8s_network_out.json'; +type JobType = 'k8s_memory_usage' | 'k8s_network_in' | 'k8s_network_out'; +export const DEFAULT_K8S_PARTITION_FIELD = 'kubernetes.namespace'; const moduleId = 'metrics_ui_k8s'; const moduleName = i18n.translate('xpack.infra.ml.metricsModuleName', { defaultMessage: 'Metrics anomanly detection', @@ -54,26 +65,72 @@ const setUpModule = async ( end: number | undefined, datasetFilter: DatasetFilter, { spaceId, sourceId, indices, timestampField }: ModuleSourceConfiguration, - pField?: string + partitionField?: string ) => { const indexNamePattern = indices.join(','); - const jobIds = ['k8s_memory_usage', 'k8s_network_in', 'k8s_network_out']; - const jobOverrides = jobIds.map((id) => ({ - job_id: id, - analysis_config: { - bucket_span: `${bucketSpan}ms`, - }, - data_description: { - time_field: timestampField, - }, - custom_settings: { - metrics_source_config: { - indexPattern: indexNamePattern, - timestampField, - bucketSpan, + const jobIds: JobType[] = ['k8s_memory_usage', 'k8s_network_in', 'k8s_network_out']; + const jobOverrides = jobIds.map((id) => { + const { job: defaultJobConfig } = getDefaultJobConfigs(id); + + // eslint-disable-next-line @typescript-eslint/naming-convention + const analysis_config: any = { + ...defaultJobConfig.analysis_config, + }; + + if (partitionField) { + analysis_config.detectors[0].partition_field_name = partitionField; + if (analysis_config.influencers.indexOf(partitionField) === -1) { + analysis_config.influencers.push(partitionField); + } + } + + return { + job_id: id, + data_description: { + time_field: timestampField, + }, + analysis_config, + custom_settings: { + metrics_source_config: { + indexPattern: indexNamePattern, + timestampField, + bucketSpan, + }, + }, + }; + }); + + const datafeedOverrides = jobIds.map((id) => { + const { datafeed: defaultDatafeedConfig } = getDefaultJobConfigs(id); + + if (!partitionField || id === 'k8s_memory_usage') { + // Since the host memory usage doesn't have custom aggs, we don't need to do anything to add a partition field + return defaultDatafeedConfig; + } + + // Because the ML K8s jobs ship with a default partition field of {kubernetes.namespace}, ignore that agg and wrap it in our own agg. + const innerAggregation = + defaultDatafeedConfig.aggregations[DEFAULT_K8S_PARTITION_FIELD].aggregations; + + // If we have a partition field, we need to change the aggregation to do a terms agg to partition the data at the top level + const aggregations = { + [partitionField]: { + terms: { + field: partitionField, + size: 25, // 25 is arbitratry and only used to keep the number of buckets to a managable level in the event that the user choose a high cardinality partition field. + }, + aggregations: { + ...innerAggregation, + }, }, - }, - })); + }; + + return { + ...defaultDatafeedConfig, + job_id: id, + aggregations, + }; + }); return callSetupMlModuleAPI( moduleId, @@ -83,34 +140,32 @@ const setUpModule = async ( sourceId, indexNamePattern, jobOverrides, - [] + datafeedOverrides ); }; -const cleanUpModule = async (spaceId: string, sourceId: string) => { - return await cleanUpJobsAndDatafeeds(spaceId, sourceId, metricsK8SJobTypes); -}; - -const validateSetupIndices = async (indices: string[], timestampField: string) => { - return await callValidateIndicesAPI(indices, [ - { - name: timestampField, - validTypes: ['date'], - }, - { - name: partitionField, - validTypes: ['keyword'], - }, - ]); +const getDefaultJobConfigs = (jobId: JobType): { datafeed: any; job: any } => { + switch (jobId) { + case 'k8s_memory_usage': + return { + datafeed: MemoryDatafeed, + job: MemoryJob, + }; + case 'k8s_network_in': + return { + datafeed: NetworkInDatafeed, + job: NetworkInJob, + }; + case 'k8s_network_out': + return { + datafeed: NetworkOutDatafeed, + job: NetworkOutJob, + }; + } }; -const validateSetupDatasets = async ( - indices: string[], - timestampField: string, - startTime: number, - endTime: number -) => { - return await callValidateDatasetsAPI(indices, timestampField, startTime, endTime); +const cleanUpModule = async (spaceId: string, sourceId: string) => { + return await cleanUpJobsAndDatafeeds(spaceId, sourceId, metricsK8SJobTypes); }; export const metricHostsModule: ModuleDescriptor<MetricK8sJobType> = { @@ -124,6 +179,4 @@ export const metricHostsModule: ModuleDescriptor<MetricK8sJobType> = { getModuleDefinition, setUpModule, cleanUpModule, - validateSetupDatasets, - validateSetupIndices, }; diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/anomoly_detection_flyout.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/anomoly_detection_flyout.tsx index b063713fa2c97..b5d224910e819 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/anomoly_detection_flyout.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/anomoly_detection_flyout.tsx @@ -50,10 +50,10 @@ export const AnomalyDetectionFlyout = () => { return ( <> - <EuiButtonEmpty iconSide={'right'} onClick={openFlyout}> + <EuiButtonEmpty iconSide={'left'} iconType={'inspect'} onClick={openFlyout}> <FormattedMessage id="xpack.infra.ml.anomalyDetectionButton" - defaultMessage="Anomaly Detection" + defaultMessage="Anomaly detection" /> </EuiButtonEmpty> {showFlyout && ( diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/flyout_home.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/flyout_home.tsx index 801dff9c4a17a..5b520084ebb74 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/flyout_home.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/flyout_home.tsx @@ -5,7 +5,7 @@ */ import React, { useState, useCallback, useEffect } from 'react'; -import { EuiFlyoutHeader, EuiTitle, EuiFlyoutBody, EuiTabs, EuiTab, EuiSpacer } from '@elastic/eui'; +import { EuiFlyoutHeader, EuiTitle, EuiFlyoutBody, EuiSpacer } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { EuiText, EuiFlexGroup, EuiFlexItem, EuiCard, EuiIcon } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; @@ -30,7 +30,7 @@ interface Props { } export const FlyoutHome = (props: Props) => { - const [tab, setTab] = useState<'jobs' | 'anomalies'>('jobs'); + const [tab] = useState<'jobs' | 'anomalies'>('jobs'); const { goToSetup } = props; const { fetchJobStatus: fetchHostJobStatus, @@ -56,18 +56,10 @@ export const FlyoutHome = (props: Props) => { goToSetup('kubernetes'); }, [goToSetup]); - const goToJobs = useCallback(() => { - setTab('jobs'); - }, []); - const jobIds = [ ...(k8sJobSummaries || []).map((k) => k.id), ...(hostJobSummaries || []).map((h) => h.id), ]; - const anomaliesUrl = useLinkProps({ - app: 'ml', - pathname: `/explorer?_g=${createResultsUrl(jobIds)}`, - }); useEffect(() => { if (hasInfraMLReadCapabilities) { @@ -105,30 +97,24 @@ export const FlyoutHome = (props: Props) => { </EuiFlyoutHeader> <EuiFlyoutBody> - <EuiTabs> - <EuiTab isSelected={tab === 'jobs'} onClick={goToJobs}> - <FormattedMessage - defaultMessage="Jobs" - id="xpack.infra.ml.anomalyFlyout.jobsTabLabel" - /> - </EuiTab> - <EuiTab - disabled={jobIds.length === 0} - isSelected={tab === 'anomalies'} - {...anomaliesUrl} - > - <FormattedMessage - defaultMessage="Anomalies" - id="xpack.infra.ml.anomalyFlyout.anomaliesTabLabel" - /> - </EuiTab> - </EuiTabs> + <div> + <EuiText> + <p> + <FormattedMessage + defaultMessage="Anomaly detection is powered by machine learning. Machine learning jobs are available for the following resource types. Enable these jobs to begin detecting anomalies in your infrastructure metrics." + id="xpack.infra.ml.anomalyFlyout.create.description" + /> + </p> + </EuiText> + </div> + <EuiSpacer size="l" /> {hostJobSummaries.length > 0 && ( <> <JobsEnabledCallout hasHostJobs={hostJobSummaries.length > 0} hasK8sJobs={k8sJobSummaries.length > 0} + jobIds={jobIds} /> <EuiSpacer size="l" /> </> @@ -151,6 +137,7 @@ export const FlyoutHome = (props: Props) => { interface CalloutProps { hasHostJobs: boolean; hasK8sJobs: boolean; + jobIds: string[]; } const JobsEnabledCallout = (props: CalloutProps) => { let target = ''; @@ -175,8 +162,34 @@ const JobsEnabledCallout = (props: CalloutProps) => { pathname: '/jobs', }); + const anomaliesUrl = useLinkProps({ + app: 'ml', + pathname: `/explorer?_g=${createResultsUrl(props.jobIds)}`, + }); + return ( <> + <EuiFlexGroup gutterSize={'s'}> + <EuiFlexItem grow={false}> + <EuiButton {...manageJobsLinkProps} style={{ marginRight: 5 }}> + <FormattedMessage + defaultMessage="Manage jobs" + id="xpack.infra.ml.anomalyFlyout.manageJobs" + /> + </EuiButton> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <EuiButton {...anomaliesUrl}> + <FormattedMessage + defaultMessage="View anomalies" + id="xpack.infra.ml.anomalyFlyout.anomaliesTabLabel" + /> + </EuiButton> + </EuiFlexItem> + </EuiFlexGroup> + + <EuiSpacer size="l" /> + <EuiCallOut size="m" color="success" @@ -189,13 +202,6 @@ const JobsEnabledCallout = (props: CalloutProps) => { } iconType="check" /> - <EuiSpacer size="l" /> - <EuiButton {...manageJobsLinkProps}> - <FormattedMessage - defaultMessage="Manage Jobs" - id="xpack.infra.ml.anomalyFlyout.manageJobs" - /> - </EuiButton> </> ); }; @@ -211,30 +217,11 @@ interface CreateJobTab { const CreateJobTab = (props: CreateJobTab) => { return ( <> - <div> - <EuiText> - <h3> - <FormattedMessage - defaultMessage="Create ML Jobs" - id="xpack.infra.ml.anomalyFlyout.create.jobsTitle" - /> - </h3> - </EuiText> - <EuiText> - <p> - <FormattedMessage - defaultMessage="Machine Learning jobs are available for the following resource types. Enable these jobs to begin detecting anomalies in your infrastructure metrics" - id="xpack.infra.ml.anomalyFlyout.create.description" - /> - </p> - </EuiText> - </div> - - <EuiSpacer size="l" /> + {/* <EuiSpacer size="l" /> */} <EuiFlexGroup gutterSize={'m'}> <EuiFlexItem> <EuiCard - // isDisabled={props.hasSetupCapabilities} + isDisabled={!props.hasSetupCapabilities} icon={<EuiIcon type={'storage'} />} // title="Hosts" title={ @@ -245,7 +232,7 @@ const CreateJobTab = (props: CreateJobTab) => { } description={ <FormattedMessage - defaultMessage="Detect anomalies for CPU usage, memory usage, network traffic, and load." + defaultMessage="Detect anomalies for memory usage and network traffic." id="xpack.infra.ml.anomalyFlyout.create.hostDescription" /> } @@ -254,7 +241,7 @@ const CreateJobTab = (props: CreateJobTab) => { {props.hasHostJobs && ( <EuiButtonEmpty onClick={props.createHosts}> <FormattedMessage - defaultMessage="Recreate Jobs" + defaultMessage="Recreate jobs" id="xpack.infra.ml.anomalyFlyout.create.recreateButton" /> </EuiButtonEmpty> @@ -262,7 +249,7 @@ const CreateJobTab = (props: CreateJobTab) => { {!props.hasHostJobs && ( <EuiButton onClick={props.createHosts}> <FormattedMessage - defaultMessage="Create Jobs" + defaultMessage="Enable" id="xpack.infra.ml.anomalyFlyout.create.createButton" /> </EuiButton> @@ -273,7 +260,7 @@ const CreateJobTab = (props: CreateJobTab) => { </EuiFlexItem> <EuiFlexItem> <EuiCard - // isDisabled={props.hasSetupCapabilities} + isDisabled={!props.hasSetupCapabilities} icon={<EuiIcon type={'logoKubernetes'} />} title={ <FormattedMessage @@ -283,7 +270,7 @@ const CreateJobTab = (props: CreateJobTab) => { } description={ <FormattedMessage - defaultMessage="Detect anomalies for CPU usage, memory usage, network traffic, and load." + defaultMessage="Detect anomalies for memory usage and network traffic." id="xpack.infra.ml.anomalyFlyout.create.k8sDescription" /> } @@ -292,7 +279,7 @@ const CreateJobTab = (props: CreateJobTab) => { {props.hasK8sJobs && ( <EuiButtonEmpty onClick={props.createK8s}> <FormattedMessage - defaultMessage="Recreate Jobs" + defaultMessage="Recreate jobs" id="xpack.infra.ml.anomalyFlyout.create.recreateButton" /> </EuiButtonEmpty> @@ -300,7 +287,7 @@ const CreateJobTab = (props: CreateJobTab) => { {!props.hasK8sJobs && ( <EuiButton onClick={props.createK8s}> <FormattedMessage - defaultMessage="Create Jobs" + defaultMessage="Enable" id="xpack.infra.ml.anomalyFlyout.create.createButton" /> </EuiButton> diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx index 428c002da6383..c327d187f6bc2 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx @@ -20,6 +20,7 @@ import { useSourceViaHttp } from '../../../../../../containers/source/use_source import { useMetricK8sModuleContext } from '../../../../../../containers/ml/modules/metrics_k8s/module'; import { useMetricHostsModuleContext } from '../../../../../../containers/ml/modules/metrics_hosts/module'; import { FixedDatePicker } from '../../../../../../components/fixed_datepicker'; +import { DEFAULT_K8S_PARTITION_FIELD } from '../../../../../../containers/ml/modules/metrics_k8s/module_descriptor'; interface Props { jobType: 'hosts' | 'kubernetes'; @@ -107,7 +108,7 @@ export const JobSetupScreen = (props: Props) => { useEffect(() => { if (props.jobType === 'kubernetes') { - setPartitionField(['kubernetes.namespace']); + setPartitionField([DEFAULT_K8S_PARTITION_FIELD]); } }, [props.jobType]); From 6c015cfbef12189eb5aec8fa42f5ea2743be2971 Mon Sep 17 00:00:00 2001 From: Nathan Reese <reese.nathan@gmail.com> Date: Thu, 1 Oct 2020 19:04:26 -0600 Subject: [PATCH 138/142] Convert VectorLayer to typescript (#78490) * [maps] convert VectorLayer to TS * more tslint fixes * clean up * more tslint fixes * more tslint fixes * remove unneeded casts * remove unneeded VectorStyle casts * revert changes to layer.getQuery * fix * update tile layer constructor * review feedback Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> --- .../data_request_descriptor_types.ts | 19 +- .../common/descriptor_types/map_descriptor.ts | 2 +- .../common/elasticsearch_util/es_agg_utils.ts | 4 +- .../public/actions/data_request_actions.ts | 2 +- .../maps/public/classes/joins/inner_join.d.ts | 23 +- .../plugins/maps/public/classes/joins/join.ts | 32 +- .../blended_vector_layer.ts | 11 +- .../layers/heatmap_layer/heatmap_layer.js | 12 + .../maps/public/classes/layers/layer.test.ts | 6 - .../maps/public/classes/layers/layer.tsx | 19 +- .../classes/layers/tile_layer/tile_layer.js | 15 +- .../tiled_vector_layer/tiled_vector_layer.tsx | 43 +-- .../layers/vector_layer/vector_layer.d.ts | 85 ----- .../{vector_layer.js => vector_layer.tsx} | 291 ++++++++++++------ .../sources/es_agg_source/es_agg_source.ts | 2 +- .../es_geo_grid_source.d.ts | 9 +- .../es_geo_grid_source.test.ts | 3 +- .../classes/sources/es_source/es_source.d.ts | 48 ++- .../classes/sources/es_source/es_source.js | 15 +- .../es_term_source/es_term_source.d.ts | 13 +- .../sources/es_term_source/es_term_source.js | 4 +- .../kibana_regionmap_source.js | 1 + .../mvt_single_layer_vector_source.tsx | 14 +- .../sources/vector_source/vector_source.d.ts | 28 +- .../classes/styles/vector/vector_style.tsx | 55 +++- .../toc_entry_actions_popover.test.tsx | 14 +- 26 files changed, 478 insertions(+), 292 deletions(-) delete mode 100644 x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.d.ts rename x-pack/plugins/maps/public/classes/layers/vector_layer/{vector_layer.js => vector_layer.tsx} (78%) diff --git a/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.ts b/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.ts index f3521cca2e456..16b60492c9b78 100644 --- a/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.ts +++ b/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.ts @@ -38,15 +38,21 @@ export type VectorSourceRequestMeta = MapFilters & { applyGlobalQuery: boolean; fieldNames: string[]; geogridPrecision?: number; - sourceQuery: MapQuery; + sourceQuery?: MapQuery; sourceMeta: VectorSourceSyncMeta; }; +export type VectorJoinSourceRequestMeta = MapFilters & { + applyGlobalQuery: boolean; + fieldNames: string[]; + sourceQuery: MapQuery; +}; + export type VectorStyleRequestMeta = MapFilters & { dynamicStyleFields: string[]; isTimeAware: boolean; sourceQuery: MapQuery; - timeFilters: unknown; + timeFilters: TimeRange; }; export type ESSearchSourceResponseMeta = { @@ -59,9 +65,12 @@ export type ESSearchSourceResponseMeta = { }; // Partial because objects are justified downstream in constructors -export type DataMeta = Partial<VectorSourceRequestMeta> & - Partial<VectorStyleRequestMeta> & - Partial<ESSearchSourceResponseMeta>; +export type DataMeta = Partial< + VectorSourceRequestMeta & + VectorJoinSourceRequestMeta & + VectorStyleRequestMeta & + ESSearchSourceResponseMeta +>; type NumericalStyleFieldData = { avg: number; diff --git a/x-pack/plugins/maps/common/descriptor_types/map_descriptor.ts b/x-pack/plugins/maps/common/descriptor_types/map_descriptor.ts index d064dfb1c4a37..b769b125cf0f8 100644 --- a/x-pack/plugins/maps/common/descriptor_types/map_descriptor.ts +++ b/x-pack/plugins/maps/common/descriptor_types/map_descriptor.ts @@ -17,7 +17,7 @@ export type MapExtent = { }; export type MapQuery = Query & { - queryLastTriggeredAt: string; + queryLastTriggeredAt?: string; }; export type MapRefreshConfig = { diff --git a/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts b/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts index 7828c3cc6410b..f157ffe9f1c80 100644 --- a/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts +++ b/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts @@ -33,8 +33,10 @@ export function addFieldToDSL(dsl: object, field: IFieldType) { }; } +export type BucketProperties = Record<string | number, unknown>; + export function extractPropertiesFromBucket(bucket: any, ignoreKeys: string[] = []) { - const properties: Record<string | number, unknown> = {}; + const properties: BucketProperties = {}; for (const key in bucket) { if (ignoreKeys.includes(key) || !bucket.hasOwnProperty(key)) { continue; diff --git a/x-pack/plugins/maps/public/actions/data_request_actions.ts b/x-pack/plugins/maps/public/actions/data_request_actions.ts index 14d8196900506..d7d9259e1539e 100644 --- a/x-pack/plugins/maps/public/actions/data_request_actions.ts +++ b/x-pack/plugins/maps/public/actions/data_request_actions.ts @@ -47,7 +47,7 @@ const FIT_TO_BOUNDS_SCALE_FACTOR = 0.1; export type DataRequestContext = { startLoading(dataId: string, requestToken: symbol, meta: DataMeta): void; - stopLoading(dataId: string, requestToken: symbol, data: object, meta: DataMeta): void; + stopLoading(dataId: string, requestToken: symbol, data: object, meta?: DataMeta): void; onLoadError(dataId: string, requestToken: symbol, errorMessage: string): void; updateSourceData(newData: unknown): void; isRequestStillActive(dataId: string, requestToken: symbol): boolean; diff --git a/x-pack/plugins/maps/public/classes/joins/inner_join.d.ts b/x-pack/plugins/maps/public/classes/joins/inner_join.d.ts index befff0965fb70..3e2ceac4971c4 100644 --- a/x-pack/plugins/maps/public/classes/joins/inner_join.d.ts +++ b/x-pack/plugins/maps/public/classes/joins/inner_join.d.ts @@ -4,19 +4,40 @@ * you may not use this file except in compliance with the Elastic License. */ +import { Feature, GeoJsonProperties } from 'geojson'; import { IESTermSource } from '../sources/es_term_source'; -import { IJoin } from './join'; +import { IJoin, PropertiesMap } from './join'; import { JoinDescriptor } from '../../../common/descriptor_types'; import { ISource } from '../sources/source'; +import { ITooltipProperty } from '../tooltips/tooltip_property'; +import { IField } from '../fields/field'; export class InnerJoin implements IJoin { constructor(joinDescriptor: JoinDescriptor, leftSource: ISource); + destroy: () => void; + getRightJoinSource(): IESTermSource; toDescriptor(): JoinDescriptor; + getJoinFields: () => IField[]; + + getLeftField: () => IField; + + getIndexPatternIds: () => string[]; + + getQueryableIndexPatternIds: () => string[]; + + getSourceDataRequestId: () => string; + getSourceMetaDataRequestId(): string; getSourceFormattersDataRequestId(): string; + + getTooltipProperties(properties: GeoJsonProperties): Promise<ITooltipProperty[]>; + + hasCompleteConfig: () => boolean; + + joinPropertiesToFeature: (feature: Feature, propertiesMap?: PropertiesMap) => boolean; } diff --git a/x-pack/plugins/maps/public/classes/joins/join.ts b/x-pack/plugins/maps/public/classes/joins/join.ts index 5bcc4bfdec87e..df6f6f684f4d2 100644 --- a/x-pack/plugins/maps/public/classes/joins/join.ts +++ b/x-pack/plugins/maps/public/classes/joins/join.ts @@ -4,15 +4,39 @@ * you may not use this file except in compliance with the Elastic License. */ +import { Feature, GeoJsonProperties } from 'geojson'; import { IESTermSource } from '../sources/es_term_source'; import { JoinDescriptor } from '../../../common/descriptor_types'; +import { ITooltipProperty } from '../tooltips/tooltip_property'; +import { IField } from '../fields/field'; +import { BucketProperties } from '../../../common/elasticsearch_util'; + +export type PropertiesMap = Map<string, BucketProperties>; export interface IJoin { - getRightJoinSource(): IESTermSource; + destroy: () => void; + + getRightJoinSource: () => IESTermSource; + + toDescriptor: () => JoinDescriptor; + + getJoinFields: () => IField[]; + + getLeftField: () => IField; + + getIndexPatternIds: () => string[]; + + getQueryableIndexPatternIds: () => string[]; + + getSourceDataRequestId: () => string; + + getSourceMetaDataRequestId: () => string; + + getSourceFormattersDataRequestId: () => string; - toDescriptor(): JoinDescriptor; + getTooltipProperties: (properties: GeoJsonProperties) => Promise<ITooltipProperty[]>; - getSourceMetaDataRequestId(): string; + hasCompleteConfig: () => boolean; - getSourceFormattersDataRequestId(): string; + joinPropertiesToFeature: (feature: Feature, propertiesMap?: PropertiesMap) => boolean; } diff --git a/x-pack/plugins/maps/public/classes/layers/blended_vector_layer/blended_vector_layer.ts b/x-pack/plugins/maps/public/classes/layers/blended_vector_layer/blended_vector_layer.ts index 90e8d25a77958..9b6a67ac28ad0 100644 --- a/x-pack/plugins/maps/public/classes/layers/blended_vector_layer/blended_vector_layer.ts +++ b/x-pack/plugins/maps/public/classes/layers/blended_vector_layer/blended_vector_layer.ts @@ -37,7 +37,6 @@ import { LayerDescriptor, VectorLayerDescriptor, } from '../../../../common/descriptor_types'; -import { IStyle } from '../../styles/style'; import { IVectorSource } from '../../sources/vector_source'; const ACTIVE_COUNT_DATA_ID = 'ACTIVE_COUNT_DATA_ID'; @@ -257,7 +256,7 @@ export class BlendedVectorLayer extends VectorLayer implements IVectorLayer { return clonedDescriptor; } - getSource() { + getSource(): IVectorSource { return this._isClustered ? this._clusterSource : this._documentSource; } @@ -268,11 +267,11 @@ export class BlendedVectorLayer extends VectorLayer implements IVectorLayer { return this._documentSource; } - getCurrentStyle(): IStyle { + getCurrentStyle(): IVectorStyle { return this._isClustered ? this._clusterStyle : this._documentStyle; } - getStyleForEditing(): IStyle { + getStyleForEditing(): IVectorStyle { return this._documentStyle; } @@ -281,8 +280,8 @@ export class BlendedVectorLayer extends VectorLayer implements IVectorLayer { const requestToken = Symbol(`layer-active-count:${this.getId()}`); const searchFilters = this._getSearchFilters( syncContext.dataFilters, - this.getSource() as IVectorSource, - this.getCurrentStyle() as IVectorStyle + this.getSource(), + this.getCurrentStyle() ); const canSkipFetch = await canSkipSourceUpdate({ source: this.getSource(), diff --git a/x-pack/plugins/maps/public/classes/layers/heatmap_layer/heatmap_layer.js b/x-pack/plugins/maps/public/classes/layers/heatmap_layer/heatmap_layer.js index adcc86b9d1546..33e82db79f3cf 100644 --- a/x-pack/plugins/maps/public/classes/layers/heatmap_layer/heatmap_layer.js +++ b/x-pack/plugins/maps/public/classes/layers/heatmap_layer/heatmap_layer.js @@ -31,6 +31,18 @@ export class HeatmapLayer extends VectorLayer { } } + getStyleForEditing() { + return this._style; + } + + getStyle() { + return this._style; + } + + getCurrentStyle() { + return this._style; + } + _getPropKeyOfSelectedMetric() { const metricfields = this.getSource().getMetricFields(); return metricfields[0].getName(); diff --git a/x-pack/plugins/maps/public/classes/layers/layer.test.ts b/x-pack/plugins/maps/public/classes/layers/layer.test.ts index 7bc91d71f83e2..76df7c2af840a 100644 --- a/x-pack/plugins/maps/public/classes/layers/layer.test.ts +++ b/x-pack/plugins/maps/public/classes/layers/layer.test.ts @@ -7,7 +7,6 @@ import { AbstractLayer } from './layer'; import { ISource } from '../sources/source'; -import { IStyle } from '../styles/style'; import { AGG_TYPE, FIELD_ORIGIN, LAYER_STYLE_TYPE, VECTOR_STYLES } from '../../../common/constants'; import { ESTermSourceDescriptor, VectorStyleDescriptor } from '../../../common/descriptor_types'; import { getDefaultDynamicProperties } from '../styles/vector/vector_style_defaults'; @@ -38,8 +37,6 @@ class MockSource { } } -class MockStyle {} - describe('cloneDescriptor', () => { describe('with joins', () => { const styleDescriptor = { @@ -84,7 +81,6 @@ describe('cloneDescriptor', () => { const layer = new MockLayer({ layerDescriptor, source: (new MockSource() as unknown) as ISource, - style: (new MockStyle() as unknown) as IStyle, }); const clonedDescriptor = await layer.cloneDescriptor(); const clonedStyleProps = (clonedDescriptor.style as VectorStyleDescriptor).properties; @@ -122,7 +118,6 @@ describe('cloneDescriptor', () => { const layer = new MockLayer({ layerDescriptor, source: (new MockSource() as unknown) as ISource, - style: (new MockStyle() as unknown) as IStyle, }); const clonedDescriptor = await layer.cloneDescriptor(); const clonedStyleProps = (clonedDescriptor.style as VectorStyleDescriptor).properties; @@ -165,7 +160,6 @@ describe('isFittable', () => { const layer = new MockLayer({ layerDescriptor, source: (new MockSource({ fitToBounds: test.fitToBounds }) as unknown) as ISource, - style: (new MockStyle() as unknown) as IStyle, }); expect(await layer.isFittable()).toBe(test.canFit); }); diff --git a/x-pack/plugins/maps/public/classes/layers/layer.tsx b/x-pack/plugins/maps/public/classes/layers/layer.tsx index cd720063c6703..d6bd5180375ce 100644 --- a/x-pack/plugins/maps/public/classes/layers/layer.tsx +++ b/x-pack/plugins/maps/public/classes/layers/layer.tsx @@ -110,13 +110,11 @@ export type CustomIconAndTooltipContent = { export interface ILayerArguments { layerDescriptor: LayerDescriptor; source: ISource; - style: IStyle; } export class AbstractLayer implements ILayer { protected readonly _descriptor: LayerDescriptor; protected readonly _source: ISource; - protected readonly _style: IStyle; protected readonly _dataRequests: DataRequest[]; static createDescriptor(options: Partial<LayerDescriptor>): LayerDescriptor { @@ -140,10 +138,9 @@ export class AbstractLayer implements ILayer { } } - constructor({ layerDescriptor, source, style }: ILayerArguments) { + constructor({ layerDescriptor, source }: ILayerArguments) { this._descriptor = AbstractLayer.createDescriptor(layerDescriptor); this._source = source; - this._style = style; if (this._descriptor.__dataRequests) { this._dataRequests = this._descriptor.__dataRequests.map( (dataRequest) => new DataRequest(dataRequest) @@ -257,11 +254,15 @@ export class AbstractLayer implements ILayer { } getStyleForEditing(): IStyle { - return this._style; + throw new Error('Should implement AbstractLayer#getStyleForEditing'); } - getStyle() { - return this._style; + getStyle(): IStyle { + throw new Error('Should implement AbstractLayer#getStyle'); + } + + getCurrentStyle(): IStyle { + throw new Error('Should implement AbstractLayer#getCurrentStyle'); } getLabel(): string { @@ -412,10 +413,6 @@ export class AbstractLayer implements ILayer { return this._descriptor.query ? this._descriptor.query : null; } - getCurrentStyle(): IStyle { - return this._style; - } - async getImmutableSourceProperties() { const source = this.getSource(); return await source.getImmutableProperties(); diff --git a/x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.js b/x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.js index 3e2009c24a2e4..fa60017f0eaf7 100644 --- a/x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.js +++ b/x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.js @@ -21,7 +21,20 @@ export class TileLayer extends AbstractLayer { } constructor({ source, layerDescriptor }) { - super({ source, layerDescriptor, style: new TileStyle() }); + super({ source, layerDescriptor }); + this._style = new TileStyle(); + } + + getStyleForEditing() { + return this._style; + } + + getStyle() { + return this._style; + } + + getCurrentStyle() { + return this._style; } async syncData({ startLoading, stopLoading, onLoadError, dataFilters }) { diff --git a/x-pack/plugins/maps/public/classes/layers/tiled_vector_layer/tiled_vector_layer.tsx b/x-pack/plugins/maps/public/classes/layers/tiled_vector_layer/tiled_vector_layer.tsx index 70bf8ea3883b7..68b9f2931f398 100644 --- a/x-pack/plugins/maps/public/classes/layers/tiled_vector_layer/tiled_vector_layer.tsx +++ b/x-pack/plugins/maps/public/classes/layers/tiled_vector_layer/tiled_vector_layer.tsx @@ -5,9 +5,14 @@ */ import React from 'react'; +import { + Map as MbMap, + GeoJSONSource as MbGeoJSONSource, + VectorSource as MbVectorSource, +} from 'mapbox-gl'; import { EuiIcon } from '@elastic/eui'; import { Feature } from 'geojson'; -import { VectorStyle } from '../../styles/vector/vector_style'; +import { IVectorStyle, VectorStyle } from '../../styles/vector/vector_style'; import { SOURCE_DATA_REQUEST_ID, LAYER_TYPE } from '../../../../common/constants'; import { VectorLayer, VectorLayerArguments } from '../vector_layer/vector_layer'; import { ITiledSingleLayerVectorSource } from '../../sources/vector_source'; @@ -59,7 +64,7 @@ export class TiledVectorLayer extends VectorLayer { const searchFilters: VectorSourceRequestMeta = this._getSearchFilters( dataFilters, this.getSource(), - this._style + this._style as IVectorStyle ); const prevDataRequest = this.getSourceDataRequest(); @@ -88,13 +93,12 @@ export class TiledVectorLayer extends VectorLayer { } async syncData(syncContext: DataRequestContext) { - await this._syncSourceStyleMeta(syncContext, this._source, this._style); - await this._syncSourceFormatters(syncContext, this._source, this._style); + await this._syncSourceStyleMeta(syncContext, this._source, this._style as IVectorStyle); + await this._syncSourceFormatters(syncContext, this._source, this._style as IVectorStyle); await this._syncMVTUrlTemplate(syncContext); } - _syncSourceBindingWithMb(mbMap: unknown) { - // @ts-expect-error + _syncSourceBindingWithMb(mbMap: MbMap) { const mbSource = mbMap.getSource(this._getMbSourceId()); if (mbSource) { return; @@ -113,7 +117,6 @@ export class TiledVectorLayer extends VectorLayer { } const mbSourceId = this._getMbSourceId(); - // @ts-expect-error mbMap.addSource(mbSourceId, { type: 'vector', tiles: [sourceMeta.urlTemplate], @@ -126,7 +129,7 @@ export class TiledVectorLayer extends VectorLayer { return this._getMbSourceId() === mbSourceId; } - _syncStylePropertiesWithMb(mbMap: unknown) { + _syncStylePropertiesWithMb(mbMap: MbMap) { // @ts-ignore const mbSource = mbMap.getSource(this._getMbSourceId()); if (!mbSource) { @@ -146,12 +149,16 @@ export class TiledVectorLayer extends VectorLayer { this._setMbLinePolygonProperties(mbMap, sourceMeta.layerName); } - _requiresPrevSourceCleanup(mbMap: unknown): boolean { - // @ts-expect-error - const mbTileSource = mbMap.getSource(this._getMbSourceId()); - if (!mbTileSource) { + _requiresPrevSourceCleanup(mbMap: MbMap): boolean { + const mbSource = mbMap.getSource(this._getMbSourceId()) as MbVectorSource | MbGeoJSONSource; + if (!mbSource) { return false; } + if (!('tiles' in mbSource)) { + // Expected source is not compatible, so remove. + return true; + } + const mbTileSource = mbSource as MbVectorSource; const dataRequest = this.getSourceDataRequest(); if (!dataRequest) { @@ -163,13 +170,8 @@ export class TiledVectorLayer extends VectorLayer { return false; } - if (!mbTileSource.tiles) { - // Expected source is not compatible, so remove. - return true; - } - const isSourceDifferent = - mbTileSource.tiles[0] !== tiledSourceMeta.urlTemplate || + mbTileSource.tiles?.[0] !== tiledSourceMeta.urlTemplate || mbTileSource.minzoom !== tiledSourceMeta.minSourceZoom || mbTileSource.maxzoom !== tiledSourceMeta.maxSourceZoom; @@ -179,9 +181,8 @@ export class TiledVectorLayer extends VectorLayer { const layerIds = this.getMbLayerIds(); for (let i = 0; i < layerIds.length; i++) { - // @ts-expect-error const mbLayer = mbMap.getLayer(layerIds[i]); - if (mbLayer && mbLayer.sourceLayer !== tiledSourceMeta.layerName) { + if (mbLayer && mbLayer['source-layer'] !== tiledSourceMeta.layerName) { // If the source-pointer of one of the layers is stale, they will all be stale. // In this case, all the mb-layers need to be removed and re-added. return true; @@ -191,7 +192,7 @@ export class TiledVectorLayer extends VectorLayer { return false; } - syncLayerWithMB(mbMap: unknown) { + syncLayerWithMB(mbMap: MbMap) { this._removeStaleMbSourcesAndLayers(mbMap); this._syncSourceBindingWithMb(mbMap); this._syncStylePropertiesWithMb(mbMap); diff --git a/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.d.ts b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.d.ts deleted file mode 100644 index fa614ae87b290..0000000000000 --- a/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.d.ts +++ /dev/null @@ -1,85 +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 */ - -import { Feature, GeoJsonProperties } from 'geojson'; -import { AbstractLayer } from '../layer'; -import { IVectorSource } from '../../sources/vector_source'; -import { - MapFilters, - VectorLayerDescriptor, - VectorSourceRequestMeta, -} from '../../../../common/descriptor_types'; -import { ILayer } from '../layer'; -import { IJoin } from '../../joins/join'; -import { IVectorStyle } from '../../styles/vector/vector_style'; -import { IField } from '../../fields/field'; -import { DataRequestContext } from '../../../actions'; -import { ITooltipProperty } from '../../tooltips/tooltip_property'; - -export type VectorLayerArguments = { - source: IVectorSource; - joins?: IJoin[]; - layerDescriptor: VectorLayerDescriptor; -}; - -export interface IVectorLayer extends ILayer { - getFields(): Promise<IField[]>; - getStyleEditorFields(): Promise<IField[]>; - getJoins(): IJoin[]; - getValidJoins(): IJoin[]; - getSource(): IVectorSource; - getFeatureById(id: string | number): Feature | null; - getPropertiesForTooltip(properties: GeoJsonProperties): Promise<ITooltipProperty[]>; - hasJoins(): boolean; -} - -export class VectorLayer extends AbstractLayer implements IVectorLayer { - static type: string; - - protected readonly _style: IVectorStyle; - static createDescriptor( - options: Partial<VectorLayerDescriptor>, - mapColors?: string[] - ): VectorLayerDescriptor; - - constructor(options: VectorLayerArguments); - getLayerTypeIconName(): string; - getFields(): Promise<IField[]>; - getStyleEditorFields(): Promise<IField[]>; - getJoins(): IJoin[]; - getValidJoins(): IJoin[]; - _syncSourceStyleMeta( - syncContext: DataRequestContext, - source: IVectorSource, - style: IVectorStyle - ): Promise<void>; - _syncSourceFormatters( - syncContext: DataRequestContext, - source: IVectorSource, - style: IVectorStyle - ): Promise<void>; - syncLayerWithMB(mbMap: unknown): void; - _getSearchFilters( - dataFilters: MapFilters, - source: IVectorSource, - style: IVectorStyle - ): VectorSourceRequestMeta; - _syncData( - syncContext: DataRequestContext, - source: IVectorSource, - style: IVectorStyle - ): Promise<void>; - ownsMbSourceId(sourceId: string): boolean; - ownsMbLayerId(sourceId: string): boolean; - _setMbPointsProperties(mbMap: unknown, mvtSourceLayer?: string): void; - _setMbLinePolygonProperties(mbMap: unknown, mvtSourceLayer?: string): void; - getSource(): IVectorSource; - getFeatureById(id: string | number): Feature | null; - getPropertiesForTooltip(properties: GeoJsonProperties): Promise<ITooltipProperty[]>; - hasJoins(): boolean; - isFittable(): Promise<boolean>; -} diff --git a/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.js b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.tsx similarity index 78% rename from x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.js rename to x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.tsx index 27c344b713a60..a2532d4e7b10e 100644 --- a/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.js +++ b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.tsx @@ -5,8 +5,13 @@ */ import React from 'react'; +import { Map as MbMap, Layer as MbLayer, GeoJSONSource as MbGeoJSONSource } from 'mapbox-gl'; +import { Feature, FeatureCollection, GeoJsonProperties } from 'geojson'; +import _ from 'lodash'; +import { EuiIcon } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; import { AbstractLayer } from '../layer'; -import { VectorStyle } from '../../styles/vector/vector_style'; +import { IVectorStyle, VectorStyle } from '../../styles/vector/vector_style'; import { FEATURE_ID_PROPERTY_NAME, SOURCE_DATA_REQUEST_ID, @@ -20,11 +25,9 @@ import { FIELD_ORIGIN, LAYER_STYLE_TYPE, KBN_TOO_MANY_FEATURES_IMAGE_ID, + FieldFormatter, } from '../../../../common/constants'; -import _ from 'lodash'; import { JoinTooltipProperty } from '../../tooltips/join_tooltip_property'; -import { EuiIcon } from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; import { DataRequestAbortError } from '../../util/data_request'; import { canSkipSourceUpdate, @@ -39,15 +42,66 @@ import { getPointFilterExpression, } from '../../util/mb_filter_expressions'; +import { + DynamicStylePropertyOptions, + MapFilters, + MapQuery, + VectorLayerDescriptor, + VectorSourceRequestMeta, + VectorStyleRequestMeta, +} from '../../../../common/descriptor_types'; +import { IVectorSource } from '../../sources/vector_source'; +import { CustomIconAndTooltipContent, ILayer } from '../layer'; +import { IJoin, PropertiesMap } from '../../joins/join'; +import { IField } from '../../fields/field'; +import { DataRequestContext } from '../../../actions'; +import { ITooltipProperty } from '../../tooltips/tooltip_property'; +import { IDynamicStyleProperty } from '../../styles/vector/properties/dynamic_style_property'; +import { IESSource } from '../../sources/es_source'; + +interface SourceResult { + refreshed: boolean; + featureCollection?: FeatureCollection; +} + +interface JoinState { + dataHasChanged: boolean; + join: IJoin; + propertiesMap?: PropertiesMap; +} + +export interface VectorLayerArguments { + source: IVectorSource; + joins?: IJoin[]; + layerDescriptor: VectorLayerDescriptor; +} + +export interface IVectorLayer extends ILayer { + getFields(): Promise<IField[]>; + getStyleEditorFields(): Promise<IField[]>; + getJoins(): IJoin[]; + getValidJoins(): IJoin[]; + getSource(): IVectorSource; + getFeatureById(id: string | number): Feature | null; + getPropertiesForTooltip(properties: GeoJsonProperties): Promise<ITooltipProperty[]>; + hasJoins(): boolean; +} + export class VectorLayer extends AbstractLayer { static type = LAYER_TYPE.VECTOR; - static createDescriptor(options, mapColors) { + protected readonly _style: IVectorStyle; + private readonly _joins: IJoin[]; + + static createDescriptor( + options: Partial<VectorLayerDescriptor>, + mapColors?: string[] + ): VectorLayerDescriptor { const layerDescriptor = super.createDescriptor(options); layerDescriptor.type = VectorLayer.type; if (!options.style) { - const styleProperties = VectorStyle.createDefaultStyleProperties(mapColors); + const styleProperties = VectorStyle.createDefaultStyleProperties(mapColors ? mapColors : []); layerDescriptor.style = VectorStyle.createDescriptor(styleProperties); } @@ -55,16 +109,31 @@ export class VectorLayer extends AbstractLayer { layerDescriptor.joins = []; } - return layerDescriptor; + return layerDescriptor as VectorLayerDescriptor; } - constructor({ layerDescriptor, source, joins = [] }) { - super({ layerDescriptor, source }); + constructor({ layerDescriptor, source, joins = [] }: VectorLayerArguments) { + super({ + layerDescriptor, + source, + }); this._joins = joins; - this._style = new VectorStyle(this._descriptor.style, source, this); + this._style = new VectorStyle(layerDescriptor.style, source, this); + } + + getSource(): IVectorSource { + return super.getSource() as IVectorSource; + } + + getStyleForEditing(): IVectorStyle { + return this._style; + } + + getStyle(): IVectorStyle { + return this._style; } - getStyle() { + getCurrentStyle(): IVectorStyle { return this._style; } @@ -108,7 +177,7 @@ export class VectorLayer extends AbstractLayer { return true; } - getCustomIconAndTooltipContent() { + getCustomIconAndTooltipContent(): CustomIconAndTooltipContent { const featureCollection = this._getSourceFeatureCollection(); const noResultsIcon = <EuiIcon size="m" color="subdued" type="minusInCircle" />; @@ -124,7 +193,7 @@ export class VectorLayer extends AbstractLayer { if ( this.getJoins().length && !featureCollection.features.some( - (feature) => feature.properties[FEATURE_VISIBLE_PROPERTY_NAME] + (feature) => feature.properties?.[FEATURE_VISIBLE_PROPERTY_NAME] ) ) { return { @@ -141,8 +210,8 @@ export class VectorLayer extends AbstractLayer { ); return { icon: this.getCurrentStyle().getIcon(), - tooltipContent: tooltipContent, - areResultsTrimmed: areResultsTrimmed, + tooltipContent, + areResultsTrimmed, }; } @@ -158,7 +227,12 @@ export class VectorLayer extends AbstractLayer { return this.getCurrentStyle().renderLegendDetails(); } - async getBounds({ startLoading, stopLoading, registerCancelCallback, dataFilters }) { + async getBounds({ + startLoading, + stopLoading, + registerCancelCallback, + dataFilters, + }: DataRequestContext) { const isStaticLayer = !this.getSource().isBoundsAware(); if (isStaticLayer || this.hasJoins()) { return getFeatureCollectionBounds(this._getSourceFeatureCollection(), this.hasJoins()); @@ -190,7 +264,7 @@ export class VectorLayer extends AbstractLayer { } finally { // Use stopLoading callback instead of onLoadError callback. // Function is loading bounds and not feature data. - stopLoading(SOURCE_BOUNDS_DATA_REQUEST_ID, requestToken, bounds, boundsFilters); + stopLoading(SOURCE_BOUNDS_DATA_REQUEST_ID, requestToken, bounds ? bounds : {}, boundsFilters); } return bounds; } @@ -205,7 +279,7 @@ export class VectorLayer extends AbstractLayer { } _getJoinFields() { - const joinFields = []; + const joinFields: IField[] = []; this.getValidJoins().forEach((join) => { const fields = join.getJoinFields(); joinFields.push(...fields); @@ -219,7 +293,7 @@ export class VectorLayer extends AbstractLayer { } async getStyleEditorFields() { - const sourceFields = await this.getSourceForEditing().getFields(); + const sourceFields = await (this.getSourceForEditing() as IVectorSource).getFields(); return [...sourceFields, ...this._getJoinFields()]; } @@ -246,7 +320,7 @@ export class VectorLayer extends AbstractLayer { onLoadError, registerCancelCallback, dataFilters, - }) { + }: { join: IJoin } & DataRequestContext): Promise<JoinState> { const joinSource = join.getRightJoinSource(); const sourceDataId = join.getSourceDataRequestId(); const requestToken = Symbol(`layer-join-refresh:${this.getId()} - ${sourceDataId}`); @@ -266,15 +340,15 @@ export class VectorLayer extends AbstractLayer { if (canSkipFetch) { return { dataHasChanged: false, - join: join, - propertiesMap: prevDataRequest.getData(), + join, + propertiesMap: prevDataRequest?.getData() as PropertiesMap, }; } try { startLoading(sourceDataId, requestToken, searchFilters); const leftSourceName = await this._source.getDisplayName(); - const { propertiesMap } = await joinSource.getPropertiesMap( + const propertiesMap = await joinSource.getPropertiesMap( searchFilters, leftSourceName, join.getLeftField().getName(), @@ -283,8 +357,8 @@ export class VectorLayer extends AbstractLayer { stopLoading(sourceDataId, requestToken, propertiesMap); return { dataHasChanged: true, - join: join, - propertiesMap: propertiesMap, + join, + propertiesMap, }; } catch (e) { if (!(e instanceof DataRequestAbortError)) { @@ -292,13 +366,12 @@ export class VectorLayer extends AbstractLayer { } return { dataHasChanged: true, - join: join, - propertiesMap: null, + join, }; } } - async _syncJoins(syncContext, style) { + async _syncJoins(syncContext: DataRequestContext, style: IVectorStyle) { const joinSyncs = this.getValidJoins().map(async (join) => { await this._syncJoinStyleMeta(syncContext, join, style); await this._syncJoinFormatters(syncContext, join, style); @@ -308,28 +381,37 @@ export class VectorLayer extends AbstractLayer { return await Promise.all(joinSyncs); } - _getSearchFilters(dataFilters, source, style) { + _getSearchFilters( + dataFilters: MapFilters, + source: IVectorSource, + style: IVectorStyle + ): VectorSourceRequestMeta { const fieldNames = [ ...source.getFieldNames(), ...(style.getType() === LAYER_STYLE_TYPE.VECTOR ? style.getSourceFieldNames() : []), ...this.getValidJoins().map((join) => join.getLeftField().getName()), ]; + const sourceQuery = this.getQuery() as MapQuery; return { ...dataFilters, fieldNames: _.uniq(fieldNames).sort(), geogridPrecision: source.getGeoGridPrecision(dataFilters.zoom), - sourceQuery: this.getQuery(), + sourceQuery: sourceQuery ? sourceQuery : undefined, applyGlobalQuery: source.getApplyGlobalQuery(), sourceMeta: source.getSyncMeta(), }; } - async _performInnerJoins(sourceResult, joinStates, updateSourceData) { - //should update the store if - //-- source result was refreshed - //-- any of the join configurations changed (joinState changed) - //-- visibility of any of the features has changed + async _performInnerJoins( + sourceResult: SourceResult, + joinStates: JoinState[], + updateSourceData: DataRequestContext['updateSourceData'] + ) { + // should update the store if + // -- source result was refreshed + // -- any of the join configurations changed (joinState changed) + // -- visibility of any of the features has changed let shouldUpdateStore = sourceResult.refreshed || joinStates.some((joinState) => joinState.dataHasChanged); @@ -338,8 +420,11 @@ export class VectorLayer extends AbstractLayer { return; } - for (let i = 0; i < sourceResult.featureCollection.features.length; i++) { - const feature = sourceResult.featureCollection.features[i]; + for (let i = 0; i < sourceResult.featureCollection!.features.length; i++) { + const feature = sourceResult.featureCollection!.features[i]; + if (!feature.properties) { + feature.properties = {}; + } const oldVisbility = feature.properties[FEATURE_VISIBLE_PROPERTY_NAME]; let isFeatureVisible = true; for (let j = 0; j < joinStates.length; j++) { @@ -364,7 +449,11 @@ export class VectorLayer extends AbstractLayer { } } - async _syncSource(syncContext, source, style) { + async _syncSource( + syncContext: DataRequestContext, + source: IVectorSource, + style: IVectorStyle + ): Promise<SourceResult> { const { startLoading, stopLoading, @@ -385,7 +474,9 @@ export class VectorLayer extends AbstractLayer { if (canSkipFetch) { return { refreshed: false, - featureCollection: prevDataRequest.getData(), + featureCollection: prevDataRequest + ? (prevDataRequest.getData() as FeatureCollection) + : EMPTY_FEATURE_COLLECTION, }; } @@ -416,15 +507,20 @@ export class VectorLayer extends AbstractLayer { } } - async _syncSourceStyleMeta(syncContext, source, style) { + async _syncSourceStyleMeta( + syncContext: DataRequestContext, + source: IVectorSource, + style: IVectorStyle + ) { if (this.getCurrentStyle().getType() !== LAYER_STYLE_TYPE.VECTOR) { return; } + const sourceQuery = this.getQuery() as MapQuery; return this._syncStyleMeta({ source, style, - sourceQuery: this.getQuery(), + sourceQuery: sourceQuery ? sourceQuery : undefined, dataRequestId: SOURCE_META_DATA_REQUEST_ID, dynamicStyleProps: style.getDynamicPropertiesArray().filter((dynamicStyleProp) => { return ( @@ -436,7 +532,7 @@ export class VectorLayer extends AbstractLayer { }); } - async _syncJoinStyleMeta(syncContext, join, style) { + async _syncJoinStyleMeta(syncContext: DataRequestContext, join: IJoin, style: IVectorStyle) { const joinSource = join.getRightJoinSource(); return this._syncStyleMeta({ source: joinSource, @@ -446,9 +542,7 @@ export class VectorLayer extends AbstractLayer { dynamicStyleProps: this.getCurrentStyle() .getDynamicPropertiesArray() .filter((dynamicStyleProp) => { - const matchingField = joinSource.getMetricFieldForName( - dynamicStyleProp.getField().getName() - ); + const matchingField = joinSource.getMetricFieldForName(dynamicStyleProp.getFieldName()); return ( dynamicStyleProp.getFieldOrigin() === FIELD_ORIGIN.JOIN && !!matchingField && @@ -470,13 +564,19 @@ export class VectorLayer extends AbstractLayer { stopLoading, onLoadError, registerCancelCallback, - }) { + }: { + dataRequestId: string; + dynamicStyleProps: Array<IDynamicStyleProperty<DynamicStylePropertyOptions>>; + source: IVectorSource; + sourceQuery?: MapQuery; + style: IVectorStyle; + } & DataRequestContext) { if (!source.isESSource() || dynamicStyleProps.length === 0) { return; } const dynamicStyleFields = dynamicStyleProps.map((dynamicStyleProp) => { - return `${dynamicStyleProp.getField().getName()}${dynamicStyleProp.getNumberOfCategories()}`; + return `${dynamicStyleProp.getFieldName()}${dynamicStyleProp.getNumberOfCategories()}`; }); const nextMeta = { @@ -484,7 +584,7 @@ export class VectorLayer extends AbstractLayer { sourceQuery, isTimeAware: this.getCurrentStyle().isTimeAware() && (await source.isTimeAware()), timeFilters: dataFilters.timeFilters, - }; + } as VectorStyleRequestMeta; const prevDataRequest = this.getDataRequest(dataRequestId); const canSkipFetch = canSkipStyleMetaUpdate({ prevDataRequest, nextMeta }); if (canSkipFetch) { @@ -496,14 +596,14 @@ export class VectorLayer extends AbstractLayer { startLoading(dataRequestId, requestToken, nextMeta); const layerName = await this.getDisplayName(source); - //todo: cast source to ESSource when migrating to TS - const styleMeta = await source.loadStylePropsMeta( + const styleMeta = await (source as IESSource).loadStylePropsMeta({ layerName, style, dynamicStyleProps, - registerCancelCallback.bind(null, requestToken), - nextMeta - ); + registerCancelCallback: registerCancelCallback.bind(null, requestToken), + sourceQuery: nextMeta.sourceQuery, + timeFilters: nextMeta.timeFilters, + }); stopLoading(dataRequestId, requestToken, styleMeta, nextMeta); } catch (error) { if (!(error instanceof DataRequestAbortError)) { @@ -512,7 +612,11 @@ export class VectorLayer extends AbstractLayer { } } - async _syncSourceFormatters(syncContext, source, style) { + async _syncSourceFormatters( + syncContext: DataRequestContext, + source: IVectorSource, + style: IVectorStyle + ) { if (style.getType() !== LAYER_STYLE_TYPE.VECTOR) { return; } @@ -526,13 +630,13 @@ export class VectorLayer extends AbstractLayer { return dynamicStyleProp.getFieldOrigin() === FIELD_ORIGIN.SOURCE; }) .map((dynamicStyleProp) => { - return dynamicStyleProp.getField(); + return dynamicStyleProp.getField()!; }), ...syncContext, }); } - async _syncJoinFormatters(syncContext, join, style) { + async _syncJoinFormatters(syncContext: DataRequestContext, join: IJoin, style: IVectorStyle) { const joinSource = join.getRightJoinSource(); return this._syncFormatters({ source: joinSource, @@ -540,19 +644,28 @@ export class VectorLayer extends AbstractLayer { fields: style .getDynamicPropertiesArray() .filter((dynamicStyleProp) => { - const matchingField = joinSource.getMetricFieldForName( - dynamicStyleProp.getField().getName() - ); + const matchingField = joinSource.getMetricFieldForName(dynamicStyleProp.getFieldName()); return dynamicStyleProp.getFieldOrigin() === FIELD_ORIGIN.JOIN && !!matchingField; }) .map((dynamicStyleProp) => { - return dynamicStyleProp.getField(); + return dynamicStyleProp.getField()!; }), ...syncContext, }); } - async _syncFormatters({ source, dataRequestId, fields, startLoading, stopLoading, onLoadError }) { + async _syncFormatters({ + source, + dataRequestId, + fields, + startLoading, + stopLoading, + onLoadError, + }: { + dataRequestId: string; + fields: IField[]; + source: IVectorSource; + } & DataRequestContext) { if (fields.length === 0) { return; } @@ -573,7 +686,7 @@ export class VectorLayer extends AbstractLayer { try { startLoading(dataRequestId, requestToken, nextMeta); - const formatters = {}; + const formatters: { [key: string]: FieldFormatter | null } = {}; const promises = fields .filter((field) => { return field.canValueBeFormatted(); @@ -589,7 +702,7 @@ export class VectorLayer extends AbstractLayer { } } - async syncData(syncContext) { + async syncData(syncContext: DataRequestContext) { await this._syncData(syncContext, this.getSource(), this.getCurrentStyle()); } @@ -603,7 +716,7 @@ export class VectorLayer extends AbstractLayer { // Given 1 above, which source/style to use can not be stored in Layer instance state. // Given 2 above, which source/style to use can not be pulled from data request state. // Therefore, source and style are provided as arugments and must be used instead of calling getSource or getCurrentStyle. - async _syncData(syncContext, source, style) { + async _syncData(syncContext: DataRequestContext, source: IVectorSource, style: IVectorStyle) { if (this.isLoadingBounds()) { return; } @@ -624,11 +737,11 @@ export class VectorLayer extends AbstractLayer { _getSourceFeatureCollection() { const sourceDataRequest = this.getSourceDataRequest(); - return sourceDataRequest ? sourceDataRequest.getData() : null; + return sourceDataRequest ? (sourceDataRequest.getData() as FeatureCollection) : null; } - _syncFeatureCollectionWithMb(mbMap) { - const mbGeoJSONSource = mbMap.getSource(this.getId()); + _syncFeatureCollectionWithMb(mbMap: MbMap) { + const mbGeoJSONSource = mbMap.getSource(this.getId()) as MbGeoJSONSource; const featureCollection = this._getSourceFeatureCollection(); const featureCollectionOnMap = AbstractLayer.getBoundDataForSource(mbMap, this.getId()); @@ -653,7 +766,7 @@ export class VectorLayer extends AbstractLayer { } } - _setMbPointsProperties(mbMap, mvtSourceLayer) { + _setMbPointsProperties(mbMap: MbMap, mvtSourceLayer?: string) { const pointLayerId = this._getMbPointLayerId(); const symbolLayerId = this._getMbSymbolLayerId(); const pointLayer = mbMap.getLayer(pointLayerId); @@ -689,12 +802,12 @@ export class VectorLayer extends AbstractLayer { } } - _setMbCircleProperties(mbMap, mvtSourceLayer) { + _setMbCircleProperties(mbMap: MbMap, mvtSourceLayer?: string) { const sourceId = this.getId(); const pointLayerId = this._getMbPointLayerId(); const pointLayer = mbMap.getLayer(pointLayerId); if (!pointLayer) { - const mbLayer = { + const mbLayer: MbLayer = { id: pointLayerId, type: 'circle', source: sourceId, @@ -710,7 +823,7 @@ export class VectorLayer extends AbstractLayer { const textLayerId = this._getMbTextLayerId(); const textLayer = mbMap.getLayer(textLayerId); if (!textLayer) { - const mbLayer = { + const mbLayer: MbLayer = { id: textLayerId, type: 'symbol', source: sourceId, @@ -740,13 +853,13 @@ export class VectorLayer extends AbstractLayer { }); } - _setMbSymbolProperties(mbMap, mvtSourceLayer) { + _setMbSymbolProperties(mbMap: MbMap, mvtSourceLayer?: string) { const sourceId = this.getId(); const symbolLayerId = this._getMbSymbolLayerId(); const symbolLayer = mbMap.getLayer(symbolLayerId); if (!symbolLayer) { - const mbLayer = { + const mbLayer: MbLayer = { id: symbolLayerId, type: 'symbol', source: sourceId, @@ -775,7 +888,7 @@ export class VectorLayer extends AbstractLayer { }); } - _setMbLinePolygonProperties(mbMap, mvtSourceLayer) { + _setMbLinePolygonProperties(mbMap: MbMap, mvtSourceLayer?: string) { const sourceId = this.getId(); const fillLayerId = this._getMbPolygonLayerId(); const lineLayerId = this._getMbLineLayerId(); @@ -783,7 +896,7 @@ export class VectorLayer extends AbstractLayer { const hasJoins = this.hasJoins(); if (!mbMap.getLayer(fillLayerId)) { - const mbLayer = { + const mbLayer: MbLayer = { id: fillLayerId, type: 'fill', source: sourceId, @@ -795,7 +908,7 @@ export class VectorLayer extends AbstractLayer { mbMap.addLayer(mbLayer); } if (!mbMap.getLayer(lineLayerId)) { - const mbLayer = { + const mbLayer: MbLayer = { id: lineLayerId, type: 'line', source: sourceId, @@ -807,7 +920,7 @@ export class VectorLayer extends AbstractLayer { mbMap.addLayer(mbLayer); } if (!mbMap.getLayer(tooManyFeaturesLayerId)) { - const mbLayer = { + const mbLayer: MbLayer = { id: tooManyFeaturesLayerId, type: 'fill', source: sourceId, @@ -855,12 +968,12 @@ export class VectorLayer extends AbstractLayer { mbMap.setLayerZoomRange(tooManyFeaturesLayerId, this.getMinZoom(), this.getMaxZoom()); } - _syncStylePropertiesWithMb(mbMap) { + _syncStylePropertiesWithMb(mbMap: MbMap) { this._setMbPointsProperties(mbMap); this._setMbLinePolygonProperties(mbMap); } - _syncSourceBindingWithMb(mbMap) { + _syncSourceBindingWithMb(mbMap: MbMap) { const mbSource = mbMap.getSource(this._getMbSourceId()); if (!mbSource) { mbMap.addSource(this._getMbSourceId(), { @@ -883,7 +996,7 @@ export class VectorLayer extends AbstractLayer { } } - syncLayerWithMB(mbMap) { + syncLayerWithMB(mbMap: MbMap) { this._syncSourceBindingWithMb(mbMap); this._syncFeatureCollectionWithMb(mbMap); this._syncStylePropertiesWithMb(mbMap); @@ -924,15 +1037,15 @@ export class VectorLayer extends AbstractLayer { ]; } - ownsMbLayerId(mbLayerId) { + ownsMbLayerId(mbLayerId: string) { return this.getMbLayerIds().includes(mbLayerId); } - ownsMbSourceId(mbSourceId) { + ownsMbSourceId(mbSourceId: string) { return this.getId() === mbSourceId; } - _addJoinsToSourceTooltips(tooltipsFromSource) { + _addJoinsToSourceTooltips(tooltipsFromSource: ITooltipProperty[]) { for (let i = 0; i < tooltipsFromSource.length; i++) { const tooltipProperty = tooltipsFromSource[i]; const matchingJoins = []; @@ -947,7 +1060,7 @@ export class VectorLayer extends AbstractLayer { } } - async getPropertiesForTooltip(properties) { + async getPropertiesForTooltip(properties: GeoJsonProperties) { const vectorSource = this.getSource(); let allProperties = await vectorSource.getTooltipProperties(properties); this._addJoinsToSourceTooltips(allProperties); @@ -961,18 +1074,20 @@ export class VectorLayer extends AbstractLayer { canShowTooltip() { return ( - this.isVisible() && (this.getSource().canFormatFeatureProperties() || this.getJoins().length) + this.isVisible() && + (this.getSource().canFormatFeatureProperties() || this.getJoins().length > 0) ); } - getFeatureById(id) { + getFeatureById(id: string | number) { const featureCollection = this._getSourceFeatureCollection(); if (!featureCollection) { return null; } - return featureCollection.features.find((feature) => { - return feature.properties[FEATURE_ID_PROPERTY_NAME] === id; + const targetFeature = featureCollection.features.find((feature) => { + return feature.properties?.[FEATURE_ID_PROPERTY_NAME] === id; }); + return targetFeature ? targetFeature : null; } } diff --git a/x-pack/plugins/maps/public/classes/sources/es_agg_source/es_agg_source.ts b/x-pack/plugins/maps/public/classes/sources/es_agg_source/es_agg_source.ts index be947d79f4e39..5c062f3419e28 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_agg_source/es_agg_source.ts +++ b/x-pack/plugins/maps/public/classes/sources/es_agg_source/es_agg_source.ts @@ -29,7 +29,7 @@ export interface IESAggSource extends IESSource { getValueAggsDsl(indexPattern: IndexPattern): { [key: string]: unknown }; } -export class AbstractESAggSource extends AbstractESSource { +export abstract class AbstractESAggSource extends AbstractESSource { private readonly _metricFields: IESAggField[]; private readonly _canReadFromGeoJson: boolean; diff --git a/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.d.ts b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.d.ts index ada76b8e4e674..b221d13bb0f8a 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.d.ts +++ b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.d.ts @@ -10,6 +10,7 @@ import { MapFilters, MapQuery, VectorSourceSyncMeta, + VectorSourceRequestMeta, } from '../../../../common/descriptor_types'; import { GRID_RESOLUTION } from '../../../../common/constants'; import { IField } from '../../fields/field'; @@ -35,13 +36,7 @@ export class ESGeoGridSource extends AbstractESAggSource implements ITiledSingle getLayerName(): string; getUrlTemplateWithMeta( - searchFilters: MapFilters & { - applyGlobalQuery: boolean; - fieldNames: string[]; - geogridPrecision?: number; - sourceQuery: MapQuery; - sourceMeta: VectorSourceSyncMeta; - } + searchFilters: VectorSourceRequestMeta ): Promise<{ layerName: string; urlTemplate: string; diff --git a/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.test.ts b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.test.ts index 189e7dea1b0c1..06df68283c434 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.test.ts +++ b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.test.ts @@ -160,7 +160,8 @@ describe('ESGeoGridSource', () => { const { data, meta } = await geogridSource.getGeoJsonWithMeta( 'foobarLayer', vectorSourceRequestMeta, - () => {} + () => {}, + () => true ); expect(meta && meta.areResultsTrimmed).toEqual(false); diff --git a/x-pack/plugins/maps/public/classes/sources/es_source/es_source.d.ts b/x-pack/plugins/maps/public/classes/sources/es_source/es_source.d.ts index 01fde589dcb84..c11b6f0853cc7 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_source/es_source.d.ts +++ b/x-pack/plugins/maps/public/classes/sources/es_source/es_source.d.ts @@ -6,12 +6,14 @@ import { AbstractVectorSource } from '../vector_source'; import { IVectorSource } from '../vector_source'; +import { TimeRange } from '../../../../../../../src/plugins/data/common'; import { IndexPattern, ISearchSource } from '../../../../../../../src/plugins/data/public'; import { DynamicStylePropertyOptions, + MapQuery, VectorSourceRequestMeta, } from '../../../../common/descriptor_types'; -import { VectorStyle } from '../../styles/vector/vector_style'; +import { IVectorStyle } from '../../styles/vector/vector_style'; import { IDynamicStyleProperty } from '../../styles/vector/properties/dynamic_style_property'; export interface IESSource extends IVectorSource { @@ -25,13 +27,21 @@ export interface IESSource extends IVectorSource { limit: number, initialSearchContext?: object ): Promise<ISearchSource>; - loadStylePropsMeta( - layerName: string, - style: VectorStyle, - dynamicStyleProps: Array<IDynamicStyleProperty<DynamicStylePropertyOptions>>, - registerCancelCallback: (requestToken: symbol, callback: () => void) => void, - searchFilters: VectorSourceRequestMeta - ): Promise<unknown>; + loadStylePropsMeta({ + layerName, + style, + dynamicStyleProps, + registerCancelCallback, + sourceQuery, + timeFilters, + }: { + layerName: string; + style: IVectorStyle; + dynamicStyleProps: Array<IDynamicStyleProperty<DynamicStylePropertyOptions>>; + registerCancelCallback: (callback: () => void) => void; + sourceQuery?: MapQuery; + timeFilters: TimeRange; + }): Promise<object>; } export class AbstractESSource extends AbstractVectorSource implements IESSource { @@ -45,13 +55,21 @@ export class AbstractESSource extends AbstractVectorSource implements IESSource limit: number, initialSearchContext?: object ): Promise<ISearchSource>; - loadStylePropsMeta( - layerName: string, - style: VectorStyle, - dynamicStyleProps: Array<IDynamicStyleProperty<DynamicStylePropertyOptions>>, - registerCancelCallback: (requestToken: symbol, callback: () => void) => void, - searchFilters: VectorSourceRequestMeta - ): Promise<unknown>; + loadStylePropsMeta({ + layerName, + style, + dynamicStyleProps, + registerCancelCallback, + sourceQuery, + timeFilters, + }: { + layerName: string; + style: IVectorStyle; + dynamicStyleProps: Array<IDynamicStyleProperty<DynamicStylePropertyOptions>>; + registerCancelCallback: (callback: () => void) => void; + sourceQuery?: MapQuery; + timeFilters: TimeRange; + }): Promise<object>; _runEsQuery: ({ requestId, requestName, diff --git a/x-pack/plugins/maps/public/classes/sources/es_source/es_source.js b/x-pack/plugins/maps/public/classes/sources/es_source/es_source.js index ab56ceeab4e77..0c8cb5f514247 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_source/es_source.js +++ b/x-pack/plugins/maps/public/classes/sources/es_source/es_source.js @@ -284,13 +284,14 @@ export class AbstractESSource extends AbstractVectorSource { return indexPattern.getFormatterForField(fieldFromIndexPattern).getConverterFor('text'); } - async loadStylePropsMeta( + async loadStylePropsMeta({ layerName, style, dynamicStyleProps, registerCancelCallback, - searchFilters - ) { + sourceQuery, + timeFilters, + }) { const promises = dynamicStyleProps.map((dynamicStyleProp) => { return dynamicStyleProp.getFieldMetaRequest(); }); @@ -307,13 +308,11 @@ export class AbstractESSource extends AbstractVectorSource { searchSource.setField('index', indexPattern); searchSource.setField('size', 0); searchSource.setField('aggs', aggs); - if (searchFilters.sourceQuery) { - searchSource.setField('query', searchFilters.sourceQuery); + if (sourceQuery) { + searchSource.setField('query', sourceQuery); } if (style.isTimeAware() && (await this.isTimeAware())) { - searchSource.setField('filter', [ - getTimeFilter().createFilter(indexPattern, searchFilters.timeFilters), - ]); + searchSource.setField('filter', [getTimeFilter().createFilter(indexPattern, timeFilters)]); } const resp = await this._runEsQuery({ diff --git a/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.d.ts b/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.d.ts index 248ca2b9212b4..ef1ada8da8289 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.d.ts +++ b/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.d.ts @@ -4,10 +4,19 @@ * you may not use this file except in compliance with the Elastic License. */ +import { MapQuery, VectorJoinSourceRequestMeta } from '../../../../common/descriptor_types'; import { IField } from '../../fields/field'; import { IESAggSource } from '../es_agg_source'; +import { PropertiesMap } from '../../joins/join'; export interface IESTermSource extends IESAggSource { - getTermField(): IField; - hasCompleteConfig(): boolean; + getTermField: () => IField; + hasCompleteConfig: () => boolean; + getWhereQuery: () => MapQuery; + getPropertiesMap: ( + searchFilters: VectorJoinSourceRequestMeta, + leftSourceName: string, + leftFieldName: string, + registerCancelCallback: (callback: () => void) => void + ) => PropertiesMap; } diff --git a/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.js b/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.js index 359d22d2c44ce..ff52dccdd2ef4 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.js +++ b/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.js @@ -119,9 +119,7 @@ export class ESTermSource extends AbstractESAggSource { }); const countPropertyName = this.getAggKey(AGG_TYPE.COUNT); - return { - propertiesMap: extractPropertiesMap(rawEsData, countPropertyName), - }; + return extractPropertiesMap(rawEsData, countPropertyName); } isFilterByMapBounds() { diff --git a/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_source.js b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_source.js index eeb34ed672221..d937edb4ed362 100644 --- a/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_source.js +++ b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_source.js @@ -74,6 +74,7 @@ export class KibanaRegionmapSource extends AbstractVectorSource { }); return { data: featureCollection, + meta: {}, }; } diff --git a/x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.tsx b/x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.tsx index 3e515613b3fd0..440f0cb4457e8 100644 --- a/x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.tsx +++ b/x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.tsx @@ -179,7 +179,7 @@ export class MVTSingleLayerVectorSource getBoundsForFilters( boundsFilters: BoundsFilters, - registerCancelCallback: (requestToken: symbol, callback: () => void) => void + registerCancelCallback: (callback: () => void) => void ): MapExtent | null { return null; } @@ -192,6 +192,18 @@ export class MVTSingleLayerVectorSource return false; } + isBoundsAware() { + return false; + } + + getSourceTooltipContent() { + return { tooltipContent: null, areResultsTrimmed: false }; + } + + async getLeftJoinFields() { + return []; + } + async getTooltipProperties( properties: GeoJsonProperties, featureId?: string | number diff --git a/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.d.ts b/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.d.ts index a481e273bc33e..7bf1db43c2871 100644 --- a/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.d.ts +++ b/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.d.ts @@ -19,6 +19,12 @@ import { } from '../../../../common/descriptor_types'; import { VECTOR_SHAPE_TYPE } from '../../../../common/constants'; import { ITooltipProperty } from '../../tooltips/tooltip_property'; +import { DataRequest } from '../../util/data_request'; + +export interface SourceTooltipConfig { + tooltipContent: string | null; + areResultsTrimmed: boolean; +} export type GeoJsonFetchMeta = ESSearchSourceResponseMeta; @@ -30,8 +36,8 @@ export type GeoJsonWithMeta = { export type BoundsFilters = { applyGlobalQuery: boolean; filters: Filter[]; - query: MapQuery; - sourceQuery: MapQuery; + query?: MapQuery; + sourceQuery?: MapQuery; timeFilters: TimeRange; }; @@ -39,44 +45,52 @@ export interface IVectorSource extends ISource { getTooltipProperties(properties: GeoJsonProperties): Promise<ITooltipProperty[]>; getBoundsForFilters( boundsFilters: BoundsFilters, - registerCancelCallback: (requestToken: symbol, callback: () => void) => void + registerCancelCallback: (callback: () => void) => void ): MapExtent | null; getGeoJsonWithMeta( - layerName: 'string', + layerName: string, searchFilters: MapFilters, - registerCancelCallback: (callback: () => void) => void + registerCancelCallback: (callback: () => void) => void, + isRequestStillActive: () => boolean ): Promise<GeoJsonWithMeta>; getFields(): Promise<IField[]>; getFieldByName(fieldName: string): IField | null; + getLeftJoinFields(): Promise<IField[]>; getSyncMeta(): VectorSourceSyncMeta; getFieldNames(): string[]; getApplyGlobalQuery(): boolean; createField({ fieldName }: { fieldName: string }): IField; canFormatFeatureProperties(): boolean; getSupportedShapeTypes(): Promise<VECTOR_SHAPE_TYPE[]>; + isBoundsAware(): boolean; + getSourceTooltipContent(sourceDataRequest?: DataRequest): SourceTooltipConfig; } export class AbstractVectorSource extends AbstractSource implements IVectorSource { getTooltipProperties(properties: GeoJsonProperties): Promise<ITooltipProperty[]>; getBoundsForFilters( boundsFilters: BoundsFilters, - registerCancelCallback: (requestToken: symbol, callback: () => void) => void + registerCancelCallback: (callback: () => void) => void ): MapExtent | null; getGeoJsonWithMeta( layerName: string, searchFilters: VectorSourceRequestMeta, - registerCancelCallback: (callback: () => void) => void + registerCancelCallback: (callback: () => void) => void, + isRequestStillActive: () => boolean ): Promise<GeoJsonWithMeta>; getFields(): Promise<IField[]>; getFieldByName(fieldName: string): IField | null; + getLeftJoinFields(): Promise<IField[]>; getSyncMeta(): VectorSourceSyncMeta; getSupportedShapeTypes(): Promise<VECTOR_SHAPE_TYPE[]>; canFormatFeatureProperties(): boolean; getApplyGlobalQuery(): boolean; getFieldNames(): string[]; createField({ fieldName }: { fieldName: string }): IField; + isBoundsAware(): boolean; + getSourceTooltipContent(sourceDataRequest?: DataRequest): SourceTooltipConfig; } export interface ITiledSingleLayerVectorSource extends IVectorSource { diff --git a/x-pack/plugins/maps/public/classes/styles/vector/vector_style.tsx b/x-pack/plugins/maps/public/classes/styles/vector/vector_style.tsx index 1244c53afe9a6..5d0d9712ef988 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/vector_style.tsx +++ b/x-pack/plugins/maps/public/classes/styles/vector/vector_style.tsx @@ -5,7 +5,7 @@ */ import _ from 'lodash'; -import React from 'react'; +import React, { ReactElement } from 'react'; import { Map as MbMap, FeatureIdentifier } from 'mapbox-gl'; import { FeatureCollection } from 'geojson'; // @ts-expect-error @@ -92,6 +92,55 @@ export interface IVectorStyle extends IStyle { mapColors: string[] ): { hasChanges: boolean; nextStyleDescriptor?: VectorStyleDescriptor }; pluckStyleMetaFromSourceDataRequest(sourceDataRequest: DataRequest): Promise<StyleMetaDescriptor>; + isTimeAware: () => boolean; + getIcon: () => ReactElement<any>; + hasLegendDetails: () => Promise<boolean>; + renderLegendDetails: () => ReactElement<any>; + clearFeatureState: (featureCollection: FeatureCollection, mbMap: MbMap, sourceId: string) => void; + setFeatureStateAndStyleProps: ( + featureCollection: FeatureCollection, + mbMap: MbMap, + mbSourceId: string + ) => boolean; + arePointsSymbolizedAsCircles: () => boolean; + setMBPaintProperties: ({ + alpha, + mbMap, + fillLayerId, + lineLayerId, + }: { + alpha: number; + mbMap: MbMap; + fillLayerId: string; + lineLayerId: string; + }) => void; + setMBPaintPropertiesForPoints: ({ + alpha, + mbMap, + pointLayerId, + }: { + alpha: number; + mbMap: MbMap; + pointLayerId: string; + }) => void; + setMBPropertiesForLabelText: ({ + alpha, + mbMap, + textLayerId, + }: { + alpha: number; + mbMap: MbMap; + textLayerId: string; + }) => void; + setMBSymbolPropertiesForPoints: ({ + mbMap, + symbolLayerId, + alpha, + }: { + alpha: number; + mbMap: MbMap; + symbolLayerId: string; + }) => void; } export class VectorStyle implements IVectorStyle { @@ -594,12 +643,12 @@ export class VectorStyle implements IVectorStyle { mbSourceId: string ) { if (!featureCollection) { - return; + return false; } const dynamicStyleProps = this.getDynamicPropertiesArray(); if (dynamicStyleProps.length === 0) { - return; + return false; } const tmpFeatureIdentifier: FeatureIdentifier = { diff --git a/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.test.tsx b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.test.tsx index 6c6cb6ba143cd..24728465de3bd 100644 --- a/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.test.tsx +++ b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.test.tsx @@ -9,7 +9,6 @@ import React from 'react'; import { shallow } from 'enzyme'; import { AbstractLayer, ILayer } from '../../../../../../classes/layers/layer'; import { AbstractSource, ISource } from '../../../../../../classes/sources/source'; -import { IStyle } from '../../../../../../classes/styles/style'; import { TOCEntryActionsPopover } from './toc_entry_actions_popover'; @@ -17,28 +16,17 @@ let supportsFitToBounds: boolean; class MockSource extends AbstractSource implements ISource {} -class MockStyle implements IStyle { - renderEditor() { - return null; - } - - getType() { - return 'mockStyle'; - } -} - class LayerMock extends AbstractLayer implements ILayer { constructor() { const sourceDescriptor = { type: 'mySourceType', }; const source = new MockSource(sourceDescriptor); - const style = new MockStyle(); const layerDescriptor = { id: 'testLayer', sourceDescriptor, }; - super({ layerDescriptor, source, style }); + super({ layerDescriptor, source }); } async supportsFitToBounds(): Promise<boolean> { From e92a4ab4bf5ec175fc572f4d14b5da173de266a7 Mon Sep 17 00:00:00 2001 From: Ashik Meerankutty <ashik9591@gmail.com> Date: Fri, 2 Oct 2020 07:34:22 +0530 Subject: [PATCH 139/142] [APM] Service Inventory Updated the `EuiBadge` to use the `behind_text` vars instead of the base colors for the health status badges (#77844) * Use behind_text colors in health status * Separated badge color usage from getSeverityColor --- .../plugins/apm/common/service_health_status.ts | 16 ++++++++++++++++ .../ServiceOverview/ServiceList/HealthBadge.tsx | 4 ++-- .../__snapshots__/ServiceOverview.test.tsx.snap | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/apm/common/service_health_status.ts b/x-pack/plugins/apm/common/service_health_status.ts index 1d4bcfb3b0e07..f66e03a9733a3 100644 --- a/x-pack/plugins/apm/common/service_health_status.ts +++ b/x-pack/plugins/apm/common/service_health_status.ts @@ -54,6 +54,22 @@ export function getServiceHealthStatusColor( } } +export function getServiceHealthStatusBadgeColor( + theme: EuiTheme, + status: ServiceHealthStatus +) { + switch (status) { + case ServiceHealthStatus.healthy: + return theme.eui.euiColorVis0_behindText; + case ServiceHealthStatus.warning: + return theme.eui.euiColorVis5_behindText; + case ServiceHealthStatus.critical: + return theme.eui.euiColorVis9_behindText; + case ServiceHealthStatus.unknown: + return theme.eui.euiColorMediumShade; + } +} + export function getServiceHealthStatusLabel(status: ServiceHealthStatus) { switch (status) { case ServiceHealthStatus.critical: diff --git a/x-pack/plugins/apm/public/components/app/ServiceOverview/ServiceList/HealthBadge.tsx b/x-pack/plugins/apm/public/components/app/ServiceOverview/ServiceList/HealthBadge.tsx index c6be0a352ef66..e8ad3e65b1a47 100644 --- a/x-pack/plugins/apm/public/components/app/ServiceOverview/ServiceList/HealthBadge.tsx +++ b/x-pack/plugins/apm/public/components/app/ServiceOverview/ServiceList/HealthBadge.tsx @@ -6,7 +6,7 @@ import React from 'react'; import { EuiBadge } from '@elastic/eui'; import { - getServiceHealthStatusColor, + getServiceHealthStatusBadgeColor, getServiceHealthStatusLabel, ServiceHealthStatus, } from '../../../../../common/service_health_status'; @@ -20,7 +20,7 @@ export function HealthBadge({ const theme = useTheme(); return ( - <EuiBadge color={getServiceHealthStatusColor(theme, healthStatus)}> + <EuiBadge color={getServiceHealthStatusBadgeColor(theme, healthStatus)}> {getServiceHealthStatusLabel(healthStatus)} </EuiBadge> ); diff --git a/x-pack/plugins/apm/public/components/app/ServiceOverview/__test__/__snapshots__/ServiceOverview.test.tsx.snap b/x-pack/plugins/apm/public/components/app/ServiceOverview/__test__/__snapshots__/ServiceOverview.test.tsx.snap index 40a2b6a5fa81b..ee3a4fce0dbaa 100644 --- a/x-pack/plugins/apm/public/components/app/ServiceOverview/__test__/__snapshots__/ServiceOverview.test.tsx.snap +++ b/x-pack/plugins/apm/public/components/app/ServiceOverview/__test__/__snapshots__/ServiceOverview.test.tsx.snap @@ -153,7 +153,7 @@ NodeList [ > <span class="euiBadge euiBadge--iconLeft" - style="background-color: rgb(214, 191, 87); color: rgb(0, 0, 0);" + style="background-color: rgb(241, 216, 111); color: rgb(0, 0, 0);" title="Warning" > <span From 1b61cc6b5d5c8fdf0ee92056e2a5c82579a00d4f Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli <efstratia.kalafateli@elastic.co> Date: Fri, 2 Oct 2020 09:03:08 +0300 Subject: [PATCH 140/142] [Functional] Add retry on custom formatter test (#78729) Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> --- test/functional/apps/visualize/_tsvb_time_series.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/functional/apps/visualize/_tsvb_time_series.ts b/test/functional/apps/visualize/_tsvb_time_series.ts index 0b2a52b367a20..d4a079a38c814 100644 --- a/test/functional/apps/visualize/_tsvb_time_series.ts +++ b/test/functional/apps/visualize/_tsvb_time_series.ts @@ -84,8 +84,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await visualBuilder.clickSeriesOption(); await visualBuilder.enterSeriesTemplate('$ {{value}}'); - const actualCount = await visualBuilder.getRhythmChartLegendValue(); - expect(actualCount).to.be(expectedLegendValue); + await retry.try(async () => { + const actualCount = await visualBuilder.getRhythmChartLegendValue(); + expect(actualCount).to.be(expectedLegendValue); + }); }); it('should show the correct count in the legend with percent formatter', async () => { From 4ddcd1d2a6bf3ffbec37844468c4e4af827f739f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= <sorenlouv@gmail.com> Date: Fri, 2 Oct 2020 09:45:50 +0200 Subject: [PATCH 141/142] [APM] Fix anomalies not showing up on transaction charts (#76930) * [APM] Fix anomalies not showing up on transaction charts * Added API tests to check transaction groups charts for anomaly data * Improve test names and assertions from PR feedback * Updated the transaction groups chart API to make `environment` a required param while making `uiFilters` optional * updates the basic API tests for transaction_groups/charts with the required `environment` param * makes uiFIltersES default to [] on core setup and removes SetupUIFilters type * fixes vertical shade * - replaces uiFiltersES with esFilter & uiFilters and cleans up related code around these - deduplicates the required environment in the transaction_groups/charts API * updates basic apm_api_integration tests * pr feedback * updates api test snapshots with correct anomaly data * removed environment query param from useTransactionCharts and ensures it's included in uiFilters returned from useUrlParams Co-authored-by: Oliver Gupte <olivergupte@gmail.com> --- .../example_response_opbeans_beats.json | 42 ++--- .../public/context/UrlParamsContext/index.tsx | 7 +- .../plugins/apm/public/utils/testHelpers.tsx | 7 +- .../errors/__snapshots__/queries.test.ts.snap | 6 +- .../__snapshots__/queries.test.ts.snap | 4 +- .../__tests__/get_buckets.test.ts | 5 +- .../lib/errors/distribution/get_buckets.ts | 12 +- .../errors/distribution/get_distribution.ts | 8 +- .../apm/server/lib/errors/get_error_group.ts | 12 +- .../apm/server/lib/errors/get_error_groups.ts | 8 +- ...{get_ui_filters_es.ts => get_es_filter.ts} | 2 +- .../get_parsed_ui_filters.ts | 23 --- .../apm/server/lib/helpers/setup_request.ts | 41 ++--- .../__snapshots__/queries.test.ts.snap | 54 +++--- .../server/lib/metrics/by_agent/default.ts | 8 +- .../java/gc/fetch_and_transform_gc_metrics.ts | 8 +- .../by_agent/java/gc/get_gc_rate_chart.ts | 8 +- .../by_agent/java/gc/get_gc_time_chart.ts | 8 +- .../by_agent/java/heap_memory/index.ts | 8 +- .../server/lib/metrics/by_agent/java/index.ts | 8 +- .../by_agent/java/non_heap_memory/index.ts | 8 +- .../by_agent/java/thread_count/index.ts | 8 +- .../lib/metrics/by_agent/shared/cpu/index.ts | 8 +- .../metrics/by_agent/shared/memory/index.ts | 10 +- .../metrics/fetch_and_transform_metrics.ts | 8 +- .../get_metrics_chart_data_by_agent.ts | 8 +- .../__snapshots__/queries.test.ts.snap | 14 +- .../lib/rum_client/get_client_metrics.ts | 8 +- .../server/lib/rum_client/get_js_errors.ts | 8 +- .../lib/rum_client/get_long_task_metrics.ts | 8 +- .../rum_client/get_page_load_distribution.ts | 10 +- .../lib/rum_client/get_page_view_trends.ts | 8 +- .../lib/rum_client/get_pl_dist_breakdown.ts | 8 +- .../server/lib/rum_client/get_rum_services.ts | 8 +- .../server/lib/rum_client/get_url_search.ts | 8 +- .../lib/rum_client/get_visitor_breakdown.ts | 8 +- .../lib/rum_client/get_web_core_vitals.ts | 8 +- .../server/lib/service_map/get_service_map.ts | 2 +- .../get_service_map_service_node_info.test.ts | 6 +- .../get_service_map_service_node_info.ts | 9 +- .../group_resource_nodes_grouped.json | 4 +- .../group_resource_nodes_pregrouped.json | 4 +- .../__snapshots__/queries.test.ts.snap | 6 +- .../apm/server/lib/service_nodes/index.ts | 8 +- .../__snapshots__/queries.test.ts.snap | 10 +- .../lib/services/get_service_node_metadata.ts | 8 +- .../get_services/get_services_items.ts | 12 +- .../server/lib/services/get_services/index.ts | 11 +- .../__snapshots__/queries.test.ts.snap | 14 +- .../server/lib/transaction_groups/fetcher.ts | 8 +- .../lib/transaction_groups/get_error_rate.ts | 12 +- .../get_transaction_sample_for_group.ts | 12 +- .../server/lib/transaction_groups/index.ts | 8 +- .../__snapshots__/queries.test.ts.snap | 12 +- .../lib/transactions/breakdown/index.test.ts | 3 +- .../lib/transactions/breakdown/index.ts | 12 +- .../charts/get_anomaly_data/fetcher.ts | 11 +- .../charts/get_anomaly_data/index.ts | 40 ++--- .../get_timeseries_data/fetcher.test.ts | 5 +- .../charts/get_timeseries_data/fetcher.ts | 12 +- .../charts/get_timeseries_data/index.ts | 8 +- .../server/lib/transactions/charts/index.ts | 10 +- .../distribution/get_buckets/index.ts | 12 +- .../distribution/get_distribution_max.ts | 12 +- .../lib/transactions/distribution/index.ts | 8 +- .../lib/transactions/get_transaction/index.ts | 8 +- .../server/lib/transactions/queries.test.ts | 3 - .../__snapshots__/queries.test.ts.snap | 2 +- .../get_local_filter_query.ts | 4 +- .../local_ui_filters/queries.test.ts | 2 +- .../plugins/apm/server/projections/errors.ts | 12 +- .../plugins/apm/server/projections/metrics.ts | 12 +- .../projections/rum_page_load_transactions.ts | 18 +- .../apm/server/projections/service_nodes.ts | 8 +- .../apm/server/projections/services.ts | 12 +- .../server/projections/transaction_groups.ts | 8 +- .../apm/server/projections/transactions.ts | 12 +- .../plugins/apm/server/routes/service_map.ts | 5 - x-pack/plugins/apm/server/routes/services.ts | 12 +- .../apm/server/routes/transaction_groups.ts | 21 +-- .../plugins/apm/server/routes/ui_filters.ts | 13 +- .../plugins/apm/server/utils/test_helpers.tsx | 7 +- .../basic/tests/feature_controls.ts | 6 +- .../transaction_groups/transaction_charts.ts | 2 +- .../apm_api_integration/trial/tests/index.ts | 1 + .../transaction_groups_charts.snap | 43 +++++ .../services/transaction_groups_charts.ts | 161 ++++++++++++++++++ 87 files changed, 528 insertions(+), 548 deletions(-) rename x-pack/plugins/apm/server/lib/helpers/convert_ui_filters/{get_ui_filters_es.ts => get_es_filter.ts} (96%) delete mode 100644 x-pack/plugins/apm/server/lib/helpers/convert_ui_filters/get_parsed_ui_filters.ts create mode 100644 x-pack/test/apm_api_integration/trial/tests/services/__snapshots__/transaction_groups_charts.snap create mode 100644 x-pack/test/apm_api_integration/trial/tests/services/transaction_groups_charts.ts diff --git a/x-pack/plugins/apm/public/components/app/ServiceMap/__stories__/example_response_opbeans_beats.json b/x-pack/plugins/apm/public/components/app/ServiceMap/__stories__/example_response_opbeans_beats.json index 153fa57bb05e7..cfd905f145fe2 100644 --- a/x-pack/plugins/apm/public/components/app/ServiceMap/__stories__/example_response_opbeans_beats.json +++ b/x-pack/plugins/apm/public/components/app/ServiceMap/__stories__/example_response_opbeans_beats.json @@ -83,7 +83,7 @@ "id": "opbeans-go~>postgresql", "sourceData": { "id": "opbeans-go", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-go", "agent.name": "go" }, @@ -103,7 +103,7 @@ "id": "opbeans-go~opbeans-java", "sourceData": { "id": "opbeans-go", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-go", "agent.name": "go" }, @@ -123,13 +123,13 @@ "id": "opbeans-go~opbeans-node", "sourceData": { "id": "opbeans-go", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-go", "agent.name": "go" }, "targetData": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs" }, @@ -143,7 +143,7 @@ "id": "opbeans-go~opbeans-ruby", "sourceData": { "id": "opbeans-go", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-go", "agent.name": "go" }, @@ -189,7 +189,7 @@ }, "targetData": { "id": "opbeans-go", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-go", "agent.name": "go" }, @@ -209,7 +209,7 @@ }, "targetData": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs" } @@ -242,7 +242,7 @@ "id": "opbeans-node~>postgresql", "sourceData": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs" }, @@ -262,7 +262,7 @@ "id": "opbeans-node~>redis", "sourceData": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs" }, @@ -282,13 +282,13 @@ "id": "opbeans-node~opbeans-go", "sourceData": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs" }, "targetData": { "id": "opbeans-go", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-go", "agent.name": "go" }, @@ -302,7 +302,7 @@ "id": "opbeans-node~opbeans-python", "sourceData": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs" }, @@ -322,7 +322,7 @@ "id": "opbeans-node~opbeans-ruby", "sourceData": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs" }, @@ -408,7 +408,7 @@ }, "targetData": { "id": "opbeans-go", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-go", "agent.name": "go" } @@ -427,7 +427,7 @@ }, "targetData": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs" }, @@ -487,7 +487,7 @@ }, "targetData": { "id": "opbeans-go", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-go", "agent.name": "go" }, @@ -527,7 +527,7 @@ }, "targetData": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs" }, @@ -566,7 +566,7 @@ }, "targetData": { "id": "opbeans-go", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-go", "agent.name": "go" } @@ -602,7 +602,7 @@ }, "targetData": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs" } @@ -673,7 +673,7 @@ { "data": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs", "anomaly_score": 41.31593099784474, @@ -733,7 +733,7 @@ { "data": { "id": "opbeans-go", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-go", "agent.name": "go", "anomaly_score": 0.2633884161762746, diff --git a/x-pack/plugins/apm/public/context/UrlParamsContext/index.tsx b/x-pack/plugins/apm/public/context/UrlParamsContext/index.tsx index 9eb4704a2ca29..5682009019d7f 100644 --- a/x-pack/plugins/apm/public/context/UrlParamsContext/index.tsx +++ b/x-pack/plugins/apm/public/context/UrlParamsContext/index.tsx @@ -25,6 +25,7 @@ import { import { pickKeys } from '../../../common/utils/pick_keys'; import { useDeepObjectIdentity } from '../../hooks/useDeepObjectIdentity'; import { LocalUIFilterName } from '../../../common/ui_filter'; +import { ENVIRONMENT_ALL } from '../../../common/environment_filter_values'; interface TimeRange { rangeFrom: string; @@ -38,7 +39,11 @@ function useUiFilters(params: IUrlParams): UIFilters { (val) => (val ? val.split(',') : []) ) as Partial<Record<LocalUIFilterName, string[]>>; - return useDeepObjectIdentity({ kuery, environment, ...localUiFilters }); + return useDeepObjectIdentity({ + kuery, + environment: environment || ENVIRONMENT_ALL.value, + ...localUiFilters, + }); } const defaultRefresh = (_time: TimeRange) => {}; diff --git a/x-pack/plugins/apm/public/utils/testHelpers.tsx b/x-pack/plugins/apm/public/utils/testHelpers.tsx index 971455fde3946..7826e9672a3bb 100644 --- a/x-pack/plugins/apm/public/utils/testHelpers.tsx +++ b/x-pack/plugins/apm/public/utils/testHelpers.tsx @@ -25,6 +25,7 @@ import { } from '../../typings/elasticsearch'; import { MockApmPluginContextWrapper } from '../context/ApmPluginContext/MockApmPluginContext'; import { UrlParamsProvider } from '../context/UrlParamsContext'; +import { UIFilters } from '../../typings/ui_filters'; const originalConsoleWarn = console.warn; // eslint-disable-line no-console /** @@ -118,7 +119,8 @@ interface MockSetup { apmEventClient: any; internalClient: any; config: APMConfig; - uiFiltersES: ESFilter[]; + uiFilters: UIFilters; + esFilter: ESFilter[]; indices: { /* eslint-disable @typescript-eslint/naming-convention */ 'apm_oss.sourcemapIndices': string; @@ -179,7 +181,8 @@ export async function inspectSearchParams( }, } ) as APMConfig, - uiFiltersES: [{ term: { 'my.custom.ui.filter': 'foo-bar' } }], + uiFilters: { environment: 'test' }, + esFilter: [{ term: { 'service.environment': 'test' } }], indices: { /* eslint-disable @typescript-eslint/naming-convention */ 'apm_oss.sourcemapIndices': 'myIndex', diff --git a/x-pack/plugins/apm/server/lib/errors/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/lib/errors/__snapshots__/queries.test.ts.snap index 63b6c9cde4d0d..632232ffb075d 100644 --- a/x-pack/plugins/apm/server/lib/errors/__snapshots__/queries.test.ts.snap +++ b/x-pack/plugins/apm/server/lib/errors/__snapshots__/queries.test.ts.snap @@ -32,7 +32,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -119,7 +119,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -194,7 +194,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], diff --git a/x-pack/plugins/apm/server/lib/errors/distribution/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/lib/errors/distribution/__snapshots__/queries.test.ts.snap index ea142ca2acc00..b329499c8b045 100644 --- a/x-pack/plugins/apm/server/lib/errors/distribution/__snapshots__/queries.test.ts.snap +++ b/x-pack/plugins/apm/server/lib/errors/distribution/__snapshots__/queries.test.ts.snap @@ -40,7 +40,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -91,7 +91,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { diff --git a/x-pack/plugins/apm/server/lib/errors/distribution/__tests__/get_buckets.test.ts b/x-pack/plugins/apm/server/lib/errors/distribution/__tests__/get_buckets.test.ts index 1a83113de35f2..50da1f9c20d16 100644 --- a/x-pack/plugins/apm/server/lib/errors/distribution/__tests__/get_buckets.test.ts +++ b/x-pack/plugins/apm/server/lib/errors/distribution/__tests__/get_buckets.test.ts @@ -41,7 +41,10 @@ describe('timeseriesFetcher', () => { get: () => 'myIndex', } ) as APMConfig, - uiFiltersES: [ + uiFilters: { + environment: 'prod', + }, + esFilter: [ { term: { 'service.environment': 'prod' }, }, diff --git a/x-pack/plugins/apm/server/lib/errors/distribution/get_buckets.ts b/x-pack/plugins/apm/server/lib/errors/distribution/get_buckets.ts index de6df15354e79..a42710947a792 100644 --- a/x-pack/plugins/apm/server/lib/errors/distribution/get_buckets.ts +++ b/x-pack/plugins/apm/server/lib/errors/distribution/get_buckets.ts @@ -11,11 +11,7 @@ import { SERVICE_NAME, } from '../../../../common/elasticsearch_fieldnames'; import { rangeFilter } from '../../../../common/utils/range_filter'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../helpers/setup_request'; export async function getBuckets({ serviceName, @@ -26,13 +22,13 @@ export async function getBuckets({ serviceName: string; groupId?: string; bucketSize: number; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; }) { - const { start, end, uiFiltersES, apmEventClient } = setup; + const { start, end, esFilter, apmEventClient } = setup; const filter: ESFilter[] = [ { term: { [SERVICE_NAME]: serviceName } }, { range: rangeFilter(start, end) }, - ...uiFiltersES, + ...esFilter, ]; if (groupId) { diff --git a/x-pack/plugins/apm/server/lib/errors/distribution/get_distribution.ts b/x-pack/plugins/apm/server/lib/errors/distribution/get_distribution.ts index 3b48b6c5be594..dea518cad8e40 100644 --- a/x-pack/plugins/apm/server/lib/errors/distribution/get_distribution.ts +++ b/x-pack/plugins/apm/server/lib/errors/distribution/get_distribution.ts @@ -5,11 +5,7 @@ */ import { PromiseReturnType } from '../../../../typings/common'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../helpers/setup_request'; import { getBuckets } from './get_buckets'; import { BUCKET_TARGET_COUNT } from '../../transactions/constants'; @@ -28,7 +24,7 @@ export async function getErrorDistribution({ }: { serviceName: string; groupId?: string; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; }) { const bucketSize = getBucketSize({ start: setup.start, end: setup.end }); const { buckets, noHits } = await getBuckets({ diff --git a/x-pack/plugins/apm/server/lib/errors/get_error_group.ts b/x-pack/plugins/apm/server/lib/errors/get_error_group.ts index b23c955b57183..0fbc7720f7111 100644 --- a/x-pack/plugins/apm/server/lib/errors/get_error_group.ts +++ b/x-pack/plugins/apm/server/lib/errors/get_error_group.ts @@ -12,11 +12,7 @@ import { } from '../../../common/elasticsearch_fieldnames'; import { PromiseReturnType } from '../../../typings/common'; import { rangeFilter } from '../../../common/utils/range_filter'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { getTransaction } from '../transactions/get_transaction'; export type ErrorGroupAPIResponse = PromiseReturnType<typeof getErrorGroup>; @@ -29,9 +25,9 @@ export async function getErrorGroup({ }: { serviceName: string; groupId: string; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; }) { - const { start, end, uiFiltersES, apmEventClient } = setup; + const { start, end, esFilter, apmEventClient } = setup; const params = { apm: { @@ -45,7 +41,7 @@ export async function getErrorGroup({ { term: { [SERVICE_NAME]: serviceName } }, { term: { [ERROR_GROUP_ID]: groupId } }, { range: rangeFilter(start, end) }, - ...uiFiltersES, + ...esFilter, ], should: [{ term: { [TRANSACTION_SAMPLED]: true } }], }, diff --git a/x-pack/plugins/apm/server/lib/errors/get_error_groups.ts b/x-pack/plugins/apm/server/lib/errors/get_error_groups.ts index ab1c2149be343..006d2fae3d4fb 100644 --- a/x-pack/plugins/apm/server/lib/errors/get_error_groups.ts +++ b/x-pack/plugins/apm/server/lib/errors/get_error_groups.ts @@ -13,11 +13,7 @@ import { ERROR_LOG_MESSAGE, } from '../../../common/elasticsearch_fieldnames'; import { PromiseReturnType } from '../../../typings/common'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { getErrorGroupsProjection } from '../../projections/errors'; import { mergeProjection } from '../../projections/util/merge_projection'; import { SortOptions } from '../../../typings/elasticsearch/aggregations'; @@ -35,7 +31,7 @@ export async function getErrorGroups({ serviceName: string; sortField?: string; sortDirection?: 'asc' | 'desc'; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; }) { const { apmEventClient } = setup; diff --git a/x-pack/plugins/apm/server/lib/helpers/convert_ui_filters/get_ui_filters_es.ts b/x-pack/plugins/apm/server/lib/helpers/convert_ui_filters/get_es_filter.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/helpers/convert_ui_filters/get_ui_filters_es.ts rename to x-pack/plugins/apm/server/lib/helpers/convert_ui_filters/get_es_filter.ts index c1405b44f2a8a..1b8f32d4de8b9 100644 --- a/x-pack/plugins/apm/server/lib/helpers/convert_ui_filters/get_ui_filters_es.ts +++ b/x-pack/plugins/apm/server/lib/helpers/convert_ui_filters/get_es_filter.ts @@ -13,7 +13,7 @@ import { } from '../../ui_filters/local_ui_filters/config'; import { esKuery } from '../../../../../../../src/plugins/data/server'; -export function getUiFiltersES(uiFilters: UIFilters) { +export function getEsFilter(uiFilters: UIFilters) { const { kuery, environment, ...localFilterValues } = uiFilters; const mappedFilters = localUIFilterNames .filter((name) => name in localFilterValues) diff --git a/x-pack/plugins/apm/server/lib/helpers/convert_ui_filters/get_parsed_ui_filters.ts b/x-pack/plugins/apm/server/lib/helpers/convert_ui_filters/get_parsed_ui_filters.ts deleted file mode 100644 index 324da199807c7..0000000000000 --- a/x-pack/plugins/apm/server/lib/helpers/convert_ui_filters/get_parsed_ui_filters.ts +++ /dev/null @@ -1,23 +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 { Logger } from 'src/core/server'; -import { UIFilters } from '../../../../typings/ui_filters'; - -export function getParsedUiFilters({ - uiFilters, - logger, -}: { - uiFilters: string; - logger: Logger; -}): UIFilters { - try { - return JSON.parse(uiFilters); - } catch (error) { - logger.error(error); - } - return {}; -} diff --git a/x-pack/plugins/apm/server/lib/helpers/setup_request.ts b/x-pack/plugins/apm/server/lib/helpers/setup_request.ts index eba75433a5148..26896a050dd88 100644 --- a/x-pack/plugins/apm/server/lib/helpers/setup_request.ts +++ b/x-pack/plugins/apm/server/lib/helpers/setup_request.ts @@ -5,6 +5,7 @@ */ import moment from 'moment'; +import { Logger } from 'kibana/server'; import { isActivePlatinumLicense } from '../../../common/service_map'; import { UI_SETTINGS } from '../../../../../../src/plugins/data/common'; import { KibanaRequest } from '../../../../../../src/core/server'; @@ -14,7 +15,7 @@ import { ApmIndicesConfig, } from '../settings/apm_indices/get_apm_indices'; import { ESFilter } from '../../../typings/elasticsearch'; -import { getUiFiltersES } from './convert_ui_filters/get_ui_filters_es'; +import { getEsFilter } from './convert_ui_filters/get_es_filter'; import { APMRequestHandlerContext } from '../../routes/typings'; import { ProcessorEvent } from '../../../common/processor_event'; import { @@ -25,14 +26,8 @@ import { APMInternalClient, createInternalESClient, } from './create_es_client/create_internal_es_client'; +import { UIFilters } from '../../../typings/ui_filters'; -function decodeUiFilters(uiFiltersEncoded?: string) { - if (!uiFiltersEncoded) { - return []; - } - const uiFilters = JSON.parse(uiFiltersEncoded); - return getUiFiltersES(uiFilters); -} // Explicitly type Setup to prevent TS initialization errors // https://github.com/microsoft/TypeScript/issues/34933 @@ -42,6 +37,8 @@ export interface Setup { ml?: ReturnType<typeof getMlSetup>; config: APMConfig; indices: ApmIndicesConfig; + uiFilters: UIFilters; + esFilter: ESFilter[]; } export interface SetupTimeRange { @@ -49,10 +46,6 @@ export interface SetupTimeRange { end: number; } -export interface SetupUIFilters { - uiFiltersES: ESFilter[]; -} - interface SetupRequestParams { query?: { _debug?: boolean; @@ -65,16 +58,13 @@ interface SetupRequestParams { type InferSetup<TParams extends SetupRequestParams> = Setup & (TParams extends { query: { start: string } } ? { start: number } : {}) & - (TParams extends { query: { end: string } } ? { end: number } : {}) & - (TParams extends { query: { uiFilters: string } } - ? { uiFiltersES: ESFilter[] } - : {}); + (TParams extends { query: { end: string } } ? { end: number } : {}); export async function setupRequest<TParams extends SetupRequestParams>( context: APMRequestHandlerContext<TParams>, request: KibanaRequest ): Promise<InferSetup<TParams>> { - const { config } = context; + const { config, logger } = context; const { query } = context.params; const [indices, includeFrozen] = await Promise.all([ @@ -85,7 +75,7 @@ export async function setupRequest<TParams extends SetupRequestParams>( context.core.uiSettings.client.get(UI_SETTINGS.SEARCH_INCLUDE_FROZEN), ]); - const uiFiltersES = decodeUiFilters(query.uiFilters); + const uiFilters = decodeUiFilters(logger, query.uiFilters); const coreSetupRequest = { indices, @@ -108,12 +98,13 @@ export async function setupRequest<TParams extends SetupRequestParams>( ) : undefined, config, + uiFilters, + esFilter: getEsFilter(uiFilters), }; return { ...('start' in query ? { start: moment.utc(query.start).valueOf() } : {}), ...('end' in query ? { end: moment.utc(query.end).valueOf() } : {}), - ...('uiFilters' in query ? { uiFiltersES } : {}), ...coreSetupRequest, } as InferSetup<TParams>; } @@ -129,3 +120,15 @@ function getMlSetup( modules: ml.modulesProvider(request, savedObjectsClient), }; } + +function decodeUiFilters(logger: Logger, uiFiltersEncoded?: string): UIFilters { + if (!uiFiltersEncoded) { + return {}; + } + try { + return JSON.parse(uiFiltersEncoded); + } catch (error) { + logger.error(error); + return {}; + } +} diff --git a/x-pack/plugins/apm/server/lib/metrics/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/lib/metrics/__snapshots__/queries.test.ts.snap index 2868dcfda97b6..961a1eee61d1d 100644 --- a/x-pack/plugins/apm/server/lib/metrics/__snapshots__/queries.test.ts.snap +++ b/x-pack/plugins/apm/server/lib/metrics/__snapshots__/queries.test.ts.snap @@ -87,7 +87,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -175,7 +175,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -206,7 +206,7 @@ Object { "lang": "painless", "source": " /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -231,7 +231,7 @@ Object { "lang": "painless", "source": " /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -258,7 +258,7 @@ Object { "lang": "painless", "source": " /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -283,7 +283,7 @@ Object { "lang": "painless", "source": " /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -338,7 +338,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -431,7 +431,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -514,7 +514,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -623,7 +623,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -717,7 +717,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -748,7 +748,7 @@ Object { "lang": "painless", "source": " /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -773,7 +773,7 @@ Object { "lang": "painless", "source": " /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -800,7 +800,7 @@ Object { "lang": "painless", "source": " /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -825,7 +825,7 @@ Object { "lang": "painless", "source": " /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -886,7 +886,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -985,7 +985,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -1074,7 +1074,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -1172,7 +1172,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -1255,7 +1255,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -1286,7 +1286,7 @@ Object { "lang": "painless", "source": " /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -1311,7 +1311,7 @@ Object { "lang": "painless", "source": " /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -1338,7 +1338,7 @@ Object { "lang": "painless", "source": " /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -1363,7 +1363,7 @@ Object { "lang": "painless", "source": " /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -1413,7 +1413,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -1501,7 +1501,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -1579,7 +1579,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/default.ts b/x-pack/plugins/apm/server/lib/metrics/by_agent/default.ts index 6ee507d7b9bb1..fbcbc9f12791f 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/default.ts +++ b/x-pack/plugins/apm/server/lib/metrics/by_agent/default.ts @@ -4,16 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../helpers/setup_request'; import { getCPUChartData } from './shared/cpu'; import { getMemoryChartData } from './shared/memory'; export async function getDefaultMetricsCharts( - setup: Setup & SetupTimeRange & SetupUIFilters, + setup: Setup & SetupTimeRange, serviceName: string ) { const charts = await Promise.all([ diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.ts b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.ts index d7e64bdcacd12..2ed11480a7585 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.ts +++ b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.ts @@ -11,11 +11,7 @@ import { sum, round } from 'lodash'; import theme from '@elastic/eui/dist/eui_theme_light.json'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../../helpers/setup_request'; import { getMetricsDateHistogramParams } from '../../../../helpers/metrics'; import { ChartBase } from '../../../types'; import { getMetricsProjection } from '../../../../../projections/metrics'; @@ -36,7 +32,7 @@ export async function fetchAndTransformGcMetrics({ chartBase, fieldName, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; serviceName: string; serviceNodeName?: string; chartBase: ChartBase; diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_rate_chart.ts b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_rate_chart.ts index 6e562b9a8ee87..7cedeb828e3b7 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_rate_chart.ts +++ b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_rate_chart.ts @@ -7,11 +7,7 @@ import theme from '@elastic/eui/dist/eui_theme_light.json'; import { i18n } from '@kbn/i18n'; import { METRIC_JAVA_GC_COUNT } from '../../../../../../common/elasticsearch_fieldnames'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../../helpers/setup_request'; import { fetchAndTransformGcMetrics } from './fetch_and_transform_gc_metrics'; import { ChartBase } from '../../../types'; @@ -35,7 +31,7 @@ const chartBase: ChartBase = { }; const getGcRateChart = ( - setup: Setup & SetupTimeRange & SetupUIFilters, + setup: Setup & SetupTimeRange, serviceName: string, serviceNodeName?: string ) => { diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_time_chart.ts b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_time_chart.ts index 0b9d6240fc1c9..f21d3d8e7c056 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_time_chart.ts +++ b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_time_chart.ts @@ -7,11 +7,7 @@ import theme from '@elastic/eui/dist/eui_theme_light.json'; import { i18n } from '@kbn/i18n'; import { METRIC_JAVA_GC_TIME } from '../../../../../../common/elasticsearch_fieldnames'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../../helpers/setup_request'; import { fetchAndTransformGcMetrics } from './fetch_and_transform_gc_metrics'; import { ChartBase } from '../../../types'; @@ -35,7 +31,7 @@ const chartBase: ChartBase = { }; const getGcTimeChart = ( - setup: Setup & SetupTimeRange & SetupUIFilters, + setup: Setup & SetupTimeRange, serviceName: string, serviceNodeName?: string ) => { diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/heap_memory/index.ts b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/heap_memory/index.ts index ba3183c0fa7d7..eb79897f9f055 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/heap_memory/index.ts +++ b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/heap_memory/index.ts @@ -12,11 +12,7 @@ import { METRIC_JAVA_HEAP_MEMORY_USED, AGENT_NAME, } from '../../../../../../common/elasticsearch_fieldnames'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../../helpers/setup_request'; import { fetchAndTransformMetrics } from '../../../fetch_and_transform_metrics'; import { ChartBase } from '../../../types'; @@ -55,7 +51,7 @@ const chartBase: ChartBase = { }; export async function getHeapMemoryChart( - setup: Setup & SetupTimeRange & SetupUIFilters, + setup: Setup & SetupTimeRange, serviceName: string, serviceNodeName?: string ) { diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/index.ts b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/index.ts index 21caab6590fc4..d4084701f0f49 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/index.ts +++ b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/index.ts @@ -5,11 +5,7 @@ */ import { getHeapMemoryChart } from './heap_memory'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../helpers/setup_request'; import { getNonHeapMemoryChart } from './non_heap_memory'; import { getThreadCountChart } from './thread_count'; import { getCPUChartData } from '../shared/cpu'; @@ -18,7 +14,7 @@ import { getGcRateChart } from './gc/get_gc_rate_chart'; import { getGcTimeChart } from './gc/get_gc_time_chart'; export async function getJavaMetricsCharts( - setup: Setup & SetupTimeRange & SetupUIFilters, + setup: Setup & SetupTimeRange, serviceName: string, serviceNodeName?: string ) { diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/non_heap_memory/index.ts b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/non_heap_memory/index.ts index 1a2d5bd0b0e68..50cc449da3c15 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/non_heap_memory/index.ts +++ b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/non_heap_memory/index.ts @@ -12,11 +12,7 @@ import { METRIC_JAVA_NON_HEAP_MEMORY_USED, AGENT_NAME, } from '../../../../../../common/elasticsearch_fieldnames'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../../helpers/setup_request'; import { ChartBase } from '../../../types'; import { fetchAndTransformMetrics } from '../../../fetch_and_transform_metrics'; @@ -52,7 +48,7 @@ const chartBase: ChartBase = { }; export async function getNonHeapMemoryChart( - setup: Setup & SetupUIFilters & SetupTimeRange, + setup: Setup & SetupTimeRange, serviceName: string, serviceNodeName?: string ) { diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/thread_count/index.ts b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/thread_count/index.ts index 01cc6d8495244..0062f0a423970 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/thread_count/index.ts +++ b/x-pack/plugins/apm/server/lib/metrics/by_agent/java/thread_count/index.ts @@ -10,11 +10,7 @@ import { METRIC_JAVA_THREAD_COUNT, AGENT_NAME, } from '../../../../../../common/elasticsearch_fieldnames'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../../helpers/setup_request'; import { ChartBase } from '../../../types'; import { fetchAndTransformMetrics } from '../../../fetch_and_transform_metrics'; @@ -44,7 +40,7 @@ const chartBase: ChartBase = { }; export async function getThreadCountChart( - setup: Setup & SetupTimeRange & SetupUIFilters, + setup: Setup & SetupTimeRange, serviceName: string, serviceNodeName?: string ) { diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/cpu/index.ts b/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/cpu/index.ts index 066ef40b4ab6c..ca642aa12fff1 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/cpu/index.ts +++ b/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/cpu/index.ts @@ -10,11 +10,7 @@ import { METRIC_SYSTEM_CPU_PERCENT, METRIC_PROCESS_CPU_PERCENT, } from '../../../../../../common/elasticsearch_fieldnames'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../../helpers/setup_request'; import { ChartBase } from '../../../types'; import { fetchAndTransformMetrics } from '../../../fetch_and_transform_metrics'; @@ -56,7 +52,7 @@ const chartBase: ChartBase = { }; export async function getCPUChartData( - setup: Setup & SetupTimeRange & SetupUIFilters, + setup: Setup & SetupTimeRange, serviceName: string, serviceNodeName?: string ) { diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/memory/index.ts b/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/memory/index.ts index a60576ca0c175..e6ee47cc815ef 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/memory/index.ts +++ b/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/memory/index.ts @@ -11,11 +11,7 @@ import { METRIC_SYSTEM_FREE_MEMORY, METRIC_SYSTEM_TOTAL_MEMORY, } from '../../../../../../common/elasticsearch_fieldnames'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../../helpers/setup_request'; import { fetchAndTransformMetrics } from '../../../fetch_and_transform_metrics'; import { ChartBase } from '../../../types'; @@ -54,7 +50,7 @@ export const percentCgroupMemoryUsedScript = { lang: 'painless', source: ` /* - When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. + When no limit is specified in the container, docker allows the app as much memory / swap memory as it wants. This number represents the max possible value for the limit field. */ double CGROUP_LIMIT_MAX_VALUE = 9223372036854771712L; @@ -73,7 +69,7 @@ export const percentCgroupMemoryUsedScript = { }; export async function getMemoryChartData( - setup: Setup & SetupTimeRange & SetupUIFilters, + setup: Setup & SetupTimeRange, serviceName: string, serviceNodeName?: string ) { diff --git a/x-pack/plugins/apm/server/lib/metrics/fetch_and_transform_metrics.ts b/x-pack/plugins/apm/server/lib/metrics/fetch_and_transform_metrics.ts index a42a10d6518a0..3ccba8c7586dc 100644 --- a/x-pack/plugins/apm/server/lib/metrics/fetch_and_transform_metrics.ts +++ b/x-pack/plugins/apm/server/lib/metrics/fetch_and_transform_metrics.ts @@ -5,11 +5,7 @@ */ import { Unionize, Overwrite } from 'utility-types'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { getMetricsDateHistogramParams } from '../helpers/metrics'; import { ChartBase } from './types'; import { transformDataToMetricsChart } from './transform_metrics_chart'; @@ -58,7 +54,7 @@ export async function fetchAndTransformMetrics<T extends MetricAggs>({ aggs, additionalFilters = [], }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; serviceName: string; serviceNodeName?: string; chartBase: ChartBase; diff --git a/x-pack/plugins/apm/server/lib/metrics/get_metrics_chart_data_by_agent.ts b/x-pack/plugins/apm/server/lib/metrics/get_metrics_chart_data_by_agent.ts index 059e1ce48c83d..72cd65deebff6 100644 --- a/x-pack/plugins/apm/server/lib/metrics/get_metrics_chart_data_by_agent.ts +++ b/x-pack/plugins/apm/server/lib/metrics/get_metrics_chart_data_by_agent.ts @@ -3,11 +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 { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { getJavaMetricsCharts } from './by_agent/java'; import { getDefaultMetricsCharts } from './by_agent/default'; import { GenericMetricsChart } from './transform_metrics_chart'; @@ -22,7 +18,7 @@ export async function getMetricsChartDataByAgent({ serviceNodeName, agentName, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; serviceName: string; serviceNodeName?: string; agentName: string; diff --git a/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap index dcafe09221164..1fafa08082443 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap +++ b/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap @@ -61,7 +61,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -151,7 +151,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -230,7 +230,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -500,7 +500,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -552,7 +552,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -667,7 +667,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -723,7 +723,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts b/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts index 6566ea4f5e29b..6d596246d6af9 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts @@ -7,11 +7,7 @@ import { TRANSACTION_DURATION } from '../../../common/elasticsearch_fieldnames'; import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { TRANSACTION_DOM_INTERACTIVE, TRANSACTION_TIME_TO_FIRST_BYTE, @@ -22,7 +18,7 @@ export async function getClientMetrics({ urlQuery, percentile = 50, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; urlQuery?: string; percentile?: number; }) { diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_js_errors.ts b/x-pack/plugins/apm/server/lib/rum_client/get_js_errors.ts index 0540ea4bf09dd..a8a4e2714c86e 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_js_errors.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_js_errors.ts @@ -5,11 +5,7 @@ */ import { mergeProjection } from '../../projections/util/merge_projection'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { getRumErrorsProjection } from '../../projections/rum_page_load_transactions'; import { ERROR_EXC_MESSAGE, @@ -23,7 +19,7 @@ export async function getJSErrors({ pageSize, pageIndex, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; pageSize: number; pageIndex: number; }) { diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_long_task_metrics.ts b/x-pack/plugins/apm/server/lib/rum_client/get_long_task_metrics.ts index c2c86ae05d57c..dfb31de8f10f7 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_long_task_metrics.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_long_task_metrics.ts @@ -6,11 +6,7 @@ import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; const LONG_TASK_SUM_FIELD = 'transaction.experience.longtask.sum'; const LONG_TASK_COUNT_FIELD = 'transaction.experience.longtask.count'; @@ -21,7 +17,7 @@ export async function getLongTaskMetrics({ urlQuery, percentile = 50, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; urlQuery?: string; percentile?: number; }) { diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_page_load_distribution.ts b/x-pack/plugins/apm/server/lib/rum_client/get_page_load_distribution.ts index 5f666feb8a18f..225afff2818ab 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_page_load_distribution.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_page_load_distribution.ts @@ -7,11 +7,7 @@ import { TRANSACTION_DURATION } from '../../../common/elasticsearch_fieldnames'; import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; export const MICRO_TO_SEC = 1000000; @@ -56,7 +52,7 @@ export async function getPageLoadDistribution({ maxPercentile, urlQuery, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; minPercentile?: string; maxPercentile?: string; urlQuery?: string; @@ -168,7 +164,7 @@ const getPercentilesDistribution = async ({ minDuration, maxDuration, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; minDuration: number; maxDuration: number; }) => { diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_page_view_trends.ts b/x-pack/plugins/apm/server/lib/rum_client/get_page_view_trends.ts index 40f8a8bc58a54..c1a602c33feae 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_page_view_trends.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_page_view_trends.ts @@ -5,11 +5,7 @@ */ import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { BreakdownItem } from '../../../typings/ui_filters'; export async function getPageViewTrends({ @@ -17,7 +13,7 @@ export async function getPageViewTrends({ breakdowns, urlQuery, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; breakdowns?: string; urlQuery?: string; }) { diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_pl_dist_breakdown.ts b/x-pack/plugins/apm/server/lib/rum_client/get_pl_dist_breakdown.ts index bebf9c0bc99c9..e2ec59d232b21 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_pl_dist_breakdown.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_pl_dist_breakdown.ts @@ -7,11 +7,7 @@ import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { ProcessorEvent } from '../../../common/processor_event'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { CLIENT_GEO_COUNTRY_ISO_CODE, USER_AGENT_DEVICE, @@ -46,7 +42,7 @@ export const getPageLoadDistBreakdown = async ({ breakdown, urlQuery, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; minPercentile: number; maxPercentile: number; breakdown: string; diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_rum_services.ts b/x-pack/plugins/apm/server/lib/rum_client/get_rum_services.ts index 3adad0868ed4b..e9bd203e354cb 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_rum_services.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_rum_services.ts @@ -5,18 +5,14 @@ */ import { SERVICE_NAME } from '../../../common/elasticsearch_fieldnames'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; export async function getRumServices({ setup, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; }) { const projection = getRumPageLoadTransactionsProjection({ setup, diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_url_search.ts b/x-pack/plugins/apm/server/lib/rum_client/get_url_search.ts index 6aa39c7ef961f..febfd66897e18 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_url_search.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_url_search.ts @@ -5,11 +5,7 @@ */ import { mergeProjection } from '../../projections/util/merge_projection'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { TRANSACTION_DURATION, @@ -21,7 +17,7 @@ export async function getUrlSearch({ urlQuery, percentile, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; urlQuery?: string; percentile: number; }) { diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_visitor_breakdown.ts b/x-pack/plugins/apm/server/lib/rum_client/get_visitor_breakdown.ts index 52d089e4e29c9..6350bc2c07016 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_visitor_breakdown.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_visitor_breakdown.ts @@ -6,11 +6,7 @@ import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { USER_AGENT_NAME, USER_AGENT_OS, @@ -20,7 +16,7 @@ export async function getVisitorBreakdown({ setup, urlQuery, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; urlQuery?: string; }) { const projection = getRumPageLoadTransactionsProjection({ diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_web_core_vitals.ts b/x-pack/plugins/apm/server/lib/rum_client/get_web_core_vitals.ts index 676b3506397a7..c5baf0b529eb4 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_web_core_vitals.ts +++ b/x-pack/plugins/apm/server/lib/rum_client/get_web_core_vitals.ts @@ -6,11 +6,7 @@ import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { CLS_FIELD, FCP_FIELD, @@ -25,7 +21,7 @@ export async function getWebCoreVitals({ urlQuery, percentile = 50, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; urlQuery?: string; percentile?: number; }) { diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_map.ts b/x-pack/plugins/apm/server/lib/service_map/get_service_map.ts index 75acebe7ed56c..330bb936c9e88 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_service_map.ts +++ b/x-pack/plugins/apm/server/lib/service_map/get_service_map.ts @@ -82,7 +82,7 @@ async function getServicesData(options: IEnvOptions) { const { setup, searchAggregatedTransactions } = options; const projection = getServicesProjection({ - setup: { ...setup, uiFiltersES: [] }, + setup: { ...setup, esFilter: [] }, searchAggregatedTransactions, }); diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.test.ts b/x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.test.ts index 7af1607697ef3..eb2ddbf38b274 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.test.ts +++ b/x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.test.ts @@ -19,11 +19,10 @@ describe('getServiceMapServiceNodeInfo', () => { }), }, indices: {}, + uiFilters: { environment: 'test environment' }, } as unknown) as Setup & SetupTimeRange; - const environment = 'test environment'; const serviceName = 'test service name'; const result = await getServiceMapServiceNodeInfo({ - uiFilters: { environment }, setup, serviceName, searchAggregatedTransactions: false, @@ -67,11 +66,10 @@ describe('getServiceMapServiceNodeInfo', () => { config: { 'xpack.apm.metricsInterval': 30, }, + uiFilters: { environment: 'test environment' }, } as unknown) as Setup & SetupTimeRange; - const environment = 'test environment'; const serviceName = 'test service name'; const result = await getServiceMapServiceNodeInfo({ - uiFilters: { environment }, setup, serviceName, searchAggregatedTransactions: false, diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.ts b/x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.ts index 7c2137ce65d83..37b34641435fb 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.ts +++ b/x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.ts @@ -8,7 +8,6 @@ import { TRANSACTION_REQUEST, TRANSACTION_PAGE_LOAD, } from '../../../common/transaction_types'; -import { UIFilters } from '../../../typings/ui_filters'; import { SERVICE_NAME, METRIC_SYSTEM_CPU_PERCENT, @@ -53,9 +52,8 @@ export async function getServiceMapServiceNodeInfo({ serviceName, setup, searchAggregatedTransactions, - uiFilters, -}: Options & { serviceName: string; uiFilters: UIFilters }) { - const { start, end } = setup; +}: Options & { serviceName: string }) { + const { start, end, uiFilters } = setup; const filter: ESFilter[] = [ { range: rangeFilter(start, end) }, @@ -105,7 +103,8 @@ async function getErrorStats({ }) { const setupWithBlankUiFilters = { ...setup, - uiFiltersES: getEnvironmentUiFilterES(environment), + uiFilters: { environment }, + esFilter: getEnvironmentUiFilterES(environment), }; const { noHits, average } = await getErrorRate({ setup: setupWithBlankUiFilters, diff --git a/x-pack/plugins/apm/server/lib/service_map/mock_responses/group_resource_nodes_grouped.json b/x-pack/plugins/apm/server/lib/service_map/mock_responses/group_resource_nodes_grouped.json index e7bba585de180..94c508fe90230 100644 --- a/x-pack/plugins/apm/server/lib/service_map/mock_responses/group_resource_nodes_grouped.json +++ b/x-pack/plugins/apm/server/lib/service_map/mock_responses/group_resource_nodes_grouped.json @@ -3,7 +3,7 @@ { "data": { "id": "opbeans-rum", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-rum", "agent.name": "rum-js" } @@ -18,7 +18,7 @@ { "data": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs" } diff --git a/x-pack/plugins/apm/server/lib/service_map/mock_responses/group_resource_nodes_pregrouped.json b/x-pack/plugins/apm/server/lib/service_map/mock_responses/group_resource_nodes_pregrouped.json index 22c5c50de7472..58469f607ac13 100644 --- a/x-pack/plugins/apm/server/lib/service_map/mock_responses/group_resource_nodes_pregrouped.json +++ b/x-pack/plugins/apm/server/lib/service_map/mock_responses/group_resource_nodes_pregrouped.json @@ -3,7 +3,7 @@ { "data": { "id": "opbeans-rum", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-rum", "agent.name": "rum-js" } @@ -18,7 +18,7 @@ { "data": { "id": "opbeans-node", - "service.environment": "testing", + "service.environment": "test", "service.name": "opbeans-node", "agent.name": "nodejs" } diff --git a/x-pack/plugins/apm/server/lib/service_nodes/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/lib/service_nodes/__snapshots__/queries.test.ts.snap index 87aca0d056909..d83e558775be4 100644 --- a/x-pack/plugins/apm/server/lib/service_nodes/__snapshots__/queries.test.ts.snap +++ b/x-pack/plugins/apm/server/lib/service_nodes/__snapshots__/queries.test.ts.snap @@ -51,7 +51,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -119,7 +119,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -188,7 +188,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], diff --git a/x-pack/plugins/apm/server/lib/service_nodes/index.ts b/x-pack/plugins/apm/server/lib/service_nodes/index.ts index a83aba192dba9..d5e29532e3d7b 100644 --- a/x-pack/plugins/apm/server/lib/service_nodes/index.ts +++ b/x-pack/plugins/apm/server/lib/service_nodes/index.ts @@ -4,11 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { getServiceNodesProjection } from '../../projections/service_nodes'; import { mergeProjection } from '../../projections/util/merge_projection'; import { SERVICE_NODE_NAME_MISSING } from '../../../common/service_nodes'; @@ -23,7 +19,7 @@ const getServiceNodes = async ({ setup, serviceName, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; serviceName: string; }) => { const { apmEventClient } = setup; diff --git a/x-pack/plugins/apm/server/lib/services/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/lib/services/__snapshots__/queries.test.ts.snap index 431f11066aaff..3a38f80c87b35 100644 --- a/x-pack/plugins/apm/server/lib/services/__snapshots__/queries.test.ts.snap +++ b/x-pack/plugins/apm/server/lib/services/__snapshots__/queries.test.ts.snap @@ -144,7 +144,7 @@ Array [ }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -194,7 +194,7 @@ Array [ }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -257,7 +257,7 @@ Array [ }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -334,7 +334,7 @@ Array [ }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -389,7 +389,7 @@ Array [ }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], diff --git a/x-pack/plugins/apm/server/lib/services/get_service_node_metadata.ts b/x-pack/plugins/apm/server/lib/services/get_service_node_metadata.ts index fca472b0ce8c2..d6ba9f5447ba5 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_node_metadata.ts +++ b/x-pack/plugins/apm/server/lib/services/get_service_node_metadata.ts @@ -4,11 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { HOST_NAME, CONTAINER_ID, @@ -24,7 +20,7 @@ export async function getServiceNodeMetadata({ }: { serviceName: string; serviceNodeName: string; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; }) { const { apmEventClient } = setup; diff --git a/x-pack/plugins/apm/server/lib/services/get_services/get_services_items.ts b/x-pack/plugins/apm/server/lib/services/get_services/get_services_items.ts index c09be7aacc784..092485c46fb08 100644 --- a/x-pack/plugins/apm/server/lib/services/get_services/get_services_items.ts +++ b/x-pack/plugins/apm/server/lib/services/get_services/get_services_items.ts @@ -5,11 +5,7 @@ */ import { joinByKey } from '../../../../common/utils/join_by_key'; import { PromiseReturnType } from '../../../../typings/common'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../helpers/setup_request'; import { getServicesProjection } from '../../../projections/services'; import { getTransactionDurationAverages, @@ -21,17 +17,15 @@ import { } from './get_services_items_stats'; export type ServiceListAPIResponse = PromiseReturnType<typeof getServicesItems>; -export type ServicesItemsSetup = Setup & SetupTimeRange & SetupUIFilters; +export type ServicesItemsSetup = Setup & SetupTimeRange; export type ServicesItemsProjection = ReturnType<typeof getServicesProjection>; export async function getServicesItems({ setup, searchAggregatedTransactions, - mlAnomaliesEnvironment, }: { setup: ServicesItemsSetup; searchAggregatedTransactions: boolean; - mlAnomaliesEnvironment?: string; }) { const params = { projection: getServicesProjection({ @@ -55,7 +49,7 @@ export async function getServicesItems({ getTransactionRates(params), getTransactionErrorRates(params), getEnvironments(params), - getHealthStatuses(params, mlAnomaliesEnvironment), + getHealthStatuses(params, setup.uiFilters.environment), ]); const allMetrics = [ diff --git a/x-pack/plugins/apm/server/lib/services/get_services/index.ts b/x-pack/plugins/apm/server/lib/services/get_services/index.ts index 351457b2a815e..04744a9c791bb 100644 --- a/x-pack/plugins/apm/server/lib/services/get_services/index.ts +++ b/x-pack/plugins/apm/server/lib/services/get_services/index.ts @@ -6,11 +6,7 @@ import { isEmpty } from 'lodash'; import { PromiseReturnType } from '../../../../typings/common'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../helpers/setup_request'; import { hasHistoricalAgentData } from './has_historical_agent_data'; import { getLegacyDataStatus } from './get_legacy_data_status'; import { getServicesItems } from './get_services_items'; @@ -20,17 +16,14 @@ export type ServiceListAPIResponse = PromiseReturnType<typeof getServices>; export async function getServices({ setup, searchAggregatedTransactions, - mlAnomaliesEnvironment, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; searchAggregatedTransactions: boolean; - mlAnomaliesEnvironment?: string; }) { const [items, hasLegacyData] = await Promise.all([ getServicesItems({ setup, searchAggregatedTransactions, - mlAnomaliesEnvironment, }), getLegacyDataStatus(setup), ]); diff --git a/x-pack/plugins/apm/server/lib/transaction_groups/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/lib/transaction_groups/__snapshots__/queries.test.ts.snap index bd6cefa793467..c678e7db711b6 100644 --- a/x-pack/plugins/apm/server/lib/transaction_groups/__snapshots__/queries.test.ts.snap +++ b/x-pack/plugins/apm/server/lib/transaction_groups/__snapshots__/queries.test.ts.snap @@ -61,7 +61,7 @@ Array [ }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -128,7 +128,7 @@ Array [ }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -195,7 +195,7 @@ Array [ }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -270,7 +270,7 @@ Array [ }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -325,7 +325,7 @@ Array [ }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -380,7 +380,7 @@ Array [ }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -441,7 +441,7 @@ Array [ }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], diff --git a/x-pack/plugins/apm/server/lib/transaction_groups/fetcher.ts b/x-pack/plugins/apm/server/lib/transaction_groups/fetcher.ts index 5d581149db667..0a4d9748f2597 100644 --- a/x-pack/plugins/apm/server/lib/transaction_groups/fetcher.ts +++ b/x-pack/plugins/apm/server/lib/transaction_groups/fetcher.ts @@ -15,11 +15,7 @@ import { getTransactionGroupsProjection } from '../../projections/transaction_gr import { mergeProjection } from '../../projections/util/merge_projection'; import { PromiseReturnType } from '../../../../observability/typings/common'; import { AggregationOptionsByType } from '../../../typings/elasticsearch/aggregations'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { getAverages, getSums, @@ -57,7 +53,7 @@ export type TransactionGroupRequestBase = ReturnType< }; }; -export type TransactionGroupSetup = Setup & SetupTimeRange & SetupUIFilters; +export type TransactionGroupSetup = Setup & SetupTimeRange; function getItemsWithRelativeImpact( setup: TransactionGroupSetup, diff --git a/x-pack/plugins/apm/server/lib/transaction_groups/get_error_rate.ts b/x-pack/plugins/apm/server/lib/transaction_groups/get_error_rate.ts index 3dc126c45d328..d5289430b2698 100644 --- a/x-pack/plugins/apm/server/lib/transaction_groups/get_error_rate.ts +++ b/x-pack/plugins/apm/server/lib/transaction_groups/get_error_rate.ts @@ -12,11 +12,7 @@ import { EVENT_OUTCOME, } from '../../../common/elasticsearch_fieldnames'; import { rangeFilter } from '../../../common/utils/range_filter'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { getBucketSize } from '../helpers/get_bucket_size'; import { getProcessorEventForAggregatedTransactions, @@ -33,10 +29,10 @@ export async function getErrorRate({ serviceName: string; transactionType?: string; transactionName?: string; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; searchAggregatedTransactions: boolean; }) { - const { start, end, uiFiltersES, apmEventClient } = setup; + const { start, end, esFilter, apmEventClient } = setup; const transactionNamefilter = transactionName ? [{ term: { [TRANSACTION_NAME]: transactionName } }] @@ -53,7 +49,7 @@ export async function getErrorRate({ }, ...transactionNamefilter, ...transactionTypefilter, - ...uiFiltersES, + ...esFilter, ]; const params = { diff --git a/x-pack/plugins/apm/server/lib/transaction_groups/get_transaction_sample_for_group.ts b/x-pack/plugins/apm/server/lib/transaction_groups/get_transaction_sample_for_group.ts index 6c9b23b3dc079..7e1aad075fb16 100644 --- a/x-pack/plugins/apm/server/lib/transaction_groups/get_transaction_sample_for_group.ts +++ b/x-pack/plugins/apm/server/lib/transaction_groups/get_transaction_sample_for_group.ts @@ -12,11 +12,7 @@ import { } from '../../../common/elasticsearch_fieldnames'; import { ProcessorEvent } from '../../../common/processor_event'; import { rangeFilter } from '../../../common/utils/range_filter'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; export async function getTransactionSampleForGroup({ serviceName, @@ -25,9 +21,9 @@ export async function getTransactionSampleForGroup({ }: { serviceName: string; transactionName: string; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; }) { - const { apmEventClient, start, end, uiFiltersES } = setup; + const { apmEventClient, start, end, esFilter } = setup; const filter = [ { @@ -43,7 +39,7 @@ export async function getTransactionSampleForGroup({ [TRANSACTION_NAME]: transactionName, }, }, - ...uiFiltersES, + ...esFilter, ]; const getSampledTransaction = async () => { diff --git a/x-pack/plugins/apm/server/lib/transaction_groups/index.ts b/x-pack/plugins/apm/server/lib/transaction_groups/index.ts index 6e0d619268d44..3796511029243 100644 --- a/x-pack/plugins/apm/server/lib/transaction_groups/index.ts +++ b/x-pack/plugins/apm/server/lib/transaction_groups/index.ts @@ -4,16 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; import { transactionGroupsFetcher, Options } from './fetcher'; export async function getTransactionGroupList( options: Options, - setup: Setup & SetupTimeRange & SetupUIFilters + setup: Setup & SetupTimeRange ) { const bucketSize = setup.config['xpack.apm.ui.transactionGroupBucketSize']; return await transactionGroupsFetcher(options, setup, bucketSize); diff --git a/x-pack/plugins/apm/server/lib/transactions/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/lib/transactions/__snapshots__/queries.test.ts.snap index c63dfcc0c0ec7..3e0a7317afd70 100644 --- a/x-pack/plugins/apm/server/lib/transactions/__snapshots__/queries.test.ts.snap +++ b/x-pack/plugins/apm/server/lib/transactions/__snapshots__/queries.test.ts.snap @@ -161,7 +161,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -295,7 +295,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -401,7 +401,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], @@ -502,7 +502,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -608,7 +608,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, Object { @@ -673,7 +673,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], diff --git a/x-pack/plugins/apm/server/lib/transactions/breakdown/index.test.ts b/x-pack/plugins/apm/server/lib/transactions/breakdown/index.test.ts index 34863c64f9804..8bbcaebe06513 100644 --- a/x-pack/plugins/apm/server/lib/transactions/breakdown/index.test.ts +++ b/x-pack/plugins/apm/server/lib/transactions/breakdown/index.test.ts @@ -36,7 +36,8 @@ function getMockSetup(esResponse: any) { get: () => 'myIndex', } ) as APMConfig, - uiFiltersES: [], + uiFilters: {}, + esFilter: [], indices: mockIndices, dynamicIndexPattern: null as any, }; diff --git a/x-pack/plugins/apm/server/lib/transactions/breakdown/index.ts b/x-pack/plugins/apm/server/lib/transactions/breakdown/index.ts index 9730ddbbf38d7..8febdc898ab97 100644 --- a/x-pack/plugins/apm/server/lib/transactions/breakdown/index.ts +++ b/x-pack/plugins/apm/server/lib/transactions/breakdown/index.ts @@ -16,11 +16,7 @@ import { TRANSACTION_NAME, TRANSACTION_BREAKDOWN_COUNT, } from '../../../../common/elasticsearch_fieldnames'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../helpers/setup_request'; import { rangeFilter } from '../../../../common/utils/range_filter'; import { getMetricsDateHistogramParams } from '../../helpers/metrics'; import { MAX_KPIS } from './constants'; @@ -32,12 +28,12 @@ export async function getTransactionBreakdown({ transactionName, transactionType, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; serviceName: string; transactionName?: string; transactionType: string; }) { - const { uiFiltersES, apmEventClient, start, end, config } = setup; + const { esFilter, apmEventClient, start, end, config } = setup; const subAggs = { sum_all_self_times: { @@ -84,7 +80,7 @@ export async function getTransactionBreakdown({ { term: { [SERVICE_NAME]: serviceName } }, { term: { [TRANSACTION_TYPE]: transactionType } }, { range: rangeFilter(start, end) }, - ...uiFiltersES, + ...esFilter, ]; if (transactionName) { diff --git a/x-pack/plugins/apm/server/lib/transactions/charts/get_anomaly_data/fetcher.ts b/x-pack/plugins/apm/server/lib/transactions/charts/get_anomaly_data/fetcher.ts index 3cf9a54e3fe9b..287c7bc2c47f9 100644 --- a/x-pack/plugins/apm/server/lib/transactions/charts/get_anomaly_data/fetcher.ts +++ b/x-pack/plugins/apm/server/lib/transactions/charts/get_anomaly_data/fetcher.ts @@ -5,6 +5,7 @@ */ import { Logger } from 'kibana/server'; +import { ESSearchResponse } from '../../../../../typings/elasticsearch'; import { PromiseReturnType } from '../../../../../../observability/typings/common'; import { Setup, SetupTimeRange } from '../../../helpers/setup_request'; @@ -47,7 +48,7 @@ export async function anomalySeriesFetcher({ filter: [ { term: { job_id: jobId } }, { exists: { field: 'bucket_span' } }, - { term: { result_type: 'model_plot' } }, + { terms: { result_type: ['model_plot', 'record'] } }, { term: { partition_field_value: serviceName } }, { term: { by_field_value: transactionType } }, { @@ -67,7 +68,7 @@ export async function anomalySeriesFetcher({ extended_bounds: { min: newStart, max: end }, }, aggs: { - anomaly_score: { max: { field: 'anomaly_score' } }, + anomaly_score: { max: { field: 'record_score' } }, lower: { min: { field: 'model_lower' } }, upper: { max: { field: 'model_upper' } }, }, @@ -77,7 +78,11 @@ export async function anomalySeriesFetcher({ }; try { - const response = await ml.mlSystem.mlAnomalySearch(params); + const response: ESSearchResponse< + unknown, + typeof params + > = (await ml.mlSystem.mlAnomalySearch(params)) as any; + return response; } catch (err) { const isHttpError = 'statusCode' in err; diff --git a/x-pack/plugins/apm/server/lib/transactions/charts/get_anomaly_data/index.ts b/x-pack/plugins/apm/server/lib/transactions/charts/get_anomaly_data/index.ts index d8865f0049d35..f11623eaa2dae 100644 --- a/x-pack/plugins/apm/server/lib/transactions/charts/get_anomaly_data/index.ts +++ b/x-pack/plugins/apm/server/lib/transactions/charts/get_anomaly_data/index.ts @@ -5,17 +5,13 @@ */ import { Logger } from 'kibana/server'; import { isNumber } from 'lodash'; +import { ENVIRONMENT_ALL } from '../../../../../common/environment_filter_values'; import { getBucketSize } from '../../../helpers/get_bucket_size'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../helpers/setup_request'; import { anomalySeriesFetcher } from './fetcher'; import { getMlBucketSize } from './get_ml_bucket_size'; import { anomalySeriesTransform } from './transform'; import { getMLJobIds } from '../../../service_map/get_service_anomalies'; -import { UIFilters } from '../../../../../typings/ui_filters'; export async function getAnomalySeries({ serviceName, @@ -24,15 +20,13 @@ export async function getAnomalySeries({ timeSeriesDates, setup, logger, - uiFilters, }: { serviceName: string; transactionType: string | undefined; transactionName: string | undefined; timeSeriesDates: number[]; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; logger: Logger; - uiFilters: UIFilters; }) { // don't fetch anomalies for transaction details page if (transactionName) { @@ -44,12 +38,22 @@ export async function getAnomalySeries({ return; } + const { uiFilters, start, end } = setup; + const { environment } = uiFilters; + + // don't fetch anomalies when no specific environment is selected + if (environment === ENVIRONMENT_ALL.value) { + return; + } + // don't fetch anomalies if unknown uiFilters are applied const knownFilters = ['environment', 'serviceName']; - const uiFilterNames = Object.keys(uiFilters); - if ( - uiFilterNames.some((uiFilterName) => !knownFilters.includes(uiFilterName)) - ) { + const hasUnknownFiltersApplied = Object.entries(setup.uiFilters) + .filter(([key, value]) => !!value) + .map(([key]) => key) + .some((uiFilterName) => !knownFilters.includes(uiFilterName)); + + if (hasUnknownFiltersApplied) { return; } @@ -64,15 +68,8 @@ export async function getAnomalySeries({ return; } - const mlJobIds = await getMLJobIds( - setup.ml.anomalyDetectors, - uiFilters.environment - ); + const mlJobIds = await getMLJobIds(setup.ml.anomalyDetectors, environment); - // don't fetch anomalies if there are isn't exaclty 1 ML job match for the given environment - if (mlJobIds.length !== 1) { - return; - } const jobId = mlJobIds[0]; const mlBucketSize = await getMlBucketSize({ setup, jobId, logger }); @@ -80,7 +77,6 @@ export async function getAnomalySeries({ return; } - const { start, end } = setup; const { intervalString, bucketSize } = getBucketSize(start, end); const esResponse = await anomalySeriesFetcher({ diff --git a/x-pack/plugins/apm/server/lib/transactions/charts/get_timeseries_data/fetcher.test.ts b/x-pack/plugins/apm/server/lib/transactions/charts/get_timeseries_data/fetcher.test.ts index fdbd99bf274d6..75dfae3e7375f 100644 --- a/x-pack/plugins/apm/server/lib/transactions/charts/get_timeseries_data/fetcher.test.ts +++ b/x-pack/plugins/apm/server/lib/transactions/charts/get_timeseries_data/fetcher.test.ts @@ -29,7 +29,10 @@ describe('timeseriesFetcher', () => { get: () => 'myIndex', } ) as APMConfig, - uiFiltersES: [ + uiFilters: { + environment: 'test', + }, + esFilter: [ { term: { 'service.environment': 'test' }, }, diff --git a/x-pack/plugins/apm/server/lib/transactions/charts/get_timeseries_data/fetcher.ts b/x-pack/plugins/apm/server/lib/transactions/charts/get_timeseries_data/fetcher.ts index 5a3948f577430..e2edbbec63d47 100644 --- a/x-pack/plugins/apm/server/lib/transactions/charts/get_timeseries_data/fetcher.ts +++ b/x-pack/plugins/apm/server/lib/transactions/charts/get_timeseries_data/fetcher.ts @@ -14,11 +14,7 @@ import { import { PromiseReturnType } from '../../../../../../observability/typings/common'; import { getBucketSize } from '../../../helpers/get_bucket_size'; import { rangeFilter } from '../../../../../common/utils/range_filter'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../helpers/setup_request'; import { getProcessorEventForAggregatedTransactions, getTransactionDurationFieldForAggregatedTransactions, @@ -36,10 +32,10 @@ export function timeseriesFetcher({ serviceName: string; transactionType: string | undefined; transactionName: string | undefined; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; searchAggregatedTransactions: boolean; }) { - const { start, end, uiFiltersES, apmEventClient } = setup; + const { start, end, apmEventClient } = setup; const { intervalString } = getBucketSize(start, end); const filter: ESFilter[] = [ @@ -48,7 +44,7 @@ export function timeseriesFetcher({ ...getDocumentTypeFilterForAggregatedTransactions( searchAggregatedTransactions ), - ...uiFiltersES, + ...setup.esFilter, ]; if (transactionName) { diff --git a/x-pack/plugins/apm/server/lib/transactions/charts/get_timeseries_data/index.ts b/x-pack/plugins/apm/server/lib/transactions/charts/get_timeseries_data/index.ts index 81dca447f16ca..c0421005dd06e 100644 --- a/x-pack/plugins/apm/server/lib/transactions/charts/get_timeseries_data/index.ts +++ b/x-pack/plugins/apm/server/lib/transactions/charts/get_timeseries_data/index.ts @@ -5,11 +5,7 @@ */ import { getBucketSize } from '../../../helpers/get_bucket_size'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../helpers/setup_request'; import { timeseriesFetcher } from './fetcher'; import { timeseriesTransformer } from './transform'; @@ -17,7 +13,7 @@ export async function getApmTimeseriesData(options: { serviceName: string; transactionType: string | undefined; transactionName: string | undefined; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; searchAggregatedTransactions: boolean; }) { const { start, end } = options.setup; diff --git a/x-pack/plugins/apm/server/lib/transactions/charts/index.ts b/x-pack/plugins/apm/server/lib/transactions/charts/index.ts index 43abf0b1a1d33..d8593612c0582 100644 --- a/x-pack/plugins/apm/server/lib/transactions/charts/index.ts +++ b/x-pack/plugins/apm/server/lib/transactions/charts/index.ts @@ -6,15 +6,10 @@ import { Logger } from 'kibana/server'; import { PromiseReturnType } from '../../../../../observability/typings/common'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../helpers/setup_request'; import { getAnomalySeries } from './get_anomaly_data'; import { getApmTimeseriesData } from './get_timeseries_data'; import { ApmTimeSeriesResponse } from './get_timeseries_data/transform'; -import { UIFilters } from '../../../../typings/ui_filters'; function getDates(apmTimeseries: ApmTimeSeriesResponse) { return apmTimeseries.responseTimes.avg.map((p) => p.x); @@ -27,10 +22,9 @@ export async function getTransactionCharts(options: { serviceName: string; transactionType: string | undefined; transactionName: string | undefined; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; searchAggregatedTransactions: boolean; logger: Logger; - uiFilters: UIFilters; }) { const apmTimeseries = await getApmTimeseriesData(options); const anomalyTimeseries = await getAnomalySeries({ diff --git a/x-pack/plugins/apm/server/lib/transactions/distribution/get_buckets/index.ts b/x-pack/plugins/apm/server/lib/transactions/distribution/get_buckets/index.ts index 6e2fe34a5f5ef..34d01627a2869 100644 --- a/x-pack/plugins/apm/server/lib/transactions/distribution/get_buckets/index.ts +++ b/x-pack/plugins/apm/server/lib/transactions/distribution/get_buckets/index.ts @@ -17,11 +17,7 @@ import { TRANSACTION_TYPE, } from '../../../../../common/elasticsearch_fieldnames'; import { rangeFilter } from '../../../../../common/utils/range_filter'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../../helpers/setup_request'; import { getDocumentTypeFilterForAggregatedTransactions, getProcessorEventForAggregatedTransactions, @@ -66,17 +62,17 @@ export async function getBuckets({ traceId: string; distributionMax: number; bucketSize: number; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; searchAggregatedTransactions: boolean; }) { - const { start, end, uiFiltersES, apmEventClient } = setup; + const { start, end, esFilter, apmEventClient } = setup; const commonFilters = [ { term: { [SERVICE_NAME]: serviceName } }, { term: { [TRANSACTION_TYPE]: transactionType } }, { term: { [TRANSACTION_NAME]: transactionName } }, { range: rangeFilter(start, end) }, - ...uiFiltersES, + ...esFilter, ]; async function getSamplesForDistributionBuckets() { diff --git a/x-pack/plugins/apm/server/lib/transactions/distribution/get_distribution_max.ts b/x-pack/plugins/apm/server/lib/transactions/distribution/get_distribution_max.ts index 24ca2a4a07b68..249b1c4fbb20a 100644 --- a/x-pack/plugins/apm/server/lib/transactions/distribution/get_distribution_max.ts +++ b/x-pack/plugins/apm/server/lib/transactions/distribution/get_distribution_max.ts @@ -9,11 +9,7 @@ import { TRANSACTION_NAME, TRANSACTION_TYPE, } from '../../../../common/elasticsearch_fieldnames'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../helpers/setup_request'; import { getProcessorEventForAggregatedTransactions, getTransactionDurationFieldForAggregatedTransactions, @@ -29,10 +25,10 @@ export async function getDistributionMax({ serviceName: string; transactionName: string; transactionType: string; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; searchAggregatedTransactions: boolean; }) { - const { start, end, uiFiltersES, apmEventClient } = setup; + const { start, end, esFilter, apmEventClient } = setup; const params = { apm: { @@ -59,7 +55,7 @@ export async function getDistributionMax({ }, }, }, - ...uiFiltersES, + ...esFilter, ], }, }, diff --git a/x-pack/plugins/apm/server/lib/transactions/distribution/index.ts b/x-pack/plugins/apm/server/lib/transactions/distribution/index.ts index b9ab36fb08d42..deafc37ee42e2 100644 --- a/x-pack/plugins/apm/server/lib/transactions/distribution/index.ts +++ b/x-pack/plugins/apm/server/lib/transactions/distribution/index.ts @@ -5,11 +5,7 @@ */ import { PromiseReturnType } from '../../../../../observability/typings/common'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../helpers/setup_request'; import { getBuckets } from './get_buckets'; import { getDistributionMax } from './get_distribution_max'; import { roundToNearestFiveOrTen } from '../../helpers/round_to_nearest_five_or_ten'; @@ -39,7 +35,7 @@ export async function getTransactionDistribution({ transactionType: string; transactionId: string; traceId: string; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; searchAggregatedTransactions: boolean; }) { const distributionMax = await getDistributionMax({ diff --git a/x-pack/plugins/apm/server/lib/transactions/get_transaction/index.ts b/x-pack/plugins/apm/server/lib/transactions/get_transaction/index.ts index 9aa1a8f4de87f..8958be0819613 100644 --- a/x-pack/plugins/apm/server/lib/transactions/get_transaction/index.ts +++ b/x-pack/plugins/apm/server/lib/transactions/get_transaction/index.ts @@ -9,11 +9,7 @@ import { TRANSACTION_ID, } from '../../../../common/elasticsearch_fieldnames'; import { rangeFilter } from '../../../../common/utils/range_filter'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../helpers/setup_request'; import { ProcessorEvent } from '../../../../common/processor_event'; export async function getTransaction({ @@ -23,7 +19,7 @@ export async function getTransaction({ }: { transactionId: string; traceId: string; - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; }) { const { start, end, apmEventClient } = setup; diff --git a/x-pack/plugins/apm/server/lib/transactions/queries.test.ts b/x-pack/plugins/apm/server/lib/transactions/queries.test.ts index 87b8bc7c4ae90..eff9451c9e1cd 100644 --- a/x-pack/plugins/apm/server/lib/transactions/queries.test.ts +++ b/x-pack/plugins/apm/server/lib/transactions/queries.test.ts @@ -56,7 +56,6 @@ describe('transaction queries', () => { setup, searchAggregatedTransactions: false, logger: loggerMock.create(), - uiFilters: {}, }) ); expect(mock.params).toMatchSnapshot(); @@ -71,7 +70,6 @@ describe('transaction queries', () => { setup, searchAggregatedTransactions: false, logger: loggerMock.create(), - uiFilters: {}, }) ); expect(mock.params).toMatchSnapshot(); @@ -86,7 +84,6 @@ describe('transaction queries', () => { setup, searchAggregatedTransactions: false, logger: loggerMock.create(), - uiFilters: {}, }) ); diff --git a/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/__snapshots__/queries.test.ts.snap index 5f38432719280..e7ca65eb740b6 100644 --- a/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/__snapshots__/queries.test.ts.snap +++ b/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/__snapshots__/queries.test.ts.snap @@ -46,7 +46,7 @@ Object { }, Object { "term": Object { - "my.custom.ui.filter": "foo-bar", + "service.environment": "test", }, }, ], diff --git a/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/get_local_filter_query.ts b/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/get_local_filter_query.ts index 10f6e93c1cfc1..9fbdba679b667 100644 --- a/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/get_local_filter_query.ts +++ b/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/get_local_filter_query.ts @@ -8,7 +8,7 @@ import { omit } from 'lodash'; import { mergeProjection } from '../../../projections/util/merge_projection'; import { Projection } from '../../../projections/typings'; import { UIFilters } from '../../../../typings/ui_filters'; -import { getUiFiltersES } from '../../helpers/convert_ui_filters/get_ui_filters_es'; +import { getEsFilter } from '../../helpers/convert_ui_filters/get_es_filter'; import { localUIFilters } from './config'; import { LocalUIFilterName } from '../../../../common/ui_filter'; @@ -22,7 +22,7 @@ export const getLocalFilterQuery = ({ localUIFilterName: LocalUIFilterName; }) => { const field = localUIFilters[localUIFilterName]; - const filter = getUiFiltersES(omit(uiFilters, field.name)); + const filter = getEsFilter(omit(uiFilters, field.name)); const bucketCountAggregation = projection.body.aggs ? { diff --git a/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/queries.test.ts b/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/queries.test.ts index 22fa20e255f6e..f4e8aafc1bcf5 100644 --- a/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/queries.test.ts +++ b/x-pack/plugins/apm/server/lib/ui_filters/local_ui_filters/queries.test.ts @@ -15,7 +15,7 @@ describe('local ui filter queries', () => { let mock: SearchParamsMock; beforeEach(() => { - jest.mock('../../helpers/convert_ui_filters/get_ui_filters_es', () => { + jest.mock('../../helpers/convert_ui_filters/get_es_filter', () => { return []; }); }); diff --git a/x-pack/plugins/apm/server/projections/errors.ts b/x-pack/plugins/apm/server/projections/errors.ts index 49a0e9f479d26..173dc94a0840c 100644 --- a/x-pack/plugins/apm/server/projections/errors.ts +++ b/x-pack/plugins/apm/server/projections/errors.ts @@ -4,11 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../server/lib/helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../server/lib/helpers/setup_request'; import { SERVICE_NAME, ERROR_GROUP_ID, @@ -20,10 +16,10 @@ export function getErrorGroupsProjection({ setup, serviceName, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; serviceName: string; }) { - const { start, end, uiFiltersES } = setup; + const { start, end, esFilter } = setup; return { apm: { @@ -35,7 +31,7 @@ export function getErrorGroupsProjection({ filter: [ { term: { [SERVICE_NAME]: serviceName } }, { range: rangeFilter(start, end) }, - ...uiFiltersES, + ...esFilter, ], }, }, diff --git a/x-pack/plugins/apm/server/projections/metrics.ts b/x-pack/plugins/apm/server/projections/metrics.ts index eb80a6bc73248..c3b5db5be6af8 100644 --- a/x-pack/plugins/apm/server/projections/metrics.ts +++ b/x-pack/plugins/apm/server/projections/metrics.ts @@ -4,11 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../server/lib/helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../server/lib/helpers/setup_request'; import { SERVICE_NAME, SERVICE_NODE_NAME, @@ -34,17 +30,17 @@ export function getMetricsProjection({ serviceName, serviceNodeName, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; serviceName: string; serviceNodeName?: string; }) { - const { start, end, uiFiltersES } = setup; + const { start, end, esFilter } = setup; const filter = [ { term: { [SERVICE_NAME]: serviceName } }, { range: rangeFilter(start, end) }, ...getServiceNodeNameFilters(serviceNodeName), - ...uiFiltersES, + ...esFilter, ]; return { diff --git a/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts b/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts index c27314923f6bd..96ee26c6e65f5 100644 --- a/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts +++ b/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts @@ -4,11 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../server/lib/helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../server/lib/helpers/setup_request'; import { AGENT_NAME, TRANSACTION_TYPE, @@ -22,10 +18,10 @@ export function getRumPageLoadTransactionsProjection({ setup, urlQuery, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; urlQuery?: string; }) { - const { start, end, uiFiltersES } = setup; + const { start, end, esFilter } = setup; const bool = { filter: [ @@ -49,7 +45,7 @@ export function getRumPageLoadTransactionsProjection({ }, ] : []), - ...uiFiltersES, + ...esFilter, ], }; @@ -68,9 +64,9 @@ export function getRumPageLoadTransactionsProjection({ export function getRumErrorsProjection({ setup, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; }) { - const { start, end, uiFiltersES } = setup; + const { start, end, esFilter: esFilter } = setup; const bool = { filter: [ @@ -82,7 +78,7 @@ export function getRumErrorsProjection({ [SERVICE_LANGUAGE_NAME]: 'javascript', }, }, - ...uiFiltersES, + ...esFilter, ], }; diff --git a/x-pack/plugins/apm/server/projections/service_nodes.ts b/x-pack/plugins/apm/server/projections/service_nodes.ts index 87fe815a12d0d..ed8d4c7409eda 100644 --- a/x-pack/plugins/apm/server/projections/service_nodes.ts +++ b/x-pack/plugins/apm/server/projections/service_nodes.ts @@ -4,11 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../server/lib/helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../server/lib/helpers/setup_request'; import { SERVICE_NODE_NAME } from '../../common/elasticsearch_fieldnames'; import { mergeProjection } from './util/merge_projection'; import { getMetricsProjection } from './metrics'; @@ -18,7 +14,7 @@ export function getServiceNodesProjection({ serviceName, serviceNodeName, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; serviceName: string; serviceNodeName?: string; }) { diff --git a/x-pack/plugins/apm/server/projections/services.ts b/x-pack/plugins/apm/server/projections/services.ts index ba61f72519a23..d912a95546515 100644 --- a/x-pack/plugins/apm/server/projections/services.ts +++ b/x-pack/plugins/apm/server/projections/services.ts @@ -4,11 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - Setup, - SetupUIFilters, - SetupTimeRange, -} from '../../server/lib/helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../server/lib/helpers/setup_request'; import { SERVICE_NAME } from '../../common/elasticsearch_fieldnames'; import { rangeFilter } from '../../common/utils/range_filter'; import { ProcessorEvent } from '../../common/processor_event'; @@ -18,10 +14,10 @@ export function getServicesProjection({ setup, searchAggregatedTransactions, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; searchAggregatedTransactions: boolean; }) { - const { start, end, uiFiltersES } = setup; + const { start, end, esFilter } = setup; return { apm: { @@ -37,7 +33,7 @@ export function getServicesProjection({ size: 0, query: { bool: { - filter: [{ range: rangeFilter(start, end) }, ...uiFiltersES], + filter: [{ range: rangeFilter(start, end) }, ...esFilter], }, }, aggs: { diff --git a/x-pack/plugins/apm/server/projections/transaction_groups.ts b/x-pack/plugins/apm/server/projections/transaction_groups.ts index 0cc3a7a35d214..2ce720eb12167 100644 --- a/x-pack/plugins/apm/server/projections/transaction_groups.ts +++ b/x-pack/plugins/apm/server/projections/transaction_groups.ts @@ -4,11 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ import { omit } from 'lodash'; -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../server/lib/helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../server/lib/helpers/setup_request'; import { TRANSACTION_NAME, PARENT_ID, @@ -22,7 +18,7 @@ export function getTransactionGroupsProjection({ setup, options, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; options: Options; }) { const transactionsProjection = getTransactionsProjection({ diff --git a/x-pack/plugins/apm/server/projections/transactions.ts b/x-pack/plugins/apm/server/projections/transactions.ts index 8e9bb3bf321f6..548e77b5d2cd9 100644 --- a/x-pack/plugins/apm/server/projections/transactions.ts +++ b/x-pack/plugins/apm/server/projections/transactions.ts @@ -4,11 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - Setup, - SetupTimeRange, - SetupUIFilters, -} from '../../server/lib/helpers/setup_request'; +import { Setup, SetupTimeRange } from '../../server/lib/helpers/setup_request'; import { SERVICE_NAME, TRANSACTION_TYPE, @@ -27,13 +23,13 @@ export function getTransactionsProjection({ transactionType, searchAggregatedTransactions, }: { - setup: Setup & SetupTimeRange & SetupUIFilters; + setup: Setup & SetupTimeRange; serviceName?: string; transactionName?: string; transactionType?: string; searchAggregatedTransactions: boolean; }) { - const { start, end, uiFiltersES } = setup; + const { start, end, esFilter } = setup; const transactionNameFilter = transactionName ? [{ term: { [TRANSACTION_NAME]: transactionName } }] @@ -51,7 +47,7 @@ export function getTransactionsProjection({ ...transactionNameFilter, ...transactionTypeFilter, ...serviceNameFilter, - ...uiFiltersES, + ...esFilter, ...getDocumentTypeFilterForAggregatedTransactions( searchAggregatedTransactions ), diff --git a/x-pack/plugins/apm/server/routes/service_map.ts b/x-pack/plugins/apm/server/routes/service_map.ts index 1996d4d4a262d..6e86ececd1bfe 100644 --- a/x-pack/plugins/apm/server/routes/service_map.ts +++ b/x-pack/plugins/apm/server/routes/service_map.ts @@ -17,7 +17,6 @@ import { createRoute } from './create_route'; import { rangeRt, uiFiltersRt } from './default_api_types'; import { notifyFeatureUsage } from '../feature'; import { getSearchAggregatedTransactions } from '../lib/helpers/aggregated_transactions'; -import { getParsedUiFilters } from '../lib/helpers/convert_ui_filters/get_parsed_ui_filters'; export const serviceMapRoute = createRoute(() => ({ path: '/api/apm/service-map', @@ -77,24 +76,20 @@ export const serviceMapServiceNodeRoute = createRoute(() => ({ if (!isActivePlatinumLicense(context.licensing.license)) { throw Boom.forbidden(invalidLicenseMessage); } - const logger = context.logger; const setup = await setupRequest(context, request); const { - query: { uiFilters: uiFiltersJson }, path: { serviceName }, } = context.params; const searchAggregatedTransactions = await getSearchAggregatedTransactions( setup ); - const uiFilters = getParsedUiFilters({ uiFilters: uiFiltersJson, logger }); return getServiceMapServiceNodeInfo({ setup, serviceName, searchAggregatedTransactions, - uiFilters, }); }, })); diff --git a/x-pack/plugins/apm/server/routes/services.ts b/x-pack/plugins/apm/server/routes/services.ts index 4bb10f31ba6a1..538ba3926c792 100644 --- a/x-pack/plugins/apm/server/routes/services.ts +++ b/x-pack/plugins/apm/server/routes/services.ts @@ -17,7 +17,6 @@ import { uiFiltersRt, rangeRt } from './default_api_types'; import { getServiceAnnotations } from '../lib/services/annotations'; import { dateAsStringRt } from '../../common/runtime_types/date_as_string_rt'; import { getSearchAggregatedTransactions } from '../lib/helpers/aggregated_transactions'; -import { getParsedUiFilters } from '../lib/helpers/convert_ui_filters/get_parsed_ui_filters'; export const servicesRoute = createRoute(() => ({ path: '/api/apm/services', @@ -25,22 +24,13 @@ export const servicesRoute = createRoute(() => ({ query: t.intersection([uiFiltersRt, rangeRt]), }, handler: async ({ context, request }) => { - const { environment } = getParsedUiFilters({ - uiFilters: context.params.query.uiFilters, - logger: context.logger, - }); - const setup = await setupRequest(context, request); const searchAggregatedTransactions = await getSearchAggregatedTransactions( setup ); - const services = await getServices({ - setup, - searchAggregatedTransactions, - mlAnomaliesEnvironment: environment, - }); + const services = await getServices({ setup, searchAggregatedTransactions }); return services; }, diff --git a/x-pack/plugins/apm/server/routes/transaction_groups.ts b/x-pack/plugins/apm/server/routes/transaction_groups.ts index dd1335fb2c2a1..18fc73b468cd4 100644 --- a/x-pack/plugins/apm/server/routes/transaction_groups.ts +++ b/x-pack/plugins/apm/server/routes/transaction_groups.ts @@ -5,6 +5,7 @@ */ import * as t from 'io-ts'; +import Boom from 'boom'; import { setupRequest } from '../lib/helpers/setup_request'; import { getTransactionCharts } from '../lib/transactions/charts'; import { getTransactionDistribution } from '../lib/transactions/distribution'; @@ -15,7 +16,6 @@ import { uiFiltersRt, rangeRt } from './default_api_types'; import { getTransactionSampleForGroup } from '../lib/transaction_groups/get_transaction_sample_for_group'; import { getSearchAggregatedTransactions } from '../lib/helpers/aggregated_transactions'; import { getErrorRate } from '../lib/transaction_groups/get_error_rate'; -import { getParsedUiFilters } from '../lib/helpers/convert_ui_filters/get_parsed_ui_filters'; export const transactionGroupsRoute = createRoute(() => ({ path: '/api/apm/services/{serviceName}/transaction_groups', @@ -71,27 +71,28 @@ export const transactionGroupsChartsRoute = createRoute(() => ({ const setup = await setupRequest(context, request); const logger = context.logger; const { serviceName } = context.params.path; - const { - transactionType, - transactionName, - uiFilters: uiFiltersJson, - } = context.params.query; + const { transactionType, transactionName } = context.params.query; - const uiFilters = getParsedUiFilters({ uiFilters: uiFiltersJson, logger }); + if (!setup.uiFilters.environment) { + throw Boom.badRequest( + `environment is a required property of the ?uiFilters JSON for transaction_groups/charts.` + ); + } const searchAggregatedTransactions = await getSearchAggregatedTransactions( setup ); - return getTransactionCharts({ + const options = { serviceName, transactionType, transactionName, setup, searchAggregatedTransactions, logger, - uiFilters, - }); + }; + + return getTransactionCharts(options); }, })); diff --git a/x-pack/plugins/apm/server/routes/ui_filters.ts b/x-pack/plugins/apm/server/routes/ui_filters.ts index 936d460102dce..26fe0118c02ed 100644 --- a/x-pack/plugins/apm/server/routes/ui_filters.ts +++ b/x-pack/plugins/apm/server/routes/ui_filters.ts @@ -9,13 +9,12 @@ import { omit } from 'lodash'; import { setupRequest, Setup, - SetupUIFilters, SetupTimeRange, } from '../lib/helpers/setup_request'; import { getEnvironments } from '../lib/ui_filters/get_environments'; import { Projection } from '../projections/typings'; import { localUIFilterNames } from '../lib/ui_filters/local_ui_filters/config'; -import { getUiFiltersES } from '../lib/helpers/convert_ui_filters/get_ui_filters_es'; +import { getEsFilter } from '../lib/helpers/convert_ui_filters/get_es_filter'; import { getLocalUIFilters } from '../lib/ui_filters/local_ui_filters'; import { getServicesProjection } from '../projections/services'; import { getTransactionGroupsProjection } from '../projections/transaction_groups'; @@ -97,23 +96,23 @@ function createLocalFiltersRoute< }, handler: async ({ context, request }) => { const setup = await setupRequest(context, request); + const { uiFilters } = setup; const { query } = context.params; - const { uiFilters, filterNames } = query; - const parsedUiFilters = JSON.parse(uiFilters); + const { filterNames } = query; const projection = await getProjection({ query, context, setup: { ...setup, - uiFiltersES: getUiFiltersES(omit(parsedUiFilters, filterNames)), + esFilter: getEsFilter(omit(uiFilters, filterNames)), }, }); return getLocalUIFilters({ projection, setup, - uiFilters: parsedUiFilters, + uiFilters, localFilterNames: filterNames, }); }, @@ -271,6 +270,6 @@ type GetProjection< context, }: { query: t.TypeOf<TQueryRT>; - setup: Setup & SetupUIFilters & SetupTimeRange; + setup: Setup & SetupTimeRange; context: APMRequestHandlerContext; }) => Promise<TProjection> | TProjection; diff --git a/x-pack/plugins/apm/server/utils/test_helpers.tsx b/x-pack/plugins/apm/server/utils/test_helpers.tsx index 98c1436b2b9b8..18b990b35b5a5 100644 --- a/x-pack/plugins/apm/server/utils/test_helpers.tsx +++ b/x-pack/plugins/apm/server/utils/test_helpers.tsx @@ -9,6 +9,7 @@ import { ESSearchRequest, } from '../../typings/elasticsearch'; import { PromiseReturnType } from '../../typings/common'; +import { UIFilters } from '../../typings/ui_filters'; import { APMConfig } from '..'; interface Options { @@ -23,7 +24,8 @@ interface MockSetup { apmEventClient: any; internalClient: any; config: APMConfig; - uiFiltersES: ESFilter[]; + uiFilters: UIFilters; + esFilter: ESFilter[]; indices: { /* eslint-disable @typescript-eslint/naming-convention */ 'apm_oss.sourcemapIndices': string; @@ -78,7 +80,8 @@ export async function inspectSearchParams( }, } ) as APMConfig, - uiFiltersES: [{ term: { 'my.custom.ui.filter': 'foo-bar' } }], + uiFilters: { environment: 'test' }, + esFilter: [{ term: { 'service.environment': 'test' } }], indices: { /* eslint-disable @typescript-eslint/naming-convention */ 'apm_oss.sourcemapIndices': 'myIndex', diff --git a/x-pack/test/apm_api_integration/basic/tests/feature_controls.ts b/x-pack/test/apm_api_integration/basic/tests/feature_controls.ts index e0e13b7b7fb98..a2223e5560288 100644 --- a/x-pack/test/apm_api_integration/basic/tests/feature_controls.ts +++ b/x-pack/test/apm_api_integration/basic/tests/feature_controls.ts @@ -107,21 +107,21 @@ export default function featureControlsTests({ getService }: FtrProviderContext) }, { req: { - url: `/api/apm/services/foo/transaction_groups/charts?start=${start}&end=${end}&transactionType=bar&uiFilters=%7B%7D`, + url: `/api/apm/services/foo/transaction_groups/charts?start=${start}&end=${end}&transactionType=bar&uiFilters=%7B%22environment%22%3A%22testing%22%7D`, }, expectForbidden: expect404, expectResponse: expect200, }, { req: { - url: `/api/apm/services/foo/transaction_groups/charts?start=${start}&end=${end}&uiFilters=%7B%7D`, + url: `/api/apm/services/foo/transaction_groups/charts?start=${start}&end=${end}&uiFilters=%7B%22environment%22%3A%22testing%22%7D`, }, expectForbidden: expect404, expectResponse: expect200, }, { req: { - url: `/api/apm/services/foo/transaction_groups/charts?start=${start}&end=${end}&transactionType=bar&transactionName=baz&uiFilters=%7B%7D`, + url: `/api/apm/services/foo/transaction_groups/charts?start=${start}&end=${end}&transactionType=bar&transactionName=baz&uiFilters=%7B%22environment%22%3A%22testing%22%7D`, }, expectForbidden: expect404, expectResponse: expect200, diff --git a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/transaction_charts.ts b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/transaction_charts.ts index c9581079b9952..d7d6d613281ef 100644 --- a/x-pack/test/apm_api_integration/basic/tests/transaction_groups/transaction_charts.ts +++ b/x-pack/test/apm_api_integration/basic/tests/transaction_groups/transaction_charts.ts @@ -19,7 +19,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { // url parameters const start = encodeURIComponent(metadata.start); const end = encodeURIComponent(metadata.end); - const uiFilters = encodeURIComponent(JSON.stringify({})); + const uiFilters = encodeURIComponent(JSON.stringify({ environment: 'testing' })); describe('Transaction charts', () => { describe('when data is not loaded ', () => { diff --git a/x-pack/test/apm_api_integration/trial/tests/index.ts b/x-pack/test/apm_api_integration/trial/tests/index.ts index a6a031def34ea..e609279366390 100644 --- a/x-pack/test/apm_api_integration/trial/tests/index.ts +++ b/x-pack/test/apm_api_integration/trial/tests/index.ts @@ -16,6 +16,7 @@ export default function observabilityApiIntegrationTests({ loadTestFile }: FtrPr describe('Services', function () { loadTestFile(require.resolve('./services/annotations')); loadTestFile(require.resolve('./services/top_services.ts')); + loadTestFile(require.resolve('./services/transaction_groups_charts')); }); describe('Settings', function () { diff --git a/x-pack/test/apm_api_integration/trial/tests/services/__snapshots__/transaction_groups_charts.snap b/x-pack/test/apm_api_integration/trial/tests/services/__snapshots__/transaction_groups_charts.snap new file mode 100644 index 0000000000000..8169e73202fbc --- /dev/null +++ b/x-pack/test/apm_api_integration/trial/tests/services/__snapshots__/transaction_groups_charts.snap @@ -0,0 +1,43 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`APM Transaction Overview when data is loaded and fetching transaction groups charts with uiFilters when not defined environments selected should return the correct anomaly boundaries 1`] = `Array []`; + +exports[`APM Transaction Overview when data is loaded and fetching transaction groups charts with uiFilters with environment selected and empty kuery filter should return a non-empty anomaly series 1`] = ` +Array [ + Object { + "x": 1601389800000, + "y": 1206111.33487531, + "y0": 10555.1290143587, + }, + Object { + "x": 1601390700000, + "y": 1223987.49321778, + "y0": 10177.4677901726, + }, + Object { + "x": 1601391600000, + "y": 1223987.49321778, + "y0": 10177.4677901726, + }, +] +`; + +exports[`APM Transaction Overview when data is loaded and fetching transaction groups charts with uiFilters with environment selected in uiFilters should return a non-empty anomaly series 1`] = ` +Array [ + Object { + "x": 1601389800000, + "y": 1206111.33487531, + "y0": 10555.1290143587, + }, + Object { + "x": 1601390700000, + "y": 1223987.49321778, + "y0": 10177.4677901726, + }, + Object { + "x": 1601391600000, + "y": 1223987.49321778, + "y0": 10177.4677901726, + }, +] +`; diff --git a/x-pack/test/apm_api_integration/trial/tests/services/transaction_groups_charts.ts b/x-pack/test/apm_api_integration/trial/tests/services/transaction_groups_charts.ts new file mode 100644 index 0000000000000..c35dfcc3817a4 --- /dev/null +++ b/x-pack/test/apm_api_integration/trial/tests/services/transaction_groups_charts.ts @@ -0,0 +1,161 @@ +/* + * 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 { expectSnapshot } from '../../../common/match_snapshot'; +import { PromiseReturnType } from '../../../../../plugins/apm/typings/common'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; +import archives_metadata from '../../../common/archives_metadata'; + +export default function ApiTest({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + const esArchiver = getService('esArchiver'); + + const archiveName = 'apm_8.0.0'; + + const range = archives_metadata[archiveName]; + + // url parameters + const start = encodeURIComponent(range.start); + const end = encodeURIComponent(range.end); + const transactionType = 'request'; + + describe('APM Transaction Overview', () => { + describe('when data is loaded', () => { + before(() => esArchiver.load(archiveName)); + after(() => esArchiver.unload(archiveName)); + + describe('and fetching transaction groups charts with uiFilters', () => { + const serviceName = 'opbeans-java'; + let response: PromiseReturnType<typeof supertest.get>; + + describe('without environment', () => { + const uiFilters = encodeURIComponent(JSON.stringify({})); + before(async () => { + response = await supertest.get( + `/api/apm/services/${serviceName}/transaction_groups/charts?start=${start}&end=${end}&transactionType=${transactionType}&uiFilters=${uiFilters}` + ); + }); + it('should return an error response', () => { + expect(response.status).to.eql(400); + }); + }); + + describe('without uiFilters', () => { + before(async () => { + response = await supertest.get( + `/api/apm/services/${serviceName}/transaction_groups/charts?start=${start}&end=${end}&transactionType=${transactionType}` + ); + }); + it('should return an error response', () => { + expect(response.status).to.eql(400); + }); + }); + + describe('with environment selected in uiFilters', () => { + const uiFilters = encodeURIComponent(JSON.stringify({ environment: 'production' })); + before(async () => { + response = await supertest.get( + `/api/apm/services/${serviceName}/transaction_groups/charts?start=${start}&end=${end}&transactionType=${transactionType}&uiFilters=${uiFilters}` + ); + }); + + it('should have a successful response', () => { + expect(response.status).to.eql(200); + }); + + it('should return the ML job id for anomalies of the selected environment', () => { + expect(response.body).to.have.property('anomalyTimeseries'); + expect(response.body.anomalyTimeseries).to.have.property('jobId'); + expectSnapshot(response.body.anomalyTimeseries.jobId).toMatchInline( + `"apm-production-229a-high_mean_transaction_duration"` + ); + }); + + it('should return a non-empty anomaly series', () => { + expect(response.body).to.have.property('anomalyTimeseries'); + expect(response.body.anomalyTimeseries.anomalyBoundaries?.length).to.be.greaterThan(0); + expectSnapshot(response.body.anomalyTimeseries.anomalyBoundaries).toMatch(); + }); + }); + + describe('when not defined environments selected', () => { + const uiFilters = encodeURIComponent( + JSON.stringify({ environment: 'ENVIRONMENT_NOT_DEFINED' }) + ); + before(async () => { + response = await supertest.get( + `/api/apm/services/${serviceName}/transaction_groups/charts?start=${start}&end=${end}&transactionType=${transactionType}&uiFilters=${uiFilters}` + ); + }); + + it('should have a successful response', () => { + expect(response.status).to.eql(200); + }); + + it('should return the ML job id for anomalies with no defined environment', () => { + expect(response.body).to.have.property('anomalyTimeseries'); + expect(response.body.anomalyTimeseries).to.have.property('jobId'); + expectSnapshot(response.body.anomalyTimeseries.jobId).toMatchInline( + `"apm-environment_not_defined-7ed6-high_mean_transaction_duration"` + ); + }); + + it('should return the correct anomaly boundaries', () => { + expect(response.body).to.have.property('anomalyTimeseries'); + expectSnapshot(response.body.anomalyTimeseries.anomalyBoundaries).toMatch(); + }); + }); + + describe('with all environments selected', () => { + const uiFilters = encodeURIComponent(JSON.stringify({ environment: 'ENVIRONMENT_ALL' })); + before(async () => { + response = await supertest.get( + `/api/apm/services/${serviceName}/transaction_groups/charts?start=${start}&end=${end}&transactionType=${transactionType}&uiFilters=${uiFilters}` + ); + }); + + it('should have a successful response', () => { + expect(response.status).to.eql(200); + }); + + it('should not return anomaly timeseries data', () => { + expect(response.body).to.not.have.property('anomalyTimeseries'); + }); + }); + + describe('with environment selected and empty kuery filter', () => { + const uiFilters = encodeURIComponent( + JSON.stringify({ kuery: '', environment: 'production' }) + ); + before(async () => { + response = await supertest.get( + `/api/apm/services/${serviceName}/transaction_groups/charts?start=${start}&end=${end}&transactionType=${transactionType}&uiFilters=${uiFilters}` + ); + }); + + it('should have a successful response', () => { + expect(response.status).to.eql(200); + }); + + it('should return the ML job id for anomalies of the selected environment', () => { + expect(response.body).to.have.property('anomalyTimeseries'); + expect(response.body.anomalyTimeseries).to.have.property('jobId'); + expectSnapshot(response.body.anomalyTimeseries.jobId).toMatchInline( + `"apm-production-229a-high_mean_transaction_duration"` + ); + }); + + it('should return a non-empty anomaly series', () => { + expect(response.body).to.have.property('anomalyTimeseries'); + expect(response.body.anomalyTimeseries.anomalyBoundaries?.length).to.be.greaterThan(0); + expectSnapshot(response.body.anomalyTimeseries.anomalyBoundaries).toMatch(); + }); + }); + }); + }); + }); +} From bd9a9a7a2bf65c465dd805815a2b1a6eea03bc9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patryk=20Kopyci=C5=84ski?= <patryk.kopycinski@elastic.co> Date: Fri, 2 Oct 2020 10:45:53 +0200 Subject: [PATCH 142/142] [Security Solution] Refactor react-beautiful-dnd render props (#78128) --- .../timeline/events/all/index.ts | 7 +- .../common/search_strategy/timeline/index.ts | 18 +- .../add_filter_to_global_search_bar/index.tsx | 56 +- .../drag_drop_context_wrapper.tsx | 13 +- .../drag_and_drop/draggable_wrapper.tsx | 131 +- .../drag_and_drop/droppable_wrapper.tsx | 33 +- .../common/components/draggables/index.tsx | 2 +- .../events_viewer/events_viewer.tsx | 28 +- .../common/components/events_viewer/mock.ts | 2 +- .../common/components/ml/entity_draggable.tsx | 67 +- .../components/ml/score/draggable_score.tsx | 76 +- .../recent_timelines/recent_timelines.tsx | 160 +- .../components/flyout/button/index.tsx | 34 +- .../components/formatted_ip/index.tsx | 157 +- .../__snapshots__/timeline.test.tsx.snap | 34 +- .../timeline/auto_save_warning/index.tsx | 121 +- .../body/column_headers/actions/index.tsx | 29 +- .../body/column_headers/column_header.tsx | 43 +- .../timeline/body/column_headers/index.tsx | 29 +- .../body/events/event_column_view.tsx | 18 +- .../timeline/body/events/stateful_event.tsx | 228 +- .../renderers/suricata/suricata_signature.tsx | 82 +- .../body/renderers/zeek/zeek_signature.tsx | 76 +- .../data_providers.test.tsx.snap | 5 - .../__snapshots__/providers.test.tsx.snap | 2243 +++++++++++++---- .../data_providers/data_providers.test.tsx | 27 +- .../timeline/data_providers/index.tsx | 80 +- .../data_providers/provider_badge.tsx | 4 +- .../data_providers/provider_item_badge.tsx | 47 +- .../data_providers/providers.test.tsx | 264 +- .../timeline/data_providers/providers.tsx | 460 ++-- .../timelines/components/timeline/events.ts | 32 +- .../footer/__snapshots__/index.test.tsx.snap | 2 +- .../components/timeline/footer/index.test.tsx | 39 +- .../components/timeline/footer/index.tsx | 90 +- .../header/__snapshots__/index.test.tsx.snap | 5 - .../components/timeline/header/index.tsx | 27 - .../timelines/components/timeline/index.tsx | 78 +- .../timeline/properties/helpers.tsx | 42 +- .../components/timeline/timeline.test.tsx | 210 -- .../components/timeline/timeline.tsx | 26 +- .../public/timelines/containers/index.tsx | 20 +- .../timeline/epic_local_storage.test.tsx | 5 - .../timelines/store/timeline/helpers.ts | 15 +- .../timeline/factory/events/all/index.ts | 9 +- 45 files changed, 3039 insertions(+), 2135 deletions(-) diff --git a/x-pack/plugins/security_solution/common/search_strategy/timeline/events/all/index.ts b/x-pack/plugins/security_solution/common/search_strategy/timeline/events/all/index.ts index 0503a9c327467..f673fca290a29 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/timeline/events/all/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/timeline/events/all/index.ts @@ -6,7 +6,7 @@ import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Ecs } from '../../../../ecs'; -import { CursorType, Inspect, Maybe } from '../../../common'; +import { CursorType, Inspect, Maybe, PageInfoPaginated } from '../../../common'; import { TimelineRequestOptionsPaginated } from '../..'; export interface TimelineEdges { @@ -29,10 +29,7 @@ export interface TimelineNonEcsData { export interface TimelineEventsAllStrategyResponse extends IEsSearchResponse { edges: TimelineEdges[]; totalCount: number; - pageInfo: { - activePage: number; - totalPages: number; - }; + pageInfo: PageInfoPaginated; inspect?: Maybe<Inspect>; } diff --git a/x-pack/plugins/security_solution/common/search_strategy/timeline/index.ts b/x-pack/plugins/security_solution/common/search_strategy/timeline/index.ts index 773ee60855886..6b96783adc25a 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/timeline/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/timeline/index.ts @@ -14,7 +14,13 @@ import { TimelineEventsLastEventTimeRequestOptions, TimelineEventsLastEventTimeStrategyResponse, } from './events'; -import { DocValueFields, TimerangeInput, SortField } from '../common'; +import { + DocValueFields, + PaginationInput, + PaginationInputPaginated, + TimerangeInput, + SortField, +} from '../common'; export * from './events'; @@ -29,19 +35,13 @@ export interface TimelineRequestBasicOptions extends IEsSearchRequest { } export interface TimelineRequestOptions<Field = string> extends TimelineRequestBasicOptions { - pagination: { - activePage: number; - querySize: number; - }; + pagination: PaginationInput; sort: SortField<Field>; } export interface TimelineRequestOptionsPaginated<Field = string> extends TimelineRequestBasicOptions { - pagination: { - activePage: number; - querySize: number; - }; + pagination: PaginationInputPaginated; sort: SortField<Field>; } diff --git a/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx b/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx index 8a294ec1b71fd..9f273b4f293ba 100644 --- a/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx @@ -5,7 +5,7 @@ */ import { EuiButtonIcon, EuiToolTip } from '@elastic/eui'; -import React, { useCallback } from 'react'; +import React, { useCallback, useMemo } from 'react'; import { Filter } from '../../../../../../../src/plugins/data/public'; import { WithHoverActions } from '../with_hover_actions'; @@ -47,34 +47,36 @@ export const AddFilterToGlobalSearchBar = React.memo<OwnProps>( } }, [filterManager, filter, onFilterAdded]); - return ( - <WithHoverActions - hoverContent={ - <div data-test-subj="hover-actions-container"> - <EuiToolTip content={i18n.FILTER_FOR_VALUE}> - <EuiButtonIcon - aria-label={i18n.FILTER_FOR_VALUE} - color="text" - data-test-subj="add-to-filter" - iconType="magnifyWithPlus" - onClick={filterForValue} - /> - </EuiToolTip> + const HoverContent = useMemo( + () => ( + <div data-test-subj="hover-actions-container"> + <EuiToolTip content={i18n.FILTER_FOR_VALUE}> + <EuiButtonIcon + aria-label={i18n.FILTER_FOR_VALUE} + color="text" + data-test-subj="add-to-filter" + iconType="magnifyWithPlus" + onClick={filterForValue} + /> + </EuiToolTip> - <EuiToolTip content={i18n.FILTER_OUT_VALUE}> - <EuiButtonIcon - aria-label={i18n.FILTER_OUT_VALUE} - color="text" - data-test-subj="filter-out-value" - iconType="magnifyWithMinus" - onClick={filterOutValue} - /> - </EuiToolTip> - </div> - } - render={() => children} - /> + <EuiToolTip content={i18n.FILTER_OUT_VALUE}> + <EuiButtonIcon + aria-label={i18n.FILTER_OUT_VALUE} + color="text" + data-test-subj="filter-out-value" + iconType="magnifyWithMinus" + onClick={filterOutValue} + /> + </EuiToolTip> + </div> + ), + [filterForValue, filterOutValue] ); + + const render = useCallback(() => children, [children]); + + return <WithHoverActions hoverContent={HoverContent} render={render} />; } ); diff --git a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/drag_drop_context_wrapper.tsx b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/drag_drop_context_wrapper.tsx index 74efe2d34fcca..4efb662a4aab6 100644 --- a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/drag_drop_context_wrapper.tsx +++ b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/drag_drop_context_wrapper.tsx @@ -9,6 +9,7 @@ import React, { useCallback } from 'react'; import { DropResult, DragDropContext } from 'react-beautiful-dnd'; import { connect, ConnectedProps } from 'react-redux'; import { Dispatch } from 'redux'; +import deepEqual from 'fast-deep-equal'; import { BeforeCapture } from './drag_drop_context'; import { BrowserFields } from '../../containers/source'; @@ -134,13 +135,11 @@ export const DragDropContextWrapperComponent = React.memo<Props & PropsFromRedux </DragDropContext> ); }, - (prevProps, nextProps) => { - return ( - prevProps.children === nextProps.children && - prevProps.dataProviders === nextProps.dataProviders && - prevProps.activeTimelineDataProviders === nextProps.activeTimelineDataProviders - ); // prevent re-renders when data providers are added or removed, but all other props are the same - } + // prevent re-renders when data providers are added or removed, but all other props are the same + (prevProps, nextProps) => + prevProps.children === nextProps.children && + deepEqual(prevProps.dataProviders, nextProps.dataProviders) && + prevProps.activeTimelineDataProviders === nextProps.activeTimelineDataProviders ); DragDropContextWrapperComponent.displayName = 'DragDropContextWrapperComponent'; diff --git a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.tsx b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.tsx index 64f6699d21dac..bd22811612a67 100644 --- a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.tsx +++ b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.tsx @@ -196,76 +196,93 @@ const DraggableWrapperComponent: React.FC<Props> = ({ ] ); - const renderContent = useCallback( + const RenderClone = useCallback( + (provided, snapshot) => ( + <ConditionalPortal registerProvider={registerProvider}> + <div + {...provided.draggableProps} + {...provided.dragHandleProps} + style={getStyle(provided.draggableProps.style, snapshot)} + ref={provided.innerRef} + data-test-subj="providerContainer" + > + <ProviderContentWrapper + data-test-subj={`draggable-content-${dataProvider.queryMatch.field}`} + > + {render(dataProvider, provided, snapshot)} + </ProviderContentWrapper> + </div> + </ConditionalPortal> + ), + [dataProvider, registerProvider, render] + ); + + const DraggableContent = useCallback( + (provided, snapshot) => ( + <ProviderContainer + {...provided.draggableProps} + {...provided.dragHandleProps} + ref={(e: HTMLDivElement) => { + provided.innerRef(e); + draggableRef.current = e; + }} + data-test-subj="providerContainer" + isDragging={snapshot.isDragging} + registerProvider={registerProvider} + > + {truncate && !snapshot.isDragging ? ( + <TruncatableText data-test-subj="draggable-truncatable-content"> + {render(dataProvider, provided, snapshot)} + </TruncatableText> + ) : ( + <ProviderContentWrapper + data-test-subj={`draggable-content-${dataProvider.queryMatch.field}`} + > + {render(dataProvider, provided, snapshot)} + </ProviderContentWrapper> + )} + </ProviderContainer> + ), + [dataProvider, registerProvider, render, truncate] + ); + + const DroppableContent = useCallback( + (droppableProvided) => ( + <div ref={droppableProvided.innerRef} {...droppableProvided.droppableProps}> + <Draggable + draggableId={getDraggableId(dataProvider.id)} + index={0} + key={getDraggableId(dataProvider.id)} + isDragDisabled={isDisabled} + > + {DraggableContent} + </Draggable> + {droppableProvided.placeholder} + </div> + ), + [DraggableContent, dataProvider.id, isDisabled] + ); + + const content = useMemo( () => ( <Wrapper data-test-subj="draggableWrapperDiv" disabled={isDisabled}> <DragDropErrorBoundary> <Droppable isDropDisabled={true} droppableId={getDroppableId(dataProvider.id)} - renderClone={(provided, snapshot) => ( - <ConditionalPortal registerProvider={registerProvider}> - <div - {...provided.draggableProps} - {...provided.dragHandleProps} - style={getStyle(provided.draggableProps.style, snapshot)} - ref={provided.innerRef} - data-test-subj="providerContainer" - > - <ProviderContentWrapper - data-test-subj={`draggable-content-${dataProvider.queryMatch.field}`} - > - {render(dataProvider, provided, snapshot)} - </ProviderContentWrapper> - </div> - </ConditionalPortal> - )} + renderClone={RenderClone} > - {(droppableProvided) => ( - <div ref={droppableProvided.innerRef} {...droppableProvided.droppableProps}> - <Draggable - draggableId={getDraggableId(dataProvider.id)} - index={0} - key={getDraggableId(dataProvider.id)} - isDragDisabled={isDisabled} - > - {(provided, snapshot) => ( - <ProviderContainer - {...provided.draggableProps} - {...provided.dragHandleProps} - ref={(e: HTMLDivElement) => { - provided.innerRef(e); - draggableRef.current = e; - }} - data-test-subj="providerContainer" - isDragging={snapshot.isDragging} - registerProvider={registerProvider} - > - {truncate && !snapshot.isDragging ? ( - <TruncatableText data-test-subj="draggable-truncatable-content"> - {render(dataProvider, provided, snapshot)} - </TruncatableText> - ) : ( - <ProviderContentWrapper - data-test-subj={`draggable-content-${dataProvider.queryMatch.field}`} - > - {render(dataProvider, provided, snapshot)} - </ProviderContentWrapper> - )} - </ProviderContainer> - )} - </Draggable> - {droppableProvided.placeholder} - </div> - )} + {DroppableContent} </Droppable> </DragDropErrorBoundary> </Wrapper> ), - [dataProvider, registerProvider, render, isDisabled, truncate] + [DroppableContent, RenderClone, dataProvider.id, isDisabled] ); - if (isDisabled) return <>{renderContent()}</>; + const renderContent = useCallback(() => content, [content]); + + if (isDisabled) return <>{content}</>; return ( <WithHoverActions diff --git a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/droppable_wrapper.tsx b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/droppable_wrapper.tsx index 30c54a8b44a75..6818b03d450a7 100644 --- a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/droppable_wrapper.tsx +++ b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/droppable_wrapper.tsx @@ -5,7 +5,7 @@ */ import { rgba } from 'polished'; -import React from 'react'; +import React, { useCallback } from 'react'; import { Droppable, DraggableChildrenFn } from 'react-beautiful-dnd'; import styled from 'styled-components'; @@ -96,15 +96,9 @@ export const DroppableWrapper = React.memo<Props>( type, render = null, renderClone, - }) => ( - <Droppable - isDropDisabled={isDropDisabled} - droppableId={droppableId} - direction={'horizontal'} - type={type} - renderClone={renderClone} - > - {(provided, snapshot) => ( + }) => { + const DroppableContent = useCallback( + (provided, snapshot) => ( <ReactDndDropTarget height={height} ref={provided.innerRef} @@ -114,8 +108,21 @@ export const DroppableWrapper = React.memo<Props>( {render == null ? children : render({ isDraggingOver: snapshot.isDraggingOver })} {provided.placeholder} </ReactDndDropTarget> - )} - </Droppable> - ) + ), + [children, height, render] + ); + + return ( + <Droppable + isDropDisabled={isDropDisabled} + droppableId={droppableId} + direction={'horizontal'} + type={type} + renderClone={renderClone} + > + {DroppableContent} + </Droppable> + ); + } ); DroppableWrapper.displayName = 'DroppableWrapper'; diff --git a/x-pack/plugins/security_solution/public/common/components/draggables/index.tsx b/x-pack/plugins/security_solution/public/common/components/draggables/index.tsx index 4dc3c6fcbe440..d37de2cd3ec3d 100644 --- a/x-pack/plugins/security_solution/public/common/components/draggables/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/draggables/index.tsx @@ -135,7 +135,7 @@ DefaultDraggable.displayName = 'DefaultDraggable'; export const Badge = styled(EuiBadge)` vertical-align: top; -` as any; // eslint-disable-line @typescript-eslint/no-explicit-any +`; Badge.displayName = 'Badge'; diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx index 2c8c8136a4733..7859f5584b0e5 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx @@ -5,7 +5,7 @@ */ import { EuiFlexGroup, EuiFlexItem, EuiPanel } from '@elastic/eui'; -import { getOr, isEmpty, union } from 'lodash/fp'; +import { isEmpty, union } from 'lodash/fp'; import React, { useEffect, useMemo, useState } from 'react'; import styled from 'styled-components'; import deepEqual from 'fast-deep-equal'; @@ -239,6 +239,19 @@ const EventsViewerComponent: React.FC<Props> = ({ events, ]); + const HeaderSectionContent = useMemo( + () => + headerFilterGroup && ( + <HeaderFilterGroupWrapper + data-test-subj="header-filter-group-wrapper" + show={!resolverIsShowing(graphEventId)} + > + {headerFilterGroup} + </HeaderFilterGroupWrapper> + ), + [graphEventId, headerFilterGroup] + ); + useEffect(() => { setIsQueryLoading(loading); }, [loading]); @@ -257,14 +270,7 @@ const EventsViewerComponent: React.FC<Props> = ({ subtitle={utilityBar ? undefined : subtitle} title={inspect ? justTitle : titleWithExitFullScreen} > - {headerFilterGroup && ( - <HeaderFilterGroupWrapper - data-test-subj="header-filter-group-wrapper" - show={!resolverIsShowing(graphEventId)} - > - {headerFilterGroup} - </HeaderFilterGroupWrapper> - )} + {HeaderSectionContent} </HeaderSection> {utilityBar && !resolverIsShowing(graphEventId) && ( <UtilityBar>{utilityBar?.(refetch, totalCountMinusDeleted)}</UtilityBar> @@ -293,7 +299,7 @@ const EventsViewerComponent: React.FC<Props> = ({ /** Hide the footer if Resolver is showing. */ !graphEventId && ( <Footer - activePage={getOr(0, 'activePage', pageInfo)} + activePage={pageInfo.activePage} data-test-subj="events-viewer-footer" updatedAt={updatedAt} height={footerHeight} @@ -306,7 +312,7 @@ const EventsViewerComponent: React.FC<Props> = ({ onChangeItemsPerPage={onChangeItemsPerPage} onChangePage={loadPage} serverSideEventCount={totalCountMinusDeleted} - totalPages={getOr(0, 'totalPages', pageInfo)} + totalCount={pageInfo.fakeTotalCount} /> ) } diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/mock.ts b/x-pack/plugins/security_solution/public/common/components/events_viewer/mock.ts index f6fb01be4371f..d2bd940dcc266 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_viewer/mock.ts +++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/mock.ts @@ -8,7 +8,7 @@ export const mockEventViewerResponse = { totalCount: 12, pageInfo: { activePage: 0, - totalPages: 10, + fakeTotalCount: 100, }, events: [], }; diff --git a/x-pack/plugins/security_solution/public/common/components/ml/entity_draggable.tsx b/x-pack/plugins/security_solution/public/common/components/ml/entity_draggable.tsx index 9024aec17400c..1c5b13acb0c22 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml/entity_draggable.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml/entity_draggable.tsx @@ -4,9 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -import React from 'react'; +import React, { useCallback, useMemo } from 'react'; import { DraggableWrapper, DragEffects } from '../drag_and_drop/draggable_wrapper'; -import { IS_OPERATOR } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { + IS_OPERATOR, + QueryOperator, +} from '../../../timelines/components/timeline/data_providers/data_provider'; import { Provider } from '../../../timelines/components/timeline/data_providers/provider'; import { escapeDataProviderId } from '../drag_and_drop/helpers'; @@ -16,39 +19,43 @@ interface Props { entityValue: string; } -export const EntityDraggableComponent = ({ +export const EntityDraggableComponent: React.FC<Props> = ({ idPrefix, entityName, entityValue, -}: Props): JSX.Element => { +}) => { const id = escapeDataProviderId(`entity-draggable-${idPrefix}-${entityName}-${entityValue}`); - return ( - <DraggableWrapper - key={id} - dataProvider={{ - and: [], - enabled: true, - id, - name: entityValue, - excluded: false, - kqlQuery: '', - queryMatch: { - field: entityName, - value: entityValue, - operator: IS_OPERATOR, - }, - }} - render={(dataProvider, _, snapshot) => - snapshot.isDragging ? ( - <DragEffects> - <Provider dataProvider={dataProvider} /> - </DragEffects> - ) : ( - <>{`${entityName}: "${entityValue}"`}</> - ) - } - /> + + const dataProviderProp = useMemo( + () => ({ + and: [], + enabled: true, + id, + name: entityValue, + excluded: false, + kqlQuery: '', + queryMatch: { + field: entityName, + value: entityValue, + operator: IS_OPERATOR as QueryOperator, + }, + }), + [entityName, entityValue, id] + ); + + const render = useCallback( + (dataProvider, _, snapshot) => + snapshot.isDragging ? ( + <DragEffects> + <Provider dataProvider={dataProvider} /> + </DragEffects> + ) : ( + <>{`${entityName}: "${entityValue}"`}</> + ), + [entityName, entityValue] ); + + return <DraggableWrapper key={id} dataProvider={dataProviderProp} render={render} />; }; EntityDraggableComponent.displayName = 'EntityDraggableComponent'; diff --git a/x-pack/plugins/security_solution/public/common/components/ml/score/draggable_score.tsx b/x-pack/plugins/security_solution/public/common/components/ml/score/draggable_score.tsx index c849476f0c3db..668a374e57f0d 100644 --- a/x-pack/plugins/security_solution/public/common/components/ml/score/draggable_score.tsx +++ b/x-pack/plugins/security_solution/public/common/components/ml/score/draggable_score.tsx @@ -4,10 +4,13 @@ * you may not use this file except in compliance with the Elastic License. */ -import React from 'react'; +import React, { useCallback, useMemo } from 'react'; import { DraggableWrapper, DragEffects } from '../../drag_and_drop/draggable_wrapper'; import { Anomaly } from '../types'; -import { IS_OPERATOR } from '../../../../timelines/components/timeline/data_providers/data_provider'; +import { + IS_OPERATOR, + QueryOperator, +} from '../../../../timelines/components/timeline/data_providers/data_provider'; import { Provider } from '../../../../timelines/components/timeline/data_providers/provider'; import { Spacer } from '../../page'; import { getScoreString } from './score_health'; @@ -23,39 +26,48 @@ export const DraggableScoreComponent = ({ }): JSX.Element => { const scoreString = getScoreString(score.severity); + const dataProviderProp = useMemo( + () => ({ + and: [], + enabled: true, + id, + name: score.entityName, + excluded: false, + kqlQuery: '', + queryMatch: { + field: score.entityName, + value: score.entityValue, + operator: IS_OPERATOR as QueryOperator, + }, + }), + [id, score.entityName, score.entityValue] + ); + + const render = useCallback( + (dataProvider, _, snapshot) => + snapshot.isDragging ? ( + <DragEffects> + <Provider dataProvider={dataProvider} /> + </DragEffects> + ) : ( + <> + {index !== 0 && ( + <> + {','} + <Spacer /> + </> + )} + {scoreString} + </> + ), + [index, scoreString] + ); + return ( <DraggableWrapper key={`draggable-score-draggable-wrapper-${id}`} - dataProvider={{ - and: [], - enabled: true, - id, - name: score.entityName, - excluded: false, - kqlQuery: '', - queryMatch: { - field: score.entityName, - value: score.entityValue, - operator: IS_OPERATOR, - }, - }} - render={(dataProvider, _, snapshot) => - snapshot.isDragging ? ( - <DragEffects> - <Provider dataProvider={dataProvider} /> - </DragEffects> - ) : ( - <> - {index !== 0 && ( - <> - {','} - <Spacer /> - </> - )} - {scoreString} - </> - ) - } + dataProvider={dataProviderProp} + render={render} /> ); }; diff --git a/x-pack/plugins/security_solution/public/overview/components/recent_timelines/recent_timelines.tsx b/x-pack/plugins/security_solution/public/overview/components/recent_timelines/recent_timelines.tsx index ddad72081645b..598849c917d33 100644 --- a/x-pack/plugins/security_solution/public/overview/components/recent_timelines/recent_timelines.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/recent_timelines/recent_timelines.tsx @@ -12,7 +12,7 @@ import { EuiToolTip, EuiButtonIcon, } from '@elastic/eui'; -import React from 'react'; +import React, { useCallback, useMemo } from 'react'; import { RecentTimelineHeader } from './header'; import { @@ -25,76 +25,110 @@ import { TimelineType } from '../../../../common/types/timeline'; import { RecentTimelineCounts } from './counts'; import * as i18n from './translations'; -export const RecentTimelines = React.memo<{ - noTimelinesMessage: string; +interface RecentTimelinesItemProps { + timeline: OpenTimelineResult; onOpenTimeline: OnOpenTimeline; - timelines: OpenTimelineResult[]; -}>(({ noTimelinesMessage, onOpenTimeline, timelines }) => { - if (timelines.length === 0) { + isLastItem: boolean; +} + +const RecentTimelinesItem = React.memo<RecentTimelinesItemProps>( + ({ timeline, onOpenTimeline, isLastItem }) => { + const handleClick = useCallback( + () => + onOpenTimeline({ + duplicate: true, + timelineId: `${timeline.savedObjectId}`, + }), + [onOpenTimeline, timeline.savedObjectId] + ); + + const render = useCallback( + (showHoverContent) => ( + <EuiFlexGroup gutterSize="none" justifyContent="spaceBetween"> + <EuiFlexItem grow={false}> + <RecentTimelineHeader onOpenTimeline={onOpenTimeline} timeline={timeline} /> + <RecentTimelineCounts timeline={timeline} /> + {timeline.description && timeline.description.length && ( + <EuiText color="subdued" size="xs"> + {timeline.description} + </EuiText> + )} + </EuiFlexItem> + + {showHoverContent && ( + <EuiFlexItem grow={false}> + <EuiToolTip + content={ + timeline.timelineType === TimelineType.default + ? i18n.OPEN_AS_DUPLICATE + : i18n.OPEN_AS_DUPLICATE_TEMPLATE + } + > + <EuiButtonIcon + aria-label={ + timeline.timelineType === TimelineType.default + ? i18n.OPEN_AS_DUPLICATE + : i18n.OPEN_AS_DUPLICATE_TEMPLATE + } + data-test-subj="open-duplicate" + isDisabled={timeline.savedObjectId == null} + iconSize="s" + iconType="copy" + onClick={handleClick} + size="s" + /> + </EuiToolTip> + </EuiFlexItem> + )} + </EuiFlexGroup> + ), + [handleClick, onOpenTimeline, timeline] + ); + return ( <> - <EuiText color="subdued" size="s"> - {noTimelinesMessage} - </EuiText> + <WithHoverActions render={render} /> + <>{!isLastItem && <EuiSpacer size="l" />}</> </> ); } +); - return ( - <> - {timelines.map((t, i) => ( - <React.Fragment key={`${t.savedObjectId}-${i}`}> - <WithHoverActions - render={(showHoverContent) => ( - <EuiFlexGroup gutterSize="none" justifyContent="spaceBetween"> - <EuiFlexItem grow={false}> - <RecentTimelineHeader onOpenTimeline={onOpenTimeline} timeline={t} /> - <RecentTimelineCounts timeline={t} /> - {t.description && t.description.length && ( - <EuiText color="subdued" size="xs"> - {t.description} - </EuiText> - )} - </EuiFlexItem> +RecentTimelinesItem.displayName = 'RecentTimelinesItem'; - {showHoverContent && ( - <EuiFlexItem grow={false}> - <EuiToolTip - content={ - t.timelineType === TimelineType.default - ? i18n.OPEN_AS_DUPLICATE - : i18n.OPEN_AS_DUPLICATE_TEMPLATE - } - > - <EuiButtonIcon - aria-label={ - t.timelineType === TimelineType.default - ? i18n.OPEN_AS_DUPLICATE - : i18n.OPEN_AS_DUPLICATE_TEMPLATE - } - data-test-subj="open-duplicate" - isDisabled={t.savedObjectId == null} - iconSize="s" - iconType="copy" - onClick={() => - onOpenTimeline({ - duplicate: true, - timelineId: `${t.savedObjectId}`, - }) - } - size="s" - /> - </EuiToolTip> - </EuiFlexItem> - )} - </EuiFlexGroup> - )} +interface RecentTimelinesProps { + noTimelinesMessage: string; + onOpenTimeline: OnOpenTimeline; + timelines: OpenTimelineResult[]; +} + +export const RecentTimelines = React.memo<RecentTimelinesProps>( + ({ noTimelinesMessage, onOpenTimeline, timelines }) => { + const content = useMemo( + () => + timelines.map((timeline, index) => ( + <RecentTimelinesItem + key={`${timeline.savedObjectId}-${timeline.title}`} + timeline={timeline} + onOpenTimeline={onOpenTimeline} + isLastItem={index === timelines.length - 1} /> - <>{i !== timelines.length - 1 && <EuiSpacer size="l" />}</> - </React.Fragment> - ))} - </> - ); -}); + )), + [onOpenTimeline, timelines] + ); + + if (timelines.length === 0) { + return ( + <> + <EuiText color="subdued" size="s"> + {noTimelinesMessage} + </EuiText> + </> + ); + } + + return <>{content}</>; + } +); RecentTimelines.displayName = 'RecentTimelines'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/flyout/button/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/flyout/button/index.tsx index 954ae0b6a0d40..72fa20c9f152d 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/flyout/button/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/flyout/button/index.tsx @@ -4,11 +4,11 @@ * you may not use this file except in compliance with the Elastic License. */ -import { noop } from 'lodash/fp'; import { EuiButton, EuiNotificationBadge, EuiPanel } from '@elastic/eui'; import { rgba } from 'polished'; import React, { useMemo } from 'react'; import styled from 'styled-components'; +import deepEqual from 'fast-deep-equal'; import { IS_DRAGGING_CLASS_NAME } from '../../../../common/components/drag_and_drop/helpers'; import { DataProvider } from '../../timeline/data_providers/data_provider'; @@ -88,6 +88,18 @@ export const FlyoutButton = React.memo<FlyoutButtonProps>( const badgeCount = useMemo(() => getBadgeCount(dataProviders), [dataProviders]); const { browserFields } = useSourcererScope(SourcererScopeName.timeline); + const badgeStyles: React.CSSProperties = useMemo( + () => ({ + left: '-9px', + position: 'relative', + top: '-6px', + transform: 'rotate(90deg)', + visibility: dataProviders.length !== 0 ? 'inherit' : 'hidden', + zIndex: 10, + }), + [dataProviders.length] + ); + if (!show) { return null; } @@ -108,18 +120,7 @@ export const FlyoutButton = React.memo<FlyoutButtonProps>( > {i18n.FLYOUT_BUTTON} </EuiButton> - <EuiNotificationBadge - color="accent" - data-test-subj="badge" - style={{ - left: '-9px', - position: 'relative', - top: '-6px', - transform: 'rotate(90deg)', - visibility: dataProviders.length !== 0 ? 'inherit' : 'hidden', - zIndex: 10, - }} - > + <EuiNotificationBadge color="accent" data-test-subj="badge" style={badgeStyles}> {badgeCount} </EuiNotificationBadge> </BadgeButtonContainer> @@ -128,11 +129,6 @@ export const FlyoutButton = React.memo<FlyoutButtonProps>( browserFields={browserFields} timelineId={timelineId} dataProviders={dataProviders} - onDataProviderEdited={noop} - onDataProviderRemoved={noop} - onToggleDataProviderEnabled={noop} - onToggleDataProviderExcluded={noop} - onToggleDataProviderType={noop} /> </DataProvidersPanel> </Container> @@ -140,7 +136,7 @@ export const FlyoutButton = React.memo<FlyoutButtonProps>( }, (prevProps, nextProps) => prevProps.show === nextProps.show && - prevProps.dataProviders === nextProps.dataProviders && + deepEqual(prevProps.dataProviders, nextProps.dataProviders) && prevProps.timelineId === nextProps.timelineId ); diff --git a/x-pack/plugins/security_solution/public/timelines/components/formatted_ip/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/formatted_ip/index.tsx index e4148b5581435..091bb41bc2080 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/formatted_ip/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/formatted_ip/index.tsx @@ -5,7 +5,7 @@ */ import { isArray, isEmpty, isString, uniq } from 'lodash/fp'; -import React from 'react'; +import React, { useCallback, useMemo } from 'react'; import { DragEffects, @@ -71,16 +71,25 @@ const NonDecoratedIpComponent: React.FC<{ fieldName: string; truncate?: boolean; value: string | object | null | undefined; -}> = ({ contextId, eventId, fieldName, truncate, value }) => ( - <DraggableWrapper - dataProvider={getDataProvider({ contextId, eventId, fieldName, address: value })} - key={`non-decorated-ip-draggable-wrapper-${getUniqueId({ - contextId, - eventId, - fieldName, - address: value, - })}`} - render={(dataProvider, _, snapshot) => +}> = ({ contextId, eventId, fieldName, truncate, value }) => { + const key = useMemo( + () => + `non-decorated-ip-draggable-wrapper-${getUniqueId({ + contextId, + eventId, + fieldName, + address: value, + })}`, + [contextId, eventId, fieldName, value] + ); + + const dataProviderProp = useMemo( + () => getDataProvider({ contextId, eventId, fieldName, address: value }), + [contextId, eventId, fieldName, value] + ); + + const render = useCallback( + (dataProvider, _, snapshot) => snapshot.isDragging ? ( <DragEffects> <Provider dataProvider={dataProvider} /> @@ -89,47 +98,107 @@ const NonDecoratedIpComponent: React.FC<{ getOrEmptyTagFromValue(value) ) : ( getOrEmptyTagFromValue(tryStringify(value)) - ) - } - truncate={truncate} - /> -); + ), + [value] + ); + + return ( + <DraggableWrapper + dataProvider={dataProviderProp} + key={key} + render={render} + truncate={truncate} + /> + ); +}; const NonDecoratedIp = React.memo(NonDecoratedIpComponent); -const AddressLinksComponent: React.FC<{ +interface AddressLinksItemProps extends Omit<AddressLinksProps, 'addresses'> { + address: string; +} + +const AddressLinksItemComponent: React.FC<AddressLinksItemProps> = ({ + address, + contextId, + eventId, + fieldName, + truncate, +}) => { + const key = useMemo( + () => + `address-links-draggable-wrapper-${getUniqueId({ + contextId, + eventId, + fieldName, + address, + })}`, + [address, contextId, eventId, fieldName] + ); + + const dataProviderProp = useMemo( + () => getDataProvider({ contextId, eventId, fieldName, address }), + [address, contextId, eventId, fieldName] + ); + + const render = useCallback( + (_props, _provided, snapshot) => + snapshot.isDragging ? ( + <DragEffects> + <Provider dataProvider={dataProviderProp} /> + </DragEffects> + ) : ( + <NetworkDetailsLink data-test-subj="network-details" ip={address} /> + ), + [address, dataProviderProp] + ); + + return ( + <DraggableWrapper + dataProvider={dataProviderProp} + key={key} + render={render} + truncate={truncate} + /> + ); +}; + +const AddressLinksItem = React.memo(AddressLinksItemComponent); + +interface AddressLinksProps { addresses: string[]; contextId: string; eventId: string; fieldName: string; truncate?: boolean; -}> = ({ addresses, contextId, eventId, fieldName, truncate }) => ( - <> - {uniq(addresses).map((address) => ( - <DraggableWrapper - dataProvider={getDataProvider({ contextId, eventId, fieldName, address })} - key={`address-links-draggable-wrapper-${getUniqueId({ - contextId, - eventId, - fieldName, - address, - })}`} - render={(_props, _provided, snapshot) => - snapshot.isDragging ? ( - <DragEffects> - <Provider - dataProvider={getDataProvider({ contextId, eventId, fieldName, address })} - /> - </DragEffects> - ) : ( - <NetworkDetailsLink data-test-subj="network-details" ip={address} /> - ) - } - truncate={truncate} - /> - ))} - </> -); +} + +const AddressLinksComponent: React.FC<AddressLinksProps> = ({ + addresses, + contextId, + eventId, + fieldName, + truncate, +}) => { + const uniqAddresses = useMemo(() => uniq(addresses), [addresses]); + + const content = useMemo( + () => + uniqAddresses.map((address) => ( + <AddressLinksItem + key={address} + address={address} + contextId={contextId} + eventId={eventId} + fieldName={fieldName} + truncate={truncate} + /> + )), + [contextId, eventId, fieldName, truncate, uniqAddresses] + ); + + return <>{content}</>; +}; const AddressLinks = React.memo(AddressLinksComponent); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/__snapshots__/timeline.test.tsx.snap b/x-pack/plugins/security_solution/public/timelines/components/timeline/__snapshots__/timeline.test.tsx.snap index 18a648f2abfaa..153128fb41826 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/__snapshots__/timeline.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/__snapshots__/timeline.test.tsx.snap @@ -646,34 +646,7 @@ In other use cases the message field can be used to concatenate different values dataProviders={ Array [ Object { - "and": Array [ - Object { - "and": Array [], - "enabled": true, - "excluded": false, - "id": "id-Provider 2", - "kqlQuery": "", - "name": "Provider 2", - "queryMatch": Object { - "field": "name", - "operator": ":", - "value": "Provider 2", - }, - }, - Object { - "and": Array [], - "enabled": true, - "excluded": false, - "id": "id-Provider 3", - "kqlQuery": "", - "name": "Provider 3", - "queryMatch": Object { - "field": "name", - "operator": ":", - "value": "Provider 3", - }, - }, - ], + "and": Array [], "enabled": true, "excluded": false, "id": "id-Provider 1", @@ -921,11 +894,6 @@ In other use cases the message field can be used to concatenate different values loadingSourcerer={false} onChangeItemsPerPage={[MockFunction]} onClose={[MockFunction]} - onDataProviderEdited={[MockFunction]} - onDataProviderRemoved={[MockFunction]} - onToggleDataProviderEnabled={[MockFunction]} - onToggleDataProviderExcluded={[MockFunction]} - onToggleDataProviderType={[MockFunction]} show={true} showCallOutUnauthorizedMsg={false} sort={ diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/auto_save_warning/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/auto_save_warning/index.tsx index 210af7a571569..98faa84db851e 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/auto_save_warning/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/auto_save_warning/index.tsx @@ -11,84 +11,69 @@ import { EuiGlobalToastListToast as Toast, } from '@elastic/eui'; import { getOr } from 'lodash/fp'; -import React from 'react'; -import { connect, ConnectedProps } from 'react-redux'; +import React, { useCallback, useMemo } from 'react'; +import { useDispatch, useSelector, shallowEqual } from 'react-redux'; -import { State } from '../../../../common/store'; -import { setTimelineRangeDatePicker as dispatchSetTimelineRangeDatePicker } from '../../../../common/store/inputs/actions'; +import { setTimelineRangeDatePicker } from '../../../../common/store/inputs/actions'; import { timelineActions, timelineSelectors } from '../../../store/timeline'; -import { AutoSavedWarningMsg } from '../../../store/timeline/types'; import { useStateToaster } from '../../../../common/components/toasters'; import * as i18n from './translations'; -const AutoSaveWarningMsgComponent = React.memo<PropsFromRedux>( - ({ - newTimelineModel, - setTimelineRangeDatePicker, - timelineId, - updateAutoSaveMsg, - updateTimeline, - }) => { - const dispatchToaster = useStateToaster()[1]; +const AutoSaveWarningMsgComponent = () => { + const dispatch = useDispatch(); + const dispatchToaster = useStateToaster()[1]; + const { timelineId, newTimelineModel } = useSelector( + timelineSelectors.autoSaveMsgSelector, + shallowEqual + ); + + const handleClick = useCallback(() => { if (timelineId != null && newTimelineModel != null) { - const toast: Toast = { - id: 'AutoSaveWarningMsg', - title: i18n.TITLE, - color: 'warning', - iconType: 'alert', - toastLifeTimeMs: 10000, - text: ( - <> - <p>{i18n.DESCRIPTION}</p> - <EuiFlexGroup justifyContent="flexEnd" gutterSize="s"> - <EuiFlexItem grow={false}> - <EuiButton - size="s" - onClick={() => { - updateTimeline({ id: timelineId, timeline: newTimelineModel }); - updateAutoSaveMsg({ timelineId: null, newTimelineModel: null }); - setTimelineRangeDatePicker({ - from: getOr(0, 'dateRange.start', newTimelineModel), - to: getOr(0, 'dateRange.end', newTimelineModel), - }); - }} - > - {i18n.REFRESH_TIMELINE} - </EuiButton> - </EuiFlexItem> - </EuiFlexGroup> - </> - ), - }; - dispatchToaster({ - type: 'addToaster', - toast, - }); + dispatch(timelineActions.updateTimeline({ id: timelineId, timeline: newTimelineModel })); + dispatch(timelineActions.updateAutoSaveMsg({ timelineId: null, newTimelineModel: null })); + dispatch( + setTimelineRangeDatePicker({ + from: getOr(0, 'dateRange.start', newTimelineModel), + to: getOr(0, 'dateRange.end', newTimelineModel), + }) + ); } + }, [dispatch, newTimelineModel, timelineId]); - return null; - } -); - -AutoSaveWarningMsgComponent.displayName = 'AutoSaveWarningMsgComponent'; - -const mapStateToProps = (state: State) => { - const autoSaveMessage: AutoSavedWarningMsg = timelineSelectors.autoSaveMsgSelector(state); + const TextComponent = useMemo( + () => ( + <> + <p>{i18n.DESCRIPTION}</p> + <EuiFlexGroup justifyContent="flexEnd" gutterSize="s"> + <EuiFlexItem grow={false}> + <EuiButton size="s" onClick={handleClick}> + {i18n.REFRESH_TIMELINE} + </EuiButton> + </EuiFlexItem> + </EuiFlexGroup> + </> + ), + [handleClick] + ); - return { - timelineId: autoSaveMessage.timelineId, - newTimelineModel: autoSaveMessage.newTimelineModel, - }; -}; + if (timelineId != null && newTimelineModel != null) { + const toast: Toast = { + id: 'AutoSaveWarningMsg', + title: i18n.TITLE, + color: 'warning', + iconType: 'alert', + toastLifeTimeMs: 10000, + text: TextComponent, + }; + dispatchToaster({ + type: 'addToaster', + toast, + }); + } -const mapDispatchToProps = { - setTimelineRangeDatePicker: dispatchSetTimelineRangeDatePicker, - updateAutoSaveMsg: timelineActions.updateAutoSaveMsg, - updateTimeline: timelineActions.updateTimeline, + return null; }; -const connector = connect(mapStateToProps, mapDispatchToProps); - -type PropsFromRedux = ConnectedProps<typeof connector>; +AutoSaveWarningMsgComponent.displayName = 'AutoSaveWarningMsgComponent'; -export const AutoSaveWarningMsg = connector(AutoSaveWarningMsgComponent); +export const AutoSaveWarningMsg = React.memo(AutoSaveWarningMsgComponent); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/column_headers/actions/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/column_headers/actions/index.tsx index 3352639fa95f8..c4c4e0e0c7065 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/column_headers/actions/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/column_headers/actions/index.tsx @@ -5,7 +5,7 @@ */ import { EuiButtonIcon } from '@elastic/eui'; -import React from 'react'; +import React, { useCallback } from 'react'; import { ColumnHeaderOptions } from '../../../../../../timelines/store/timeline/model'; import { OnColumnRemoved } from '../../../events'; @@ -26,20 +26,27 @@ interface Props { export const CloseButton = React.memo<{ columnId: string; onColumnRemoved: OnColumnRemoved; -}>(({ columnId, onColumnRemoved }) => ( - <EuiButtonIcon - aria-label={i18n.REMOVE_COLUMN} - color="text" - data-test-subj="remove-column" - iconType="cross" - onClick={(event: React.MouseEvent<HTMLButtonElement>) => { +}>(({ columnId, onColumnRemoved }) => { + const handleClick = useCallback( + (event: React.MouseEvent<HTMLButtonElement>) => { // To avoid a re-sorting when you delete a column event.preventDefault(); event.stopPropagation(); onColumnRemoved(columnId); - }} - /> -)); + }, + [columnId, onColumnRemoved] + ); + + return ( + <EuiButtonIcon + aria-label={i18n.REMOVE_COLUMN} + color="text" + data-test-subj="remove-column" + iconType="cross" + onClick={handleClick} + /> + ); +}); CloseButton.displayName = 'CloseButton'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/column_headers/column_header.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/column_headers/column_header.tsx index 617b2935ee75c..6e21446944573 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/column_headers/column_header.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/column_headers/column_header.tsx @@ -78,6 +78,29 @@ const ColumnHeaderComponent: React.FC<ColumneHeaderProps> = ({ [timelineId, header.id] ); + const DraggableContent = useCallback( + (dragProvided) => ( + <EventsTh + data-test-subj="draggable-header" + {...dragProvided.draggableProps} + {...dragProvided.dragHandleProps} + ref={dragProvided.innerRef} + > + <EventsThContent> + <Header + timelineId={timelineId} + header={header} + onColumnRemoved={onColumnRemoved} + onColumnSorted={onColumnSorted} + onFilterChange={onFilterChange} + sort={sort} + /> + </EventsThContent> + </EventsTh> + ), + [header, onColumnRemoved, onColumnSorted, onFilterChange, sort, timelineId] + ); + return ( <Resizable enable={RESIZABLE_ENABLE} @@ -94,25 +117,7 @@ const ColumnHeaderComponent: React.FC<ColumneHeaderProps> = ({ index={draggableIndex} key={header.id} > - {(dragProvided) => ( - <EventsTh - data-test-subj="draggable-header" - {...dragProvided.draggableProps} - {...dragProvided.dragHandleProps} - ref={dragProvided.innerRef} - > - <EventsThContent> - <Header - timelineId={timelineId} - header={header} - onColumnRemoved={onColumnRemoved} - onColumnSorted={onColumnSorted} - onFilterChange={onFilterChange} - sort={sort} - /> - </EventsThContent> - </EventsTh> - )} + {DraggableContent} </Draggable> </Resizable> ); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/column_headers/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/column_headers/index.tsx index 6e802053ab29f..f4d4cf29ba38b 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/column_headers/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/column_headers/index.tsx @@ -200,6 +200,22 @@ export const ColumnHeadersComponent = ({ [globalFullScreen, timelineId, timelineFullScreen] ); + const DroppableContent = useCallback( + (dropProvided, snapshot) => ( + <> + <EventsThGroupData + data-test-subj="headers-group" + ref={dropProvided.innerRef} + isDragging={snapshot.isDraggingOver} + {...dropProvided.droppableProps} + > + {ColumnHeaderList} + </EventsThGroupData> + </> + ), + [ColumnHeaderList] + ); + return ( <EventsThead data-test-subj="column-headers"> <EventsTrHeader> @@ -275,18 +291,7 @@ export const ColumnHeadersComponent = ({ type={DRAG_TYPE_FIELD} renderClone={renderClone} > - {(dropProvided, snapshot) => ( - <> - <EventsThGroupData - data-test-subj="headers-group" - ref={dropProvided.innerRef} - isDragging={snapshot.isDraggingOver} - {...dropProvided.droppableProps} - > - {ColumnHeaderList} - </EventsThGroupData> - </> - )} + {DroppableContent} </Droppable> </EventsTrHeader> </EventsThead> diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/event_column_view.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/event_column_view.tsx index 3b6585013c8d3..df5c48ad012a6 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/event_column_view.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/event_column_view.tsx @@ -151,13 +151,17 @@ export const EventColumnView = React.memo<Props>( />, ] : []), - <AlertContextMenu - key="alert-context-menu" - ecsRowData={ecsData} - timelineId={timelineId} - disabled={eventType !== 'signal'} - refetch={refetch} - />, + ...(eventType !== 'raw' + ? [ + <AlertContextMenu + key="alert-context-menu" + ecsRowData={ecsData} + timelineId={timelineId} + disabled={eventType !== 'signal'} + refetch={refetch} + />, + ] + : []), ], [ associateNote, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/stateful_event.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/stateful_event.tsx index d71af86c80247..ee68c270e9aba 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/stateful_event.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/stateful_event.tsx @@ -97,6 +97,8 @@ const TOP_OFFSET = 50; */ const BOTTOM_OFFSET = -500; +const VISIBILITY_SENSOR_OFFSET = { top: TOP_OFFSET, bottom: BOTTOM_OFFSET }; + const emptyNotes: string[] = []; const EventsTrSupplementContainerWrapper = React.memo(({ children }) => { @@ -173,105 +175,145 @@ const StatefulEventComponent: React.FC<Props> = ({ // Number of current columns plus one for actions. const columnCount = columnHeaders.length + 1; + const VisibilitySensorContent = useCallback( + ({ isVisible }) => { + if (isVisible || disableSensorVisibility) { + return ( + <EventsTrGroup + className={STATEFUL_EVENT_CSS_CLASS_NAME} + data-test-subj="event" + eventType={getEventType(event.ecs)} + showLeftBorder={!isEventViewer} + ref={divElement} + > + <EventColumnView + id={event._id} + actionsColumnWidth={actionsColumnWidth} + associateNote={associateNote} + columnHeaders={columnHeaders} + columnRenderers={columnRenderers} + data={event.data} + ecsData={event.ecs} + expanded={!!expanded[event._id]} + eventIdToNoteIds={eventIdToNoteIds} + getNotesByIds={getNotesByIds} + isEventPinned={isEventPinned} + isEventViewer={isEventViewer} + loading={loading} + loadingEventIds={loadingEventIds} + onColumnResized={onColumnResized} + onEventToggled={onToggleExpanded} + onPinEvent={onPinEvent} + onRowSelected={onRowSelected} + onUnPinEvent={onUnPinEvent} + refetch={refetch} + selectedEventIds={selectedEventIds} + showCheckboxes={showCheckboxes} + showNotes={!!showNotes[event._id]} + timelineId={timelineId} + toggleShowNotes={onToggleShowNotes} + updateNote={updateNote} + /> + + <EventsTrSupplementContainerWrapper> + <EventsTrSupplement + className="siemEventsTable__trSupplement--notes" + data-test-subj="event-notes-flex-item" + > + <NoteCards + associateNote={associateNote} + data-test-subj="note-cards" + getNewNoteId={getNewNoteId} + getNotesByIds={getNotesByIds} + noteIds={eventIdToNoteIds[event._id] || emptyNotes} + showAddNote={!!showNotes[event._id]} + status={timelineStatus} + toggleShowAddNote={onToggleShowNotes} + updateNote={updateNote} + /> + </EventsTrSupplement> + + {getRowRenderer(event.ecs, rowRenderers).renderRow({ + browserFields, + data: event.ecs, + timelineId, + })} + + <EventsTrSupplement + className="siemEventsTable__trSupplement--attributes" + data-test-subj="event-details" + > + <ExpandableEvent + browserFields={browserFields} + columnHeaders={columnHeaders} + event={detailsData || emptyDetails} + forceExpand={!!expanded[event._id] && !loading} + id={event._id} + onEventToggled={onToggleExpanded} + onUpdateColumns={onUpdateColumns} + timelineId={timelineId} + toggleColumn={toggleColumn} + /> + </EventsTrSupplement> + </EventsTrSupplementContainerWrapper> + </EventsTrGroup> + ); + } else { + // Height place holder for visibility detection as well as re-rendering sections. + const height = + divElement.current != null && divElement.current!.clientHeight + ? `${divElement.current!.clientHeight}px` + : DEFAULT_ROW_HEIGHT; + + return <SkeletonRow cellCount={columnCount} rowHeight={height} />; + } + }, + [ + actionsColumnWidth, + associateNote, + browserFields, + columnCount, + columnHeaders, + columnRenderers, + detailsData, + disableSensorVisibility, + event._id, + event.data, + event.ecs, + eventIdToNoteIds, + expanded, + getNotesByIds, + isEventPinned, + isEventViewer, + loading, + loadingEventIds, + onColumnResized, + onPinEvent, + onRowSelected, + onToggleExpanded, + onToggleShowNotes, + onUnPinEvent, + onUpdateColumns, + refetch, + rowRenderers, + selectedEventIds, + showCheckboxes, + showNotes, + timelineId, + timelineStatus, + toggleColumn, + updateNote, + ] + ); + return ( <VisibilitySensor partialVisibility={true} scrollCheck={true} containment={containerElementRef} - offset={{ top: TOP_OFFSET, bottom: BOTTOM_OFFSET }} + offset={VISIBILITY_SENSOR_OFFSET} > - {({ isVisible }) => { - if (isVisible || disableSensorVisibility) { - return ( - <EventsTrGroup - className={STATEFUL_EVENT_CSS_CLASS_NAME} - data-test-subj="event" - eventType={getEventType(event.ecs)} - showLeftBorder={!isEventViewer} - ref={divElement} - > - <EventColumnView - id={event._id} - actionsColumnWidth={actionsColumnWidth} - associateNote={associateNote} - columnHeaders={columnHeaders} - columnRenderers={columnRenderers} - data={event.data} - ecsData={event.ecs} - expanded={!!expanded[event._id]} - eventIdToNoteIds={eventIdToNoteIds} - getNotesByIds={getNotesByIds} - isEventPinned={isEventPinned} - isEventViewer={isEventViewer} - loading={loading} - loadingEventIds={loadingEventIds} - onColumnResized={onColumnResized} - onEventToggled={onToggleExpanded} - onPinEvent={onPinEvent} - onRowSelected={onRowSelected} - onUnPinEvent={onUnPinEvent} - refetch={refetch} - selectedEventIds={selectedEventIds} - showCheckboxes={showCheckboxes} - showNotes={!!showNotes[event._id]} - timelineId={timelineId} - toggleShowNotes={onToggleShowNotes} - updateNote={updateNote} - /> - - <EventsTrSupplementContainerWrapper> - <EventsTrSupplement - className="siemEventsTable__trSupplement--notes" - data-test-subj="event-notes-flex-item" - > - <NoteCards - associateNote={associateNote} - data-test-subj="note-cards" - getNewNoteId={getNewNoteId} - getNotesByIds={getNotesByIds} - noteIds={eventIdToNoteIds[event._id] || emptyNotes} - showAddNote={!!showNotes[event._id]} - status={timelineStatus} - toggleShowAddNote={onToggleShowNotes} - updateNote={updateNote} - /> - </EventsTrSupplement> - - {getRowRenderer(event.ecs, rowRenderers).renderRow({ - browserFields, - data: event.ecs, - timelineId, - })} - - <EventsTrSupplement - className="siemEventsTable__trSupplement--attributes" - data-test-subj="event-details" - > - <ExpandableEvent - browserFields={browserFields} - columnHeaders={columnHeaders} - event={detailsData || emptyDetails} - forceExpand={!!expanded[event._id] && !loading} - id={event._id} - onEventToggled={onToggleExpanded} - onUpdateColumns={onUpdateColumns} - timelineId={timelineId} - toggleColumn={toggleColumn} - /> - </EventsTrSupplement> - </EventsTrSupplementContainerWrapper> - </EventsTrGroup> - ); - } else { - // Height place holder for visibility detection as well as re-rendering sections. - const height = - divElement.current != null && divElement.current!.clientHeight - ? `${divElement.current!.clientHeight}px` - : DEFAULT_ROW_HEIGHT; - - return <SkeletonRow cellCount={columnCount} rowHeight={height} />; - } - }} + {VisibilitySensorContent} </VisibilitySensor> ); }; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/suricata/suricata_signature.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/suricata/suricata_signature.tsx index 1cd78178d017f..5d4821757d774 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/suricata/suricata_signature.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/suricata/suricata_signature.tsx @@ -5,7 +5,7 @@ */ import { EuiBadge, EuiFlexGroup, EuiFlexItem, EuiToolTip } from '@elastic/eui'; -import React from 'react'; +import React, { useCallback, useMemo } from 'react'; import styled from 'styled-components'; import { @@ -19,7 +19,7 @@ import { Provider } from '../../../data_providers/provider'; import { TokensFlexItem } from '../helpers'; import { getBeginningTokens } from './suricata_links'; import { DefaultDraggable } from '../../../../../../common/components/draggables'; -import { IS_OPERATOR } from '../../../data_providers/data_provider'; +import { IS_OPERATOR, QueryOperator } from '../../../data_providers/data_provider'; export const SURICATA_SIGNATURE_FIELD_NAME = 'suricata.eve.alert.signature'; export const SURICATA_SIGNATURE_ID_FIELD_NAME = 'suricata.eve.alert.signature_id'; @@ -57,41 +57,49 @@ export const Tokens = React.memo<{ tokens: string[] }>(({ tokens }) => ( Tokens.displayName = 'Tokens'; export const DraggableSignatureId = React.memo<{ id: string; signatureId: number }>( - ({ id, signatureId }) => ( - <SignatureFlexItem grow={false}> - <DraggableWrapper - dataProvider={{ - and: [], - enabled: true, - id: escapeDataProviderId(`suricata-draggable-signature-id-${id}-sig-${signatureId}`), - name: String(signatureId), - excluded: false, - kqlQuery: '', - queryMatch: { - field: SURICATA_SIGNATURE_ID_FIELD_NAME, - value: signatureId, - operator: IS_OPERATOR, - }, - }} - render={(dataProvider, _, snapshot) => - snapshot.isDragging ? ( - <DragEffects> - <Provider dataProvider={dataProvider} /> - </DragEffects> - ) : ( - <EuiToolTip - data-test-subj="signature-id-tooltip" - content={SURICATA_SIGNATURE_ID_FIELD_NAME} - > - <Badge iconType="number" color="hollow" title=""> - {signatureId} - </Badge> - </EuiToolTip> - ) - } - /> - </SignatureFlexItem> - ) + ({ id, signatureId }) => { + const dataProviderProp = useMemo( + () => ({ + and: [], + enabled: true, + id: escapeDataProviderId(`suricata-draggable-signature-id-${id}-sig-${signatureId}`), + name: String(signatureId), + excluded: false, + kqlQuery: '', + queryMatch: { + field: SURICATA_SIGNATURE_ID_FIELD_NAME, + value: signatureId, + operator: IS_OPERATOR as QueryOperator, + }, + }), + [id, signatureId] + ); + + const render = useCallback( + (dataProvider, _, snapshot) => + snapshot.isDragging ? ( + <DragEffects> + <Provider dataProvider={dataProvider} /> + </DragEffects> + ) : ( + <EuiToolTip + data-test-subj="signature-id-tooltip" + content={SURICATA_SIGNATURE_ID_FIELD_NAME} + > + <Badge iconType="number" color="hollow" title=""> + {signatureId} + </Badge> + </EuiToolTip> + ), + [signatureId] + ); + + return ( + <SignatureFlexItem grow={false}> + <DraggableWrapper dataProvider={dataProviderProp} render={render} /> + </SignatureFlexItem> + ); + } ); DraggableSignatureId.displayName = 'DraggableSignatureId'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/zeek/zeek_signature.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/zeek/zeek_signature.tsx index 07e32a9a4e5d1..9ef579706f118 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/zeek/zeek_signature.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/zeek/zeek_signature.tsx @@ -6,7 +6,7 @@ import { EuiBadge, EuiFlexGroup, EuiFlexItem, EuiToolTip } from '@elastic/eui'; import { get } from 'lodash/fp'; -import React from 'react'; +import React, { useCallback, useMemo } from 'react'; import styled from 'styled-components'; import { Ecs } from '../../../../../../../common/ecs'; @@ -17,7 +17,7 @@ import { import { escapeDataProviderId } from '../../../../../../common/components/drag_and_drop/helpers'; import { GoogleLink, ReputationLink } from '../../../../../../common/components/links'; import { Provider } from '../../../data_providers/provider'; -import { IS_OPERATOR } from '../../../data_providers/data_provider'; +import { IS_OPERATOR, QueryOperator } from '../../../data_providers/data_provider'; import * as i18n from './translations'; @@ -68,42 +68,46 @@ export const DraggableZeekElement = React.memo<{ field: string; value: string | null | undefined; stringRenderer?: StringRenderer; -}>(({ id, field, value, stringRenderer = defaultStringRenderer }) => - value != null ? ( +}>(({ id, field, value, stringRenderer = defaultStringRenderer }) => { + const dataProviderProp = useMemo( + () => ({ + and: [], + enabled: true, + id: escapeDataProviderId(`draggable-zeek-element-draggable-wrapper-${id}-${field}-${value}`), + name: value!, + excluded: false, + kqlQuery: '', + queryMatch: { + field, + value: value!, + operator: IS_OPERATOR as QueryOperator, + }, + }), + [field, id, value] + ); + + const render = useCallback( + (dataProvider, _, snapshot) => + snapshot.isDragging ? ( + <DragEffects> + <Provider dataProvider={dataProvider} /> + </DragEffects> + ) : ( + <EuiToolTip data-test-subj="badge-tooltip" content={field}> + <Badge iconType="tag" color="hollow" title=""> + {stringRenderer(value!)} + </Badge> + </EuiToolTip> + ), + [field, stringRenderer, value] + ); + + return value != null ? ( <TokensFlexItem grow={false}> - <DraggableWrapper - dataProvider={{ - and: [], - enabled: true, - id: escapeDataProviderId( - `draggable-zeek-element-draggable-wrapper-${id}-${field}-${value}` - ), - name: value, - excluded: false, - kqlQuery: '', - queryMatch: { - field, - value, - operator: IS_OPERATOR, - }, - }} - render={(dataProvider, _, snapshot) => - snapshot.isDragging ? ( - <DragEffects> - <Provider dataProvider={dataProvider} /> - </DragEffects> - ) : ( - <EuiToolTip data-test-subj="badge-tooltip" content={field}> - <Badge iconType="tag" color="hollow" title=""> - {stringRenderer(value)} - </Badge> - </EuiToolTip> - ) - } - /> + <DraggableWrapper dataProvider={dataProviderProp} render={render} /> </TokensFlexItem> - ) : null -); + ) : null; +}); DraggableZeekElement.displayName = 'DraggableZeekElement'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/__snapshots__/data_providers.test.tsx.snap b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/__snapshots__/data_providers.test.tsx.snap index 14304b99263ac..a8818517fb94b 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/__snapshots__/data_providers.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/__snapshots__/data_providers.test.tsx.snap @@ -144,11 +144,6 @@ exports[`DataProviders rendering renders correctly against snapshot 1`] = ` }, ] } - onDataProviderEdited={[MockFunction]} - onDataProviderRemoved={[MockFunction]} - onToggleDataProviderEnabled={[MockFunction]} - onToggleDataProviderExcluded={[MockFunction]} - onToggleDataProviderType={[MockFunction]} timelineId="foo" /> </DropTargetDataProviders> diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/__snapshots__/providers.test.tsx.snap b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/__snapshots__/providers.test.tsx.snap index a86c99cbc094a..281a26b08df67 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/__snapshots__/providers.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/__snapshots__/providers.test.tsx.snap @@ -2,556 +2,1717 @@ exports[`Providers rendering renders correctly against snapshot 1`] = ` <div> - <EuiFlexGroup - alignItems="center" - gutterSize="none" - > - <Styled(EuiFlexItem) - grow={false} - > - <styled.div - hideBadge={true} - > - <AndOrBadge - type="or" - /> - </styled.div> - </Styled(EuiFlexItem)> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ( - </styled.span> - </Styled(EuiFlexItem)> - <EuiFlexItem - grow={false} - > - <Connect(Droppable) - direction="horizontal" - droppableId="droppableId.timelineProviders.foo.group.0" - getContainerForClone={[Function]} - ignoreContainerClipping={false} - isCombineEnabled={false} - isDropDisabled={false} - mode="standard" - renderClone={null} - type="DEFAULT" - > - <Component /> - </Connect(Droppable)> - </EuiFlexItem> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ) - </styled.span> - </Styled(EuiFlexItem)> - </EuiFlexGroup> - <EuiSpacer - size="xs" + <DataProvidersGroup + browserFields={Object {}} + dataProviders={ + Array [ + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 1", + "kqlQuery": "", + "name": "Provider 1", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 1", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 2", + "kqlQuery": "", + "name": "Provider 2", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 2", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 3", + "kqlQuery": "", + "name": "Provider 3", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 3", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 4", + "kqlQuery": "", + "name": "Provider 4", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 4", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 5", + "kqlQuery": "", + "name": "Provider 5", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 5", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 6", + "kqlQuery": "", + "name": "Provider 6", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 6", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 7", + "kqlQuery": "", + "name": "Provider 7", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 7", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 8", + "kqlQuery": "", + "name": "Provider 8", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 8", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 9", + "kqlQuery": "", + "name": "Provider 9", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 9", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 10", + "kqlQuery": "", + "name": "Provider 10", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 10", + }, + }, + ] + } + group={ + Array [ + Object { + "enabled": true, + "excluded": false, + "id": "id-Provider 1", + "kqlQuery": "", + "name": "Provider 1", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 1", + }, + }, + ] + } + groupIndex={0} + isLastGroup={false} + key="droppable-0" + timelineId="test" /> - <EuiFlexGroup - alignItems="center" - gutterSize="none" - > - <Styled(EuiFlexItem) - grow={false} - > - <styled.div - hideBadge={false} - > - <AndOrBadge - type="or" - /> - </styled.div> - </Styled(EuiFlexItem)> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ( - </styled.span> - </Styled(EuiFlexItem)> - <EuiFlexItem - grow={false} - > - <Connect(Droppable) - direction="horizontal" - droppableId="droppableId.timelineProviders.foo.group.1" - getContainerForClone={[Function]} - ignoreContainerClipping={false} - isCombineEnabled={false} - isDropDisabled={false} - mode="standard" - renderClone={null} - type="DEFAULT" - > - <Component /> - </Connect(Droppable)> - </EuiFlexItem> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ) - </styled.span> - </Styled(EuiFlexItem)> - </EuiFlexGroup> - <EuiSpacer - size="xs" + <DataProvidersGroup + browserFields={Object {}} + dataProviders={ + Array [ + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 1", + "kqlQuery": "", + "name": "Provider 1", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 1", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 2", + "kqlQuery": "", + "name": "Provider 2", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 2", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 3", + "kqlQuery": "", + "name": "Provider 3", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 3", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 4", + "kqlQuery": "", + "name": "Provider 4", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 4", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 5", + "kqlQuery": "", + "name": "Provider 5", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 5", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 6", + "kqlQuery": "", + "name": "Provider 6", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 6", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 7", + "kqlQuery": "", + "name": "Provider 7", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 7", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 8", + "kqlQuery": "", + "name": "Provider 8", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 8", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 9", + "kqlQuery": "", + "name": "Provider 9", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 9", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 10", + "kqlQuery": "", + "name": "Provider 10", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 10", + }, + }, + ] + } + group={ + Array [ + Object { + "enabled": true, + "excluded": false, + "id": "id-Provider 2", + "kqlQuery": "", + "name": "Provider 2", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 2", + }, + }, + ] + } + groupIndex={1} + isLastGroup={false} + key="droppable-1" + timelineId="test" /> - <EuiFlexGroup - alignItems="center" - gutterSize="none" - > - <Styled(EuiFlexItem) - grow={false} - > - <styled.div - hideBadge={false} - > - <AndOrBadge - type="or" - /> - </styled.div> - </Styled(EuiFlexItem)> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ( - </styled.span> - </Styled(EuiFlexItem)> - <EuiFlexItem - grow={false} - > - <Connect(Droppable) - direction="horizontal" - droppableId="droppableId.timelineProviders.foo.group.2" - getContainerForClone={[Function]} - ignoreContainerClipping={false} - isCombineEnabled={false} - isDropDisabled={false} - mode="standard" - renderClone={null} - type="DEFAULT" - > - <Component /> - </Connect(Droppable)> - </EuiFlexItem> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ) - </styled.span> - </Styled(EuiFlexItem)> - </EuiFlexGroup> - <EuiSpacer - size="xs" + <DataProvidersGroup + browserFields={Object {}} + dataProviders={ + Array [ + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 1", + "kqlQuery": "", + "name": "Provider 1", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 1", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 2", + "kqlQuery": "", + "name": "Provider 2", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 2", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 3", + "kqlQuery": "", + "name": "Provider 3", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 3", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 4", + "kqlQuery": "", + "name": "Provider 4", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 4", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 5", + "kqlQuery": "", + "name": "Provider 5", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 5", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 6", + "kqlQuery": "", + "name": "Provider 6", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 6", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 7", + "kqlQuery": "", + "name": "Provider 7", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 7", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 8", + "kqlQuery": "", + "name": "Provider 8", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 8", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 9", + "kqlQuery": "", + "name": "Provider 9", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 9", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 10", + "kqlQuery": "", + "name": "Provider 10", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 10", + }, + }, + ] + } + group={ + Array [ + Object { + "enabled": true, + "excluded": false, + "id": "id-Provider 3", + "kqlQuery": "", + "name": "Provider 3", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 3", + }, + }, + ] + } + groupIndex={2} + isLastGroup={false} + key="droppable-2" + timelineId="test" /> - <EuiFlexGroup - alignItems="center" - gutterSize="none" - > - <Styled(EuiFlexItem) - grow={false} - > - <styled.div - hideBadge={false} - > - <AndOrBadge - type="or" - /> - </styled.div> - </Styled(EuiFlexItem)> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ( - </styled.span> - </Styled(EuiFlexItem)> - <EuiFlexItem - grow={false} - > - <Connect(Droppable) - direction="horizontal" - droppableId="droppableId.timelineProviders.foo.group.3" - getContainerForClone={[Function]} - ignoreContainerClipping={false} - isCombineEnabled={false} - isDropDisabled={false} - mode="standard" - renderClone={null} - type="DEFAULT" - > - <Component /> - </Connect(Droppable)> - </EuiFlexItem> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ) - </styled.span> - </Styled(EuiFlexItem)> - </EuiFlexGroup> - <EuiSpacer - size="xs" + <DataProvidersGroup + browserFields={Object {}} + dataProviders={ + Array [ + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 1", + "kqlQuery": "", + "name": "Provider 1", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 1", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 2", + "kqlQuery": "", + "name": "Provider 2", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 2", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 3", + "kqlQuery": "", + "name": "Provider 3", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 3", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 4", + "kqlQuery": "", + "name": "Provider 4", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 4", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 5", + "kqlQuery": "", + "name": "Provider 5", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 5", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 6", + "kqlQuery": "", + "name": "Provider 6", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 6", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 7", + "kqlQuery": "", + "name": "Provider 7", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 7", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 8", + "kqlQuery": "", + "name": "Provider 8", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 8", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 9", + "kqlQuery": "", + "name": "Provider 9", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 9", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 10", + "kqlQuery": "", + "name": "Provider 10", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 10", + }, + }, + ] + } + group={ + Array [ + Object { + "enabled": true, + "excluded": false, + "id": "id-Provider 4", + "kqlQuery": "", + "name": "Provider 4", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 4", + }, + }, + ] + } + groupIndex={3} + isLastGroup={false} + key="droppable-3" + timelineId="test" /> - <EuiFlexGroup - alignItems="center" - gutterSize="none" - > - <Styled(EuiFlexItem) - grow={false} - > - <styled.div - hideBadge={false} - > - <AndOrBadge - type="or" - /> - </styled.div> - </Styled(EuiFlexItem)> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ( - </styled.span> - </Styled(EuiFlexItem)> - <EuiFlexItem - grow={false} - > - <Connect(Droppable) - direction="horizontal" - droppableId="droppableId.timelineProviders.foo.group.4" - getContainerForClone={[Function]} - ignoreContainerClipping={false} - isCombineEnabled={false} - isDropDisabled={false} - mode="standard" - renderClone={null} - type="DEFAULT" - > - <Component /> - </Connect(Droppable)> - </EuiFlexItem> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ) - </styled.span> - </Styled(EuiFlexItem)> - </EuiFlexGroup> - <EuiSpacer - size="xs" + <DataProvidersGroup + browserFields={Object {}} + dataProviders={ + Array [ + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 1", + "kqlQuery": "", + "name": "Provider 1", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 1", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 2", + "kqlQuery": "", + "name": "Provider 2", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 2", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 3", + "kqlQuery": "", + "name": "Provider 3", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 3", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 4", + "kqlQuery": "", + "name": "Provider 4", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 4", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 5", + "kqlQuery": "", + "name": "Provider 5", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 5", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 6", + "kqlQuery": "", + "name": "Provider 6", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 6", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 7", + "kqlQuery": "", + "name": "Provider 7", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 7", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 8", + "kqlQuery": "", + "name": "Provider 8", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 8", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 9", + "kqlQuery": "", + "name": "Provider 9", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 9", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 10", + "kqlQuery": "", + "name": "Provider 10", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 10", + }, + }, + ] + } + group={ + Array [ + Object { + "enabled": true, + "excluded": false, + "id": "id-Provider 5", + "kqlQuery": "", + "name": "Provider 5", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 5", + }, + }, + ] + } + groupIndex={4} + isLastGroup={false} + key="droppable-4" + timelineId="test" /> - <EuiFlexGroup - alignItems="center" - gutterSize="none" - > - <Styled(EuiFlexItem) - grow={false} - > - <styled.div - hideBadge={false} - > - <AndOrBadge - type="or" - /> - </styled.div> - </Styled(EuiFlexItem)> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ( - </styled.span> - </Styled(EuiFlexItem)> - <EuiFlexItem - grow={false} - > - <Connect(Droppable) - direction="horizontal" - droppableId="droppableId.timelineProviders.foo.group.5" - getContainerForClone={[Function]} - ignoreContainerClipping={false} - isCombineEnabled={false} - isDropDisabled={false} - mode="standard" - renderClone={null} - type="DEFAULT" - > - <Component /> - </Connect(Droppable)> - </EuiFlexItem> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ) - </styled.span> - </Styled(EuiFlexItem)> - </EuiFlexGroup> - <EuiSpacer - size="xs" + <DataProvidersGroup + browserFields={Object {}} + dataProviders={ + Array [ + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 1", + "kqlQuery": "", + "name": "Provider 1", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 1", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 2", + "kqlQuery": "", + "name": "Provider 2", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 2", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 3", + "kqlQuery": "", + "name": "Provider 3", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 3", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 4", + "kqlQuery": "", + "name": "Provider 4", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 4", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 5", + "kqlQuery": "", + "name": "Provider 5", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 5", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 6", + "kqlQuery": "", + "name": "Provider 6", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 6", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 7", + "kqlQuery": "", + "name": "Provider 7", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 7", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 8", + "kqlQuery": "", + "name": "Provider 8", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 8", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 9", + "kqlQuery": "", + "name": "Provider 9", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 9", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 10", + "kqlQuery": "", + "name": "Provider 10", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 10", + }, + }, + ] + } + group={ + Array [ + Object { + "enabled": true, + "excluded": false, + "id": "id-Provider 6", + "kqlQuery": "", + "name": "Provider 6", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 6", + }, + }, + ] + } + groupIndex={5} + isLastGroup={false} + key="droppable-5" + timelineId="test" /> - <EuiFlexGroup - alignItems="center" - gutterSize="none" - > - <Styled(EuiFlexItem) - grow={false} - > - <styled.div - hideBadge={false} - > - <AndOrBadge - type="or" - /> - </styled.div> - </Styled(EuiFlexItem)> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ( - </styled.span> - </Styled(EuiFlexItem)> - <EuiFlexItem - grow={false} - > - <Connect(Droppable) - direction="horizontal" - droppableId="droppableId.timelineProviders.foo.group.6" - getContainerForClone={[Function]} - ignoreContainerClipping={false} - isCombineEnabled={false} - isDropDisabled={false} - mode="standard" - renderClone={null} - type="DEFAULT" - > - <Component /> - </Connect(Droppable)> - </EuiFlexItem> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ) - </styled.span> - </Styled(EuiFlexItem)> - </EuiFlexGroup> - <EuiSpacer - size="xs" + <DataProvidersGroup + browserFields={Object {}} + dataProviders={ + Array [ + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 1", + "kqlQuery": "", + "name": "Provider 1", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 1", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 2", + "kqlQuery": "", + "name": "Provider 2", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 2", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 3", + "kqlQuery": "", + "name": "Provider 3", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 3", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 4", + "kqlQuery": "", + "name": "Provider 4", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 4", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 5", + "kqlQuery": "", + "name": "Provider 5", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 5", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 6", + "kqlQuery": "", + "name": "Provider 6", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 6", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 7", + "kqlQuery": "", + "name": "Provider 7", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 7", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 8", + "kqlQuery": "", + "name": "Provider 8", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 8", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 9", + "kqlQuery": "", + "name": "Provider 9", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 9", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 10", + "kqlQuery": "", + "name": "Provider 10", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 10", + }, + }, + ] + } + group={ + Array [ + Object { + "enabled": true, + "excluded": false, + "id": "id-Provider 7", + "kqlQuery": "", + "name": "Provider 7", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 7", + }, + }, + ] + } + groupIndex={6} + isLastGroup={false} + key="droppable-6" + timelineId="test" /> - <EuiFlexGroup - alignItems="center" - gutterSize="none" - > - <Styled(EuiFlexItem) - grow={false} - > - <styled.div - hideBadge={false} - > - <AndOrBadge - type="or" - /> - </styled.div> - </Styled(EuiFlexItem)> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ( - </styled.span> - </Styled(EuiFlexItem)> - <EuiFlexItem - grow={false} - > - <Connect(Droppable) - direction="horizontal" - droppableId="droppableId.timelineProviders.foo.group.7" - getContainerForClone={[Function]} - ignoreContainerClipping={false} - isCombineEnabled={false} - isDropDisabled={false} - mode="standard" - renderClone={null} - type="DEFAULT" - > - <Component /> - </Connect(Droppable)> - </EuiFlexItem> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ) - </styled.span> - </Styled(EuiFlexItem)> - </EuiFlexGroup> - <EuiSpacer - size="xs" + <DataProvidersGroup + browserFields={Object {}} + dataProviders={ + Array [ + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 1", + "kqlQuery": "", + "name": "Provider 1", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 1", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 2", + "kqlQuery": "", + "name": "Provider 2", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 2", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 3", + "kqlQuery": "", + "name": "Provider 3", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 3", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 4", + "kqlQuery": "", + "name": "Provider 4", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 4", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 5", + "kqlQuery": "", + "name": "Provider 5", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 5", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 6", + "kqlQuery": "", + "name": "Provider 6", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 6", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 7", + "kqlQuery": "", + "name": "Provider 7", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 7", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 8", + "kqlQuery": "", + "name": "Provider 8", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 8", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 9", + "kqlQuery": "", + "name": "Provider 9", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 9", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 10", + "kqlQuery": "", + "name": "Provider 10", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 10", + }, + }, + ] + } + group={ + Array [ + Object { + "enabled": true, + "excluded": false, + "id": "id-Provider 8", + "kqlQuery": "", + "name": "Provider 8", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 8", + }, + }, + ] + } + groupIndex={7} + isLastGroup={false} + key="droppable-7" + timelineId="test" /> - <EuiFlexGroup - alignItems="center" - gutterSize="none" - > - <Styled(EuiFlexItem) - grow={false} - > - <styled.div - hideBadge={false} - > - <AndOrBadge - type="or" - /> - </styled.div> - </Styled(EuiFlexItem)> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ( - </styled.span> - </Styled(EuiFlexItem)> - <EuiFlexItem - grow={false} - > - <Connect(Droppable) - direction="horizontal" - droppableId="droppableId.timelineProviders.foo.group.8" - getContainerForClone={[Function]} - ignoreContainerClipping={false} - isCombineEnabled={false} - isDropDisabled={false} - mode="standard" - renderClone={null} - type="DEFAULT" - > - <Component /> - </Connect(Droppable)> - </EuiFlexItem> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ) - </styled.span> - </Styled(EuiFlexItem)> - </EuiFlexGroup> - <EuiSpacer - size="xs" + <DataProvidersGroup + browserFields={Object {}} + dataProviders={ + Array [ + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 1", + "kqlQuery": "", + "name": "Provider 1", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 1", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 2", + "kqlQuery": "", + "name": "Provider 2", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 2", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 3", + "kqlQuery": "", + "name": "Provider 3", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 3", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 4", + "kqlQuery": "", + "name": "Provider 4", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 4", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 5", + "kqlQuery": "", + "name": "Provider 5", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 5", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 6", + "kqlQuery": "", + "name": "Provider 6", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 6", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 7", + "kqlQuery": "", + "name": "Provider 7", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 7", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 8", + "kqlQuery": "", + "name": "Provider 8", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 8", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 9", + "kqlQuery": "", + "name": "Provider 9", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 9", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 10", + "kqlQuery": "", + "name": "Provider 10", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 10", + }, + }, + ] + } + group={ + Array [ + Object { + "enabled": true, + "excluded": false, + "id": "id-Provider 9", + "kqlQuery": "", + "name": "Provider 9", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 9", + }, + }, + ] + } + groupIndex={8} + isLastGroup={false} + key="droppable-8" + timelineId="test" /> - <EuiFlexGroup - alignItems="center" - gutterSize="none" - > - <Styled(EuiFlexItem) - grow={false} - > - <styled.div - hideBadge={false} - > - <AndOrBadge - type="or" - /> - </styled.div> - </Styled(EuiFlexItem)> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ( - </styled.span> - </Styled(EuiFlexItem)> - <EuiFlexItem - grow={false} - > - <Connect(Droppable) - direction="horizontal" - droppableId="droppableId.timelineProviders.foo.group.9" - getContainerForClone={[Function]} - ignoreContainerClipping={false} - isCombineEnabled={false} - isDropDisabled={false} - mode="standard" - renderClone={null} - type="DEFAULT" - > - <Component /> - </Connect(Droppable)> - </EuiFlexItem> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ) - </styled.span> - </Styled(EuiFlexItem)> - </EuiFlexGroup> - <EuiSpacer - size="xs" + <DataProvidersGroup + browserFields={Object {}} + dataProviders={ + Array [ + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 1", + "kqlQuery": "", + "name": "Provider 1", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 1", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 2", + "kqlQuery": "", + "name": "Provider 2", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 2", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 3", + "kqlQuery": "", + "name": "Provider 3", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 3", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 4", + "kqlQuery": "", + "name": "Provider 4", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 4", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 5", + "kqlQuery": "", + "name": "Provider 5", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 5", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 6", + "kqlQuery": "", + "name": "Provider 6", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 6", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 7", + "kqlQuery": "", + "name": "Provider 7", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 7", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 8", + "kqlQuery": "", + "name": "Provider 8", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 8", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 9", + "kqlQuery": "", + "name": "Provider 9", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 9", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 10", + "kqlQuery": "", + "name": "Provider 10", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 10", + }, + }, + ] + } + group={ + Array [ + Object { + "enabled": true, + "excluded": false, + "id": "id-Provider 10", + "kqlQuery": "", + "name": "Provider 10", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 10", + }, + }, + ] + } + groupIndex={9} + isLastGroup={false} + key="droppable-9" + timelineId="test" + /> + <DataProvidersGroup + browserFields={Object {}} + dataProviders={ + Array [ + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 1", + "kqlQuery": "", + "name": "Provider 1", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 1", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 2", + "kqlQuery": "", + "name": "Provider 2", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 2", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 3", + "kqlQuery": "", + "name": "Provider 3", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 3", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 4", + "kqlQuery": "", + "name": "Provider 4", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 4", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 5", + "kqlQuery": "", + "name": "Provider 5", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 5", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 6", + "kqlQuery": "", + "name": "Provider 6", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 6", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 7", + "kqlQuery": "", + "name": "Provider 7", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 7", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 8", + "kqlQuery": "", + "name": "Provider 8", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 8", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 9", + "kqlQuery": "", + "name": "Provider 9", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 9", + }, + }, + Object { + "and": Array [], + "enabled": true, + "excluded": false, + "id": "id-Provider 10", + "kqlQuery": "", + "name": "Provider 10", + "queryMatch": Object { + "field": "name", + "operator": ":", + "value": "Provider 10", + }, + }, + ] + } + group={Array []} + groupIndex={10} + isLastGroup={true} + key="droppable-10" + timelineId="test" /> - <EuiFlexGroup - alignItems="center" - gutterSize="none" - > - <Styled(EuiFlexItem) - grow={false} - > - <styled.div - hideBadge={false} - > - <AndOrBadge - type="or" - /> - </styled.div> - </Styled(EuiFlexItem)> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ( - </styled.span> - </Styled(EuiFlexItem)> - <EuiFlexItem - grow={false} - > - <Connect(Droppable) - direction="horizontal" - droppableId="droppableId.timelineProviders.foo.group.10" - getContainerForClone={[Function]} - ignoreContainerClipping={false} - isCombineEnabled={false} - isDropDisabled={false} - mode="standard" - renderClone={null} - type="DEFAULT" - > - <Component /> - </Connect(Droppable)> - </EuiFlexItem> - <Styled(EuiFlexItem) - grow={false} - > - <styled.span> - ) - </styled.span> - </Styled(EuiFlexItem)> - <AddDataProviderPopover - browserFields={Object {}} - timelineId="foo" - /> - </EuiFlexGroup> </div> `; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/data_providers.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/data_providers.test.tsx index d48be25b08897..a7ae14dea510f 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/data_providers.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/data_providers.test.tsx @@ -41,11 +41,6 @@ describe('DataProviders', () => { data-test-subj="dataProviders-container" dataProviders={mockDataProviders} timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} /> </ManageGlobalTimeline> </TestProviders> @@ -58,16 +53,7 @@ describe('DataProviders', () => { const wrapper = mount( <TestProviders> - <DataProviders - browserFields={{}} - timelineId="foo" - dataProviders={dataProviders} - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <DataProviders browserFields={{}} timelineId="foo" dataProviders={dataProviders} /> </TestProviders> ); @@ -77,16 +63,7 @@ describe('DataProviders', () => { test('it renders the data providers', () => { const wrapper = mount( <TestProviders> - <DataProviders - browserFields={{}} - timelineId="foo" - dataProviders={mockDataProviders} - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <DataProviders browserFields={{}} timelineId="foo" dataProviders={mockDataProviders} /> </TestProviders> ); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/index.tsx index c9e06f89af41c..b892ca089eb4c 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/index.tsx @@ -14,13 +14,6 @@ import { droppableTimelineProvidersPrefix, IS_DRAGGING_CLASS_NAME, } from '../../../../common/components/drag_and_drop/helpers'; -import { - OnDataProviderEdited, - OnDataProviderRemoved, - OnToggleDataProviderEnabled, - OnToggleDataProviderExcluded, - OnToggleDataProviderType, -} from '../events'; import { DataProvider } from './data_provider'; import { Empty } from './empty'; @@ -31,11 +24,6 @@ interface Props { browserFields: BrowserFields; timelineId: string; dataProviders: DataProvider[]; - onDataProviderEdited: OnDataProviderEdited; - onDataProviderRemoved: OnDataProviderRemoved; - onToggleDataProviderEnabled: OnToggleDataProviderEnabled; - onToggleDataProviderExcluded: OnToggleDataProviderExcluded; - onToggleDataProviderType: OnToggleDataProviderType; } const DropTargetDataProvidersContainer = styled.div` @@ -91,48 +79,32 @@ const getDroppableId = (id: string): string => `${droppableTimelineProvidersPref * the user to drop anything with a facet count into * the data pro section. */ -export const DataProviders = React.memo<Props>( - ({ - browserFields, - dataProviders, +export const DataProviders = React.memo<Props>(({ browserFields, dataProviders, timelineId }) => { + const { getManageTimelineById } = useManageTimeline(); + const isLoading = useMemo(() => getManageTimelineById(timelineId).isLoading, [ + getManageTimelineById, timelineId, - onDataProviderEdited, - onDataProviderRemoved, - onToggleDataProviderEnabled, - onToggleDataProviderExcluded, - onToggleDataProviderType, - }) => { - const { getManageTimelineById } = useManageTimeline(); - const isLoading = useMemo(() => getManageTimelineById(timelineId).isLoading, [ - getManageTimelineById, - timelineId, - ]); - return ( - <DropTargetDataProvidersContainer className="drop-target-data-providers-container"> - <DropTargetDataProviders - className="drop-target-data-providers" - data-test-subj="dataProviders" - > - {dataProviders != null && dataProviders.length ? ( - <Providers - browserFields={browserFields} - timelineId={timelineId} - dataProviders={dataProviders} - onDataProviderEdited={onDataProviderEdited} - onDataProviderRemoved={onDataProviderRemoved} - onToggleDataProviderEnabled={onToggleDataProviderEnabled} - onToggleDataProviderExcluded={onToggleDataProviderExcluded} - onToggleDataProviderType={onToggleDataProviderType} - /> - ) : ( - <DroppableWrapper isDropDisabled={isLoading} droppableId={getDroppableId(timelineId)}> - <Empty browserFields={browserFields} timelineId={timelineId} /> - </DroppableWrapper> - )} - </DropTargetDataProviders> - </DropTargetDataProvidersContainer> - ); - } -); + ]); + return ( + <DropTargetDataProvidersContainer className="drop-target-data-providers-container"> + <DropTargetDataProviders + className="drop-target-data-providers" + data-test-subj="dataProviders" + > + {dataProviders != null && dataProviders.length ? ( + <Providers + browserFields={browserFields} + timelineId={timelineId} + dataProviders={dataProviders} + /> + ) : ( + <DroppableWrapper isDropDisabled={isLoading} droppableId={getDroppableId(timelineId)}> + <Empty browserFields={browserFields} timelineId={timelineId} /> + </DroppableWrapper> + )} + </DropTargetDataProviders> + </DropTargetDataProvidersContainer> + ); +}); DataProviders.displayName = 'DataProviders'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/provider_badge.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/provider_badge.tsx index bf2094e7659ee..b66a332fc977d 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/provider_badge.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/provider_badge.tsx @@ -91,7 +91,7 @@ const ConvertFieldBadge = styled(ProviderFieldBadge)` } `; -const TemplateFieldBadge: React.FC<TemplateFieldBadgeProps> = ({ type, toggleType }) => { +const TemplateFieldBadgeComponent: React.FC<TemplateFieldBadgeProps> = ({ type, toggleType }) => { if (type !== DataProviderType.template) { return ( <ConvertFieldBadge onClick={toggleType}>{i18n.CONVERT_TO_TEMPLATE_FIELD}</ConvertFieldBadge> @@ -101,6 +101,8 @@ const TemplateFieldBadge: React.FC<TemplateFieldBadgeProps> = ({ type, toggleTyp return <StyledTemplateFieldBadge>{i18n.TEMPLATE_FIELD_LABEL}</StyledTemplateFieldBadge>; }; +const TemplateFieldBadge = React.memo(TemplateFieldBadgeComponent); + interface ProviderBadgeProps { deleteProvider: () => void; field: string; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/provider_item_badge.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/provider_item_badge.tsx index 0093c43a17137..fc06d37b9663f 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/provider_item_badge.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/provider_item_badge.tsx @@ -117,21 +117,38 @@ export const ProviderItemBadge = React.memo<ProviderItemBadgeProps>( [unRegisterProvider] ); - const button = ( - <ProviderBadge - deleteProvider={!isLoading ? deleteProvider : noop} - field={field} - kqlQuery={kqlQuery} - isEnabled={isEnabled} - isExcluded={isExcluded} - providerId={providerId} - togglePopover={togglePopover} - toggleType={onToggleTypeProvider} - val={val} - operator={operator} - type={type} - timelineType={timelineType} - /> + const button = useMemo( + () => ( + <ProviderBadge + deleteProvider={!isLoading ? deleteProvider : noop} + field={field} + kqlQuery={kqlQuery} + isEnabled={isEnabled} + isExcluded={isExcluded} + providerId={providerId} + togglePopover={togglePopover} + toggleType={onToggleTypeProvider} + val={val} + operator={operator} + type={type} + timelineType={timelineType} + /> + ), + [ + deleteProvider, + field, + isEnabled, + isExcluded, + isLoading, + kqlQuery, + onToggleTypeProvider, + operator, + providerId, + timelineType, + togglePopover, + type, + val, + ] ); return ( diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/providers.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/providers.test.tsx index 3f371349aa750..2df19605f813c 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/providers.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/providers.test.tsx @@ -12,6 +12,7 @@ import { TestProviders } from '../../../../common/mock/test_providers'; import { DroppableWrapper } from '../../../../common/components/drag_and_drop/droppable_wrapper'; import { FilterManager } from '../../../../../../../../src/plugins/data/public'; +import { timelineActions } from '../../../store/timeline'; import { mockDataProviders } from './mock/mock_data_providers'; import { Providers } from './providers'; import { DELETE_CLASS_NAME, ENABLE_CLASS_NAME, EXCLUDE_CLASS_NAME } from './provider_item_actions'; @@ -24,27 +25,24 @@ describe('Providers', () => { const isLoading: boolean = true; const mount = useMountAppended(); const filterManager = new FilterManager(mockUiSettingsForFilterManager); + const mockOnDataProviderRemoved = jest.spyOn(timelineActions, 'removeProvider'); const manageTimelineForTesting = { - foo: { - ...getTimelineDefaults('foo'), + test: { + ...getTimelineDefaults('test'), filterManager, isLoading, }, }; + + beforeEach(() => { + jest.clearAllMocks(); + }); + describe('rendering', () => { test('renders correctly against snapshot', () => { const wrapper = shallow( - <Providers - browserFields={{}} - dataProviders={mockDataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={mockDataProviders} timelineId="test" /> ); expect(wrapper).toMatchSnapshot(); }); @@ -53,16 +51,7 @@ describe('Providers', () => { const wrapper = mount( <TestProviders> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={mockDataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={mockDataProviders} timelineId="test" /> </DroppableWrapper> </TestProviders> ); @@ -77,20 +66,10 @@ describe('Providers', () => { describe('#onDataProviderRemoved', () => { test('it invokes the onDataProviderRemoved callback when the close button is clicked', () => { - const mockOnDataProviderRemoved = jest.fn(); const wrapper = mount( <TestProviders> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={mockDataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={mockOnDataProviderRemoved} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={mockDataProviders} timelineId="test" /> </DroppableWrapper> </TestProviders> ); @@ -98,25 +77,15 @@ describe('Providers', () => { .find('[data-test-subj="providerBadge"] [data-euiicon-type]') .first() .simulate('click'); - expect(mockOnDataProviderRemoved.mock.calls[0][0]).toEqual('id-Provider 1'); + expect(mockOnDataProviderRemoved.mock.calls[0][0].providerId).toEqual('id-Provider 1'); }); test('while loading data, it does NOT invoke the onDataProviderRemoved callback when the close button is clicked', () => { - const mockOnDataProviderRemoved = jest.fn(); const wrapper = mount( <TestProviders> <ManageGlobalTimeline manageTimelineForTesting={manageTimelineForTesting}> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={mockDataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={mockOnDataProviderRemoved} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={mockDataProviders} timelineId="test" /> </DroppableWrapper> </ManageGlobalTimeline> </TestProviders> @@ -131,20 +100,10 @@ describe('Providers', () => { }); test('it invokes the onDataProviderRemoved callback when you click on the option "Delete" in the provider menu', () => { - const mockOnDataProviderRemoved = jest.fn(); const wrapper = mount( <TestProviders> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={mockDataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={mockOnDataProviderRemoved} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={mockDataProviders} timelineId="test" /> </DroppableWrapper> </TestProviders> ); @@ -156,25 +115,15 @@ describe('Providers', () => { .find(`[data-test-subj="providerActions"] .${DELETE_CLASS_NAME}`) .first() .simulate('click'); - expect(mockOnDataProviderRemoved.mock.calls[0][0]).toEqual('id-Provider 1'); + expect(mockOnDataProviderRemoved.mock.calls[0][0].providerId).toEqual('id-Provider 1'); }); test('while loading data, it does NOT invoke the onDataProviderRemoved callback when you click on the option "Delete" in the provider menu', () => { - const mockOnDataProviderRemoved = jest.fn(); const wrapper = mount( <TestProviders> <ManageGlobalTimeline manageTimelineForTesting={manageTimelineForTesting}> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={mockDataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={mockOnDataProviderRemoved} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={mockDataProviders} timelineId="test" /> </DroppableWrapper> </ManageGlobalTimeline> </TestProviders> @@ -194,20 +143,14 @@ describe('Providers', () => { describe('#onToggleDataProviderEnabled', () => { test('it invokes the onToggleDataProviderEnabled callback when you click on the option "Temporary disable" in the provider menu', () => { - const mockOnToggleDataProviderEnabled = jest.fn(); + const mockOnToggleDataProviderEnabled = jest.spyOn( + timelineActions, + 'updateDataProviderEnabled' + ); const wrapper = mount( <TestProviders> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={mockDataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={mockOnToggleDataProviderEnabled} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={mockDataProviders} timelineId="test" /> </DroppableWrapper> </TestProviders> ); @@ -220,27 +163,23 @@ describe('Providers', () => { .first() .simulate('click'); expect(mockOnToggleDataProviderEnabled.mock.calls[0][0]).toEqual({ + andProviderId: undefined, enabled: false, + id: 'test', providerId: 'id-Provider 1', }); }); test('while loading data, it does NOT invoke the onToggleDataProviderEnabled callback when you click on the option "Temporary disable" in the provider menu', () => { - const mockOnToggleDataProviderEnabled = jest.fn(); + const mockOnToggleDataProviderEnabled = jest.spyOn( + timelineActions, + 'updateDataProviderEnabled' + ); const wrapper = mount( <TestProviders> <ManageGlobalTimeline manageTimelineForTesting={manageTimelineForTesting}> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={mockDataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={mockOnToggleDataProviderEnabled} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={mockDataProviders} timelineId="test" /> </DroppableWrapper> </ManageGlobalTimeline> </TestProviders> @@ -260,21 +199,15 @@ describe('Providers', () => { describe('#onToggleDataProviderExcluded', () => { test('it invokes the onToggleDataProviderExcluded callback when you click on the option "Exclude results" in the provider menu', () => { - const onToggleDataProviderExcluded = jest.fn(); + const mockOnToggleDataProviderExcluded = jest.spyOn( + timelineActions, + 'updateDataProviderExcluded' + ); const wrapper = mount( <TestProviders> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={mockDataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={onToggleDataProviderExcluded} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={mockDataProviders} timelineId="test" /> </DroppableWrapper> </TestProviders> ); @@ -288,29 +221,25 @@ describe('Providers', () => { .first() .simulate('click'); - expect(onToggleDataProviderExcluded.mock.calls[0][0]).toEqual({ + expect(mockOnToggleDataProviderExcluded.mock.calls[0][0]).toEqual({ + andProviderId: undefined, excluded: true, + id: 'test', providerId: 'id-Provider 1', }); }); test('while loading data, it does NOT invoke the onToggleDataProviderExcluded callback when you click on the option "Exclude results" in the provider menu', () => { - const onToggleDataProviderExcluded = jest.fn(); + const mockOnToggleDataProviderExcluded = jest.spyOn( + timelineActions, + 'updateDataProviderExcluded' + ); const wrapper = mount( <TestProviders> <ManageGlobalTimeline manageTimelineForTesting={manageTimelineForTesting}> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={mockDataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={onToggleDataProviderExcluded} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={mockDataProviders} timelineId="test" /> </DroppableWrapper> </ManageGlobalTimeline> </TestProviders> @@ -325,7 +254,7 @@ describe('Providers', () => { .first() .simulate('click'); - expect(onToggleDataProviderExcluded).not.toBeCalled(); + expect(mockOnToggleDataProviderExcluded).not.toBeCalled(); }); }); @@ -337,16 +266,7 @@ describe('Providers', () => { const wrapper = mount( <TestProviders> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={dataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={dataProviders} timelineId="test" /> </DroppableWrapper> </TestProviders> ); @@ -364,21 +284,11 @@ describe('Providers', () => { test('it invokes the onDataProviderRemoved callback when you click on the close button is clicked', () => { const dataProviders = mockDataProviders.slice(0, 1); dataProviders[0].and = mockDataProviders.slice(1, 3); - const mockOnDataProviderRemoved = jest.fn(); const wrapper = mount( <TestProviders> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={mockDataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={mockOnDataProviderRemoved} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={mockDataProviders} timelineId="test" /> </DroppableWrapper> </TestProviders> ); @@ -392,28 +302,22 @@ describe('Providers', () => { wrapper.update(); - expect(mockOnDataProviderRemoved.mock.calls[0]).toEqual(['id-Provider 1', 'id-Provider 2']); + expect(mockOnDataProviderRemoved.mock.calls[0][0]).toEqual({ + andProviderId: 'id-Provider 2', + id: 'test', + providerId: 'id-Provider 1', + }); }); test('while loading data, it does NOT invoke the onDataProviderRemoved callback when you click on the close button is clicked', () => { const dataProviders = mockDataProviders.slice(0, 1); dataProviders[0].and = mockDataProviders.slice(1, 3); - const mockOnDataProviderRemoved = jest.fn(); const wrapper = mount( <TestProviders> <ManageGlobalTimeline manageTimelineForTesting={manageTimelineForTesting}> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={mockDataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={mockOnDataProviderRemoved} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={mockDataProviders} timelineId="test" /> </DroppableWrapper> </ManageGlobalTimeline> </TestProviders> @@ -434,21 +338,15 @@ describe('Providers', () => { test('it invokes the onToggleDataProviderEnabled callback when you click on the option "Temporary disable" in the provider menu', () => { const dataProviders = mockDataProviders.slice(0, 1); dataProviders[0].and = mockDataProviders.slice(1, 3); - const mockOnToggleDataProviderEnabled = jest.fn(); + const mockOnToggleDataProviderEnabled = jest.spyOn( + timelineActions, + 'updateDataProviderEnabled' + ); const wrapper = mount( <TestProviders> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={dataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={mockOnToggleDataProviderEnabled} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={dataProviders} timelineId="test" /> </DroppableWrapper> </TestProviders> ); @@ -470,6 +368,7 @@ describe('Providers', () => { expect(mockOnToggleDataProviderEnabled.mock.calls[0][0]).toEqual({ andProviderId: 'id-Provider 2', enabled: false, + id: 'test', providerId: 'id-Provider 1', }); }); @@ -477,22 +376,16 @@ describe('Providers', () => { test('while loading data, it does NOT invoke the onToggleDataProviderEnabled callback when you click on the option "Temporary disable" in the provider menu', () => { const dataProviders = mockDataProviders.slice(0, 1); dataProviders[0].and = mockDataProviders.slice(1, 3); - const mockOnToggleDataProviderEnabled = jest.fn(); + const mockOnToggleDataProviderEnabled = jest.spyOn( + timelineActions, + 'updateDataProviderEnabled' + ); const wrapper = mount( <TestProviders> <ManageGlobalTimeline manageTimelineForTesting={manageTimelineForTesting}> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={dataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={mockOnToggleDataProviderEnabled} - onToggleDataProviderExcluded={jest.fn()} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={dataProviders} timelineId="test" /> </DroppableWrapper> </ManageGlobalTimeline> </TestProviders> @@ -518,21 +411,15 @@ describe('Providers', () => { test('it invokes the onToggleDataProviderExcluded callback when you click on the option "Exclude results" in the provider menu', () => { const dataProviders = mockDataProviders.slice(0, 1); dataProviders[0].and = mockDataProviders.slice(1, 3); - const mockOnToggleDataProviderExcluded = jest.fn(); + const mockOnToggleDataProviderExcluded = jest.spyOn( + timelineActions, + 'updateDataProviderExcluded' + ); const wrapper = mount( <TestProviders> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={dataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={mockOnToggleDataProviderExcluded} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={dataProviders} timelineId="test" /> </DroppableWrapper> </TestProviders> ); @@ -554,6 +441,7 @@ describe('Providers', () => { expect(mockOnToggleDataProviderExcluded.mock.calls[0][0]).toEqual({ andProviderId: 'id-Provider 2', excluded: true, + id: 'test', providerId: 'id-Provider 1', }); }); @@ -561,22 +449,16 @@ describe('Providers', () => { test('while loading data, it does NOT invoke the onToggleDataProviderExcluded callback when you click on the option "Exclude results" in the provider menu', () => { const dataProviders = mockDataProviders.slice(0, 1); dataProviders[0].and = mockDataProviders.slice(1, 3); - const mockOnToggleDataProviderExcluded = jest.fn(); + const mockOnToggleDataProviderExcluded = jest.spyOn( + timelineActions, + 'updateDataProviderExcluded' + ); const wrapper = mount( <TestProviders> <ManageGlobalTimeline manageTimelineForTesting={manageTimelineForTesting}> <DroppableWrapper droppableId="unitTest"> - <Providers - browserFields={{}} - dataProviders={dataProviders} - timelineId="foo" - onDataProviderEdited={jest.fn()} - onDataProviderRemoved={jest.fn()} - onToggleDataProviderEnabled={jest.fn()} - onToggleDataProviderExcluded={mockOnToggleDataProviderExcluded} - onToggleDataProviderType={jest.fn()} - /> + <Providers browserFields={{}} dataProviders={dataProviders} timelineId="test" /> </DroppableWrapper> </ManageGlobalTimeline> </TestProviders> diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/providers.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/providers.tsx index 1142bbc214d74..4b6f3c6701794 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/providers.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/data_providers/providers.tsx @@ -6,9 +6,12 @@ import { EuiFlexGroup, EuiFlexItem, EuiFormHelpText, EuiSpacer } from '@elastic/eui'; import { rgba } from 'polished'; -import React, { Fragment, useMemo } from 'react'; +import React, { useCallback, useMemo } from 'react'; import { Draggable, DraggingStyle, Droppable, NotDraggingStyle } from 'react-beautiful-dnd'; -import styled, { css } from 'styled-components'; +import styled from 'styled-components'; +import { useDispatch } from 'react-redux'; + +import { timelineActions } from '../../../store/timeline'; import { AndOrBadge } from '../../../../common/components/and_or_badge'; import { AddDataProviderPopover } from './add_data_provider_popover'; @@ -18,13 +21,6 @@ import { IS_DRAGGING_CLASS_NAME, getTimelineProviderDraggableId, } from '../../../../common/components/drag_and_drop/helpers'; -import { - OnDataProviderEdited, - OnDataProviderRemoved, - OnToggleDataProviderEnabled, - OnToggleDataProviderExcluded, - OnToggleDataProviderType, -} from '../events'; import { DataProvider, DataProviderType, DataProvidersAnd, IS_OPERATOR } from './data_provider'; import { EMPTY_GROUP, flattenIntoAndGroups } from './helpers'; @@ -36,11 +32,6 @@ interface Props { browserFields: BrowserFields; timelineId: string; dataProviders: DataProvider[]; - onDataProviderEdited: OnDataProviderEdited; - onDataProviderRemoved: OnDataProviderRemoved; - onToggleDataProviderEnabled: OnToggleDataProviderEnabled; - onToggleDataProviderExcluded: OnToggleDataProviderExcluded; - onToggleDataProviderType: OnToggleDataProviderType; } /** @@ -74,12 +65,10 @@ const DroppableContainer = styled.div` `; const Parens = styled.span` - ${({ theme }) => css` - color: ${theme.eui.euiColorMediumShade}; - font-size: 32px; - padding: 2px; - user-select: none; - `} + color: ${({ theme }) => theme.eui.euiColorMediumShade}; + font-size: 32px; + padding: 2px; + user-select: none; `; const AndOrBadgeContainer = styled.div<{ hideBadge: boolean }>` @@ -123,182 +112,269 @@ const getDataProviderValue = (dataProvider: DataProvidersAnd) => * 2) temporarily disabling a data provider * 3) applying boolean negation to the data provider */ -export const Providers = React.memo<Props>( - ({ - browserFields, - timelineId, - dataProviders, - onDataProviderEdited, - onDataProviderRemoved, - onToggleDataProviderEnabled, - onToggleDataProviderExcluded, - onToggleDataProviderType, - }) => { - // Transform the dataProviders into flattened groups, and append an empty group - const dataProviderGroups: DataProvidersAnd[][] = useMemo( - () => [...flattenIntoAndGroups(dataProviders), ...EMPTY_GROUP], - [dataProviders] +export const Providers = React.memo<Props>(({ browserFields, timelineId, dataProviders }) => { + // Transform the dataProviders into flattened groups, and append an empty group + const dataProviderGroups: DataProvidersAnd[][] = useMemo( + () => [...flattenIntoAndGroups(dataProviders), ...EMPTY_GROUP], + [dataProviders] + ); + + const content = useMemo( + () => + dataProviderGroups.map((group, groupIndex) => ( + <DataProvidersGroup + key={`droppable-${groupIndex}`} + group={group} + groupIndex={groupIndex} + isLastGroup={groupIndex === dataProviderGroups.length - 1} + browserFields={browserFields} + timelineId={timelineId} + dataProviders={dataProviders} + /> + )), + [browserFields, dataProviderGroups, dataProviders, timelineId] + ); + + return <div>{content}</div>; +}); + +Providers.displayName = 'Providers'; + +interface DataProvidersGroupItem extends Omit<Props, 'dataProviders'> { + index: number; + dataProvider: DataProvidersAnd; + group: DataProvidersAnd[]; + groupIndex: number; +} + +export const DataProvidersGroupItem = React.memo<DataProvidersGroupItem>( + ({ browserFields, group, groupIndex, dataProvider, index, timelineId }) => { + const dispatch = useDispatch(); + const draggableId = useMemo( + () => + getTimelineProviderDraggableId({ + dataProviderId: dataProvider.id, + groupIndex, + timelineId, + }), + [dataProvider.id, groupIndex, timelineId] + ); + + const handleDeleteProvider = useCallback(() => { + const payload = { + id: timelineId, + providerId: index > 0 ? group[0].id : dataProvider.id, + andProviderId: index > 0 ? dataProvider.id : undefined, + }; + + dispatch(timelineActions.removeProvider(payload)); + }, [dataProvider.id, dispatch, group, index, timelineId]); + + const handleToggleEnabledProvider = useCallback(() => { + const payload = { + id: timelineId, + providerId: index > 0 ? group[0].id : dataProvider.id, + enabled: !dataProvider.enabled, + andProviderId: index > 0 ? dataProvider.id : undefined, + }; + + dispatch(timelineActions.updateDataProviderEnabled(payload)); + }, [dataProvider.enabled, dataProvider.id, dispatch, group, index, timelineId]); + + const handleToggleExcludedProvider = useCallback(() => { + const payload = { + id: timelineId, + providerId: index > 0 ? group[0].id : dataProvider.id, + excluded: !dataProvider.excluded, + andProviderId: index > 0 ? dataProvider.id : undefined, + }; + + dispatch(timelineActions.updateDataProviderExcluded(payload)); + }, [dataProvider.excluded, dataProvider.id, dispatch, group, index, timelineId]); + + const handleToggleTypeProvider = useCallback(() => { + const payload = { + id: timelineId, + providerId: index > 0 ? group[0].id : dataProvider.id, + type: + dataProvider.type === DataProviderType.template + ? DataProviderType.default + : DataProviderType.template, + andProviderId: index > 0 ? dataProvider.id : undefined, + }; + + dispatch(timelineActions.updateDataProviderType(payload)); + }, [dataProvider.id, dataProvider.type, dispatch, group, index, timelineId]); + + const handleDataProviderEdited = useCallback( + ({ andProviderId, excluded, field, operator, providerId, value }) => + dispatch( + timelineActions.dataProviderEdited({ + andProviderId, + excluded, + field, + id: timelineId, + operator, + providerId, + value, + }) + ), + [dispatch, timelineId] + ); + + const DraggableContent = useCallback( + (provided, snapshot) => ( + <div + ref={provided.innerRef} + {...provided.draggableProps} + {...provided.dragHandleProps} + style={getItemStyle(provided.draggableProps.style)} + data-test-subj="providerContainer" + > + <EuiFlexGroup alignItems="center" gutterSize="none"> + <EuiFlexItem grow={false}> + <ProviderItemBadge + andProviderId={index > 0 ? dataProvider.id : undefined} + browserFields={browserFields} + deleteProvider={handleDeleteProvider} + field={ + index > 0 + ? dataProvider.queryMatch.displayField ?? dataProvider.queryMatch.field + : group[0].queryMatch.displayField ?? group[0].queryMatch.field + } + kqlQuery={index > 0 ? dataProvider.kqlQuery : group[0].kqlQuery} + isEnabled={index > 0 ? dataProvider.enabled : group[0].enabled} + isExcluded={index > 0 ? dataProvider.excluded : group[0].excluded} + onDataProviderEdited={handleDataProviderEdited} + operator={ + index > 0 + ? dataProvider.queryMatch.operator ?? IS_OPERATOR + : group[0].queryMatch.operator ?? IS_OPERATOR + } + register={dataProvider} + providerId={index > 0 ? group[0].id : dataProvider.id} + timelineId={timelineId} + toggleEnabledProvider={handleToggleEnabledProvider} + toggleExcludedProvider={handleToggleExcludedProvider} + toggleTypeProvider={handleToggleTypeProvider} + val={getDataProviderValue(dataProvider)} + type={dataProvider.type} + /> + </EuiFlexItem> + <EuiFlexItem grow={false}> + {!snapshot.isDragging && + (index < group.length - 1 ? ( + <AndOrBadge type="and" /> + ) : ( + <LastAndOrBadgeInGroup> + <AndOrBadge type="and" /> + </LastAndOrBadgeInGroup> + ))} + </EuiFlexItem> + </EuiFlexGroup> + </div> + ), + [ + browserFields, + dataProvider, + group, + handleDataProviderEdited, + handleDeleteProvider, + handleToggleEnabledProvider, + handleToggleExcludedProvider, + handleToggleTypeProvider, + index, + timelineId, + ] ); return ( - <div> - {dataProviderGroups.map((group, groupIndex) => ( - <Fragment key={`droppable-${groupIndex}`}> - {groupIndex !== 0 && <EuiSpacer size="xs" />} - - <EuiFlexGroup alignItems="center" gutterSize="none"> - <OrFlexItem grow={false}> - <AndOrBadgeContainer hideBadge={groupIndex === 0}> - <AndOrBadge type="or" /> - </AndOrBadgeContainer> - </OrFlexItem> - <ParensContainer grow={false}> - <Parens>{'('}</Parens> - </ParensContainer> - <EuiFlexItem grow={false}> - <Droppable - droppableId={getTimelineProviderDroppableId({ groupIndex, timelineId })} - direction="horizontal" - > - {(droppableProvided) => ( - <DroppableContainer - className={ - groupIndex === dataProviderGroups.length - 1 - ? EMPTY_PROVIDERS_GROUP_CLASS_NAME - : '' - } - ref={droppableProvided.innerRef} - style={listStyle} - {...droppableProvided.droppableProps} - > - {group.map((dataProvider, index) => ( - <Draggable - disableInteractiveElementBlocking={true} - draggableId={getTimelineProviderDraggableId({ - dataProviderId: dataProvider.id, - groupIndex, - timelineId, - })} - index={index} - key={dataProvider.id} - > - {(provided, snapshot) => ( - <div - ref={provided.innerRef} - {...provided.draggableProps} - {...provided.dragHandleProps} - style={getItemStyle(provided.draggableProps.style)} - data-test-subj="providerContainer" - > - <EuiFlexGroup alignItems="center" gutterSize="none"> - <EuiFlexItem grow={false}> - <ProviderItemBadge - andProviderId={index > 0 ? dataProvider.id : undefined} - browserFields={browserFields} - deleteProvider={() => - index > 0 - ? onDataProviderRemoved(group[0].id, dataProvider.id) - : onDataProviderRemoved(dataProvider.id) - } - field={ - index > 0 - ? dataProvider.queryMatch.displayField ?? - dataProvider.queryMatch.field - : group[0].queryMatch.displayField ?? - group[0].queryMatch.field - } - kqlQuery={index > 0 ? dataProvider.kqlQuery : group[0].kqlQuery} - isEnabled={index > 0 ? dataProvider.enabled : group[0].enabled} - isExcluded={ - index > 0 ? dataProvider.excluded : group[0].excluded - } - onDataProviderEdited={onDataProviderEdited} - operator={ - index > 0 - ? dataProvider.queryMatch.operator ?? IS_OPERATOR - : group[0].queryMatch.operator ?? IS_OPERATOR - } - register={dataProvider} - providerId={index > 0 ? group[0].id : dataProvider.id} - timelineId={timelineId} - toggleEnabledProvider={() => - index > 0 - ? onToggleDataProviderEnabled({ - providerId: group[0].id, - enabled: !dataProvider.enabled, - andProviderId: dataProvider.id, - }) - : onToggleDataProviderEnabled({ - providerId: dataProvider.id, - enabled: !dataProvider.enabled, - }) - } - toggleExcludedProvider={() => - index > 0 - ? onToggleDataProviderExcluded({ - providerId: group[0].id, - excluded: !dataProvider.excluded, - andProviderId: dataProvider.id, - }) - : onToggleDataProviderExcluded({ - providerId: dataProvider.id, - excluded: !dataProvider.excluded, - }) - } - toggleTypeProvider={() => - index > 0 - ? onToggleDataProviderType({ - providerId: group[0].id, - type: - dataProvider.type === DataProviderType.template - ? DataProviderType.default - : DataProviderType.template, - andProviderId: dataProvider.id, - }) - : onToggleDataProviderType({ - providerId: dataProvider.id, - type: - dataProvider.type === DataProviderType.template - ? DataProviderType.default - : DataProviderType.template, - }) - } - val={getDataProviderValue(dataProvider)} - type={dataProvider.type} - /> - </EuiFlexItem> - <EuiFlexItem grow={false}> - {!snapshot.isDragging && - (index < group.length - 1 ? ( - <AndOrBadge type="and" /> - ) : ( - <LastAndOrBadgeInGroup> - <AndOrBadge type="and" /> - </LastAndOrBadgeInGroup> - ))} - </EuiFlexItem> - </EuiFlexGroup> - </div> - )} - </Draggable> - ))} - {droppableProvided.placeholder} - </DroppableContainer> - )} - </Droppable> - </EuiFlexItem> - <ParensContainer grow={false}> - <Parens>{')'}</Parens> - </ParensContainer> - {groupIndex === dataProviderGroups.length - 1 && ( - <AddDataProviderPopover browserFields={browserFields} timelineId={timelineId} /> - )} - </EuiFlexGroup> - </Fragment> - ))} - </div> + <Draggable + disableInteractiveElementBlocking={true} + draggableId={draggableId} + index={index} + key={dataProvider.id} + > + {DraggableContent} + </Draggable> ); } ); -Providers.displayName = 'Providers'; +DataProvidersGroupItem.displayName = 'DataProvidersGroupItem'; + +interface DataProvidersGroup extends Props { + group: DataProvidersAnd[]; + groupIndex: number; + isLastGroup: boolean; +} + +const DataProvidersGroup = React.memo<DataProvidersGroup>( + ({ browserFields, timelineId, group, groupIndex, isLastGroup }) => { + const droppableId = useMemo(() => getTimelineProviderDroppableId({ groupIndex, timelineId }), [ + groupIndex, + timelineId, + ]); + + const GroupDataProviders = useMemo( + () => + group.map((dataProvider, index) => ( + <DataProvidersGroupItem + key={dataProvider.id} + browserFields={browserFields} + dataProvider={dataProvider} + index={index} + timelineId={timelineId} + group={group} + groupIndex={groupIndex} + /> + )), + [browserFields, group, groupIndex, timelineId] + ); + + const DroppableContent = useCallback( + (droppableProvided) => ( + <DroppableContainer + className={isLastGroup ? EMPTY_PROVIDERS_GROUP_CLASS_NAME : ''} + ref={droppableProvided.innerRef} + style={listStyle} + {...droppableProvided.droppableProps} + > + {GroupDataProviders} + {droppableProvided.placeholder} + </DroppableContainer> + ), + [GroupDataProviders, isLastGroup] + ); + + return ( + <> + {groupIndex !== 0 && <EuiSpacer size="xs" />} + + <EuiFlexGroup alignItems="center" gutterSize="none"> + <OrFlexItem grow={false}> + <AndOrBadgeContainer hideBadge={groupIndex === 0}> + <AndOrBadge type="or" /> + </AndOrBadgeContainer> + </OrFlexItem> + <ParensContainer grow={false}> + <Parens>{'('}</Parens> + </ParensContainer> + <EuiFlexItem grow={false}> + <Droppable droppableId={droppableId} direction="horizontal"> + {DroppableContent} + </Droppable> + </EuiFlexItem> + <ParensContainer grow={false}> + <Parens>{')'}</Parens> + </ParensContainer> + {isLastGroup && ( + <AddDataProviderPopover browserFields={browserFields} timelineId={timelineId} /> + )} + </EuiFlexGroup> + </> + ); + } +); + +DataProvidersGroup.displayName = 'DataProvidersGroup'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/events.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/events.ts index f894ac4e73939..8ab3a71604bf1 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/events.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/events.ts @@ -7,33 +7,8 @@ import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; import { ColumnId } from './body/column_id'; import { SortDirection } from './body/sort'; -import { DataProvider, DataProviderType, QueryOperator } from './data_providers/data_provider'; +import { DataProvider, QueryOperator } from './data_providers/data_provider'; -/** Invoked when a user clicks the close button to remove a data provider */ -export type OnDataProviderRemoved = (providerId: string, andProviderId?: string) => void; - -/** Invoked when a user temporarily disables or re-enables a data provider */ -export type OnToggleDataProviderEnabled = (toggled: { - providerId: string; - enabled: boolean; - andProviderId?: string; -}) => void; - -/** Invoked when a user toggles negation ("boolean NOT") of a data provider */ -export type OnToggleDataProviderExcluded = (excluded: { - providerId: string; - excluded: boolean; - andProviderId?: string; -}) => void; - -/** Invoked when a user toggles type (can "default" or "template") of a data provider */ -export type OnToggleDataProviderType = (type: { - providerId: string; - type: DataProviderType; - andProviderId?: string; -}) => void; - -/** Invoked when a user edits the properties of a data provider */ export type OnDataProviderEdited = ({ andProviderId, excluded, @@ -54,9 +29,6 @@ export type OnDataProviderEdited = ({ type: DataProvider['type']; }) => void; -/** Invoked when a user change the kql query of our data provider */ -export type OnChangeDataProviderKqlQuery = (edit: { providerId: string; kqlQuery: string }) => void; - /** Invoked when a user selects a new minimap time range */ export type OnRangeSelected = (range: string) => void; @@ -76,8 +48,6 @@ export type OnChangeItemsPerPage = (itemsPerPage: number) => void; /** Invoked when a user clicks to load more item */ export type OnChangePage = (nextPage: number) => void; -export type OnChangeDroppableAndProvider = (providerId: string) => void; - /** Invoked when a user pins an event */ export type OnPinEvent = (eventId: string) => void; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/__snapshots__/index.test.tsx.snap index f81934f9a1d91..5b14edf818fdc 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/__snapshots__/index.test.tsx.snap @@ -77,7 +77,7 @@ exports[`Footer Timeline Component rendering it renders the default timeline foo data-test-subj="paging-control" isLoading={false} onPageClick={[Function]} - totalPages={2} + totalPages={5} /> </EuiFlexItem> <EuiFlexItem diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx index f823b717e7f4c..8ce109409c5fd 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.test.tsx @@ -15,8 +15,9 @@ describe('Footer Timeline Component', () => { const loadMore = jest.fn(); const onChangeItemsPerPage = jest.fn(); const updatedAt = 1546878704036; - const totalCount = 15546; + const serverSideEventCount = 15546; const itemsCount = 2; + const totalCount = 10; describe('rendering', () => { test('it renders the default timeline footer', () => { @@ -33,8 +34,8 @@ describe('Footer Timeline Component', () => { itemsPerPageOptions={[1, 5, 10, 20]} onChangeItemsPerPage={onChangeItemsPerPage} onChangePage={loadMore} - serverSideEventCount={totalCount} - totalPages={2} + serverSideEventCount={serverSideEventCount} + totalCount={totalCount} /> ); @@ -55,8 +56,8 @@ describe('Footer Timeline Component', () => { itemsPerPageOptions={[1, 5, 10, 20]} onChangeItemsPerPage={onChangeItemsPerPage} onChangePage={loadMore} - serverSideEventCount={totalCount} - totalPages={2} + serverSideEventCount={serverSideEventCount} + totalCount={totalCount} /> ); @@ -78,8 +79,8 @@ describe('Footer Timeline Component', () => { itemsPerPageOptions={[1, 5, 10, 20]} onChangeItemsPerPage={onChangeItemsPerPage} onChangePage={loadMore} - serverSideEventCount={totalCount} - totalPages={2} + serverSideEventCount={serverSideEventCount} + totalCount={totalCount} /> </TestProviders> ); @@ -129,8 +130,8 @@ describe('Footer Timeline Component', () => { itemsPerPageOptions={[1, 5, 10, 20]} onChangeItemsPerPage={onChangeItemsPerPage} onChangePage={loadMore} - serverSideEventCount={totalCount} - totalPages={2} + serverSideEventCount={serverSideEventCount} + totalCount={totalCount} /> ); @@ -152,8 +153,8 @@ describe('Footer Timeline Component', () => { itemsPerPageOptions={[1, 5, 10, 20]} onChangeItemsPerPage={onChangeItemsPerPage} onChangePage={loadMore} - serverSideEventCount={totalCount} - totalPages={2} + serverSideEventCount={serverSideEventCount} + totalCount={totalCount} /> </TestProviders> ); @@ -179,8 +180,8 @@ describe('Footer Timeline Component', () => { itemsPerPageOptions={[1, 5, 10, 20]} onChangeItemsPerPage={onChangeItemsPerPage} onChangePage={loadMore} - serverSideEventCount={totalCount} - totalPages={2} + serverSideEventCount={serverSideEventCount} + totalCount={totalCount} /> </TestProviders> ); @@ -204,8 +205,8 @@ describe('Footer Timeline Component', () => { itemsPerPageOptions={[1, 5, 10, 20]} onChangeItemsPerPage={onChangeItemsPerPage} onChangePage={loadMore} - serverSideEventCount={totalCount} - totalPages={2} + serverSideEventCount={serverSideEventCount} + totalCount={totalCount} /> </TestProviders> ); @@ -231,8 +232,8 @@ describe('Footer Timeline Component', () => { itemsPerPageOptions={[1, 5, 10, 20]} onChangeItemsPerPage={onChangeItemsPerPage} onChangePage={loadMore} - serverSideEventCount={totalCount} - totalPages={2} + serverSideEventCount={serverSideEventCount} + totalCount={totalCount} /> </TestProviders> ); @@ -256,8 +257,8 @@ describe('Footer Timeline Component', () => { itemsPerPageOptions={[1, 5, 10, 20]} onChangeItemsPerPage={onChangeItemsPerPage} onChangePage={loadMore} - serverSideEventCount={totalCount} - totalPages={2} + serverSideEventCount={serverSideEventCount} + totalCount={totalCount} /> </TestProviders> ); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx index 7174e9b2121e5..7c10168da3c62 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx @@ -174,30 +174,36 @@ export const EventsCount = React.memo(EventsCountComponent); EventsCount.displayName = 'EventsCount'; -export const PagingControlComponent = ({ - activePage, - isLoading, - onPageClick, - totalPages, -}: { +interface PagingControlProps { activePage: number; isLoading: boolean; onPageClick: OnChangePage; totalPages: number; -}) => ( - <> - {isLoading ? ( - `${i18n.LOADING}...` - ) : ( - <EuiPagination - data-test-subj="timeline-pagination" - pageCount={totalPages} - activePage={activePage} - onPageClick={onPageClick} - /> - )} - </> -); +} + +export const PagingControlComponent: React.FC<PagingControlProps> = ({ + activePage, + isLoading, + onPageClick, + totalPages, +}) => { + if (isLoading) { + return <>{`${i18n.LOADING}...`}</>; + } + + if (!totalPages) { + return null; + } + + return ( + <EuiPagination + data-test-subj="timeline-pagination" + pageCount={totalPages} + activePage={activePage} + onPageClick={onPageClick} + /> + ); +}; PagingControlComponent.displayName = 'PagingControlComponent'; @@ -217,7 +223,7 @@ interface FooterProps { onChangeItemsPerPage: OnChangeItemsPerPage; onChangePage: OnChangePage; serverSideEventCount: number; - totalPages: number; + totalCount: number; } /** Renders a loading indicator and paging controls */ @@ -234,7 +240,7 @@ export const FooterComponent = ({ onChangeItemsPerPage, onChangePage, serverSideEventCount, - totalPages, + totalCount, }: FooterProps) => { const [isPopoverOpen, setIsPopoverOpen] = useState(false); const [paginationLoading, setPaginationLoading] = useState(false); @@ -259,6 +265,30 @@ export const FooterComponent = ({ ]); const closePopover = useCallback(() => setIsPopoverOpen(false), [setIsPopoverOpen]); + const rowItems = useMemo( + () => + itemsPerPageOptions && + itemsPerPageOptions.map((item) => ( + <EuiContextMenuItem + key={item} + icon={itemsPerPage === item ? 'check' : 'empty'} + data-test-subj={`items-per-page-option-${item}`} + onClick={() => { + closePopover(); + onChangeItemsPerPage(item); + }} + > + {`${item} ${i18n.ROWS}`} + </EuiContextMenuItem> + )), + [closePopover, itemsPerPage, itemsPerPageOptions, onChangeItemsPerPage] + ); + + const totalPages = useMemo(() => Math.ceil(totalCount / itemsPerPage), [ + itemsPerPage, + totalCount, + ]); + useEffect(() => { if (paginationLoading && !isLoading) { setPaginationLoading(false); @@ -279,22 +309,6 @@ export const FooterComponent = ({ ); } - const rowItems = - itemsPerPageOptions && - itemsPerPageOptions.map((item) => ( - <EuiContextMenuItem - key={item} - icon={itemsPerPage === item ? 'check' : 'empty'} - data-test-subj={`items-per-page-option-${item}`} - onClick={() => { - closePopover(); - onChangeItemsPerPage(item); - }} - > - {`${item} ${i18n.ROWS}`} - </EuiContextMenuItem> - )); - return ( <FooterContainer data-test-subj="timeline-footer" diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/header/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/timelines/components/timeline/header/__snapshots__/index.test.tsx.snap index f94c30c5a102d..66758268fb39e 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/header/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/header/__snapshots__/index.test.tsx.snap @@ -138,11 +138,6 @@ exports[`Header rendering renders correctly against snapshot 1`] = ` }, ] } - onDataProviderEdited={[MockFunction]} - onDataProviderRemoved={[MockFunction]} - onToggleDataProviderEnabled={[MockFunction]} - onToggleDataProviderExcluded={[MockFunction]} - onToggleDataProviderType={[MockFunction]} timelineId="foo" /> <Connect(StatefulSearchOrFilterComponent) diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/header/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/header/index.tsx index e50a6ed1e45fe..22d28737e5d61 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/header/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/header/index.tsx @@ -11,13 +11,6 @@ import deepEqual from 'fast-deep-equal'; import { DataProviders } from '../data_providers'; import { DataProvider } from '../data_providers/data_provider'; -import { - OnDataProviderEdited, - OnDataProviderRemoved, - OnToggleDataProviderEnabled, - OnToggleDataProviderExcluded, - OnToggleDataProviderType, -} from '../events'; import { StatefulSearchOrFilter } from '../search_or_filter'; import { BrowserFields } from '../../../../common/containers/source'; @@ -33,11 +26,6 @@ interface Props { filterManager: FilterManager; graphEventId?: string; indexPattern: IIndexPattern; - onDataProviderEdited: OnDataProviderEdited; - onDataProviderRemoved: OnDataProviderRemoved; - onToggleDataProviderEnabled: OnToggleDataProviderEnabled; - onToggleDataProviderExcluded: OnToggleDataProviderExcluded; - onToggleDataProviderType: OnToggleDataProviderType; show: boolean; showCallOutUnauthorizedMsg: boolean; status: TimelineStatusLiteralWithNull; @@ -50,11 +38,6 @@ const TimelineHeaderComponent: React.FC<Props> = ({ dataProviders, filterManager, graphEventId, - onDataProviderEdited, - onDataProviderRemoved, - onToggleDataProviderEnabled, - onToggleDataProviderExcluded, - onToggleDataProviderType, show, showCallOutUnauthorizedMsg, status, @@ -85,11 +68,6 @@ const TimelineHeaderComponent: React.FC<Props> = ({ browserFields={browserFields} timelineId={timelineId} dataProviders={dataProviders} - onDataProviderEdited={onDataProviderEdited} - onDataProviderRemoved={onDataProviderRemoved} - onToggleDataProviderEnabled={onToggleDataProviderEnabled} - onToggleDataProviderExcluded={onToggleDataProviderExcluded} - onToggleDataProviderType={onToggleDataProviderType} /> <StatefulSearchOrFilter @@ -111,11 +89,6 @@ export const TimelineHeader = React.memo( deepEqual(prevProps.dataProviders, nextProps.dataProviders) && prevProps.filterManager === nextProps.filterManager && prevProps.graphEventId === nextProps.graphEventId && - prevProps.onDataProviderEdited === nextProps.onDataProviderEdited && - prevProps.onDataProviderRemoved === nextProps.onDataProviderRemoved && - prevProps.onToggleDataProviderEnabled === nextProps.onToggleDataProviderEnabled && - prevProps.onToggleDataProviderExcluded === nextProps.onToggleDataProviderExcluded && - prevProps.onToggleDataProviderType === nextProps.onToggleDataProviderType && prevProps.show === nextProps.show && prevProps.showCallOutUnauthorizedMsg === nextProps.showCallOutUnauthorizedMsg && prevProps.status === nextProps.status && diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/index.tsx index ccdb0793bc03f..0c7b1e0cdecd5 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/index.tsx @@ -14,14 +14,7 @@ import { timelineActions, timelineSelectors } from '../../store/timeline'; import { ColumnHeaderOptions, TimelineModel } from '../../../timelines/store/timeline/model'; import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; import { defaultHeaders } from './body/column_headers/default_headers'; -import { - OnChangeItemsPerPage, - OnDataProviderRemoved, - OnDataProviderEdited, - OnToggleDataProviderEnabled, - OnToggleDataProviderExcluded, - OnToggleDataProviderType, -} from './events'; +import { OnChangeItemsPerPage } from './events'; import { Timeline } from './timeline'; import { useSourcererScope } from '../../../common/containers/sourcerer'; import { SourcererScopeName } from '../../../common/store/sourcerer/model'; @@ -51,18 +44,13 @@ const StatefulTimelineComponent = React.memo<Props>( kqlMode, kqlQueryExpression, onClose, - onDataProviderEdited, removeColumn, - removeProvider, show, showCallOutUnauthorizedMsg, sort, start, status, timelineType, - updateDataProviderEnabled, - updateDataProviderExcluded, - updateDataProviderType, updateItemsPerPage, upsertColumn, usersViewing, @@ -75,59 +63,6 @@ const StatefulTimelineComponent = React.memo<Props>( selectedPatterns, } = useSourcererScope(SourcererScopeName.timeline); - const onDataProviderRemoved: OnDataProviderRemoved = useCallback( - (providerId: string, andProviderId?: string) => - removeProvider!({ id, providerId, andProviderId }), - [id, removeProvider] - ); - - const onToggleDataProviderEnabled: OnToggleDataProviderEnabled = useCallback( - ({ providerId, enabled, andProviderId }) => - updateDataProviderEnabled!({ - id, - enabled, - providerId, - andProviderId, - }), - [id, updateDataProviderEnabled] - ); - - const onToggleDataProviderExcluded: OnToggleDataProviderExcluded = useCallback( - ({ providerId, excluded, andProviderId }) => - updateDataProviderExcluded!({ - id, - excluded, - providerId, - andProviderId, - }), - [id, updateDataProviderExcluded] - ); - - const onToggleDataProviderType: OnToggleDataProviderType = useCallback( - ({ providerId, type, andProviderId }) => - updateDataProviderType!({ - id, - type, - providerId, - andProviderId, - }), - [id, updateDataProviderType] - ); - - const onDataProviderEditedLocal: OnDataProviderEdited = useCallback( - ({ andProviderId, excluded, field, operator, providerId, value }) => - onDataProviderEdited!({ - andProviderId, - excluded, - field, - id, - operator, - providerId, - value, - }), - [id, onDataProviderEdited] - ); - const onChangeItemsPerPage: OnChangeItemsPerPage = useCallback( (itemsChangedPerPage) => updateItemsPerPage!({ id, itemsPerPage: itemsChangedPerPage }), [id, updateItemsPerPage] @@ -183,11 +118,6 @@ const StatefulTimelineComponent = React.memo<Props>( loadingSourcerer={loading} onChangeItemsPerPage={onChangeItemsPerPage} onClose={onClose} - onDataProviderEdited={onDataProviderEditedLocal} - onDataProviderRemoved={onDataProviderRemoved} - onToggleDataProviderEnabled={onToggleDataProviderEnabled} - onToggleDataProviderExcluded={onToggleDataProviderExcluded} - onToggleDataProviderType={onToggleDataProviderType} show={show!} showCallOutUnauthorizedMsg={showCallOutUnauthorizedMsg} sort={sort!} @@ -287,14 +217,8 @@ const makeMapStateToProps = () => { const mapDispatchToProps = { addProvider: timelineActions.addProvider, createTimeline: timelineActions.createTimeline, - onDataProviderEdited: timelineActions.dataProviderEdited, removeColumn: timelineActions.removeColumn, - removeProvider: timelineActions.removeProvider, updateColumns: timelineActions.updateColumns, - updateDataProviderEnabled: timelineActions.updateDataProviderEnabled, - updateDataProviderExcluded: timelineActions.updateDataProviderExcluded, - updateDataProviderKqlQuery: timelineActions.updateDataProviderKqlQuery, - updateDataProviderType: timelineActions.updateDataProviderType, updateHighlightedDropAndProviderId: timelineActions.updateHighlightedDropAndProviderId, updateItemsPerPage: timelineActions.updateItemsPerPage, updateItemsPerPageOptions: timelineActions.updateItemsPerPageOptions, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/properties/helpers.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/properties/helpers.tsx index 43ab8ab203e11..a28f4240d3a2f 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/properties/helpers.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/properties/helpers.tsx @@ -73,23 +73,31 @@ export const StarIcon = React.memo<{ isFavorite: boolean; timelineId: string; updateIsFavorite: UpdateIsFavorite; -}>(({ isFavorite, timelineId: id, updateIsFavorite }) => ( - // TODO: 1 error is: Visible, non-interactive elements with click handlers must have at least one keyboard listener - // TODO: 2 error is: Elements with the 'button' interactive role must be focusable - // TODO: Investigate this error - // eslint-disable-next-line - <div role="button" onClick={() => updateIsFavorite({ id, isFavorite: !isFavorite })}> - {isFavorite ? ( - <EuiToolTip data-test-subj="timeline-favorite-filled-star-tool-tip" content={i18n.FAVORITE}> - <StyledStar data-test-subj="timeline-favorite-filled-star" type="starFilled" size="l" /> - </EuiToolTip> - ) : ( - <EuiToolTip content={i18n.NOT_A_FAVORITE}> - <StyledStar data-test-subj="timeline-favorite-empty-star" type="starEmpty" size="l" /> - </EuiToolTip> - )} - </div> -)); +}>(({ isFavorite, timelineId: id, updateIsFavorite }) => { + const handleClick = useCallback(() => updateIsFavorite({ id, isFavorite: !isFavorite }), [ + id, + isFavorite, + updateIsFavorite, + ]); + + return ( + // TODO: 1 error is: Visible, non-interactive elements with click handlers must have at least one keyboard listener + // TODO: 2 error is: Elements with the 'button' interactive role must be focusable + // TODO: Investigate this error + // eslint-disable-next-line + <div role="button" onClick={handleClick}> + {isFavorite ? ( + <EuiToolTip data-test-subj="timeline-favorite-filled-star-tool-tip" content={i18n.FAVORITE}> + <StyledStar data-test-subj="timeline-favorite-filled-star" type="starFilled" size="l" /> + </EuiToolTip> + ) : ( + <EuiToolTip content={i18n.NOT_A_FAVORITE}> + <StyledStar data-test-subj="timeline-favorite-empty-star" type="starEmpty" size="l" /> + </EuiToolTip> + )} + </div> + ); +}); StarIcon.displayName = 'StarIcon'; interface DescriptionProps { diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/timeline.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/timeline.test.tsx index bde1e7bf5829a..630a71693d182 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/timeline.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/timeline.test.tsx @@ -19,11 +19,6 @@ import { import '../../../common/mock/match_media'; import { TestProviders } from '../../../common/mock/test_providers'; -import { - DELETE_CLASS_NAME, - ENABLE_CLASS_NAME, - EXCLUDE_CLASS_NAME, -} from './data_providers/provider_item_actions'; import { TimelineComponent, Props as TimelineComponentProps } from './timeline'; import { Sort } from './body/sort'; import { mockDataProviders } from './data_providers/mock/mock_data_providers'; @@ -115,11 +110,6 @@ describe('Timeline', () => { loadingSourcerer: false, onChangeItemsPerPage: jest.fn(), onClose: jest.fn(), - onDataProviderEdited: jest.fn(), - onDataProviderRemoved: jest.fn(), - onToggleDataProviderEnabled: jest.fn(), - onToggleDataProviderExcluded: jest.fn(), - onToggleDataProviderType: jest.fn(), show: true, showCallOutUnauthorizedMsg: false, sort, @@ -238,204 +228,4 @@ describe('Timeline', () => { }); }); }); - - describe('event wire up', () => { - describe('onDataProviderRemoved', () => { - test('it invokes the onDataProviderRemoved callback when the delete button on a provider is clicked', () => { - const wrapper = mount( - <TestProviders> - <TimelineComponent {...props} /> - </TestProviders> - ); - - wrapper - .find('[data-test-subj="providerBadge"] [data-euiicon-type]') - .first() - .simulate('click'); - - expect((props.onDataProviderRemoved as jest.Mock).mock.calls[0][0]).toEqual( - 'id-Provider 1' - ); - }); - - test('it invokes the onDataProviderRemoved callback when you click on the option "Delete" in the provider menu', () => { - const wrapper = mount( - <TestProviders> - <TimelineComponent {...props} /> - </TestProviders> - ); - wrapper.find('button[data-test-subj="providerBadge"]').first().simulate('click'); - - wrapper.update(); - - wrapper - .find(`[data-test-subj="providerActions"] .${DELETE_CLASS_NAME}`) - .first() - .simulate('click'); - - expect((props.onDataProviderRemoved as jest.Mock).mock.calls[0][0]).toEqual( - 'id-Provider 1' - ); - }); - }); - - describe('onToggleDataProviderEnabled', () => { - test('it invokes the onToggleDataProviderEnabled callback when you click on the option "Temporary disable" in the provider menu', () => { - const wrapper = mount( - <TestProviders> - <TimelineComponent {...props} /> - </TestProviders> - ); - - wrapper.find('button[data-test-subj="providerBadge"]').first().simulate('click'); - - wrapper.update(); - - wrapper - .find(`[data-test-subj="providerActions"] .${ENABLE_CLASS_NAME}`) - .first() - .simulate('click'); - - expect((props.onToggleDataProviderEnabled as jest.Mock).mock.calls[0][0]).toEqual({ - providerId: 'id-Provider 1', - enabled: false, - }); - }); - }); - - describe('onToggleDataProviderExcluded', () => { - test('it invokes the onToggleDataProviderExcluded callback when you click on the option "Exclude results" in the provider menu', () => { - const wrapper = mount( - <TestProviders> - <TimelineComponent {...props} /> - </TestProviders> - ); - - wrapper - .find('[data-test-subj="providerBadge"]') - .first() - .find('button') - .first() - .simulate('click'); - - wrapper.update(); - - wrapper - .find(`[data-test-subj="providerActions"] .${EXCLUDE_CLASS_NAME}`) - .first() - .simulate('click'); - - expect((props.onToggleDataProviderExcluded as jest.Mock).mock.calls[0][0]).toEqual({ - providerId: 'id-Provider 1', - excluded: true, - }); - }); - }); - - describe('#ProviderWithAndProvider', () => { - const dataProviders = mockDataProviders.slice(0, 1); - dataProviders[0].and = mockDataProviders.slice(1, 3); - - test('Rendering And Provider', () => { - const wrapper = mount( - <TestProviders> - <TimelineComponent {...props} dataProviders={dataProviders} /> - </TestProviders> - ); - - const andProviderBadges = wrapper.find( - '[data-test-subj="providerBadge"] .euiBadge__content span.field-value' - ); - - const andProviderBadgesText = andProviderBadges.map((node) => node.text()).join(' '); - expect(andProviderBadges.length).toEqual(3); - expect(andProviderBadgesText).toEqual( - 'name: "Provider 1" name: "Provider 2" name: "Provider 3"' - ); - }); - - test('it invokes the onDataProviderRemoved callback when you click on the option "Delete" in the accordion menu', () => { - const wrapper = mount( - <TestProviders> - <TimelineComponent {...props} dataProviders={dataProviders} /> - </TestProviders> - ); - - wrapper - .find('[data-test-subj="providerBadge"]') - .at(3) - .find('button') - .first() - .simulate('click'); - - wrapper.update(); - - wrapper - .find(`[data-test-subj="providerActions"] .${DELETE_CLASS_NAME}`) - .first() - .simulate('click'); - - expect((props.onDataProviderRemoved as jest.Mock).mock.calls[0]).toEqual([ - 'id-Provider 1', - 'id-Provider 2', - ]); - }); - - test('it invokes the onToggleDataProviderEnabled callback when you click on the option "Temporary disable" in the accordion menu', () => { - const wrapper = mount( - <TestProviders> - <TimelineComponent {...props} dataProviders={dataProviders} /> - </TestProviders> - ); - - wrapper - .find('[data-test-subj="providerBadge"]') - .at(3) - .find('button') - .first() - .simulate('click'); - - wrapper.update(); - - wrapper - .find(`[data-test-subj="providerActions"] .${ENABLE_CLASS_NAME}`) - .first() - .simulate('click'); - - expect((props.onToggleDataProviderEnabled as jest.Mock).mock.calls[0][0]).toEqual({ - andProviderId: 'id-Provider 2', - enabled: false, - providerId: 'id-Provider 1', - }); - }); - - test('it invokes the onToggleDataProviderExcluded callback when you click on the option "Exclude results" in the accordion menu', () => { - const wrapper = mount( - <TestProviders> - <TimelineComponent {...props} dataProviders={dataProviders} /> - </TestProviders> - ); - - wrapper - .find('[data-test-subj="providerBadge"]') - .at(3) - .find('button') - .first() - .simulate('click'); - - wrapper.update(); - - wrapper - .find(`[data-test-subj="providerActions"] .${EXCLUDE_CLASS_NAME}`) - .first() - .simulate('click'); - - expect((props.onToggleDataProviderExcluded as jest.Mock).mock.calls[0][0]).toEqual({ - andProviderId: 'id-Provider 2', - excluded: true, - providerId: 'id-Provider 1', - }); - }); - }); - }); }); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/timeline.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/timeline.tsx index d1a25e6f3e1a4..1097d58b227a8 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/timeline.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/timeline.tsx @@ -19,14 +19,7 @@ import { defaultHeaders } from './body/column_headers/default_headers'; import { Sort } from './body/sort'; import { StatefulBody } from './body/stateful_body'; import { DataProvider } from './data_providers/data_provider'; -import { - OnChangeItemsPerPage, - OnDataProviderRemoved, - OnDataProviderEdited, - OnToggleDataProviderEnabled, - OnToggleDataProviderExcluded, - OnToggleDataProviderType, -} from './events'; +import { OnChangeItemsPerPage } from './events'; import { TimelineKqlFetch } from './fetch_kql_timeline'; import { Footer, footerHeight } from './footer'; import { TimelineHeader } from './header'; @@ -113,11 +106,6 @@ export interface Props { loadingSourcerer: boolean; onChangeItemsPerPage: OnChangeItemsPerPage; onClose: () => void; - onDataProviderEdited: OnDataProviderEdited; - onDataProviderRemoved: OnDataProviderRemoved; - onToggleDataProviderEnabled: OnToggleDataProviderEnabled; - onToggleDataProviderExcluded: OnToggleDataProviderExcluded; - onToggleDataProviderType: OnToggleDataProviderType; show: boolean; showCallOutUnauthorizedMsg: boolean; sort: Sort; @@ -149,11 +137,6 @@ export const TimelineComponent: React.FC<Props> = ({ kqlQueryExpression, onChangeItemsPerPage, onClose, - onDataProviderEdited, - onDataProviderRemoved, - onToggleDataProviderEnabled, - onToggleDataProviderExcluded, - onToggleDataProviderType, show, showCallOutUnauthorizedMsg, start, @@ -270,11 +253,6 @@ export const TimelineComponent: React.FC<Props> = ({ dataProviders={dataProviders} filterManager={filterManager} graphEventId={graphEventId} - onDataProviderEdited={onDataProviderEdited} - onDataProviderRemoved={onDataProviderRemoved} - onToggleDataProviderEnabled={onToggleDataProviderEnabled} - onToggleDataProviderExcluded={onToggleDataProviderExcluded} - onToggleDataProviderType={onToggleDataProviderType} show={show} showCallOutUnauthorizedMsg={showCallOutUnauthorizedMsg} timelineId={id} @@ -324,7 +302,7 @@ export const TimelineComponent: React.FC<Props> = ({ onChangeItemsPerPage={onChangeItemsPerPage} onChangePage={loadPage} serverSideEventCount={totalCount} - totalPages={pageInfo.totalPages} + totalCount={pageInfo.fakeTotalCount} /> </StyledEuiFlyoutFooter> ) diff --git a/x-pack/plugins/security_solution/public/timelines/containers/index.tsx b/x-pack/plugins/security_solution/public/timelines/containers/index.tsx index 54db52b985c31..53944fd29a687 100644 --- a/x-pack/plugins/security_solution/public/timelines/containers/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/containers/index.tsx @@ -15,11 +15,13 @@ import { inputsModel } from '../../common/store'; import { useKibana } from '../../common/lib/kibana'; import { createFilter } from '../../common/containers/helpers'; import { DocValueFields } from '../../common/containers/query_template'; +import { generateTablePaginationOptions } from '../../common/components/paginated_table/helpers'; import { timelineActions } from '../../timelines/store/timeline'; import { detectionsTimelineIds, skipQueryForDetectionsPage } from './helpers'; import { getInspectResponse } from '../../helpers'; import { Direction, + PageInfoPaginated, TimelineEventsQueries, TimelineEventsAllStrategyResponse, TimelineEventsAllRequestOptions, @@ -35,10 +37,7 @@ export interface TimelineArgs { id: string; inspect: InspectResponse; loadPage: LoadPage; - pageInfo: { - activePage: number; - totalPages: number; - }; + pageInfo: PageInfoPaginated; refetch: inputsModel.Refetch; totalCount: number; updatedAt: number; @@ -97,10 +96,7 @@ export const useTimelineEvents = ({ from: startDate, to: endDate, }, - pagination: { - activePage, - querySize: limit, - }, + pagination: generateTablePaginationOptions(activePage, limit), sort, defaultIndex: indexNames, docValueFields: docValueFields ?? [], @@ -134,7 +130,8 @@ export const useTimelineEvents = ({ totalCount: -1, pageInfo: { activePage: 0, - totalPages: 0, + fakeTotalCount: 0, + showMorePagesIndicator: false, }, events: [], loadPage: wrappedLoadPage, @@ -218,10 +215,7 @@ export const useTimelineEvents = ({ defaultIndex: indexNames, docValueFields: docValueFields ?? [], filterQuery: createFilter(filterQuery), - pagination: { - activePage, - querySize: limit, - }, + pagination: generateTablePaginationOptions(activePage, limit), timerange: { interval: '12h', from: startDate, diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/epic_local_storage.test.tsx b/x-pack/plugins/security_solution/public/timelines/store/timeline/epic_local_storage.test.tsx index 1f79b26394a69..1992b1f88f064 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/epic_local_storage.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/epic_local_storage.test.tsx @@ -96,11 +96,6 @@ describe('epicLocalStorage', () => { loadingSourcerer: false, onChangeItemsPerPage: jest.fn(), onClose: jest.fn(), - onDataProviderEdited: jest.fn(), - onDataProviderRemoved: jest.fn(), - onToggleDataProviderEnabled: jest.fn(), - onToggleDataProviderExcluded: jest.fn(), - onToggleDataProviderType: jest.fn(), show: true, showCallOutUnauthorizedMsg: false, start: startDate, diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts index fc178df86362b..30d0796443ab5 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts @@ -1209,17 +1209,20 @@ export const updateTimelinePerPageOptions = ({ const removeAndProvider = (andProviderId: string, providerId: string, timeline: TimelineModel) => { const providerIndex = timeline.dataProviders.findIndex((p) => p.id === providerId); - const providerAndIndex = timeline.dataProviders[providerIndex].and.findIndex( + const providerAndIndex = timeline.dataProviders[providerIndex]?.and.findIndex( (p) => p.id === andProviderId ); + return [ ...timeline.dataProviders.slice(0, providerIndex), { ...timeline.dataProviders[providerIndex], - and: [ - ...timeline.dataProviders[providerIndex].and.slice(0, providerAndIndex), - ...timeline.dataProviders[providerIndex].and.slice(providerAndIndex + 1), - ], + and: timeline.dataProviders[providerIndex]?.and + ? [ + ...timeline.dataProviders[providerIndex]?.and.slice(0, providerAndIndex), + ...timeline.dataProviders[providerIndex]?.and.slice(providerAndIndex + 1), + ] + : [], }, ...timeline.dataProviders.slice(providerIndex + 1), ]; @@ -1229,7 +1232,7 @@ const removeProvider = (providerId: string, timeline: TimelineModel) => { const providerIndex = timeline.dataProviders.findIndex((p) => p.id === providerId); return [ ...timeline.dataProviders.slice(0, providerIndex), - ...(timeline.dataProviders[providerIndex].and.length + ...(timeline.dataProviders[providerIndex]?.and.length ? [ { ...timeline.dataProviders[providerIndex].and.slice(0, 1)[0], diff --git a/x-pack/plugins/security_solution/server/search_strategy/timeline/factory/events/all/index.ts b/x-pack/plugins/security_solution/server/search_strategy/timeline/factory/events/all/index.ts index 12729eb88a666..6b28fc2598d41 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/timeline/factory/events/all/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/timeline/factory/events/all/index.ts @@ -42,17 +42,19 @@ export const timelineEventsAll: SecuritySolutionTimelineFactory<TimelineEventsQu ...fieldRequested, ...reduceFields(TIMELINE_EVENTS_FIELDS, eventFieldsMap), ]); - const { activePage, querySize } = options.pagination; + const { activePage, cursorStart, fakePossibleCount, querySize } = options.pagination; const totalCount = getOr(0, 'hits.total.value', response.rawResponse); const hits = response.rawResponse.hits.hits; - const edges: TimelineEdges[] = hits.map((hit) => + const edges: TimelineEdges[] = hits.splice(cursorStart, querySize - cursorStart).map((hit) => // @ts-expect-error formatTimelineData(options.fieldRequested, TIMELINE_EVENTS_FIELDS, hit, eventFieldsMap) ); const inspect = { dsl: [inspectStringifyObject(buildTimelineEventsAllQuery(queryOptions))], }; + const fakeTotalCount = fakePossibleCount <= totalCount ? fakePossibleCount : totalCount; + const showMorePagesIndicator = totalCount > fakeTotalCount; return { ...response, @@ -61,7 +63,8 @@ export const timelineEventsAll: SecuritySolutionTimelineFactory<TimelineEventsQu totalCount, pageInfo: { activePage: activePage ?? 0, - totalPages: Math.ceil(totalCount / querySize), + fakeTotalCount, + showMorePagesIndicator, }, }; },

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%0DVgk4B*!EOa#6Y}WT!wkEhw0SU5 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℘frc0S`Dhjmg7Kv~G86|}q(Tr|TdzRYN9`fF~ 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

B2oA&EFx9%H7 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 z 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

0gaxoGo$KUO9Q7msF*w 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 NDJbY*(FfOq9 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%0ARP^H+3JKaged*isUk1kkf&MPpPWJ~@E@$*fg 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�>|1sMmMlV9s{regChfdI~r8D=O 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%0DBXN!qd12GaU9_{e}q3~n}q(m=v1%=as>_!0sSUd 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%0DBXN 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 FV*}l>=fwa3 literal 2220093 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

n!D?rJ=rWA_# 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 z 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%0A7@tV#2C= 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

3i9Y{H+MtB z{b?XIImwH(tFZFjNuo;j=E3T2F#RZymKsjwyaFHU+9k(u809$BI1H$}L#|g9-MF6| zNo1`6%Q%D1N%Bz;m?vU`MMD3P#gIiv(z|aHp|?30q^y!v@oj`>%Fv0NJrt4om5z`7 zTy7q=UuB(N6G9HFr?Pod2=dPPs&5}V5-?4Y>PY&Y2;rRWlqDg$2(I{9-LGp5g<)1l zJ4y@$pw0yz@Ja96CXS8 z+_x0(1s$vP+&_>Z9|@Z&sk3@He*5ji>4Z4akuHi7pYmuC^qJSf@p_PePKpYu9G>cnks1vj5VqYExWWGreEHqAc7}>|#b>%O{v-X2Dv~E8 zA)*$>NQix`Z+3FWG5#g_pWI)PU)J=A`bQ%nb-|U#CAr(>+e^qg`tVrI-0)x-5G3nX zVDiLU49Yb&>%%xWkMfix!$?tpw|_{a;_^%KKJh6Y5N1MnQ+gdkV$9b;CJMfkA*zWz zP0bW;u8N(^PMYX=PMrFmTUNCKQI1rV!fCe8u_54A$kYQ{E=E8_fUR1Tdi}k!!o*h2 zyxIu-6MX8hpbO0u(2N8i%YT3};Q6&_LCoIpQnDschWP%XaeA=ki~2IRuu^p*k&U@2 z$C4A6(uq45v~U@+gyN;`{Gxn4G0f53Ky$NRMMM)n4p-2`3hZ;?w%di>N!w3D`L?zq zs4)XmtwfB2?Dr7P+{*ydy$C#IH)7x&tp16_?NAAMPx3Ir#Ds|V`=@2Fm*ec+XD@sW zG8A(8gALR{@QXw3!O}p(uiTL`+}(CUfP7aoNuDZ#%R-ZqX!-)fe_#p~-S(XJ-XMC( za|}+jfiL2sg|GOJ1WkvV$7IG3dd!PIP!U~Gq7{35UcWEPiq@vkef&{=P&>cYKMfKy zr=b^KC<5P>N6k@0eTVNSI@=jvHqIV4HZ~uDdXkOv=K_v^wYTDyYBB<7jMj_DjhWV!$TIhT{yq`Zl_|dXiuczigt(N!B-3OcRT%diQe@Q(;MA2s>Gd^5k%oxR7 zOV#69YMsgw=!S-2suWT1Y-wbt_lCMJC0@Go%gI)E`jZ*+q$hioqolAx~lOGf0#ItqNqD(i?$l9-ai9%oe^q z?K!n=rr?)-(ukdt{Md!eLoLwV{EmEMk5cQ(JT_mzb|=qO0%LCS(vhq*g(M?K;#?=@ zH||BFXx%mAo3cbIz_Y?otJUf?H>l)GlMMFLsy62%=?@>9JgRjI0`wLV}t`A(+ce0NxG zJW8UB?rU2Vr+zg=l{urFX(jM+hqu-GMDX&J9dBE|8_`#EE+Sw)%#+Xu8 zZ+xn=ivVaomSeD0mV*XEdb#PP7c}a}0dq791B)RLX@te0wyX>QSnmwr)F{ODlN8X38tZ%b%QBm2O-2HZ??5%g|EM-1J>GVs8hW5%&nFLm?HgIs@RkPTzh zcGhZHOKcv^}Y4@=%(K_#zli7;oVzJsoKX& zQ#*)D{U~aW@#a?jH~Y#!?NNLfhV)wtcNvf=jG}X0Ez^{%T(CfZJRPVazJ~A&q9D4O zG~$S^gxfK%uFzDIA>Gpkm6yehg#V&d!^{w;ViYXdCMY@_c3{LGuXMK2YQ%rEWG8Tz zv=CD*L&C=;v zJvzj(c!k)I80NpA{@QG|4pq0fyzSqMs`(+mqG|z5Qt`ZnzJkA!hzZ_bqwUo3uK8#! zbf@n4TYRxonS!?Uo39BdcuF7tqA536y>)$OcOGSyqh8pEQPf1m7K1KOv%D>02h{P4 zWpJm7_(kR2Jy3I{vs+CMU84J=@J~%&UD1r$zDt@+-pyN)3 zlf?B>7>a<&`TQ8Ocuii0{uto8suJ7)&qu(#GpxytJLaw58e7;6?% z0qnvbadMFN`E27io4g4KE6fSZ7=~|1X_Sdyn01pDO-r|$^qtZ!Bk9%_0EmikY{dtQ z!P|?#9)ZRJi?}5Oov>K zvPuD1n_WE1-;I-)$KyohO06K}CZ+~V2_kzl)446%K5$I5KW%zZ_il1bkC5-8UMBHY zW7VpH>Qsc8^Uhw%EFJ~8*=bQ-3iD}A7Pc!$SVdtsLN{xuV z0(V-vE^&pizj;NomWxg7?qrl3Z`Int=^6&kapDsl%6-$Lu_q>RJAhg)O;eU=AsjAf zHD1CB>A}!rz1U~+b|n&KR|bTzI}nuE*_jZOw9RPF*`b~JW+QL{Y{`W@o- zmHQP0CvEuSS67+XjwQitt=*fiwEBgbg{qK~`9(n8`O%)-n+ML0`p`3B2z?jQKqd|C zT>2m)>G2?=AMyyZBz-ChIFkgUL&|QP>ma4?Y;4%@05%llKxoK%c%K0Wa&_gO$8tz% zEE^w6!Nl!Wa-vA){;Nc7>m@XG_yqZQvVzf*1#-BE!n3=DNB4;jN8GrhW5uN!76(bs zN{3b95qK@q5QQTu7pG)y)$!&gAaw*bwE? zhkGL~B$Hw#Ox9j47T_hzVD>CP#R6_vTa8(UOOgRo<{fIlfS7`q&)HISCKlg~?=B@8 zO4^f7(s-@NmHggSO`{Q!AoR3WDD07Ca2gt4+lzb;9f@Zub(z=9Yt#iuXMuYQPeq4( zjiUXFvVRJ&`yqCvMFl&+VqR^%_&*%&aPPsBWRW%s*eWTIbvFdJbm?{`H=vFU_f)QQ z1sh{-HR}pw8_W$T_!q15nni4^o6~Z(B3P>T^bdBA9BBvz}y4sxM6HlgILf-w7iYN>0O!{rYuDO6} z?)9T=m*fPkQPoADB`4kLhIXr(&nI@X7}e=EXqrt+$Kw^R7x1l`M9182)Yh?f=0-)< z<9#gfa+De-JZ5CE?(p^q8TKThidL)KCv>yV2` z0C9|?%(ESEN-_N-fuxmL{Hs`c`n<%(qB7{5`6ttx-tf&LGV0aV=e19b>cQx!Il@#x z<$1(sDETjlal{|#D@Gya$5K?zf^CxMAjc?;`B~4>4(GYKV7CYO)r+d|Y^lEVQ!>lS zIdktueZd#;}0|ZhUZCkdMr%c|SuLHG$O;ycnm~z*cRy#5LuXn0MyW zzty2nHJ@h`-fJ#eIK)+(GLD-pTNp*3O=&JmRHHoPGb5AQWLjISw-O#{lN|=p))S1L z<9wsc!LGf#?ZCu>y)U+RI|R$_pT7I@i~>{;y7==XFGyFIX2oVma#yKHEdIPv?8kwwsvsLiiuJuRdR;S2WncfOOls&)zYMvN(ki)N@r@5b%XW32d~0 z!FT!t#pD&NMw_25BenY93kmFX2p4XI6cb1`8EZp3&$omd8J%{+a1-4+eYp1>1;@&wv zbnfb&DtyiP{tR@yx(lR;M4eUlO_MjE8Ij0S96B;9pFw+ZEfdbo?$Gj!G+4?d?y=dj zw?@gSe^$gL{~}6BlG{&Y?9?Vzs{Z85TKr(lZcw3+v$(-)q-%sOnFp+KU*M~CrnOxfIgTUrIAvo3}2Q& z0#B&4J@0ouE9e~rVrda1&n8@sa|mpciMUshzqGvFA|&MO0u`XUn!wB=S^sPn`fI2_ zYi2=Us}2Vx6u+0%ZvmejuKcef*SSXZlOKbsO z{QamCqidH%DWk32i?vFhoKF2Ha0l&ZC+lCU0f!~_86gaU5E!H14bi-)UJxAV{s>sN zsRz9luk9+Aa;0OTd4=BM^3=mkBtCe(T;C2XH7dTrBzFvcNZDg$ZibnaFXD>Lpb}+j z{`rT+NQoWhiX_$p0mhD}VV50hnn|LO3z;i9wR5djX-!_V@wK3y^}g@$^#UOSLTf^( zt;UEfGN-g!u&Ln`$G_kZi0R3{xI{Jaq zNjFjYwF&-b(cVHiNO5)rO&5B1*+Pjf2>(FY_X%#*CAd}%1AsvoB?VdoasNFTpaxp^ z`%;c7jw;yq2+WrMDGK2FeJ5Y2K=S@`RgSmf17&m(c9(!j4j8;N+dmE%8^qrx~fq z7{XvLtN=+rVb{7e_5&$%`I`j`^lyEA7xX9^4yNP|=40vLnfO&lOKlEO_akVg|S zBi=#E67uYsBIMv#D{?(uAVUMy?Wlze?+prv&lp9F)^$YqL}cZ1+6V7b#BN1z=lB^p zLRr=G2cteSpMtVI#=%M{zThCGKbxLK<9nj)MgO^m_@BkhRrK@op=L*U3xU$7qw5lG zS8WAZ^D1>qzwTIK3P+!+b_^#@Dxl4QcXK#$pS;KMM@mGCMrz(D@<`UGT&_CjJaY6> zG~#fq&vYHGmU&|lU=b1@d%^zPM2`Kf0*e}nBSrL;H3f-o`h@5Ijwe8Zhq`o__e=~a zq>Vm?E=E|S`1|Y2R|We?lJmrznEYwgWPIlM7ypA!?4=Gx4ktFBDgGN!OqPEE1&Dj- ze-jEqs*uu*WSszqb?LcGj83@>=t2jFZ8fCEL9@q{@`_9s+*TbkjXT@TOj;7{BdNSp zWKNWamrH|(_(^Jt{M0Gh2)DAucPOzhg=ESJS&8Xm zO||0WLdOA_qDLAUm8tVli;hFucP0{|n7xb>*&C5o&viZA63vRX&(l>#%Zcgr(9zh@ znlL9rR*tu?i--Gjew4-Z4DF1swdd%F+gw()?i{7dMEJb!yzeh6q(A;QDonW*-y3rs z59O=>SfWWhhbbLy0gRH+~BWd0FLq`!no+nrRlv+R^Opl3mqR}C3AJGlDA+rQ4#Ag;53?>irq6!S^ z!tc1{;6&4R{r`my2CcVE#;cppBPv73$j1`o4Uh#P39 zY{y+CIXfD!RSKqPT$Q0JIQxGPf=?Z`>C`uR2b1jq_9@lV3d(#f)RQN&g>43I+W!Rz z8lM?|fq=+@wZ)?N*mk2Qr8onwUAoAO80_EwD-j3?IQ7II10CP@!%C8}aBnCG6L>ONDvE`}>N!6JB-ck?8p9 zAKB`Pv?Sc=G!@A-o10MaE!P#bNZ4DoW)ZN(G@>`fVk^PofNYSkFEQW+A2wFSZw^Kj zT&B-zvHp874mo%0Pj{Y!C^VL(^q;9T7^27}vqjK8mCwr%13#OgNhW^H z^XEK}x*fBQyu96?Rmc_BU-hkaxW%G0k2QjN0{WTil<2k@q=GlxU0$N`~n>1v8nKK55ZJ@(2q>zv_0yBo?P<7cY0#*i2 z&*M`JF4pIqTCr$FqG+>!DB=lIZ(t<@v9=!ow{>hxHq}mGN!35#m+m;zAaTnoWOku% zU!SqV#+As*G*8kw)p?7bt=w-HIvcE};!e(&b1&oXP(FfTK>_GSRR^Py3sWlp{s$TgZ+&V73I$B1 z|7jSWI}e!y&u{!q)El#boiA(QQZ&a*PBz7a?X++&R>W#LO5@MQpqY`npR{r}k*`|1 zpDd0`rkTO^sMxLD5Ycq){gml2KWNRXJ$*l0de@&@1#B(@<$Iwv;wZ1iz@!)0b;E7; z?l`{4ROuUNHo-#Y@Q;;&(sAFdHjq?tT15kPkha^ynWW|RqNCU0_{ zegI2g^h3gs3(dn$&m#~Fi?b30pJ<1|=L3=D6D7=U4|TK9LvIeLjj{U!hWe~=Pzsc|->$0e)vKzjulxF3cdM_;r>@eNE?Lh9&Vr!7vHi+Vjhz<@OxS5^LQKUS zNRtl&S9j8+oERLrcKV{_%;tB6tNxX-3F9)|$H2a2D%YL~V zC>NQ~j1^wFoT4F1F1za7$i7ZIZ&bN}D+!ps4MI>G2k#EAnFh%^6rF+<(cuztdpEU$ zQzfCDbSRwd9Laik9LaKjP#K_&B)?GPkMc>DJL76Dv>SlBBowE8Twh{WK$URZ}VK*EbSAjQ={B>HBtF z^+-m?<>B}B`WrXk&GE*-A$$J-f6x)$sY+z661k0bpavGjo#fY|*i#mfh8pdwZ%dV;z>|sBPoAZs=If| zShcN>CxrBZ#X#c|&U$*~;18HGId+ofAVd)GZVXgh%m&zagWwGoe9^g_iw0Qe?a0#eGCvdMN&f&;B3cw@LP}e3_12|tb-+9`xm#N@raM2qPrh{wNM>94cDm3Gk^edY0O<5ZuPU=( zb`F3j#;U6ZcC^*<_&Ubz$y}TKI%#-f47_~08&qavh%)hMFEh+O$>wxF<*y$_KgAbB zK!E}`mV?5Ep6}y>vxz;Dc3K>CnwL7AEyouGGG;%rUUy6FG%HBJNrcp6)JIz&WJ^M% zfiWTW((qC!VrtEjuz)Jq4b{>3cw;xyHhbnkXWUsC`&h%>``{|q@GKrFHw%mX1`^?tm*MtAQA4D}Wr$n3RPm1$plFojW!i zQ9?j61zFe`OoC*)&~u*e3rcK-oxgf_YZY9|g9~ZqNUP}1&|BohU=O9L=UT-uoObDT z+v6Z5vyb4Dp1(q2GB9PEhP=&VOmK6?K&eH#iUlu)oyW7hI1-~JPh0XhH3=B(U0W(% zf?hcsiHnPpMQN!bpahQp!7xsRdzL8JEV zeV!l>f`I1$AkNUSZRm*9HUVg76#ihipA`S#Z0Ix{xsbZR`-xnRCuz^*`5ww2X5VR? zL)RbQ%{uVxhDvQIwntv&%OifzS07-?uqn?K#9!z$Sii3PA)8__<&k#(dvAgA$dDq5 zFpB;6&&vaRi(S){ZHJ_-T8m0eeq*ZOc8Ox*p+mXz&xx3;?)@NyJaz(fGP7is^)=c} zmM4r(O%RjocPm!Y2e=LPmyWoOY%xOz8O-^HYpIEVzWi=nKRI7-OQrtFQj{LodW9um z%RjCsQ}inhAB(4Z*)&1^J_FlcSkoME%e9d8Hrr|r=AI-zuCe1ZiuxYBr9%~eoot@* z1p%&s^l;DEAn#ufjSUOE?w@Dtcu79PXWyyuzCB_oz~ut0@EPH!VVs0jx)-@_@S*H6 zeF6+pFcOKoOyoH7u!r>1HXlOkpFeoFtGMf!*sU+6np}gLBghz}x(B;<$2cbm`Y|9T z&(YZ?kYotD`Hf0v-Kc(;t|t1Fw$`rcfUj;Q+q8xfuLcG?xFa#7)m}hu7O;>?r0x{s zCq|JCDymdZPp6GothT2s%W-m+-BEk)@>UEf^SsDD=|7AA+B|!Y5$iz0;^=#Dh-o&I z9SMG9#dwiW&x4oVR82CE3J}%I7#^kVF+ErEf-V~K_kiUH_YRn7{-Pw+S0gQaWGMm* zOViHs%C`qvxpbaCn{cq&No2LeKBRrLlIF3oJf8{t#GCCtyf@dpIhb4LP#*FoXP8wW zHjfFEs#!`_A|?DuGR6849?5TJNr;(aIQQhZt3%7ue;|XV?L^vO)+t@Hr|lHA+Qfwe zCEx795TK5wn>gYclf5UyMQUJLDCe`3Y(#4K^;#qhCHr}tyg6@@1Dj7ISzFntnd8bmFf-Lo>M$$N&1b7X#yt0`3GcMC5MIkhnNB9h2#LYG>9InQtCmTmO^Y0cBi zC@ny6#;WM|V`~gOZSM|$PIjlu(6alJKqR3nDnkWv=tJws)>V9Ao(@ede2IcytHVw( zMq;T<` z6G_|;)cd835+^uXtckO&>xD*PQEZqaR{WNaMK9FDWu$>qSuA_x%X+f8#(559U{77R zOjUG{FgFa@Y80suDf23sd~wE?baRScO#F>e+1+LIRphI}M22{?~1U z7v7uAI734Xtqd_JK2~zJ)4bL$4s|^~VA#6+PF*p@Ydx)KA+kiSdTpM{h zwB9O1P|E;b$9<*X#C_T@+${wwzGtY~5|68o9 z3F8R!@0?BfQtscI{w}I^qTc@oe-Qt>-4>_ypLz9q3*||!bkT-Z5B9(Iog|k3XCFYZ z_&;;-%}8&HqK)NE1goNr%yN&vFDE4`P6#HQt1tIhICw#$2^WtxDx3|KL8CoCu4Grf ztX7tT{nthI_iB4camz0E;Pefn&CATiSN5k*`<6!50P85wE z|2oB1_N(15vA+j+a0qAr*I~3AD4ggtq=XY4M1cFdyhn+lk+tN8us5^aPtXlyca2er>?+*+4OgrDsaIa3&}1>3euL6ovB|p0DI96eK(W z7#UM2Z7-p^=qgy&Zm4E|_yr!u6=G3fcOj&v27_8l!)|t7nb%T?03}h5k~rk-_*c0? z_FkfE>N=3Dt&3=EnhXzURbnv7@F5DvI1;{v0^_VoljTpnvs0eY1As_H0Kxv!6ctSf zHZEkTe)dC#KSGdkd322sbR|-LT1I; z1=@`d128JBq3bEY=!5_ua%!S+aSgO!?Yh}&pV4QA2fT+p$zjh5(=xtZkbf~ zCE>SmFd=9&S*kCb-7#nwb!@akI@7k`%~y$rH|w?L;G|)-g30^Yv|2wUU3~IRe-5l2 z{;fXW@A%&({k^#kepLzgp};T$jqgRo1&-yTgj?*gM`Jl7r+oawo!~IV$|-tH%7^z_ zG#qQf)X~n)tKgATL?PJF-e)8N%&Wac6zyL7KE+<3F2T*=H>BS%n!3VaCDlmKx z7B3e_uTg5FCxgeA?Czc&4p`{p-#!_HR-0@SRYaVeP9PbOYAp;g(}O@J)`1d|94B|) z!I(*Jq1n0SAlyM8WF&$p2Z*btQ~LC_nyzc8EyIm^wwfcS9)PXRbya2+SeNOd;Uby6 z2ogzh%1te}4bR&xkJ;bHf5)9`kjKLY(3lV<{iTVD7{LBb6Zt5}8>IpQI7bR_WI2t9 zrmrRlijZJb@)jUvrX|3Yp8 ziB`))OEAo~za+K4Ii*v@p$=?ONXYK2i_Dk5?teqkMVx2$`IXNI&`wYQ(cfBu74Dv_tIF%8JfN+K&05Zv&_Hoh zCAy4TZ*tX8VKn!boc(27{YewkL;d-F`n{+7DfoexqLlc0xfe`5$(+YpxQvRauPXcV z?G?|{`(+X-Adh16^YN`ZgKGH~#8a#4H#xLXxvR019t@#0@P7!TScp7AU%mas!B}Eq z!=_P2M;S7NJ!MdHUrG3%%HNCF%dcCcoJ|dY+>v`Skuo|NQ*`m$?{_vFr!dyS=lg$T z{0AFYe=&1GZE{6KfjRfUlE2_lgHE6ckAj|OT5=DdkG0UnE7ZZ|>-CQB#s374$eG1V znL4-TGf1;7xw4u$cu7f-h45AYeyW|$(pjdGWYiX6yb=r95!5f1`d8JP2X2@c(Wdr4 zFbwSpA`T-ZChBcOdVyuT{2@>f4*q4%Se}=(j`gukX$~>_aqEcNrAZ0 zH%%SRI97Xl?tPa{lWaD}wX+=RJWfAp4$`zd>3>_8*khKTXeIMq<7mDse@SMFgF?9c z@L%GdLifl&5F~$=)dKJde&sI?aLYB$+u)cgPtLw0iQ9>5uLeYF@p1vZR*LpJINR(= zeP2m}&<{iTM~F;~Uk!@xXn9k*-);`j-cJiqPEun&9oKE5@TFiul78V-72ZqEZ$;Ao z|FJWPU_D~+wj?|pU{x?%;M%o3cH$H<*3=zJbmp7$eS2m#cOTIxs}88B52Z+v-CBU< zM?lpBq5q-{dHuI?(ez&`7d!ft$9Nk;H14ftqBJlib2WhXs+8e zGvuNEN9{s0{pQuD>c^Wt+$8FWIowB<^QsdJZ zLPQyA`mX|qjcA;NN(Ic1nG+}AKx{}edH zm&hjR#sp@ z7t~zU|8+r$MaM%U`{MiULD@`JRz9yjT$UU&hF#du;6{a!V(qqAvim;?Jy`UTqG<%} zF1-|#>|fgHsY*rKJ6f{9rrR?CeNYNFdxbzBly&KjNu{(3f^mq_A1s>~emf}`7IVh4;q0^s3zV2XD3vIzG|Y3S-Yb9 zL7xlHu%9LB9PuD(CN#x!+WFGF*^kpK*g})B%F?h#LTpV5fYmq;Jo{vmE8fD6*@-)z z@#~uKZeB}c>mFPwq5rOXShg^#ABj8I z=aTX?h*XjKzMXu&bnQjjtmie@;lZ&5QixJVg(S+Z$B z5LHV;ck&9Yc%VkPB#`yl?dTGz6V)l)mbb_DTY10# zoSQT-*RStQ(uGLRou1`2$tAUjnxTp!XWRU%@vs_?5{KbYG)Pc|cGiNek4wIa^X`GH z9%_@hodC?rPB_xWK{P}B5T(u4ucH1V!tKJ2ODlP;W0WYuy>kn0U|m6>yG4e{wb)nM zQr$_f$k})?HBXvxy>HG?1RvetVb8BbkcIG^4eKfB?kp3WLd+E8z6<%{+tHROB1oa9 zVEkoV2f*UEqlqH{qmOF0+Ai=Nm<!=Z)-w z#3&k9Kf9~X=T@LUG^yZbyoBx+ayBe~2YHNNy=tUS@{{>yKIE(U7{>4Q<-_-o{;^O* zZ{)qjnLivX$&n>8;0&6af0p^A#y9-~@H5xK;H_~Y(l6*S$(>fw7mx>ylAM*KQSMh7 zMI9u#U@bDM+h5vbXqlw}JPH49J6Ixz#kH(ip9VO;xhYa+cqaeXbiaS`rJHI~@FaDT;)mxF?QG zbE4cI2{u_U9()~7d<1*hq_yfhTBN}H+E&gYZJSgmsYzytPOxno5RW#r(HA!oZT3_p z6J0+AH-Ug!1R!vE-WniwlCADBwMkt_f&IOLfr!bS(r2Sr$ZYl$FxST9$oT$%!Db&v z@ldsQ>j!6<<#zR^WF2736mUlGR~@n+zkM@I>nHc9ncsDnNhT^-nuy4-w%Pv>99z~7 z(iNG3dfbN-h%HOzD{h-98a2mX_M)Z|^#ztlkj1HKa5`$)yQADwZSe+ODrUOjy&o_Hnx)p4r+y{feSEFvH{Z zbF&BQff_0RX;gP?;9TZN9Ntx2NDY@ao-{Tr!<&yK^&REWfm1?^cFrNMXepo#ixs1=iF`(6bYLoL zFl6&alcoF=WiN%R3%JF5(R)sq{?gdNQW}v91UbL*e%eTeZqOQ+!wOKEwo>iN&=xSN zFrK!jy!P*(xsCKt*ny@C%x|bl%V{Cy;#&?Huj#S!tM&fdQq9rhR;rrD$( zWHCx2Y-EmEeneL>U4e?YJ=L-rR<;_^FGF=I?BAuLK3iju?Vzaul&s+y;R6{cH$*h| zw_tIj!#Z^Lw0p~6wIaLY#vZ3#_brIbqz%Hxz zdJ~Bq<}!udmsv5_PyIMYSIKd@g$|4Zf=UY|Z;gINeKJ4BiH$YLqc1ai^$JP2YumjH zx;MXvO+m`;RLqQkne6x}uq``mJ&Kl6F2`z8{K!;_RPAH=HXBNhxNzfq*@{|K`JDmx zg2Mk)`#ajWz^6DpQ*er?f1P{FGGZ<;Dm;{$)`=-hj@vhIVRtgz(zUHwZLA0{ow}-J z-oolrK&p1>kAChqPZt`tkIs4it_hNK-vp~ug{Zvj(xv>25iwoAEp|8 zvU;X7>u7TN-INIpY#!1=hxNkGRksUZuTJlA)Ou4}!QT4Dhfa0W?X0#F?J^z&Tyyv6 zr0pC_)*(Psc7QH#eRcpl1EWHfJNyHmq(k>nEBLZgv)uMZG6Y=a%EqPIMpu(*4x85^ zMkafmaUR2N+J#9OH++s26Om^n;e*3LRAo^i5(N9Yz-|d9_+^?aMk#`TEuraX7?4wet;XKN z-IJj4zY5OBf(QB)SUq_4v3A9tniE&-^0^mhj;wc91X-MUyCMJ%+4fQ)2+l)ay;KW7 zlHp6=sa9iGSzwC+22ZWZd-?rnJ-RWL9f_wZWzZp|8;eT4(-$&>?|M^~1 zG5|STSzMkq2W;8NbA6$`$4Nn0ABH|;q&mgXbNn_?HcE~t;qy}rDoNoxTt2E>ME&Z~ zl&g--l&r6a)H#{Jut38KS5~%XQip=6<%~DFfuRO|D$(b zF-~*8Wq#E)x8--pJkwiD@CMvA2f>WPuL_aRvey~*D40u&YE@w`stnA2n*8S8?LI#j74>&tF5Fq%Qss-A z`v-CxLLUEESj%o%c8BN((%6Y%iQIJMnq-Y2$=-$U5}FR>v?61C!>fHTu6G1x)Czsz zdpf2?Y9<1NdF=He6QXD&GiN@_Y2227JUJrxw3ZS04VM`6vKWOPBg*32+o3j1Z!zOv z24}rR)lkIPJ``3T84uXiuBNn)mRVPObN`5B3ij!!3ClwI@_|>J#F1JG)I2;e|FPR6 zn3m4!cHyx~*;59R9;Z6fvU=e*V)O9BT{hHn8+P<+M_p~P=b}TkI}SdU-#GeoPOld% z##QnwW>*?(SJZezd}!7cX(qb?^27RNK}0jm>=WlQy{Qp=G({9FRvULT)ayG!?T=0Q z_rv~T6UV=ZRtad{eW+Vw;^I+0=EEM;lX|<-0A^5+KJ+3U9phl?rvv*j>xl|40HS(V%CZ1y3Qz|dTpxe-s<{s zX$Pj&LWnjp=PO8Ex}5eB?9pcQpK?1xC7s%K8ckFAgPH8JAD>89Ghl=BE;8_$km(7+F(QM zr7BVnibaxhq5N(oZsI`#*u7;eFz%KeE?xN`t{#D`!Llur`UXJtKN9HFPlIV%@>*MZ zD5D!XIPWVkjX2-Xn-|FyvGB-w!Y?)BlG-(FA{2cq%TF%E{_@DiYV*(jN~yJ$YOeW(ceCG&O>j_pOdHt|F|Uu# z4@ge_x#0FUC}mdYTitwC>*32hNB6_vegTVUJgz-%N|(mb;GbF8A70VUzHY-l&dcfc zbuuO)b4xs!9-4()I%kTJgd4RyS}Z3E9Nob9u-ES3kPF^}2gRJ4VSa8r2z1-`+%$&s zfYa&lf_(N!^a3;QmosnF@EX|*-dz$!JW@SWj(oYBU6V9PKa;P>&vh8zw)Pi@=unKg z*w-R%IFmlFY(yAg37m-H1!@&s+Ph>exg~HCztbOomDL-M1UxNJY(8|@>Dv_4yy{L8 zI9_hgU}V}j?sqcs%xUM@|gGje!So0wCbEOD* zR~A){I<~tOk6#x_?ypIC*`XOadJvx%ux;4>uG1 zUe`OF(ZU#(-x;J0u+lH$Ez&o;{DkoWeB758%3lHFT>d-(f3CyY1oiUt+5r#@{mt@d zE3Gi_n1x~d;$LSemvZqAFnPpFMFh?U&dK3 z7af#hIT+}FI6M2RN9#nvcpeY){_3?#kz+k(6(?emPoGiv3B=Xx%Q>V5aAI$)u6*GC zsgtOZ-e~MMCFXj$Fl3r;~{*SA*!;AJZ;?|CbLFi0t`n^U(a_lo zGgNBPcGFi%p7*&~A=Wqkx15yq976?*g|!;D*w;G$X3N4^ZLj8zzHf|z9s<`FKTOGU zzfCFI+&BLUbL-)8bqQ-Zpsl4THFmEO;W8+&5f^WNMeJzC&++PUcC0M6j^mK0UoFJf zEkCX-44J;NTW3*~r?55R0i1{B;eyH+ zmXTSeszpFVz);>_A~90{?4eq%mUK}43-U{1ez2rR|)@Zifyx$*C+&;QFo2x?7 zpMw>BB(&wmjnAO1x|cZl%fCquhi|tC!NfaCYV_9OWWyN z+BJ48=C#39*7+CNCV2!QW0Nn#t~mhmtc8&7K2{R)|5Uos?uABprorgIyWfVdR%}Wu zNJxDaAnN+im&LfIMW&V$?J~ZsO#i<+*2mFk?6LnU-G?UV%&S(8`-@Mcz?M+qMX<)W z)7df3q@f4rOag!8)u_%J;7zp<`Ts@Ff)r_4I;U9pVMg$cLfcygoaH=gzCc2#@LfB6 zDEf#?If%r!ODs!N2`kv3u*DPY+RHb@H&PF?B1nK_^Sy2>o2Lb1G~~Q>#FV%?~IrvJ{)m@e8?7t zJxlUbXM-#O2d{wN2K8&cm3f&lYqNxSz8nOx|KXgUxK92r#`(OClz*YM7Q?(Q{|&8G zyrHH%HGzuFRIyt6;_?SxwGQLJ6;dwtfxXj8c(^_tUQsqZ#(8y5W~KP+qW91KUoQHi z?dsYPf0A36;%xMYKV~9lKG1KnV`x^FgHY@M8Gq?nyqxYBd#c?oYuQ}exe4{aY7<$9 z)SV?qUQtIvD;8^#uTlhY|5Z@ty56Dgpkz;%-|@{XYNX9|6U>NOM+&OZUMnkx9(_#H z&DORmE{I`m0gV52OMkc((^Mxz;w%!ixtZFiqcm3qpJQN#+1f)}YSt2UI6^kht#rRf zJ3-WndvJH2plFr;B{@qs^vB)7f^<>`Qs@gYFx{yl1I@c$_&7XSriK8e4A@-*{n5=+`Yf^xO+;n;6K*8*#?9_ndT1T{9h zr8ig?QVK5n?s+H{n}vhW0tWl1ExWjd8)mCUNVYqd9;-v$D)72wSMnLrx_9{D?ZWxd zOdxN20px8bX&Ge=4gj-kqb1p%xPuWPJL7q4HFs1)#eN630ttEi$pxX2%)~xwjm?5f z5G1S-fykZt!ydzW?+thB%eW)aTglhIIeYz2^;d!`sfB5dUl6r{$gTS{5V@sm2O_tB zfXHnXmk3vWPji{&xuOfJ`T@`O#*mxhY=`C;ih-qKQf3L25^K)oZ5W#nEuU2%LN{*; zt-&P`z6_-$#ta@hK$$wx&L#mKNd0{Zc{73x>eDEPj7+UFORpQR3VEGo-U*6ua-lwJ z?>tgM$8Y(81%~tx-Z!4A{Da=UiwJ7yQ@}KkK^#+@%6kiD5Yhlu4CD&=%HwRgE9Jn9es7D${Y>d%G@U#xRht&RCM#_7 zakhv9WB#+&nFRvoo;mv!Zu=8sne#jA_bTfDW}`R#h73A=S%5J!wjZp3Z{4p|%eP*dq0Woo-Djdfg zJbihEdVw|WmqJWU8_5`^kq9@^Avm0?EvdcBfR9vh(*F=M99g^9w8>fd)a4<*bm)*f z^WcmTH7-c)4GB%}#Q74u>^_f2y+`ES$Z1OwHIm_W*F7ONzGhsi20nwUgp3(jz_vcj3tnJtTBzHIIbOb|N zQOSLzEya1nO#tOhUkR?ZrWbdBwqW*A#-ubG*r%FE1?-g(1=p^`N}t)fX=2yhh`5?S5g6aRL zs$n#$B3C8+#UttckP9orjev-NrCQ`)mNx~+^16v)gwjIa!ys2yz=*7)7rI9yv|C68 zmIW)Rx&47hm|JA{;;Sb*Jx||1TZr}YUGgX9tjHJ9KSL5*&y}LuD0eM?LNA);;HA)UUv&H4 z|2|1{@rrEKYOP&r?TL+dVoy#p4pX7D-7`dT2SvKUDi}NDwMcK&FTB{a98RwdM-{q` zxCg*LUfFBwQb%R}Ult_sP)+Eo7fAq|YQyhDMhpkmF4t~#+ie6G@Ay{r)2O3zYq|UzCT5*I3)ixi+>q=k z3Z7cR=l^gp)mZ@@>|pbVKayFrc9@o4Nyg&gCso+Lt$c2Gj1w6U$vC-&lsGg5B;!k! zd6-&h4Y6hkAKztRM*WxB&!U4ukYB*e?cL)OOzJM-XNZ4wcy zKM}y`2S^Q#hQTn$?myXYX7)~a(k)S&2j|{;)C~Jc>ElYivG25HC=th6{c2(FNq%@L zrCcrMqN5Bg5N#BN6~h)Y1K#?2wpG>s=&IR|p=K*=6IhYV1W0tvl?xvj*A*xm!s24E zuZR>=y^kx;k>jxn7Y9pR$`%tfeZ-#z8l4CsR}jzopdJ74Aa$cR6#4h)F2i*B@lt7l zvT*TZ$;>FGrK$`5-=Tad-#AEm;p$+`O9mw?42<{%i@X^BsGCy{Guq2;8jYrVwbhTf zV;S)64+5A+s%D67*aGC*)i^pEZd6^~5&An@G+rKPIcN^qw!r9wOHJ-+waKg4aAG#R zY(#iD?R|`waC7cfTubN`BWz$%edrL^)LcslJTr=z4aJl)ctR{86PguG*gQ96q5zt8 z71;3GpS`FRFre1o$4@#grm6*jIE*Tr-~UniRU;b+JI|Q>g`MgCft@9PF%C3N;C+L> z-%-~mS2Qiz`ZN?@c~w2dV&H|Wy7{{j0bN|Rp$8J7Qqo`EBU z(d6C1N*?@Cb%=q{eni6P#$d<#TU)&i4N;<#b1YXx9EOF|ubFm?`XKnHX*)vY%Zf+d z5K3<2bA0j-fp(*Sy2?hZ@Niq3@Ixzsdj54CLH)je++^U}OQi_#>nROLqlVC0jk~-- zXWZt21Y~#ok^yg?5OcS71X=>2lv;>Gr25-4yBMx>oNE1$>$@2B2dmb|)2s`Gtgcfq zFuA;lt@s!#&^s-=7?|ZdFavaQW@~=GFtYUXB2fTzzxvTSoT!eYlFdpa72-mEOqXsJOuPg4ag1AHU^d8 z6&4%!UpZ|-(XunFIuYL-KN2_F!Gn%ZJ z@Ahp*{+7CsGeHk7rqX-jqfMh*wzS2A{(N~rWd)eOmq8)ZlOaGv@e_|SSy_l^%9O-z zjvkJo(dm`R?(MVb@#5T$bh-QL^PPtKWI4X16V#>0bNK77d(MR`mD7;B;#3|tQiQD0 zoJ0Yn=`erUltsWPD5_Lo0z-XHiUm(AxGKi!jZRgidJTq{h6b?&m$^S^gaM2}@H_a? zST07y^jGoC)aP(U#yQ#!I9W(QcN~LHKq`$WxvRqJjrd;S-jB_;(z&&t%XJ5$2csr! zB_|@kiyxJE1t*J*)JM5d7UAkbGq(5feg7U^vXoh2vL*4HL9Y%OwU zZDoX^OoMWErCKVl2A z%!mz7sCytn(me*$YPN)a`0B+EA}!Yo>g~`>>~FETjF1ywwbLbJd8+S5=(A6}5UL@y z8jGDSG;-;Q5FWA+ z9$?RT4VV?<7>98rw(*+lceV$;xTdPsmNBK(A-FMQVwKtnb25_QNsbJez2?$QZD>2G zyqA_9_b#B$4cNRqIYe^X@N7jp^l1G2=qUiZ zS{SnM+hBVgF)UMz#Zc(WG_AHu4U*kki#%T&rhu-j#X+CFJRFpTi-v`0nFZNnnUieU zR-$T;s89Nj1=dCA`9*WU*SIQj?~Ys!=s;{?&R|5!#u@Uw29@y7BCpyauznQJ%m5C{ zwIOZXK6ipJ8#-4oZnF(Z@Q8u6+IXcm$IRWGeZ#dg-h%ujO~Q{uR;*sxrBpQetygDD zDQuU*RF7%UWAdN4u||SV%i!yodO}h!i=I^fNj|8P3L!;&6ILVAeP%zF1`I6On~>NV&*g1>z&aK>TUl$7*lTPMPD{<* z$ch0$(lsJCcz4r3HVnwV1UG!>xw?f55-?LFvrE)Xs?OTPJcFQES;$ec`p83`6U-#$ zNB(B+-;Db$(D{C~TRwZ*^`6xgL}+(4YwL)p$uGCqW{%bbgU}rA2x?zqm4jnO{=Up% z`IvdgLgcX5o2)I*hsQ)`B|tQ6lKG9F?9S++<9uG1qm`9y3Z^}(Cd}b}!(-dTF{5Dp z&6l+&pN?OTUwYH=Mi48Q^=H*;sXJ*Kn!&4TIQPed^u;Gpb^bW{BTV`a#z>P3#_(by zeMH70nvkf;oCGZHm#1##vXLD$tw>|!dflNQLWF29sv_SkmxDm>8vz z@{pLP*6^rJ!ki~UFs)whHTJmDh1AsGw2>WCxPqh0OS_}8HRc)mb=qHs?V^n!9i%;< zf)bWoJWtx09ie6W6D@cHd$+YIP!V z7h86mFs@q&MrZ&MdQ7l1xk57LwlF#D)aRlaN6H~y8EXRo5V3a00Q}h%7Of;)Hht(% z_+l0|VE+<$Z4SaVmo{~OV&5$xz9q`}JC?Vcp@j_TX^&!pVKOub@W()jjE`(??dSy- zNF&BS=ib?3r(7BvGB8;YwEHLvHLZ4Cj>-Ji6Ms0ek79$=LJIs{{JyyTh*Pyw&^BVO zDU}E5yZ%ZPx%G$Zcl>It@k;?qbTwLF;78EydOS}CmWoz> z^s6~mA>FJ+=XM2uW!==b&CXv3XRB4YVIKJ+gT(jbt9li}8@P3MvIy*Dc57;&0@u00 z@XQ@}l+^bYyT+aljvvDv`Zl~2+-@%EQ?nEFuCoKd{5fBwL>I|jINsDA#yfwWdU5^< zw<{S%_f2McG{@b4`g6(YN0`FNg{(pCSSd6$Q*XGxNMNvH`e>&>jfiHA#+#@WMfj%#4mj`#wMrEQGazm}I^AxkAhw>W#szoj93d1u_ZXe>PNsH1L* zNz2l!>5KvX04b8obiN;66Vc!UQ#1r}ZLvGKv2l2ulgYc9_9QSBL*JA^Z$T4@x|X3m z{4DC_N-!W+KQ_}Vx_a+wZX6#Kr;*)Z<&hEwj1C{R(N1gL>uGNs!kr#>o3S7|pA171 zUGJ;1>3Hq$-H3eRQZFO)r1>x|_cpyQYZxRppQoKc-2mLl^M_!=E$~>^s4GBN;?(ft zF=|(B{6HVoLNbk9D>_Y$#*-F(0hAm7EPC#^m^%gZUUt5TW0V=TG6< zD-i^!*!(D(!uD6UEqneVk~ERt%9d#)@cA=GY!H#o?AQmZ%+KTq5HyhOM*B}Bm&39} zId6oS&KBd1vcJu zU)aM2mO|2dazCFQ=w(X=-aMWA&V*a8A8$3}9n?!hRQ*ur zkwr{rOm>i`a^C*Y%AM7}6EVXmDwOEZ)hi@%|MLhQ3re4B`EK=S?KC8{%WJpp3q;Ku z3@N|X&>bLbr(|M*yUkOpdMFvA)o365!HrSTBlQcSXNB8MjJ+~E<{?(c>JlwC%q?0)3`Cg%gCelhpX|Ur`Ivn(lz{Y; z+ngUfjO=Z7XcM1z+H@-XF4Uwk>2+Fo4&~0L-M3$XkaJb;i_EwcwVToJ1OY`K^iadh z0SNBN9#$9K+<+O{N|9A?qg!(Agvjs3b=mg$`@1$_7@Rq1YF)jvvi5KtShQwIW~_Wt zctrN32F%0KXYXh`>!dY(y1Xdxtck;&x|1PWy=CoxBsC75!w)qphkCp@ju2}P**0YS zHz+g&BDANbR;qtELaahRl0wD6~U^pQ?nw^%e?4KA-S?*;tQQtM=fhcgW{u$#gz zc;Xd=zplVAwm{577~^7Vfxdr2$cNtfu3kzbcmdjBcHS`EMIF=*;-5aT4a@iOrA8PM zUw70QGw8Z7@Yb4(YS*s8JnaSK?Mp%TS9K5S-C{DjQNCL9iL-r3+QY$(aREdV^wr=iP8!ua7EC{ z5!VV8OvatM?a*NG1A0B|{UdPWTDw2)A(cPSO{`}3HbDB(2!gzM=T{3ie&61?x5k0b zmlQH0xLK9U-ik5G=jpSJx8|THGK>Qwg1ThDU7y2w*yjtqHV`LU9k;YP*w7WIbCkHf z&~qjpy&YTHKqET`p23qeAPi}CBWkZ*dBn;@|CuNX5;U40yUjrG1m_D!&iWSz)voqo zk@JuhF~YkUbw}g;AI{z}$db0(7A@O0y36cRm$AyWZQHi1%eHM>UAAr8_Nn*%&c1QZ zzOf^2+&`I5WUicr1*g-jnHwc+t63uJi{k^@iDJkEKreGvOF?hRYqs!yvvhhcwGnP6fa^@9XS=;wa#~6l42OTSh{*$yyzcu8b%$tOBGR`Vys`sME`RDGHC5uuz*B}g& zxUa^%GS3&kqkBhS;OlY#5{R1eIB0UyVUa_+tqEh4E8K@V zI1CN5c$aaaJf|`O9DfVB>QDG5qz(X|vcXsb#`%c8Q)77jzWRIY(?v4)7y@MkINYay ziYriPLc2J-yX$?rKVClH_odG`P%=KE_+WvOFlR4JepUd0Tk7?6pL9_TfMK@jDr|yxCf@m|7?<*uA$gc^zBt z=Js^P?;`5s^PgHs+;H&!{sw{N@nTy?b(KbDPecVXvl-8UDadC)O{P1|7%sogt1$ED za984XrHKJb?3KRmIie3R&!F=~!yJ_s<$i!+W6^|l_x4mE6lIZ=*QFceMjl@&KfZ?V zU^z3dE*0a=n4Arl`)*_~^#Sx%N?9{mDm zdCYkI%L7$!9GK!kg-NtNf}D$-X8=^>Xq$8MqaP-idZk0pOKA2pF$qn=HgO&eo(mW2 zdG@2SuHMz%vF;hVZLJb)9yP*3$v3KxGNw$RAGbCg!RBWfyxm^LGQk*{=G)%{b79A7 z^iWw3Lw{}_j_LxGtyWjhXhVg2L(J5A9<)q>0z^^lqd~&}mwB;9PozegDqt!rJs&A& zj=~fO$mXa^plZt;Gt?;?=C!>^Et!Fweu$(u*e@val=;%wPNP|yl(6q4;Ch3TaTvCk zLxf=z)pb2{R=IlgZT{J6rO0#+uVpP|8b3@mVaZ^DUDcsd(_T?~4t(H*v;)(O{$K-$ zyA4a^AZDq;FoWcr%10WcbrwCWBdg2`H?}8tc)O7y^TP9def%YrxnBcTc(BMA0o0cQ z_XPg07SxT`MXInWc9+?$Jy}`+$cqalsB~N6Hvh21$(%5vrWm^qFa&n6WuKjtFL64^ z>2y4+1%vM%fzev1@A9dZKK(koQXZ2xRf8+O!dAb}zI?5MVnzjKZ;xM|gS=h>zHzXM zV@d$lE#%km3Ab?!sa7)(gr<_;9ug1jG5$jM-*Yx2i1d@?xv=gO=BdI%U z#>gTq1A#RW`me%)01R8nHj@SV@vWGg?@0tTd{D;_u_^LvicQ<-MA5?Q@r5YwH4su^ zOMb{yTvdYbe@x3vc)sOUQ(}=E+eRjhy&E)m&gsfD;8aJtXuoBPcUCS7x(UMiLzu&X=}&+8exH{5dI@MMlIc3!X3bA}gN$++ zAkHI7cZp}GFGws_FEiV5YJ^}#`v7bLgaadq`b0EpJgKFo z%sd6Xt4&*a&+3dyS$cNXfOk#4yyAfWFyXW|z zcw|9xbn-QNC1HtcCRrql8d?c_df%8MMAFjg~j z(c&dnhH8D?hiO}U9ut?r5of7QB-6L*2#yOW?t{eF7$nzpvMCq!s;){zcZqxr?GRlk z*7n-o*vPDzJZv;ECA0#u?XX;HX)rqvq0A`P)((DV=VI@KqlX;#VbC2Xa^n`fJ0o!d z;Moj)<~Fi6gvM94T~w(5zBv!OXNGpw->GuypnANKS@Da*4;(9vJ1n&(vitAJAyofpf8F>*ISO@9pa)C~2+LwSKT zkMC-?J9v(*4Tp5RcrF^#Mus=T$CwA->)o`A*X!e~J$@=V;5SDlmuex?s%757*q_R| z3!IO0veM{_5C^Zdtk_%bLFQP=R5AzG;qz3o)n?|2PKYHqYzFGCwvT?FLFld)Lu16f zPU3X7T3#u7`dqxt51nUNPvHEokLFH>ddM$ou7$f`A*O@y*PFQE>GB70`3(yT+SDs` zy%8IX4=EB}lP%-l<5@2N81A_7Ke2}?o$qJd#-U$^A2l2$v&=WdoDQIV12VbXu1F@G zKL$Uc`Qv@53!0%%z;~x%S{yRiU@|8?Lb6L3eVeo#5Nu<{Tz-1l26~=c7}SVJ_H2IA zggx0^K9U-QN+2uaItDfrHe6GnLbsT@+afRY>zOh_U=A2_Q4&w|;Y`j1j!LG1 z?gu(W6&?QeC*?>RyoI2q!0fOi8iuSJAIU2T-R*{?w$efc)ixas$5;Fs1DK@CI_Nkq zC`JsaLh|qoDnp&pYX3%br5Z_hM6W1GA-!SEw( zwFd?@=~was+KRK)FlA&XtYLnKEqlrie23qzS~w9b!C7h6Ul@=YRjpq@)Day$8g1iu zbqmbnJ#~N@=6bmp9`DoV$n1qGhj!hMD#Hf?kpC~30)%sphXl?<{v`Lctf*X zBN_)PhJ7PLwAS6zEGgQc%k}7nR(E+7D{-{7zpE`O&O?7#cw7rPiPc(-_)(Fs4a5>t z4v&~gk<+|J-}h0KRgTr=j&hWf>g=z@5p7SxX)U-3DXVQm)i90Cs`fExF8)%)#0o#+ zd!XY9(jU5us!RT!sLc?^KgOH7L0=+5dM7~NaROwOqF0|n5ER0eT8@>Gi?tbx)wPJP z4%n^7{njLvfM|i2Mo?`s-|!@&-vZa5D9**rQP{iofuxY^@+3udjEg>Qhk0UO%Sw9Q zRoQQU`Mo&$COlS`kUIvHok|nOn~Y?ySIFHju>~wq8EfzqUm>+z%;}JX!jDj6Bz#|{ zU>E0JC>iOWBbw0z4emtCjNb!kV*6KNi4iz5ILS%6)VdYNTl_wJebt*(29gnpHgm~v zfJrci0>Ktv1x-EG6^W98QYeqch+gbFo`l?I7 zYr@9qCyEb@SF3K5YojIF73k;2MEB=SfUW0yAH7eOpvq&ikKs?hqz!N#`x;$H`jQ-)`Z(2EAs^Ni-e+YjEkE=Wvml zOpV(cf3x%AffpzhhC96dc+ESAbptgfMZ_*&-RmBEC#iY74e+W{(>6F0G``B~GBoXn z7>kk!9ACbpnMEYbm_pa(jSk?W%6ZSbj`3IOcwgT8$NX;5Kz%v zkI0%Kvzt1h+C*tOvq_V(iup*7>^#ZscCs-< zYj^W#JTeVBO&PX!@Zfb0xpmaJEw6qTYh-EZ#s?i*BtCsA#S5R{kTSUew!dGYgU-+IIWAMq=%Q@Y^eXM_ON-b1=wUrEYGQfUJkUjA$F zuOv1*Cixi8*(cl ztWr;B+S`TXrKuVVlm4$#hnQ9A)Z{g3b5u{pbZBoQ+-yS2w^wRR6$Z*u(K%~2kT0-A zo3o>qh&=YUqA(eOv<-ZZ_VLc>vECM?UD5vXz7Di?WlSo4Ad?Yd1&x}Ld*29qHv-15 zRuT?3XimP>kUFH!kLyE6IGsPHKilk6%Xbg9tF_cdOves(>jv%BroER~ufvS<J`j#M=wJPw7v5Yp`tsqco4Oa~xChv*<#n z7_|ga$F298Jb2>4iR@5`F@HJ4))3q{Hwif_-^t;-=3-WLFoY}QHRj!UNV1FR_n-jw zcX7*p?^0m+-S`cDzJXsgwpR!}l#&MBrL|(I%Nmdx@-}1lBh={ zpZaoAcV%4d($&bZ2TQL69XFu|W$o?7_erby&CM1(E?Pfr72o1Ef6r8KgCZmFtVl+- zb6H}?Q{dU#(}oTX+UhRcg9XAfKJM(-Q*L&)3(r6d3A^<4F)KguZzeBI_ySR|I;xpm z(mgLr@X~92CP1FYxld_zIIr2C1X`$zA0vkIU{)d{;FVUrT)YAXoz*CzkkomJf^$H# zjl^`#fQE`m;cqE4X7Z2bQL544jZR93)-ze$HeN0ueE4Ej^uYspVi|tj&+nmG&&Ky% zX+|4rcQ|psDsmuZ3p~lP(xZUN1AlT1h^7!y3q-vcjlm%23czZ z%ZTzt6}UQ-NHqYGEP*tb>%-@%dg-pM_WA3L+q}^y<$u&Wo-zAdxs(GE<=i@{p;IhZId{R{vqQl@tj6$^y4rW z0^q#$KYwc;-YeNDH49F+U`S$sTsI&wqA#J0eqrTxa2gC^G5Pa*kI3f36)2(5D`R*J z5%W2{)@?fElYV!>f~@!YCHZZ`vL15G4fe2foFX;Vr> zT$0Gt5dC>0l*kG?KAkywpG^`BMzz|XxKh>@*v;+72_(537*BG{(NXnAmQoAGt@NP$ zB!fHg0hgp~<6Jqn)U%69NJEorl$cfE@6@{-0X=yCd|mvy2N--FR8Qc^Um~9-zPoBT z!Cj~5CXI&{W#g>LwZHy5slIavHC2immj0Uq)(DI$EQtm(DD#UyuWxmHpfS5aBki4l zeYUx!@g9dy2d!<6ls<(l3!nvbtp2YvlE(fwaMJ$B;J^35TW#}Mc(;Hf3bC8`02vg8G8#0HaX z#X-FqGa8_7{`Lt)$*bf|fW^TKhtB)I2(?}0I{D(0GH@;%v_RL#^b(q-mmLG(kTCxs z9l|4T!PTncZuLt^DV;9WzvCIBdon66@%_%j^opGPIt)S5lNe$TvSc!7JA#w9)3}I7 zdNO$Neq;&n-FV*qtLLVQO%ToS&YJNksDW|y#(ZgD_2R$Sa}!1GyuylwyiW+BO*4_R zl0z51p_mAvKYnn*jk44&>fis7E-NiTtqb4A8B+kph{ysuP^de8+z}##`)Ffi>0y`b z@1Jc+PkFPma}q`(WFa?^bV~Dvb65LeIOPZajP}DwNYGhjtnpM*U#%c+B{S6XNX4+V z#X>dYX*!^~ zwKH;J*$nrbAu|yX(sNh*;T~E0kfmU}dsU7iJ<;kenKbI@_oUJx5TK zFn2N-p^L80P6{YJW)0ut`7Z0sE(j=Hl+|#{!dd-HknU0s8XSJn1KD*Pj>cwWyFZXt zR9#bpCsLYU9qw$IiTx7!{zx)3Bx1Ds-(NLq?s|E{Bt$ns(%VrdnQqX)oggR-AP#2d z@KcYYXk^LCq>FCVm(d}EyJLQ_WDL$MQ0VbwdUv>byzaa+-JKloiQIjhoat<3dUoM8 z%$ObYQf1B9h@s5hV5E$&%F&B;C5iokV!LR-QX327LEzQDW zWgb?Qq<31>G%pi*-C_Gj=WFA^D@?qixgv3?46}Ik$v&M!a5vc%gvyXgX=FTxCe}nX z&y)?2h`SXk{mZ-nQxw~v``^T!vYAD`oI_#x(wj_Ld9cfgHSx4P6;-G%nV|bu4fd$SD`w7S=jD z!SXJ}*~wL2!xTt-8&OfCRh5e`ccJX)z{j~U1*8!8qtPU0W$*ST88S6%&&)$8r__Ks zt4hUMEd^uc)w=ju(x8iE$I9P?n^5}GxKh#ftEjaXMdcXD!5%N3Xu<# zN8HVVdO_3NT1*Rm5TL_<`Ew~yYYSO%iDSyIBq_Y$^ z>|GMHDRV=GgSgY!!nH!4%KqXbwHrr_pXo^l8Fdyhh>)G{Sxa7yd7B zSU6ta44m}JFi98r&<%htI1wYLeHghAVqj4y;V;VtMyzd*HZh|J`J;ml*1zhw$+!h% zdLN*qpr?N@m-V14pQ8vOLa0bmoU*5VX%3b zi>jv_Bz9)UQ}~jY^0?yJZ4-885Y@99m8iz$^f)yq<_MIsZRzy7nLGThF*><F_g|&ARr6UKFdjTLt#il%_O8lMR$P4g{iP)3`Cwg2w6V4GkZA4V>mOmxrfozy*i|h9PCe4U?nJ=zD*KwG|y1I@v zfznwmDk%}KdAt6=x{abji`7lQ&*3FiUpkt*5!-c-8qow=`krQ-H8>&5gEUbQj!7Xq}*=d?)kF}N<*`Ac7| z9ZHF=GNmjD=Umvegmf%5#Fzw}EKFSI>czbZh09Ge8q2*Q)C$KVVDE=(mGOCV4N6Kr zer&HwWi9jPRuEBI%BH9>1CBg+)1N*9GvZI&Ej@}HyZL9BIIX>GRf0T^-*_-|G#>82 z{wyoO&S#I9^};U6Y>%-oZP>^_CE#-Q!ON{6Zw%|W63Sy4Y4>&SB!Crc+!*cgWcv#w z01yq4qBcL(dKddD|N&guf0q` z>gkYbxDCi_EDnyX%`vf9H$s7)vA6R4d{wbqF|36WZ~FG}yY5lv;IB z(g!$y=2SqJu*Hn2AJ;BluPBRP1#pvf!M`i$4_1TeCKb z-lLr$R=o4ZiPdFutQbU)%m0y*yI~Xyd%lv$&P%k#RIL8E*{+4+oUC_jdK-UJu65*9 zFL6pc%@$gve+E;-MGln_s+Q;#)VGF`P#*idb$wPYje$ovyTvFlUM5&G<@yi{hLOY! z6<=(i+;EZa;!)p62T0zP)y?GGK8wmyv14S!XV`D z0FVF0+$3-7B%{uFlWbfpY!K0RoEgDsDcgg&J)VPqxs*|H(&!RFe|7!dRlc1Q^0@L9 zRsYz4Ymyr=ytrYlX7JXjpt0R977z-RMk@6?{w(!qq04>=8&PZ(=@2CC#WaZkZyU!) zW6V#~yAm6u12}w0ft25JC^$rPQ~8$g6Mq4LpBn+-+Rihf=Myr`r%Q^2X_w`h(S`x* z^jHbqec`;?At%yV-CD+3(*gOHnr(4X`4K1mDt%krXRhYNQoojw+zy8F9+WpPhJ30! zZ9t3E$aF*OOM&r&@%-i=OgPPn6CBM_hOpc;`pS}voL82e`9=_#n=84!1hew>C@dS=+$$ko%obtZ zy%gAstQKau>Kr+FwHxTAT`8D|g4GbCrmjR;u~~S|iT|#9+2hyoKnDFmohn>>oRE{3$K&lrU)$g2g=hW;-cb6S^Tg-gQhfav!xa7GruTDg zS?gmV@RYQ!#u4V>TYN;ev`&7y4_9kRd+CSAk<7dMW77d>akq9xMtU8YX?R(AS9gI$-v3Y38&+l3??SwliWo4sm7Gdmgc*&qjOvzZ2)kV zn-3y7+he}kU(NnSTD}uT)7*gzG<8k$yX-p-7HarOw{IaKruap>6;7O3!VqEp;v;RMC6)9y}Uap1gxTXmWl>W z!ztv%0{o4)X`rFDh`V%dL)90c-w#J0gH}B>o338<5BvFD^|oX_&ucBS3mn==nyA;B z)t4IrHC{m)F}R%kzxDdm7!4@jqzlMn)$?pQ(QQ`@5rv-3-dvap1;#RBJg=6~uL{>X z>+7_Fauj+#!T?sq{PX20NFOIqRSHo{sICG_L&%d^@&=IJ(T;O-f~y)I$*K$U)HGGw z$+kN4UnajB;Jf>vt^Pj=_MRf)-~CilE#6umwB++%M^lri6?G1e`?cAq6IV z(0>c|iA@(ZaE97q?2U2hf$36OutvFJmCPq~Y~Njn-2zto-o_!v5tGKin2rv87E}To zOiUxFC7aaY?X|mbs-N{PlGwa>Zxnj+e9_p}4Yz=8on51^20m=(-lUt3lYNjdfgFZ2 zzT7=M?Y%b}9JJqwJM<@kMjSs^5lo$IoCN3(lcto<7&iYwxsf zYMS-~PpP839O@=oE9dlI835!^0E`v+J1BzXGl&%6+X)qu)#bQ)CQTKnm5N(v012~9 zIJ7@E1~g9<-DOK19rnjcV>7Qe8#m|oa}h-+J$V*%a=w2QzZVg|x3yr zSiLs(ur?hrJ=W=%<0YEXd62wMH{E?))v2<8#`5oZ!?KDz(32%EN1yqhIvdic4#ebB)= z-)*6f72cZcxYEPXr@7iX!c^QY)g-@_#A{*ZJ2h~2)B&D9|Gw0<6O z`)wz3Fpzp(72qJ}B-EaCXbQIc$9cZ93_3WE)iGK;Ik03NgwKg6PJK-A!|LN{+;i5i zs5CTknpm&?(;N;RyzO`)2(m%05Fl6eU?TMij-EJ!wv7y%0H%=5u-#|v6hgd zh~f)Uc-ju{?gJD%e0B@7nvrPKr7^k=d`1SLeZvC2y^Qg-C5gk}QSHL0B2puDZY zjLGBv4I^@ylh;;OG$0-IKjVD|r~i_1c>-Dd;dkm0h%JTc!#7>nP%-@@00`;=z+tf= zk=(M>R}YA{l#louxmKL1aZn3DhBf9On^-N#<JS=P zT92J`7T_gaGlzN))9E(t{k1~_H3+|?K6b0aG7ezG3ox^kuAmS5BDZhN5gl1@5s@?J zi8~GG?}n-5!Z87MMm^gMz8|Gex>vp@DWCk=SKNx(rn+~HadkSnlS!>cK1a)CLZLsx zpf=}g-WbyFdgZ&4zIhdy%I!%0s<_45Hs&(JZM7VFDP2X&+7=+=>B|K1j9s9-)0bR| zDAxWAQjJCH#e5^&w<}ShiZ`^-L8}PQtlV++^Dd9XoQu4quEeaaLXp=WGd2&G$x1Uo zbzQj`%I~s;ICF`%;V@mS9zG#A{Z5LrxdG;dBSHYe${ijR$%=omr*JmvJnW z%`4T6G2~Ae*$qWFV#`W0K5cVeHc+5I$04^q0wT6wEfH2vE0t#>?=>(n8w4gyM?Az6 zq}7taOnroluMG)T`oap#>Qk3^x)?eN1>L5npYq;87N%+JdosMHT0z92RNdJGZbEuB z;RUirdwqs#VwjX`jl%}AyGeDOjCR9M!@(2i7O(<=+uf8HJTY}!(90poowFU&@e)s3 zK^tU8uV}wHW!5y?{UzJ}4t-Z?orsdEtAZlT0ps6Rd~Hs{?~vgW@Sxqs!>!OIKXps4 z-;b-wxzAUJSAGmvrP4b(>?i8cbQJb<^j0z?2fQTxJ6?a*7}bGe^YH|b&o!jr0p zUy)TJQcbfcX)0W8I}K~1cFSu_%%=#Zpi;*akyDgLDxf70S|QqWXIHGB@ZS6(x+V{% zc1?g&utB%1u0k?0D|p;5ngzFpLAxk#7=ms&;AA*t?^j?+V0qCWTvRz4yBiusb&PUm z9zHsnby%BJ&{}c8mR5-64@Glx5>RO*(`=ROfc^g%6>3)fJzd;*&*3}FZx3C02Bhk4CaFAvJ0VbyRpv5JqBfsNw2pg%ps9+J>7GW zI6Zpsoo`@<+180ufGuoo)x8EYLmh1<)$;tWlwr`{a$gf_C$&UsN|Er0yqEX)Ebr1S z>u?o?{w%6OB8!AS-eja~j}lkpPxW>m8S)-B1Q!PiJCrM47!4lb*Y#L7c`Pn@r|^#m zJbJ8&*x|9F!5Jkr2O)SIEa)_xK6y1zX*{)56~%4fF*(C(7!L1d>q?yU5UL6X5RcED z7Ko74Q3~7CRG#~5%ybPnyKv4aV zgDd04#IO?K_9 z?VS8Uuj~9h3)m>)<;U7*p|SP26lH1YDucYERQQ%#P;q3SQZEF# z8L|8p&_^1VS^>}9prgOV8Lou+C9vqBR|R8qUC#X6{^D+<$anSXSf{I@Yn>;#)Y4iX2wo_xbkRrKK?c9ROb_0qHo zOO_E%DZ@r^!%TIVNlz%9KI4G*JM!qrQ|1%o%7=<^mnQTpNOS*D=o~js96HyzpUgHm zFVoFf`Rpi}enhB@u;4nFqPr8>qW!dN!|t@AtGqO=o|@0T2zEi|>tK_qEuE{$O3|1p zHpCGCnKGzo;na1YP^Jc=6cI(u-o~+w(Vw<|+gbcJtKu*l;IiO=zvQ+4+dE{{#M^&i zL1c4u?vaW92lU2maj)sYsx=^K4CTc^tA2c%a;&Mp?vBQ@-XeHo*r-<$NleTMpROF~Sz}hJUwrdYx>gvO5Ffrt zk}ur9GdD+96b+mb#(IL6Jl9zB_uAC#rei>`l9y$FRdZ^UQx}<@<%kw}|3#WhaV{v2 zKif|m){gR1gJ#9ZCFf|f`2x9kVX0NrROW`$YrCYbuwCfi?0O>8s!LPSX}|r7n<7_# zo3E8v5;hr~r_$s80d^#^zBU){b~+tdzZem20^EzilC{JI zK!cNW=2p7F1L{TxGh$h5sTe`%kZ@+6S-{g+#FJ}6AEm|sQaW*E&TP&%dPuyeNgK3*AnLn72Z`fVzrILzX?~>tA7>)tdukOmdDJqD$K%OZR=R))B?%^j zy0Bn94zD=#hbK{l8nV>{D5Fm>F^jN}%+x(ZTCi3euaY(5+DDre&Z*%ga605er!^BM zWX8$A#Hsma^?I-Letw2u)!9gWc$p*>%z!1tVZy^WU7cQr+BT}pOWr)-1@^mTqtgQ~ z%vVtCZTq7i&<-D%xoc?-l+7~iiXT`jjuc0JP!rNN5-_uAF4Sq-4-#k#?;+-DelMin zU80Sc4TG4N!;)r}3mI_`DQy^FMfEf?wt`+>-tYT>?|{u+wXM;|2m+Kbu*QT=`&*Dj zuYaOCUS_2ZmUy=Mz}}L_Jm*pUfgE=<7Enp6JqPPGgvk!n0V*Ox7KJO4+bu>eYn=4z zfdztwEG8n{8@`*{IqptHnled!v0(HD!A-X%u!QT^A)^58b^!Hqo(xj(IVNpcpSqs& zIGz>AcH;@yTEH|6K5@dEsH*yYl2=0Fsg}{yx429fcG=5tUrrb`IK}87vsY9?IYwyq zbE0n#vfkE2?j?|%T$j*XU~F)#Iuk~2vw(RVdw_ag_vbS|Ya;Vn*w&fb>Z_Gh++ zv7z<+q4BPjhLfj8`tiRiqwm7hM9#J6tUQvw4vUw@BAv4QQKf%1dEj)XiOG=QtQ5Is zoxOw%cV4MdEj}%a6II#$sA95w{0hsw&Xn|R=CqG_Nch&U$&!yWeiqQjFuZ-TrRjcw zJ0|#BS#`Hlg1t7?%YV|046a@Owx>D9Pj;<;*cdOG{Jp%$1+$SAcMUzbg!sM! zMq@A-Ya!LnIij($1d*Xbou#qhD3!my1%HW}aAhH1d@{Q<_`HrxPbn+1ZhdM2YVA_J znaPlPsD8n-_fO z^1@E{P|J0i#BR1P*t-=Kmc>77SbW84h<0h0tXhEmPIp5AJCt4M-4jG~!1FvKb}apq zSMtj_3iO^6w4GmtHaT$8Snuhwsf_p4RzP}!4!f~GgO02QU8_M~ah*He(BLRFL3^mj z9`*9CxHaANmQP=VMa-vclt6-p`5K&tV*{c>x{>`h?PhU+Y~mI_4cLV^RE=IQ_>}4oT3b%4$h-4fKm2K(*e0O}dPc z1%lNo>ll&EXCmA7?98y$`U8X1zZCPAp2u%n%2ObTcH_g+4^CV8UBmZ_pX%CW-?o$`Ef@UcoDcU}nwBf@hgl=>vJvXPGnZCJmb_IL>qbtg$Oyg#Y)Ze}>fB-+L3@{@uRVZ>4_q zXOXj9M?L>x5=;H6LL=%w$2zC{=a`EX{(p~Ev@z{uQolOaFu?h*aBvetqH;0DI7JVW zr%9it;d*KMDgQhsC1M_3WRc%N1I7LWPX0wHS@l-mr$}m2{f_e=L=u_SXkxi&+F8G# zCG&k1|Gtjlr+=5eDTWxF@vy;J6xTpdv5BWs?v{?P7 z{BgmwSZ=&=XQA3Rc+^OHNc!)?vnG-MYsZ>Z@Y!rdGxHhkguBFD*7q>sjrq)q{!g)* z4fTAwac8AYZ_$4Xwia?5ZhTen@76L_#Pqv4l@7O39;R&lJkfrSON8$i?kmz zf~d?hU@ZRvzDG|foC$Xg==k|2xiw)c+(xVUCT^28;rdNFtJ>*`=J^V_df^Ei7K^Fn zitn)H?OETK)@V6jCpRWcyXFwan4@N+;wbL(+j7*IoYP35HX2_)K9|SLdbjPpT4W|6 z<4AD6L|WoqOK2@1gZ&V`Mdacxd>b34#!?2!O&4@#&PtmR4pEdZ7Qc{h)9*?jD;{5< zQBc>l=}Z-*dbKR~IIa9H3&J($$RI_*49FUgk^}|s<^rCH=8KEw7Hi@bfSv%m$%eEK zDzqaggpPi(Rc@svG9s^_e6IOMX*;X-htgO|Q;81VBfJaapQ^-6RIn~r2Js{k-T$hR zIL;)T?4k*MT{^XuZ7?unvvcOxEnTqCZKW{!Th{^~h1cI6Za5b3omC7G$;eM&3@q@x`e>q(?*JZ9l}ZiI21xKdgz*01spZBzW-!5T2xu3z zcA#e4Vp`)$!38R!Q5;)i`N;uF5Xt~n!R*)KUDMso)dU)L^y0N7UUdNlqV8~qNip;| zA0B32;n;guQLK?h-X3fS?dzhYftEX~R#su&k=x=wc$;PdJb?7PoG1LOcr!fV_bpPM-^p;bklykEg6Ftk~b7`I}is?cqx!&74WDd5h%MZ~oRz+{qk zD*U5j=1}Ds(*vTy*Nd~#JwS6v$h$SM&G91Oe4A+gp}Y|33K;rOV?h;(P%9ye(3oM z`4nzUkFFpo!zT1P3v>?~<7tv$B5)%tTuBCCiGWNGjMQ)(lAR1*%xSr7;^w&vrcO8~2#P)_JGs%U-{wFLczRNI@vk_II zafM+V)Dr(uZ2S+S{#9%sc?_LzUFwQZF+N0I_0Sgk;Wkm$^CvIqBy#__BOx^CJ7{2cJL_8$;V!*-dqk32sv9aO(oi8DyF>0zOy$)v zMA-xlSR1cU!T(gA{4C0!wypUUl_>vtSJ$jAPYUMsnj^ngHeYc6ZHGe5ndkRnS+j6|w{ZX<@Kmx-69k}~Sl{Er5>=u7-dsDsIF@@igfl^^wmSQgcG|C89l zGwiNKElc%JWr?mg0&HtY>$gyWFq+vq14iqIr`RGFu(#ydOL7=lKxY~V!fv9*F`4- zmIw+RH?jT2T|Az{&t?Bt^6L9fS;P_tXV)qJ0eM8qISPo*!^IC<~H^_c6cw1sr*g1yI zD@|Cg=l`4xLrzh(rR%6GVfda5v!*b!_jg&!#3x%nJ6E>}DY!H`Iuqk1IVB$Q7MZ=0ivq9n~4 z%l{zf%1vg8c;6!2u%yG36NO$Z4}{iofia|hA1CqMtZ+1+EKB@^*aSn;fROX&<<<06 zDBIE@*)$>)3f;@kZKB7arwr~p&?UIMV`JqX@F~?`iNzuk3RrO`h1MVn6zV|=?U^}p z1iyyZf)GIM(q4ej18PwQ^{;J3xyujaPklcGaMQ&6l z^BU*3lhDRU4!!X*HYa7pr$wa)E0%|w%z^4B3OWV;@&(21s@W|!9Pe-zh~p*ytwDcFBI>vcgE1(i0Py4-Xss9 znUqJbb(p7;z)Y!KBabXNYKc$zLRK6>o|peH8;R6U8x2#T-hsCIjTtw+{4dVlIY_hS z*&m$gp0;h3ZQHhO+qSpg_kQp1-rb0e*w}ySoORO}1F_;OSWnBw3_u*sVU{oRx0%SvlVVR2hn4CKPUE zYykv-Ybp#_3`!`|4N@v7bC>O#V2avJgc*rkLvWH7&DlU(E8@NQFJV?l&md@ESFCb8 z#ugI2!zDnbu126b%IfJ5zNkli&jpIs@;`j0w$A+y%<9>BY7pGhkYRW3!)M~>z+0<5;*Cjqjr zZ%l%x!(4#_gk<1RQk>sVIA-Lsg!c1wgkclhWGZvUNxmVKZ?%e;JT$Sweq5ao6K6Bj zS3|(zbz|nq;kd~gQuf+_O^*M^Ls$9V9=f@j0oK2uhU}nG$}B&o?b3%&L-ng0%P1qM zPAj+39ci*@h-;>7(}f*WshHX#r?Py%(-Q zLu{Z6YdC5;iHkMRXzvMCw{V0@Uc_?YzLP-eZ;P`*7NyJGv6An?NE%RhMoR66W06Bg zf1?1_H+HqPTiWb#&h#q-$e@LZM|N+s6)p$}Ho5d33!mH#jNvvyco&?atZua(B(X?y z+u{IY5trLYrl$~me)E(b&x{WQf6#QdAMy&KNH-JJJjClm_nK3i0#g5wmIO4F8S2Cn z%O4^O%(^U0*Pn`Brz$uY6h=rQhOM105>Ml><=?dyEPDVf8hvQXY0-J`xgDNVH4L=e z`~|RF`+oh}Og3w1R51mSj;G5Ww=0B@meETcCossx;D#jqW%XzzT2^&T_G1U0&L=9l zPf$dUIvB+C0>m6Ih%?B*Ca0gv%*K1#$rY8S%?0dPq_^ zqI2omfjZ*7(wQLKYPvz(w%IDs^71-^ThqYQ7s8T~><{L?h~wk@NcpzU!}ZHpif1kY zyS)+IGmYRKOO_1j5?LFo)5Yg%XLeZX2jm8Bq{y+~8P~})9K<$%)+lHD-%uX&U$*Y3 z>(Cjl)z-b*KJ!{0xRHYaKO;DQ+ycH%F(LZJTY4 zYkd111($z>c94_i>wDCjhp~0ktlJ0~#hxE;O*>29QSxZf>-9_5x%E%G!b~GuHy@2> zv+@4C**w;};9V;W;tm~VI3DOBocZxq*&z#F$5->azGto>FTv5k7{yWwDFn$WF|pHZ zFSnc-R5^DY^;3VW^%N+|79Y9@|I8&=gnN<`r@^jL4(niMsX0Too~tv*1^J=#XE7TSDSNO-eq&I5E#`nE>LSVPkCzV;-;0y7D#4&h z*2Bf_;39-~%tY!5BYlO6?KryrZ2=+(onwe|fW<*%I(o%=uN)67*0a#s(GwPA=wJm2 zXzBd|=JAA8IGmF_U&p3@R;@e|j7TE3yf+`8*Ii7b!-_~U>U^o4_D~l}n!!FR6U`!F zZ~#I+k<0tQk)pHlPCv=@3uX|4%l$E}4%vfpZ!`!U<4*W+CI^8CiOtQ_tgigxl@S;I zlPZt?!v<3g7X2`M8QEvPNC2O(TNmk<@*IYJfvs?c{>{=M#BV$R=3ly$T4UHhl`W4~ zd9=O7A-cbHR_t=z+1|as)Kc=oJ7Ekb8ESO>bq@G7L6K*cT@aZI=^q^E6W$RVu2^5; z6Mz7L_3rD4QkUN=M>H|qNSwjpao_hxtG4%4x~KtoY8<%rH}H`CD^wF|LFco0DB{rb zpWuw?FEy8z#ov+*F6S!SnjsuDg~tP9TOPH%_Fbanf6u)jr;U%+;P7N7KUWc^HNW5d z?LPcDyuky7zlmZHiwNI`Qxc!DkZ$$5YauCOl{@l+h|l1KIp6u2rs?bOS^=4Zjl+ks zeQ(m1A6-Sh3XQRQ>QIiula7he=O6U!dXoAw8l0dl3L7u#TBh z3GrO6GTK79^PY@XI`s=SvA*PnB@DA2_A2aD8|E!h39a_#ezCZ9$80-q0{AV8^s~^$ z&Tki|x^Ua}JurO;&IbG?Z9bws`11iV_QE#qJ4);L0cB0WZkhK^4`Vt1Y>xvpQa znFyFcbE3PHx2~w49Ya`$VEC-@Na=Zar#5E(d#=z#5OKGF_4$Z#>&8Z~PN_ZK_aF}V z1?NU{eFhDZ^%?4j&1^n6^es=8M#$VC22a<33BfHLK0*S+POA(~f$bVOge#JF7|*!`-Ro;t?>)!M)ZltZ&`)IP`- zV_LAY*aNsRQN`aaacv@`Ea{N+xKu6tu`>O$!dsN&$*_KF)o_bo+4uid>NHb>ZAbGFC zB#PB&T82rd#{Ve#lx-?fhZso8xwDt?3(?K5{fYb%^}yV3}wWg2bM~d34sw zeMZIMm87}IQJ|gsuwc<6U9#AeK;@LDbT)*C_ud#WvRD9SB%MSoPVeHS16C=#=&%9L zEV-aHAWxzmfWK$zTdu}p?aPlZ!& zQw!S*DXPpy&rD)&TcJ<-IymzA$h#b8;AegoH@uHv!<7Vw>I5~0jHJHvp zFERHy&YjIdFJ*{hPuOe_+cEb&%x3TyHCr)4=(-02Hk^pHowQY^wL=m}#EofIa8!nU(9LEx{xJwLlVuyRt+4T>#A+`s zX-nK~O`x4dUSb|#k+zjq)Ow2DeRcKmv=2QS!kipBY!>N!u%EQOP@81oA0iIiA7CKh zc&CB9#bOGml3!FvxFRB7eL`mkIOhF}&@)aIcy!+o92#qtrh}ZeQtpGT`UZ!bhUKxn z13JLl$6D1bxAQWiJ4Iyqkb3eP&9!VMD!>^znVRh2K(8}TE{>rdzR!Z2^6fs*Mx*Ec z^@VtgUL9$A8c-Q>ovLOp?Yoqp3ShL82UJpg8+!KA0Za3#0L)qqmL&(|Ts8X%{+67< zi^G-a6rD^{)d{R7WPh#A_Em0p4D|L&30k_f)Pnzew2*>HCp|tVt&O&5?cZ$3(8|@^ zOS5+45Z}@t0-F-}wN}HWqjUWGUcfPq!m-rS^EpU+Bh{8O`ZU5$YCS4iqE6IkVxxyX z!!j18tEJc!k;lcpv^AB5#pUN_xB&6gF^$MP^-zM~Zp18Jc=dgl0XbKY<4mHnN)g}~ zGkiuEq0JP2Lv2Ko1yj7>^Uy%kwpL*3o<(8lMQT}98owr%jRlgiHFkJc5WGx6_?N7! z%`PfX!mpDr*Hr_2M!1C`In#fLe3AmkV95|Jrq^z`Dc$ap@BXa2#HWE#D)bp;mP-Mp zoZ~+@LM_%BPO5H#J-|b5dmpY%Vs=Ogqy3yMFQ9hg(LDC1WhU3+v0sjL=kN>pT<11$DY(3rtxA|Q! z*SpMTEGiwq!)nzs{XrO80fWR9ZU}s_mnbawZJtLP!hCu!0VQdk0KsS#`iwE#q=3>s zAvV9aPj__fz<)**#i^&R?u4N|AF$fh05(t1-}nwIv> zr2M7PX;vI&+s(!2>4hsWIl&Z0tDi2<&wdFH5@3?HN!-C8j}f1RleABmKmdydjcywa zz!l2?#HQdj_wks3cHBS&%M)HWzF9^MpeT#T!M@_m^`nO$o&iL%Iu1D;)R?U?&01(VaTrKg3KtLh?{OS$#%-Zo`u4Xi zkjQs7gr27iTI7eq4aJQ8eBI)#$3K|f7MheYo-;!x$}-d!T(GGTdc()KMCe(@;;D;0 z_f%!4k{MDN>w&AYm&3~SB?yyM2+Kg#@U}XxBMy}LONjGI!SCnwZJ$Ee!uA*MBg+3c zrj7vu7z7UU#Jn~%EC4GJeY*Bcl#V`WktNgX86g+q$pDZ2>`O;TBmBl}1Q+`C4Dii1 z=QOCSr;-w>d8WGgl@rAR)1B0A%w`L2KhfZg=ZGL8{f>A$+8qA!4VrIY6v_C?8qG1( z?}gx&0BngNCuFcEKAqf)eCMdjdf!ow>0AavNx?#djP%@J}P z7?VX`)MW#ZKMl*uKlbRt3tWcyhzdvo(A0lJDn&xEry&7Cb=u!2$j+F8%4%ar4}-@4 z%N}(LJb+;szE|7jiUYFOG0w?vITxINI{nR>xrxcs+U#0L;ey>oaC8HV{ri*Dk%%sruR?KiHqlr(Bm``%n^YSQ zFNPeIO2>czyeil|i*G9=D2gl0w`EQY$iSB%CS@P#%Qbw0m=|Hp)yotFUYY-I1T%8j z1S2GGkng_dmDa?IW}}9>(ObFQ13H75)Z{{?^BTw=1Pumq=!3?fQ#|w%ZVc>-?cpU&z8%c3>)3Jp)(Iat9}(*ljQu-#&x!|jr49A6P)ps zEd20QMBsIAa!=1HPk_j?&S9ASjiawhm3U_C`L&c2M2cHJIzfBjtZcWYW<~E5)(|X@ z)ePKDJiJFuIx?OuzV~;Ueg#!~EK7M6z3iCm55-{?dk(cEi$lBWMVimA75AmX#s~|* z^VYn=q4j#E@+)hb^rERSMHo3WZAEOth)|uf8zL1EtKZPbc8~ekgt) zWbv5WM=6VtAGRl(9Z#nlfT}@69!%=T!Y_Iy){{^LI_?mY32Xb^+wJ$+`_Vfr1_9lQ zRu3*Z`E(kUa{DTivMSdyEq2ZoPv%Y8&8|f1$BdUsx{wGla}Wh`21o#ff{(t*o)Wr2 z1tT#{3?nPKN~jq%Lt)94nZAQmLr&;Tzxj=gxJ7@ekf|_*nEsV2A{GLv0p=XJh=j;E zBH}4B}x$mU2ST$(_jhtb8 z5{l{g?X&z-JjjdbOtsz5nKaRQ5_z5lUAjU5Ermq^11;T6TA=|gJzctX!2|$|;na6H zEl{B#m$GfNKU%YGI+((M1J0C5!628QOfJQD+?2&!P9c|s`fbHNh14|AYL;in55>PB z*%DyIBNYHoRW_b8(g^1I0wlsx z(Smc$l`QD|dzj3X0{;|Gxwf8Kn_dlr4}wHTg2I)+&Ai4j0KjP*Nz4-vcWz%8+5O2Fj4qHn|G+oB;Nz za7PI1oT+W0HmmJAB9yDwgSjVZ?VK1yDn6P2SOSast9d|#+C@J%2jbvBj+Ekr%StE7-}_5u+^6oynrZ%ci`zLbdSA*RkK>0NT& ztPl$@jZs9AHWC#*;XI+h4grM}k-$-6#zl!f7ShS+Arr!)N#MkIQ(|g~diic4P*O(v z7`T9ta^wN%ik|OXT(Vi&nO}32j@keaAPX85e(4R8u1cE7YNxEa0glkCt5{s~vu zsS_#kQMc$2iT9$OpXK!s%XBK;tXvk<$cUtUB~xcV%a^9J*w!*R*jMGmMsg8Z)i+Ts zs^|6)9yh;^S#S-xRH*AXr|C8wrM|auzdx97n0 zsul@yh!kU}gNg6VgRp}yX!FOmsp0OTs|rw##Qi?^`1*t&ST zgh7#^a12*Fc*%95BMX0j1ygP@nnjx|2XuJ6zYXG^6ig_wo>HA~Ok(nWUQK&>X zld||t?&p@RSj{E5)^$6S*}%O#G#pTlrIDCYlifoHOxvUp;W`8~{IW*o()w+L|( z1BvwU#mUtqf0-q`VUQ>GH^MhUW%+n)<4v9*o>(tWFE4HNIB4f`=?oqX+9$?0#>ygp zF9WM2QB1E|zIsO5vc3xp3q=FszbX#xU|0nje%~~3Aq0X5AqF7_TWbVi){37u0dRvI z-VP#3e6kJg&Xz4oHE)Fc(c}{&UbIKn9d4 zLjCAv1(N7F>$ixB7)+qzgdxh%L(Druh3FVWa+qAi(4M8#Oas5F$Nw6EQZwnL{2YT; zGwx}KS;xCc_RMy}a;0i9>ePME0gQzt^39`S}PEi=lrZMv^1<>Gar zRkx%lKoaBA;;zR|2nD|&E_-i5Cf{(nCMaZu9e91Dq}|;iM&Hu0L&Z9zVwVYaU``Yh z%hTRv;3M?njK(}5`@u+)l0lkoJE=%a5>*0)=||lVtQpk6bT_w67GKq^Ca8?PPld1h z^96EPmA@0{7Ukg%#VUvLlFVrGDY+`U^Wj%eX|r+()bvfjE6el^2qh?ZAx$bdc%hH0 zZzLT$)w9BNfnFxecZ(`yBV;A=IFc5{@w0EvKaHn3XU~Pc_Qv_yVm4G5p|-u^`ljJ1 zilM`zM%2hJE?YTkhSYMi{mBeDQ9(67((Y+1q`9nf$rsWKhHLuu^{BZy4Se*k1erAr z04lqP(q_xzEDu%^X}|3KU1Lv~9q60^OsI+FyWr?h&N5a=gTGIjtTCVtM4Kkn#Kxzc z$ITmoXt2!l1d7%!l5uTNB7MrDy@0hqiYwS3S3?=Inl;S@7jSYKcSEEwt+}4z<1m8s zJ>@iQi3gpt8&JS065$J?8B{PLkgzn(!*7rj&T_oom6%Xs^@o-C3xOC>qD%ftff!Qa zE6NioBEWflJ64m947j>G?yNVxKi+ti@of}sAe2$$lz;wP)I()g{q%$xM=GW4R_jsg zN%D2|r3)y9tXBSB95c5ia!P@qQNG*cvXqnqScwOF`{%Rhs-+Yy6e?H>7-XVjULj8T zV+->`^&vT`@ZSfgJFkvVl+f>}Jowl1#4BGm7YLWK;%>5YyUif6jSAI z1)4>Pt}ITge123-E265cYWPTKcm2B1lz2+1#Fr*TpI7Dg1o^jsr~f+)D#S`JTU_?Tcs!ATPjomuaNXg-)(}P3J)ls)S07dVg(9+8c-P$84tAnka5&L z%0ob{;IGue6X!@rG7KR4<4381Gs0A)*@Wrm`z!ofhK!n0!Iz?^T!iX{l6wzP<#~m{el5w-5?x z#Jydzl(_BK-!edUh|zI>(|_#~V&>z4a&gMKhWkujyR z94(M!-=S~>E%-hduK|?EYPh{{Yf~KZLm)By!ZeH-#A#3-=?zr@(H}QT{dh)P3SJQv zDFQ?0Z{hVaGe~Z{ih{XTR^i`jr&vUx0x|J%ioV}iL(F#M4~51{MHJK;0|?W|R-Wsm zLIJgOTM8%=a8_yMdZ2k@H`yuA2-T@&f5!&D4}G{c(xbu#(G&pE{7Fe3+2Nbp&v2Qz zCTA;Hoa;guH)!^St53VfZvjV15!rVSTc6lVIjLqrEkQFhDaQ9P5J}9668N?P?3QZ= zNrNx_(+pBfkv|n^7CE}`FSGCj^MLj8r>DyCpX-U^BF_Q}@Y|iX5$4LI!scPhcj8AG zD?j7_Q*-TG8a~VpGBs>mVL%FTBIUtg8;hiWb_fBxziuS74EA9-Vj8%0eK|A3HxuUy z*FlI_bB?1K`@E5nv7y>_QQp@gI`PEy)w%TudeWA<^rDzUagnJo7{YE-0gmotxvmmJWkH9cg74B zsXM=F&m#NK`Rb1jv7UN9*l}SsHpWw}j%Rkd8$tJUg7qpoPhQ-ux{6e^ooNYD4oogv zMeC;lkHh&sjhw!mxPpT}9bWO=XM_)R+gUI;$Ki1J0`3JW9=wttoTiDWXt~x1z8)@% z@H)bvWNYoe3KwxmP+-{2T09?>|0-V2nSy=PzmDF)UMkyO-tjmlBd?v-Of{GF{#bJq zEqMT*uH>Zrm1ZWfP3Ye^3Co%LT3VN3vxThR!Ah!DxiaWVdU(h3j`y*}C930(Q@nGe zHH(A4dpb7h)CadykFwkp*+KN{5%$r`@G+9D(U}@!nQPfy+x^NI4b2J-qBH?5^8(U) zSC9LBhxMqY=0NdhAY9r#l`M1`usy8X$Eu=7(%-CMCN z$;NE1dqu2&*6UaUI2|jAFN}3y=Ub~Yb|sBnt$A&EZNX{%Nm?fru2scSgSvu^g!kv# zRFy2N=cfi7uVtJ0pD-OK?kG>mi=l?CA{7wmIM$ePQcmUY!Po%^$90=@Mx;9SgRy?Y z00>q*x6h(la* zm#mhdOoIY_DHW!GH*F?~x*o^OaVJ?{b6?7^~)u_4= zI#2DcsJLz?m}p(juXLCpk{^;S3#xAeLw&~w{`l<dd)c{%m(;ArEBT@qQU5uTZgRSf%*1O^Q_F3|D(WCop|~J9{QhTy)J%xe2Pa5#6?! zS|ewm0h^bANOf&ps3GO5%0#{@_UWYdOh%2dM2+nb)(P>gqdh~{fzZ-2m?F8UunLq{I5-%qKCpiR~RH%Gf zJ6OKcfSLG?rZDhfO~1P4?X1X#Mj1mniDbw-|AEK00MUYV<1_XvEA_!H9J7aEGYA&O z&28^I=$vg8#!6{97e4HO2aLM0INuczcl6FBY}#p};6YV-`)-wO&RIQYQiXw?ybkys zkT9~CgMmDH!5Xv-%1DLD3;>t=6UW+#$1wk{(B^91FIX(WN%zfnqy!U8yCJ>#f~d_k zw|T73J)XMfDq~eBWpB6L*^)88hJ0oT&{0lsNx-jI4?g;_ekg2(*Xg=W$i^4W?n~Ho zfzpyNdw;6ZxR41WJEvs=gY?$3n7l7qW-|C92$!=DCDEC^Uq-nCL82>n>v)AI^$g%X zb@)K0@`pSkinnq!v<>Ry1MAd!f@c5H8mMmt~EM&hH-#w?R@dWfrO0V~~2=05a zfaUh2_sHf1lErg*rJw))joTAlzIzTVlh*=%N|>&xvK7u=~wTt%1l zUw$Amk%3tK-jw(dV~8O&a|v{PmlU_)`e@_=*aB1%sR7Is;)PMU0K^KlR+7c~`0$?q zOtm@D(NrDN^(w);B(3}PwiM9A2NopB(ZM6HQUt4hqXkp#xW}SY=RqZEE~brBeF@KR60_jlf^Kr>i?myYu@vU*vqa=kokgL#9_q@mUd)UM6%F&YD(Uv@ z(pn!0TwG5*n|$W*-LHCw<-9nRaU@U3t-xesHca0BUc|O0n(x$%!#!S!~lala~GU2oe^T zm#;Y_66}Weq)R~vYYKuDdM(H2an)Yp{;p%E>?~BPpBF8|B1P}es=v|&bz1j6kYX)= zE)YjtF6(?`nP+-&Upnx>uF@)QO%ZA0wt1R5a@m%lZ*1b!2WG^Cy?(ZS+6K{_wOZN4 zWu;#+qBB8C zcyYa;=XHuNZ)ZwZU~)N=*4q~0b$Z2n_sj4?D72-+)b+4^V0gcOH+(RzhOUzQAjd2@ z!75RQE|0C_OYW&Y4fuS#h~n$;-0*V#ynTOYGdFO1d+pNc;`IJ-Ojv05^!$9xQU(ii z_t4&|{92T(^C;3e+v}^ovA7{gbLEj@KU+~fpjnk+WV3J%J&S*`k4YW1zN75=bdX&S z#9)~wOBqCdQ~OK&8-*>TW9f!zxAEe&Dk4mBV5K>UIkY^(IpGCjVnoToO`k{-%R94u zZXdJHn3vD06UJM%b8&dLmu8&@HZ*1EMOT?S>WmskdgHZMxMFz8_E#d3) zYG%(j>E@%h9|ftO{VOVPj^v*ov|y9Zg;^Xm`4b^xVp=PQI}o?@t$AxuAuOs?R($s| zZAVx=t&>6eD>>YZ3EmnXu6s_i2!$m%SUmV4q)%nwdM{1y;S*d8U)#UTDwf3uQobr% z`@0w9uJY4rD(|;?ah%b+~D1_oXsXX8T);;}1D0R?mznYApFB*+_ zIqg|&PR;@PCI)_=^XNtqCc0g09bxBqE8C+mohKfcPgxV0Bk#=8O02`2YHn4iNn4kC z(6o;x_mon!<<@zIU8JJ*F353t?kp{~>le^;9TPA^8#9#It9VC63nAd2<2V8S*U&8b zy@zl%vU21m;Nwo_*E@@%5Bp{5JpKVgpukJlaEMZ!`j3ujKSTZewXw-!B4{F#1#I*4 zXXOzAM;Ckoj3u{zFZxn3j^&(vvQS_d9-e5*=?s=@EViSD5jkrumr7(bm=T-JYo0Z` zYL=RxdAat!FmPJl)19nYff-xC`?sV6qf?W$@^3yBUX15j_v7&$c1P!x6Vm5v05=<} z_1O4SN+DKkSIrizFqFT}kLB7wH`fFj<4#m~O_Co-kj$I#RHl3}__zSvXItFvGcKr; z&|S(~eCZ3~y&R6M4Cy@W%;JwT-g}~a2G?C}F)1$xid}nYkC%Sj2KCnfE?v{+H+np^ z3FEq5%a3XBsZ_cfdLiY0$SUIGa0C9;{7MEu78v4Q@|syjDl&7$&?? zVX0+wt*c>oS)Bsq_Txxyd-+8+hrGGnfxAG9!z@sZ`>?_Bp`s~W=3k`_Gnx*q8TC6w z72-}C)Sn!lo6n^_si!(osSfAG8ODB(hO6*{i%Ah*561Qj*LZJTTpczi|8ZjMJ+E-` zaGe=mrO;8gER~w5&2^=Ei09l$f4fh*WUP{qKOOC&BnQqCqb6WZ9sidYLmDK$Xl zdg)V@{n8XiO))37;s;2d<|dgFE_7AgBZ|uj>!z#eB|_>^>YYLrTJ5#ww{G*dMzM#K zZZD1GZh)CF-ERe2tCXa#5=0SIs+)k7skK2jw`m#;h|m{b%36tl>DJ7k7D37kCItpr-gNT1+S;$bLt zz(wc%dd^GNh2ZM?jemNfe}}eB3+(*D-aN)6(#CXZ*D!$xOP6$)9c$Lrbg*Vx5fBYZ<>%-oNmd~d0 zL2mbU{NgIv!jaQ9NQ$)y);5KOgH*^oa3lvI2@nB-PYY~|5j@7PwFzbW(%k-GzIzJ{ zd?e^P_EQ~?$(rMRM6)Wxkadd2&BFfFd$K65?@)GU`2?C~x^h8x$pO2*HrWsJsqx!or3apTGd+w+Nk%6WU3jteabm((@? z6o*FRq1bt9XX-u68xL&6^eNzzL1-06c@jEXT%kHz zf;3mbwaU}qn9?*>Z}LwXA1GuJk#lI;@~cotg;`kanbH^xk$uDdau#H^C!#M-h_ALO z&HcxwEP-=u??^!BuJt-gTL|vzgBO1ja=M7rTeJ z(e*_gyd{1bb5y1xxTmPMj~Yu9>#)yVLDpUNd4pf?9AIoF5${$vxypkzpKs_&66WU97U7BghH^tIuLafg6WK;PrFPUbUah7}d!B+Hl(KJxw_amk1J+1 z>%w)c13Pl*En=OC-VAOR;!a7!c%NP3vO2Y^o~GKOZ_t@@#ziGrZTpgBp>BE1xV-Ew zt;uMAne1t!Hg2>{-h$*!R^QA$O}KZ=7s+&<#o`@xVEcbojm$NW=9}M{ux&(QG*(IT zwLia;eHnaicw~V9tw?VL3`}-?Jnx+~d1D99wN0TL@Erq-Rr91ja@TF>mTK>JDYV)wa( z=2!ye#63JlS(v2$ydkUFwsCI2_3X2g#KhONTncH!O?jS_e8b=&pH{qo?n&P+Du zzp^bX)7SjQT_5j#enf}5b)nzoF_^x- zf&zkylQ=y& zE8cD;8*dB%B#SCCH@cLL)ARK5wz8vr`AAWjYr*ZsOxb1AwFVIec4J-k>by_J=5rMt z75~ohiO{_l^@&hut?;m4x7oG&n-s7P0-Rm=x)EF7-kQbYd()-Xx;M%sLgsd1#I3-%fv!zPdu=4kdlW=1@WliFDxo3kOovFT zuC(%2-denmLk1$ZjyLu|@Tu~)Dj3%FKo_3Q!A~7KPNQP?_IDFX22P{U)+>Da^Zev$&ksP=awBI{$jW4!_V@M8m89tX1uS3^q;O< zXmCKCuz0+OfF?ksTahgU{Z(oJ>&BR`E{_2H6ldS|{`dO$0H(uiSNoV*jF92rJCNo# z_GefJjgus9H)SLT{U zAG47zwde#|+du?xs7v+~GVy-4ucH=D;>N6YF8%eV*kTr?K*t4fDs}6y|Dflk;6&L) z-=|Z<@x@6emtC`5?MP=zMfXmn#m1rb&9ptM-J3@Joa;{eJB%h~9x`7}A9+zBA8255 zu!Me4!$_=^+9({sL@8N`BdkO|5UJ-khAJje8F}woO#h-1{IA&Mw}gI`bOoZ2P;}{( zE>?z^opBNN!w{oI;>gxQ<{v?P7u#Xqy^cKi?<#(X zHgEO6Dh+@|`sd#&53{}EbIX7Zep?{|l9KflS~kTEt&NE8+rBvM?+-jTiO3jeO& zgNyHnMNBIfC!Y29A%65CsX_R|SjZ5epKsVtO(38C`bIIjm#mSmk6QITgF#u#K}KA& z66F0U!RZ5^#)HFRni)bGVf|*At7>&aN&SN=XY=S6h`y#4`u_^Qh3b18dE)x^;x*nh zh?|=qeD3i(>tVlqLJMOI&s_hbXO@3y|Gf_6eXA9k?$3WGp0PZE z=zk5sgW+3aYuf*#(BI=31N+vSZxI1|VvFf7Nv3SjMZ_#C+5VRX{i{a(pIXE8Y z+~VhE%s~Ie>|c)mT~wO+gAs*fXjFWQ{B!+VMxeU?GFSp>`j4)7CT;OUe>cQD@$rjW zjWeUL%ZmJ9pK2B|B2T7+7Pz>*5>~X zrh4N<*}7Cj)coH2ScvP-#PYv0?=O{#Sa#wX%XB5pq{5q8N>FDNr&bu2H+LRRT>$9!c5wG8S#U_68du{Jw ze&#d#?>S9WDd%L7A7x?m_V;|OWVr^?X)mU(A4za6%JsKvtZ45~sHBzuc-lmHJ_yn5 zak#BJ9a-PtZ`HX{OE)J8IJE6STjpKhDu3uKFjedh?hJ*=Sg*=1W%RF2iNX~+O{+iY zcytb3%6M;5gZ9t5tcnl0I^R!crdh9pJ?*)$n;wMRP3QIbSW5ePlv%rdX0Bb8D1ZBt z^24b4?3Z|Id6V2ieH%A#6@${gQ0mz=fYE*j+*Lo$O~AJ14jvo@O|0!g@deR+_X_H+ z{AzN_d(#n5zMhuEyo3U8T{Fk8P;LEb$q~GV%f?_KDdQqU;YW2L*{uEqE6h~mLiG%W zcBH}8Lghyk&sMQleG}=8?~4nA`1oaZf~v0T=04f&@2NDtK;oOqK45j#h>}u-tm2Nn zi3@GUYUk>w*2m2WTHow}$2a|h0F$=fEOvA_?`DuvEKObz(QoJ3i`2f;KhCpdWZ3_Y z&NFeI^0-4xcoF3A;)2N5<&j^9xr^@y_hCys-iMaqkm7MoNCUUpM>6q&ldIKrk4f9R z&vKk4oK))5lupw$RCL^ASE*U->OrfzSMUvw$mXl2vaMV)UEl%nQ)w?~PPh*DtMVq! z8T8sj41H&fEi%6VuuU6KPg-tX1^u3<=e(zi;!XA6fCo*gvpXH68nZVL{4Wh^C#pf4enWH)6ILqVka5>=#`?p!a^Nht#LqJS z1IHX*_-Fn56@`05j^g8&gdLooS@CEjN;j#Lqdz9lZXVx(tT&QNL+rq4JY(R zg>|(-43xb+xS%P@qE1il*A2uhhvMU%LKPn(IJ-6KlwVdaOZdXlPOIkIOUYKK(ns1e zVq{3Y7@jO{qX(CP^)){Svw=s`3^Tz#G*RAP*57Tz7;^z}ej&Wm31%_kiM`?evP0={ z(WD+}03Sqi>U+{k(rFj6s~DoH7?42aq>oegRJrw}|6{3g8=IyPl)w$*E6Iif*Lue$ zS?fV?Q(msnGo{;23D-$^$$7x^TOD&6F;T}C3cgMY@^pA1zE&b%E*wzZWdT=(LR1siT zrirQ5?29)h+-Xl>(RoJntJtNI`jGe>!@_OsgNx?RoR|U$c`q&{0Zo0TGgs69#o1d& z)zR#2n|tH#5Zv7Y!3pl}?(Q1gH}0;%-QC?Cf@^Sx;2wN<&Uw%K$;|p@*8H=(s(W>< z>e}7aRsFlKyDpB$MK=}lvtL*v>RZ2S{jJI|-58x_NB>ER_vY$@le#wA6q`N4aC2tx1h`#yK-C_6SC5QF30PKrgdfN>j z5w~QXzl)){w5xo7%rDWNDc8yL{a4$?rn9(A{vOe_)|?<&@BVeeR_XfpiM-1Uhpx`K z+sbS8MAmj=uY14pljpo<&xI4))LOr|@Ah&ZL3%Js8kfEv_kZp?++0jaBfG6ST||p6 zn7kdD3v}5(8c=;u*`~I-z3;hSRUT2r12Y;5R@oa?EZDcu-7hKLcBZxM!N56g>gGS< zs(Z{S2TZ2D%-+w}i2OWX+TSi-51vll7KiU1?)|!aUEZHhX)8Qlo?p-TE0C}r|F(DQ zepI0dly53*C(|vA$1HUiU=~6$oA^vUBFtd6m`x&axEK%`+^70^F z$7zbBms%5-jSUj#pu;Q72%g+3C&X{(c;fn1xvV!EI~06V#h3B*vdZr zeqO!nw_ue)tG}$byj$JMJnRKXYRAL-b`}m)2<*IW7gb4y&Ev%f8;bd@0Ih}ugh`w zv$8oCK$Fkz`(gs=KT>k)Jg5$dGKs4&zn5{|ZhfVNe6W+Ho>UitY9KI+4D^=X_J-a0 zcle>{U*QLFeOp0Tds8yZn#k4=Nz1$%$dLS1ShFxbK2Dw##&)Pn4?;rty*S;SNTQ`&ro$Np-AJ zs=ImS`3xnNiI;Fc=C{z#kRO=31pe?yG&(RhUoCy>RpZBTW%M+YGHP>j{q*yBIA`PK z8eJRT(5M7-eukdlt~QbCvt(LsxCSb}{$%QWtM$a1{JW~Tr};rS`aOhYz<%*@T9i1^ zK`zSa z()d-rGWXn#VU|XhY6qPeUl+gNpwNIf%_h`;e3<%cw0ODrF+rz zzMuxj?jnce8p>XLBcq}HY2|98!|lpGD3L1?r6yNl^p{?2#b=&_L`KLP%FAM8yHirqz z2WxGCKC2lYpU-j`#&>qzV&wuOR_GkSF%I2R#igxjIT^ieD(bxD_TRgif(_ypQO0jzKv{-RZ$C)W6H3Lznftv?gkV%?N zN-!d)$(DMWX$D1qgi#`un1mfzR>U`&$Lg}w@vw3Ot>yq>mS|^1&pJZP+ogYEIYh&j zP#QLy^kj{Wjx%KwWSp&G_Ag?>+U}E>F#W!pqT!DjjW#Aa_`eYoN9o2>2@96|xN#C? zro_C6bMqBt$)9C@J+Yihy19;+cqYG8`JUgXOm7&IrxLkRDkB6q_o&=6d{oPCb^Z0NX|8N8u69ZE4f4=np7l`qH+T}q;`AstIP^UG_ zDOqf?pg=-e_N_+bHwIlMEu750ElWIyor?h}5gK}%90ws3x+WB5{ce)6w}r^QmN77F zR6qoZ^czY%QGA$p=@j9A=l#PFMD`ib;?WD5`j`jkuZvSj6Re`+Q33`t74it>M2g$X zP)D@DP(6A?Oi;S?NQG$Z!ca*mmkdsKP*CFkbv8H&>4boYn#3X%Db;TWK}o6BLT2Os zk6a@L)>vhtIi)ssRF5%!9w=0gzh-)9ZJ`VsWT-eVJ7k)?q&EiM1YJaGXz|h>xy@^u z4^vK_2M{N`OmYLP`NrCpp+mkqYQ|-lZoi%$>-Ki2JM{1c1tVTmm!xlBhrpg#8G@R7 zPSPXmgVna4_F7N#XNf=DVE1#F#4MbDM$b)^EaH_Sd~Jx;&)6}|{Molaf4NaxNEzrF zLiWEBBWB%G(&bwhhYA)I%YX8!CPkJz=Fc+kri)YW?W!BDuPQcVB|G*`9azp#(|jGL zAM87qk{bTQiMakZCt~#9oXD}hZMs85r?@*a@0B&P5Z(l8K$peq8AEQJ;iG!tXvAyp z`H#V+c|~#i%C3zJYO%*ckzSrY9^}4MB_Wu&1*QdC94iL9-jF0vT5b}Gn8_j9H$eGJ7FTCG^CH&Q1>zn-8)a28WH$BYFT2CJG%J0v%P(zhv4Sa z-oF+F+|Up?D0p7(tH7-oDsJ}Hv{G94-B(`g;V-EL!#6i?=0hfF_Mr`8Q#PZ1NX~!1 zjkId}eyZ(>c!DdNljc13L{~^Rr!~e`2-b4AtjhUQf9}~r6B&u^DOB3mRCI?)Fm>yi z(O?<<`h5ZygHB2iO@TINkxD#)su)uwrWj(jJ@IT4XLC%ncbbpHJxVKhv%!4;yYV6_39uuk!WGP|(f6CEmO30V!=1lIN}sjb3wj>Ye%5g=;=n;rDEQkQ7*2IC=Uf-(oN{-sGbkU_D( zyI+N4WS4QQ(3!-T8^xAkc#MPb5D&6l4=ymEd4;2gq%P-t$d90CY1I}JJ~_|L`~(^>A~$&l z&xQn72r!iJ16K(wFd?N>XQs`3-^1C$VGkop!arDJ$|MUt6C`1OQIJy*(*Px5C8PwD zz!K2nl3KsgI0nyd2`hp1c-}8x`uSyrvlCp>(Fo4q+{Z}njz~*|6^D$&mS%z$tx7Wi zR*(vxqV>L1p#zBj@E{6Yz<*$nf1YF&IZ$3e-sdqDIh(d00W|(WWMu_#RGC9s6pZZT zYMHcxM?KdNg@gkUp?2Q}F?V{EIgPS~qQa1hc*z~ZsdeX|vOgC&3ck5-#bt#Q#Eeff zRLv>g_DNn0Pu3btAJ&o1t8~*BDPdkJ8?c_oNQnYVB7DrfgYgcY4zHPcgZc}nAPmG) zuH-5Til)i_JBZ3&4Dy6qNi!Ouz=V~qZBiN1&=_QpE0j>cZ4g1j_%54m(JX`#POJ@F zg&S29Xa=jtjH?3Kh;G;nJ$}B}rlt5w?FJvystn$_aRprZ6+)v>?rk(COrOiLW{e(~9KA1YN6%Kiu*4e)Tkc=s=r>VI6 z#cjf-w3TE*l_#ENuh9>gInj~08Cn%{#LyF3OU1BmPKz4(oaV7Xe>gc#sbrjzR+U^b z$09+9WTgx&0VA#uL=H(#Lo5lDjPR6<@Q>wG-`b#{@%4J_(2Fl@buADav7?gCo8siZ z{nDqkJfU>=Db~Hs;z=!1kkv^k8XX>cJ)lf$m_LuQ``u&SMJf^nt+^#i^j5HI;d@YW zl+)c}lOy^9TNIBlrv>BX7T!4HNr)j!^uGH!k)0{{Una6)Bq^g9tH&*;6Rqn|)zMu# zP!Dc=_HkX0l$FMg2}*M1)AB3S&2k_gQXJ7dM4b#gCNqRB&Wuv<#3!4?Ocv|m^b6>crv*5cg_ z!-1Xm@UiUX-A)PsYB}U6_tdjv$TAtYzbvdLDnIjUn@{7|6w3qDBo3EAg;0{`CMg2Cva&p&`Bc zD>3EdQF}9!zj0Tt##DD1(eCg&y(iblOJU0wx%%6ly(j%o5iwm$Tx@jvZI7F$rK=LR z&&ARC#NC>ilUO*4Pb0VzYj|JIazo8qEEr@3La^H+aUy|u?#@r23_cO^bUp3wPa;?0k5_znkyjzUR12`-%GONsQaw2VL+ zh>8DuP`EXz%pYwdWe`{A$*L>+)s9=s-+K7JXjc^569fIJn@9kCuxVWzw5CItnOME*cP@IzqHVW~XMi-z2O;SOB+w*5pmwc%6%z6c+c8Cj< zLKMPCT+hUjF2j5p{D}%gfG~hGzP=KuM4RpRFz)dH3?MZjw!(fIH6Y@jG?>Dt{fodg zQ%a6_uOmbyjK=j$Eh!mpEvbQMZv+SvNJm&jsk}uG8q7N_KCdsy2oUMFn!_t93@Y(>XA95-)`OY6RT9&wv60aA zWgferoc2;=?ZgKzGRLt4E5S5)nQCcKz%gY26#%t=@^6{FR=RJ}lz&XrFFVCP+yOLk z!oWB%VqR7ODV&82aAHUSI1mQlLXQCPTK3&@7~nN$@h2dR*>wMVJY zB>&BoDtmxb&r5*YrtMt>53K0+F$^RFRRGk1)nGbrm9%AlDAjPbSh!r|-S5aSq=AHx zJf0TrNm3|`kUVhi7+2KWioFFC?ih;ILpu}-kEFTJsH0^dO<)5duGs;8$}6w|%nWi8 zE)6r~HI=!-jqsItqU-@&%fAFJ7gOLg&tGlKkWLX$1<(REf>{Jdl$*{-F)c!?DmD?- z!qKb#(^kmvl~(jj)M`Kt$XYl9%wF1Bu<`K^8fA&goRao03eS(h2!F0HFD@{XZp^Y7 z%E6@q{dL)HnWh;~SV;znEg>Ty*XfWNGg#QXqJ)(>=}@V)1{tGEQ%d&pYAn#l zK#B)ZV(p0-KXI0dvSRK8*=cAiBWm)Lj_flLOCO(%lErDzPRx-jh5Odf0wR-?B-?2W zt{c#o2^b;cz5Up?pu4HcL8E`nb=zkL-BSznIVPSX&*R-K{2I<;CqpBPkOz1ubgvz@?@l#{o=h|jJAF8yb>!f5S|STs{dnOz#kG8j$qE-&n!>hKp)IqM_2lA@!<>P`h^X9=QZkf`^ldA?=~2!%HHi(guv-$9rJ~*=-g;;J4M#*Nf#o# z@>KUVFUR(m1)?Cm3b3@w@PlHBx2`9He}nHk*O1a0;lnM#-|06Um3C67x6H|W_t0SEVcku0*XU)tL2P!o zA)+hL@OWJ4WFwLCd{I?VE)LJN-dG)(?knaP2D2;*CZ3CB78?D7r|xQ2mK?;)j$a*d zmJsT^%X?+8^2ED>F}s<~xr-Te8#;Z)G zh-1(Z_?;}R4Exq5$&bUi~I*S(1zzn^t|I&e3|S^ zEIMGr33gqANXB?SKn<)CLIbuI&48j;3eS*&F+Tf=%&jw}`QvW(`!)sv1$jQk=q4Z> zfCeN7lYoe`h&8b%6-iWfJ+rYV)l3|JhWA2`ovmGU={Yslnj3WkU#IwWLNJpVgO&~p zw@M2#1N;J{16jc>nn!Gs_hkbXbekhCIkoSx(_mKQ#KXf`L!2=UNP9&<;Q(|XoK_472EYL^z^EYcfQ>~3T__J4 z#v|uRut}Qu4n8h41`P%lAOr{kzyMLeh#>?l;7@YT4S(8ND_-COfnLYdsBx6NgkTU5 zFfb@6#KZyu@*J2LuFV7&SU@1fF$^k-XpjH{?>`4XAOH{u<{7}1%PT;%4J4qr+ksh` z0r&u(0e8S-@R_3%O1~eLryD}K`u;%YBoqm$IAkyw2oxA%6aiw8fIQPn1M(U8dXDiR zAGRda3Un>90Z}g>$OrJkvw9axfGqy=F|Na0@Bu5V2AMb0w91eU?>p8Fak5m zlfZN6HvsZ6^(=BA21+iG06)kV@CJB(LQoR$N9ih2t@8t;Ii@Cw2UxKRkb*@1{b+fP z!{+%Ikr==bP+-mB&k2Kq0q{U9FnS1$|eJ0}cPDkvWA85YvSEWiu$1l$Au02gkZmxn1|!q2h5f&9nR z%qYtcOehA#y#gSA05}lJ)AMJJ4=ATk2<-S=_NL{{pU72ARoSr{_my4@rUD`nHlB}B zfrz9LHQtpn9DBFFXi8&h?%Og-h;nepaNnK7-Ni^Mf6vQB$t{~8hH%=gh(D-v#C%^TYAdy4^&>TuuoqC4z`{2`e=cqHaWEcY84`} zt~O+`t`8=DEP2MW-Funkk?$WQMN(4sSOLi~lh$roh;~>#-X}7C9<^&{&+RO<>B#5| zkd#(a;z6fB<>_K#LZ4FKKArE6OqT2?pVG5OAlb70B}KzO{7zUzT3-*-6f2p9{`l6o zoRox0Cc72>;Navy7?&uX$pvbUlu##>hLhcoDJq_YoLxEtL}rXh#WD0DdI7K;_h3w2 z2UWjH!m1I-iHW)C`4SI~hqw!2c8ktaJpK#d9C#tLgr7m2uanITq|FtVF?jn9A(Ph- zRNQI+6O18B|2FQ=s(W=p%U{Xj)lb!5h_>2EV|+Pq@3*ibqy8}v$Rdhe(+?R0LGqc? z_XdG@1OtDRg>C1PDk^xmC(z`=SPx-5^Eg4)pf3mV00HCx33+;XCWweR^Jqkf-8d=` z4=_j&CQzP6zSbidYqeA=azW;sK_7OFZrT0KQBT)B5>FB;LcQHG;=5CO!!kc(Lyy^B zs)k`GmDw&gw$r&l>_YQ0iG z@tQnVDu@Z%7`=lXSn*icJV?wxxBJIg9oZZah1XT5f}}tc4B}F%L<#IZ?pJd}Bx;g4 z36KcbKdm4zx5g_ePx=cxp~=!SHsLF%DR>$e%|a50_D{nB;s8rnR!fiQ-FwgPBZsH4 zhNwGEP>^uw2)O_OAP5WqnZreG;BtD6LS;eFF1Urf6X}olzQllME$JOq3RL^TXT2c6 zDFF#)1y}%-0+nFz6~L9#est}b^cz>wM&(srHH3hvSpQQH01kiw$QNWJ>_nY4s7M%y zr6-)+>>MNMJ9t__a=3hb{qxv!iH_#5kYxDvh8wSyYISrZm~DVo_ktmb z>~5Arxe{Yk3~C>vZ1iE;2*&r6AK7!9m^`j3=ovgxt%t2;*rrBMbiuhSgsYVn5j!h~ zNUj;P4Hlacg+kiZ#_=M%=`PSHP(-*;$fS(PkFFbl`YOdc0dXRoa6D(M=#KeYq+)aF z&C9d3q1&49oJVxMySJf8+0uq7A&_sWWTHR z%MZO35c}g|k-jp<>{HDW60@`|^V$nI2fmxr%hSc{>k-t`on?z76<>Did=HMUSr^+L zl5DbZ40bU2UKwSK(CnSSeR5)&wfn{dvt4q{cWEV4`Ls`3TQy8g|Ad9@>cI^bkoaVkGF@M_t*ygK1~batk@ z(&rf>79ZQkvg^g>LK+@!oHj-lcq`)7+LT9EWtTKEc#oE8CR-vIKncMq>yX~zoX-Dc zy7`QQ%MD4|s&-$fqyFhoFi?S()h}$T(kk`2+KCNjBVG8wK4vUWPy8}8_E@QlrY5Tm zkm?CyblLa%{rG6*=c&7vRUg_uf7-CLai`n5;2@$)3S+p5Optn-q#@Bob7+$+zog#Y z-~EWK$iYG}<9+6p+tr`fdBJ_U;baeQcNcc^i-bh&P)z+W13fQZ)fcHSP1>XqGFrA= zMJ8*HyRM%CKSSf2BwF^UN&_brK5Du~6ngXlnWyd0DBta`JP)$?oBy6*6R*AAk&0w% zRR6TtT)NUEo0TENO6p(Be4CS>9Ayhh&GOx95gW*1$3>oIas!K3agVcaV|i#L#URtE zkp03np5A$6|*M;*AawSTM#&OFiO*6MunjYb{BL zgzs)Pea>217-|;N{Fn?6QV0lV*U}1FiT~vj<|}cmX%!Qwt@ovt(Ydrvg1DR*OOQT5 zqtS!@CXvq4GJ@b6>`vMrvW#b#hwZ;k?j%QHSbmK4Yy;7foi8$NeL~u#5V8n;eU^?U z4!ca|Nh=~K=+>zU8B7@(`6}ZG4da}Fgv{#-<&QXajP+p^DkGcr|MG>v5BN0?&+ZGc zh`_dn%l$IZscSNkn9U*`TD)rWc`6#yH`(62*mm&sFqgDBUw`QvF=YqhA#OV&fg8ux(IN?!i1)?vl;cHvlEHHVZyJHTS6Oha)~x7dRE6arG@S79x_t!?@MMmTs!lFsX(Sd*%7KZqJq)a_;wa_Qq9lzv$H-T|@v9E{30aCmwP|99 zO9i&$ZppPQsh6>Ym3t9*w&WTWB%HvDv->2%ZI`V!BDM~Ho$V4)2Nwc)E&>082wH;Jg4%Gb< zWG4CP@DLu}L7dTfeuZ#e`Ndlem@$QfXM;dY)Dd>X-#R6Ajl4)P6&Q%13gcV7fCkrhfZ1ZyL|+@tFsA(|I@qM>xyrqKU`q@RE{$2X?N{KM}x~&%dlRS zA%BSk^J181XjT~6+EAcnG{?peS?7D7|22Cl7eQ${dPzirPk^I>6Bt_wRmmYn?y(Bd zvG9lwK07=ORd`vBc_9XkUDeRV%2Q_4XpuGS1@i_tvA1LgFKL|p2uc|es}i#e^)ZrA zVSq#v-iDxHKpr(6#he(9TWfn@#$mem5xs6CdRHNtE_q z)*^Nk5$)pg8bkEq@``Y36!=}?`b@}G;7>)>OBIsCs>QfSWoy|er_qP9)34lw&bghi ze|f*eecG;%xx^yP6vV$|>1SS5fvBmYR_4>QP-Y{dAucNxOLO2q*J@XDSiMdC2JW?r z!}T2(`9}S@P(*vuV^eNZ4x5eZ`Z9<)JJM-j2zBW)T`?W8AMpLe)pJk20&E_a#6c$w z`q7DdiZw=QM;QIzzBf;RsCY#L5;H%X9SS{UuIq3~f{ak@> zy!yrekp!O<0rl4fB4)vaKZ|7Rz&Y3wJLPE^a>Io&duurugS}4$N4?%&)roWH?IEl2 zP^V;iW%vZD)bbtU@TRc(hEbpJSA+Coi-<&S^noJCS^t*csrw~+ZKo`k+ihB8;?{%$ z$FXl6KBM|D68rfyNf`50O)3kGVvU~jhK3x69asKvyt00+O*@81?vdo_X z+Jo&`V!weRzZpcd!cj!D!WvO5N#^)gy=^cHEH^YOidF30QVY(-MKy}n#Z(q>^GQWS z!y-^HNoY5}!xtHC)c&PLAJ#YUcY@E0M+25=!bGFslCbuJnY$>cMAW+|H9WARy?>l# zSv#$XHCOjs>gU~f|6Day^65EN;Uka8njB=gjv=68DRC`xNVZUh5RPj;P=2~B0V>tQ z1Yk&@5({)aEDVxT>)>vj`YioftjIZcgSulP%}I@B zn112U*jO1yO=r}Qx)kgU}R#rP? zT=S}sVZpsz#~DtO)k>Gw#=PQi`iwy86Z@Ln!dP{sVfq`@&w43Q(rEkkq5BB8o1kLb^4D^j*DvIMe^e*7fN4z zd2HXzG*H=Ge!|YIj)TTj2F;Sf-0b|K*ljIWs;Y5T30Kh*+?1@j(SM13_F1fbSw>C? zXGaZH8T=IkmRseAu>=Z`&v za!l(#th|Iuti%V`as4HhQN8G ziJu>&=tf{Z+(cfff(kV)#{CH;Ps6~H*WZoMq;tV>1VLs`37kR%C8#5ZE~nA7+`_}b z!)Hu%r*1C=89|Dh)VwqW8R|o26&XcU=HPgS4b6^=0O=m%-#>`B=@5z;@)~9|kLi`t zIL=C|Y^_@)E3_>>qE{z`Hy*Iqe4)jszpf-|-GY9`hO_1TFI# z6||@sl3axo;_E9h6LX;Be}CY6KF{BYs+rYBEa*{MN8x|I;?HC~0u^Uxris?!eQb?R z6iva4F_3x1Sm+qS#RtNq`ZQ5!51-iKJWwKt5z?6Ju0#wvN52k@drU`}yNIgXIE2dPm``afJZBr>$fEoGSQh$U8?1;jHG4!ZxJ(EJq?W zexZ3u$&;Vga(2i5zKo+Shar5|$Ji^G64bZH-vt!gyCFLZnknYmD5BS`l!T_8PyuM$5z zoD-y*8D0GOR4%i3mA)1emlZjs^;7(C^rz{?Fo0u%lw|Nwf=`8?i7US@O!0hzu%yr0 zLzjj93*imM2h0J<$E3^Cs$(&yGXjRn!Ber@_EJsIma>9QNrH>4?~GtlbHB{MA4A@O zd3wMl3OJWY=8g|Z{%q5AC>%wC&pMq}xsETJ$N{Lra-#_KQ?hA(Ot53pF4$LgD}Ajb)+}2yT}BqdcdM_{5g@ETw+!C^y21%Sp2z-i~Knuzg*&L6Im zpwP_0_Y0k4lvu6K1C<15axoO(NNH{*;JV<8P*ydli(q*K)udXkg1F|A;oQM^fY|_f z5LIb+cnA=%7hnKjDwTWr%aB%9*diT*u;ya= zY* zOn~DPSgZq2OlMh~hnRRzR$F5}3R>)jJTTgI7AX6$>8OB}` z#>0Fs&X>_TS3_dd#!4AZsa`onzLY?T#mM+4`&Wmz8xU%$c^@9#;lD9br^% zdv1z`lA5Nl4Ivt2tSrHFF_~qtdtb5_Sw<=wkQ8Jg!K- z`!hQiN!sZL9QHHS*}0)Ba8nZ`AxS|OxrNNBLsBG8?)q$`e*~OG9fr7x{vPgQUDmQn zL$?uX%k765zw`V_=aYVV%>8q{5)^|TTi-E;LV<^pNn>u^#-e5Ia`)g-x_~5^blA)T zUp2X&)I9T>U299~@i)z_aZ&-QaM?GR@6sx`1s@4c^(rcZG~UXP9&vNrILGQOtn@{tTsIGu4lfIoYHSA#Qxug&)H z|JuFHO=cLChFDuaD_XGdC}V>VsZkopnJ?v)7nro7seGWB!-P9jXHJpKR}vpq6xBvV zcOq`b3AF>%Vf7Hx$U&EMZi>70QDgJrV9Y*8=Q`4@C^0JGnR})^E3;JCp zr%PZ*kdHK&HwahBf@oLvlcFSAy05a|>b&?k9a>Ag9cx;eL{x8Eco&rq= zO|n*%aZPJtH?RqB! z8f_vSths1j|LvQ@?Ro>Gn8lFodJ`cWLlm708;4biDc)sAuYi&MtWOg<`G{O`A2%=3 ztNyTwb4k85jVg6XJt%sIx12{I237e%?h6l{P~NXFjZ_S#@gpcYVh%WcrVy#{eWr$m zi%BSSSw{jY!gZ!JB3N%G8xaiBj2QD5OUWu{u%Ri?mnp&%e~xaqGVUx}Pg}H9Z!IYs ztV^)0_hnPO5c?cz|FF}G(=hOc`Sn|F?Q|4;pnX7~4r7U7yD7{(Zi;_Jqzt@nOjl?p ze6K9;4nwj%D6Xv5u`qHf-d<^H9uTWBVITDHO^iglMHQo~dDuMg&DLwHZo7`rL&$<= z(?p`DO6)r@NV1-3@T1g+8pw0|Guc0;?^km7k=Z%!U642}rb~U@l4w7&XLzT*|G}D; zEp<^@%>8sK&)@xaRB=Q#&=-2VA4>fW?2@R3(}`>FJ3adS|jwk%@M$8+Js8s(rTF^BXs}{Cq@COhKLaN_v%;abHF!eD{l{ zOx+hF!C#d|F>A8ZkW9HKP4g5|z-i%2iZT)fHFN3Dm9UzFYYX>GlEf5JN~-8D^@TK% z%IGthsNs`}?#D?R%PJXaj%ui^=}IRO)lv(OTPC}`whG&8=~MNIQ$Ju2Z@zn|hG>q* zO~fJ)@86K6en|Xy`dP1oE*z~mUS321eL8tyo~}q&_(z73pE=W<#zjdXfAWnrb2#CN zLQ~FsBWY4T4O3=0`R|Qxp3>w<>Q~i7d@-3ViMF2u5#KPdDV#?e(TOfhMm@{T$-bV! zlB!~e>k*6Um_@SWSThVMQeAX$d^|tgXAt@Mb{zBrMhulgXyXh`jEb6+@(cve!h4@q z(;dc*r>dL=Off{_e+*FMv)1bgXdb_Nqy+;P9vGbFw1hEvmy?oIK6KK9mA1TLwy21jJ~zUyM7sCvg&f3@6Ih`>;L=i3z5Z2ht>A(nK@D4}~1 z9O8AIv;jZSeynG+M-i1+=$y1ghm47QEPmZ_ptYiIN{b6a4j#dmvS zb{KbI{Ef?l)y*PNZx50c%z-^Re=B)z9(7)r-#AW6k~+u(c$lEC3n z>?g{;RnGSx- zcr{I*yXHvN1Tm7pIKk0vEXe{kwN0ZbD?;~?<4foZU`d}UtH++_0aN-rg^aI;9)HVY zR({V2`D-F2WC1qij(k*dlwy}1n(z6}5P9b)md+2;>_hU`HH&?2QTH2RRv~QQD}*n1 zI#d5+TCm@^gF!e73>k4004E56P#HU~>P1+?c9~(&Ycs(DNcoY&io#S3fcR9$06~CT zxMWscT1MK`k^AAj7#X}yY7FR}pAWv)jox&p@MJkgjt;{wN(v-(`h*dIL{GjRsu3w0 zn9%Z+B(#AwnPK3z5)4Ct(hUg;WZtX?>+jxC(I{3v9#>Z*+%@J+Sg*v1VNjxG$Sq zEHw3I>C*BYlb$mgZyA*~GbFL!F5tlSd^g}s+tl%v6uZS_YmodFW_ZN;S3meH}pA-UPXn3j!O2E(=hQ2{UAR zO7Xo{e_H!Jb9TlFi}U!`qT}qObV-JW)Tu&&SV`^4wUrE5vrRY#gi9pLP8U8F`=j#+BKSy zw%_Yg^H*3=QYanmWkOF#QJ;OePQY>#us|GH=BZOY2;v~{M)2v8dJ6?^9QvT;=S`pm zHrKUw@uR);Q|Bip_GI4vy0-NXDDVLruRCQZq}5xj}|S>J`d%nY4R^JZsFHlEh3tf!H%0K zruipf-P-|J&5~OvvsBd^R>t1H!G<{uyqWm0Kj`-8%wVvIqL7E7_X4jwhW=V7ZW5KV z_R*Rh(J7DSto}{#b-#YtcLn(1i{#9`=Tj9oEv>`q2hjB;Z;z)q7A=fIL#zKgSJI!H z90^O^l?2sIroI%JdBxA+yw-&$Mm(O^iT0OY>VZQ(1!ktJ4J{m@pcVltP9>I+0z zWQ>xiI3idi$k66!VTzI8o(|NU82E5VyuL^Ws$5Cm>8^gXLKZ@u#&MA`c^*^*m4F~4?9R<2SEk;wB@ z6xbNzk$+R0`2Jlq>%$`W$qDO{KlzWb^`fzF!{q-OK1%;T4j*506Wgrs|Gy6&c^tc*lO74$ zvoiH%6Hbp+6ghY}RWHbd;{V0mUq#imgj?Gv?gS6+Zoz|laCe8`?(XjH?(XivgKKbi z2u^T^e?rz;dw=`#T%D^qiq@Dz=cuaQ`}5W}K6L_Gk=^QNO7be26chH6I+M~| z8rh_I>hSG~x~3mlU0D^CIbUSdwfy`xdh^eyq!p%8S^thMff5!SZ`jzwL>={oI#Qwuk)jaUMoF~{HcP@Ny-jT@G(zI z*;5IPG--SZ^f0Jh+le@@q{tpVwLx8jxPe(*L(hP?H7Ej;G_WB;ag1eF9?N!9Q;;~p z2|^iJ5U`}dlA_>9%he-ub%Oa2*srv>WjlC5z7afve&}Y10>A@GnMgp2KO{lk4mY1P zLR_avQ$=L`BTuRCB$ly8Y=JuHiae63Q?F7@CU}@xi`pf^<_m0-8{2&fe%$mjjA4E? zSuA?dUb$Ac_32J?$0@W6qOD;jx(Y2KuuqGCCKB+07g)}Kde4Ze*QR>UMiiv6v31cp zGq;TJj2I)1aD3NTV%2cRTuy!aLB(DIzww6_dV(^$G-7Jxr&<>|0pTovZ(+SBi$K!Q zKb}v}zzJQ+5b{~jgs=f|c>>l_E8PKKd~=1YTu!OSPL*hCDwtdIM+7mvz+b;=Vr;Qzn^S>*(US(!594 z`OcUTet$R^DN9VyigTCmp9jc7Z9-)q5JZ>M6p-j zxsQ{80O*enGla{Uswe1AAaMPNgCAqOewTq5u9F?W0$)#@sRg(sTdOS>Q)(&<AOK`WpOLA;2?ujMf%50g4wKdhn@`cpSOvl1^{&D=fO$h zM#8u|&9g?ARLqc=G889hddW6K8iwz>JcdSr_X2H+3F%^zUxp+y8+oWje7z}StQ~uU zYH;FfOrS=A1N*t#gKGFx)#+%=V0Fa?hbba+Xk;|hyoA4<#EcMWPWsmIsi{}fNR}L} zpa6c}*%h?}bTaDNuUewAZwu9|-po{Vy)1C&5}Mp91MB`k;}_u zS}f8`g4!G;w3ui2e2(%kw`9>vB#txDmwtM{I_#M^?D1CTPzTSVnSwchw@tfgF9r!5k%pU&l z(H7V)M$K1O`mlH@*gB!5^}Nrpb+rUfB~G}=8Es9n^72)%>4&o|r!j~bCc+%`r-+Wt z6{zvbuo4NMiG;w0B!9H+*0#|r zQ&4vq0x-v>P3^Rp47`F1RQbpV>Mdg^Nr4SO7=crLB>DDd0L5e*ZQ7nVNfiB1`NJ%U zg`^Opz$o9h3Hr$ajJ@a8{01Q%at@TN1vUlNFaRMF@*(0wdT$S3Guh$vgnjQ%swHw1 zgsFg12BY>v>j}%O9BvSNnJa^BD0D*B#T&DdG=9a!WOH|951r->G7KWUcBYtcOL6^U zZy*Vx=38MYs7%EkgEj*2gO~a#@|QtXRmD&(IIp$hN|dJcDv=a}sQ8v!_9<1>-s88xXo6RP zsASKImzA{w39C(;*qJGCg{><7p>S!iIlmoO-xzu~}6)9<#(fKS3e2!pA ziv84jDlGMt3mNthjKJ&PTPc@xV$z8jm&#SeWinYb7deYeB>}=pzX}^AaH`So zISCJ(EfU+Ho0BIiKe-@KFUz6Y(0i9i5)lksm|F-~ktOd@n*5=Pu<2%KJ148oi9q7E z$UTbB!x983m>XsJ&IrE7q%v~99VGlpI#0Kah-j&FEmCGJT@{ij{oHX+Abg^|%&U(C z6Mco)0YHkGMgNFSrp7n&5_eMHhRAPFr;utu3xn;rZsg6T%Qj1RoA4Jt9ciWOGbzM3 zNIKD8+0W*-NVZj%M>^(D5Vz zE`5SG)ZDaOr#~J1Z#ExGyp{`-;3wE|3dZ)pJ{<~ zp$qO4eKr1=@!>A>F-2d-nEk$6=RRzoZ?^Z=_Oe_Fwovhod6M_Nn^)tNhUHNgosByx z$zh~|&vEBWwTn%vr!J`f3?oF>hMoW6A8CFWyA8c{pSuZn6Ggh(CImaTYgew}^<|E3 zRL?SJ(wqPEN~~yfw_aha4RmJQeN#VyasC2_4JE=qzn8Ie}eDj83B>APapYaqU$MfSiO%XyQm;U^iau^TQImvcgo10#J-d7^W%s z`<2n1F4>oE+N3kqX6yvPn}axN*FE+c&+8iE4fJWGSSj0+e#)1R4g8jX)T#T@UooK_ zqqxU?dy%zzPj zs&F(ApFzWY`@8j?fC<}Bpp>LlYdot=46z=!`d2I};6^N_^hORZfSBE&fsP1(D2o$- z2!IfQpgtrQTn>!JW{1&zK|W#f&JL_{bkFfb4hV3wAX0_!2=LeHwA8QWB} zR*95#y!g7sDT`~}1P`oC$+%SFqOJ+yrJg_5H$mYs?XzO4$Y8A!KBV2q-=S;3R5{vy z=B||1&GffjUOS{k9E0c1{mjK6nDs)869x$Y;7No&hnPhB^X`=4|6_4y>tC&Gr`T!Tc;Z^w{e zyZfn&J(4;6mj}>cQLS(I5*W(+pq@TFeE2yCQ^wX;IxOc8RF4^pr{q1CK(gaF0bDuK zc8G)8c$@zYQkMmxOeQJni`isRfC89vq(NecL<1n+1vEau&7Ha+6M(FDNMnOldwYE5 zje(yPL$3Qw0)`9%?Hj-+K#)5a?58>>8CX-LL*#ana>{=_0PLz!d?x8b(-y4XG( zEFD?8jIvAZh&TbJI}I`cWbDJ#jkyVD5dU38 z#HkBXUREETq3c7EN0Y!!gek}a&}-mFAkQe)d#36s)u-iZR8wB9p9K5MI2d4XAP~U* zKK$J|JK;bqKY0~)fgIz!*#@O6H}U@<+(SNtzOt{=Pidj$xKTp6@?{nfnDX)G5Xd4@ zK%s)caP(5h3f}u`=16Zx|60rey$5{;eg*RO;T^;Vv(qQc0G~-Cgi7Vp3Lub%6UPVf z1LF4~;6o%hfYRrSoSKAt|2}-98XUN5&`01GA1^-ML41%A(B~5zJ5P}3ix{YkYJBPsUDKcYwVzB#hrjpc~I$SO+ zQE+0tR%*)%l*yv=i^*4zfKmV_0N^ZApJ^niI2Keq0W(?hQW05Mgc8VE&?Dd*AGauH zD~sA})k?T)=m-8x1A;&yz3&9{h!{|CU=SPwLoz6Tt}f=valES5C;XssJEVR-1PgBk z-w8G0enY#*+>or+%ul?7Ney*|euj%zQ>8D(@9>@Z(PKm3(Rv>jvES$NRct`+Jic9N zS%Zal&2j}hw z#X2uK^|bRiLWd8vkd>eMYh-P;)6$r2LqshWoER;4AkykXZ*^^Y`A=@$OIFRufA;Ol zYJO(V&;1=?GL;_wl9#%m{dtC@o&eHYdMB^uyU_(r;VQd0FDgQ^n$maGE5fp(BDE%q|2sr=~xZPotdM@A$BKO-h>SDiMUf1%-=9e((B z^D1WV-lQn+oBKc}rWQ}#0n>}j;of%?zdA-RC0gB4p_}xcIv?(kmj{9r?e}C>kqh-FVPnHPWSP8*3kqX#O7aK!wXW`~ zx?;z8a|qmr#M#BzxeWr4 zJFQuEAb-)@Z8wjdZ6r-UTn3-zn{F)xjq)N0+twlNKTwS^!K6Tr;iHVfk~S13s4p;z z*B04ip%51`;`X|lvd;yWEZDQ@O0r5`sWV6z2&FA#z!s@VG0VVErtj!z!($h^&KIkd zx=nGJ;4x>zL(Lf{#cH8j`0qOxx)QVBF*9-Z=xQ9<1!IbxXhUp9(&!l5s%1wv-)u8tLT$j6lt~>K-x@WnJV)s`O5w)@R!Sv*t z#+2`>S@LU|!zU@-!kaf`?X=obtt8wNhp%JpbEDR8uSW|y+BCS5aVJv_jN#(Kvw1bk zJEY>yB6(lpY4?UdQgQ4g&?)j<*BIlH86DOMD*Ib zv7jR;Dteh*h4lm?t)3$@hSTw6O^mfgc$I*obQ*CSr640!T}N>!F5~TiT<@$jSIaE^p1iS2xGUq- zt6!uzhqee}MaQ9(iubFx9b^@qxDcJ#YDQggyPKi?M(&nts3kyEa zCp`)}YEzR(*+!Wa&s^Q?`Al@&z-f&-K5f9FYv1iy730K~^|bcbVzLZNsGtjTCPjpch|J*wcoaHK%aT-gaCB^% zk#Jp9N%FhihxV0UV#y~Z-u7(NX3+T>D9jZm#`@2$*5zhmbNaNU-uAbrE;dfLZd=2~ zD_>;dw&>HINjt=OGQkGFtfi4Vp4dZPmQ5`H;}Jf(8K2C4qw z5~X>q4|1(A!K2krSq^ZmSm2T;G>~j1%?Rc%xy~Kix#C`ukZ$qpj1%fLl@h+DM@eJF zg~19Qc0iSChQm@gawq#5Bt$dIk0V#uK_6vkp;yXvj3S)Rc3V*}{hJxNHi6+zpY$a} z<8uIH{j!?Yr)2|i!1}oERLWmt=2diMw8FQ*ba(P+L;Am$VQ{W5P%INU(cl+LT>T!k zZ?}$@klrBMVRCMs*Y~y7`W;>h#Q||4S(i!Kx%e4U^1Sm<*5bb7?$?UE16c0=O+KJ^ zl4V?`*i(a$I++Dly@rjD1L_=TLhW0FvL;-mHujgrZcT)7Iu^Q>)7MhB?7)Y zD_{YOjxr)BBSbENKPBrw?z69;+Y&2Wu;b~+!eU!hM%t3ltcNC!Bj=mN9Mb^+1GMga zS&||aump^RdNt`dwc-X7)&mBYf}a{5wrNNxNVWrwr-s=Rg@pPtS!H;?H$RB81WF6$ zQp|V1OR5-X5*uDk?Y%Ka^m1Z;fg%w7!qa6e6+(Osl|3J%J31aRw-t_G=FolL=yt(T zI-)ZUxVvbl-5>p*z6n=t*y3p%12vZqtlDKMvd2wtuOnFNBcP&7^#E3& zoK!#B#-Kp1{!Z968cvrohgSp!^dQ0!%%HW5sYMTw?Y-oT#Xy9tMC8p*iT)Cn z+ua<;@yf1G?BEtBFM7_dJN6I#>UE~uZO?oVgGb?!aS%mjGhaD@U`bAeflRsjtfQqN zSa&~BwEkFhQKaO^uI(0$xKCz}4R`xG8=YQPJCoMgeq+!p%@MyU0?tQT88KCP5?P_E zAZ931j2>3hl3P9{s>b;|zsOG~SDdHCeOWptq5ZUUF_k_rOoClIsSPh&KbhWe_AZJuj-h@j+&T$PG)ho zs%P2mEOhBKILS;HYqMrL17IGvy8`{s?fa<_;X zqh^-11VX1b0E+U|q1s>f8zN?bX;!%7M?tAE7-26c19wsi3>|%!jN|#Yod=QYS1tIW zzJ4!^okP=Gfi>Q|Ur&GfN_jCdlb+x$K^k&d+cMa<)D~3UYH4u5?IpD|szY@fqMymE zm=UV(-U?Qb4c&GEO25zfUsSm0%orTOtBh}(RN=f;0~t>a@ZTnhWn)S-kc8O{uXZJ? zolip2>b8or5oIQ>NpgkeX@ZqFT9ab`F^7LS-H|O#{Hi|Uo@et0F*2Yx&zBr;pqz(X zc<1h3u)9++ijYy2fM*B!lHN+1thr~;1V|ov^XPEz(P-fcP#2?0+TLBOS7u#y;kEp% zcLgfGwuQ(a)49jc`Wrt&Wmu&=>}#&++@R^0pNnd5I<7kZao0viShZtko&o&*p$mNN zVq*R}!uW7gVqS8!1(u=+lM){#+LTFxtbH84gTs$Oqu z|8F7*ygn?H3T9r42H(w#S#nfx!rJK5ArD!6JgYukx3Lw7{9i7L4S1_vG@+o8)iDZvczO| zV@Ke^L&4sP?#e0P$s;qsDr*FYBt5t!U_uMZsHL*kUY8`K#xm+EU#@$NiBOEaU6bLj zdxYg(xZ0hr{-*qfMFbzqgBLr{@D%^q^sf1ZD6&9qh`<1mu|;V5V3E24N<3fJL(a+C z*|)jyN!*xJBEU%PZf-g(m}&Q1c-kdgNkRj)ZvE*p%Y3Ys*A#J6T{r6Gr|K}q-0}Y6 z0$%5Mx55Zj)!0mizBhKHW-*kESBP*3GElUShzJTPhHl)8Sf8&!2r_~AM=(h#;d>?V znGDgnV2aX!209Hz$7@>|@k$UzNki|6{YrU<2&{0*iuW{M4l4Lx^~{f)$C7~BtZnOZ z%hVqbKloHsi{0}#fADoypo@40CgKtY_23`rIi#G`Ha>?yOh+TEcPdah*RzkMc9#N1 z5QVH^(sTVP^cT0WyXs_gCPq8q?)mlK3gDyRrH#8IL0P(9}2{Qz@+j+&hM;33sZjaC7}@ zZ7RAA^VTHGg8>~Uksh-8&3fq)0R8`%)$Ge@Bugs|xn*;QX8Ql7Q!m6y8?yq`t6F&Wr6(4O`sO=aj zLFL@>Fn1c-6@-$~2ox5BeW##I@Ccd1|7f_8t$Ox zsWmNM#L!F2Soc}vvxpM1@EX74=Mt-i*r_#-jE^`pKEzCnC8BXE;)F5S1;@>v-V~5) zb7Sm(Zdl7LiwxPe=;(p$ui78e&UEYpwTuA5~xr~-pVaajxX;`0D3Xds)mBTn-mw_Z2 zSL;&s^KhG#|07!nPvOgor`HVAAvAe$#?;~+m$+Zl9^0Qa1)Q%9Bf!L-d4e!9?J#bvQ$~MV{aDV*NBp!5^rz$|-J1w&Y4MP)0_g#yb^y zoSUMH_t@57Q4JoDw+fnq;+bbu!=WPi*i5a>k&GWCulqCh4H3;NL#rd*X~cKtB?C`P ztpenW`#kmxR$JA|lczFHGCZ0(BS&BSS-Y~byIih{9t^{g?a2Y_GmO&w{G(9 zRK1>B-8h?t4vk&6c*ps2&>aMxs)%P&ozp~;j>#^fWXxHmS*JdW>+Y*z&1XS1% z3$JZ_v&St2r9H$x#n+IlpgxkP7+7I8Ch^c|q&BI_$0wFU%KD{=(;!s1p&ukKZTaD0 z*Xj&MiuR?~v-16Au_$dYcLWW#(F1CS+}9=#{iT}`(0X%yPllROs}$-g`r+n^4}yuj ziVqqrgC&>E5{X^d#N?$SRKeuI&)FY=-bZo2; zlj0kDdTj<2Udt-GKNwk!kg5oy7zZnNUjM$DQ<#{ZV`#7w??L??Cf4XS^5(XQJh{)1 zH9d$K!6>t>?|_65gs={(Fro5UlFI}3_-TCFT~4Y z+(qANTPMIxFCo4(NHfFUgvO^gdm zSP^EzPnKb_S#HQ*7EHH0A~f)rd?5S>D0CZ&b}37#ZfcaB-$WVg;~zqP?|^+RGHz47 z<6vn_3mK-^5xf3yB38wnnspWe8BZz8S{bd+$)ZM=4o}-j8w%Dbnzun!@d#be#NJM7 zcGsS5B$y9_pbKvz8yU97sxZNN&tvq7UnlqO#S^#iv9fj$5$iKHoe=MYaLHR8i+F3<5 zF>2%<&wM^gW=%St+!Hm~dXskKD3S3Zw(AL1PXu~Q1}9P7Wo3B1W=+ej3|Iq;l6w@L zPnGu3plV0>#CV~&LuFL~HDj7Vnt{Ze-UfyZJOe};xY!|3VY*fYD1jMk0NwDeiPp@d z2faWy(W3>TC-WDEHNQge7Rn2<$21Gimbkx6H~A*YpLfnIE>Hl29F}iOVr4G@RGj1L z{K%9}co@Hru^##H6f(sbD5VNGBF_+(_)Gj437R}!ycnZ>5_NINlg3Gsq2kza@m_8J z90>K~exVX$VZ1P-`cO*C%i42i;#BWe-_;xp`;u!Sl4OiPDd?TN-3ndf4#=>wM1^5- z_FEJ4z+&&kPj7s1S2c{IgB(@x(iS@f{caWjo%wp3v8AQ5MzEBLrl=*r-pd%>*|cOf=>uq@q9uywW>6V385Qa`qbC(g z{w$Reo%sAh8SImWZta8&Pi&p_nYeI2DnFd=7yQ+x;AUwv=bG zCoMGxOX`+Oc2z9v`ho`M*QaIXPPxILvd*nN7(O_zvX0ZOq%ABS`JTfsgqJxKny$pZEsIFY=S`^~VTtBpeR7si!f3(WkcQOX z7}>ZoAGtHtIM~NIM(A~PW9msx{)?*Glrg6)rB11JFNS>)LF`C>}3B$abA}h-tFUP4dIC6j#=(Rdnkwy{^;=^rU95-+i6 zHYf~18lR<7QKu4UL28_%qO-T3|3*;$$Uc2(F^*S1Ky_$kUY~vCk$uxrNumfvl>rK% z4AzgPmtM;_by6h?Q}TI_*h1{e(jCtlcIBtcCUEPQJBW#tv^v)~@13-+PvPeNoVM+* z09OGo_?UM)65DimT1A(ntO&L$SmZnQAMUTInAc`1o7av+Zy6}cs<~#)S3e{TeVEYa z?`LRgR{Z{GW};`9sX15ka7U|9Zny z`8)hi`l*lT>yyIx!k_k~>kMap4eJ=^pM1Y>c4LRel*-&C8D;}mz+loK zTSc~lS3Y1YR~k8{?(>I@{b9N0>@xea&AH9XHg`bml_LV0>KQL20ZR##8)qpuclPQ5O7oY`Swg^yr&G507*z& z0X=reGwgwb04WAa6pRD}8P}up49b4YTG!%aZC9{B8cJ|lk(@9>{bwPNt`9vQ1_2zR z6PK8RR31WIAx9{WrYykk{m-&&?B=UX-9|kW%{0KTNCbWI@$BaLj$b2VZVsa_U2B>+x)C|Zo269&H8VTTQewfzpC&9kHDWjd+W&|bxAq%j(zlRjR3MF{FxZq&ZnFA9~1cswd`$HoFC@HKptTG@Q(jFv?7`h#oEvO zUu4NIf~kT3agPBO?c^^A-&Iv8WB&1#94Z44M`S+|{u^U}cMOFH1_c6!s|#0x`N)qa zOMWNb`9RGb1IktUd<7ooma;58H&>%jX zW8c7Tf$zEb@CbW1$mTjU)v-jgLNM|_b5#G@+wX@MMNc$~_(~vB5`W*90`XyPe>lj$ z7ybCEy}g(QbJVv639w7z|Ma2#XC4FbT86z8Ful#o0v^&GMo?tWEDpmzL7YE>?5NTr zc_MIn06CE*W&jgtk$?;Trc6gcs8kZ4Ljp}U{9zp<^Fil0aK#(I2L{Jr&59k#f&60~ z^Ks{7?POwWoRBNiffDkT#KRT9e-8Ea?dJP%kPo1Ud8N81?{O!$g0r%{?`D$Ghh@6J zvatj4*Nm6or2l`nk3WM`ME?J=eH?{bS*RW3DV;GFE?PqR|JcX0wVo0f@dm6-EJu3W z>r}zbKX6?*@khC71MweiDICvdWEUOaH{Af3&N)oWT+0lAVjY*1`J>um&s6O%MgX8k zuP!OeCHpKamAXxxtNw7*45+PaDjm^5=hl@PjN7~8YR1YywiEo28&y^TO-zxgoVF52 zN#jT1>#PKC!OIfcb#0R+xQ4WH+AyIDSK?ra%enAQCQrtG>NGeV4cv=UuNu+W*s;Yo&+&Qcerek3tb=Gl zScNpSa$0wOQR;v!zSxdJAGUY8-9syB=J z&C*0nJq$+)5L9in96AE5z432eR)$ifk*ZESf0=P@1GSWh1r3l^wZtwJ58R{@ecuKz zC2DCCFUt^LDJxWj-#S9|RobMoX*6u13eD?&-$Vl>S3Sk4OPf?h4Y8!8Eki`;V7MNu zb@b*aqU$>Mk-1>-z@zs;{Wx@gsS~rJaV=Znb$nzjC@I{lS$_}rrla-)3J(U1X2*KH z-bHXSsf#!MjaLNP$qVGd03agnys-L-64AntL{0Xy7%8-jIdNI@Z_Y3i$lHiQ6g>?} zao9zQ^=QV4?(7w2{c2y{v-nE3xAI+en7cY1ncyfKZtk(q&-#Kf))NKXC~em4l@Jf{ zsowR%D|P(hX+d?*zy*gIeT7w^BN;0Khq^f@QPl#JfrU4hXu1MVtG~IkG1gFk^|^VS z7VJ-t-X%r!*ISRmnaS-PDjl_axLARkJfF63*Q~Rp?jUY+B@8u8$WFA%o$~dEIv)1l zWO$lcQN|0}-rLqh`2FX+qu)8k@b?{(q@{z!HsNJnmMCz9*_#cE-RCVS9{ZO<;td=w z!|iux8q>bK<0pmrewb7?K34^bEMKY8>LJ+-7e=iDQ0JHn=<_pLXQ#z#wiBj=2?80a zG7wZkW-NVBPrs?)V8|!Te`7-?^J6pzB#bX8ch2A`OUwAeo~oM0)=Z^hF8vL=qpzAp6qZy=@o*k_C;hHD>$-uAb?$@51(9i~k&#shK5`w!V$;O1Pn4#?R z>ELx&?UdNuKFVvzL-)cAqVQ%fj}`CWw(!t3mn{va&e%52S5&3kv#;o|wL5Zh^F|YJ zd{LR_=g2*Cgfa_fO&DL-)`URs>$xGAB+FU#R4A+CY;VyR6|y|MsAZMNmlq+LOja7( zVns*8^+SHM`W5gXJG_x?XDwR&BS4Hf;s^6vP(m7ZXC8x90wn%rvH=B?`TBb`4H4e- z%s|@v+4fJYG8T1Ck`~&36^&0AmhXzjrPw${7<;tfpA%nlmafhgy-%8UOV}JU+|OhY z&r62GzwS(J#Y1e-4b%Tm zk)AD9txOzJLq4x+Zgpf*hrX%Ml^66s1h1AUj2)6D*DxObWGOj--;35Zxf?GB`Rm-Wzf%m>%%CGQGS!qN*)Xsf4%eWXK|q zb#!$fKsG1mxjLabl>vb9@KAVDk2JsYJhciuOzIMGv<|kk`i=?-))YuV&XJew#HqnV zq=a!_r5=8=V>VFjnNKiRo3qC?V~xsS6?qWJg2DpWpf~Y{H2GZqhZ6QFqY-O+cpCMA zCx{;i>%3J*pkuzlhRU+#>E%2*p-B-APSrUeVCX}{{SLfSVcY@4gmEhk~bx*K{Vsz$v7{r`$#+SlJuQT>Q`;7@c z0s1={`Zvq(1c@&tyLCN&J(;6@3t`lK8GXc>{-%}KL9Uf4q;-0JQSQZlhi%_q%`VHF zyR`o}Z#SCMsmBz&{D{y(OF@V)B@S*x^EY50lPUZBVz;K->Lkfb6y8h_;lwDTbivla z{RMXonJjE@=`_uhIulf6cm(}^8d-; zZRmt?KT?MyFSKc`9uOY6ui9LK=XtsvKYs1f{=v;IlTqB*DUUOnu1hY>`6j^vqtTd= zPGJ%K(#{d6WKLNR8a%vjP6R8$E@14E7RZ5J7D|ILNrhWKG5gIa;pmm3CvkUS)%Po6mKd)@HmD)3ok|D1wq>QL64UkV` zO)&EMqtJu40S<1%u)>ci<_6DT1H%;8C!jK zqE=XTB&kfvYF3?@lTmNLyfPQJ8|oTQ@VeVtnS>YQnL`EqALQ;NWB|5F21h*1kVvE; zAJ4oX2w+BcN0`kv+M803KSp1P<>#Rr7&G8t!Cv50(i_3Fxhme5b!Ip8=IZ)=XtIeK zNn3@}nv4f}lrdi)kqCbaMWmfMJTzyy~oC_#(OhdKsN z2t3Q)mCgALG{E?hO-ht5M(R4{g3Qoi~I$WNvk6X`%vqKt3U&HTF(I`|SIXvn#8N-ZsT08S2cCJE?+=D5=@PgDw}LGJetbZ zpUwVCvr?ttyFclC+ZWzU&MPC}oI4}w29}&#jG>=|xv^&3TrkMSD`VQ8e^0~O56tr0 zTia2@{`0T+Vx(oKG~xpFV)pu9!E%?T*A=0BOw7MASc>6uhb%#ZR!ki%RXLt@cMmgWpLZmR2FT`7p}B!v+HnsINi{B zc^nNd^cRc6O_Mf~8;;SSG4c8l^sx4;X4F998Y|$le*5 z*I1o9lVPGo)*A0{6bV^uA6qx?$SbHx$D~X>?;1O;Sd|ejSG7lsQ(8UlC@NAWh#~?Q zq}lUn)%aOg!q&`Z-Y{RTE6@3q4Ps86s2hL8wo>kCsDVx_+)sqOR&D!A6Pu`=m?VbR z93P3z3k1_7B3l$BcBCixh|j=S_*P4cTH@jKDp_nhLjhizM!w|9ga2}4vuvUfVAqne z(kgU>1q9``w7Ngb2;^xgx8MWY*Z<9`^l5ed5NIh6-1vNgOU6)wImg9aKj&N5|d6t?~B$nyx4smyKuv$MhzYg;D0e?<< zGD*3XSd4|n@*_@_Xl&=VG)51LQk%vKn#mRej>r9crZ3dbKI3qnfivaMstv5FUMWik zDLPZ8m4_3)<9bBqhnNdl1ydN!rT>siu56jcz8sU@NfpYtjz+HAPva9BVe1qZQdo4O zGk8r4dJ4KAIr_}izU8%X3M2L9u*(byztqnrV6tA;OtgpN6fL5ciD<@IHy+zemZD<` z*J91HVGj=)6p31#!_51(1GR=843;RozF7T zI!AS7C#4MC?z~{*lQq;q&n+-I1hSwvK*M z{RJ&<-Oz9yWYZipjU5A(uW5V1|m<>zlNwyv^%kF zuI^U{7db60$g9kxTk!pmSx5n0UocGa%KscV64(9B?_Y-;TahQ4$h5E9QA&(k2X8Q^%cGqZ-)^I*K?W?D_8mG9FvGp=^_H`rlH=J8ZlZ|wiz@o;h zLgtOesq6PrG;Mla3pp>Iq^lm))adFC>q=XgWWz0sc)HBj;v>m!_;jNq$=b!PFN#*E z_1{d!DT#$)J8L5jDc%YpPv;U@VS?q<c+9J_=}!f&*8l{<&}AsyuTeOySKl z_udVa1&1Y{ON&YwV{D`Cp2o#viwdLL)6A3k{jo3~|gOp-`r_Y@W^ zn@vk{I|`%iMWDz#E|AckFKBNxX1R$eSXmYA`5jI8VNX;LDl?I523db8dG(0yU)7SS zWn5t%rZ5!EEqN4FnEi?^(ETHIHT4<|FD9Djb{{;yzX3b z#0bNcjrsf|u(C&A(Tc0S{OOqJ(YZ_Mg0SI$vtE@Q`ORGW`xZ$DR!c5-8`rQh_V_g8 z=)Fd#)H0sl8J6NaKb68aJ6X&UI7J95&_v%6JSjsZ-=Iq#m1q8(2Q#Vxja@mMPyXv2 zAnyYHx288jdZ_;(nkQ(O*i1ix0wTfKwesvt>3G{p_LTD&|0OZRX-S~J`u)4me0|_D z^{Psi`QTiRmFd{#fV&&5n~Dkjf-4||Nl2?qnf*WFARIs(BqvNS4bLc`>`_PiV7uOh z{l?IEJXS*|A5kR6U;wM7>GQvITN@CLUbXhX$iEtXsj5pHx?Ba5_aW;pog?x@202(`;fW;Vt)3#GAaPFkx*$}I~|?R3mj+V9(?IkMrW_J&*xCxx(Llb%^uKVD$a#QoKw0_6=Lv-;<i@C<6-6yF9I1H%3QIiI%n3jDt(I;!bX=Ja_-AEF}s zxvxbC0}4Qc0l)cpck{~RJj!&S1`O9o%g1a(07$TZc&i-Zs%Hhd*YC&`@%Q=|PC%gl z3g(j+|D)%>zN~fGLy7;x>RZ3v-@+1<>>-i_#*4rMw0+>enAp@szfW3jHsL{W_;o(& zWez`Y4*rMIZ~sh~Lqph>t5)m%0}R;_F_c7K6b9t~P-2o%07@)iU>D;bM$9)bij^y2 zL88L5_L-N0qQoDy0IHt^^FJrzUFL^-eGY)GmEJ~}LH!S8>(17P1?hNw7{~EH3dA4t zaYXjY5C!o9;`PD*fW>C=7G*fDtl|6T95}u(5dhx$3J}&Uf)*6Tc}oX#4w^E89w!bpV^ZTqQNPN7=45^D+`d@Ac{!ft;Eeh8oTXBIvGzcW28r>Mx9##f2#=o(Snf4Kxt3eMLp2d@P32=I~RkBgmtO5UUZnwig2k_fSllZuZ41>xuWodDwi zh>6#6lU#jK^hU-}#H=6T9Lln6%h-ms%?`5izAVP|&zEkQxTyR$MH@p}4`0TykD|Ox-zA?nC<-zUJR7_-r(L z1nYP@P9!p93i;UPdGGo=Ux-!n+9Imp3stb~6&`F`B-eYPlW^O0-k;}*{68ONoe{U3 z(wM6C^GGKeTjtY#J^o(In`>8SyT23l#B$BKW-zS)-3N5E*_>R3p)YgfWOE^2)^uy% z@;9`ZulblIt}aO0W9j|+wbzYaQ()~nUH6gY3~^N0nISYEVVyb*M|DnJ=7IU?on4u( ztoHqu8Y-558n^lYGm5D|eH{S_HyOVC1KVy+TEoCe0+(OI_~+SiB?!<+c-|#HMHiBc z_nr)`xr_2jSGtzHSp=uc+hzF~*SCjPUF>_qnXJQuRqRA{3l+U)EXve*p>8Z(uFK83pTV}k5{gDJw;qCePLIGRRN1f6v?kgD}*6*KCx+|Jr^1hQ}W%yE|}aMDsO)aL@>eBMd=(X{G){%+zkbIE|(Hd4scGP9r8% zfDpc^A{8-`Uso10H3A$E*!-l+3K!3I{q6*JhmW2fPFK&*LNmt=(j}dkx`LsUd{l^? z>_rqut5VRVfPdHZOCqk5|2o7vzNwB%gjayu@+vqJkdJOTrs}^RZu8{Q=~V^wsKS@~ zmXsBasbG#;vS+KjXB=;B*!V%@iR0Yo_k*YxJHIDwaajS|6wE+43B|PAzrQq)nM4)_ zz004O1-Vc(N!z}Q6JqnYoJcp0iL{PGPw5)1-Jc16Q-%h|9agU^@t6V#3D+^w24!ms zsHWV65o4(YWM_%ff|OCP#+(Sr_#Zo9jKPv$ruD8%O_nRRS4`A}{um^^fl?rp5MOCY zR3%_0R;oDRZ?~t%Y=cM*7V^_K#{db}n=}gsm;hlWY;{YI7oddi02B~Z`kYh*u!`8|bLEECiHm}9Rt)I|CL zSM6I$ycb>OXHop?M-?Mj1=$pRgj;vL5vI`za5wQBd#R-_!GMpdKBhXPS|n_V>U0N2 z+UfVL2m$M@tOxJ&H#Nbpl)P&Vh%x<1KEp+U<-MX2bdx16<5^NjUNuhty+coryv}F1 zPyI!6+`Yizx1x|*RGoz}CdRxD@Pp}qpI@I?>QWw`DX~@aygwG7_lLz?W_{P6{b5W= zP}~?NY?)n09!Sl3)zd+Eu`lNy+kEG;+RdF65y~&e6?)b!v6%gJN>XUE_<#0C*OOAq zf9;RpP}dYTkz}DUy zK&SJH&#RqEHg|Hx82r?kdu-m#R~+mku?qTxK^P#hI%*QBd4&wzP*R)l6YcTKoJtg? zu{EB?+r*bQ`1~Tp?-M2N5xEFyyWXr8&pcxe44>5Q(5iju{P4W9u zGyNld)Xa+gYPuYp9ie7PU!@G>^8UJ}xGbx%4l^!(zC&Ow(#R!`(;QrZ%g8*5t5ZBCYkJ#d9jP zZF|?V?;-K6-nLPkwt4Kdmz)00>Kh-EOrKt6zi+` zqIHR*MUIJ91zDAUQYDtOi?7q3oRM*_PSX6w#c?#4@h*(9*tSDb6k9Yg@IssRd%{^) zJrQUlDQ95TKGP()P)SP#bT~s&OkDhdsyL2wQ3&gfDCbMv(-H9Muw?gNOEj~ z4=)Zy2Z_14m1p^*BT0c#o;HCFme%A5bv9Xnj@E!qiKWNJ>`Ww|P+mw&6_NBPgQe!_ z=eFOQ`G@+>g;$rEOv|kgJ6A4NSS)bUH&M}WCK##ZW12;hm6dy;%qTv9Lyd7u&0n_9 z;0>Lnn5@Nzhp6fw4^*>yj%+ET;UPE=sfDe9qXg2@#na3g0&3l#JX$L8mrWXLpLAmK zR*mU6%ON&mf;l*cTS6W>?YnUbxVYLz&yPW-bvZ*(0f;L$_rr9APKdgX-^bLYOO5lj zCN6a7%Z_pVIn$b+Fg>9nu{z#jrdf!`eQF)I+b~pA!IElRl8d(RRCa4lJqnx&FTE&d z>|K$O`a-jwy#qzfQdZI9sF_d%N6SIvS-eCIG~6Z#lRrb>eIz^7lOUoLD~vU573Z&Tex=qy%P|ML{Nrrs&soytVU!8g`BV%a{CVKH z2OCDlWSZC4bth?ozr{~S(G8zAG2Y@~c@a=~xV&HP!(P-q-8Rz?DY{?#bWf(TVCcN3 zwT#vm#;dd-J;=Zk^3nBZ{?5ZH+>!N%Yh`Y@l^*1_&KtX2eAbRZ?|cjf`udG=$Kz{*T`y92+d0Pn}nSSgI?D-$^dB zk9~~rL*V8%eZySr?T5}-XXinxn&USXbmS^nI`DMF?Qu*Sa##8K!z=tZDTwSJY=<~k z)QEa2e^2uuSZ$(rj;F?;QzE_P&&>DZ6*UFMrr(#L3J|m7M6?E>y0K{tKxbN7@l_ze4i%^Xu#!yfUs%<9o+@w>r&Kp>%OLNL07x?O02!E>AevZ}j%2 zX!g|CNrt=I{`7*8N+D_FHF6_1O76SqM>eMI<|{UBsMp9}>{bmtvbI;v>{<}w+`qpf z4LDtkYUVogIG7y~2U=K$lD5}^BDxOh@qyq9_jpf zz!B<4KupV4FWZMk=dDTXSmym`F3akG(_PFb zbrcM@h8qJE`*g(^lgCBmbsMf_P2-(;kMvcVuu+Gyb@!6J=8nT=S~w{^eD&!n=c>wc z%n-J&SWM#k9qadV&JNgnJ49SYYCNy=K63tI2%)8cGX$r&^EICrQ1=uHv(RNamnP- zA2S`_lFl^XOu>P5Csq!5#c$erWlk&7*?Vm`7BXIXgONw&;~b=>i$O&Ioq-9Lnbxs- zNotLI5q}TtU=Ys@RNEW1yEz0kTJf^gFoyy53Ttbq;xpHJUai#Z!bD|T^68z;#t5L0 zB!gd`%$BRMIPBWKcma*!A`vDd&Ec?WRMzkd+im_lUFQ>)EQmJV*-S=S=i`<6$m4}-Dp$(44iOATJ~4P~A@L#*FQ!X4 z>O&;~VK&x4EgopG>o8Dq*vS*Wcahlm2VBI_PVzqv8bCPg?u>>QFS|34Rz@S_EPUnAgJIC_s4kmZbLG zAj0>~>6^B4pdg0*<9l8q?iXJ~C9$Tcz6WHFpr%-Q0^o6v`X25(x9=8tU@_&&9Aos~ z$os~wkaNQV0q=L-SH$E45@r9fY&AGZ2iVs_f+#2u5J0G#bd)jRnXY&lv#C??Ms)HGN99dPr+$C8E%+E3nT}_TvYXEF=m1yEs-Izdvfgam6^rMg03eokJt(AAziEUgnmi^V_ zh(In@VE|f88tM?VpFc5)Bn+CbKT;)Dp*UDJWnnx-3<3n0k03D$3=ojmaL@Hx;*kfu zHED=MIDUiQ2=YfE1L2L@soD46LK_PB{bba%nL>n7(7#{13T7A;-p>~KdJ0V{&|#93 z2exJrQ^Uad`etQ`l;6%WcqyKYOFycU`+OrhhQ5F8^)0i$6s$)o$g1WhLBAy)h1PqH znxvn7O2q%~bM0!u6q1_Ow^Gg6!1{+|si8?~LjC)6g3wy1=e9-@DSh8P#atEXq>M|! zz6g>=!H@$Xr<)FWE+_yvXN$wr{E8y<4bUf1hr#jP>4bP zKMzSv4U}($IZmKCgv)*-U&4cX{qvki%&_O1R}IQg2N(idg;17cp6o^#*RMUjiB_P2 zfERa%8{u~sxMs^_aw3mdq^(xJ@@)|i=BWM`>kh#qHvKS zT{ih!%5iXMZ?r53>etdiY?5lqZZP>mWh#-;N%T+`g6|ZOC%`Y>9L~&Gq=>a-kUK}* zW^v;EPz<;w{6HG7b3RqsiOA+L_+1li| zA-O{S=g<7u@?*B%n0Nz&{))c*In zqDpWwTpN%%kIp&mE}YBu^0}uw`tIv4)%vRDYOT~r0xCU?L=-0w=r@BL6mN!|5e6a; zcu;SUr^VCq9%2RVb(IJcO@f?y3Vd9%aW#V#2qr<3V3&ptmy*{D=hp9`6jW{PDGyTx zxK{OBudBqL(^WrXuQ{xrPn;dWT~cue%of_qKT(C@rjIz>4qd(8;c5R<&!K00&R1oD zd{smOchD>hg<>=3>MW;1BwwvufFd6?fGBG_f`LykKdA7Y_#L+_V*za$xtXR04W>a1 z6W>k6DH+#QFI=R$XB~sb7mJ*28$1GPbXnS~j++Ko{wLCxdJdaV^5=4s-mRk@NvVXW zQ-M0N-r6@bA++T_apBR1;6B z>V&L?N(oA3GN~5^F~Gg^sFBSuEhB1FZSzuEW&T!WL`S{4CRIcmN8hOLr@%U_3AJf_ z_pp3R46r&ep9ik@l-a8(h0M^99S6!}<~@2gUR$nP6D(u_N--B>j1N(UUT?SCKAo7> zlQ{81B;-q>nR(&o`=uAm-BqBPXA+w0%%H;5{uvTD<`$EJB?z&55Oc>?#P0QVo%?NK zb63H&TEVqpBzj?zp}?5Gm27b};M2LOyTV#!CT$Lf`OXnjA8h+Pwq?q#sHe8EB|>r*t-5Ofvh-hT8*U-i?l?!Dw9RR zDYpdtrWlpRx3bTPxv4frt!8rb?h6Lj*1dKk)k_4BUhCs4J`8Iu5Nc!@wt)6dEl{1c0G5V{GXbk4B-leI|KyuD_QC{Ek z!G@1KPwp3ozv+LjVUmQ)A$5zh-0pvzG(5H+Y_gm>#;Q2lwdJGPW z!1y}Fv8Oc6aq~s`DnYzvO4f5Al|{IWbx%?Cz{ARH{xKN07CmfE7(;$y zfuT&(Xr+X4297Vm7bc1mFqBk&EM|T`v#iY1<818tbPU$4UEo^Nmi3E$d25Nlw?B>d zB(8|eHPeK(yW7?#Km~q!Z~r4zrWUF+hn~CmlK$_Cy<4g&_2y%9rWD8Y#rVTH#sMtC zw&d3P^NM7@7M)Lgh~?|HtOf!0oj=dk>V@%oOACbKmd0eHGdTsY88??)W+`K-U`Itk zowZi?!B~fu8lMJ%Vz{Fnt}c07>Qdg7xa!hzRgQwQ-7>nZoW<%oxEEg-{Cu-Tkb-6z zb;XP&W>3~EN!kKk?Ag~wE4;}ygP}F@%b-{@NgBw>5PD8cGJzqD99$N)_%z6$0S1h+ zWi}&IKTdDBK&~+g9A=aGgA=g@R(?MWX5CW0WYg<9&_uMPxscI^RBq)*wWl}Uoc*TQ z$xm#o=e_xi0lhxxD^U^TV4iv3yk*n+xU9!*7ZniHjP!6=wSAgKqh$ws;A|alSM64CX8w4jZ^8t61wP|+D*Up(FL)1!o3#yj3H?3 zaT94?6-UQ9p!Juyn$w4RvG6(`&cxNgWe1b5fzyjc*&(=nNygeOlzkVRmOB%+luhtT zF=_`B)IW*n6)H0^2^Kc;gZG%2jbN*~cHQncZi?{__0;mUM0AF##I2f3C?Da04uoNp`$=bI*BAF$S&5~M9%D-zrkXCu>3X~Z}C6;i3- zYi)|VeGdx;n%X&A3x=`;DEapCQj@q1tI|?225E3DMZ8A450hJGRTt|wdpK22=`)tR zJ&Q_M@Sa)Z2vwN98|qr0ou2gYDJ6BS1oN;Q_C6d`K7FLFODn!HX~S!;=iH)H&_uCF zivN&Jr#m<|r){ZYZEbB+l;hq`X&MUqieR6BCdOhSv5btg?1F!9(7)viu7;{!UvQ4h zh7|JN;J(tusE0?gb0pAlVlol7xwi4d@0L|4w4}D+!sM5hz1TAHg-Ib3Z_F*LBZ8t{ z;4SM!B1d~WeT4yPiWWuq9h0t>NAjM0^gvq*lemx43Ir#oTdqzE{36!R|g=iRGclNV?+H_N7U+knT(QjJD&$#w@ zoLCNhc=22GVa&+gCkIT71|BX(_lsMZ%*{QX6%8KL$0EB$XUjs=O~*^BqXp%_uO7P_ z%T%W|KhTE<4twr7LOPBcrWqbH?A8p6T0{#PQwTQ4u9^4BJTPODRXGn{VrTR1<7?HIGEMxSL zzLl_dlx?~&{LE~dy`JYBI_qLB*SQL`r(rOwbIq`fRsdNiGCQt<~<5{Sdxo=)pHd(UxdondFK~_gG0)`&emH&Ei;IR&Q9UIIEvM=!$1hXm%LmVDwr8VJcyF1qOjqBJ3+K{X+Bkjuj{=}+zJ z#WE(E7xe@2EWZ*1&_h;b09k~OTaUlFsl-yB@)SADNhBo7a6GT@Z4e-ByeJ%z3L&+w zG`#}M#?JzWoL>&dUwOmu^OhjuJtPUzdfsQy`A$3Ik_c^t8m}2j0U<#-VT4}=YZAlF z2@4<|<>(`BAHHo!_I_3p=IE8JWn9jw38N^}0H zdSm{m04o9H4Y*Q5OtlhuE|>7o;!61GX*Ht}yr}kGZvjELC{BdDG|AV06b-m2LR3ky z$=@_2bEUC-=>Z!CX%b-s6d4cWA{7q13q5rTp!4{9{61A0*bwDTRa;D8R`q&! z;i$vf+tQzxUz0_y2$WNgsECPbYJm5?hD$KtpO%h3UKXy8qr&BByuV&m^-2I!jaDXU zX7ur^S56q%T+n4|zQ=Tu(mvs<1ChHC{#q}UJxUc_P9GeNJ(b#&>S3blOe(^^^?fJL zsglXu=hE@PXzvfy=1*ln>9}=;(OzB8mGhFIBJE_|WHk!Y;a#R70L-){O$(J3H^{EE5VI<@cnX;&bipg;;oEm-dNOJ2 z`jZwf^!S$V&$Z*0t$UU$?PbRERi^HIT?e3YocGjMhdJPcFtu&3*ZZh{(}z5sn!04} zc1>NQ2{Qd5TyfI()Vel$Vte|%yro<_Q7rD#>h2djCcocEAREv|Yj|aJjq9r~+rh81 zbt9|XlA%R069$Uu7N3{OFItU@r*GhgkUi$Zi#0>= z&4&*Ni9+8*3>O&M_+>7RYZ`S-i#P^QXyUMgCfbsZtcC+QPfJxnA56FqN@wU~zQ!p- zHh;b@a?3S7t&$(_+-4WZJ``AcbUHTxo0h7XH;3nks@K~D|1RtxyI93J*;)_OoGq-i zgiIL9tncOCYsyWfCvSwniNCFzqospPtTQ%U#Qw^N!7cxOXvmT#T%C^Xb8`N=FEc0x z2dFrwrOCN5R$}m<6Fbm0v8FU0o{Yr;+rB2a#vPfVEl*z>ZqQ%Dv;XPphZbLI`Jm#p zliNeuRKtl_Ln7ZTZj#}gW;x*#3?}+G?~f#9Y##2f(%kPQ=_V7DH?MYV$kGw*iTA0O zAB1wf?0O#Hr5nu+o($7%g!!Ws9TNre{uG<>YH1dMVly`1bonTTs<1k*!JlGtEa}JZ zNKSu>%`Nyu&n&}jV78~x8}hAhohpWt`qR{!s%V*wFriG;6cl_Ri z7J?Ad~$SEyJ_#ihfUnP5B`Vb==GbHDs=RvQ1cOJUoLD!UM*wtuK4uVkD0wzF`Vc z9*8r9IT#p?;MXcm zi#eVeElA+K_Vmp}q71k716}9#y37a+}&ZaLu6YCpqI%&d;X*~stZ zs!RnzzGE&^!eE>VB+6|)vQoU_iUZePn>q8JFbc*MINt=tsv(UU zDJynH6OWVnG|1lCjdsk_qdEjE6QhWN2| z9G?JnZ23clqouaD2AKj!^^*v5okhGW6z_bq-0O*`lW38pGKk`0Sq z&SiCvR7b7+y8of0RkGG8I*A$IRyJ>jh*Z|8T=iR_5$pHY(JAol7WXu7$$P7|GJKGUWXJEbL7WlrHdz8+L!AZQ5t`@^Mpui_bMd%x>KZ%0YfI8o_TUS?2f4Foh@S=^v}jtb zU2n8w<$n&98=ijZHC+v}7lPDtW3j<$kmZ%u{k$g!;jrWu98X|gjB|Hw_fIaJ@k7AAJd z-Z6;@r}9n;(;hnzW;(}w8e{+SR0PDL(fZy^e1R0gZUBqvz_= zWZ9O*jjk%VOKBVVMefECzw_7QoUD`JwS4rul{QZz9S<2#Os}-}Qg0%vZ_G1H+Xi*L zswtmpmdBXd$WIh>a&1o+pOkKwsbY(BVs`=~mNQ%5AjDh`b6?kS@x(9GCGY-j(erY< zn!h=V&ATGuzhOZV$Xm`#TSV06#>qHEIvRNvZ^c5DlWEWRY=Q5}cB zLU-1`(4HBz@h)e8FgJu4P6tagep3Qd`Wny9gj@2i8^>oO30%haTlMg_u0k<=A$<#X z{Z%W71dS6l&r%f42(DW9Pjb5N5Ev>R?;nP5g=P3xrb)WWRbdseG_~WX;TVA9by9=t z-W8g_HbvX$VsB!tfX?WLw0ysryWjk@7n_>-(A{AUTUKuOe=l1kfGH_W&;051w8|vV zlhHErA1I4Pud^RrRJ2(}_-Os7s-ipM!u6_ZMaQ{C`;w=I+W}+eYEg8EqDVON*BSxW ztqfMa17)Ts{^(4xj8AIyY#$%-diAd7_prQ%xleT9-?)u$bMp@6A34m2QocT)HECov zTeWxACCW(ZW&*S0@^|J+0DY*bll#h`IZJLlnH~2&(?4zB7R_E`R_cV^SWii)B`HvQ zncY~RMVnsWlk+Yz)Yn7%_HC$M^{*C-SNECZX98EZ zi|6yWPaRvK<6nyyk^~m_rPFOTb$Ol+^Uo;D(~ZW*in@LgEw3%R^WNcjC$8LQuEY4@P_B}#IXv2)^2=hgErAX<_3JygLV<~ahgKqE z&~=NgimU`PSsYJrm!5H};&o_0vs@CwI*+)U>s%HNA@IT0p#;~rEt%2B`ckp|9@nI`LWxkC*FG@TTxblb&8y8;_cStX zafC_l$}hXBFWED`SI-TW*3}XxuFGMUmzRH7sXsU4x;ermdoWH~ti3&F%DZ~8OIhpOq zP?J!Ak%5x5uwm##FWIAFURrxFz{WBl>Oo?5*C|HU$j;G7-HQTjbzrk2Gk(qOADX~! z+ZHSJM<@gcWSw5g!5joKd?tbpclt}5j}WF`*d1ll(Wi3^WeHHBjdryNl%MK(TF(RE zL(@iVR_@~b58#A+EejerGai4;9bfe1ys9e9t_o(QU@=0if~kVhipOvY3g*R?CVEt( zAQdrr-y2NQBxHh3+j7a_6D8(bRA^<6LMJaWTMwn`(6j~X&w=G4K|f}?Qoqa;w`H@H?6i1= zLj$kse zR0jsdP|BSu%ykB`m?{pg_AzJZ=1X>C*sA7NG?B|(3?UtDbi^x#I`@Y$BIu<|pa(}wiP3g|4 zGJm>N=|;42K8*KJ8v9N%qZB?OdOI0E-KD2#rsEw$RbC)$Vh$uFvj~s5UT7HN3_UMb! zxYx|_JKl~*P)C@hYVp3gSP2bB$7Mwj#ZR`QZBp`5W7#}<*u{72Lzoggl_AjWExcfa z-^awWL&&5a1mS;@?wp&8p-@ZVL<&oj$y|8i81crSiEwHQ6)rH#-^6irGv6d%zL5g6 z79I`fL!Y%$CdDbM8+BLiY&?`sLr7ecc^o_Ri(E*ij_uzaZax>U33YkPOliTR&PNzs z(g@WAj&U6kjfmNp8*25 zbl41y&E*H?L+3L!>z(;U1&!b3)88p*(qV6$Tw}-HN6BtDFv{qy(q2MCN^nVyjbtu4 z=bzEMwVTGrHr%KpKz`o=ldDbhYbd40)GXZdrhi4DfX6@>nr}r{FzizFM-sNR_^JdlI9Nk#Zs_tZZRTQPH(!&rtvBCM7I0$8d%hcTJk5OKKQyGCu8l_6y2h+GtebXhAoTsd8UOC&3|ssCQ_8;HXV%u;Cj4eE*O-sSyo^J&Pj7J@KfC2T=p7kUacYKH zybkR&ti+**0>WMW%oJzdoS!!uOkp?}+M9f+f2G9EeBaY*8JE;^`6DyP^oX%ec`L@J zfRsTsVM#owzsSLBVFh`}s*nT_K`x~0u>!hjao8Qvt-K4B1`lB`)pGdVjo;`MZ@~EH z3AQ>k`4qZuu(n`nuc&~)lf+Vct1NK@5}S~Itzk*>S6YWDte=P;EzK>xNqL*YTX9@~ zkGQA0__haUF?nw$;G=@I zROn^278n}@^1%G#^o7R7nW5$;7%G%_1bwJqvmrrL|aH zG=cQgu+}qpP*x+7_V6XASZz&KKbm?4fgAjnH`_{SpL_gdj!~HB2T8lVn_?bn|J`CW zB}olM7!0rgK@uR$Y03wGj6*MO-iTu*$iJBz#MrNGy;qoEtV0tNH~2yc+=~U~4cwu$ zz0;I65SV?IFQZmo!`eA%uEMQ#xCiy|KqGlYL4~^xRX$B}Xb}9*djd<_^@|O?8Q{PF zS`ZKC9Fp}UMggKj?cp|U{};{B!soX-1Y2fu8?_V~(oLZ(*-ln0<1cSF2z z7B9HPn-8aE)k_x5mJn ze&Uwafp5B_-S*0bDvU=nL_7QT4~9UT4L$@mDUtP*g$0lZ_EiLbzaM}iu>L_2q@Pg) z8fFBje^CVWe^3Ov{#*nsZzxy6KQIE4Z7ZEu@*>u|C+K|svb;zGxc}f3NbbMxehqrK z$KBP&2u&G|zyk!u3rN8;<9gI`g&g8Jw@pMv9LL)&aEyEp{`5^ig89m$0Zy1ekq)y5 z!TAY58vZ~7NUlqFHaC8nS!$;e%yB|~0xQVZ;E&z{L8%bU%aER5Vc-;DC!`^yOniv{ zuI=q(d%=tCXU1b9vOw~+kiZD?IrxL1Ku{*w0DO)W9wxjZ#)LE)u3wSC%Mt}v>ga1K z|J_;?TK_q75;2_mprF4nLwy2a4t{=+xtJu&Tvb9@CRqx7O5+*s8Og4{rW8prixL!^ zk8lP4_E>K{y^c0(W&D4f<6EQ#8;{K(QZ52Wkv09alafW@<%@V=uQRB zABb`)?1x_4yq)RBJD)Hz-MJ38BE^@FFr-l}12kbN7^=$IU)To#fpFwj{;?~CELMnY zneP_XJA(tD4=)6SL!*&VO`EEV74Zag-Kb!SEh2cQATtUA1Q3D}Z;HSLPTJ80o4cti z0y6=rWPqS{tweaUv*ne56i)p?wc~qIfq4M45^s zeh&fd<_`tm6>w$PxkAu)!5FFr=5FBcAG`HDgWIUvFKz*pBN3|KeD$kP3S|ay*P<2q zIscM2WG`1&_!0ZK-Yxr;**r(uv|am39FWefAKEzZ+{L=YTHf(roF1XyX#D=N){xXD zeggExY3^NSlXssE4qRfN8Afv0xm&o*`2wAx6X-zJui^fdw*pyVD5ZWwXS%(2h)WcH zwvIl5H7u9eP{qRNMJ(y5b7T2Z`}@UXWBbb(2c|}1Ub=0yumFU;(W)BJ(2CodzBHJT zKpO08Ltb}9gX*jfrv04xrGjA}F2wLU)HV&?ICuSGmS5YqdGvQ>+VaXsKM0@-I1?DZ zA#(We)1&QPA?7CY^Mg$@Ty73bZav9BS{dw2DzZtWFk7>;rmW0G53i%LDP!+s?|V)H z4aBTLR5whahDrVkv5^`se6RU?T( zj?GSzv(X*eVxR8CMTln;N3W?Ah#8hfI3$WR4~B*?8^hwPuZ$^L2?FDFZ-Ed95B`sv zv7= zLEJ>u%bFkaN5WDFD*D=~qS~P)U%!|-HlRXHUo0Jf0D=w(ASa$u(*xvK-H&Wl%Hs z{YU?>andMG!x<|~e%3#DUcU!Kk2($Q$+#?xSAg~b%q|KkmCB;kC+nsPrZzx%3V;=& z)`HLkZZDxL_n4XwF0v~Zl8_=zZN|Lj62g*U@2lsxd(R|HQ|lCs07YiHA-I~ZQf9iq z`^2FE^2yfdv!Y!PU4e>FnWEMBL^1OzGGLDYaIFv;Rk0E!4GMgY{9?k=9NA}=OKPBM zS)~}}KQCth3~m6d6h&q97GBj#$immoD+`0#8b=y&y-*cW+DGYm#w2~DO(!rsU@Ag3DOFdjgEgsnXp=7&_+ue>e z+!-G{Ht?jbA`*TwuphT>?|a4cK{Za?%&g$FBXrN^W|m-Gc$~1I>ae?w1)64;~7# zMg+yUFV>ai%8xXhCt#PU;SYaOK(JK4k0BQUY&2Mz8@ePZPXs%%j~<;mY??DB+wOR} zmuje)J78;cC`3I1Z`Rlt<1qT*Tm&H;oXZBUMeXInEFw=}Rn@evvI)*ymqbu6X!T$X z5vg)wPMcJ;gPRyTIpe*~@Blwq_I)5trt(Cx;Ef`G9P&nk>`ne8{wViZqG!wK7+*N0dzpWeve2hc{4Uw|{Phvt#xUyx|C7rk zWG}X--TLr}vxGFr)VT;2=o19Bc*<@#+ z`S|hoM?&lAa_z4aK(4iM-!^|w%{L=k)kW@2e|F@FWklF+{3p}{*nXHO?xvZ1r} zQ%6lK7WPn2$e#4gx%8ie3;IvO<&@8HmDV^I9y-Z!wZ6KGZJ+{IhD`}6z+YoHwV9ZS z@Ms)?-``Y`d;)O<=Yq`gzkJ#7$unQ(p#8#^4f}|==9IK#3_Jb4F(~w~pb7Pu;){q3 znziuECP$A{7`kZv4J*Zz#J9TE2WjtuosMKP^E>fl!I85wQ7X?gynST1BhTR1^|kj6 zF3AE00i71W%0Z6Q{ut*To<$W)*n9qp|I?y}a$8oN$HdObmQX@w9jkr_(qyXi!(7Kj zkiiswSh1`7s*k%^n;k{nt{ z6KB!dIXgo>szOGFnl15kawg@M&4~bI#`vn3cdYLYZm_=gfpTHu55a8>G2;75FQynh zP4PR}5{GOz%8{iw$fT!QPXlYUEkPFYgf%Hm$kIO|Hh+h+Iv&i;)H&RXO_$5*@Xp}X z2bLM^X?|#HAz-bw_whvmu;)p}Sq+wxddfzNGM?&vEevhzCp^(dYJObZiv{bY4nDhT z+;I4sBQN>HQ1|8$cK<2ZDbkJR;zIR#6J|kgzjpHmeB3y9^}b{9F3JZO!i6Z7Wd8nl7%vR{3rg>3JDYh6 zagOUGT!s;qh4b``e7|toNL-k4ANhC}%Dfd{1BYn~#($6YFwbZE7k=A1FOnQCw&x#w zTQIX*?on2)aEZm|`AfiHBQ{Wl{vg(ZS>QvD6Z)CF6OXlH09EieQ-Z#HJ9Dl8xK)*= zg%8`|Zjm?yt>dCdQ-p=1P{<)*g@mIi!od9v|gH0gfx|hBtO7Uz4?fde>gP83%I7%%+GBx6<%B9 zdx!P5GX0CBzoG-K&_bqt&i)1=|10~uEf(Nq`t;~qovFquDK+E?{g*{Ya^A>HzYEF& zlDo$$F!XkSKz{+zGs)B+%wCcxcuaB_Dn%3w2uL9zAUOV@d)iMBD1@}6@QPFXCxZfl zL!}h43zO)&?f3aCG!?KqG$A$p*Z;ok?N<(hb=yHXNQL3I*=gBGc(*>DSw!2=w{Pz; z6m?N_#tU)8KmZk7XH=4t$#Ly1(t>(B(I3?UHyqSh8lhi2SJhxj4S z()EOQPo@MT>vca=Q}&mTXA=fh<9|#TqksuR7&c$n+8@mf%Vhi?Cfs{$6(MFaj!@V_ zk#3R(r|c{&Dx zbP)yoT1Mk}&3oSm4Eedd_Kb0S!@yqD;5ppe`Y%v6|LH%17hZzyvd67wqvNb>WF~8Z zxeW%@1f=FOP=#eve*4_VHc)Pgx!jw@?UjB=e^?qde9KObMf8Z3_VU~7Xj*8f3QJMLdC`0CJ zLD&+Hsk#26cyU+{wv>B>CVvdZs$ zW#`Q0)zzAKCNTW#vMaXhCUfUL@@@TQyYAy(`+5Kf@r)vTLn%yCH^#coNNgFbF;&Sy1t!|qpu49s4H^;KrYR+8cUN6%*FWs&F1ZkE}A zw&=fTHOew-*@7~xzggZMX8qk7d6r(WE_3NztV;gLEi%KESl`@zacLhHL5R zFW@OcV5CBciQxYA>%&lU8eQLPC@Gyl0XdyPZ<{7anNI&thG)<_#n@l_Se;e6+nkjG zq9e)_IMaV>^|7j8tod~P2Xpi56}e(VdOUsilG!1Wm8{@ELu&w5dQ9VYl+{W)PT~=y zW2Jws`|&SH-5hf%Uda73;|5H3Sq$oSZxdrIq+MDs#ykaY!J+Q|q<9<W*~1LMNdRaKVAm#%Vu}l?RR^y%mD0rk3Jy9fA(X@C zIqR!4Fx2H~oNO9u@%7$LYUDOGi}#jKxw?wsKzN_a11+jDl8M5(080J$Rm zL(@vx>U0}dTKP|cH>vb*dUw2CEkVHLZ>|egmvEsxteE$l(#f%vm{2PPXc(vgxn6J7 zQ?&*p#a?t>J?*61M2N6zA*Q8uk|u!`3}ATwli-QHg2Q@^QVa@xHQ}ckR|LEZ%kj#A zWUxP;cSto5mZD<8Zk~bULqKs|7Q4sO5v=rIedXqUU)6)!i7FNVY~kX-@@w#gqar9o zrNZvO^TWk=HX4`V$3Kv?eqO?ehc{EA=O1hnW`E)xOTOPD1tSTlJ$T8RKyk@nA+(AZ z7-jJ}F6Gvl-+#X}I(TUW(*Hk=K>7km{jFTsA=uJ>JU0RjSkjf zeUjsZErd5O+uU@||D#pk%9P2iqSC$--;mhpv>Q;}4I_=ypQG(ZRJL551vX-H(?_*W zKTc(AcC=(Y2^Qqmv(dWRTF}mpPTe0l0^68wUT-cG4G=WO==R0ND`3Yx4c-X&ro>l3 z0vVdf4ckUdL`?}xVQitsjXx~GvG?cKEOY22M!F+TM`n!(V1#Js!TKH>d(Vd2Qg^F3 z5=L7$JITe=oA%2O=48W~n7wMw-QPk)y$o}S_r(K-TSJEI}$Jk=E(xo;HQ<-PEY%#0Y>~_g}W_fkb zc`kL`WypPZJrw?~TY4Znm>x2psu$Usttcce?-pg#p245)!|b- z!BMKzBG%Q$$L;>_M*jB?TUj<}q5Mb{irgiq#04qQfM6ZHCNavXAmxqyH7UiggykjXf{CEry^K#zg>6|6+b-4B@2-|`xeyl`QvqQIy8)m+|@ak^bxbsC≶ z`i09$bbWC_dH)yN#QKJL({hvYsLo?4i(yR|xx{?aLC`1q&9}EutENfqvEi9M=hP3j z)+*@G%i5>iC0 z9v&B$8NM$>8RsD)aMYeMGlj(BLz<4Hv5$vF*o_BEvn)K+BWui3G=&i6xQ!BT1TTGA z(5j@EHHT$;$rU)S#|&}B{@_FX35!Sb?LfueH0;$r#?`ih$rZp5&TSGRgOKxA-by$( zc68w~B}+C5hmqxq7M~K2Roa8D z0-%7@7m;p(uOzF$()5_ooBXBc$fMm6oTNMBE^I}Z@~;N+dpIs!M5kP3Ci#Z#ZiFqp z`yDd_DMvcLEGd5Wj^Fk}C{xOw*a2v2{ZdFW z+CX9p%?(_a5mv(jGv2D;v904NBZLxyLW9ea8dFXm{2Q>E9~%5HbpAHmkm09rg3rmX z3O=Q$k3TgIUF$$r>7ebHOE4X|07Wi0wT*)1;Z^@jTd!|WY5|Gx`EJL=;lHA>AYiWUxc|j z+OW^r4E#m{a>e`?1b`KQP=Uace=F1*SM_WOu75{S1Ax|9X^e|lI4o(tW&45a1AhZT zXW%q={E0$w7|vthA|y*8Fx<_U>!)Pv50V8$0R+uZra)PNlRdlD86B_`Uhg#C_O6GLS1no?l$RWbnqxikM!Lhh+zkIDDXCw7_{Cfc$7`Y7Y z4HeiQS?MVPpz1%?UB=HKV$;PaZYoyHQ8Y9rp{TDGzak9(f2vAhwK0JHOH~@O15lNI z54i`5wGqb@!R%A;`YL=a0`(k}{iOLof@=WwQ6x(MHFB#Dk_<%V2W811n7s-5JbcaI=V* z+U4C9CL2t`h?v{g!DdCk5$OHRiZ@09`>DVRHbNt>*H$L+A=g&jMOK|^^Gncl)9QVB z9@7>Jx(;P4&k+??-&zgBN`!dc1>$bBRlPw3xGmzX^>52$UCoRWDjX@Cq9J8=qG9Ou zs`5ZMWoyfDF|cQVe(Oa!)tjQVLAS$u_W2N?C^9QXangV_{>sJ)8!WibD4zCSj*XIp zGoh-mv~#cX6?#5;uA$2Q5IaBEG8+&G^k$vwv`2sW?I2pmMY%3!nP99EeFiB((UM~F z7tX||mg;iU*|U*n2`69VfAn02U@DT7;OUtHfI{jkfO+deTgj4h1&TV{eg&C`mwS_Y zx5c3-ok+9>`Dj3aGC;#~UwO03_E--cqwdpB>m6(n4RBTxi0~Otu$tW3F?ZIl)oS>u zNqrkmO!IWZH<9~bES3UW}`cx_G4LTn3;_RY=2iV)-OvCl7;^}-) z%@?bl=0tT1P-DErZevNpqpDjjN-3dpY)>dXH=Oo1d>R7uZPv7nq#*|8Rj#DtcC5DIA5W zUvJiOoWSX&WypPWy6(0%j_FcVoHxQ8d}h!e#2h(({6O80!NZLSQJ7f|AzrL0`$?n8 zlY&53Fq+^}baZ41oo3gd4rQ-pbE65;2Fw1IL47~i7*7?isw_GO@M*uu2Pb0V$?Ugb zM|}YptKOE^k-W{y?rWv^xs)fx?wQl+=7(o5Ci~jstTAA7noK$S$D%a%xnYW&a6j*tsA5|I? zT)7LC0bB-H8J>Gw$-82zojC!Wn~uIhm7K!ZB3%xQbqdM}Bwc`f3M!sLK7*kj42gM7 zp~C{+`BJ#luq`j>x**Jz*UN9GtQoC0tQds9ENg z&CGzzBQ@V>kwrFH0H3W&y_)}9>gO*K3y$sQo3aKkNBv7SemJ$}r^&t^l7{6?Ile}< zHEg2{`bnZOJ#~%lCN-FthaAaWy2SVy^M*-*Twgh|7#GfIeTO|0$-q5ys}T z4~T)!Q4?EF!o;msYBPWOPq*puj*Z&d7FO8=q;SXaLnv0~8 zugTqH&y4Lz<>x5~+Gm=h8(pU$>(Pk$`Cv zwZN@)s_!sfJbL?N(Y)qC9Urlq(|{1Lv8CN(%M1lfA;8HRrs zzj1W2BfXL-7lCPZOz^A~sN&LSZO!w)yZat(&`znReJ^8T98;woMZiiF>e&*V3n3t{D7=SDl__srtR zGZNRso~=-Qx9uvm-gtNW`juS6WE@!k)yRH0mS3$|C(?AJr7wn(n~rBtU#5QR8*_!r z`PYP&+m_Cs!OY`^hxZ{owstpkb%8ZWnwYnQdLdRF zRm1O^e@-Ah0n3tRH+I0UW{Wb1vsX2Z;fHCcWhNyn?e-c@=gGQs4jb8Jv+?e2)Tlhdi179D0~cz zkjotTL9D_2n9hL2x(%rC2FuXKBP1 z^V_ujey9U->lSY6 zF68YXXBnSe^kCP-mGC9so#S7|h>8*R@Of^crqj#^&=e;soC)OuaDi2kd@bOD`raF9dihSv4#$c|JZ)+R%TnoHZTsubk&} z@hc@G7X(q_m`Y7R$v`RhBruQyZYEOVTY5z@{6>b6!?;EFa<^CL(}^$3y6Iu$;#%Zmjt1Ee|%AKCjh3!`!ZVjT@;or=o+{`~3BJz8vW z7Oq-vjJf!m%XS>_9h8hGXk-|<`n|HBmh!qey2w1>^1la^ORHSy+@Lc83b!cTUZM(< z7OSqE*1x=C?I!{fAXgXynZ)TZQ31h_1`3#WTX0k*6ARfY6^X>{o5gQNHN7Io7lYTn zVu|E{A89tY;xR*b#J@k+0#pE`y@YD&>M(`=WCmhODFEknI1sTPqS=BV^OrMBWIZlmGD z2&nx^8}Z2;{6{d_X)v<*tq1i_M-vc~DV}-0jM0IUs@Q?#das=5Nnpqc|V zmZr0Q#YMmjz%oE6U0@8=+p~Dow7#PGqyTLx8{7}G1Z?R|UyNcc)(eErKRaH6< zCiEW#Fa@T^jZLt$7>5?Qp5~~}O}(mrMlLk!KRtL+j(_C|&}9=EnWUW9>GhYs&zEy5S^+rByzEAQ`ntSW3(g%6! z5SRF~;%vGt_9|7Odl1TajOx1~_R5AL)j*^)+1YX@SV={MIF|;0Bj$W$WzN{r+3sP# z<<$$H%Jq*FLV8gg+kYWs8!KBFB~<&TkI70jf}*p2?^QuOi6DF~Ev<1@n<{KQPB_?X zy*F`G%No#Ae~Js&TgHy5YW1>?_EBc3MS1eoykyORU;f=ZFyzW<-fg<;s}aCGyIsxg zi~$}Mati;@GlO#bdNiUFOFcPU+IJ6H^DL0|$1t-o)jH_=pRmKI?*9rq>;i-xV*Sss zL+bxW*r6sM>@YOuk6)(#84z~(JK+BkcK9*)H|)?eLEHFG*rCF+t6x^lV3wiV$3Bt@ zqDljjN<%wM*8ts{^40XR{M73Wct$s`W_ntDGA9eFpJJ@#!CKCk`U= zd+IjNbu!=w*nP-h)DpKTKdxHu#D?pj@DXZfN#Nf1STG-RNitB84(K1t*3mqCo7i?p z&NJV(AL9)y{8P@VqL=Da>;T~}*1uH6RTKNX0NF3oYXyKPUkb~JRoUASVmm-1*Zu4q zf&Z;)7Q5lo7}8%0(tm~kjOg#cvx78Nl^!ImEpP<$`X{$!;gC=IwIVQu#NnaQ!hXfX z95yx9BY_qnDgaX$3HzV1iigcUq^Ew4p;^APa$8JSlVvP5|0V1^-IX;E==$#XIsrMN zf^3HpFpe1qW=nRv(~xU+?;Xi_XKPQ`r-U!s)9&9Ha;a2>*_3evOSx zRP7rsrCQIhylF!_MvrIcIHz`rk)os-qIko1a}gyGC0NHKJLsM!YY{^i{@koP;M^rivWzft7oO0{0&NZ!k`dJ5D*~;J#Lo{_ff01USP)8Nu%g9`;%{KV!nvO9 zlbY=w&c3D*==|eciXFg6$B-vcAq{hGqoz#^mfI1&JVkwr7aj~Pv>TBaix$i4dBle| z;JGS@zPv&hR1JK8>4Y-_-11^&EBodaLrD!&BW#-MQjaTPh$9KrV{SHzQXZ{E(0U(6 z&ZD$E-z*|b)@_anO|KtUQ+O1}l2tx@BYwGexWzj>N-uQDD423gQ#Yu4^5lzTB@8Nu zF{T@fxu9vizA3;Ho2aZ@% z-&7!*tf*##p*{*_nm|~AsNPg9--vB^U(OL__*+$&N9G56KhFVOogz^mj7<=m5KiU| z4;jDp^ebv@Vrwju-5jAwERzIQ9&DobVnS=B65p{yg#ANhatC$y{y8TnSy;;fB6D^Ab_oVmLE3! z?HKv1Mt|-UPV5hEavNmoUlQ12n&wFo@-u28aq&UdBn2$hD)=P!)E0xn&?b-QDkdu& z>3xA3$}+F`uNp}^bimYB8(p_bd9pM!Bn)BgOv$f4G^F#eC?DhUUYi~bVhP`&Dkz3q zvH5Ty$*EKB$E<(gI7hUMe{x~gg@1AV@8KnkzrzjMD149@&io(foV{FOdvP6|$+G4{mYWZDe; zmQ%``@o+Q2mNC$5xXI6fX&g$HTTG2*_BjOl5|e3(*Jc}Itpm%JP{wdg#*s*<%4RBc zO=8T#>=hrx;xO0gfKDDB9On!bgMviP$V`To{X_Oh$WdSzS-T>>thJ*?dbkA>Y$lKG zrh&Y{-_($X@Y^8yHyGUu&E}Q)DfhI@#xQLi*a;uE=ZifSTo?I6f4^&uA>qr90t>R- zaFOY3V@qyTL$y)bd9z~55$D4}*UOExs>xSbGi;Ib>11PuYjh{!^lTRBs8G&>Vu``x zT&d8oMyFzYL8>|=gSmVQbJ9elLb*Jp0v@Tv$TZjO-9109T#904Gt=?YbYeTTyeJjq zBCBZ}K`YGy*8RAJn?@Z~M;F#`wpiR}j^PwuJvwgJ;4QgLxDc}sTbm&-`X9#eN=S{; z&P9Zg*WyPL?+qMzXOSz!+_zUBC=&T;!_jOl6F=5UDCLJH7)Rt#4n`i1kH<1D&*(tE zBS-T`bI%$e%dJ6t+FU*iam;I?T=qN<=G1XcH-Gi&YEWUF_>m}W_PCdowBw`lO)`l; zQG}`et$2PkPPn9~@mb(;)yk;a?+D8o|0R#i8HkPLX*E- z@B));85|vb-xW;WAw_QZvp`7^e=D}&y{w6eyz9fxxP0del1t^n@S+GbH5Mu1WJ~xy zluZhZNW!$1<@5;~=hobUJy>U9m`_YBwhuxdgwG`LTgGgyts}bC&JQOGRHjj3LCvJb zL6X_lYwwx`j=U-JJp~q)&;TmSSYhC9LHK?jM+($YuJEvWGPb*ur5iN41Q^?2v-ov& ztR|Fg9@n#{n?BwezDYfo$t0F}wRx;$VOcu%NqCKYl;08Mc3YYH&9cLyq%`919W9j? zY6QOCmUon*$w$!6Hc94f5;v*II+vGKJ4>NxQ#YxJA8MLBJWYr<9ktu%q+t<;{{|s>#{FYk zH$0bvB-{MgV;}w@@48(WXp3wvx-7-MCorBID9JXC6;PR@RryV-w=4BIMRQp2ScP+v z-He+VdblS`hU78sJWrk`)oGB0)TSZO2=~B&A6RA z`sMIb4L9z~0>>~}QQgUL*&}Oi!t28 zUw6;F8WnE%rj&P2l5K$hk}Lus{8ENC9a^0vEG~882j@th7EmG5+&_*aMg52&Y z@XWXJ8U1e9wbLm8DfiEo<8Rc}Hck(f6-J}g$4S1oli-eRK*uW&)E7lNr6&sx%sUW4 zksM`Yh)z8{vHjgUu1NY;z?P%gb9G}&yO}1tS3PkIXYf| zN2`9>!6o_z;=^U*=Fq8q>edB!Y|ngSjJopstgK_dhYJ!08(VX7=i)2tl~2vMI^yzaH8I1^Wv%aw2g9{78HJ1?L>u!N^r;iRWa;S{7Bk~I5zS1u@qoS2vsftA^R ztN7~B)BsTm34-NjqVq>@pF7rCa^z0jyhlo;@tC0~9D-M;vcH5gc91r?Am$)fLJ|{3 zP3mybQZ-$8$>Uh7T(9zGx}99E?dP50%H=?yqJirR!Bax$7POtx|8MKkT3jZ-8*$MH z$OU*!BC%7IyYOXsjVuxSsehu;Z$jI^bmoorfYE~zQMrl}VOP>^|A4$WU8Rj*?NzJwW$q10Uh$u)Y;9(l+982gy^@h52~Mq+Hy4^t*7PYrv)6 zmizLqLh-wm%8Dm;DU0v$QUcr52$|-(#A7ODpb~LHV*JZTE|kd%ddK_VNr9GI%?#P7 z$J&hY9=>=ZGpEX$1X=L6HmUAbOxI3hxH0#FC+*Uk$4B#_Pnpj|;g2m(oKCaKN*~G3 z53TapO72K00X_o!SpGn-X~vCM75=8v}Q0HX;>)T-@vT})J8E7jPts&DxuV*|jC;(iZEs{QwX-oQw^a=Uzx?)S3 z3Vb_>KZHSgvHTL3$u-C?H*%K6a+w`mj&(jqUP`;5Nj5+{KOFO{=6P>`}%;Pw;ru7v%OcldidJ4gT@(P(EwE)tv&O#@vB-~ z9Tb50&IYH32Ktx#?x)&yq8u=PvOVA5ZaS)Q|9c*@;fn-RyfAPc&`bev@dCO4Gy(Wu z0=zt=gs3RNe25JycY5i~l1V^yA*QA5XbR>Jv_5D<8_a5{{%S3XzYFkc!_BGS$Z0NrW;8%G{o^dMm)xsRg;&#^Hd`>EIKY$EHmRR*tG!QT$P>lsp z<-<^=^F~l}qo{r>U{vH-f&dWmD=gae$nKs00m{GRm5`~xl{s$W*3*fUMu;n70s|=W zHkdJ%BVcZ*e}VD=;@!E@JeF{bHSX85nh#QlL$ZIa+tj;2J)-_Hqt05S53HhHa-ZFtK15S8eJSqWZe`^93Fc44D#tmDyN|s3cIw^{!wqk{k4)G>SxBcawZ(~DBR}F z!VdWgA1qws4qv9sXz@Y~@#B5-4B^FFG`%C|+&38f3f_jjAe`k0S?;0t5@2^^t%qJBgqTxG3=`icZBg1(t`&<1=q~b+_Um> zBAMxI4=t5WXuBQlmWxP^M3VMFTUk|b(v&j<)l#vBrp(J&hz(^} z!u#gfU#=W&P?m3P)DO3V>Vj7KFLs@3UU}T=vlnBY`S=OrMVpBeWBAB?$$X){%&UWn zKc>*;TE4jG%+q^MvXk;+>NtA=Uhm`>b|KG53R(GN{7ve~65;Iwj&4O9fd!5Z8sXpH zWvI_swbZR)ZAJ+JL6G%GkcEyMOQap>C-5(3(8)SG3tzWmG(_^zDT9uOFC8|-q`^GH zuND+hXu*V9@COnwBFMk+Lxn&g!B<-86r`ED&+1Eq3uBgKxwTQ2>NeMkm zQgR2QZppudMW{3|Ij&U7+81KcMhR?7Qea6^!GB*C48(&4Shc)dJpaK^@Ok7^psm3Kk9XcE$EipF^Kut3x zLi&o?h*HR~CBBe=#sd%g84J|B7%HpXz#EhlEUCZ&-GRF+mxB=u#Ib_|fdB#f0SN$Q z<7HN$cZR{lPJUK3JGL`;QLiIrXnD>MXA)>ukZ?Bxw#y0z{?A z9Dl9?2mm`7UD49zlMRs~SRRBY3;Yjj5@HJUh;t>Z+AcA1;w@{191_VGvK~1oa^S|> z?+?`T&nNk+cULF|B9x(k12u#g#Y6bt@I^ZSZZg)TO%Fuqivl&&4+CGM|Gv)%w&=^9 zARfT#A&yBC3-JQv?Z+p8p9MfB`reexzlsus!)B=w#Udwvf`9<~|NS~lA&L2(=mT(* zb@AS?4`)EHe%=6-CVtfWxJLA+J}(lzFqQl?CHZ7>v55e?gMW~d(KJuBW_yAM^3-wS_QoGT z{{klu-I#rue%EfUnT14Vsv*bL;e!1)M00oasTkNh_IOt6juA}N_wOe{n1VR^ex~aC zka0B@_b@93TeI{G@?Z4SL9J)A&$mF_EcBZg0u{qem@9-Qh`+>19{&^m*L;FK;QIIg zj=>sN1;qbw8^3NHsGKUx* za(-B72;jMaakuPVDAFgaLi|gY=CBkXAJe`6){mL}b>*RjG!hmF6P3alN5sfScG zivGb$T6`L9qO1*@Go&~D{LFZ$%^m(c!$^pwniEqn1nUn1k^&<2Ll%I_auWGzd><5w zsuZXx$tz=s&!~V<1ThDC0(_5qxwhoRU)|0WE9RqsgY^UEEC=`t2&lh*mw-M1e)={C z%-^g2`9c|(+5O1oGpVcR?RLvlgy8db%KVkgnDq%uHg`4g$VjT&aFa%8GVh#Wly#L! zeYptX)FBA(i+D$kC=sBUqSfHHcPVxgcq>}V`Eze}`;O}@GRL{4%q<0SQ~ZYo|8a8~ zNzE*)XvE>XP))^}b#UfTb-^a!E^V=wl3>)+g0DhvV0`O3V#4%M)>m*>DF+jE<+lz!{J8 z3W(g*opCqL^rUrJE=P@3MKRRIG5dzB^~uqUP^t1Zc0h1`KDz>&v9y-C2~N3fzUTR# zs4DX10wqxjp&AS|%>OLhGv@p$+#hJkKnkPN-+En>>|XpT^T%QzkdhL4egzcn+vt@> zN`GY~$Wrz*2nkSXDMK3wiSz6TibTSTjD17Q|L_PIrPyI)jQhb>h|2pxW1B?Tk8Sb; zmCBy+9s@@B>(UaLe?66hT7iQxIE6`NLOjA=@K2q-QZI2ilVVNn7W*a=wf3_(rW&lu zB-j!!1cHS!mebu0eJ0&px4Gni@(X7>N3C)&v^xX*2gki05_J$5KP%ua8~Td&z=%?n zmeeL)ShZwUO}cWcL%tr88M4G|d@DxfaB{-j6rCiJys%s)`~RhW*CR~TJY;SRLyA!O zb6%(-mHE|y5i(EGCSi!=Zw+tskS|S|Qyzul)4!0UqrIvB5%um1hTx>@%|<2)hAh2Q zv~Cmz3DIZM>8tPOq}duyQcw1rbR>V$+w&>uB_E|1W7r4J-Q~97-hf%Kumh%E3x5n? zBb}L^aqtOOA?!OmowBo1k$&(kW1qm}$gz?)mAm;mRsmh_pnbxLG3zT8S4*lAUFx~> zEOKkjFpjLWcApmCp{B(_>)2S9mWk<9xH9$v^7OFD8gZff8XLrGdPSCgVncO!4(h+# zbE{YE$f_YUG`@bmJ+D=`jTt*HnB8)kSJzU8Y8AgaEtpT6DIZXSfwzdsPPI9?k+ z#Ogj}{FxNO|%t6(%A-k8wY$*@deQ&j69kjyLw0DlEtQ z`#WWwij>r7LNRG*8uKu0?c9%W&OHEM6h2M(qV?CDrt}DJrir$a9dffB-T7w?73bcZ zl^kA}k*5^VC*zA%$HeCifGj%w(TahQ>02^e7+2TJS$Z%_5*P*%p6C4>!UDt|S^hxct_1S0Wcofp_2<8nv%PRTHAR@M4xA zmMzI!&7E|_;jD7Za2*-%VN@c7gCwSt8lt9zEq#MefU{_ zZ^4+OwhgO6YMJj-nH5N@;rA(lb?AF5SCFa|Wi9xR;T4Qqr2M+MAZ5v5^tyt2FO9Td z2C|jfBzfwX5-CRFdKM4DB^A(MsADws8%xXr9ujB+3TDrqstt3b-j8>prlQ(4WY({n zCP_jW#&kXPPhohjA%<{)Lu-fyixO~fNKpI;V82qAnzTFHlIPIT=ypdOqk5$ zA_*dCu&LDoi9~mTPBWRmhGxccW~HQplw(aYd<-iTsTDF0qGiQGg=CiQ%W^m?)QIuz z+P9xTQV{upGlIw8epWeC;f}Hm60X6xCiU7vR+`CzOs7iHE9U_onQ?U!_^}OIBU7@l zP?gDz7ET?8{g6dDS5*l{{(HVkox8%I66#v6X}u<-eQ)ImjrFV@hHB{x>lv0P+^Z57 zPdxU+dlB$Xi57i@lH(8RKC~T=BQ$4)SX#6_#-EO5md{F;;;X!c@b9UjMUR}>F1kzi zADjH0?_jP@!u@-Fj==qW1C@Vzk!(IXI0P7J5;kF`2`D|RrDoMl@gWwUcLlr={gkZn z4#%I^<^4NCXV?J;%LA2Zlsc4_6JXUF7Im-CshN)glre>h-QrZ_?Rh^Q{#RY2evk3s08B;4Umen1V_4gzKd|B&MsA-fB)U+RD`2e0^3-Ik{Sllh5rJ_2EI>GDkpuc9jRD z$43nXF8FsDZ>`^!bIK}N&eF#&q*OSx`KvFIzg1N;+zYPQn85Rhma#iV zq>tGqQJXN~3P_o%4KsXP@_011Y@0uBvOQ6rCvGq`x$^Z>9SvbM z`1XBy?Zd36-;K3DIMxB$o!-#8RnIHDj&TfR})*?X9gDKyY|W*cgIv`}_759mf~w!~)C$ z<9~Wa)J7|0PD1o*Q7|W9jd<~lL?&bxmW?GW?J6DgEA6}XoTXcOj`h4P+TUHDlOKj0 z23lS6$rH>VTKu@1{&8nD*2-@YcMw8Q=VMrA9C@OeeV-V5nC%SEtZSzfVrlvwzH}&) zkn=b3Z2{Q>ad2RBJeghUapJ;uG+ui?yqtt0_`c?=aS(j{{8Ccx`M3Aaz0{+`c56ep z%By$@sKW~$+V)hiyR7TFI=*g?X7QI+F@AlnM)SI9lnM;qo<4tVy&ROTboo<>k2i^R z6lxD9RnusF%ILh1xtRtJYlW)etqBmE`;F=|!ZNlSCE+Bsv-Nm7TGS@29jcrED(!mf zoZB%?u!(v$_rKQRd1QID5*^agbKm?s(;MG7b?9;By)aUWd)iXebq@=E@AYhZ-)#3_ z3%D}+RzB*Dg^Ud-?*FX;wfbF;Q8)@zE%?aR!|aDE_>j-TF~FN|J&}5 z#;-nYRx}{By)wK$dULZF-eQ(T!Unt)<^};c&>76;zX>kj+ zZI$zsWcwv8He{JxPt$cOV5NTGN<78oTYEptW(C8LYT?(AirGz)*pl(JE7=!r4t2qg z#SNm$T1&|nr%$0Lj46#O|Af}Q1i-A6P|fe4JWT!Geb;gFdmz}unm?HSwZ4bv5>XQP z*3Z4`P3K4p#za;d1HDe(MlyNM??Lc&P~u|O`7rwBW!S?e`pk}R3jzPU)N7e= z{g?AVz*D%^*|i6w;?~7XdH=Nd{HK%P|2sfm>@=92GJNyKOah&sIQ{Js>(R7s&J2)S z0}w!n-8n<;QZw*jeimVFDhwp51z;k4tsxu0SdfSrEg+55W1fOBd>=)e_tT}yn2%e< zm^uXo<-LUL1-b+B0D9-mVowD+0=@%!iSpY30ZhaZ?jj{f;r17pj7~s2>`GNa*nwUg zv)C;yKuk!d0P0_LPmmWq7}0aO&R3sr33kNhMc9A3)-&c+?Q$f(rla5cyUR-J2=|ANm`mi$_O0kPOsg2`{ycb_$n zjVC@HTM%x%6u;rPpt%{zA=kFrX!CmmM#jZi|L;tnd*ZV-oY3j4#qYWN`&vaAqBB<# zgA2XiX_{!Tgn!2IOLAEC23wKNDmL9&ESR+J4sZ1YYAll-;4z15r@d=L*1s3(zkZk2 zd9jMW?y2OX*mk9N6pf(qnBKLZzZB>1@O(TF@%hkZ(-gaK^>zI@h+*`)`1)Wj&n5y8 zZj{Iagd4o=O2pbZ#HDVi9&%Al-)G3G9mDbr@`6pnWSlHTQB9f#ekRZKDS30;PrDc2 zI^L%|@IOFgzHqB%mbrsomW!|S5y^u5T%rcOw@7(;V&}j1wo1R-Q&Lv+aAEagi^Y53 zI3CV8I2#A3GeWj)78uMH;-^HiBZUg0Iv-smqj&l??~_uM&BGnbvE+Bx`dfYN8HV6x z#gx^V^gkF&Yp&ehj|F{GOZd-xpq!5o?jT-ji$9*Ona-Z4W7A;8!f?|6$UKlGSrZLV z^Ur4pg%k4c;x$Nm{iy z+3X5s{jzT|*^jbG>!L5F#S#+-OO_$QzULy9JLNV55U9;LoD|I%?9i%MDi!~4`*VlU zojpG_Ef`hu#>v#hpRG03b#YQ4&a@uHv9F2~xswpeqF$Tx6eV_K-VXp5RpK(x|7W=Gt_?P0pj+OK}s8lj52dRmsImw)d6z@~P-H`Znd@8f#I>YE%A= zc)2e*saZBb+0r%1jmIh;)I(vL+D!rOJ`2_e7Y`K`5^v6jhXSi`#Zx|x?W3AP7H3zG zcQZu^sojgIo8#AL2KvtyI`z|YyTe2J&5rWTdFV}}q|TZb`>`9NBwzX3x9{>@!F|mN z;!I>C#SNtVk{7Sn4HaD$P|xhXKKy-N(njsz1}tshMWAiL>FzMQt3GcAbgJ2K#K?>` z5+ezb5~DXxaLXR`ZzF6LOFU8%*|M_pWTF=7%#>4P=Cjil%1Pgy%_8htE@qpU?J}-Y zWGs&AE>Y8dB)24u7cms4_=pf`y658B%aM8n&qu)Nw42u@e3M1^+H=xBu1^1v1o0q0 z@N0d0s&POPeLFLHvdBr7NSQQ0A|GbAfjq}T>IYqh471@`!!7YX++r2!qgUOx3BH!9 zU(QLjW_7*!Yv#ujw~3C5niC!R%yc{XN+lYbBPH=twF+xXOo_s9{MJvK87uJ=;qF z(ihK$_3-a{9;#8isx)?>LTE|#sL2)0aAr0OF&uKVj;*XfCzyv?IvazsZksz)DaJ5T zI%cJh?z~f_S5CMOTaN0IWzX(stv90&!rz~L_V8;sLaD&(zyBBbFgtZ3I~_v0*Htcs z7P@Kyt>0b!)F{bn1=6A$ ziXtZL<}0K4{qV}3k%Mi67ic#~9xyyMSOjq9F5xZ0D@4HBTEnoLfyRD&>3#;m#MN~$ zxXrLB&aq@DaC_jI$DN99xiUJL= z=Jk-uPoz{W*Mv~Dqz)<1o)VVN{~hgaPV1#eZoLiBG0PG$Sr|o?;g5A#dZGZjR?u`im6q<8sLeV8JwHRb4C7ri8yvMUB^eRko zTrl8avjAHtj&U~4%aYpK{?KtIZ+9o$-ri&J%>KZy@J;j@vncY)Eg;Jt5azl1CEBWj zc|O-zUmOA&x@ma`jJfn8$*z0RA&wd=c98<+1Zzt?9*3pa+_%s)b1 z-@kAS#CjB}MN?zzq@b#++)HOUA0~7Zlmq5Ikv2UXVsUYOxXig}E~L1>Mf~<@^Uyi8 zaQAI7m`#aN(ZoTUo3ju@tb$!v(TCsR{byq@gUe)>_!jY%V(*i=CyN^bi`$5KSCm*X zkO9aLfia>%KsfW4q;qb$stO7(G{g|eXfAxSizw!6oi7>@NOr`D7N1;$n9w|Att$F-WhJC=noB$4ZfTA z2pnPb>qq66iM;I3%1loN4iVYu5G(YI=N}1@{)$wB|2E7OY*x~#1QE354DajSd<=kV zZ{)Gjn+zp3`5D!i#O_P(-V;MFXC4y)Som9(+sDo3j!V?xVT6hpP6z^2#1ppz+*r)3 zylnw!k}KkPAgmx*JXI2d*OvW#PZ7SlFu8e#Ahpz*k>5wShL+h8BthhGV5vD*2!Hxb z1YL7Ntg`HV$paHKXRh6P7|Jm6Sm+$Ae&Ago`oL9wN8PD9lP>k(c51tN>d|<(6zf?L zSi$7uVA@m+z{x-|Kx9BDXPHpR>||aLGF6)b-Dsw087!z0hQQ!{Ab{%&=&RDXMa2`(5=YEE(x>tF$x1RMkjcs z-9J}gB+Uq8acoY=G~dA$hv|G1(z^Mkhi2vuOPj95K$|?*u$S<8-$k0?9+?(7ieI=o ziR*{+NO=B$*9K9*L|r-G+gR1INz=BlpV3-#S#i<+_(D(Uo{F@nfk8HaNZHUZ2rZF1Zwrw=F(b$b`CrujL z&NuDd=YF2|UGMkbTq|p3u30nZIdkrP9KSs>L~-_+GO}~La|Trz`iuI!u#U5n{AJW| zKr!z(X>;2Wf@2$qPp75`fPM?17E|Nqw^aJ8n3k%Oo$YGm(3ZrpK?Ii?XJc|Hviwb4 z*~Ea!jUYYSi?+`5z5D)DAzyWPU+!xontwR;{y&_0Y^wfQ<=fv8E}O$B6_t8kQ?4Ao zSAUMG&*wL!SfZU$J0-IHyqjU7C8P*G-Ca?mJOj>$YHi(49G^8-V<9y3`-V!ysfFd5 zz0RH9X)azhew29Q7*8bzeNs@FQg`QH;Tk1;Tyr1GoxAJ18gPwIrykFA|K)7cCPj}o zMgKEc4o3Xk@Lm6+I}JWP`v0QSe`YILR~CKA@|IUN!n+dgtset(XvqWCAENp?>0-q#=J-7#}^oV<4%Pvk?f z%Xe9jx51bg9h$H1@6E8EBQSl7BL#eLqWI}~_3vpq2XousoG#CzKMvfHD@*B!Y39t; zr6u0yR~l+?xJHso%6g^4w(+0kJ}}NsMX;I+D+XBrV_$xJ8H4GJ8E`SlYMN>4ccRi@coY1?bAimY}cuqZw1boS<0?u zhw#3eL~8G%HlAz}SzQZfj-K8>Cy+H1`-4I`!(S*;{gSW~C`VN55tPaaj5z~IZ?UI?Ag;EA6o+j#Xd5f#&U1N-?8V9HI?>{KsNHPqc_BoQb-%)iGRcz2+X}_Dd>_c~P_T2<(uz`|I7SU9ntTC15Ib$sN zvGNTuvt!;lS*E!)kHR&$zdk?Oojq;F=Fjc0jR| zbXI(6s&(j0z41y7N15jcoHUgTCyHR|oGI$`ifQg-RvX}vO`$&1v0%43_xG1r6DzOeQ0OvyJYtWFzPoWJwl zq&sx0F7Ft)X!*^J1E|>(NY{^_q%vkXDT~0bLtk;OXLRq!Xza9bTcePH=|NNd$9hb* zneA2zS}Pswjik6E6kqOQR~*p`L5XHOiIi~T!>nNb)9xlAnyDrcHLid{E*n-UbohE0 zntDLX%JbuJ(Y9jte^~;hIm^C3)r+ z0$a{nltnBYy+lW=WPHhd)`sESgnys(-6G zj!|Cl6ZVy$SEEsqRFPc<4)zlkB+f%pJT#X^`^HTPY0scYg{ji_R(xC;FGe0inRx8}xq@Msx_$hUSX`l#l*Hpv_4ycACy5Nlgm2;lO5**(?1Ri5cIDsnFsM-u!J09p^twU@%OC*-vj>(mRyDS@^Z=E z%Lv-WqXN=E>z6~||D`=7WCgFBc(L7JTR&9uS|q_OKS5(tD~TfiOPxq?BC3lZK~V`- zi4w|#11J#CTi`#K%TOpko49Y>?{NbtILQJ3@+eMOfbhC@jcfN%0Q!;;Yd8!9^5p0B zhhCkE2lu^?;+4F!AiFj<^5+#KAVQ3T90uLvS}i;n-#_KpJ-}!7(Ut;mgDcqoy~VUE z70_p*xsvEZqj0gy|G5L)*Ysq*b8%a?I zASr3UpdWs|Jp$W=ms3|E{$2FmTMXdDh^5JBr0DsAc|?Dy6z=^|ftNwTJwWuQFYDl{ z>o($F>I2UfX*f3680Vt(`Nq>2@aKRiVPV#PsgxK-2vx*4BE-_*+kR-JVNj4azkk4# zsjE=G`k=!M)4|P8RDkz#04yQEPxSAn*J%Lw8@Cn|ws4g(u@L1S90df{Ke$I&0+(R) zgzVhA?o}X;WL_F30mXgxzxUV|rYQFqi1$tXXKXRvUuMQnpeNS|7Nqm(*BM;kJ*>bm zU~0mv+Xl!hkk4N(r9`MM_lmWR1uZpkq;}lz`xI&o+!x!(Wkq?hx%Z(iKtAY<0k=KH z2j7{QMB>K^4dt8gE?yGE*4iVVr?<2H(=1RD4uZ6_MKv^lPXSW|p#)9>l9phRQde+0 zoS;!uz%7$tfd&97ejb8+c?616Gn3I152$Mlpq-GQO>zEk-wcQtk+7iPzyP!g{+GQH zgh#4scvy+u&sM>Nz6q5m4(N~A01wc+z#0PZyCHkMZW@Ws*fKql*+nXgvAnS^1@PmO z>q>7cUR1^g{fp8#^nvV;ct%KIJR5Fd8l$^zOao)?aL9(@w5d4$H8T704324KQK=+y zWyoBQzL=$NB5YzD2{(!?s8BgDv1GJx!c;%~#F@jz@W^AvCeZl^w5n3k^?uN*&tLX* z%c6&=mIw_yqXgMkidaxN5?5%=SgF^!XGfnlFPRT|F{-IX>P6?nM{zSSWv5g9E{i(4 zzHIi~?j{`YWPU8C2kpl0PCBIpp+5BbdNT8?(25A4TFHGi7jE${)BlD1*<~oPH&`OX zgP_n76V_Msw&3RU@58Bk;o6H9g<|dy9Ic!Zd-TJjQi`& zr{h6|8sC?@Uwys3L_Dn6a(W{@QF>F+Hm==pr6ba*aO9gIwxv#hzWLRsIIiD)b071N z@P{nrL}~QZFvjCq*2aX{E&O`S78L(Sch0}^~OW@=*M z#|gP_mY7dv(P&T^%X^5)I@ZXV{0`b(%{Mpt!KQ7U2(4gtT8$>ctxiwJK7QY7XF5o) zrXP=%?_K8EFc6>NyH;nOEYt5g9Vu-7)}#q39>tiLqtZ|05jW6#WtBUs1ulCRJ<|dy*Ea{RX{8uViP{;CPNtGz}5LPng#Ru{nkt+A)easq{=E z5vqzgbj?h9D2Y6>;%-u{YWF8|+>%M#Jl2)Dthbb#!+$NA9w%=8f?0P$GC<_KW*ehT z>b;_Tc(IGj6P0a(gHT&R=cvbRZ0}(K?wMeWhu>YqaSylwer=bTW{L1{l7r0mmcwvM z>`E5m=9m)!!IMyE!1yOI{});r9}#uTAnEi{P4dY?>d0Vbo~ z90G605}M7&7OaPN>xT-ii6v&L_Q$qSajddhr?V-=$!YGs0%o*TfJypH~gUh70&?@0KXd@h*{c z#+RO)AJyLwc=GeYw zynjv$wcO`TLQgUvfGH1lFRj}D2B_$$-0m7PzdB?1Ju{tB5Zq5iJzRHuXZ|7A_jc3x zm0wy5DTPWw9fyQYs!&q|`mGH?f>(YuH%>s{)Awl^j| zd;P!UqM#CmzjBet!~e)dAbPEpZGrIw!>7J~s53QP4hj$q%v!nfUGBEn zu@JPEn7Ag!=q`FCu}o2}S`wfC)^%LWP-AHM+G~ zVDWLxW=`0MxN3`WX61{T=RM8;&n3;7EnZXCTB?ZJdTRf3O1{UCbFfQxm?Qchy=FWF zxi|qN2)YmKO8`K(QHWu*5bHDcsH0p%aOiiPO#Sr7u32I1YQ%ej`Pa449ZXeaVL(4- z3esxB9G)abm8t{yHKzSUbBy9Z>Hkq}oc^jd<-osHn{B5D2~yPnfMO%}NlXe$61fmc z8H_3bEtde0R6L>ME2>Wl@N1S?73U#{#r}0|*o~iCL-R;9kt>%O)f;C?hLHcNHfuVG z|D)Qp2a2k5wa4>zaC`DbcP(7XwiV%}f31I+5h}>w6J-O4CJV*!<#nYLV9MZS0RZtt zAzW2VO!?Q3G&xD5>v~-8N9L2qTw?DNsemafj1d2Keo0H5aD_ z3-ceVM}7Q}fw+P^$yT`1QH`KomT?uaN>T;95kwmoqDq-k)dB?Y5V*=uowk%(N`*`| zLcFT9JXAft2u2&cialDri8=4Lkb>R_qwOu-sLl4nvXD)doth!9n)z`_^3Sv2hEzrn z#iI}Z^PKU++Re4n9t{*~Z!#5@;RW~cTc{)iAXgyp`UY4?D^$9d4rV&w8aZ{7nO<(pZOiYW_hqR6MOQl(U)}AH zBZ^_ZV1w|S#fWxElxc=!T_c2Xf|5zxZltL+{T|+|YeSN4b!kzNcsR%Wqu(=Oj-OB9 zMW4_D9J#w z;oH@r;k(3DW7%{3l#Z5fDEZk`f4)ojd25Db@1sC}SfZQ@;0bm^J<&Fl{XTXHKTEPf zo`V9$yyoIee3yVACo5?tSYJ|?Iwss~gnW3Dqp>K$=v&kMWYJk$gPojkZTZC0*DcwF z^}a=Rn%fNm&@O;q-~+v7l#&tuY8X1OFEmRg45J)+Z&p=A46~IpAGK%@bOQliTSaSJ7{G< zk`zVfw;@;@pRbPcch3@vP>2Q0&k~N<`b32Sa00(#Q8MQvDT7h|wgrI(OBz?i7qTPL ziH#S8)349iLpF8)X*-QQ(7Y2!r4XqjS&4xy-MJh*a)*MsTIb+@-P?^K9!ccd>9ZP50Kg)}lZUjF?d%9BM~x+(j& zwaX3jt1w6yoe~XAn2(xx>S zlE%8Oa)^#k^xfWxCsAZD+Lnz;+iwbUpmWe@D_3Na=v+2i*f^ zzz)Y4z3@*52yi_Rq7h9b2J`3pHB&4igX9DK?=TgmN=kzM-xXxjAeHiG6q6o6@F; zO^6W!1_pfb-P#Ba$85j9BMFKDt`Eg|N8tePwZ|T8Gn&Strg->b)YbE%6%|bo3Y}Js z+RZ9$JX>^m8@mkhmbkHkRl{bd0OypIT<^`c`{gS~&Jq|eVvfLUfWdpg$nLQ>Qy1KM z6v#U8`4ITIwv>3`yey0s?su7rLlPVIj_H6#VSC?`A6v*QvP*C`@A&{c41S;O0AS8i zq+N8qTOr(}UKC%20g~4oa=OY;_sa-%ib=*9mfOT)m`(7SQf~h!3xLRx$x#h5fU*E4 zgEBjyM8z42I@mYd7BmzdmY9Z}7@;^o?nKN5b;NX0PuX9!9&y`uV$63~XX>{(NEAoj zq(qXq43QCDM;pp}pgcJT7Uya({Br*@B98q#lt)+M!+X|ua}OnlTT5Nl&Ag?%x9*RF z1WM~T5A*Ax1Oea9y$y3w_@EUnpz%lNWMV&4Ifg&f7{7dBvR;;#5%(+=of0tNMgh4F&}P z1{wg|>t_(Ra(&1bmtO2ODS&=i0&Sm4v)9@fqg}|JhoJ~t3O)~FDYQw&8>0rI9{DUwy7l|mQ#5Y*_omaQ>wtc(a5FMmjo^X}QjR-i`;@!VzL`I=M6 z3%_Rl!$D{ut^44oCC44kkC5^E)_dFX@B8*BKUOTw=vtKx2X&@(vG#p^-vT5JI2rM< z5a1v~I0*V5v{C&X%UVemtqK|gQ1vyGz$`1{#v4m111|IKNTB$)ARA0I) zrPaWW*@kdBAJ6ns#KK@!UIn_|4u-hja16P{NAG;(l;VwklMM*MBVt5fOF>ThNRdRT zQ`;C*Na$GdGH+keMcv5N06us;3(^rA_uSUH?8G||s?z7VbD zg&20&4<6LHS*8s0AN_YV39;@>jq9iEZ9pp`l&`5`JCtcg$7`#qB0KpYRe?Kt;iKY= z9e0VxH|urf&& z-#qKWQ{xtj>2ZHOjOam?1u@D%Sc{)m#Q1=_naI`=c?@#-tJ}FVMCsb<@+UvJ9H*a~ zGIG1~z`gZA&IKOz-ohI_SM3n_z;n8d+VuoO;APpBMGtv31t6#s{Qjk~4J@yhYL zrGMuKaNR)cob2pjJrD}%@MshgObkzK-&R)#B`?1!Iyf*m{)D=F`ptDPi==-WA1W9h z#`2gQ{W@Y#bz|u84j6YTb;bmH^SOU!s3kWGHwUr0^M%(Rz;zJM4t<(UbM@^bu?|Z@ z`*w$FL^kFStsb(CE_6*K0Ub# z__}jFwx7Q#Qs6PJ?qq3Hn8X3xQru{S6G4Pnc1}85Y%x%Lh$v!WL*5^H}?u`MdKBR&wjou`l>z|w$6L2K>jcdK;Qq7;t6P<+S8{$C_poGC)+wj_Qd~?% z(bqn%Oxe&)M$xXnDj2@xV_157Ht>c&;(__uj7B>GzS-ffNjX7LW@3}Q=mI}&0HD6p zW_=DG5T84A306Az^!2R%0L^5XBse%$|T2gxTZmQ{1^P4c#@RO!a|)jxCFODT^x zrDP-WKjtO65gNnYS;_8m zfl_@vmkJI_t-Xh;?XYcdosG<7otw=xw(_4O4;|x~Rf({^chNq~hq^5`eK}Tf0P&;IyUIuTSXiXPT%^nZ>d`>BEgdG z{g~6={OsfPa6SS3^6FmGj?r=4B=Nca%8qSQ(Fnyv>T6b>_;*nW^(#u*={-Y}SQgQ@$L&Z*m|77jZ zk?cLISrKk;7PPo9N>Sf+S~;ik*(`2(*w0w>td}!;$(3($*~OzVWKPMazfc({74QM!Py)5Ksa%`o-925YC_5VH~3VuN8V(3)s} zh^IH-*YQtPQoEU$nRV`;j)Ok~v+zWt;nNdyBjJZly5uKzu4~m!P+KaSL>sdw(OaaR zGtv;!@qEtAcb}aLyk%ALAjOO$kVGsrqd98LT;+_^!fI!fk3vJ%2x%Vwg}i!hnNs3D z8t9%|Jo%z2$GPvFCy@5A;_RYqlxqYIHtHQl{n36 z;TIJFfoAh#GyR$!=y|_%=!Ci^@t^AGp8llxB6=z07y>Jef+OT@te#!#JRXjzH+MFS zyf>~^BKw{~q=`upDZfY<^P{F??PAYc27zz3e7?@?OZC1}QPV!UuNOC2ZkNhQNMmSOS4eCEZDdo!xm@jttr;teJv&M5j&ZD}( zt#C=Nq$3tb)HhTpseTr;0Z_>|ggpOH$@@|Ugr?BY%<@f(1MP1BJeV&{;noY1@GI`l zr}4w0MCe}l&+n=*^{*RV&ZpNU;&awUp%q)2t+M~=TrBW4F9VA3E|9a~=rZu|#HJhC z#6eIyqEPlPNIw}nCUEx0wNWxClaz)VuO2qB($|^8*I@=z7NRw)R*XJH-H=;p8^@E3 zHJMu%WZkEQG8L7@96|dorEoWM?aMs@-@Sd7ax^{?j4Y9qTP=NGo3NRwr;2 zu8d4bx#24^=8_$RN_CPEX>Yz;Ow+T+YIq?qZOLC@6Ye|hJ3XH`eaHDhIHiojWE+=c zcF5{vEz@BrY@?@5>-h>Q|Mes2&`YJ@Cdn?q!?5-`Z1N&6XE}YoF4_dEg!QhIe(y{f zOQr?lW}kui2|E6PTzr$N2_@dO6p`ctS7LK&Rx~4RFzE$XD&0zFk=|GJ+a72ei?0x8 zXSwr%GEsHlclo!STQ9tvL3ZgfSG+#S0d_gjH4N{_Dyx@j+cXgz1zHF5V-iSet*WM9 zb;H1scriBdA`m667B?Jv4;Jg;2kMWq*j2iFxjhdqC@PE0`W)lD8!0VrKtPV1WX$7m_)nyuHGFX$uKC!m4T^ z|J3IMHOE(^O&Vc>KR5tLBqR#9{%kB4T;$}A3}Mt!oKN&0+I{ge+TOtf$8>3#>H2>u=NKO++j80~LZd_8@wL}4tQxP(;v^(lOLuUS0 zy9IClo9ohnicX0r^xDpJHb=N%bB zZW@?p&q+?#JolKJR&(Ky>Wo0&4!7#RfjL1Iho$4WY25mes?^+OuTQGPIJy6ecj6iI z%|CT-$ycuXK5>A@Uj5t6h5*%D?BvP2!FAEiV5uWn*TpL*9{CJm{D+LM7fCBiM)}PK zL(S&L^Rqj}(Py#j+=6ZDw=PE)7AFrz?j63(g6xK|@sYvsd>bdb@^y(Ir*mnCzV(uM zr%m^|)H_>SZjFwa`Ukp*dqzgIhpm7%^U^W?g+XN)XaBaZ5_;kyHKa5Jl;Kl1$d8)- z(}?B$dV$?^Rk*yB-qXpubIG6eMKtb9Y2?-OXr`0W=QgeroTVS52fWX1@onJfN0BMtCgqgWfrLrC`JL<83$7wZ_M@ z+jQEWNOe>ZoHeuP4TGK!r^9M#C@J#b^|Jq0m`5l zzf@T`aO4H@8;Xu&6U)vE`>&)n^Ugm+17mj z{h55$k^XC?>A_@BjbmcuBMo_ESvRTo)GinI`3x*);HJP>l~2rz!`|?TYJ&SBL?5Zw z6GRh)79WS!8Ud0J2vPwX!Q7{o!wcdPTM&XcaA=oh*}x)XA?x0e*yOAU+m>_PKxyBa zbzw$h_v(_J^emYJD)H&+ySIc82!`7zZBM0tL0*3myR1~xfJ*J{bybC*%p_;FBOE{R z=iW$0oE`-rK@cMR%v_*4aD@zbFp00guVB9sc$Ej#`AvMmA|f6aG+GFBRnvgwwvuf+ zVVE3Ncu6^(L#ppkDbMdv>9`9mySb?JvF^=2DG0WV3Xp)xPK;^JJI2YAf_6IF7m4C= zwZ6)|aVkd%%JFWGm4)^xC01UUnot{%zx=&KVcqm^{N4`Qj63T$eovHj#HMnlSw-Mf z983PbVcv!p8>&`7`^@a3J|V+y*ZeW>%D{<0UvQdzk}Spgu9KD$qrTQvfIoJwkbzby z?8Yw%h^_-vujj|JM6LY#nl&~sW1cp-p*s2_UQ{4}Mb@^Nm)*a1)g>@-^rQ~#Gjw|4 zW-=tzM^sR>#eR6R+GUfRzT&~x<^b`65a3UE^m$fN@S1SeCLI@O-aaId!bk8q$>NX? z%f6nT+G&SUn;!WySD>4OBu!dm_Vw3Sw454zH(7lfpY6+{!{P)kQ-b(XN|I1N%Isuu z*I%~Xhh<~Ahub~APN|)-D%%?k`lnXby!)fozE8FOxYtgZeu)#`Gg5^|!*<1aA;=bM zuS(WKSNcbpnzm;C__`LXjF~lJdC`F{g$osi->AW;9-LELE z96G@T&2gGT5*Z3~Y9+1Bb{cfT1HG;br=n}+9Q+$o%aNkYOUs|*(|xJ$9$ju@Bj)x{ zbnD8D)|Jd1KT|&Ldp_mJ>6s+g%n|PCwL=humesS+kw^|&GX>UBC zzvuvb{DIkuq&1I2+!0u#Y&C1i@OM{AKbn>c4M;zYszGX<4KI7S__GaD@U?GaSjG8i z{7!SQ7{uk8)U?#&se0rONbnib-b;i48ASi1E&w4BnVHkcEy>n7=ck6+fPFTeIh-oA zEDiRFR1SWPfgb@#6jAJdO$ML~pO8Kn!DYn-wIYgG2&? z0s;d98NiyKb)vGAd~Qa~J@skb2K@<{!wQ8Z5B$$R-VP7+E5`@vDdPKX-fz$C#d7Aw zAECl;{+JCP zHewpThVk@Mb}u0mo7*fA5%?_j?;8LD9w1<^6^VzXvI->tbYdKyEqMvLvSHq7Y>~)$ z5V#*fg&-Ahpd0;de;XD+D7?;FKsBDHI9si@2EI(-zC^{_RJ(qO+^6zjfFg$=2 zBUX-%1UJ^GQnW1aZ-zOx1#ytyp!)oZi3*U3j9p?oU~ZIMhJs);Mz>&|<;Yi?2(*0aDm_Tk)Y zQ4cJA0bxDmX{@}0e8k6@zUO)TO4-jdZqN>PQS{#5sdP8j`Wlfa(Lr&y2pM>Dt&m9+8 zZvF2gwa~HRm%w?m?27i55Q@O1K&n90K*{%hqx7-KNUnw7Tsj|T8FNT`5>s}<^Rqw| z{3v=*x1lfhO0R;Jatt5x*0t09R4cOHeLw8$B#fJ{9I zh!F@22o4BBh;A-T#|Lw+FPJ+iEoHxh5z5K}e?U_hh{+F25RM1}=?1M&+r`VRBVK$n zw5jy2UpoW3CmLyPmR)&9R51=l61)&Z8Mw@#lhSp}&N&iil^tVl7AcP?ugKX?7#`@a zZ3Ji*i2d|5deWOe+nk!Q_Ti%xR+Kp*3Sl|L0~r7^1Uy;VZU~kZhhDdVD{gXALMX<3 zy^f!dpv(!7IF<@9Bc_E-!oICbyy?+^R<(JX9T!bQJO?czE`!u;p5`ZfI)tQ-F`v;) zA({R15ncwpoOf#_n-MgMfTS*DGbJTBxnNe|lNGk}M`2w<`lquGoebWSQa+;ly=(a&)zI zW=qYZcu+H-Nrr%%Lf;KSg*ii(bDwf)7oYB#_?6KU5nJX6444#wB0FTO9dV=*N6ZiH z=ZFH_rFLq#FUOchMVwX=_61ec9QGJw@f;b=wT;@^`qkzfJohRJS>sUO`b_ML?ax}CxolxI2i_h#Lw+q-om?Eim zY+0O>dR%03mX)|O*nt}!gul+_q(%=*a84S2U5 zxy5v8JDvhdE$Y^#DSqz4F~!{gz9yw=o2YoW*m7D=>oo@R6A0O2zuLmQBwk`Z%xn`G(W(MrATA>ah##;3)-7(ow4`Ia$}H zRGKYD-$pyv-1FALjit+J!-y~VXI;4H0Ix`6T%Ae06A>B&v7@M2Ws!cIuRPwd80maM zdph$CC}1w%EWA*IMDWiBbe0;$#NGv>t%GK{;0$$J4Vj%#A3W)ew=5{00CD^x@ePFH z4CnT1jg?2t`PZr3e>Sb6j@o(Skh@!A;?x0f|cN6b0aZq`Y1rNKB@k`h0T*rnRB)U%n|uRpg=m6S;n ztrR>A_H?ZFA~)5Sw#$dG*I%_t1Q1?IO3Yl_2TVCzutH00M*CE;+NFdGIpK}R)|Db` z<=<&&ir>Kun#49%8@I1Pi@`&==@gX>w1EbD8V#)G0%j(NIJ>vjypFBtnhwPJLTK;b zT*A@RBDCmQ`d)AD9L(o)1@jTq@*Dj{h4P7%bW%zU>kOQZwWcWe=RyW#rE(i(^3v2? zBClDi5=G|7VPaL~%4$b@K7q&1+wdvd+Hj0dJnD(39v#dPx%45ST97q;p|ohHrAif@ z8+t5AQ61}bFL-7^7IlsjQccl}CZeVU4=81a$$u^r!137KW**&awUo)f+UjGCU1gI+ zMscu=!ep|rUehS9Vuhud%Tn&+K&v6UYaU`O_laDTDQ7>z-wJsw<7bl3oG&Sl?ocdo zDN`AooB{ljZI!v06Z2?`GuvY|&_{9?GB3PrWv0udP%2@IT^6rr{Wbb!JR0THjCcAi zDn%yxElQE-)XZzo=f@Tdp>J1W&5iHdWzC$XBL1^zhGbBegy`71i_31@dc^4RL1Bql z1>V#0Bd4~Chp>s%Ha9jK2~3kM`U4+Fh!=s_Y>0n^uoT~C*a^JLlVzAKjRZylh@_B| zV?OCv#>x@&#}1F|OG$}#|FHgQ=rak>9j>l2g>Ou3Y-T$BX7CeVV&}46t*_PMJI;A* zI^a+_aQY^ltO``*adiL{(b=1~?v`CJ=rJZ}lyWf-|U%~gEZ&z~l$^G~k=Zjnz! zA=~5&!v?vL_n=NhbymL$$cMT{K9p1&1VnOPgA#*5OO0tnqG_~w(U75St){%Bx2^5& z9euiv!>`mv}xqA3q&=adJDBw&L6O@Mq{xi^wxk8WY8ROH(UcXjFG@JulGBe_#gyC6wjSO8FnZKg)}ihX!Yc6-2hNAb|j!9C^w zF6bL0=6jCxG4G67@kvOyIKXRknpq*k?UmLnHZhaNSe$3NktM)xB;Ez$I-rrIT`G+> zP}52dPo{M#pOrsNFz}##_4_DSk;{&$e9y39v5Ck=sopCqqM11*@J;*H)TDlg=aN@j zW(62(wMe#|lnLWb0EuB=(^Jq1sqOX*Rms3a+fPZ<;!?s8z&t>VOf&H8nlNwqF3NmN z1O^Wwq|o3neZK)B55UOyVB7Q(BMy@!Qo{hHa@}5Sa;9pPlOgGG(4*pqGz(()@UXM~ zsAY@+oX9ZiFeH-Z7W6uASJjDwv3Ugw%+!{2Os{Xwl~I@y;=d%MTWI(FOV0-EG?pd_ zD8xq~PrdjCvTFjE1K`T0$xgjCz8;*cnOjEaM-TP4s2Dws;s#0i%r?R~a1a}<2d#H1 ztnEwVLT=I3B%*_my3h$OYdD4FaE;Q1nj!oIomwxrN6*f>@1KiPB6#|SF-`>lywQBBlAub`u^64Ht->!AZh{MB! z2xqxJ6iI0BW9CO8i?RQ@I;KmdSt1RYG;m6sudqv3&;`w^sij~@pu{p`QR>9inXxjK z;Ze+uPe9}UGz{t`zIKnT_3L&dWHGgFW?;6Nu(F`ktIMuq|3@hP*Z#WsY3*0GMIHpz z_S8SD&1IFVWk^B!-BVY2|zP*y9wk0 zTgm&c`?|$i)-7^NI>)9g+zUuPM}jD#1t;Vf^UWCzoC{g3`-;Xg(ch@R8|>&FEq~lNdd!ZS>?L2B_Td&6Iduf?Uz0qD*_jzSk1B!L}e~We7zl(JRF;UcT*QA6J z+9%I4#NRmDZdDjybFIx5K1E?@yX@O{M>73ZPNF4|Hve$$2 zq!O2~5_Xq95;}sCg}f?he-e1U!(%>)RpjVe0ta~CHEZx-Xzi(rCfpnn2Gkhxg!-m< z!53~UF~t;$YFg|hlh{#`RuV-F%CQ{^BQvC(6DV}cn?*uYb(MdeDSDKiwH8h|uj-=JN>c7673zVA$ee1AvCtr$w z(s9?aTOn+hProR!Z+Xez|N7Cgdc@uawwyr6VZl=?lNKA+alAVZ^ka~AN_B}b{$S0UPF?W~_hPE`6H}LFEXR^=? za>`3^*g)w&WC4f2V0Ol`l(0<|0ratGL{gb-9=G+3jqyicVM_Z z;#YCsF{nawtSEn6X|SX*8S%dwCkP6DjYz2!#%PbQwK4G+*8j?ICj`{;S_~9ftNh@^ zqNTxTq|lg9$RObU0fIsRDQ+6sBPgRc*EI~;lI-0)7>oG7&R#a^;e_o)F;=6_qY$ei z?oKF58L)sKVGrUqQ-;5cD_UDloE1WOn$!<{MDat`@1)FkjGgp1N{uBgmg{=0EORPJtdSk5q%* zQs%(sC;rl8IOD><`OLosxWh+Y0lA*33%^|UKEx7?G5xB5+_lMeN;9bpgt0qh@o?7$ zbDs_cOjyFU*c#Z1`CVBmagu9&4+l;9aC>DDV|()&)P>p95A8C;g$b3L znfZlew%IqvUN#fMDv5&wIO|tq`rx`BNEUh&UovWZu4nfvPbr=#aii5O+SSKrFqvq! zZ0A2R9;i*(R5Iepua9c)S{F&=i7A#_2jftUPFhIpE_ww#rw zcl3b$KaFhq8Acgd}lD4xVjkB3hjinSif1gQ#bhQ%ltbRJ7NXU$tkdMQ4os=?oUkxU*T3Y z@i4HqOg$g*VA%ljuPZE=TQI>|I~R8)fD}6~eXpb)_)q5j?^u7wv=MOnq1{n<+lSD` zCW_V`0px;tY597*zk&WeQrm^QGW4}NheEQ7xZfmTfqzHo{UcUS&Co}A%TziYLoCP( zK_LScDX~?Z72&^9`_RFgMVucJ#k@EOv+@^DEGVeIR&mS{dQz?g&ngx08zPC{s-$3w zArsuc#_`Z0s3nj$5+Gy#R%!ijr2n4){Km;#5|O(YWGG}oI#D9A(!m+aeWIF+C!pzvBwH`@(V|rXl0`0Va15+5ec_5;=Ef2f$MVeLkyU zLe;~PK2UHV5Ws-|nL4jv;3nefl1?D+rj^_D?#v|HOY?k+)tyA#|cxO;GS zg1fuB6Wrb10!eUp2=4Cg@D1d?v-f`MsjvD6(?6)1?wXmtuC@zl zn2T*pFysP8n+Jrsc0>x|1rR}j8cWe|BV*EE^lJl!oM+Yq;WQ!xxz4TIfhh$0^JAEO zN&WpW3IyI*_6>8u94IU|#lG(&4u~8N9ifzI)?@o2YF-t+ zYG^m2Mdai?uTE7wxBW*-ww7ONM~MyqHh^y>(OsnJ!36nBDNGsrL zqaS}AacA#dO6p22GW4ox=)y5TV1h;f_trxiu-;aWM{?8Dvw}hw_S1r58L&AwA7!fW z`lu|3P$x-@!R~AY?{Mb3g9b+6mu9y7$rbN%&_uQ$x1P|iAE|$pGN2= zX)@S1m3%;0>LjpTyDs|A;<$?mPBZd)YGRxhWnGy}M@V81T=y@oti$aj2Pn6-{KxU5j{Sh{)|efrH1xaG8_cQ6VmD3#rWwu*?EG|8^qANEUP>)dP;+0 z(0K7Mo)(cC=(jC9u$p3#1GVXJvY{iXV~c%NbC+786Oq{dykyF-P-=&2B#+{nX9jCQ znRpmdVBM^Tw-t+)ifk|wr}72{^H(e+fPD8|;kV9a8*gLT`%Xd8Vw^POX!0Ui%anq> z0&a!_A^cl8nyP>#UM2>Pv}K$&xn;1aC8~1j$k^8*-9;&p%p?JX2(w9@ff4a(tZW4! zGpLte(Bn4(E*+LOf~T#>+iqZ1l;sF$ixMhEPvGqS^hKJ#xV)ylGg3rZ_|m#i zeXm%$Elc4s0XXNip;(8UV|MS}`V0S$-n!Jf$)rAd{Mst%QFGiP)UtyS^V$JNXS3nX z@=P``ac|oV28_MYkmWHrVfLxq;;mOfpF3k+yE~LttEJk*^|1q(2-7i%1V@ANn}aFK z!L-s2W(Vct>pTl3Wk+MxX z3w0jFH!|4M#_vzE5?(}i9eJ4!JQxo&Lr=N*5Q4?8M7Lfi@w3EEqzVr_ZimWlJ3G8q z#2>!M@9t7GOLU&5FQZLdlDGG{*V{XNE0~)Azyn`x*lbVa1v#BbIrL5x%{fooe-Ax0 zv1#$xwz+?sD-d6d>rh#GJ;$qK!e6MBwOq$t0I{5pYdo@9_L*D=2e+17d3u0_h)K+g zO@ynhl~s!c1L&$aJk;bZiU&f0BGFc7Ic{C z8>n^*e(Xk8UVzNi!ptZ!C; zp-_lz+e6mlnW~&ouBr8{?|^ALP$y9{G97EA!qMZS)eBo>UwLW&!JXo`*XL~Q_WHcx zxl1#WL_V#@qoUL$(h@xSq7tq80e-hsESdJ^^dXk++I;XU(lJq5l+${GSsAA7mh4jh zL?l=nLm^Z_fW0!)Z(&KZZeD+_VwG9*pIWqLr75PYlYthJp@u=z(2nx1DzrNh*}vtB zhxjChV)5g>J-;%4FF0W=J(T}_X6(UX4ZTZtSD5;1Qd|{g_G#-Hb?lV<`F!Ml&VgaX zfN@|_Z~FNtOrp)+sh!WJ0H0kvJKOJ|>oMMq?ra?k3Q_3!>Tu$zK90Y^gv9o7N(#Hv7G#zs;GFY5U zto>IxIYHp9oZPDar<|O=CIl!aYd|h~{m7s+_;eOH51WRvXy0DRvP$D_##p6^J~E0( zoa)J$)TR!@ceN>ZaI!1(dm;|4Ff-q;w=L3C)OZ4tc;T`>y^_nD3MCvu9);sR4UzcO z_T_eQmaZ>#>{Vvhd*mnU;NZmRW#=uVZ7UUtmQn#u!*S5VS)Reg_QYB^Oosx#KTAeP?3gov=W=%jGXi0>!9kCr{p1vRjU$CwH% z{xop%esil#4vP}sYuH+`ugSW`aYT0!AWFwznm?{alS{$Br=Afb7__26-s8^z+u%+- z@$iCPyAnk$p>C8F#LxSSy(P=@?Zvr2*}xxn3X~uK_n_ZfT5u?Da|lwAv;_1@s6*J4 z8W3rAQOy@?Vf~+&;689G8ZsI*z#E8%NdY6V{x>CfbKzR`=3;=Z@Da#T1jPSd1X|9R6m0*^)x&`lF!ITRibIu?itlE{y)4xS}kTPy<BRS z`3;+JX^7NYq#7|&Nh|r^v|tRCM;UB>DcCw>LwqTrrYB9?7b>jDQkjvGr=V_uokNKaV;P+kmUQ&cTuxLEiXl*HoXMz!l!Ifhf*V^g0 z+$UP+V4D}FNop@ZpExg3Y4MS}b+0N{u8^8S$yZPyCsJWAvhMg2SIxHfDGqffIfLHY zyOkSV1+y@cb&_E;Ig3OG9#NTmkk4L@vxG`AUD$P7ew3YbR-FjYGxxq_RWhFo11Lw5 z#9#a>O3JeeSnAuOjLj)c6o~5?d%u0LAhmT=ez?&YDziEnp(>*}wSl#k_c&UWnvsLn zhtDdjnasGXoP16F0>}s360(?;dtvku<1lhZ(MzD-B% z@#!~P;=~EnT?xXz>1_n}1QV};2*W{h8YjcFw0sB3teV&)%Ahqa zU^_{qjJn5Sl3Ml=_&HdCH?*vKDiVZepTiac;3WgTQp_&m`9+%ifgiDm$H$8{o9%7r z_yj1=oP^yM(I|of)39Aq##udTmyWpIK)I8mO8?AeP9m<2dp=2ohu3`stJFi(|VCgz{kph$|7Od$pOspUE=D>{>Y?)4;}W zMJT~^8EwI1I8YAgP?{7@*g0mW+U9K8eVL*V@5?LL*a;X(iK~!#$jaSdCZ`1RWLLWU z6y9#5^s%V@GqcB``S*APPV4VppVTE-Yx~^v6-8*&_E6wk?(<7ULyRO}fhsH?ekT?e z;^D79kn;f9ZdYK;E#tC)*#s z;`9nL!g2Kdf=*fXXu?>HMNJJ*z?Ayifr`CijDuBHIWB1`0d?L=ZT~2azIM zPHAERMs*l|j4aRgfTs6o%cfL@Yes~I)Jgyc-sr4O5GN;cT*P$q^Fn`Mns|9p9FAD(Qm^06+3k(Jw?O0wSx0B*aUx;%_$mJ zJSv~pn4aQe&ObU=AWK1u`6Pyw52p}RvOZaoskG0d9^J_M^=H=VJiY>1ubgwU3C{#SIt9~J_toohTsYz5JARv1=#gKsEp8< z5oxV?)n6@JnC^e5pEiT7M^lHP4NTJi=y0EjLS$iT1`3<=D8_h>FqFM0r(S}b3tJF4 zDQL!Mp;cKgf$WJil>I2TfNv&8Vfhdb&s#l*-`A-znLfFosP85+I3uCKI_xVi7%b(? zGa&p$Ro2mRD^N=yKWw8PHb0~c;zjf{zNuSc63?-A*7J6iufz5Bpy}2k(|{f-@spA- z95E_&MIsD1tiCLm3=#8sLSMQ@5y2;zTrqiSB69UVkSFOQN8ic~je(3at034Zr=~Pi zJ}+UrR|pcXSF6|F)!+un;1W3Lx5A*kZ^e(n_CJ+yE!CLsuN}R)D|iRXRT8ii2952G zJ=JU-KT*B>jt$!g3oU^D0wEJ+ksyFs8j@dL3#X<2Y(v$|5QHOtnKE3^=XY>Sps8kk zAuvBvGrl07(Xc!O%lO1uMR7ab=c22RPsx^+*P)@Fw%xQZS|7JMxqe4tEqCjk`?K$? zbgk*v5gv0VPq)e|3q3BWy_A+#nwyQXO11zto#$SokWq&a;@VQLb!*(N;S^<8O2Qy# z8aZ=b03&UxI96{-K^)R&r=(9uZ!q1b8WMxKD+$Nh>ipAyf{RHh3HpJ=iSGHFK>EZ< zw`Ho)4NUds0^J1^@f6ke?M|Mv5EBIAzPy9EeMGzV7qpDN=dGWg7)F%n<`FS+jC<=p z=G*19Ac;%csZIG^(C*r`Nq6-|8Va>M5O584-P|Up=y0#!gYPEP+j!NCGV7%jCgyp3 zSPqPlfU46SFWl=mI{5fg(!z8A?6twIxe<04bu2ngzQJH?xm#eli21M`$IWW(&9Ue6 z0P6oRvc3kowno|IEBC=>+%~~FCC(iBBh7b@V8{UVk(sG(e+)flAZ#FbABesn2gfHL90@TFK zqt#NpuWQSkv+_(`lC<0QFENSW0fUzDBgL}x=AXsG>nG02xymd_4V36F%K_{qMpN0l zWMyC78y{Y?2#SkO6!Zr$K(k`QY-6LH`css?qum@0K~*+9wap@!ZFA@zfwf6*)MJs3 zjrc&E6Izn~S7F(P=kG)O$^W59&jzle+gmigOda zQ03Xtrc14L`pR4@OwR*^T>8yFOYD{)j&|gnDDm;<%ZJIT6QsFJ#r>axW+%>GCi|k~ z>v^ce=s7{ydNNk8Ti+iC_YC>l?jHlRcT5lFYkfBVYl*#Ldeqvlgl<*lx^K^W-6hDr zl zc{-OeayI|DH1bhsNUIn0g?w6f)!xS7?wdfK%yb z7>5(N9m}KC0TJcJ=#yLY5)VM;ssO@G`}<{(q!~@tVnF>!B%3t_B|%nZ#`AM>75yZ| z!;?l{%$U0n<@=;XZ^(N=#zA(1PPKkfyrOFYK7e3`n)G`AMKyG{fFAs^bLw8FC_Z2^ zi{#Jd0p_-(;)f^b`+7bL??iG4Jnt9w=N4+^u4-%cA^VqUe@{zzbbXVyBT2mHJBf1< zy{xNx<9BnZHz$GNm;zNI&{0>OcS7|kFE(G)HkOW|tH{p_-FpN5`=uW0mNH_&#II4? zp=qCyrs$I95Ps&@js`Fd-~_o=q>w7i1h}5;d`vxt+S#0BWI8fhFg>DU;Sn&hh+kb) zG9|?2ra(iIb4|6|h)kq3*qY|dO}_OvodV0XZGz}7p;*u&bJ+oV(8v$+dAGG%T|9A#yQj}-j=@gV#Q!e9u`#-K z(^he=&0)^6(EfsCw+K^ts2~_gp;Oc}M>^%FVLUiDuSJbQq|D1Zq_ftf!*DO~sjdb6 zRo!|&OktI&hLJ`;2VoNwEq!^bpLsXIvtNFf@d;b&EGKD%v%U(dK7 zi`~1`s5B7IB<@70k{0o5I+%|&w9u(>#16}<%PNKAlq=~i%WBt|=Ftup1f&46m8r*5 zj8iU?lC(IQUD&r`zz>I;CO7_iQ;sjR-Ct|G=Yp%U* zqLnVg!6D)GrMMiBq$t0b3pB@$*kPK??z7f4B&B!;AZpC5ILUni|0-)wL=)Twr3vheyd-RcQQ?Oc3z^+IVG=kyI3kl~hk?#WoZ1+y zu+*-@SO7h?d+O>CX|mhuaXF()XA64y_00p;cCN+c%nnvpVsW8hA&fA6x$XcB}c?Hp(mnb$er> zbwkmJM=tj$OxLu-(~->M{KL~ZzT-dgX88HS+shc9+cm*%X^ij*jG~i2N#qCpBXFDL z$_UmL?-G$m$@+qBxg47AwE47dw$ud7ruo?vM^WlouM`sLs~nP#{bXY;x@{c#{W-LJrWq)*o{f$I z0~l^E2ysj8AAJrzp2`bc%CXoWNsxN5S9b1l=X3z!vb`-+^|dJq1m=UwFB<;PUo9y` zAL$zOB?Dw}dz5p92P*P_VSFH(S!mp775dgw2YVq_g@HZ5csWzi!NZMS$>AZLx;)BlP~So%F+V{aQNLy; zS8{GYe5Ta0pciEzGklJyd{kxM^MlI#gv>xn69OazL;C}wKAPSQ%o*ZkIEXY$-%Zv$7^}~43Cto>L`F!&Cb8N5V!A5K;V5$qOU=R1I2qB^%asV(B z*#|2UEc%NZij%lgB7>U$fA;;en7jSti4n#<`Kxs!hfD{{k_VS#{8esRvrOg_lE}+e z?#4miM0)Xu|82TZ{7=(meUv{di4I)b2J1OSSkK$R%}(LT`gXxSdRPX1?nWc{es$L< zHz!=^b7_ciAumFJ?h*qo*HA4&M*@z0A(K|Vl|Ct;`O@*$d^vk>z5u@eZ_O8%^~hi0 z4N})Iq)ztRAFFJho&c59Zk!ug81{L~kgj>iaq-1HAqsd-;0zxbe)8=2yu$be=+u1H zoe#40zw6?+@pPQC^!-inoTEy(#l{m>5M7)0CF7VW zlJG^t^GHssvT})b=8*;hT(w(ypEq;Yk{EMHsXd8Db8~T1&G%mt-?;0GHdrM^Vu>$R z;fomFBPk9KI<1)x_#X?aqP64UJmXh+E0>}FHB;x~0 z6BOd|JbW{-?b+IIs8tx$7U+aZDrzh1B6+2?_iT!chO@D0g4D=g^b#Pv zJ-ZG|j&=v)0o(zk<3kVSI>acN+7`psg4x0K{sMUg;s*TPN1LC% zEjRfy&nUkF;U4WHgE}9EKs@gU7zs0+0W za(bj6lboCre(xVG)N$xNFy4f|T=?yaOv`4q)xgOg60!%c>T-kIkK!>CKiw~7A8N%V zV)Kh=D?}-~(#{Jk60S`H`p8g_FX1Kxdy|9}AmlLvBB%f!h&L8m-+*W%-&aF81>fcu zN4zinu(qiX=Lt$T)ngThRZ4`vgF5;f6n#3o7~pSq?bLwgwbz$3y*w6Lo!58B{Wq?H z4s4*s=cK9EeC3IUvyL3)1>bM(NJFpx?z7>h5OEcYOFGI)b z2^ke9$u0T^KY2DgcqD2YY6s$>P0H`IJ>h3OK6^{H(ZZx@U7H9ZX+KOYJk-|97`yv# zwuviT6(#e%>>jSJcBHhW6y6uuvW8LxDIk%`JJo?(4ld+L1FC8BSxRyyddcEFrYLCf z@R+BYj4Q&{Wfo#Hn{Z|?yAGaOxm@T zP->~s&+J^yJlwkxs#iy866acHn8w4s}rJIFBEyA4Rn1584Ja&z(CJguN z)G`-B-!`@?nkJrj>Ci@qI0>#=B$mI&d;svpxo>=NFUDWKIPQP=VnM8f|K*Dllv>3@ z2LW6^u7Eje2>Vg$xEC{0aT2srkA#@==ee0eOZY67`cNL3w2LN=XHQJG&0?n3BgEiJ zR!-OKpN0++MqBkvDheXL5$(Dh8B)q$v>LuHyRw)M&ElIm zZTJ4(G%6E@C7bD6#9g&jQk}UFMv)ueOn7G2Tavi%hv2%HU zqlI5MWT}K6{?<{q1p)M@(X`XLf;#PBQeCl=BBHM2_lmRUfsc31(QY{FLufzx(j&o;4?a}VEIecw^!d*D7;Rv8;sP$BT32E~3{K(Fnou(1fcCQqtIa1;+`oG8}U6Ni;l@2kysY{Kt>&O&gJBHjp;Qdp^F=Oe3F zkCw}8he43FtHyOq8Rgvxo5^4MF%N07ifVI%RR{$Q2(h;JV_hYQBVh>b_2N3TA$)pe z>T=kXE8>bH_Cq}I-yemT%3zynJ#9Y!bk#d0o6r~7o-ydfhbi;B>yNOxKZL}QsAC-h-a za6My2Af9OLt?;%IG3Dx392ax0M}L#FT=mzLXD_Fljpeo-XGjxXk8sEXjV&R&yAL@b zXS7x)8n|w3u084MlH8l_lea0Xl}EHg%0IQ5yz86J8tD**B~$cl4|Tyqw#^ohhaiFd zfGlx`c3Z<|VhIQpeQPEgy>zNJV8hj>VJLCJ?-o0BM-RNXn8Qx` z6#!Z}vcLtoID5KY$aLn;Pq23Td+GFCIz52;%U96b)%2iT%S>lVyoNfjN~)WIBleAg z!gGvn>}K}0jo%gF{xF0FgS6|Ty1^1nLsaI4ICk31^=$RPJkFJdM9?A*0e>;$YqE3HOnr*NMvEcZy`j`VTY3K_U>3K{-IVim(nc zU9hI6=DtOnkEc~TE+F(!jAR12cNWJVKCz~%E__0a-AOAQzu;6O1cs>Tx(H~#ode4 z$y)nJo;J zN>fL6&M=!D?m(@CM%C%R`=si}PG5F1Q!zmu%FWUuSy?>Bx!FSms4b7R@kxCEnwgR zOHs|U{*wG;e0h;u!UabuRw9mTipwVZh#l7h%|0TTjtXHvf{#h1taRZqg@LSsz^2vF z&aRdOag{}JWUC*t1ovid#u>jvG--idUn@oUDid2Gc4qU*(|-3Uq6{6GzgLX0|2^5E z6CXxNfdnn(;HsT7)Gih=dr9GBW5ee1sYx4&FZ z24{Yszq6bJ-=28y8a~iq%6tIh`shADRDn>~c>5|be*aZgu9H z7W*1JiF8j5?MXY@xwTFgD-CjM8wP-&ou>rSX0g}^UjcIt=5^;pu+Q9_> z>tXOS$oEZ*(z&728n``bS1JJU&(G4uUf4&mjNigY_PevXr@A5>95K`w&xskP_Qgh1 z78^fJ$?zL~_xm^wV&*|7=3A#N`dkl5&<^Yf6ecvdS* zh)Ip()|*4tq0(ir4p|U}PGkw!^bh`mmYL6~UdQC2&Ku=|yKUYI5BM2#_fo}78JeD} z_qOa(xqL*g$uD<8b|%cqyKOq!-(Rn!#Mdwe=0wC?j9MZw8(h=avvpe8l|hd z;^dT{jzo}2d<=;h)e@IcrBA*Y<)Xi-eL0r?B0GJez2j&W*O=dge(T-dwl@cMP%G<* zEF_?nO}8kYJTXo^Fi0V>aarm*-3oGE&AG&Kw-`tMsCVpNiJMa?w>QY^C`<*dntuZt$2mRVo>bSp_Q#G5G01Y+b{i`!mnYGE!pbo`CmRZBoKv$pxJAoBVt z>&Y>1Lb0~!+U-%alse$np`aOec?BiMO+;0E%NU@BGO&<}R&c_sVVTiTD{2lxWKBrR&#* z)eX=MRQ40YTm0qC5?j<6=)waC^1`-nUW(eWNi1+S(dS1wJyH zwK{}y0mdmjmzvkSo*+y{Dwro#UFp0b)K2jv@a_B68m)4pp@-I*A&HKM0an}6m`rh@ z7v_)tmbN&b+S(b}1^b=w1z7Bp|K|MiC`2b z-A$i`Czw*eKHmeX4Fkx71!nDa=|Xc-6-yIAiL?a$0*h;R7h$yRqm4fyQrbJ}Vv;U} zG-Rfap|N=}tV^jC83<8rZne(yb5=Av@HK$!r_4y1iS$Q->_5TTx3P{MM|3Y$D%*2a zv;4;X3g2iIP%)>&uj^=_Ut-Ktv1g9U@ieY2+Qwsc5PbWho$q`QLHB6of=I`CAGIUC zz0r%`Gg?jSvdq$7?rBK2>=EWW%x_G<6ob_dXE>{B8vLoesGQXK)%2Jjac-Y2qUMT(i1K(d2D zL<0Gjzm~Iig>f6)gLE|pupn%E?68jOoC8_niImXK@JqrRq|2F2(*u(O><1ofSX&rf zr_MtXZ*(-ZxY5r)7A)v;FcmjuYRj?H%VwiG9+z+=F@R@j5|?o0FMR994IJ89GvW6e zPa}!KI2_jHYaV#}LhOOxIbKcU4d+Tl&mP$RHG^&H2d58FiK|XRiXkC|D!Jc;jnM%n zEI3mLX3$iY=0_Rq6{f+H-@*-uNPa93p1EzTBe-knBb3(W44VQ z;pThGXq!gKLP5eXZkF$2Kyjt{&&w#-Y`jjS8kgzl^ z{*_@Blj=$OUFWNE-TsgP?I#wZY>4xQ6DE^5L%f502Z5QJ*!!f%uwO<{4YxU4Am1SF zXPaBm)&}xh{(#~_RzFl?kSJmw)F04mU^XD^EKo8$l<0(!1!q>h?g9L{DuPIxP$VE= zfYqOX4*~!9tjZVyo5gJjjuIC*VE}RiN&r|65TOqeKh!(V&9i{x(EN?US(={_BoyF? zLUAAD{};Y?=&sCuf?Axgf`&pCs30L2LHkR3^Yi!Z{-wEVhW}rhyYCOpZ7Dn{jJ?0dh`PQ-u2%)$;+k((A*LzaWHDW|0m5IxvA~@ z?^|@pAIf-P_+;2W*0Kej-2bO@9=DF~(D-`$ynQC&Y<&0Vi^YQYGzku&S8?Rme2U;9sIOqG zAUM8}KScW4Ld*LLn=dP_@R7Ly{wzBxM40~shR!XCEFioqk=OtiFcARk{U1L4t4uaq z=l3-IajSL62?5Ih{65~_Y!G+Ae=J&ApD&&x$X+sXn%{=(K#%~Q3WIB;ICnuXRH<;4 z5K(KK|5s*6Ce{r3uP>{wPHZ;D9V$nlA|Fo}85`_hUsmR(7ET+F<<}y(1OndTNH{~N z`2W^rW$hM0-$9p9tOftu?c;k9SYd(Y3%Ctnxn47QOSdPgEK?iOt)QR9=f_tYD)6~_ z7P&s>^L22%rXmz}xx^K8760k;!b$$=^R|xEzx-n*l`(zm^E#ik{nF7CUS@ch{s^F_ zm#1ZW3s!^7QXRmNt;%DwA9t?{ba;>|c|@7~11Fan8ky4Z^SB561}^Ea*;?P%zVx}r zkoABk=$?_@7bU)poBtvynQ{f3scxEP+OIgW9`t^Kj?wwGByQ3C+vc@&Jv!3(H<l-BZ6+uGQGw8f(wR6YVMJ1o=X>Gi=y-p1^%7yC!lT^Z^gU zUU7VuaTG4!tn73AeeK8ZKB@4*_2{gbDVTLGgAe_;DTk+9gzSW6Nvq<5cg6j(C@!xbABH1fEV~&TattDjy_|} zU8+-1TTGS#aSw9)jRW6%6Z+*N_ao+#*ln;Op7N<|xb92-d^&Y_ncFAH zxgsBUI(-&Mul(gHzdhCT!*lHgdA*}LO25SE$|yvyl`*RWkXl{ve@u{+soz*a??x$9 ztE;YBHk3-7Lr(hH5woORNyz2rd5`k0xWNB#q@jn@2nt9iz1c4+0-pP#V1OjFra@eKim=9CV`lu)kLc2)XMe&|2LbbD@g4Aox)=*i53*su$W zKqR3u&u-M%lV}J2&s0RHiOv+DTe&<%?6H#9fJ-1 zuis{}2rS8C#yjUO?I<`O=Clp5&$4+(xsheT!B z4{}M5X++9ji{98+03;jPJL?`pC5E04qY!BC7^~F6@|1m}z!F&YTLN4Yyb=$ya>u>I zrwpLic%x(=5*ig|crvv<^eJxALY6#4Ad#;!(pVa!p7U(Vg5_9GjI(=a_G}A<~+>iiMYX` ze(C}h*(!3>jY_l%Wo6KAavG(nzRCe5AS%FR!4PFIbSm%W5g1irRsO{AnP%@Lz~qDl zsDziRhdB@l`c+xK2!s{)D(+5sibS3YGaiZ&uDiYo6pLZ^)-Y%l1<7I>=%pVvA?Se% zO<|9jI3T>yL}p$5!a4bwRe{Di4%McCr_|z@h@cXmC9l1Tg|8#3r7W83?*nIn(2n9k7;kLnvjQo90|w*NkcT{lKBfLMwYNim2Wo$>uGd z8yFRnRx2w{_&TFlw8uGO_2Gr;pDh@hIjr^Ws#IGTfrRSdi>3H{R*P%;;TP@NCjo&UBriwC_LlsXApqKIpJ}$FEH=l3- zhd*N6W2o@6SNNU%-H649n}LrmIj@#$>sjH0UGEJs3~5+m>4o9Vq~$&Uph33xk^o}A zB#$0xlr=2(?632lN={hva#87MYyQph+?Mc4uGNK~HnnSFl6}f59t_|S;D;PEPloxT ziFT!-5hJcDT45=?B2>QvOuZ-tIJD%$N~4n0znr8iJ#(Mo9NpQYi7L0?z+zB~}RQd6MQW3kTC<$o$KE{aa*`WP0Uy+Xe_aF}*r9 zWCX<&sX4@%5M)5eed7TER1%v>VB5*fq~V)2O2IujfaKT?{6CW8@eb%cs4vG>mO|uW zRl%W(HPwpgH%&u#1sEYZ=EM>5rAVD%?|C~Q1D~2rThU`+Uu`10l0>L(HXbC5zj;r7 zg1bEPyS$(kX+|L@Xg#QKbJ75DN?^Ue@melUJ|)yWf0tsF+~_2M7N; zWGFs>`d9TIOVgYG7lFm%$F_@ROZ@Q*SmTW${2dmfgyj~A2v$kwI>l^ti z0N!)a61W$r%gaC+rxpTgi1Voz&S(C+vx*vroCbOzKqyY!GpKn2|CDs_(F z4*@bK2C*HqF~Y`cV`>SN;(7u&rz=~8fA#}zEf6fX4HYbIK z4uwDeCs+%H!YN2E=MNR2nyo?ZJqB}Y9Vij(gH@vjGHEcQRi z+BFA;fAqw_7r6FYvR3v^IFC;{A$MlPz|a!N=b-<70&1M2%nPK_`3cOir?&gLr^=nK%Fz024+r|*&~6#37nXn|+& zSpJFt0y50MZek#TxBYLB*ISzT0a@W6F)`vE&c9 zjD%A=ST3F>04hhNHf9Ef2JFKhHL-3^o+BdqJ&JRO+6#+dz=D`SnD{^P*9I+p zhJrUIzBVNf11N|Qiy_~qGT zuKfvl^RQX;1^;z|J{Lu2$~?FaL`Yyw~ciw2(38nb<=H24UN?dgu6~y5*y`tew}Zt z+i8rY(OEmaq(nPO&V=?K^pqFkXPw>0)a@%9#5n>N@)`kFjK;E7P?V;Q%i*`xZ|U#6Fe788N!g zAE?ZmG0aN1WB0l*TcWu6;2P*@jcUfQqqc&hwaawuXU?jtG)%%((v#~G)fSPXAA6`< z`5b5m8E8Bj>*BPE$AmCZv&>LPS)nYCJ;JdboY% z)p==XH=}!GF$&Or8964$O12(29{+^1H8(!ybT{Z=pst z33|AJ$nRTAd}BWHN=R(fIcA$OC|E(j%(qW)0UWwR7Kv(e7j!V_w-V>~``7ho0$bxm z4Y!U2M_{;ogHB$yOv+049VfXvO1!TgCgI*Ug)dt}`D{4CFU-8oW0^9eXhWZ>$);0P zSFb;|qT3fQ@$8iIQEtcXU5D$edU)KHwoY}qAVpi>AZ73pickL{iOnAd)K`iFNG4>& zbK7P_N6XvDPyjB4+2oTbE;%r_mo-GE2zkx3#AFonZIdvVm*0kp`*Cy?{VcHvkq$!p z(<~Dj5T7JKSJ@wGQiM6B^i2f$Bv8IJYbf2b5=8U@w0q)4Kg?)QC{gi9Bp?`@PDFTg z2@KTPu=;n3<`hpd5ewjzwo0fOF^N+?8ev!ft}nvuu{FFg#O%VB(emZ~qWR{=DfBuy ze0!!-yHJ3$tvNmOsnhGKPmQ2nCgD8(cQa^`Uekkm9OF$2(Dje`61F~II@w_w> ze84vQ#aalxjGqsU{5^(jiBj67Nl`hIia8*#Mpg?c3I$7Hp=N>#BN#7jU4s)J=Rs*9ISZl2DN+f1j#Gi%N>)BYO?X4gwP+cLB-bxO0YKlFT9bj!(^30OnCz z3ho5g9PVNEQCGrQN`JhIn$m-BYP?fVD(!O)ZA27?FWA5o@m9ym#w69C*Y*Jl1RRMh zO_zck2ZyTnLP(o!YiRqGqU3^C5)LT6s`tP5>T{SYztRR53Qhq@E-OWRNVo31!CJ7P zajctBV4H4uf!#)u{4eT~g41qs;CZ>)U zLqTQ|*C)d)7(88Y3D!?Nsc3C>tO+(a%S)^gWo>f;(nr)EJ5O}&2^0J5umyq$P(nn3 z;~8PoUz$@LcnB^O>l4VS5L*V+%YQe^3jm8is?apZyt9pQ_zI3LQDI3!SbrOIcF4a4 zPw07nLGS(gLiPM`qT_8{Pe{Vk)vuyly^T>c?1V+Veov4g9QZw}^7-Wl;)DOo)y|VU zXZk4{Gfq+7@5cj#L^sK%mG7|5`wyvEd`2`AOB6E2HsrskERvl!S`N89LcddV+ytFB zl_W#>o2~2QF@JRN3lSqHx$^34g&PF7-wsZGULTxT@>)D0d&M;gKYwf4PD9zZ-X$X5 zW7~Z`Fv=po=!+#ET-86v-p0S{J52H(by?#A4_e^{qmj8>xNSKRbxm+_LXJv0^$YL0 zb$bnWMFAggETY&HI&Or{lHWbNU039haOJvL*Z5+m)q$EtUy?mg$#pJ3?7l!izo<2; zH9B|y;(}49$0ya-wOuuQS*x|2G;r!g6EAq)iu;7x<8DmoCKtTqY-{7j0;*Xz?$%M_~3RO4~9^ zsXR#dRURj}5K66fnB$@-Fq3cr)`bKh7w)VWNNK zo$bZCCw#f0NR$YH6yW>@?u>0?Io-pa`NT_MA(fl$ulww^m*cc-pb1hAME&CdwEUY9 zkcv;kh_2RGvF~sb7zNWb+?1LxY+5h7xb1;DSTwI~d{UFr4(N>ml^-0ywYcPGN~l0) zHr>OzKcAm02HLO@_FF0is3FL= z_cPw_E&HW`UCU_TiGS{qy5G9hpL--+u0I`SYZ2Be#*Zxb6$h=Qr%$*E+ zV40HD@%WpNd;!ey=SRz_jzZO9w1wcC98Xhxv-KpjGzGM@Ut!hyZRPzTpOMO;r~xNL z<#z!|s7Co4hGfU;JS7P2*?W4W+E}I90xB^LMutXl;xXuk;A()gYs%yP{IbzbjHNxx zZqBH@m;6Ij;ceP#nDR#WvY@<+531lQzRJ4SlzIST>+K}N%m2sMTL#71E#cb1U4l!{ z;O_43?(Xgy+#xu@-QC^Y-Ccvb1Si-TlK0(ve|1iM)jxV3imDlAJu|Fz^?i5Sx!l=5 zhu}iylfi?D0nH}*#Vb|o#KC`^A|JX$pfm>XqcR0! zky(|Ae2cKMBX z$jD(3W3l^EX_c%&3j$>Iqh@cbSYG-!J>TB8K<3CK)T6PoQOLj~4p{^3T$mz|tppb6 zB%qKvegZuJ8`P5u47TIjUz#?<0^=eff7kPfKN(@Q?+8<{j3-baqlGW=VBA{DgtOjL zFUwsXC4wzCW0#;c>GMvGg4y1A!|x_jw-i@xI&M zy9aN*7}6!}7)Ve{<-#56n$ogb6}(UGO|T=@T47M7h)ihuDbb8n8AusDkkG?+-z9Xs zbXRTl6|qVO&( zwKA!pxZ%^RXN{N4U~4WlACJQXA5V-A-jlxtKHf0IwVx+GUR(`y!e>;paxXep&rDWw z=Y!~wDt^gnq+rx#Kas-!d&5l?0q;+9Ktqo1N>mb9`JC^N0j~f&AUbU3ZSF=P&l1lf_oJw?Ur&o7 z&nv^qimA0MwKeBE`sLRB+p)%d(lMJ3Hi&xkevv+@bo+}UGi5nTdRlq)&}myMYH0>} zT>zTVT%9SKd^`+!iyRHrcN3E-y29k#R18J?`v@3ykuNUy5dlTSG*k}M8LZTnE*BBg zD`>@|r4(_d@kpzPHc75wtGj0@Z;yB_eKfq|0LzbeGgcv9suKqDO5ygxm&SQ!jbK0W zfF6<7NBL~+z8yt$w-g1gYs?9OSR$TC0}3!#=`aItz1{C2KOpm_`6)hkLPp{}@6kEc zaHnkSwprI)=nALJ376v>=Z4S6k<{?-Dd}@h^a~{xh3&9ybA?v7{q|E7=Iw0WIXFBH zVzonm`dLHGSXB_G8EJ=};$G{(@%+1*Z}e-|CI zITRh;mg6m?N}O0C7Fq_*KnDWp^I;%@2eRArD&bt@_72Rj>jxfC7tf4BAy1Ob-IhWP zczS~jI7!j_lR*#g(aXW2fDC+TG7wW9r0av!4EMDR4VSZLJ&J_7ipoQ-r@2~}6)+5Jj=fVYU#}be3d|Eox3xdXs|uu{DM9?{ z93Q1XvqCNvnb^|Lf&|(^yHx~br2dmU9||Iv5RkmwX)O2D=7DOmxj~exAls8aQsU%x zKMuAXaQY|GZYVqd7NMsDDhX;QLS;*6d&iD>oxo=>FscmX2m(Y{P>>!zIz(6zUtDfr zA=H+A1ZDSU`s@P}STFt-iKXhDO6orwA?Rx0ay=?CkIWeu8#2mNEEo$!ax%5!FA8j6 z|NOI6h>>@55*ZlKZNrBzy8eurppnDC_eQK~IsJuIB+rZCjrV1yzvhUDflo^U)1#0DJ5`GFF{~W<6 z-NY+8wUM%z8da=8Sop~$maGi4&itkIke5MO{G>Alz=O`?`SlZ;EE*NItewox@5$pu zSd=>js3i{bdkcb<@KMFU6#SH;IKmY$v9&fTZU)^H-Qq=jV-1pv4EgM5k_^_2K7sK8 z$$dhBz1b_P4_$L(4<2chlC1QZ>P6Y*%jgT|i-f)cZvRBv4MSo6P|Z`J--Jq&dO-&r zAC*U zE*mdwMn(0Q@%D^&JnMymq6`#$kZ9F)(v(lyXTlO{u1xT(U8~{Svp_}@q3s!SjynkT zBEM$CsmZNZk8dS#b`=Yw5D21mH%6YWQ?YJ}*`d!dLY9+(@=7PYn((`}b2s5vp3_|? zhthB}BFHN4Mu)Duv+40XJlCdi-}bv}T}OCp5*45%5^-M)&qdSMo6E}b3nT+xbVfRP zU0KCkQ^Oz_qabQ{N3sZT5+k%)AlI#Ny;FR|2TPf^{11BRhU%|_QLez-fo!|6uP$KQ zRY4@s7{iC0*Iv+jC+#+`Dgztk*(L(0;|A?0Fc;PpI+@Zc5cef`$NwCjRI+ysL|1x@ zghq1un^6bFMi+x;)}nU>x@JXM@+fINX)UcKWT#gZ>)(hrIHgm13ha;&wag9$4V<<| ze3Wkak1@w+nnv=^rv200$cz##9+IfLBxfLAFQ1;AMGpg;U(S#~&eltwT4G!xy+a|S zT`ayIV?OZ}6=FmS<^@J2yT~WEeY5h~Us;ak0(7p3TSh1l8%>>>dTZ!v)ZBAdo%eX3 z0*t$Tzpg^ibcq4YQ4pbsm$yPHXi)f}r@w<$zz3QN=vSyv4w(|s$EGqLwyZwzo51+T z^HiTxO!2w;MFj0bRU|uP!>)M8f1yyJEs;T@!Aa?cWHROb*1{?JtyF z4&1R%$9dxx!YKrl9Tm3NxET{|pJY4&VMrEPhy;tOp@;Bcl`BPuB%*ur_HAXf84q^^ zf{2w0lMG$aE3^}2mIPnV3U8eV>l4L|DqP(NM7G9ivgmMAiHgymFGgp85Sr1O3zr-p zsBZlGJF>PJAis%4v=uZBb!K`ZFO@AfiC_{2UGK!Svfg-|uS|<%Hc*6BNcDDy1sM3q zXf>4TXcX$0ULTv^2erO`56Q}-E#mh{e$S?c)=`RhNNW9pAn<5A=9f49MbWiVni&%P z>of`UC1tUd@OB38u?Y0oAh}e!SVoYw%EjSZ8neMRmGW*YnT4Qamz92q+}Fn1s{yu* zguqZ{qzqn#$?Y|#wG+XI;y)9p{gox#TfeiFJxq^ELKjw`Nt7-my+lK7?yPujM9fCd z;Z4?69*X;1{iLUxC^3-Kol6xgUPfN_!3*LTMs#HlE!SDlFuY$ERllWe9truy{FV8R z*4r)MZ9wrt_lV=3uCl|YMw(SWzOcac$*UEHAOX>&fIn@{Ya_48KWR};gFMg~`2d9X zJ4D>I-}nP#Nb9MS=e74<8#Z1s#EIYU#2jzeFQDB$ii3WrSZr+D4A{Xj7Lo9aJf349 z1^Hilk?(rS$Z&hXtAVWStXMGmz-5=g(HOdmo;U+dFfVDD52Ol2<07*jGT{NyogQ?q0}p zh)D|k(BP$4VGy}%o&UWWf?ndB^QYlOipD!4!iMnYjF&G6ejqa*NArM;(Khw zhNO@5knSRL{iPPReJs4}=F@ABk##sFVCjl-2rGKEmiz zYZg$kt)o~^^QOgA!Pv2r6A%2T&CuhTQ%HgTmT|cCVhhXF6iELZcfX=`s}}7J`JXT^ z+Bv>h1FDI{YkQLu`8;}$I7%ge`8QgFv0HGa+m-dV~(xc{j@NwVGanCH^8ZesHMT=4W3FZm^1W%8g zrW>Q84Cn^Qe6VZI)yk%ORY-V4SFYysqgt65&m2?@+Ml>Di87xB>_L6$;a^9*`q`ur zcmKw8*7|f7k-}Ok1SbN9ggkItw46n}5Sj3w;9k8jV8VW;$x>BHIFa=MH8l zjYS&>%mQBlVc0PJ?Wn;se%@)R!LvC>qC$O~)FZ->9*^pv&dfq*M!@d%azyvDRugPx zx|so@mMeUv+6m69j8M!4yg_Lgw~Sy3Q7Z0(1JCa}{kF0%ZHLo>_jLCiOs48clgA{FN>CzY3<0_UMvu6smyLN?T z=;#bK&Sm0@t+9i{?Kvo+kS$sGlX(?7k^8bQfhCUxA6&#^v@oR;B@rZe7Pb4;J3>@+ z6zBv)o#4(+B;STWY=4c@J8+P{v%TsM9-TgN9V6g!ffok-jED(A$k`!5dEUYekS}F3 zj&0-IaDJ~?zPZN;&!BGpG3h(bUtL&1EfSTBw&`^5&5H>a=ZGZF4ODsB$)=>kmn3;*4&$}Kuhcn5YTo}3LzXSPKuWQ+u}@v< zoO0$J?KyOZ%_}$)_N;l-x%8pebb0<}VDOo7i*0MHzgBIOE~@vt{8FQ)pnes|QtZ;`{9`9sWJ9&*8kCizEQ27`k1rJ?_UYSKF zDo=4R>FF9atJTMOyhxdiea{S6>|Q|K35H$ha^SiPeamHAeEYiV_?oxQ^K5o#%-gv7 zGn16cDQ|_yku-O)SHqO%UA9i= z#?ze5nc%O&XF0&Qvl32t{#yBOh1kb}_Jb)u9WW2me#-$m`oXs);K&EF2`Cywa5_~! zSl>Z3)+z?qQ9Y>{lX6ZrFjuN-VLu%EwaB__P}6!y3m*_q_0A)6Dkc$ zKGbT?6qQa!uj)g1unf?7dzdIAp{F&U+Gt;(!z)lE4QW{5uKjYeTPl1rI$B`6gafJW z2~+v74_uBkFmxO}RG?J&NTJdP2tIN1K_Qu?5@WI`me9qe%|uxvL?JRwouB zewHfvQE*EZqSyitoM999q%47Dixeg_?hOzc!FORb#J~xxnAKLeaICY4^M!5@%@16S zuHJu{y;jP#BD2mWl+_OHX`WAf=2$6~*<8rj__-4PVC(Vj3BX0hCmb55V@B%USS|*u zW4y|O%NBhtQ2HM2on>FkS5r=e^r4#+ASsCC10}}FZHnoF94sO~7dH0Bb8|+}S47Aw zwC<9mvRcyhWW+GnB_I~Y8>L$`+@5(+oY`h|j?s3#h?TryX%oSbkEe_OP?m!XilVzELgRYKt;Z6lq}I14}PV?L9bQKWUcZg`@i{JYVx^PhSn{siN@Fo z2?|5Sa6PX4M&Q9ZbMWW@Qh$t)+%R?J685=vnyD`G zZ*R8uwOhr9>QmY|S6o~OQ&Zfs9vbu(7+ldvP~W_G%xq3-In}A@uMe`{>6Lb<7g&?RsWPPXviIMV?qJ7i;oh9r@ulz zwG??S8Il|*${M)vAm~42K6`nETyD)aK&os}5So&F%L04vhh-Jb;IF+0e)T>iFixvL z&+K)QQmPMrZf%6R?q7~iISgG3NT(F)CACskUl;Aa+>zo8ov6lJ0he`KtW}p1-ERVa zuya&3FA22@3uWOF0|bpb(K7lIcrkfQ=osL9Ymkx=m3II*|9hm*f)x`Mj!(2JY0W^S?1!!qD3=v4FF&#CA}XiOdxaCf!~V<9 z8A>D!nEt`%`C;oPCt4IT%4H@B%>4`4L@EGg-e9cdJPq_g&p#k~&Fk^()MX=Y!Yqaj zk#R4gVS<&}yP|Njenj%cnU6#Xy#$3|L*uMl#rCUg!;S`GDaE-D1)y_ndD_q>Qj7+3U-jbBqVmYZ)AG4Qtlc?fdJ4 z2sed?hSIH>i?vT?x%qcD*(7_tuWE#(uhSdIGOG6ZAZ6cvww3Yzw5PI0DP@bDN2s5s zik%Eq0riUw{6&_}RI7vsPPING;862bZP9YTEwk3ejQF{bJ0zMfO^)b?DdF={j zs##~5vepn0u9V7-=>6??LBbT8h@(29L@8#hPidv%$F;g}c;M`M2r&YF6Oxo0-PMP7tMjUjGAFbOlkT zd&%Yy)T#X3E+=0)bA~Ir0u)Jcyb`^|Woyb^;RdGRs2QcyLVa7}wGQYe^SO=#Nz-r} za!>O#pjA^dQP|pq+ry!U)DvT63Czx{e82X_tkvBljdzqQu4T1ATT}h)fa++u*|*{z z?RX{b?tlR~kh)Yv@%&Qr;_X*br}Nh32FC~3Ru}D)Rlmh-W-~YqR)N!V$Mt-Js5C2= zVcbTYuLVW;sgbV<=xbZQlC)IuZj3i&NRqr<1rcavYVS5p3e4}f4gw6Lo0dPJo#qbI z=T>7-frs}P0FsMY_<6R^(jdGs~1o9 zU~TxVyim>{(k+k|AKo;?Eqkkcb(XHzuua_Cv4Q{mo>OYn=xVO;#xGp_z_5H7f$#Pa z{y+l0i1?t8KmwvLIqv5H(AhGpA=pHIdU(qa_kLb_SuBx08=A1s4jj}I>+8}9Ti%{j zf-_c+#z!wM3^Jy3k9$*f`uBRbS$7;z&H@=uu|~i${&7Ev*q{I@%B7krUAnNul7O_x z^rEs{LHYUmQccdJd+#$VGjA@YDPuzS6(~f~h z<_wns5;-zR!$Gu&kf6YReE5LG0r*=Q1R)Ffv;$)bzaRn!ej?z51f(crfp_IHPoA9H zqPT1QWGe6{K;Z&m59H~~E}5EPOO|Xg$Vt90s39UEC@2s=A0Ro^2k5N?W5&6I1u|sI zK#NgG1%~|l?nY5TDBV<}Lwj?G<4Vh2fn57?;Uf%#Tz}cFR()N`+>-k>C;l4)=(jIV zHo_4IAPsSDCN!`!!$6|)W}qMzb_jkv!^aa1QDr-QX+hAX^^?1v69&c{1WS zF7Ahdhye=j$FGNo;Z#qa{rffGBunPEs3P2ZH}4g~3kV>Irh&Jv0X3+Ay&{13wHD(` zh6eg)k-J?7w;#;qq*|M;iigZ(wzD6JsvBxS)zForR2(i> zo36kIB?lb;i5QSLQu%95W(9pj&E-fJ@~Yzr=RxlHxaAP$9s3Opi=Luz?_`jkAz@4u3CnH~27$l_ zz`XYy2_h}8;=+FZLHb?E9_cv;MO=L@W<$m@)iPDv{eSr-p#&m@alQcN0ExT?B`Ope zNhhRs`D~zKrk#y8S)4t_P?*N&HahFqnA+i2Qg+B(0Kb$W-m-oi?+RmK3{x_lPYc1g zdvbr$@pSo&raOh#{O!mT35FWQZ`POc+%;=>W%iV&*n=q_)qv2XkyPn{ zQDKSGQaaSKB7J-;WJVn~tZ{iQ5Ybs>PqUjN?ysGp8JPtb5@-3L+FWX;J7_Zz3B-jn zLJ6CWHlS%bG-YelsJd1Rrc#=>qn%Z7Bb*66bi{G<#<0-U7&XYkiO+HzDhaFSlop+v zJA-k4|BS#Zs_T$-FkvGZ*rXOf!YQfAcJ@CwGaD6vGqcYDI1{Y?17~K9#L`k;YEb#8 zZkwraRenJEvWXo#T=qntRBa`Fcy{!0=Dgkp_waXZ_f0&6#=w2~-V|#U7rKwiI(~Ms zLS@qEBI|7v9$;*VRuZ7mgaktNna;S(^alhL3Z32U@XFsCS|Q$YwJ*5Mp_2W^Xgflz zDuUdG!udf6y45>^J_vz%0!*UC9r63FU(>e(6!wgGpY%66(pIYmx`JS`YG4rIkasz@b$`v7m5j37G)cic~SmTq7 zcrn?kpT01&t9q`^b4PfWFK&g{0%`uIq6~4x<|3_vw1C}RQ+OO;nfms)lh{RS8>90L z#PtV)ci4`ei~RM`;fTV~xDVh6@P1Xqc!8DJD;NsXaZz(r)YjDgD!v^me>G=abzXiY zcNCKJOLmv-M0Qd}_U8Sr((@s4mvNwBqgm#pR8uTP^CBbqzB1}JqC%MNK}Yy8q4NeQ zpr9O63n(ZPj(!xBzdL*slv$C2SS3*Uf&lNFsDwA5b@o&hnq)SO9Tz+Isc6x*6@zru zi4M};mTh-RrM(Cx$fPghPgpjPNv9A-Yi+Sm3*jeV!NJl|OA4HLYM|v=`bJ0_>Sf?Y zUur#=Wq&HEMi-blDDcx7;uUhmt^)$vL7_p zVq36pCNv$It7tCYtU9Ybye%Q~l=a2?*FI`_jup(Gr&N~?r*u@!U86#&xK^XD6Ll;~ zOSIkY%3k&lyDEZ=2exDartFhxC8o-a2VQk;l6;di=v?m;Rnm2JioJ{(PCNmVHvvVw z_gJ^O?DE1e^P#UHUv0u5m?FBQr)Ya`*6v=(QH3nVMx)MNDvu&dXNN@JtdNpu^s|z> z?F&NlTX!^Wi8*VG;y`Z1#>X9n3Xwy#J)=;YmAu`nL-;xPET*d4|Jf}cGK-~3%l16G=+^v4uUFwwvmVB}V&Ehrt9G`l{;gw~FepJ|g+=C9U z-1I_*9<`85H_DKAw5Y4ESxEppqcO^K&GEyyYH3j+bv|)gP`4y z_E+HJ%<=R=-SO-fd(iCv#y!;F%IJ+zLW5Nr8}?>Uuj#Yq;~AeHn&9d)WPRAzX~I8& zYg@7uRi^%ht@|}EkMHrl1HfSZ`gVn{Tz(c=Blnk-OW>++=0mGFbDw8X!3xze}?896-pDcFnv zdCY*kj}7|kK_#0Z^O4Fcg$zQ%5bcI_LT{v`3PB_zJ-}gCbr2~F>SY0P` z=v56RYhNdaE<6h$XeNdMqN+^!qwR~sNTFGA7IsbxnlTM&y>q;Ai@qrBNib_&rB7Jk zYQ{=pm44n*Eo)z>e^0V?eXBoDeUxoDt!c9 zB{`TBfowbX@ilcB&Jm(kdaN0-y)yLO&|Po;2KO^CK$w^Ff;U<;&HxbU+16cuI4@w1 zIWL7vrot(0so&FR-W@k3$tuAb|H5yYX=BND+n-+F-jmyDVTltJ@={=i8p$sucQu$y z#6sGuv?ZxRe>^Gak4X2ev!>7NBRBdzuVO8EePy=aTC&}Ht@)*jSEQ4-PRi}t6!83$ zre(iLzf^E|>d?t< z1Shk?DP+M(M%RwNp)_@l^rC$s=*4!|c(043&KB;guHzq39Xe~^MN6JSJjfH@oBYA; zMs#7c+kbNPAnnlm1iocKG6A$-24eM*ISbJsnUH;-V`Q%w0%|w zM#$X)=Y3x@=AmWk=^1RXd2b4da38|aA3ES&w{J2w3O$Pc>xaoQn#-6pN;bka1Yd2A z7B;U9(Wanzjx%@P{;5)HYs_+22Dx{J;HC4@Gu!pvgou8v(thg zh;b^r=`iI1@D8bNK1b8)cDlcNANMd#;HE~I+K) ew8F3G+IUK^e2Dn~I~(Q_H7< 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

_F$U>ut-JbaE(G+`$Qm={`tkzuXXZ> z5<|muzfyIqjPn%LYnWBlmW6X??j*neM{O=Bexk1Me^r~Gxxn>s+xh}^F0bs#zz!jyHr%gpxVy-)tKBgKJP~|C*D; zKmg_>@p*sdBpB4(NXJe4*0{HA1d|zcal&|J$$6_q{GPXaN^hAH>ltZ<6;Dc9)nj|D zUrUj%0kTh&1=Epc>93qzoyXK=YZ;6hqLK|X3>D0d!7n$R2Gpqfqu55GU*#&9QK#8g zZ^am>npyhT0@SFO^h>k?FWfZ6MG24iBq_y`&}hrCeHLWSpV|AS{_@$rA*9?c`6j{Y z&&{{(9bEnyl&mV~4-+Pg_w>m2e6fsjdL_V;tfcG6%k4Ml`j@n12=ZN8qMHw{cEY>c z!jpp2uLb!7ATBA>vJmTVxZ@FOr+-`+fy8tDzo|>s_Wn_qAg~WjJ%}C``{HH~JWQso zJ;y(+rWX<~jdaQ!7=D%EDsK63bw}~mv%c2&>?#tx-}20FNf?s4s`$qPkCjZ?+rAFxS$Q@NcQU*n^YVi5S(ll@q69{Xz5a3+2D3B&#Wj zwLb|&Yquy&=?V`o(~6#|DP9v?1A7)I4=3J~7@u8i$FF&%Xd#aS#Msqv$@5E=lMvQ9 zLscS!E_qgOd8Xo-wA%Bv=Ja1pX)E<#E7W(xlYUQ1T)*{}$8dCDOZm%I-0aYVH&P8? z(S* zF1;r(R*8`_JAvLw!Hce_qEDcI(}SGKMw2V*vLa$jJ;<_8ITTdd{Bp9_T@=I6wOJGt zFd;rUSqDEA>dty}Dzu8KKOUy{cUY*b-ve-@q(G;J@{3G&NoU8?bc3nV8o5AsNflLD zOA~>R4zdJl*;0*CHTIm5GJFonFbu-?V{U3CBkS~%-?AOrG7U|3vxf;^xwHzc@!^D` zS-x`FW4YDB{vehVv*>kqA^5ZDk`@_i9TWkDO_o&a916<^7Mflx!+@DqDG3e1{>u`5 z&NiuIPZXYgp1)H{5;F@r>xSK@9MvK205cs=YyKY{hTZDnOQ+Js}t6?WKB(5tTJEg#vJ=S5O>3z(7ruc^b~L~ zz8>kn_Tm<#(B)eH9a%^%I(8eTIK|rcTR-XoS?se_+z3#TwqVJ_1LUN5Pq?Z}d#tF? zgy6AZVxMZO&OUq+^OFy-F>kVP{mDewl%+n~4jS5oJ3o_Sk{xiF?MCs|6<0|*C;EFE ze|QjAbp&+Ef>-Xri?eF#lV%5xBd^29cE8`5cUg*u<0Pbj^gHB|_Z=%f^}KkGfXF*2 zJUmQTxFnE`LpAdr>{z|-Pf9vVv`#0Y zFduDxO#4aNPc~0tqMK-(A`QuLsmWa=LFLhOm-dt1$M~Z)|9tjoO=dfcIZxPOPkZ*- zaw?rWtZ2Zm6JeK*7HXN*!k2kYy-W3qpZZU1##(0l<9}i^+W!@saURNeuHl5g#!Ge% z`^BWBNiSupp^7e#P^*V0e^mCg$TG<&F2y0g5-V2{Q(odxz@{-!O5vF1nbrH6&|UPc zDo-Z3--#y=;ZX1~>UCSg84$g}_)|J&X-?Z^(?R?Dkra>QW9|C@DRkK1)w1F|5H=Q| zKO^&V*6lICMqu*=#BKm`IQo{f;}KFPLsDtH*_-jeF=k1JS}*hOe(TQO6=;aRNdF4n zAazr7&P>~xlD|a!3Q;@6gv$~xiP{H{pY3H6D#!sF{1&1?8}M}G8_WVrJGxR70U|m2 z1!Hpt>{x$`&Z3C$IIJ+Q=88hWP=WgeeRFo32JvJ8+roTEvRqMz#`w$;RYYY@y2^be zrGO16>Yk9u6H1`4*>?U^ijlKU{?^4prBh?Pl`s7y0HGNkwwga9Kx_6}a(1lmVijNE z`XvIE;pTzzQ*K(GhtmC9YzEMrO??5AmqW=*P-_`lIFzE2$>E~M#uhX`bSMB4EJCF2bNQxc{}!N1 zs2qf*=dX&d5Nx`7=rPcjJ$ln|-GJa3o!l(1g9U z<_VCPaWhpgM!3HHmYadA;LnCD+CwTgGZf4&%`|X@;5_{$IHO|2^9PIU$^Ava1rwRz z6xW2l0|Y6np~lNBWKA^+Q;V0PhW6$6R!2>6dZ}MS#j|PEetg zP&FRrUy3s&`rnE(pIIow5`YTN<(q0fwqV(BJswCY1uO-%LcO}lPmk;)Z4p^s&6i8t zR0_koi7WPT4hs0`Vu`MhIW|^)N^w}4aYNbWf(lg+5Wi(aMl81>UUkg!UYHpV3z7ex)!gq!P>bIMjoH=U8=6)1|z@2cx85k2>pm4V#V;(pH^P~|6?2s z?QG(_ofB0!uefb(v3Ws|*BgK&FtN6{Q7rpT@b^+qcA_Y*^C(Q-Vb2 zvA^>yz7ODJrd@``*}kTyUQS^P&FNbdSA=8F>{p+j#n@cpJCKfdlvB86W25sk%lmIm; z^mNN*LO!I#3GYm%#HW`bi1US!J3&+0ppiO=_gf&gXHo9gec|9k@Uf)12 zE+=*zcpoNexVmeX(9QOqXw?37n{!0kw=jTXlw-RBiw4)=#4|>J#$E@fNF0`YReFRN)soCHDC&ojz{9#ci)=#i8I)QrO9`7jOmA|6M022E(n?( zagvAxph?fx{Zd}MR_|mfn4SI6^HWSK99FoSPt`Gpf;h3usyqB6JNk*wG^{K{A)nAw z?T{|nQ)(ohX_x(@#Gz`ZQfL;mZ;ry(z-^<6j`~zsr81m6;v|QS@76}s_IU~xhf=He zD_ouMG6MGzMz5Ba34G!4YT@H{tKKc_^rTAQAE<-`2g2!s z7&HQf$Kf)cDYU)rdf zlC#9XDDTtnes13fR=THOdkU!G6VutpJTgdAP$quY7k*3ytN8Y!5@ZZ@9(rX4VMis| zH^YgRmWV8Fe1vb&;)v?^x4qVlZvFRn0Xc4I9LArcX z4P5bWugrYn==@P2l*lAS^U|b9{F{>p+UK>(mD=TTN}9=qSn8fQ@LGjXoV-GUUBDYa zR#uEwzq}v!UN2wIMt&LET5Y@%a;FD6vZ}6mUYfP7^41w^;@6!-f(NHdr{$nYF=Rma z%bDo)GbhNV2^>!7YX-L-x-9m@2`y%=G@mPNP;jq5AkeKjSV-`>1DvD-?bNJ(bJP1ejHx5btw+Kx+NUB?&(hSWYUp!Gg;ZQ`FE>_l0=(QMz_G%fEv>0s+CDLfQCa%&1m<8QP{?4= zOT}Plu!-Z$yV*4i86t; zxLV_>-`u20gUgw%Q5C55rWh%6Na)sTKhw0VGX}=x<#ETvMJC^E!;=nmBS5b><%kGn z-w+K!6*o~ud{DZ$DaNy( z3H@tH29MP)wg*wm_Mrvtd#Okn&k%);0=@a>^52wC4Pc7d`=gc_PEMLloO`6Mjc(oi zx1MAC&jgHloAALCvkNix6R_4-ty@vQP|uI6^9a~>u=Eo$7Ya{vEzWeZXMu^fI0wOs zG}ntXADG+2=eeYLk5<~hmSVWE8D~c^RV~RHrNd@xpxB-XsDi{hde z`xTx`*dCeGUnX|WJEi|U=Vi~r#1cpiL%5l)0FbWfO3>d`0F4w;In%K@{$s~;Fh45- zq-~v5U#^c)h3M^xHe0stS0GaSW~OJb&BE$vU|~$e@i}3w=g}d-2A1*}#j)Ih;!P-aSll2_*#%Cs-#=; zkh@2kY@fB8o2bl)KK!7}a8~%ZI5UpuKNw-x-=5{eT*9kr9f@{F-njMZAob9PkTSp;nOJyD zx{|AJADK6!3IT2H<68H^_``Nyt1JQxIvFO+Tw~AscvP8(k>0V(&-WTPfd}t!>Pt!R zz|@x?un9aoHiz5C%Qj@ZLb2m-@I9U5#WM9@nhmmH+)*G;V?LgpJtKwG&U_4v%gmE1 zC8%sw>X6cR(al?ALx+G}m4@uHZ&)%T=+~d;)6QIvcjGXgnIs?}xlW?vo?@I9r9`tk zj+#_6Ebp)9&xrnvxk_?F#b$k^-L;GDdPx-QBj!Mt)Y*>KzZ9oGx}w)-YGA>S9o1Z~ zw5R-PGx%YaxS;&fpUI<0Y-E^0{dHksvJ5MN*4WI?pXv)Gdzyd^0ee*1DT#45V%2s0 zl#gGvQ3&=NSrjkLR(EL2T`#HAvUQ)# zRmGZXZLT5H3NcBo93y_N$_ezWdXILkE-tLHM+%yNpv#_FkQm7=?{(pmQ$xnZY>;-2 z=KE=DKED*w(M|o@;`lBqe$sp_n06O5iBrx}e3nvU?1I*c1}4U##gsSE7P&@n@yySd zw4&)D7TDjMYmyL=b4Ko1TGvWHd~Uz&f5vRaYxwEs3fo%(%sis9+S7^i?81p>P|Mfr zYEFPDpasC?iSvd}F&)AXeFV6zpZ0I!b-1wsp%JF^nk}iVSY4mo@pq+b0Ht!qjG<$OBuP~Pc&eBQA+ zIoen8n)@qV%tD>@`?s}5O5rDY*SFjU18NV#k8bE;1rk%~ z(rpIGa)FN&ksLIPiNv`DZ1qFD{yJ~o*h>r;zs z#4|iY`$k-E2&n03JF*7UbTCtmox3;Yy-FAr)_5zk{5%qAnV0-9oK{TgY@$r&mo2b3 zmH4KbZ1Zu2bE=a&CzQ1a>J&`bqIhV}No#Pk2csNDq5-=r?eDPii zNF^UC{`f3$+1+5-{7m7sK>EteIvDCmLyBU6wWb)2zAQoj8&;UOonOqIB{HW`Qd;cuSplWkYDzQQpDxi+qT<0>Up z)N6wt@mkGz7y;p8J@#wNX^B~%>dnSRs_xSvg*S&Ee8re5Wc|Ab+tB=0gd}Q4TOXd7 zB5a{FU79qGDVpdFzJewR=N>=n&6k%j9p1uKK&K5UQcqZ+Ip>B9NX0PyGRn2cKim_N zANuh~#6ErT7)vjVTJ56Xo$hQ786Kt6K*Kl#WR(ot&V ziQKrq!!TPTb`@0sE)^HeK&`)BDiIUY$q}`+ZMh`=r3zH#9rykQ8yGrGZ4O@NB0m=o zQqb@_GPF*&lv7>KC8Xt0^FFJdu)l;rzO2ogBbp{gx31gxirExqrT3_%GV4~Fy87o* z(m!XxqPpW5K4@t4pXGeHX^@_DJ@wc6D)LywiO}rd_g#h}s+x_WJ6Iej91^^L?)M z?8x16}LOu3rqg zmDY=G3pZElCz@;1cH;*CTZ7G@TD}$h^I69t2QF8d=*piH`@PK~)v7Z@ZX4*WRFtUl ztjS75_U=zhpXMp9$>faPn5}$W7tYx-k|n8a%{)@$-8|i#w^cT3SZtCTU^F3UK@+`4 zx(qjJ25iFE723HPx6csPZF??&qkcdl*CPgBat!bh5gA!9D55%v_zj8)3>yUAJ0JxX@rJ4Ji!7B1$1}a1;{4FmA<2>3 zXWTu=Udy`?aZwvnVrsDlb9UT69YF83Kn>8ZKQbt(YF1vq!YiJeu((}wUWTd%3#kJI zdkOtHhZ)VaM#8qjCKG4C*8+0pQtoorMvQcVc05w)pFPrYO4gZb(w)R3#o@XIK|=Lt zURYglx)AiBNz53fHs&$&H_NtOM~DP|V1>#)h>5Dekcc2qz#iK-^w*^X-FcJwEs> zgi9~=U>^DGZ^V<32cXx$k3jCytoI6vrioU(y>tO%6*S`Snby#sxG*eOv%3v`@FJwOGEHGIRiu7?3wa=T`n8p0% zd3d4eJN(>Pc(MpZkTbSDw)$5ueYYcgKM+ibL9J=J_;d;A5iz0Qz#urff5@Qx+9q%F z!gsO0xXbKl6MgaxV}{{9BYAK@#Oaz)0QxwMGJ`Ggs_GSeNFr)1#gIwp-r%{V3i@I4 zio?aj37(TDd0`=U%v>}Mez@I*-Y&rq^Aq>#L#IeKYcR)lskdPC*Us$@mgIUX`qv+6*x5(`QZiuXH*r zr6pB~c7nIGCM0wu$q_BdZjcSQYeEp({$YL?9f#PSZ&m)S znb@|?$MH0}{JYC)c})3$oe)KBbwpP~<8(vo_-$E5Hd^H8x-ft*x;cz;D)Vg5eR?E6qC2@Kg{JN@`AdYv!|whPs`dt;eOR?=T>??ywitwXSnhFb<7_@uUOuo>uXEiIwRWi;uy0l81OyD$@ z>Sx!737WO4xHCM0obV1+DKSKu#=KRCOhW9?;ggF#Os9LkJ>qw^ASLVv8<@lhEv}Ot z9^ACWJvFy7bPIoc@J96U%L7b7l9wDf49#m5dtV|g*E`OtCNl3hGVv!_yxTl&`LyU$ zzL&vP&6d~C3R{+%vCrzut#z`$c`&i@dVanj+jdpX!Svl9ZJ%Y6&z>OS_y4eL$Wor~ zpi$dgBlY3i=U(*wlU}>6Dmy`^!vB)SeEm4G&?oOaM;<0(eWE6oKVd?mN2z}{DE^4l z_z4QZIFFJcN6aac*;1u{7-H&?>ZHUh+Mw$$HqP%sw*>lEE4J_$@bk&T_?1g*<2RRE z7TomK)_Ocxw_^?+N#T*HtRh33;|=*{nh%tm=LGMpR2UY3lY*?d5?!Q}eLI1?i>*u! z5y%xZ6XFxB)Jh>vs=7pqv7P@AIFkyNot?6mX%;exC?NO*5C0-BX}cEc8&)|bvu`aa zC=7ZS7=mc1fsU;w|LrkpLDn$0j3GsDT?FOgx{SR~(VVaP&yJ>i(aaecr|AZvk zN>B!W=?xO^RzsxPd-%}ngcw2qm&8#0OK8KT!?EkTOi8^tqs_WZ>r~$yLi+7Og^}K; zY^%aXxUTRlzFbPT`tWE>loeWdW=Prv(xt1+!|tp{z*7K|1Md;OurbyYW9hVApuoM39Aa@_02^h60;!K~~ z*fz%}v_-78KH}D!Q)X0-&DJa-UvPr?MlfOa`N={-@Jk}XEt#v$=pOa$bI|$kn9x)EpOnJO9>$ zuK|5?^K;Axj_*&pYK& z{xp35U9|P#$}ggzCFc?O%2tv0*Zh?-FQ7!`L!BrM zWb`mvKz@9x-~gxk)Fo|*QQ7FRB<1bgFtVnn10^y|YA8*vT_ai6n;iYpiR{FKgVrPA zqKP?>T-C!-qpMEic3uf7_nUq=__P|Dd-@Ok5JGvl288r4`T^4Ndwdg}TKq7C`l3)N z&Y|{a_PrQo%<**I$|kc4d6=Ji8u98Do843zpU$l$5EyFpSU)c+s53|y9KOUohh1z) ztaYTBIp#{%9?joQi20MqcwVEHxI#bqF&nbW0>t% zIh#$=xlEuh!I=2U%&7;}EhR;}nA|I%ptb29>k!RzqWN=fJT3qEbQ7=Y$i31NGBtpK zc=N+t$AafiX6dPBVvu6sLGrPZQUfp-n1_6s$onZfeLYIOfYSM8!aA}YiLqqurv7vR z4+q^J#@u&SUT%Cm1aH(k8UoA&_)!Qy*1;~>fdT7K8NADSYvnX3DO|^@0)ot4vqg;#TrP$HuXdqT*0pyE)GtC3Z)r)_KYpbBvE)M#P|2NSm0QzZ<+e?|XLZ zLETtG#zp4K?yWlZulmc`Zq^dhawtTNs}^iQ&=DTn@3!sF;LB5bn|=dy^6b9>`tI`2 zvJ96=@DQHJn*P%&3{IZ|x%P6DI7h|67zU&^V zG>3PiysDVFU_?YOoNzE>K|yXVZd2$NP7XAw=HSBEdCppqy=JY^Xm8c?0{}pe6|OIs z+Jv%}CCamPW@)kOu(LR(w*9KLZCe~>Rp}FK)XwQ>G7v;>-^OXgOlZSUY*x6Y1#w>C zzm|?e1Gc7>+QvD_e1L5S-(ulc@kQGN_n1w5YosKVTDf#jwa!X^+oZo|?l8qk_64op z1KkWo?XO0?smlvk-9qe7 zb0X-r*f8jzq2B#ndb$i%3)yOAQ{rJP6fQPwAdmMjU^5~Bc-IW^2i$>ya5T$Kt|ri4 zah+T&lHi`!b6tKR(P}{QV zfgvDgx{nbS%OG61*}dLaUkt{)X>s|-!2e|5B@0$jAa z0On=h64cj#Z}3o{e!x9IU%lx07K&*rmdyfY$PGm6W89N!{s7Z=H2zU8;=aA!P9;{% z(Bp2Eh2&IC;tmT-qI`!$OwJ2B4NMw@+#7(!3mX$GIwyTk@{|Q46GW#W{>I=FL(*aH z<-}HJ5VP9+P*?)yV1yE=pnvfS@27XLlfw&-jCkp%F2<*+`wII9i1P6j0_q$ab#cz) zy)2@DX9Pfy6`}k7e%Ao#+=n3xViMAsuUrUUg7hEw?Zrcm^GrF+bcW>(I7kFcZI@SDonjjTTXkSeIojCZ$b)e5}JkZ_tX6wnh#QyIY9!*hTrIX z;t;~qNZ9i>d$PD6}><&|Ds8a! zg^$}@EdETcf;AIA^_;drL=7 z;p`qJ;s}SHvy=BiJ-j3Cvzk^bx%$o<(zt1>r}1Bl)l$umj5g(~Qu1_~9*@PY!HH;d z#9;~Ar|lyzjLkM$wx_u5qG@j%96dgkQSgtxT+`jSZ|pCOqR8i?$^PT4oeGbc=_<{Z zlK_8rKJvOl2Yz_WLF11%6MFVou13dnOOMBk(}~Iq$C&QGqAS67d-tj43M#$zfNR?q zP7D<_7uc%+ za?1Q#S+uQkiQMw_MN%`J2~CYWN`flVVk#7NyIw7NsCM8jHqR{rtdsE<6u1$@P$Sdm z2|C&WsvpQdrN~0T`t9EP_tR@=sPDy^J8ST3X4ExFQquML|2<)J#ON#~>-VQL)_*`j z#kkuL|2DESwXbDcuO&c&Irb)d0vWzCbLjz1HWw_3jy=f|I z%H%AMD$_EGYz&dmRwPC|w;?*3u(?rLB_3(ZNC{KF&$qkV-#yaQDTDG24q@G1!HL7( zT_uL_a|!KP|An2i6;l3x*g3bdg*-SxXpYKNuEdO=3Wkv@hpWHL(q8E=DPlznx|p(B zmYzzu)=fe*hLfKr!}^_jRS`Wxg8cpK*zp>#PTQ$w-r^AzaM@sp(Lza9PyhOn+(^x? zri%F2z?W7JN`Ds`!-k>)0%~m+IVgjRbjVzjhc&XpJfI+C26*FL8+6_=PGecr)e|}L zyWwL0sxVPO40M?Fz*40wdt9x;MX3j)kId4gXMmh=0lg%g^iivhrrp)6lKpIXYIA^- zRB??@X*XdQU42ocRO3*a6G?9se|`cLV+qSn{qabrblH5fnrfN)+*%@%Uhp(EnXf5v zXAPk+fBwqtg2dKa*|{3AJe=Wuph&<%g;sv=es8&EmC&J7-|qHiWH?5v5DWo7>3164 zrf;bxRB8o2H~TXuusGLV1(iBZUbV$s?vqu&g{hJ~9r}%lvc%DMruJKx!Wh815x=Y>P6&=;f$3p0|y7KAq6G3tMJTtILKMWrdXogO8hen7k91+S z2fk$|EuiE-t1bDQ-~DX$^pa=ELp6fh&5A3h+%29c;bIo2gs>SSpe1jRrvZdj*O4fT zy^69ghN(zED1}(nvH^y|#W8uY7vlZ4aOLJh%H+P0pEYQL%BpV$l+c~OW`m&v&4YL? zt83N@h62he+^Su0txpT7_rHz~2)DLR&XXnJDY58^Urg#VHIBqMF@+VOrh#YcWmx7$ zL1shscwwQy%76`ow)Il77ltgtke(Mh&(kfIF|C74GV?RU9qNBq;PKW>LhOaI{-jky zcePG)rh!cyt~8Mtt`L1>`tiw3or41kwv-NDU;07l@W9^sanW*_>yt7^#^X6|6)M8e zL(FL_b17pWFcCVxy|u$9RSzr3yToy;)$vRWJLw>@GaAu>Bw~cXgBH6X0Ft&@M4*lB zzR5~LDeQq6lAKM~T007Iy&m2sw&aMQ;tnRtEAlH)j!nVi_YY*X?9nSjbt(JEX`=1n ztrjP==5!n2Klwp!xbZl^`PbLm5R;qQ7T*-uZFQ;gJ9HKx#d8kLvBD##lAm|Kg*oqT z$kJrYkt6kMIaFJ`K%gbi#GtpwE%bE-Rtuw8;sZc!;DlSfq8 zd8d&Jw_3hFyd1OgzFs;A8jB)Q85V(HiI6F)Q@;yQ$AQ>kCdYR-B1Fr4!TtzQw~>#* z2Cn>E6iRpbwFm53cFY?lTWUAzn)2l|Nl2gYu<=>~A_`_#h2sr$34 zv|XC*yN{+sG8&J4jEg0mIJ!#7oyIzYH7jQ^doIW(uE4${sIz@p;f=qW%%8<5l*WV3 z7nuoDFAtkKe9?91p=jkmmuB3WTsl+I3F|0ZFbKKm>f_m)P6d5(_G{kj5Rd32H-3P% ze?x&^55x~ivi<51>0j0gr*TxW zXR77TF~yJVR}@gHxTaE^8z0sQkSco}oQN_%tclDeAgmHA4aNWLOOUMxQ2|^LmtTT3 zWztp*C4Yj<13rQ#QDmglz-;7a%yE#i#0vuFUwBE=rZq_uRa@w$93ZVSx>+Hj1z6E_ zPT*4~3&P2*7%QTCxt;c4DST6oS)CY574e*T)^As3g`8;P|A|4>M_87 zv%nlr>6V?T`C`b1o~e1c^R=`M>#IC(zxcsrl3~6ZUS#Sca9AL7e#|!^eOiy)hbD|i zG#VO9?!QvTZHGU$KGmd@8>}`bKUXw|_H<>nERd$=El}GZ`vFUIG6Sp(LXC?RSd5nU!LU~AGq%nRTl!a()WCoUZIc3tr5=1T#O0V1Q5{IMkKI(E$Ls#oY` zpaefabg{~!aWy3fz?OnE*NqEImsXU|cm-RTOtjzhykNV)H$bd5gSQ1v)AK0Zoy^zf zqnS+6K0N2vZC>o`+0KxB5S^M%m@D<=YDw12?}g7#86-nSx`O*DFpwZD4PPyDs(lM zFPEb0d>btFe0kggS`x~Z8Z43WiB(zxjHra~VV1zmeOStW7T{~Qovtixy}J&ZSQE)k zj|u1$umZ_+0p+n`D28qtohC}LiqzBp3^lO#pUx9c<+1@&9d}-ytWOk#tPX0rMUj)T zDkrhEZJC>ZPkaaku5sNKiS$hWwfkY2_D@_GEKn4of9T{ycT{zS-bSV<9gS?B$jG$* z1F~Wa+Q#XbcJC2ph+Sc1@YoZ)1q(|N4JNIaX_0s=E!eB<8WJlKf$$)KQ;mN235LM` zi!fIldEj@MtUF(+IjR}*-qqe|iR$AL7}1ATvbuA4+1G2-oUGdv)Xvh)THyZL!C?7U zCh*=&=iKham0GM!si~jNx={LLAtoJI$zhVMU?J+w^*l-qgM^3e!dEy-tt1(15qVV7l4ayVsp zZD7kAmSto8aARQIGnWi69Ye_-sghc*p6s zAh#L1EK@EmbkG0c>nx+=?QP1Abbzhrj2o%ugzVAu&q zPR@<<1NA5r4s8M>AoZ`LVe?p-RT87;*7jx}&nHomqU#>*Eei;e;tJ@0KB7l3C|Qgw z8r*AzgeYw>BlM?y>2yLAkD6|uUfKEoRtU1KoIOs@~_F1 zzj#HL3f^>Sf4|{SM9}<|1JOY^~4%7}B z`LUf^Iyc!W^liCU3_H%+c2{x|dX-S7Y${zFlW)hq?be+Sn!GKs z|LmGd4!64=ja!?ucTURpOU`(lGfWW?9XWe(lucNtgK&_24@K54K|{qJ=e>@5iFGi- zs!D<@MOg?;PjvRm_`O{Jlr*dKV-CJOdVnwo)5~=%Yy_}g-)Xj+P6O-H*DZ6IH9S(c zjfqgdigIix?tH3Gk2M?-N|uzmRpE7@(SCxYuvr^hl&RX#(%DMr#R>FjL|lR&NVF%W z=|@%0MO+dNLCYr4rjk%51R7aiR+h3Fi?DyUqymdcr=rvJ5CS5B^n&zf`jDn!mYEg_ zyuZdNMK#Kpc7oxHEO0c;!Q5Gd*o_S%<;GJ0Rme&Ko&X{RTu}c_>8^>Ae9w_k`bUp0 zXBAoejLD%oJV0q<{8hGj^edlB=g-44>F>t~H!2Pgyg}cDL}%fm`723a=EEsLPzG2v&$1>M6B=|x!>8QSr=(nN1Q~FF!uJFk z2r&?*ke@zRXn8i;i!3n6HqyB@d4TiWSmz!~T3VtvXg8FXDZR^8Z|f2^iG5~wI@S#- zTTtU{FbPpy<3hbFP0|>l2nS%#!`FrfkL9(ddX;OEs~2RI@#I@UvHWN1I9~jEG0nSs zey8t!7n3c_GzG#n@e(dHFX!iRO<4(@7*AV~>mJ|DW**udDSrBweQ%?If!w>UtK03` zu$t0k;#SvLb7B#^@L_rmRk0rz^+Q4XeHrI!-B8!gZzHa~&k| z9{433lO)Ug0bYQn6=gAeZ5C-%kCHpmZKC*6=P^@RM4Q5 zV<7lrJnj=H03L}_E*FOUQ)=a*{w=kL6xZrxuxmq5Lmr>Jm9j|ndHdro`1SbfrA2q{ z_haZ&=KEm`*{U5-`SdPFt1{)8tN_Dnzci;1O1~{0v5FTllXnZ2oFaYYhNQ)a%h{{` zRcqO+eXASw_&$5`m79L%QO`ILyQUs@aP*A-#@m1&KSB4;$li{VuQSP(>(Q7WWPW^t z%{a94(X%p4^{_Cx4RU1R9Mdm;&N6@Cdr?r)rx-t1RM&Tf3VQcYDY?RcJ03 zI5lup&#nCki23De?I=C?JW zdn06e!-T@bycfO}Si;0>i6pqyh;?<`Owe`%HAY48p4G5}up{x2W_P0NiFv|}A(qp2 zOgEc#&||+FfhS_&r;3$rA3cBgZ%o*BV%-q9;*Y_UC2HM0qkUhvwtKnsO?wVJg*<-} zMFbmwRs%0@&o6J|E^kxT`6;}R6p~&r6<6rNflWb>lHU{Ak{3^*AAg4!g)<3e%8Ftl zHvBG0U045dp)Ihw=+>hfu)8g7=sns-4}fGnTRA z!`%|U_iKwJhk@KlM0p$Qq0{}V>%efrLL4SZfXRf8##Xs)vuf@4h^l#E@*J)Qr-k#6bWk;FDKM5T~Q2*(QM=&iFOu0tin;-2`Nmu1D zC!T`*&uwwZmpj8zl+N5L)T1rGdUJ^};DR7!Pz%5MA7WZ}8srg6bntgpC7$Z9R|bfQ z${!QA^aWKAD5&D>Lt#V?zKaH7)%cZ1h#%YG2&#Xpt$dhH1U(5aglPrQ<@7cS8d+_< za=&xGYV@z=(KX2_U|4Q=xi6M9v4`&qEiIzSOCMR-mDW>0o6A!j1<)r-WIccVIW}}% z`F*?VGc3~Liudtts;j!yQUN(_&pQt984X!XN#-^vL zez1Q~q#ycE^~=qT^#EA8a0Gsr982A_*;+~!)mG<7#TVb%U(qC#!XKQQaQTq>t|X}GrMPG9X# z1sG;jmU+`yi=Kz`o>(Vvd?}jD@>&>%-r|nZ)&0JFIi&uoU0?SB_-9;Y(v-D3K;%GA zebcIwth;g)>7YyZD^Vk^CaP)qskvd@oD}`5>3NM^22nr8NT7x6N0U(+1dP{9tACuXKLSA(N?i`ku zw4#gp>V@`}Z1bV7nH@K1lcY5xk+hP5_4@MFwf9Cag+K=JF!p0%Axa>0FPNb}gJ6n$ z6oXY!v;sMbHptBH6V!>kfWCz!rJeNQsrm4i|f`ca9t9;0WN zUbwR8cRd>5{#G>w=*NZrAu|T4}yET5fD8paDC_qqv!+)K}%J6^L=kQ1E2_G5^Pa_`s zSPrEIM(vNfrX6STb+@ei{0egjSBE!cgX7zii}CgkRsOGofKE#==}lAdxO=vnov{pv zreC>uPU^-mY+)&gEcZj zRx{T^6`iNUaEBuN*_<=J+mk;Owcp*k-;x!w#$Q9QoInln6q#tT6|+QN&vO{f# z(E+dID+p3?0xi>G+%UJXROShvSNTcddb8|0e@hHFK;ePG1CRC>FI&9T7LBI&U6puM z3ENj;pia3RPEoa^DFUhU*X$`bP?LF7XDA~T!aZ;(70Xs7lt-P0G3RA7SB1eA0oDSp z@KqC_R#Q<0(~2|}Z^$jh)DTUgGC-|%H?F421clcC|MOiLgVXetCPYB3d497bR(P6H z0#h9&v_Ozr;oRXRV#!8PfT75Qhno46mQ98VIBR81n5Cj%^;HtE$Ww6ND}NzUPR(Ou}eYSDu$Re}iQTglY-)t}N%#($sTr7_X;W zvV+;FXPTc+cDwo^9dHao$XJ!?EL%g&MNPYGm zFw1Xnx0f^EO_tz+QEyGt$5SscFLh?1hg}!eiiS$o3HmV5fPG(?I!+dhb2Xc!a_oG} zoPGb%KDv=VIez`rc>QXgAkroJCLb`8x<6?Oh?U$n{t~_ zk9<67EXoP#LXgpEBZ8U*bfWZiETzZFq~<;-x=H0S-4arTAfuLn^Pq)}Mv0gd9Ng6n zKO+`q1yeT^T;26r9MWc5!-^{H@368UCM%<$2lgS5(`5j3GIWT^dG{J8=q1mrPhU>7 zVC2S-mrzA|5lX1niI5<4Ed)s-M&J`nc%(x1pk}Y?3rIc1-%k53-mhK$BJ%H^ZmDeK zv?m!c-*RxE+a#7nduYT zcKnofOJd4W(8+PwrP#zShLPK!we-m=@^vtUgABE%gAMhlO~X`Jlb7u2QcR!y-QK$y zrrcGSf76NYsE4$M#o}-&;&$G3+wEd@co9Ck5wq z{TmFi35aqIMmwd)p}aN0@v9#_=%n!G5eVO}4vZis1JlOD2=(vk%Qczk*>S1kx!vT| z$y_S)x~FGUwq>G(7b)gDRoCw`>@VF=B(Wi=U`TI0X<1+k0&J;0^(A{sm0kptXsr@h~Z-jl+2AeS!oBTMrXIw{e1-3G&4K zn;~0-`JLYS6K7&W*&jA!+N1|21TBsP>*rAYm;VC+&eVe|24tN8w9<^Y7Rc}P);~bi zNcPmJ{w7Pz>x&D?Yki!1L~jE6zfg~y&FCqD_hk5I?mO(q7C;~h8#7cn%H-m|vN*&) z10u52dOtLw{mBIZ@%v`QPq^8D_{BWVNr5S$NlyLEnSpWjv)k0iPE`LW&?p#`+Tq6A&WD0JlW+10<=Wz~aE9xBUeET+=bF zC;Pog|4I->fqF!o8v0Kp>@Rv2!880~L3}0AOZjgo%$J8e{V^VZo*nXa2@J|pLx&<; zyTbgAgaIy^jXeHf0pt~PJSTM%i}fez2KcVBl&hZV?gNj|C7vxvAuucb{>g;>V$Zl1 zM){wQ@B!RetPjdSnhPKi_78c+6LiAwQIMTH3~EUV4((6N@Fx}qh2l7x2*Bd_hrt1% zD~ia5i$9So&=<}Pf*5Sr9hQ_InEo-)^HNZ?Ac$a4Apd}8*~k&Vtit?&%Mrhti^V{~ z{|SXuJjF>6}$rF$L=r*Z#e=rPH8UjBY zZjV!~BUc#LmQ2Xw%+IwB|5<(@DOxa6$5L ztx2lO^}Pko5p;~S{L$8UD~!6BcF+5#fes(mI_fC`%mbb9M6>4bc16)sGETjT;0-10 ztqmOe*GSl!#?M82x8#N@3??SW;JgoXhhjdrW7}3-Tmrb+2nvwJ>>wwiOS+zGJ?2`S zHIiHW#DP+bBTYS!evH?{kn?Racv}-)GIEM}DrQMRyAt$N)g0 zJW%V>C?|$t5IovlLV^e?Zq5S@ex4&jK>o=Ni-+`RPB1hVK60C!S{Or)KslBfgK0fe z;y7a{a+B`p|5Au#UM_UQp92DMuBJ>CIyukj*tC;$eBZ{ZSqc($4m}0zFq`52q=)e) zOq{}kF*oD2F5LV^fjOY8R91%t6SAXd|3v`hY$Hb<&Kf1TR;{oOeTd=f5(z|T8|xwd zLbB7bmFk$Br}Hkj`&0R&5rJ<>4KfHdItN{`)ALetyD)2f|At|YQ#dS^RNwCLD1}ZG zsG%hsXqNv?ttxz>+z>nYX4t#=YT@S4G?QBtRH<)k!^Xxf=*}yZ(HNA;0*em6Q(2c* z{2mQ5Q@JS@5P`5&dpY!#?Bm3(^oT64$Y~KZi62+{GRjo@w1p)NZ>e>6!fwuxd8Nhw zo7&-VK;-$&rVeI8*Bk5e=BEA=q<195E=}t zw|?%=>j;iBhmf1S>tNIQ@o5WO#YH*A~(KK5{qjFLC@NbKRq10d{(76Qn^&&xuY6rkF^ zwB2Y1u+`wo66egMkr@GyvGtc}EE790;)Bwsc0tlKUJ#W)>b}(7s3Mwp_$KzCXK2pN zt43$nZ%6(dNSa#WlrX7Xp`^Zz({m9Wzz0y~`#coYF^wIw9UEbsR0jP1(fQ2l=ly_6JZ3V@S zNJ8gFGevvsQ3q)#T3p<~Aj9PIVml2*E_dAw@4K~82`lL#<#(@ys;V(7LP_n;CP}W# zIHIO+5{EY4h7WWRK4v9Jcsv-g^m{*Sn&VPYr$r=(KF%uijL)Km%p8rF@HfjqECuwA zGSEfz#g$^WwNuxQXdGO|vg3+N-zVx9Fvv(Tn$+uXJS>fpXDn3cdXLW22TQ#@ts5|` z(sk_6NDD0S(i)AqZHPVAhy zD1xHo3TaHE<5IXCzy34MidlG9{oH-UE@om+q^+-wRBM{;aHc}~5frPV2&ulh(W+8l z`>q;~NR0GP?W+x$Tq?<_YH?`U^^6xb}6 z5vDC&Th^BN)Hy80Np%%MiwobR5UW)*t%>y)kKJ;IP4_XZY%~%8b|hzCiIT7**XPC^ z!J~t?*{@r_p$H~FMFEL!2YpOVCszBVr}!uhL8CDL)26uK|Efo32-WV56!T5nEHWYs zm-Ohbml(h9ss=jv+(#czyCn>e5j-A81!){=G6jJ1c)F5D>SsoN&+nV8+9c5I$O`^Z z^KIE#I1+$6#`=EASK+0jO0R?DFj*U`96(v%C{!pbSL>IezBZXI|0rXRriDyMNzBS9 zDs9nk$T%>AlN`05vZqIj22=(tVJ}Oz{ybBPP{1G$gwK_N! zlwyoQKZ5dC{qiY8jr_uz$HlHlNJ_fr!LkL5{Mfi%>8H*Xl{_3t9Vaw^z`EPfY$>C; z>h0Ao=x##WURzv!S{oytR-1AE%sMWhol`Nb1_q>s545~hnVeug@wjv1dgKL!yZF;F5a75yS4%~>GrW7IwM3Auo!#z1V9iMQD9Hz!N zKTs5OeZq4@SE6G007Ds+AS5NftiP@*NhX$1p&xqeyIL%Loh1C^Hk;3ew22%%KQ}lt zv2ST#OylTs-B7nh?GuwfS8eRU*J{7_Z~XA<7x6h7T+t2rb2SSW!|V^i=jS0kN?DnI zJHYeM;5DPG0|=f?XqW#45It2r*>B?|kBb!3$aDooia#MazPEQ?m9;%J9L+m5JF>gf zooH&Q0CO-aeY7n8cxe4bZM&g9XePWmkwtz}TTT6~Vl-fCO7XQ@e@go`Lvc5fyz=X~ ziv8v|b=9>!B3kcbIerA%50Uw-uBB&s)4mfl9=6!f6f+#Jk>y&6Q39BN7{!9fhI!bl zDM@P?kqiZgGN@}%ISw!34(fmrvz?#}8?S&7 zvz2rZh#qk;Sa}%TeqVt(rY?TzmB1x#i~0m(Ob71d9c&R6e>W{(GpHk&Iq>H`q{36RU!`1j#7cGAfIjFq}@41+fVbE zE_`1xGkmD08Ak#4v-Vjsh^iOQY*b&A>~6Ufl=aN zQd0H)8IAHW|KUa=7EfQ|a*W%TNZ@0(t8sR5Y&ML-KV4&5Ifaef@7yJv+7~egVXoa&2Di-ysz`*4 zA3ywQZpuTesmiJ)CP;J~_5OeaQIdH81$2FfAo5{ml>cmtdnpM}oj}OzDlg0W7k$yh z6K^s4K^eNL5JlA!$RC3`>~1|=%4$>$_$#OZXHWSKDps}w1uHc&_w1sj6w_cz;3at2 zC0YR>*?;@L+b2vV4iz_wv;~$>>XdQHer4SY#C@t#*SKrGW!V8F1EHFH~ml8a_< zG2+<@t*Z7O994lDrAf2WgiTUuL18bWa>ayFP=O9d{py@)37lpJK;80I)5C{8d;6!iH=||HPxr~eo zhKiPMbtKaf&zpe63)QP2_EVd{an3D`rJf+9gFQ!Y9W3I8?Q+kIiD;{_dc(kk=gWLAwO(D7=l3isfS@ z*i#BwIA@|!p=q`};K3va>ZL+a5axJq7)mO2Y6|M*&m;*~fqtwkr7@D2Z!MqGc|0bH z_;oAN+Z?Gskh?1PR)8k`iJdya9pU>v1BanU0@6|N4?>nb-+{OhVt4>oh;MY*mNeVbxc63h#GKi1>Whl)7UMZt2->>B*O42ANzU_xP-H&9>ts zbu(hF*%1=Qt zX>8z>=d~FzcLL$e<>Q!?u~XLv%+zXZ(v%6%rmT6t9+c! zeNFa1A%XL)p(vFsX@MxUg<%YZp4X3bvoJPLfj{YPwG`?06AHugUg93(CgZO?!Jy6$1@kSE|z0L~_?V&E++2LaNS@%U)Ii z&g2PWEkRxjjjZ3?C{&g7ndvv0QoSm5=efdxifyb#7nx9y7f@aO#Ob4*H`e9xdyPAL z+jO;{+%;@Bim#*qFqWmO9=9W$ya3hCR?@9JV6N+P^*M2yX-{(!rcoTTXkk&M)D$`n z@PwS!;_HwFoC?cAqWQfu-o<+ z6{A$i+vinK@hktDwnNuRNJ>1La>c$*@xfuP5|eRZN^6`8rcXz?+y#woTNzNlWo`CH z5qFgQF5vJ-8LD+B`Zd&w*hCe_-EjQPK4h%k+zuo%N6&h*+ZS>_(nY*jbnSkBw&%>u zPlsFY#`bpkww5)Uv+Nhojpps*GO{Kw1(*VPVMDExk&Im2zD@O1Sv>FjAE5+5?S{~G z>|lga0&?YXW>2Ch#15C)yx{}Si_f0!6)=4?NjVLm*knOoAY0Axb z486H9Ly?pdT?TPQrdxqgx*>kAkw)K~jU$CU>Ur#>AEHDVedvq3Epy5{T|wOI9UXM~ zjehenXNvAcS3(2(Z#8x$K#dJ^T2kqB?!0tsi#iaCF7Z)4b@YBy+_nHxL^j%a>*e}+ z$=3Vj;4HW^hCpRh0h}p9ro3K_3WX*#6W9SI8@g!yW0+G6K^{RkN&}IDj?p{6$Hn40 zTU@!-R+WCv&-L*i3?*Fn^`CT`7o1(DTuomzZSK<=KK1$u3+BRqw2n!jmA~`==KRB!_P)8v&c>K2YxOT4+(6Uu0f2 z(%q-Is|3obU9@v+(e7+Kiy)IG$iqzrOk#oQQq3*1GLT4%m5j`u_mkb&Diy*=3Ant9 z(mXGStiIa*$v8~rSb|qhf|=Pv(;i;9eUN*=u6h`Lci*P|COf67vME=^A6exs;eH&j z)QxiQQrO>@tT6X++4~LTAnrksNw4K=K=q*Yif9Wr%x4m6fV*}j*5k74pO8auTPv+2 z{o*B3xbUHB*+0k)qG?aI?1LKb3B^G#PQBomRd2wfEdByZ7j{a zwo_gTxEjw)y%qJmnQY6%7J6da1%JnY%|QOU7x<`L>SX-~&D7SJtlb|)4)D`$wj&!C zpXfof3Bav;`7M+f(9(a3R@jYTER3=3BzN+z1)@u74kWszrT@Ip*^&=`*e72S#{hl- z^XB@-0OGup#e`!{1lJ1%MJxb87%+q)rg0J)(gMpjuyR!JIlmNEm2cj&)ETZ znAx%|n6mJ!W&wUq%KaEEM44R%`E!KkjB^31Qy+>1d_IH{Xh}mZZ1EjTH((dhEeKiG z3AjKgZI^=wCWQ8NSeO#$5FLeczt?cy3i~KSLQ4fVliF+PTd$!#)cY>wGx{h}K532} z222PrAlxeS#??(EU+$QR4I)tubx(`jcHdmSo!$I?*SA#8PkYHW z`MP@Id6z83U2rgS`doG)4jb*v4NU_IO1gFGI!iYpC^Y_ znAeg81ApyGY?K*OeEoc@s=-TG30gJ#8dTQevFc6eeS^fu!}?EM=6FYb@lpjR|6H%U zE|0VSt?(P|7zZ6+-cxXwkIk)DD+@-{3rcEfuXReY_mnLCH>i;N5$VKx2NzC{%6t6r zwDCdYy}(a?gj&P>Oynl}yA-A>7N2P0b9bHMF!m(MNt?o}8FmA|kaaLJco?z~wMsF| z4Tz234HSPE%aL_6-@DDB-PkGlajbQ2PT9*LV^qSOrEC}?Jxms(G7VPbl?IwX&_$#7 z=yQ)hWWj)u@pSCT+!H-!--T}C*7Y*Xl{uyPHsWLUXu|le{f4}IWtGqUxP^IdTK_U> zJ?Y5*f!<>)>$)pzY7d1Rm8Sq9EhcW=$C1%!Y*G4UhFPT%1=ls%TfL*!$qT9zZQk)M zURHfEuS!%`Z$N*ocGT)}=`lU>!kN_XvM`#NF)v?D$>E?xnmIR}bJDoQM<+aKa-^IK zFmkTRx?)d8o1aZMG&YcFGJH;T9jdg+(}oOR4OigFxmE%d(sKXBt?p>S%(gjU@XCZ7 zu#@{ZqchXx({Tm1Vi1Wh*}6LGo}j-R72U_GNUxS8vRUa$=Tw7Gv1_0lI&lZ*N zl@wlxmgQ>!xixjK0$|q^M-fZA^j^tFe716Dv<=~1+o<-EVzf}05l1|}p;q=MRdCZD zC)GR|lH@vL&8xY9d~`ukuthKbV{Df8lv?qXNPv~)Rb$c=*60XTX)X#||3Sy2rq>iG z{l>pQR63wdGd)t6!uH9Aj>B9SRCqq9*57hzTB+K@d*rc7_|`|}Ct=PQ$r_VS=-QH!cYf z#LoNj<$6*hkSbU&#}913&h8uBSYXpz7u#qtSIn^9||Z|b8AE1P2ME}X}S z9q=S(w;d@;KH=|bpD^hClfS&0lwKJ<^2(#VvjyDi1O9=47s?s^M?RQ+V7}2s&xD=N z{7(#XrQHyO(5Y-BhEl=#2ZSvAv+g~x+i|w#X42x7tB|g@yU9ykon9@F_yj@zxTXG= z2XsSpjqce73e|ba)keg7lW1Ev>qmwzWCmRGii*8VVY2-!J7*4!DYI9M9^9(JwL=}> zFg$o6%Y@0S07(1nsP-yNsJ#;$#*cVQI%Orr= zr-9AD8!eDYt~gZd5X6F>Kl;+|JbHl7|K=6e{4o{BhrWZ3; zqnHQ_!s;QcqUZs!Gf^jeKOZ=xxF!NC_}JQ~$UGWEoP2|`!{!d70TIU7#eRs*dkbx} zq)iTJtBt%95AH&uIUm`1%I6ueir}5;~Pd+{sh6OvPH2 z)$Ph^}18h^yIHJjihGe*fT=peJO@corwvqD!h(t0Fm9 zx#P`MUA?BKrr_e?F9nRc zAivy3wGgU1`v3z}M^w_jo85CChh%tN39O5Y89~cVhC<`~c`H3Je-%IyeU40WkJR@t zD_?9wgqClC20mxfH1Gap_Xyi3yZFA`WO??3VFXkGs-|+bS?tcihXBx@E?c0Vc*f*qw21R^`t1u%@?jj3se(As3wwwK!wajTV+K--0CF(6!-* zlws+wSGhFT#%kEJlE<^*%>n;VD`>})vDpdu7WK?DJQikr5Ju3dV!Mi$CsB?e=4Q)K zdUX1O|MC)8-psyqGXz=9acF;Sq12B`UD9+ zxm0=-TRSoNWkU^aQNn8jAF@S#JDbfRCO1^YFQ8j+o4^i{!`#Y{uvSqcbUu)xc2RON z*X-(eyRv$}SVzMFy?_{4h!%{n>g|t`=@+)b%SAw9SqrDCOMM$4z>E{J)mrY3>~w54 za$%838`cNED+*3FQHqwazv8+t_r`OMZae6+;^d~;tpsa0f;K=8B<)Mujbs2_4W{8v zLi3sa=XJAJ9dF>*7=D23Dp!wE@L$3NWR)ElcV|&I(i>$>&PXbze_jd$8AMXXm$4he z0FD6ygZrD^JRc&|v2=w9K>_E#3L{^ENL3sIHMa^x+A8MmFj}eFO5AiTu%`HfT4@5| za20C5aSR|#UpN5>0?-)X;WTQ7?XIq|z?!YM<6wUk*=oeNg4JQ62#g<7enG$K3Pg?X z=3n7{uqeJDwMYVRmqIXr{rIo)88RW=u`0iN!Cb{{{7gHq@h$QqVh_Xz3Lm*k4IGqRPFZ^5c3^@(@opUv^=Heh>@+Ehb5{gi`IFZ1ZJYA4#4u5c6VJvGY^_|K48*bQJYNo%a4? z=y;YIQS__;9>HG+G>+||yx|w;^yin4nEVwa1XeT9aQ|wz#8WQkfSw5EiXy+~rS#O$ z|Es#fvHfZ0e&uxpJ%t~8Hzx(B1olTU1u#Kp6Gs5C_VZ_a<@Z{rErkgo#oFY!YlFnu}Ti^aQS|7=v51ID z{;N>@Nznf~rvRpC2GZi3C>`#**tCTM{v2Sxy4~jTLJpg*>A63;C ziJGh(j&^30U-kN^Z!bTo1InxY>R~_VDV$dYb8V$?Sm7l{Zs?N>#9dzE|T^ zbBEWi9ZzmMffrvXSZWttV`q%NrcrvyE693(ZGSOCmR7no>s2Tm^U+#kq_KH_bM*kn zD~dn5y>4@{m0M1xFL0?VcePE3-jJKvd%jB<@~2t6K>^QE8l;M=VGf(sD$%H>fEL;J z(?OPV>utGhr_V)(X5raPZ1rOL=``|(Pn2sKSzSQFn$4A&TGb9s>8Lp? zLS-l|wowwX2%BnpRFIR$LTZgz)}HOk)J4`lmjy1uML+e|>R3DxVV5K}OfnzFS^~pK z5=leSWVi%5ECKohGO6$o?bqGcuy{f-7D~CfowH(*6^T`a0bD2AS)41!gew+p8CGyh z?XqG{zqHLQ%~-lGW}fm>WUGU zD@qx;Zc(kCS4GxPR9nwgg37RwVdats6HPw~_9to?c2YNDp#?}SHGGoVtzj%Ut+QPi zn#5pb35N;;MH}_4A6HV6OIhcrRapr)XD#^9-t#?QQvo>k(>oAfc{Mqpba8vnd3U9L z(*A069k4c|x~L!j)6FQuj)p-5HdW&=KSBp*U|cx7CJ93ElI!wjH?)arovODt6nQfB z=B;5RZzjo~Me+ggk^i%@CwR#td087Z&in?$ zGnW$;VNCK*A%jF+i82%2{ZvZ0LOk{!OdHd;4#KEK?}QVVos3puzYO9BVhEdmh!*-j zV00~vb$&baWbqN2PIrulH22`{j-QOUR>)(&vH{WqC!}@AFsv63@&<6My|(u-GU3c> zF5x85Vq6n09A8hPM$VGFwmjdA9p%-^hXULT3g4|Mhv*ydLIBjX0kq!qN|ZX?eZ2hW zL`HPt4;aEWXZ)40xo4HqKwCZc-C{;<+N7}%2Hd`ww*-7Xk5@T-2skf@G@c~8CQr$3 z$~+uA$B8l8=;OdgX0nfdp)%Y4yusV$)wPnSt>av?By15KY|BxmMie;$L&>Du>I$;Q zD~q!ha_)3>b+$nYL<&e+e5m(6u(6&A-y5Y zL%dC@y=E%1J^Y+F%84UcOzS7b`++n&n2F!UT6FX_{6jfTNn$ofDz4G_tlvZei3B?C zMmO#};+z7*8_RhpfCHoD!<-1%Ksb{a*=*W!w}%yNJh9|Rq1?=sV2N6;I=#2s>*-qZ z?OYpia_fsT>`5SeZh$KJ7z++rG4i~{Gv=yUjbWU)pR5or*N}E2w@AZAZXOF}EU&x7 zyL-^f58?4C(?E$ZB-UyCeKXsHtk*?Z*_o-lneDTAjW?W|Pan?B)W89<1$Yyq_Aer9 z&V0i*X#`E4GHOsU%hGOXK0C|PexpdNaJ68X{xqMDm!~%-Uv1S_KE$6;n~f_anhS#% zX29sIh0_*Ke05#K$nM0q}`` z(nLYa8e>2j3LvA`)1aop*syP`X>ihc^xwUU;?{$1n3#!X(eC>SVpflJrsFVRqDBHq z7Dsl`O2vDH&0OE=FROG>6n(`fYpHkMQ7y0@xS;yXUMWy*bGR~4b#z2ePnR~u^Sp)j zxoR9MgD;4z5Ls3wjkP3dmV2rImL@vZLSiZUmt15_**<-pW=ml5LA5}>qMcm`KPl!&1BgQ zU795pe@f*bD!50p*e9}CT{JjUd^I@-RHJ!59G|{a&+tpb=lV=ziM%(Wy<%_P<$c&X z-3`=|#s!mGP9Zg1ZY0j`Wyotn3a5@9^TP#&*UQ<^)Sbu{VW{U8ZmY|z=l&Y7qnZNl z=1FFa@@R%AHVIavaALqF$3{~+p3my}*4G}W*lN-6ei5)x+h`8l$cMmsBT}LS#VaU* z=x&xrMC2gvWdZQ+$wp>w)4!KOV8XV0i9Wh`M8{q7N=bD_of1%t2&0 z-IOz%aZG<&KUb*HDS57qc8&Ca>uD1kNceRqq#Ir=jFi0?9#Oz`s5Tcd|0skDBwzzI z2$~KFT}%iHDLyIWFrVD_F`8+ON6^Ri$6c{1;b;VIv6|$hoim;mc*Uv%Z*ndw%dJf? z3k`I9?%wAyPm;-ob$8rk)>T1v6$_ev@9Ca%NXimB6o}Qp*X)Vt-iKQziC4=|`ND=| z+^?UF03!rO3E<+BaKmbnq@Rb08NUcS7>IuosxRl94>T!d)mjvYjj3)w2s~K%reqKh z6DWfn$3WVb^e8>vp1t+;C+n#^-&*9g^)^@5Yr(ACh|YTYLqQk^?(d0e6mrEsK@AfdroO3HoR7&@ zBDbZ>ZFylj)iU5tys`|}))R;R?3T=(yjW5-H9lMsM~@6H0_epf z#dW@LJ;%EMc8Q9-Rw>WP5w4nvOS_EjFc;WgUcZ!G%oX^B+!iw@R;)14zkW;C<56rh zOPQ`5;`#&7QR>hAKg8HY?dqwUIjy zLGZcq2)%GjQvbOX4Fvk|J2<<*cgB5+i>1G1WJlcF$6{6pTE3deh|8(EV!k_Rg$Gm3 z*Ndz9Bic7f&DWO2FSTc1o;U8SM~%EnJKkoG8~RL!`pKf`PQA_Nx4up@6_O_s@t)0| zJ*qX_TUtBQGZqF&d%C>5~)F4>qhW<6d2Yy?X>~ru(M%Doku6xkw?aiCc=(iKE zEm2EgnKueF^uDDA%$f#-u_Q1iD!ZQ}2eVEvkn9e>5+TJOHndGXKW4UJ$82qvl}kFP z!4vJuK$k`RI)26Ct!^cvZSajA)x+1Ke1mf-b_h(0p1D+L<&?`BEx1`ca_+@0uZ;CN zO@347cPPXw$Nz3P$gtYKvwQAB8#yXKa_Aj)*)+~g(zm{7=ml(2lP8h5+4f{R6@OZ< zH`Vdz!p5{CYDQW$^kpRExQtU-w!Pf9w#Pm!;o&d z-{v`p)sHJD!Z(;49>I-d5fOQ|*O=}*e52Aw;%xv8tWrZ7%m!A^v!^|ngAdv!UBIAy z+95d$?Ef7dihUFq_Qv05jC~oJA|H6f+DYhx!Wj{18^t1e7ZDv%@>WYcO@O!5{IxPX zGf@&<6J$^?`GVoSo$cDs%Ys69-5?0nA!q)1ZtPe-n6fuKw;nsvmI$&fOefK{v$&Q+Zr0oiKg_Z((jROWDUz9D z5yKw>ILA)!IdftKfGmY)|PEr9;pWOc#^#tyv) zZU0BGS@0$kQFUz6gtlpMw`=p@LhOq3Yf?*Y!F$b8#Yy7Q26MW@TN#fveur-facfy% z|2AL={-6q~sHLn`Jh9&R)SuSY%xT3_L28Uv1FO!*roIa+?*HMP!3FxUXnHKxw)aL? z_+N?3eVT9sZa>hle17L{KZ7YsBK(z00wi&>kz>Qt1T98o5eOqQCzaiQ!}k1CfN#h} zU)cByy!AsV-$ge~6?~^~=|XR4P%PKrRSqj>bB}L1MasAlmHd>2%0k4-dhPx&xUfK1 z7HMOvTT(cxhdk9gg^OPRS_P_xgrJs)`nLrOR@++&s`L<2wJ@h_W_3Q;?b<6^Tn|aF zAnLN@0GCGX>UXlzF>7J&iS!gt1VH_-xzFgQ}0cv`Z{nS|e{tfz~$Lraqb z0=n%j_Yc`;KfsBEN&w%(jgDpVfSvbn2=hgXQ^E-G zO(;wO(3K&0SG&sAsWY{Im~&ufVj|7Ig&g@t3dlB_)s`XQvJ-CkbtRq5u38lPRLJt- zr*PVp>+5TASTbP$yq8nU`?l)cF>KA=o-1+{!o6kFtlR#uTgmxrU)S@J{>J~UxKLch z;qK|@+acyRVhChjW8(8`8zG>ErqvgyXeGF7YhWl9FR=)w^LR3?D85@t<9{i{jA{Py@n?n62nrC zVI0iM^fu{yZamPoy}1*^=YUg1(`G9&8WPqX`=c2$7s2%P?QeSp#;RT>$Cd$_OX8DC z{kZ1(SUPC6-(t7ruLkjp?1YpHYhi(3%HY*A*0=Tkc=Z==+wJKUG%z?aSb``@ zqO13hBZDq3I>d>0nAiweMexvtki?@>&i%i=81)p!!ny`%uQUn%VL zH7azwAAQd zVNhg)pfM7phtu+daiRV{9~x>Kn?+g{JQTEz`bk9*&iXaWq9vSWVVa|PgwPKJHAl6( zaWRvFD?9e%;(YUtQXYGSk@DL)u@~xo`veP=TSAJ~t&}bQh)(RxWR<(wE-bcZZilTS zjwvsi?T&GJzdyZ57x({%Y+DiV_$CWE`l8&vFuC6v)P2Ja^5zV;xc&&xkTTv*n~DZZsS)K3pqxA@?p<9 zBpuleS5DS1>(WKbJ6A+Z45#b`#xb+KDSNS)5@VavW4OI6_(m_e0kypL#v{4(Ps*5I z=>ZU<4(Fr2l_ix7wnZ_;*mNahbE;Sf&P(~Nc9ih*5Qnt{&fN2vAfjd`-XJAoD5Ya+ zkJZU{tjxcU@Rmzjry2Lz7bqshUM^pOg~i1xhw+Pi->b=)DlvUYjDGC*sx!368@_sf z^3=oKX0KhlLijFMR*G)diJY+~f5lu_bFG-4) zAc65SmiaKAye57$R*4Fg291zXDmYpTbKogXZH*#HN%bseSUVW%<5Xj6$;V7hf<$UO zNxZV={3_8jwIT~E%bK{s8PtlB$#MyYx0&p^=egRJo2@O`J0hTOAj7mpE6t_*{WdW1 z_Lanq`%Q_@OoJ_>+<~=`tLtdrWFD{7g$*eo@*cyu5~JU4(wTLluLM<7lV)i$EyTJ* za-m=ar(reX+s)$CPEwolZeN*=-iB5f4W(P0rrK-Teqv=60CiMAhQwvzkhaK3*zo%K zIi$7m($i0MUndFw#N ztSwC5cc89sm}NVfOrH-AUTryshKgI${Q!QsVSY zhlw2BpvWATQVpUa4N0WJQXaYNvYO_9e2UU}aYQfGzuOGlOIb7_(!u?{Gu||F??O zLDN#d%%YmRldSRaX5UIR$#gr8$bUq!DCWEDobFAKh=f#7s^z8IT~oqQR)6!cwsBaP zecJI8CgTSx$Ftk5u!Us8E?~J`mnYxD{ehmP)N#A>SZ@p?uI$Q)1N+-)rbc3tIuDi? z-O2(4o0PfYpEBl2w#({o zgIF%kqPk|D&hqiK+ufg+tQ(U%w03>m_zpLejB)0JpEPWG=`h9A{_2};Z_Bs0F2&3J zaJTjLdYkB4J^o^d|9aOg5HhxkFtxWH?*DuA#r1S+{rvda>C%^H(eG{aS;pR4?SfN> zH(IVN^m*N_p7Y7#)nGkcCK=}@+Cgm*teYjOVtH*9)1soG%^kJ*k( zvae@4N#A0%ue-B=--98!n5+kTt;EN#5+6PNX-pKcG*X?L0^}4KsfZUb2vy(RMqNh8Y2 zODSd8vkg=;`bpVY$5YNpo6CXki4LfRkcz`=v;Z&srWkAR!znm5o3L>1%aKuv0z;He zl7Y!Jiz_OQ$rt9nW3)^(wb!rfz|TENoPny=NTIQ2?Fpx(AT6SzeQbDuGJe61gFFCku3`)t@`I z>My@eCaGkYh?rHWDrYo`$k)|xv9YF=7Gf0Rd<--X4xcOGLSTkU0UHO|`*4*IP{maV z*Rz+Q_2wJeSX3H6CpyMCCL=8+C$M=q`=Yj+#ZCHlc}K~IZPF$j*ShOp)xkzT!=iCQ zCSq~SZf<7vO8~tzkAJ8-75U+_k2i+ul;06?>){Pn)!xeGSe@kMd}&;`{O2g< z;yMBMeP3g@<>JgOpDp4To~@-?*~u-|GTZy7ebtR(X)xPw`IE}{rhV<#o;DsAA_Cbu zVucB0Eo~Wmi%&=<69s}<*i`s%!2EN{ByJiqEb))|Qh1i;$QacL{n+A$3@s{wK`2xi ztT;hHREsNoM`a{*O{gt~)H|F=>~Y?S!L=UU0H5;veCAYXP2VAU8Tq@xlu!6JLl^@d zve*Zh*5Ki;9sSfnJ+_aQ|4B3?lm+iT`H#kxA{|1yHu6TxQfA^<^he@KeCQuBJVaAD zu?ffYy*_W{9T`y?Dyn1yT1dZd##IdUMYOil`dVlKy%x`!W{|IE%!qa zoLB;HS8HipG@*JP|EI1{sra|9U>EzBu3(Dsm#%P!)|J<2iIZ;##b+A6XJ5cC+vyWZ zDX^|BFkffsU{|2dBrIisy>Ed)re-f;ayeXG?U{dYu3!=|85K;Aul`WGwRUlh9)!iT zSA2YlKi64YgS$vvzd25iKa%#iK67V#Tcl>|o6`)V=dWF4i z9{0~|_RI2|{m~yjOZrZlyz*~ERc{|(+3cYxP403uo=AvaEj76I#_dt|Sa00ibp2Fk z&KpIH8F1HuQblczRXfS|+)+2zIMhRp@?4jGWevI;{4(nXf(zrUC^`{Cm|(e$(%{Xu zt8gHKu&w+)CQt6ZsdXR9*kYkhl=j5Pj|fTTNE zg~agzIP^wGA~5O({K*Is}A$0e{m zW=H7}xM__|3ZzmJ+mq4V0(+nDh~JzpmRfq;T~5~aQT{4SAdDM)A9@c)ei5}wkeQ>i zK;s0$SH-clwmm`vaE0$yXHJK*x_T6xb}!)s=#)4gl`>v-#CT5N9Q|bPi)CQ_9l~Vq z(Y{iARc2ZV)O)kaF_&)_aM-}j~2mBQ9-D-&gffWyhJJg7)R`&YDnkx}ttN~ly)QDck z1AeLVGMcKf!M{{Ff9S4Z+dAQdgZXAVAfZEH3RCAEVnV6*Bdu1Ay6&Eh1YRCIJRtc# zJ+eGqJZcR*7E$ZL$@2q6V}X3HLoD#Q48O}6(4ANs0f*A7Ew!RMEFhxmGt{y*`L}#DHw8fj>?f&aoVUw5h2lPP8EFnE^zWV^WhQjdcxtXrHbOUoBjb=TBS;}sM zVbb_ww(j6%nq&2el{o#|k#^pjEdEQrWD*lcY^hs#l;I1sM}wN?E7NTL3^ityVMNCR z7q)Itsw?XZb>mHx;l{pv5+7}ZBIYQlF}IiTX43qRB+j`ZrAUnVUCHt>TatNW-@`nZ z8OTFW=cVXY{KFBr9+4AAEcxWGidgrIo+?=8T)+v|;k+|Kos3ph?t93}C3(=U@%sRa zB(eH?LtGXXj_$H2yQpTm3RPRW^?MEPjS&*GbijTey)89$(yl#s7vb!zoVoiA;cTtA zIf@Ln1YE&xGnt{{*dxkEiLvhzzyhugsR&~HSx|HCXS);|QbI@#ZcL5b*hKHqZ~!EeEM3ey`n9v6OxI@Vm=0gezGf+`%AxlPhz4J3?=2N>5iCus&Y9RjI)5f+6kZ zqW?ORc0X2rYqmAMu$(SIlee=>3bAAsvRHrOoyI=i^j21vnry!Zx}}}-83$z-fbqmK zpRS=(+CeyqU~LkV->?j6^UH_9O(BLe=WOMxAlzXoOAcLTxVi?aJ87O+vwDc?1@rka zn!|oU6xpt!WPm)}gdxsRe>k&pJTsv>~j#21Y?iLL0c6LGNQ zt^0a|Ex!3{%Ekt-ALo=mw|7dK)9du8hCNu?4-p`J*yLbc2#}^qoYq$)0RYB$#!$q; zn4dD$Y>P5Xv0Xoc?b~w0RgkpVZ;*y&3Myo+2cE1IuU+8s5=l{Aa^jc=A||jzdWp3{ z1FdOLIoeOeiA-Kq{=NJBJj?hNzVwi0lpb7g8YS7l(cy71cBHq_x%ye8Otg({Va+eP zI(<<&HE?qba1d?evY`#v>J-^p|F*7Z$r+^mIWfGAM{CyQV4PW0V!ZUD-`Ck?7aG)? z=GIcu1v8NwotXbH3f5(>kFY*7xsRgZEcc?*ME9a?Bgpa#8u(J1VBfU^^;`;DnuF7F5x$YlWH0DJ6?u z2rRjUhBWJ&mpvoOZ;(JQTcJQwi}r*l38MRK*?w8i7rOrN{Zbw&iEm>kcV3))CU=Ut zBRl0y=yEpgT1;}(LuW_Jg^}T*o?(&l@t5+S2Us~i54lPmC`o&zF7$Z4N`|fJyI=Bl z)LhryT)?n>M2Hao&po-opZwODGqGL_OJW?)v^6o>se=1_w%k|RMbz8L4^r%})Kj{_ zm54&tQ~LM&E_29r+%$H`q)p}ZxCzzN%@hcq;K$q+H{J<2N)}H+qVZAc2uO*+4e;8l zPX-wk>OF4@MRvF>YWVQ@ek7C`Qc+9Tslw(z4AFI0*eaSIzHnc7kuQC5R8G@sl)1*L zklh8w$mH+lJK1Kmqr~;I9EC_}Y(mK%w&=ZneHc!(sc`5I$7!-dOGxfpDaEHfW!HuU z_9eHFZyTIhe(cPUHm6@Kd%WPoy}VNUtLwOiI9rhn^A(ww?Gs?kwHQ~^q+nE zy$QMm@u5EevR~t&n&rNuM5OI9;9FF zg+AFw1Xr4jIZawrC1MsD(AW=jyU9q623d1O3BJcT-poR??faWI=Ck=HR}Tm7{j=ZT znMQKrpB8HR?Fn7wJn*D71;fFn*{1A8?eI>IJAr=*e6zxI0;S1AL@>q=qYfoVKAHnU z?3GyNx?=Q-^XJjou4QDXnNFZp+j7XFpJJ0(u$Tiq7vb+%qU@N6-+np<@mXRs^^B7> z?Fe%~JSd`v&J}4JlvN~&P#aS(4mvvZ0hmIu927Y<)a^;`tEk^h7)!TJo)1IBX!Kkf zwk(~`D|P+a%gc$6hFhO7$%@*@F#F;4faf=mNOBT{S z-PFp0&Xc|=Lf5=T!24s4A4+>VlYaSN&M3F=wAI}@@AQy_t81H~CP>@$mdmE5$U2c& zk+^l3EP3V$6*O0;+dg+3l#Wgg%<{V=gph##H_Oj4#`A?maU~#iD4E3?*N+;x#2Z>U z(2L=}%-G^M@Q(sK6xmbNg8bIxL_#Rf|9%Fi;vjro{^a^mTv9W9mF0I&$pfxv0H1 zK!!6_AGY$$Z0NX2MqzCa@n|jwN-h9&?kA*rnxmc*0h|n%Dj(y^#mzeb)vA$F2F>x2 z=?m97jW z%b1G|M<1qn3$e#=c(_DrKujTm*yONJ=WSFcQ$-?bv=@cNIwDADGL58cQ1K|DPV{`pUrE zHB6Q31R#q zNZC}MI0B2YdM#O(#|<+?mTrh|(lE1SZ~@1)KTw2573pSVl&qFPCcc>nvgY7SSF~K) zNVTO&TM`}0*7oVNLvE`Mn^}uZ3{vbY)>0MV=4ls|5I^7Zt_~pW) z;EGL^Ct+9FDCRia}7{Zvub+HRpb& za(rzI4|UGtzOyjWixNvrj95*MQwt}yR*13+76C308W#8}xD6<$UwXIfucEKgpH+02nITy>AqV#7stU)(!TwhaCzure@`>CM zIa_^lB})Nz12OB`p zQ8L*rDYZh$w17Rz`Sj5#e!vRl971`dlH!s37*ZXJo6n}>%X3>vw9D-6KAZWFaE6XX z9~)37+iO69!Fb|Pg)06JR`ylB_OuR$e5dW=y^S_c}39PAy6Z*`W(hWdigsjPlY2f9K z{%vso4gFORAqVLaXyoVD{P-^}@xeQq<9<$%wq68M9uGwVh4$ZcR&el7ov@-&-AM7i zz;%}SdIb0HI*T{oEPQyn?$e_@cKquO_H?grzd+%3Q%AvxsimEz9(~cbza*PE~tUwR|Y0Dwxm#`tI2L;V8Hr^@}7LByffb^Z~OhfC~vpR@Db*V)KNzg+(;~N9z2KxQhngDwdvX7qdAp_ zOlzc+98AM_U9-Me+AP!S1#zlw+Yx6fHZ20wabLCWmDuUwDq86s?UavFuL~Wurqiig3$7>Q>(r~5UhZg5BBEqv&bm0MKNQTW&>y7fqsLM#uKh$EL+@=$6-~20p;T zLj+GUD@#)l^-lwVmO9KoKufsW?{gO(iIsrT%obYS?6-%*MX`?yzM-|228VO{7($8i zTfWlr9|=X5oT%UFZ&KzBaBg1Q50U>ITSMUf=hzA+_YMVv$JUx)kYB{$ z7sw69Cz)lvfaZ2iftEA(c*i?e7gI&?p7XgH9>V^fVegcAS3ac*Vo@}6Su1_erl833 z@+{7!WI{enXA@G%s~xpJunJ#trNGDKMBk#4%%{2KQmrwl!ed&*p#vkaf2L0Qj#T3T zt$eRzT1=%K#pDeeq0IFr@yttmw>I(b%o&Vm5u03T_aw|4Lti_o>ME;fRAN{Q2Y|o~ z_Vwf>Wn5LBmv~m8PtcorE#wqH{|8(kTYob(d4W#wyjd@2eg4=`!E*HL^XXbT+U>5i z_vco=$uBEkB_mMDEfqU~!8GckEH0D^z^Yt0ObWmAbCgFY86XgYfdVv%O-dKr0Y3e0 z5_^Sjq8tdzU`Mzkqwd09jg|}i!4g(^qOB9&qsIKI5Z-S@vOxZ9U75oUt;a8y1RRk) zFZPm~e1g{Mx?BwsSY_d=s0b6H5YUqArIQNc9F#OPKT+Non?HeypqPD{7ECY^J-`A_ zBNm2cJ0YDW&(G7OglVAJ32l@KEiqCY3nrDt>dMOQYHv2@51b@8yPBbv|z5lYH9+8Pprc?wB=ibRrPIdVlxUKs#9K@)xW9rYLCIZD2QgL4<< zJS%eRlC9`gOmjr{Pg3q_3`J>|^_42~8OdxNU3G?@4|z3h#R3o6!ZBWq9Dk$Lg%Z7v z-`3<~rM7FtU4Qp^{+`G^jG~P$6SU3YoK6=%m;ln~GBPJ4z8)7urfdbDaG3T1AEKTjhhD_{rvNPAM!I7qb z5`koM1jbikjU~qPl1h22x%$epe0kq&VD^I;&<+F3jQ>P+ZV)8op4w^#*jV|p{xh;u z{b#}bQBT^8#$tEzG>)BN12>iIX>PTZFO-P@VbD)s-v;NEoJumOfwhc@WzZ~m{}n_1 z$qEWT7%&`289d(;h83pbaMp%Wj)^Ey_PUKA5R39f+l2f+E##cL6O^2ntfBMZ`7K_^ z$*;%9yn`#mk4{Oku_$?o&i1IyHO{G`KWuR2nQVMxK%%f{;0H;y8P7(Zu z4YHL99=fgXhG8N^m<@v``ic`6$0|e*u+aFX4oAy@i0q3Olmrp#Yo_q+UNZBtL1qiU zbPZDM#mTe#^uIs{9V*X%!T3092~h_=Bj1icl3sp}5bpazpFb@{8mj>PASAX)#tPdN zq*SC4G&#jHi6#veqh4#AOJQ+5_&U?8eyrrGi5})_=uA2u`@go*0UlGU|cQRBCy7QOIMfw{|=IYt&o-}ofo)0+e<6#;C`1*E;21C$s2 z=xU)XCe?B4ZEKF^*B%}kPND`~Ps zOm*z;Orf8xQE}vr$%@cpz{KE4lKx_$F#msCBrnIE(#to=!_c-Y$j+(G1(H_Sp7q}e zCi>;`qSh~VO%m-43ejyX57@B0TgNHmsHO@!=6ZBC)9Q4+_AdO|n1A?($+LDe^=V8I zc^T9-0~&$_s>4+n+J9$ne;oy3fIlJRRH&`tYi(%ShF7AQ;o(_?0E^j%x8|O#q4+u$ zy65m($F=sXuHGicXXNfVemXajn)cIOGMd~Jw#+}H6xgJarV8RrN=y<#mMEbH$TidA z=E!SG7qvSjBybzu zovH!?XKnSFDLYMlndM>=kCRS^pAu>x3qh9*Uqy*3a2Hyf1ixX0SowwCT z-%;?y2q9l7Oc&6Ui?l_Fk-Q=q>j=`fFZ=iX^Nn=*F?kGB0PrCy#2SX;zfvMZvwwFt zcrgXRie2Z0(sUf?j<$C2=ylxh-c;M_acs0X#*&3Qrzp@%)90yAGl_iX2si9-yBgE# z>ODO%G<83|WF?E>pN*s>uP2#dC?7ZO_}XxA>T~lAKTD}_Q<9^mnb4v5EX=zR`DR0&IIfIbrn%MsCn zJ43L2nh6P$X6A*nLXM9$|BPB>B%%4kB2As43AL$>lM)KE@rgj|3skwRu)P^tJ zVz&`amgE8c0&k8c?NQnELCy)y3U9g9ZZrPsnI`kqF`X_dTquY(a4my0zs)1&Qdfy`u8!#8P#F(^|r&iY@bbzP;kk zNi-aYgDx%F?n|LWE3t*vAvP8sQD-$_oW*X-_S!PytnFM`Ym8bxvV~KL1-WScE6O~y zg%iDnliJyIo5rUt7-#a()PhyQHAzJp;C`iGeIlI5>ic#bw@Ze^*q*#!;_LP8CZ@ss z79a7DDF4;|fN5Fh&CNr5UX$=XXs4M?mF~yuc3v7|C@Q-me{0c2I9c9=$aT$-Q;DaH zZiw9@q+uXm5kY2W7z7gPrVg@n#5V|A4cx#xMB{{FTbD|a&&Lb|7Hm^?6vz_+h$LxE z?rhcb9Xr6=d&l0y*^E$i(RI^!hVnC+hDN7!Zyh}oEA99h;9@*eSiqs$Lm(0YV6u0#JEVd2IXLnBQmJiQo=hCcO z!JVSVj2BbI8?Cq#bZQ&Vn-w`LVZ8E@`h_%;y31^-iMwL;3!0rlVeYcTQqyOpJ!kX@ zabByETta;(J}D^b`BSY{xn;}ip6KURw%(+{TpM%rr3)@bFk|4uqZY1h(O2KC#WCWW zauWX3Buy9k#<2J5=KyAz<*aK_@J)=D6B-PsZL1xMude!3mSQA|2}sQBOAf-ZY49V$ z7MEhBBO9D+)&-I>V6v6p2kWipbdJP{f|rcay`N4MqF1-UCiof+-Gf->>jRgG@0!I< zFT!0cSfuKI^p~5@WCl}0dDbWJ*&ee|C%^jf>sieYJ{Yzs80;E$DI6vjmAR?l*4?)x z!R9w90QjHVn2E1zoIQm~f`A}7-mJ`0 zBQ)09?Z$cjae=Emc;^>~!(cTE5>LNdiUF`GX&7wFASN<|V!bQA|6>oe%4_d3g-|ec zXNa4+(sBT;DO8#W@k?{wC=NQbBzR1z!(MU3f}Go%xaeS`HPav*WkZw-z)3$5|8l9s)KmG!*BHd;&9n2KSwUbA>5r7@LJ5+CaIdPfk9wpMyDPL_IU+# zsa;e8EmD^(8QBMaAzm`qe<5B{2tVYrE}T4u$&(b-mnGW|ov59KhUAYv`J+gIl0l<@ zTWEBu++(($Gn|!Eyf-L=2THxyb30n_pjraK#{4}-FG+^XqJtoAHj8BS+)A1AG zUNJD8<-nZlbf}aE!SiKgh>zztweFU6>r=*Vc2d};mMxiF?d!-&PBP-ySC=z|5yqo% z#!A&rw%>Zu9XOh|7>*`pa&&EFA~06g zGKf^&`@?w=ya&ch`=%yh$u}6%L75#OGY}Pc_U*jD($y=b*$K#tF&FOnJjCphskMF| zMWHiU>6MkyMYJtG6vW}oLO56jOUuuDzy0WzK_2UnsyW=hGm~g>_x=z|s)a>c2l^Rxe%NWF;9+AarMa`wBsy18#sOzMEhpfN_viEhCyoQp*hNke2V3*`IDOTBwdjehnS+uh~c|0G)r9<=Yvv7hEL!)H4^ zu)z2BD!r>bS{W$!mAz*8JH9E?_tn=n$M)!VdbXx03N60olJ>^GBk})rlXIl?J`&%^ z{uznoDhdxnMW`~r9W|qg#32?GjzhpdLVAC0c6tg?Ey0ilzL#|P)PN`T0VY8C*F6;g zT?&?h&+v=AhQezD+yxG$1whNJVs=^-7G~8S+@g}$FIG^3nEZT1N?#{=mRgo@QML|b zDpnYih$$i%`j|u*lO!T`pqMVA!o{7KW^sO?qhPVU?{=G`Anr3RNmQ(u1R3vO$dpwH zZZX+iI^YUXD{Mtx)Eq@Th*lUQH(Y)I$`bN^EcR$*OSjf)og}Fh!n|Il*C3Eh823nW z+lVBY|CmM7#Ev^LvFK_PA|R-0+}vI|=z);&EJ`MEK_(H6YD|o8LaeW_GBXtbm|~}p z^W>as3e7#-3>+_Cg}7kzMVp@nwfL#7?JLUWg11Ghzyq}fYag@`#yCrtpcciTvdPu8@0+MW1prS|bI z+@?2djFV#Pf=u6;gN$Yds4xrN*T8;CC4C`&fO|(hx5^tfldwzoHj3-+I!4q0v@CD@ z=^adoB+8)=O%H1;gAOzp8YGyaR;0gg_7@Cqk%I6MM#Z%`$R^j?Z@)m1nhnxMD5k?fn;$XQ0*;!MfX}?l`&Nnrx+ER4W>OU zv5ea@PGDI-)z2^AFOrx>Z1A?fD0+$k-d0bt#?*~9gvkaQkbMW{hw**XsZW2Q*L^J2 z%GkJpXa}Z&%$5x*FR);X3l$`W`9(^cW~jmB%q>Zz!Y8rJ_*% zsja2DZifPVE`j*$ z=>aqYQNCyXjt;pBz@%6Vb+;Hj{b@lUDMss{k#?v&#kS92At9rVliFS6_~-h{c;I4$qPye z!C;9i%W=o19S!yWfoDhGJ-!}3&G^5hME_O5dl$P4)k|wR=CX6T#U#)ocWm>?`_6cN zq}PesyI`kOsWT^m`I;sC9?5@<1ds# z6?6P2=yzyP?yD$MNtJ#7<-ZKr9R3nV^JP5P{oro(dJD$Eje`)7!T5L1XWh+D0M#JO z5a{Rn*f3+c(cuAw@%Ae0KmJQJCa!m(_oz|`+kUG9^xc3NBpc-VEeOh|HK02Yh;84Y zHK#!Z{7=Sb;!nDS?z&I1$S2FT^+#;j@NzFsov9*)q{*#bjMp>n3a{?B_4__Fv~MzF z0+{+od(YW&e^J>gGwcRuU2NVbZ>DFu=_?$UY|~u=+5WrjsY@)SoqF}`OsE4cwcn`- zSGH3#m9!YODVC9Y&PlcS6VH5b3(O+O1^v)LKz9<3DKL$71#`0XIA7Oft=klce4Hr1 zz{QPvIxWW4HE8P)^(XH(cV$hdH+NOvy3?KNwXZ+S+4S>Q<2}t2kdRf*Ybwzs|5z@U zdpaGqv_#l1E4WQ`;j8Pj$cD`gVhOe+S+(D~anNIR9p0I}pq=N(if{XDB_aCr?SZ=n z=@{&3qL-hd7xbx{|Id^4!0TiiLCGbZIgO4FR!*C3Dd)vt_F%^W^EKrRREXaQS9NJi zTPG3I_#HB3AdCTrOiCmSG+J*UGl>lJ)lQ&>3kL+2)G6%v#R>6!Y_#^X>d_c@XCTw& zSnxx<7NTBn@;QYU4DgHSQ-jpNXa#?RP)d)X`=C_ZQec`oj1g$6;2ximYMm%a?4Jk9 zSa)?Jey%7T_H&oJy8T!n1Wdyr6P^aV{ZI@{2p}2;jGFzzToL3PR@OQ!1azs>|78sT&Kxhc5#$p)pmEtbc8nMT- z@4EQvC=OTwn|T$jQmC%d* z%YV@}!&YU@%aqMFe9&Chj8L+?{LPd?4-wOwFMCzOoU()j{O+8Z7dB?k4IokEeg!FS zsUdiSgr; z+}16EG(Q$v=u}2>T1lz!sf(u4zON5lc^Y#7i7Iey-j@gfv6EQJvNf#Wn`^;9ebV{t z96Vd@I;SrJb@mhLs!XO@|GJ7H*W3N$2~$_silTtOJk4i}VP=-^z-T7<8sgi)HYYDxuHBFOs^BtW zLg+LWqC0sD9w5fKPhT9cUxo=2g5%bL58IDwumw)#6%`2un236(hSGN<=1^R29@@zz z10E1iicNgF0$M~Ke}8gLo*32Z3~%3jTp%h~TznaM1{#eU^2X^;EIE%zy_U{@JMlh^ zNm1WnYb@{C;9MgjP^<^o$u?|`?sSGQPWal>Hha3(_EUN$l*hG&ho?zbmCcyDD7ZM& z*C*MVS>FMJp}H`C0xr7y`K>gwW%sj`xcl4QsvZ-JZW||OH+Sftgx7pU0%A6cQ*})z zZ1RQfW0zk|xw%x+z8*$5(1bKDfG>+QdIycF8m&Ae*np>xKh)ajFjv+e_Sm&@{D_xp zH|o&9A5ZxDP`o6`jweOJSH~k>%mEQZDV&{{-*OBgqE?S44(`$_6 z_@?!9mWdxJak)oJ+FWGDZDM&Kg&=oK;nPG|*y>%I8~Ogw68DB{PyAD?=X6&l=k9D_ z6lE2G=2M|Sc9p=cQ@amBC10WbsHSDotlf*{h<6y(l@5f1fShma!6W4(@?8Sd2AEQK zn*`$pX82TkVYTziI0LV1#MHXyel=QyN_f20kMP2H$sSiPQwY<+1p7Bjmz3tXNa`Yu zo?eugGrjxYdKnIH!snRROxHc&N+4S9Pa^XR?73Szc=$#@9Woyp&Tyam{s8l`4g^YkRR`2ZrXY?IqFTWi`S z#WR~ePwCuuqt<}av%^cbZ3}`y6-R_%It6h2|w_-9xj|tvD8w=kkz#TdBi{nXU)OSfyL%>-FlC2x*cqA!m($aEr%j zy8H4e6+)oO$b_6JC9&W(CEy{E^YQxD5gmbP)^gE1i?{$~7WyC`<{nN0Z6 zNLW*Wk=~|mn}f#?`D5tpGp^Lt*lNDO`PywnGI0-0f*>sf>Njv=5Q%T2ZHlE;M!TLr z32l9!wDA z|6}W$!{d&+ZX30+oyNA^*tVU8kOW9LrV_xWNo|*G| zesj*+d#$zQKcO<%$h)lauUO~Vv8Kab)72l2{9?7xtp`K(Iq#TYhpH}^(sETKo7xR! z@J5oM3htd~?Xeq{*H=XT`|3}@D4~K&xH-|vV>k-xRx*lZXgOQweUw`MFog`aUEeE> zqK*s7-h&Y~WPtowpsPIRSlRnUfj>88?|7t{-w+HUD!4OCB1Xcul9Eu7p759Qi$g2NR zl(Z=H3D57#CWxCpZ=eA=LQ?iUf3nAHXJ8X5>JR=uTN0VwkkBaI;0z$rej3mK!)(iZ zOTD$cryhTdQkrkZkQ79A4WAG{fqw$2w3M&+&1Hp*&J2-X;1Z{ow{n}-)tByuxdis) zqwj_xJ%Oky_1?_O$%Le!;V_434GVc48#0Ub|G{!nRwFqEW5{9iYE4j9l)Y{k37Kg2|;ZRpa12?^59dpBzP&yoI zHD<bi(Ni^5EXeDCw?YPqQM_LO+%*TtVXThsUM{85%1EwMH{Z$vipg)9GU z#qu-l;HVnTYOzT*I6m2aQ_Ftx@J=*!N$zdqS#MzJp5EpW*u(M2nBAV-{i=oGsw9;& z*5@mI@c!w5x9c0io6ERPU;UN*so(++`rFxx6rE4~Rb>8qOaJ28-%}rfv$s7b!+p6T-v*5I~9669eM(JiswKfp`d;0)~_a-l}n@Bksq#1I>psH zBp&Tw0Znq&a2NdmF4R>R8$7@Kjo@vvm#y)gwS=hg6lHWz9UV z8$*^)nAk?OCX+2Ji^BOx{Q0bDR1K}^s}Z7ix>qYKFUjl4TV-8-3Z#(AI`{Ksm1=bO z>Okna)7L%P4xZCb&$j#yXHzvD;w{Rf zuheS3eLDL+C8tnP`IZ}7+gg*_nEQFE4idJLI5(ev3fN9|l-=keB+)RdZ7dW#>V;?b z{MgcoY&Kv>52hXIjm9zr5C$k|m}rHSAXwXM^?GI8n=lm^Er6LSLQ-+41v9oka41^< zqNi8)Yt#}KmUr>;dWDp|;yUq*lfS&tnES65CT45y*srf#+8)#m(9E6dHNQ|*pdb2X z<4UE{%^&VzdHt!a(;oJOp?Yo8 zF^y8(V6J1NG0cbG4x>5?mL;yUWJ@;n?lnUl$T?9F&z%wfrTBX_Hu;9wbqiukfb08e zlkBgIgp;Qlw4U#Z!jekPRX9j)(lOP4g>bGONowk2*P8doi<}78@0$ z7%lS-`%jc9#_zNij2I}wh@@#WmUKW5?Jq29v50+ZeA3kSv1AF$9#~|n1`Nx%O-%4g z)xji7f=tCkp*%Q0pKjk+`b=|uU)4+cf{rBm8RE3Z=^R`dG8uz2*P5bR4GalHR~fcL zkXnRRPg9Ibc(KcWt)1DBXId9yXv>iG{Xi#u+O7`s7n&!w3GG;{aqBNK#r87C(JSix z0eT7H1)|rTy0b5}q>>dx6j=t6!e-*IYnWbQ0df683O>WuVDvghej zk?h5iX-or6^~hqNT$9}CU9sz^mWNnWn;?gB-bt*hJv5LsADrx!pjjBbC`FpfvI@D+ z#k<5n=i8bv0X;Sdmh9z_D#%0njw zWDYc}&XRRnP9WqO4P?r!D{|=R z9wD?b-iGIwoxDUN!l&YEIsIn-1RtHh_L(_*)@5#=y zlKxF6stL44Z`pl^QLbnlr?1 zC@V_#9XX}dV{p;7f6 z;pvO`CSiML3$J@Ip1ywY$JiHziBm(3Oyz7ng8t>OR^wD+y>LUxwuAOze%k3aT}CeD z`>_X|ZNYJ;=3Z5)#~+Uaxs}Ey)M!i1R)D19{ls*!O>#AWg3@&>U$ZfV$X*mllEFH8 z_xEkYv5t&_J#oWY(MVSh-k(hy3qIc3I{ zWPrK)5VT{2?#WyQE2xlwe3|d1_3E!sunMb$CUM1vI!lrhnS0Fn8MMCNBgfH|C-!nfPhXKs%-d*-A0wnFky0Rwr=n{|jD zj}UW9#)DFmK*Ix7Ow`Z80{GUGl4?VyQEhM3Dgji*t&{cDDp%3ZHbGV^y6PcN)o?oz z&_3;vyS^S!yI_y}J`HiUs32GVUIh4qU#{vhj;`#OlSNMrl3yeTV)!2QN!6iL*`ku? z^#zoG3;wavm1@r7_%WM84~V>0DG0O+>d>EfgAlfW^V_P8V=dB|P)+DO&ESGwH0WT# z%wqX5#t~@XC|{le75dd>CDTr{MFV=%f(dJ%l~@+Hdh0G>p5gXj*VnhL3$uGJD9D*9 zIRmfo$5$mWrT6AM=W$tP2Sind^~5Ae87lqYKz2Z=K|ecTkRr4cBf@j7;Gr%}OKr@7 z{ri;_$Im+tVqYZ}YM=Lp8}gykzATx6!Uht!AG@Qu@Vz7%L&To#nqe!+ACsX7)x?H-Au7i}xTt{;*A zB=i&2SM!6AQfskgzNnXgo;%#%OB-%IC6b}Dxj)5n&I#q(3RP>H%`8;g%0t&D%or_I_c5(*~dmMCOT1qJO4U z6R|8hAh*7xh0HyzI`L>N_4emI!z)l#@E6b*rY%5Mh-VmVSq!& z3XKx_ozLC2C0e5T<5*+@9upu#;fq!kt0)3&nynB)A(Dh=?P~Aafv)lA@{_f-2!9ue zcsCD89+Ege2>~)9R2aC|B|K?UNUCgipELa2Fh@ni+gmPIp~7L#RHGG(t}9;*j9UM= zOgq6*jo6yv6GJaTLRs$(4Qt4*b+5m(*9eK^SacIg|1a-Cxn?sFJ`eVF4$Rxo#QLhe zTi~CJ(l@rr^>(nRqzkyLwcu@z3oGpQz%>~~dhPd1rF&eTL35s7v$M>f_ZD4p)vM`k zf8cnez8Z^-AZ5oqrM~u98RU`IOxL`U{2AA-n0y@RqI|s=9~mvp=Jb4DezfP1F7Oq3 zvwa;(->sff&hC1-8|hG^&vi+7D=EDug60JPcezz~vGXF{9iH{V?8u7vkpO0qwYi=$ z2R@>r1~+ok(buGmaV`2g(bo?0HR;3tQ1`apgMbF>yBAOK)O+z%u;NJ41VWuSx@U=0 zXxnZ`g{Sk8Oti<8F0ep-&H{Z2M4C`o^kR|#h@R;OeFLrCVYf8+-$(&_je)^L>hM@J zg7V-n0f0vybX8tW-HEQ8Q*}aZSx)VQsfyJ57J^s15gG3-qKWWRbHGTjRCAq%LF;AC zI9#fXr*g<}Lbq@LHd63%OT@FTRn$bG_%egM0!7(@WxfW55U$qNvn2BGKELTnMQ=a( zgahT%fpAPsAqt(JVy` z8hUkGf6-mgJv`slk?SLoSx9+DDEu|D6w}|)Ho6kC=kaX?KEyGDHj+4)B@0sI@wbkK z2@cFRFPPook#f}EoS8?XuF!}snY3=A#20rZ=3h;UA*?fX*5XXw1IH|{2= zy*}?{d-@b!I7VP?Fd?ZYogu`}*##RD zk#~G=@Kdd420v?zZN*FT5=LSp_q8|F@_^J8EgP<8=`_^!rCmKp>0(E6Od7T5ny1<0 zI->9tgAEl&A+zDpLibhS&W5X@%IM(B<@z<-L4+E&Fow_gV)s ztJM%^y~{-locUX&TVC0;9i!L_`Qcy3>v%Crg2B%31DYdP73QuSzX2zsIAj)UxO4~N zHoTHjD}6{3Um<`yxctJbMT5I%Yl-J-dJJPIlSrDU4lP=$Lq+PiM+Empcu5nfqE`Ob zAlMn!i}2L36(;y;K=ZGLWre(2glb@Axp*r^7eV*W~dE{MIS~o?2&f8=Ez?DkzSrv<*Dy6Cpn&B52TY<|47@)s~EH#o8}=p=qZ}^UZGy zSb!Oc*~by5I3CQmCQYjRfU;y|rr!aQdB~;URQ{5A(^IRg6~47*e(m{e&|wO_ganX~ zpaFgaz`(ld*=6s#AnFuw(Ji3@pdz82|5^n7}ZnDpd_QW>lD|Rfc<$P{5m$d{++vwSV~X=I^_S|8QW2fmYhc z@=b(Q5$CKAt?z36Z%GMQS&~aEk3Xj+0%rDhWv!l@pEW(vk;E11XGO`|T>SwpTO=G% zvH^*kMLSx;d73wQ45i73Ti}60{0Ng^H=lU;C#KdhpF91429TxYL6eARg22VyU3399 zy!p4hT%A+7*bqTn`Kr+3Qm_#JxiSL$1Kg-d);!$Rs{Ey&EC7Bq1MSg&uNm+OlSnZj zbNu+TAWiYS5y+@~fxLMLhhR^ByaU`1%v!bWnxL=#(0QuJVOXp0|Fd8*b~h#P&v|zx z$#+P|D+9g%N@m@_*Sw(o-K65?)CAuBvGY_V#TlWX1O(#{Nx*?&fE`+y*k2xIRua@a zvh4ET>hlv!+QWZ-RRdgM<%5?dU)7-p^2H&1oR)awCgS1Vl%?^M-x}k;Wmv?0*#&Xu z#{-6?6@7#?^V*Wr=BsldO`#V0_aW>Y3z$4Hif41uz*Yee7EJKZz?}{e^X4Hwmq*G( zu8EKJ;R`EY)lIB2_`j?4aj}*eVU0XSYjqYrmH&8gk0Q!bRTOuGf%X^7L!N;3Y5}9NPah}OzX#ZY9lfumnh^PdrP0t#Nd}>?6p+vX0eJ)z zhiMp}%TxF$5G_c3IoKeE-Mlk>GYm5$c*YBY_XKOmCQm72WmnQO4zZ( z{`WGL*L*9@GQML$SB~|QN0^laF^_4x`kxE-XC90eF$qm{!O7JsU^`DWVNi1w7c88g zC=QYYG(4u3;}8*D5Fn33YgFbRtWT&8i5?KFpTC2P2W01~KNdYw4hLzL5zxV*fqfW) zd-=o{js1)z_bMV}|B0^);pYm9 zUVa8dSa7f&eldpUoUjE}a?GwGGueoHI-!|ZBE!tb#=%j;o!8Yd!ShV;RcE?75nBtOqKtTH ziyO%bdrsd;4suM2sohS;b$)+yMUTvr^2Yj1blDp=a^{Q@RXKms9uES8%K8JxqO6^0 z-hN?+>(oOakH?%c@|%nN+Gu*7*06rCJn8<_wih(?=K^Fr(^;UD#bSpgRwQf-aFWrqlbko z5(QHTbmG*y3Xk{T1RTbQ@?#*NexC?FLB>FVb4Ps{Oh~V;Tran9Ijr6sQDAu^9_pAC z^bI8p4CMC*g)V`GpcB5%zx-qJSnlnBRmq#1N@9K|LFy51-mtj_77eVp=ztz zus4EE#{0Iioj_ILP~T3rTD2M)dQ+jcfJ59@k}pGNVh#?pAXX6T?%9imYTW6(HH z{R8=m)YgrjjzsrxyE>6eAnjiPGg(Q4-d&Mm4nA4gSKg`AZ3xDFmMzyQ+78C`g@f}x zM-wF{a-6s|dV-d6lxgUi>V)&TSMTndq&cIkSV+v)w`oyx z*`@SOp2D@ z;S+P-Pw7feazJ~kYc(TUpXN0w?7j&$Dv&roRT8iVcz8yH(smP-tV}X z-JS*pY`@QWAZB(}Ec~z25;NTlv-Dfl7{C&j+wrXwz%qf9xp|vY<^)3W*6Py}wumHo z6$l2Im_kuwYcZBa4#3Uz)vU{6kxlIiDwD1|i75BrS2m@^ujn_-fjy$P8q5_3>&=&)4RRYOHR~Re`*-vb9 z>Q5B%CfPHvaK#j$02+l%@EIwPoL91YI0ktT;QlzK&QzHb@q@kf!gpF-ei{^}8?^Ql zjegIcV~nq+qs9xw=wEBTKg4)xW$2zLoz%(;tw;EAI zIX`+gm87)j>Jo>6G z!RK(n4T;c=e7}~Nqdc8tG!(%lKF($u+uirFdR(r)#ILCrtm90Zpg@Oz=UnSr(qDEl zJ0Di*YZq9LztMUA`nuFHF2Y5%?iu-!%sy?DS?WjFYph*&u(|5Ro4B~rrEo1;u1f$U z^x9FU0~%~nOU)^z?lqH`4XCt+9X6!Mrmd=ktAg}rS_0kC3p#> z7iWfY9vU>4yt0`fNm9~Oxr~Bpb@MhtSlt_P=Iv`W=D?LK=-TeuE|;kMS&fhJ)Ebuk zVt_m*%2i)d@xAD~3t{RhzJ0ml3{gqBX=memB@Pc=3~YHgqhdm@i+5HLXXF=pzGAnu$5$V4;97olHnoy zCV(%$eMjf1Xm{BFg5v`a?0Z70k-`1N`aCz2pvXo8;AP**0y;*I@-1OQUazks`*DLj zUD5Up)b?;8-gydK5EQ6O`DckNkeb3Yg{=){HGAjS6mYzxddZ(N(cHQ#W#XDV2Q|w` z>d`eKD@Ep;c`WaB;1+`7`l6@2gR(?JkqJZNga-44+RRVqsWfk?m_j3`KeY(lBLPJ7 ze?$HS;5mj#DcKe>SgA5U;kY^_`P4ESTVdKmi{^ruNN5w#B_fMNrqRi&6qVWT=*(^v zA~W-z!!+A>t_Xmi=mYk9qOuDt*{};#OmM7%t%?1%FNm`ro?p>Oh zmn>!;<_UbEBB4FPe{jF8>z{l8f%_1D@-nH#5rE)tmIEd3p~eKt?bZf6>Tq-I#>FEL ze3cBuI=163r7#b@f|wX2-tX)}TD1eOpg01Wb`7nZHkGw1gdz<+Lu)=`4iQQvg>qrg zLWBclKFlLksA!b+Z1~kSeGd_fJ%w7avG;Z-8h9V$*`f|{m^AlNFhEB+M1ZXuKOgjJ zcFZv$t0fLy_6<&Sd@ZC;#0}}IxVX05J;J+EhW?vyiTK8|MMUYdxMlf-tk4`v!ThyJ zK8#5is{mG~5AGS_x&Th^P8C`Om~`>EzynoMi0H%zMez^s{1;{t7<5kE!7o zJm;xSXg_16Hf%%RuS<(e`*asTcolxTexuIVFZF$!DY`<6{crH`E1_d&4HtT=SNF3r z(<3(9vRAvd2D@_fj(D#ey2G7IvCro(_%CN!9U;bh`HRLSo-{8jEvecsMtc}S@3xW2 z`{QbO&_6b*o>nNJpLebs8kXKKbUn{W#SS7YJHoMU-sJZAh}tJ^fQpGkDpu(?<89MS(R06Sj(gw>C%=ia3-@N6I2nta+psE#O{LJKsDqq>t) z7)6wbdQcf4q(PLrlM3-nDXHOlqO|!7k00Tij=@=Js%D0&BO8UtC!w4`v-!zsafI`^ z;R=%0r!wh{`dZg*AOS$uK5A)W3|YkH8@w54h96lT6tr^lLOYAW3t3H5UHMKmq!wq&OmkE($+-qpK}30Up`nvjvT^R&1 z%tC^{ zbV&%1eWh_q$Jk*Ol~i9Cvtr5S|}40m;Tl7(LCG8 z36yJ-#mJ9->4cqAkt;I~VYT`C(>Ebj(`r5M_SiiU;(2%IUo1n(6rrtRQ-&dGL$_UJ zfGvFbZ~5NHCs$qG#&Kgg)Yj9t5;x^>N63~dW`14cj;bNvU<|b`g`VfZbj$SXM*B5& z38D1s(p-YK|G7t80#f~ziKqgy`_7VWE5axQTE#|U$7G<~Qp>Nfy7EoSj}ks=>c(jA zo*kz)d}`lbmHnefo>6|=Qz!b^yW}bCKHP<7BV6DRjdfYVG!sVdv|06>qE+QD?emhh znCh9SvkYf#x80wau#^qf-_rBW_b^q0Iolt;{Vn9vtvYV->pCWS20_Ov{84Ck%`!oG ztW*r3kjO63R=!N$cxxy^bU@H>>5U$6zZmPv4kc_*?(ki@s;Gp{e|L8A3!nO1)mP{q z$IV=r7^*Py>$wvR)(x?T((m5&Xt@yJMQ#q2D&q zA)BWVDw1EL$UE=b{p!uwL@pJVek=j+! z=0!J$wECV!6ZtsNX}0SW!Q{{NuF6wWF3EbjB_fyaBRk-I%{~1#lIvg70&YI|P>GwG z!S^aY&csz#=kn{+4IlUW339TUE!XRo0{y%mHfcthp2nESQol#(IaQ4;?fQV z4wZAUASd*T-Ke%)#ToaL{`FGd`=ZPa>qvxa2f&D`UBOt+`yXPHnhoNQw63V;M_Tt! zk6;UA${z;YC}NV4aB`^tBToH#^0-d`=I+<)Z-*>!0A?D3^IW2U4q>I5|; zXJ(9;sm7L`!@eBwJeK|V+H-nzOo5oLGdKbfD_}s%FxO_iH6I+eVe@Qh$f{P^I!-4+ zzOxMtR*0$7#-1}uO_M&GkyjRbg1;@Iao#xmgtn15pxgF1aoI5jBQlRg?6XQXS z>$L9nYNV}hNaR^b?!m(6hc`Vd3G)+M19(KEvTOtR<{6p*Yel8(w-0ut6M-77#e6H9 zJf4q#_Haxr&)TQ(4oD*#`<%8D@@wU_eE3MuUDrg7>AwR~rJmMs2qP1a%gmeKkB)b4 z&h3X9?RZ)LvQDrFfxjE&3#S+lYxI~xEHn3P@Q;oi367H96Tg1fh6Qtl5tlb&w0lL! z(EOKplC1ocB}$aSwC__{gx_|L8x-mgJ}Zr^IZR4@Ot3%1dt!QUpsLnC{CWC`>a^T4 zKFYz;?B2OnL2o5N_BqD@W5tx*W4M>_zK$L9& zmD8|Qpj=Q@?+vF=QaN6y*wR$cQcEltN>5GC zpud(kbTX!EfZ>f7klUV0*01ywZST{Q^cGrjgR{Vp5v}y3Q=-l!eKe5d^FM#y%8PHf zD;#YAB$5^d>M}}CZT8;S-&dFb??I*)q0|lczU=EOTpbKqcdKRY5&gqi#;x_j=h~G~ z&p8yT)z(zfw23rC(eR?1Ks`RSMg*e$>c*G#XY|=A_{?W0+krA<4&gfms#(k5hQ>V z@QFt441hQ~@zme<8p62Lq{QkmkIu7--mo5%XFQoJk zkwdx7IkJ7p2@N23>e{H=BsCd&qTl4C8 z5k0CTxgQ;@JWati7(ag-=Dw%iX#hDh$tAxLHBkFTS)MhNL;Mcr>%0Ckfkm2Q=^J?d z4d>!Nlnf0o-Zt12mqQ$pRM(A@S9+5XMMu0$ap6&BVHhkebO|hB14O3s#<~;_fjdWJ z926vsRAA@X7e8RZh9pJRerzEP89G~0ne!LTa|_Cs$ylMXj$9Ojfk)@I zI&z&ae4;w%{wEGUw=PGs$JrawoduGF3zLtu*6>r`z3#2)-zQ(q>NN{GUJl*}WZCD& zm^yViM$9@)AA|966(gmLaOqvLS6k3CPp+ekIq$2#Toxa%c(ZnCsch(e2u0Yc-sY*s z(-JZ)0Ku%z)@A*0O6R0njewNtW$|GOmFa{%V;qapAr(zyKw7!94BbJ7V~>*xY1?bE zMzC$y;D*KAw-fW8Ja;p^j9fj$m{o1;s{BU})>vcFmYJ75r%8nAspHi)8`1f_c;5T( zbx&I7SgIzY@$07>SrV?U2htbU5A|J8k6D$(?<=yoz|^)L!WDHTy@M{T-uK<=dEDQ} zdfz-3G_>v5Uk|TaTkJ1=8Xc7MO~ZV=;KM)*{LC5%$}9E#CFuhXh!O1==tUxhV>DW9K`@pg&18%f(AsYyWXG{H32lmk5nH@9W+G@bOd)noNKpshdim`AE~3X4jR-6 z5*IijbaGq#(CN$}U`Q$MXaF}^OD_qW?FV#d>hW5%0% zroGOPKT=6Df+dsYeNGmT#VbN3lax--*@7k67ab{*D$n(DteB{1DGU^_%PfJ4BS4bI z2PXpC=T->3WSDgn(?T|%^-Ymx%LYGsk&i0rIn`Vu|FIw1 zQekKeX6}vVGS?(7y2#XM%-wO|N%X!#hcouv9?=XbpU$kBz)Ct*+U4P}aS~SJ)p>1o zvwQpE7d5dC=ySZcsT#;CSR2AnLOL~|OsjYU{upxARFU^sb(<%TEb%!VO}w{EKTKpC zuXgPNy(0FyI_3(P?qmBMT0FkVn3PP=U#$N;ucgDUZ9soosbCrS%|6 z5g)X6YV!X-tvxjtNNbOKB+;mHO`@BrW~sXsO2uieNXL{aQW}{a^1eWEHL;E;20ZHH z1e)umjuWSLZ4jl=%`DLtG21TkJ+Ir=`;!sg{%wq{#gnWIV1BX0Y%{f1(D8U#QmZ~h>F9< z>Arr8iG$b6)jf*X7kL;muQ8{UatKUM=X9!RuQ}}|1d3=o0jILOST-qWj@8r;>Md6as3_x#j#Y-34MefNts8TcE;&gB#l8{)(y!$PmO$cxtA<+tgCyg6oeq&Tg6Gs*gOwVVt#aYcCGd`iu7rYWY9M9W&s@(L zX(oV1`by;#28HB1u}R)Wgfn)j=PYEfGok0dvlf+SEsWaHa^?E1O#nN4&OU0R^g&$G z=rK=CW5dO=F#sr2Md`IlV}NM+t6vpNL);&NN=!i|OVvz&l`UCmp}&=SKn5ySarUL| ze{cR9Z%IAWcc&^-NTIDf3%YrVkwqB#OA|C045B8X5TFc#GXZDUhjB--L>EeFwCsvb zxj+0{I#{8pfCAMzb466-zWBe&Rlx{y3X$dR=lRk|a8!`~VgUuHS&{!pRY4=*+Fq^X zcRtjqG7SY=Uq4iVV2Z(-ku|4+&qJ*DLLp=t%0 zP6REZ;C374j9-DxS?|B%7)CBE5SY!_XVzG~{GuT+UmQPY0r5{m3tgY17;T|ZPh}2t zQ0<~CGYlvDCuBuS##RhgCR72=`Ztd=l-raW6_m=3x2YnOdQ|M1%(eHl{r<^V11d^b z63b7!%S{62HM2Am#X3r5g2lF`irtkJKmS+8+FNLe*EB3X^W)Eq=Dgfl0o%v-2C8|- z><94wtpJ+qi(`m{Cx z-gpkGvBm(_e-GN>1=0ud%Kim;W>u&^ovojl$a2B^jx_a4Q0O(t5A@gX=-yel%}w2< zJ(L})C@`|LXu~zB)PK^?5CL?>7RnrVhBNJ%vj53I9YGx}N%taFef>+^bAdLZonnB; zpM>kllX{lc4zcoEj8wdm_c2Pvil(TNK@5^+#he(_U9YBp^0l6f+Cpi#_vU%~PY2%4 zz9A$N%-hw!luJ!yWz)RYEP?E6Q_+FbW1{&sUe!>fQ|9Vwzuc@Wn3iF`pU#zgtrI5* zd~m(_)OgRJ7QB>TdA=WF2~BXr^UVCnHwC-sdluXCcFjs6lcpl~0a#vjZvK`Ol8*dw zu^z&pjV;xbI5Hexp7R{SJPb=Y;B5_u7NFe!nkNs=^vt z{cN754(x3ekaHF~qYC(n=`!*3kk{|GBwLZItwZ7uhkp&@lHovww@wqvuI2a&9on03M*$3UAyRXy&t+BF+#4D35>DByHwuwi z9*6C6(=!>pWp-3q9usA~k{oEV*7ZuRx+J5oW>>AO-9R%V%EAvRyYvW{xFIS)V_uQS zLJKrX<7|13tqPuimR*ygKqrt2t$~#uK5tD5xlED{-Tm2 z22OpvwD%bI?55JsX#<^jm`>{^lj&HnTzwA%HeUI(g{tONG!4+d>6v&{RPBeN@>Uhe znRV}*@dPREZI`Th!no~Js;-|`hQofI&mgeco)FToU4UKrzjRphsK??I7ya9hsCTu1 zoO3>xU1ry$BGl@m#3UTu)GJaTKW@Hy?75LqRLYb|0=7cu@fQbG^4H;1F0HuMa%Z31 zsm-}p+IGDkTR&v?nCBf|vmJ)#xrX} zBmIVe+8&tZKP+4P000Fl)gS{|TdCyxt>xD{t7 zC==5Ptx>-&c+_2sIwX#RPvp3r^)^GZiu-Pho&~lRuAg^@vr}-o(oMrp1fx^n68|!K zX?$~j0Nq6re{nm?2p-VC7vFSo(>HV~n69rqSsn~*F@(RNJ$Buan=Vit}kq?nKNZ~QtPoo-x)F$Wf(6TXtQMT- z@a3jQ;!_i`8~ikAGlt&srF`GIlC`=Uev{nSXb2XmcUr#s?uGVr;)Vd)+gZjsn}^J> z&&ciP19qm)4o?ow%*Fbgn8L`kQb-k#J;~TYL}+FOzA6BIGQ=2L8J2xJK@lzFxT`Fh zK43wvOJcnLPWl?Ag&y?9su@6O)jTkxuewk-LDciOb@snl3`iyiEi@!omK#@HXZ6NL zAJCTKE+H1C1bEh;NZEJi;Um~-z&QV6pr6FJig@+~?~ibYVgzNOYgFkRah>)j-W;-q z#Di4V3tiX6RQhB(?VBfWPr-xg)vH6xEsXp^&ZYJmc>!ZC!2?X85~!vTtqX`2k;75G zjmLr@pY3SAXwRJ$flGrrg4KuB1x<^I$RIe4(`VWfQVD~_aiqqh*4=@rYkXht#|id{ zVb}6=RW=VVVbZhk(o^hV9KB^sh5ULFy9EqZBIqVtw0j;`(#LNRMQ~tf!3iFn=ovtZ zxjMAY8WMwVuoQ5#b6=t;3Z1f%l5uqxs1rKb{KNXHq0Ynt{kS^w8#K_9M~l66c(sgB zJhj=3bAe_neUq8O*?&}gIh@1_cYLgwaC4Qg+D@I;Sg|0Ot^!!xnR!XMUic(@abVI^BuzSZ(-(K8*3F2rGl@(84 zzqabw?{WbIXK;5)H{)1nV&A3;Iz%<1M^ns6Ad{Jt{b7kwOkrM1Kb$3mH(~VtGUU)e z9JM2eM5@9lqAM}v(c9lizDN^WsAu0t)d#N3)lF*t&Tm?)kYap^VBs3>=~xO@W{SIW zhM05hqIh;X;Ol(5jqd2B)81i_OeDd6WsnGs%p^NFkA|Y#9z+O2Bq5>2X(tw4!BsNf zvFF^3F7n+JRaCMik&tDvAt8*kBR211PuNErJ;=HB+Ge&EA5FT^N)gG5@Lm_ztU0#n z#x3$CDV3+gMK=sB2V>a)4wdq~77Ru4!inUbnFy#9n~j6@QlN-#tJygn_J20!u|49W zHVwg5$)qSE&5{x0$!ER{F7LLWTvRhGEl7*xPvx@`<>fC_dnIICd~-KB;`nOEas+p7 z!E#d_!c;(EZ3yfhHe$b1{ki_LE34%C++al3?}JX3)dhd&5)p#dC`}hWp$4Ayi8S1J zxFzC>@tph8OACwOR6=w#U2%M6w=>->)*G7!Fh?8OKT#JF8{d~(?|n)K-P?0vnS?dk zfpzqD-coNPh{ZKROZB~lOmNrLOpk#zlSq`E814jU*VTKc0dKC%uU7`^Itc=mO=K~~ ze^Dn{2i^J+NK>xl!nLliZfZSeR|Rd83;i6# zeb@U7fzR_qWTdI>#=M^HWe8Ci4)(7Ib)|zbMsUV}hrfB zmAAkR^^;u%kql!e5{)?VI z5Yu3)GBjc9+OzI=AY!uq#02-((&s+T92MdNFn!>rSork6N1Y|mFCzCtIBp%!8xugx zgrsPdg38I5#tT6y7y(31i|a>9LbkzS|AjzE8cY7-bhCklaXV%2-tFFt6V675wuGyJ z>m2X*oOmKd{wkuXhB^krr;00#7JAlUvRO^Q0-s| zgd1qu5J2-Blx>S6XgR{8KIX8_7VN%xH&oJmphwO!OROa2mVz599uRdXxH+vA2ANxA zu={C_uoSnQ}Gs(>D+RxDXm-}ojt z=OG`Vsgj3EVT~e@ifr#+eQ3gi5 z3uur5Esxm7A`%#ZX!0+p{F5}yBr&A5Hrzx|t|1jR-^4lNE1v}ggljUy71NmO;Q#d> z+LqR7=2Bvm%w$R}WveVO`+$gFT@nM&fbsr(f9qNIA7^H<9A*yVxzBZ- z{n{Hp=+j#{uNo7=+PMY%mpW0-3$-|KN6Oqtg4O1F>|mG4Ik0VA+J)AG@5SHiL_*F+S>JO-w{igMoTnYkEw^_P(ifOdGeLzub(y{iM!ZreK|ML@mxf{$2Z0gY+ zQ;teSn&I|Jp@tij`dD#X%y=|)yA*3o1hPV^xShSIhR|n6C3)|;PS9pJUMqxnd|sO) z-oTe*h$@}D6ipO*(pT1$o^+<2BLZRd)640?+y^`=0U6~tzt0-JwWhYAbs+a5);o3Z zI|WrKpP_P@V@qSPu2DL{r1|6n2bVs1vXkj3rE0B?_i)%{OMK6ich~Zz5V72)V%W@_ z)j(PeTYF{F8Eo!bjEpLB19jJTsz0~(lZXFvYoC}OgIQIcu$S+8C8*xzK=nZjmc%u` z&sCuqIg4TWL;(b-?AOlz0aPIA#=w-V=KCM^LRtDParpD{&8$4utDhq|Keo@-Vl;6& z&+5^MPOcxEL#1xn2DP>(54Px@9-fyhq~H*RWNBENH|B}A?q6q}b{^4j&t+*go`@lb z+L~TJu#SJ#y7`FqlpX2#Fv%RolwIQ9Bsk2$s-`9mBfhR#Kb)%U%mj`;N+>u(oZ~-g z1w5hmcAi+5hW;opack6mw!UyTsVQjGZT9hD{qU|>^FvqRt#!|lY{W?Z z*_DP@4`2`oV(lgGl!jS7|GXyeuZKDwx<|eQbvkuM482O(x#7xcOV?kN@cEZl9N-KxvgqYXqFq6VSwgVc)!X{tvHW$rqe*|63vjfLpWh}+&HTO$WnU|aQfgR< z?wH7~=8{^xSCco69>}aNO>u5ZQRkJu&l`&2G+fRc4^d#*rgaNn(S&t%Ok5vtHj_U^ zXbLFHG}~)J*F3E_RGF9TBROR!vzQSv$nAPas@<8JC03Wvc-Z}Furl(i=#=)P(|{bu zK79wF`Pr;3YJF2PuEW6GF7Z&R!@vql10ufDz)ID;2QsKQt)gn<-WQbZTNl5%T?85` zf{*VSAsZBMxMBJ5*#R4!h!jb%PObl^CK;f*xoiD=o&--xEdVPMt~&IcZV1yWp7ly; zxmxI_JxEE`JN8zqw#wiUYT@L6^YpS2=_~dwY zvJfm4p@oPNZ>(cf7i=F}D}iL1xB$f@mH1}p4O0gkJ?PMz>IKs#a3gwAP145r)iuq5p<5}FIrlI$kadp z`PUYZ+0NX%xSzzaZLwZ*VWGONgY+OyZJ&gaz8c{L+(pz}z6f&V;0yHwz(E7lh`U^Mrg3sCI`0_t1mb%G+ObOjl2vtD6`%P{kZrSSl z@}fmU#`2bugm*Lr5+eQtz3}2997R%o(l?i?tsNzhJ)abN+vxcp&A0c9%EL4Rk;;8R zgg~-li|G|ad-*(9#ZL-aXOBn*yruf@`UZG`VAm_(HAXq)QLe;a0A`x&lhcDd_KGtB zsirZ8QMd9K-gFs=DX}L^_`gJx7jIv8`fPi9>O;QTbp}X5=mA4a#xJY`Z}gQ zCUx!AGx@$9jC7f&Nik4{kjIX{+)ANSR5$e6cf?F8Ty{{)g^bB$VL}{;ZviT@d@r z`V{TgTMsXSHAvuq&3wa@b{`zD@#-2tI3E999D;7%{%z*V3IP2-D**GOS*{E=Zj%B9 zC;w-53V2I$<&!r%>HLha_qY_K`^*|99+oX_gMA(o=}R8Jk`Q)Qm+fK@vQLa|l}sE9 zkq!`-nhC(n^5-6ZQR;o)5waH0q(CVy(QLy+w|u&gpMuX$KIup${acd*g)tg7@rp zclbF)cB2u3b#Fw+$}s^}dpD0@&x{6a!)S+e0jYKj;fj+B+s&!ht(O?bn^*kha-Z z8$_A)_f$M0tB8{Wpq}Uixw(juu69+?X2qs=@FP1GR0 zO&&*DqyHqMX|peq(dEk-iuhgu`)sc!j7zTNT5tH~nIifsMg%wNwL5ce%XMd`r#T?%BN=XJjA_*+kGc#cgK4;|D}^WZwk-&7KPz13Mv8@^MtPj{ znV79q^iD%WM+tKQWLy3?K{_Tj3QDv3qA^k;s7mi{LZz%&?&-ON>iN@!dg*{L(&Y`D zLYbvx<$!H*P{OIyioFVn35NzZe&!+db`AB)uz^;y4R_q`?&`mgRGXjfojwYuFiO4RYTXk^#btaMb-zRF$ zu*!%m6Kt)bOD>!}rqMnwr!-84@{ZX__a&$MAr+&c7!G>1759C3Vq`lp$_T(`xhlxy zwS#xh1>lZ=Zm zrg_Z7IazJXmZRhKW_qh5t&~^CVU|8rR`432vmN%wC<=o8&_z>>%X%ReJ3sMfpmjJ) zQM$xD;V4~|DkcW~A8j#Rq6?VX4w?sDt>&$>5+!VvN1tbp5Oy|=emvdaGn!=%H5|(F z8%AL1LnH!+`D_EFBxb)td{wHYGTrMrP(F&cehX0V$tVfIpxz32y#o%%W?u>#lO?1l zbaKsd00A6BN&+GEO*pbHuDR<8q-9wG#9)N1NIl;1$E60(Su0_|UXo$q?sVDg6nI9hDD z*m$Z?uJODyze%`S^Yz@+SaYf-Et<~}npln+G-ED1A4J4k{Wn;^fg4-jfbx@~Gz|^B z+IEKm-V?vK0yRJn`W0Y*<=E5pH03iUHqMj_giW*ENwyR4|7RD3^|}i(U988OU#Jf0 zphl&soeOz^DXAS7kA$#I7j3d+NOLGa&cgx_G5!w=&$gL+9E$$|}OV zSAeQT7U<0o!2ZiV|3lb6!idNQaJ>Hu`tLaf`c$PF^-aS-q4AZXMlij24*azqSjCjN zzPiJ+=PS(#uTiPNzIyAHGs4MK+m)DE=pVv$Iw+#}zGY*FS^8ZJ$2N;9D z?0|l6goM@aqHEcod0lT8QiP(m!=LZkVEk|Uhv+mYPB8?BK*Re^((rC;nn_&^Kk9yx zRffirO$h#aM*vuP&VMrxQuL0HLUwPlm0=MCIw*%~lw3M(V9EUW(pBM+S&k3+5MSW8 zEdxJapvrl*>-}SZSh~=JFb;55{!Y%7qNf9JQ-w3&f!$9S=-SpnNDl=E;@gqYt$Am3 z`@|0~Lk!rYQR4A?@ich(N~Coj@HQ*HJMc;>ARI*_>jq-(ue5u{C#^f9{Kq@ITE5V& zaQ#>xp5`G^2Jlsdn(_CB}?yNxV@l_nE8r#FAzFXY1 z=Av2vqq7-|H`Og>$i9$OCs|jkc@lpm&2z9hdeCWV)Yat7A0ZZ!2~WIPTzEAULn>MH z0c$rgc0{C?a*WZkC7rwT6ya$@9-Cxea!j%v!I$d*Zr9^r+nHQOV!XC@W9{=M-rs)GMV$f)`AAm$=+mgXO^aAm5(|(ZG zXaTwqCDd26BK@Q7_QO(5bS0#g#t$Z@e!!LPee24z?o3VTP=Tko;9i0v$0gA;hg38h z(vr$9H{#}owNR_p0CI6ItHkF@eK{CB;Q{VYbNgUenv%t#x{(y+%b9nU+a5p#H4UUv zF~#?)&x>o~!gu`OR-cB^Mn8g|n4Z|F4UEBH0MF80%#k26m8?66Q-4q)L@OLzFJs-d z)&`$URepnaWX!l60i&u`eJ7R-rh~gE<4QXrbCk{rTQk1z#$;%e;xO@ae1w7Ck_2$R zHy;JaaXm1l11dXahWe5B&F4{kpvPTE^7RA(OX8lV*1T)F)R|MQF?5`O z9pzC=soDHF^i5KVVz)pufn|lA{W92->)X`f6-WM|v@2FN90h|y_!?RvCis6*7 zt)ugFlgztteh;4NSq!Y`10tbVV<5!e^=DStTqSl&E9a_yE_dItA4pH{MsqM9g3Gy``a@|ZYwz> zofT6lCmz z`044WcTdCWx3aG`_zw_*>%dO%i#I-Su$InCe<-j9Hi3KGtFz=_{%MSkk|YkxVF#33 z`PFfVOH_cspOvV- zvq)yVk_)~8diGw8PC(E1Wu_9f_w=voq7JHx`;>~NB1M|&llAHE`1Q9FDBh?jPe2tx zlOr7jt}=2p;l?BE{(ZDNMuEt$pSXh!aG*M-<=HCIJ$l62E*)2oKvL70tF} zUcK?bRnt*adj{AQdT$Jx{)vi~Sqs&|xanRcMg9tr8k#XhRcfcxr3x(8_TPZs3TPV3 ztYsX&@L?Ul8~*9jsS3q5vFv%KG*YF5*}p|a+?NGQxvV-xjg*e(g?_N|z zc)wLex1l9Vy1jo@MNCh@`msX6fR_J6MYocra(tzKy8I2xvStEvGLcV|eP*ApDX%ICiAy%%NImspoe@m4+cF>&=?DrHs zT~1)?ysfSUQ_Lzp?LRBZ;!!}!u8zlhir+OlJ$%$7>X+)-S~1xl44I3rwV3rxMegpB zI%&Xk+ZS&#r`~eE`FP*Nox)6jv67VKceQW7EE?A!krudGa1?+?iz#O zxe;A!6_qQmX1h2LHRm`_p?tpr$Tmgf-0bEUaqZsRfX#gtX;$vfuhi;WKGE_$dtVC} z{koQL7{*>(s}65|iDZm5Ux%hJL$uhNZbvz1*B@^$?rl=09PXO!uOZF@#~Hk=>xj&5 zNI)Z1WKHE?n`1EGoF9uK#BqE)1WaiDqO5{X_S5qBBE}I0(((=}`Or)|&KGXQ!4#ZGKV~nPBZMs2=*%-9o7FL6lvdlhJ=z^{Ufsf#Gw>Ui`bO#%8 zwPbu^g2&Y=VG^StLm8mGc(73x!^vF|@cbC*I$iDPHM?@&i2o~mJKn5XV+A_9hKWKt zI3?_-9jo*6UJb^CKjLKf6+Iv=(Zd$^b4RCbuXjxce`IA1v)FW=0A#GRv@>Do`}bV( z_${Inw8n3MmK=dXzC6ZfDJB`AT;ELkPh%^;)-8Q;krm6Ed*8P^>wJnHi3PmwtcaLk z0@CdD>!R>f^l4#-ggnc2xPNv$iqAdU-IGeXmS37-^B^MSyj+N6BF_OPw?=q5sltY- zF6QO_YjsrBT6b5>)ny^)LfE%l@`pwy@lrusd-*l6xNjgkIy=|aHkY8D;=}G0$Pt*$ zR7aJY5xM&Vr@ohAHL!;Z#IuvjMb5E_H&*Hh;7RW=nhOvxbWVPNZQbFB;!;eUNep4k z&Q@?iB9}&PV6kK;MP+*CM9~%g6lA=ahZ(YAonJL9!(_73q2JrLAWQ~5RC{n`jnSjm z{M5P^JlKA$$T@7TDHz@?{beaO2XOP)?`~Q6t#Q=xVlufp`!*T^3pahc6@^2M0EPpW zC{_q;ksvy|@482LN)#$iTtE)}Qu}u~6I*>fr^LH-TzJ~__J4fa z_-tKSI}}JOkxuodbxG>;h8R}knc9GQt4>UjMbm}T_09C^s{1d%@KCg~78lD=_yk^A z+*x@6JHru?Hj{_HsD8i0`}|HXdLgpRH9>*`)t}KZW~8F_LVl6bC|KlFQo8FJdB&KM zyFf01-a~Zc5ci|zmbXJQ>Z@5lXY`9uUjc=YQuYOclyP zkcIr-BusYTfoIw4`iKG$!B9lTe(#4tn?-D)w3P`u`=m8Kcb~Z{EYD>yRQYq_*eq^D zH2edeE<%-EbN|FXTlEYhcK>+a2G?Tphvk_GhpW^*e~ifyoA$GU@satY3FmwQt#%Jv z7d20g(^dGSsDtn_-{Q_mL4qDEb?V3l4~1<1odye%uEPK2rE`IRZjg@F{frGAniyPIK+MyTi@n z5W_*J1(b(E@nKlVo2n9P>r%PjLt7$cMQXn5Cz+=IAd_T9BrYxyvD0NL&-!UhrjKl! z=46pxF&n2g!){2C#7dt?_PK{j93=i1bs$pry5P6-wJ$xLU3IkSED*38*8GLPn8^ux zt+=r@>Rh=^L$d`cvOA$?Dd7znv+c1DnZK&ABr?o=)sR$LA=)lzAM`259e84y57{~& zF9?U5Ni(d7xq-v_@Pk;tqAsoz`xG@g+z3HRfI#R2@=T=!CSIkXAQ>g)mL=(?UAg2< ziO11x<9zI7{nMw?%J20#F=oSi?Ij^Fx$1m3%9@UybBQ^dupI9`YR0CNF_X5+Uyfex zU&g`q{95XQziLU~ISpEVKYtYUz30;AzU5}&?19zc=^S?e{i`^v$&hKW>$LGh4eo$S^Jt>;@)$GnqI*S(;( zd1W(l!*d6MoG|Eehq~z)o%-CIt;U(D^b(D!$5&O?c!DVmLQLcz>ZLd;x8ViveXBxM z+fEyZN@s)GavJS}wBt_1bVDYB%(QFwH?pxDKK4~Gd5j$BC)m)CUKL$>jGGI_YaONE zeOA0}%Pq;1-A8bcqK(5^m#((GxHVuwE{)xtGd?k4nAa{nQ_!hO&E)e$20y{5c~a=8reMx(3fz~F2$o}^{7|DPEb}BiR3ZLVXlz|} zvJ^w6HwFBZQ-(oDI>S_ANLT*Yw6P0Fay%`da`@q>#B88IodBT$X-){;78+B7T+C^u zX4RKfeb-5D%5{i4HZo$@8DHfHr$pI|D*Oa+%AI{SjB(cgR84MYgk)&*Q9nlu4h zb$Z*arNZfC20v4(M%YcMPJ{0xRV_zkoGkWNW63_Uza8V`d{|r@!n$$h!k^jlygU~^ zKPh^4_+@6^jom5b#86_5Ia5Mkk~xDM6(f{_zPMWa_R05ojrSMg(_-SY%en?Ufbdv< z*PzcKelKAe#DShlR5*mJKh31h-}x@%3L<;&VYp+`Y|A#kL|!zD_Q+<;0f~AccTRRx`Z}v-0i#W!bg$XH$IVX{I}fwl&s#SG zlL8{hTQ?~?VPKEodh$$O?gN=z>^DmH=OUJOGm@)Lefe)}bOEi9rXn?Vd@*@Q{_4;` z?Dds?{Ss9mQZv^qnx$y*_1B8g)r}i66!?eG>hGwyAH5~Npv-}NbVk@msg%9f-^L>8 z&qTLGf~yqMsexDlQu2nn1BOZ|XmEU=(|iwY$E+?!v~ZN7K-eTj z7EV~;w|hS(_%%g%xp1b(Hf_4@)csvdPbza=IciJ}vlJz22T+3q{=zo^pNGuyqTH8} z3C<|R$U#cW#7?lKIR%iwIDw>jk*`5VQG`onQRKC4_6GN%<>K~bcha}7)T#+lNSh?7 z1#QP>q8EUhdaGrilPLD8gZ^yZR%r1Ix`=72@ezpaHSy;}EajsfgQ)>2#jR1=3Q~() zp|svb>zq}6I<{duioK@TS8gI|(#bbT;};d*LQERmy8v0wRPg~VPh7VGTZL|oL6cTD1tx+B zJ);;&zg+qcl!OmsU_9{Ad<^CjAK>*$tE!$Zsal|^`vjR=HahotwOe@sceB+j!Xp1q z8JDd^DF-a$#C3y|E5}Sy@&a6Ak(JyqZ6n7#d4{11e|2a@o!6(Yq zrCv)UlgZ$~hy8U@xRD9kRMh@)X%mb_5JG4Xjs%TPSCXrACWM$N{6>&1n0F9J5Qvn@ z73IZiR))g|!K+-7ZELI%YwXcpAThk(*q^LTY-Rhz(?yK+Fx9go3c1Fucr!cv>jQ%Q zZH`2FG7siWIQY$|Yiy?#Wi(;(sBwL5mgt8C_Zh%i9)}yF2H5xUwFcarM3)WZoTZEX z=f8YRfHzzmc^nBl)J&wI@=e59oz^*|bgZ2ibKQ>})GVF3ZQ52G(4@P+DD0nBl%lB+DLvxG>!h(2TGST98{$v1pq8>rm`u1ao+%EF zHb&FVGbdb5a9uFksARluP}JxT7VU6}S#>Bu(1Rrv3kj9Vtqm3C_MpN=~n6a*e| zilWo5&jiE+LWr+mS_R4rq|_))MBCycMGTu>r-dWt-|ngp`-p74EKLAbUR4s+eOHbZ>ShlN|fJ znmHOX^VN3R=6UOA;m!FNw0!Mh>__F?`t`_hx=h4K47>;=^q&ScZ*PgK0ly}T7l@c{ z$>nNFqKeHU#+vc8M$*3AstIG9XOLt$T*xwF=v#DsytX-(a&>ZjqB)hS+r_@#Uw~;F z%e?rqb7Abbzt?=;rOauGN1fUQ? z(~nM7i52WSIvX#02W^cf_w9%lclfq2&x2=$dTq|6+o`gyf-~)@9}6(B)-dS1aY>?+ zPH~x4^s~|Fe_G6tpEv}`WOWvXVoz-+rFy-6b&rS2O#Zc)!J>yWisXr~o zz(us|r_8k3{UG`?(zT)MY~We#JIP(``PwVfd$o|k!N=NCEoU0fR*&}c{N-|Z(1vXx zO3IwtDaN!xwUdk}0qEU=Ni_IHdcMSsHnQwol-{XkJuk|W^>JHPCdDI6!rYk=aWeawQ%!Rq9v0W_!MyvIYu}@M>=#2%nS^>$FrlEf;g=c_8FwPFW@Tdb8`mIv8)Q z^;2-fb2S(*1#%bB_p(PRrYn(XzuR0h$tWb+M8cO@I`BRGcQv(MW<3_mXM+-?G?QxV zozfWQqd8!@)SddrUM^3-efjgR8#2dJZ9ucq&>%V!L;~cF_Z{buYayv^hg)lcuq3}^ z0^*K?`gS$1l-yJJB+o5rzbhoLQ4N{vUfNovMD@w9wutsb{;N&sW?QWW(yhOK!0fO) zxnSkjy`ZJrFzVXk*d{Gc{r2Tuk0ecihS_n+*TO6}lvgM&D<_e|hTKp11b<1`e?$$9 zqbpkg@+Ys=7DjLz%$jlM9SfTqK9lg0`U7Yo)&Gz3~6(n0_w_M zC?$Ds9(cwWqiUCB$5VBp8rv=m$nwOA(R#jTUfU(a)#r!XByq5Q4ca49 zuNzVkM@zsQ)jhEJR$`({Y^jebw~O4*Jk9f6GRYWUNJ%x)xT{`S_Oo(agy@j-Mx#46 zcv76a9V!l$)g4)sE-#dd+vMBtv{kf9K!xxR?M9e4YG$dii%Xl4UAE^Fc59#R$%?+z zKdNA?7`t51Hf2TcUOt$$ix?LuOqBbvVi*7huD>i*iXJ@Tg|dL}&Zt+mJe6}kB}4jl zk-|fA?q`rt)mR28jeSj3nK%us_rx<$)#>m@be!d+l3Koy@G-5M%++B?RWe}MKS8TO z^C>*Q+Pc6S?v^4C@9tMrp0^h_3?@B{t3S4Tz8Jtjno8$vz6o*R1#o4_SKSXrVD24x zWH15C-e8nmCj9*nmWQeh431;tN7&ujE!U=?FxOe#$F+z4=GL}g$UkCBbLT%Bdryo92o&6sD+F$ncZoSOuKi|gM?+sh8=Sq_?)yvclB%HSAB&FD2-vm zMFr*uh~Q3L;BYgAPJK-3LZ?K&fC95e3^w)oEoIODXd%bs_<38|scEBc&THUYt+<9< z4cy0To(y5%2@D$$zt_i=<9`*a05vOPJh?tE1)65t6sP7G^ab#&DinBDRhT6p@^VzI z^FK$`{ad5W_Q(VANqZ#JV8}v$WhxWv5{c94l=s@G@GNqCGi-ll7f>JqZ*OOej`M&W zkQD7(4%D8g?3VN)2j|5y?R)JhIu;~7!FS-l;}w7@3zfd2!rb8AGL2IrAfn#j;C})Z z_z1VM9pb|e{OdQx_2Z#FsVWd78TvtVdC?QXL4kI8Rrn5mn&wM?cP$f|6K?yTjv52HSf>FGaZ@zzp3Ha&vs)_Wd2DPe2cV2_*6<2X} zr_E(7z$fo|#6o}k=TGF7i(N^g)+K(kNuWAu1JW$`F32DIJKX=}yIFuj-o++W9U1d1)f8roKiRmj8D5#!Kp{Nn#35dS0F%&Oa9#%AkBR=JK8PbSNeSNKQ{`#n=PB>F=v3#MQBQCN3MuC9%AkaZ7gnP(9PJISomQ~(@|CZDuUfKSl%*Y~a z%2Ta`6XXvii9|*RCMEm{Oh90LuaNIA^L|PM7AxEzS?6zH!heDij8{QPi;&QtXa}IC zwj<ns3J4)JRxc=?EcO;0Uuy8MUy7^)S~_pnGh*cg-$I7`ZqEm zkV#ZY+GP(pmtRr=QINj`AM7PA;UzTz_hf0#j<<3d8|s=rlsRHo&V)}eHmXWDIC@k9>XFpoI;E4v1x05{L5pX66OwW z@;xp7KkrM+5O6Q=})>#&KF-o_q5tT_qQ;_4p{ zYZn67ZHjEluXX(hIPdK4?hk82!3DhC)^+Q1{|V2W<>IZ$x%^EFM`=G+P2W7@To&9L z-fC~XGR~c;84H$-Vc`q|zC|S&Raj#j&xu@~NmA_@Cu4>O&7RirM{D>OMaL0(bM#M! z2V-lw9=)HnVD^1OVszY&BUYT3uAW?TC~?BjjEe@kP)}JF!=tzbZAs4ENJ~U{sqx`)f`AS~ z+lE=C#SdLe4!VytT7sr+%ai*IolYdOoByuQ#1U3@HD_0~`Erc`syJnX38`}9??LE~ zQZD;q=@r*}Iz0_jn5!^a8}$_Bfv-;bXhyxk{158m5)&q!Ar)Bykl_ScR&aD_muFoT z3E8FgPH%xV?-=z}QiwxML`J$Jhskq$p!2Ca zUUOZGCoCG55gMBwc7mM-x#Qg6r5q4&+@;J7m9x-EVCvshZKCyf~a`=)ynuIU+qM7-P=_w!6Wx#rKZ6{*^=Z`f;5eoC`yN)=Xdri z&4T(uz>6p4XUO*_BfLcacu4fbL6GY4B?6l-Pozhl9Du02*4aB2`1C-iiI)o!CC9V7 z<)Ip3LX0tICOlBJ2Hm^|nsSEE}9tQHX zN{{$lQu-w^@Fi^YC394%%4fskxkP3b;L)DRwx((eG=hGs@dl#juZT1*9xz<|nlN+D$jJYBU{co08kg^WmkAoGmG>11G6OP2c!P8Cs&lqZ%t5 zQ0h2!rcP=C>vw^Taebpq*>sMCHCQ|6e$^0FqGt_?NlAaddDAATuyd-Xg9;qiv zl#==S+llBmA-0b`ob~H*-9Y&n&Tz!|md8;8YhxT}v0}_;)hzR~-0a5;0h7#~AS0Ot z6ia{QBVytF%i*~%)?)kz4mYr{TEkCVfI1_BoWKBE&zVF(xWR@V>!!#CP&3}H42m1 z*d!BbKbG3B#YEtM;#{k*J?4rbv05dyr2{kdr(YJt4f;t!kb1$Y)mPfGc_|hlw;v$L zd$HFO(;hsu;w;}1mBxsvRA%Gxc{p=6H(!){N_vzjUe*cbBQhfnf4YqJqt;YeifVds zw>+(h$wZ@-VU)jGAc7Mp-S86T_^yacRycKN#&hCohQU&)s6Mk6PaO<{P{uKemnH%E9n)VJvMQ1rFl4DrPG!QQ5w(f2`yG*PuSDg@i-GS;j= zZ&l6=6M+X_E&F8$ec4~;PO3Q!6p^*ibG~|0og~tiD*SV)sz%uvPz=?wse4ZkS-<>? z>s0>Naw#3V8?<&;yz7oQ9oXw5AcpO1)#i4Fu2vnG_|sFj3rg+~Rg!B77hod<$2s#R&NtWDbOcd5BBO zT$&p%#1`@BOz%Gv_W1Dvg2x&li!)yvz zVhf&v?mWJs=`OQYs%^ek0zUEw=FaRYWHlYwwJW=58$KLHQOy|n0Qqh}RMD5AHAAZ3 zxVPe#5=Jgn?rJ$_q3OnfD~S@2?zUfTH~jQL? z0t&xkC|-P}UO;d23SrB__;fUbev3;q*J0&j=4bbG=d#4hC>P#RuFbCI1I_Kh_p)`( zkFX#I1xLnJ9%{@4@u5LR zaWTbVND+4o0WJupX;?2i#nemKHqm*0{9500K*pqD!NL$4ZW|n&pT(?cM?0pDjhpH% z)0Hpjv-K=f+W=@sU#c~Zs!7pXy>uJMm+}jSa~$Sq(3V!sPP9Xsj@eE}J1L>aG}0f) zrXMZGsY$BCD`$SKqKGaV?`LFQ8(58N1-Pw?MOb>d5k5ym(8bgYhz-}EbtN@L(B-U~ z-rUr43wg9=u!>P;D}l9=@X6vF!(8nGw0kq!xo~>iSGXUJdCPfbU|hyG5bj*P@H5hV zv}*jO(-^$kw8ohJ%Cq=-1i)m4PIq&{h_IM23XR>z7CV*gtD#&@L-f=V2}9XiRWTPj z`govQSVa%)(S^0%ULE?ZfLy%+boy$U>bN2K)F!^Yq2;E-?F_iD-XS^0vK`>CNZD31 zD^^(UHChp^t2)n>lRFyt_0ka0c?2-FAt8&p{&R-3};`!%RnoD#7YN?8AP%{yyWj87jU5} z2mzQMW45%56dOG`LNZ=rdY72+u!CcW|G2xN=QoIdG^KTDwOokCtU>hc%Ans%!v%tf1k?lWt97UQ6)QM-PkJ`S?9 z6~5I5Gw5aGzVjG!h@JLQ7uPgXANC$S}vY?8}+vu5U5ht$1^a_WS_PQV9DVr*b7u9Av z?o5vI%H5Z96130!aCgkQ{$4}VSs}#OfOsNJ2eoPw2K$|J^W}N_``b!Vm9<^dnjk)?v{D4AA%G32SyF8dXiR3e`drvq0ZPoJ=QkE)-McpQo=Gctr zq~X1U;*DC^vsCL=HlhTaRbE_}R^yn3yNI$$j8cnt*Vk4%ECPM}$ov|Ox~@Q8{3%{k zw?FP%V-Ig(GOq$UaF-l5FM;Lz%8yEWZLL;cI-om+O}iVVA3AWkd|5w%gX+4t)N+>9 z4ntRnu&<6stC@ZlIy%sy;ubz};r(}LeUL;xvWPpl+hBTEwq z>bFV7x73~+ofT~RNH3y{21}V35z2qgeh-X*M`)I?3Zjw*OQo8Bs#`ayWN+wNUFU3; zAl14NhcDa*<+S(vYrvysJ<%-qI#Aan=QHV7rR@wiaq&i%R|!yk3j=g%7&UoTt3SYF zj}xs8`@Q_)6;mvLDS1!3cNa1KEC(qDYHopxFL_B>)04q?a|2}QefI1g3uF!j!i#yI zJ80qNoGbKig9hOGYqx#p(blCVbZe78S->R{>{XeKYbsgKWFH~$vgUH56g$8TS_zcA zqy7O?$y1Cxt(gA+jr+j3s2#5mss7@y!5v++4nfV#Ulc)=15-#;-$bFfPqSM5x&pJD z03dMo#_k$7EwDi1Hb{8rw9p^+kDG1GMuq23NapV< z9v%mA77dU+B?8|_k!hzXhGG$LUYaabNcZ0So*|Ip0vMGaMOQ)Wia_BlH--CwiRZjr z@0*tt<$KUvW}X?~gQii6R!sXv>y>oaQ+|5>?IqU29nWB`_lfQywY|@2A_qd^CX25p z7TE<9*#&O}`N!2LUBulVK9FhuXdM^m7zxxdicDD+UF8JUMiXJ13})8F1%fHDS{!A| zLp%z%25Px4a(8mp5j?nlI|T=3RbI(HF!Z81lYsriT=m~tQTOlw1Q`Wzfd5KfjX%|5 zK~wBWt$e0jeoK|z0wxXR$k10``c)NMN!H7LvE&lAZFHWV*SiTKd?@xeF~b{8t&z6g z3_z*z7s}e$u7RLfYl6~8H?6xz-!jF!CWGss!riRX25bdC*7+)fpK1dgKb+9z(?1zX zqTo0aXGgfii{usFh<=^;d`Vw55cD~^tu=@!JMm9*7#V`f)R}niaX!R*8X`v)8RJ2x zVin_Z-RB`|`Q^l3m5YD`T$btMlZXI*OnsO#F@$ldPY2)8>G-doT!%8qRaW#18Vr@6 zPZBi(1>qlS?u9^ub_Ep8ZZMhACMG3)Hz1AD!z}1mNX~E4O0a{B?f!%JofT zE#}p{!ixO_{OvpF`$YeG$cjsg=}pNuNW#`0%ZDSyUc-}s8A^*FBTD}tVec4TSJ$qA#&%;Tjcqlyoiu7}r?G9@ zXl&bP%*M8j#yYEb-|yS|>~o!K{Fr0@$sB9Wl{N19JU3J#8#?zIDk!B?Kz*Kylgvqc z%4dL(fWUx&`2mOeiVUO;3iA46i0UxG94+?(-%Qo;dxe}?;dd8pOGns0D*s<%f7UZS zde5@2_QTix;B>)#(>Uv$7o+nT{oqd&M&=|*_1(Fv-6+*yzg+PZJ=L~pPtcyPqD#$c zeAkGfNQEMWkyO?GeI!}^t*hh?3TG&Spa}@9NPer{o9Q~r@9&43=wVB81MC3ob z_O%%OmsdeGn!pZerL$BHk-0Cn1ffwZ$iJDs2-WDtfJ|SQ;@GxBJZ5=IaI+HAm$fL*--{}cKP27z}v!q;|>Xzl}O6^zrG`}|cf zZf2WQKTTSr1pq4XRN|b#|98Qe1NNVCvkxC+I#{j+5mx`Fb%4UoG@oI$<(us968+b?}T3A z7Y@1_9f;rgyZ{%9I=PnY9*Wiz3c#0DTOBga3s2Dy>J!dx&;S*-BcG#$tr&prDINXB za*RGn=DkjvAWtEVCVO9~Cl{?JRznE#=daDZ#$KF+HU=LApMERG1ra(`fkR!(jzyI8Cv!5*i-4W8q zQ#0vnn~^PTr*D5HN}K4awK$qvY{5)U?y=YGxYoGzc=g(mYg5ju-8IBSOf#MgY-ZPh zT6|6RaB2~R;~Tg@DR#W&78D*fAVJd{zGBuhv93z zDX*+dRXd<%_FrnmySIyp|B25&I1;bA93(PoFqNey8=p757hAWc%Be0J_ER=pQj$r` zuSjsSOq-dru|Ct$o9Gx!y{WQPCun@4ub}+p9rhCa+gJD^^*T}YufwpsS6zZmYQLvx zZAMj!5xSOp!+e;&Gscw6r&lJ^x!6zV{E70U$}J|PEWLuiX3#2viIBM?kksst_}4N1 z!J9-b%_iLSvcG3g_cz;(c6)8f{^gygF!`>K$ydA0haXy-@n1Ppcl)V7Q>4 zW8|0O(_n~bL#tj?09S&8m@tOw3H84ev?ae4w6lK|w7TXXiAyw41u}jNQC7t~7-kgJ zNi_3u{Tj8wT}kC?Ex7{M=r>NBVopxpi;d{io2rjV3m$v7FuXtGY*X;z=~f(Eo#~^* zS^5;rBKx}r@>U0v)jUr5jo}lpd^7*!)}U_HP`G}A&Tc(8S9tsBP-jSN#D7d30LVrb%4(9SO$XoP z7o-{cUyw$&_q+Os%>0zE|MbLBGU~---CjUwZ;iv=A}Q-cVZ<3x9fkhU)!(8yQj=;d zj|MF`P{TNfg(sR^7QXiX>5~75%e(4zZ7Vl=VlTYJhGw?n(S=9>Huk{+9OhJK#wk@V zOViI9lXBc(pzMCF^BRJ^>0bnPYgAm%M!Scdl`}oiQ15I(UhKAY_F%sBZSc(>tB=f0 z+Mafk(FG3Qe-LmeZ~UHs-f2WyMaifF>BGRhAPyuE8b=8P^~=bL5a>|%GuEP6%Y!!q z)`IvmX7Dh_KRdgL90qzbE`pSelT;T1B~w5q1TD>FR|<(metgFCf9`>UEiCLQI!_9w z1+g1kp9Tm&;uPplARhk7E!l`yHRYrH%u{qhHPzZ!Bow$Mf`8qtE^GN%VW1oZ0Znq2 zW(l}|fDhNIvV0B3nQjpX3!+Up5W^ z!-8y3nYWj&%n|Y@s7DqB-Y|)wB8ltNtoHDl^7w;}$2;+9S(mm&PXM6?7IC_7VMjZV zPSh-7TANZYP|y>;O?Cp+ED}}m^>csCdvjCcHCnyx#F)q1(&uLBK5dB|Cm1@J%GN-#H!s^A z6$vcO<;J|8YYb#9v+1+daPEgM($6o)^g?u;lfX9JIF}IZ7Q>uTa%)RApUxxq5iL^? zN8PT@zhl65n9$>YY$Gk!td*7zux~#MpG#Xa6|p2HO2m_ymkXcY@%z5Vc~H*9um;db zRuILRo+%#zC)~0Y&?>JdjHVxH3&oDI+6%h(fZxkPO&oYVMi=OnzdWm7RkVDTh1tO~ z(Ed93qG2P0T;Fx|iCQqbrr&upG5bqg=WZr-*TnQqe)AZFzfn)7D05IcWB>y|1U^Bv zWp#yTR_Af{J`U-O2cXDsG&8U2+XmOOIlzArT9~@k8$Y~Y%f`zKsR`Y+8?%l14_#n! zg(HmDq^Ti-(fB70B_UCD0_4B+hh~u0uG~R8Zfv-llU#h$B9dNiHGn5E-hR*DE$G6fCp9Q^zdx9XYcaK^J$ov6<5BV+ z8YUoZh;T9h(*Hjm7Id-e9e(m307wct9H;*uER_SAfmuck8_=60`Xokq>J0S{ya$wd zeoj2b=b{(KzA&oY{|91iN>sa1 zHUEO-0992whXm(`-$gW8#kqw12eB=Ee1jAH@kPvz6ZdX}E9N4-scJIMPSF(bgEZdd z5dA+G07?`_6lmro3Hf3rNdF?T<^n-yYRYqTfnrp162E%Ye}0XSkQ^A|jcya5jDE2d z+-QRTSep5|9jn**pgp^_}Ghe})8r zE$}aCz_m)_(myv_bUXOdDJsMZ(4UWnYrSWW2POzE4}klL5dVOE{+zxtpwd3x;&-!r zPnJHA&}zg#gq6vyLhsJ1_~x6n-quW0nr|;Qyl)iiU%q&?J-|VqwFKZgi|SSg|2KE# z7MUV!{m73$*(9%dvd!dxfUo}KV+?O>ZGRYNrV7+7fS#;4lbDUu3bjQFcD$QsSZUA! zy@L9-S%2~d6HwY+(DE{b}Pws=k?Ug z%lQ(JtV$?h<7fTkh`Fm^!f~%eKl#a5Kdh4DZxeEKi;HB&0V8Vve5LUGCajy8!)cj8 zR#owj{{^1Q-yUQ%jgB#_Y5=g{7M!CG9vGP$jMYL0Gb00&9WSQ;qUZ3 znXQosx0e6A137zN5P?eAp+_7>8n1ZBp?D4*AcYZNMk(g8Qa!PjdSkweEm*mVxGP(^ z*KLkQs*q%g<8eg6SFCGY+_Jq?I2Op;lt1Zb?ZCAWafMZsS?~SnIS{#l8!5 z@@>q-n`Vgh<|>TuXzXqE-1u>s#L-=U{77c~Y)Sr(kR1RU4YbWD0I*Tto~ZHp!s^Ef#mrIHs=0@jk$keFjUVr~-hE z8I>C?{zO?(BT-~0MItwL=5FI~3#V@@uUG%yE*AMr770ulW_u0acAV|IUc?+n$33d2 z(Wxhz0}&aA+t+150RKF;TZ^Y{?HQhtzeo$6iW(QqifA7r2kpDwzpt9mQquye@&3$H;G5o+rAD##4&I@&59XmEOnOLHAGkx&P&cE7J%g z8U6HGxu4)DOoaYF3T0UaZ~C)VgRb5aG6D?49h08%|AqJI zMZg9mgTX53{lo7RciQ42I(z|*9)G4zj9n{}2&Uer)|e`A6IqT0!d>Q~c48jbJkowF zCFc=s%97?U3Xl0z=FMLUPB(6ri1$8kc&Ri{=}d+G;tI>Z{q)P3Sri{;O^8n5N$5(t zrUlS`3EaL!DUZ1rWGG}YpByW8UeD69meK{s_Xo@>Qtq?jsjdwHx=w|vBD{Eot149Q zO-=4T9+1C$AK!R(aROU$0Z9{pcm0(O}iaP3m>H;{Y_p%7*s-H8h7A*)BMZ z4V&xLBlxT?&j1=CsiCivhDQol@alp|F{FmB47DD%C9IvcNCrDCNP9c zKJXne*|~v>x_fKsq2#oe``d0OdrHQ$2YLAGalI=9IoFP!dHk$Yq5k#-I!qPa%B+b_ z3@^ISI0x1EPSrzjSBAIl{=s{C**3xbwo%nbPLr>14f&t-@77P>-Gx&ZzRZkAQ9|ZT zJhVSQo}RwOK0G-#T^$?PZ_hbo=lO4pnqpTSQb=cBnI8r5gs8%Ys*i7t-2@{ke&;j#nkMO_CYJoLws#Nttaq? z!oh(vM45zbLUCF%#V~b3t5D|fBbiH@k)9o-0f}oVQw1}Yk*HY7Ph#0DhGwXW6F9o~ z{enwNX$F}3`@ljH{8VQV=Mzo5cp9vt69cd^$n6&V}7_$Kg^XE`&Jzl)u9f`Y8II2)+f)hfVy{eKnGd>_2qHF z&}L$AFdITf{8ns1K>ekJmhj=Z?4lAAX-a~*B? z=(U~nh5%|2opb`@_%U@Lwd%nRj#Cm}n%-??wb&QYso}o3(~Xc$zZ+7Xk#t#X#OM2I zf%N-4y!`Gv7I5Q$dkSHp7=9Q_j6hRzrcq1j&S;M4=Fhe2TVcyX~P*m>W*iiRZ&D;o7usIo(7!qU(~>uaq)eZa3fQ^b#2?|gc0 zL+t7*@gCWMQ^J4d+EdVlVx5ALPq|)fhj?;P#N4F$FfiRx*nq*b3!i?qnLgPu$@cw2 zRNw@!K23d*0Z}Ul%YYyhD<-U!Gfl#Mygni76N7$ib(B%>VF;@w%&_@+6FWj${ctC| z9~UOr*%9Fo%twX$z@Y$vsVDyv{MKwZ0SA#a|8DhTMe8XkOn%rtX=3w|faXummj zmfR9Eb|l?!a-@5LqxVN=(8qC_USz=dv2Qfw(D9SYft5sTr>9$j3MJdMuw@Tm5?-!% zC9ZbD>TSq#t(AVN&i~{SxOT_pY|;eH^BevGZDsd?Qm_R#YzLP zT)TNR(=}R2IyCW@dh?=-2VJ8X`@iOzShb2?_3gJL=7+uP)N6Fl)rZk zF%27$75po0{F?Q|uuuH$-B1o?Il;zN50e?^>>gR0d~U^4Ug>M&lM}%O{_^<_fMOZu z^@n14wA=4LJ2A%9UqHF>ovdTxxe4}F6#H(ZHR9yt&UV^E%f+JE*0R#O8KH~L)rkf3 zy=G@j+-&jnP0tAy2S%G3S4g3i`tV&cnrL&+W+D+a~^o3uS{HKYGvg zf1wVi@HL6uhxdK?yIl5l?uZ7G8&QVW9dBc=t7yo!-fIQ{RJ`BsQZsg_o2%-_arMQg zN52Ru^J*pyPNn9-wSnO^rr*N7c&VU26b!oGOAq(;b8ZxND?TaLG~J%%Q!h+&j207U zJQVP0({=8eR=dE{w&xSuyA*g1|JD&+=_{UUKG`j=>F3zSXPKN$_zx1+$15(OA$)sk zPkq$Dm|PvPZ+bfIaDHPNC`p83a(m*l{x7qcI9XWZ0JQR#IG2~p+~}=-dwlIfeWNK) z0&V_Z6ib+n%Gmev5ouADfVTwHJw+7&L8sGOMbLiD^C?2nZI5R6FX3_l)$Pf(DE{u< zJ>`Bq`BbO=H9s#9CaVsn9R*&Rt1|u*4ci=D-utTu{+BX`j@Ceh36kv3x2N|Rx$)8! zOyyQ&&Rlv4P7r%DlSLn4693rN3{WNsfhF=6c;-zHu(>=Vu(=GdRrh{f+!QxI3HVV6 z^2@l!k+5Lzbm?hRCeBF@bPK9}8go+yXO`ZsR*3JZm1P|8%>o4clX- zV%~9mWM=*aYbTQB+_i9i@~?W8vXKZ3!NsW*JOaj>UZgmXx zzR{j2E;ezqCp1y*y~}TtCRXp-E}AT3q4y-M6tfBx<#`4+^J$6mhlBJ-d{$vRnj`P6 zGZ_yz9;$Nqg9LSkWp$zzSrJeHbMe_K2O}y3deMJ2Ff+qY_08k^x0mT zO<_mgv+)sBy?W^j+vPSdPCKHvR_j5#ROa8~h?X6TQewQWeD?Of-@0cn3vT2nVC+3Z z&sBo_VWyK8&kXYe8ZgY*e@G0b77U@PixGt1kgr_7?$O~dGVI#Xw`;pF_7ud0M@vqk z6U<4&wmlTjuG8}#SH!W3EY2WS>2z`Oc=|z&#)@gO?y3*)T$>K%osmQ*-NzG$CI!*R z2;m&1q|Um`l?#MAC)s2PrLze1p_o2u!YSN2gy^??#mpt-(haF?AR5_h#L0e7xehI# zV}n!L`w%Ol(8pw&cJdrv%_I6ycUEhnUXN?f?T(Wh(2t8Kh$=XnBsA;5g7#mVZ@H<| zaU`TtqE)R;O^E-1gZWCTV!o>!jjw)XMd2M2N~n{3{1 zph}8HW~kH!YSY!th6zg!+J<{=BNlYz6P!Wf&s@UOinCZD48pxgN1H+7{TXFXMdM+@v*$P)^NMpMa+rZ`%_T;+)w<{OOF_df(gQYjOuYa4 z^cY}EAkF^v=_y2mX5MEzC-Pf7I)d}y-c``5C>Ms(v%MTgH^w%Ll4cD^~U^<_1Q zcEK$SE`}4iu)lb6+bz!#tBcFN(?d_R^Qku?la_Am!85U6*kX@URlVFMvA^1zaYLX3 zN_(=hPYiUi+|zCq=Sy&f*UufChpuGUGS-pl1}rfEI{~1To3LX!Cd+haXEV6^>R3L` z(HZl36-Am!Y56AURQQ_s6qTR^ip0O)hjA=euSN=*K1no3>dtF}w=GGRoFM7N6Hu>1 zEQp-9S7~+FT0@nCmL<<{cd6+a^};6GX@Gu254OMx9R4Y_{;teQ{G6%rN^ybzir@Ij zf5ZsSQL0`!JQ=YIUjy5|GC1o-Y!u)sLv1i|{}ZuXspV*;vRS+rVCT}O3AQi@`FT7% z5fxeM*Kkg|6argP0dsW$!;OXJB^4nnH1F6cAb7rKc&nfBSP71XGSY-HDy66sr4af% zRy^Pv&LEo+KvvN~GOo~p5q^)#BVg;`^l96HW_6PfZ4d4g9yJ|S7GeDEpXJpo%3s+b z;x$7Wvi!jHY5xu@$MU_1lP?!Q_YU7s`{u0z6c1vOMJRp^p4E0smDsaZU=;x6?6|3h zN8R+r_1x zKS)UWy!*~xvI$nmLwrO3Gs@7s=J7*iBXBs=X7L-lf_@NlCBGKPR^R}n) zJo-p#>1K%7dC>=kNKo4k6F+O9H{B1!j8{J)&_}=uEwa8yiKb9Zc^ThAJ+F9gpJ4QCB z+B4o;e!{w6Sa!2c)VH71j@I$IUeIRXdtY#MNF3OCO=+ICeyh4*bDUPy9HqrbY~!Lm zWl+fw?)brZJK+2ZmU-9DH-Ix4HhGj;+dJN2!2Zg`-4!zV>FngLd2n;t)pS%hu8wJ38-0)D9#~63yUr?q(w3tlyp&KisvPL(BZW&Wvnxl7D(*SrZ~i%Zvvf@H`AM(x zS3kCG6E_Uc2$FfNJr>rcBp!ehZQdU|v&F3<9S0=o0dk`9CQ7TE5wcS2e1dV7`|kwQ z8aefjVM-PZ6rUmhMC&^+WGh((`zoyr^fQ~CM#Bj=lY_Aa%nmmEPGNhqj%aTwzJ-?l zwp!XE7lRqMC*iiF8wVpjeONP|{M(p$3$M&wYk}>=B$h++h95{HOiIz>98E!3$Caw6 zp>y}-8^;(Du_VYEZc^VwD9K1ZsLqd~(&ZPt*BPS~K|Q|L-B*rVeKdKxe||-!I*_Sl z&3W>e>beWeTa5RQcNxT=B$Kl$u{9O1C-m#{w{*4We4ZgBRVNXE$rnc=q>rYq;fDzp zz4v@Q7jniSJ;lAULRQ*t>Q1254fB@jM%9I3C_pKchPbxmBGhj6gNrTrTH}+MsS2vGgIaRk~DT+b`=fQ7kI4{>4a{-O$~lqobZ#bgGTm8)bIJK zcC2{cXcbe?5?7r_Fcd?03K_tWorpp?;(PP8?IYD=dr^hyCG@bjv9v-|D5Z~GU0h+} zaj27v7|=5PHS!r^dxc>>P)h%q)Y(x=mvU|ino0)DDpH{yknZhuZ@oRM<%v58y8Qf5b$VSYTO>M-aDa9|P4YMd+OIe$>UD3Q z&B3;mV{X~ow@S0!itie-BI`E(QuK3+6k4!?JRp$1I+$LKGUWE7{TuAd8*Gqb?_xaT z^NJfjc7cMaqCtv5Xq1vzB0@Y%Vo6gWRXwuaY=N06X(DowY`$V4w`5{O20@fvZ8EV^ z?@QTdjT*_C`4(|1#;V59jG0Qb;#unG`dCR2$B(rFlup)VHNN@j#ActqmRIq$U%c#$ z560iDw&{%Ss9R3M;ea1bcz=%UMu$J3f?3gjuawoB(-^Vj*ROrkXWC#|x40bu1ob&u zm1vrQ7nHM>Xi_CkD~el$?QaXuhU@vcVkQcI-exEWxPzI1T0#znKkyq}=;5E^ug&?)@B12r$R^`Zo+Zn@65nJUKT_;r!uOsk z_Rk6}<1NrTW!5%Z*7(Vl*t_xkCnZ;J$gHza_HOUg1h1ciig>V50S?*zBuG_B@ZYy_ z_YhxR+xI4qYNy&>>=;PHo{hELGFPmbd=a7tUsIJM+uFUWPh}j6F5K1E%_d(4-fhGK& zlR@1)K-FExWd#(=0NcAPgwtR9CU2}=?~z}UKA?Ck(R3On;QXFKcY^8QvN=4l!6hoA$Tnt zyt*efsJd@CzbYYh4BAj@NO{5svjw90VXhvlV3h<*5LMtZcz+dHOi4E2G9Q(0D&5-@ z-G*xidjq3D&msH@(JmhTun~D6NkPo+ zK%1y*kJYF5}E%#j9Z{Ae~BN|9rR}p!3;-3t!et-Lxli zu(06M>m4_}ax>&Nc#}7qBOb8&7l47b=+X8Y1Yg;}c_x{1 z_)0pF_Z1WxBW^Y`Fq#TPsUnIZ$;0!bFOFhMyN$9pZ-@0R-`)r+?>Sqtd``ZfvZaA% zgEn?ezzk+^7Is$1uxh7&&QYmvq*YK4pJ(%$PAn%oSufABv*3vR?lME&pkJCaew?~5 zsbmCI(yZQ*G#%2wR@Q~PyMvOdR;%*zGyeMZxULc-X*xRVl$5@ODQ&T3d=~@%M8OVy zaH^LQTuE4BbZDFMeJ53_J#Au^$}_{divL8@Io7Gp8DZ6RwnHcR#niNjR>>dM=ZduMY>|!vD!7Xse@bRO%!4J z&ATQlU7iGGMD$U~0Yi|AXv|L_J@>g*4j|MrM*E;ieF2vouU$e5(GZ9U z2n!bzOV~yLVo(}FblHDMk~axUjRyxJ3qevg>-!pleD>tc8(sp|2%Hfwu90ZR6eBhB z$2j~1CT2ylF-b-Dq28B!Tie&IaQoMrmw~p)k0C6=*uW3gIj}V7|8>3`h-> z>0!(1Umu97D-%?-@XSnK^G+URV>4b3-F!g1fj2jGHwhOm$ZTzI?QjuIFAQGp_GKz; zyFUqwkMR$}IgIgVBS6g&%`%08$D3#Q%BD;qN4p>)=YiV1t0NV>xdn|}qE5Fk>dk z2)SkG)Pp@-a7Kcta`nEE{>{OJY z&psafZ@>bbs2bRL4L@e>Ev-T(#gPNdp|=+zZUk)w8cKt1@UuMty1Ijnag_mb0jJN* z6Bd=eH{GtAFQ5|^)Gv6T2gn_KLx&xFEN<$ySyv*~Ca9|j)_fG!O(RNe%JT+oNN~HI zG#vDy3cdcxH9<$57$)}&RcLj>ssXO!ExKuEF#CLGSo`XO(N^8uy7&z5VEciFKCa!| z`ZpH+`>gsmx-UZX-8B)47U9b%M5xJ*j9zxM!{XtXU21Nr?o@e#Zh{}{&qH|BwOE`* zzGuPqIDJ-ix9yz$g;oCud$38e#~H~Xhp zvP(Z}sfk49I`4gxwf2C!G3nd2%oP^aA^lJVtDG9|d+6pDF_tyegi?P954m9lGF65p zPEd&ur{<)o56?vrk`~2!!BBd?ShhI|!YtrT&V>jQqlAj@8uCN^*jlHfj1ngyj!i*r zR$l{dED({to-&B@qu7vL?n@?O1t&>GU)7OMxdS7ij8AhX2vpCD%xBH(RMo=aY6@Sj zwau>!+v0cF0yee6e8IXXtw=1 zOf}0KF5ihAg<*F$=K>O!W@?eu|J2enixt>+qGz%y*BjfGVx6n0Z+<>_KMH;G0qR2l zbgw0*o}|>@&HqDyt3!YUHA*3&Vk!LJ{a=7d)2Gw3bF4dgQ|i*F??Dk31hDn{(f9m1 z-$UulPg82NgR&P)xpLtcv2lV=eWnjF3IJjPPW2fhk2!KjBm58pJp^V5!i0#xl;;au z75_4N&Fu<0v)0uK{u?!n6N`v8gZ!Qnio|SR#S&X-uRkrw0f_+cLXBRIIJ{uk@A)t6 zU@89exByoUr3yyP7J>GP=Y!T0rYllStX9)-!g$-qDURDp(?QYJ1}Scs575W46R5_R zl;H&L9LB=6ceLU*Z&j(M>H+Ln)to0?ZIz{eZS68bsuB!mI72W1hykJ=4Xs{M8B!jB zVgLXZzEZ7yNqxsaEiM2o(V$m7QUX!_3uFMW#W7<~X(_Ju-0@?}&c+{P5y0nz%D>D) zxCes601N;XK#D*|jKC$utr@XXsudr&JCgUlQKK4&3CyPLGsDMRLIN(A9#k&=@E6mZ z#Lg9~3aeIvSpZN4nIfKkDA`|FL1L`r`(LnvDqub`O;QD;GMD2QlCZ+AeA0xd1OWhy zZk5er#_{~p_J-K)#`*2pRu|NUl1+t6(;1gpDw3z3Jiwg71(jQ)H%}Q$G!28l!U%Yd zC`_rRTz5W*vFy?k+8DgfPaSZon*V~4l4wV2_VGYzPO#!5YN?-wK!r@6sxeqG+ANGY zc!Qq?V}W_BMrclCnxYEguN3NP7&R;Gau{o%Ki~_kI;_^GzZS?Wf-M&iL#>hXGt4WU zpOS~~eP;vUu>9`utT78yP@6|u0Z||V`OdASAL%NV%-ADoE|EZ5Lx722qm}!y%mwv{ z2+8gsUq*iqMWRm}b{yqM??)JgVjM%(_XM(}<5&6c>si6_#p)D0&RUn^qH?Su#rC7_ z590YUG}9yup|6%nK;iStrk#}4E*Ia8`oNJ>A1vPR9@uN(gjF|AdIQftUF1F)xvpp1 zM1RkFUCZTxv7yI6K=+cg)0o!Ng541a(Rjy4Q~A2@-u24hUb()ToYi3ddEI+>RZxsV zddcbsoM2L$>^T|1D(%a>F4Fp|T}EM`f~HIBq4ly#GuyyOku#tDMO8b&!Lv#VEua6c zvTZ?9*49YiYux;JEjL0@pY^v$0-Gptst%lvTC2gnIdVN^MYb|ZxfSoFHq2(7!A?0k zZ>*PoLu-=cLBY>T=FI z?;!g%HAPc$g>DOr-#FXhgRgQ{2vk6?Te7NA2Aja~Ew&!?KYPNEmkY@R+wkv{?>fr0 zo}aEnJ?{kaYw%LlZFf-W(x^?ok;sa2tv7xs#6(tvE~)!)0B| zUb6jO_`9Nts|zkwgL7$pf*jn77L9e!Yyz9St5l_R0r}Z(%PNk7Ou<~3{m6lad1D2- zNcqc|a(nFsnJ6qV%@vmkDXYbo<&y*58S3ZtZ_pp&zEanFzs+H2KQT$UOE3-u^{I@U zdt#B!jiC&NN3)-LQ9q&9Eq4(SCzl7m=r2@0qgQ@`{nF;Qwzb?a+yJTpTH!m-f1)wv z_R7y*f_X?*#<}~b=EP#V5Zf^|ZYvZ?677!2D_atgG zmzr6|-bPu3?!KZwgP~h|42OnA2Mzb_@7C94tX^DKx3t)Ua3{=x1Dh2EnU3)H;pZnL zL_&gs0&_6^mP4@NK@%i#|Fcus#f59+*{Jcb^T8OFFd%GH)h`AOj1UY71PV9+ND%1T z@_zOu!jAc5nId`u%lVgk?x{?;>#L#67q3-nUg@`LCDo@0ltQ*z6oWCp#BNDl(rOen z=yC@Jv%04|k!%HySxFESlpn;uuM7qP0{kt+{W-PG9mfvkfcOzkVv(vnRwt8}(P z->f925)1t$Wp-j);q}s*N!STWZ-FA* z{9}NfJ}Ds_5(E@z0B|pm-U=~cD>AUk`a8b^+>C`>@rs$sENf}51~h+0E*&mFiUtA% z>;uFfoE%d2@y;JRUo|&6j-Mb0aSHMf^e6DsY?FsimmK9O*9oLnq-cTtGXDJ+i^(V8 zg<@56QX2IjVJuzfYA`hr8sMa3f6{rq>PqustxVx4R8O1;FH} z62}ajy8e0UfP0Up|Fa0;m%|y(l9+;dH?J;1HR2-VDd-*N;-wrne$-bRB4-_NPk%rN zUtEkX2niSp2()hizaZhazHpGaV1AxikOmZAmODFe5a2&+nY!~6Xj>B;vw*`m0S|by zZ~E!al*2X+i1#Y;iH)KxVoCizSLd5{DvD*13&NhA9>9pawp}_mhX6m4w=cK>~vU z0R#2}67b3Ss0MG^gc{(MqpBG5U6?^0i2~~P1H=0%$^WT8o7db=Ba{!~lOM3R4_`OI zCgSCRk3YW`4attn;7abD0>Z2)RBeEsDmNk2-#?1L0HKWdnuAcB_)~~hkpJIL&-sG% zD_!riD!>Y@LYSD&SD2re5IF`)9E^l((?>p%<|j2(fX1+3oLV)K8War}ItZ+9AOagV zi#ogALHwS#NT@tDr8s2*)UU5n4k2Knhd>_%S+@|)0{|;bA%l1Uegpco$ZSwJkdF6* zU`jx|o|ioQtmH!tHWouS;wI!J=mYQz3*{X%t{5U9WtinS84Ky&aW|1@j4cFSrr30~ z?cCMx6V~od?5D@q=Fc8!FM35eEc_+%umZzR{$M#^@*otz2|$uS1^yCob06@rb6AQK zXZzs48sy;1BNju>f*y0Ot}X(a!EHu_vycsOzWEHggbYZSP;g)nAfR~KyF~~Oj|?vC zzS(8bJ1+e01n)09I&WIkFDX&6Us+$qsD&*Prl4oEF`7R^;goi_GC+gHjug;E6o`*X z3o&LSrC4Y<@L>N}okB3-f7dBOJ|dg-Qp#~Q5gSkUPf(f%-Y{A9rPO|Zk3WUXwH#z3 zIy1(p4PqZQk0737JYKWMynS?XqUmgnIGDsR2ITh&Y)qs{^hmc*+wWLk_pH6p>$FsN zaV+k<>=%AYVN|C|?yaKc#X}_TqTvalWNL%FiKsYor7N~Y6vUZ$*_d{R zGJWhX*^JN-nY&Rv8EFe1W;z+VwdQF0-^GfFU&V@g$^+Ftx!!;%m+$@|n0OD2qka^( z3(Q)g$kCx!LT;Wfvwc#A( zGoedXP+MzN0!sDM*tmBK>RTzygR@NyB@m`JF!eA~jigi-z{>-2t#Olv!=q`<=yexV z=g|ij775Y4mOp6j3P%{->kpN$z;?M3qR--d;z_volxyTwzLP&7DE9kCW#i z-M-p2bx9w!*cFpdy8n#P{dtr6674|)PlsKuW;#-_yk6f@acPO6Z)5=w76@pv-L;7W z!(G$Z`)@>Ezdds`T0K4>DBF%Hcej}9&Dv#d>hVoVExnuZ%R!X{Fu+<*u;etI&OA3~ z>8jR9dRcw4E25!(wPhz5(5AAv=@}08IvnJYhb{(FHpis0nt(uF+)P>OZX#UV43M%) zi8F`Br2$kp_QV5{wD8CQNmN>hra&w}*tpo(07g&o4}K+kfSG2r0#BJqUEhqr@Nm4t zD)8}*>w1?zlThlnvEaNh@f(5$rgZpwdz;e#pZW>|@hfxf`5?`7n5mxz_w2R+1d%@^ zYog(6NoV5dQGMK}tg|+?0QSti>e1`A>{xw1b0l39LV#Ku3J5F;4@^x22}vW&QFY+r z8QFu=woj+7_FIy$CUBq&H|`#L-HzjPxlhKkLY<#3#GVWJfaE~2wrW(<&z)d>&w}#p z5nL0Vb+Lt;Ok&Q*AGa|IKmxuw2;_M__3sLOzQho|U|=YO{xJe$=Nqr5UZW*mJ*RIP z+u+&qhPJcfIq;AuK+ry5{2+uq=dnI0Qm3#fy7&DM+47dQv;4XZ;J=p$1cHjAJncYN zZmm@#@I?yLOR%GdamTMv5(L8swi|r2H+ILbTq9jv_;o)368h%Rt7{~WIWbVD8g7tR20?w{C=ZIzmH}jmU1z1+H5Cf=L9qvD}mt7}>80D!UkIN{}SbG7>> zf6#c+3HRxK++Lymff@NaAV~X)=71P}4ZG1@U42<)!QC#||FY0B+^veczvJE8K3?Yt zkk$36iRbmZZSrdxlfF~k%6o;@dSmOCET?c^oTxg9!Ka(S=nJ{Ug{n5R{Bj<@gx!xe z<_oAKl6g}PzP-3o4jEj0e!bt*`)2bM1KEfpT3O&L@|m`0LzPDo#7g2~car*t-@t~e z_5IvE{aCEl`3pt{rbVfsXCsFokn;Ue^PhW^6=E7$!?Xe9%^*UVY#U;6L__Z<#*6I7 zwg#e`4#GGINs(1L=-i}`RQaP;;-B@jca)#%d1~!bt0+13P|Wz~1drho^@)DKSu;j< z8UKj8kR|d!Cf|%OReZ)Wp>P;-SSU*LdsM&}wP9L5-M88=_!+vQT`Uqe9gNrq%_24{ zdA!e&e(I%|xw;{KXKXNc-w0>Pd$NWxxuxP*YNi7u1V4PZ&S&HuFlL)`iPn2l&Nz3Vnf;nYgReKggtBd}xbTgREnnu|Uz2AuVAhCWGcO_Q?Sh{z~RI86ag`gB2L z?Vy%bLXWv>eOj-YnvB|bruukx@52)fDe^~Q>XSGY2Zd#(8}YG$+t>b`iy0(hwbk#s zH7Xuv)g16`>NT5Ce*M)KQ0U1J;YFd!*ycro#39fvOcE%cTU*e`anclJOTKVmeD=5k36oHV9bPap=kvWt zAG%M1LiOht=)T9f@_g4rkyk(<{#Z~?C{dc48&r~{$D8Q3v*~6AF!A?CvaBM5^+WOx zRp@@jOAg>3%g~~M)eF_7l7NrQ2;Na^Y^M>vio>@3sKe%KZg#>tc~0E8!GDJlKnZ;p zoZ<7TGxoOexr`H5#!`7CE;m^zz0qS%3bY;QY_5McA<~W-t-NTQIRV6bah)Wq1gv?5%Y33b*dbhDKgU;r-mbU zANpyHV+My_GMdQTr2c!B&uN!uM>EV@9j_9~;a_D38~B@Y>et&ppdSu^tOa-Q-$%dk zqdX(%H!mzxAV@4WhOTKYryLG0eb%`l5xqyxol*XQjQYGK;6TVlkCqwzh9-A<>hJ+7 zSzJs>b5*anWQw+Gc1Mf8d~2jXT$0!r$1?l4{vrb9%w^Jx*6~TNgl-CDZ)9J(4-n(= z$(3|*Ea>`8bO?Yenpvpvr^mb{FZc@l+}<{M9;n9Q?LS5#!%-C-CYldv^Mz6glkx8$bWpLC4qo%F&t*6QC<7GbAdC_szaU4s|M=-Y%5Zc?;~%7co_|6mAkHsK&%cfxi)XcqKD zka}{9t}ffQakBe+zxTiQK6{*-GvXp5@*;9%L}t}`)|$UL z384onO?H29h(Ck+^4mT;w$tLqcwwX?4|+4xcTHNerwfD*@3x(%e7)Q}ox^a13wNyH zO7H;9ruHoFNoATvA~{r6N*5E;QkM`jpOlt7EaGb4&I-_tdn^I@sk}Wk(MOm>j9^Zh zs4-x$(^*st-*Vk+*#*_YWLj4c0@=M;E>Oe;FI1CA7-fVfC7lkdIbp}WS@-o&7`axi z-{*7Q^>B5rY?Zr9K4!A>$3GH-3+d~#DW`{F5bO0UNL1qnepgS6kN4=$OXW-^i_KEl z%+8Zd0xQl%id^30Lutlj*CW?=ZNx(iC+Cmx5|T<_Ulb{(9N>@JM;!k1_CfrPLGNwG z6cn1Uoe1g@%L4C%I!#6+>e=qu4fa)MpU~%427<47@8okI`>nsDZ-3&lga1rgJlrTs`%K{%X7Y@3 zBLB>`w-uB24w+2dHgQGU}N5T(KNYqIgdyyt2W{WjJ7L6pfOP zBHdtRTuba`lUc-_R}awW4=;mwRtX)u(i8P3BFoud0@6vDXfcje7pu79Ax)65^;W`u-~s;wa>P;EmvO-dl>|$BH8; z0lD48_@gH)Zt6H1t~`yPX@yfxZuKLBk4?wL*bm3eFZAT(CaI3M0rCRUd1TY|2IeD} zz*-=5{waX-eg8a@KP^F}s=&4=Ivm(=tiSDp@0g@FhOBP?HWQjFM)L?JXSSzJjzyQ( zd8dggG2M+-Zp=tx`|anohgQW~>%Z0zI zG3B28bvi-(q<$=Pd^NyJxJ0THzA(t~{X&zaUHQ4~Q z7*NzHerKpFpQp7*a5#70S{(J6q@UX_)UOf8B6fz4p2zC9T5rIJ=Mp(V_^Q;x0_~vo z{YMfMj%LQoYO>^*7vZSh9$0d-q;rpX6NmMbwh(@K`N>|s9APY&a{!k$T`bE5#r7}V zC)?N%vj{X*QS!x%rRks=-5ZhWI0qW4g3{>OAGq=6iZMryZa6jNvH=QIC}?8?=_(f0 zD#RLDA$^GH5-4)+qitx6iC_#lY?j;(&SiJ`e5U5UL2*A08N``wsD0QZJ#NZto4Fm>%GkxX zQ=$vS1vN^iB`sv0%#NBa8%are1tiX^P)IVsQ$Q<$QCP6cB}6Ho;}uEZd}<_>M3*WI7lFafF>x}HDx0a)HK}pq5B!867W;Wv%1D&KzF+M@!{K3xX;_Ic zmwSM+|1~NAYw|QIK=;6(r92wh7Jx>iV@h%0hpJDoF$X&r57$-aE9VZ|r_0k6_4_rxAwjUD_mzEnZ(UWseWT|q{@)1%fE8wyd z`+_Q@U~VRu|NH%7c{!BW?v0d_8!OOEGJ#wzgF({VP-vr`TEC+WUU!2$y7DF&tGB!S z8$CSmk}x^YL*`WYS*WXMf0m}S5K1r;Ogh`g#wwYplIGVZ*h8TWcF{SB93kI~3jP(t zYK$YqJF~eaJ)uhoyBeb$CGox>$x-VuA<3QKv92d_^Q^JL4PrMHMc}G0Q20b{jjLNT z!dRa|ZxT|6Wna<9Zh+24Ek`oHb5o45ca!=xRsqtb6zXc!l(BMN`oFoAfn)kOhVW;9 zP2i>yPoO0xmx8BIA+s1e*i`)5>TSU~`v~X=zycB}M-=W?IxE!0)MeU)7ibzGRBLG} z^>UA7s=`TTixq#-B8sk(dsu13PM)=&sVW9VP-pm%eW4aAGapWzDr4WLqAQv6I3!f0 z%k&zm-gjV6oO(ccn$ZXUFuR6i-wci6@M$1jR+Bp&4#DvyZWs0l8GGjJ!cX)#rkCm(bbItNZ zUsn5tIe^@{?F?zaL0T1th_qaHv z{J$wBpUb-btCZYmX6MVzHp@{aLCX)pHjumY1qd{g6Y=3A4kh~pk;87J*K!Nr{Cjd+ z-Z*v95yZPAWr~lx(^K^hn=@tRPZvzqa`C`ZA208ZBRLb2otu)B%6;i`Dv=J_x_SOn z4fzv)IO#{XD;So%$_?R>;f-)r2vg;5r*FSWUzlxEPCy3Zc_%x2?$%ab89`b-Pu`VZ z^C}hP7X_3ERw!Y)nZSYySKpEfQ$j}*xDtDDl6@g}8X&P}wp(p+^tl`cWqfVx_uMCA0f0B7@4J+emjZ5)hC4AK~Q# z%gKY>Whz0oyTQ-X<=o57hciK6bCyS|<+G`Ey$oO9{Lj~UW0{QD>(bDR*cq{1{gdSZ z?-9t~($Y_Sp2>Py^N)KAAe7|{@gNd#@g zy!m>rxzlOS-bRq^__!1Aq2t1Q+>2H%o^GnpBm7FLedkvW<(8=*jhdFlxxMnhdtxyZQZSm_}f>c{e98`x^OKgLV*n;fAb7LaWdB62aJ>TNcZLC!JjH z1$ni%h9 zi)Cz=fjfGri_{T?k4EmX0)jjPZZADicL-LkC+sIGL|mCtT`NEXC|Fs)6Au%E{Z$>V zA}DEKv{=nM?T;+{=dPvCf-nD-O=N7E;YPWynwhvdCpgb81!w5p4-2?_zWgtIC+o2>zG*BQdDUt^qAWF9HMJmX}Nl5c8 znq9y^pB|0z4Md5>Ux0?9OGI$$3ZZ(>wFO4Uh=RYs{zs!hbsn1J!=WzB?4;?T=wgMa zh|P&3h?R=E5Ec2=n$qA+6A3G(FqF}i75knZLUGy7NnhM5379Ukq3Ql6ZB>4Hj_!zR z4%GvOH#kQ~ezm4lnw1K>^@@usB}$*X(n^+pqdUnYuAWXJeJhSh0;>p43F5b1o7K@d zX~Pu76al18Py8eSQ}?QZj3^c=AVPC6$Pho@up%OYQ-AP5hqmc*_<6q<-gjaY!Wh|_ zuxx>CVYPkSM{v>shpDnUcwESos3C5dBuP_E(bS?Y;DL(^hhJ*Dvf91o68sDBN(b~ZC;T#rMDN7rPLyl1t5(Lseu=i)8&bB1X$bJlS)@y>|9&Za# zp^Wq|N@G+e7%W~PEHqV`;G^*sNzXCQ6k2q?(O2$;VF%f1%_CZ;2TbP_ zwRz1kR4b7UM*^Y9fkU<+HEa;Tn+ll|H4bM!72%w7H#r6iA2{N`98NH!BEUcf2lo9; z*1@kw3z(08UJH#OzHfuaW5woz!3&NN5|33BcQ?UXD1k1Yx_z}iIIU)C7k+SrRic5? zQInu6LRX43Tvwgri#9F#ay-QwPREqDilkkEHh^vjTNk`!cybs4ca$T7AUSOvhHIAA z0umqiOK@*Xu_oJ*`mex2TGpjtfn!4OMZivL9jdE zPM~u|KIcj|+oc#%5mDm)`MmNDqKwtmME7kJc%mDQuw2yPLL%sYKW#yf zd2kGJKX&`w`4#nNy>dR8gtv{bdAi@@NK9wiY={{M-g#ypNt)AZU@_ zsGvp4FTbe$=JJRfdUnW0D%Y1DG$6P`Xm3ZZUcE9*&5>w*kCqwtfm)5BWKyRH6ND-R zL&U42&xnQC7hEX6r=lho;6Rj1PvPNJXyDbQ3|(YPrQNNwUBf*Gx=^LMG}3d4DasUSC>6G_ z07iOW5R)hhNsJ?Es)R83z=79bZHlQL^?AVBoTQX;+@DPdCqLQ_J9k0M=y!PWg;_dq z2&GeN>A#9{Qh}a#S<&DsN@7II9#|#j~fv`{jLbqPvuEj6QJO_2#Sx86%or zn(v(_OR;-oyXNw<>yvADaFTBny zUQTw7+y{Rv^g9`(S%g&w4AapZ$((Qz9CuEmxG+OMVt;%KZSCUp=X2_F5wq?=qp&F8 zZ>OJT!}?faaq3!%Y))6Mncptc#ucYJGUVnv?R2$?cUycr^NhWr#{Ju6tSw(oR>=Fs zF>gP@pFX$68`9$jU9)j-O0z+v8rTxZci?6qZ9ls6pDB2gXUS?6o>$-2&fH=y_3VQ| z)K@}iQmD6J?7&+=bbxDs)FYx|$nNmf_dGmb&%Y5Jd+)&c!e&`uO_~>A*+FoCW&uwE znIT}CRnUX&Mz0G$nRG=n)`%6(a{63U5`5`m@PwX1J52n#(D{2X0h;d7SDYa7C(qZeZf_6qzdpng3y_1v;@nfDcG zaFKqs+FwcGVU|lOJ|RF!fGQ7F0frLXg#H6F^$njnslXZS_yS)JEJ8yIk|IN+7kUfK z4uk_Zi!kVBr+5s^T>yuA5iySkef6SKOEgcb*tyD(O-CQ+zdAnZP;?1{GlO)rF-=|n zBy1vZRx0a2RN=C}@;xempbrLwn!ZLdUx{xr{$Qy4J6+rQER3bHmN<<{pqcz}z@nJ7SP_4zQw32*copCZAXPtVf#krL5|v_j6M_P&h{%|M8FX$4 ze+2WwUGu24YOP!bs(%X-!K{AFd^UqMXfF)jj>P= zX<8&#lT@v&Dy z^Gche_At(L)rFXYn$Uwf2Y{S=-enWMU&9+-Z5B7T<%{h<`1xJ>XvcOXqwHHbv?6>w zwL2mDSz4mr7#^?hTqz#u;7u~>+iZ(K+1ubvpyItg=4_b00DV@fAQ>F+b){$dysRcE z7as6U6;9zVk|T~Jp*rTq+$g4@QT)!(GMX6om}7S7({2ogjD6jWbh_gBe%WIETSS|R zws_4UfBuck^WyYqhpGElJNtS#XTj(rzVPV9*^Ye;5NmPnWB>Iu-I|7da(HC%8;O;q zDc_s*F$uz@*Clmbh&u}w&EV^8;ZO6*16$KACJcm9TMZ_v@HAgs{_$O_&$@?_`3f>y zK}Ul$@iqr-SPsZ6&`ID!zuU#$=Yl-c3{GEt!~#{#7QNpHY%`3oErJe7#-OJ{sa8wx-kKvQjGiTAYR>a1% zk0rTfQw-`yjUWO>q6U>e+8YFD{-R7oOJv&#jLz(PSAogW;w2LRIxHiy1sx z=~ft|7i^Sn?EkKAdO^Jll#wBOHgrVy#SVum)&I14W4j*+bAdj}<0BM=qZvvcdv5HJ z&n{>3+;T{9N&VfLz7wJ!Qu=OP9@6>BrMgqy>l%-$Jx+AqakZ=)2k37=O(jJktnI&h zdcPPhI_bDuX4%oQh`^?69TY|BB2z?pa2wOX@9uC&M%xeUrm({Vi84MO_>XYhAhse7 zC$GjJcMI1=_gw-OKN`_bomgS~01_;PSgL>}p6e+Anwxg`?N9d?HLb^N9P#yCc{AHq zzR>3K&SC9z==mG|Mj-w3){4I4!;e3G&wkwc#L2xLqo5^ zKmM#onl+Oy1+}eAVYd{5P!uutwIxYO8o2vdvTn-Blay?KRU3%ns?J9~OCjwlN~-?! znk+t$acrU){RI2lz|0hV4zO;0CH~vk{L|5V6nmDYQE6^IXEw32d33i*+#NTE3WF;B)WJZ?>EB?cG7@u1faa;Xj|qpLld4$^jL;*}AAqnxakNV*p8j zGt5>)BbazzrK(fYvtv5HXRJ9UV*9%ytLG*6Q)LB&()>vYtTm12@nvaksd?pn_13N$ ztVwqH&8wO3D>!qH)NaWRR@1HiEci``iPW#*kqpr8)w{pGT)PipXAL~~$Wsu$O zAK$du$NH3QQRRF-`IA0+5?#U9b7k;C__I1M9+@8_BR>}LvZXF$OSqojH$UF4FE4#K zM%sU0?1^LOANq1|_MCchV&&Y#P{bzQRtoy;%Awr{1}g6(esQ?5qbMCGC_dN|P74XV zc$ZY?CO|~IwVAxum|Z46+ze;)_ z#@wGqH6Kl3DK6*!VJ<~2@9)=)8`o@ZK8D{UiV0!u-^{Y1AD{f5oO@7kXQvsXsK!S$ zSTC>12nP_Fa~3fy$=fVVc?v`7a@y!FH+1xAiaYwlD66Cu^xbjWLVaaG#78SBW6-Va zOG5ek;xvY0v66-bhq8=BrKOf|vZC5q@;9x<5NgH*D3V6CEJn%Ja(8%D8`8wv$hEJ! z!m8L~_cenIY{|D{6!BfwV@4-9DVGvAG3sq1L=W8RvVxyi=W zV$P|+&M^H-RZ^y=C6l3Y>BJ!$@R*9L<&KgN;3Fi6`-FN{IvUV(?vSJ@3T~;Kerle%3pBdKj@R%U(i1bdq{NsJ0|HdXsjiLJP&*Tj7q$xKW41s zN-8GdO|uwP-94^^Ex)58)P`o;^FxbY^z{q41An|f`EVMD0eDPus0PU($#;T)XxIN@ z8QNE0Nn|#W)NG;B`aATz;t>;;Uuw>8$xhG!RK{4yH5mzr=m-GE_`_(r2YFssK!_3J zIjjR{3d1=GMZgdK51jdjt@x4vU@IhMh)m!C5GETODrdi;=|5z-vF@&gc5#%2_!oNy9s7ghB-CUTFDp(Ja9#;3PsuYzkCEvNR`x=0fql^mt~eJG{iK@r)XstOzZk6<$4BeXcA~e zE3`@`Q83_2;Q!Ek_OPmT@$ zy8!=i=8ph>Pw_tj{LM=hLZxg7qTiB8Lv;wn#pA(e3hwg+*j;e!So#C9V*Z)E6I%AS zlQ`F!-)NU*d`8r6#@G^k*TixhO#rO6v@EX?RGruFCkHvoRo;)}!zuga^&-$ia`%pwq0-b zla^EgJ^Q_Z26&lPDXm$SG_mJYu?qdLFpX zGJ^3S=0HyIZ@bGD0Z#=U{=Bui?)-Cr$Y);LSR5cp7R)O28{#g>ZGwUhW(9>L+)$0u zB1}PTw4F--4<9G>Jiv~-jJ7YH=cT|$*<+AIj|%>uVV;-5hyNKyRutrR-;C_ZPpXBp z=fQ1!{P$sY0(pF~Y3twKST17jpF7>$DT}U%Yqdu73iR|>ACGy!b{4>?e$u`BD6RA8 z+AY9e|8th#`**IF;HxQ@8XYVG4^RYyAZLPy4{@ja{Z}MBpoNN9CtmPQcjkWG$lGW6 zgz)zV!Um@nJm6yamr?$M&3OB%5~Z(Qw_A9M%m7D|Q)YaQ4CO9$OnrLX#{N)4-Nz&T zkwLG3O8L^-*_5|psbXWus$X^RdPQUPwN`9Q?UvO~N#K~Mx|1+`PX((GtTbz$U0M3+ z(PX8uGeb@3IR!ZaSvY4yju)i~&MXN_$=;pSstlMQkvlw^Q ztz~QO9?2BCv{Ox9wbEK{!+z>D)2Dp+GB5Odblhu8FL}f30e|sh?#qXKwW;Yg?AbP~ z8jK;;ms|a@Tn&rQ@xWI5%H+jS;_{(vhA+4YgJ@0|wmR?_=<&{I4;l4;!t(sa4rh*pwvmY(&^7 zi>Itv*?u`GGg(9Cc70rR-^KzS-K67X1YIHQqCukRQrO%dpM<{u!zZEFpxy?-NW{({ zePL8VGL4PZ9`n)H#2H~u3A;`mp%8zK($FIuf2G^@SEA<|bHfsPt}4vD2Sgg(nSKR8xyRM20}e z1@llONmkDvmt7&|{Rr=w{lyYK{|$E|q~C4&JhlS5cMo+v8hKtI?6EJ6c=`FW{3aBN)4eru4rINI^BJjRJI~X1 zc46i&G}N6PLsI`wvEu747pwHA>IUHZ4|m1f!hJN3vbDa5if%+wFcyawd+-+&afQ%Sv+L-7cLx{@D2!$(zUy=z3luZW zlA~K7rw#b9Nn7SNEsEXBTIDt{I4s)G{Uxi&Q#!*v1L;b+S~I6OaCz#bfhKbK1;*at>zpLCgIjasYw-+^X{CgBC_99XX;w^ebwxZ1!<-N>gq}F zKL$C$$EA$Yng+#gqavHW>O6(x=%-?lr#GshtA_T?YYQLhVtoxSV@dXZ{*c}~Yra{n z%0sc;UT&Ihn3K_VbFscT6Idj)ievrNj$W_F?=3)Gf|!%8)D~>1SFgx=347U7r2qbh zaplI+bAI=`(9LlR!HSkn#OjebTy}V@yV%KiCh{U&N}5 z1GR{z9xf4&+zIpn1n05FGv`PS;@NFa&WHa3jey*DiHcToo}mdjB`DdCtQYwo>Hgyari9FK%aJ2hH#R7GPprQmuBT#*R9^*% z=h>Q&!#RZ85&r&%0uJ{Rxd*R|ipMKa88cE%nMP1`I@eI;@63ct#REwfdRL+Gm!Tdg z1Nv(h;0Gt5W)wB*QB8>sSIsG=3JH@RSCLE!@RA7i6A~cGLsEdE1VdeslaR1RMOIQB zOXWDHtXb3x`BqxI2LmomM@mS4hWhVqCCp2O45Su@yJfE!=aNSJ182=`jmU3$tWa=5H_YJ>Ea)U(4LNQvLIru;Gcr&6~M zPubG2ORF}Vkfs6-W0+FpeXGAHw_~ejy`K zqASEF$T!dr;7?o|(P`u8Q#=wROMk6!fefU7fh}NvgjzsK*n=RN0?qQU(s%^qtDpB@ zZfj~g#CPY~F3A(N?bX9PP$-Wr0jUr>Sl}P}2@IL5mr}tS%2*KqK7k>FHT?_!fpLw0 zoA$j(@lpVpm%340l7aiHg96wF@P(qkEi>Na-ION(GOA1FiG%zFx(9p%^fxK&2WLmM zcXQd31qrY{`4134*4#hO1mVYy+2aukAS*2Sh@|{qJ_~XBuvh(k+5M-ZUwy8cVH{D~ zI|3XC1aP3AU~gWa?z7qB8vrw7yNM-)aNPLGzeVu(Za9Kfex9WSC_v6j!R#PA3;e~M z{%~1bd&#~o5&Rfs;Fe?`lyd(6L9!s9K;Jl*2;&G~M>saF*~&1=z%0qYG%bMz{Rjn+ z{*qZ-otO%|cY$1gpfqDtEQWuOG~oB|bYLRvFu*erN2J^dvlIOSqKZzs>5QllO~{c! zq6$zNV6-6Uz>$8U^oTI3WH>8|^%t!Q(HwUk`3e$1p;~^z_#l45y+m6`c2FE(xR&Bc zzi2QpaB8r-ZryKd`Tc{mB!nW&t8o4Yp?d)l{)mQAK0TS~5YK~ynim7x!KRV;mufuP zGL8P1-lE(pjlL=@0(t}T0pj-~05Dvof(?TqyGK720AKlcCeWSkm`Qjmj-EJ)*xxGYCQ>qJ-beKu-HekwmCd+Zj@b>6qaM?X(PQEN1S_ zueJ$lH+`RO`T1+075`6N6Y+yqF?1=<{+b8XA6=6oO;#$P+nhx9k!#G4WWue6M6)1< zgtkFi$rzzBT;@7uFn_qZT=#Usl*6x|=H7J+*@l$lK$T8~m(Ko&q@MV^Nrrum4CI}( zwP`Q3xK%W5Di|MM3fuA8{*9I!6Pl>6*6picWqJ@cxs;J}7y$D~*tk9ZN!JzXm!h8q z^T{n^dEdFvesf_^KhEXQg)>P9Ve-GKs+xlwv0`Phtw-B>r|$p187$HN{|uIjo6+~E zFKbZMrsR#hO+I6^25nMqrT_*@2EbqugJfvthi9`k0ff8=_YX@QXG(luf=k&I*w7;( z+W(l;BvW>6hRRDJVCZ(AIv3v+63e-=K042h+bl^zTp&_YV>^+DZLPLSGzB zQ2rQZPIcR-a$uqL1vu3Zp8VIThHCPSSEV(0|K0SU>8s0Hv97E8q4%sebiSA+4Hc`D zlw|Y*4j`N}=h|}VU5y2WJ>knf_XTq9!Tv>Xh^PI)1vnbcLAjMPy+CcA`ZUdvGrY(8 zItU!T>_7}?RPE;HK80;-Y{ zIOguD%<$>|$|9W$21AwE4V3jBg(T~~%1YHFYM&jtTYSH==>89_WiV~gZM$5GXu)3t zu3R9s)sc;)qSo~A7uOQ_2iJn+`#YAf#1ybbfGpGCvgA-u148)64QKj~8_t!$mqAMA z;Soq%;T`KEfIx1%s3-II3Wl`s^RIS>{`mh8EG13Px6w||xK4|+laPZ9OAPIC|0y)UZ-iil>Bj{CnH1B<+*iLNju zU6M2+U$c;W~Z#0&Od}@J0#$ZB%G2^QKm(U6Z5L&O)Jo$eucF_KZ z&_bdCA_Y!BAXkecQnMSdBP^fAtpgc=`NL=pz*G#vpq4h(z9`$i>xP8=R224C1yca} z`*?nQ$dgfSCHxqw{#2%CS<5s3Ow0FY43PlI1D*yl?+xn4CcjgpSG)mdemN=Qc@p_# z6%2TjXZsk~@RoZyv(ARgLEhaF^9R5QkXF6hpd&bv!=9WkI4&4->+qtutX|dkX1WXbaTIZa9xn4XO>yn zw{y)qGsV%!eQq_bNu(yF%d}Kyrd@2`;2D?A%1{@kUfeK^-y}ra<0>zjv^I-=`aJhTR#h@^2N=A*$ha(ak69P>RcLtBAEFkE(S&q4>Cg zR%!;PLRk|UB{caf3HdIG+qlWg?aA+5*-tSuT|RoIvdd(?hRz~q(+UL5f`APf9XP}) zvFoB)I8L_d9DTEqbaxrKv6FkEq9n=HzI0y^k$~=gJJrt`>4$70`8_L7tW`u@?V3_1 zI{g2w)}@lflsA+@k-q=fTZW?h;4LiNRm_slG~|e(Aa~1TpdNX=I*?K8g%^N1H>YuottFF{k@NS_NIZ)m=R|>hE@fOSxaK0oH|c z)7q+&&g04_5@`&QZMyv&^fX`FP7uVOi&O7JyV4}acp%VxkN!|=smWOy2ebM{N>|JJ z)jGvD(_qYo=OMe_X94+T*SoJM56)sb5bkS?rxaJl$_|3CY_Lr#j6IWbU_%Ym zM6;+f=Sue#t(ro&Ma30B&l(|@=4K;rBGE-<@>kEwpz~MH>KH_T5)mBl3>}N|g@Tcp z94$Xg_Nb3HgeZEuQ*Ng1ulB(GTl8N&E7at+JEsqrs!E16d^T%RNRN!g*IRMK!+BpW z>>Mn7E<8(oSd3Xp%k(}dnlPXITxRRAA$RUiH`p1Aydw=_FcHWC&>46CBaPE_EMeT# zAR+~)+SMGz)mwds;CB(FQoaC*#!LXF%pT7itgLM5b+l| zZBw$DDid&+s;Be#p( zU!bgPh{k9)0ty6s{(4NY;t2{GaykQ?vK9%=(pFJLPOfuq12s*>qUE^&6HMyM>T)`s zdy@YDEB^U(y(3XT))Mi9@*v2OoVPu_%OVm|iYC=!Y_>XCKaXzi0KO6RUmr=L`F%p~ z%s*VDA%KfK83U8ey*&FEo}|RpL*(A|L5^7)Y`hW}DqqZSOS*{_wOC1OoMuD#j#b@V&kLT~&VbaQjqR_gf zuMqbBt+)}bow?2LlKh=C*azcU$QhJLioY7KA2)7b_@s@~g++@=J?1oabP|)TWx($zAL;T@gwH3IJ-AKIrZ)p!Q34{Tk7-E~M@Ab>NdgDrPGPf!_3!rx^3 z(g3g2wbEGvwC>wN$;krf>6wVaHBkjF zlSt}WLL`JT`R%b2KSLVv0J~#R6@yDEO`x*MG@18JmJE)NsTu|W;ufU~F*i@{GG^JQ zTjxJ~jeh5fMdZ{|(gYp}-s%0YJI0E}ol_GP%AlMPX`=lus*m54(I~vja!4W5W^s~) zV@avD>woiYbVAz2?<&JNX;Y`k>m(J)-F8jbyKz6s%yr}nCp7q#!ngo&S>CkxszkXx;wTRAxvvI#eF(**)ncL-QWwZM0A;gzI zS7_gx`8G-L{yDG3A>N!jG~8^5!i9;u+(Rn3P$ZKW6W@5O<86HtTq!{mxkw-)2@r+50t{QAR^PSuqFHT~K_*#V1YMNwRB2W$z4~ytmL~Pa?(V&Xzw6`txB7i8<^zp* zn5AXdP7H|%5nwxK6WQ-C3X{)ABteHh)gX_G(HJ`j))+dw=$osO!A8&AFuW@)FC+-S zw~q25WHPwhz4lb9R4~>wOd#EtF_s*|mQoSs^I)Eae=Mr8SlXpq{9f}Q~vFbd(TNXInM~ghLU0SCIMl@ntUN%~~4U)si zrpd^yyTSLBasjnPUVeO;ulvW4k|Gab;g5 z>3L(?-;am8%$-~f#n8N77zund(8zp?xppWo3Er_?JPV(hI$X=0#GO<^Q$q*zmiTiO zSQ}4h&@1wT30D~LZVRONmz2Q@#-6%b+7#WySVyI8>ca zofLfPLZ#C~*xRdWhTahe?WQOSr)lmFtl{+VU`o)>jd{6sxiNqRO9C>J`x_~_zg8j5 za!g$M0(4;}hy6{gi<;Hh)VzN6;?0dgYAG`(O6}@$s4C_7${C&$GKy2!-B$^JOzXMMW~Xt7eLdO1~+s&5F7I#1Hyqj=aw2h_QRU z^&K;rH|DtX8p0dLwM87$cgeQ0C)BMy(2Y9lzgGOBJi1u&<@?rmf!BAZpzP+x1AAd< z++k@__98NWw{bH}M$!GS<2Q2nX<**N!+xhb_1ZIknF2bHlZx`_291^}iB}x4BG)e# z&UFot#B~4JR!V4ytIfo$ku7#RB%Tb-tbbF$HDRi)ig zwDmc4JucVVdkhGjFuqJ%hzR_%^@b7?V%%1`*t86+ec*(41^X;H5pK@oVmBElALe)K zeA$-*-36XhM8l)+`t4E4fvZPe+5aP-fi{O6PCXs3uu?FQl=$;QQXl#A! zuZBop4qRH#jJJycw(_&KAr`ZE*|-GqpX{x0$26f7Vp=^hSZ^Qlru>E`SFP&!6WN7t zaX{$w2VI%RJcoEST+P_PIUYB+pnDv#Ej&}Q6snhXfvd;II>axbu-5}dqhpD=kFaT* zz-cbPVvJw$fIxeJ7=Yk_=J0!~;NE8#;Q2`h6Y45)m0#YuPp!74Hm<}mJD#cOq*oo! z@u_$Ti>)Q%0XD-*eyD`t5`y$&EC!p`IHpf9M%=N|7*!|~xEvNZa!H_aekfaD9Kdop zqKFYo6_BDTIfVIl)z(?5+#1H-hf-}K1yZL;hK)f=|9nLe+F^^iSnlANqnw?c^XL6g zqAnZZDRjPhK>{xF=UThm4cBA^ckW=LSMw~Xgtfy!WYTPM3& z-H64bWqUT&?h4~D`om7=^Zv0vcR3o$$^MN?*&N;^Pm5S)uzJTxxNA=xs}1G$-+m{rXA-IT37lpSD}STX0v2NniiVklke`Jk3aWlaW;4x*j0l~LLvmM zhLi1lu5n&fK(n%k&AKj3TvrxoiX4nn>p{6YaH`M??(PLSu!@Uu+T`SyFb%R6(AbUX zmcKogfR#>-IxR4f1n0f_Zhs50pobTqb2X<+bFsOuI%bTG90b@R*1YLNVw97Dp$)!F zXaPI+;xa&v1K$qyd)0C`OG`7ZLg~%{;wLu_yT_9S?=skWNnh&A^5CkOU!Snky*n4Uag(`iJDEOVAD z6EV@79^m>Vq_YY}lE#Dt2L}36fB^|ECEDw*K0c~#)tMxF)oUU!b3*%p-zAIWwc1&2 zTia$FuCkZ<2TT=6CGN_Z(8!>!d}M`{i-EV8ppW)x6fs$-;x|-Ga4~dSvX!lDv34U|CcyKrs#N1d^SHvp=&=xp=e6 zhq~Lc6waFyHT1l{ksqLwyeK#*O&bDV21M-#lNVr+wmVpR82=ScNULspanGd(C<@lYW#9c_xJCo6W!ZR+Dq|aD4Q7JsZtO!@tYZFpD+9 z0WNkB{doKMzJ7Z}1fOt6P3d9{byLQ!_q0kl<>_xoU56DJ*z=XX;AVI?;bhsy_t^a6 zj%U2ILj{-H8q;-+%GK+Z=CXucB^Pq=nRJ^0dOlM1R0<pWDeTNV;n{xQp6p=tF-3ZV3kVKFi$O6l% z&a+A{k^bLAt~^7c0LsEkMW2Y?bm0Ip3(K+4AFW)np)WO*^IDI1+NyU{~%A zzR7MpTO)M}J@mSH?cO-{jB`(5pIfY;Pt0YFSEzv*+&)osfw z@9TGF4hV1fx>|oeUuq@ObIWl4y`C8&7_YgG`B46wM{?|5!bB25X;)IfX6Hr^-TkxS z%JAFf^P9d|bS-a3uU2Z^PFm)wP0IS*mSJhU zRK9obUVsHSU5u4#_k{)^Dpz#<+NY7Yb0lWnjm^N2C$fB!sG%f0x-(u;qDh)`PUV%9 z&7!~^Q`1DWKyp)0G=4_r7wG}d^%@^MsJHlx@Z`A*oQ}1?@2s|fY9)76T?H26|bJ|+jDrHsV%N2Sk!=PZwfPG zRevH0ex$1XfG4?|sH$4P5H2Wh_$-+;X5sm2leE!T&3u10hGu)@TzHH#`Bn1i4iyja z>)>6et?8zV2Tm5(C5D!$Mb=c~Qa(_M^He1Jcdjr+w&5m@j6w@5Yc;<|z83#PU4rkR z#kmmuI~CP^9Vd1j)-*@nZfG$(2CfV>i;J4AD2vTbF5t1zT3ll-C*E0M2(EZ-qQc_y z>(lv*_)U(D`&#aFRv85X6S(z343nzg4;2cJHk?ANS2@YZ+9ZX=nTL}M6R5-)Lp$!z z0oBEKBWQB)mJnDu%$fP4)uT!(KZKTdQ<$lUjN);};;K@d;*Fu~;*NSZyGoXepq4?_ zSx>9A_n0AF92{4N)#EnvHD1|WgjR?ef2*x_bRFC7ik!065;%3#x@Vo?yHwT%E9KOo z?TE~n$AX&zjvn{~yDa?ZukCkkk5jP{EW47&Oaq_kCb)chro6wZqM7Cf!N7jOF$Inj zG6Qy%7F|aBP^Jm59lj4;H2o-XVSysnr15AVq#)q}#Bor7oy&sgK=TQ)AsX)>n?A#{ zjbo@i-_mKuh*6PoGqTX6qyQ8WNDvSaVCUhqIekIf@OfTK{*LI~w>HC&8#PzhBmXiO zIl}*NN@~pBG$R=S%KsDVbdWc-MLATlJ4$?O-Xl4cPk*>Dc$fc z@b-S5^Lx*^<{xt{xPZMDYpglP7@zMLFO$4KW#F1Pai=O-dxGEYrp}rNOu`g?C{Yeq zc)8>Kw;eqSL%z@U4-CmD;rfF)e{ zHjmu>a{25O?dO}0(ujmfDPQ=J&&(u9aL^sVv}f~j-7E+7I8sBBI5#33=K8Zh2I>~{ zHG$UV$iA7Rn~Zpa2(KdDz5xzro1e!=;vcZ*-X2Ml`}Wo}`@u(b4&a{Ci3GBDKg`Dz zXH|O@%yOfPmu=8fV5r(9fysfn)1cY`#pAuKJl)v4MU>NL{6eUs(7+VH%Y5#LANks~ z;2eR}5Uv_c#9#gN{+Y<O;bFTNzC5^(6e-*qys;T%G>GE~sNYD&XE|NWIHm26uNd#VBwP-eOAIp0-q zBTygvfD1&7cst(jCGz#&no@vcut`vRp^rcF0h9f=L_yKi%EkFjbHm#zMIi@*|2%;X zF1Ug>`6I@L*HuvhVLYR-r%)b3#K6S!8{~DK_WKssRItP_f(sAnxlbDjGaN9XIIgGP z-N5n)S)PWks@=ifdwVSrU&7vlQGm?7sxWY8a=+xXtuax@Ad68}aW=o44Lu>JpSkX|=*ey+GRj3w`vXQT(wD2Nw^avn^P#P{}0f z5$v_MX9n@s!vRICke7YS@b{SAHlOt4KZ``S}1daEX@4ksMe2vg$PR63G$&vJ~5 z9W<8nkSX`&E#5}7t?TK9WUC9uRgX?4c^WTB!YRgaDuca_NLL;zZc(@a?vz4)XFb|5 z^ST+K5rep~`QY+;&we3YyRna%IHz5lSD9!KB=Spu&_htCq3hGSaf-1D?;G6wjKQWO z&wIT({>u|o(})~Z;q-$jl5p2mzgFbqCT!}wt$IV--!to?%J-vM{^aTR<74wWmJq|m ze9@Z334dF04)3=uSFz3$Ry_i!K_`+OdgukmWp!5}$FJ|N>(@6E&qW|Ms~=zbBYKOBqgX4e3&ICvEkLtJ0VCF1sS_iwK_-~?im9+ z6RL{hs>-}0aE*RBpNjesRgoPmmo}(+E#-7s^GZ7?FF1XVw*gNfe)X6)=K!Lz09TlA zT_Z48Efq__)mi1u;l=dbr%$nMxQD!pBJ|wY@$gnIIN1p=Ts=T3SHHA?W@iB{&4w_b^_$9zyWH8l|HPD( z18r7I;^SDdw;#-luomu&9LIqAbEc7)we#cZgRc5z#z&*n8(*b9-D~O$dvzDw)Khro5rQzU7gXU z!yCQ9?IY12eo2c(_LcQofXWf0FQHySG?{KOOrWsHXx+`2V4@$!bZ~p1WAvrKx#Uu_ zq+(em_c22MqVg3Auv(!2G?U1Wn^?Yv|b2ti$~9k`^cL=m7$5s9J)^$RnL6T#tM4AT}Sr>2ITWe68xJReqbxSMM(PxTH)NB~Ci%40fJ3EBBiK72ijb zKKU9``f&||m2O1L7bI1{XfJ6$(wyhqqLyVo{zt77jtebO*WX>q3&fzV8=(2uTfAm0 zgqRKCArX^3d))@ZjQ>*F@|pD0A(V7+`zR6(3aKb?zbq0kO2j&#a^RlsS66t+AFLQd#}ZGGS-)9rWiwotw`?K|x; z?}oZzHhCXejn8RuFr&vMkDdWfg|yFT)>)9(<^1BqqKMf;)j8uG$978U!<5H57qMK z7qX-=d3;fnwQn)P(Dvx+_t~6Vl$FzM_R!>a>NaH})Hx(^K$&~ZyBMIl?C-6_QtGI$ zpPIwSHjNiejb@ygwFz8{U83YRh~5D&zc91gqaVD}nGo!IAI-0~lrvX0oTsBu=RFit z&HJGVm2r4#iLGNp*neo-N14UsUUUqMA@lts^U8HpqsMl{fx|5 z%6kDswjy$l1N2TDYxRjRT+&)3DY}6iS0Aej8LqjsOC>(aLvehujPEX3(QoUOO!ePb z8)8H;ze&uSr7D+vJ=EDtONXBNW3Y&tH3>fPdkR(B994*rSR!w-mFUq+$_c}tYDSVv z=no5|&#UR5kHr#CG*>g;N_Wb1{jMzPG4}cWh6vj;sFLT(lJ*|xzUj=IG0si9C5W49 zld71^%9ivcSGKc`rKEcQ3mRsl&OLos$&%{;4oJsl9cm}8Jr-Z)Au%jiP{2gHMQqf} zY}9U$%!CvemPAzxgZ=j=uXM0q*st&-YGdqBV@!{g*B0d(@=xf`DSY$GGSRp-9dl8Q z3NQThi}~J$$S*7nCo<@Jw|ajlay0!!;y@L=$9EXHO8V2JU5R65BMoC#GF8#SQ!?2! z#(Rl8^ZlA+OeRs1RfGLE(J&i|XZ~M>V1L>=pD=@v-Zi=g?d&!rr!KO;TOBGE66+Dn zSpixntI7T>jxATDKg|1~Bgcg3YcpmBgSNf6ocUV_G4=GFTX*rD`y zruP_Ad$!zLX%eOeiAOPhfuma2PA~A56Wpb9Xo50qaXsU)7}D};T#!~xj!3pLx+;sX zMjG91M8tRBp^2wiwS*MKaX0~GD*LqAoeSvGzU5Bz2+0{}^2$n9IlOWh9S6Vv5MYIE zt<;6Cr@vWk4HkHwpLO;jaC6U=-#WQEz=`+^b8TUveR7b@DRV8nFr0m|6KAcd!>{m> zV?D*ec4QBnatXB_R$+#!xS@8;1>v5 zE}Zkb^!UtqM@3uN-EwdnjpNWIN=fe-6==qFWK>Uv@0DvRFo%Ay=+!m2^Ajs=%}7~N z^MV?K-(}h}x$~Rjy%fa0a=u!-)pr+RVb|*p8Wit_|5bq^&^dL0rLRVtvhe}}hg|5- znZtg9WUqq;8I73r9H!%E@*(0!?i+K+StrK~9O0Xow<8o&u%DTlb8?YF$lY5B03XJx z=@84AXBT^|DbM<$Tm6WcC3vSUL)f47jih{w=Q)9Y#d-PGm1HDRIyEskZESfb$H){b zXtu3UXQv4qT9!}L6{U>&)&ebnVdb0XJbwaC-ZxQ#ny*C@^2t_c&e7s5t!Hz!xyg+T zO*Cl_Z_^)kErRR)bhn2dn&(E29h19kbt}}hD$l+St)N&})|o@rH*+6TRB~LJUgt>H^kNOsE=Xtj&YlSK8b-9hW(KCKY-b7{u5$ zKU}()X%4*F2P#gMXU84cRb0zyZ<(gv=2BEugs8-iH`|fLj_EP?BpP;)mE%|bcYafiMJvnTzEtaXtM_5CL|A|k!8iIvZe!) zSH+C0A6QYM8)UjSyUj(pVz~Ul4K_`m*621Qr1J2Nt7DaWKk4>9G(+`X0DcVW+Tyzw zhG~aq$KLKF#J#Y`bH2BsC(3z!)LkXK&NkVSk_-JgE|h+(8vC5hhMR?CUZ-tR-_VOK zaOhH3KT@c{t9*(5xbFRp6)$f&ASXe)wm(+plr#W!`Q7C=bpZ_N50|e5e4oyY>R24^#izy+{>mc^n`b>B-m@W)$(q|)(dQ$I0lmpVfz)*_yln8$$h*JdPe91~QiyB- zktdRVq13L-j0sHE31&m{t|jYIcN!ohjqFkP%*xZ#^kq;g!n(tmXjh<`z1%9_GcDX_ z)94h^WV@_{cB=+@A<`o4!9Oz9d!u8_DMV9n(8L5}3{wiY1O4n15kPw#?Cwd9ntpp~ zr0a3-;hCb(M9_v_^@E8_;;*R3B=?}{CMDu`$z|ARDq(oR`l;^CHo+6?Cnp)=T;RiG z@=(f6in11BhHn3incSP!2N`(rFCiVg&2jGb7qPX1>MjQ89&8!AHUiS(RKb<^g)(uT zY|_yOTWgmt*RAao)hXl4fsxZ?sl%JkwJG?Jp_dE>bQvZ&Os4(St!MY7umjtQ>U{u2-(P^?*ZCo(&k;Ez8wj;^4%$O;9TDK{3g@c zzS8;n+!f5XZ%Du($k^rK2GV-DNwC_{tmOheZ=6`=oSq=A{2gYIAdA}RGK`^nduPQO z`fS$h6FdoGnU1WW=lNWRYd*HlNcJ`s#)Jo`svNN_?1Y6s>~wjUl`1#cJa7<%p`6Q* z>cW?hV$|8#bN*>K!^odb??wJ9$f1_r-Kcz^`zP3adRNCOADPlBWlAH4@aNB8IMqwJ zWvCr})Y`n?Ry2dy;>48n?0GI$;$!o<8}b^9a(D-`w<}qjJ;iu;hgK-?@|xKRWEL~4 zRpyhr2HuB*wTkJiU)V1c*CD9TieqrCJ2E(+q`uo6<#AZROJ#zMA^XH=iS4L#$K;!O zU%aA?VCl1MC13m|WIaS_T{zb;^_7!j0^MR0ZS!Ej%!l#JB?TvTKZQK?O^hXu3zd?* zj{Pf}KmEK_EP1Mxf5pU&_OoheOI`FA;tX-c{0(2uFBBXwkC(P^1Oi+cVMaNdoJ~b(!!F= zW&XL&w2xsD-Rb^@&U0=Q%IPjBdi*8dzD!)C;1#*PZoD@TfwyejV(tua5P9%`X78 z{@~spn!VA-lP4l-YQ)LYV-1CA8s6{s%vBWZzY%Zs|FvL30S3^F$(oxuhRIPxu`J5G zLdx#0q(-TG$yfMgtD7tQp~NY~3LNh&g5`?NdI&+=Cia}N*oUMkvFZZ9pPN^z)t2`LQFL&u) zA;H`JY>SbsP}m8Lj0PCnP+VBf)n?J?kdBt$a>TgUa|vGeN5t>Dhsd&DFPQoCetjB0 zt~ob6jbTl*Q#rL^9gx z!aY*#AjT?7nhajOa|hXR!5+QCBi{ze5Bj72uh~JVO;+;F)A+Cr#&zoix%>xWB~V-4 zs%-sgvM!iQ8?kuAXT?3rCIM!r3j$ky`Jbpy$5?_@WTKo^5P1DU%Q2cpPba0v9`P&E z#7Xk5>qCb{U9sPw7DN$^_fza}lSFmc1i9>1U+u6PQFqsf`i53NdQon^6loAewBi=` zV}kH3N-pudqnE#+R_&P(rvcRGpOpk^C0XQT2y;sYa#sphWY5$K>Q`_JZodaV^Yv+G z`8BMnG~P|ak&Qi%;r{mFBDskF;obF^i!J}>KPfEP1rf%Pai&DmDOw$>L-?Me&D8;v zMU|-!diM3+WkvO_JkQFKcUp^foU;q>pQ1dUWX?CmK9Kr4bl7y4jGjrKWA{rOhuAYD z?O7LNr`?LmQzj1XgOs2*Lpe_O8=^KSVoT`bq-LWxd}ah?IJ}Om&{4q;sbTkbhZ-E# zZ@;LU5G4g{7$>O`X4jt)0EeiGC+!`xQttOd-j0ZRRtGebIogTx5ejPA(Bg((Tri(nxb7DZ%WlfxEWMeH=#2i95D6;|QnRjKg zRNZDK#E-`wCaop2i@d>8%7gl6B8W;J17pcWlehudsM*7Y5x%RZANkZuye{WpycFIg zdW$d9@&{njswSwPPGdX5(OcNxZAw(GgZ}>b>XrrC(?RBkHoumBbGnJfd2`gzc2{dfN9 zk*jcY9YM&IS!n2$ReGXoXez##bB&Y}8;$4iAeQDa+>yJ^pP?5{-o)}Aj=<)`>#UzP zj(k>Mw>2LZ_Q8q9;8-;R)9{6QdR*}=i2*urB&-r~#uFLa*w1DMbCUekF@f@z!dy8X z)FZPn%UsOslOyvHQ|*O{_td8E6l7PIb_2<66ryV$D(oi23-gH6RH>6x&y(>yQZ>NY zDUWy6u}iDGMRdzVasi)I@aOV;fytyiHV@cxk>Xe8mEX;(RuO;*5~&IhKk|^Jfq(*T z3f+@fXLaM18FCN`MIb{_w1i&+lu1Dnn2LVNW3>(BpygcaNohz@ooi5_@)B*`EPE+} z4W`x$)pn508Bn7DGFvXS_Pcr`Z+cx}F!qc1@>m{NSsgLFBl|Zs9|AB95alMx^=&w2 zOjmgB&_pTesU%dJe&S%J8$_t=C}yVfza1FtujU9%kpqQmL>3@aiCzNTW-H?WLbM;%T#lU@WRO*AN?Sw2e)2_ro6UG;*PB2ws zn%iPLEQf2N&c>+&BLN~%gUX5dCo_XoI1sa3)wtw2XrX_bN_N!7Yp~w@OB4Icjbe$S zh7et_i6iMRI!e}fjt;wn5XC{Y-TjW_)?&u``qy*}sU+wb6{cM&8!P{_}jgyD-qr;W6o5hEw^J@K;ExnpHK4#Rx5oV^h zQl^&W+4RieM4wKX-`$LQ(ip@>q~I=BVTC}1OwCqW3?^&7eW~`p(Xv@?-Vg)lZ;cu? z&(=t)xx4;*Jv@1_?%pCbobQX?AK#=BmBUJMtut`D)P2K_rqhtw59tHz=5ugE6 zGRy5Pl^p?K^W~;0$}b1*JA=NF6~oa96!AkK)+POZ4o=Y?keAAOsi+fUy3PESDxf(b zZbiyJPdddwJMff0J?tZ$?Wi2@N}gmO;l z;speUOu*_N&jgAHrXVyB+1b31^BD@zVBQyH(y2Vjskauc@PN@r(B=fSOc@o@8Ygi? zLl{f-$$+l9rJTVFIXnxfd5Xf)XHb_n@1|}$C4IGTo4(Bq1QSb9 zG{>aitH@rTvgY@ET8?J|B>1)KPC=Q{W6T9SG%*iaAESX*$$m8u{OO|@|SvW^;jG2TN#9<>$U zZDs~J!kSt zAg9J_7&gprCqYTQ(ac0ML}<6SrYNHV?Pra^MD@oB3hdpa=My3&M5vS>JQ%LH_ZU=z z@6^{4fOndbOrs)By)Q(n)HhbN+G1$_riD-Kb(}c-%3RLg#|ph9S)b1a?{PC@G}Xrz z(@(gt*47&F}F_f8oe1ud&JC+A+$0Cl9|ip z0j|G|j2=6FQ*|0Cg(JgJtT;e?RSVm)(q$p%JwCC0j;N)ZYph;-vBU!Rrubr<&mFGl zFu8u9!F{!~$x(H&>B364o7;KzLl1IoniV=z4POPOb9b=9g}s9GxM`N~vd^*c%8}c= zXZS`Jo0X259vCqhJGlxysNJ_B|F&g5cHFoeFIUohGJp>B|)U%%<~7_^kUA% z)_;*%QyDfCxx1V?y&CsHo#;Ge_UM#uqTopHfg67uu&;C8g)|E8 zk}x!h&0I&GXuw&iI+m2VU*(x=L++DAllkNb>D zImZ>D-(fLXv+qyIiIpfCSetf_1GhRMp@Qf=^O#xCdR+C9{pyg0I(7Hd#gG)Bv{>Sp0&VlxXsYEv8^Y{Rtf}$m*r)AM8-apk!@~z9ZHC=Fv*MKSgSk7% zAKvVjBDmcI(sX%BMTQu@Vljq>6uo~n1_dL#LmkCpuN-ShB>hC=q2w*#_EfP7*3rybN!E$K+M7jByl69_XiuE5~S5p(&eosiRN~1`8#lo3|Z8TbSK{Uccyz%lRN#hC2w`LS4jWP z$4^CQZpaacS>1Cp7G$RFWRZw6eNDlV*2M_=Ucg?C#!;OeVU{70S9mUIG5-F9xuQSl zJr(B(ZBWQ35lWWLz|C{`+m%AQ?K*w`qd3jJ;zKR8AvNZ_y73$`LUrsSdU&ms#YW6K z)M>?BGUuNULbi36CcM8{v;#p|>R!bkbRFzZ7@@P`H-l3@Fhx~i$4$~NPl2~F8pr6L zQ6JQANb_a})8JcKzL)^A@IDI5WP4Q24$A0Q4XP8IUw@G&AO$R+IY-me#l@)cHZ~%R zy9J>atx5tg!4pN6%u!HCAEI*wzkUavfWKV^BJJ94Yz>Q8RH&Xb>6b0X?|fr4q&hi6 zMmtZ-;D1FIG5NzBU9>We|Ha7OTF}nM(=CkdicN5(Xh*GW)9?~$1#P1)4z}!{a&kK^ zFwrN+bYDpa6C!+6zi4vlOrnUWEBleJN-#9$V4ANEwQw_^Z*>r(T#H)cI4?zc zz01Wq0g|6-5Heb$rrt2^FDt2F#T=MSBaF2aq~237nxMHj39cWwTGiT+9S3h~uanb5aO zc#r(pu7*u>E9j_RA%(29G~r{Fo#dEFf2|0K$SjM6A`gVXMfYjlpXjW}JA6RYJub!9!E{3XhK28kFdAvs4H&Oz{c&JTNF zmP@Kv3NUEZ3hz%1zQU1x`AR|tOtTy0q~ zE5j6`JCAWD9qIdWT`JQ0!dTgHv5rR;>IsQb^hr6bBdxr43+k45B+iOi|D|eRlyzOX zxQaVPcPAR_SqRHS*IAm9@m8sanPB;YO#2iBq&Mi=w2j$9BZnrXlE6j6Y@MAzh6?=!m0*9sDnolj z0M$yaB}$*bsV9DF^W$5uydssucp>6QD4_khX*kkf9_-cDGdHiDZ>V-&8m7cOxO>ny zZ30isK7qxB93O6|J%sck{ly&`k5EZWggDbHau|4Fk%(914quyvIMCth0RS%oefBR5 z2JmIVPA~7$oBKCkD}L6XAvXF3die(jLtV4~m@4Q-iOTAwAxV@iOcVjT1_c%(irBPa z^9tfMZml0lk2so;f&vGEya2TA5Bvr_cv-HZS49Ww=V=BFwicj~= zets-c$4bD*S2!>)y@fxHLY3WCdOeW97R26<5xn(k7yONS3;ob0IP&o<{f-t60JxMR zjtKssV2?x?iVJ{`9mCcOm8^x^tDXIWTfyG)%*&FvVnscf|zvLjBj=K*ymBshwC3Vlc5i7g-bN_(QZtcBq#SsEu}{8b1&muLf?NDTtWpV z0u8FsWZi{foGR5@n~=}d=z{(Ft~h^yFx1}@IW6g9Mx=^@steV+%!*- zWk8Q+8@=>jW-9}jEj6iSL#+HUl8@nM^b8nkD5=lm%ScgEll;Er<(!Zndq0ow8AJuJ zj}&KGCn0|0PdSUSm*_ZT=DFTE-Q+Ada4)}je&={T{aRvzOoPp+9Er-*Hjnxp7s|FxA}++Yu`m~H(Zd+C_z2>LVR7Y!VVn7+ z;{?GXGl#`FD-z?mMXratp18WB+V$rhO*;ye-Ur_Gl6&|>+otU?BA0)HW8&?e&3R~F4y&kT5oF828jtge)B8cuH zx`~gy2vT+AkZtLKJ|W?bChZf?lxRxdCm*zTTqDp>1E<#xL7M;#=%Y>P;)KjQp04i+u)+t2EMB>u{)E zX}!{NdaYGMT(Y7Wssaj?o<8nh1;H@}U}%lnf%}(M$luur+nBl!h+2p_ejr#ufT-#2qSkuh{&JuZ`2>WqszF6LExE&LP{I<3Zi@xsR*W=?8jzMM)6bmX zmO;LtUFZAjZ_$1O4>!$OSw34~(#=`^ST7QKGB9x9qT;UQVqRxs-&x+Z>6bp;B!#JSG%#DPztdE& z%QZ5!>4A`q878bQ9zRewZUEm@BXRJ~f@TT)cwPh3tO(N+o2Llt;=p!2~aVo_E zEcT|^Z?LFTB;asmSt(C3)s*r_q=$f#lg)emf={>+=xJnzusZtk!Oxv{DEeHO5Y2MXTwWlUipaKIPV?BCPB0qc(ZQ3d#L$nzz3uUP9VXM>kp&E&)a54zU zAW|O7arY+$6o;Y|OC`VS|xX)I&xK48v<92Ds^zizU15LbcM+xG>lmp<%|HKo4VDLq~un-j*#mskW| zFV}gQo^AwcOG`YfLikVw1d^77)e?gUgvIVxaj+p{Z*yGI1YBZsJbpam{EUn;_)@UR z|Iz2#i+jDD%*hOnZ(qLq<8|%bORO(bC2}_F74fZ z9Baesz4Ff29gS6TT%vZT?`C09K0_}p*>wNnNnZJ!p5}RRvZ)F_Rnj3w;eM;9rsWi! zAxqI6++|c9`@`$#8FswK!E4|0I(n@5u9XUW(xq=$@psEpL$eiJS@VZG6@u=lcUAI& z{^lru*AyW^%+Rr|Gg#nP`tl>mglU4+gAbC2>wfcZZ7WxT^&gk4lg9Hc)l8G0D-j>h* zv%CP)NW0_n=BxGn5aF9H)C!;w9C6oQ8lQM6U(!P`Thc*OK`W%krvicejyDHiCUIZdfmuZOcDGFFy{wy&8Y!WI;7q1k3Gzy7~ zS=5pKN(6Z3%ga~Y6ZYJqe#rHrnq_+vY$E+xULIE&l(Nlyl-t|aK;bvfrjO{CrmsD% ztQOX7rUy>C2w8NNX!)dA9>A3x&xHoiy?pxkE`xlD!~`VZE6sH*dyg_LdN2A!?$}-?Klzq&HF)PCq z)LCi)49C1v?dq)Xaw^5jHm@pDOQJmn1K)!~baZ)okv?Q9YB=Ryj)i9O+FA$9^WiXh zg#|x!`h{}?PpkprW}}NIpd()?MPC?iN9dkDd{^VKi&815@w4GgN48@?spS@4gMVq} zZvMfnKpT?J;!8EvzZP$#OO>x77qnxUuJHb<5dF@M=V7)JrbPS(LK6ia&QA5J= z>H1jiBgy9S97?Z367fY&;ULRTm_I58xaYier5WqUK|m9NGRb(sH`^7luUOH|L;uxA z$m}3A)KbrVHp{nf5We4u1-+51TK{qOkz&Ci~2+2d?|<&)f+LW(YmE5=w<_I5wb z&7jdWZoPDgZz4MuGxXpywl*YSB0>h-tg$%9I|3%l@pygv_QCYP#4*OP_P6T*4*(ifP1ER#!3NfH}MR7VPY(S!Z)SL3j0 zgN^ya-09MsoV0peAWBbC@=13Bh%@ptci{jl%e9|7sL?ea;eGy~F|2U?TGp&3I!5)c zmjwtf}*;5|DhQG|6)_nP3W(X{?!ECLImC9Ts(cM(p6Y{@sJ;Vj6beMK*RCK{hbd% z2IqATvrkw0@}uYk(4M3lf4d&h!94Yf1iY{plG1MfzG+ch|Kn=tVf|5^Jo+0bHLt&> z`5B@gg7GIG)N$ZHc=b9m`~ayP*F_z6I<}|A$&MlWozc6C+}8{9WzRPtp#oPK z9W2zlP0`)4MDN-LT2ts~_$sCN=Uo~zXj#=kW0H-;hggqWFr$)T^h2LudydPdjz*Dg z#^9PWD-M6wObhZixbFvleoj+Idyngp9?ctMI7q-hp3FA+BqZ>6{Xc{RJCeA(Cn<#z zO{?zA0*s8*cjB`^-O~hKM*!4&@5;qeO`VI(cRq5}RxVFyPiwA^^@}-q7dWIL0~4MdsIY06>Xn)@Z)3ybTq@A0i5$ih3d`nLy3IFsCZz zsWpG1jXW`(DgDF=t>l@0AZ3~zqX`-Pf@NU_zxC{HPCtZC3a)PKlo#K9OMuF^G-&RknD{x-34SSxZ zAr|IeM#gk0gY#<1GZXbMBV)puSg)K*<}gT`3XU`*%$H1ovnoDG3$Q)1kK>82_-?k1 z{91uNF-AnmXlaK_^GN7N*l|uM169pi`x-n;|53_hmRgTcEQkPn^sc!cX5M zx-`9-k=Js(OrI3h_F7eO()*-L@I|4 zx7yi{I0%FdH|}nv2UlEe=8cKC+E{^)(~x4za(woFTN=kPiB5FMIT32h=nmL|Q(K)t zbk=KS6I`0<`x@ST4f$-6pJG@Ik#|dMW~bPa`^IPRSOl+(e_2o(4r@B$eZ-dvX&Ce zt5ec$)pz$ccDOMNu!^wFTH^5eb$9l|64ACPBVm@nZk8!7w5@_u6Ml6&-cCJ4%b~Kl zKx3*X3KM8FE&#|+?%c}yTpo&K!=h~*(AFnUc@+f0w(;KE?sWLpwYDEq6it)XZ-sSV z@pxxh>_0;Y4^E@IU$*yp@IsuLsA8qL;XnX7pI$ANG(q}i6cfyk*1@(@-JOyecB&`^ z-Egkp1p4?1-_o|9NeJtp@FZ~uO}>`0wd0#}1+%`W{@;4v{ z!HreH0VR1%Et~eHUJ4g-Cr2k6Ero4?aZk5QCBpJF%TjX4juMTNG)p_F`_pLOH_yuq z9uM0U#tVcD%Q8q8mJ#)x4U_TY1qBUMyJu(rF--%I?v8Ae{! zK8~6|&3}W{K2WjU3gzU3h7KK$W(mC^)277}%vNqcDh7AfQQ0)qscMll*C}SI3Z~5E zCL6Yam9H~;qJSc|h|R17kN*9b|*N0GrN zO`SAffek{DnF!Tu0hvKCNpLxN3g~1Vnf3Hx@zXd#?4~(bg`PbB888}>*|dKvmxEi z%T9Pzasx(w^@KJH3j2WVgrkns^ECliWmVsF}HsHML$kc~o5bH~WA{S$!C}94OC`GCO2e=}B+$&F*5> zTB}|#>%vf_$-6HkygFPOJ>kO?e%8er$-BOxPUZ3oLshx4Ri|e^$lZsA4|9ItZCjSV zygfoat?fmKrW~eRC`_Qz8*r6Q`KfVjzy3R>=1?!BKG9$>3La$M)Q-c}oq%c-0tOSW zyl#&o&)mYHF+l%Wvj8Tg`7TH{UAz!ek2^%*`zv>w5hv z?R(@v)DJNYBY#ndHi&vgM*w2b(j)40aB)+QSO!xApmV4uG6Tc-1R_y=w)mFYbG{IL!Vj9-F#I^L{M-?=t zM-Ne7oghb?csay0r{HKlWoJ3itXXQADqoS-zWHmWP-5KLB&ua?@F(vaoW!_z)O|a} zHnv5xj8yAR9(iA}~`FbiXWXkAHJj5Tprqkg6X#sc=+^LA7*zcs0LN*NpcWti}* zOxD)<7MVT$Bn`Fm-dVZRheS$JyC}e#VI7mNYe=F|iTOs#y~d@YmDOL?$`iqy;3ur0 z3eim};?-2%1ZQY(Wcy|Xp%%-(3H{;dV!&uWa8rt`(dg>1gQ&52HG=_Bk2p@V671Px zv|qp*tDt-xA0_Anx8@?#TbLWj-sUPVL-=D;#ibb5kHp9OZhwY_z;{NpT|P%IGgySs zuY;HOJdP{CSFy(8PK2}oblrP~XdP6nM<;~LTsQfnl&@?wHbBC!w29wweVe;-npGb+ z6>HN{*Dan-c0Vr{bwX>mf%jzL-pTcPXMc`rYtU^6isq+Yl3oD+-nRh4^OomgHcaK6 zI?ZqQ_?^uy8#)(cV3HPj4(G<3kFXXnMjlc}9vo}lEq0WhZaggP8(%dvpS%3jaT`*h zJfH2Ti7e4~3f>@UE z?-Hs8?VFZ0x2C!7={VGZ{wPRRTaNL73L(jZcQ369EXy-FBfPeHXD|qhSH@pw^OyBq zim(jh+V9WG&+%>+c%JF7Q5o*zo4HXXLh3SWB7-{a(;|pP1!W@tQkUE}S3Me$BfKh4 zUWV6+&}A4MtN)0}RHou2A3Weeh+Z#;2*eCQNhBi=udHWbqdrQCtX~FwLLLdb9=r zxcRyR;5P@2sibuj5~8l^*Auy*Hntjw)7K~Nbk27^AU=^>mF|5!0slpAwX9(Tr^bY% zecJXfZWR0UMbD1pb*}{;D@6}8&p*WGGAY}W3`R}Xc8VJefSb{zPqZd-bQb1wKxF%* z9d-9qTpPj%%5YgB1FWWuPgXom?aROH7C!53iarW5Kx=Uh28r0c1Q5fg&OX3xPWelM*z`#L;G3i%hf+pK5O+HsM=XT0REGrn z8Nh8OcY_MsKz|U?6)Y*ZRGAWS_;>!rH-B$ch`)#xfqpA* zt}b*2^Z)=@wpr#%yp8hDwEq&E9|p~QqaF#)V2wr@oGVp%x=DoU1*M|zct98rI20*i zP}${}IzBmYM*~oz%(uh=%|@x`#?`<72-XwT#aTzHS2VbLd^crB9wXX0&C*QvuAbN^ z{vm$^>v@K?4nQkR=+E&-_ z8G&Qk3;y(xWhjX!iQh#V^Z z;DDkI)N*fXTAgvaNpw>#L?g(5cd$89cI*XN1E4g>*QjC8yKNhE?XrU4V9h{&c(STP z3{A5=qgXdu{NePMXwF0uRVrzRGtjaha5a{nQ?QAqGjxzl(xSNJM5}e_MM*W+!>(l3 zI{k$HlhRTiNfa{TL=-WNCJ8aXHyaVf3+e`waHp1u!mp}d+`2H=Bfaf3(RSzjQ|EHK zk3deWb5(~Zpn26~T+VfS61NK|bLqTwAG`B4yUFX6j)PB}?oIf?*RWYme=ql z;29LZ(xJ)CRXRgCu_I+j#^2Rp8>Y))>)@#@vt5{3d`Ar4{Wi9jPZerSiRh+_q3}s^^CZm$Ubl z&<|wW;^;IUODx?@t}>-!mK6M&|BtSB43DhaqJ=xQopfy5>9}K?9h)87wrzLRv2CYg z+wR!Ot#rTVJ?DPU{r+rJJ++^;R#oji$CzWz@zB!bs*N+)q!3O&x{{oktbx-&CQ*Uw zv&93gy`LfWRey(OZy-oK>1fPoIRMZfy;vRHZQPN>wUnuX8OumSloE?xCQF7?X27;&`iCL%f+*zo4=`-akzvqm#z$PojUj0$Xms0Sjkgp|wr!R!z%8Y17xL;gqfkrVmOgkk= zc0OO>W+auVHRIrGd%MqsM~du#5@@Y7J^qXc%>YudG-q)}?(bIH&h?k`nAvzYUk?hQ9a9q&6qlTUm38o?vvwuq!32C3ZpjoH)j^xbJ#8XMd zg59|FE$oh|Y4hjyVD&|{K7lvAr#w$yzIi=}6`8kHb}9l)SV59}?R*p3-_QN!Roq_* z&PK@@r9SxlNl1{Lb{V~*G4Q-y$IrO-yJcGLEMR+k^b|HUmUG-{?kkY@SLySQrLw%RS;Gn z0hDC0!G%faZ6NKv z>&cyJ&)U#vcXPC=mNrxe2H1fH1N=Cl2&iMw{xJl_h@ESc4>bSDYSo~MQC=jr1PUKmd>xvrnxxy%_{w-aJlJnNl<{o1B>?iWB<8-by(kcbuFx3v+)wQ zwx4{)>fJcQL*C=E9+ROiUB@))oJfBVQnR*~?aG^(v?j%5_vm#wrXx!!%dLOZaN8KY zLps(eQrK)XI_uqin!xsJnoMI|>^?0NQ6f|>i6S3$N<&TY;VK*8)OikY>ZCcbg+Yk* z{`_syL7w{frv&uH!Q%_(Ks!BMbeQImO=9TP!oBIT$xUO%-Aw1o;TLzu?@vEdW<{Rg z@Wr{7r_Jm5(t;LlQPiB`>v{vp_SZd)71%O`k4`5BW+*P2KSf6J?-1-ZlxVryl$oC> zhdO89y0agn$vb2wL=rxUcCl93qp;nBY0EC4+ejE za2{t2z!KDsSh(>tpeK$Uq`oL=RSQhW_M5!NxY{o?k@*3u8(!n7sj9z$ABlA zFpzZoMdRBf^C-=QgDvNfdArRF%6MAi8SbcDx){m#mA<>4u1w36#CsdB?dN$alOFcYg)Y-q-%xZr)Cpjb979)!v;^Lp7#%@BICVJs~5SyAkWYL5FI7Tmn$&1;f5#F zZ@4q&u^5^@eQX&$Id?!C>3&VNa#wzjb74lAsAF!r2C<3NoE7{)6uGdTR zqaeV>R9v-ggx6mRRnEIa&IT4_RtW9WZL6;v7U?pGXGx?tjl?~=t=ro#h|_KxODYpB z`BoREO02~2Y>lFap5p15-EC*IDT#&M?`^MpH#d7LjkoTfw_C|vKdYYAJf^nPjqN(p zEX*>MNHUW%dYF`*+Jp=~;i#^~tAo2Ofb})=2Qv|kP*SJuX+ZwC8R+OA)<=Fb$KkkX z$Xk>3cd3po>Nw*oXCS42rn_1n)rA2^MS%`JcE>E*a_7h0bhn(mAHtCQsz^_vnyL|~ zA&CnrvzS7vx3jG)K_T5J_;7t@r&|l1hY-r86snNGpGP1cQ*tIT8_ABgNI*h36GS34 z9K#}+!%?kaEt@5=TJ~xYe-f{iet2}$$mivn>UFOfGhZs*mOtipS!^_#C#g($e2;FV zXI)sb_Z*8qH8pnf>D_ZCB{4PwA}zIHGt?Ajz|V=`>ugbO1Thj=^^ToqJbq;Pd^nko z2#vz*?}kR6Qd;E9I*`g8C&aH@F#xlfDsqfkH`Dg5ufG{FMf2Bf6|9uE3=F=FTAFd# zbsJ?=kJTI_7B)7Hf&SD~6x5Xe0;vpr86CpWZ@o3X-nu#&fBjRvV$azDqqIdfG=E*) zCg$g?`<>!b;lc$3`8riy$0I`F`-)p4ExFCOO38cutv<(TtB&@AfsGweb7N}h?RYd_ z+w;-fwMwV+k;X>rA=9hH$&K6Lo~}m^cbkxA@d5D$Bzf4=6u`F=A8ER!Jst&M&sucL zCgvx9v0qT8+Pc9zR@NhNPufn)_m18dD5!NuL6>G40@G*2yQFzQ6 zoI@>IKt1gI$D30gxCL07(?wg);&8+z1%3d&=c+Go?@NG@caJ_KDz}$P*lI>HGS`X)GoK6 znNAk@e@lphuIE`fQwLk>Nk{Fsd1UUp&W@FNYaDIIqOCAkd1T=|sVLY0>e)E z$8VbCH0JTSDCo&I`JrOB=jdy<##91a+NyC-fGfCn<3(7_m^n1SpB$fQ*QRYe;NA49 zNt*;yr@&R@!}&OW`Kutc&0Was^cZQuIr@I&M1zqj;+Q0Ywx8*SRY=bI)T6ag&ZS*fx~^3(mi#GEc|A-}NrOq>As2t5RV_d+f?P)P z>R$M!OPWQp3YWBCW}6wM5(3^ts%kX$vS?QZa_hO8u{5(G!cf) zwK3K)WlXt3m?=wbU{irEA)Sj}4By{>f8VhwwmH$->K7m6!?VQ)IG$(2g;>Uoic$MK zcX{^REQB55^xXhGie@(mDXSDOD5B)g4!IHNFi&zSOvc)Q_&woWhh7;ciN8meaF@^r zAeY+7WgGIYL{YrII(K?{d;d7Ae?7~tSKvJ{_08d>z)$dICNLb-B(WhDcpU11*!wB; znBj9J@Hi;*I1O#{0LnVx=28)PRbjTNvC^)<%Ra4BN3|zu(7ZmUvCc|*QWQk!ACxeZvo+QAHMM3>;#6QP{%76F$jPk0dc~|_M+3Aj97$8uL`m;H1;Jy zgl~Ov;d{1M#djpS$(pPB8o)QeOW@5$;2;WF7@LSNBsw={MCh(G4mys{J#KGQH<5Q2 zVAm}z?aJAwK`WMjWmgyHN4+myN-AY{=`d;>l%H*v!spE%DdO;(?$TDBddvjJM>*h; zBh$rBE&h-K4rB)o+@5A$e!GnnN}ql@RJ;J%QVi2k99d1=Xy^w@XaW=h3aQY+vl;3| z@S&8b9ChT2CwzNRJVhpJzYF%BkWsn^tHpYQL_%Z%obsxQY961UhJCM-J56!uRin0Y zN+WC7e2lDm4VZzk#A=D^>FWK{`nhl8S)n+4cg-ocj(UW(I3`szjW>-B4w z<;m7bgp2id>*~quQSjlR*R2bStA{f*A-E+@sUCFh=MJt&GB2Dn$dkaU>zS-mWDP@$q7gHj8y1Vt1IDK^!#548ijE-#3nP?C3`~#< z>lLbX<&i@uP;<#Lt^(|-iO95fGxAh8Br@TMM)cpa4ZTZyODgAxN3a_!P;%>~UR*4* zvqQHqOef^cWq4z#s3saj6 zqK+%zl3^v{luiH~iHh%7OtBA*B_1hB?skt23M&*nlM0vky`$v4;R*Q+)@Z^UQBChW znkVhkAKt4Ecq6&l$C=MZ0>EVkC+vubj{S^>V;0;8@V8zP*hhF1O9YsO^37b@`Sdo! z%IRSl<|0|=KB79dxt%d%r;78B_@X^LD#NV}yYRIG=am#ccx@;M3a%bf5NU}7eVi#{ z34*da=9^x=4tt!!=WUYlXcZZ~gLUBt>_h-wMw9snMZgwfK7x(Ok zta=IHeRSK(fO~*})|20bi5Z>?A5>5~injyPxyDIrHep9HRvDVTbTXcJlQu{4eL7xz z^i6&99i<=~bgzm3zJ6N~V*g0o5QjjdZ8dzwwq6V-%KwI^Z9wy(XnG|idOT4Sk+gHq zC`6=l(~iC~-FpPDEQ_UxM&m0gp*Qp7$l|MP)$I&1c{}lWS{_tkQy+e5`h9rhB1gAz$oBMuqkYB>*;G?zq;tOyQ0S?1Ed#m(WTi1hc~z382*H@U#gdT;;^-6+gFOLX06sB6 zr_$u;8h1FPfvkY7K<(0t-b6`v)PT`+CLbIpGOnssKl(XqIY7X^;ZBNO%8|Jpcw>ob zQYBvj9zkIc6sFcI!n^bEQst?$hkquk;8fJ~)YE zVd+=uhpL{uw$oNqrk25m^pz<@-+U0b&+3Ap$O!~Uke@5?Ii8F#Ay5{uv+sk1Hn1yb zESYctb~Wo$VhIU!adaW@WU@z(4d^}MX6Vo(3RI+1;S0aHS0YSNIU!atX{ zT<%%ic+o%tylEl39jxkB~~4 zloKK9S04qEXlpE;lZ?1|W%(S9x+-=jz=0ygXmC{GLy`3NlHx6Ejh76X-eE^kO0i{# zNny!hP0oVswMrpV@*7Ss zvHp4mXJhW7$>D6#(-I+Lp^)WN7Mc%krfvgW*abgM_>8Y|qStQnk}71v-9NCkIh_%^ z5QA>T@z(>8h;&2biI~+QH^K`#`-J4OCNOshz+$h6!!FWq6RRi7G@BXLLw$8jmLgSlB zK5t3$_>uc#Q+@%lx~LB9m%Q}6!M?2X7lJimfK zyi*?XQqe4!l~BdCivR^w1imv7f696Fp~9(}$yXo`CuG=Q@(ylq9w>MJ_#xNZmMm|* zGmLA#jkdF%a2drtIOQKFerPzOVLN(qK7G|E z%b)9xxu-9XK8&yq++28VYjMcVn;pW#acpku#JVE~QN)d!@ zP=;VNA1sqBl=_d#79vp#nFYf6*l_oqqF$=`7!VbpvS9EsKZY(U-M{1#FQHn6#=8Qv zFOT@Eo&9!3RX z3|8w0IMG#+dZd?mRHS_ns4OlG{%8nvy|18y4jV^r+AHoa<^^XoAa$KJhfF*zmgTV{ga8P^{_$hNx z<)A67C=$N8Q}ab9PUdYn2(-+I|I!JV>>h)j^iFeJ)=Cu*mLwvP51_V&RaKeryqtt^ zy&cgm^m;+J9$-GMJGG9B9Zid7vRNRh%>q8x*>qjHmizJQu9T+PAoYfEDq{viYn8uO z;qWsPa!_;5obAv#9X1AJpD^ zKaGhBiaf$8^@O;S@)YJGxiA(HRB{^Smak5zo0$&Q#34@?eX(a{MXum!*j;cSt7kj= zPBK7Dd?IJ{=jvX(1fWNlHd&A(5A#yb0Z_PCF^xj{4w}Ld^}T&MleSnvJVa!uTTgXA z2ebPJzb-c}aVH7ZYYV^j`|&qg8SXUHQ#q-S$(#23&b%!-{0g6z_f20u!>YhoFQD)m z%_huxk8rr^)IJ|K{W1CL57^cBD3Zj~@xAPR5bb+dHJ6A$(z2s9C6sID9>P$;CcE%` z-V)-S<2+;@H-=MT--FSIqj%FArO{T|;ukHppBS z?r4gJ0Aiypc%D)By+Dh`4AFd}+u-PE<$pOn-5eXnmFkh`MmR}58Wa8tQh6s#*p&98 z2GN#(i9H%Z{)+l34@Kac^Q@C-j2lkw`p(NxZ)UoZt;3>gIzNEoAh`c7r2VIo zzN%leiILNuc?J&KzEKR6WI(Pk6fcIedL6z0OER8Pp#25n-CC0{x*LA2F`_XpBUYr} ziA}M1ocw0b%vzc#VZqgO$Lz7&;NpE5lYGk;|GJ>>(#cs{t6;rx^Jn)n6e)16g$?N_ z8yih(xVfoOs@Wtc(xdenin*fa(LXNYM|HqOpQg{XGml&x;v5sa&QErEo;`*!p4u7S zdxEKDAG}aAVSlQh{{sAA&KtA^Wi z{MzLy*N(5`;clrn4e#gp?em50eo<^4Oo}6FZqEp1uIfQo6&*QedlR^|X_VtbmB{tH zox%1C!Ur-|8ksl~YhD@LU96kfws1|AV3p3Qe6el>N036QJ43zwCOxq*bUQaQx@M6X z(@7!4`MO(%=}Plk!VZ`Q2yVcQ^cTr`pQW@cJl3y!-EHTugqc&5k_I0g8_Ewa4d)?J zS!2dn^q>vFnLtu~$M}s2YDMGKl?#yKoM;H|&L=BRz|Vm~DPl@O#rm*7kby#dg!zdG zkYY?V35jatLqe2xDHS-`ZeB;7ml%#RR}0LdWyy}J#?aRc4|wnbDr4i8#1IwID?1?| zfdW1Wej@Zi)EDB`OLf=Gf@^o=y2jm&ew)AhG74$N)%4jV#UgV0sIR^w6~4y*Qpb5z ze8}3Igd8jKl*|^H11bYl2ACWdnf#0Oh$TWSks%UmtPgA=Iw&YGFp#egKR-dv@>OeO z6|NCZ)|yqpIi$vy=H~&ey1X0n#d|;W#%XyTo7aZS5r;^nA`!b(L~Jc^I*?@F(JrIS zn&q0-#8bK4;k9gSa_0-6&<=thKVroSQbGS`!W;39qA9vwFb2JwT=+z-0StyxtVlgH zxgnB3J)iV^82B*>PFQ-r%oa}a((9D>{cJ$<%v^vx^^^%me#AYKwx z8*BIV?BdnMuR>Tn;D>?EkOkDyubw-ZS;z574@m%u$klNu z8wnb~lPiLZI72{yhzJS!XSHx`C@5C^o!S(E^M*c|lK_ba4Kw`rO+DBW@EZXB$q)Yyl1I$Q3MK#*g#U*-vN!C`#w7;SYo~?q_(2=KeRB2T;m0FDh&ga!_GU`2 zU0F4WipUm0j^Q6b_-DSpK2a2h*G~tHtd=kRvAZ*3$MWd2Ajd$rK5qP9a?;X3 z{b{nv@}fx=uTlSeWgl}M1T@RUxc`yAi6FWxONx2YpUpV4AJyJ za;;zgJQ^GvmlynzuZutzkpU7D6c!j9cY{Vv`{f$%Wk&do5w_5)i*FPEH^KwNi+w=z zq~n-xDDP&m@9+E&Mj!kxgiVOwAP+zO`tb`4 za)7BIyonipVny}_6ukKGb>VL!{Dye2?-L;4L*F)ISz-hwge!?fG>ioYg#-o#^7|y< zlVcD8G$+IdD2E|>H5Fk50e=E|_3`58%gNqB05U4;K2AduQjjB#70cm4jDZvbB>@Kf z-lI4Pl!##{4Ix?M0$G>>x&(Czs}R*7X&m~tay@z@GF71!#E{I1z_5s7i2gIWoE+i^ z$hm+IgAkH8TdIFY2lB$%Kp^+Uy`S0;gcaGVK*W#bpQ(QGf~UM=&I)P_+V)_=O2R_C zcim1TJhajH>h^Ib@cZwbARllifR@1c=`|v7^s>f+J=NWcP|Ww2;Venfgd-L0GQrxliHHQRv?dSMT<>f49!FJ!yXMwt3 z{nq?5YI%SL7;^L@eN+|)5WQ#P+1f2mr@Rdi9m#bwReY2$EK)OGnuuG2q@l~+TA9In z{`*wFcbV0i(pMVKB2NQHYsMp#0K0BR&Xk8F|TW0><{5kX5% zQ9pBfRC!QIcuO0!LZeaQg5T`S0uJAqgv1_cCZTiH{<9!U1|6gm*JVKyf4+a}S>`*- zNnJBuJiICZMbFz7Hp{7ud0tFHP~HK;;{22Cb{D3<* zZnDHQuEW4q2v=7Zn#4ZcZak7RE7k*++tFWu7;)Uw_^!3?U@xn(Y^WZs=@O<+aOXxA zEP=QqEhnjxJ+r_ClnpOqen%;*6I{+Oe zuA=d-B6q2J;eUkg-tu=8;w@t#6$!-1vRNNlrdWo|2_M_V-v%tn20c3I6z<>r%K{c#Ua*D)7aRmM=VM{OKW!^WNz- zGA6xovz6}FlsatiX#D$d-S4$!)acsuow0j%qu0)GolSO~-<364_Iqzy(I%7tqWg^K zFVWo%s~=7A|3`FRaEIM@)xNE{_m0%f&ABwhWC}=Nz99YLJkhjDq`(o!DQ&8#6!unv z&Rj9K{B%^rzYNRoetGA3phLe=FEcX*AVlW%T$wFF&5ON%1nGq**`oznReP%rR+-Zp zv3+7xXAhAleGREjvzNtAns(!tg2{(cZZNM?mNe_*6`-*o`wGUs`h+I}RhHb-guJ99 zSgMtJtqmB8-@2hXjObBDqUax0Ah;m6m4W!av3FT} z>M)r$&TG>aX=apu`TP(d!&q-S#o`&-&T&)}HNN3ay$Ueg9iD8^1%l;uDH#-WvxPH!85e zEJ4}a;$JgGCrA5**oPy7>+K2hVoT@+Qq*Et1+WU>l>Qb?tE`4fCAbUPtIfLbj61Dh z-F4qM2vQKGAjv?lO+7n8+zZAeqLayUMvUCiDh5(Uwb`JURNUAKc3mP3NI z^R8oIwwHFX7ju9ttEwB`isf=6GaBj5=T+3}U3yoE=3P@+ERw6?w&l`=!IhSVqM`91 zB8-jI<9r69B)Zj6snG-G`+35?qKb~C2!j$a`NG_h?WQpmu}Q)}S8mV2JR=muoT)D- zkyY!RCeAgmq8O-mlx#EyT$2psy?voSet+7AwzzpdQg6NBc73<0hA9U0IiervC!IU< zn!JDS-jGnaY($}Fd{cXAY?WO1Qh3n+{AP8y(YrJh*%~M$kC@ro8L733<18z4^=_jB z_7<04xxHLjuGXsd*(V`(wEd1_m8%{BYA-Af$b|AtZfa^S!EW91r-obuZF<|hUrnuP z?}3)H^83DGgJu5lQ+ZzFB;_8{PqVL($(FBh80{^xPOW=4-hy%xy%d25tj+&W0ALBz zs1i%MY#mglkVRu~Ccj#ogvx!TMRenfszYO-ErHp9(tV`6$VA7<@{Wm^Bm$d!QLGl! zrJcAX-VT#f6FGQn-KKJqi>AW&v2TFgfZBb&@zaY+(*wG6i;XYBwL|vLYr}T#oq=2Q zC2z!ZOtW|(1tf#%OiYgvpfR0KTh>Z!fYt(wMh};dK3QY|nbgGz#t6Etj$iEGSCAa^ zpmxR<&Kn)f3Ck0^Y?;ze(00yFt5t+`x+i7>x}3jVEu%*j>ve2N+{Fmm-?s5k%4v9O zm)>5bsli}{)e5TO$4#x-W?Fp{t|_hxGcK$xVJmVGTFPR=pU6XaU00@;{cIu?*3UM4 zaoVemnUc8v7_7&D+d5sU@pxKmoIoK&tujdU!^vqT;8AUOBYRr`-Q4uxx%)<&VWN|; za0t8h0gi7hpN3W5WbU#*t}(}RL$`;wDiyipvl2WNM56x)Le_|L>q6K>DHHOB@H#k? z!O4p(e0;M<-L^|p z>b$OK2xPU$7(0cdD>uvEq{?YRBT%wRw9AFcTrf!n0#-TAcEp<1rU_;RnPqXgs)=9| zNg@W33ah=t-7ob6f|+_ENzyBdG}{x-`E}{tXRIb|)~`f+YBNI50@Z73v*wpgJ1Ea@ z{eRsK!Z0-p<6Ri69=mHd{gOV=p1t=@e zM!D_X;xd(!$sV~IFxT`RO%gjl@V}DxQYU#oxH;9&XnsG|LQTSHp~#HYGiiumeeR*c zFR-+KU?L}JO;_oF+5dpo_n+EhAuudkCVS=Y=98*h4&~a9B*p<*LWU@j_N{_6QN=?j zYR@z)-$4!DaedWx1oCnr>0q19*{bDx(5l%LG$AmfFiim^ZFgWX+7M@2i!~Ho@viFQ zqEG97Fq8ZVlI9_oQJdzf2ao9NBsue~nPZ)J`_eB$IJ5N7ho(Cx5+ZdFe0mA^%mbxv z?c5bL(%ki>bqIcQQf3XcYiVBY2nUtE6PW}WUCkD8_7F|rS|F7`3-w*M=PF|IdS-)) ziv7cTRv17VDz6+=P-l?h)byn9|4Dtk{Km_uuj$J*Gu!|5)2q#8^udMc#D6SJ%ovXo zfTWpYu!dj(z}lT9RrxEnnWdnkvXuYZ@oCV?#?hpFaw!Wwz4 z5TyW$8ZWEvbiwJJcyX@PBZ-=g*kAyJp2kVS0=O~$1EGNhTlG@c79i8$=^*g-HI}H% z7M_f`hTsRh*J#NJ3xC9B7=i(dY?Azgnz=}1mK6#Qo`}AR;hGZxiBqxui;MXAZ%G~9 z>n{M_@L99ckY^>VcMz@Bm=zT5*mvzk{S^+VlQ>;gCd{uqQTC7xJ7tc9_>md-KW5#F25aVD+SN@`W0RB`mh>&n!T98<5<&%z9F_ZW*QjS}W z4ZiR=v_zUt=wBLZSp@5+q|01|wFqko&Q?Y*W|VRyR*5HATM=A#%uiULz=|9gq03L0 zgD3|{0g4I?jcaiWfYGrKL(1kv&lK+%ryzGg&psbmGrO0D!I(i(`j3(1P?1}gstKtucjIRv`-eA2hLpf9P-SKq6~fd4}U=bK*Qe0x&RkUmN?I* z{xOV2h<|1n#r}dKJs3Z$IkaXXFgOIj#8Bdte*iS17$gZOGFJzMTqIHjj2*Jr8xr^T~_k#5T@&@$o0E&qSsX6c@o@Z$SQmyMy?^BglCcX=vPk(JsSS*uOm1VF-wz zV+|rx0QRt;LcSak0O*3E1HOV3U0HClRi_o|*U~qpCIj){?3E7K4 zlpOKpAm*$D=-&b2Z%$5u`F?wUaS9UP4$QU(U|vKo3PLqv1OT@GlHKKT{ zB9|juD#!@D&oj%#2=WQ1FUXGSsgdu%^}WKT$p6&zWns+^Ss@S`N&*%q94O(F z#3xc8Wd5TNvf*PWgj@bEkp*}L)n0i2@)(2M>`t}Wi`H0>M^n;<1QMuDQ=k4NE09FI zj(xK6Z)G`OGCI>mh`C(uPa5;R7ohkeoH$J8Hpykkzey%zuENrqLcQF;knPfF+`T0- z*?;NUfW!i%29k{>%&FBc8QM9eLK!8XeuU}hHg?K}D9yjOK7e^$gBgSvra>MI85+(&f_s3Me@F;f&*>Bc@=twc ze>a=w%>PWx^V`*eK7v$&Ng6f%c|99px;L>^LUf_u{j!gNwl&po*A7ZQ&F%*(@%|fF zR`M74L=D$qc?n_(o18HuN~@eg>AJSqb5<0j0DJ3DG9``5z=Xhyx8}C3{j9RO?i#$t z->|h5i?>n)O{{UY?y?RTGMSEvsr=LkowEx0>W|OvEC2(Xyt|*ry$4(ZWBKeeMc5&c zMO(Mim;9_>vF7UIHhl{AaC|tUi7yye3K48(|2P`7^ zfJMj(N@p?Ktf~rDGzUs{MPIcO1mUXJCs=|MAah4r4|*u5BHw)_Rp^W5_65X|$4hOY zcLpR#0~gVXZV)~xTJA9RTc>q`NC6e`a7qnB*!5G;6_+Z}O=vS{$(4ECiD4~ABwGaC z?=v4L(XyWGcyVFTC-UsK@=z}xdtDfKiBTEf^wvTh5M%T;BdZ~5fk0XteD}Q8P6)Sn za>i*l`APS7ec_$GKvP*`4!cRC&4pwzKOqS94=4$t?BDU38l#g${-&hy(oMg5n&YeAxJ2!(We1e8+&$(>f;9dyH9;OiW82T_Is7zk^Pk?pOxx1p(o+I=AW07i`70-7e284~}r&8+X-q z@%6hgkQzcG=esQxQB1|c!QgI(Qwi-*o}v;g(ve?bcmko}&i@Ubjp3PL4xZ>R4>o>x z?cpe*c5Vf`CM-G8HY?~4YyQ&0+`lxbZ>$2(0av}W<5doh|K|8t^E1j(V>RBVmPD?~ znQWWY*9xYw%kw4W`sTKOytCMe?~BEK``P(Bt<%;``R-xAOO(e|w7b_P+}r%#x*IAy zX;#Kd^@ELba@%Xc?|zP#m0z8~wXrzPFu{2QT+ZG&%}wm*SsAM?zk{xqr64n-zLd^+>(vno*bFR&sD){ghE0s~n%cA{bdu#y*(`mu*k_{i?+v zXiTD#^ZpymxQD*7;?OUUFtYV&6<92)aoQF8p%_f@03;3Sb3K1sMVp}*_0rc32_zwj zhz5~KZ}&37-YJhT^#@L)`u&C4DD=8CRpz#=jLFtv`^rj6Sw_j??*iStZrPlW?yu{+ zPrba=j1{%gQqw$(&X8r|S*w zt1~aHx#6DUdt`fA&Kkjxs%6Ax-*%39XxO<_zqPx4NI*PSyioUiy!8u+X61Xbk`$zu4>E%kyqgrmbJ7K+k@`_Pgv@?RT6YziW zh_g6E7G{V>+3|gtqCD2$%OGKhWjIWjpaYk}cSgPrx+`lfO{wO`V85KJN)qN#uqH;AsMd64dmm_Bj!xm zo!WIOu7d)@M1S);DNm0rN>9#^Yxp&mw$_}Y@OaxA><#+kE2@EwB;{}6m$EuGFLl9R zAGPE*$i8{jlg+PSsw3=EcT+arn>?rcJ}Q_?1QzzW$FrJ%Q&^LvXP@YVJ!VLn(JYv& zCj3P3xx)IJgB5*Tm+%85U~@d=cquy76FMDoe+%8Jnf3>c_1KrGTg;5C0NwnN`F(pM zZ`ICR^#UsaRRX3$fTfBA2JC?neI)qzs`>Z)>w%88rt~1WKym%x5yIiIrqCV!o(KfP zNz$lwn(NQ$=HIqx_I6y=Gao|2LW6_(<6-(Ujd$hf$}v!2q5@uN*OQas+_(pCeD;~$ zfR4fL#Oka-QxG4N0}}%)09NROQRWB5;FH?BaFH#!8aEQ+MBtFVtdFKfD$Gn5v~<13$s_wosf@GdxeqarlkPma<6 zZFn(N*sMZ{MlAufN3&248w7G;JB8jf&6{~O=EVyMhw6shp#`2Lz| z(&>oANZc{Y<1t}c+k?xk9O-0Rn-<%*0LB0#iBoi@R{ z6`J=a2Uq5t#*B!$%$Xew=WkS%Exdq+H%BCSHv}sUukTbGs%~ah2Z3?9l9B}@Ynxtd z6f0av8lxl)4W3?PK{`oYygRYtf?ZyoRo;s0joWmQaI{WAR)=mg% z_4vTs-V-pQ-JcaV=8LcqFwjiV;A|w7=JU29vv0cC6lR6J#WX^`U|$q7r(4TPe@<3*B=l+Zpk!D>nQt1TJ4c9N&i2;3(8hbMqIQ+opWq z07-UXgKqJKx;hWp}EkGvt%O5J|RiwJ^nZ;i~ zIE{Fek93sHaPd~~RfDK5OWleZOLOt?iLS2W=C`z|HiZ$Isw_+0+XS3Pafs$dE70aA z+fN)E*c>72qMV-#yc?(7?~VoAAFdQVZ3$XHVV*YZad4V&V{>zxA2Hd{r%x^b(#f>;8*kqBkjRP@LuF&bF%*bN-_3w15m27n^Rjy`+NE1x4o^-KQ&LU4>Hk75zOpix8Rh% z_>Rmr?or#H^?pnq$m7Rw>Y>ir~YaAm)DXv2@Io(ko`E9b#_d=*0_ zF<(JWjM|pU2F3{>FY$`SRuUZjhdSCVQvT z`-g102ZkXoEhbY$tX>4{&XUhB+<{Q!MFLE$0X5O4c`iYjswl+J!NE)y8pvcN#(_3q z7+D!stMH=oS>du~Zo6NWeLH^_Bz(t4n{uN@;v%hcZ2rI!+Ec5zlYm?>P~LXBFlJG0x&w4>uqoQk)4#~EUs!V1T=#bG@g*7c!B*? z(0aaApWCWJSRIUbq#z6+^jx=l1PN)LQP2lM0;~Ad;5Q7ai&`4mvf8uDt8?gNHMG6X zMBiJo&!1cF&9ur|hN4tj(pn5r>Lup_ogIF(l#eurCX&W}_ru=O$JOZXC151moe;+n z9qEq)&qYt`XZl}t`&v9rDm=M_MvMBy`0<*`q8`brp-oE#GL|_?D2a9Y;N@5F5`ato|e?W2@03-M5W1B*O~U0J_+TNdr?4O6MEvm}l05 zmvR!&Z$~ao7)JJBUhkkQI4?ghzDU2NDorlMiO>t17vI#Y^fQm7tbj-70#;&+BB9mU zI`uau4yJ48Y*jYgXqlR*=}DB)tKHlK$&OzafsYuxT7{Rh(RuM(Xrp{>TR;Eu#|pmy z`YZ)|u5Vp&>*{xbXv2oHDyzHX00KD+o86+z{oo6~n>WMOnCC>OrCCt|fIc=GS!$^i z$R#hAqFzCFDNj^s_@l`hb*kLKF-)v(sU0a{(r`z~{_%O(tAxBv%Ayob(S8q0)hN-7 z^1{_H-8eCkWsl3uXd2mjWlZBo`w!0?j@N5ivO31flwzcdM7!f|;R?sSG5OV-o>>^` z#91|jK%(c|bt$e29+$CVJi74$0~O{yMqO2~NAJSlXK9BkOVam7em0Hx8}OEJ4d9yo z6&89Yx5bERbCjT|!@Rj@?4NmOcfY-37VVsA?SXFST=~gYT)F~kcDmK6%RaN>CaVwX zT<_^eN4LBmaL1^F3`;Q+3;dTrE~9Pkb(0g4RgGRL-NuIn%R(O#+Ap}lbWqF798O2jt*moy7TX2{8$ zhy$zVlguY_ACxYrO;B4m9u6yd$eSk4x+fvgPQtR1SkOLHh`-XT5Av|2;a6wHmtB8eIp(2-N1R8M#rPWg-pR&ZiIFrz@BKx$}0Qr342Uu_*0!%oRbjX^I0n#xp zD9QUU#1APK%+5KRn}rOL-$v}*teEXIun`T=e^yBepQAczx^MlN*t}GtN)uX;N*;tV z1X&P?_pi(cK!E<5-=BnUOmSX7DAo3p^AXMy@k5+}g!m8l&wqHimD5`x-fRynNG4AV zC1zKk;Quc_>mnquG|{lLhK#7-hb_(z9zOi9NXsGO|Il@oQE{%@vJUQU!9BP;!QCB# zTY%v18r*|5?(VL^o#5^kTm!)!ZbP!x-sjwL_|x@65(IXeGB15 zWcrNk3e)~ZW5R%tY(@mNCf4tdvFlZrcJx%t!a)fE^~DJhh%g|5|5uk5$AQ1kOplch zK+h73jba4VJCBS6Up8eCzRh0?#+7z_NGjKV~5@z5aNk+Zbc{& z{-8igEP?h{kbZSxePe`FL3$!WDhjW?PffI*Oh8yIXV8l6+~Id82>_j2sh2nDcaF2}mFTA!dmT zOWo&?l6u?A6Kv>3A)p{ETBS<>5B}G{Hjqen3G~CUz%S7~5-}9T{O-Y4$_L^9>qT>r za1-1zbG4uxqlhy|2C>Ve(8cz9hOEv`3oGy+_N8c=qfD36K1w|x`iS%5)R+~Jmo4TO zoAV}6!(@RgfKuYigF5kUWQU(h$njoYUM>@Mw94qo%dO8!@jjCcspV#DTy3v3&bb@) zpslyy!@*AqeMsPlPu8I_wYmOx7AQE#nNoYjL>0g8EQ~el&O3&bE6N) zq`t`7f&Cb72*s)0wX&e<=9DokUe3Jl{`QGUn2m}f_CkPV8j}YlLtK3VG4J2WLA!!s z=XG$P-1##&JPoV-@4;b~c86_ve$+4gxZzVs@2GwWCE7BMsD-+Nt|1GH@}^ju;ob>C zt1q?)`S^U>T{R0#f8y4dBQOee)8*sAd@@8yYO-lI%a55qh{Nu_Xw>!RG)_ZnE=JEF z8Z`VoVr(*V+Xdu0r1SGkhfTF$L^yo6WhQRg2+x!fyxc65`rWr2BXihyAywSFi49;i zIaB_HV6st6J>Exq`r$@Agre1qpYZcP$J~`J)=@-RG38H&x+L>1xkq&SS3sJAQ<_{W zYI*TIAjtR3Ie-iEh|+GY6TI5x5j9Q%VsPA%D)N|8r8cHCQc*g`x<`3K7UpKE#FNe3v}8IH(ukt|x6S=sN@npF_IFQj8j;!Vwae!ovMA8h0B*-` zP@_3+q*Pua+qrpy*CA(#&@F`K3#-VVk)4CViI1OuR6QI4HOciB$)gwdvrHWvC42>X zjk3)NGR0c(5NUHlVgb0(YWceZVQ)lL@Am^`4BJrWwX$~y{V|IDwx>gZiUNK?vPQOI zI|+a(C{2yba#(O%tH|O+YyM_m*hP5BzSuvV5x=E8fBN|!OF(1$~ZX{SZCs@I9 z(G!G(T%%2@+VZ2fjs!0^tUp#*7uC-Q{tSrJKn;?0@M@Y0urdC%?%4tuo^)Y&K08e0 zU^voynm_$B7F9=6zRpE0sPSLCBU^kCgix8SB)VIX#Btb(^S%T7VG1=;@lx2?%=3p; zTgui{tPBm}HMD5;+mR+b6K7zxwD;{*-O|HdkGT^|PbBdo#(P-b_vskq{^;;$wEqwi zs5Hu)GD6Cmm|9@#WfgQ-V7o6X){+THPJCVL13{>!4oLLEk`=pgb@}|!J#dyjc<464 z{@W})G7RIh+NTzosg2-eoy``N*j~-JrU1+ea#9|aCv#;_jON?G`{cM zmxEo0m@J^xRQs5Y798<{jkjbnU;3Eof_n^uw6L`6`zrf*Q>b!hI2uJknA*lq$xGmKK5W=erP}pg^gG3jq zib#anY_yKz`dH)3StjmW^s_!NNB@NV_r+g7tNV!0PZsy+YbL{eA)fcxx@;~AeyhjD zHy=HkM3+DRpkgU-HjtW*%czD{xL@ zPN^CXRG&k4#q5OICQyMI`039^4j<=(rRs+Tf~N5}XPj$_z|0`CB^x-BM|D!ghp5tv zDo-M9hzt`*I2VURZ%!!&ZMCmm5~4+CxyxxQk3*I*$6p(2_d@*@S1@-Ho4Ca9zq<2lVn%_lf792WS;bnqw9ZoCo8(-({af=mPl-VgYKb-Ufj`AKZrRd*N$K71hs zpH8Upb+ByuxAy;uc-55A0#E?S4_L0c*E}lbF9h+s33O;r5EjZyLek5oZZxYF6gDD7 zUzlj>FG;dnt@d($|Kd;NSY3&WXV;k9!OSqkG-}H@$VTn$AZGTN<%e?^-C9d5^W{nm zgX?n+XoNl3UpM*J-k^N!vdo{FY?np# zt4`mJ_!L#ZM16AvCc%Uit*I2yDPhqe!a#vnI4BRb_AB@qzD%C6wz6UE#SK=CM7SRQ z4*Iyy5w6MrD?JTt5>T><=Ug^eM_l zcYn{W&f3f=hBj}0&a?ikt5F}yr}eo~_+MHqHXD`YSUm>oPlw%v9&u>N^T7V3i!G#6 zZ}+R#*;Ae7xf}XsnU^K*wlORhplC7h?XPGNb}#sU&|-L_mV@0?e{&}|);vB&%>$%i zWfwCGpmh%Sgp{+WQjd>ncVv96$Sak)O0Ycqn((5UE;p)<6}8Ej@HRp1xLkt+KRK(f zp$k#{*2u^!YYi?tR#fAh2hzfZx`ttM9T5z$k*2#A1T``mYA&;BJybAZf+2>c-We;Z zsi`HT4mE3N32J53G(0M)W4}BEdMTDRBz=pquWvw)G&cfFFio!k>}^!6vXI_4(BRFv>z=Ol7<4&Lt!>!qe;*gO^Go(Pm7f9$K>$^y_l4c)Tsc(`bjihT9bcL$4<=?O)>v4@$p zq&sX954@E$`N1dgQ1RN>vaMT9zw`Ms88Ym-b@7DY3eja~tm{z13m<)uv^N(mqqe68 z&hk#huf%WuE(=0G2&py&hRuFz)O(*`*B8nhW^YYatz`9`{@6)EROs31NDzO6qn(Uusp`- zzwvP?-=V*QeFu@j2^&&^)*O`TG>3uo1kH#0{fzLbCL1$2QZVqQ@++)7HU|1<0f;P6 z1&|_JnIhXF8e+EUvU8~)q9jRqJ@ZcJIBroY`4qAcVrP&A)a7w@099PtRHoKU2(kbb zp`^gUNe#@2np}=Sfe49yiTs1#Cg*be&^kWaC&R7j?&Xh3-!yH41-CPN<2$AF^T9sn zk8ZpRg_Ore1SdbIJWo0;fP+aM$4fwrTWC7f{0sZhhX8IrLCpq*TLt)5y+{Ik0Ye|1R%`N z*u6YL`EKA9b=)(e&n-IRH-y`GJZ5THDgGFpu=)^Hpz7J0W4@EuKh?7P7KsQLFv83JF<7E?_f-P10tid%x`_A zglD#r^&2I=f(KAUf=lTufxLYN&y{3g$v3{wb@xL3R#u!U^Lbr1KbTynIQ5~g3BeKH zL45`L!Bmv=Spd8gAIdzL&eR8Mhc^0oRqS-JG<-kBQ;PylVrnv>!o+v^1CDIZQQMD# zJp7)vdbN&mm=#CV{MwJWz#(Bmkcb^M#J_4mv?m34fZvsfkGL&cZ&9p-W^D5%MDRD= z&|Jmp(QWiNdbd&wcE@-ub$~a^lch<06rj=5OAF_eanm1nX^9R{Z(9*C;dp+*NHCxJ zp84{zBi6yhaL9Y~Mw0g>bym2bG-c-*4hNX;&+Pd5caYeNDll`lWKL;LUz)xdtuE|2 z8g%1UpFZ6Pwd=0#M5Z$`Opar=w?k(ssjE(aRJ`VrjIbk{i`5cUe{a{#6-U4VY)oo0 zG)xB3(+uB7vHnr!wyYV(h#04ScwN|D_4yV}oC=G>znCP{#sa-uaOBYrmCd95WHc&W zlCd4nrGMUkUzj`W$?4zIF92S$7JTR^t{#_qW{REaQ{k!Z5bR~E~@MtH%({|dvMNZHXJDXj3Qu%vMUG)*yw)hW~hvSS0zICEGVR8AFB zTN!i<+23d<@b#f0sEx9g4Df(rgQ4y9$KIQA)fzy!f~exs+;0tGz`~XYl}E}6Ll0+C z)7)(<2j2ah>0PC4!4`e|Shz_}>lV5smdNN7DRptH9%Qdll-6|NeM{vRpT^gmFxq3vg$o_AX2BpHw0qNK%nvcG{d#Q~O0V36bHek1Jc zHNYU!bKhhO*5U*CGWKY_Yn~sNvxdZEs9tUUV$%P&&Hu;qc0X$QAt1H3j!xE4*oK2- zc}^yRym$Auw?8T?OsTd!TUn3ugtiSWB`)G*K*z!@3&Bns2Z)qGxNvFOyo|ADu?RWL zsr7PmiyFKP!^}hp8+4Q@nCDC8lML1&2jrq;E1_U>t}+Ts_Vx$ai{>6rn;U9wDr^ZP zu=sHzlY!V}jcy50EW#0FI(pd6QxOYOx9Xvghs6|(O1ytE73#1E_d1mI-^Cw7TaB_Y z7?QDi>?~5Y8k!Fku=+L$viQOrS`SB1M$EZ5?S%CSSwy)KvEAa?J;OUyZhVYFr!tgD zF@>C6C1@~6GFs7d8v6`3(!sVCg8|co2E1ExXNZ_hoD*gvZ#5{+dn}F{OU*O5DU4AHOTIsUmFGi!-T@-5aH%qb*BRE)~%5N-fP6G2$xecx?iD(y@kp?VA_q|Vx*?DFA3GCl>m>9# zFl_R_f?Cjs5fIw2ca#P@ArZ8G_0xK(s96Dr#TBw2jY;5K3JF*NIAM~=Md0e*7n0Ei zw&`p#^O~qhjL`<2Jn$_+_h}P1?@yA72x_%8rAUZ zQm_o}8MV^saz!j;d93dSa_SDy&Q+-MvE&Pqvh8V9(N8&azlXK`!)HuXd`vKudj4Io zU5omJs(h}%AT!ACF4caNpU}cM=NGELvdV}Q21C=xh14-n9HlJdrNZ{2q<;veOxTio z?}{dpxEc@;fn44SBM;ix(Yk~%ZOVmaxt0904CLAj7MIoS43J<2m&2aq*k5C%?nb*z zuh-x;oS{R5O%5{N9Ja$`wZIdE>1h#OKYZO?s^xP(k=ZjtXr;goeh>DvDC5(bKPo$k z6gT*LbVU6b8Q##wsYMNfwyqk%*pRgv0gXtEJtJIw?E?+C#4&l{5r9NUMUjGbG6b1e zsBRe=1w-fqK&#sguTP3_MC9~BM;3x62U87?aj0HfJxHHU?^eO?bA4TXZ=N~xpwA0p zMz^3lEPxR~9>g3>-k>F>q{1#{+t2)n(4PvMt!*V_vca{)(&}eJk4A8z_UVR<3ILUw zHVuXotwqPo#a-*2VfKC&7HGj{@5BU^9O+`&M1)Gza*v@|3ton3Uu>|j&bdJHl=}I* zuFlxtRa!R%+9S#jQz;9b;E~JGW7gWEW~=$||6)9SsQmNDK2f;4-~Woz(=AARxxcbX zKO~b0mi`WTn&@J^#+1$*7;h<#Y=Cg*b*7!1oX)Sx7&hjCh9z5&`xwKAdnGukF|4~L z2XG|27#E>RpDwhsVhU0RI?TVk4j`9|LUnv?|Y*PbOgM+?~GyVr>LS8M&}7J9Y3Z>aEf=;J0i*2LZOh7>O;~#{EuAQRfRfRS{(FSH(_BeZUyY&_v}eoS0oo z+We~K0S4v$!irVo2R6h2$zsob9MU>ZWKprWpUw+9-v)Xvc#3di&JxdXbfb&~>9ky= zN|B;x=p;($%@>4~h>N3DB+MJhor*s|xE=e1h2>Wn4>hZK?q289210qjDVfy!0R)GL zj3e{P@P0T@v_K~=ipyD*2ew8$ZTL~J&=C|fcIWOqigFa7IE`l=2o!fUafQH zIb3y^nsDWTb9}2`iJS8;5tp&J%ABo*w>gC=QA7|)pkjIg?C%0%6?0r#7l5WAHg(9= zAOLlkv4R9u9=eiy>qVb&amL)*ce7Qi1xVecIYVD~Ov*-Lzy3}$Sd;*0A@Ix!X!dl~ zW<^PtXi1lcsiv1J5i>UyvowZx{Dt=Q-A&9|Ck^Jkjg>t?=cA9!&#HCWLGf`04TRVg zOA+BCaUZG$w*w~KQ$l0X8etln@dse`B*9nLDy=iUJ?t({2c>J_7@X31p6J8;2SrCG zqjI@^(eR(NJoDe4M11T~;sS8~avaDxJ)w7dklYDZ{Jm-wv7@o0upgXw=HiBTCH|$b zaOcJ2Q+tb%cR^D_DWm_|i_twwF<6wxFFT^Fji8MMjf5{2$O2c!YezCz*uNAfr$>?X zfnmX+wpO}S9v^-rq5;vS4Tp;KX}4jx`eh*u3W|U$DSQf*;{KWQ>ERoS!sjZV=4g4h z2Y`?ul};{t`^FeCkQW5;1`#?ARB~>b8q2R|8H@HiaUE?F<*u$2pwP)h8-&;gcLe1I zN&hPMEk#a5nL{GGi-ku~=EUuzOX}@8$n6xHXLT&7-dBcBte1WfN=mJy~0H4@Xe>|h7fIYxe=Wq~#W8UOmFljSGy0uNuF zsFeAsCzt0_bb^;YoS`;%Fr5^(K3o;V0;nZO15tneLa3PacYm~HwUA)~(>~!5=>gL~ zZj=gXM$Z_G>p~?FAhI=-MR^+M@{p;oCJa$~u8!HyqFf^X=j^e|@PnF&qV?iMpSeb# z8{1CG#Nnj33XXd*-K>zxxVLJC_x*A=w|6n#xL*|F&`_|E`^HM6Q#<;G5?ue{l#m{r z=s=h*Yg!t`-Rf=noe5h^nz?!8XP#V`N^N^&AM8xMfIYL961^1s-D7BqoRhJ!(;5Ja zvWMrsyx3WHB*rJI+_O5{a;w3Wu8xFx<`%oQ(*8qZK`ynSo5ChQgo>UJL18sNbq8^v zf{23ZT@dcBLG_}lbOk{D9Fr9*h|8#yqvWft04EV1G9vUTd;kNiRCe<0Lo?e8#v-;1 z!l_>!LXRC)gEmV+7%i(9Zg;$Tg?&Ae1BRaQ-6-fj=dYrcWDP<20pyVbcVb^@nCIx92zeLrun=5XhYy6gD+d3InUYg7Y)&V&uTHpQeC z$HX0=Y>qs*PVkKK!LbwU1j3ruoy2Ga4%G!n4M6@Kog@H$w3SKVg)$$0y9XaftVGFx zSlp6yYB3(feqN@kXlaZJsrK$I-E*sddZ&-A>bV=>bm>Cr`*@RH_t9w-5mZ2Co=8jr zAq1rNo#8vCukU+1cvHRxps;`%&hgMcS~Zr%`l~kgQ>TzrqrE}xK}tI}l!9WbmeYg% zev$54HHPH)QsN7v7rb92n;NwypBSa?DMO|KU9EFoXEHI%!kvvsBKNhHLX*SSYBR_W6QraxzAve7RdueD*^;T#;3+`Qc|7=^btY&pB-1dEW zMfUDR1TNB#Ul!3RsOBP9oay*3xnoQxkJsUwoT>O<0wj!Sv`E4jelKE05T}?`sC5nv zapC0q+Ms?`A0fg2z@)kqg_lP*mO{M_88FEy=?P5Oa7K!f75Q{GX+U~J`*o-p?SQb_WAQgUxCC@c!N*3CCm*EzRKGYi4 zKnx=%?U>?A=lYn|OPbwb3zg5lY^dSfh;*gHYLwKzttU?+7;_YZ$s5kY0m7H!111v? zZ3LUFjwy}ZulSy+khWj*Ft~58S5i&}&&U?&!xuUc!;Lc_8qwWX;cT-r>RUiG*THI6 z^M2nxcc6Yj0j=|bBw#oaT^|bMO#%b@UCi<$+XacFW^-%N* zmNi}eWrGiM*5*5lif3Wor{{9JjQ`^oX z>*mQosuYz|9LePQm?3$H1xrbaetYUSQ@*{BW#%2_H}9;EKA`ds80~e7@KNkenl!Mn zK6t3>$o*rX^}x6j|1-~_u^X!mZv#Qnh^{YH7eIfg$55)UR9}jbJPB0>rho^tV8!<1 zi|)a1uzh5p`<{o9+eq^(qF`{A@C5OG)n_}1BMJq5Su{%94~Rta#zzrh3!fON-(O9< zSA|6ogUIz$>?+cq$^9}@aI_I?z9wW}*?@h?fAA=FyPmtwS3i{1yvI%WX4Fq-raWaD z#sKqg7|HtKQcvI?WQViIfzj~To>$wyJQ5jL@oJ)p=Rf zcR+!+ue~B5rSdRpsn#5y{7~Dr@FYAyl|+I-B|!3mA@gEiZ{LbVE~!9@O%Hi6R;HZN z3RyG=`T`A)e}pb6MVNnmuL}HjR};~yW^hJ-u#*C60B%hIwfoz-zt0LvE_pc zj)OQD>-TOB$@eeD$atySughnSBWM))VK_{OqHWr9xq|iLj%-r7SvnHAJ~YZHkUq02 z8#`c^oF>3RUH;SD8h8Gpc`sY3<)(KNtp>-hU zsOsIh-dll)xmMY}9UPLPH{Oa&pdyP&AX@QVDNiQ<0I*!ZRF9slFfEzf44)wK0So#G z;sopl3I1l45M~7m_^$6m=TjkoGusRg0xh7i8LOQ9=7L`@kUYwSf9W@v#}m`bZB*s2 zvm#)fTOkD4TRX}$NVfYNEQc~=RKswtnEi=`2@h~89UJu=Pb9fCCCXI@@J4s|&KDK* zebzlj-1vu(D8h|)hjNC5@{B${e3AVAPxssHA_KZAB8KuSPh`G`=O%j_wji{+SnZTXBt(P zw6OqAv5kl(>)d=Yktyf4u`t}hJmkpMF>R^O-_<^zbH7}Gy{!}Z8HW<#F+K?VN$0$% z!$yn7t?1o4f<@IDH+0RlEmOQ4>^#IRg8;i!`J>#oEM57IBI^;id7d3MFU{ZxwlCi; z#QM_#w~fOdmc?8PsFpAd;97okiYv~i(GqV#-c4V@oY{pP$iF*BXy>+J2kGP`r>Y|Y zjmyMO`ifPQ>X%jOGuc=T`o5xFIe#uBh$5)Qo^UZN5NKTGC^;J#zFZWjs_pO^pftg# zL6pit1>{Q6Q<3VcR#B@v(Wx0@mcgp=-v82=s)wjgX(`Cg$zRn-V;pKS!e34o4Mi4% z`9<(GJi+A)j3FLXaZpPwtIJJO>8i$y)?zx_-M#xljc^JM=vxBYhFA|(GMvZltLHX2 z*mfnz9S)Fe#&7@Q%a{yTb72BaZn-%fl)p-ugxN$r9()2*Y2K_FFcGt()gw8L2OkE< zwBD+f_xO_dqN((}^B|ct-Swci<}hWxt2gEF1A6H7rMD2Q8-}A1hj;>*iF!@}*Z_b1 zk6Q(vg2{lnjZ%N1ogY=@=LAYk{3A)$itV#uDEa8Q+C>e->up3gja1uc^VTiYr-C#) zyxs_-4CO+6rzoMW_VCUOm|93=@r@H}z~PAvzoFuJvD5DB7lc{`_Is z*y)8Bro#aX68MEyTnHlx#V;Zlrg(C*+$J8GxK4{dsC`tJ3F5SvNjTM|{sQfkSdzD* zw^`*^ubrZ0)_3fwk*vyiY7IEhf!Ke%bLSJ-3v0cVFEzM@o&XsE+ugg)XB;CJrV;_) zClY`H;nw$LeAa&7KKtzgC@O@(u4=w-$BiFLTdar|0%$YQSt=sLOc&y2qp48(+@9}Y z(S4Z_3_t`vr-5AtBJ$?q6>Tnf^z)Uv#8FHy4m-{E&YP6xQn zBZsk&G}&@8fT!J*>g&SICxXw$N)=>U2gr%-_55NuCgiWjwq__kYDDn5QDk@CuM+8p zO)AO13#03RPMnpu#dkRQ)r?DA+xXL+-U*(jWZ>Yq=}4&i%3PUu%wz!Du5!8grQF+h zyj?$SFjYGEe%}43l-W<*FIXC{XUb}pB=2o?GGJ=E9RWJmF7|fr>iX-nI+@Z39ti-v zq072KUE&Y>Vr@baA@*encS7ma-pHBGYtnuDrA8hgB}xjn=!fzrl2MBTd#y->^A!M3 z3yA4|A1h}ygRsg5hD;WqXLKLsS>Uzm(n=XE!=GBXg4ismYC%E<8w4ZF3$a9(?3IB% zwlqqbG(!PdvRto+N~`6G~51gBi1rS=s^4H7^dQ1VPv$0!p@OEf0O4L{_E zK&k>+%omb}Nqwv4&m%wA9v804ztE_BpZOV-(ptVz8)RLR(rg`w5PIQV|7l(8EXkv} zmSehsAN!s|v?onN+7s=T`FAq=$=W<6K9;P#&&G64=C%0Nad-7X4k&=7r9`>rmW8nF zW<6|_0m1QCr5TL`xy7On;mpPICv~&%yT0&AGP;&gQ`Cedj~D#}jNtw|vI=Y_9~ohM z0tNxXW>Nu`%FXJ^Un?-t)}Ov6l-CLPeKS~c523$z!aq3LpSZjmvu<>Yc$zF!v|)~T zwDUY^=OsuVWTdK@;aszi5;dz~P;_r6k4IHPZnI@JAm6~1nm_L^{Z#GJ(cyY_zS^=& z&8~&x*&3F=s#xu5zcVYFs~Ly!`CzFARCs;#d(e^PcnXg88K?gdy^}M}UG6Z^#l^nN z0;A(85%lLRaiL;s;*O~~`|sI{k8`l2bQ=>I@C>7mDdfqa9$EtT4>LOD5_1opQ;v-rVlMWgYS6CS3PwAQ(1=FF<66wb zvU4$>syxH46@y*LVY_!2{7m;F>-u;laXPbaf}D|P;_A4o#ZM#{<3ML11(~O{)Ejy< ztYyc&Y7ysd<$m?Vulw?RZT!Gj_z31H7un~B2AYZHDfjV=YZTph+dVbgKtf`>R^XoO zIAOFdK*^lLiEEWzXn;q~Eg0{n)^zA|)I@vjq8~&3Vk25NyHGXA?Ev&`Fmg((_3dx& zAy%*U+DzScez#AwNg2=E-mt97c1Dgyk6?C#1%nHItB(JyyT4;&Q7!->t4 zF#|r$9ym6FHk5c$!G{X5VfDovwv=7jj*f`=-D7Lq3Kb7$dy1#l&SYqZ1KeSB6mp)M z-$Ic-^$v-L$b01;D~5_K+}TxG{2E$fkB7GSrEbBWP=DP$mvP_ooP0#DHsB{B6WA}c ze6_DxcwXa9PqmmUQfyk}B{c!XxsEt{XTs@!fj|Pjw@jLD(-AK{kbfgXlka~1IVFq~I-Xf6JHjxIvOGQv91cw{z!#cz13;0c zg~E&-Y*$uY7R34HGzxQ3U%1^_G0Ub3_R zuP04epjH;`|D?g1k~j6m__%5MNOLA zcuch^5;(n&Fc{zGPP)aM%c;rHf@oy1*%BIcJf6RnDCvG8XuUY zBI;#jshIlesgloQ^n-u91dvlfo&S3Di-Nw1H$fz^iosf;G}9`Pl8mhOvs)uxD;zS< zNk*TOpbj$P{N(^gLlkfkpxf%|Dk=#n!l%;s z{JChT#8UCNpWooq+M3@~=yZcnKQ;lEj`mT8kQ#6xj2;O=BcJ_0lZns|DJNkgV}Mp0 zV)d@w451Ug8cGcea2_GRDKi%ZDg8@azYox_KX7(1U^76fIpip1I);z-4!l7J;^=u9 ziJYFkzWaARfdS4Z(0PECYmEUn?zkOAZOZ;{X+?B>Mc#o(uO*ATtVYK0p&xzA-hPHF z$-W|XozpLBctiF+T6tksH-9G-{RP=qNWGtmV2N$TT-mjQ7?L@Ss&tc7)g2+Q?U0vM zJ09|5@z+w|utIHnCHX7Q{7^k!dr8e-S!+{KEmU@gKT^GvhuT9k&V)zv@>f(Yc~H`g zBR*moc!GomYBSTuKJ_<8eGDYe`3Eq9fhn=h__Aa1>Q-QWJNS!x)2uDRg?$&l|nanS;;S z#t_@TtbINZZj}2p=Xbsads&0{c2Rr5d8Ln+;-|YCa}_lL6B%Z?dbKoMvGQmdns-P; zdhQc>I?ct>I8o+@>^GHLN_X?c*J*ptqeyXNR1r%+sy8MhJ*WfCk-CG;n(T&lM@cD; zmj@(O{EP@aP&GV8ve4v^t)0k3Y{{RE=dyc>gsZNxqR5@4Fc@)?FKo6*m>ApQr>Kyp z_rZRgRFF%W06}WPLeAwyVcvxZ#Z?a)Ci+RtS(Sv)5&^0_M(EISS^JmZ7kDpP5I( z8yn#115=l6qz(w5EPT*+pEjDX!#@GB;Hc}s2%6|-xXu+{S``5sZ#zgxZOXik^XgqA zJ|YDiU!A4)mp&-vPW7sco+(i=cNIm$rs$DDzS-CVw$Xi5EBg=?7Y<1Rta9;W)LtAz zIxT9N#&O|%XEbWyN^JPi7OtV7A@DHO-ic+^f)Z+X3N?SFOpdWX*`)P+r$cQ>{prEX z)ofmo3`0q3^m|QOcs>0ubk_CDAr(%qxgbkej&Zq^$Z@2+n6&OgPavwzb?ENF^QGnW%03 z7#m`?EUhRL=AZtI04igxw{~j$AtY|ncpc%it4}fp)llik<>hm;=CvzxE>SIgY_dMi ze{sd>i#EOx?0eQ2HzJbLj8?;4?NU;>B4dwExZT1Tj zPs0tS_|yAPqT~h^tHv-#yB!+d355(ElR=vyuK%H2zh>D8PH~qAhL4>|odhM~x(a>$ zzsK>UMr_4($U^pY?Vq;nkcn_O#l}T|P`n|vU&&|((VPc%(k33i(TT%~!ohoCctrmV z6qz%%FSDtR<1C&1wk~y(AKaZ>W$~~>HTl#tL#64cw5z&kOdBUat4z@~;sp;3sDX^U zGXdt+G%Pk&6RHVVTE-X~k&uOe9~TU<07L#aY^UIX4PA%H+wV5df@~`70VuBbQW1VB zz+-F?VGfXWLLDS)6ksO8j)s?jBm;}B-%VwX;F`4=WSfP2Au=tAd(1^E|vKS|5jS%xbPp!dV>m&WID0?%!lu5ib;SJa6&bAd@W@!TgCwOXgKQwwR6;MA0d5rmR- zKV-vTZWtk%9(?eB9$EH4i$5aA&UOWi1hH#T95`9gUn2V(Gt5*+P&9pM(i#SuSTLQ8 zh^pF$;9q9D_&%69h!--{jO68{gayLCtZ`E3XTU)jkTo9i?vM-=+xLp$KV560+akq&|wu_z9m3>vfNFCq;Z-Ekz@ z$2puo1mckFSwhnH9~?LkxUESMjSDwPwql2^5-yP?Clp-+iu@lU_|^qTy%0aa=2vb> z{-9h?>VG3?-_{{iz(pGCsCS7ei{d1V*!=wdqW+;J9D5P7*)^b1gmjFEWwA;AiwWL( zlFh8QImR*U0gZA<2Ei1FO#B~6TDEu*{v(%ogaXBxIC3vE$ScI{m0G^%`g?EG=Ct6k zR_jpky#htCxRg-{Zv9pvP@TQ*X_i+pZZ zR=D>j=G$ixCt?ZQj@{5fiI%)RJ-mI|#KXQeqILjX((3q`vL^v6o7`0F&?&_}NHO=X; z=>y1B*k0%(&$-AGxyfFU&rh4Za-T8It8^5Ew&I2H6t@GXiU-9(uyOkC?{^{udLwT@ zpbyLEy^D=WcR{AaXv2n7J)E$lV)5*AO8m5Z6k~^dWK*w>NMw7UBNDiXcwU%Opy&9k zl{=QWRc`M(3@jHZ{Jc1=1g;n@qU4dOY#=WEZaz_E!brIj!o@oDBb=$j>Rog1SomNT zp~;>8bG(}_i1bCt&Ywku2(V#P_wFX*BMY~W(cBmJOmVCyRp=o{1iun6gJF&9)aTZ( zydjB`;sYUzN+z4U%~aa-|Li38fIA7$@z(uDY@A+byRX;dHe5*ojB5b zBfL9t-6KegWoHY&%osaK5|^}>V-|@`bG$$+$)ak-189b0$oHIiNtUiY%2~= za&9D(p?ePaZr<S>1LfkicCg@NyYdZ6IlI^{ZQ|Cji1eU2+9q`TJ%g$H8MEt6rW!_WS0r4ZWO?s^)CrgVTl5H| zeyAkjPE^R#5!HS9**0S!iRTDjLd1wAIfw~;eY&sZax{v6mPR*=jot} zYnZM&^=Sju2Bil{gn~@;Gwme*iE0be1P;8i_frY2fWS9F?#X2oK-dWYE`fG@netg} z)%{*KL%@60j643=@&{eq1SsEOf%+~14w*T~04cD6vl% z`)5&PFn`Tfo(a`>;8zFiUE{)14Cq{kuL$%eX3*izN6xD=MF*A!PIo6k`xbopR!!sT?m8a{i z4|k0>7D_QhDnk;1%we)Qb!yb8v@)I>ke{+(3VAkG!lDN`BR-3khoo<7@&nDHFJuqd zB+Ioj3g0!XonNRm5k)JgsLT*WD+&E_qUPh#d$Bfz=GIw9!;rq$TF0V^j^I%FGko@G zG9~OjJ}lwSU?((IqZxuPCTnXu?>KH6oM5bczGiuD8B>Xl0MqFX_xfQujQwI$dxbl=qA(e8OsVq{j(!nd$kTyb z5PlKvQ~=XQExbzE5p^Qe6hk}WCzzV^P?OsT&QP9>f%Z6mxUodXDE~wxCw^5CzeU^e zPgLZ2hx-+XcM|W1k)2uhmfOHGHDlYHmUIgj~PeGlZ2Tj`t-WYnYiHZn_rJc! z^tBS%;p`AFLAy#s;JO~AdcO^PvK?$g$W#EV;2E8foBA)pxNdVLlnu-ME|i`nr%;G-Sm)mO zf*ns*Jx6A@X+jKhkRrrnQn#v*ld>mx`$3t%!{=o;!0WDNniht^%!Q09Q`?PD++zmX zx_61?z4|Y(x+S^lffKJv=EaIyUJG;HzOAytmYGGf1o0EpFV*s!3-iA4p<(eDt2Hrl z5rEB9oIwp-*1hv=7EIlgyGcVDS?#UN$|`b(X->Son|Cgs;qDJrU1&`Kk@yuAFjoM` zcDt%BL(BulQ2fB#7#2BTCB(Uv!28I!-p1IW|C0NyHQxW4)R!(^3b;4BaHm#e2e2!| z6jq3&fE`Am9)9sJCY}LiBzWn$`nYR=q9*F04-LY_f&7Vhm+>}Df0FSBTbC6&UnT95 zyE4-wrN_pC1=9MCZsvh5?pW4b_1&+#oiTOw#@}8y;Ybv6WEEjlN?G+Y?Syc+)nw4u zA)hCzR!r-l7V@_boGEyk0PAGCWgB4vT>{vcP#`nxy>KCU#x6`-XX%#;Buo7tE=* z&)Mcqi;D;HCSo}_MnaA?xoJMKIB;E{fnqL#chE^qa66_8&hsrlQV2sl_TCpWMU;6e z6hklz*iQ>f6-f*1r#1X_k|Rq@pE9o;>X<-;3>^HxP=OVMfJn1ddoD3CnuEj|&dutei0VtC=urfssHnxvWr3WbSrC z!=UdStk8%m^4s2gRcuLJN7%L-hhw;R|wYJ|rY188F1z+T0 zZJ$C9F5pLRZx+6qmCUZL#DE3YTUEQMmjmNu-I3EolZ$}wiFTHWX5Cm`9&0Aa$&L@X z<$0+efpz_3LTmRScTGhViN>&%*8nj~R?(yKvYc&a!w|t!s<$zV-%u&F{`8%qA))AU+|CYGmtfdd%uddJSm!w%gEDW8O(Eo_ed;Jwt>o;?E0s$FbQv5*91)G%Xl z1RJhXUL(W=NeJg5spVCl07GdhH0Tdv)u&!q50H58fUzs!TQewBW>Qie4AcnkLrVS8 zp_cfZv`Nx67TZO}x8jU?k4ck$_Xt?gJ|BI>mK6D)#1Cpo`HD$5!CNLK$1zvuV!|CY z!uGG)YPwFdlj{hBNW=#=tq&A^3Ry^}?^D`-&)4T~C!B0(D>j~>U>xSSZaA&A%-L)W zbLu^bok%UOQmnN4OcDa@R>r+Y+y5VB=M*3J9`)q9E67ag6F(OCsG9S#(=_PJke^%!Pp z_Y{@JfXXC3gv7)ze&jGbQ8bfTxeLv{F(%W7Uu!^63_K;#F6VmLMD5v;OK78j$&)Yx zoW%?!QPq-DkMX0QWaVRBOjEy3udGz#JRA>&eDd$nC=(W>Q-0FntqGm*TAQN z7%Oa z4QL8@kN6K=Z(pk=lU`d&r2kG)RTMC6FvEog10X}=_=jm=^PWC;IcbM6(4<@Tl?A{e z*US*lPgQQ02+hka@Cj!%Bb$E00wkjMijWS-7_Z3KIUkIvKbxwr-ajv=uXMbQj$*gZ zCrxPjk`0-r7aoH9w|icgiIRl7nke%v0mD>RG0mE!1CcPX-X_EhIcKV%F@pJbib9kG znLzSGPDzAzhb2&v3SpWgG)!UaRJGeu0e8i;1)B{Xv1t;W5yfD7yj9Z1#R=m>@ zlNbhs>clV4ByEl2>wF7#cR{@OD#o8VSwvmZ7Io zzn30E*WUdKxXL|-Huo9SX7?g4`0CJrQ5w0mG&k(xN7k8{ewRfjyf?uok_+`j?lkLQ zSqWudc1@_-9}^gcc_OSqDND?G?omlJh9Gz>DXD%`(asaXEKM!dZBp|pKp(qEyv*ad( zTa*+PC&{aDsy&jATitIe8Vc?dvs_@%fXN_di!dZsss_jEd+Bb51jj<<#bCrk=>+sf zKY0?y>N%>T(pGo2s%ROgXG!-~LJxX5d!MR}hzyu&Con$SeS6_a-;tu@((Eg}#b!j(Y82l-9PzY76@tlvBc(HHc??|RYovDxk;HDSkkU zLo#}SM0#*?^hnzRMpoAs{QMbZ4zpz=w5g_8LT+;0WF}<19D3-Rf?wo@h^De zS?lS@O+d&`=df-ElmC=8oz*k9tEtm^!KhQws<176Q!&TAEwkv{cAqEP8N_O)tuZ%c zFtX_GiQ3ijGKn>Bi3bBrJ67|JO>AFY&0y|00^R261^YqtsEq8;%T1++^T4B&t);5; z=e-S90|mCara9bYZLG@nVfV~^!aQzDx8`|bgDer1CY^>rO!Fokx=w&^dRZg7C3D6` zvLauCs*{*yxSp|OUC91MBTaQz-m16f7gq^^2q&&BApx;s0_N07d64?S&vFg-FJ20Q zp_{O5FKG|ISdCe{&JJ51CX`XF~J%uHyYr!s(V8nRiC+acHho zYg^wLku$KN=mmY|CB$s~qvXUZ(vu`;%g!Y~`lAelVQ-fz0vid5|A>frcgVh7ehtK= z-uO;z3W#a$yOAoe(JCZt0;5H$LdIwO?-n@3r8+mJG~dhBu(U#G(qQT1dytDXkaTx~ zR;q!ROsTcmAGCZ@ckG0HFr59}U41a7gdZ_MhH>$9cW|}wzrz6=y*>^MkYPmK`Z6G< zgU=#g328GZ=VvQ1j?a1;=MxUZeCFRrkv#MTpB+DWP;#`SeIIE)$>?k&f?=advR*e@ z=BLJ3cB96SUl@cp7+_cJqz)x{FNG1N#@HRV+#6SLIWV~Lw58oZR(TW=lckrR+W5}8 zH~A9BtWq)MUai^!Svg{^?oiunT=roz{jzF4hs&93phoY=)2TtCjYDz*udxM>nsh3? zKASPg#0rIMngagY;KJRUhv;FpK3!N=6Rm$qucmZdPJcwW4A<>Ibs`j?AY)_nX9teIK`;OCc{@*Nu6`FEsxFlne7K!=(%z z{{fV@9cLZc+0r(`=iS?0^k*G_F1x!4joM%H2CLNu>7zPBEzp6A2-s&|D7XEGvu0hHCZVSQ`-N(VCeb=rxc24ER&T2mK z(2o202TumOgz?Ol{e18TPu9|T#gosoM*iT*VMM1N^G^rsO0B8}MDcLOsGUvDahFj7 z(54-1n<>+C#{sRti$u#I%BpQD_j9AoB5r!?RMrR$qOcw?s{!`TX447h;#71T2oR6b2Yu&fn@jB+Lq|eF1AcEt_RuRDoy5?ts^Lw`A)HS&Og$dAvI5 zrAGwqaeuatM|Rv2-5c%i+KaCDOzVP4kB}l7FuH@p*{k;r5y#Kfw4lqysMf$O*noy? zU(Tx8FjNU%FU$VNRb_pncG1SM=Um(U>a(n+mF;HW;R?_W@TJe4=@Za|eKH#gJ;EHf z){V`wKOhMFx|XgM)S4=Fe8Fx;H4eV+g*c%25pjww7lj$n}K&f`6_Eewucdgsq?+=wHk%!Zn2FA!w)uq!5i&`#tqLMm2Xe0woy^#uc zZhQOdb1m=JP5@u46~3%O@33{HE8*>$yc{lj-%izq>P?kdEXwHLZc#RuGPh`vZrjM9 zFMhtD7-mBb*?pfe_6a9#>aeMP=wQj7u~dk!b61EUGQh2Taa}|yisfyFV`Q5tKa>`n z`w1wzS++sRPH?j3J|M6eo&-y-j$3a^&M~R3ObktrBwn}%4O~16d&|L$*XYz#JuzR) zF1r9m5*-vz9b{GE;^PAjpRRA>PlLOdpNZai?MKTNq?g({UNq=r=J zSmEtB8hX{|Hze+Qd$`q~p>`WaZ*+2WgKt!m*kZsxg_TBZFmqI;t5uXCJg!G%)u2DK z0?=CxGx&Y~O6Mpr<+xr91ffqZBsK^RGy>th1=pxtozZG!of2P)pA9rdID0gZbC8V!6t z_@v!gJla$*GLO)z)by#{6S8-V+PE`OpggC2ll+6#V9GfWww6c4~gi78Rbyj5d>Bo5%01jmV zs12nUDqs^J(B9EksQ@{+F0qtE>j@gb*ML{zqE#{$)`3_4SpqOKw!Q9EzjIylKm*_w zlbMl2otdcAI8qg7Z^NO))GPMbSu+AHMQHK6rMYJ}M8mfgfR(`tb}qmQfMi^s@TPo` zq<}=H4urG>sLJ8;wvz37T&~92W8k;>HeCI?v{= zLnGX3mf@&Rmg@v>`^eO0J$3j>zf)u17Lx7s3aVv74s=%Y^j@-mhC%?w)Oct|Et=zJ z(tmQxp5rCb$C<+fV1_i8LucbI?=H)7wkD25vAlGvc%PrU)^sW^ijPbuVnoB+pKNQp z5kF#7bpeL<$Q+Xh%PBSvsG^)-!ywxapMawcO!MS=V)MOn0*zuFGEDvjS+Bi(gsTv<5>}OMDb;GXh2X^R|bx-1DSA>G7nr_N0r_ zX2G6LpJ7|OqX(Aj$?7A$cwA>O4cGFqgEo0tg7(RZjUxM8)qw|bgE7Eg$BFlg)j4SB zC*EwWRhm&QFOHL>Cv=7wB?bZ2B0x&*iEIQF3;Qk?TQ`#-lJ{(n)SX~%hckfbZRFuL+JYmL6u8_h~y znN#Ac{0vnotg{u@o5+2ZonQPS(H(G?8x=JEk`sAuiV`n-IuCjDrwDx`YORy+RpM^z zzZ=jX>l~HdtOr~d@1Mi-Wz-!z77eQjH`PzuSwa~e-!3O^2w-%o3wE?5O@@d*ESsm< z!S{W%RZ*feEl3~a(4;;#>wCDgynl?WjW9X+92GXW&@YJYbf0SNp+nPMcJgqbn}4k1>TR}eIYM_+fiF)gDmb1C9B=D!(J+w1{^7~9AtNBBP{t0K?Qh&42pJAC8MoDd1ws~Kz&pn{AL6;c zcn=709oqEqu$e5z)Om{4PICeCh+wnvuMOhi%AgX(+P(bY{OTdKLb?#c1L73D2An?{ zYT)68i2cHVn-uw9i`h62rN6!lu|b(15WmL&CjD!oo>)mfjH2&;MC%QDmgW$0g4PR3 zJs=KHmju%Dq38R64~GZ=^)W4_gmnV)hk~|HHlaJ!A6xNT;(VHpZjtW>TZrfZ@xxc? zp;7FaIy9fnff-`SuT23@Nl#%eQ3Xwk`CWD5+Lt=-{0Fwa$uuV~P1>dc5 zAsP5H18_@XM4`uD0}g@QfVf3l=zq~JeiHyh(CWj6UMPl-oHL(wPmxI;_$K z_%tS)n)MoRc$O_gh{&Y&_@977H}3^qJg{enI8U%HT>5|6ovOd=4uWqX6ae~x79aU< zz#$KvTsTyKT8<21OkoK4zjtWM>Hqv1a7e(HNsM>o4f&RB2*7v7COEvEBDg{x_X#h^ z&)&H}wt}tzpZYjQu^ttDI3oEm zCx(E%Dx`t<0TGAeNcTPqxp>{cj&WWos5yA!2!F^O>^9h9s1PetWhwkuZig6UlITAo zX&eE|YDB^S&H(`!;UC`xbP3*U(hlAKU^}n@P>ykawP4`Bf72JCxCLm|5%dE%LwS3@ z@KByX-v04ik3wJVG&n25El@m)34uBydBLrRK!E%XHpKfrMsVi^@Mp}*X#xBhoS?|w z7#|JKrrLBvLT|@WG*Ziqhz01F;GPFI!;j%Q20vXbMjfx2L2=)LgzSeg?~P7 z3`POT|0vF#MBvZ-HVy>_fI(5tmKG|q77cI#XM41aF(jDh{JQw`h##N;1Q4gdm@L-W zrTKkb0N(vZ4?>5BXR7Dd)t8^7k5JCY(&;~Bd73VgI-|=)!|9Lds(ZM5oQVl;y66kZ zib?Bfham;#g~)H{-YwRzR{Harn_YIRSm0WkT$&i9->~As*Zd$~`F@ru^1R2`|Jdrp z+ds}yn{4D&>#`H-?!C(rL==X;a?m#P#MFZZu0HAO>lG_}Pm?(h`sY-MKOx_UcJ&M+kbtdiQP71aBt+jkB4)F_?R zqI&CTf@=8GkaX0Q&MZku^9gk(R3St0XvwSe=JR=t9|~w*D*+tad5^j7yBD4xg1M|&M!VU&XjKm- zW^#f=pm7+Ehsm8GW?pFqJXgPeXa@B}{S-QkhFZ1lypphza26te6Mgr6DTZK}yr=}QYev(H+3AnGYxE*NCIJpr1gfrr^hKc| zl)V+`dQ1f+I0;!Y0rOO$S+`_#{aZ(IF{I60aX)Fnu(SzGJpo9rwNHEzzm`%AKgBd2 za)7{r;397ZUES9fit2P<6IQ6d<}te3iY@ne=(w}i#u`_I=~Knif7P#w<(Z1Xn4u5b z`QM0$LAjjCBU~u#(aEQqUG;SWp2yu*8>L}eV4y+_b`?|;W$NL2A;Su_l*nuc641Hf zr9yeF%Tr2hnbI4U(O!~H<>3w8QtZoYv`k8B1AyOwf+B@6=!3*E)Rw)@;~~GI8r}PM zVPuZZ@msc9r9KLS(4~Y%B?TRxxRiC1B149p%4{FP(VF{f#3QAqS5A*()1t$9R-HQ) z+>6ibmZhYdwgyc$j3Qxm?ho%aD9G}97;0@Ke&nO3jqXoun3uG5GX=+P%0F$gPdj(r zbMnaE@B80;&o2~NHNP)t_}aQU+&0^j)lz#(d)jt$PiGru6j`^VVYy_Z;Q}meZ6V(0 z!V18YHA1llLiE#Upz+)vuLygtHYjB2me>#1uJkk2JL!kaAn!cw&;=+7hW)tH;{c!q zlaHzr)s#?2v-q~7?{kCmrPW5r3FnaP3j7nj7sMCH3I9EWh&?t@P#9*HK@;5s2+Rzd zlF0P(QWA@=S7&hV;8Znul(}3mdO&l4$AL_2KAW6vppLIW=K+&wVfTF5(!L5xy!^Db zpR*+c60M%C^SKKPpsmCh^xztdu*oH>76_-^Lu(D*>K* zlML;xXXRy9nj(mqgvK5`&YMebD$QC6Q0)hEC0mvGy0g`t(81lsjpy{S%|B~sL6;Qz z+1u(W*qFQVjYi#%vD?}0mfg!*K0K`lQ9$s3p6R@Crmt_q#^7pzC#WCXucqF4KMIyx!Cw@7LauM+<#HTn4Bnaxu?%L&z5X6 zxt5V%SR6ulWr7RGoLL{fvHcRw7HJ!xzvw%6ZL;5&`t~I+Mb2E`bMsU>A_HDd4z>JVv4}0=QWB-obYcHRgkbDIp4&NcgxxptvIyG(bY7M?+AMyXPxdV9oatJ(O7ca-H2c>rt2(VN zcPGoZSDb;L@Jc_Kcje5Do9|uEUb#6iL5+2VzE_^(6*cyq!aW9rpdm^67JLU;~!IzIIMn%4U^#wKT+&1HRJBe^$WsRkoIEavl zm$Qgx$Wb9r)?IVv-SyTK&(J8+{RcK-^zd#KDDL+S3i}{~A|Q+}28F85tF(19DeK7C ze1s5O$sz+2Jd-b%^V8JuOMZkP#)DoTN{FJtej&2bDlsG)`-NyQ+OiP|{jVZ~u*JG- zVAhs&z)M~iHA|m!qF}swz?%V$6_n7!{{f2^S;BG12$P6887po0p7KK(%{oLK1Db>u z*Ghyw&6X~Xv{O?av^l{z6nh%0ChWjPu^QBWNCr+^FEU~st%rs<+vc{JIMX4Vp9%wb zI2x2Ct2NFZAEPCos+Gc6(IpOU1_j!p5?FT4(ifjCnLQKm z(_5F1yZ$a&J;@?b9ThaMi((CE{;`%rv#5VmkH22U!>4vfK`Vd@0PnQBt!t+-rKYJ# z020>Z*UGAI%tuV-4ht_xspHd%GM&9>p1l%O%8Dy~gk(y33JuE_5f6b8GL&4`9Rf6% z`<{!6L-^GTY3dppEY9_`g(sC*5JmyM=h#Nw-fB@>JtdnE*zWDKWj*uqn&B!SgUJhG zM-tbk=IO+tn|S&n{~KQK?T!WwQvYicc~I9#zCFWceYaW})oO92l3SbO8%5r|qNnqb zyEzNFtdCj$YEz_}(MuR_+6#}1B1qD(dZ1A&3CgRTcsB2jM|3>GxaTI?_#X|Aeh(#- z?9cu)l(_Mw;%$8!N?6@)&x_81ixvS;Wq6j(|4W-9?;SeNae#Nb=z5sVB;#r9EofaD zS!49cE%VSzX>hkD+=d;m$Bx0h>PBZ+F~oQGOCPntf|XL+XS0c~%;V+!28UJ}BNPU@~Ftuv>}N`A4| zP$ogzOT^V+hw)PC#2rxs!Tc+RY<+syF;*5RoKjgr{pB6!ccy{ml5jN5=C<2BgE zp8_VpiDIImc-v~wfxUnSTzFr_$X4ViP?VccW@jI9q6dyZWD16yw1F6$R4X|E!{T zcU5ymbeZ$)NfV~pjxzcpwdpH~O-KM?6niTT~Bm3_p%*;w@yNGtE;gz(57< z{J4ZRZ%$Fcm@oM3UQl8CnUtd@&BRcn5a1Os3}VjnbS?vE1tz?1&9Z*!c;C4!Qy!!L zkVG4Rp{me#^Rp{BmM5n2IKU4497tZUUt z(3qlkoBJ`Xv5#v{F}6D3lpKNc^Jd8|e|AA)q$hG;`@7F#O6BEy8tYJV*Q~T(oi*a| zf1N4j1e-cj?@duyC}CRg2XOm!iXcLw0HWJCeLF>luEZ5Z<_qtqLpwzX0YlC zhvBx*k%j4VJ~*?=1e}l8(d5T*Nbpv_OauxD%vEdsp^vG7liMmvFqETN@_vlW-*i3C z&s&q2E>qd4yz8tH6BW7Bu(|R2Y~mL+QEXc?BQ4oZW1Yy2<`K@hRTN$QE&aS|A3c}( zEHb_7TZ%BJls;SRWgc4q%U%IKH%=MlJE32ucjt3U>kW)uM_(mlPdfs8ZaRJReA+u5N zQg`?RPBZSGw{OVC!%lH-tHP5#og!=@lUJc5IXb^{b3vSxR~l+CG= z&NLQvfylXn8^^9e=d(FwG#>Z@L#ixJH&cPj7L&$LI&lxo9wnF)6DbDXueRM?Vgd5~ z5#j+@Y5-h=n=+bssDb53zu7+4b&{AhB!f^*mWd&5Jabc1FlDi#L&2_|#bH77p{;-L zZlr|wC|ky{S7Yu8&bDn>twOEOAt-$C-Tn0r>*|7DHd8tZQ@Ve~yx5>=`n_K&yb-G? zcTH0T)>WV3FG1F(M(k_`N#%{LK6FwQuO*gM%w><6R{p~y`FMx3v{l&;Rvl5ibtU4{ z^Ew5XV=h^A6CjG3rYCzwf)O{=Yzpy_abtI?69-H7NAz}MGtwPqm!m!3YJ$ZBTJ7CO zKdOGrrJU+CME`Wa>3Xk?0vR8kmWL-gqowod;K+^ZwvyDoHktj-@qZH}j<*HF8cUCr z&L2OXF+S4*3_^QHSGAAcr-RPP!(%9OPKFE3J>`yD&qI6BQwLx*Ed|J`Th%T7CedM8 zR!I(4t5Zji$fMc;SUkG`kvC`s^DwxgAqMIO)RdK;Mw_SD05FBNKZ*hBp8*4qLNh2u zOSxJbuCYfAW*5AKYJ)f#ro$uyr>*y)7CE}Qp7oBbQ|$J9cWMDL(w^t08^%Ld;N!4q zS|CXx-3~Tw9NSG*_?%pAY-0I_XU3D2>uMNdDTZr%%65~KdO7$^uS(RfyveVUmaz45 ziFvBq`$Ziz%g&`8nc#-nVH*U2MDe@V&{+jWD(dxwZM8K@;U_=Wx3~sQgAQv=h~!n! zg{`sSn;y0c<6th;<=r+P3Atn+RG%h?8z1a$Mqa_0S+s9~yIHt+_wn*t={e1{Qd;|j z{DNIVQ!K7s#?oq0i5E{4R<+87c1*AAOz~roLriZ(u~!%TqeecjsseZ5B|AL-dU;wp028^XWiUUAuEaBI^@5q|%@Fw22+GLsB=>%p z{r<~CZdJ?0r`Uu}h40f|dV}r^bfQ*PSyyy2!SPfb$&h7xLg$=l9GMXpQ~HCcSrGBQ z>0C*MU13w)ANQcjAgOHI99cJru`*h(ANEa30)}u8L!~9{l!xVnFP9U*wf_C_#P3YKeW*%=KYodO4Sg6Qgy>0vv6tA?d$lBPu{q z1YDUEg=tDQerGVIm=rxEsaU*2r)oXzAhC;L|)+pbOxzw3!hoN?FBha;;*H~YNDPYTmb&-DK|^}?sq7Gjn<^>md#< z?IdX&0F86z;||QQ@SecnwGV?q>+ciX4MwPzJ$khl-uNk>$volzZLh>$`SkLV-Ns~T zwfJ-P`sRU3iAN_+kznRBNAYg0;u!9u#D>Ag(WaJz1Q4JwZpYIrX#9F64ple%Gv*b)?Ar}iGp%96(ky&&y zH`GPhZV!B+j4Kl4t8&ei`Ccb9$=Ug=#3j6R%*2-MWp#Q&jFcQ@9Dy>XJ*7tDww12( zU-Tp~9Oma!U9^gi8W8TwRnm56U=w|J_%DNHFY7H!h&4mM0*`dfH8Z4jd~p0IKbu|A zH!~PJqho(>!0# z%&#WxRSh!ZhciXod{0z9Lgj=wK(Q$?2Y1)r#6_VT;8DUcrDX|y!RwjfG~e;0Jg7mC zU3b0d*$I5-^N0?A=U0zyJuKX?c?rUP!v{?(X;$GP=DdLGmzM#|n$$KU=drmFC9 z^5Naxbl!(^Z|-!4-jYhJizaVjg^;iqy2x!e^O$T90LSC=$nEbj!t!UC7xW?>{7w_$ zws6IXzJB_o`G#n(ev=1&p{v}PXFqCjdF`>~tR!Tl&6CgdWkwDx=iWtT%ir<_?E6_nTuTwyj3{80g$@bu9qAm7l z)jPDC7B>Cxf!8h7;9C^(Zm=VwJAt$mp|Y-EXR&15cL_>CnM|>KDVG#-3{ER`l+!|q zGD}IipMxr2DpN7b^8--k`0{L5%>Xd6*n(USjU&;d7X_we={H~LGJQoR`i<*{hT~O0 z4&lfnm!55`oC_`_v{TraJw z(~??f+j_|?-Wo)_!)jZJ~>}#9y5UIEZ0#26cJ_k*}-GUc@xRUP%dpwS$>+y zJnJuZ0m}D9cN_LJ6jU>Fx&8K=DS-0IXG?&I-a8HW~lv*7-Of_Rt z=RYd+hfR)h8A|&`PqgH6cy~=A%rmBeCLQHYjYKc!dgoOoAx={9=3)yy$ylp7)?}xv zDqjm*@J4tUlw<~k42EX*+0r+{G4Vpv9LjL7E>tkXN}xfBJdg6-4fVNW+ZHD?g zN8e@(5$*a9lX9M`)6Pt`5HkjtIaI;ya!T7oN`}Fu`uTpPe9FI8->VGW zb1QB0DQ)lKj46j$n2VQ{NMu1b$SJ#MCYKH>ijM$-SQusGh_uQD%UnJX_XaF+m~M(S zsZHWf3)HCfa(*L(OC*lyLn`=I@G&8etHZi3f2Rjyq)?h-F*;)BQMy5iP|%Vvwwvbt zB2^83wz|0`vkpr(2fRS?yPd7iz7bq#J4L6CCj#-KAFKRLldg>xiJVO3;z-b!J|!3q zEW?E{bNAMX!Wssy;Uexa2{SbJ&~a0tCG)e%Eawmpe6vqy>&nX?fGLT6^0K*!mXF(7 zV7PHW5axzM*LO3hDPen&V{lo=AWojOX+MKYrrk??g(u|cah<}cq7cPNh_(jmuLW+l z#6P^(a>vzTTy;=jv^pPJGbcOga8Rg-Y2?McioT4BLrZ-ScKYQE+aBZ8xdFS&rp|Sd zx7X<06^1}28B=t#G2NavaPBP6I_hcV4lK!ueutjbKU-8!todR)b=H6T9~~l!d;kcr5Vkr@?^r$)-lyFe6uyFsnjQ}{Z#mqjz!%8AQ1{A zrT42n&`esP1+UEO*TYnL}12cGIb=8$`@6n;Xc}{<5={VHuO|VxTi%(49M++?QX8>Q@P9>&P zF-Wlxg!QmDR%65TArJwBV?|5*7WYzB!$@_*rsud)bosEds3p&f6|*_dT4ecA_wm^2 z2lTmABp8`A@mu~j2s>~FkPKu^P(A1z(w7iG{Btj1*uRhF@I7LghHu=iV`~HMY}+COiEpp{z*dhKm-v1-l8&q8m4`jSws-q30Q^)zEDj_wUaU5kPn!0tfO&LI65gV?SskJZZ`tHXvtI_@R&lBEblL$g4pAeImiT zPbINFh-A}ZAd?9`|AcEpflWtPxQZ->^>07%-{IEzSLlydL4lePLWmE__aS`%gZs?| zTyGC5E*NRWS9z;xXXRq5K~3;SekLGbQG=rX9pn6601^vFX}Wra5rlxYI2I}&6(ryH zpPX(7A6tIMuLy*GY5hE5YK`9i;2%f!jVIYA%pZ(a1gv;j@7ch>S>gh~1m#|Xw!z*k zC-25#m54wH&|dEmynY<$9|z009)OXsZ`txkd`;U1#4>>Xg(Q4Ayz5^f2~)xglTwcV z_)Q?O?&23Sj(d4tqC&DokP(xAvY`HbUqgO4R|I_(oW$-Cam=>-ML+EKl)dY5&mKQ^ zdSQn0r%C)raPqG1V(ix)Bm-aM7M=kTDA-?%4Z7TuaT&@Lnk}DnKE5FJ0ql^rnON_5K2Zyu@CNUI zxjj5QFhE$MdaV#(0`j$qNG7|0{>j&_k!{cZLEg%SlH8?NHSE(kCRhc>-|S~yobyHg zruh*1q&Pb==wvTlo{bmNyG2`0pjeKGUmVsY^j}nhJ^V9EQ!patwAjJ72tPMI?i^gX z*Y$DxujU5vPu=x{d>t8?sBjK8~nZJpn0_#Fk)xcik#V6uOd|d5wNs?2-tX|JeS`56$qRv*UVa`){if7j(uG& z(_?Ox*8{7RmeLqWGIOh*Y-xwAo4*u$kw+po0^D**RMbB%|2VaN-dL#9cV0Yb9_vy; zE9^?mc2iHP2Sf5Ik1f8Q8!=SlL9_yqWm;}(Y4ToNvH8^0+V2Ob7&k>5IIx^kWXVAj8B1LK#e9LCO>^xj@+VF$?q%EXKHQ?#Y;93=} zGaP3z^xk?E`~S`r-_Cw-eT{v7KUP6V9l^eyF+dJL%`B)sr!$y0sz+Kza_U4h3~th_ zBDCT}Zzm-YMsyJ;HD6PpI(-GQ0R_~SD&R|IOX4Zx1PHEF#3Bts-D*@)kJoU?di_ND z0!XxDnQmw5OQZHhuRH5XL&DQK)KCsXBCJ;GW%|a3$bl+Hc+NZHJ1v)%zL~L-+Ami3 zfpwo`U$|TsnRLPmy$h#!cfPV*yWCafPw_f8i~mB22xI(E=Pr;M&&i%?O5u*iyh$Y+ zJ}=<5VcAS+G`fFqlq#*M0y^#*=mo>iW|*BUFh12l#d{nNH<*mywu^06N*Joq$^1UC z%`CoQ8W+Oo~h}Y$49XLW=4oF;J`Afm{ zgM9{Jyn$mZF!Yh)BgKCo1KrQX-tWPxEquIg*C5PCB8HUTXq|6D4!DI<00a2Ub?_-B zpEMilL&CwxK~QesP$&rcTY&+Wz+phbJ{wuoyqewYeyBgf9(u#3VZIWoA(ca^fKjm~ zqN*07bPM&IiF73zTBOpjxUGEBzFJWG zKV>oB#z(*<48VcTimo0WsaEtLFpV`L?#v1|>B@W@RdIGz^P<=rr|Md1P8V{Y>*ZNg{r>S1GFX zM5`a)V0D|82w?1GpGbfzXq6LVx?Ju+XIq-KPh?eFS>DOg%cyo@QxUFcWKF2vFY{pY zjN;#wTxr!(E1_1eWt(0oe{qYt<^|XF{K})|om@^=u>N+5SB^02Eq-T`Xy9J3oIJjg z);jre3k(3Y!AnjsO70&(-@J&g_%;XyAP^EG@21p3K)dlC>5bez!Klu{A8$F9l0{Q-ju9zA+q%+h`KbeTO{t=h?pnEv|e zonTel`Ac zj}z5_s5Q*-QI;g;FbUHbrOA)7&!;h{_5D|LgoyvMZJIE@ zMvgpz+bYeizyfqQUB;>loY+%D`Ri$aHLA+V%^G__m1%A3i-i_<^)bBIWK(~~85r0E zBb3{cU8df>Zf6usBNp3Q-sMSJqD1pUP0kk2&HbIGX8ze1>Fd&B2h=49|Kins_%h%L zDOnffU{=H12u zwQSOhXz;fHnK%7e5u(VAGD0ryQ=w+-GQ3rf{$TN< z;m50G9imlLw(mR?KZ|^iHmy^A|AMneHT9>)_O}=0Mu&FnM~N7SH?Dh$1Y)W-u-kIX z2cMj|J8-URCdP3*nGSX!H?13n#8EP)g=99CeB!^0|KW*iMKfwwF4Sm7bE&`}SdiTU z*bK+WW8;}1SC`m~8p#B~xA^$y4GD`XXd!TgqT8S_FuIq;rG!)Wn z`QVKnk^u3Sy#>DasgLHF3jsAFzL%5s{l_B*dNrSL8C<#bSkg}9k`7bX3Tbklw35Dw z9{|h}=g;0l_~9>bJ?ji?`N5EN3$hf{=PSgl7?1)Cv|c1gj`(h7axL?aTg@?23v**S z8~=~vo~7WsDAqvx=8;CE47DEe^#rksqV}5`=c(NTl}i&Hh-G$1dmI8bod#DXu7wLz zvv?fm`0LXhud-EylV=8rxTVq&ZfzH~6Urq!kr5@91ylB>DwgUqI0Z2p8XcD)N%SiT z4YrYQrd&rm3%Bb#A^CAg7oQiSAY`)x7`~)@GrK1qYYz{d(0OFMU2ty%dPAOoZqtB1 zIV|rt;9QH?YgQU|F;cDIfc9owAEACMjb+_Vf~qXoNrDki)tZc;9Vd+zGjxu>(p~|~ z+0CF8mC6FE?Op)M>D#G75=3a0i>$`x5}L)W6xmjVqVU^4w2%$KHWxZrd!Y-Mbef5S<3}#JJwrAqvX>+g59wk;F}=;mFJwZwd!)` zqJc&_FDQ{ao|P`#^;IWjAJ*f<>u)lqmeb?UlTX;&6Uli$SR2SBkQ~Q_s1?PyfRliS zdZ)hTLrM(R>$?r{Ks=ekYf~n)?xlF0Ir1{6w^B71+j3ajuS^WLB1u4Z$dX^*}@%b zm{uSOGgL@I?XOb|IP_iPS3Xbb1OkELSnAJEoee+!lGBYRxsWh}sU|JN0ra^daWRR= zf2uD4te)#nlDo7s&BqUgZbk@>5%y*APn`e;!`WT;4NxiM@&hUbQbZc~f4J{#e|wO& zr>Cb6{`D}t+}$87$X<^;^~2VKYc0d^wvAe|dfEfm)gWSinNrJWi3$40 zsb7ec(_(UQ*bmjf34aQMeH*j^GdlzV=Hl4tJh%h$zlFiB&0KF(c-v@wI_;{Uha3?` zKfT2R3C@Vz=(f{^K-Z3mSL0s|IyAw@_5>CPXh3_Gc9xA1YB zM+G~zJ}lctEve}T#k(LjeSf&aNR0=>=DVAEvb4O^VQI}-#dQQ16{!?}$=g11zNN~u zGV*A1Es1K-!pZbmZ0tqpP`B~t?$_%Dz48^>8hSwM}-0f9(l8B7>~oksyy zPab@34te@4%`68V3~Q7KjUK!}&Rj{Ff3mP=iY zF|_u5S#RFA6FSh8^TeWV3j&sNR&7+e-D!tk!-X_uzPqioyn$Ki)q|3`yZeiY*}uep zZINW=rm#xi1QxTUy+5+}kbfC5kF&V4FMBDYxyN8?Z&jzaVnT1plIwBc?#(+?$aX?{ zxH_^DzB?g5KSJ!8+<c#TX_WFt)Aa_tNc6r-ojd6G}eg?5w~e6js!O$ z`EL3yFy$aBhRb8XF&Q98Ph?eJ+1$y}KQeB^8p_=eVWcRm;&j|;t#WAJf*)>504#nF zuCCt4$U48fdq#cT8TWYkY_ndX}LdBj>5bTWf( zsRnuQm#^njZc&}+P%R>FWsiX|#_%qgR>X`g3W>d`XL>SP9VYE-Ccq^KH2-6I`y7VQQH5dstk z_Cs^FcwRk8Gz-h^-9xl=8cv&uvzK=0-aiU6f*PK!Ek^Eb`G9I+(uWe}ci9TbGLFBp z{HhF{bO0Ak4bM$LHLwKcqP6;!$iGG@(yGXCnJZP%P?BSLZdQS`Ki>Ln4lje>!|tI~ zb(z{igu$8^^d`h8a4Y$uAIN>4&JVf@+JN$F?FFD#8~cpbJ&Qv$4b7}VEQg2dyst5X zy${#O8~%zYM&fhG55m?$M&*zG@)`GmOW517RaFp|%mU%r{3o7Yz4EhF`|qd~hlF0G zN%*F)JzM373@mo_x$wmo>S@JSjx5tnG+~{90 z#++^1!Aup2F(d%yj+})Om{F0p&&nze__q0 zl6$+Mq%)5YmA%~46^wXR%jPv^iYe@%p|iGpk~%^yG=x`?!oPksz-QLRHh{Mn%-G!~ zMV=!jekT`BC1bKSms=eUTdl6Y&Eq|Vm1o>YI@q&UfI_@VR5_MWms}+CXeUfg%Kk*k zJ_rYg><=Sc6*wMV;+fvfY9k5|kj{w?t2ddimUyJyYXq>hz1gfN<&bhb(Q)(^eq6DP z!j~M$k{ls!;l^#u=`bjmyDGB*V!Rkz3+E~OQvv`uzZ>C|2*3I7mOL&DYUXOWoC?+c z3OX6Hxj$Mo6&*{?5qBB+MOh;WA~j0M@IL+Naexks5fsgW;{f$IxbUlVyWiO}>3(zo zek2eD_Pl0%H`3^ab4i_UeKC<=t!GSwD>FdXTxx7aZDAhI_R|8RgHaOWS)7K`5RTY( zwFL^S3>?)7v|W)iR0u7MO-|pueM`JqjnFi*-n5djj;?0`*>w}yrQ?7zC8m?HBfq+& z(2zgSE{;h>zeU-}gp!CRVloQQCaVbZUvA|kJWikzW1SXY^y#Olkrm~$!gb~9J(8D2 zmC%j*QZ3Y(DEiI%J?5mSCK1h0p-wUom%`+%$mE=SS}G~VRw*?SddZVJ#bMGCOhvS( zA6R;l6>uUPd+h*t0?TbJF^KKvRF@$oLVf~0%RjJ14}kb zw&sUy-76TNG=x-r7}hso^#ulcx=UB6lE87G75)?y+ak%{V>HKtC8&x}lg5tZsv4M6fRJjSFZFmI{Zic`s6EbP` z#vRAGAL$_^6_FxwiG;_sZ&S0LTq&gwJR}~B41w1fGNiS1oOV*X(W3rXC+|HTuZY_r zp8l{JP|z2ugRQy}T{4G^^uS%qURXS2HraXgGE(ed)R1@0LNd>PJ#Z{-7=^!sONsix zW-G2_{z*Viey!O{*DH>q_2>q96+4n#O`(inrcu|i<`m*95VLUhhv|yLuUT-FquM{O zVcRHC$dhR{e`HXq&ef2kuxa5g=Dv3+{Iz&Tdr-!*2N-kCI-K{Ja#kwVDATmdFW}-` z{90qV`j;#A3Hm{c=HIAqE~LwZTPqy78%Z<8#Bb8w$i?KrG>?*q;L z^b*(hzZmjC;f8)^`4WV zG!tj|>qdLtfXl)PCO$S&^2?Ms@xlVuQ_huL84_TTXyZ@*>^`L5qa_I? zZnX{!rObX*P%{>KjwYFYDHheMYv2&eHrj_QxCA2wzIz7CJ-q4PJqpD;WQWYyP>lxU z1a+mKE2~&Tgz0Zng{T|arpzB2fkXuY*Tl$1o{VXKj4IT6v146SIo`7EyWn|hHd48j zfovkB9HP^}Z$0(9gSs`Krd$^%^oPc5Dqn!GnOx;$s5%*azM9D>^pv?Yt*Vf-A(0#K z%|@iDX0q8NB~>du`$2u>M>zUN!$vGgCXG&*Vgv2-UZ1w!QoPjYK42bqxjU?Af{T)Jrs(3B$F#XI?L#uoL~0UXis3D4 z@2t}!wGHL*^G z_LpnzR9#URH9T$ToOQm07Vl}JC3pygV!QCwufCg2IP1`QcM~o_1;3$Ij&j(STMFQ< zi99Q2lc8R6yb0`kK)iXgUMab6Y=6CE9KM6E$=KTPl11zb=gDs^ljR^>eW98jYd;^9 zZ#>?eT@uri&s+3MgVm4a$|)*Z_RgPW9fd0j?$iK~#|v+Sd2-T4hd`5jN;xF=;FaFcT~cY+bPXyoT9)@b8jY2E zJmzCDNm2#Ti0jyNa!{NCVp&>B!VDM7nMnrS=FXwE0xc{tXgdWs-!-qo_;+!bT|Bc) zAa`-vzpT@rW8G`K*X2sPsxG>AGx&US{WNFg<+*oqSCo+M8J}PNM%-0;SNlCD^G6>l z6u!!NOi??e1!POa5I4%zdN}K?*YP;UZzyY--RO8+)82k_4r7>3)g+`KsXi7aOB!}Z zkMB%Eht8_%b>c|}mB%~)S_Ojcgn+JW7-j=+ejU2X2NYeg{DHbg4^Rwk{qy|X{~a%Z z&rAqpOm$7(OejR(!nj#yjFPMgZelm? zu3BkMw_=_jx72ri^dblXbaCw%C{WIz?V%{B0k}(aVBBUX+nHL4(PYWGhw<$WSQrtg z$Y~i0I+%nXQN`IUH#36z+N21I>+>u{7bO~I94M`s*^8bnzFdf$Fzmf zmqN?C;j6UmfZ4UZ8KVfVYk`1dS{#D+n&f2oumtl)FTdDu4RK!9^Gjh;agrA%8$kg_ zzvA9LDZiEdoHA&mDja8PYn+ZaK{;X3_H<(bgn3>~1)*3)&hL#a%@828EPQF1h}_#5 zC)h{6Hl%FfdG8{1{@%8fXY!$le=j6Y$h<5(C67mjws&qkwWxMJ>(u=|i>HyTsO1&H zu^sm)g5!JiX?Ww@N;8%G`zJ*~r+11@w|eA$26Y5#;!eGwQ(#-tGz+d4%3{v%-M)*W z&eIR_)o>Egb7^5Z7mhy4qX3WT|*^SMCW$03*>$N`)DSx1s=BQ+< zZ?|wttTvYw+NO}N7JAyQwGW;MHXM`>7~|a=0qEfSNsH}2+rt|whAACgZoe_$@&>3sX6ZFAc#&2svLE^}S3$ zEgM#hV)hGre^{{>10YsAWZdbH!gPRC<&Iii^_d z=dbPN7|HxS0RyF>WU8REH*P+UtJjxzR6&@oEfub1_1-!n6THGvTaF@vdun7MQ}CPPKo|0!B}T>IwF8yeLqXQQe6)735ZEPJsAT* zz9u7|d1hWwjIUXlUU`%7ktf2h!ypm*z{JL{}0a~gBdQYW+8J#G7ws>X|^J3dQ0 zRlY0R)LU<$+8&i6kQnTVfyu&7?qQt`!O|-PW%NeS{9v4EsyYosSKad`wOWk_d@q!x zh^aTwcQato=H{iOHH5)3LP){qmmbEPcioH=7#UcySt7pq?-P$_;QCpM9z7r&&*F== zaQtOo`KL)P&TdT6xoG~Tx$N=$|g2 zjuZLP7e$C2?FDQsxZ~V zPcDxh$DI>m0}~}3)9fYp^C{MIFR%V?U95IA7p8}iJ!=A5m#?u&%)J|TcQaq)4d00g z*&no?HPy3m^YAmhwmD$jOW(?4&fS^?J*=G>9-&M=Jo@F9zOLuo&g)(~m(Q;s54le# zF|jV@XP1>=5iD~|@hY31lWAP=BpBo|#^Yb_3RMrNg^ol>V+y3y*4hMS8GTL6{}8@O zhy)o3-sP>=&N8Bx7;s2@t8M*$Pmv@{A^-X@Y?*rq0+n(VC<`a4-r7L;G|~ltQ!~LY z#mxez_r_{R_zL|KB1oFwnImmHFw=b~h4C|K4j79|* zBRc60a7hSMC<;jAaaB(Bd|pye^WrvcH}-vT_(m!{-C-W)VEyepjU<+gp0BewsjC_A5)JqZ9B^@l0fYd6=XopP z%hN7t{>s(DZICg)-?5(mbQWaLHQ_;2{xj->gO6TL| zj2lLbv9SQUc;GgC#H#hX65jYP`fOym={6tOksK!rJ|SdOJ2Y4s?_Y@pcq-Oo_>X0bdQ@ zswX5I9dG7t`gD&lWvG@?8S1bMT#TZ29&z&0T)6e2}-H%=023lHFB-WlUr-F3HT0a3k&7JN`;Ak7I5v8r(JhqAuUvXMZOgxdmKc)>xWf&el1@WY896U$<)#IKPsIKYSH zs|bUFI^38U!lMQ!Sr;@xDc8Y6L)ZzCs0r^w5tVAe1)_~nA`-uZAh0^$^4;*$s9m6-yw=~ zQrCHM+NAjwx$YWY43SO01IIs1t%loLDOhA`%tG5pqZVmx`bvi84i|5Cx$7x@H(jj0 zd99nXT6?>G3Zfh$ccY7CRgDf$lLF2HdVIyCNU|0DldT6aM$3W|?W64m$5aUOMq$tl zD&O`j$!-cQGvkV)!Vof7-7uG1^1Rbsv? zH(#ctj9M?d1J%oDQc9%UG2A^j_l=dn5~azvuVL(!Z<~({syq4MEV!@U;#Nh%;&oFI zMse9xKFiFjCuZi>D(`a<1OLa|X(!JUqnA9^pXNqW_k4%K*tT_-kr6p(*tKixIpEQ& z{`9lEw!b2_p;JW{O~zK&Uy5xMyj=ydPaWE|81*z?)SyVXo?hS}7Ky=(`BUGInAsF) zxl2)di$l6k1#rqTQDt#yP5VYU=t*h{*B0)%&6mp_l`jt>k;R=-pw1D;eCLzpZ+tYP zf9ti&WvbDP%Qs%TkS|-Z8`8vmIi8h!oi3A787;88)SWt2GgoyAmHVsMgW#-rxmK>S zg*#d{wHvnHu>j9yNpav={deiS=hqjstFQ##Hid3ZYtPDI_AJozFz5M0BO+-Ws^Mtn zj|q>73HS~~tD<5oISZEk{bdm3c@L*0H{l}8ZB-Y|lGA|k(oGdhghY4u<$86HsE z^lqw&|H!Uw=TCwj{3EVTplp0L;KNrSk6`4+y?V1`nNfi@^<&Frg;2R49`i7Ak{j^N?tFo|O{mKn8 zz~P3#;iVDu7P5XChrlEH8@vUGnQBk*L!u@?qT?XgEM(QIWs@?Y;vBPqDe{mgk_xzg zh!opN@PAP+D1=+#%pY)5k)EneMI87k!EsyIOEjYy0oO$|BdzOrz*k(SC8H>9R#f@w z^&`ksUHL;#Gq7TO(7Y^hvp4J(ZL~%Sz-AbL8beUIQS9*|r2fzq)EEe~VT6jE3P3hG zq*+aP{kBYFfQ+G8{4BwLimNQ6xvReYnPrDeGf_wZfmVJO8Oo+mmJG7kyc@V_({5aD z9RtPgsDdz>tyW1=&9tk?kj<^%OF@Pj4X^c6nrgDsoZm{&g+jkcC|mu><1e-1CRzDg zt;EC5eoC-T@BUi2!a991hr{)f{%n7f9rq}g?n&HaZLes1ZOYO^+SB)b?X77o!`e#C z@Ev9Px97_Hry%K7FV?Fb?&sFMwXT2+)%0P)P~ZJYk2NP7BWqiCt!J+zs`G^744U#2 z<$j61DF{hCD1Ot(-H(=ry1O}}_R$lZSQgsIefcA|%6MQYzXqfYz_di^`S)U<`?xlf zV?IOHuwMvkNPgJ3e%QGI`6=rN|M)4h>&HArw=L6mUep9yAFS;OuRr!}0mdn*&&K@2 z$|9I)&+|;~^^?F_!F0Wu+i}*V?amFXxHM-pg57STvu%Zy(}2Q4w8%M_LU_=iXRRP@ zCZ@um&?j{|BWX>J4kWT-BNnKZRnI1ceH8E5{0{g6gAg6idC<}jKxg=3zFjuyymMjG zFD%uQfALxh9XD3-wH4oLCB7taJCx=_)mNT}l?z8$8G19LI>8Z~A7MV<;Xc?qQcufi z%{vtR$c+zfI8nZuiu6hWNEve3jC9hEeeDrJFgSMFIqG4ppzBIPN1U_Y11Ll!WRAtY zc3D$?qt6Vfb%8?Jc?~FR*xd&?Ew94%pFLp(0C8u0b}3`nPL8h%yD`a=TPdm#$gIG*D^-D3&NhTm?!ll@3KK=KU5p?gnrN}U>Wd2X`Nq{iNnOd1$Zc*btuqeKs zB{p7gxI`9xuimUiWivqHU-HSpvbgdKwbJ)14pNNuKj_n{JNL(t=VLRQWnTJZy*yFx zskcIyuUDY_8@Q#fZ{_dwW;9G&@T(jQaN(r*LR~O8UL)s3^<`Y)e}%GBb$O#RzsT5% zW8FA)AN8J>>n-nd=L?n^wXN%FiS+2 z^n?0Bg8U2p856Q$^Eenon+{u=Ig+-LR`exZ~ON zLSgF#Cm}6{0JZPIoFpRl1~xAoyk7#WwqR#x`qzk zam>)lG{lk<^sx0F&EA!h9OtHOtUM%?ej5FZdsCHe=5bjE&{U4kp1N^bORMntU@2h0 zFtJP{SNH`VM2b#TJaojl{#k^v=3L!nj5{k;P}L*?>G*aPjrd4c!) zMm==9m4A_us#ur<1C$yf)*Jnwv9Z{Uc-lasI-Htcmsh`e?EnFxLRmP?xSp zALE24op56B9`Ab?8a|F;Z2AB93j9`~>_-iI@a0%Y#uyK}*}w~w4`>I@<06s8;?T9| zEI40#rX(}O*sjqUF>v?oz1`mnaK4U%KMQc*l}HGX@%LwZ!&c33=G>>-m4{lA%Kp4^ zfgF>vxhVnp)!Spbt?M!S$G%h)EicCvyT?5_u7PwifS$CY?yr&Cq@FM7=GYaVEPQi*=W0#!^VzEAVRu)k9^TB=7pr$E`U&l=* z-(gS3cp7u~yVUTr8~7@ePAE{^@Lf1d!0aF6E(WOL+ug=rori6fzET~H1=eY0pZCb^ zVTDfj)e+_|yKWdWZ4T0(!tcN0hQ*fZ6;1l>1G|6uIxTxR4n{|Fm+8kD@5e_Ww>S z_VD|h1OIPgu`X(l2P{8ST>|zJ|En_!CEYOZ79RWepc}VD=={@^3q>p1!o3b(^06zCB9g z8e3z6Z%#k|J`v~wcBQQls=9cI3%-V{vYF!{YpnwX`L~glpolKwvE=UzQ7p2dl zB`w9V3OME2G7#2S^^I2brrgEte+M8RhS9|;IIJm&QagQY5N`+{W#PX2dra?n-2>UTfX@k9>s60wF6456#^2fWhNf9TmWhfz*L zmIW(AS3_vrA!|VQbP8l*jUyOCSCi!wLunMLxWy@cMkyr&{LY77;ZpmINu=6N_vhY= zsR&8|>9SPR{<6_N9!cm3((>`W^fBwMes7V!TB{MJH8W%SEnx*sK9E3J5Xd6?!D1;i z&MCNlICRV|6(Bz=o5iIwTFp&-i5C#zeZe!q@sh9S%E>ccdS$QQ=MBhC1!fjPghGg+ z6pohG0+g8=FyrA2o%sR`Yw8Sj?&FLlvld*#hUqLRN;JO5OPet0sub#3WWL!^Mch?n zv_aKCw3rY)AdQa!tp2DT9qWb!9fHDm2cJDl`V_<53ShTAuaCQ^yn_-<$V26P@6 zt_ywZYgs8N2WwupcZ3y|Mo8OY>_#z@>|vqV!!p+7n55G4RiHK1u7nM6<=;J35-D5G zHP!ud_ryfzy@3dYK}=GBWA2ep2}t{#=q9{XToY+jKX0m7_xfj;@SjE3A3rHp_rG=A zIQH}ZF9C#DpMKF#vEkT|&XOfUbg3#CZu#(GNJDS4!l)iega~ab==xHt0yd-Pgm+Fe z$9)g=|5^+>4&HpDQ>Dy&zAyjSRb5}URm#OXs$2LLbfnWW2mOEpl24V7Jhv}%)z-tH z=EkK(6_GWNd_r*NqNJ1dIUAIJq_`bytenH3nd)_hxf$t(pW)D}sP#SUTfAbwH63%* zr#)`@OGANWZ;|h8r#LqM1QNN57RS)%gyfl@O0(5}R7`#N!0rU-0OC|06ba!uBxr5U zI3uo4_8r*UIX#qplK*&6b=Qtrsib)G%&3wIXYRg+D6HN(c}!io2>C-v*y7L9>zoZO z``MUuDOvaWL!0x!6{4&OrQ{ClVxd+0CG@^(`iLC*QNmU3U?Y&q^`0>s8#70#G4%qw(|f(dy#L(da$%bVvMOz z&ex5NkOFTzsgY{tGw26|)$Vdc0dO#QZ~L#FzHdU|lVOICJ^Mo4G<@T&GgD!mTS5Z^ z_s?f+MV8G3b)$-;BMl;4nlqx`1AY+D9W zVZ{Cg|6dh$-=^l|HDOJ{Ac91se@@~T)gcnvp^3YT{d?MKl+lQYvj?akj(qG`9;n4? zuiH{+_BwNI(5|i7o-uvi;d?gy*$%jd^Ym+P(5oy1`u;ySF0+D3{D>=$P7f0@;L_P|DQvR(Oek7nxL$%+ zs+os6nNBvNlzaO9Fi@DTPA(w;9v?{2=VW=MifWq#eDoBkf9j)=x~a>lUZbqb$-T5cO|hn7SX#s z99OvO0YYX|-N;npZF>(HZ}-rP7B#b;}x8aei! z6*SA_7;nU`UR~`C14=Ja1ui`ax?Z#i(Sr#9|Rk2L`H!aFf;!7ZA#)LZXxC=uFyWwGB zef-*m)=5BaX=7zi(qA#U!7BbVN(-ddTPY|HEC+=0!XB`FU8Qw1*27>Mi6AJn2>M@V zGMKR0Cx6iy4kl2;$pcpTZ?%cdXO+$5&ip{nSVd`5@7qSxm;0OE3;8d44;Mu5sR{cl zlj{u}k$i>!38eT?`@1mSc|DIjPAxGhOg zQUCJP&ZyaWYfKv6nvH-jT_;0^J8x9En+SXcAs2z8oEu0RO340fSquf*`CG7A#1}FBMs*FF`OFt*Qx72&;nYmY7~p*um%S<5 z(f{0*Vzl_hMM<*^M1w`=8lMwk1!B}`Q8*>lztgXOTe|Iy7hbO7;^m$*7eN{D-U=8( z{Td8u;QnBLVbuH9F;7R-nYbMyAdX@HbCAI2AIxIkT3hIWsmAXF9hJ-%L`BDZ`+)TC z&4%5FEC%;Lg`JkX{@@Sp@gJ7;=V(UuubX(Z-(ZF)i5L+4ADk8yb^p9sfa7PR$gw>6 zLXche>)%u|%DmCH(~OhTEYd~cr5$a-31gPw=D1}~ifR!MjA|l@=Ikpdl1Vy_Y7EC- z-AY|ZH~y2e=qLGnV6za1KB~Sih?y175hP=Q``g`&zlo`Dk(aP6yCqO3EdU2=O7dcC z0?&y7`Qq*Qhia8ilgp$7s{*GUcdVoqqENu7l&}f-7~D?u73C-FJmj&73QdTCuLyN8m?;G`t&g*@0xAvMpGfkVz2_nrR)SElVsNiraxW%tfu~4;_$++Xe_7Ud zE%@WJkeL|BNTwt(CZ?!h$bVDL?U{aMaMcd44cw4#?2%qbSeT^a|N5^@BpIT-gtI^% zBcIwZVN!*{5Sm=t&TJoHLDEcA1vnZNT|ou0v94$KiozV!<~lm)DiBd?PoXbRcKYKFi23S;AZbA{LE!j=wTs=j1e$9q>b1Ro zaBvGb{7&wV!V&X>-DeEW9EuZyz~@K1IPwKvQthu2)%aCcofpc@AbcrdRq_g=e@*{4 zE+OAjFci%k4$8MVaGi7=FZu2^?m)6!IKNy#s+i^6Z-+Gp=}gwVSe1z-iB@Awvn44i zbX>2cLzB}wv1LTCy z7rIrC+$iA0KxUGWefe zZ&wr-8yrD{<^7LOxBJ)SU?JaDcP(7)T^GhImn*Y9ovlGrR)4~kwSf;;8A^87{F1(& zMz)g$1&ntncARVm>fKucgRcb8ZX9=;c?lETE= zT&yk}=3mev5w#f(a0zgPcF?cwy6b_jYlNk!Oqi_GvE4FX#iSZ}OT*3VEQvp(CQov!Y`~Q83u0v=C_oqb)-PnE#(4y%7}PL6 zPK(lzcjvK3DCB}=c`FFgkYJ)BY$}B&vkk8XwIK{12?G~Z-NoVLO$c+1|MOdS1!5|q zDV37k8ORm7uST+h;zl@5sB*SJ$aHD3z2FEl z{mIRe|m$ z4aQq&J=3th7BNxjEgErLa}Bsq@E&h{!4EVzb&d_(Ou>05q>TD4wl;l#9sHJQM$y8j8}iNrrkFId%{X~DClkU7+=$}mb*ys)XXs|z z`DQYDoLQXbR!>4B_oSZep^cwk3>BA+1jrhN8rPm!y@X4px6XSs>NWqY3J}ksPvdQ> z%k_^}SM(qFdmE>BB7~-;yPU<*=umGU(!s~PjoR6)`!IdzrzZ^{zL?tfO{<)~VF-W4 z?_(i!qxJ=PQNH4`4EwMlRWy=DlWvkii5Gk5C7vWqzJv!S_HIZ&Sc-vm2~mH0OX@T& zkDc5ZelhKjyi5LVE(tau9!806Zd={0=s@2L=yB(=bAE2>@h~$@GzvCrePV>+8P@d+?iVJ9;xM2$@jRAT?q-;>$@4nnZ-0r3ZDuFJfXqT#ngDmy z(Aje{PB@I^Y42r8c!rv>DM!-B`@2pF!sUn6&-yS`KXK_Fp008_1aOSlxTc(n5Mg?_ za#1ys8onF{x!9*Ufepl=Bd+@Hb~>RnwfFiC3hiXtD)1CGe^B9PrfD!7U7c%r$cRom zoj)Iy(qzWR)*mY4a!tnF>X|?+*D1BlL$TYk{Pns*xbJ*I)09N07~0a-t10}L@KZtj zj5r8TR;`%4ba~v)YNos>h?rt*L(XTK&x;+qJe=@W-VY1%5joX$WFF6U zHdSJ>O4qy%3Ppkb5!v!+*Q1(@8yce)YevC=I$EEXoY_v zy)w>Eh#fS>HP|x54bRq3H7BT_-KFaEf9KM#nRV9l7r8TL68Mh?dyndm2fJYaUw%QU zFg~oXO$~KF{)hSUB{`p?DwU$K*vN9VTfiC@sm@1mzPk6niI$19@;aIo9OqZH_|8t3t|E^Nx0ZmQ|jEKZ{tN7Z%)0lIDrkvbBQyyk6d5m z9lV}5`7k0Uv&WvVH@cR{Zy&By-y1mz2!6X&_=dEHj}Q67r?)isgV?*Fka$u=eF6+d zazn@&7N3DDzuC`;4d2u8T+pU2C&zw0&;Jy#)x=7R96?KSkJ3Vp$4pmKN5`WsMEeVb zNB<^#np$m>tHoe~YMPbARsUC(76UaY{uAx~y8sCU#e(zgktL;&>)C%4dsKQ?Y`U;H zUFcYT;28R5*DOZHvkB35-%^60nw(ZYkF0U(F~GTXDI6V7_I|ktv%pc-p}1T+d;?09CN$#{3tWRgau)_H9S!bHBfqDNKc z#Z{V&r}=*k=5h4Ys96Ekv)zyhAoJy&L@H;lDv+S}WO)E;@7FdclcYGdw8uh=$^37N zrN_;K>bBBc+miRZqDn;^}1|Ph~t571DQH7K`T= zuAvnPJOkhI#$5I(>>UXEv$i4z!QZAs0gYMgOlAQ=?^_k`=N`sq50Fk84}EQY;~nTq zg)IKot1lKqV?56q%j)`GVAboC#d%{$0*d)q@7#AMnZy}9)OS4~&KIXu)ty@^k%FSO z6Fz18!E_`Bdz2#YNSp;Y*ES!<639%O&++uJELvPo0}`#X+VF-Yuwn)SkrAPjMUkrQ zhDEPiY-Ey*^ty2aVd_NDV^KK)UoXzcYNnqBfx{PH=*O%=PEa#x5jnvC3BY*MO}m|d zllD^l*K2cDGJ7z)an>GPJ#xGXiBKW1GW7egOm?*@9X1010?lQp0KR~CW7)NfMteIo z+jCQ{s7gpw{rIinQ$i|<=xlOTGMA)MdS@&1YOk2~Thll4;o-Jf-@{W9pY}{NV$d`>o-J%rj#ymRgEc{;Vu0rx5brw5AjySqCh7 z)0?qHC`OdksA)sA`_wL@1` zXWWY&qWPOYx!{P-QLDfuDOkea&GM=?>YcvRpB{XTXr{Sttq!ANxhZPS#`)Oo-e{J`3kKvQ{H#)YPh`DfDe} zpI=eF_m7S()f)(u8MOFvy7uFdrIhPr%N64@K)(gP(eEa|W-f)O#}C>wI~Scx&bf6v@LYM+<9bDYf))Pmv6Ii|V6NgbfH5zv&lB%)$ zOL6sbH%mmN0@({#Mo2KX6;nmV}3Z_MLmDBw=63 znXqtCVo*JcD{a5KIU&4hT_aHVCmNlR4udP*+?t5l@;3b6@3)#{`Z;oU%8N=H1$5f z;8ZOCqxVda$|u*Cs;v7;F-!@k8mXq75;u#YpGyv_<1zR9KN|nJL46z{H&}xmXhV@r z;;6+W4^Uh)<&y`n>PKh9U&Nm|6;q<8RYR0-siKN~JXa>#g-~Uq9dRrTQ>S&`aVT{< zZn`?LnLi+sM{tvC`8j)ZkU?$bwktjHXMZlg#S(a+D^=iiY9D)iMDVuO$C+oWYx*YO zb~n3RTbYmiA)zZ7vq*8Sht#nUHiCJTIE%+jiIV zKczIbaXU0<+zitBR{k% z6Vul-kt1V9=J0{r?G8FU-h+^?<_RCPLjIih2B=bY^`=8nyb)@&OC%f&ANQvn%8LRZ zFeZ3DoE?(aop%5t)oeP;+=CaoI&OGz;xe$=7w=FNr5{|m8u-Z!z zZ}p<=6t9tg3{)~EUJSams$oV-2o!!AF@39y46`hLxjL{$HGGIk;k7Ei$+J>oc#C%n zG`{#SnelRj?h`f1FY>l^@BVZ2ei(?W+i}nGiiW2v)n`%6_!(%{OTgMns>M*>^3t0@ z+GcF@et>-=hBMrK@PSkPm{bB;la1{84RamyA&; z+r&?To_hQG+X*x|H70-ur4JpA95G(|S?)sNIZE0)W~1z1+>~A~%P)y_2DpCEW!xOB z$eLui)4bWx>)zyL$D`8_2Yga^6(5{a;0Jnb56(^2c=)Q*;ngg%tCr`4{~Wf5d#Jkn zB5q%~jT{Z+jC42SMso%Vcu- z_fYf)>o2YJD=-G2k~1(WZ}_jZNQue%>*(!JEZ{O=S8CpP+m&ymbev=*_zmV;a1B8O(Y3BL(OEF)O8%IdRAO@e-k79fl4zi-PmVcL{kmkE z+;Xu_24|L2hZ4mHon^8+RnuE0)=OGiGE_Og47-cEIF>ydee6*9vO|&q+#v5~iZb5m zjF0k$3g{w0x$Wa;1gcYq!?{}hY0{wVYxH*kB1^jp5)9m!pjR6T+}Hc>HSWrZ#GpQ5 ziV!5X?G;}8OKeQkx~M3^M|S3%)9@mIzSTJ;VPvam?wzGT94U2}JW8c#q*1SySp;!hlK!$Yc z+amH87CmUis$myZ%-;%{ihGGuhTVKS_1`_Qg%Ab#sgPcCUBJ{?_B=es^Su=;_*Iqd;Bt**r#m zt0lr={FFVCYuc6Jy$)01NT^BY*X6@|Stc8hOfMvTQOvCL>8olh~n4f=g zdEA(Z>v(oRVCdoZAj7y&#QhiNF85F%WmZ#tp-n;dyV6acGo~ExzRGIF!c9pffpOs~ zNpX;lg#%KAOOWP8=RI0K!&R3*j zBQr>TfZbk$ad5XFjPnVOVwkI@rYko$YM+HPW?XMkBIsbWTA2odUL+anV{mq^S(mGf zV&hf%lt-+5(6O-IV^K|rK?w%pl)NMZ#cc1C{FLIh{HD`s9rc!S4^niezXrw;fq*Bk z&}RR*nlAB;^v}dqX6GvKhT4LX zA~J+9x!*Pu!Uq|bCJw(%e%vdmv-XrutKi7729YGAYmrw5iT{tTZw{}ddAFU|=ESxq zwkNhRv8~C(ww;M>+qRvFZB6Xt?#z7O@0@e*x&P#?+E1R|-L<>Ay4JhadQDAU__6P+ zDR_R>4bK{N^R-{FHKdzu1=_V<845ymJR#4Rwmh{4GG${QYq!0fot{3PEJ7S=>kikX zAQ=@U9BOAdS8uHMFP%|5N+1x|2?&DFzVQ3AhH!p|;mdbFQP{eL*!ON!p#qc!N?iE% zSp>?wG8(q1eYx%Kxbd^9+fG=w>29QGrR|BMyM)oHD`!Y76Fh)Gd-~n8G+-&^dhctV zQGjYEtu$)zNv4-2Qv}IbE8TC=lTq&SF`t=o;Y2LI>nd{yEYh2v<(cz{=v0=hfawaJ zeDlYHo4bPzV;dFRwQQq`d{5!zqQ z&qMT{;*&+u7b#bk^@GC7Er0$#SDFPvXu?3u8US7NCh!(yU!rYec1^-Cq>!rPB_?3Ar$_ z^L>`4fAz#GTX~aMTYEESO3tfAaA3kcAU8vQIud8V6*c2t$uIrULcZ28Nxdj~Q=@m0 zz$Z4C5JRV(7iQHsq+uSISe^A$f)|;XTI-fob2e(tiB@HktCl;w_^vE%r7RMkpinb` z86dZ_Ug1W3?qM+@HLI!2k&BrNsB5pPeAybWSj(25CpQ8gpHt+ckcCPCCUMlJz`Aji zzPNg%4ZWyu*)sdw%3bv9)FaGeJ&8?t#f7#j6V;`~kK2h~FoQ@orf_Js;=s&^49w-! zD>xK7uS9Ll)MhgM>r!Xu*LWW85lj}$F41_x5k#XyEEQ+Cdinc%*v@Y@xvY1uZxNq2 zv_T6Hfqg={gmsA+kdhO8h93meXWNB}iJj9k4=x`n>rQ>ceQAN6z6&j!Y+Ellu^F84 z8Z#O-hb7O0zAE(5=%X_}V;UqbgsYR5Li>*zu)f6l%YI+5VHi#9(%7SOgr)VD9i*sF?t{qaEjVBR6;k~3mD$A21;j@haI<}N z2SE0yvl*>J^0e|i{x~9$L|^d@B5P7OB|Z zlAOkwyh0ld&ae5^!yYGb4QWY{dwYj83~6i7uQN~f`4CX-u^h5mAvw%R1mOvTqJ@UC zg_`##Wc5;$fqCTO^|2f=gPn*b zqkEQ{{-r#%Db2QHEAL1kXS$asu{BuKN?yj_RG66v3*WAt#>Qe`%X3)UFwJO)-4KTf z{&P_F!f|9~O$w_#wqr7hbW9$Ctbz>5h+lM`m;wnUxWdJ_VgYP1PxR9W0^cbMkeAqF zD-qDq(vmZumuCh~=Ub9F9nev+8?vZUJ1CB}EFC(1a6sI$J5PS6XQp0?bZ$QS{)jfN zCxaM7+=+8$?bd1Yj#);8{za}^>6~U$8idgOdC=C#PnX*1!fIiMT=r}__+aG)x{QKG zo3|ICQ<2LAws1b_HX1Qmigqdb?|!J^Y80>qM^!_S-=e=g_g*i+u*wj){4K zl>VK#YumahtiA)bjgvL{g547*jhi(SP4n~vn*?$)^#85GF1HM_f&TV(GynugME`;- z73lNqJsviqjo4sQx8Ozzq9~*E!jPk3{dTZeQ7F`%ze_tE!jj zw9n~6X7$LOWk&(Cm3LWz%xx0=-Tm5%{#Bvr!KCG3u!ju>zw&|lXgd?4mqc@rSMP$C z*(-e6dWFvQ!Z1-8EBGEj%FrC1pI^@}3u>A7$1|4SJ2@}$_~tHq&wq8gw~+b0oYZA_ z*!E+G4e{T0*!_SV_BZ!Bb~BSp-n8p9W| z5fR2CJCc%;dh*=e^K$71iPGcGph+fG0p<^-Czy;#=Kpx;ukQSr;e465os?m4vG=z& z>k6l7WrsVAPEXQrqfz(bI$!!N$p_>PfBLA2r2BP>;$?Q^kRBDlCeiXIDs4hVlDBd8kRGArWJ1yDmUbpe%VG(b=tmdJO5NeyO+%I$7CQ4<*^tAZ|TfGG_`EMovz zD3^9oRXr6|X)KmVnDyVa{l53%4;_*7MkTPq7W=Fs0LVNm06HE@1ZYkWvOneA4 z)$j&I^iRzY>$9=u-@7rXhM;R2!pq_n-~iuFKn>{e64lhS7}iVG8?|&&7VF!hDFi63 zkSSZsr9c-8mPAwKg?7&?7u!=hmRjeVhn6-y;%kAat_&!X(lkL=_?B)`H9aMt=amdA zi~2J~pck_4PG=(UOiw=5mJe>p|3JlSzokHd#tZnWc{cqQ22rSSTVIWn+{jaVqrHcn z-ZseNd%llvHLg>te~sF??&b`zSIChA3lPkXpt@PEKMRYbSu*I*4|*(l-RnH1oBZr- zRUoIuluwbL%o;Ti#>b%DJ@j6<|uMd^*`fTMGS} zuuyOVsf?F`VW8w=o}Ny%m>$SF;_j`G{H@|P6DM&$|EdD z3jC3vD>ixFFMrXJ17Xu+&{2+hrOW+zoAS*t;x)N9jlEV?R7armllaPDE?YyL5igiM zp+`B-*7%E0!PV}6j*$Igu;fhhXMtLoOJL|f*SR^pi+lh5B7JcO+=A7IKlnOQKYI00 zSqxJUgc1CMQVvQ9IDu9u{|nro7C)(6$haj!fe-}lq2Lvo6s>h^_R7? z8iV5oHVsZs)`i?Ev|mq_)t90LVDJC|JvmHNK#WNk`L zA&L#DpsAf=KP=zMJ8v;7QM>jzgSoLmfOVa5-r(U!m;$-c5zt9f{KUh*VLWBit{LQJ zdQ~;fj;WKtl^e~q>nR13CqI%#mAo}VF=Aw3zbHcplRIvOpP3Zj)aF^&lfIY+Q*a;n$o%^}ar1%ZJ)dJNPEmBtZ1h-v4c1DWS+7OX{cSf6*Gzp28aN-Ls2{T=673zkJ zVUEdt740|wzsj)ju=>u7fzv>%#~p6-jS5i8HUv)<655>+@oLXNO=+2${~gcBZ(5!2 z2Ip=JFky4QJG~u!>&)mpN;j$~RL+N4FsbdWN|>E^lb6*ir9I#bIQ#ulQCa2sb;NRu zVX3ZH%c3%#DbY@^*%8%ZNN<3&*r>od-5*eEvX^tL-GGjE)?d6tYk>8H;VU&E4wyP_ zFy*2kRqG%p)CKMRIeckgChz-HUSH90H=4G6yWV)P_dyoqbX#2tlp8#j z>Lui*sRNJ*o8~H1OX~GQ*$Pm_>m=XcDFcFYV&j_cX;(EHSD8-%&Js=#V+&Xe`m30f zhdt<;t%f7l7Z?!Xf{E{|?212BkL@;V$y5=}Ef6s+Y30P(l+rja7>rdqsr9jQi0u-z#YJ3Q z*m_F!WQ17^W1D3t>}9)nyU7W(2__TFt%J^2rYKL*LCl$iC6)km*@W?p%;p8JkKd#) z-q|}BxAp2(>rNL;{g$cczTwWJ-}pkGa~AYbh+<<&?(`?mZCe3ZRkqpF(k4jQn!)MO z*<#VPGo?-UQ_eW$s{*V_@9MwoE!~Hqceum#jV8*MEy2S?`7#mdi~7um$IX55#rrL5zOk_UH_iSfR=2mHD3bJcktQ4lEgGRF0A06 zIpt&M>x=nIH5KP%3W@$?=ySpBGd{}PzflZ;@djr^vqOo+U-@Cii9R3og%VJpd+*4L znHd)I@>4Vu@ADQawEPmVPHjoOMVl$Z6=CaVJ1Z6jU-l;o;YL}yFUZ*yJ<%sTvXZn` z;0vC;lqgd2A71I4_+p@L7Wo7b6 z9wm*mcT1?ok|sUNz8TsqFW6`|Wf>*Ty*|zC7uU4MF27`=#m$N0n5ziOT6w{B!d;k# zMcvlSPR8#MHXVmTSLQ3gv3mv#yp)* zs~MxK-ggcO?E;Z@nkaPau9f}E`^R)70Ov<@s?3jhwohydmKkK6{|g{kR5XZA^UlVu zz6srPt2sd;=M%_di1#&thwu|cLy`c8@aG6kE}q#Yhgz~o)wezl7==f?oGg*n$oglS zmc&7#2!GP!$3z782h!vJHH|9GB9^%!M>{Y6B&H zgN`h2W@Ter76k*%vt^I=I{+olHqfS@EQo8mA9qxHVR-u9X)Ac7K)z)N3zGJUybH<} zIPFv6z$S^-X&9Gf4IC{`l@4gOV^J6+lmAvC>%YTzco(B~SxHv}^_)di6n0k~pF@Uq=i{M^57w)KL3e5ne#vyZC-j605zMbV3W_%8{e> zp*3`Q`(_bPKtlWaM#>1#dwKAfOntk&wow9hLgtIrg@k+n^7O{vgm~cSp{z0<@O+Da z&XT$M3Kjn9&9{m00P^O|H^>FDUlCx6b?$=j;FSwo6bCsI2m-jf{@!GAVFTU+vzras zP03QCMsQ*;X4|pdvW=L;DdXYNLHL0(_U+uMGTZBHvwD}ahbymwPzi$R{;_Dkh+*Y` z<3Ew|L& z3qte+C5WgL_wIJ&iW5*m94{(v;Nn?W@*#>|#47kCoFn55nk|IEl>MO76$TKclhMv|M{g^&9-R_1$orL9@hV5Z z)6ynA;Sq#GWQNs-s*lGT=lSX(T&!%pMbX`zv3J9VU@n7K_*iUWHSxYo-61VtzOaVA zh_7Pnz^;Pva9?orN)_bKCw8_{_tgg=G^qJw%W|4Anp4n#hjr^$VFCiK^v`Y}Q2!Na zPD+9a+g7N*PfJ8l$F{~)_hu01*oZp~`_JX^S{-jFh~^yrMJj3fBA)*~%MQ1M1ab z=~9jtOe>(c?;&W3!q0T?KCK;CvUi>qy0C_}N1c}|*klu8!LGI92T~U2^B@y0mXZlPG;ka!$9!`*4k9+&gQ=m z*W=c(OVbqP(9U)0#qBvpZFYdm_Hu9XW1uM^%BVhNFFQ1`Xaehk0v`e=>-M8dP(7K!mI6xZWQ7*h=@-WBsWar7wjTQE_`zan%kq;&Uu?iY1Ib zyVF-0+UNtBgVN86z3dU!C;jweZVe9ysWxs$Nj?31v;BOYX_G-TZwZcqD zz*FbNhMQZbHp>c`_xrQ<&9%u2H9HUBxn~aeohJ}zKoz7-fjVELQ7)h2!i?C8{v>od zSKHLm6bksYhzn!mmubA*`Qr4-HGSvXRMlMo;S_Hj!r6woj$B22z+LJ*uN@`& zf3JSN_(cmG2q6SYxT^W?_93oGW4_~~JY76S&|G`+g~enb>s6VuyrmH`xJsSY^TF&E z!Ppfko6EY^$^U|d)J;ykv-9GYec`44(&2ll_d?9nK{8;=3BkJuhoob7QZyzU6f7HF zB|`~z5hAZr5*R_hT8dn9{8`6*0zHX*DgW|ajp;2+$Mdy9ey5e3l3Q``L7vqv>ldPH zJa~s49C(;|UN6aa+7SHaQyD3u1RIbZ(=?Kf1SRma0iqbDErA?E#8woRaCi`&S&VR~ z?+0C|>TDnBez|Z!x?f|7v~@pdQ8A<@yUr(++lg`p#~>eJUXhwv{>^F;ZeLql1iP=0 z<|hViN-R4*P3Ed|%a&y3MO`xGt5ZY$<1oT`l<(*eePUhB80a~!4a2>LGORNrrfiLa zN&P%d@;EKMV)KKEo!rrTV#=GkkoMi8*8Q@$iQR4F`$|#6`AN3gseDx7(dp{r<#=im z&)w1NHnd@o{y1VX>qMQd-)w+%(B~0$Nk#IeM*5|tKQu5=Ob`N zkLm~VJD9{+gUUz+dLCp*<%Gfeno8zZXl{+t?GWBQ8@N;{eNe;-mGO9x3O0Erd^%6? z#(pkaGu^tP$u3(=5>ihVf?_TrxNRMP=#*W7hb%Pzbw4_0F54y3-SsG8jch?l6jDN5 zS#)(Zz;6YYYuY?%b-QuZur=;Xd~HFIyX@AH-s#E7`A89syn}>067|ExzT8*=k#?^k zS9s6O@<3h1-6GB%D=963cv1g{*?v;E1}b%8r{-)Hx9pB>?1udL-MA_IQlrwHFLt|K zDcq9KUG%H!(#EpWb`)RuGawc1bP+m#G*HMyqmn`3!+LHY?^;!SQy9TrWwp`GV6B=V z)zlDD$$LBj)O=M$5_^>J6>a|et#r$YMmcXKExP0qQ*vqN`&Gy2$;QM)MyIDXU%$;c zjQbD76S`Xy-xHAi9EDWbdV*rkRHfS5a%=OVpgU9FlUbA8?xUm8RKiI8fS=rwYa(w^ zOGZDiMEuE^f?v7{#ZOlv;lLSdZ`G!jckH{ev%Czx=hS;(u2@1bJTV;ha{DfYxIl<1 z;!&mo$fuZrbq2G@zGi@ef7I21H{*tKK?TGUwQ$#iQCj32F}%vGG>PcJ?xJC=QplO2 zj0wKA3<_fimN=IT$a<(u2FP1sQxDa$@JW0MzeKMOxUT`0!iddERT;+mG%-AbY=bqn zv&YL*OY`}&T8C*Sg*xbr6UNS(X#=5RNhvY9@i1o6gVvmOK$J!9{Bx@u=(ohiuT|6M zz7QzvR%b6_y%c1&i2R2yroM$>*)guh|Cq8lFJ~9M-I^F0iT1V;WWh!g0M)7S1$2*HPqz@SUUs1DZdq5GDEx zA31+9XU;LCFyyZ_ljR$&7UH&U$wEDE#uNxm8a)67#%plq<;9CiGvt5^NpRsQwER5$ zU5+2^Z6<_VV94Ks#;cW*?{taJoK|Puv!iPu?inc~C&?v{Vm@QYnvLQwGga;A>zTTi zJOx;^MTwo6T}3c-HCBJ%wN6RJ$J1MEptEgg^7%Wu^&)ts+Ll^n}JglV04vLFm6)(q^1 zesSFRBc3RZS49!s$@lSw>h$YD_E#MJV!?f;nCR?md8RNw%?#o3~t5N-7MUgwujgEqjo5+AoB-c zIWQ%l`R@YrSTIGvCEiq7&_(*a7p>TyFha?w{Y+&ki2Y7Nnx5E1P3o&%EoYjZ8$41Y zbk?dJ?p1fSdyOn*JZgOgUtlz5JPftbi3-sgpTdq&UP{t9QNj%zn1YWI!R@|p zl}7;y8>pBSda*wg?*G0bb13{-kwr@We=G8*;#8vfPsRMl)s=!&c?1&bL`^LIY_*WZ zR7B!Ufek`o(a6NB0z@;ABjrYOtnHA+h!RE1fDfHFhceI!6X-oTTf^M%dVZ0`$QtTM zwoi-R>|qdGoG=;SZjjw7-NKoiC)*TunFF`TARC<#=w3>@$vFD3W{VL`3g5LCf67`| zHtnGOq-{elGe~`@Rh|E={j1!olA7Mp;i{sAXuM|n>M~eMwKz}vvT|Z{Ibrm&OwYiV zVX@8JEMGqmrn$l6^TgXsd$H}-lb;zkT}VK;vK^-XI*HWPYUi7E3JDmnD({-rHANjU zk6uFgd6HiIh>4sOwUEo+7XZ*!w0l?pAc_>F(bh69N?S;|8P#l`B}SW$&db^^80se znb&*C^c?oFeYMlpPmvEbi?agkx;BhyS{&&Xd^^ZVp*KI-PUpj9(Nerztt&Q*RtecgfUHcVk@J z5C!BR0W>L})~29?_M9qX4Gs0{XUnIntpFCLpi$04Cc0q%(M_f%SUSJa&6)w|XtXU4 zNt))@p!3JbCXiq;Az^LQ7*b#&-(UiwU`Rmt&cZL;fJH#W!XaXg0EgzR-8^b&YY(ug z=lyAz+rI9QFBiEa0trRQOaKZABp@QM>soFI}S2ID>vdaryJ zCIfglkU`h4OW3ct-uzg5lG-HE1^&MOU^e^&at74!a#YQ3g~uJ5E1b0t-p~9wHqA>v z(#&^tCh5{Wwqf@a())g9gR+B6cz@Z11q3Y3?_F~D=_8e_25=FoECPgc(oQjgqPC~5 zpP+pNvk)mjp>fY#LEOqeFH$HT=XlVN7JUx-iv{_3EGrc_nmGA{4d>lNHqyH_IGH#B z`Dql$aEeRLF?EaEBBz0pcZ&};wsd(;`(b6n=X^!<=_bqq)WUQ1#>+bRK|at?QRa9| zSJEyBi6*G+k4Op)V+Zng)PV#C*`8*zyyeINLuD4Z(*G|4nH9OpHmRIxR{QuvuA1fS zMj z1!?8Tq4GG){{_DIvxv*U%zJo?fB_c^iUIsD@a5wX`Tc=BEt34F1>wC8!dW(AQ5pPU+i z#+^xw{j&7MMecD{{0dWv=ReTbSFL}bFVCRROgd;W>_FVE|6DwA*@KxkZ_&*Wkq3?^ z!@~!}`3LF5c`o5|qyOOIT=PV{D=K!49zbCj6EGP6L5Fv;0NZd4lUi=UIwmCTs2i*R0dz&WU)<5~V#HS?~ zUp)TPU(^l&-esakyoMKcTM5}Q{tO?%ihh{wBlXL)W@KenoOXQBI|N-Etvw<+_xOT~ z&KJ?KMjtOnH78Ed`~vb9d;?%``MEzyEKGku<_l;mMd>3S`?zM|6+r+(q_g#@F<>V~*Y`Lh$v`CBTFP_w|Xi-7SQAd8uMPBlU72!|sowB(q!CG2tK-%=M2>O{(;Ixg8G-Mg|zW70ZcMfB0F8 z_y&Z~3nnT5HFgVQ`W$3eR)kg^W_A)3FLKT|tcPgyoJg75xDq>2a+ z&HPfs-5!sQFEg{H%>lulFxfr=%OqcQA0YkMTO9RzB)a=ris6>5{SBV%y7%kP`B0|X zDN)qP122v1*`ptKNeS`G(A87cG<7UO2fkPr0;c!XtM3UN5K)Pp>}cl~48`-W=?O|XcI=<%;Ht$4kwqhViO+Y;p9KIu`mYQ7srC9 za(%)Dk)Gto_V!<39ZGMh_>6`G_heM)XB1qBrb7-Ka9unx&2=e zMdRYOVVvHP5H`Nz8}p{Kw9+E2k7F_S%P)87z1L#mNRBf)4KB}tEZYN@gDh7F8WCq% zy^1eBNhP|g*H-jzJEH+`y$g$2=@-X(b)1PfgUjjdJZO{X6GagYJBT370qqmXKinP7 zo~w9UX4@9WqZEKBY|%Kd~Xr2m98~jG`_>9#-f^?|GVU((0pkld-J?!gh>r`3{{2d+Z5lMJW*$q)Aj5A># za!*;Ei9?g>>&?Q276wlWC)9#;ViFwRMn~$R;@6f^nu~V4$MYVDBLUaw4x_vcJP0iI zA7kv%fglh(bRXr8pmCMn9ugrm#LdTvZ@aH4@Or?jfGlkdSsyOJEPp3k>4tNLnhmck zeZiOx1L?jFi$x)e@`P7OJe0EmTQX27>p?lYc0pz@+i$yw=d1p)6&KH zd)fINrwM@_ihld0o{M_+$5j-?GhxQ*?OP^3Bh-6QeimvkiTkA5Fy_2+-0uXwj-UP* z66*a4E@^SUZML(yD09{kE)jbnf1|uOGWSCA>7l>L?{q;1>Vd)%6M!T64KjyUy*`;b zmflVuM+%7P6fU&<38^L=cP4gRPt7?qc! zVui`bVn!N)^q6IkHzcS)WDH`&e*PwqX9{jM(sM)%VOVoUpwzbU>LWFcjx`d;-wb#x z-YXVfl3V5%$!I|}`$iS0jeB~=a`{VD#Y&`Yqc!WWc9H)1-Sw@&IdN~^!l;Hf6*sUv z5sl~hD-S^#YuZV0Rqu5xFVZn?v2~d`X%j0Q5<8j(*6tzR+85otxhWEr|DaYFG+7=ydn6Se%E(W(+T8XTTEUkyY$TDOYBJC7Bc&ilFuk_%m`5mQyYt@r;|S2(Ms*a*0(#i zzcg@lXU;`nOk2{|eaE;_=EgJXwQCdMyCJz6#1Pm&kYD=AY!9(4`K2>&mceObqct{= zI8?P`o{Rqer0@2}q8H=jEPL8+*xSfe_oFU5OeT4!VJ3vxab^>G_Wd}1{F|x`Ytyf1 z!#OU}jx!$Yh?$3b_6HXRj+oW@q>}sbNr0R8UjOVj&IiPM&){B!rN;K!lO^QeoOp-1`s0PT{mCp$UT^lcU^K`LU+7~^y5ByTewfXK`p7jz3d8jAqmah5Q{A3+K zN4IVMA#XrL$J9DB|`Yo(}jf(A(2qUq~wp;%vgQDc}i-7mEc&+g9B(|t}##E$eD&R-Rfu|8V8Gx!Do zEyTXH?5U)J7#+Zr9})cEh49KpsQTMVmKh3b2+$Tv0vu~=iG&r5(T=1yDiTom5nQ9#6taj=!1NgG?7P%HO36s<3pcgQYd$MA;Ps*p*LNvj3V()m z{63eKNRTS0?`q*Uo0oG3Uz5f>RCZ_oG5T(}iPc|;0&I~G(?L87xaD8L( z*2j_3w5e(2?bf$aQ+{e~&(K48Dmi@wMm|7((-^j|@@r^Ac%)|YNqGpDPP+Oz3z&ZrQx z*Rh!$`1D;ScfY%|fAqfd?p0i>J;`rx?s}rX-X|rsc^DpH% z3x4MUkUSr5b`9^|+a)*J4LwVm8crUhRc-jmjR-m&xLdfk8efdoIet!jSuV_}JbAQ1 zB0jMuSxI1KZHYPMUcGXt03)|?9g0S=j+hHKTl_69jg7^qRB^A(khdS4eNv(ReG^G& z+g-1z7jj2QO;4$oI1peC|7PR_4ohhVFo(Z5qpL}ZALC@XIX!L7jBs8Q?{ z*Fn01lr&~Pqt0&HqxdN>JZ86O0G)HZXb?DiN#aoWh^hP~y)p$*MGA=y0v4lRJ}Si4 z%!{YMJO>M<*vu@S5~Kvi_Xq z#_nJLdaqL4IK==Lcn*-5Pfk8wDh|ZzFB!-b*+TSCSzwS`cS;?42J<-QxQUp>B!L|n z9?AAMcxMn0%|Jo5chb@OUO8;eAkc$hTU<9ZeD>7@e9qf_JuTRrFbF7BS!?dz}ltTafwAt54T?f`3)5TojN zJ)8ifTnTK8Vtn+dxW44%rmPvDC3&9M#9{J;KX~BhG;ok-sKW!c)B7-J=st>zwsUj@GkN1cg1yxW6JX%SDKul@_%W^hCnAXUa6vH5w07I^xn8FbZJ@G=sc zq`hW25YNS5Z^QPy^_aST2Ij~T%oq8rj;9>Ia%u^2Mh&ejm>_2~s$_Oo!_J}v_0c0$ zS~5~b=c-eD{iM?Jl6k6{fZrKJl`T-u8;pZ7-9d~SXgD#({T zfealWxKbe3&kzF-U`fkSph5?DE@{XxEwKyU^J%|B^`|jVz%H};Vd?AsCG!F}y*GF3 zb``}&sZzgmKIF^a`>K2ES3Q@J@=IO{e=5+gOZBF~Z?s``J{8O7AM+B+QN=^&PtZed zWdyWbLpkTMl_>#ymVR`#dt;u3L^INht)6_Q^Yaes110*URqXmAu2oJo|5568Buwb| z+t_`*i4eBSLJ36!6BGz_q*HHc!2bN}Pr5g|iq)XAU{cEvRoXV_%J2I9#L9~0%M#`y zXJ}E@Rvdp6t49=9}y`s-R72p9!{41`jUwc0&(Qb>O&{D2;cg}Dl3oaADL4b&Jw z-s-NZecDW|bBytu)E!EvVI*lRB&0X#Pv?WjKi}3mJ%$?>1o;Jke=O~F#C-nrlbf_LGCBY3!Y!qWVDHB5#vXa zv&2TN2SWwW{E_59QGxmsrTDPt*n2{&^he9o!l?iaqB2P8p3o>$WkS*8^(<);Mr>N@ zx*!j4_%8_7a*TgD|I|rpZ^(aH|F`nA{>3Njm*X7y|3&+s{zLnRD^<`#lhQ>~15@#t zAM~GZInj|=bYHcZ53<5_B#6#oM+?bOUuLS2kYNUJ{{K+_pOVd$EMgPHbC#Lb03heamNk_anu1lT zQbIm}_5YXr53Z_8t(Y)f-jYy4S+OlcWs9a|^;s3|02-hH=vD^wJfxfz=F7pR##lAe zmgB$L)uIAa>kZ?%iTd;;0P=spSAYhft}oZ$PJfxrdwB@B*9 z_1H%*`HG%WhDESiWnFeYSR=C>wWK3JBU`2DHp`qPO&9G`5t{i&e^sHrM1`8xW}a4g zT$kmOijT5xy^$JA{HG6L1T;V&K>w%zV$DYX_tC{;Nmy znVHA|hzhR4%G{A73#g~l0o!J@%w8Ajwg*$YnTgn+H_cUA6xqRKQq+GHFU_w1DqbRs z{-bz_)4&!%)1lz}p>bzdG5v}@h*N${y4OAN@|2u_ zKAEkpz3_Z{;eJkjOJOtf5PZ^LP{Uscx;4Q7&G(onSE};tU0{oK(D||hl>vFbI(F|) zDHsLL1TAv-l`$z*lW(kip>!dM5C)B9)!`uhN;n5)@__T|g<-CvF20|aOXZ|Bhzuc@ zd#5zs1T`LFFDm#djZ!E)PuQ-v%q;M#f~TMYAzRsmLU!nka7OgYIp{pieuByvaih z$p6pG9jwE%T(g1=-xQpYPV`@UUeJ_|u(DTD2TTo%(IF~|-T}=&@)+N;D05{s#n!GF zhM7cZSgc+u3D%GM&PvTljTZf5ZYt~E%InpipY6xWmtw7TWidwQF#R(%yHWq!)YNe9 z$Yhe30}uw-s<|V>`hFeAR6SS9qZP>m^gjy?G0Nt1MgMAYO0ecz4AJ`P{%CS?nE%n_ zjMMxxEk86l^CLc>~Lp7&w$>0(Smf5rf4?kPQ-fX!qnmQ`*Ef*Ui)8`OdNy+>#_WTbDH1BjCb@D z80wg>2%6jk%>Hpao=kWMy+nG_)`M}L<{RnIy$$ARZn+C?wLLpK%@S8aQElJe!Zhjn|liHdjPH+y( zabE#zw0?Ou>$(&J;Ch0v+X(YG0tw6c#{&gme=>S!FwK0ginnIm^%I-=0^hFV^^lL- zYqquBw*vff(9SD1Vtp+wG9P5f}p@ zvcn(LS2IwU&NdGFFVB}KRNH0{F9G?v!ik4OME(*w)HlZ}w`dL&6--1xUJexyI;H%+ z$ej8lfpHP2T<4FBi_?8$30E$m{PWbhhUrNkh_|!yo;R*GCpqXa9zfwnI&c1Y@u=XB z2WN;HIu)f)$2Mr5+*&b6r2>EyMd0pNT?)Bl4*RZ~Bf0rt>*;BYswchY;i^ZN0Y}7p zK2z6FQ>arum$MTUQEW7kmncdo6KXVR&J_-qn_;4(ZPZ|K_evyKuvNH!qv;RWw3NL! z+3WU6n0yx26~hAPmoBI_m|(?)9@S7!?K5H z0By#+&ZX#%{%GD{uid`Fh3NzaI@moCI8DWYq2WvG3IVjQ~=EZpG?7 z{FLUT)4o%tuQI1Oc}AzA?Hn18_yV+_mZ|YSG&uVJ4NlslfqJ`M)$caR09c zr>H=bjU{CS8eD>36S|Fu)S zCkfAs&C1?CVY-7tH12qlI`f z+RT+N`y=z-?BbMYl5Ph@dsQnIw4}X>W=t=K-1>suXY^ZHp zE0yQH*QUxV7l}3~41I)BsE$D6I|{9vR*>+*H-wA%nHl`sq|X9HIFdy#cfi^9U2^h$ zL`sNM}z{>K*p>UQQ?@(PH;5$wrw; z`A~-iCnq|dAFr=ZUl96JBolKY&McH`ecO{`%B4QU9K$sgWF#MAj_+`7!Nj;~{UCgd zWSe$0R;VTHv2zG@Q#7$LGG&m!q)`8gIY^ciOP)k2=yt!8PR!qq*9OQg%Wr78&t^y% zW=T`T4t|B@>UqrOrJ64xFM{{3z(uwcYj|KpdYat>JiIF^TSBuqqj)rPudTvUi+ihIxH7 zQsv;92%)=^(ct4a_q9HYV<<4Ip6Ch$Lu8YL0Wh0!?)T0+!@U41u22-x^!dxl68{X9 z7eP))qe2uiOmP&k$?qzEOunrj~*YsgO z)V2q{Dp4Q$YqN~E80F>Cc+b~4*BAg(YN9H3b;v3i_Zvp;3M;iIpO=BK$?W!qJ5v^V``F&)eEmK&V3JE+Y=$(G3ltK*#M0iRFa>O9uDy3w75cuc6B~DZrSGu z3t-(O^b9I|gGqXn^NrOA^S>nrygU48+JvvpsDeMi z{^q@XC;LKzolSuLlLvc?D2vSTRoLHp=?LK-OrbA9F-3gA2qBo0DC0}3^(Y-o zZTN)@19@wf4QXC;j9$X83Y5&oDPV)X%z6me;Df$3`8ZKr5Potkv*KWjR`(-N|1#zD zbGUjLHy9=ax)#2$Q~Tkx(sQ`!xR3L7qej`pLZM1n0>&j^Lm(`^2*lt+AhmlcI5~57 z4T*@6QfweOvL!J`zQ7(17!WXDkep0Jh|5YSe^=?xILlaq*6p?3I+Fc-xiqEm zAgEBsQeZ%01=#HY$`2p{EwjR&OOCUy&Fda8RB%sTPNrXKt;_4CoMm)El^ikuBe?jZ zyD&$PWbmYG(0!LjtYrFa#4!dMGHNl&ME<@IlT)ixU9GLtrEMj5u(=kqNKPn%m;*C^ zgdaft$D~~~V~Y!Du4_p=*cLjirO@BM_k$Z<$x?!Qt=d-(1t?H}jl^jDTg~x@0|#>S z;78`fUoXX#l2+CL7)Q^1KIsMM20nuNXmTa- z-){ZC3^z;v8g4LdOlCox6a=;S1^=(=AdWvy&&K1Ac?YOGIN*Q|cyp+}BB25rUOW>7 zVUhp1ZGg{q4u%1I9v=WSK3w920Um1tgfY-Nplr@u4@MO4p+3P9t} zRZ6si4fP-G0r)FVFiB1xYiq7LbMQ!xOx!m~1ekxs2ckgnK~50IhaX&KB!x9X|Huy< z+xvv-64CCxmwA4Wt5aeaax{+rYYws%E+Ki__*BDi74osF=U;Wi0+gT5+mrivPREw0 z9#lpA0}8(62Qa>FzyzT$q2HKbI>DW8(%MY%%@l z>R5>6C3`^6&)?P`PclB~4N*pE5AB!S>hykDl-&U}5rUVU8Odr?zS;~-eJ-_zfy{nY zuTj8P>{A_e8Wm$~2&2p#9#4*w)>miBhxk^jEK|p4Vx6`z4~*#FU&%I87n#Cu52Qmc z?Kj>rvD}lu=a8wRkFu-x_f-X(-?kEMZpTMoxms*Zc9$6U+>Tli&+yd_P{#Y zyx%16++vE}LM>3-*IxtH zfM%C%?fhZ?tgl0Nt3vaePdg`8qw?SN?J+17{7$TXq4+#nOl+-W7-GA&%7%t4EQmzdd3O+jkqvLh%66-)RLPjyg^&m_;v1{Ufs%z0+!L8AO>=0QFhOFnvi9!m!;g?Z`A=|K)3S6JE^ zW@<1_m}^g-du4GkL#M>>*BCQ;abE;0*w(7Ny%^cDg$*$hmCIo1ngT29d*_wqiD(wF z!hrZmhyuBhw1i!xs#bk{Gkvmq_51C~?lF;%SKTHUn!g-18O8|Jr_gDQQnBw$mtPK+ zoTNE+VfW|Qo>`E#)#PanB)|0?-bga|HP zq}5tK)vwTaCF#Sb?KN`fdW);!CegFP-siTc`1a#7<7GdyJqyD-N7U0HyXOtR+-qdX`@RY115CdZbll`2adkEB^BAdMT>uO z=j0o>Ya?E+#-(xnNy8-QY&&TeU(+X_lsNr<=9-190IRR!&Ut;=UY6~RGp9J18SC`a zuzDl27}n8rzIQuow5yzSuM_>kG+01a0YTd^CZV~#u?xSkfwJu@Kj0fcn7qV9p&W!n zW2t8I_+n3T$nFWd1{BF-?JLR>wxvtacIW>ORzG? z^PVqbOn)j*0W6B|sUUCof&a7X;W1>MXxr5>NxSvz8iFJ;MnsHAR_yE2D{}}d<*b2W zhe?HD#8Fx7?Fi9&M8(7zEq&eZkX?S=Q<<#Ckqlr!eroLa#2JH`m)nPNWpY%{-yQRtrU_d5lvu z7Zk^DN^Hf`cR2a}R>@`8K__zqG?hf>+# znuJ%D%$WU?nCJNl^>%(JF?Tg>m>G2)55yohXV!HrS(1Z zsiJAs6zpw89$Fn`@X8|0MsB;)v_LLiy<%_FKtKz=rrto4t2xZ1e1^%)aBO$UxD9QA zAdhT#RsKC?m#D1vA(8v2!*ao67cgySL^aBL9L`HGyZfwHH!H|k?OFO%c1BtmPXGFO zWZ}+eo>b_RSnE)t`3Ytou`f}>ilP^TKrZk&tF2Nj#*0Esv79n3=#}EGMK3Q-5UtJF zY$b#trTIDNF##n4br{{{d|0hvJMr<#ZV@g-H;JL(XU|kai)7OsFR<_{+AcqVP3pwV zsq4g}duOx5Tae!U6_}$7mf}eCAw4>~JZ*blVa9;qRoZxk@k9Jn8xK_*@wV*piO1FN ztS=}0&mQ5zs{(mf)7l`hC1OhCG^h=Vp{=h9b>^o()_f8Qzts{5r=sJ_2U7_FNzuS{G(cWd^Qz z4(@R3$bM>^ks3#me^c-Olg=LW5l0i zH==8;587SvyMACuA2ZsT4-?^n|75Qr+a3TLyXG|n?m9gC{S1C5*L{;Ww#9-qKnG^5 z4b<7+EiFn{=`nJDa7UPL{}DnK92S&mVN{|sJ$t^h|Jlt7whs?O5!oCXTr z1jp4X)^(y}8lncV>OaZikMDu30Ye{%DcDA{_HB%^iLd0#q_RdsVY?XS__F&hz`0^Q752F zgz4pBJfcS!gnWm1dS)u)o;D4HoU}Tqn1ov3?N-d1K=U}ZG zXNhPUoN^_AcyZzZt=W-o??~KJMM;e90vlKZ~a7l;%S&fG^cs zc!X+Kzylv9v00zPIcawQw^`0J6~LuPS!hMG)QZdaGyT*Xm%d}C(emo$m8X|7)3$G4 z3zn*V&8jf$;!~vqBtKXy;4H2Kje4 z)`&cKSj7=yu0}bxu)YO7ly=0A0G4o6A1AWB^Lt!hCKwYl{9bHWB6wsd81O*QUOhHb z_%<8Jw(uYngV%u^jXV`=|Mn}_Fn_m$sJ)5?3<it&^D8UovwwTrX^yIAw$H`@5*ZWzR2t%~;R*FL(;LRS68A>hbpUlOB{l zZfUp;YffqzYMTx#A^t?%gK`LH=~;=?Kl>su%v$HF>$2BH%>7!rsU6cOz%f4XY1EH4 z(r!pE!(FmfYgdA3kE>HAqzOJ}yFUNKm_>LPM-YCX(hv0L z5qQ?r?w7fvmcQSn4F-xgVUGUl!douxQ@=@hcXw6yTJ1B>US3l?TVHBzJq6=2;<&s> zNiQFO6&RF0u`Qx`QEd@uN5&~}@Cms_8mQ!lHk@g>lI`p*u!luwV`t}lGH zhEW9_wCvw2Z#+it$07D&!F8G8Hl%R~E z(3vIctQwx(1t6QJ0w_6`IkwHJ2MkOAH*aLjzc+7v;N~4cK>#=IfL?)3rerPNX_?31_4_U1?YlDga#KX*TLt!G`2CicgOU%f3FM#4!>n*6aZfz`JVeN~D9 zNxYJNKkvpJNT6?1ArWuhMElFU6*eHfY45uh~)M3-C0P)< zEnv+cDd!4A>4nj^e3P;-{xV0!9w#SMXdK5hF8o<}F2Ud|&a)G4A&kbtdc>mNySzfa zr;tTOVqPpwL&YYNZKTu>y{&T_lYrvT{HbJ%$+TbJUpaZTdO}M&3X@!)hzOXEjr>0ZXv8ukPcse~-{vD5! z2Uc0+(lz7>|Eb$-R&_&JdAd=$b5(!8^z>cE=0ov3ktXF^j>ndg56=>Hho?KZyBThW z+PJ`9jfXeW`0k6&NTZdI;W2*okMrgv`7%$4Cf^pi;wp_EE~l;bipwt)++oYv>EGd9DG6UvV3ra7*5%cAb9 zWC=tkbu;ctUvDxHu^`i77*sIYSDr&IRo^saA3=9;$RKeBa zf=QQwNnm)p)5cD$m!h=_Qo}u|kAbnoO?ApbI1iys)c}=V@gSad@*3pOZZ_n5hyWn3=h5Q(};J^U$3gu{F)~eT9WOzwo)*fJar_b*%#Sx+boRZ}&ll zu{}_KCHz(X4Y4%knKpdgwvXqhKV|~6BZ>6lDsUIX-b1!>s=&&@n?yW-as+P$5VpGD zo}c3SW7A3(v9D-o%QiQm@%0kWrG#y+0b^J1u+Ow@EZOUn+PW$vOxc}gD2{DydF{Q! zYgW(UN~Oko8TW6c^?sHjTa{b>S~#;PMvyF!N|HtC)p4iFEU)c!#KI(K^ef@XrD;qz)E z@veJp^$Ffwy2H5d|TBqf0tE$~`F-N<^`y5vr z0S6sH=EWzQnYqOQrj96Cbf^3P#a&*~0w)(r%AZ~m(#HYW4}E7R1?7}xE`aMsCIQXq z<*RGHRqnepw0@)Lt-J>RW`3-LK80I2z`|cEBIM!DCA{UqMr2g z$MeO6>N)Sr%kvMmfbl>@*#G5`GFfBWOrXrrGm5J`Rd(m<2U+q2Bj6}JSt7CqmP-+D0vRrNS+-xQ{XYkpbpI^PKfBZ9Q z8WMz9p2rZStou$=lvrr&=BcqRZWiQ$ywuED#Zq{`F?AKL*ps?@=0lSdqou*3c>ckY z1}`B?CUA}=wBnY5%iyAt$CpMQXom8=g1m*48@pnn7eSqx{wZ~+=NZ=_cOTvCgQLBh znrdI?F`1f5__g2XC%kA6z6pq4Sp)m865K@%{Z%mOi^L}3rTAmb!d80 z3S_{iFZV{G=de0B^JL{>Y9D*r_o3}z5ZVL$t{KS0R)8mEdRm~lPa*>0e_3z#b!7iQ9B}QunUxjgP|1&FlLDfT*T%E zQIvc~!1LTVBb+QW1tlQi8Rqtpj$lPFHTS37-nP7P#TlQ4QIfRnMs@Dbhy>WWxLLwF zruRKSHLqvrc8|LIY0<>jZ>++&q+UFvk;-=_^wVifu5+4$5`&m5TaKDX}U8kS4>Z2Cux)y}r(H-nKhv**83lQK<_%PTU^ukRc1s|*;! zY}zZzVv?ac>^6%nHI8#cgtyE z`GD>5lMY@_W{WsnSt&Y$J-oaiDZ21Ngl(z_Y~>|2$ycW54D!K#^6B4&n8^0PLdj!L?R@GhiZ5A=mO~Ev9oK*S>N+1zVAuWnED$?crX<0 z0H7$VxYu{6=2CCk^ttGg#I8CE`ecSVO`HMkx*>nhT$Gx_ z+qKOk%fzY-$CZ!=ko7)(?XPgb1AN~_IAH;N^ETwBV=5WsoWxizFfOglll|+>P=PIQ zzs~(sNj+XU39GjOXFF~l>2c1Mlt!>~21bA=9X+BP{E-?hJk(Y%j2KI2{RVil}9I#_UE>+VM7Iv1^!jJ?;BLPzcO&4{GCSacHC;DqHNVlgDCv%8^7## zDz%$QH6@D&>7G12dEg42&b@1R1>0h%$4%yVG<^2i1*!Zn`qNAQn$FwuLj9hEx-e=t zjUL8#E&}AnQ}IzT3gI1?e7+y|0{7 z9@1DA8nM+Oe8*UDm*Tw3eBB;oOHwoxuPCD*?u=Dpna&}9me3R^Xxpb-?u?I1b2z~p zr}|i+5#?oth~a-i_2X?Z-EHN4V(7U>Wo6z<1k#qM8L-mT=k+xLT}%*Uoz>PyXa&ot z*~ag=`<1NME3ZyLUQ1DeMZ7BXE(q8*XOJfJT;<9l@>xNx32#ll1x z0epx`oByk5HUWABL{lRygbPjE7+(U?kvK-gXgeSao-T?-uj)}l!Rp>F)uyS{5j z?6Gr+1zuf+3yKF+Pd7DBvrqv?7T{ahP6%Dzz9ZNpkk7Gvq~9?LU=(;*6%4^(yZOV2 zzr>J=p*S@n^%Opk`ICZ%feZ+Ne<9}qp#nqyy)a2C9#xXYEl)6Z%oNrJH>u|8bG>O% zHCD^h3lP@!xUwQ0K^=lK{LE^Yi2Lm7TfwhFOdE5nPGa$ko=1s=W}akDAKyt-Iz&0p z5=;fOJOrv77pDlM+*cWRlW)~~j&PU9XwhT5G~}yZK@Kg1gMSYhLZAwg45GPwftpm{ zLq9JiF$RX;ELGq9W#+h&8@h>q4H=QSG)YmXM@J} zcG6Z^kwe9=yj%JAO5LiU>_|;nBSzz^qQ#cHr1*F~(0vr5+tnfCv-hgw#bYi*Vbyk~ z94VUbc+zhZN-}PnlOPH|ScJw9shD&fO1u&oqn@f{)l3o9ANJ$$q*+nqODXBVwxzQc z&9G0h#nT#g7l0zd~G2eLCM3xFlDV^i!W|K8>d9 zlSOenOR`C*)u)$J>4(3zaZxB)P}hM{4z-pSn6Pz;>wL?g=_{=)mS|N7Yn>7k9-ukY zkRZELr^v*mNN9sU=8vChkvwWH7hS4jgsi}e38ys(OZeP!CfEN=~Arc~|fO3LRrJ|qab*@>PTKBqhAz7WTfbzc8vY)H$!iIUsGZj_EA9a)e59?RMiJR3|@Cd<+fs0NtlO89vs* zkJ7GoeNvihw~E6+w7xeLYWO~Cd0>jVcLl&(T4@>1!$GvBU6#L9;>KOc>cn-Fm7Vx7 zzR}Xj%q9739eD44dBK<;eluz&hIXby3*aRAgp}unGoQR%(>Unoa;dZeH^^S!MT=+S zJ!Q>$xVyTsA5FC0&_7@Oi~f%3?Ig>%9kLvc^~aIU6Z>15McV(Rg%MIeWLyQdB@_IW zU%*^gb1O7LdM{hcM+UUdSl~TUK1|jQ-a3-jCy5(Yx=f)2*vPs#3&X0@>Ij+n%wnYsE@ z${@Lnm80(fVcMwUaih=Xf@+9fuIQfx*}@+fB_D`H@}PgprD8EOdGjdauc?!#grN!rsM+C;1T&J-4q{=(R@OT&TMR)< zJYH-Pl>ydMWk88|l^}UvDxWTX9B#buE+t6BsaeEvF7(jWV$z-~~kds}UZO39AAl*lw!ot!LF zEf#VIWiUTxdPt#z-7YQ-O}m)GXzcjkAZ!Vcu-ZK7dy7ac zPY_*e_aBz?i6;7{r~RHT3pV@p%wU%w_|{|^Ljqk!--~l$DiF+24~WC!irj7rW(~LH z_Tk1HY^RWQ0+O=04%6&+Mg5%H_Z8U%^dv5aOjtj<#XYcwm7=f2W*K ziHFe*9E|p=6>U){n-lvcb0i+WKpZD;`gyEhOt36!qMAMVt9zk{mBqnqv3w@$d@-8O zS2kDw0W>b%v1y-E>_4L!Ig0YQ|Tmkj;c!gGO zw`a-s)`6eDxe^u!xVTJjTT9u-_6tx263h2}5Y(`t`%If|lnpdy#BB0|V{~N52<>|dWRek?8?1Bi}fw=c{W@TEOC_g&3ZLv_Hy08-#=NTC|ZQtfayZ<&J@}0&eUq0J(Z%k)fI7k7i%Z_j_>qs zR9?wGc$bO_kd*&PH;Rk%RHRs+pOgSvA#}l<-N`~t0gB!KL}jj^c5vbAY#-or+$h3l z?&r;Uo9Y?B`|D})li}d2=u&W4!(8D=Tcu_CC;Hf29j;XNTE-W=uI1~1|3;VkT;Dnv z&s0j;O+X194_nqgS@9XsO|4J?O~r`%i4BZ8Ns-Ir%D~F0$ax_5(ZPBU3D1W(UB3@Y ziccFi`RwV1k`O&>!PkCphjq4hX2lKff@6Ya4n&uOQ>C1#uOs!{O4;s<*TQd1SHh1J z#`{!08|VA;@I*z@9dS)hfIz*i*+q!X%?=_7((|)Hu zm=lSIwz-Ue)pCNiWHy|=%J*Nu>S-Vk=J`+cG^Z;LhVE6)essKJO6nw5hqcd@6Nc4^ z9*Sd?taK5udb$%>J*~6#VUw`1<{ZcTt1Oe?>d8PP_a=B)7TlMCs9)4aYw(mB0ci7? zHZuO!?*$(ZUHTjsvVDxQ?kTcCFxCpFyhk%h(%vKLue*v@Ql}otT;MfyMKaIs?_c-; z^x|t}KY3nEpKz3+PjO`NEBn>M>771mJ-u>rWcaN91wBt&bTc^Ew4L`L+32$t>vzLx z;3J`H`ae5*&UfgzPu02L@twAs^0YcNdJzif1_liK>lJ_PYJw?yEj@i*2eawK-f@>& z(z4H^rWla`%1v6%UmvLgbbibqUNpKgBGpnFvBx89SKLy~#Ho?CAOjdLYEOQf^w?;| z=rxNTfzOileo3FEu0-4?rN)DsVdI=!PU+}PA`~m(*WVo6X2w3No5dS_w%(+^iVj#V z#it<&wD;MsR!Gr}XkD*`+FKDwwBS&9d&@$4ME`?Ki7f>%{(`CLkdGG6MGnx8 zbISYH)~wW*%Cfc0!wE44&_?7Dr!mjkN9$W|y z7^*N|)f_6hn@Kq(Mc^y?U#Rn3EP=8t$WZ=Rjyv2^oq7o&8_3Om{aH8c-+ZH|3S6Yhx$p`a zAxs+c=KZJtYc8}^$t*lbHvz)R1kU%|XH%_*hP9W8Rqwc}K!r}2!U!-4&_dA$c*&1> zbj4{*41t56DvXxDCp1p4hUWbob7;Y2JMWziYx$t~%US<-5wWFc+jr~3E{8PP|IlqL zENjOaW?2o|J|JTOdji*rX;@Yt@ZmHjd3Yu+c&fME_8_uM_}^lMI%ANC=o2Go%Tr3j zFH4KUBFq{WVe0yC=z|*C?DvBCVzA*gEj%n*XO2)R3luZAa&o&EPzx*e$zH+zgoo ziX>qnkE{Ck!G)eNGTRgR)yo@eJQkAd!{Y|wG?OPnDo%Br2IkcJa={szQs)4CE9=N_ zqL(NC;)#$;g=RggB=$a$6z98Sb7W_jU0OoF@818StoqavA~_HX zrONv&?J%7-3!WtRNd+UVq$bndEBmRsAnB8iiVo7YY9x+0eC6y|LJ8J}>Uw=b?(=?K zYN}$YQwj#r3!?V`ZJqvYk6k61G-5P-pO?cj1 zF=a`!ISM&`6j;HdAG(OM+yVF%DNMzmW2HH*eepghJj_`jlwY})qzm_%p{}C?cBfP^ zGl&_7H;^i!=BX|vd%tlMKfd%;kWuvI`aJiMi?gV%^!BYTi&iB} zjsDu<6|_3US*ZwS7D~?AB)x;Ch+IA{%;h6+l8j`hOuh6rg!+tA$qO5AtwDLvN=

avMHTq*JxGUrsLR&-lw&P2FTRIulrIBAiL-5{=+3Bz zjUePO0b^OFE6%#ui&JCQu&A+r_~rX<>-JiQf1`c!V?F4y(ZF}4qPxEQkC_k0dK|hA z#+_u}KK)8>&0~DU^Fc>y3$SZw8Gn-`{me3>eo_Wl3~VShyFQ)OSbAg)5ohlihI2I~ z5!XI5hDKMQ9y8C}OJLpQdNWRKNkwE2HY}rfJW3rOrI)EGae^o+WK!1()z_+YGAqvM zi>#(=Mi)f0FjDdCzi=;h(a;!Es!>gvI8(b*p09CE9DlI?Hmr?C>0-U0XFp#sOmKkf zh}a6HJuf(ad`@bJ;evuYxDp^SJ>Ull> zL_&%sRkBRsQJ1bsM|aW-*lJH0_I&(Q?#GcnzF^sOIVQvF60TDX&jy zTcpSg+8tNNdpk2dEnD}%_Q*s+P%^-F!)`#>f^mRmfXK)~6`ykYW$CmQ8_%QkhT)3y zE5ITn!@xj5fPsPf`I^Ju&-ph>_XTt`pmEceL3>P8e4&-9hW=b^B2P;oay@9XoGbk~ z@Dm&ADDo*H9e5JxsIO6Xt%k)T%2bknbzR;)tL!h{6c~A#NJG+5lwF7qU}%273ug14 zw3HJRr!b>2$T(bWFm^MVAki$^%Aww@c=en^4ZmfZlg7bH)VRZtgU5jm`x^4sKCLJz zaO5`Beppu`013P(6#+y3cp(nz3&IcdkRXE`m?|QlusXirGD}1n66K=gL;Rj({hn=Q z3oY^76AyO}xN5ato_5A*I>aGpky)3Ol$Z++NgSQ0{3PZ7>x`5>drioM15`ulYAZ4g}m9-vQMyT-i`>!kPZBBL;2H4v`PQDGf_;KB~W+b zD3G&acg&cns6D)TMBf1m&?gSKh;|91A5}y>uV)vuR@qz!o7{q$WOb4bP-%m1pc*&qjVqeHOfR_OL z4fNd?cts|NpC_!TVeI%L3y957pdsMEApQLL1#)t}j=$7tz6j9CkzG>Sux=CzwwH z4xn$qpFm%Iy`$D36Cj1>>uEj-%gK?&ep56IgaZDX{uyCUp>PKt83Hq$+2Vo%{XAgk zATYt;{erp$e;gBzTvMER*1aH;2m+6h0)-OspJODuf%z4{N7fI+hU$}13+m&`*G=^2 zNF6L?a$LH6QVb@oH=(Ear2~m1$rT_#y+QbViMjzB`!Sw;`Qo-FR1AaL0;!;(T~V1V z4;_e}LYx@VPpV#`ww3x^I6o@8WS$nM4s6;WDFWfxP!q64mEC+%`C)S)w# z&qxBH*y7wFC~^qp06EW@OaCkE$EA#c@xM}{7FY!Tz_9dk;Ho99@{y)K$&aK^MpYF(HkxRG8?}Vu1 zSY~1niz)WfjJ2cPiQXQMRztFV-kU!N!wMEgC{g7vkV{w;lJ@lWW9buv{qX~+1WFC+ zdr z(m2l}gIZ6rW!TOY_m}3xdT8PGmf@697H*4oWa1sxDR~xM>58bb=N%h6^Fv;vgO;9? zu&`a=+Y8Fqiz>CSP(+*zgR6&|Y^0#E09_iCZH=2S93CAh#=JhK!IuiVXOsEiZ8Jr8 zS3JV}ZZ=oii@&p!fM<4B5Ta3%PG?;x&Vnbt(L)qmzi{l)dDaJyd0rI~c zwwcX-GvQ9gumP;}1iOG?ZJ5$PCU__-iL=qDHSl(pDp8f#@5c6Ssqc?x*1S^qGphxC zb0L1`P`oLGQh*{prlNIhq_r+kd>#`HrU)=34K4G&1SQD>y~9l$LMF)wm5k4_ysiWT zUf)3%KrC%7EiYg#FESRp%{|bM<6K5fW|!P#FC69Uue#CP1D`yTkgS0`t})g1CDljL z;H)~9HnTPk8YANZsg%TmyOf|ub|2Tsu9}hMg+lYgox=%C6^{V?tYeo&G*RmFnHrrEcC$v1|JbB0tf0 znD+{C0aX7l4@os~%w@^+y^NoEH2;d7%nH9C+U`6?mp?9U2C#!Yzyf0@tpfpSK|XV~ zIS3(mpwerKuaVT2=F`b7!HF? z8>M4AQ2!akuR5szvdic68k3 zSw1_)%l3YE;mh7~FWZ*&ALA=k-rUt5Q9dEpOIb*5nbv$0@Yh>SH=0fJ*RmPvrmweM z)UQ638J3#5kzA@)28zfLEDwAPAhGYbo<=Fmb{(>fw* z;~-AIQ3ZeJanQ#RRJ)_3i%3WU^Z(ATh9s#*r<_=5q>=;Fr+gc&!%Rkbz2{@G`&+Ph z-BvE(wbd)bX<;ERuLae#9sZciL&>n`L0u5C6(^G?_|hG@e)=fTG*7UeNNje@;rS%fnpQ*IU9q&rfxDzc`%~3fO2pP%n#b!2YM4`}d^e-tX^8 ziT4BIjO09|D5VIE;P3pkpWeIq&m#u~vK=RGr0kxbFAda#AO4Gn_cRF zOt((3I0%>FXxcQxb}>G`-3(X%h#CCGgdqJF z(NFrNT0QJvMF~VAu)Y7Air-}VJveDY3?ccSrMB7=wm1+xQqw1cUxK`A>%cWbR1!oa8A)%Z(2pjH>k~alb57B~$MnXE!T#{pcA6y< zO%=CF)9gP36p8+QC)I3VcRFJ1DHiJzTTW?08?a>9B!M+U!H6a)TRu&*QROkUGMSU4 zU#u50_g=bjmy5DbUcD#fS%Qg%)_046$0sp)w?UyfVerZ*Xf{jgQQ`eAI)tHM3Sh%v zQTS4U(7=y##Kt7o*y6a_n}^^OKO#55bxx{wGhN^8_3~wBPlCdEpzAOpX?f(huMtNz z7_O>egeKnn1CJ!>2;atgLs_41`r0$AKAB#A6}Uo z-={JpWeI4QOylUf2VWsRyV1+~a2+M3S<7g-Y)7Y@E#AEpQtD5emd;}ysH2}=CHJ5_ zMAICU_(#zkJXiU5&bT4PM=doF2jfbHR+f)^NL24ZYiXlNH=4a9NIpNor28!T6D8*v|={v@X3fNMWAg7hc)J9th{bw zIKWzWCPrJ;Cq^rK6YsiHtKI|1X>3lO|3PIW>*w{gG#BymsRJ*non?P)Gy!`xl(}%#Odv1Bb{&q}+i_0pCkL2&P~_ zhP3@+T@`nc%o(HptWh!`ikxd~1Bpvl<(w&;uTh zu$sLZxEdH8XcCB|FGaUP-mFa-5C4$IvR&0PZrC2=o_g)qc%j{WCU4_vhc)ITpxS;NAR z2uPC?Gr(SP{sYnuV7&O-M2P@){L;ci0<0N)|6&xKec7xb_a88UFgYTm$bz|kf8#pG zpD^e$BHK6a`{;pGIUf{a3`GKdBN5_12kYo*p~tof5cI_j;3|`@li?oi)xY z!EYb>KjI7^q@5s!a^GJ>okGVtpt6C4 z7RdiI00l!Ouu+rCq(k=&!W|M!k~l#F{{vt2NPvBytsyMwb#VvQQtL03X~TzF>u*$g98b zJNO$X;ajOm_yV3Va7OB0FUX1TFaA1zdq}-EX+j8G*#E$Syp6A(+rzI%{0DL8nopn@IZP)dc z4h5u3y1To(8>Er$?(XjH?(RlX5b5sj?#}OkxA*rv?|9#F{jv8^$JvMDcDt^%=A1wC zZ4XqTM#4t*>Q^(exc|oZumI8g1?#oTysH&R;$}$r^JFwJf~#%ncBH zDl1YUxuu3#Y*?-E?I<$2{K>TIZkOwfU2a4}id%9qb^7zivJrfQ`0xrqvOFvPY;?X( zeDd{wl`I#)RA3KDLI*5MF^k)5M7$<=9NxIR1lK|VB+1PAua(zKsmOKh==K#qS5+&) zd^MjcS?=oDxuTcmC8i$^E4e+Nj*kbGDqWEpJwkd)uPn=J7t`>ioKhQ&507+`G=C8T zhELrfU;g1D(~9swwu(0RZyAjh zS6Sq)Q%F6acAzabXDxW;Wn~n#iVbDuS(KwHYA^Cu{>yC`&$%-=2$M{56*CDrvj4YT zK7kP9K)jD?IN`47c0IFl#r^L7HqsQV6yksGjaVX&|S|CY;@_qaosL12R3h zky!CuSqj4*n(*8rGeA}`w6xAW7=F&AYh43#{9ilXpBwMycLR!%!idb&3i!H#}HE2|JyPyxWG>^a9>Z#^BCF~^` zb;whm6~~DeYqm@UGtHjz$k*j9KEiN)gvp@CB*}%vhC$EHjN%3Cb*wt*obJv=Vn~!& zarUQMwN}`HGeE^)CpD?DUI<|amy8v5JY7Ec?0y0Xkbm3tym$VNupmAWKS6T9y+4&_ zMR>eHMo}S2w2?(V5PX3D02u)Z>3~|;g`~*7Qql~&>J=&CWB3`!uBV0hpSL)B;^BeI zH3j!pO#|Wr0?%NCw#w-Q`u?%%gYt(%kX9|?@9K)9+WSs8iIbVXHoMGLA4Wa65023x z;n>c~qIs-<-!J0@GP=asSrPy&hl`~}f-33rSe|GB;TUkfXIp7jCdkW=3=b65ZA%2& z7i7Mc@KZ{eBXjjIe?CwhH6BT*y2S27Wo_d5dWPUYnNl1YT?e^!gTD3r_$%xqO1YUb795q?8Uqz1AyIa z7cZ-rX@RaZ0sW!%SGFAatp;g0$q(Lf-P!z3v&g`6vo(}*~?H2eFC$@mHWwB*J_c@$==)a?lq|IuFX{_GMx$Q+`P58w)QR@MV=(27Xkk<7S2mJab$0?QU38wQJ!ho5(|s)%Z_=!>RNj(kd`jPYrpGCIQE=C0PeCj z0Qh%xDr5yE;9i5{9a0P9bWw%7%)m?F1EJ+MMV3J?mX%g}>oTY(pxf`SCzpDmN!7Vm z6w7J>ZgixCUu>YN6=E$uQw#;zMW zv~j}Y@W<+Lcmi32S#5*Sq|I-SFc&D~7G(vsdc|qFv&)2+FCg<*HRO;2=Dg~G zaI=&_r87VP_nCjwiIWsG=zP4-6m8(P0By?%!3|&zo7VcGL5I0nxhaYF`}xeIF;?+2 z=dw?RYS%wDw7Pwl7UvP82Db3aiu|KYOI&^FL^`QpzqmhsG>OlN)Rtn^ml{9WQ6wl7 zEcj`Xr{7FuAP7G9pFrgmBwMrd=Nvi4vRqvrEEXDtU~_!lMlx)VC0VtJD3$^BV6d?b z6(zO4i|4&hRjC+kJCB{ta94}s#Ijux%T2U<;LDnhZmuts$I=>W|FQFDc;ES3WyeY` zN~4K0Foz%<2m~tYA3uF>YQ6uTA_@I{d=6fLJOp@`%t}D=y0+~xd;SUa(y;q1WWInO$PefQ`*m`Q(fpId#1C-0yBS0~{IXr(rLaD}ng-aef5mZ41! zBOrwSFVNy4F5+NXTI-y_ay$wM*7daCG;jvgOMQxJhVdVcV45UZEjAz58*=(3e%0)L zvV;SL*{QqDCq6O~Rc@p%&iZYk9Z8c7jAccQBjk#wHv|pu$l0S0cNUez19I4tf#r_G z99m@PZm-x(cKy1>-z(N`5TAz@;y;t4UNNtf{e%M^wVf< zBjNeM-?mgU0iFTJ1_ z5Ssqj<=1-VR#=O@sOxFRXcB4hxbCdUXKi<&#*O10OC3W)2wW2YZJ@Hg7kXlp=78B4 zA8&4pD7UqF1nYjk2X4##D$Pr5Q>y8pL$vLtRD1-Bax%FQ$VZdAOD)%&c0F;Eo|zg+ z^rOwP-T8WOk$a^hgFUHWKKtAXKJnAweA@axn{c)*c!}+R)9T| zn5xNYq<^?FJjkP5%dlOTn07;n^zE_Dclhf_=HcifH%LoQK(4M_FREnsQt$^14-O_b z!6u1%oHfQHV~6rd3gvwU>snyGx*F@aJL@QhK{K14^5rojWZn99j9;1D9&WQbS{)~L z{`c6KDY_5<0W*o6q*5WnS-36)a;-?9=+RpD|An`)uANF!Ll$zaYl}Inr#wYac3)`w zH~Z6c9K&Zia$;l@OkPlFb%w-6bt2ooPXEEJkoyNfecb9h7Mr^FZmcAj7 zEvARL|C33=vMB*$K+@UuNZzZ8#HMNlFP>1&rxq|iG8|7x6a1rwzdb(RQ>dmG==W1a zIK<$#NU9WR8fin49`6xiW#ImjKnJ6g9)>4FT!b)X%zQx5Bfzc?Rc9S3Xl&DDdP9Av zx>J}Y-%^z)4XQ0f?J>ZT7@7%Xao1gFu|R=hDQD`KMdbhdS4;M7PHVOEqjMIFh-8r$ zFgz4A_!h#~sE%D()#S!w1uL}s5L$y|$fd8$rXz+;aRH0OcUT?Fy;$xM9ZW{!PtM2jHqk$iIi4DSdcEyPXi_&{axqi&zz= z(X$d5E9EiwX_yg3x03rc(MhCw5P$u+uRc^O-6BFs4AH4AU#|_At11kZykRKx+=^TM ztG@hnOPniDrpvr+Cr7d=)92wtgV6k$Slh3(<~|{Rphl8^b|AGvJ?CVs@j_u=YyXT4 z%YwJTC5i0ofkH5XL_Cgq5}CPW3B%_pk)^p1AiQ*RVQ*=HNg&282O{yuh>5#+oj$uF zdLmqt&j>%mAn6NqlWFyZZhm6hNwd!4N*hT$1&Iz|Aj68x@1#1Mq-3=;m1P{6N!qNm zdv9TuY>D*Xuts5uj35yFvPUV^<;5%D)79@G2qe|kH;<`(2AKi1Zho0&R88OLUQjS4 zm=VyCB$!Eqfmqy0QzMH~MhIp+^vkkGFm)h$wn&13X8pu@D&F2N?-ZMJN9h<~^g=%| z@|s~|C?q~<+t3llwj6)Ybgk1q{P@YczwtgP1#i^=;lf;u6eL#_?Ra7IEM>x6j4E7P zf`Me2h&INGm*kt?f*#}UBH~YUDS>*oR5@$hyNV0*7fogA)7OVg=6XIZO9au6?>?V8 zGX!ILL5f+gCl_4o{1}sg3~ocs#{1XU7CbG#+<}+CPq4q7kQ15mxe3;7 zy8TA?yHgdFLbShx*Dh-)G3aJalQj_O4SSf8sV-aFj)i>H=n7wbJ$hB9Ux&u$xx;aT zd-=MKL6o$O^j&5Zkh!Ybifh(*!PC_F+Bgdo;hx(Rfyj4Y-u>0h!8`9m{o*~beF~xL$stZ z-TI+p#p|z)C7p2b1Hi%pFttd)?a<>(s7BKWCY+s+BJEFd6mCe}Um(2uRyZiy6@J3K z`&r&hELdN)zi(|TQw5W5YfZXb>9Vr^3MsnQ_d=f`2 z``Ge$ZQd>%M;L|F?_$(%!b)cL0pPU-SX>Tm`IJh?@yHdGQtX55QH7UfC$*7qQvt4) z1MjX9gRqYPtIHpY3tE@S^zn|IniQ7)^r@2W7$%OO9tptN;$p-@hKBs~G4F%i2U4#q z){n(S2OLOo=k{rZ^eR}r$vQ{Sq*a2ex;t@iIJ?3np}*U zN+>b^SX_{r9?Bf#6n`oTeKnp!Pg6yRgn>%Uw|Ks5WOG)CX=tcJk2G+9w5cPC6BvjY zyLJ_p`R7rFh4o*LGSOc?N+8}be&-~43^fX;pkf5(7`Vw!V>HS3nPEM43y1)L4ELZ* zgQP%z%B*b&wh=-I!G(k#^=G@6Vm7VXg=S`M2lvBXsOf&joE!r))4MY5d6nSfAu|zx zal`f6w|Qe}GQB;u!F@11k#{sapeR0dVlqjPsailzG9Me{H*!dZx}ET5-KLR_ESpU{ zsgA~tVLQRqD`E)!Za~Y`Y+km&z`a(5I=8-P>X0k&QHnKEA61btfgnv1 zK;nhjFm=W{sR}tKciA;E4)+xTf@e}#R%{{#_uG}c=LU0@%+9(3x`{{%Lx~Z@&SIpO zF%qCNP57@j3j3hii>0en9V$*I?$;x0Yi9vgh{O?dP)WBw^l97{2&8y;Dn1b+bw7+| zh{7&|dA6Zq2;B`Lv!7kx;e{2LOlJ&|JuYgdZu^Q(@YN}~7B4Y%ybo}u0}-IFy&rho zGn#nfoAwI`Xc5BXwk^txp%tV&ZmM_`WA8p;)R{4+fi${K0ax>O0+re6E}J-8mYT3k zPku546ic@rPWCBLUSD$JYxje(nJKeW$PJhn6XrKht)D&aibVs?7Rc2)Du)rtDrPiC zy-3Z7s#->r=0AlLrgR-nK7N>x7yA5}pAYjEY=T(3r-`<9!)|h{;8Ce4!VlPxrtNKv zd(2=>z2@f6>AW1;bAHz4bF`y`m~rKMrEdhS1(x@*J*@Ebh9w+z+ZxWeOCT%RLK!3u zXKKRy#NAN8VYmh+H2jA82=8iL9J%rx#?H$YNAgoICPa)M z>)7Nj51ot{G(2GnsY%j8;wN)*mjvWt36DMurVRvyiI0E=Yx~I6S|Pg#clwT8k2H9>ccukC_j0LYN1G%5(GXgo z_QGLrPlrUT9D1@jza9gw_vaubNpUez<`vwIJV6-C9scTXFFdychiwz6Hv|0fRo^^N zT(^-1*+L-eiDn!p>jQ#gbuf0tH67U>QonVyJ#RiAJ~ZY=R(sh+d9e1v34km5Xjzn! z#=0Y*$5)XYZchlriN-2H#S--+5J{?~GHhSBVCmh={#&d| zin|);%}=x$w`;(d?by{C2E!K&$EoNtyE?;;n(Q50=jf_5P}E%?6cfaZBra|-z+@UK8JdVZB*Sa6SW;dRPeqwhD?AWn;WBSu zOA}_1UY?pbhqC^?M&^b6>*EhW+!JZ@@mJ)lt6rSS6Ul`zIn(@j0b2`|?5M8HNU|e) zw{*67@}*GUAkq0@f*uxAwgHCCG!jE(EX_6j`AwPPuXe_y;mS(9ZrVQ+n8qfER98e` zQ-a~dJ`<{|o}6e{mqV>S+dB6QbAB`S)lWBHM|+p4v&awy4VCRZ=|kNy0QyY}%%k#p zaSGd&r~6?Oz`17LvLKD$5ow@MK>=_>p?QsTTjq@YTvR&1f6fT!kNxQ=YNfs}CS#n# z2SHn0C*aw$d9lCAL-M}~im2;LWAXg5+DAHWKO|g^n|YoYwt+m(4nMG`N^$iLX3|g4*5N3h|f5YoN_kg>(7nd zj5_4Q%*8QPBGmVsJpUP;XWQO~T@Qg1^7o)TAE+Qq0T@73UXP#6Jv@nFUIgJ7r|3Rz zna@I>c=3?chxeE~J~7<r>_L=e$pzh3Z>!VZwDSHmRCrHd=w{e!*x3)?YfFwPUWWf!* z_f#gR#-kLAd32&sWtXLZK1iu7>oFEU{N9NXqlHRvlRdwCQ=YnF#o^5gY^6hq*J>4A z^JmaF^jZ!Q97H&%J2#}NlF2x^J|lh5rEl%?mde6Q0W>C1+I}>AsJLNpeZs(wVXE>d zx3PX}7)oG`xZy&0#$N$!S_or-pkXLaQszf8V>#a#oo8zdv4bHRK(Zecp?{1{%ze^r zJcMb+k^Axw26zey3tn_I#iCE2jr|z-&~d{fMe*_dYKX-*N0<%Z$|NlK(O7%)z6?MB zQuOfXmrM5X@B>p)EOx~fNr!m-4_;IYC)lz#(iG(vNWQWsE9>mit>=YOV&6c4ZEK--uTrtX_-x1LU^ioV{!^`JC_XjKLz!$q=zzJ;w>Nuzz0#<`ACUxE4rI*c(t3g`XC5t8A{ z&QL2F(v?M)w?~7?p0pv;Wu`$o{g4Z^v3zOTcRkjSr6y|x3)b6SZfwEu!#lRGE6A38 z>pgi#7BSjsrf`!IaD})I79OuPN6tl4Vi=V9U-Fq{m_Cx2XXl&OwZ&uAA<&0?F{O|f zQ;`&0PxYj-Y-lbdGp{J?q2%bYBR)M=z;0rcfYRxI($^fx)GHVj6Xm01bP2xP`i+6BoXfuZkPRr(O^9AF=1-wEl0&is&J^K< z8cYL~OdEVAX!JC<8tdBIfD~JY*NnJK{$gLZ)S9ypSM%)jEu>^zl+zd4>lWb=`Z7E={Wd}aWiX}VP#aWsfUGDBO}}MLqvQ#Sb#WV)PCz; zyU5*`G}PU}>Lls^iams}xcINwLrl!(|BgMJzc5~x*$YHDUk$XL`kJ1Rw)MK&db3Oz zSQuj3I^ZgR?Lqe(6n7tsRrkv~Di0$-*HA^Xtjno4@ji>*UT&cvr@WMRt!-Wt)N8Tk zx9P|4#7k$a-@36^-6JB){V7GZ4SqI9AgFSBtP}qleoMTfOU)0Hl4>0nbwXk4kUt#< z1+8ZYR|OzYRCy?~kY%8Y@>!>92JwOd#?TyTC>`4nv@@F~+=11NQ7cHqD6Bx6fYd)$ zeE8-?&RQYD*n=d#l>zK{6GETqMK9TdMqJ#9w)V*ij0HH2)g&z%$+}OO*MKEASOeS; zAhw+V@jm~?jPu}eO3D%ogFh>PHgtrn4RR??1mv#hwSnP^U!wwb8&sqA#wfvfAS)E$jBx0t zZJF?5HU?X4rfGqsAh0T-PxceDe()wBnJjTfdPX#G|7UWg6FT&ZjH#|?mCVwQS@9mX ze7kA`XQlfeuCYJBN|$-G^JH?|Zd&i%P4Nk7ceZtc?>I!lAi5zbF^`3sKZxWPS?Or7 zxTI%#JS?hOkwX8PT$|`p)s)eIBh^g!7MM5#XMn1unYyA<=MN4G9($?h#BE|Yew9LE zf;22PCvP4`sa|s$*6B>lacW=LdY>0UOX`QK@95xhif&NyPgdE%%{_wYjzm&667+PW zg~lmab%1eHWIRbF{V1C4bB7iE-_%B^K}6Da9p<5)(j!9Aim95$tY(^_?4<+r8!y{V z)-_Bk7#40P7A?d$3Hs1md&3v#n#oM`6;NXU8%W)(xmu3(dz7Eef!U5tJh^+)`-6|l zD`GODCiOQQA&RMFc=X6fN5EicD14Y%zs$-R0Pl)6Ko}u^(Rcop|oCV z@v!3>lxLQOa%VOv%&ZU}|c-ZC4zKVV3kczp7BWK5k>cT4l* zUwFM6giYk0VlG}UJRt}hFo{j+I=<79BFBQ^*(YME)6 zEo6=e5ck-@xoRzy%UO=xIXs@6Jg)m(CpBc!B^X)6_1HxtHObG6V8puO+akHjx^3z= z9lom|jiU-UrQyEp`}wWx9)@Nu?WnV#AH4ZRJ$`&o+Hv#L$-|qH!5{j4^o^^fGEC}W zYA}QNA~2d*lL8~?KPDlpg!USGAxeKWkdukEUA8bj+DpklW&^1WhMmd(L=iE6iTRg6 zI|8HfH;d@!IC5i170%WO2Mrq7$;ZRY#tZpECIz%=ZHv%Kq4Y{3HxE=l?yrLx33x$1 z1ThPb69^6pQuo2{!w}NUKf@3!rdb4BUCpSbe<7gCnHSf4rA;b%Zl-b8wU+=_9Zhv>;- zPB{2XR*Ke3xr9&4#kGc7Og1^^X^s1i^Ik=8Fh709Dz3pMC_)MQs=bE^sN zn$S0+E9Osi-~o?5ED1YusFFyj2U920E4C^$F%YQ2b$R8P-z&5~ z8b`%Y#^8X;5kSbi>S^K00r9H4JiA;UfT84s+%%tYvWO?mq1@Ph#|AJ_Faq2u39Dd_ zfFC=#s#cYbDk+qkEye0fR6X!R4Eq%_MBQx@TsFVku^vbUSkpKdVgYYXK#DWp-uCzx zzfn)S%@SxR>yf+t-iW9O-EMZ>dGWjB^0^HlJ9{p0>BBQ9ONG>0Z2@n1#2W4PDZl>@ zLESFVhpWR?xCn%>JuVSv=Qltw(LsuW)B{RhjVgw${{$eQzJpLX*z{Ifzc-t#S>1+W z%K0JU_8N#r!$bYyphA#x@sUn|MW~s+(@!zL1W9R!vEDeSZ#Y!5{Fv4Xud68#%yv0hs}9t2v@ zyL64L395ptB3VI^Sk9W?zPz{C-Wf4A{|$aFZt&^L%;88Ske4h zwMSHkosTijof)};17h?0)53l2<`aBX@Y!EYtjDE*srRi(!?O60&C?JSMxIwPZ%wWS zH1uCi)aOvB$3*8x2%5c`mbf25IY=7eX8&M zG?wM=stMXm0QjY+zyeB&a!+u+0?H^(rRZZfz9#B4(J{F>=N0EvUY!y}lk4lk`v5}l zSdHHw$93XmHu19fF_ByARiX4oCDP=bqWMym;dc`RCzh1~Qv4`n`szlvC#=%GR$$>+ zaP3b|itIUPiJRdWepLV%y{v{M+@QH+3hzGGqq%G7xcvjkCQss4P*BU}&^e@Q=Vl$s z3`R!FbO{k9D(bKRk*_zr>a8OuDnZjCqXJp|CiHp;j*8tEc%G{7CW@%E?RBp026%0m zeEv;I=T|I;vWtDFi**G@9$+ke%T!_cAsDb_$l}^)n+V zd6!sKjdqzHGBl!Z{C7fSNF^+2@}4EoMC%*pdh*mgekknjz%%V0Hxddl=r#U3I4(cf zYMx&6?s3%Yn>MyyZA3AdH2}CeTT;G==#60g2VBi(iM>+_fFDyFxB|k^22;LN!mL_> z8@ndC?4e7pAPD&se`p9jY)phK`iB#qaDmjjU?Rg62fNLGpA=lr zf-p!&ip7OsTDN*c>rcKe)>NZiv4vdW_jU?j@l&CUA1JyV1n#52hiYveg-_B(z;EYY zcm$A+8k?2Lu}|t>o0VM+NJ`YZWN7M)KQTgy19@eCCqab@@X1~kY7b^CD~_$cIh>j$ zz2DU+bnq2dxy<>fx`x(dMV97b%O8XlJzy19*i&qEASAU7BIPe1`SQCl#5BJsichV; z$vm<>UL8tTl>s9ZRl8nCfV7tc#a_B^Lx_&FgbP_5ot<0DEHSpaqFbxr_g<)DED0d} zWYj}kq`aS)lOG8{%mTiz#o)V6$`4zsR%XOs6&V2@miTriaA#hdg#m~tGbY&-5#T*) zTEe`SwW!w=Y7bM+D_Ym^TrREg^r8Alnx1-eaepX}4)A^il zD$q^iQ`Mv8x6k+YTP2Uyb@2E3eIXMsbTvCmy4N3Rb~~D0kM@Vf|Y{k|iL8AjDTwX&*n^3xn*5R*_+I1THj@Gl?mpcKQRn3wSSnk)Wlf+qRcH`Fx zd(GxOy2t9vCzqs0=m)=Bjs><+>Wia+bdrNp0Mf}bIBMiLBaP;jj4{2D7k=wGHN4`q zaoHnz7TUc5>Dz+cBP=!^muq;ZO;e|i(Y_205Hyf@El{XVo{f<+Jv(P_HJ_F9RM+;r zT;(=41eHA~ij;scCxZ{P&meM_{w)1($NH-1;;IQQpTRF+i5)+LtXRKW$%f!J;WRO{ z@8U6w1P>=J=T2UbY>IIczP7L%Z-jHxWkCR-9$5g-jlA4(L{12&os_swNkc z;wNmMyD`GxiL>Jm3JWCg3n8z5$FISu!E|JkK$GYE8qjY;5$%sxgGp6mq$*(}tjDWo z{6OMC`I|-{9zU2Yk@|}w460(1paQRgv4?_oJ>pmV5=>Er`f2E;66q^j=b|PjlOi2pJ_n`4-0R|hz{NG+oKSXi4LIfsx|K4 z0u%j1qW2!!eAY)w?C~FRV z%uUdZ&o)8;ps!N{6!ky-Q*=~41XZcpSG#KG5yWF#Y@aUPcp>&?1EBN^3{k3~N2Gs1 z*!#Lb#?$8>Vl2_A1k#q>7yU?Ibfrb7Qg-OA->-!sq*U4jqVo63^5G_mHLBUEbW2)^ z3bd(!@vA~Ak>cQ=Gh9Uxq~Fsq0}7`0xdn35y^2G5K;OEi4Xmeg<+54c7}x+p{k80H zUP*@XcFoMjR0;9i`&N;?6=n%ean_>|e~L22ES9%2EY(0M6qD?o zO;1A}@H99?7A6;-CaoB$Dq93q&sY9go?I8R^aD@14EYpPy^fgTeE+LK=!YYBvA3Em z`Jb9B=B*lg|9${q`mPdY@YsSEzG+pN15F|MI0Mhdaqyc5{O8BYOjE()BV+y2?7F5- z?g*v2zP7?ai7F+^>KcLz<^bY^P`VO_65h37jduT4fgs)h_{J@O_&> z6LWIzsP#n|=Ngc$+nr}7HBM9VGoNY@4ON2~JYxJQ&D3bLyE=ETNHC*{%1D zNP`elZ`iqR40VtMW=;<$z?aqA2FIy~Yt}c;gE)^X6Bl#WChsRg1-bL*DE4Uu1;@F` z&?x|YecO)P-N}3N&jp@#mZc8skJQC#EpQYa(dRs%RzQ0NYo(i)7%j$C@#US{>4qwH-i$ z{dvAEeoZB%9GQZ(%C}jzWhYI&d|&(ZGqHGZotgSf2&_S;vI%G4BnR5Qtmj$NTACb{ z+up2AkAa<_*@XbvVk&{7g(_xQy^NCbfKovG;whjk{y_$4>z2k?iYk1? zTI?;?7dwJ$@XwAh+G&JVFpt{DhBTkJV%m7Ju@7ljp&4d^li%iD!Tki3iwkonHyv9o zF5K=?Du#CBx6D^-ZSovdW^yUUukK7DH&&tfRmvEY1rT({Rj3qTp>B{X+jzT!j;%TmU7fb?TM0MTx&K@ur#b4D#~SDhDPXWC)cSB(69p4hRGQ zV+sd2Fp?nEtqPJt<4S@h0!KDWWk~i_T=wY6w4uE=X%T0;6^Bdd2#~WtO8LaD5daQs zDY&)3dLc3lQ(_-!asR?iaUk}(fJ)kGuy$L1)h)SxWnMNptGGxZS3k&5hz~roKo66O z)A%fpJ+U!zMe6xTVIU?mG$od79lC_52bRoh5QV09W0kB(7><}{7+<~mGH+XP@PU9$ zSVf*(G!Ftams%^YDGWb@<6}=`F+UVBu(Y=@{-{I ze1T{I`9y!e!mLe6P^8hqug8i!?g}9Fay&|=5dXd>TRW!A=PTZ?G8p^#MLPfdNPvTF z-S5o(g=tqJI5IC)Q5-4Wf7!8n5VhR)Z|KWY8Kv9t!>CIoOM-hg*2kNO1k7wa2Ak9M{C7!NDvrAmq|e)fU3AN<1G z4F|h_w?F0&ICenMmbN`}a$)9skGh9Euc5S(|fB0Xflr^KG`)?ogEVtKfQGl9sUa!k>Y zTKQyU$VGpGVu6Ff{{xHtYRy+91)a@T6psuKhV0}29ak9waEM^$WYD0tK8@Y3l);-4 z10@ZB$9?~3fKRvwLC?o{4$jC2_;fR$o<4eZ{$a&NP(ohq%r?@49V2lAD*)HSb0_FV zaJ)leJ7Lcz^Oi=9;8&OsQ8v%3%060a^>NXG>?1d47l#n}4tk@g6OR(<&faU&k*tJ! zE>XwHkWC4Z80XN6fRTI@^McO;0i=H5s7UVP#(~w#afab?g8U1LJ)N5yzWjM(iZcaX zKf$BEu2S-s6g&3Cz~i7(TIx3<_tpJn$Me&*VBaRR9I?j}8gbmW9%-)TgNmP#6orCu zH;Lxf#2cjR6^oC9_MC+<3Jgt4l^n zpM@+!3r-1Ogiy4RxAN)v0$yYsCn?Jn$_Z>9jdi(g$@ zptk8gZJsOC0~k+_9eP@i#^`BxOxc$`fG~l~k;5GMv3s4VWO#0ejL(6^kIVktx4(#E z9+BnkJ?`!c0s0J&1<}XEipv4P#QDhd-C23Tv@@*J@sZ0=j#eAukOx-)@j?qP&$bmn zyyy^<+%=B^aeg((J$$5S)Y`e`^VILHXIg&g;UC;1^F#Ja=nF(1QQjW2 znKTAaV|@m5VW>6{ySA;m{7G}*)Zx?}5Y!v6D|6JszbS@GOoR;JD?w2GLR61JWLLMU z_7e|X^I4mC$`}MAt-iP8WTT9vt8mjSV))|u8b7OQtm9J94^a+$|w z9EnLrKN?uWtlwL2p@ zHurF&qx48_?=h%x3KF%AXfbVwv62h8Msq1ehvw5JG|Hz$j46`VmV-#cz(~4MBz*%5 zo`yNiGyUP#b^vZwS*0MK$kry)bQGK`Olb~WI|vDoDsh`F4u}ndqVkJYUB*VEa$6c{FBU-hHY)@--LJ2v1x*c%ErUjfJTT}uaN|o=-!%&EULN8lN ztQiXzsZ`M`Eb|?zmQ<*B!LS9tl~e7Sr{@aP?fqHirMGT2E7coM!mIXr^vT=+8#voevWqKngq(G6Lv&8HR7)5jdTzP%^ zV=woqIn-c}pYVB}nPtpUvoYcsc3u#kLb=(#We4o_=NcwJOtqL}){y~4#F%r2q*%AW z{>w_c{DqD6@U8oIQuoq+8;#Kvo8R%{KO6bQJFa#ow725$ih7SKsC8r}X2qSwQW zNT&@nKvIk6S7~=oHBTEuQSKj(*hxgHB8u85N?Odeh4%LY8qUWR?JlS49e#I%i5MfO zC@(%SeEpQSX1(#}dQ-2em_!x?`2Gn>3Q?R*p6ASTpz$A(ZJJy!3788FbeWivwh<&JvY5OaLQfsxSYPUel+`l(Fyj;z!#CpX^07~ z53{#(>-Y{0|1y@<(n3tCiDT#Pi339upYCm8OX~^!9?OjwG8y!LNx?`S1bQQG*nWQ@ z?5AG!aIm=JXuVk8rS)L|tgCU5ebca3?gN~1B)P-(=>~w=@mv1Pw|4hfRTMFmUTjm7 z=X8v_P`r~i8{oAMEFWMZz`(UoT+S{IQ?qt{=d~SN)Z7!aX*M^N?SCceqg$BdQ)}Kf zshl)6JoKU99P+7L^%0}UuR=tiglR1@xxIHgq*c4R(qn0ca&d05*p}}V#~(-+R3-Lh zv7Zc*Gpm^Yvb_Q-?RjY~K#XDM0sXLlpf9Z-dHu8DFoTMLKQxwBQCcybjbk-!8G*0i zc@7YEWKOg1_zn8oU7y@Ht(J}XDo>XO0|#1(S>Tac2K#%hzIm%k@yHk=5TVJNPNTRS zh_JU6543qDRKcRubqXW4^aCtGo}iX=e6r8A&cz0PdPu8Yy)uo5L98~0^;@Iu3X8TX zl>~>>V`fNW5(yENVwycidc2@^0CJM{;hLBhUegIq6Z!z0`WL_&KQwc#w2g$;rWGuy z^sis$r}co&8T@f0v=0t4^c6&+RiBU+i0FM8v;r3tq0+?XNvvSd3df!;@L;mi<c*Tjh z&A<((^tFt&0v1<ZN3vGjVeP|3MVSTG@YdJEvnTOTA`Ly!2OG~=hQW<$g z%q{EswAb_bCc3eb;za@FS-X8+v+=`O#lluN@&~TShNlcu z?`}sRM3s6NF_RtOp(||TxdJ3v@_}r($FF&6$~)7cj_I-A=eV1z&-S+Juus3yB8C{J z>Kt)pkbmmsp_TcB2;6%lPTPtlGB>Yo-h1Z=v_DYWaQG|41+uK}6M2}?=dusvolsRk zWtjE@`6bK*gv<+PD|44?V;{pVJ_;G9%A)4dK!pM2c9PIQ!IQyC70KvY`tc_(aAa=y zK04KD({ zS1x(RsNw8n+U~NpBSFEa{mcW|;|e0xL$vE?qqQ;AfUKKx)?hd$U0ixFt-QxMVQbZ5 zHr1_!C`Mkg{JelZg~DU2(;Y1{UD(k0wS?Q;0CoLEOSZw#u+jXB8e2*2ZD5z)mKe%& zTEep_Z*zU##z8t^X!Qza_x=w$PR|hW-~Ah;0~!ZD<5$di9ftMDp<2IIcVuZDe`?`~ z1tS^q+G-~eFFeF^dRt^+?18m-pY-LrR+hS6>NrD_1sllGmK>-qslizy8msj7{)pdk z^tiaNQ(3Sp>HIKBkriGcXKqg~l@nYqn6S!w(Uu?eQ@}$zO zN%_mFo^uDT*yG^WK-Ozz_fD7)%Jc{DLfGYw|Q97cW-o_Cz<+u_fn%Q>jzc z1vW&x!$(($zf3OuMnoCV!s$Je6NzjCUcS3Bf}LL^xc{Q&CO78LX|yvqbz7?3g!a_0 z;AEwiTlF5;Eqpa}er@AU3dkb7ed8GuPsQsxam$3a11fQ3?iZ7_YOf)Y85(%{O3oe;N z00nIA_%&zaBK4(9_H4t3Nvg%`Iw^fDUK1u&lNBY%TPxbaM_hgoouOEB&}+>`qRSuf zdo)dVN@!i6UHRvni3j*&9h6~+?``N1_uwX*rY5|gxFGT%^5IBwJ>O0`bOYaLem&=< z=xyfb!Ae2BW+&!g8#bp~Pt7aE^ypq}R3ZENe!4a+t)a}V=6;=aYE>8J8ogMjY}GaS zF=^kb%$r}chFY~;{c#Z#aIwLsR*b zCjIP$&XbuYY)kI9ee$%^w!%q^fed-^lVx4`dk`{R^^ho9GYepz3jjs=7CEI8^s&IB zEDH-Nqgn$%QL-dMygzXTq?NN-mwQs?1zC|Sg;=MLG*4XA{jHOJ$~kfuc1H||m&EYM z@gl@2d~M1jLxquk+I})_!ExAo?UMTz zT(qHrNNjF9hs0#@hl}IWIJ<-WeeCV8hENCU-s$aK@O~2p&4{r>vQmd>E=vWK>!;zF z)duZ)#hjp@>Z+x2iGl0ah~G#HNWaB26gCY6!kp4&Co`;2#>}dzE$PC1 ztJ&39@$YwDJep|u-#hoIgc5=Tfq%3Qel*zWG^GiVGJ;_VYEZUzoIxWs9GbGoHT2(i zJ`e#w=1iZG+HIi#JoEQgKuM)u#)O*~9L%KxNv5WejsX&gy+Fx420c;5Xwf`G?@9=s zopIdD6-IUi;9sq)**WllUVAE$pd@4-#2@*?-CdqYDzn8ijDNHjUe+8933>s|=zqx{ z*r!+kvIm`>G9${ycOk^vE7MuM1)b~Z68gG)oS_BRQVc+ak^0F33;bSKb*Ad)I&x_( zmJuc) z60$TNrE^NCY5=zB;?~@iCuBngP$-zAijd}_o`L@<8{8#ukQ9GCenzl~-P)H_#%jjX zIU)^KopdXJeZLr>m0$d> zhTtm^sYoFBR-RoaYg>G9K~^BwReEMJ*=E9kH33uEU3x~=_E1zHr+7t{_%lYeRNnMr z?=*=L6wq=1d|8B(()FkD4(Pw{#R!wuFI~Jh-+8Yc75-5~giPQ36-4Z4y|_6^nd1{H zOy?>ol<<|ym`+ZS5zzfI+GkJYofs=EU#^qOOgYurL+$4?Bw z^5KVAJq^e!rN%7kT!)kv5b9x{)^0$c8$*SVouw^#)6n#$HE<@H!NbooTO1oug~Ftt zKH@)ps)Zpsy8C+IZ%wzpyPs^bWP9P#pLM%9b|Qa%;BhdJm#tu#bd9O1AeW1puY^Q* zzY3_jcl6TqKfqsGDbv1xl{`$M3&^8<`dPHq-Es7@s_xnCp!$-l<#mNbJWRyuU?p&| zUQ+m;4)2pgJFD|APu@vgRsJ?N*f5-Y8tv9Vz;;+N$~w(No}v9DDeB^+=<~%Q4u-)= zZDz!RO#l`pZM?Y`@m*H<>I>t=;?KkQ9()=Hz#t*l;dVmCHfo~5HvMfInm%L9%a9bg zfb=n~=&lgiF{Wk_ETX`}wva~zSdg{G*vR&UvLEWHLb+%Y@ef7`*{B#29EA_4+On$8 z0?P=+-L_7Yr)if20@tJ(>XRi02ShYvtW*HhuTYW}twLFetF zRlG9Yf!`+^92hx$oSWRglqWMc-wCXFV*MIW*Cdsi&Ue!+^M>OA&!;#;7@FtnvL&t9 zy|3D=MH)(`pKoW^=QelqfQ_t=o8|6w+?#R&?2Soh>g?31c~XE4OK)&xu8ayqKa-~2 zpIbLF3i~(ee`+IQbtOtXk&bKM-j}DRt72DHs)VC%-UyaBaaRWHiB(8tP;&?V4dmU4PKVG& zRiG#5DSUL7cKV}J4T~kbX5T{N54UJzthw_n?Hk9H!_OxS&OOE%o_G~foymBiE^&~O zI4kCO+0)$8XS$7dw?8|xc^WD{we3HxxZAE%X6dj}PPD!8;4rwijPvlBSS4WX4Yvut zi{0;<_su*3gT9-H+2sj-{hoaQXbc5-=&~4*KB*YkUum(CSeV2usCM)rSCxJpty$vj zXHkZWBhzG%@yWEb@8k!DfUUMi8MGmNW8C^ zTI46(?lC1zy*7eM(a;N*Z8kgfk}_X*^*hsV^H7Xc`{qO&T0VI)Z}Nm^=;RHTMlzrz zV1I*S038SV1UQx3Xvv0V#cYgqg{}fLeMB;WN=0hve&#r31|%sklpY}l`N$C}es{-t zu$Ehr@`6Jo12!3zcXj`yPBf-dfM1!KpA0i85@Z;N$p?-AbofwGLEKw_dc0^w+Mw*i zTaH^<;%h9nzvFK?7@!JIO3>K1b=;)utaJ0h zG~uNoj$g%r0SXSp|F;3a(FG@`{mKt72dLAc6vT#l_4VGwzlVHv1uK6$R^=}NH81o_ z5kP;J{eP?f9KRC1Z%4BiOTf)Zy}?vo{zqPChyHmM=z@Im;9F8H4?QOVCa&-M$Fl)g zH~aVYd^h`$04rfGn&~^jHRvDt-{F}uCy$`5N}drFyfIEFD4!Xd1muq)#jzbA7m5A| z4*1!f`Uibxrnvi*7SIeo01zi= zEcjNFYop=#+k~yZl;w?V+HZm{j?|C*`0AAc7v{W!e+N_OovT!mC>Mt-2a*6p$_EWN zMVZD_WL@$-4S(z-DK_y6H5unPER&*54MW|8Q59n=oH@88rH(ezpjT3t)| z$A@LSSs!`cd$UqoS@ZtL(ecyQ(JaY$^rNd*Y`>P%e4Y6NJrRSbh$yMog6U}AY^k0J z^)r;eG}3w8G3d;5*f-+up|csQzEi3F3r_Tt1LsFDdrWw#B&!Rpn|r^WGXRa>1#9B0 zxY?-Wb8o>o9uf4#JejQR@JQ>^0%%2hnO65^w5-|Ze7~?fX{jt?!CT(niLEj-6X!W zPSWZyOR+hHRH!xOx#}V5{p49PH+r{J$eia0Ichz)4VAgKR6rt?aC&yaNlK5g=&=Er zG}9a=v~^QKnXH8+O=J9jYsqP!EF@VUbniU+QKp73N}i9dA;C*|Tk8w5*V_@K6nj0T zI=ufEEmPu1Q67Z<5^Q_9B#W=OOanLJ|3Z z<$zFuz(o^hmOX}R&9zK>&$**HUOUh3ym7T#o-4ce71&-SGdk^eUIctVK%%igGRo0E z@K`eiv5(iypl+_&aT69G_tF@1n(nxjuXkdt8~)a;pPe{E6;(2w+SzQ#dAPhrFDF;@ zH*Gx5p}0Vzu?O=j?GW>s4&-#Cn?J(MPqY%4?p}Uezpb+vD>XaJ z#o^7NcbD;QA=|Xi;(8Vs6=>Jx@c?tvdoFhAY&=%@SKYS?lExw26mRIuvF7Yd9GPn(UsVsyu#LzdUq3Ln z+keV|?U9(aeSW(}nC1Bl9k2KH%vo0}Q!S>TINa`>3PB%7Cz`&lC&)L0d=PpFM6e+y z)L3S8ctC!%g$!h1;rb=sw!G?n&hDC%bF6*^f8jcU?mI=Vl<5U{HNNBC= zcCWapM;JZ~o?5nLy_80TLEgv8;k-3cNV9%vRQ*au|JXIb zGv!}iM?QL=(r_=vbd0bU{i`@L-aW_~3G|#YBm&+Z?l5vKnSovWejN zrmh2AKR{>QFK%%E;iY;NSl9FQOy`j&Np|L7;_CM0YL9-sE7SecSXlGmLw{lePV80B zqZ_1eN)tKaUVORr(k$pvSVWpeot=?Tg}Gh@mFwk>LCz({N_-ikAQz3veKbd>>-|P4 zY>0#J2VZrU@F?*R4lZ+x?X=>oo9-Oa8QbL+_>{O4r!7;X4-y z1RK7MZXwyCTyCt1`O#Z9=FlQ>l4~QxkKg0fXX9Pp^T{gp*^j67Y*wsX?Vp7J^*rJR zmEu|gm0}?lsvUVjAy$3!kD!W^&)Msp?z8&3UB@iVx38c?3W~&WXY)kOK_LMl4fU(b z@4SR3P6Io9V-g2cMh&B6Z;jQ~Fcj5^jJ?d&P$3s?r^jvd;+eO*y!XO^XLyizn0pD$ zQ3I>cz-Zj?hVC2`#?f~wJcw5rm{y0G!C3p+0{)UfliG-{2Ev$B;+WCI5{8mDz=8>J z9g~R4xa(CCMkUfDaV-`GPtyc^A9V$+u*0bai?r8xaQew^Yknwsq|e^Xa(M$XHTWN1 zruR{y-^8ay?RlKYBqT7zF@z$qE|%yd%xFtCC2{gaaJsCHsd(*o<&RjuDts1rKVaN-=d1h4ctBvE1NbK*~CmQ$T;z45#qj1pwDTN4IxV-CW2A^xcvK40| znrloMSsTF0VeOM@wVp#vjyD17snDtU?t1RM8r%sQ1e0e z9e@UjCVdzJ78T~vQz|IUCklcJl1J+Q7!h{tr1Z0>fTo6DOrQu}JSC3MOciRo*K$o* z!&M5K755Ujk5Kvq39Ae|NDwjgJMnUd=(UN{F=yXq8#_bsLfp3iUpP?wi07_mYDBEk z;Z>%XbfLUJ!RZ>`NCec2;?j%YMNP(_d;fa}%Zs56`o6ghcstXwH^m`?bTy*VA||N5 z0%N-n4f7Mwo$tMbW@=oIA05oG)5}pn%0UT;2vwVl=YdhF=}=M3q%HOQ1aD%0B!Q2Q zLKdeLjpNg3-aSEHC#5ZG#--(Y0oOuz7DCR^ufpLBFxd%7;Io{7v&3|F_zDSJynbO;7# z<3bQhOCgj4J3iBS+_5A%wfPFR=mTNkx!qi@sNob*DU6{|LOKpzi9sTrFg=-b|a0R5_KVa{0M_in<%O z(A{!(W^WL^%Qo(b{T;0J%*JI6yrH~Pv0y?4UJJ`A|moan&8ftt+l^4 zZ2REKU5bYw&dnhjg_DQl@dqLaAPOL6@z!10X*ZQW_`rKniN+C6E3xR@2PqRy2MD34 zq-k)P`NW-|NLy)}QB7mQTW@};iOJAo#;gU-@6n8e@Ya+&Xu!{Ytb%gZuK-8MHEFZ* z?+vqSuLm!BzF^mrIKa)vmX@Z3-k27afaZs!B;|6-Kc1?XYj>No$j5KDi#h;PCJwT} zWXuGbg}!CY+ywZZ8Z>f@iAN4oRa}xU(yz$|6KbRh`AE46NLcJ^P5K7;&9v8A4ssu$ z-AQ(+o73YIf{eK0F5JZjz1{aI@`FT>2<^TJV8xUeucAtYoy1=h%3@l1(Y~DaiCd{-}dmP3yBvZBa5Y~A=IBE71tw8BrKL8Q6S@zN`U*=OcRFi z<4e6;c04y{hjt)08ZozhLPJ+;DpirF(^m|u7`#{nSn2vRHtDHuS_yF( zori3JiG=XTs7fTHNdF}6TVESqH7;k|4<)zZ=!HAH5ZQk4`H|;qg8zMsEKecuXDE)4 zRNL@p;Y!;C4jiF`fmdDx_Q#_W!@~&Hfu57Y_pvlTmQM#-F};K>WrllNz-2A zzY$K`UdepzA+3(%8dC`|#yQjBP5yIU;5;c&CgvO0uXtE?o5pS~USGN=TfaNaG zpJg(LM+t6#063;pYWJ4Xy`O)b)o`XhoDqK$*CQ$w*Yb8jaKtU_fX+ z%?S*VL1s+J)6l%In%A8U__VNhO#|CTT#M`NG@7#YfP+{`u1HFJIe1}A4P2c5I5lp(oL zvM%3ogGFztib@S(MiiszM*Ldx8?_l;L`ecFHGi`UE%PY%F`m6h> z=O>Q0Nvngoy=m9CC)d}FcG{8a5+?V%!X*nO7LDLg({SpjAEU~Cyb%7aVK)!66YkgU zbLlqPif_Rv_|mFYu9RtX)=Sqv1Knbn7aR1g< zVr0LS{HEpk^H-PJ0TOjpOCdd@=jV>BKta+l;q)#RUQ$iEs>IjD?R$H=_rkc#**m?T z^~roZ033%6?jcXD2kdVw(FWy`O-4cX)AT?gN3%n|xcH2l!fO0ny)u{HZi5{w7d18T znkz`Erw^^ZwCF2?5K2+sgczdZj&5F}few-R2Mw{q#-M48mB61Bv4skW(zkbf|Jh^cBl_QT0kbH)GtbzHZjl6Foq}3+x|&2 z5V&b68()7JsO+QD@phvA4lL1&{8nvj+&i`E4le!qyfTNqkB^i;0$;)desuVpm$17} z`CIT~je0DEx>6(KVv;es&3l1z0?M~s7egV(BUd&U=9#*l()DRaq9F?BTwDlKQ`S(^ z^}=3Y;j{#18(*e2xVr7u52hqYyUr!2pWizM)xGupB}~ZOHB`h62;7HXQx;SdyU=PE z9{q)A$QyUh3Y!dgAlI*-J7-iR4-3f(8wJYJT5Z_#$79S_7Z>CRZwFq!Z221Vc6w(o zXyxaJ4;b`#+TyR$TSG1FBxwQ`1!u8c8zi1n&@*>@ueHRwU-Y4KRqO{+X1>zqRJ;r^ z>1#Cl)Gt?Rq)wpF0@%3*0ZW@|~^Jr)PqcjYe*|eS<1`0Tic0wgt#?p(N517|t7#ipFk@!tf zAUk6}j8K1ou|``2G7~c+jWY;_lv)Kc(>7R6z?codQJV#BX+agX)cDPF_eoHjjP!29 zmnX}gbB{Zh;yPss+wm**r0A8qEJ_L{EZ7thi= zFaaO}Gj#9+adxc!()7oQAFJ_B>HBOOB93+Zdu$u}_?2)6bwh3jnz*#gg0OJs++@m; zBHMzTd&u;!_bfK*G`bwgE~@*hsC*D?BOZt&|SCXRPRK`&_IzScQ zjb1-f(s?$=(;Q2kDqutubrX8#m)^{noj1EG0SQP}C8*h0EoZf);CG4WAc zb$i~R$jIW=m$9>@hPm>ai*-m;eGjp^hN3y@`oUm}nWBNplH0c<*%b1qp`eX?H+PmS z$K|)NGDmX?#${~ow-wHl`Jdg-N7gJhcb98V9PTU;x9ofKZY*}Jw^?dS^|8B&sIVu; z$Xea=bN8_NSuNIl*0TO{339~f8^vsAl0|{tRTJA!$4xd89fc<#sNuSsY~6Zr(^3wN z5Y!e=UlM|R#Uu2i1~?>el{wyTAiG$Uec_?=>BK>(OW{6$C5mO*($6#6fA$i+;D7ug zb@TjD%(yYnH?V@4lG4!y=(FjfiYh73rPx3BlgV`ss*pI*sy~tnPQ<`?-Jgo?sxi(u zrao=FXk@Y)&-T?Q}!kpdTmSVckhL8Ml#cYi5uBsxxVnFp+3 z7b7iQ%zPuF87p38go~7Ur&@o^q`6+o^$U#a8|qy6D)>bM%|Mt9 zVs&xZ;9?M6^xvl$+j(dday}bFI4AXh)@2<_j)1vGen%4}?=O*fhGbb7QBnbnAyL5( z21*z|s2Flqn1-WZk~D8NIX?R>X3JQU?4!qhDdtIOxT6=BLZ zG3Q&v{l1^9PbGB#bZ?<3cHaKI&Ea>jfTsvjAU({e@b>f&7_FZ}o1pVVO?ZS1;LWqb zm1jr*|1K;5taykjR5GpU3g+)*As*Mw;Z{Hul!8DCfXrt3M!|vq$v%qVBZ-wq-6>K< ztdh98p(Ke`g$dN@c*mSp{yoLLHc*C1F?i6fEj#`F+hv} z*g*hHNT^Jrnp~*C#aJb;SZcm)4pZedqLe=<ww9R}Ik-nmak!!YEol%|Z^3ts#V1EQ+QK2i(ra5gx`;xp z30@fI;3;%`Ju+;7smBKQ6a@9*PX`FXF>jGEN|}nhn1FHRr)hHuo^I`u!x!d<-8Plz z(JYmwG|_O2r=2gtg5&OO5ug@5$kdWV-m)&*t!lw47YygB-ou&ktWgQ!r0@c?%;AO3 zd1(42B>G%Y6p^&^!NB2%lx2yl_GUBl8W&l`6<8XSla7l!#B*fG;;SsRFJDyD2As(w zf30W?I7?}9XoTSp6um@6zoe=e$J{)%UGuYHoY`+m)?2o?a2ZrT#(7zvA9Pe?yR)Pj z6Sw>-YhkD`8GV$QS$;j$dlbE6HN)sSiffY>kIQ=-ktTj4D~;qrsCr`stmQQyotoFa z>URzns;7dVYqNW6Cl-oXH_KJ{7wu&$ayS215<%q`GW&n!5GGSn)0eeKbrafo$zId6 zJeltOk%%}8_p7lmi=ept5$sy4$*@1-BvZI;@7hS&Pa{(>&RIqNlW479#*E)E{;NvfR7rCzLkXz2UD|5b8vX}F39wS8A94}6loL=(vwD5)$@{B~ zwGO5ce0x>WnVg&0Ef7_{M;f-B-K~BasadfRtFMBK?M60J08rSqrlFR$?pC8dtL}Oo zujfSEgID{d@^@Ik0}vKS@=Z@D+VIYXPvh45f=|$Z4l{uWo6G+N5jy|^aJrc%w54{R$X$IoI^q+aiU-~cM*D;Vl z$&e*!02uji?(aALcfA?#{gkGD11%orf8+mD$vZ{O6sa>wX#M}de*gxs0OIq3zM#pC zY1n$cV@V>&OiC;4U#@FjZB;syna2S3=_ETz)mbsmQr1k{mHDjbWM61$p5bPi_Ec(7 zb;(qF)_snp5!oz>P#U}d*o+T52BKhIZA02p*4`m|+9|1t11wZ-Yfc1N-2nA}!VvRG z%?e?60j#3&O$rhZ7IW4ajo1*2vpA;F%uhafWhyff;zs3spT5H}gHG_(Kh`NL-7}2s zI;VxE%_x6WgW6RFn6x>#{{d)y753{)O7iBLSD-#2W;_{R8ZA z^d8H8yyZWUr9Lra5$XC}ljQ5Em%StXCKNx-entE9wLIr75<7=gB1FNA@Sh9-q1gU? z9p4So{#zb;Ng~*`lt16UF#!30VgS&97yvO`(Ko^OP51lWNi^ws>65G6!>q(5MId>; z-yizVhigdlL9yZUQ>Eu?cgek3p%0w@KX{}MK@M@n{SqMP;4hI4pft^u9{;5@hq?}@ z)?u^W{Oht=nL^}^{{nyn4Et)TuS?zDa-ee(Z?-}6e-Z$IAV9Wg4PfjNS^yw3K_!M+ z@do#=%YHS=>%J@NqmiR>DQXA&7Xb9(6-@`byc6IGy?w@<14`tp6pCSm`4_bGi=zLR z091=Q(EFPMn7SzT3G>@;6B&?01zebR28>ky1ptb`29_Y27Y3&EFf;zf{{R%=zRRrO z><#iAk2;S~s2nvK30M{q#J?Z!e?kDU=qv)i;Y0wVI5kb`yZ-#>G???U4LQ$O*&m%W z`~t)ap#MOhfq11yUn0o1tOV`eD_yV=?~IR$1!JsZanj1ZFty;i^nAUvWOB;HC-dK4 zyC3QlpcE*Tqs}#=1pgZW04mJKA}J^5M$Kg|i9AFS(zk>=^mWU@D}g-xyk1+Iz88A3 z$X9}3Ug(Rt^A`X_gmd&r&E`1Y`M`Z_>?SgLbFUtO7%ML@B;^b`BCPs@?`tLOb`^m_ zYd?4_s<`^B+^P(9nuUgz+kawcL=uQp#uY?ZobeQuiDBU3aeP8NDrUWuvh2+~3E~)^ zi%ZZZgU$YEnj>3?q?K#dMV_{3)uyPWlO>CHjE6hL5AGKLajvD4;O1hodzh5C*M3s@ zAk+2#r{~|erQ~38+Jxg^HSw)Ir!fLa|dlE7#@K?&Cp;Z~M6#yawU9R#Q72#WXOs~30rTMHrTQ%_9 z8Wt2k@Pci+L!fPq4p~3U2&jOP7gij;DKSo9w1(aj!mQl$I-7FW?7gJenqZ||Nd-Xe z*kA>WU7ojAC!;~Hw?}fNiDz|^W#l;gS);3n0C3NWM9=f8b3vJL` zdymv5=~|i6)JBuM4yKC7(la8GY;p^wVSeGbow}oqr9W4@^K6Hz{&Z1#{rc!HFqgfm zJ|la!23bVe7*_V=tbg0$WY{k!KOKN{q{p+n6JVUw{L%TNAejMR$G1OMtp>(OK-JIXO#JLRT*LYH zi3p3hNCL{Dcx>!)s@eU@XPu_xkCeJ8m3ci-M1rE{C1{q61>>=q!<(7nmtX8WM&tz2aNoXqaNJLvu~ zpqtP6l~J-s&6nQ=|3`&U#G$hPIrT;t*6&f_^Tf12{%;>Yjky`l@Jn8K)z?kfDrji^xjf^CBlJlT{zzMNnIV1!RXuY*XP7RPT3T0QmFvOST0A1 zpcOKfoH20`YBZ=wxQSAn&tQ~9k2)$fdceW}SC}xW=y;0I{ZlU(9lKP?ucE!3hWVeo z4*Xx4qUx6PF{Sg&cG|{6a8X5T+e@jPnR}EbeI0n5=p@~N+KA8y|Z7D zeYy#nmC1eCzpItj)FkK8LS@>37wyS!cp)IO)vP zVORx^J%y_}dT(kb@Hd>V$>?^rxZ(-g*^81FzueC~S`f)Eh?#&MoV6VG7%HQ->_-nS zx#DRh(t@0U_HQfdg?aBAz{6xdJpke`0ohG+g)6ZObXF3YoZXG1jHVARYn@#7Y-t6v z)JMh6XX}nXlIb1JOw=#d*|S?Z2a6F-LS_4oE`(WsFo<0IKahp(bk@I72)EAEz5$9Y zXFKJH_e5u4yAxKvNpN#{A=C~-XyK`sOyEaCnMN9!#Jlv-DW`ec#`5-(E?br-uVOad z+yAKVDLN|7rc$}ylP+MX^+hNP4%5~QqUvdmk}OA%aP@F|IL5Euc)QJWa|z2hQ`J5r z;3y1{k&cwnQWPQw9K|m}!1as?$Sbe1Jl~@KXh$fR=KMtc%-2VEuvL#ba}r%53DpphAg5kO+uJ(1{w`J5y=p* zv}!k91<}+86vHK6TDfL?`9+Udv^;Mymo^hj_UQ~SYH;_{5T=cV5tsrD5)|Or2i~zN zW_Fa)M1wKwRYRG->|y=&WGwkYa*6}f8Nb!^E3gP1zHwmb2U`bD5IMlqBN=2EGWbY3 z={(@iE^f4K!-e)EhT$-dq$X}OMv)wu5(SS;B53k%AphQHYXni#)FtgBAY0&JL1I<1 zUDbwc7KQjVVPrf#z0{y!d0zYaTUs|f(fsj~bpCv`>oM>C&qN&OS6$xMD`q66A;Q?f zPksWL?vP;mtRg>J*AHw5-Uw5`HS4#W><6ucE!;ZM z>?&?};@y}SS`igN!xQ%qr`1`d(=s4fp~Qz92%#03NNA_%?aKDUnCdeVqSih;!k1rX>Dd;P z`V-?x!ub0{!$Zf*`=g+|k;I_wb3fbnKodaz#eKF4yJ3gT#GGDWJf$ z(A!Eu9n7*LAugT8^+#uFhhr=}82s?qHeCAc7Z$;O$d-k8p%{a_Dy~?0$=FT4%2#?d zuD#dvg1vYKluo@Yih>FJ+Gza<{lvv_=FL0x29Q&LjZGv}Da3)h)Y?Nn?(6nGWpk*)+X2rEj}Co~+yk?zM~b zjVOGZ9PGJt(0Yj-s~*id<;WN`oXJtVJe%=D-t>_IY8`T$tNHADr!fHSz1p%iuQ5s@&A#RzQcy{qStnC)&r zB3jL^ht@OnU~KD#2Ahg7;PP$KdsN`;H^i%WD%Xo#T)5i`jT*uH{T&{_SVD7j`DQA z0(z>j8xnxzmvvdcW!6}_Mf~W~7nGxY_1{%m;o!gPa(c}_JNqMmSWLX2>9|s=)V}4W zYbztk8(QsB<;AmOY6qmA5hrTP2zocPo1rIEn6O@uUsM!4oO^b9HC&>;aCF%|Jl0N{xg`4@XM`4@W>ILlNI-u$noJ{eW1{pa&5*)uQKmxlOTdhNZ$aJqVY z&Z+9)*6uP{m#MM5t7oFAs@2fE*V|2{hh(UO)zcB^t7?T=R~!=l_3owp$H{?{WY^B` zwQ6>)(#>z@=K?$g9k@&#Vr57=h&oOvI=3Z9HrfMERxc|cp5;&2vAZcml3~O4!^3$J z^#vg`AvEyeG=r9i8X|p`4E7`mDS#C8vrhH3ZdZ7G(-U}$= zpuhgU75GryBX{TDhClb>p&HCQASm(A%2MtwUmoxTpnK+Ml479X=7OKe!sAMP(ZJac z=FM9@9KD@*5K_S;u%L?&T_B}RwVimuR>8HAldk`HYi-NiS+&|bmFjJKjb!v-bFKW& zG~3*Z8I)SY`*$nm9b3RT8+u|KG)1@0E()3Bu;4m;=(IKx;{rU&n`_V*!%rl}Tqrix zE<8`9?4(4S_kox5Uy*L`(ZSj*h;f`Nm22ynLItR?tDe)z^Cpj8)Jvx@yeNNThwMkB zG|%E3Zw}ruMn@g=mZ5jF9SCRmv3HGi>oY=%;w3}gRu-Dn)wnZRjg_UmstXLgl{Sun zF%>$;76YBodkY}Ck)Ha6bv%eCuup`)u?YCSu4IDWj{uy++dg`$3fhWS*634^&-K3*Y*(#b8WRk?<|1M2?JzwgT9=SH(vL%-nFLK z-6t0S$DzK1X1S))1-LZK%cKz^H&x`=RxO=?x4u z+}JN+G!)ha9defAJoTLi!FhDFNol`DJIU*X_PJa3)THliYAZ>-4?}wjsu<-{gZg(k zny}4J28#!d{NQ?pQlUIst8_+UclH4* zaGgWOfQa3}i-8+0{hi7t4_r#o?jjM=a72?8HEX|NjFq1!JV)C(HP;8~4H(S!bt6Vu zAQS8R9p^yQu_fzkw&{N^Mq<8sQjf&y^z%%bu zf)-eoqat_IC0}j=GY4Z1-sq>nU+Gc^D5XlxGpW`oUHOf>Af$& zD?n7_(HV5n2}@2wd*;)L^ z59yY%kMb9AHtjG~V}S#-uG$s(M;> z)M{7tDN8C?xKmsqIW^jTkakvOf=Zv8x($!2@h*Sn6>==@RiJ^g;kyD3ZSzb*CKJ_- zdV*2C_mokZt@vKlYxZtYdTX6Pys@D57S&~R-;q3zk{@QYg!wJal*!6|^XoX=ccj54WCbrmBjJ+;B4cUa zXfp-_XMcx^9?blT{dr=Vq{OW_+C4Mxs}CKb*%h(k-gloyy%L(-{OuoRqR+{VQ6hdE zY6KV6U2_bj$GS6VR(7x2F%9PSHb!POf9+g@-yR4GUJsn`+uYilsr*vvKM9%r{7vg1 zy}l`1sIVS&R$4Q;QYOnctK;x>$-LPg1s~O1_6?)(O~*ZTBFa1;deOOYuTy8`Wj3(8 z5du*8lu~Lg>;3dJP@X(xezE{)1sxF1Zr_-fsdg`ATZXoAu`kc`l4w^w6_WRMuq}HQ z4VWY2{;dD1Xl{PyMj8a`ZAFs&kqiT2Sd31L4o8Ac zlGr(=ZPQ`(Wm!GV5T+diVOB4<_Nk(`9=Q~HX&0&|)(FEWxih;>PUjWr zMDuRw`wGlel4z#->msaClC}x@2s9Hc)7ZKxdXtFG!ChNsm!N^`YACp@rc;`l)Yeh3 z7>yW>JF78erkW1=pchG^Xo6DJFPN|1Pk?UtO7z3gAeAO9g^^M3Br>%1?}6gR%A}?h zG@%hFe*@K_jD*fI%j^ntNz71<-)WL+Wh(xHww9&q(oD$kWhGtJFt3+PGP5}eC!$!U zzYf~|30GSiJhiJU^p^rkE;pJ(>OTflt?7!9NyZI3YUr#j2BJhlo*AH9I=6Say7yOo zL`{GI*QE=W@UMDwwL;ztv;Bo7j%@KsA5TL4Q>&#-JP?H~0We$>U8dCrl(#DEaFmQzY_f31(F`_Q>pOLgb^BVR-?UY8 z!*du4?|KU&wbc>I+NcPoaYk%vGVdtrQepnh!0zN`iAq(MhU*Vm**f2u$+5(%xH(hF z4_}&lpM8EM?vZ+9WL{UPy>7J(?>fe1V0TZUv9_0RQr%nLgC#Z4)q|=eP|W5b@0yJ@ zLY$u zB|x&2o$)wIVb>IgCf+0r+Ay#=utw{Fxn`lXK6Sfu>XU{wln1CBOpLTgn|MC1L0^Y%+Z~st6M4fsyOe)w0|20 z7;Smyw(-Ib#gYsOEudiMgUAO(0EP$x1srhug|cLMV&{_pwiAyt*ZBO*sqLn@Y;flB z*nPYCXXsr?$Pw{0|M+j>nu0E+((>f};upC}-d{Mx-kqm}1%uoQw1dRY51Tyqt{Pts-M)U;4SFY7D z2C5(K&*%RALI|P+Do#71v|$povib)RaYy85(I*wbNnEwa&j&p zF~Gw>MnFtJOMSi-G^4hoI7y+jl~PuqK5~R#V}J@Ug}{OM0Bw?p071=>0G3~hIU>n| z8dgbzXkAcwh94xR>7OUTfIxt(Y`{Ypv#IVm!a%Yi{Ck^Mt#9=?afN;H4wFA1Csh#o zkbXnfgRTKn1EH}(NW#`)V!HA6kVFQZS3nF4`Vi{}mPmmO0`BX_$DczW_kFr^#+$f0 zp?h$l8r@fp74UB)fzmMo{ri*pe$g@3Eq(g{iY5p-!ZYgU`He>pzXst4T(XF(?u+WDw|&8&u!Xk)Rs+feAp~LT!dl82BTF|}AgtJf+c_Bl&f&{6dhCzPQ=g2916SjmEykc?QC+?v8Z`=@35 z|HSXf^@Dl^e)IAE#=DtqxcFAuas62s_&dKrOdJIe2n4Xd5C1m;z3BGZ^pEGqq_qu8sBu@*T3$;%`DTeZe*zeCT3lY%%h~d)|z*_>uA@*DgmKO32e-q&x z@*ed0^J{WXSs(!_;C~nxmH`+66e1X4s5r165dY8LbKQM1T|nCFZy~%C}-bs08(q1XjF*5CI(o);I8* zfL<=K4&LaUbfp%hT?lfne*r<|MI9Ff6e<|Z`vnzcEBuA?{tBE$AUK3KiGd3d^cBe4 zhZpb}r>1E^IzM}}_2!sw0jw!VXx<;Bpy#0Xz|TNlK)g?lx3l;`@q8C%4Et!{h<8?- zp9H^m4K2&b2=`6yMUl5?EPwo?}_8BN=f0_M>P%X7e^MCs|1w;CI>FdVFor5QbP_pNe9hvDk+j5xP-?c?r>u*GmUlR_22?YlR z0Rrml8)Xal!+Cy{A+m?{?C9MDD1g3ncDTJgTM5V>-$_dF&vwMrp%=zighHRMhpLAs zOklk;Lds7ow+lFh5Vih6l%$~MrrX3fx*;`Mojn;eAuqvm0AKAVf?YK_7KTB(Wfp+x zwB0l&PGn(?)5_i*Yl__-ktA#^W2GPQ^3!kq*~ZVwNnG9Ngnsap-x;yt6UB4{Q}$_5 z{=MZ-8)r!HZdrxB%WRAC>j=g z`#IV&CsuVQQxyRH@iJyn(7;h!C}O^^KYPj+D~OAT40Y>qMER~els>F`M$C3QPWn zZysmUcRoq!hE*{|lgrP_8X~3JNs6SYv5u#kZ|c^qsj$=yYOKqTFL_mgi}}Yf7v#Bd zsHc$NPuZ&Jx=XIMa8&985iDwGndcjFpVA=Qq2uJLSRCVphK0?|cKrVm>f@;5i_2z$E~XWHsL{kJ&=) zvk1J%gdOz6ix4mcBm_kU6bK)14v-uW1yI6JOAdlQ4J^i_~&W5Fe*D2C@_DwM1NvTeRwDcFi=0>9v{7P_WfK~<}f5i zS6rdc4pU>R#st5-ME`tLQn24!GvGoWg>w=LcVr_n<;IMoN|kvP7;@fxsol*@Asm`q zAQ>QXACzw+c74!=#>xB?^6?lEjZ8;ekY#$|Jyw^nVQL?ubZLgRVeY}7LA-#w_3TL7 zKQ?ZnxXCM=!2Tb)zB($7rh7943lM_41qtpRY=XPH2X_b_Jh;0CcX#&*?(R--cN+$n zCGVT>x8LsBJQti!m=tO5S}xAFdU1YIZ_Bz?;FE6EI(56 zf^b#Q4cohLGpMVWTbMBG3bbCobs?YGgJRL`FnkSuF@MEn9^EePE4VN1V*sN{(OFSd zksW%3tlHXi?844#e~40L_x%X?X8{UTM(8#rt@(-Dq`%$(cTG+7><$;!4w;BB57*aB z=x?dmx6VoFiYJk{fEpM59nD7ac?gmo0}s2OVgPnUt&U4w3VTzQC)eo*uLFFWCJT~U zJ5Ns2>(e!c_+eVsCh7f$CO04lxsKAEwSC^KCsdq6Mc>oxX&mUmTunh)vokt%efOrQ5SxE{Gc~Zv`sfIR5zj zi}33Q<_!<#Din1q}+%C zF*{c-S5tlzi{WAGJvp!O8nFrDj-j>HiDinc`N^4?EN}32Ik*kHJH}bW5x^A^w_C{3 zaokn()0)K#Nea-A1FM|o;)**_P|YM*MifxtV)bq9scr>tj`G8d?Zh1Lv2yxR=E26< z^PG1|=m~de0_EdB@@BDPVf-o+LGfwK*GqFo_XU|yb{zzb@QyyWt!pm2sA$IlBDa7_ zfxte+{o$f2HM1NpE{xOqG>n(fSno%pVv-}O?JS+0>zxl3W(yeb7CJccNo%2+1bsN3 zE4G);t&I}}-XRg2mezX(`=IGC$CoR`?}f(f&dEkVIbPGTpLFsO7*Vi6=A;-S=?Ssn zc`1q{A>{>v30`vOMuegKVc;QrByzy>ri@q)@R#nWPN=zpNq%z{bwAhZ?;Bp$IsA6? z*=}nRSws&-QtL|tgEcVaI{sDMEZ*|-zeQ_wUyIf>YAT@Qha9or%%Gyd)@(a?jYlh$ z-IDE(gouXW>)mh5&57p5yZ>_5LCKYXpH|v?+vt-{a^p_r&F%9UK|3RUaKgdsE-mnQ zzs@JRgI|8L&Sz!`0Cbs|U`tM(Krn^aI>((!DKv%W%Z+7LKRo1ES#c(QDzW2fyEAc> zduoHf+m#t7xZ#A1^)Iza_>fkOH(BG?5*{&`9;h}0OCH*>&$2pO?&r>ME*vL_QWY60 zNY$ikIX0UgPnGFVq{|tLXd| zI}jR;U6SaZ|GvxFaa4K(LVW#y3!ofq3PUu4O;nTY>`?U*YT4UTP`hn6S-6Zq4W=5_78D0<7vZ?!;98qt_{PzT}^9Y34^BZNf zCi%>X=eUdeq0XT1!jb42kVn#*cA$ z3%xM6f7}Uz>+0>O3-Ievmc>~-6I~8e^Zo*P|Xa zNXZ~#c^#>qm9{MQb^rGG(2 zswKNYc61g9S%?zV>v-jd`}%con0F9J0|@zXKqR0{2-flpa_qowN*MTmH- z$()CQq8rK}{7y7!mZ^MWNbEl=Bp-&srq|9(&B#{=$wU+%CFMM9#5TIs)nWX+79Qqd zoMjY(Pc0K{+Dr>*-nN3~Lk>hGpVQdR;bE0IX*BcFshsONOHx%9%EOPxnqw9mZM@1~z*@v+Z*{Ql+I9U4=U6 zhle-YM(YvD5HtSl0`~V2C=sJI8seeXXl(!gt*;s9u9)Yh(1vpg5spfgtS0#C&jC@G zUml=~9oZX?Xcal*I92R*bwgdWBr?)iIYVwbMci=%?w;1t`j6|vmn|0LyOJ(pt*Tew z-;*`W_|Od)gvUB!1>1b{Ox~|{NMgPJ$kK9aBNizSCxs`M!k%Pf){=;DB&flv=Q2b3 zTF#>lmStNRc;1k!^$r5mt}Nb^c_)lO*RWig5EH;MR$5wudMFJ7oi}~FTLE{`q8{J- zjhix$K7H&%>6XWq4a9B4OFj4iujo1(YOwEE1a7#7F+{YYocyR8P~V;$`_bEv=o|5h zL@=qQkM^0h40ge~;E|&O^KcfyC{Q|XbqlZ7c8t*=a`_7QY{U(|Ta4${(OB)&-Su(U zh4SPCfX+QB@$Rq3R`!AI?t0Rm*jBnOsab2zkb&z3hyXY|)D`SgA0DsCC*yAqG38+$ zwI!uP@?mo!HRvbLb`iv-genl7Z*7Z~f9&~I8eic{ho5fWY<_r%%Vu)czO8~5_q?D$ zV!k+b)H@qJ^VJ(S0_Qk1T;u@6DVIQ!M)p3DZ8b3UGN!lv>lrKm<~-ivJ<2+M7r`sQ zG5+^$b;)K$-iQt_FSmU&=fJX#?;bCucbAe}ksbO10ww%D$-bpA8pV?01(|*|M}=BBrq9=!4V^h)LCsG4w!+ z3z_F*b<4q1vUf(rNBBFMr%sFG#IY}n_QH0tcXi8Y28*_$z?S3iGqVK{%Qr1l^tupy zf=?0rnw-cbqb`8ppSN;t>gsE4)*8m9i#7K1c=d1#Oq9nQOSHn<^g}O~j&#i@PIb`w zjgQa^KjSYm>Mq>&8^D~4LB8Rwo^Ql_lB>$tZ7Y`T%FTZJ6xKDjXhK(=thW)i*+$ZP zdSjbJ5P~A4-Qq-8!nZZ1OCz63u?p6_x$rQfj`ew=lU@8=wkxdmL#fPxCwh9VHz#RL z-YzE3svicsWhO%>I$O+BDpu5Y!{%`8SMIfaj7NM*XS1V)%NV#u`|UR|mns13$gL&& zmt?>Qn-12(=%+VaCxHa(tsnIw^uP7Djz3JiU$xVXg&eN%Ut?d-v{#?LpgbQxpqw|V zMu99+C>U+Pp<`udIO-NIL9X+6A3SR{vvwfhVPpa4ZLWC4C9FM2AM$!@Cs1zDr{}(R zL~TF%di?+{<@;6@xwiZUr7O1?NVc8`o*%I)-78#&iOt)Q8iHT^o=KH zrisbA`RY1ynT&g^9(d)qDBUSaX(rgDBQqTQ(_@FrH?QRnk6yHCPR0K;~!67CDBi^+6iF%Urym8%?)Vw zJLNu;WZdjOrAL-Ha_)`0!B3Z;Qd&wqTFleWSml65NL_i0*{qw&h*zrQGpkq?c$*Qo zv)vLgo`l73?hFscx_{eD@}bn-zY$lCo!T0-G+$olnZNcvZy?z5eVI!xuEE9J^>#ed zf!NW%@HOq0_dy=dS}`JZSTa3-VQGKsvtcLvyt^=tv!OikAgnDpwGU#Obgeyn<#VZPvY z3Ndmo>-<2A_Wa@bqYWDL2K0uU7_@nC-BpzlCB3f<1qAn}K#2GP=)cu#zVY`m68L^B zW`{*~VYf6rgYjcXJ&!aa(6fJ}X7YsTHxbOU7s{g*4B>mn0I(6#eID9V;hf`720OHk zRWEYPC(IYYUx3yh(e|Bz+)e~;Dxp+Y7f^;{iv9QzC&75D5c~O1k2N*3i&yzJv8rLF z`C+zYiZZ%g<^6%J{1ThFA(B}2b(dgh$aQ~jK$VvLs*Aq=tSp%~_K9>kt@Xmmw(W#g z2I(;Qa5B+)wDIe1K?B7OVv>cc;+uz^5#8fUO+S^AAUXWQ}p15{nAg&{|Z_a5@C+s8w|gEp78xfbg? zCA+|AdDG;oG)=+LQ~W!d@CJQ-pn!)qcmPyYWw+Ay`J(W78FaktDKCcHWC%HpcJvw& zST!y*@WZIFy!-ealV$fiI#^p`8mlhYsD|dwzDK}zaR3?IY(T7fs1_)qwQiJ zvVh+_qKmz-NH-%gI1Rem3dI4+0m|i6P~gjd;YVLhI6>{3+BYutD~%}C6)3MBlj4&D zjJEIY-`&4Pfg*t-X=^sX;W}{+)bQ6`Mb-V!DMGFm`)r!X-KpA|HOC%ehj7o_)86%S z8^0$tdWYA;ztLxtSlV1DGEJ?dg^mrrY|kRA7nr6Njiz(A60v*5xp36_J(^79(;yG) zsitMVZUH}?Q~q1>z=%L;ZU@=B9v)MT$ZC z$P(iDCY+q)<6r#Rib)s6{(}8uho1eNfrZ34*#TfZ8)Zl{z~j&9vH#qQZBH}%cX4$g z93dRIOaEL0g&ErJpG#bNJ0)bZq!^0rZ3Fokjy?UKMR1zUZ4;H&pj(fEl3abY>#4A$ zS!h(Ibqd*3ckvogzvHmIzMmTJJ8f?#9WKbp9yuhGpl~g-%;#3O;MQCWa<0Z}tEOyA z0WznbTBVjNz6h!wUe?5Gl-y?mw7H*j&hnnEWUnKy__qMv*KFGuLqeQ|avw?5v$_rE z8p}RD)_-qWe`rm1sZ%F>q!ObQLgwgBkMME$jdGafWX|7~$t|(nN-faW9Jz(mY18z; zvnG*LA~5}pFwO1IP0ViBY%kP(MofNfcd=?FO4G^i1YqloZE}(cW1rsY?c>zsv3&=h z{BjOho}oH)o;e{a*t9Jve=5Tq zzgC7}M9-LgtqkLi3YsMUQ<1n0r|mu2VR5+XuWp6jSRU@05qrLs`o&#`&m)4aoA4^B zx{ygP&#Se%pA!Sq;dLaBbdp+4VG;5Jrx}?*AFtRFo+!qGpCdGlIDJ^av}x-bszDBt zthqvOZie)B}e*!+oP zNz`ciL4Q2K=a~r2qTt?0-2JC$OQs1uo!RjX{nfB<*y#fC8#;!&1kYnzdeJCE_u%BF z{qv1k@5fg;5A6xgJ-Lb4>n1H4*||?3bIH||zO-Blj`1KaorbMq(bkN%KE(;wy;5kIIQI=(BMzD8?Sm*v-PJB?j0C_3t)P^_U|F;5ce>?Lol<#Ip~g0 z=uUoX!++f5p5lYN5G3}v_Zb6#WN}Z>aV*>MuCt$}u;{BSmwQ<~sDa~Q_9^vomQiwBX30MD{DXmW6N-{26i6NybJnShxiGVnCHL zZv}7(wMT(pb)d49;IL0~AyfD9&Ze6;Vfgl$tu-v@T*=4*OWQ>$v#|7TvNm3(ZGRd$ zwX0x4Ho1!sWIHMv7Zd#5JYlM7KXX`Dxt{?eSp|Knnd9DhuqU0xG%S)TvTZq|(VBCr zmCX((<3g@(`8Gh0IE9dMf$!a8R$29KtxJ*3=aW7`>}5JO8gi>;_H$?FE;0uJRh|8T zy{9(8wq$enAaOQkl4kSGEmO?;l`+##^im>{@DZ&W7i)GArf|`};6W^7)`O}B9)ft* zK+h*CL7&O;dFZg|j_WUrmQC7%_*ur$#GK|Ye=fzVuy^6i#Ursgl$Q61ir?0lU%=L% zi|+m9=vhUVILcev8qjoM(OBjO-Z>e~zGZBZ+j|z=4m_7O|IX;#xd5EP`^CGp%wu*8 z65X;;Hae}W%P+haK3=5(RHu(MrqjpbJ3mazX7E)o&-(N{J|4Niy?%KSubJ%J`|s>( zM=B_8zI9d}4(NKnHvsDEh&20JkKBD;Ig6pmYgcLc+0`zc7H?H)8oGXhV;Hrc`f?W* zWO2k3o8@{}#Y=G4?{2mfX-DzpVbJ)~@eSXX&=wXT~VyS&+rtZcL!N_Y%Nq_t=)Y5eC9zIsWOhx;6zUB>`2)ncV3w z-C@s{{nT;YY2sO__uv?E5gpO?U?&GX25rcBuf_is;1Q3}^DgOqi8#OgMUvHkjzVwa zA+6fvH+*XYcw87T0Lu$f*|rV$cUC)9odRdF0VNjW6X=n5Y7-1vuxA)81Cn3$g(lT> zNXtcKw00xPvQ@|O*!u70FUCw==EnB+#yWF%ZE!OxTX1;}&wA*+dFMGz#?WOaBpxCd zPwWzB*^)DQu$QkG4$d zV>Mz%?`8J1eucN8ccLNCgANUPKWO$v0Qw3qW};Y?Jc|Wg{lU9Dax$G-lO9X#dqgRe z*iWofC|~)_2t+#MYnJ8IU~@Q?2^xVSB{$>r>GjV=8s8APVbkBry(S=%lyePyHV3R8 zB?JS*v9fa;5{5Upc__$`@Js|v3}-6h!xFiee2EZBCUxTxVI&1xnm_q90FIm;*XnP(;5Bib&5nCN&j0yPWeb;< zG^(YL+tg$nwP1s7wVHYFF{&An=OtVUWAsXSG%0IWoTKWBA+PiztmU4F^^D*~DqP=s#I9*_7M_25O8+%!5jdmqU&B{hu4A0P z2gFTW{`Pjo1pWpY=6}=mkG~VVAjzNjqB69!dO=?g_eMW-O-E{A_!XceE@X?OZKJN$u~3CJ8Uv@P{a;*$B80~IzK{SP21N&q9} zk>K!_4cx<&IG!ks-w*=KpI6DJd)^-4oqGuf$oMVrljxcFU-*c$=xcY7-3H6R*UXNK zg*C@u7rt;+WR4Isv13~?mhQcgY}ga;gYr3ZLH@=5erog0w>Ps5P;ae#e?)(xXQy}Q zeI-f5%r*=Fm=qSg?_cI-qUGV%d`T26T%LvRFNa(wOa-E!Vl*En^(Ci=1&A%g02zwM znen^hN>>9^$PkOWWRm8k35U<;Q}9NT=VlE>u)O)8tXtg`F8f2ks|e;pzFHL)3D?;{ z@u8jzrB4SJ|Ls`v`Px0f(MU5}9jA63RRIsHV=jTb?T!qaX$CR6v};3I2cL(%BCn5+ z{axc-^tHbJ0;0S=uTRJ5ux79&U_R;A-SeP%1K7^*11Y?l0a}i%xHq!6x<{k~=ZGUG z`968JE_=jIC925<1#z3uVA)^9bbzxtP%7Na$Ijyc*&M(qpFcy;a}s-2bABopYxz=S zImrIlOncDGZaF_@Lhognai@+n3mIfRXeKN`aJ3XO5#)Ini%axxkMqAK+qy02|7-Ya zn|6!z?}3v%R^Goo2Xc~sU0rsGe|Y}m-{GH)@+UqyB?Axis~7vLEtjF}pcz00(1V*> zpd~DzEhV+x+ouI5HsBjBgugh*EaxvWrBP9lRdZ8t2|hNfcP-B{pmD0t&VqV=e_-|n zVB{1uc5D_gi`7XIPR>rHge{$jMqFV1M!#gANJQq-=!PF7sbu+*un2T1JXV$p1J?j7 ztDGfv9rB{X^N!_OY5hN)}qlmcriI#Okcc18Hh-(f}7K=;s0;j ze3q68U(ns`dNw3kgg&5v;5N#!%R=WEMEzX&JE(wV!L?U)@={+V^=nd=VdEPHK&jiV z=fpN`yWyEva0D2xZ+Z)d5QajU%T`$;iP1|HF|HtnKG2wkLYh<)aY#ubNvQTlBI3ip zJQF@N?X9fO7J;V+dYg;b4ND7Jo9ozBxU%uF8kEVl&%XkRsm11?)~DgjW{R z7d--sYGMQ!vBh7M%dWEKeeZVuJQ-pZ7?)4-E~f~tw&Tr4I%R@RUD%GV!;DzH=CU2V z77WgYgIBROqR;2C#Eo66fq1#L?X|oD^W`U})oc>izo7A|nMi`L4Q>t7WNv^6)fN8oU&dRKbdF5Exy6f=r@i@LJ!dtPf9 z5Wt?wSp9|{k%*;)F{b!PZlA)6j$s#Z-qDFPeK50!1!bD1Pl{N5^(*r5EwkLMlrt@P zpn)$UY#nK2_>;q3<=x)Xn&@dh-iMW}WOHSPwp8TJ0C}%zLOi+2jBOb9(%1An!Y0hO zx7;;wauPynn=tW`glKfl5$I(?Em_zKNu{dEtKVC)e{A(zkDK%hR!7ydmeIWqcKZ*EMON;dUVy> z|AnOl_zOtha)Rj1Yk+l-O%kQ~xmkjw$3_bXK)%(y%FM*c6sxqsRLiX5Wu9fp`4O8$RNfmwyv4vMj z6@D3XO)i}v(&!Kb(Pr}WVSOuC2K$|@R8Pufawo&qir&S; zEW-|ib`F~hpEi|51SS`xP#x=Xg7bqfF;eXHy$5amREG@b?76~gH~9RW{qCUI;P3tG zxSfr?G9g2W*KV97D9N^J{glT(RV#-$xTGtS4vQ1_-lJK*@g_`P1n>$^`?6eT=1u6@ zCJlKrVLIlAzQ4OU=j?xglQ;hIJa+oJS5ll&lNGNLtGC9(29EorC~v@y>Nj)zC+-#} z_2+nm4Kr5ko9P*DHNyk~nITiRll>%M$ksge)t%s@{%Q>oe+-;Su<{@xn3~A49 z=ndM$A2`j&=PJgF89xJRPSo?PC7LXI?TVG8WVi@$|gX^>r%>BHq|RPDlP_ z?ftzQf0*i^W`^^76Qf^HFmjbVgv1agM^fh{iv~> zHZ65i1f>lYC)h1;X3B!y35p;tIH!^z|*ZyEBiC)+7lmKp7W0@2Wm`g`FU!P0omvX~N zS@+Aclij65(bMgG-m!_7$`c>Y>4(m{ty550ACo2I3B0sY=SSjsLwTbc^p<66g$~X@fe~4s%1Y zkxO9>5Aq^&WLPs5dNLwYKBc}n3eWNOSAiIvGS%N*EvN(azE}H1$S|o}h6mLkSQCoX zG@_XepEAu592pfUlzR$n^_pcc$B@aXSU&@UhCv=ovk}1*dzZ_gK^8L=!XWlgXH-#B zXwX5=_%#~#&zR^xXiSW*ucf<+om?h~;ZFWW^%E1E5nW$+)O@Aru>g|5+sPA8i%$Ar zUd|$$ixL}Fx$17tm{(OZ$bN9w*w(uvT+FH#lZTiC$>ptTQ+$^btsZ06X$>QRl3#^; zn5bH&q$Clyh&wE7P(LB%@wAu%UZg4DFXbtOEZYzj%Oh$Sy7z*pQ5i#;LnKj6kDD+- z<`x2BfBpgoAIdPMK3-6w$dZH*vj4=rRGs+j*Q;5{cT%Sz&FJ42HyIh)l=dSZC26`` z@zoEPye9<#Tf#CiORh!(jeJ{yGPUnmJ|rS>o{BX7+W_)!cW8vy4~`Kd^47f_Bi95P z-%1LjLS9y#VTj52!bDoCC_bfSB^k~0ePZh3c34hZ)w9U^zL9s|@p5)X-ieM#zSIqX zXod6r>haU7R*2j(guAq8r)w)< zZ#St9B{Pm3{1LoK18P)?{b)G1;=8)s>)-J^Oxb7Q#PxTXVH~llfIH~QBr{q-_kCW1 z3!|QQr<%6TS7l^V=}z3m!~V1Tm+6T7^ENJR!ujxlk?+BrG~B|ayzMGf*7=eYDOXfZYFBt`_YZRG{TV@S2*Y{OSnd{zH8Cha;er0FXY`Cx+w)k!J zKM~e$t^Qg3QKosX5d-8LpIA&kSC;79dIv{ZZ01LpOBkbzypqXiqygWX8e~>@3FOD< z&Wjt5vu+r#`E%s2-fTQ{0BL^rHOR3tbUpMt8~TLlKOa~dZ#CoqhoyEHU{@kk9=+4* z@I-vxYnSj=$k-=ZJW{`3B6v)KI35I5q6<#STCdbX)SjZVXHIp%?9&kKPihG$8|9UA zc&EhftfqePf|HQdCvrzmAAd@nYj#-LVVsHsM~EAh_p!Gt$n{yOx8(FW&@$Yh)n_df z8~NsfN@aM0s82>it|ja{nTWCV$%>ALTw?;;Ie-eum4|8uS<;1% zDlebZ#2*AH{n>D+W;fTgs06NFpp+~ZHb?+gXwuX3-XUmr=G>Ta&1QD8ovo^Z$Njn5 z8#uQ|CxutEJh~*<;RVo?Yfj}9m<$QUXNKXCN);3 zz9dT?Yjb$u91mEngi!^IhP<{zw!E2jer4VqU^aoR>d7Ha?Gj@_Su$c3OcYEwYglNt z*a55AqnPj`@$@#aV6{47!aevDlCR!xh<`o3x%MC618|SSei4q@i2Wbbyl{06@^LNH z73EeGYdI$I%+!V&@)$2FB<<|n1(ZxahStbiMJ}n)6Qr4vwQ16li#}5mJfmMbw3xMub+6ypkqSJuV_c2S0VFipZ`#Hg(my%9MGx`e_fDVVMv^I)V^JZ|Q~e3yNSH7Cf{% zFaMf^?D2x_qg!5Ctu#Tprn$Yvv~1Nna!+_Rq$N((rXgpc=dSC^vlKnWlAyLZCgVEH zg8HZRnf7E~&WoVm$k8SUtQ7$_NsW9q6)t4}?sJ_7VXvezzw`WRaij9I1=#)iRW7cE zCTm?>J=u2hT@d)H(u~d0&22rhfHmn6rjJke`)El0Cp6@DEOKyC(+zH}G=!^JuD4Nc z>XJz7UZaS#*Yx)f-xn;$U^TniDAXvU5Rg@Ikt$>qqt{zk&0Z5I+X5jtz2NVmt}=F! zrcLyNYZDUavq(q$-bc3qdk}k-S+J#T;{6;LuwkwEQJu4yhGD{6RbQ&37S|vzmTac{ zlbr~IMh|;&!Tro=%C~4>&lCSlsB2-wow^m6Gg5X&?;?}a8g2Pjye{^Jp7_Htn=&cO)u62^^68F3?oICfp0TVUdsNV zXP0Tu&X@NSv()p~t?M)r0R?IW3n2*$qKI8XoSG3Q#x2vu$f~sG`7A~sk&+PR>y{?v zt6!e%6pR@>=8bZ<-uU>h>^=)!(Bd+1u8G@6+2{7I-g_7yc+WU8Y#9(co4WWhF2^wf z#}@qZLvM6^Zd$OW5+TR>r+5+Zo2E*}aI&GNVlCx(jYp?~dCiCAX3ERyO(!3i$-g_2 zzU9CBm{5WW#XcvMDEK268VB_Y8(Hri>ZVDOCy3`=O!E&aTJ78q-*M3!5nxh|U{Sx~ zyt{C3Dtpu3#R2v94b+b}Uw&w2`5;a=uOoEUGx}S2ti{6=>m+fC2`mVrvW#sjyo(JO z#|G#<8FAP8FdXzY%!*dtega!v49$6_5RGHuR16x`i=ZRToT;COwW8!WG6H)>#tawFID_PTCaY4q8M#aG*Th&b zyOUFiE_uVhAhEDi*HTSc#;a3G7(DC8cT_Kl{UoEVYQe5n5cc@|DuX>|alkwu>r{w# zD^2BTMxKWuD7I1sD-2@55D{h@zm#rQf4q+f61=Na6|&; zUFBg1U~o9>8gjlpN}yR<5o;TH=&fc%2*()m)DA!mTIB-cI72x?){G%*0%2Il1)pjm zA6z#@@5JvmMoxe^r!Fm6$Hox;CA%hWuW{=D-h;d0J)6C5>oQkb9rLGpUHTPg*Grh) z;R0^OPghs%H`}J{#E}fZqrQk^7E^D^aRb0+DxtFPoMdj_z9nk=@oeXL^u!KpO(2TvjmmIC1P+8rlCn#=p7SzEJp-pc77?&HP;Dgc$BaI$%9vJNV z*tRgS(GCWK`utNi6>v^+(tzKZVCT^ZL=o(h5X86ng?#Pbk9hK!iC-%szIyPeWpm-){!Rn6S^fjIM8g+PuOMXkni_%}j1iyVFAp#0giZCl3a{>61) z)zSx)*kfeurjNiXcvJk28Q6~5Xa0j;8}%VIidO5%mK6DNYe;FjhlvZoIxU4L@ZgJr4%p!hS%VIV~KfvEg$KD!?x$VJQIPYiU;|bsK zOIVZ~5zhDg>t@l15-YxY=C!b^xpAC|#w;uw%!_bs;LKIL?z8t}Bc2fE$&AoemG@ zn(4FR?47M0LayuayZk>0;T2Ni4EJIi&3v!7o6}zRySl#oxkCag;iLM0kT8T*!R?Yk zp9>uBd&`+lgQ&d`&SyY94f7YhYotRfpUMJV4mIxze*!G)6fGpLJz}X%rO#t&V*bHJ zfKwOLIh-KXhv|nbi^=1b8{x^9+M3db+(zkDSpC+lvXVEArcAN`ZwKYj!=jb-oWs-g z_m5w>A9i^B>1my2`mYax-iVI`br7K*UiQxKF}G&#)y9x7?rnjoQ$8~njCoNX!K`;c zt7TDRcqi{Z;I+iYFsHw$+ zNAn9K>q*1q_1u6p!z1&%MUg-Sz>514ml>^F^p~}Tvox-UYy#&MpU*^V!Y|VUOaQg7 zPfs#!>}`$4>MkV7PaKE?gE%;D{1i zTz$`bwbD3W(!01mThN+6%54|TrRXhous&@nANe(JG{2Gzn67*v(w)Uyr$+;NRPR;@ z9J^0xTueMfNld{tHDMeMFZXKqRyisr-3q)3zS^`h&USds`;Jo8I9VVcTUEHI&^T~I z@0y_59!H(q@A|ir3tsWMf%D7VF;OrGWJKT2>`;ky8i$L0fo)dnYePRXm?7p(rZ8T%J(}M)4o=AuGvjI_zn(m%cQm$%QoLXajDDH~KkT%fTQaR@0!t%TY)q@y@5KQ=>S>=|c(LS6pmAv|BW}ytHy|^eOgKEc$@Abx3MaxKjNC_AEuQ$yiih>{igH5~h zDW5LfY4Y00h)m&>HlVHcg%;k}fbyW%C};i1@9HSL`4n6M(D3I_DG?+IR@1gkiQN80 zQ>*RMPT-^rxTU!oS)8XcdSv~r*K7c9`~BFjxmXQzTw?+c@^dWK_J0V;Y)5|y$p$B!>O1`y;8 z4DadZ0XI7*Xc@lCh1iNByLjI8x+luzD1YKW_3=&Bg|1olsFA8CYcd(K9?<+`K2Jje&^?_0}c)UmjZ^ZwWydZg_% zIR=`JvUZ?L)k0QJv&XB~D&38N0&bndUrsk^BmDPN$InrSrdGnUxkiGTNFD2Qrp(D$ zweU3~WmdHN+}F=LT>SY)fsg1M*uuH1cEcIRkjTEQ{l@f$2mK9Q*W6gTer1$qL!`>) z$RP5fr&QqA-64Y;rkPCl^?Tw+?Nw`~#$hUH?{_2>lp#$$a%z6FDb*|AF*3Z#o7M+o z0La=l0Hjey>raL|+S2Op@$9DOldWf(%h{N;f76>JNEz}t#KzX#wJ2Cwt*)=X$368p z3t(XQ$~R3Iqv?9nC!xE;i4xOx9??zGqdo{Lo`%G{6^jys^3C-Rwef2&ISHYcz(d39 zJ8)0hP1gk;_aKgQ!7|>28f;4*O?xRqEb!$| zxikORXJ&sefD*9;0Pp|xCils(fGMBR zbI&2MMzLkq)!AFx?J_2Cc2_=!m&=#yx%B&4LhMF&x?%1eiIfmX5rL#LGr8i^Q?-_?Y>?PcCu9>puJ7$~yXaNoy4oc8|K3;FYO5}IV{vKQ zap}x-YFfp8BOjp>fNvS_84t44O)?EQoOJhTXOYsy%raaRyM*0n)b`A z6;mCZ=1T>TCa*rR42B+H{&YTOeZsEpVmuiszyxv6$8EV8aCDEy&>R8@FJLX`pt~f! zk6xlz!wl~iJg4-k zuC3R_$h)dodF#;UyN(OJ{V(Hf6Vf_MT?zbCLz=hfaUtfSAAAEnH;u*ng!Y+UO%eYO z(;R|t)a6)+CD|&J6z|{FSuG%*1_ZvQH5wS5h|kgk6`20_MHuPfXx&DPTH>Rp;i3(u zAmyR>21ZbbH!{{=yOR#Tszs1iqiVc+jn1>aY|$DPSo?%lGPp64V3kNH)PZX9SO{|@ zp<%v%D}>4P;QvQm;*b5ocTEYjnj?PJSZ;C-6jl0?*ez5I2`x7r`Ww?frW1qz6WFPD zVvt_9ONeq)N@NvH)|fEl0aarV*HPzu7P#crf!f1+`@b(?%gk7$;%iQT7~dsduMlzR zN1lLX3o+!J*Sm1jm-QKG>OcHvgUMrCRjVmfq`x=YswM_=oVC(l1D5_08w!cREXVa+ zpa1#6c#`M=D$#TSaFg&4xmVm_+VLN9@6tft`zNQ>^+OPN0Y~2Muqf>j%)KH-ZkF{_ zrL*+dwtVf{F!Z{MY;g#-EGtR5ys~PxgP3b=WPGRUzObkhbkza&7WTq(HJvxLy31D) zH-lamLGW>f2_jzP7*oSXBv-FbfWcixP3>W5-S4YlS-9qS2sgGlO;t4V^@A7J9+~8z zFdw_r;fkaDZY9ljQm8a-sQGFtm}kde9G9)HKfYi0R8E^S&0_6mQ@GssB262~yeJRw zuN~%=z1J7-I)Mzy4ZJoZ223AnC-r_x;%Uwlx>c1SVaHyVZ1Dg%_cxH2J49yK_)>jA zzeJ&Nxbm{sY&q!+rb^JK=04y$1An(|;Euf~_C>ieN?nR6>%Q}2UGxS$$osuyYgWKx z7I^IYR?pcs`LPQOW%653KDoZ04P3Q$A`cN!e)YHrR_PpG4S=qbn*1Vqd=G%hF;3L(Tb}_<&2D{Qw8OCxw%(A z^yx3iZ3%j2{qaDmWEDv)bZUj1m4ae3j>oBQ@e1DSwtd=BVEZB73UG+ADQ>a{)LKa5 z3StR(e)%W?pJ=SzII-jsEQ43TsNFvFb-iG0h(oWx!F^$3wJ--8o}$g7=l{ zg6v_`QFqeM6?bu4*sQERlcF%xsb&khm2(Qs!C4Fs!NOOShzRw)F>-I6twY#*i$?nWS1WW^XH*9vA1--v3E)vOblnb~`ao(g=fh;!eo zbzBtEUVj2Z)=RzNxO#`vXucvmzsJBO4Mcv{C3w|*{25^1tCEdTS#LkI{D>#5j}HWT z_XiUln`xMb3Id=X@g^sJc=tcNPg|J4Eur%SV2hi}<HVSXGD7nz>2$Hp;gz0kI7_RjR2hjFC!s;P z9S}O5hAVH~>a6rzCuW-rtJP5n?H@ufZ2nuNC5Dn6znEwYWp2gQ$~RagxXAv@dpU@q zk#V)zacP+N5r5dcM#%rR+pXtr#0hZQ>n&7N8B&D8pL$sqFbB#<@p5lGf(WqtbvDq{ z1qXZ-E&MdS!gySoH;cXx*nAh9bB-hWF+Yc+BuXOY(S=@(9^PKy&-F?= z_^d(_ADEL$q5K85?8z)oNWBQ*Wysl~9r@@dkk$*{fzD1X^f#?nwkZ?YSnU`t2P`*T znRvTuA_&L=mMhtzqc!ev)u}%HsBvuGNnrkB>NR&Gr}Z%Q!%Kj_c*e4~KZ1wbqB-&Z(u*yVUdR8u z){@p*_PqHtH&@p+H8-luP-8!vy%1Sv41Dj8`{b6vc5Jo1`1z`0;i5jndN`ecbl0}7 zzs4z(&3Pt+lN|xtSo54RiYzoX*lGo`%I)ijh?RHd6G+v)(-YWR^R%JhzK49~M~wc6 zjpInQ@_@Q;L_UE>{R`|qq%t@bTilO4aJr;b&MMz$mv%Sou&frUY@;nS~Sx-w~4FDDoBEYm?25o48;ug6fKIQOOx?cvjJxbReeG9 zESSH@z4LV6w?d;LV^tcFRA9Wpvo=t+4RHF1r!u5> zH|DRbzr=I9m8TM7SQNm!lX8(1&m|J)J@vVJGUn0(v@Alo*vjT-!al6c+8#Q);r{=@bCi=kWg83*>iboWi3 zL4S8#6%GI40@p76{9~%w1WELpD||wIKe5Z}~P`K+q3}EjH@^!Tm3%n`SG}hI5JlQ~s}M!XG8uF+M|V%V;r<=u zgGnVHf?k3C*LRR_nH3sNU&d?^f(v)a@ba*)Rqjb-)i!^h0Oy797hRDAQa$&Hk4kk} zY&w$`%5hnoz5G#1;}2iaK@jV`s70|MDz<4C6y9gEq1TitbRs?fq|f`|1%7(MA@~&_ zl$)o}GP6IQGaP`SD{drW_+;X$sL+0?J>e1Ijh=-jpZ%}xJ}0l0mrIe`K3m>@T`&D{ zkH>LWs-3Yu)X$3V{ZLrLbAO&p;RyDD1eIRWt^qjLhIk=sSAHyzK#m6~4SY}pg%K@klaSW6jde@>)vru0LYM_St~{&U%OOfw!7WlUcy>!2YlFF z)HxudSP1D5)9NL0giN%%@N3_XNSi#F^JbBZ(Q=>nk;bjw|(TW#B) zxB8xhTP#+qL4u0kf1;qm;Dwnd+xM(R2F;o{NUf$$%dzcOW+Po(gm|hJdO;PdUPyb5 zWdTZnMGDrJ#*_v{_s;}KuEkMPGJ=Tn zN{4}n=M1r5ls(ZtcrUW_VcfzLa_co`r(Hhi_-4e7!e{S3w>ouoRYHklG&1$c{K>BF z=(%3AO-P?5_2^pSHRHMDwfZEd9i!)GFewE zWVt`j6L~H!UuIp8%~RV$kaM8k!K^&na_S@P&Bok))zmIM}z>TiXj3*l3;~S zmUb_k@2qe=XcNESqu+RXRjC|Jz>lz1LjJ00|7DolflE4@CN^qLfVPpe!u z(@$UPE<8%TJV&oW4W<_HRO{e^N+n<#sTZ_N6fc>mI$S~?dnmkC2&JV?WoL5n_J!)Q zdsKx2V=kIGnz>5ZHy*SU4G;4`)|yc53`d_VDYCW-#uH{n_~=;Lub-fVjF0-LDWf}M z=i0Ja?1&g%->hk&Yv@GTj7iM(%uEqH9(b&}h2Lu=h7j5T<66%N@^`okeYd7il_$wn z)_mFcpYoX|_gCI%p9P#P>g+BKAE)n*ZX$tkj%nR_blK;9+g3{J>*^Q2RP(OF`Mt|& zzi7hHsfgx!#KX6+cNyp7kQE+Vq5JqSKUVsk;d=$xSP{!t&e!YfBmKI|xjH*Afzg*X zbe|)l+=|SJWFs18can6n(S@IP`^BG6%ES5XmYt`#kTs&OaA03Al>)`0Yt=q&2q0Ra zl((O?)5+e#;yuLo(;Cf!h^2!J(eWfqf_L%3}_iE#9I_P`R#ob)mt~n1OWPDvs zd_v$IC~sxzhe8~$)t+3c{dPQcx_a;5W|`)+VPQ1z>T|Oa)MRZqaQi|{x!n9gewJ(( zoh8=8K0_Lhr{C0i$Z}|Yq`dwP4gxHMNsQUEs%&ZD)EknB@*Lb307FDoeRxEH3=Qgk zl6>+CU}>lSBo@d@NhSol)1F73UQ-$6ZTX_h%BW2NEvs7kTz|DzOHq=@jjTi$yEuldE9yTSG+oz5o)yPY})~!pxVabB@f@1>I;9l?-WrP}uiHP#;G9c^cH%&uwi6j?p0OC#>G-tf^!} zf-we-l(w_>?6|iaKKyvM|64L$3GFM5%AG0RJ>d8;OHTL^TfPj7p>6dso(%eyfE;mp=9c zgxSDd+XgoGb-$_dhmG#1wcGQ~)uu(l>f|-^IjrF{u7pm;A7Gfh5*gPnj_6_rGTHJav37oXt@Z64xSCdnv(>a7+ z^*mCPuW*3-x4Ch9)d>7(uHM8sPW9+AzHIjIs~K3-!MZvA$X6flK@|vaA5O2`%4571 zdRp7sDQB3$HV>0;J_vafX}8op^m{xt(Xo!jG4c7xNS1LErOsz-m2Ahbhh<%EeFVVc zA$rM`zuZl;oxfvIbpK#8i15AC!Kn-Mfw%0_ zkw(jkr-_KMWO0;}vJPcQRWabwc9!o#8DXn_ zQU^Z@CTR)i!|PYK-!ejf3M7`z5Kk&?WL_Pp{=&E~BU6Pgs*;IB@DNdZeRTaB9%(xF@O%X?{2H~SkEjGG&S0j?|3)mH5*6V@DtA15&ECXr0 zMBjs!0Rbr})iomObHCPsQjsu-|8)^b$Y*4Z3*_5CXkiVm^xdH1vMH{WQv~}H`7Yvg z5$=knJzqkpuv|rOO&V&dyi4n;`|at=4ce5vQ@2@phl_p%+e|v4nZ*YRdc?Ez+bIcK z=A+`rRob+r(zn?`|SzLWA-I$44Ws_!mh2U%O(1w|Zta^<*- zE#D4*wGbdq8{T%e_YRP26E6+J6nVKD7*=T%6>^WGF4~zM0ngHNO*Kys8sponK3-O8 z5BHDGeypnJk~aI+SUuu zMca?h(I%xNcjXI(!89BloiMPc=gZiJJ1MLNz-KgOt6oB)jo6YN0v4$5v?(Q;(`Ne) ztQnx7E|PR~$|I}1W+Ift8^Nf74%ICtlq9M)(5OIVRAyIo@!6MAUI8WZD{yYUQ{N^7 z=*u%*?R-N5bm4I$K`7k^_%a&XG2&{jt$k(;c{05yn#7queX*Osn1;Of`F^qb5m`9} zB0!l+7)C)VVe?y7(N{<*Bgu#lqn(42RCe=)WR)$q=BFoRnn+ydPRAdjFGri(5|6~} zuf*&fpVF zX>!ETy=UGHZ0-2cLv0weSXl(=-8x4RqzXBO-4ey z2~iZG@Gg1`#x4X?$TUYo&4+&U_wyx&UN&HYZ7OiBO{DLfJMixiIOWmZg$3IXs9N`} zwc$GoI9w+oQdjh*aIM_^%wj13TNG{~C5w{@o`DGyzI{gg09M z=>26ZR-oV>T^zY*N0+fc!=IMJzT?po94utXnkHMZwCZ!ilAvhk%;6U>Q=(u79Umzo zUCF=&A7{kOdooiZFA!<_F`*pdFf76yi~|bNQ+@a4qf+y!>kj+39!=uOC?tZ(Gh=wGni@IDJxI79Mx+4_$60+;&e- z{$b~-q2eF*C>#%y;zzifZGw!bs5c(D#HPOPsI+*Ur_ zb9U#$+j?h1P{FjoTDXsBx~|#tkmKQnfAs*oJGT|hx6d-}Da^g#zz08Lh|r=TGnWb2mL~=+ zUg$MV?6|AUt=un=#|cW63(?&k?KNn(6L_)OE5sTkRfF$65)`0WU{O~CfX ztAMGD4HLdN*`eYxACm&);%Kl`a=WTk`nmZi>3I4>^BrsQOi#`xq!`i>gnOv_ps12j z^g8k^GZGeIRED&r+f|T1iB!CJC9pW=a*sX#4TW0d$hF3?w88ZixIxZY$HLXSby4&^ z=&f8yI}YuH9?XDX4d5a<;oJe?2ou)P7lMi{Ft~oO zE$MrmFcKjyGBQE8FE_hstr&j-6{`z+Me1wIZkvJdz*3?sZ2x58$0^zoV=6Z4n?ae`rN zA#pS`(R7TZU1Py6#pCC)&fHMV{Y`&F?vMK$)i0L~1q7!n%3q|S2cd;mO{4AnKT6?Y zU$3o98c&@#hZRpT;GL6t99P|`>kemZgX`*u z*zQi?MJd^IU%qsErQt)9B#7cAaudAp-2xeKz>ASs%W?1bTmNN>l`Glo^KM;VhJgIu zu66$5$1OTNj9TNH8dwY@8KPtcX*4fCm1a{3os$&Hv|o4{d(2H1d1TkLgao4DS=9=%W1Imp`To*uh=LbeG8vJXEBr0IsR)JTBE80G zkSrcmrIYde5+x=Gw|p$%8Jumy{vPBW7<(#ul_=N=YH6u z5L46z|mx&zCn+A_=gLk%a7DGM>|CNn1J zpOn87(_l7V8qs~!WID7@R8OpR5x7|S;pw!V?$hjgudfqEba`Q?{RNMvAO6Do>OwP} zAf^6s4skbg#REtV-p)L9vp#XuwD&4X57+9KKgKxe>Q{%2pi;sc`f91BR#ljwGjXJ1 z&CjrP=@U?eJcg`&nl^SwiVODGw?pq$a5geHjm~3p{DFMoTkHIPuSMu?B@o~WI0IhW|XDjFArXl zSH%|Did!4Q@Oh{PROCD;Pf2LRPL66zDzxmICoLx%*fH$_2sX3bq*v2Da9rfD8)&sA zB}H?kZ4RUQxkzWw>fT2LkG3esO^?(P3@>V6dXASGhaDG`c^TQOFI}oC@N?)7{kWuG zv}cEL!dt*)p%Oy3PN{8f($g=ML2nqS3VA7;I3bsB&57|!%LKwoT+v~7qU7cu`ZRVc?FSSgTva9$g2C4&Gg z@1&$MiYe%9$Yk5U+{?#t`BjG?p+|N%#l|&x-qi}SZ-nQ4gMUh^(lPbpIlM&e0-DRd z%|ciU*Ui93hj}d0o$m1>R#u!Vh}aim#2~obh`xH0I?a8Op>Nm-%_G}q-w`(w@MGD1 z3caDPde{%+(rAvvm6fVnc{YMLPQvb4-tnYNp9bWpoc26Sf1D}xnKNK~%rzMAO!1;e zo${HneF&CsN4-QPD@hixK6%m|xqVv6VtT~P@PHgEfv#A%^zheSXiYZy^m!+}HD$fF zdEF&e7csA8tRlPrqb^RBKsMy^`BVw}hToFIso4x&_mAe|-B&l9`u17>N?Y8+N7;4% z`d1zQ7Xvv5dvul`O(9;$pK76-BJV)n`-wmc@z{Z@z!)e;v)DLRB!4swz$;yES-vZ8 zS$-JN`Mjfzh5ykLtJ&;ilh%86?x5NvM1>*s()JSf(S!6bd1zFh#oFz5^|e*R8$w*w zApBGZHGa+X^U-CLI0Z?{;JD(b2A0J)gQy^5(T_W(TQ)eW8JXvc8TZ&QsB5MG0kAvl zjxm6D&>WnAq5Q`?{yYg=R+{@fpRY8szqo= zjd3t5Ey{iuU0JGv#lFfQ`PHWRF&k3~N(G93z&)@wmI(4B7OBwJ*_WFoM?FSRe`Kui z;4MTwMzwQ9Ml8S1JIAG1%5-r&f36NDnl2_>2MC(hu}Tw06DNtKJ-^4CiFdI+Av4>i z14_%dhnfWJ>*!6_P*RH!KPHck;o*Gq>lV>`^P6z<0qQUv%76sWN?;Q}3$8~6kO8LQ z{zxGI8ibcO{C5*TTQgi5=+(1oVTw;aSVqELL!_1yvq zHkO!b*f5v{n5N#SBC@NDB5`tb!Xs$xPoqm(diy)gL%9mlTZhm+yUxLWkKlL*h$cdN zfi3T!&ry#Gl(&z8#e_-(fyCq>Q`1iTsm24kE~yX6TfmYOx1+B+f-?bst>yxGFDlZ{ z7W?3{CI`FJlWlQYRGTmQ<_YAhx8m&Ht>Y_N4ik+CYr;{vlOQ$E2Y~qm$u9^1e1M}h z5@>vYuTa`MRoEajj6Rqw%R+&%EK8rKtDE`lc}Gqsd<(qQ*I}IuuUpS;ht1~UzTgx2 z9G$20H0)=qz}eQI?Qbd<+Zu~rIIr8>HcvJ0cKKe3#M}jLGmKRw9RyN;wej@EKMv2| zUJP6Q-&)XqmRan!y4@di@w_^oU-;jSUCy2U7#{N2J-sN!lIT;uTh}x-@bfy`nfv-PrD5&fK3<5hpI3f#9Wv~Zq4X_?1%cwFZ;Ak!55S@= z)Ca(ZSajb_k;0%gIUEE>ek;NzVB=X2>h8Qu0q*YnQm&n43dV=KH!nB_;m$r@PxE;vE} ztyqD&z|Yxu4Po$D6pB>n)5RTJP8n02%6C$Mub#LtezKHGlB}q01@Y(DO&)y>{ibVt zn=EJ~zGDDSh&2{KCdeIJ1-54&Uiq2Vp!goWBu0~7Kx`falvW2^CHuJOxgxZ*IoX6^ z63ECQTA~WNghakd+mD47d5}qtJ+yJEx9Q+WqcCaS=-}b-jx{h;HK+1Gk}{w5mvTu+ z-}h2QjbDzt(!KC@o~qK@i#mRJoDi{KQD|{6z5_x zT-UqKcgHHPFS-SHQ4hq|-6AkQpUB2b-Y$xH1>zcG4=3@+w(lQ*p-8p4OEqb4!4rP;(F@a9n_F& zT$O`<9}r6I_2LObCjLnO9>h)S1N|>uoeEvwKL+vhe+&{2@BjG1y#@Ssc)|D1OD`Vi z$v}B_!&onV&eR$B#XwFkULd7(n??LvXsOeq#iqb1Ob`-ad>G&e5O0)( zit=^92&6OKxVB_G0OCD+% zbXmqfPA(=9C!`9IG0 z+$>X-FPV$ZD-btT$pK2b+>$W+q&P^xOGL^8G{EAVA*Jv6~e{b0| z8LE-kB5I@WaXK>e5p(6fFf5VqhfhYk_pY(d3Xe~s>2{;gN~DfX$&|>H^XtR<)0D^Q z?rQ6k17F2Ry1aNfV%-!K=VlCiH#m;=-R%AXKnzC-6};A}H+gze(E-9@RB!|v@vpB% zTq+}C3Z*;4LUHUGjd{uG$$@|nQ;`w!3NC)vEeCm zL5x|m!ux;~o%XeNQmgmn=Jufu|~* z!Y+Q*Kgmhc$k;o`_d(5kZLvOvx7c-n;RZ|?W`T^rq9>{@7je>O0}+QJGLfoak*^|1 zHmI<1yKwI?h02_6e_^p|9FdqKDLEBF)#v+9L};Pa!p8bj=``r;s}m{TM2pv2Y0!&g zVWh$1U?|ZQsXf%Fp^-0GjbW~PQEE+8iWmpcs{AJ60#ha?g~^$y1hGK6ppe87iNXQ; z@1P84A~FNX5yMe(S{BOG4jIis15(Uolf>!LDg0wYlo>nlSq^(B5Nr=L#e>H)+vxk^}8yGwPk+$9WfBTy3;{*J5=!hsp_%&aUHZUo!&K3J>{&h0` z*Zewl)UWxGeU?R!9IpL-bAlB&Kp?`u#s;XEz|t|a>R!on+Dxfy9^=cmyi=vjvZQUn z+QU)!T7C{yE5^(iT7;1dIV}NYERAtSTMJiVq7zOSiOCsD33P*#Fw7bNmPj1Sw~} zU+!2#NRZ@B1Vk%>yTLme54<<*{}fAq7n+0vkUkh}Fbe^EK@4bxQQ-&JUB#QXW5rwbOasRxudlLZJG`0${sVY~1m1zM)r=*@zPHYHYjmx!jkR0) zDSp)NlD*O~A_mdC8iKmzs+=25z<*g?_s}|U<@tFX!AYY$nypS2KcZ@~+$kDwahT=$ zOLpRO&!Mv(`{^Zp;uv=A;(>PI2xEm}`g^FlRN!%|q7|tz%=A^!!_cnZ&|r-7s1KL5 z>?-S4;B}5QPGP8pPBSW3mdEW23tg5)7oIBwPlL!VitX@&Ep^pVjOzCM+FPDOT} zum8JvL^WVc4Tib&gU;93`+p&~JcI5h|5}S~hf@u4blKbggd!Nmek3G%X)TQ37fYPS zFFmi+O{cec9=25!)0rEpS*ul%=i^k{XY(k`+UKL!(7S{z4d$<;CRWh@xKzMo5O96v z^?4p0`tif%g??<%&i@Bt>kqZU;DY0q>+bu)+m*3)kNaJBom8IpHG05cg!}-@QEbjZ zskFE-Bt5Ji9uD!a;rAM0Hsm4-&>2yL0YXK&yilL46ev|xuA>}u*hJQvUHO4$v~tc9 z7-$$6vgtN@NEouMeI?2$060pPASjxoFDSGk5eN*KpkII?6ZgN{@BSzW0}6#U9_x>wVO`KF{Q72hXk`YKXL5Jzq3HB;MCesQFzX&nh9bAVgfFJA(+js0N zrPFkH9cH!AD&XXcQ8cVLr~ilC$S`X>j!Q2v0xH(vUD(l042w+Npm=WT;)@E~ z8~P7fdt{R6QPe~q1iv3?d?yqAi8@2|WhzI4nwPmp8P{&dJ}JaXBReJujWS$N{~b&& zB${{@BWPgNf&AEeF@0XnTQccFp5Dl20 zZ?$@VOUnNmGzZ?Ve>H)+K*asW0EoE%NWh!*+m|^IasPJM3`E>Nfu4kA2Q`1d{hWLl zM)*0YSqlAgQeus8k`d6^ss=-1WNvXIHH|;lEz3Aszbz?X6-p#L z-hQKbkM}p6BEHR3JlXwDc^#}S5v_*SLZHBEtda2K)KHvBL-md3`V=1^@B1AZ7^VG< zsNx>L6U1t~N3obx8+{}OACik-y=;v(=U|UV*f1jw0lLiIs@!WM-unyHbWEW50B*qE z0?|8aXb?+UVi-H*&zaB%VA?#-ZV=j!n}rQy^kW6x#fOTUcQ2+l7e_6-G?}<_#_ar# zE-2RR zO)D_QZZ#^ux}Fwi3jRsR07E#a($D;KBpQKu**}$OMF^CSHfd#Enir=PdX{evNu{1W z`h8G4eE!McNR2$$AzLqUEWr?l`9h)M1XR=Bw{cXTF9zQ1#Dw)Z0e}grc!b91;|fv8 zHB1KYm$`Nw1X8wVw~ySuufAruu&xh?+*w@spZU_idG9$sh~z%nc|Qpu$Hn&}(q5Bx zi3)-(z(k?ZnLwF?EA@Pexgg4d81Mz3QE5-|G}L8RX^&|WO}nSFtZYe|&B+gk`6PXx z{ehR+&)`wvSqY7jx^Y_i-1l>bd4(G(z6WYa|4y?v(#^p>?3Kv6U)?^GI5rIminK)Z zj-L?wS5WHer;Cf++n1-!z&Y&YdK8$Oys2fg>*~CpEj9hpu;E2A{<75 z>bS+rXKY`K#x3%Vi>#c?qj{R^6EU7!Wnc;aonWJ+qodRiPO+7S)n`H%br^Ik@;{1) z4koAb6n)x^!EimD6!xoqOWOTO%Wda_cZtyuMs*}mS_=zwunRw(7YQW!=4&Q2<l5%7*65n&2^4^)RHv8cPwb>f25!P>IOB2j364c%X z62LgO{he9+ostz_-0jG`xcgPuPwsZp)*;rpp!P4%v@sHB0^3aQ zB$l9I0!YO6fXP1MJG<6j50PvE4=oA}J|_s-qw1*-rDX&Tvi9T(CIrmSD<(a% zDPNRQW7Xdm)2Zx}*o)E6${iC8|12n%ApKdOz>o?P*d;014c;H4;w3omm~u5-lB0Ui zCzZ_mkTe~0(xyWQD$s-9MmZn%(Al*+S4B&>$IwdCYE?lOi)44+g7g(VP*!3#MY5j( zFK4*;7V?l)VgoQHhx?<7t^St$#nRoH57X2%BsIZdQZ=%W>v+I?L>ULRue)LtlMYj4 z&hy1L;yZCCxdW5>1dPhPA}WVBDVaIZ*E}_FehJlk<=`%hKAPRSCFBMtoyX^qj7uEM zi?s`!ErOqXkkKBYBy0+OI>_&cgxMir#YSz3FZ_qEUlyA5=okfVcfwvb$KE%9P2EtK zEaA$%Cnt5rqd|Oc(sF0-$i(x@VOUM8Lu-raUXPi@&gzRN;C`)Whva5)`Ws~PtNK!V zj2jhMTg3J1(y#q%#(nUQ&dm>7|;NUGX016na;1b z@QvV_d%tFRpxZ=hS6w&=#!^1eHWw*6P3~dkU_i#$wA?l1C{3NqP`2W+!GhU2Wb;?d zIj~T_PkL~7rgLI=v6%xL&C0qqU^O_`4s!kwmuwSGtRBP5y9Ak# zoNHw@m=RCpVnvPZX1xRriP%ppc-qm<7NoYuYaUJd9f2a3Zqc2umc_=F>{Fe2Jd;z0 zcbf8z;oRl8Ui()bLZ&B@3km5`wicg&iOs}5ihn0I({fTAPg2+TQ-9s;IWOnkr0$Oi zFFH{l6?m`_jEYy?ymW>+`WVc8i*Wa9X?!lD#~6Wd(H=4%JL&K~F4*~W{9|C^M5o`~ z^Du?IeaDfv1~(Xvz2(zU-n?8?4<~K!pv!BG^A}tW`v)10X$1e9ji7~Fj_Gf`)P!XzGYJM3M)X}9?+sW>JZ zM_L7KJa|?!r%YRMgAj-S?YhtFhyiFzW2*W;`bE-8D1PN9P3}5q!7P5TJV{4 zE0#0;^=%D!I9kWGZ%PQ}?jf>{?p@f_q$}o{ZCxMR)*0oAY6MOEhCxXop1_ddNpSw- z%FW$!7)RGYd<*rH!HtvsjO79o*W51+#@s6=`H)YmX)5I={uwPRS(i?nFL<~#>pHW$ zQPsP;&V5g_%YstsgCn%Pv@NZ66EDsSFV0IZDvlB?r2c-mgUv#zoKEc3VM>0OgYNpg zxQ@B&jkr^*IG+OJ|eD$ekEPIi5&KkMp)@U})(d%i54(H+p!QI_-Gyq}eQ#^GzPDYyVYW~u!%sVC_#ZCWLV{+#l(7pffXtY+SMNoN8&HtWV`CCsgPjt7tGUsKNMEzcX%%uYL#OdIqY{dO2Ycrt{}HxjEH|fIgAD!0!R}?Ih}9M*nc|zJanWGg7<*IU^~!c zaAw$WEY~m4|NR&O;t;c*n(@K1JOSGtfI&z_{zi~D3!vb80RkKZ_5*+D@2(dR9Q-$_ zqORdjpDx}r5~aX;rV+q-wv%Rt(lCZP5UCh2h{(pIE_#yaM--!peut;DErSnJf?Xkt zJ!E`iC5QdUDJn)Zk=|}VDu@weGji3#l~>HuPpM^+x_*Na2NAEoU~X#h%ZDfIuVuTFw!JU z&esOAZ6QJU7!cU+4%IzdxR2EX1Im+$Us>9XmnqGe%EV-_(d*+bL`qzZKznb-29!BB zzD@{IcXbPfz3(58=JsArnm#`}%qz+LnNl1v5|FVgteQEWI&n2CBmbbyZ+>}Cy=GBX zSiYn&SWVM8#totPUI+&BtbRjPFJc2uDJKVD>J&(hc!V+>QuTQ~U0Rjjm^qL0hE!M6 zk2IGpltjESY=2r**g%WRcn4v%Ol4w5Q?$KcH^m@kd? z6$73#ur?p*qMn#vuFAQX;Fk|?ZQNB(U%`$QHF)$+ra+Igpir`_kx_(*utX4r+fE;Q z%bnhd-=1=P6Onl8*W6F4Aoi#c!6#lsvjcd7t>H@d`~D~)J9QOg4TGzfRky1AGRcGu zYMbjQ8^gl_+rQ*vXd++Nw9=q7X?!kbulmLxO%>BlkY}kcCkFy-4w>pa31dv7ruJb? zwuCf_@@ahy^UWVnGMYNZ>4DzV=xTAgS8IKkHYX8Y`>00I)umQ}@jaL=@w$^z;Oie< z!$s1zP?V6eBrOiR$WVJk<;y=0C&vY;Cg?UXnOfdo4{3VEFPa~&y1Z|PGH2OOjMd$o zmphDsDgeY3w-67MSZ>#ntu(#dr+={A@$Oa!8TT8=1Vz-~0i z*r+!lHSb(N%Bs?pA#VsXwk?)7M%E_qtko-6wjXnq*>xh&mkAyCO*sG1smWu1Zjgs;{FYoQVsu6yw$@Aji7)O%68`ZiYg zO1CUk<-zO6@JC^z{xCzu6@%mN+o&H$7DF=OZe{yrDbiiJ96r6vW?UMqf6TMe79%T$ zri3LohCq&K(ldP&kIQJ`qXmCx?c6N|RIemcn|cpK(qC@!nR;)_{CtWWc!~wS*TF8b z6FlrAo7`T2)5|MhXq5kg%hO5_q=7C9t16T>XA*0Zb{;!3DMxVdZZh@{2seP^QQIM{~jBcA>fD$B?9FL8--l{?gtr zb?TqWdcX8zLo!$-&DfN0f0Ac26<#FOVg8U=OI2d#Ol%~Hw<3L*6e_%_qf3i1o%jK( z?G%Ob8f*}rJYa%1Fxs$K-5_Z!tmj!b0xdfen7%3HHqSxv>TLSh2pF*=;i3!6Y%Y;% zH*<6_3gUTeq@M|xuTf|r4Pz)PrZN9L`9G)@(@%%B%kUI}e1F4rv)I%G+^5yV?ccOz ztbRpATEBDe973#xbOE4M&CZCSa0!&Q^^mm_GT<-7#)MGH^W*Y8J;_^zYs#u?qAx3>T zg*j`Wdi<@m5Z210zScMk~*D$m1hWo_M4ug}l=miv#D^=IoUfQt<0Vel+l zbLRQIX7XJ8=>~VEO=-{YWmik;A2@omfTY26>t*W0tlOnA6Sw!76s)|&qE$+L!^DL%Ytd*8wQ5E7q zl$UI)xn@~MQ-L7JvPsGpV~EycMW}}%=X|m`vC-sQ%hneUPPjPu-WeW`l=|Hd*T9q3 zoCa;lwn|czPEPFCWFOQBI)z&7a|r};5G9;QSBPUb8En1x&uz2~`TM;t_v!vL^bZ>t zoIUD6G2`P%x~3)xADu1ATd&+oIV!l2#wvN2Pd$>4UXDAOFI`NJ1t{vQ+lP79FE;z5 z@moBa?m1!UueKaW5s9DcZf6(yzw^BVlS}FJk14duo~Lw_e%y4jMa#T4WER9>LiO;J zIDp?7E8wwvz*Debo#{5!sn=-dNX|f{U&^M3WWQ|IddsZxzGYT_>cD(p1k~vI_s|Tp zpIp*Ujn!Q_Tc|S?E=i)Z;hAqs=oba#L*R-wnFLUg!$*RmNvmkU?@9+B&oHi(;Ov}` zVNIV=m8?7EySQ7ZO9oa_Q?pXhiVP}Bxe9{CKd1E~2s3;W&D_kH8~{UzYA5nhP=6^P zDPP75O6H|Lx70aSc)B1&GMDKTe9EZ2ivaxsN&sCRkvDmO ziq@`7b@T|n!9kJ@)pX&6q#Oc1fZlFsX=TfrZmAp9M&zaN@u5Izv-iwoxk`mg53n8Z61i;M<+6oT_HvTzrK`yyK5eiqwKB93%U{TGiy%yqTv6c<)VXCfOyj#D$7YSA@K=yDf^^nNJzbk@$ zF4cc$bk0WbMSsL`GJ45LJ%l_q{pvmDNtBeS@2B(U0C&84^&9d@2cy-qXSbTushc{~ zumZMB$UKwL*3m?rB)H2Onwn}U53360cKZK=xwnjpYuVy`gG+D^5InfMLvZ)t?(QxP z3GVI|9D=*MJHegc4#6E>lVtC6_IdZ*ci+8V?wDh&uC6t!R)1Kd$E;cP`%f<8saCyg zDK_+N{hJ=oR&T1+Qrqq4XNPU^JyZ4!(z7I#d7JCY>r@y4YLzeuLInTu4Y!kN1Tg~#+Ci~%>c3Q*I&b?!b&Z~=Vzw!XatHyOHW`HTcldh_ZEDm zrC1@2>KLA{ftymlmR3g_4l^sd9P1wnaDZiRN|ItB>zkR?Y^Qge^FEC#y3b(~e>3HX zmqU5@EW6^T9x$Q;u{4W!Xyxfi?E0HJ^AKhq^=^*UawhO%+|y_>TPGcZAUDf25qS+|w|%j&_` zxkXjPKZ{~aF4!e^R+FLJRQ9+R7;nc(0bTrA0pp!ycsNmMaOO-}J*Qg6Hy$QjI7|EC zRmVN)^3wW!akilTDRUaNkbzFu+nMz0?XJ!gs}pwdvoPJS?U!Yab;rYgru)sd0vt5> z*%Tik4bZ>=LBTNWUGm(LeQl{~;vsI^Na;&V^$6dqRXh;CKTZfZCI`>y*9cqN$^fIt zB#-Y8WpCHTI-cr0rxMQJ*Okm53lv6`$n{o3|fx6^lclA`WmzxqT~( z3F=mm|B9hW6v}SL(~FoC%!usyn$x7^yEy`aD&m(iu;#9)Oef*_vGyPuw@~Pnd7Mo_ zD{C%2%5Xb`QSbyf9o&Y!yDog5Ti_&g-XzecwK~f)y~_<(6Mafef5m}`(inEgy$km! z$(=i&Y3C&y0jYK>K}W83a6=ju4zDQt64NWn&S3fo;^Mf0>B2L`5Gzi$BUC4h1lwI| z*({64YQ;$a9$bO}Qm+m%WZX8o(1x7n=tF(MUA2beIR=Y=s8wXYs3LlEdp6v*hI9uj zxacjkmZ#*-IPr+KktSUrp=usKe%BYI z(2R6XcRU-laos4y>w_`e^mc2Z}fO8;5{N)nm!9Da%aMwP-7(~?k>iesExDOu4oxP z&y6i+Q!pgC*~5zqE6m_EoiXwfmK(E_jyafvMZwh zPDCUdiVa~|qbY&s&d&Q_EYw$qGpE=PN{bBUCyRApsblnZdgW>Qvu&d5vAfCA9)Qo* zWuXUBZOD8v6EMGXWPY(*!d6GOqc}x6METYeHsCQ84-TrH_KnQ*Y7jbwMNf$M+5VkF z@J@-UXS5MjTZ2Z$8UPehdeS>R%4ZpscFB~T{(7x{ED^DLwvGr4>0Aijz{WjXh+aa- z*Wk3RpN;!Dgto@AFH-PgK_(T?`*tv*y|3vVfcq$qD>g3$X5S?=8@&ThyO)Tc>8iCKWO5at8mj&BWse zJV(vMT4*JB%Y9FEvQ{F3mztNJHgo)OS`T~_Fa-ZP8=oYJQY-HT|ZOySg(Ne?G<;Rdan+mRFsf&#c@Pw2?KL4K+Qe>(*5)!0tpI3W9B1p27QP7aPj9AG@ z&XRXG9H8UXKAwTTChoqvf4t(=zT))XaXghT0v;8D2tIiKoIPT*HH!c89Qo2Re;i`0 zeNJJ+o`#_8{H8=w6|S~OnQJ(>V zhXy%ecfmn6)Fqe2yKh|BTucpM>Z=DgeNL^z)u(OERN;2*d|mIKfcXEmLUBAJ2DDG_ zXP4dZx5g!Gc7Tm$fp^1JL3|}l5aO6VAu&h}S!#z-gnU8dz@5M_+}2V_zWqh#lv{i4 z;G(Cgz5FLsd!#^h6kPT z)4rvpH|~6Lwb)DJ4FKcPV@K!sxc6uE`^UmkU1)!jvNU5NfiVf0fy3$*x{sEvn1f$x zp)8Y(j4KQtwsjX%SKC4|nR~{2wb|nr0PlKV?(+)DA-iuo*jfjt5m?#as5Ndqe~tlC zPr5qPqyeBJFRom{F6k>8PLpNE>)!a~un+F=n)5A@!5yt^j1Ce(@eEb5njrb|h5{%7 zg#FSucUI$Jfw6kbqepY)Q=*Q?h;^BUk}KX!ubLW(YiU=TTpqd}-$%po{OC||%dKe1 zG1q#$mQJ5OE;2mlNfjW1eL#yB^3ST{T`cG0l?gOpyBIu|1g2AxcyGWO)(Mu8=)lGo z6(Gk7cf!0w3&d{9#GV~@z4obhNT)xpJ-^)QO!B2Ih2UOXP=_2foaRT_1nOAkEWB$` zT;Tc<>+Tivcwr^L?cQFftD*a>bA0KW-tYkaFvm^0ocl0-@!j(cHTM~vg9aU9EL2)7 zUy$?W*Vvy!!!~^p`Z;8Qy)Qht<=_=1UY7kzphFzU2g%xK^}2c!+mz&OyQu2B4x4zxE6Avfq3Dbf>S_ zyi(%F$HO{o2Sfab!M;fSCcTvv-&3skhX2P}WnLoLo6zzdElz|xzl14);&$*;{t3Rz zuR4T3_}Kz~$(67Az7jfh+pRr`h=_h+nP0pKe&B0$1OnQ8*&XrS9#L$zI-!s(A{b}+ z#{p@bEBJI!>!$NKQr_PcdDh6=8x=Bs&{ArX@zs^l(aO{oe>xZ4ibw2L8&R{Sle(?L z4DfpR6nRXv(GS!tSM*;=;jy~@HUlH%7IbdZd=q@R7x*oKrH7~I3m*E7?WK9V$1T3^ z+CG9L%dHiyDaXmWE5`B;hIy14bT|FSV;lX64fAXRu4HPf1U23>Q}&2d{*`nVM1`~w zDYz@JD19pe;S!?FKyYBatnNZDdxGBF9F;Ee=lgSgi0q`PQwR0N$snNI(xsqDW$j6z zD^f{8Xk{zTu8D9z&9Y7VXsw;|EiF7v5AW{6-g3j}A)mNQMB}hd>2Yo75+61K={u1i zvzTh}xt=RFz)xrax8x^F))Sj&Pxce7s|}pdIs;K)XvD$7W8A`L8t&$T(N_-|sA{f* zqa&)u(|@-%3~i_ZJozo%m;OAl2Ovv=Ps`oYTu2q~AG5O%ZxPG3QUK?EsyXDfiu7F^ zGRDksQX7-HDvWk-by70*mT*q%>1yU01Sk5!L6v#|l!97GWAR^1W#NjIAD7{@v$W`| z=*1i$SDg~egIkFEy!l{W$!f9LQ+1a4e(IFNNiK&Ybi7HO@_9TtomnBpe zPNHr3QWyl;YV-#PJ_F~TY z&9Z{ft*Kt`$GPnvmd8skfHu4H%2L3IuwL>0rZPX4v$XGfig%xss8lM|XIzDP)=426H@y zkI8yY|0xQ!a(iXOn%iQllW*l1I#WBc6rnk1y+Ws+BUCosY-&)<`@Q2XpQTWtqH-gp)XiZ*OBjOSvRbTu&7xV-7Araq`;ZKmc9}Ht{)Jkj3nIh zfdUcKJPJBuEa zUz|iL#-RVRGoDG823S1!zuf&Zgs0R=M3XYWQyGws{9!;h>`MnC0|SUCJ8T@j?pmUR z!U$D4(~y>61_ZfPVc-U1yygXLThT44m!^1eBPn~#-+ze3q z-SVd!{UfJOtw?Pt3sKvl^6W|w^Q3s7pt=RKbkp{y?*hbgQ&coe_TMa8s=(>sX6IHe zA+3=RM(&N2F~)l=bdR!=6Mg?B>%oO2+l6{(a-{)Yr+ z9(@{Rrx>ByniK$!*8dtq)&N8DBago9h zL#~BHgEtNCY;5Y5>7TrD%8h3bU+&hA5vsop3rx~AyWiwr^^=g1UL08_$Ve;GBr`+g zutsL$N?sLyYNsjCgHq&zzNve>iKcj`>YK_fbCARTZNT0T{d{mrV$eD%ZgB9b^k*w@ zZzk~`67c5c6(#p`PRvZ}RigijULPwpeEfI1dcNh(?YV$>lus&^6}i#@{6OM=UP z?9Hr{@Iocig^yUvYFi{!snX*CoZ3uZ_hv4jER`5a^)kq}&&{L>t?9GSV5mI>iO}S` zp!Km8_s7JFQEe|omaomEk2p$U1`%lfZM#M>EEI@g2n|j^YLcS}Ng1;2wK~(Ph7McL z-i)UBsh{*BJ=C!=Y_6JeQoO5(=gf^d?i#N2Kl1jj-i@L`{+tY*3nm6dkE(Wdw}Obz z0YT^nLt^ou_l(y)(T7OUZA}kn(;U01!>We#5zXYVd;u~QO5#JFX8U*pose@2dw!jC zXz`A;Gwt=S-5Q(~oSNTj^HlMD`0yZ@vZ#r$w-N#=Ffwbvm3iEo&TK!Fy&K5PYS009 zlW!@vS}~kWJ@`i~XR&n;JR|^e7tmmQl$ZPaP|gZ4&F_@SFBKhN7W+)3NO1jn{t9H# zL_*N!T}b|IA!2x6bnm9~&gr{bgz#jj(^~6{d+X6JY)iHyXb`KP&1WhiFWKsvxx>ts zic;;}TpbSs1_;;?hgrvly1UgH5+vLAv~{3b0XFVSPZsP+E@2C<>{X@ZWkn4}$|wU* zLw+;pZ!cWtC-)U7y+Y_60_55hihXaaohJSWwm5bE7HkPosjJ1(&kBk%dvbGVy*%-1 zj9oKzXl-OX9-E{6`1m_JCpw>;Feq~$`_^S3m#L%l7SMJ38SUQ{TWFOZ$A$ULca{%5 z_x*!q*qa%tHl2QF=63w%@o4M;cOgmzemF>rmU=$!E=)UNK&V~``<_UdX}%={ktqi=PyMc?Vat`3l}%# z2%N2_z3o~~9%i6Q&L5ezm0`ZQi^b*rnyq^|4UJ2emf~xAfwUjloB_)saZHJjmIHp- zh&0O@)t5PL24^SAa~JI+E_fvJ(}M$JJ-wf22hzvQ2E@r81rf^v(&_iWPl(y#lO2tx zw7noi5A{w1n`zPJ zA&aqnz|&R+x-w)=UAQM4A|Jw2>aL>)_3XwKdG40|XfDQ@Er%D#r|nE_MsmSF)tF5l z?0oUBr2Vu^+E034FVdXIeiecj?teF(QUu@3VDWXyN+^^_c@pIRrGg>iJZ%74H-7pO zogvjc>fX_R`-2`nUjKuky9t%C=y#%l~mig|}yMqe84Hp7pIiMYvdY z0AywLE1MPha<%U@zl4Zo*CX(JQ{~gct#hj0x5;n$I<`cz1V`hTku1?xgM=naJmwNi zb!XkFsv}EwE_UOi+}VkN9~h<@^KrC|S@D)W+g*$e9)C5qQEDCncy=R~vi52x>}1;>y~a=Bnhq`owa$R*N4zY(u($k>+MnZp>b4eY>(X z2eyB5VX=2MlW1&CGvRx3yZ;I2jQ^z3rRE?(PkZJ1;)NT2sbHHS<=}r={z6|$mdWOL zuoJs&Dg3l)sdViK!erI|yIpT!R_G4z*v5@lDXm2U`&AXk3u}92J6lyo;}I_FR03jr zff-~TU13j54CN!-J0e_cuIQ;W(x?Tz0-z~_0yZOrJ{@YieFOVYnGXO}D{BDWt zKZUO<>6#Q;`KtI>blW1?gSu(iH&uI_}S} zarO9M`4_>DjFSYT;4`ng*gz5?9|R`dc$z3|Ngd{1XHk^xXW0MY6JV)cDGNLo_HXt} zeSi4?hrY71zbE;(n-#CD>_2>GfUN9qHz2z4 zrv*ee{yZ0mZv1|zB@o>Z)8z;C{l&_P=>pLWFC1+X_0!zfHw=vy#n@8Juqn(!Vrl1R%Jl(VFSQwyA;845UzW*Q0{FjRi z?+@fxPDjmv$E#rvkdQrc(=Z$;G5k zsh=#xivmhC_r_vtHO+cUhPCw5I{`Pu|0h5fS9EjDu%2Qzl|Cpg`Q|0rWSg+j$BUvY zkl#?3$1Ban{dK1pg%b&BlnUklTB?g9p%6%Q{Qxvd|FY?UAB_av=#R1SIh*)3pckD&fIK~q^Y1YG#1cqBp zgj>yEQZe}eX8~!T?9vmC*Fc9YO@EiDss%{EooTHs+tx$Xj@F2bsFP_Nq)K=%fy zKgvKSgnMAG;y_5TRTy+&6*auozzc>2XvO7sSNI(&J5AT{=e9F!sW;kSKe5BtS^8Ly zq}AEV)QTUL6`KNNPnGpSw7`J;eE2{3`Tmu2Gmx<_3SAJeNoZ&WN1K*uy}}6E7OmS( zxd76h6~T&ELdztc>2Gc`>Ry)o${{QyDpeVIhnR}!;O+6!Z=mb+`Ly9{iv8)WO+LXt z6!|J^pePJx$3N+MnwgQy^Sc=zc(36s+#U;fI1CDJa`NA8H8^(gX@CDWpo`8ullMpl z3TZJR$@f*#hx02x6v2OGx14-_v0F|)|CQaE10jM#+DK3zsg0)ufB$njfnYy^eN9qq74qp$TR|tRKGuWr?PKNN0onIa2$=aew)M z;N)XY6+E=>b9VH)WLAMP6fv1Pwd#w`rNFA?Fnh2ns*|J(UB?YKVE#@pBF2D52u`uH zpNBOl7-A>px<@=j5PumvSEm)cQu4_rZ4&?1u|{7j3x{>KXXgS9$MK68d~9a%k# zBn&kcVmqf!jV83##T^*yx1`y)x1B*h&do-_!xkqR^fpj?i2b8aEhHWZrh8Ntm1Qg% ziLD=MSXWKda|**NIcsVli=Y(7Kjvn1@gL_vfwF`aPWv%ReDM)Ymh@e-*!@!5@VJ~R zi@EVHgr{`cf*g82X}ud}0k-j{y(6K<5r-k_Mz_=!@;(sa8Lp8NgNj0k&?nVzmp*p= z`VdL8J|wIS8Ej+l#Adcq?3Ugz6L@kWBhuYT(oJgzlD&{?5s;NG%XnT#kU84-G@6On z-&(BgS%8>Smm}IbmfiQXrPrLx5oAVEODA9?5DYQoR=Qi7-n#4=GKjLzQR&cEsC{EQ zV|m2bUum?tkji6XFgLCX3h@q=ap%S0bftNTwd&}5`IkH{Z}xYgLajdEmSxsb+3h*s zE!k^Sc`)XvwLp9&V8|B>KqO141*|<`h{^4M`9Z@FklU8aEMY)kz&CEJji?MC2Mujd~>oCb06buj9&ePXQ7Cgimj>Mkitd%vy+?H zh;-)JhuzVIL&@F8&FuxK-MI^$RgUC(m$5Y~L5}^Xi`MGWx&1t|cJF7~=d;#}O`Ean zI_(5w8A;l?g2k8|Nl@`?=TTJW3`XDSKHjP8;-TS!7=ekFFv<^wL~R>cPkapWb#X%@ zvLhm6*b^2#e2*=<<1bp$@9sMQhWGM!wcp<^>kH4iXBFR>xY$qKIT+%bI4PQ6hbu^c zV$g}UyT*_y%X#(lT?9>@<+5MTt9rhZ{!>TfY@(S^l zoMJ^9NKZ(dJv}=hzWgN8QiS(|(T9_C4 zLbRNq9HGZY5^qJlt(b#%H_;}w&n>p2o95F!f)boMjniy*t)Eq)o|w8WNR_zFr982~ zXyqjWQ&OEwJ@>8SPclq=W+?)F21;k@zVNy&OK2h*2xrMQd%{__H!=2JM&($Ar!nFt z8(tV|XH-|a?wHr@ZR^R8gq@$cd(P1m7s0sXD*Q%OZ?6A6#2&dis@;zp<^5-*fQLsscgLqZlt&7#z0W!x zZV#~4)*Q&am1~Or5567GA~!i1MV3bn!U)(e>gmAh&Th_$wzeLr^F$wOV4F@uzz{$K zH@;l!!4%8=1Ut3%Ps_vPv;JWd&u?nHf**Oo&fi6i`*=cbF->yC(Pc7Vs@$^9i0o0vQP;r| z{I8|6qNuIVj{f+%;N1ObQPscs zJ>?{J8t<=GW?Xy=+~DN7ZlIwVg(5RikQBy$w2~*|QG7zWm-TbmMaI?^bo&m+$ftIh_>ohyjxIAyAg|IwEB$ev@ zoJtqmF%mT{YiFCaMULuQ2}Wb6UR0Yk8wrA*{xVUtht|9)#CIvFWn0YWVkI>jCkK1l z+#TZ&@K4Th-;MpB7a=+zg!e@M7+?0pDc$?3F}cc1uRie+|H@$i7kG7)=i2*}tt$Zw zrrm6NJbs>UDZOCkpXQ89ggs&K-r&i-Lu^Qv3RtUMYW-N~A@2DoBhN+^L41ktzNZ2b z-cas``Hrqi5y5@2cvft8b$(CYRk01_+Wdm!k?^ML{Ia4bQIv$}fP!=*h|-!EjzP_t zquF*fQ%95YcztDG3escw#PZTTS;5kyicIlsZ;Xt6BUi25q73+&(THg$C}D%7K<8$X zpZZ?ZVAr(%;gLIY?d@fgwK-w5+8c9_KPFGWq^HK|5vvX@+n0qYN2^cqul5J4ZgbhLqA|G!iE2L{5!?q^u`VPG>Kh)>T z$NA8A$bb%WUh8N-z+li?;lxY%y#pbd0N)>bLG}mWNIM9$PiNr3=wOR`p~|_5_0yo> zeO>lA?hW|qvxtg`28Q?su`mousMD8r^er7L#x?L%4yS! zd!@Omr7w$PXXAy>4z`STY`XSc^#hL!V;u%dAeE=T#}=dRUIkv%r>bz+0Nfsi^8^RK z<*33X7&0cjQuWz3KU0rY;u9;x6U{}9#Kga=N^j&7puZ{_@KqoG~X$&r`=Kjnm z3l%)Z9&Nqlq1|J_H(}6?My0?yg9337OTt?yCO^tz;O9XE?Zz+u!^2(Zdii}=6Qnz(sJz@1k(`r0P=R;?1#ilTwq)Vq#d=)2h@)p0xFQ)8~DCig^di1`!K1p@J6Kx2m^h@}CmV+zjscXM( zxV^pZof$NwuLLuX<9?aeO!vI7-@ceY0E!YG$M&pjZQeaUgx0jG?BcI!wW)ecMf+_n za78c3R=bd{vGZxNhaz@$*6@k1=1_Yv2%BHmR_-s5mK~d5tO4JV>A^PIl28WO`fpt8Rg#E{RE-USLH9243&qqq}Vb>SLTH7pRua<(DJi~fS4LELm|54|_ zgDn;4TsY6w+r-9dG1s?}p~h|SS)*s_x%KU7ZgIj`=E|V-?s&8pE)K+8yI!VMuBc0$ z;zhHxh+?&!xVHoQ2iBxjNG9I((0HAv%-Yj6b%)D@j9hex(%#q_W7#UkC~dqzH`ckh zyoK)n7Fc#Oro*kN1UNw>_Z~BOha?;;Se&7Guuf7-eX`23VpC%suT6HmtPPi*a}U2u zFea+3ak_;5XLK3w%ACJt0DsPGkeil$`Snb$d3b>IZ7I~I^DI2R-=||}^Tj1H$iQAE z*~?o8bX98$mv_Va^pn9B*VgE1_ACR*-p7Q`cE4hcZi3Z!A<22cPuJcuf=Tx+lS3yJZZ|{y5AA0Jpi&Q zHp-3ZfI6cwg~r`Y6^%*DVsRf`MwEC8@wmz1-$K*j5E{G0jQm>Hlzh6jZ=roX+j#jR zSw-?$EDe_kZj6RLthmWB3+7p=)Hucyr%IUJq1HV#IHbqV+Q%q+l|{4U8YdO_61{ty zqtT8n_8KEMNF%nIZOG>-t8ec|6niJyPyeUU>47MqUgzC&qt&TidrC+)ar@F5*~tv} zQd+{zwYf;eM#m{x8{U9z=9*w+S-a8~J|ifepHt1s`kza!PALu(P~~wS?)W0X9&lD7 z-Sev|$I&@VA1$2jL(_H^w7NQvt@J~|zfCt~#d`hx}y1+4(87y(zP;oj&PloYlr<)#=<-Gf|+9`rAXk?Kfdb}7O zf-cn_UL-v~=*lKp1`Z7Ehs0G`k@?onx?$d>;Gq9>M!>zFvV-sg!*VH`VAhNdT6$~VL7|JcJ+!; zpYLYdYgJuP-}~5nTa)mb_>bYsAKfI>A+ia!!@|oe#gb=-prRTR-dz9$+wbpDz7l4& zJ3ra16I~MjF?{*Go5oBPOrhp1d{}HKBKz8GHLcg{XqC#N6_!Z+{)||Nb(?Lge ze*a@0N{XKd^1)zt0Y=8x8ntPCCAQkAe*~sJ>b7)|>Oli}Qc)cS(NBs2P_i^f;Ev+e zh5kBRwfuUHa&P}wC@7r}`;~p6Kc*?l?IMD zPNoi~2#Q?=7`D?~BWkZ4tXhLn7p=%y&t)Q*Ckcwxk_jCTT0bJ_r@yQp?cOUI_1<9p zt#$SUI&!cS3F3Z(|29YnQoEWBCas06rW`2u8}6@+ct{Wh3mX;`$Vh4ONFYd`^II&$ zVB1oKWogG&(^{Jx%P`oEM_9j?%c!eh^cKe^Cbz>BYzDut%aIxTP>roBFDhFmlQ#D% z_N2Yta<_dI5c#(KnY*DZ(B$CghNJsMhglG zOjDyBTA!~CGht(4c9C_QDzUrV%*PAmJV#Q3+*EB~Z%E(luX*CFI<5F_+u8JWdpai*6~tL*ip%YPZEAHu5ARBHJe(qfQ!w`)XvjDNGpn zw&M;IXxE@wMmG=LCrX$De*L42mBF}plLnBB?#DOq=h#O3p%e<$<>Auftaes>)wkN|>;*E{PG+LJ(ulyiEW53zMOJ{DRWA(%oyoBh zedP)=E+@lnk(&hSZ5gTxTEyV1di5I}d*Dmh<~YU&EEHf1;Cb0jk9G6deOzIUi$&mA z<63f0*G{>9*hK`!$y|KTJC-(wMrJ!T%=TX2-jAy>Cn`kO^O($Kr-*z;n|3-rm|nTc z(+atS)ymxadGUq!%P+U6;At|@(Q+aDKb2GYp%JRPDj)JkXFSK4})rF ztL5Y5UM7qNVeaF#ho3S{mivzj>C2AKxC{N2dbUqE*9#)#Su0IY{AP{E%Gwa#=&#Y(XzIwU*+N2bT<_!f#O5o*Fa)JHS zk$!@|IOUnC)L=jMmRX+|hw%Q#%`E4{XlZ42#J=Ma9A4<+Mdaz4dRaJxP?Lr8g&n)cSAp*E$N%{W8oSpD|Y=rAC5QqW;ewP)Ze=L;if@+u`ZvR$tg^4 z@gPTj4qVjgdmiuHbFiVuQtpy&0VYMW`%82CM7 z)vC_Bg2o>_;J&(i>C|Pc)2_k35qJXY1JE-+$yl~pumDI4uF&6J);#U!qwp4mJfsMh zM-IG6w{GVu8d$ji=1JN2WJh#jDSxc3Ucz3V#`c%?T+u6|-Pa8F|G4f)KOsxI%4GOS`lpk=1PzTtJLCC z>*9wA1I1GLx@A4SxRCGtsl@xP+jU8&uZdGn;w_d|%**70kSy;tgN|nse8-B4aWnmU zmAeVP=|}A!1!dHb-is@DIx~@v*6oas4oj=u02Xv%V4T`6yIc%Y$3b&?JQJqd`*}^) zlP7AOw>=O~%ex5NdkDe(M}bRe52(h{s^TmSSvLFig*P75HCq$@m6VY|CYAlf?cBj7 zCdX)Xv!CzMQV#}9_NNIi6-a?%pxa3w-HqIEpFDgd0Ta(N?!98Fdynni0_ZD9xne^5n1!}y!p{eG|88PDX)Vk1 zDXg)ntGrjSbGik4E_AuOQM~a4zW2S1dwd>d3)|No6-yTB4dXI8X}s~V^ktCV`X*T zdX6v|aK>W=KnEFMp!JuGV0rF31bldFfWg*Nda|UWgsoe*rqA+Z>HKMTc0NP&ld3SU zdqA$2FHqF<3=*Mpa+1MccYoGb0g2jQmjYapP!+aQ0XjjT0_{s4JjnYmdH>m8(`7{c zPq*zwh~I8zIl6(r=V)3Q_|sBvgdq4mHCMx6p5(u6N;awXS^WcO3tnsAqHg^YVuG;w`-)z$ho$9av7%*@8#?1=p zvw%=XlLBQhbl9PL3?r=D@#P^o_&K|NwkBO*61Y?|$#oJT;isWFC@p9qdYn&M?fm&) z#wlEagNXE@P1NW4K<9YBWo0?%Bw-p;Y832lCJz+=-x!I6&qY4JY=2Ktc@>Cc5js6+ns&X6U<_cm^5P2d)SdTjK$4s139k5bf zwtv%lNtN^i{IO?Z*r&Dus+Xc})k=DdX(78Uikqkd9};fP&RH`n@y^%EeKMic0;IAL(IBdqWbvSqN>Bf24+cRFy#|B$k z9iFXmhQtHYPSdSgW$2_Io-P6}B2Uxty&dZ6ud0|G)Ug|RXCeyl5cDJmy;9LuB8klh zEzrpG3&Tm9VMh!210E(^~?@cFwK=*)-FnDIg_o+bY< zjK9+fBd2n0o_(5{>q|;FS=Dk?^ORw>Vc$U75)0lTHQVXNg(Sn47PD2WY{}!z>DU3-x=RtthBkp-bJ|596GveQhe8)WQ(PtrH8?L_ZjYN=f`Gv zaq>AuZ7Wk;pdVkeYiz`D)#fP5$5l=He8BD9F`^7NR`Q8c`^Ca?csrl>jW=dE ztDCmwy&L*FB5c^fA{1t&mPF7HeI_Rxqx>Fzhv=ZJz6G-}vy*wJr_sOp1@1KircP=jm3@^>4Z$U55@f?-YaJIL2+|>Ti zU0i+g*9k?k-~MGgOC(qtI-}NTCvZ`MpN_`k+Gz1UId8Sak#{tG>ZTg$yS)x)d4B7l zqhZ@=YLRg6&7>P2y!*;ezLAyfAJzNb<>BL6Y}tg-lwlMrSLBv%^G|3bd#%{Zs|a{q z^ly!S%yS;fHpMp24N|NL4QY_sudaZ{fWYr#n>K}(^;!Rwxtg)}J(lF5^v zbMaD#UPRvD(LtH!Vim0#->TUJgQ1xl!F}h2_$A|6cQnBy3BSP3QiP|Oz?17%pE7)` zLPqbfgLHe*@OoE+sqvlADP{^P$Ill_Qv8v5Ub3HbZZh-2H~72Vci^h38*96&bh5Ef zVbxwJ$Nl`Gdhylm0!&i;nOX^t9`x#Vx@wrXWr`kdCIP z9_*hb1tARHYen>*g2yW7y?FSEr)sU%djPDkz{Xe1#oFZYsfgI!8}AaZ^s{)F8xcjT^-jRBjU`4l z`MN&zs@wH;Ov>2$`8ctnb|0lzuX?%md5!qF8*cbh&&$(B8UC1bG%b&A2v5>RFlgn#?{Csoy(pPIlvUWvRa?a#}Pzna^Wqg!C;{eqn$F4Vb@@6 zT^X$O5zLSzdt=^bO-t1}ci2$NfhHn5iF#B$U;6q$!(4m7dcZ~yUa!EmZ(qN!&b=3t zIwHi;dT`}4k1DkM*Gl;}zOBqSoTqgc5H8?9d0g=AAwOAOo9$Yo2M(0p(pzF=Wd&{?tb<)U;O(6x0d&-1Kp56S%80G zSPQaX%g?s6kwC)1`#d&d@9yK>sFa%or!^qsabUi(!PHzw?Hs;pD6rE}zkOAm|F#ZC znCGGZFWJ9eHth+a8TP@S=lGiP08JZD8!)%-MFKqdv-VQ0f-We5ov*Lz5f6=kE?9^q z(EGFFgQ;)?^;fb_VjO2l!=M$WrBmp-eWPjVK20bQVi}9rz0ohSYjBs~?hxDw?(VL^Ex5b84ienm-QC^c4$1rOz2AL) z=d63~e|ObdwQ6dfe!8cJX{xHf-%s;rK>RBlA%%L{_xFah;9!PPXyG+hz(g|8LHybX zl^~TM?|p+HzJ5Lj`MU)1TcOE<$b$G(%iw`cAf)(D@@VG6x2rU`{@yhhSGWsqy?zhLd)&SWxUtS?M9%^^LnZD+(DA|H>Rfxw%9bIcK zA!U8jAFaZn{2D<2S9$Nxs76ORTMBaExw?$`7q}qqF?l zu0s0^Q#4PIOdsCidN}2~lAeq@`&KUQ0{0@00#OGeURZAk?_Iq2(q%_f&V8~l(x#>o zs9h6~#0<5=wM^|vS|0le^ExA2m--qDHa+VF94VoWwsU^CvAsV_tZ@KJfZiT@uyK%a zkikgBn?{=uuos1sft6PmNj$1RWFlE}_7kFWZdoYXV(4|3IrA?+ zN@_@b*UNO&0_5gdx9)wqT6Ya+e%#+5P0Tm9OW`NVH}XrQWv0^A&mOBYk}Teh*CafZ zov`>!5C`@DDT-bCJFa0r`ukfPH2DGa-#P>cX4GXymX@?REuHJhhV}@v&ZuUuI1K5N zlAv{~!w4lqhR+w6@5_(UO(H52>(ob=shQzVk81WU!-naLJKpF8*|m2Mf{w22dpE#; z$s@0D50~C_*suXRSJI1$Hkf5#apnFvN-$q(pf{ViV{mK@Pi zSCsKL(bfQIshHj1=vg7oM>J!sdHAQ=<)dB3O9GR8TiwWx=4ms{ao^WUHgc6ZL4y$bDeC84FIsUSNpQ z$o=6g`p=(G^+r*vq>&F2!p*$v^;)%wmd_$RQe=ua{W`T%j=3#Df{Y5GF=Y9l&&||J z^qv!3+9;-v82jU?$5T%h#Wn8rF<`B8=Va|q zqN=iEs+^*xH$)K>Xy-%2dUg9_Jj*y~w;zwJlVcrl>Pth61NX_Z#X_qV-RY?&`_DYS zD+eOTE^%Mx8_mhZ#KiMd1 zk3xapuXPRrX5DL=@fvu+G5lr=I@FoLCN;ZOVcDFaqGPrpuek7O|5(-p^b z_gNN}^!O4~gyL<`lk_(LCbG)TrbKb2F_oV{e)v4>p zx%4exIJ6r!Nr_hq+=sxVRhXx#xb8J+0LN?bL)7ZAQh=w$qU&6FUe;dU>CJ7hD^ojj z{&q`C5@HGK*<)}y1pU(P?O68Vm$)_Qd0zOZtFky{ZPP{9fr)JalwOaQ(arx=pbFvg ze-x-91vi?kEKK@>w@!+tHBFM^-T?Im@7T#3J~i!~Od`Cp&kXR{0@vdQWQK8%PUE&1 zPMZRTyDl;>zRc(MrK`UWXiB4OT+mSHfCqyi*hiEEK3j)wyi$A0s?2Xa^AHU!Zq6n8 z;XDf|$3Pb9069qPt3npNY_I}fJ`1G%mvPlQsqvCvh)+;`BAoJ{f?fM_?w7EzxS%Zu zl)#kDxrI^iZaXII-jNwnNIOlyhMfwfh0O{0S?6h9&HG=zJZ(%EJNg(~3f4LYi<`M7 zA?^9Wx+_cwjRzmj)=olwV1M_oQVF0X+hh!s0zO0PFpMdGs;le@E=G!0Fu9h)`nk}7 zece~e>tE%lOtm3}w@sAPZPkd_{rFL*4|Mc1Nos{#hb3C--n0}c${yIiO4o^9$L)7b z9iRx;AFHRbH*`1ff_C4}CeaKnwSdc!Pi_oqEO=nAt50D0e82Q~#$-(V&>Fa$xrVle zHX5tO>5Vf)B7{Q?6oE3b6$?cfJfGeLmf6CO7TdCj-OkTMB zO!T*$Q+N+3=#*AJ+3E7&04coDC2Xh!WxlD-_^s!36EeLVGuamKLhi;A1oOZ*69Vfi zR^oZ-eNBTMIazUjBz#|Hra}Wr00JytMLU8)UZc9m&NJy`x=$hu2;PQ5U|>3IoL&HL zo8ZjW!w0^Gyd5qO=>^(cBX2IRzFJ=VoEat69vXh~SX^6*V~Go0^L^L#u{Qf(JnUDm z4^1~?5!G=2aaXxzX$*J%4g)-tvb!V58yL0VAv#_4UNLJ()9B)43;$PruOM1y#Ey zf+j;8d79hqdhfS4-%FvS7>GOOAPQRvAzG(tbq-k^|!ah~W&kOnT z^kQT8R!_v;#GgP@*D!eKqP4i`SOms!7|!gm6kl2Ej9*hs&77BoO;Ob~@)No6r3|GE zVYS;lDsBgZBczd{AwXlPZ{Vr$$_N?nm^k;pCw)}Fj_zo3ltvNhGMs{iviAKI0tpMc z9?dGF`IQr}6&)JXfp2?w?E}i{{;xbs7xv} zt&d+dX`T(9oSW`YRUQ>5PPYj4?G=?(%5OynZ+&`|xKn9q%-$F#)yEhZtRQz0Z`OsT~kjD~GlZuQeTe&Nb zDnt?vPbML4FmlWOMTpebCLSZTt?mMH_&U;~Kme~Hh)Y^zXS@Wbg*oP|M-K)K429Nvx>!uh2(iIyaBeu}b2hAnBK+$6KYA878DH>{$!(J&+38j1Pv+ykGm)sM9@&ImtI}z3m zl`Wy%(MW*guNKy-SMu4*EZVG&I~v5Y=t>Q|zKt(gb#j5d)jDkk%t!Y$b7zRvI*(In zUm)c>Mrc_Gg!=-hKan^O@C?K)@mwf)OV&OChT#lz<={W2E7Nr=X!r}NIX^hii^qLQps)U#*CT?h)WJRZ@~-bo_2Ig@@egI0RV8ltpt>?bUA1}3jbQFY zn$i6)Hy-Vt5ect(L}k;Tjs|vdAfiG3+S!BHn9%W)2eb)E8}|iXc+!)FnJEtL{WaS* zW5kmjDhB3Vm*GNO+Q`zwGppA4j3SPI zdP{5qe&tQv+d9(_B~rq4MmlGg)flefFS^mn6Te{UR@;I@3z)69iPGgEaH7r9&ApcZM@U-$)?ZfSFBZfawob3@ljCdAdsU&Q&F(rc4yTWG3KyH*%-bS2yi`7MR3M)? zbn7EUt`zAF+~0Z1MDd)_YExoVq`5X{d=qXA^6aWK^)Mz*{>eQ9p^U5T4#Mqq{cZ-L zx0%~$=R<}a;_AOkN;V*<3 zd21S~`T@S5AmeCZ>Wy|TmELV#o3%kiXU*E4K<5g&`VejVJ-^q*7>e=!Ne~o-Bt(uR zvu!#WS6RCaIPt9fcNFv&WS$=-PwYft)$+EiQl;g|=K$ zV`LGiHaU@XKVm%o1JD}8C#i>RlN*vRXqzKQNR3%8c%};W@9G7_cw8hzNR@FS3z+Zi zOs;{xomSvUoyhw4sYG0T+ndqv4F9=7&E8JFp!{e)O$;Dk5D?YN79W)lsYs86Bb$Z` zeGG^S)k8#+3Ry`SzQ3#4(=0U}&l1c)d)8L9D*?3Z_u)}D)zlcRi($`?_vvo?OF-rb zvQSblJQf|a#g`bJT>PlY+P#K7lCgw2XaX1riIZ~?@}J1YyZRi{V6-@J=nE5aU|I^F zIe`7UdI16E3Kw!qNpVmUe0*UzEc z@lE7_+V(hiG=?7#z$g3|TNU=EQ_fG_D6@S&Ljb{4@`=nC#msE1cPc+Mm~4RdBBP8r zCO)@TfEr(1xS&^U0nV9M+G^q#@RYz?kky$!l-L<*jFgq?e=j$ZrAd)?+BL++5p~SX zHR$^C)v-48eJ0d-C`s9R6kHDML06dF9%kX@hMgl8ixcDWacf!f2|c>qZP5P7hj$6ZfvgOc^w~=X$0!(#`brG^9#pyjs$7KvRNTJ zd(dAW^-P2uDe2MM1Dd)8q=&MQ(G7t&1U1;pf%9a5+xaoe$RYf$WvZZggCc&A|GOBd zXlmheFu|~)eineP3cuc?;;jdbQ z6|SaQ1k;{kvdY<*Y}=+`KbEFpFgKyW53WHhYuBNItIEQ z^lqy}>48)oG#mC%@>>5S#2N|J!v1m3q9SxYow3SNovu0xGUg&D3h_MlWU6njGH$IZ z7NrNkgf7rpUwUNUpiJ|0W>F0|*G2GPjw#y3b*{TSjg)WX*zE7yTMU0DoZuae4H|}% z{F1G&)KYG7Bvy^ITAJiHwNZszBv1l|BB)rtbOi{1+0k5v;wA&@Zx;&|x*uQkR z#e^kPV+3-2Vj6#UE3@T*imFm2Y}mx?n_e|$^7LFuj{y^N@&C{zzFe{+P-S5LZ8lwr zy5i3!xLpR<+9=rjQcT&JXY?<`2C;Pv(l~B9t~DC8lSF7#gofZyYeGa z(|J-n-AP6$2oonnFvFG{T98lB9i3qmfxnWnn#yLjl5)D%Y-`6wWk&~e z@e}II2lyUnN>l$heRyIPtx~rb;1m4@?ZX{21#OW1_#tL}&F1DEyevW|Won zbi(}K8WCE0_gk&uP7E{38W)RZVN8F?F}0qH+Kw#41dRqS9Z*o3aLjaea)=pb8I?a^ zKhOtZbmx9ssKyQjJ>e?<9*G_4kH$OxqoNisk@~5I=Lu$rNJ~oaWYQ}z-po_ zP2Y7ixnDnl335p5vhTdlWoAmsc$RXFWEqIl8tjwzqxb|BK{g8Sf3qyI@CgacA?6VF zrz}y91IvD=WQQb_6`u!)jv8TSc?cgKcm)4dF zboWX2L#61ap`}`WepA??+qRunW7wFO-lLUm@1?X=s(VAE<(&kz*F`b6qT(Z5KdAN8 z523w1+fg?vDQUCG^GyPsTlGz5={$g#Z@su~ z`#G7}?Ql+N%}iQj=9Y$4@Y!x{BRg9_uqlo-(#@45C0qP?``nkC-n^tsG@R9ONEoLi z*qdaaySg8(e!;mW9_GquL3&PIEy9xHVTOMEo3ZOUnY3oA(MU+*Ni8_@&D%In zIjNI4I>Q$+*KHVE(|7$ENM9HF> z7mlw24gsrJ$AXyOlX;$o)G&B^@b2E$<$YKj7Q@Z!ORvJ}AWEweWO?AS z0G6tGxEdww9Y~Hi0;!8;uuRJK6WC9*EP^pSc`+8{T=Y;nv@_(d_DWf(I7SZBXt+D* zZPGL^J=`y6C%wj>m52s~ntiYwZbb`N>DQ4R+wRTm9C^|}CSe|Fma?=GkxS2Iu9;o@^Uh_Tr4(zq{!Eg-BK$U;H~BKk4%NrvP}Z9#23C|#r4-y!y0v)ku0N)Vkb z7Q-z|FHa4M@zxXWW@nF?dZp#ZCw=Rd#1yp^gC+&qUud8TO^xkfg`juG0EtVMhVQN9 z3o~o<3zs1;bXW)3Kk8$ME)OI*OCdJUR|BfmC+EATn@=)72j__}rjjPvOjm#vjb7t? zGN2X|bca%qDKj;|RNRus1l;f{<9&oxu4Yhn94kG%IVL&^Jgj%VCo=~S5Ns5G65p(? zY`(bLe;I^xR+fzHA;i&h-o=c&NR;8FdcPW@e*cJyFMKk+zNI-Y+u+5y-n4xZd*!$_ zYhAyJy{hn2UT~nVP<4F5tN{BZ@$SKHw+PcfGoP3ljW;T7F9$(kv2G5I)RTB0{`>p3 z+U__$(U>+5OnYkF`(4!x>Mz)av#AT;IVrx*y|hV0ya=DR%RWy=tkxJjZRabYp7_CN zVUzyqpTA`B{gI=$KO(9xiBpFPtNc|BwxWZ_K$|ij-sjkSt?c^_l~iqPkcm{x;Mj=J z;p2U6yy;-M#wtpa;_mL}kE*ibn1Y+~0r6`|q943{7&<0Q|Jm`^^ zkGXW6oT2x%`qH`jmQJRT!!eRElKYN(<^(KQYyfm3QHx5OmnuQpo&c_+X80gB_zMytI9c4zq)hkjI?Sp~3)Dag zPdDpHw!;PC5rpRctkj_*DM)fG$CVIG^Rl8+H{o2Jd0JO<1xCpVfTS|WyX;-rb{4k;wS8)pY6 zTQv70H9Vh|HLeXIR!)*z55A-dG#_kI>7G{y+3kZ27^E<@ehI^siTKcU+3zcicuH+s zHB0?DO2LPyrUwHs?a0a9qigOX6I9!ekCvw>vBf4?rk<&bPJ|mpF8*MA#2&A`(D? z_AU&CFi<{z26OsVRlfd{$Hk4kyu4)^zs7>HBhV%5eMl`WW4-thxEIiJadEO`B=j`7 zc!ydKby0ic(^ae*aQkHq(@Bep_fvV@;aDbMxzJllCOtmC@);49;upFYKl)!SdC?)dEX?{ZZ@K*b+gP@kAhe3HiVN^_fVEL*4*o9^lyD-MEu-#fn%Jui9p zIg4L5s~JL0p~7is@RAEYPi&*^J#(&P0R4kX6?$Yz0WsFD^cW`;WfkpEcx7JC%t4e> zmE#|*{dH%28s2xI;+0kCfCW)hF5nZ#=!QH=r?+1KFAJ%e;7@t^Li@&^DkG zkRUv}K5sw+{q@%1ze6{m5tO|Cr0`OhEYAH>$9`9CBqZSWzcZbGA2dPbU0o=u$*J*+UZsWNdCx2{k`OAY*zx@ z8>Q%S-o)>Q=pBu+z08^0-i2YH>9YoZq5Jx_=?w3#YwU z3b-P*Ee5p2_oGjIx|t9qiO0?t&8SpzBz5d}%zN(NJ1Kg7=)7Mnm((i7F>S~y8I=#1Rq(&1;}5gt0_kainFBkmY#T(q!^o2XWy;ucS~0`#%1l*Pe(A#oo$4# zTgDk17B`|k-OQvJ-@$y(=%jVfTPK&|y7lVNYN8QoO-Fubm|Z3FQT0$H&<%AApw)6^E+6~ft77fK^g=ofJcPS7K(ITe~mG?T*DgY$gbx32v~K$<-Sf79XT}` zJ4_sZWorHO)Y$DGaI5qkK6*Xdy`Y>^iD@8E%Jeofx--zH&A08eZT=gShbhadbpoQ_~nWU*R66j!9@IZ5YY?ef}TKCrC$?3 zFlT*v%V3&=s!=q`=+>;`)6IuTqhThu@#QqQrk0bfvdcE#7dKZ&cFd2%`{{MXTXx?e zY0Rz4E!;-OE^}-Q0t0($932S*M!Q{O_r-Ki1!?Gvq`3rPGs-J8m~r7ma|-0sTDFYFTQG)fkj}0TxK2kkN*y}ijQVDghwy30D=_*;K42?OMd+cAiM1;ZB<>c!ld4e}ea z9F>Hk1-?a#Dw~&i3HFDDo;=f*9yf7@C}mMH8naAifz@!G&P#y^9wqPXI*0hm6ga}vhMNJr zTnkk#GmrNwWGQGv7?dSvSYZPC@Ne>I|ITW1S8Z$Ba&gA^7+uEr`z9idm_p}?WiSd z2Dmep<~2aC`y-~`-eP<`1@mp!H)}CsI`Myi2z}NzdPtpfnKgNmkUFG9+cSQglq7bO zL%n4R(Zr2<$G+_0C>I6Tg)sN_FEa=K-!T%Vsbthcddnl^0|;ZxR*3XhLfJzM%M3y^ zanQOYW|JIT{3plzuJ{2bpI5KN>x3!+Q+inIRl5KG6-hMxOC;f;sb2E`o{*4$`mJoM zl#5GwjU#odkR$a%XVlmkHzUR;IWy#h8}__hue65G3ZCV^Azt?~f(<{m7!q>IWWWW^ zW23tw=Pun4VMf#k^zh$j1v5rL>Zz(n+AscwcSR;`GoT>;1@8KdNXW;$4{dA!y3m;U z3^VmB6*1PyzPGAJD=CM9>yRz?t~(*`!DaT1S&cV`Hp~;p-vx$_by834Hh7UrGFt3bZXrY|9@@2>SeGDe@|u8dNaw ziR=}XPq2D!Ho@^Lnu9&UWk*6pv{A~U_eCKHeZwMTgT8?h`1~sOct;J1JDjX`66sRK zKJtT2(ZLkyeKYvjddb@v9Y+^}wejut_zMLr?V@F6k|#5u$kxe#DU8hI;2Toza=J@@euo~G4{y$8GW%I4S zTBS?x|6(ebT0Q)3xygOIphpoO^aT00DIn2^=7hD zC8HV&-pOk<$Wy`_GE(+f>D}7DAt8e+8eKmh!J+CK{AIt~v&iIJb{23^f&`K#JUI zLgwHLWUQcrROJ@Hyy-gJ&1t>)B);}~pAn4SLdpjeLq06*&&on=Sq}+7u>>Y`&5Vc0 z1X>e;B4T>X#eK~QD^fryP(hpQi>t)-i>2*p_$Y!wmsyLo*lSNtIiyf0HQLL7D#sun z75m42_Esx&DbR4Yx?9`Rf08)z!XzH$VNxPpZC1bMtlVu`Zgk+yg;#j^ znj0b19{yJvK$zQG53svn>HS}cWql`w-+H{H7Z^WKxW__q04pC73U^LfZoMOyFJE%9r%GWm*;3dZt$(4OM(VH787<3d7){1L13|0}JR2BiyE-wIjlW`dr zOJw?UWOg}!0aY~f5(m30f;cr|Do1%YB%nc_b=eg|sH|BXwb*Ounc zfyJ(PKfgNmZt#e)#Wx3iTeoe}sK2)5!P} z#sux~R}SFW{HqnG2J$DRGOQHt@0Rp{m}UT+vU3GLLcULnGrq?O1MP=)BTD%&1^IbBtPC^Hm(vfuulA)Z6Aww`?$Tb;$ zJNp*%t3Y-@Ktljbo?=~E_coe)>2+B=;v;yzW~VMsA=i!T-weN?XCTFIdg3r=cuacP z%XLa7!jvbJGs%DJ4dOR5%Od{r=xG}NiWd1Q^f$#XZ%mpDovl)9Uxb|J=Hq$xuaNI( zv8Mq3m}V^_a}o^&DKMh*@7X~h8Zomk*GgEAw?bfKrlJQvkY12qHL)Zz5RfyyLRB!Cf}@$;cwQ) zGUsaW8q}*dYvaTG;^;9S57xu{*l2(U^Hp_bI_$IA-kY^?&yfGW`roXL{|p0K8~+Le zS{wi5c(XSCX}wt+|D=4gHomofTN|I>tc@OT)<&L3(T7hsF;j{b@9?P!gDBlFozw*w zQI={YF<3}=Ga4v~s7ul-ugC5-uNhow4-C)H&M~eSGSc5Ye|$5pcNPlq=#`b7nNx(1 zsfehUDGIR)&4UmKrlmRV$s(VPMFhhcNelyj?G&UGOCJ;qm8*lG3sVce9%21GR4~Xw zdRy_+6c!#(AnT98V-gUg$jj6p5{M!I(8qxnxaL!&HSjF0d@SnFoRw0E2In_dNgDGfRoFkdN?8|#k z35&QU5RP(zsc;uL>(wmu{Q{E^*}gZwzD})pcS+tJHsT)o0CSKeps9yJZq~`CrrS(+ zt58*6Qzj_`9GOwtN!+;9O$m&IKGV*Z`d`FPzN30;F{d2hu)(6y<^b{EzIDPM&ja~v zndzcgam=mZ&Il%X)saum<(aF5DJhH(B_M`9SxJmrth$KA6GTea0c z+-u6HB9%zL)IZbzUJo8+nNw3M=%U(K}pL;u5KKLT9V(uuNG%;KW4 zCw-Cz-7MBB0-7|P==Z)q>i@9IfxQ3zsawcbEU|g+Huur_T(-na$9LPOI_G=*4T^T& z0kT}4^a1C;1bNh(ZAP@(T3G>hey%BsT1YhUo&1D6k#bmLCTYnID(;=cK}m*p_N8=kpe7GvPb`M;SdFuN;t841apBFPJrfBamAk zW)dXEuYj2~fe;r^z$lQ5PXQ~t4;+)q8vl2{25?OJ&oJPa^iNn5a7_9q#|m&v`lnU4 z^!~4uz%l9XmfJ)g9Ug@S$q_;v4Y*{G7>}d^UlSixrUQDM_LP7^&rsO=QbHEADMdyk zKJnE_F))8Y;<~gPkLH4|{3Jo*0(c$KATb3}3TuYMk8P&)uD&w2NTvR#DE8Hi_;`fx zJ_YZR6INCTvETLxMRX)zpuYQ-JcOFyS2X_3gr2j4sdC0nK9PHUW{;)NiB*DVD znOT~=?6Qd^W6-R}6|=R31$Ns>KtPEzF{cvp4~qF%WWb4EnOz&xsmJsKQ*q>Sf@W6X zRN83gfyCvR`?r#qhx&P|V?P$=E`^Jegg)U<6z&P%9%y^bi_i7-uS#1+n=HxCuP6f( z(@gS;LOb2Q6I?Gee^;|X7x;!(^*#zUsN}0YH~}Ssig%wF|JT4i=>P67wE6_| z&#*=Z?>}J^WOMj`avZsJq5hSm7R~F=yK=yb!dq+Y&7d9?2fT{+iIE%Og!PH#LS%zm zf3JoUifMuu5=V!~wx-2=t6aFLtlnCaD?0}z1-ZHRJMDY4GE*!xw>hJ_NL>(x)dU** zF+$@|=S>dm?^02Ls_{Q1czGX8v5}oJx+^mZ$B_Hho!GZC2e|_^OT{kB0ae+587MD5 z_)mE`7MxH&gUkOcF#j4fAaAWGfyhFihDFZ7pDi(8n?6cYZ{_uScoHYB&{>CM5^ts` zzbU#(YBdjl1L`SbTq_m8lZYT_MSbIF2Tuu9LJ9<`Vda}D( zF4OH$uevxsJajx9A00!OrUV7dVX7J8US;~ONGj! zFyLo!kmGQtH!M6qDz%bsi1@qYH8Dry$M`!6CML&gEDeOo(hEG!nYMF-%g~A zXW<#!MGKl=$gaX3$Tv@ewkH1q<#dk|`ZhfN(*o&cF~xoMRgXDns@M(}pYStCctl5J zOrpg-kAX?vkQeK*Ud4vi^04d$s)1a6Egi7VFGob8XcUfqLR|INag$ zhn2#!I1K{FClAoc3u&QoS?3)BUQepe~Svsk@EEV&cLj z71$l8I&$C7B+--I@C&makfpM8i>ySXZKUwCSK46Q>iKZf$cjm%thysZl@-oqvW63v z$1LJ0PPiZjw6>C{b%c?EOa)VKo8S1E(|qa6_sa%B6}g2q!gObDv29)bjd#rtw$b`o zC>Qy#S;C%{dn_~=C znv!h^_t*2gC0s8YuSd`Z9@d>l-%d9WGK4M1zSGE6{5F1%z$duT*NYGdTU$Q(WH`6# zof7-JT=)4bqtA&dLRI&GUp28A!yBa&AL1o!7-*~US(zE?guM6Z6s-eFLy0@ab<`|4 z*=OZ%redGT+5^pb64?iIgztu;N#-k*=~A< z^1`xOFb!GA_m8zAdbPq(*p*n?jN0!h_F>Eu`{$-^$`UeqzksPzU%F;sy422<>2TE$ zMMF=4xPGQR@JpDlJG~3X0}p#WrdAgC ztql7vx?zeG&K?`?dMr>8zI2l)TUZ6**ha!%AHTb=o)|h44--0T-5;_U!5f|6j1NpR z=obuP5QGc@Ecp1})h&dTCx{Ek3H;g%$QBxk06#C|KThGlBmdcI(L|ue=mAg#(Ufkw zx$$1br=klGk_83$>`|i&K=1}dL38!Lm(XDG^V#d92qFok-rCZm2I-F5#Tf4j`{b21FPRhbp`VKtL~$I%Wm`^-|jv3za#(IY651# z?_JU1wKK-v&4$VHbPb#EF?u?f9({coojiXWT`j9qLNH&{pt5T5+3P>Pa^a*X{Au5m z6*4=#58qp@ohx#c%z@FgqRpDHa`VcD^Bq(VEsV72Qo|9|@uvwSgs2F1>2%=Ej2<6> z1&jfqL@hp1j7?*j&B}doc@c7fWhzmveb0(j)5W4bCyoPI);sv9)%(qz1rBm5muBnd z!|PA>yQc2x4}gn&YiZVx#)HrlF84|_6E3}oQWm5_-dNz+s%}4;!!}@AE$i>tr^mvs zhs8*Xr$&a=UD7Ol@xtDbD!oiFhEGka`_ZuOSYMwwSMFPtbgIbhKW7sa6cDr=6Wq-2 z9U48kg9#p$qE;?;!Lh}6-MVG&Y09=-2m7krJpW+7;q+lD(tp*<%UaBpb0{~v*tPxg z&0XU@bnmoXn$~^NfblIr(SvB3yA1j1t@}s}dyTb|Vh;#o&J9_4(0L$AP2; z$EHYNR>Q2;;dRy$8KBCi*o1_-q13m?Jmg`*NA3h+8)}CQLubn`Q=AX}zAU2C%SlSl zSe6}t^M$(gNL^JX5)F^~tEyKGh%r!T-&*t4A+AQo<5#l`#CK!cH=zb3Du8| zG}IVCT*SYEWj%N4X^xzD#&&;5N84SsQ&FJ#R5>e=+yfQw zYN}?Mayd_Gix$s-%k9ncB238I_E$Pws(yX5XIPPS0WD(mbw&xB+1wrtdh_5VayT1vBb)&YE~??`%V_9+-b=5Ycf+7b5RC9fX`thrD8WUf z9PBz)()0rA2PW<{t4YG74WO>;)rYF^K5PE)MmS@f8O~pUTd|=G`vM35oKv>Wdvv-C zXwWo1?lYY1Jjhh=VwcUXEw;n_Z(;vR-Z{o8cLv?xiIK}Jr1^^z7wY7sehc3xvoo5L zgL)UgYLG4V(rfEoKWKD*;uaJ*Vz@Rtp8V`3==ncvHxcC1aRk1(1SwHmu9$OWkUCqn~(o>RRS9w$oxTNAH-98TI zSC8VBroZaM)n8{ZIhs&6vQLNaArcE0h*jERlJ!QlQpT1y%SSJsY`YKVHQ?D1num2wEV|j zxf3*R+k_u%>@XSMlW6famAmoq7p!WDvYa(tQtsy|*<2_?J|R1dK43=8Jhjgup9P-y zWA<=i>$pInX<{+bZ^XLnlAlSm;oa4~SL>CsebrYQpVl}SDc2p861$8whL20tALmjs zS#T`3vuUzX%CR)1u|Zhq;#Uz{O>+$eygxK4tHeelh9hEqz4IAT3;b|51ZVz9)3&38N_<3!o)5Il zUX|}cVYSVaIlh~PX0Iu~!vaJ8e>i&!sJfPBT@;s~!Ce9bf)g~j1b3I9!QI_G!5xCT zySux)ySv*$-(n~G{5j{{``#UQ3`UQ(`g+dAT0MJKeO0xofXw2&^^8GoE*Br=O^RNl*90xjVF5PR+XeHNcj)LY0^!GH- z-%`M&nqG5k$XVcT={5fdfdCWm0wJ-QLm~g$+$@c@f3k1_1t_Zi2;{fa|5+_S73t6D zJn$~x1b^S9W)|=+HM4+ssi`Z_9Pky-)mnb2R%7!NFNZs(JetEd5Zdr;d-Oj?Jcd);p#}~HEtf^$BgfZMZ+G@M$mk8Sej9ma zsr|&Azx=v!Giuug{@(;_!zkt2P8bH&$Fk(k+j}h{$=;4A&TZowbdB_-;CKT_aAnUr zc~0g_r{58s%*R1@?b>hb*Z~!DxMA*&3EO>yWPF0ocyh0;c^*mg#CuWqsdQ-eY#=r9 zEsyGBD<&Rb5mNc2`QC7DGPHc@-JGvSTI%&=2=Qz7NkKmN2sE40ry3f{) z@58yrA0Er{(xl=O%RMSzO3M1o2~~eVc(Krc&%UrM4Y{2XE%6^Y3Q_$_2mk*;@IZq3-xt85b<<7C*VI1SV!o11hGIo ztzAt%tNFzZlV-YMeYL_;l-V%yvv|2X%GG;Mx37v}>Y|E&h4tVT1B?^(xEzdg)!EAs zd7Zdjz-#Ty@Gkp9;!y?~{cwd9DT&lYT=!%8D0b#3ALLn@mcTzt;7&UW*oW!GvSVTq z&&eo<3=ryjeou_fw1&LkYAMWr!n2AiYokcL&C+tV7;`MGOmcymr@d`|HC;hAoG zKWAt&%FF#*MUH{R7{2m#c&0E8(L( z&t><#A|B4i>!E|Z?XGOeqxh*S<@l^(ij`Kp*t|T?B^5%BzUV#vvIgc~ ztO2qmC1i2Q%D{qU3L8$Aj@M(IJ#(|yWS~V{)amd+Ywyd&>$F~nR;X)qnQ}{#b-L&A zF89I1Rw^Ri>n#n!MT;JyowCpgRLFhQE=I%omb7#QP{+j*kdJ#!N0yLv7C zZB2*DZDFpL-H&&DSuB#8lgpI@(Y~pUT^&ZqT4{8F8?)5mre{poUKxn1NUxEk@ydYI zYoS~8l^k*d>zE5Ul(g>1HMr%1B(vCkM(L2_p2P20 zN{tNXwi1Q3sslmcj$UiACtk6**$O=Y0B2ToiMHm$kDeVuP&HjU);RZ%+AhyhM*@r- zV8rjbZeue*;c}UERRRgCbV7%q`&Jj*B_&)uua=vdB+bVP(IsgUZ^b0(dZWXS?lhUB zJy$dcrUH9uR0dPv)tKb0O@nVIgr5>mW3Y|I3ym%EwWg=>;ggc!NWL#>2D3u2dyjIK zSXo|&lbE+mv`c%4okAEnkVg#XI9Ni7si~)q0;oM!pS4YBqZ{RcT26EL+3ue-YIWHS zf>W*1h@#v?dyBwS^P<(#wPo%}FPB7P}Qx#v2t!=n_Bk zxX9v`B&ksmnp4jn<|wT}r0^o1CUXJei{F@DimtJ2!wr8rC2z#TLy){$3B4p;|nS-deGky{El!$3-wodP( z1_JbX{csf$h0k4tDX?qJtHvL*HO$}`e<7pHzR>OHc;h=I$Of4a*E`O`QmMIa%j2^a ztY^P-@5DE7O@{XF!;bbtzp;O2K&9SrIuvJ%N;(`M)T~5V*Tyf%LxH2leH3}5Ab-gsAwdeOhi55SoB`Ccht)M4UFvmD{JaD(u3-AVwAl~mYTpz2gsby_qZVo%)Hf zEc_{@4AHlr(GN=RGP;7Iy9C^=_9GwSRD@MQK^ zwyix-a6FGkf-5~G0-R@Tp9{AJGY?79&g6-WFKi2$lFQt7Xb*}tj4wYLVB9@hr_U<2 zJ>6X{#TwPW+*mW!n-7n8Rh3tEDbRmHKwTqQmn)Wv=@LCTrJfDqohktbd|= z?L|?d>%6p7c|p*%-P1*l^Xww>-&xa-!~oV}<{t&i%by-WySo0FG1R65V5NQy*jX!o z!j1D32t9BQEohl)F-4e`I&lEhP1TV3;7pOw*j;kP+pG{D20+MDYfmhRG04tn`h-B! zUWx1n3_JK8&1qa2a7wVdh>?&U1&SichPWdgP)!J^u@ak)lG*xQ+I7oRS|_NRTV2ru zj*e0SMc?V5bZ*P~4dmwB=bIpz8&r*>Gr<(VnDd>##B3h1iIN!vqLVw)lKcC~xxuuU z`>#%7gXP@2Y6hJVg{2CSc?6vuEZCb~%uRz#Zwkc|SF`{GLF*cQyAi z!ASC8CKnkPghJdgKL10GXF<(Pcn|dePw8TMDFx$~-1H91^d_NsPIPyxRnECtDJR*y z4(2bYAw`#&o1A50#bU$a>h5>-nYC%~0htyrmmABJ6o^a&A0a2@6HyoR22hYV1Lb$E zNi{y;OH*W^O-=DT6I&2`jQ+KYGIl`$Yc41Pr*k2FU!vB)x=i(>zqFA z3w9-WBe11vJzr%-%E$7__0sv*0uc~1W^q~AmWw`opI^5MMyl8G6>wU2S3qix#zpzY zw6t#ZYAJGFYAM1NfQwR3{3QrCsuve;Q4zP)_9LWW|4!IYGV%$6B43|q*u)BdRo9Q` zHvHpYzH~}F-F=!AVqV4hI|Rh{0{bAWZ0e}sAc|hl<{*mmJ*X^RluTC`yyzf>ATs{U zXd&=nq1E@17hO97Od*4M5=;R!w|kY220FhJJODZ$?6)MO z7v(=fKwO-u$C=JiZyJ}!N3oOX_*ZwTx_Xk(6?DJ3qLjpCsj|MTs0Unf=ZOXjDNnXk zNUB)*wdIcS8>p_1>)Kb~r;UqMWdzj3o;4QLS5>T&sZd}Ina92#>bw3KZMm`Q{*|6KG8*t)0miY=!@S*LhZ=}XiP9@Abiwy9v-FS6F zit}3fWW0=uD4?RvCrI}?DA*X<3*#7d1iMVJKfWoyZH}gO?%vch_iIhSv2w9&c{pbe zzydRAWo5HNH!>%pvE!j(H@r2t1tyKlnyPuQ_KJmpHt=QoqpMaLHQtiLm-qN4fz<-A z)*Ph*&xp6l?Rl-Z6iddMq)_*DmTxU`?$@`DX$S*TK~zEu z+I)r9AN+9|1EX3leKYXT-9i26A(*00FoqNR>4+m|-=RQg;agE^QlmWc*#O|6X-XM$ z7O;0WMk}4WRX`v!@Hjppp^?hzS#jM^7C5{Z_#oEFcUf`sFty-%q`JCV1XMQCUh@HR zuKOZW`$Q+(I1dh`qt~wA^1uJqe%gO*<8;=cabu`cc&Jf9ut!yXU^HJFLM_roCyaMw zGIfbc7S%e_khZ_NalI1|cOT%WGOG&UDwv7PL0xgKjAf+xWp6E_S4wvub#r=s<8OZp z*u0LuSz1^^Qrb8G9y#@uq}cVI^d6>@blB5mOc+_}ayC^M>1Wiw;)oknwX&@R& zBhlspEM%tD60&DaRENSFqg_`6n2Qr+YR{MTTCfx#!idB~4*W~Uk~_bTbIN2381_u! z&iOY+i%J6(q+IUglS7&Lagi-5ecq#A>++cOmf<`cg&%|{&s|bqL_&S)<71?{R|d?# zIm#kPRX8cnD0@B|PSPC6vd~MbceOc7 zIEU7iZYONSG{L&F^E)uUV8z|^KydR0%tUz2C#%{XY)e|f#`8v+)O{F;V658o@j4mm^W5*9 zYE?y|54jr!2O7BW>Sf2pSGlT<-ts49ehN}9pHxgv0kCLpZsc!Uz*jC3_U zKbG`*pA^s1VsvX{VDO1DH<4%fMK)UoLaw&0ZNA)JZb>YX8!Xa?tLr zigvH16>7D0feVhZIWsTBu*MxKA1!h8_N}YvVKpZ5|2_u?sMTIoks_Eky z)Bc!g;#AfBR#H+o=1;-U^qdqfDX>QrpW4lLlw{r6l!n<@>?D>a1FJZ#Ytp5SYnE%r z=ropH`}G@LURXS<8eqAj6s;gWo7hcy<_XO zM0hI&6*y1u+w#QC?ZV!el%wWjTN02D!jv(DE>gB0LJOG}eOHXF#|de~_+U@)>xLja z;P=?=W97r=|1Tve5he?*njutqgxoHbH&|b9h-(r(`0x>0io8E3eah$M2C0m6dEPuP zDbN%!cKtf`p0pl$F3qehG)lkd!jdHL4Zv5~kBZ3ipcO}yu?@0yw2JvO13IGU&9(&} zcniH0KnuX+AhQQ8a>T^^IHgj2>`BW|DB0^D*x4_CDC5H$szZ)*h&}Lg|I_hR*sh%^7|)bac`A(-Eu^6U=?UTa-hH4{i*#u=v!Cucatct z_6YM|0ey!*wHqPsKUiA?Air@NebbTNp!p>zDK(+K8@n1ne>bL@h4_BZ>x4jjs)>pZ zrMbnUb%s;cf&Hc>)qyYjFB|7v!=4?2!J6WCPz~^X9O=-~3ed$5DOidM!JXiX;A(6t z3g^^#8%;i+PN_Dm4jXzngM(38XHDjo`k#}(jC$|9q)ZKdNv|Qg6F3cAMrwFXu;CF_ zEC5EH>jNc2k)6}ekk=bvU6OouSzPZDd**=lvV|=ml;g?v5CJAL3_qwPq=}H2wdIKg zwXZ14My2Oyuk4Q@ghq{R*4i({)WE_7i+blF!{5GAf{d)ew~h@01KMuti(-@uf!xy% z=T~jMLA7JmZn~#M*KV5j|7+^w%Sxl!XjHCW78Ps#&yz0hvbhS$Cif2RNVS8&_`$RS z=kR0cwc%oGJh@UIB{%Jv(d;$pm+02jrqsjTqr20^B=;rSmb_2j>*_*y|lc*5qAG4OFa4RUsyl0B(C0=LGi>j*Yc*>>7%^ zdxQJ4E%c9$bMug7Q9VU;y??Nc5&VR`fmH$8xq&_mvUbB6_EnqlK#XJk-)-Tiy9#>` z&`O-r$@gbhfV3O5un*!1&U0xN>ieXy-Kl$SpYZ{2%@!TW?9g^&skl_;*OJ|lm_LUP zUW^kn76$@jJtCL}6S}(~8}z6=_(K+%XyuVij}Fe<@A|RfGF4Qv~H5svngNPnMsx zzOGid?XW;ye~e{q(xd;#KHrW`dOr{~XPEP}wv|;2X&9Ns8qtwJkcs2mD_3<&h<9C8Jb1;> zQPosf_V|iG1QWHkdR+`gyI;)3mgI_mlvCUpOpx1ZSJ3MXqMQ?SZ>}J~%RosBh%0pju9% z*d7s#pTx!l@2Al({gQ3>LF&ZP_>;Ndpt7&!faR2_{s9GtcuV!LTv#s96R__h>V;a5 zo({)zZghVit8w!hI%Jx<47O1B-2KhC|`F^!t$ z$e&I)BebpBYi_y5&k^16o-PD0%cB>Vixmkl3$~uI6AOQ(EcN`?fAK042JY#y^Xz!Rdr7kH=BIx2K@)Sb($%~nlRmG2?x-t-`(t;c)E8myMmiE3GkFZBJGwRQok?{N98>(%PSP=A`q{uBfqyPqmJY z;uf9{7FfBQ4$s2ZnRaJ&hKB~9TWThS(&En!YLlxsV@H}G422lmU4<@8lRdmKDxd2Y1N#Y8Zg)!Tm$)c{l0XW3Ni#?O8a_lE?zb1GdEo~h zI*b<-&y~r|OkCBKi32pW_FM*j?kypihkv`j z*1;_l`Am%@j=qsn^uh2|apJanX#8f{YDW)Xu-5XXKOjnZ-6qf#yy{ z-XHS$OH%%Xf0)le(^B)^Y@zYtsrug;oAv&HRs3+~v* z0WRUYll`T6$Ciu-W`9Y+GdR{9H|m6}`kPZRUR7{Ah^_5ltyt_qJ&jIjF1T6!47?Cq zr~*^X@T_K&VR(;(ld|Y2A|{2Y(-Brr4;)7(9O)^x39hjhlUe&%@`8ho_$;EwMC?PZ zg>mm#rPWNHE7_OT6w=lKgy+vzQ2EH;KSUrb!8Y!YfJ^XT{1Cr+H0wzymIcg`#% z%_hl?^Nxq(H7i|{c{FgYX@tC=c3~*{s*+^C&^wSlOr`wcdQ;QZaht#^5r?;Ot zKH_~al~*97U)X5c;B0ec+<@FXuE5kB<1t@=Ejr=e_kGG;PPd6q_8~cx2w)xj@eHZU zQSE87;JK>GQ6P5oQuvyuZ%W4mNYBu>zYNR+R9zBrLm zr=e_Y<*>JhUMb}XQ@GpF`;2#gP||bMAp>`=JO}x8TbSy(bJld((eTc&Eu_j4+gZh! z75hZ6mIF)}0t(*?H%A^7F(C{XEJbuXsP9FYtEDoYbEU1XNBLQ0Yiwz$paFk!d65jt z2WEN{B7)^>I!P$6;NhoXpRXR!0LrD7<`ofzX$N!61UC~(R(IP3>@h!{QK8m{{N1wc z#T#MSrKS{=A7``gBR&ub@&-8(k&-!95E@R+ZS8+V*vX3Pl2d(jjijXaQ3q`Rvw_@x z*N<**(?bL^P4RPo!SyzdQBdc|HIf`6fC%jz(^ckvH-11_oeH>|rAz zFHHfC*!C2Q@fEK$41&vCp_zKj-z&$<6pPAgn*_3gB@f#_GycLp%*&!$aU}6|&p6Of zOFfeg!w-!~`wCFrTDnlEX)E{zCuuRn@T}HA4WqsEf+NPP!^GfEPpLtT) zw@RU-R=wl*D1SV73vX%gxUAAc)bL8F%@_N*^00Fe?-7yR5v#nGuFMhEv`TiagN4Wp zRHv!!E9*~ARy#o=x1U%@Y(!=>>8+Nic0rMnl-e#CWo~rvny!XDH;RPGqP51d^o}aG>j7n(VZE9n zPISDLd7eW^1N6sm!j4r+P#w~MHB>kxp)5fB9)1vJqr;pZx66z1WM^fP67Q7}EEAH% zoiP2%r?N%pSvYsJajyliNM5Rtz=Tt{F2keBz)6mnb)EjywXC{=TS3_DN-+wq(fW>(6Ib*QrVy5|%#(x=Llnm_8e zqPVO&x#$~t`fOyLxbrWuIoZsC`d7@5j`n{MnQI9dAhVmM1FAfmV!`_ov-}$6Z7kZoyTd3&^#) zZ*D2h+DCdHs90?eoLdomn8Z@m0pgEegbpe1jxu$5Lw#^G`f(63-w}I*XC_=8ljjLt zITR|}RsopGCP*i&2N~=W| zrZyTXJl#*1UszIj)=brN$=s(nItfI|ODkR*UG-48cP-?+CLH5d8Kaaiey)B=*{;3| zy1LwU?!iVeu5yTbbO@4;bQgVfE)9;heR`golFrK!UL9Jj?s$Fw#}j5_h9)Ln?{wo( zp%+g!LmqrA5)8o2*NU2%BcW9+uiV?Gds}bSQqN4V;5rWz{@z=qOQ^PPBuFPY@|<9QsSPDC;zB0y$;9@B>v`i-qy(F`lRf>43uUT zHBF~z^;mO==H)I};oL#zVi4$%rY6M8)tF3j>65DrvKI&gQ}=OqgxibeZikOxW+Xn$ zxjPzt3|puXcj>@im>x$+_=W8^uu}g4bEU-+{H8@x_C}_OO0oICeP)H~MuUG5hk(BFe)atU#Rz2p|DR58 zZ18_N5>7@F&gLHGCY+FqR!4}&^PW$I%v(Y8mtJajgXHfTUfuhe?(hSh!G1x0hSS4H zU|1*oVT3&KhWi_0c&dnjQS-Y{H!2mwBY_rz1V`>R-Zwad+LoX4QL9O|gEMAK<9oO_ zQ3zoux;=FyZGwT*=AIMS3pqzWqfT-3bJ40!qZ*xGn}C0!ui+E;1_n@&tkd?sN8|-l z{fAJnn)yfmMl6ScTlr}bN)psGJL^GErSw@D$K;#7af0S6xAB&YP*bgZ!=BHIe5RxH zR0d}uJ3^Y3AEx{W2a_}x74$Ye2yd#2ST1kHm{O6P`@%;a3~n(y;D@zLUT__=UG*kk z5bfJvmPR`uBDq)^xfc}F6O zq9LAt|4qVqJ~{G6=_a>5R)uc_vLNo3l{j`pc<+XkLr_rBAa?-Jx z)Ma^g`Ix=$T2V+zo2*ohi5($I7js`O^WoJuh=m`zmC)6P1S*WpUv{(ZCP&%kSK_0S zP9ObDr@6FJ<4i9%?a-2$6cOwRZ)mP}{cp&ErFe3_WCm-hlo@m#P|NXzPD^~#yYGBp zy9xk*U7I=Sxi7+b&aPq-q#)wPn4J6BSn6jw=FsN!^F}k&(xMk>p}c=syYKYCh&^Go zRf^Q)a(_?pvh#^a;sv0;t{K`p;C%*lp@5FoL9KRgcFp(vWhKBnxbX=h#KWT~)M=`v z&Scr#V53dg_XCWnI8^EJs&k?8S*S!!d4_#RF?vkk3H>!V3WT?>Brf2&J-qjVEg2*1 zs4lA@Na(cuQ50dScpq^sw5(LY?jf(%!$#ja7Cef6E6isKzR`r1LRqWZeeLX-uQ7Yb z1mU4QT7A){pU4Vbpy{R$V25{r`|Cs7c5P|MfxgOjt1iUlbI}IAiEoTnLX3t_!a;k@ zwt^2u7IzBYfN3OL1#VuqJV!i#g;8Dgj8)MqOvtRgZzc4U7ph`(%Byf}CqH>0eO|i* z`m`Z(kKQ2_(!b&|KgZZKbiB}v!Maa9_brenf!InvnHn7R7+-qX4w6qe;Mt*Reo3Jt z7C{pCAP^P@E#CKfMlg|XHw0)XZHAsco8^B#5VR}G>pJ2?la^e2Bx_M??jyOe$mY@u zl9rP}Roxb^pt_tEzr_ zhU*rj#p}nJv!t;76T$JOzJNR8t6}k5kr9ipmBJ)5QO2&)6`H-#NG6E^fV;J)Qx_4t z+iyFi*RP|Sbn@S5zddP<0o4J!K~J;b>J^a6%fem5pDcyf?4)aK`aM*xr-$_X`__Cs z2%{;}V%*-lDU=X#j|hqK$vT#a4lb;ztie#BJz#E@&Dr_Sja0=2eW zAXf5Zu})JIq9z*hIEX3LZcn?d{;sAj8dT^pl|x4y379|@nsj#L<=lmSTB~6Ue1GGY z?7jXu`nHen2qgU`F(EIv*8(U2yRBFa!|o$Y4T0+5_&sUdTT+!vxS3o@9ODrP zEemgTB*|{GL8CXnIze~f`mjQr<>56Gc8TBI^t01n7u&& zPH9&K8Lh?P`=@3F31XN*jW^f{Z1H|7X9IyE#^j|1X(!qSFK62Z?}v^+A_D${L4v`p zFe*XxK!NLeBU2-^tHM0=;a&rUHVEFX!ru!Cl&}{tx`_;8NIc71>>UZ5^3OG9a=xwk zt)03Xk%QVGqt4WT*sz@%!ho0_?hcpDRCyfammDZbXD$VDf257HcU3a6jduG24De$B z@;{}&IL&osbAJnn={3n0d{p#AF=pHcXYawA>EfSU6+X)(-G*+Z>1?;fl2ZVzZbep0 zug!v#KpN5TngTVT<7!^BY9J-dM@U|?VAUAOpl=;M(jdP_z^ZS{-J!-8HRh3vq2ES; zQ_^cdO3ayk{;93M^P1&1{t^=h4(wOZw)R5fr}a_?iQw;t*0%olbMbNm!GJcR(F5%V z1FjoHtb&tXgM1y%x(^iUeN~dDeUWrWL-#UAfxg{(9TlX>I^cEi1?_ zlPt=|1x*#GExmw#KX0yigK-JBGpe%_zjA8S(YRP2p%uo~<}`gnst8ZDQ6MAo##Od$ zHx^`p@q+xr#^s>>JVSah{tz|Je>K$M4eo6bdoE^n|_-F~=%{=N5%(Ikp0b9_K%BU8(8NZ1NrVO*0yl(1f$G93?J3p1503b;#XBX>-ynVi?rdShfJ27I+U32OflU#r|~M)hEIe*3QCL&m2*V2S+VO1s1Iy zXC6icbk2rx=CkGGHSCpknH}bJnj1dMU}2 zT9;IF>gTS$Jru85a;Lbz7(G8B6*ZS&mNdv8_0JS2iND5eXGPUlP+JB?DWoEt*(vtO z9vwOWAdQ~;SQ1PMzTIpK`BB1`+gMk=hT|)7Hi!m}2IUY|nUA7OkEKYsxNLhKAwX-= z1!t-W-G0Z1W=CB~osF=jyI;ZA2zB+IySf%OLF;Z=u%i!Yie9S4@_c*Qa%d_0tgZ42 zBml3x5*!Ro7+XD?H(@qRl$Q_i=Td-Pb}doD446Oyi30Yh zxveMtEyR;`^l=2*8-)bmToLv@Z<<5e+wcLhqYU9}{V^rr=#jiBsPt6M(F6UPgIr>s zglqmWY4B--+*GS;PV`i4(+Br&wvoQ$9|;EK9&VR)mznLCKRf=6{9zz|p%Q4e8=@{> zo%$B>bfR(~W!BfZY2ObiQISRW-XZ~ScaGD3tL&qh>g;JIjbU`VB!3e_G|KdNu5sB2 zB%IcPf^`x>(%~A$iDuRT8CN3ARl#K*<^JQT)%+RmMCOlKJ6@oA_0)s4iIEMAFuU(M zn%J=O77exB9dM7d;fDYC9|+F+&Sjt}5M$(321rzqW>Lio>q8}3^!xwj zkFb2U9TLO+#(8wcfYovq+Bc;lEX%mzf6i6=?35|=EF-MUXq}sRLxu#e@w`;?p6gRm zU!rqact7ZKhY>w9+UbF&Ydc|h?%`Mg>{UE#i{4}Szzz;9SMAF5wR3zp@o`_zk-)e9 zTD`QY6GY~mv{L>v^6#30&j98m=dX0P;@@}g5?x#XRTOe0T5FEIby;yO6UWp|7oon# z26gpt%2O#?BN=OMzlM6TWTE78-@a-PdZ%x5ThP09cff;WS6q$G)e2!jO=Kw#pM4&a#hEQ$R+E`P8XFl)2#0H&^DZ z`4NP+l&41WE-sEhTn%@|@1Eb!ZraDjOuE5y%qZXY` z&)u#WkEhKsXS!tjs6IZB;CZXD!9j_NSEElyK?_pw;w@j&DtLF9zvZ) zJDnLoL$Ms}jz7gZw=M-*0`gp4fh2lQx9n%5;V}vgrWYd*D3>~*n_V{A8*>EYx2K)X zuMI;zJAXnOHh#~rN(wR(JQ5aO+U6M*Lnsmab#rujXz0{){u)@u_GYPxFE=kg54`u$ zEce)Z-pC`6cJKDl#y>U9e0rfyJ-ood&y(r+vHmWHpNoemb*mwRB~BOGK6Y?9|64pI zV%}3ZkTepRok;~Nf*wIhq{v&y6iw;J{^4t*bmx|w4b&T{BtWib16@uKf_APzYK-8k ztakKs93_9A;>r@#H!U`W@3gY(k6(50znN{nbN@9Rua2_prqw(N02mectevPA(*MSN zXc~&Gi|bsd)}~RKZM63nl0Ov z=rn^wK}%N~B|%Fy8}o734?&cn>)G39KuZy=?7fP>)t`Ao{?zdQ8nifP!T76*Xm#W8 z4E9GLefW<+%WD50EQ@9EKe&#_*Z)BO5Ebkh0#UXcI|dd#i6F{rSY;i_O@iRiK6B>| zp>tOM_}*4t(^)ijTC<(bkymZHGzHE<9EEc=VKB&z-E>9M@Ja&0SV&8cebMqog??@K0Yqw`$d z4mu4*41-||Q!6Cld0zw3!Fh#BDh|A5h` za5n2-{RjGwpbXL*+D3~A7*OCl${)1(MZo69jJ~vaG48G(`(^nof^d^2E47&lEBsM_ z&I)}oZh(E4aJ7ZXci9S)`CMwfAaN}uVEWAR{wPZ&C4?j(TPi}^AeXP5D8T$EB_e|0 zg-JjK^Pc-81iLHNp5aL5mJX2`fkHI>o_Nw7g&;nvibN4?H4!A?e?uUawRvW=cfNe; zncQn7_-smeNCgW$&^LP|ZFpAl@0o8LdMAF8P}qfl{1f0ZyNE~9V+x!Vun1IcQS5sPn&TQOT$sUy+ z9IlTYl$={%D*KTl_f4D7-LZOOEw`c#-qfiqYik;vHpPng(_eb@t7`4{06LS?;w1d;)g5H zDGaL)akbDsD2H;u`B(2<$93Z?*JONFReB`)t`rHH^1l%iz9;^u4L@a2>FfJXv;=Jz zwI-=*J`xhC0>{+M%Uob!?#apJzm(~5DKWX9rU)oG1~Oesr>oC250>qAN-5Sbl=m|w zIb-zy;sP^5{*vRIB~JRHD`jBD@x}!nd>|0W7hZ_Cu2;1IarrpT=$#6CEs<^r##IG* z1YwI~Jsa;B#M_j&y#rV?c-uREz3m;p{tWz)1(FWmB!IGSd&lqE+urdT z8@PA;UZ(-Lcf2jdFQMiLHO{!i#4*nJtzvg#oH2NA$T9>-24myDe7J`no7nUgN4w{i zozG|uRewM4_YfuSBdhBM+&?b*wiui7w-`x@y~aS?pw<~d(m?Owhv2zMe1TlBDj*ju zO7Iib237&+d|Wjcj@Q?9*_28KKEw~+EwD_$fG-oGiXWV1_;;YP6!O=V%RFB0JX6ES z%RF7H1T**>V=`R$^_dW-&#Xn^tDBnXU3ohf?)09gJJMAHQ@t}=A7gApH(^W*Er?iQ4={UjX+v@qWt-Tbq0Qne`e1fhU5Ac z?9p9w@93<{pk9baKocNb=13Dj2Fl>p{oP6O06z_D_Cj!w5{*p|)D{9xBfjw=Zuyg& zUb>KX?AOe)#-X@IYgA;!eyxZ$VJc7C_j4!VM~4l-SY)6VaGQ59-DRXdCVWxa;9p75 z+qSf_U;UdO-8aXTmr&Y9!~0LakFLiuH&?RU4nDZBr##IcA@sF!NSu;+OxxbWE`KEE zZ!mOq=o9d9%$FAFgA>RjG3&cBBZLii8L^CZdLn;frF`{7i%CmdoHN@d`eE*43^he@`wRyL@z-0*kp*yzp@}~dR z5C62K8u{V1M@KYxV>Ab{85#6H_z2nlD)Y$J8fp~OKdawYxRXIT`T)V<8SGRhzwgyx zpm+nZbtKfjQet(d;I5SHKqO3oCXA5n!;fQ2D;Sy)p#!4_kiCD0WF(2R|5I6!awE8% zc#V$-~#N>qrAx8ECf$?TpWk!1sc1G-VAn45=z~#qH|rG#t~&!llMo*r^9>TQ6hC6C$Qg%<*_dl~M9iw|^R}njh4HX2K2e zr0H!|c6lKu?R&=I=9I+dE3g{xtQ>gGRDGUx-V1atR0a6{R&!yv5f9nS zE+NfUwXI{$YW;XAdw!x2r!m@5L-GGX)!Du?X^4M68fP|Vw2W10bgoV3D0;5*p&_pPoFq89okD<6$X4BfZg0Svz&6aiU>^-W~2 zo(3FW&0KV&k8@=1YqH0Rv>Id|Fj(=CluewK!?ItaFDPi~`D^hF)}(LAA0|G)+4;q$ zut@zUOdxIbd>GJ-y-$|+gRu51ON_wJPdj1lDpaZ*5oAZyB|b#A`65$St2Kns4Pf9T(*cn8Ja1!WYV>^p)2t1hoyHHd^{lsZ*CfsPL$^ zX{x&&AIbubFSoT`&a8GlTTVO)LxdrH{xASH^{$an9nyyB5;<-;H6mZr|FCuO zj_gr5)MwHB%o~rPlwYhy)qk0&$(7TJ5$1YgZAApzg;U1aCpXnu0Yopi7`MT9!!CU@ zY>LeBPH!M^@jR=@FMBFgl+eflH^2^tS$|;QxOe8R#$is>JmG0^ijfLWeWwgVty-_7 zw@yczznkUcSIeO3QbbM(t=jpbWaBI=pdWHc`1{ZkjS-Kly3w`{B{{Iw#L;AAu-(zt zvVzUs5*CAd9UTj5o>bL%z@OBMdiR*0=05R5rjBZI;#E1_5K}xf3Oe~Y2Ts-P?75$x zq#L$V@?9uc5BS(dj5D5SyhtCa7)1}~n3CoX{Vo2i$qzw&m^khW#u>754<>}-2UH4> zdZusp)f@a@ z{>Co@7JIFQ)aQ(sb(!WT*Nvx}Jb-v`|L*{1u|Vq^vV*0)1Gt03i>^J2zn~HA6Cg5d ze{l+3v^*U$y;#t-xv$8T2H6-2qfE8{sY55^Yl~@y ze=rj$x*50ZoG34kmL>9Bdl(>uBUBxF*u{xxPu{>&Lc9SuZRBdex%tOA+=-&rqIuNV zI=BlH_sLy7#j`<3 z7AH`0^STZM|6by9TYXM|%r*2Bttq79RKV35Ow09gNFkR;(J?A^3)kaDoFb3fN$9>t zg~R`U4zL>R9Wq;1LS1^^3H)CW%oLlm1uItAGKEk|_PmQ9G?$(%9gVEt@`^_6Q3wo+ z5)+VXKb)TtHk?&iO+&zMG+%hLVIe|WqFs*bHeC;b!mAQ>{x+8m>;y7{lLs^Z&+@#t z?-&#?Lm4g1&x%`nv@cuO2xRo|g@*j&m8ymSbN^YNH`HsZNcW%Pt3+C|CV!)s#py0c zN%3g`T;J;OktJdG{fVs_bZ`FuGPLSv47_n&-7#WW_ZhFLRdkT3m{`1?i|EmLNGUWh z{Xc-0g&eGdG#cz1-S}7^3L=|X+*{K%99mae=BU+{1IKJSf-)|SEe+2eDyHLD%$S>v zhg%IXuh~eh1|3dx;4JQtr-qUJdocv(>-yq`OR1fA`(=s9Gz8IzVWIK#2-pP~#{Pva z3#ETm--!8upk*NW&Tj!u9JZ&hu*xlQ5Xt2ZWr+Nzc1B%@Z$m{4-+cp8oO>@)!EC;d zl8=I2d=a8hQpZb>#Xi=^w??KSQsmF~mVJ`}RL@u+SuY?c8;hhuR|H17vo0f}#yHdE z^`B|fpuJH2iKwPzK}1tI=g9{+Ufq2Dhb}Mpw=NI6bkW5ZYOaDRJ*)HiALeDmi6S;Idcs99}7{IwR#@tZ&Ea>3mH zUb-_obKQVHuExj_H0Vn4$5{r>h{C`M5?}x}2+N$pX4?3{A({d?nuN1`KQGpgEvW%^ z(k56EJXF5_4ykdoG;~85huG^X%F%+3^C-r|Ma~#CBasA-tU#M@8e}0Z7?@=4CBIQ% zj1;PP%EvFji$(f>$!Q2}Ur@F@TV&1Z)9$ZCFKl)d%=Iv4C;!Ag#q#Y`3%u$MCS|+} z|1HhyiMikUVsPiW?-VPND8REe{$sA#TJJ}M-*<5Uz5R?Co#X*nrXLX}4Su{U%hRXV)6}ZKBIv15>tCb6^A6F{};*Y?2 zaZl&GN1)tUS1aG7Bix#|84-RP`*R2Jx0eXZ-T$1sRH_B`=YyEJKOfBC-u+oC%nj_X zb*~Y9d4Dg>XtIRuJz_a=2pYPQyhoNp(}~~egkIb~hRRkjv{_<75npBdL0&L8;M3rX z=%kN#KZcGAZA5GvJ)X?GZV%%B?e-w23xSM+J_`2BUJ|AKA_nsV>Z;VwH`@Wh(uIp0 z3>hHFuI!sp%vYS@>lSgSn*R!;?J=`Y5f_Ro^bpY)!T4|q;g3$zTX_H*TQ5~xsyO=u z7Y89n<-8*<uE9`H~)xc20I}$|na(iM;A{ z!Tra;U-i0g+Gp)EcA|Y5j#J&_bM!hHXWwud3UKB!8ja4wA*hqqX^4GLWP)_8p zyDCslj>XF=CJaYi00ZgOWdAm`xn^woyF=X&PYMzw_=k=`wmoe6sh~9(hJg8B}^?6 z9Y~|fLUEJXF^aC!k2i1l^d&IFqEU(a#<`57RA}UgZY{ywAl{~VD6m8gK+PGWMfl_O zY~(Bo#gdRQ;YnlMW*23VWu)Pe9krceSA1j%F?FkOovDUtW!qTZ9FY2A9sP2+eFm5z zywQ)oD=RZ0JS3A@(cI6&Z7!wzXnBTy6+%e2B}Ct7l*K<3p4AZQk1jRsdZR^VOW*kQ zd}LwIKFWknWYzLh;l9Q*Qii0XV?#-rryGnzqXiO(1d&z^*Vd=r0bN0k}LrC}wmtNzKIH7T2%*~0Jq z2jmy__PiQghUCVWuc3j9Iw>q^QQUOp0U!IU;}uX98kBmvW8Nx6WhF!v`$NcB%xf!I zSxU~Og0ED3!^TOoTIhNoHRVP{NQwV}tJ>v+6-oamX;6csf{_oO)di&4gW`9^M6SP>9N4sb{e`>Q*vtY zMwKWm=krVr^s58d#mnS@mm0}m6sxSO?h1|0`NY6u0i;p861_xwBPX=|4}ui~QV$;* zZxw9M296C-xt@>q_a`i$x`GwWz7nB45ziiw^`NRN)@RoVIq;FjlM-T442c{!h^S65 zRV9ZH`|TYKN&rv#yu!0pfjeX`;=%?Bfpm7y)*%p9Cf^5!E|?pS4Q}+n-!FgEtCh?) zT4oiys4+=4PVSjt4cbU1y-|0&kHe^=ENh}n>LP^t%z(DCD4N1-gpe6YU`Cike5WVYqqjYM*;pi^?XYm?su)n)jTeYiIAx# z76wUkl}^Vl_r?z#<(lkyt$TZPc($(h_a`sBxG$y2dFqP+Bybg%u8r2h8~l$b@rRo~ zH6J+4zfK}dT<42$r5(@WPq2l8l)S|ovfD0`Gx#HyNmj`f8+=1$MGJ;?dK{cgCE=&v zn-UM^@sBTlcGRQ841ZbK*gmcu@(;IQcU^raQ#Xl}J{Q-OEjK;Su2B8rpVZL&L)Oj# zQ)Cr-kTlH#=9fJeWwzMUHX^hS7yA6(UNbRk_@kxIHPd&0NDv6P*mMkTVW8t%5Oc~7bV{N3A9#ti*mA_40}S#?5@X>=}o zL+wOqX%VHHIpYH##Uzc-{ZOc_)KvDWP1`onHOtudpLowz(l3_dK{!gz7ImiOY7<{6 z#)F>5Netdf`~f5$0^5lSztPM|l+vSl5i&#-TI9X zCw$!mxW;tljU|RjsSyfp=6nLR&#Jb_6cvf&Jv&6gogv?DoJp3sT@S8%93bki1a-f; zqFfPpPEwOFi(hpFyY|s#0TfQ=$yG3~ra7#zom1DVsO}0R4419Yzpy`rwwv(4fUm?| zq0q6>CKDL4YeFhqDog81FBK%Hte+n~&F#fHf(q_8ra}k-rdD*re8zLPx6aJ1wc6tX z!7_4|){m9tHzg_eG_8frg9w2_DZzcv=sw5a+StS>;rElf3UK9>B)T-bP@}58d0t;L z9ZOltcUscpXR2SmgjoWyVBJx(_?OpH&9#*GleWn(VFw4Qf||h`}=aEDv}AKZ= zIx@DJe+sdh`k@+jJuQ7$d*`n%3HxAo$T}5{oi)FFRf8i=p+sF;K z(KcJ`NG-ET{xkhXm&-BD`w?cQP^zbNKJ>^oBB=d}C)qV^Xi?2VDvReo*OHIQ~>E7mf4jj<*>< zLL7tr>𖍞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

GN(a+ZbVp#t1d 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

    N;a-A zBr{5eo}XX%Iaa=FA4{L%)A4o2IhGIbM$fQ1C&64GCm705HjTcgDIHB>H0&Y`I$<8n z_3_nM`hA|)9zqvJfACy(-NX31^B+R?s~;c0vGj~H2GLu61S|m2(cDGmon$%`v|euR z5V()y=@jS2i3_%Xk<+Rt2i7qSLT8yTeO4V20*KFN60lKZP>X58I<$}MGBN>PS!|E& zh>YG@@83xh8d;=dnL=4A*ERZa zJQHTt2=D)+p%RZGdBkB&yN_iB_O=r3K;Kn6NJ~F+dApm z2YZ&r^iw~On^nzTU+yfW0 zDO>yQ!lt;kQnwhMxV9Leb-czw+#oj?Kr%t^V25G3iG6`D;#%N~I7W~h^CxOCC^SkT z81{w@j_nZ#Q9KE(an;{%;`(#zPZX2DH!%h>nur3SthWFJa{TjWiY~^Cy&LRwgMyD~ z6gN$zZkbMUA|&5&ARSf(^b7XK7|<|2IH)CuwA@NSz<=_VfcSzopg<_UXj>2iMkLK3 zNmQ}bgccl9t|mxA+J2Tij98gklotc$heQ|#qFo2_0~%4ti;j79@4k#M49YNrahhHS zv&So9F)G4%1hei&s5@aWX%x=-6z-ZJ3^M6Lm8udTUU{%escvihgTieKKV}}zE5G*< zhYV3%bsjY+Kc6Gt>l;ju9AN@jHSjAB6@(5sqIjf$-MA^s)|>K;*bsDD@aj6QMelD*At^jmtJsxY>iygltpRS0maUNB zh?pBpBR`owetJB=Z>yNQ;J!_(_!)ICMwMj>qQ3QglBt15H4iU0#6;GK*VRuZH3TNZ zpWq_`8#1vstCF|sNNp3%Pt)?RZQ%>!YCe%vH>c@e$3V&7k9e7!^BW5h@pp--GmRZ?FnwP?bh)@p(_rP^v$lJ}*YOJV;^c@!}8= zFm$r?f_ozW>y*cp4@Zi8EL&c=eslva3s{AVHU;# z3k^EFD6Y*xGC3|hsseCgcV7mMiWwT|U$a=McRT7$Rb7;9}PX?otZ_BT5;f{Ne z`=tr3ArM7|_`wiGym-LgArnS{c=v#TiTc({@DPH6y+;&*p9Oon5*?mIhbHNT!-FRI zYvM2YI#Z0dMem?VfN!loT4I(S0p5SKCDnucH3sx%e#^PZO~wciM%9r5g;ivMUF1lF zmZk#Y7ZQw;GChaZ#TMP_9MrnY1ek zbup%PqgSGMRw;vQ4pMzip1a){VQ&nn9HvY` zPf=r+`~8#Z_vx6jP|1%B?p=vxju@4d<-_Ci7)o>NH0vH!FqW3;9%S-t#ZlL>ieC?( zrdro5D`)_obsqPDiW+mnb0fvm1G5zk8+$Q4a%uM#(TNz4#r4~*PbKK*Uhi^CaMRy~ z)kHP5qeh^5lR>^Ki1=vEPAPT@iBIBr8_<|raYbMZHZAHov6E5;+4xO`lHOJMvK;XJ z&^`2OYmd%IFH?Ed(O@ywF7H)@RwT1$#niW(3CO~DA8`qLlx>;~X|3d%R3WADpTK+X zlcD#esj;t=?W3Ob*%-p3(McgKJ2$J zL|RYJ&<~H07$oRJw-@s^FbHMH*Woi}P&n$xpOP?N_|%<%g|;@RLIy4}kb+>Lr~sqt zqF;7YvE?2+B)ty&lG7@g@A%0?M@T7>$c(MfDoy1#SmT#E>G(frPqeo_gY$pDROy@m z3qYrbnM8szP&9@pGETXAK=I~(H9#9#7nZu{FJuk1Is{g0M6 zxBZV8&~1O4f`Bc5bK8OHKKypuv)|nI2@}E5SZyOT%cS*`%q}*a8&2ri4MVFVsF24I z2ltWpn<2|Xw(f&&_%gV6;rCeiseLRvhGd@OPq5za&KSHhLH~I0-Cw%L2lik9J63*c zu==uMLac&jUf;eUw2Z-?kzFSrYLP(q2Q@F#fsgExvlpb$z3VTH7SW@Goh4D-Lt21vvr z;vciY-JQ_&Z?i%BznKlE{N808GLSd3;gz3{lMnI@rc(|i0jvu66@&^xiyY+5Z2Wrw z^i2k6HvT;dG#en|Z&Pn(kz;re2doXLh!}1-F|I9+X*N9f9;Z`P~1*og8 zo_9OL{D^32t5=~dK-HISus7iig7*buVuhWJeXt?W)zMA7W7h7mPOfp*Y6;rvv`ABl zyQv754_$V2m8K@kLyuD7F##=xc)OU%%-#5=kcaMf58pdP1UfgWG}sN45!`N)``~$6 z4AI)|H3KI1L4=yH-fJd@*W_nS$vnZxuZGR+EkBw*?K@ZlYTN_%{&*Dupla5CtCpt5 z^`VgaU_zOP#{lQojTAesHRpq}JD?GC7J#CD}VYI3o^ zx!PN5dT8J*LFD zz5irQZW2>M9z(+mOkP!PM=KF ziE*Oom(bf;#KX=v?FD?DHj)Ft8c6RnC>#6%=LnKrUgnA+XU;M;qH5awQz-82!1PPj z1+E$lZdc7CA}u`fZO*7mo-uGXgl$gYm`i94LHJ+USKsysi}^B}((oLHx|LC~?ifUz zA09Qfe9Up=@I{;ne|g72y?A8$?&j=z9~B$0HU zC{^lsdIZo4X==8)ET|9hAH(xA89HwpeNl)-woK_EdgscMslE3D7`s{Z`OuNn6WxVt8N9kdI0JkcbbyAlGnycimD9JxoQG- zsW9OEhE13*&w8IQxSA^TJ)P5c8rD*mmZoJUwfH|P!8`hGCK3On50sNA+Duyr7Dp&D zI%*S7eb`yU@xFcIgnwjnJ-x5eYhpwl^!Q+hqVlAU0PRx*kTR*cv%XLW?dUh5+e5H) z-4ZFSy9%V8&etT(-5B145~UOiWLK_v{#b6Q(Y@V~DthDjy~(2;yWL?!mdQ#HRqK*vqn@=vnwXX=2AqMvfiH3etC&U_!Z7yUa06+IwxJY6O} zt~uf>hI5RfzPQ$LrkN;h3>~IZsh{|Nl@QDT$h=}atGUY*tKKymQ75V5Qm9ra$Xh8K zyjKt}K~YCWP{D$HX^vbo0f!VbaucMa#62GAs%vSJIFp4V%TOAtXnfwLoqpjdoEY>~RNk2G z3H=;ZQa^{4RZq}_HbCpn~3d+As7}NJE9SxA%PsQ0})>}nJIXyOyOh+h=zTUJh z4VUP?5yKxcTN+IY`Hy+hI*`H#A)IVut_-SB1_rE_ta+wO^qu!dSIqO@T*k*dlPv?B zn{sGpT$G($O@HnJUgxE-V&VCPdz0ci?#Xp+{;I!w4Vcsl3=^ID2|d>C$B(oj^G++4 zSvS@t1lq(lpYoTD(xMd^-^(@FgAtfgD_d&V=Vo5P!At4c(M1H>MDB6SSW1Ee()W*p z{cO-*XitIfG=zEDuVcI-UxMTCldCaN-1Np|N4TMpvvm2A)$VjE6p+fN{zn0r&h9$u9^RraVJkzqO175TKN-Z`w+x~k{8bfFHKkEQ7z!?(CS;75 zl!(l&NTk}HWKfAXD}p8G$w9ztJ;&bT>PYYbRSk|Qixv0WuYJ@nCx42RDW5AU0do9U zj@M_Fh>m>-=Gk1>D>~MgbMjauS-1a*#K@YssV<3WT_)m(PMCuWO7;gv^_c=K-U74r zWG+!s_n2@a%JCJ>64;+rZCtoORCJ5md$&*hSgV!MUGY@8vturQCUn0O?K}v${RYA9?{$JjuCvU*|wa z!Kc~~mC9D6Qy@;!G-6Z8Euw z$2W2V?zx#&N?^S9w!M2n%jdD(MH>;}O`uE!Hy9zZSahXHs~OUg)N>!~!ZUZX)j! z)(NnuJ8F*bMwE2t>VDk@w#=+bRF#uC8&(=%8q+*kY#w?u-X7s=*geh$y(HnQAMH^4VxS`A z{z`oJ8^Yd%jUzUExP$F91mOlh!}1!h8rfj@()1&e4JVt0SUJuINh%uKi%cJF0z?TK zy?Mm}q886*mU#l?GB_kcEMhd0QkK_MTH)Q_U>Fb;dz4i0G3J~+W@4X|=+#(guFWXc z5~k~)Y|lVeZN@K8{Zkh4G3gLju_Q<1ltYmh`fo%GLN5NffPx(9g7Fg72R8zUi2=^+ zTa;j3zr7APy%j~Ez9C`nU~(Z)g|g_t{Hyn+#tj9vIax3Bk|U712_cG!q~ zz)UQjk`&fI0_5z4N?jenJ>d%Yn4!d;OWdv`^}OxW)c_9zj;kiV*EP_M8Se>%Yyv)j zp9l0aDeA-hkG0C{2?9c4NTPmiM93kcB9Xz!=V~zxTD!S&)41Fy-`||x>!!H*Wh3P{nX@1xduKRuIRO^+NQ1@oBtXX?n5?*9ba@H(vN0o zKR@<8FWd)`>zYQzHBRF=dpGBLal2~bk{!PHx-lpR$dQPjx_^A1m^VRQQNE{iru-=* zsY{6~n81ShjeMKM!v7+*Quv9>;xOON*gLc`r=MbK+~(EzKy#jO#q5f2Nm==4(|*e% zKjHwaPuS1hG8rMGN4t3f(tHmwjv%Duy&JeV`7)&@!79Ij1#CRWjA?Rpfx9(*`?ZLLQE@MP4luG2!TU3m~TV@A*}DFiW^) zo8dPx#}6eo!+M*IaPIHx`2{vCv*OT5;xUf}w9UJY1{n7jyHernb@wO3RT{VyCc=GK zcCZ%wLKQ{HdB6}>RA@F&tA?2sFeQdNiJ`75zUum31HDFbz(bn(an!a+%2I(PeOZD8 z@;mKzyKv^CTza7_Uj*gtv$^zl%Lk!_KD;oj?RL_%$0d?1qCyzrfFRPr_dD%Wi&}C_ zC?n9lYWuLsgn1m?!^`Yae?y@?}+X3*Mk4i ztzYeW{m98xji%DFk3zcjQS*#dD2YS`I_an_f#_MQ5NZh?f!iyF28ccNQ=W6h)+ z{~iqF^>Ad(^gN`;Cgk$XT2z zqB<5bQ7$pS8JrjQyYy1&L0!``FW}2bLEuQ^K!KT6=qHJXu<3`tJt<6V&hPft-~Y>T zLbmOh0H(BgqZ+q>yx4mxMZ7Ds@CBu|^VR5#Uv%PJZpk-sFz(tD#&%3CGLOjFo5j)> z<&PFbjFY~YXV;`srR;u{bXhBpkZfEN+gV=V8O0=BP@KaVFt;m46Kpz*OP~xkqkD`>fd!@ebM`a^~NvD+zf3cd%tvD z?R2-5aCg! z*0d3Xa;uZOi4Gec@X|@$FiBZ)ICCX`*Mx!mt_kzqf=0>-M;k|w0f0`rE>`D88}_wn z-Fnp%gwIyZUpOyZi)q$$c20M!VhxfC+G;YCUcblc+(0@{`af5LK^s%JYy6V8dfbU< z>kGs+zfF>dj28QBSp!krwg{}Q$=MBz*V)mPTy66)MlIIP>Q6uKuF^MUY#H`2>plt~ zeMkHMt`baV$7&bbaY0f{@N8#iVRUe8AJ+%FA94)2g3N{V0HtuBXsq@hm0*Uhvnu~8 z1v7X(+P<=pe^5$j^Sw72VP<9W2y9M$-+=b%^k^2Ac+`Jg(v2%>Cu6lc)S?4>k|5UC z;_hBO{99Jt5ng$7eh||<_v1NZUB_jBO;%XFJH-U=VTV#7Ky^B8?GxteI%$IlDpT~y z@{yNsXLeIodXf(eD0lG?=B>v1NGU@Y!q+n;dpAgK&`vw?0v%({sI{EJDkP(Iu$03KT`~R zRwONB4ap+BDmuf%f(bY@pa6EC$|zwq8yn${P|$yJIW2|>{C9Z}%v*Vo|HOenuVS`^ zK0JK!2`J2WdzARep>rh=?RU_`JeUZ>_#oP5Is{&HV1DQKNu;B8VVIEgS-Q-5y4Vbm z>3+-%$5mUQX{Y50$yJ17Si#&SymN#y(Rk)u`Mbrcc$5t&rXSBWMAkRWM4u zs}>QgHVP)yNkPO%+zEaDlUw<0Nh8uD*4)@jlg_K9YveQP-&tv*n@pJ_#}$gW_^6R= zjUqc$g!eFd(J__|I1l9f{erVkx~EX_bgV`1{n!nBSweE_VT@)EXo|0F~l04GH7;>=RU=PCY3v?&2_4f@nbgy3Z0?1e9{v<;fE z>1|0F32Cuc4RY)X<8?^)DJ4zu;GWOMc$j2cJ9VGR3$hu*_E}`=*1W@dkJkJQC-7zP zur1Jo^&9wq?&@H)qpd1ckL%{JX%N$aKiFOLs1s1c29geKb+jNH4=q4>3ifh;Fbj_Y zYT}4%GB5tlLiiIrZz-iaYMkW83!v$9iQ_7Ht(0W10#Eg-Tyb1x^fD#64P5 zCHj(gmR=o@Gfh4`1A^#QXWjYu^Px~P#D7@O?H%rniepD4Oq+q>9b zuvq+%^D#3iLQ`j{S^kUY0Qp0o>;ztkC<}RcYIC;Uz+}#oqCSmd#5QiJ2d6U=_5n9C zxwHoPbFa3Uo)V^zl=_bqiHt4u$8;h_M&x=`*A_nEY3-O%`?kCG-Bs~Ghs`-=(s+#T zb_Qc2?x#39_f7VKqxwd5q~uI|yv_OT(h7`Mkg0GYMdh)EVK}fNO*T!$sQtL_BiZ6~ z_|SHH47mG1(ZZofJT{O&t7(RG+UFnF(-HDM;zvQlgCk=`rS*8}QR6x3TtF(7ub=tI z=!|_MtS3h3jyWHApmzL83L$*Spcc_B-B%fDzgaML<*~N?!Qdv?e0fLRk`oSnabUxx z(V;D$Ydc8ol=<=|*z`%>(P3>dGsZxJDOA&5Jy~hhN-Wbl6}{hoCcV;4AKz{+gOLqj zj(zJBtw6p%MuStICYjsyFfT0o+K|a9S^dq$Z~fFjxQ^?->C+(3Is3a(0h1&nj{4w+ zx!r|~x}h?L=Pxk`0J|9(50x8lYAN$pW;j2iEL z)XQ_WASI{lQ4MuPO(@_q#%mUV=hN9RBWz+#`WzLXsjlB#9XmBjQd&*{GXycGzMr&c z-|PJ0VWff7qOGHex4>0DYFp|=o{GZvye2{Wb<#uiN=~r?vFhd=LI2yM79(VO59>p49^~NNYZ%DYuq$S2<-W zHWk6_x10LDg9NeeY0LQDbaTBS#c2H|GlR1O^PqHx8-S%&SvhQO`6c}W9ZxW5n3M%# zzzvbxJ(c{;MZ+kIpgsgmx_i9F)qGvCa6n-!tMyIGjvWBGR)Ih(9xa<}^G^UwhTin7pfY95P)l>JGyL>q=E65h1dWO#8w3ooChFlimdqVpa_Ut*`^3TkDx^mzOK4 zFLv@dAeeSaG-cZFW}}JbJQ~BskB1i|%?;71?LY#ZR z!i~Yr-TvOgqxd(3l|Wld1Ni0)3ZVAvptVd;5+27ns^J&W?Gh7Kt5JWMtLy6vrgm^c zeJH69#|MI)eP%zB6w>E<=xT$9lL+WgA$wc<%Dk1u3pkd4-G@W(Pjm+t5sdl1oyu7P zf9R3Vzz>HRPZ-GNyAL6oVoghIE)MU$r_|GQy9Y%6e7YE2CvAb*m1>4U40idc7V(*% zi5zafENBz@@*5N&(qBevm@s*-_Xk=KfCE=^jYbl3quw_-k^i*6G;_W6brD85`d}U2 zRda^_Y5G^-t0H~@bLR;M+8WLx1>(pKzP*u1vXaP(YfVHbyqZ!?hs3YtDQDZ|xrn~x zO1#RSt>#M5nutPI2x79Dcg>+TMj&gU1Ww<6ioUfalpwcVK9#+0*s6rKh3(&DisW zDHhw{vdj=aQ-(8bxnAi!;HgOniw$;A3<%?`7cxrl*GaGEn=bVM0^Z zU;GPIS4lBbi9WK@eo;)gn^DpV_>~drxMG8G7G|KA6TI;EQ4Wk1(;J;kM^@vBQbi;V zxS3xF{No5!b)*TETx)iqD&p&}M$>OW(pcX9ZejXu92z)?0Ov7$X>?CbC#HtGbKQuH z=XPLku6+c}0`ZQ|v@_^{0ZrRq1okoA9toz`cd`!S$~yp8C*{EUc%SlfOd}!x=m>Q(ni_INbiGG7iJe~^yDPM19nT4-kjc_tFERi6Ft z19G<+yRvWVJrAi5>VJNWy&~x?nYPF)jT2T6l*Ol`p_FQwd{AAJQHh38cs0FP-j-5c z8kLf#q&`Io`rJFqTUN&Xfqo=XXuXbptR6+3{sHA96Ra60+m-g1ZwbmM9RukL>v6ht`@6mNzt!`XAH7(x_@UC4#AL;l~2fEUmS%Jb?KAZLT z)!{KzO-4SG)1SXtkJ6SOiS%z@>KS|X4+SV$OJ-89@Lw!0b>OCtN8Fs$s$+)naC!l| zB}D6|j&~TDpiUi8ffvWbqu1<4Zu8TgyvpaNidO^qCJxuEp8054cT2~U>-=Q|YfV)+ zaJ7}!uKfHwCg3(%iDR1E?ZENe*?H9-H{SL6SN0oW5prawcv9OxOtY6 zv4Sd)BGTgPG-J09$#5D(Yo2+Z97-ZAv0PrnUilbZV=)FvOsi}jO)ftSM=Gq1H*r;T zL)5>M*w)rQ^)ZJ(T791O5g}iJm$mJ|xmk&nB%6{8ze!DOKh&_XnZZ0he9oal=Hr}_ z1A66ZTDiw#j;lVfivHeOe|6;u;quzNRC8dyx$Rl2?M~@x>OraOHS=l0?$Z{1CvVf? z*LRG@P!ghMmz_ko+8v*9NT!_=y%3e4k2&#h<`F~&`qbV?^dRvP zre3xmO?1=5OK1mhZL(6o%X@CGv}G@&*+U1LLV_eI5VWF$XH}Z|i5NvlcuYu$X*tqz)D)RK_N21|F+c6@K* zb~WDQa$TK2Y;h`$Q2*S+;9mT4N5dtE)2n_G(`-47$JMj35-$gnD3=-6CP{myhm)>) z;S`kskc8JbTq}8OO4SXK4~%YJKFK;A=RV$-=7?UOQwE#Or^z6uJMR;M_w7Ep33TKn z#hYevZ$s;Vvaz7pZG71tOG~L(NKILFT2Zog5y`~TF13`g3W$vE=5HeRj@@N1#9QJm zuG#+{xriN){;Q0}UbcH+W3u`Wf7sc7;}6?^;}5ggWvvh>;+#I{b)2T7a?5&xKF-1Z zgwjg6`0XVzb=E4{gZ=R*z%rqsm-O{{ez^Vz@oekSqOxY}(K<%Zv(}(&*D-}O?rNPi zC-sib;h8<Yeeil7YIzeZJMDoTs7%K?l+zj#-AmX{kHT>J$2ACqc=Q?maXSWR`;cqvSDo&f z2c;d((O($3WSo5q5*7zQ*$ZaETVJ%Ml+M`>H|~?D?qxmzT4%3KWT!|&R{f)3<>kd9 z3U4#;=VRc-nIt@p4>HhhEH7_AP*W(Eo~iEz)34`eEIzh2_)}5a%XV?l7ORYJ$9?!n znxp?hQI}{L$3UNau!%Bh!(9_vAoTfV(8Bd@n?^3mo)t z$$=j;7oD4PhqdKCFS@3OWmB*hu}_f}95a%ZD)i=pw{%dr+s+pf`%_zJ#gGquIF-y4 z>Y~->CdBs^m8IbVflH*d!5|5cT@?-HEJ&!w1VO0;We%{epznwkL+#AQ^?`w00j}|_ zdk~Zo>Eo1HL=$U?yYbYztB5wDoD_3j9JA2^1l{s1rCDK&d^K_`f(r`I0gz$qx&Ie` zuKUA;9cer`_m!SI+0n6oo!fL>+GPn|GtG5+r>sX1{Y9`a0zI|#Z9JR6M(&c5LnE?W z#plZQQ@Xqfc;qGx5iEejNkYplvQh*_x-=H7ko@Q)D>G^_Q-{@DGArGa1Af*nYXyU2{b4IxG~3F$8V_CNZFi57_0d+nl}qwOUv929 z6buTifUY_#J_fYtk=z=ZXPT;{MU5m3Z!4;@%hv2!UdmI1zT7#@>HkzRBvtWvczWsG z`m`U=ynQX@672{`fxo^6=oQNJ<$Aku4%(C}{9(emxV+xdPJrnBEc^|aMW4B%8{S+R z@gf-12YmaxE?d~&Z0^@=Wi!n_lk=))+uaof;3Xza$EPrGoViPpw0dbM0biFL0|xOj zbL9MM-MUMMUJbjn<8$R=>U7=Zezwuy1P1bvO_YCCX}7e$h`{Nuq)R>cHZgb@9gdp# zs#3LUAM5Xu6l*jaAFJjO2)mA}o9QXvzqB#;YyA{upE?D$evIWFTr3DB1-5>)IZUbw z{I3)@J}||d@t+iTl|*IdeSHlf=s!yXjB!N!3-+~;Z|!=C8NRBhZ@8a*6|?1v-63!3 zlA95wo;pmfe!nzBqKxlm(f~b6(sYQWk{A*s*@+80w@cG0G2R)m5J`TK*78_i*OHMUy$%q(s-za-9+G-^OhrX@62>qsNV^P$yDdgsh!Wteu?*T9_$Rluk zI8N;U;(c@WFdYe_rSE=9rlx;HU%!#WDcHv6ur=^A(~Zl!*$K1Zz`MDA4p_C!-4p-# z^@$Evg;4}Z$q-5=RPQ)FdayotxGs9&8M3qRo*8{a#sZR7gs(6<9PS^43ADU%NehYx zKIGU*KP2D8~>DQ0>AvI z>85P8-A;NZD@GMNroHtJuV|bZ8BlrQ@bLKjQ*F1wubjeGb`)Uv2Hro89f~a-uDU+I zo1fTjCFI9d4tdvS;fvxM)bADnesCAk(%$K9$*}C;P72HBh}S|d+<=A<%RZ{Ca67_HDB=DG?Am6B$4TX+J?c1fC(E{cXxchKw~ zd;XTRQoZ1%{~?0vL0x>gq?FV3z#ozGVh$)4J@-8@D_l>H_01?Vm&&*m?F54g%#ilS zc_;YU&DPpHo=hK6Fr_0dtfkswR%MoXlGlDnqwf;Sm3K&F)p=eypQBbR6(?rodQx)8 z@2I!;M8q132~ADuHmSZ{(LjpS!J+t4RHn})_pA38$T<3M9PdlRwd?8sekeL0+^P_q z7|)FUpNKk!xOuQB>7ix%vNHemR5>yJ%_ayslmrn+pB09+A^{UueNdjyg9Sc>DbojH z{(BfyAC^oPsDlMmrf+G*9r{faRR73J0P0Oh#r*g$aRViQAeQ(&DTG(L;+Yu#P*S&A zB6K0Q{zzd)UIvQazzrR5g)p032#NrmZb)ulT(z9RIPlY>jt>i^qX10y|oBVeGpUJP!u{Jq@untQO)|N}&Fz;NNZtp6-b=npQe00 ztwaV)7{4=%(wG)cNsETVg7&@nbqu)L6df;v!1aS41M~2t+jEUR`h1G768BnclXy0l zyEm-Gh>bHSnbutH@pVf|ZfgsDWt#?_3jXWak)#*WsCejFFW>f3Dj@;dxYA~Z*B+NA zV@l6bXo@xM0+-gYux|Vb-G6i%0OUxaDpb0D*^}3brMDpK&_g)sD7i1V-Rb=zv5rGKa#Pt0HwK;Ltj%2 zuAVD9PiF)-l+J$w3y~8}JZsaiwD&nQ01M7_N5^S8xJj^kdv?88U1e=t?)C4oF$2fO zZ83dYXcOES!z5k20w}6VP+15pIcL?qd!Civ8dvJGx2X}Xe;O-LK-66PpaQEO2w@I?k z-T%Jly)(v>vBsEPJ*#Tgg6gi-^P9#d`ak)NjlOEzPr~zcmLbC?B(~?NG@@1S{mGlb zDLtXQQUrom_v-HWSj#$gsO>lP;%N}xfn|?by#x&DD`Y3Y%?SPh#6yv_zQ|^84r>7N z<1?J&WXB1>G%M&ZYs*v@^H7D%MbfAxWie0r$Z?O=kF&SnjLEiRiWH@tRQ31_cjg+g z=-US)MTb?;A&AS3kBo5ji3aGk1Ap<{BPtfA6>3q3Y~hanBSa`W<%l z+dR5tlZhg|9co=U6-rL6rA$h_O#2lB+Sk+kIBH{FM%g6w?2}T?tp~|;tP%ASS=?n* z7egLM3XBnTObN?~^7Et;9Za!eOG}RbF2i25j$jxKZ2Lk9f+|d)YAtOzVBe)Fq38dJro#dcNJ;Z z3J?m+_94eO!uhL^(clC2@0<*LsvQ4}13ozFPh*7Mm;(fK{W>aGX#uW8aB=J^1J%L% zb>yQ8*~Yao2MFl;C*$`RKtR_&xqyJKjk))(8$dwUpUG~3fUZB%RsjKBei z8w7Zp=y58DPM(80;@{!#4sL)vE$>4I04YLT;Qx*Bd#*kpMaVz6qJUV#KVt0wv4(#p z7q>Sf{}B?T4*OT&A|MyQ`?#*(c_-RL0eL5M@&I`!Dy#8y{GkR8JTCJfbo|}%Nt_6) zd*Y--ODd5Dqr?JwKOu$>xI|9#?51tAK6`GnazMOGiTKZGXe3o2ZNsTP{sk9Nhe+B< zbo0UDTn#jxN$g3GoWRYWToc4~j?&+>?kiv%kJ0--g&)^$f$7yBS@n5Efpga^5}fkf zD*anvn_zWTHFd&=JzkSx#Hz@uI4}7>Zg`TId=-=DXROy(QP~V9!IOx}G9fQx2HsS9 zn8m65bC$f&n+#jZ`NX`ARkjJ|xswBnANc3MO3CF}eM_O0WwI?mR8Zds{${Cuz6JWX zx3vG(yGI0r@IJhugAel0_`Mtrpx;YyE`zAlHsyf++st>_V*m^Pp9QV}7XCjgssk+i ze}=JG1OJu&ZsC7l{*Q%!&Qi_^uu3lA1{-_7*a}oLPXv6~VEyx@OdIa9t8%~-6hxye z)!KrR#o1<+yi2f&Sio#s;Z_d^e&1~Vd5{)}n0nce@4L2&zO}yubCT^XMFOnLXQ>n~ z4ZXj|eafrleK5eS?MD(33tYm!e;Tl41a<}50gi#>#|KI%SIYfjDDV*ln98%S*(oUV zHpFeV&8CHI!7dDTziAIB*K^PdQs8d}5Wc=wrBqN``47`^_mY9KT_wVbZ*Luk%UmZU zN58gVUfhemaPuz&{dJIhRf2g*Ur~Yl0;b5xJ2RzgPld))eCVA4sV8`$unT;5ewz+y zJ4yub0sxX-0^|xo0UjBp!ucPa($X{VE({K5qrPo(#{DBR2+usp6CvO7c0v8Geyx)0 zFV)xw#MU>a8tZAy$3Lk%=qk-VUvo6ad#$<3I9}X*xige<9Qs)MUA;GTw)Dqz<6W`LwmT8v ze;d-ws64eKrU+X`@$V@@M$tU@iqdfJ7_mWQr_3}JIYjc(*MN)6x~Q;i!ywXg|E+09 zn%nz-asdM{aR++-qXTe2_$sk%puuy9Y!@2^|83^!jQp$F+XVi*7gTl%a7g^&{*pKz z@KIt}PQU})iiiw{h@q4R#31gHSkS~Gy+FJZ1I6zI6@U=l%&CCP&44#PcbndyY*7WU zZy!{gtW~CQ6u`t|`r209ZI&5I5Tbbo$NMLv3SAEys8-?O6l;!WTwcg05%f(hoV3}pH} z;{`NvSb_b=T&EPm!>ipiUA~UP2L&3x72A82Po#Xh9*=L!mmRb7oN6wcY6iuDb*50T zX|4F|!y~w#cz%d%(~4oy#1mVaw_9OVaRo_e%<>2dS|G7Q-*PY;Da&fD)CC-3`N@Z+ z%ypb8%qg$`bn^y2hM&jze)qLu4SZ~NEZo)?)bf^!;>zur#@`bka@&D4T(?NB{@yk4 zqvd9B4dd;ocKAJx64dD1*Ky1Sg z;3R&u*g8#GatTK+d~;?VdSi#}t?zPQjgRa&D-d#7)x=ys*5Pt_INnm*8LS&wXwS{l z8K=oqQYd{TNH(wt2VKzq@iZ zay{}rt8rh|v|Uva-S`LbUXR3RTumXM0N17~8ygf#qKox0Q!)i}yLF#dyLrWwYbI27 zJJ$La0;K`zQ;Q|HiUORB;I;4ubzvC^WDL=(mOC;)f;ZC&tr^|B@xr_z7IeN~18QWf z_A}4SmOP)gB$uYBj<8>*k85l1?& z7gI(p$Lo0u@vrem!voghZY#4?zksTt+Lo(@{*k^y$K;XazIgS?Puc&OalgcS0enuS4zb1`ePO> zhdfEkv$hO3pUCm!X>UoQ%Ouc7ZcI|NV7`B`a+{kXM(V}yv!zOIwC?1`v; z3p>fPywf5kH`t5ndlPum@rW@fLmj18TF1B$r~An#x*ni-4mWL1ix(40oZK|@dkgA>diq|idOWnF*+kXdV^tmtIbjpmBX%^*lfu-jgqX+iMD}i$G z8P0^eGSwW>`98<}0J)%)?+a4Xh(g60m}VO68PWtG%);s@1W!M0+@T!1NQA#K56xjt zybx3)0FhlYw7F#yb^R9kGGrXCVd|oabkBbmezRL0O?J!SwSQ>iYcqUK7MPvB{fP6X);@_M!XuWTVWRZT5=tRvi09qMqUV{gBR~DlO6H z^-6rf%V|?;UR%$s-wJvg@oh+Ys9fX=-aQtT{2H zq!|Vo#F)Hssh`@r=SHZsLiCWAN#+c3L=KO7jwnskMK@eG@>Yh%K1*I3f{Rl}=fa-+ zVb-s`t$L(3uGgTCGpP!0%s*f}x~CpNk}oz8y9j)oeE5L8ftc~1yQiM~@AN6RR8;jo zm1CCO`37{s;+A9h46UWW(ZRk_Fg$aMy4e9UJW*v$mkbSx)~cC3$i^UGz6h~D(!wD~ ze`UBEG&#EhR0zWiM;jSLT6fhzmb3SP)#2dnO&Epo7`=+$x zZCv)c9z^C5rnecRCT0~q-@V<-@#1#C$6bW*q(`d7>9KtG%(x*iRi8UoS9&`{Sg3?7 znU&aON|oI?U54w4_T7){b4CwO>6eT2^w$nt?a_gA$8v=GjQ`zZ<`AA)gKDyW-~Ous z@V%aFRCoIKG5h4jjIEayBPLm1F?%h~(aNX!hsYj1&4W8B{%<%P9fmo}>B23b5=dbA6 zzDx`BxK%i$e|2CfwPr3CrJ0Ko%XFbZh_h>>ON2OVf4e?>W}@)%1lzp`3uIGLTvWVv z<4fvYFrPy&iqauy?dawhWcv_h%FxKe%`h6bNgUj`?=E}*9ZSP6;u+e{h*oA> z_i*5IWJxq&7)h?jmB{m@ab!s{qTr$JZs8!?6IeZxX-C{YuW-lc)a4U(B3muG&;lR6 zDz5ODjV2?Rwi_!GRc^d#VYVCQuveMGF6V0~w$MGwhq1X=Tkd!)9Y0zj+0j#0-PFP0 zEl9L(Lcb{qR2x&IO5^${ZlgGA7%CALIS9&m)d?@^%l)IgIET|;c-i+=t%1VuhtbAM zch8F1Ml-0Y7nvYEmNZ2-<I>#v_gZyUB$= zuJYOnX=YdhJ-pTQuX6oY($sy6T8gO}ilvZ)tCVmtfd zxlxg)ZmdWXTCZ0_#hT4hLyXB$$k4~K#|z&Rw}?njHP5(|u8J7Ve4CH=YW?0zp9*0o1QwBp*wyfP}&vmP2vHVRS>?SeUB=55+O;b$87Evo(xHorSyTFXpg&B6T z9GIN0jx8HDe6XZ}LOT_r8?OhTc>9Pd1O=i0Nvb~AuCksDG2Ei+gm)HMe2xaR8WdhS z*iStc7_}4lX=g;h<59Uae6i?8QB*-)B@n>?we0YFR-~Ggn8!~a#1E-1(unB4o@IPc zMn9(M1n^`AStNcp`OP+2j(SJ@=N~n zvmWFcIzdh2s-bjB5ii1wo=#uy5_8#7t~0{NKAQPd#rAuaD3Kq#EzGV^+=-&CI=3V^ zxj3hZfUwQHF#!68p?lQEI4uLKocGOwG9lcp5tN+IlplCb$n%+g?QMxeR%oF=;QL`xtitA09A;$OsMX;;ULk{?Xf9>@ z2l61IhI_XJzn1JdgYeB~IQ_!t9eY#YyYiREdabuQ*XzWNZ(!zwat>|9Hr1TD9M>5` z%H#RfdQl0=J6y0{kq6;5UP7!Dh%??>YVa;UO1oU_93gt_XQ8OJyxFWP9_Wi z`>h@OMP2smJZ$vYxsrN*NGa5vqkWg`hP?EotgyZ!3|omT<`+x6jQ09LNZ4oFWZoOw zMV=E@+H(+xS$k#&wx6d+-sxYobC$9X$(VjUcfTr0@P3_PwWLavt7c0iNM29m>vh7l z&n`M5v}r%-RJJhMmH=J(w^A=am`o*m&fWYx|?$m`M?}>emj~aAOm~P>;r)1 z{t!2dduDs5z$_U1fX#^E+&DlkQ*%%U(76~0@zdIXVA}Bl6E*VnAQpbl>^OUo<8eE1 zYTaA>Vh*HY{%jCm7%*z2;uCiH&94Y!N)gJq7IR?KD6OX|U^N*u|p^tFHN5 zpG?;9CGwe;o%019LX-&=eZ|3vKZGdX;*=Og#89;47?9*8RNe*Lu z5F!e?)L{NeN^P-V|H)Y{*Yc@G!<6!^zAn~-98lDw0Uww)VJ3Lz0NCH8fd01b^saw% zy2-zh(SsVAJ68b+g&Bz9VZ$}HuvnC*)-|@-`ZYE>k}q(35SLq|nv1}6XHu^Q@4ime z7qx*;sIZHyK7d4e)n6;<`eg`4VKrmWUN^J*qi z@740-B61$O&tvSmx2KO*dUIe4h!q4{d`+)P_Ad=8jYsUe5x31E$V||2$FEGJe2|8* z9XgZqU+I(wfg7yzNWwuypCUl3ayS=*IDoc*^cI5nvsDN;+=5P#CT^0CT@pimwOgCo z1GJxx?xN{!bfj}b)8*|RpOx&cw&sot&YRPjzUU59T=-ufr!zn9qG;a1&^jN*+31*E zu3X2bHyv7GWjMcz2pqn&+|}d@r?$}|lPvX>Kg({pU*#^Gf74ZkW3h2dza`Cb=2cws zxSD#Iol*+Kx5GBHE6DELU-U@y3`uV(sc2L_I1R!P6 zry!nelcu2mBm~e0{8{kVOaDP&lB)lMvpNiZQ0vQ!b5I)%B=eWN{q-$>$`QhqwCR1FcqBh=b+_-!+}3G$8re^)wQ}%M%of7lm1F7lVA$?Kt6)2d=PzQYMu5(J zLxM;d*xEisSwn>SClhkKl-QZ8I3_uW_2vHO#6BX&wqOWGkLVSACQG81-OP`1oKX%+ z$qmJ#NA3{y9)s6#5mxIvg=d=R3y!kIT>;JI+TObX>x(y8?JKRv!3$IykKH%^$B+x& zk`-CI8uA~h@s*+Itms<>6>VMeopNRa%vK%p>5Q2e<)UZ@{x{N#&L3VdX0 z_^%rAlk}9trhQ3PVyJsPrdVW%{Lw5J1mMYwyJ!8erRDvhEg0%iruI72q%lnlGrOZ;4eK%bcwl!CCGn&kF-8U_YRiJ|1fzZ`5q&Tq7d zr)p53!n5Jd&o~PF8k@fom_@Uz0{8@*LZl+{=*XWl*`=^(WNA=(rRa%#fh|AHUfNB$ z;_bAxz153w0pj0IsX`^GipXj$Q>8H6^+pm9^#9t}-`jALydz21`_$BzS8UM z{&KIMH1!AchoT9-5A5_h?K+Q{BUH7w1s*7T;+^AEdAfA5j+IsRMRX5)f#jVsd_$pW zYl+pa`?_cmYnATrzsijp$qY!-n!c?|c-ZJ%Kek^UhxzWwM9*aIT#buSr`hnfWN~3j zF(w<2YDDEv@h5VnO4YuRGiN;0rKk6L`}wq+)qd2V<4i7#C0bFsJoIanL>R9<$}Cea+P&hKt7RKm zp@TQ{sKOZD^*o)*_1kxo-FPdxY#SeG`PTG6^v(B^ z0c2NzijW4pNAaIz8nA6pQodDa|0K$QZTlyu4zO+dR7i;+`iFpR3n<`Mg9#`AY}-2r zz@|Plj4b2cl>COb@bWT6PkwXWHtJHAI$nzxaTa=I+H+veM3(XO|JC za-HmUVRh;YrrHc6h#P$N0?<1#6RFe}{}>k7@8EymL$N0@`Q;ZSTtCy>u0oaOBHCQ6 zW>W{%YJj1gVAI+1XRPnrJHBGun%_TQ-Xx-Rs+vPM4Le_O1XLuQ;y5iyY$KPE#F$0&w&DvdQITAfC&82e8a*doVkf$lBYsG@I1rQ~ zjD}a_${S!9Oa!YdeZLwLIlIW1cd^NYBvyf411wUKkG>jBY2sk84sxLlE~Bo}DkT=L z*kH;EW?XES`ZFSj2B+#WCF6$a7g)3bTj-WiSN!6+mlyk~Nhl8`N$PFTVY_5hT?1U^ zCD!#loW>*EFgU3@s{f~8W?8iI7wnsABcJI7A|_jGG5uUpe}pC4G5JTR8YmfeoT<^^&bRy-<@}WG<-cV& z%#eXN#417npRRjBahgzj=KK(f&HJ_Wka1|~9@b(-SZdHaY)d{5i##N!1QSzEyC{{q zm@u$V@rO%eo(pD)zIweSk_fCqacEA2DY1W)|8n6eJw3Bu==7y)VMhtWEJW?sDz%eB zQ!bSsIW30;r6h*8JT#@dRIcv3b@Ran8%04KDDYL-O2}En&v!HlB#MB9CeRz5UkD-` zJ-V_-%2b-yQX8CsT37LJE?i8bZq4)uBb`rg1KnF7zd4maJs#~j`|vJ7JsbR3xq6w< zIIU>0aZKaC(UrN8E0_>Sz#c1kO*w;6+K)i7RO;OPWU2RGa?T@glNAq7i*nHV<@ptr4Y@W}D?|6LV%_`G`OA5@+YKGHCHCtNekmdKlJ7?zWENNh|HcqkUa zNgsYtkjOL8NW^{9h4wV{qTUGQUweU0BnoY=7cJKqyfWnW%LBc0QYL&xst+?$X34xt z#>~|*Bo{%J_E))gXO~;sk1FkVS-cs#x35kYuS(|ZfM;8Kk{m+y-PbwH89*g^-nO^< z*OuUXPu_lxkwUZuFpUJ5K_rBN7E>u*(P7YXOLSu(%OF5eI_{T%0abcn;4&JDKdz&9NKFOidE^?858owC#= zvhGp{ios($)eEi35szRxEnvw1uZvf23h>b!0DMIMkIR9WU?aB@3CecLKhwt)cmf0) z^b$B60v(=l0(b)~4Tg z)YyIPYCnaeMscg4(5I8*ZGu)kr8(TWf$05g(Rtw{h8&IuuP(|Qw#abVM<4%#Ol%P~8SF#H&>2ap`^-Vde!p3%iSWDJo2HCi!nZ0yELKN9mbMPufc9@(d3-IG~ zk*!*LaN8^yUm$ZNh630=S!Z~gQm_&Omd@`YpCW$>*HLgIxiYPeFK%4XrVLxlfyWT} zNx{RL)v;3jQY93$=JPELo8wF{Pz?4ZzF!urVDlVD_}L%{Bl225Op&=W2iD3&K4Ajv zOiUz1NozzrLbY4VuE?aQ08=wmnWN$e(&+=D_pb0BmA zTYYZc-ys521fN$}{nLaH8Onp`7td>#DunstPa!;sjVI$Q-^!dX)4M_&?mfQr7bUVB zLLgXuJBi+YzLowC5l0}p0-T2EqUp`%$XrF1!n%u;KLponnL}KO_IMs%)+SDfW(+?7 z=`S7xy4)RXYnP5J!X4AHxzUpMV&-c?=_@tDCq1!slRK3hlUOKBajliZA+SX|i@8TS z#|A)orY%l4N(I7a_0BteemQL8cdOs~UlA zZ9}>doNcw54L1r1nzR#Xe_f_KUs^@T(-HbwwMuhDdsL7FX(0TSr4E6DKt#!=Ao-CU zJt7$=!f&Yem#zXEux^MsZluUtD=ziXRRIuFLLTA*wdVxbi9D4m1^j|EbU*@?b_F9Z zU&$|(Yo3d8f-r)3ubn9Jk68l>EJtZAhf5vfPu^?m&AVhn=UAPZs;SN23j|+@?n$vY z`r?pDfup$0r|Ge0bVze%+?bG`d~vs?u=tDkBpOH6~ec zhR;Ary8_jq9g1o<_wpX|E2%PtPn7=Z{foGgv}Lk*zv8Gw`8+f^a_8u|_hHHL{C`9{ z)>=oxquY~2+)Xh$y;~A7K14H(4*M65KLZZVcnsKYsO;^hV=6Yc;L(LSmPd{@n*$&v zCk?_8MyQRK+@a@V;X0kFUfPV4ZHIQt@g8dr;>K5FVs}bnhEx!>5$YqcEZ9F3#lA{7 zP0yfw4_6|_@ErQz7=PB^W45yHX|2DAI$;L*#_LQavZbjG^R6-pa6e}+mlHaUnw8wB zrc92iDpuW-1yT941u74DFs;?NYYChsJvigrrKx4}(G|3iLsHw{J@>_F6`iL8n9tOd zi`4c*IC7u!C9ElGQffgQC~%l)hm~3{KO(zH$jX%D^WVg4)5P|L68Onc7~JzD|AfC% z?65$Wi#!~{hy6T}Nm|tNQ{?8C5ULyz9vLa_Jadegf~7WgvTua;Aj+hgvBDk2BUS8Z zRo|^+FS^us8Q8WFBJ=l>bTLfq1sZ}X8Q*K-YBUeitd}HrR#xXzDr`t{e&(Iaei{~; z5vE~|rK~oCaAf=N!>NbTAZ$EiK8^1H$wpkIOeLKTD`li#?P(igj=8lNt0c%JdKd)DOQ@+1mqN z_OI=}C1(y4=D1Yh=?pm>f4qyxKN|s`%~lK5u}fj2nhAyuMJG zo;T7E*}nNq8owv1V5%bNSc!wkrrSphaofj-wf(MKU@ zvu!m8-13GaBLxNp4(0vc73)4)m_p1~+1+VIRnIGYCsai&m#=ok#ufB2!*@u19EUnk zjxy(9p1rxJlUdQ2dh5dwcr+)j$sF8e^PJamtevR$)n|47otV}NI8qOzh=RuV3k~hz zC}jDkqli7)TNMLK^L1^ts?2?6h|ku~$G*~cZHVaWUP?-7ga18l@2NnkIro#Dip%Wz z&f?mXb4;E7Q%k3uF>-MUjOD?OPexZxa&|^YPd=KZqNm6>|JZwqA@qB7tlBgEN^@6? z?7YOZoPwL5Y}DbZ;uRz;I4tn>7ZwN1aF8prcBwO_m;sNY4h*@Oy^g_}bgZ9Nwp*+@ z`WRN{ud%+F4zL$Z@VggIWd8tugv*`)`a>czu^%JSwE##Pjy{KBO))8;TERS!+{{J z#4!=%VznR{B6(LY-!KW8k?sa-SSgC2-E_0;8j+9~Dp73*c{c%5U*EuECk6-6m_X>l zifzqAT@9D5g{xzjw@$9hQ|(TY)mf4kMbHKMkW2 zRoVM7ZNBB!S$0J%gwwn zK*1z;Z*^Zn1Ro9{ozMJ)K=dDPpK6FdLffU)VCcM@?*^|E_O) zfY7#DxX|zX;Q63v$2K2hU@2ddpT5}@kV=+e2*WD%4ztyQStRn0p%klwuu5f{K+n?n zrjh|*w%@P+(HRPW+5Uq+4S?DHP6EJee>?L5Fk33w@5z)&K!2G=0GRFfN`GLs+I#@a zW+DNA*~a3^vDjk$Px1^F;cmylW#Rs)*GnKy@OldzM5*No{Ix+7Jq@wj_kALLvphMf zwl?Qc1~V~U!`XwoPj8Fd_2|G(R)35K{^xvT>v9f&s9zjLOXBrStvipA`r9!8(8lNb z)14RP4>Gz~{|7}yta!`U;w%69vUpu`sIUnw0EICiQ2k|ugI`0yLD{a$taIh9&}5md z4;Ts35)IO)lh?)D%1{bp@zOEtup)2~`RUjy{c_ca>GfD|!01+02s@q&L)&>(dVIPe zgu^J0_JwsoaaYPlYOu{o>XU}|4@v}Ue+SZCL@vE;J$Wb+tc~vPZYGy}V%?q$4@*;7 zUI9Hkl22t%KWjW!jDMnhz=3Rsxkppf9TXg}4fSXfmUV=7Od1qSt!q!9N!P91fh(U% zD6nQTvtl!IT$1?evGYj@*xj|3Tkxl#6>w57kI8qNK$LW=FG(B|$rPR7TdgpnBc)DB z#bZq99yZB3Wu&0r8SC#NrkHT*?a8(9`we1>5(Xs}hUTmu)wnd{6-7p%^k`@c;sSJL zlcS3_dSnO$(s=x~XpR+U^P&1U`o-#9j<_@u6p(_X7#*F5=5N_@QxJ8VJ($qfeg94M zW;P!iI)-W9$shgyLisjfasPj&e9t$bX_m-OPnDq#pR&Lic{8J&7{z=FXcO{fvFZ%4 zRMVGauSuK!IXVof9f44& zLkdjA9CjgRI^Za_T7JD`B1xt!-!nf-gAuY~;D!wEuXrZY&jwAJDMGu6*Pm}bV7$8tIIbh*4_kUG?Ztq>npl~R1&n}d6u z=q5Rj2o>}OQ$Ct1kMQQFmn%`OpMOH~)zN0~i1{8;uO6GzW8r3+C#vDRY2S|L4oY-d zx@!;NDd(7rw3U0tOoZ(yt$EeIJCm5EuSCcPfcHM_v!Heywl<7gZY_>doRD&eyP^e^ zSUdFzYLsFILhxRutLV;Q5tIZ%mFA$4h>vp(>Wz~0*~e%?9CNsCOx>e@0T*p2>pxdX z1$J~W>`yb9_y!C4suG~X*4Q|QBIB@u=P~sW8-@1)Tnt}Cyj8SWp&HHybXFv zjz~1&Y;c(AiBuw4RBG)-F~qgFOd45=S!WMTBfGD>!#$bWVvSB#V;#o*b7h)cHO}%N z8$TQWNd*y^d`6A(mK;+-9!);Mw473iH*$tG3?>D0hqHK)h}+e%hDfia%Yk(UffIyC zUlPOqQwxCo@drev9oKrPTfHPM8p1ku7cwq&FcG~tG{ z(d6CzM}$aER&eOuVmC8 zjG(^<{FCUSg3I54zOVNmgn;mXe-2UkC1czPAoYDxmi7ypiZ>_KIajrJuj`EVnj}Im6MMngu8Kqeu|F(elIdti3y0lp= z(7N{aepb~V&8Efq<#pTj+*{X!>-;5pclTV&w!|P|=9oYT3uw^Eq7;Zhl|69xX(ReKO5K=0t|Z<5}ROrqQafMRyG*Rcy$c+ zR5aJ+YRmDE{vBVhiwtH>>Jz-(f?wL%6FFbq?H{};b9=i#eZFj~IbNG!Iy>}qdAoRV zM9foy^Qo%PWJQkI#_Txej52iZusXDM1xpBJN9{rxZH)>K(J>Lp`l^N2zT&QBB&Y>u zhYTo`fgzw(m)1n-$sGqy+0Q=$n*E@1!kZctzxy$ayLLUka^{F&rl{gog_n`1#Atgch~P*q8xn*8OKMihfPx)7_ZsHSb3UucfDz{wFzOs~bAr z8yz+Qt)QS?Aqj5}6@1lkoMB%0edIj}h{W*Fm}6fu173`Pum0RW>zih%t44JQ&$yac zj1ydxyLUT9A6HnKgiTF5pBFmE^9b%wCRV|dpv-642%7>n?DIBI47&WIfn~@or4B|- zF*$i}qc|Xb4j8V>kZ*S)m=ut{T8JAe?zbFQqz$Prqaz1f))l}u#;UwJ(coP!<6W4& zVC8W%!B6`p@a_9V`U?<+?;LicryD8UNdfcb={!>bDyVvPvfE<7BDGhP zl5hPEHJyK2V9D-SL=ZZ4E#GfBxokOkbP2zI|AVRkCSAE zk30njf#5~(EkRZ{oj0Rd{G4D1);9NKEb-6 zPhu{1gZ&d>eitae;P-n}G30OYA;6MQ0?7JN#=VXS@qx37qEDimH=S|9>qJAzb<~T%ag2mmpb#ruw@i3x4PTl>*XQtBZR{hS zD$e6O43QRCo6edFS2Ej2WxbNu=a)u`4LP|O%R4s2od%Lui_+aZC28g4x4tH&KAF<@ z_6+{miOPXRZOuf0Yv?~EgKJRj^!9MQGC+~p2?(3n&k9S!`0X!v)mq^}mDPthUHLU` z;$PT;*8@xQQQ2Br+1d##?{>H6QiNcGu9UDQ3y-XO+ypm4iDk#bf!C24O}}0u;}_02 zQBd_GGrA#JHw`~WJIU|%54?&uUL4-etF8AhZW-gwvFFYylg{5toI?j1Q%~3bufBr2*+eA?uwF1RRqNlKMy*t6u<41oy` zRC6e$M@Fn)V^<~j9Y#J2uAi}OIe6kg@6vfXZz<5Fk{hIi3Wtg?7uS~XH=qtg2-SWm zx=?PFqIcSr{HRdFDXD31Z@vGH3g{21eo*^d-x{*(a8f;6_t78in3i!&w0vC6mPor_ z$jJ)*%_+p)zc2|k%~+2Y`BV995ncb%d>Xm^UhjlX&dx`F)EEJ$F@_9#NdzOp|G}Y8 z>Uv(`*%3{|kgPg%&S8E+^m_pbuXUG7ra|{RDzN?+6(A*M=LLHRafuE6?@$3*A`cZq zQwt5PJA8St0jAYRwEw1rJiywK8{jrM-&M5zX@aB^m+*eP%t4fO* z?n(<6Iz3DTDe*uQh=@N6lwY`(on)t3MtFG$0lqD_ob2w&3=Zw*TNQd!zT);JIF{wU z58p)J-~Tr8OsE{>ZMD+MF(AG?{!I9j?93wFN@fI5gkC7(w(ESL6aR<9#FO5|DLd=F zbEJRfy-1}bsr=GyRE@Qa@Umgnn=AGrhLKz8UWde#z;>r<9^Z)hxZ5Tml$JW2AO34{ zPCTd+NU(vQ6ERG@VwJ?rcOKtVRZ~m?nqSPN{{IdNq$A=en4-lULybYm5I}m1KKMS| zpa#)C0I&h>Xa`UDduAj-KfA1>sNKg!igZ{3nj^K2e)yT(@&{&WL_joc7V>!tpFax7 zGgcR%kl`P~!}^TH+1euq&e>xtYOF96VH;KlJS)ta4xDUvvXnWC*V`Z9vSJHS9Iccu zM@G(D!O_3wo^J3@SRnA->ALbA7=WVvRrOtr8vT}ItHNd_!hU5_hU6PoF*l-$Wd@hn zhtej3Tl`WWGO7S-q*DH3keuO6p>Gj@vJ2a2mU^w$QvD597*8!iwCmYF8`B`DvGVzQ zphzS5dlo_8efYpo1{xrFvOYj>cZX7hJ0w6sAnOfU4n>s!oLIK~gYcLQ8!&`*h~!HA zOU?}1m32S;!;(!%L(8|W2V(ec$u>0Km7sd}xBKmM_rJ-zCHt?_-EWV(zvSJL{ZID0 zCHs%#-@7IIuU{X)lKs~e5Masv+j_TTzYqLl$sTyOWDmSsvInNi4_R>s^9MyLH_y@l zmB|5aE7#b=2doC0;1X{-2wxu3-McIFvDmvJTKc9ik(L*WwB^OZeh(( z>q&A!tz|KI77_*efDU6W9)$c-CTGK|`{HB=Pcyz@hwc#7gnyS3S}@Or|1~pXaERP% z0e9T)ng@$%eL^j1C;IVNGH5?(3y?zhz&Ns_)Wq7W{e=3niG_OIQWq+oh%XG}LbG%h zVYIC!XQCBnKvLqgMogFWu|o26+YD#FHE2=_FSJl!PkQPi;Qx7?DdU*|mC-yqP_A8Q zg&a-nFY$#G*Wwp~mPwmUlDVF3$_7)nF)w{m^9~v+V_Ze8Dx4UBh3|r)M6_654&B?G z+h)?vvBNE@#sd}J-3fb}+Y0HHt|=dOINz{@Z{j)Y?nFCFilvjp<)XX|>9d5~QFw^E zx3B=mlX3ERxlzfO4jLUC;fwasj|r)E2z+569ATi@l29P6J8@96jeI%GgcU>OtU;>zval`23kD?zl9uyKjO2FZFFeB=gNDl68emSkFlW{y} zTOC&W3CYsELD^|O2E=F7iWhX(5Rm1iWo%_78KOeSDY-z-aU=)+Pj^lAGEC~;K}aEuP;|-V>mZy!PUYq z5q8x_FQYBfhYNuoBL@dY&c8LHm}(Qi7pQZOaZ!EKUm=`Y6=&faf96eC2$Ggir(I#p ztYuhlqM~BTqLF!wB2!xs6M`;P=p6?y64tN*#p;*6&j^9lo%^OWk8O=4Gk&H(gtVND zy8-4{zAXws7Czuy z3b4xPJP*yWl%HcvT@^B|X%*C0B1N+87ZR+W_81`L0zc6S((#5beQdVgRhYl^QW0#t z`v_%=yg}S0@<~5#TIFQ_a7P<$-L&x2$s&zPy*E+?$l=DvE>)jOAYI^&+|Wv>PjUez zA`|Pi&L>oontV`vn}oKg8{}OwK50Pg7j+VGP5D&n#Jq^EJ40nH^^zaP2mG%g^h+t#cA@?x;!9*~JY znr}KYlmSIiq7q_oI<{4$J3Xwbt)4j-bO+VZ{NYi`r$oVLJy&?_B#XUGuFUW#nCY&w zK%R8j6}PAedB)!>Be!Gu3}3*xVF+|YUy*rkqF0mCi7ehT=g^bbh9D{$UZ`8?qc=K_ zFzVEWZ&88hU5c|svdhOGun7$VJiR0%CL)yXX`z$*oFxLm^o$s(t6xm&JBB1Jkn^LE zvNGDz@-B&*+S437D{Pu?3Motz(n+e=`rF;RC;%04fXTP6osMAf$pNF8TScn zRVJO!;}3Awwe-rloIVcfIJV2(EG!Al>%>d?`(6Sr_xnKviDjd*DBuFw?Ag#7MG7&2 zyyO3CEJ)(^Hx^_hr$K8?GMH_?ajvp-W6j|=&9UtTYEx5*S}9C-j9 z)8UJrEbzNGm2Nf_M%)rCasETlYEl}fo_`g9$LE^6#_+o=w}P?TcMbP5pT)c9w3$hM z`=N2ATc?iB^K0|n2;UdIV{NUDZ-zq^R0FTK&qv?yHeUws7I^Yf`|n)LU8oo(@DS-6 z@mBU{8}g9_F4v1(TvW5y11@8mFP+$$rPA>l>2Ml!Hr>&b_-t{D?g}+ z;tzE_`3E*mb$x}bc$NepRpS1m!Z>^mAM6?r3>Y8r(QiD0*8PW8f4RR#sf(&S+dqkl9ZXI+B4&1`NyvI zmxmp>oS}EyB8L@`!~zSROq_l;H6rBUICH!r`cVm*oC>6r4n_PA+hS32Go{!a{a+_#N4PNQbeL9l(XWkHtwktTZKXJTj~qdfQMA?Ml!iR{|)15dQ7#cWy7Kndce_*M90b2if9kpiNd&+pm6cr$b zxbvlGeHq`PTL)sX@>XpTOg($zL(p=^_Jz(ebS+&$ZHr^a6j0(eJvui3i?44E&+OUOjGc6BckHBNr(@f8$LQF$ zZQHhO+qUgYy3cR!J#*&H{PDe2yS`PcYS&ZGerm71*1HCdb3ivv2fqz39`_X9L85Yt z&F|VowfDQX&j|?8w^$P-%G*@S(#J&XIfpJu>@l60TpTq>rVME!YW3l121Glgw+_&Q-o_k}IZIv24I-SaO$vXK zkIN>mH>Ssx$$D{0p>)Vc{>h^U68%$c6`nG@@(f(dXd)CMbX5e8<6?8SA>>uGPQ(n zDv+v(Fb%`8_X`i9Mg5!h@6X1PfVF|X`edu6858)>y2=o_{KeE)9>>j($fK>#u21hz zSFn#r>3x?wkNa|b)-Dn__+zm0Yp)i4g3ShWewyDB5}7w%hB-^Y&_peKS2oREPM0+B z-q0Xu5Hwd9OMvop?JUy!6g+7R-+UR*@U`@W(U{@HnQ!iP_sgy~G%%ajdZn$p2L{B@<+8u5Z;QiE{_ z2^DWCn2KH|L)AzxxLy)z*^&91Nf|vM zO{L`L8jAT8OJyY#YMN8a?8?eI>5@8B7NgfsdqhJE)9^=VK?gaa=DD-}?xVmc{y_L~oYJBeeN(k1WFlc4YiVPw{ z;8n_4P1&yvc?EI~{8aD$71;>p7(46~RakA`tgAY|g-EIAAY08;h-!1j2zPCqg$>$Q zYaVo_M=X@a+_19_geBd}h~U^2^GeYANF^`MzA9T`X=~EUg~$UW*i7so&pZzlz@Ifh zh)N&jtN~s;<_@9%)-9t;J5m@z*={%&Nd&lg8r|pEmD?G>9d|YEX)o`nlyTD2 z-*2=(*&|`zCN^{{TCxdNs*Z#??eQpX(!y`d@A<_k9D{V}usGajuf{uq=}&*?-Ei9m z4@ypO>P9_??sFD2v}Y(tu^yn>hIJStm0G!&C`j88<_JX#+ch+S)&@)(JAM(d)bj)KKot(SXs_?X0vX~b+D3QnUXfuTh{zbgd-Ti;=#h%jM<`oq)_l_zWs4)c-t8i=p(?gzzEb|Ra-*SYNK9dQg7bZlDHtO90J$W zY8bkX%%vj-B+%rLj6JhHQ`=bbq{U+h7d~wiwz0;_`=%D5pR&g$!Y2y$WI}Z_e1^bW1h+FnSOk=TX@gW?@HjYlAnPUhq2Mt8SAC6XLjF`<|7@3x*vz-$L1R zc@98*vzu_>uM2NyXl~3pU>djb=9~nq;gC^f`x9AIHD93hLSsviZrRm1+X{JrqlAm5 zBN2OGb-^|cfk|xaPg^FX(-G5?)!d-m8B7vK`Au5)EJEKRbAjWB3o%BeH{041 zni?x(&$mw&adKEnTH3==%;}DEvu5tZQCW+a&sW4~WiDEZ9%dk28LucV2U&sc4@Mp2G4U_qtD95c~+AkDc$E zcBXHS?c4oNP&#*a2?TY(kRp< zo9-fY+ji817G`5I)TNt#QL>|sVMXNrnqx}4mrT@430r=&PTDLw;N=VFa5-t>ZRuvy zaEaKdYx&~wGTcC*x*sE%;EP+`9g4qPe3R4kA+&oHf9^pjkU z5QHEy&oI}Dn!w0uIXw7k=yrIPVb**bqMJ$=mF!()kzGYc&QL+v>Ghoi&ei=O^> z`=}KycljCzkJyz{^n+7B-K$M|aT!; zF=~HI-gh*}RCxJD`@q(U4h-tH6MonTnsc@k@Kebd8~Z-@N&X}oP4oye4h@w#yXp)0 zgM|4!ryk*#Vy5b93w4#n{N>Xw;fROx?~+j5HwNwo`+foZu>SYi4T{RL`qV?LS3h89 zf>PpSZi~W>z#W@?61F+h&Yu)&oGFBm#WcH%4OD)0{mj+N&i;-x-z09noM4E>Y~pLDMJJ^zOUJBv)??5hF_|r(N<9pbZQZ=503RXRtux( zQCp?w+LqaMYvBt<6^NTdK+e1gU3I$s6zO!S-|hGm(QFA`{oIv3ic{L{Rq(oA02aXE zzx^!=+qhXLV0neXKjA)b-Z-8duP(PXbw4YehQ?SPXIXLpm7$GuGf=&eZLrBzPrkRk zw{}sb;vd78j({cNH-AG;r&IdT_*42mt>jpj^f%<{i_Ld5e`PttNyTkrJ-fB1Vq5SA zz6kf7FXB~5I~?r9tJb>r4|#{r_4)j#+pusUnqBRBvc2hdCn6Hl4O*4eLLqS73}|MZ zVg8{&N7=i2@it86P8S6t&`UMK9}x`jaRR6>4#|_^7#cUr3*ALyjb@_2<|!(Jb%J7y z+e>;uDoOH497{~*>$Sy|NZCIUSDNg_>v30Dei#Y40qdMguNiGgSZ^NKO% z3Gn|H^!{1PDsHcPz_M@nYd&$mM1sNoeJKfuG39dpClHs*L2wAF9*jF0k(d~l&*?m4 zB2FT3hdLXmx1>oJfWx z6#Ky=>U(O5CEIEa_V(9~S4DfS<(ybM z&I{*p<_5B)?Q76k-4d=#&UV_<%vPv^WNJWIs(qY3wzjYtJ`Nd!`jcx~=$C{F0rF08 zYfe>M{g_w&E4c*C%lx;^@t09Sg?o5k8$s(Qw8u zS-MDwjMKR0B38rsRQ2+m**YvcrH~azgd<#7PS!gyClc!o<-Wd>Dbzf!l%>uqi+(Yv zm55!lp`K}6>L0eaja~=8n@z4;AEuK_7s5v!4wGPtxOk z%+HDe30^R-3;hqo_dxpv^Cm$cq5jc`0D+|I4sZ(m&r_p{8=yx3UjpRcxA<^G^m8t>VGVRV3LK35f1kihCo3f`?w!*asu%RF1spd$+Sz@UZRA1~Ku6 zgorp!n;ltUds5u}G5COOpRFlChD8 zt!8EG!RY2~ePcWi*a&fK4>D=khpDW(n5aQspBy$&?TcjRLL?tCK$&^Q2dGNf(Ndqq zVV3^DDlnqYGUCCM1qT)Z>+B$SMY8t*EOul|hK6&pCSuic;+qu{H?vVPQ^4#k#EpAc z)ug!ql^pZjXbjE#s;KZu-Fcmk=TDWwxhlI0%zy|DJ*2&4<^~vfh~^jvwN=q$VU07) zAbjN|+Yv_{(#KAiLLE|q4o>eU22@We!_x5aJl$nz+A^_-tdx#j{cQw(H8J(ZQP_R8 zOe`Gc_HeM>%0}PUp;%8-y*?s#jooQpsie<)>e(*7m$Q|a1k1!=rH!>6q3hAiiao)~ zx?35@;@s>?gZnbZs7{h$i&-cVT4v{7dGH(jORD!D_m*r2GashKlJmuH-xwgOUn+E8 zezI^GVR>}(XAHOSch5DpkY#?cXVDl_wM-(!~C=_cDTj}xN{ ze#S?RX8#>!StFJ@gu*(rE0;#vUpDl37Tw2c;7cBQKq4)R3EjjE4|c3|8}Yx7+4>D86iG%x|Hs&$8+Rg3h?Ixh0~WTAIN=Wmsa2rkN_0ad-_;5C!( z4c}3cT2cfKbT2{*K9i+54 z4VgCoW*I!G6Ueg7U73@F?~(u6B-Z<}Sy9PTT5R&`QUQqkDAML-D+5#$ObTV3I_H(X zo#-8?^Vg+qYD$aDi4Ua7+~g`W{>vt2H}(O zG82lfFj^N!DqtrF{Mg%W^0V32ro$I)5ty`9MrPnmN%Ocg+T!VQ^SVU=#~+IjKz=F~ z7~d;Ehf89y&fVFSq^zQE=&wVx_XNp%m1~C>eU;a7&h>A7w4OVvH6{+#DT`c7eiHIS zjN=g<7^poDvN-OpEbK~Pm?By1{U9YH$oyZGD-a6##!O`(#o4{$dN)&%44*yn{|78` zMR9`uMv5uKcZMP%Cz9s7K`sLMTYT9_*1iAFel8P??x;e8irU*a>`D*hS;xLFP?L>r ziGrsijtIIU^q9zObGlkZ*l1dtJ#FR5#DN`d8AlxJDaC!Ueac(XtaSCyAXaxeCSWD9 zs9^J4_*GMUM+gFH7&+E9zp!f4-8Rsl{A*66x7;3?)FS`*6$bV_SM`Dh7bi!kcH*nT zo;B+yHw2z@e-Bt@A+LQ=IPu(^3nq5!Zqisx=r{7LvMRF`^_9EyxIZ30EZwB3VBv5& zYksfR;9nb=^o$UTz(e|-;bz}dN)m_;R$D#G0;}y4N*_y?+D1!S`Hy9%lmu6PRZE)* zA)?tIJNI&#A&$X)_3}sW!%NujRD_T!9jDJyl8~S`o^7m_OIzS;U^S+HLL+;~Q=iHc zq-+t8c&Mn;*6Mp(rXLN4+_bNPMRaEpBen~`9s14VX#3xtZl*>t-Rt)x4-hpMlE$to z#^&-#DfLFc3S%2tl{8Dn%nFN3D^pgr9Y^Ko61L|QNo}!-a6$^9o2wE(3g#ZDMRa28 z$rGJOZ%t4(O(Uht-?y7JUfo{VP>Z3Qm46RABA3Q7mX{~p)OQKK!Mm{|bVhPH2c|sb zn_Ox7D9v6~0iN_ro!0;^AzlnJXZEp)bX3V^9i)}$o@44A|E%|{#^VtvTL;xv#U4`1 zjeb!5I7Dmc2w6qn&S?ib;ttsvCzFYr;J*u?OYEH`p6N97EPS%_zt<0y&T*$CnO~WM zoM8sbbM&n{#s->UBeGid)7;a9p^9x#h8>{UgrbNulM}nq6T4 z2RL14j8f8UKa<*zE-5eT*vD*sOW`iEWIuAlkN{$Vej;Y(Tmio>_Np>sqO9_WHE>AS zjZ}F;%+c}agz9xEf>u00x;94(+`n6(qv)y+Z03R(=ByTm*AOav>m^xxXPc>koTL8A zymtY+dyX#^eGG7by!mXKN*s%QcFOo_-bW%^2z?P#@CepXojs}EU)q`;Nd+t}KH&YZ zy2)c8gLi;t;Z8`8P6tUU{PC34_-3L5~@rnTFc9^uI*xOYc-3Vtg!jW z(W9aDJ8!c|G)0N^IgPjos?sjLf&3sp{E{9_;2@xNcQh;A4|(nwfZ>}cSo+U(m=$&U zX5?WzMp>50@^OL<^koBV@wgfr&&Zw1ltB`SSN*X%m9Si*DEa|@@8`_{D*hABRoB>} zw|$#Ry$?-g2G!FtZ@`gC#akb^S=1Vnuw(AL1|CRA`5&vzAsA~8 z;LUR}4*3T)$;1_&nCput(w!+S?)~_b#pZCObR$`$kF0W!Po$hJFls-SZ)|`&$Eyal zV0W=lV^z$!G($#udbxgO8CKC#bqcQ_QkeJPAAc66YliOe7n(!HU~G(12CZq0O9OgU z-gv=1$FYY~5z={tV+jd50DL)2!x8h-Nc$8q=1sZRY>QLK6&!b6%QYgx zqjLJ-mjb#DN(2%tIo8XRCD@Q-hKJ2ado5Y%Y)=_Lyq$`5q$=~+2npVzc(hP=XcacB zg+DvUs5#>WuM*Yo2ggjM15A#F?Eo`R$|ljee82FBh9Fzziw`p<1H%zRJY4!K{%) zrJTrhElp>BgQc57khcm7q?EU+W#-5msfbEd+FR)&T@8Yn?1G})B2qGpEC{a z5p5=YWL@|k0_$IDd2qrH-p9C?N|p0RXzzoBwH(&Za=%xe=3lg-^=AYH7SBrDbk6eZ zM}FUyc9HWJTzmZv)$`W4gUEO$xV3*HRO&e4@M*Lgn?><5(ChtH@2?aVev(3qv>u7lGW29Wc2;v!j@j z13P>~+1{x5G8sGIJ^y@NFwkD!Qa2KB>%gQ&ZCzx zh?5X+`rqOU=HQ)#zKXko*LU?l3J|6^{c%sPXE)m_t?>5t0X>nzYkMox+c&k%oFk!p z5jINko$^qO$C#Kq7NNjEie0veq+)e;1YB>Q-}6OCjBhL1T@~9_u3~MI(mOu~HSfe3 z+uL0kG>gq4)&*gteHW8$-Owr=GBKi>e~eHEb0BtBPsOJ1Kjc$x$2E2=Hg>9P8lmao zbjKn|Sq^LnUgtmkra&fswTMT^RS_Xa84!`Ed$n>~fQA0@PJG=heN(Q_DLv222HEt} z@<>GlJaG~ST*ztTcSfy!`;JvuL+<6VTYW8Hmn0{L}{3{Lua^Zej#>aH7>UTGJ^uj7WMlEC~lFfE0yLghSMH3$*TdVN! z#Fo9+&B4*$Ue7G=BoQ5?{0FZ- z(gIMiA79_EpYogVq;XwTb1S|08tl^SVQS*GFo9G@8z2fRCN;eC$!VC}p@E(}&)O{< zS6LIN-;|pe?z3kob0DJdyIcwmHsW>_^4WuDt7AKuc8yKEiGGz5hEm9h?R1oWzJh8K zo%-jA2E!X3kCjy{F@XBK0vwuq9h!5ln)MOQwCcw$L?#tXvQ`IgyK;Xk>*|Aplb|rS z)W`cVYl=-TZhZNGFni9a#}JeRPfwu7T^^*G7oX_}K8|wJZp}z1C;A-tl`-DvmM6QO zhpT8K63pq{YsvwLqo~o&@mYC5bb7DC3Wm+&7AKP{+XU$5~*XP=m|nX@c7VcOAnO zIT?+JX9G2lyWyhDp38mMz9|xLY6hbCdk{8C>0NENEZPE-Xxgs&*X}FO>(h4UjeBXF zqCQlaU;&G-rxy+;1Jsj=92e`B2T4@s>1J&G?n36k^k0D$lbyE2w85|XbK)6;htYc) z{f$GbWFA|A4xyPp9L?Ips`ls-Hx5syq}}&wv8-xfT!<_WdZNVx0FA)MF0vEnkULCf zy3i6vgRL{LYe(Oc zcS49Wl;&}c%_v+`8HV>lYD1+jD?QwrXx4|cb#63VoyoD11BSV3e+O1(8jj@_nVg?L zpHiOh%+5axpFf7OT-Jv>)Q3Kr=b0so4q=z;a^7aA<#e?EVuUfxwo5Ib=mr5nI{_XSj&_Q%vH&( zQxaLwO~62Q>QsW_K`^n*JR`STCU*Zoc4d?!F|3?o zH)K({HU?fE{zWH4xNT->7A+)pFRUNJE786Rh*zA9UjTT(8kg*CmMGs~9-20BU} zW7OnPwr;4i`&!LHwsLGP4FbAIBQ&BYJ>yY|wVe@_z0cjwygy1!sGWN}FH4PfJTmxvzgoV_{q){COdM-^$8KQ!UUEly|HR9njrO^9RSsagSC zDdF=}Hsu3B#_wF9Q{a~9Qb@qP{;94$sr5MRCGHxEW~=Gb0!yN z2kqPhz%T*3+X~UGjc_YK!KV37+=_sn&a;$Do+7x)!Kd`&1yhHb+@Otk($0B8P>6W8 zb>~s?F40@Vue5B{f{aN#wJFr@4l2k$w9Q72_s4TY!nm3*!Y&8@rs->`hAnPSPNTI+ z%n-`t8Ly`8m=n}DnB$JeEeNnRQyJsl8_ zbg*%zn#0WBgL}1n`9hva zZ>h^2e@Dk)YD59WDR*CNYj{>!*qB!q$rnt{gs4s!P zvi1G2+gM+R_e3|d$X3lgHe~($;ac@67c;5h2&*1s$P!4l)WCX|1}*?>UJEB}mMxs1Gg&v2pfzuh7F2*~KmH z7xmkoPObN2l&seXwE8S))wq}<0CaQkMs-#| zD5#BdwB`hD{Wr8kWi`*O2_fx=T;M7osZA`{eF)R`xwdIZr3dTU8&4+Vwb&N%#Q2L- z)kj6Nw920jltRG}KY3CEPb6-i+?C2=UmNY3;M&wN^y17P2pi(FZvv-p1KBLp`)5V2 zIGi)>H)r&kLqLsI<|RtP^yO;hchkfa8GTERY8tC$P+%3O{{w`9*cAl%6&e3exD!qA z`1z-?cW$YXDT@NLBq#e1l*;%0Et!f!Hh#SQhbkFwh(GGx;rReca=Jo$|bK>5!9{Q)i=`d zmYjtf^THI+XwP-|D}EJ5?6HE+ewgf56wdp7d{{M7X;; z@P7^4!Y+>e=R(c5=ZLHK+kfa24En1X90BBOU^m2nl$r@^qK8u(VJqu0p1k$_n)UlL zwZHS52mt*fW4Ezd((}tmEiZ>IB?w%Rc@!SaG$L8Sj7HrLuAG-@7%FL2oyH`cHij2!BVy_W?i_@|E`a zXR_x-(7BRG)I(R%$U>1VG+_;N|J>cz^qHytuJi4N5{i&MxFU)Wc$_*2TL-CT{ISk- z6`c!@T~ANY%Ag>r%%Yu-Tow{9Y20+M$Ww2VBWY_r<{gP{9A~bD9C#C`btvfwwL=#8 zabHmms6Ser5V(YCEfjkf6<({imHujjggo*|-kXbuVh`X#>xR%-;at}s%Io!Mg+32I z{42o&|KFr?pMH8gKO;2jQFKzZ@HGy=G7!*xkolfP1Eg(Yyqt z!zds#i;~(}Euh}5+odO{yu!I)14D?j2_?knT_4EqwCl3Md*N}!eX)Rehkqfs<39?V z^8A^dsTAPhqZz1UqIzO&fO(eH06_Gu%A%K@0+)_|z_|x_YI&K~^K;SpX>@(F@?j8I zLS7iz3E&Dqgi-_g9ju|qti@=O3H@9ZcYuopLL@S|&t7s;r(&P^+dJcjrTaR}J6vrt zA5|+UCy~_v+c{gt?j!c#gFipeq zG&MT&*=`Q%7kNJF7=S6@f6HT@sp02R03*t0LI?|8@WSaWvN@S{!^ENw3Q`Mwsh(2( zH*v`#(9)H9`~u>r(7mqueFK}mZFy*O8o%!merk3ZX5Cq9U-Q`00Gb5Iu#wwGm5K*K zI#dBEI8@==TCJF`-}{O90?AgR5oDEq_>)eg*6-gk3&NGlsrN*POZJL`;p0b~zF^UEc|Pd@L4uLBN~Ypnw0ffuuh)ebYAN=`V-( zpI2{dDbHOzX8BrzJ^maO$^IM_pU|vOrT44C!B7(O2F+f9x!XMo+CQAGEpI8#&r=<( zDj36*aQfYzI8$Gn$W58epVqrBO(bsj+Xyx4G zn6$RRZ$=^eCWD*B`KK2)^gf?r9C&hq#rMVip8N>mXvPrA&yYmeD$vcU@ zT&6|(>kMWWH(~tRZy1SA^74i3$X?w2Q-*Tp`toq5d$C=pPhLM48Sgt-6m2Lm;_P#j z@_pm-ps^I^VTW#hZLM}({uaQVq&%56qrbPThkWc9V#_1;wn8=ILpO0_oT>Ragkr@O zuRMXX_(^4NLY-p$uS0ILV5T(5yOr*ppukHe)^Wy8D@)3=9=yQz`W6Y4aV$t{W}R20 zUbTY-9d@wupg0zc(XL=wW{?Q?==%Ox`_6UZJ*6-|%g%IroBe{(G_`Olr9VvPa(b$i z`l`nBY-ghHMkpzmOc@A)PbS09+F)9fmHl(;m^znaDR^Q!)z)u$+fEcY^mzBNR~Y@& zKkuDJN0Y(>uJ82Rh-u^Lujs1^rpunAYSMB6DI?{TkLxMAYSKa=o1UIOwI6OC^{sB% z(4x83*UX(`020Pvt4WH_MIE>qqN-R?`k*zCz<;s=(VN@gsfI6GliM$4z~)9Q)76q! zZ6g`=Vo6-yEzubbRhuZ5SDriL-e?MGgo@-rIl}ZUEh0+a2|B1EIl8d|y+GeR`W;(I z?cDLHBu-j@BLdz)?>#;ZR}z^v>|&!lzrVdiZYD;~rnx6!xDs|kd>SmbjHkKmv81fu ziw)C~8`W(5Y8q~yslewaRr&HFGk=t`pYYfNiIq1xLu*rJB4*?r%*4e(Q{s(^^gjhf ztu?={J8DWJsb6}6qs915FmX?QCC{)`s>QMJ(zABZDC#qi+xGPPe`W`#s_91bhwC<-V@Wag$pI)v7vEsywW1pblqMSSZf)N zxE13%*&9jtbS$^s_)(7v`Wo|N3wQ>})~7s88p*1IWbI$c za1uApHDXisOQ8X=CK{85;y0cmG^sPYzn62RG@0jN1H0u60t zQNx)#afNzQb#L+_c~=i(b$O(3!tnx$c@#G8lMV3~4G6dVR)}rOS4?;7eQGVDFuU0V zn{}irR~vPy3K%T0)u}#!%LjHU@pd*J(L;l2y2~T_Pp5nJ5!vx(wd6QAYOyUJvAf?h z4B^#5d|dk|%F141J@<(#u#ba|iyWUn_5(-1zJED{Oh_}4{m@HE(_5$=oki~^Fmr2VcStK< zMk#-W-f!?DJRNqiJ(LKiR17ayj0@ZQ2lg0o~n5Oh0Lo+}CgR-ijFxUa83=XUvtRI2JiuEoQ`-VyW9*sEoyznOK}E~d-j?S$aNF5h`2soOrU z$4NC}pw@TgX*h=VX9y5q#6=4NwOY2HU07pEbCe)GY)&Hyd1#58P>eR^bb-v7G0p{- z(!B`W{K0s`dy1ieC3-oQwRW0!rd|mPl^-xgK8-cr=2m@ptSaTdf_x(!AbGdESCRoD zAaRcbxMUDqp%_S`EAb~|!jdm%9k^s=SL-FONHUSc78)iZ=6(Q6`*YC@WIW;LV7EA& z%g#A8%J*cgV*>pI@q>Ush-}I;KzY?oXv1g|*L-d=Y*bkI;PZnr;4Sk~0jvhn1MLf8 zuhu(y)k|}_b2O3U9gWVZy7vu2g5gW@q65?g>H+Z!9@LEKBOdlgoqk?|c6U~6)hf<= z_Ju$$U4Dco$Cu;H^AZ8H5@CU{PR4V;pA3>FA$%DV)>a=4p*3wCpnAgekc|aAtMc{Z z_WYd-^0ME+;kUt-#5ZX?t4^OmqD2sPmpIz_-m|-KwfU=w|EfHFN*hpO9OQ{QY(DHm zuvgOsXOuOr`jg3g-FJfSJ zbLNG~^8?J3#fDL8Ki#x$I(YZbuMQgSeO~4lPL(FeioaJi_P4ut6=tJFc(9HhM7iCy zJ$;4y9;dhXrLzkuHyx6f)*f5uMfNLr^1w_Eeh^_t6!K^kh?bReq~xp5Ezvx&VwGk` zFt4(AJ4Pt2ZdC$q9OM*d9Se6y&hc8YfrGx?F(a-;-tVczmfjuW%}AmImtwo>Uqq<= z=;@_y>Ddr!)y?$1KfBH)h@8j94x z*>Yms`AFpoXG%v-W_*YPSSdUEof zv&?&xiJG^CvqM+asYsv+I)k4J7_9l3T2I6H070$YizObz*GmBdxt|0?GCV`3(vSvZ zNHzNKRIwrWLhum!5x@3sHS^tcSJdaH-m~;`oajf!XAleRO~6e5C}qqSYcfxuW6kTM z@1E@J=*?z%j=1rzNgPwcy9hI_*rc{3ji_f83oV3E?(~l3t@hD@eK2@bEIERjWJTKN z$P8t@L3e8t`&a6fhjS$XJ(RA@PqeAfgF7JI!VoPTO6#h0D#K`a7?g}L*RO!%Gcniq z>z#Gq@&_r#qT{GsLd=7emA6&!+jZPvuvudDB1gRuNfj|96~reQR#U)PDt(A398Z#I}N+FHL7 zGdJGRg*t-3hCj^9Zd-{Wcowy^Ol??iDhG>8GfpGTI_s7iX=c}iRc^Z>nnrkU#cd9 zgxI(A+P971K@AayQ!OS2>9p;6mR!noYd+re?|8Ezus!v6KW6)QT$~$xj1|qQgk8na z(uiYheCyd6?9?0y%{V=zG}fz643_0sbO(-Yp$#?lU7NH_cq0Sf!oDF|%@rIHPf_>h zY(8qng&FL9da#}U*7#U}9BmP;4SI5Peicd7vZvZ@YLL)c*GCock~_7V+ec!vckj-< zPZKGq-LUjnusMt7M-8OCvcvFjQ=&XA!;s}!=Kt`ZrMx(fq%yz{*mL7);d0k06d7@% z+{w8pKX7*o=$ey|I2so z=pIH=*BO~0uw|@I%FFq7?x-ei@?1Wb$1w%-{3s5esdzf7+wBTtOhd+Wgnk@{lDrvt zFunUMQW;SMk6e+d#8h<63x6^f_u7vSW|92lp!6|OZDZc}RlyNIB5lU6>cuh!k=EK` zhdpiSScA6$zJM5S;=9lC`1+oUFLl$f?4jih2n(d;4ak}SO}p}{;)-}lLTU!X6$Grr zAhUTSaS6R3*SP-(qrs8ik;=zp!f&aGrS@0JSUNim4}(3eLB1F@LC0WYw-_V`xrVmMOb_Z6G`{i15bo5}EcEljfw4647icuQFh zV!33-QQzLM(723SKjQY~a{BT(X;1$UKm5d=H!9iiooPw9JARC`udH_sQSu{p=;q;j z^c5&U@5|#WYWbB&ZE3?(lI9yh^Ha0i+wePWE&dYc_ZAckow+(j2k&{4WZr$6dP5Z* zzrnDq27$F~*ZMAbC2RpW2qW(ud@{J6r875kpB;P{IT>uK+qx`P2>Bg=LJ%@IW*}T- za6TLO|9}|@yu3PGb`R`l`Mg<1`OzsHtdR|=28eX|-oc^$fMJ*sNHRDYH@IHK5Z|6! zi7`p3;wnM-rocSbUs$#}goWO=3F4e5@TAuC4b7A0C(qo>^f}xt2)iEoEXSbO9LTPO zT>+sI8$PK5>8+wzYeY@MNY=5EDB#y}0n&WT9f$Op^n9W^!+^wa$~JV@sSUa@xi_f~ zW>=|OEZtVPStUNAuu9~mUCq5kqt)TmVeWVaDERYO1}Jb8f#?P(4^5r0HBevPlX9=? z$3A`La<2`T~PEq{4$vX6FwEdg1+v= zMBl2O?_Iusdj0MC-@u!5EZ1Mp@WYG?hE#@{sNVVlmVY!P5(_@DCn?@Z!4|H(dh)`Chsxq zzm~uyi>^c^V#=$Lub1Q1~`S&hE zKip@W3+9+3D7-`LQ;kFH&1Hsua7~+&p2$T$OX)Zzoa!6&2KPW``bsKANA9i!P#1N> z9-v3m%1O+<2luE*nP4%oV$70&(4WZ8K1z%l5n3mQa~Y+2lVYD_4Oq@xQO`ES`hgRq zS76j_k?=TPkYF^4TE~)Zk)&pjg;8nP!-wPHkD?9@s_3vqlmTiZ6bS%A{#ZIr2zqE9SY6OR_EngOot73TEI)v+5o%%WP+FD@fi?Y& z7JxKCrxXD+{b9d*RrKr%0sOi2603S&tnjS>3LEFgNzEz+@I|&m8R4WpqUefaeLAt7 z`d`$&WmFx@+AWL*f(Cb&0KwfI0>Oj3ySsaEcXxMp4I13tJ-EBwMUs8a-shh0z2Cn( z?w?6_byY3K=w8q2dTP%3$UA{Ky^Z=c^lt#T5oGA3A&yU`(xvz&Uy!X)0k* zAvfp0fltF_o|yNZYITVSeGT7vw`>J^q&vzfrUkgsYS{mN0+b?C2Yt2)B65E{ZB&#Z z&1joeT6`eT(J@Mqj9k)@B5l9XQh)?EHCG zma^vBv`s3B%3PP$L8Wisxtasut;2spQZt}U7wKR%^91%C`E(oK3YPf$LRa5r7W8{* z2k^fSi8Oeqof3b~QT$Y-(O{gPZ=qe&@VqV@{0Q5 zF40{hq`OJfgsKF^wqXBg^=I8M=Gp``Imb0;40v$Jq1U?oiC0W6_F~QF3pJ^Q`4R@d z$A@q11@EoCetu=XYA1W2(CF}GnGRm{e}CJrz8u_NsVqb`>C${I#%W^ z;qnKU!BS$mP|WzJANC+R<9$sBd2EfUd&ThVTsggVcJD>n)UF4fub8nD^w?trV@;7H zEs;l`>X6qe+*mhHtQb>Q;a^a~Yf>kbktGFBQ;sMOoIhbK!i%<-40I?T1KGlu&@VAY zl6YI08Ar#-%?jzg5W2MAEn)3-BVe#4a8LZ5_MUYJ_m$2PV4^ei z_{mx3h0K@nndkk(+?d_Hu?AM8+wo2w^D92p*G7*Ue$@w^aJh#%B|vQ>mJ5cU(`$yZ z0u;>zM@CbZ=w(sv)9ixk`-iqiRWbJgj+$WQ?)2${AA@12@n$=cpDL;0gNCobH78fo zJK86yxz*D=hbcZoS!PT}#%8A4i99NQI=mJj5S^^}i+&WKusRzuJ51iRZQ!%;<@?~d zLMnc@FltF5+Xi#J`N<`I5MsU*UJ0ABfXm(>5_i(o&X3o{gilc(yFwCa*Sh-J&NcMBuvYz0PKMx3)JgD353#$1>UAr^OcQ87$>Bd#sFR*5{9vHhBITFSF0 z^zk)8V@Px5Fkj6Wdl--F*bO({V^Ew-nbu56E_JsFPknM@B-oYRknrO!b z`}Do~yC}kB&T0J|K4PWkZrR_c8a-rcnKpd!)oH9wsa+ki|r4fOnxs24s#H6u)4SlR}9_iVZ*A zdzO!7J>);o(xKQw{P5W%?5j<{vor;grDb^T)}VRRF+rf{ayvqC@+$O0{xPF~=Y+18 z`$s&x%1T2+OQ9Rh6x;v_mxsDWdC+)W3`yYGMB`V8| zoGmL10vE9Fo_pp%F-{h^oa`>;-@nXr{`AgRlMe#_va~8YTPCl{=JEdVsDG-HJ4Q#E z`GyJthw&wi{n=U4)&-5GwMEP<3cq;!49cdHZ(Uk#Tti%&4eloD$7N9;DkoO(B^&O(^SJ8N_% zGtim2u``f<>niU?eWaniA9`KZ7}pY5LTudbG38haqSS0Npgu7O5wqZT(mJ+F`9J8Yq(BUg2{AL%3x8w=!`P?^ zg4;{Tp@U?D2!aPfeL%sdSV4@t=Tj>fkc*TVkfSw>QWL(qP6~A?FAM^!^ zypYxhil~s*B(n>WA~dsWzIO6bv|%nmW4Z()(eLZGoJBPq>sWFsl5sNz5dzD81l{}Z?n z$N8#}iN*c{P^fkPqh+ZMS|r{_k6a`k7v%_F87evtUs=U++xM--N3X~R+Uxg`F@z-E zuj$;r%3RQk#MeV`0KkV-B>sf5!h65#5+|s&Z;yJ1iE<$v_=^^PMV6!n5#kH&$;yC5 z*=*C^0cO1@j`W-oGhLx6CxLw!PA=7CkW8M5j1!-!59)BXLY!dXM~K!f-4lc*;dZjw zn#RQl8=+u90Q)P?PgSoWg0ba-nXk|}t~<0j1ereB7B}RKeR6yxWZpF=*OS2fJ_3i z9MJy-PGbwx(j2X~SN4TCCz6I;!j$HKsq6j)GeLmi zfD_DVxKj*|LLC1^?Z3g4@7pPNAU;rC_j*j`@6S~_Y;|yIJ22j>*1nJM#$MtquilWE z)9;2H^v^Ow{{wYM6j;JeLA@67uuHgz-{@#6$?dJQQ2Fi;RTe52=OaGQ|FrJ)n07wu z{|6{-`+U z8}&vX!1ZwL{o=!hfImy<2OrppL-E6&>v19j^ zeX^Ws?){Ry%_+47$WU|Kp$_y%X-kU+u^H#~=KUcLBhEw{1sLJ_1-aEfgB=mL5(rys zx+Jy}S0KGN%IzV$K9P-GlUsjMDIPKZ8*`ZXD`tV5YT*&-&~6jL6mUn>_kI5gnKe`~ zyD)XifBc#=VI;vV&EmIU=u(f&JB&M(uGE3x38_R#3KaFP_<;T}^l>Bo7Z^aF`M#av zVy@$7yuU~)L)-NFeR(%a1!$XrkGp2a2>K$a7Zm611nKVp2q1svc?%$KqwzD80RiOq z_d~O~C!HtCa zdH(Ff#xT@VXErceDtOp6!S7*-CQ&ksQkJw?HV8z7bO zWsn-Qi$#Bj5ZP}=7Ev^eu5kRNJ3fyt1#2@rVh1nw|B=v7QSlwdkO0kw_yRM7BW|wJ z?%q9e4#*i+{{l1WEWr9y(!sQDluL20QsTg?xvx5iPkrlsk?9e>d6Z-*g?vaCv`Q=_ zleAwtI05SWLenMerFZseI$R+oi0)Pqq;o)^YB%8Iy^ldfzKb2 zA2Ap{@ppU=H01b^lW*$!<0?4v$-W~CFXgCFl7dYjEx-ebpXZy$Z#rVeboE*nO4S;Z zctUdOMW+pA#3UgZ56nkG=Z;KEQgyPAAf(#;br5GJ>KYuCXShK?QyBg+yk3w%2tb76 zfsju1pUep70{u^&rb&3g($Nu=;*l4(ftk;n1SBBnreJ7mT2?`|=*6}5X5pWgtc>YC`+ z8?~4G1fWSKhAO|){oD)Mmk|~Vky%rt`SMb6dA6jv=@!A+IZiSGiVMW4^$FL?=sX!= zY8$yGUH_fJSXbgLYgH?*P0*<_?ya9_a=$5!jlwPeB{4a?YrPubwcD4Ybd>STeu;zI z#yuHH>~G-xEB&SkI{Z{T_&vRl99Mx`*VKIX4(w@9(-|d6uf$uSGAP+4UH4=W#~0_mSF+tr(PM(*xJ+Q&VBz5A1g_cgj z1JvFMK5<<&<%9(9RVgz_;b7xUo+)9MwAeQOTm0u7Sv_4oJEX7|z*6vJyfKf_U= zRHCu8eC#owMz&g5(d~N>Ci|YW_}Js@G2Jtlb(g;h8B*<_SUWtWd-}v@Qx+Xvv1sT# z5>YAQTK4o4izZZ%r-UG4v%aJ#Wm#89oQMtUi~nQLRqPiECmD0#&8M@JZG@|PA~Na{ zYC(x)UU5V>xs-wf;UQ+s@cvI=&20xJ%^}99D~c8wSM%xZG^9~yjhI8zO}*`cMh7J` zdkzDV+A0T}!{~{0w7Ob-ouR;wUY|iD-Z8v0fcbZ$HwNghhQ#O5M9YSYIcwHXp;wEa zLrWf8GAWio2lX8lO#s^EQ`XjlK)-f6ub%f0kSK5in0W|JOee;_ruN3Tys{aNElAY9 z=>b%)?`08~@h5NUUrkj$u9<@li@wrGld&+^%4%JEnl5R?TZ?Ezh5g#_>@($uoNq^@ za;ui&{Cb&Fr^B`XN}en*GF;gSV?WZ_Mr=pHW-qle;tRo7?SPAXMM$pLt%ecu=iUHuD=E1Fb{vwt8U z2am_wG1qAfB6e%YpP}BP=s!bo3P#Z{K)S8X4WI-XQM`NrH4KLtvHfog7!(xs zhd03>AZ1eM5Tyxu^-Ci^_zo(SRQe907lwNOfo)0tdOAHUfqJ^X?zxwHXO8#(*Ml&e zHHt2c@re$yF!Vd;KW_Dz(eI}S@W4>$V!nMqVwcWWX^awTD)2ZuX$;Ufy2yHvKSyt; zRW?XogGwng0h#pgD0DOF9e6W;{bzOTi+uVpa(%q|W*+vRDRjTF_Ed?w$I+#*mv1$; z3l(8FS$GNZQkkfxrnH;OEGy}k%GDT}##OBu7f|T>pU{@14=OR*o{HH;>2_Uh`o8*UXlxN)#PxA^CFRpGL@Nax3yaHSfevsnPHYXS z&E2Y?&NV>p6AxYk$Ud^tI)2WgT*^dokq6FazLuD(k;wQuM^o)!;fH+fhpS+HMDCXE zV`yAzH9)zfjYFa4(sNt1M;Kt+y(3xadUXG|G^z{lGjCg6Rba=9XL+=NWv;+3Nz4_l zPIBFV+Xl`4XhZ+BUjW}U#tGd&MTQ+Fc!hUveplAx=Mqv93^AbRiWf|2fRg}k&vBil z)DL<0xc@Nj1!X`ePJ-@l3=MtfO6S?(u{*L^gzY~8<*E5_h8)DEUrN{vN%=a)?8dhA ztrB#LPNyBnwqqDu4BjaF-Qp!PL7+@Ta=W1lGm`g^*%93m4CjV41XDOg7ZC`8#e;We z{eC@yeDh2?i+w0gAjL;4d8g`@flAA-G%~9Jg%>}|$JawrJIi__QcS&XZFFdxQ$lX5@82CE%sDUyFJMnT7gEWbEVQX)Gu?PT> z6xwpyZfO?->rJO2O2Mf_-9$KM$4x@tMCc(3{QM!}200?o_tR#S>4#1FDWUk!RgZUz zg;P#?ItDn3oGy>`m)8j1PIlGjg?7B%DIv>`w1!2LT2t;8U{~*GsPi}U#!jh-b3X2F z78VelXVz{_!J0c+S`XqfO62I)6RGjZ@On)ov^5xojCVL!Jl}!35G=GlW!yg@lXG=-p2PDM53}8-b?ojq<8|-Q^EKo7UYfWq zL%%a>$4c*B;d6X~%&_6|ZH{0ozP@;y&KIWlImRkbW}Chd?f--HAfo-3^dPkTze^8t ziEK+jMZoJ}2XU}$Lk957P6NmIJp(&DM+EKG+(e!3_g5n3#_~7h;0no{Uy=aX%%|SL zy>x7PEWE*w@BIh*7an%{TibpKD7S^~b6~neMz?Z3Xw^CLJ7A+xwrzjqK|7%hbr+_g z&G$ptzV6TI&_zou{}>}~x4B-J3a%L9NM_;^Jt59;oRD2`dtQAm%WL0GQ|>L*mNK!| z+YyEqtG6jYQA!Btal6#o5?frloKsxvEhxE+SUg3uTs8G;n4?}z$V%;CqCC8It4qCp z{EK{)71wZ`&1Cz9zKMHA(qIS_!9;;{_Jf|S#eMllGJq+SyV;yB>^{mQ_s(hpoBInM zcyny~lH<;2oumFFREx*zSbK}A>@Vc)(3Z?7zLwql$M_snYGH$-=3G5$*^`df_c3~l zEra?3@Z+3K_OXR8^HQC-)o41%w|N2kVi)XDUcz7gl2o#GIBXY*+CJ(@Werj9Ulz>Q zL`|~hE%NKLC@1jkve2`xoG~3Nr56WiAL(RK=AMpm4ob-OQ`*Lmog3wM*E9XF==;GY zbjY_=<)A3Hx&7snLU!#}#b&0{a~>fDjmb1dr_JHAR2_ytI7eLP_V>d!4ieE- z+E#iQT7txCX)IoG%Z-?36kd5bQ6IVks<|)IruI#S6kF3I;?mx12I@uOvxqwrEoiDpx_$TtLn~7EG}GvMm`N2$3>4g_!_M%>tt1zVX%l6!zn$m^!1dzkc_$5hD|_O1I7pfs{YUIBAqoQWYn|9ofbMihw+C5VPyzx&!A}|& zn99>_UpUm8P}1GkTKH$(kyCIFvr2=ry_FI8Em`i10A2k%#rn1ghA5FKK(_M~$&u-M zefCaUTQY%x?fNZ}CcIvw;qCgwh$2&fcM=5G*<}kw6|eD<>tJ);2jg(}n=NCl3>@$Z zvm;eFKs|R3`-jWa-79JhC&z?&ox)von<;z3JN^8Iyu_ zyOr!kghRVh7f+P&Z?<(|$BnqVUfz+MiANxqsP;sD(HRhkmKcQVHZ2U(1- z3K?1KFwE_(1<)*S0sQCaxO3n4*K|@8Uo_tJPTpui^iC>_gY{0P?J!m9<0gGTKTy#C z_0}Q(VOkh77x;}Q)YY+CwZ#6UsoCG0n!bux9dw!r;OgH8H;D>R?|rQ!Yt0nmgXX8W zqI3&Z!*Fzu07Hd6Li}qj+ko(hkke-^YWn=pd^jJ$2ZsE6Df{73iu^{_MBdoqp@+Yn zq_H18Mx55?ndA@Rl2>Lng&{G#I3-7PhtQ6T51GIdR(qj2%(RJ5wUr729LgHU* zSwL2ASB-2BSY$M6YZG{-*pwkHsT0%-!mFA2gSUZTXIvXYAQrw^W4jxf^xSBNMrOJD z|MBN2$>1vDlgWx{^|Gi)yGQ5l_sW z2G5j>%DKJs=bHSF18Lir)Gib$6>BXWb<+v03?+$7N1|onrOQUz0}3a#Acq%`WL&e7 zuC6Z+Us~?$>|bOapEpNb%g$~VdmrgzW8jQ=O!eDFX+|EO5Bo!;@M<+*#s`;NCX(4m z!qhTM3WyjZD(mEC>IWwDt$NdiB59NMq4bVz9Po@rd}le0M)0D!cum`b+<8rLYj@#Q zC*3R%nNTp`4uxl*8n0_`BF8MSzDABw(=37Cn?;Vj`zLS%^5@)G+cp0IZ~60oHvdY0 z`MNRxFvNRHf5BcX;Ag16rN00zzHaqz>91c$4sYqNx9NVTzgphXUo9w%eB7=q&oF)B zf=Tk4Jl$vR5HfSMlxvJQn{4RNLmxx6ht>P{{+0UTecSXv1%8GZ9|QUW5@8;~`Q>K~ zYS`Me3Dsos!mOeTKrssMUBThD0%hi`*?Kj+{t6LwX!pqdd~zO-%WN`P{|FJAZ|}1e z6UOu?5F99iz2}ru-S495QU~|BO%uV%oze@Ru@`wqugQzD%gnmukMu{1(ysb+0_Qc}%G$>E?;yRCvvh#( z_T(4xKi}hDU+X{cR@m{+SN_-c{tvtrcKl~^t$K^s?^yCy*zr%WxfbUB6H6!>fc_jg ztY7__ucj!D4Suw zRa5U~MoUu4EC)Wol#)=_g)k1W(~&DuLDm>g&jin}{W8`C1!6%*{L17Oaq+K=7a&TQ z`-E;q&$?VTU(Q?pR`YalFS2L|@ z`PDBdKc0^a1|n>LMhR}atWzQr7#pCRZ6<8F(8B}Hk9UeAENcc`Rkszr*6pbuzR&NhY}mV(#viju ztLp1J_x>wQ20)6BbAHvnUn1lwG_u85wrfpCDQ!Qo#;Avsw>BNZANb@UW_pFlstN?7EXbrYR6;huZeU>(ANpiXd5#6&wq2liuctp$ zASY2VgCZvyQo>E^=stFRTa2w`-rGnYxrkmKgrF+eklUnhv__IZjJLiUvp}n5)-}J} zJuf)&Y+#NHr+W$6w@cP4D!E_`{|{#TIe;18Q?pwvNh=cJ1mMMIjG9LtNv-{p7e7`@ z+8h_{3dWp>DCPX6v_1tN33jEuzfCm?9f;(eh=(!KOY}|rcOJ0{nTCR}1&7WGATXj= zC*hZOcPwRy$0-|Ir(|RO7sY;Kug3=m-Jj3r#CuF?DU(3ok{dc_aEhCrX_Y!h_TSph1sOkyvW+0L9A%{3jw%g`utB{$uYIFIh$EF9d=O7f*Q z8zYk;)utEVjE28#0h8PbSCt85TV=2j%D}>L$54C-r_m@j-MlOVYIY49PnRA@2AR|1uBYAr zVRfO#CDvdUOPErg*)}1K=!d#dYGE&Qq_IJYz4*z$LCs&wkys_5Dtm*AKy*Nqph4XiNL7`2#Zd_*3YN4=zayvZ)#6>(I4JqXlx47r((o&z}6ao9fj7}!gw{z{LzXYD5g#a z@30h~d0@UYRLtE{%qL-~i zG&W=_!yJUTH)d>4F5DyzV^BupTcp>n%a>#y;ktabPA*-Hkv1OgwU*9Tq~J}EPFi_T~guc>!nSR_$^i`Dp6z5+%$$bFeq&QB66Qj(&^3! zJqj+HDfP?5X!V-ZhG&e1(%^f;Jew`g3v1T)4rs%3&$=eI+S;PP#RWNWgByG#*U-n! zN8K$tMa;m?62; z&9EAMk81C@rz7OQWQJ5R_td z&`&5{unl-C-=O6V>7b4{HSN0&W4%9Zv*P^UGqZv2a{< zR{nI-6T+$FS66)Mj5F|JzXc7%iv7`oGNDi zLzoT~{1xPNThmz-m3k6kO6K(9c?dqCLtV{0!REN7ZIdYIveZN;Ny%N|+U!Xm+XJgx zrlw3^UKO3A>m#Z)_LM>V^ENTwl=m80)dN5ss<18X?#R``3f0jIiVN125)4MFOTxyQ zMWC}fgx9;G=Teau#;qwKn67GP-97*;W4u-x~-b; zj%1RIvOnH_=#syo9qfLBuZ;%lM*?jYb9N-!y4715Y;hG(F#CF?F7;}4Nq{(jd_jX2 zZyD5x%ve^@bTN{5=(sVGzd6;j7Yw=Pf}yxSa070{RWbl)n(2WW-mkL)d<1zbkP@-U z8On1xAuW@Y+GZK34>|MN+u?~8<-zgPm6MgO0Ot|;dhget&GhZ^#w7DmD>xx%Ly?In z37tus+P^>|*Hg?>^2`|eFaQ-#=uudF$WWF;)CfIt6@Kz?FnI+(jqf5@>Rw+MO~vma zYXuYt+Y`9?E+Cf~g} zDA~K7UOAHs|77KgSHYZVpTmYjPo2R()gKJmf&KtqJAee`8uH>R`R^ugn23SY|wS_>h19xmvS$mOEhQ zSePI|3}pZz+H+AC)Ho-=x2e0{)&PTD3VYYh)D4f8$jcd?w#NScLDpvh{{HL2bEoaehp4ns0#${otpgm7b(`k zFydlMi#~11rO`&m621GNAU-K9eW5~Jf2qc2)7%2kLUpHvs2p4EJ5cl7gF8^`!1H@CJl z9J3-yT0+-^v@mdK^LFJ{Wb0_~#e36SE@*l{XS8ZjVpoVOp2#2 z`NjG~H0D(T2*KI-maP(i!7|G92(X?v?7_miusDtWBhk4`PfZk|?Yu$4Zs5l#x2~)A z?S2zzD|@o#uWTDG#H8Asu|3<|9W$p$>DdnH7W1OtJbqNN;YkHd1xPJb&-Wdh+?5@v zFhQ3H*W@!7tIwBlK)<)Yu^vZa8e3)?{jlycmZhib)+Ya z0NPlKN@IP3VD^x&4nI+MHUvHIj&mR<8#Fb0m&G*&A{qvG22Z7l{0OhUWnU@OhtQ~h zuUu&&&A1Y*ZWL?7R`uC^uuCX;DqE9a^wA;nISx+5c%c^_9-0{$&*6Y^HmU zW-F+NJ_6HRxv=y(nPD#jkkhwnoeqrFudW%QZvtCzSCRC7{bbQ5;JH@`T90to)~%1Q z;gjhpqQ}2kgzmce{{y@ed7=nP z!_R1xO&oJjv$O3k#f6vS9m?p$2>1K2yqU32bSUYA?o0j+$5zz~kPfy|&bwTsb1J0~ zP2{n2;t6r{KPtm|9Sm{Q6;jy3N652!>NwZzgU-zRg~gR(W%XEQ^{Hk8msJw3kId(q zOCf!!KmDxsp*~c}fhZqp&ThpFA-*%x-VXVraNqUI@g{hE?cKDcLA($HNI~~JKku)# z0oX>}Ec~EciDAON+rYbu>(`%fF`P5()7Z%>qScH?hq3;tzNSg%ddiJA?eIA8pF7E5D%g z)cdV>rya=e4~9$h|J}!OajgUVt<5W`fL4d=>89m%XQr*y?PnXzN8=GQ)6-iPl@qHj zt#2Gm-_Q=6<(o%8I=YnO;1{eqVUpN$%anFJo$clX78r&^r~q7%SI=@BL`*yJ7z8HF z@iIOH&Xjw4z*Nl|^ssCkI2O$*31$wvHxiv=;XPg$B*_{N5%!ijJ`AE^wU}|45jxrQ z4YgYF@ra%5<4Wj}8{(*lTI`gdNw+0f14n8-ozj6&4mN%nv8wNsZv<>GL{ zQ4to8ksWr4$57%jmRQ~Dxp4VG(r)Oyj7Dl)E^sIWmzTm`+tZznZE7%9&~u^;4C}I- z>k;9KyVJv`WVPG|M}-2p6x-56>e1Vk*NOq(9{6~-7jpZm*_3Z;TP16p163w#BD+5Uxdq2x9wvgI7U5{K;5(!N zrx={?aI=aUm)^&h8+2O_cH@rso{c6d)s(s*|M;$&Nt{(Dtj%#>dTr6Q!*!+UR(QSb zyQ}Z*>ZSg-X!?yUotybPDYMDobz}79szfv^2-SRvFsLjmbfN%u;b~hm zy$^?tjYE6XO(Dknp$O~LABWWw50&PvF=A?bz~@0uYyv-xqAv~-Ra zxFewE3?jh^(@nZgYxqRVuzhP5BBp?!#-pRgZoZ}s2L1yfEX{FWWNp*}DG9--@9#Q3SHPN{wv@yW8Gqt9L>6 zyNo+bEo@&n#XAo*S9|7{kd8%NnAkGJ0u7kdWhqO=wuxv}Qua^5-m7G(_om@LOR(LS zaRw)>dF~WhN8#L4{$`adiK{kI9P(wNCP`O1W+C63^8Ghmj?shKbjO$7ke~OPrk0fL zQm$DX$>q=S*kdy_Fhd328`m$*E%qU8ojA7^ESicm0H5UVJ^$S&d95bcGO9u5sT2Mf zmB%pMer<@1?~mFkmIrCP>`=Q();3sl2ugH5>0OVP32UA zhgUAVN zVfq(oIfBC01PxDfz=G3eVrYorc=P&j=<-t-x`gvjI&9ZqaUHq#u}X3{w<%__y!2ev zz8r{*a_zPegu>-82qf+{iN%x4fm|A#nYkCEpEnGO+6Se0VvO+f*)Tp+}x0E z+#5~@BYNf|9szzh$cHhrP;^+!I&5f`k)QhD+F=VCd@ZBgQfGX%m&95sQgV~If=*f< zoMC2jDo zTs>)~n#zWKF5}`(EM?=N$|1o!46r`)k?Q*bhGKQx?61a4aNN+0aPl5Q1)xciZC@t5 zU`p1&nXy605V?i){Fg1Vw$y*MMYd=AKiMM7g@wJ@B3J%bQPTfli;VK_@3zP$Hh;H8 zZhrq?ZIOY}|3_P7dAQ%U$OhmNzTbvJjA%U#m{cE*D#;AmXJe;^QiP(=U2Rq{)*@8v zg=<>ubg{m=GO%fGQgelIdnW5@x)p`={irlc#0<;#=l|bak!9p@|0zsr2eH1rWTbOUawi~~5Jh<9p8{b!NJv*VU67ng8YPO67g#!uL^tsW28nW*E zD375l0F_nOaC4{SjRzB5fD5x2(3ZX9?iG${;Xm5ag0%^+TSmob%Gd_8=V<_cqxt0` z>9AZIy6Q+IA`PR5;9WTl1>bu@5LMLk!jWO1rbJ~0UNeiO<#V%+szO0ylIz)Q#DoeC z)VNM&5SjNM;-pC_tU1yoJq~U^XZ3#$n(dN;V-7XMC#o`&kBo8}q(`(h-L|Dc<-D+1 zQUp^nZ|6tOyy&{I1D>DUm`^DNO5a;-A5!L}+LYEoS=f2{`ef ztdfaDe?{kujh1$|%$7#$EeVtc#13o+@)K-4=)q3sUVL7H-J6rIaSPJF%20QRO`Khu z-UQGa-Cpt|@+KlsXi0nZ0}Y!|rKo_ud(*Md}N%g*;7)B2#x z7x+Vhra&Tzi$iFK?gM&$Dcu@OYdqj|%sx@Rd7IOW?<3&`{MKsP(X7e%(AZYxh+iBLodaV-yBQTSIY8zy)QsU~7YM49!t5S$0)nFq5;Vy~*j)!UU2>;1_6o|WMVsemF9(PBjkY&)95}(n z=uopuwa9PycV!RWQ?b#bSEyDpe#ShA<8S*~sJQ6kk|$kJ3q>@ekyLd=ShL$yl@s1> z{e54UMtW^fya&N0)Gxf+Xt#&>T116>!E9!@*tbvMn3^m%{D3^Zh`BWGzHz-09z~?z z7oR*v8ZQ@&?|A~n4f!B~|5>Jx2kQEB)(hD*p5H@`wC9yHZ@}B%|GZdcjS2ntet_!= zrf7c#|K$4)_va#D!(HIdq^1o(e_!U;^aPDuo^=tq$}pfN=63oQ!I-J2&(wbl2DN6W`2jn49)yL4+1MZ zt_23$Cvoe{O%B`F_NFv3p@Z4Q4{yq1H8AhfGCgG|RYJD~&~oM-YaHq9Vny!%mD#NQUAq_0FA1KSPWj|1=H_1SOiSbn;{}Zlwc_F@k{Xhx+Pk6g+ zK6&^`Q2zpzGIieHgRe5R{tTG}?6^b5`)H9v#?M*+|Cz)bz{`1S@%hEe`9667=so#m z9PIn#=ONRx$KD9gsJXi`V`o_SZ6;og9B${Z`FATD`)P->Puy>t?m7J4&3&bRbS9kq zi-hj9gK|_*QibBKQ6-5(WV``SB*l$M&z zx!9f`G~3^wKWqvdRwPuc)j`p$HM=!H?c@rSWvG_8q-7-EKF+}>;H@=y+#8zOtB!qQ zD9DKliC8?J?v{~@i#yrk%WBy_RYPzPxA9=b)@pKXV+Dv-v-9Lf*!#E!o)^yE(fN5%41HH1{c^NLo$#H4Ezk>Kd^vO zoG|vI2gPH!4uKtsBqXj2vcC}1tLg(uHt^!Rc0QlO52kvNE}=%e&w{<+@} zG6a7k<|t?Xi4@lKC`>WrP2zH~4jQXaV_S^1SzU*Saqsgv3@Lhu0_t+RG?_-_(0{Y{ zyo!KijpK`QeIolsWdk=EQq&THf{EL$rIG_`p%C=-)U%`cq2Bm=01_Y7ACk_pUCtXh zXPE;)&M83c)`B}o#46UEHGrwV5$+C-qhn#|NjqtwF@dEmp`pw0j8C6wswv;&!%>J* z<@wFdaqu6p^nY-79SBnjtr3_K9ha+?EslSPm#3Mk1LNWOaNC$O16pL z>CnZmeO70#B=9-anjG%a4NJMgC|BU~UwT_l!75EMWyA;2wY_16tZ{KAO(!9dm*%DM zQ}XX{pRQQSUq?v(Qlkm{ZX@&Eo{h$auYI@YEDMyopN8U)GpiTB`Ur8KX?)ll>2{;fpCQz2kmNglGfTu5 zA2bQj@dK0w#;=6L!kX+F23mqw3HtbO)Vy5n$Ucz({$>Pj^kxLUm}aET-GC#4{evcQ z&G%zRxQW(omM>w)rhLpc8pmX?vir7Unxj8@9h)W6t>-E>+7aAf`^XyE*Kg9#v97Gl zH9ls%O?VPbTts26%zgzVBwY;wqD`loq^se=zQwB~q~_0d4$O~wPqCa3`W0w+oX+$x zM-7xfT+CzW6G`lNH9TTbN_V0fX2hRH88QynEp$Fy2Y_4Yl^o;5%o9%R@s@zx53rt4 zy>bS(u&itgi+!*ku5x82r{Lu5{$H%UbyOTr*ENbe48dK3OORl}U4sU9m*DR15+q1) zcXxLW?(V_e-R_W|KF@ogX?ArTGx?%lzqC#s+W+YytJ_+zI z8O%#UgV1oOr6!kI5Y!|VRb5zLW@TN8d{{fpIfeRV4_v2^1);?a!aNRCNl*ml^aCX(hA3Wh zmAsj16B+}r_dVz^z#Gu<1hNC&&&B&`7?Ll9=#AFBLpsNQ<9StHhpaw^j||jZ%FRu~ z@2V*$#SDgTQkLcStZuGB=D9#B8rhbbTO&m`TXM6gS##?b6HasINt9K@R0=_Gm~Uly zR>2=;(LG^x28C;DZt%%^?t#;Xpx5$=5{$icQG0mZMXh-`Tz9@4YTUZEv8FG{tqD2# zrIqGKL*5uTz>bN>@lQ2|XN}bwaL2RphGh(NHaq@A$ZA5nW#muZ;axM+rQLbrj>2h8 zaH&_dWzGeo2+71H6@?G{Kp{y*3^|LU-wTA!>vB#@#H*j!T@9soX9p&{(5`PUzT^e%9#`#UQ$>Uhf-1zI?4T^-NnGU8tGfemS8O_J>V>xSAIIlJZgT zXCYzWlfsvi$7!N{Ca=pYN5-eVHro7pntkz}L?=^3N6aa;6zXhW`P`NcY62YXO73yx z%K7>CWO1$SeUvz?9S3P=0X-O0m3ByWwDMlBE7^--3M*VTT` z^+ETxx)afEa#G`X3C=4*Qb@I?nChiBhV< zKk008?L2MrLQREyQLSn-c>&>8#*4y+lXm+eI3D_h^Ke^{k7$_QiS99C4BmCUOQta7 zsKtW1%r{6_46lmdH)VqAc2?IvT10kgI&CXp=_qOIalhZZDv>VJmGe{Fnw1e-tuGyk zu09=vofSMD{gpi2eenH<`Y?`4h}r6j=*PkVsYsO47Mu=^nUg9!yL=JJiNJ)s*0NSH zS6fRC)si*|SJf%InEFwo2$9)u=Huegm>j8U4UUxicXm9wU}_91O#*U z@!-sRQrNH767b4TKBPdpE_yVT2FMhRc#P!Ci5hrI*RSEvY@IA>0@~CpLeTIoTPf(7qPd|CRt9*(VYy5oBu)j*_OV0#`zK;ATgRL#z2i6$=C> zmXei!Ri2YC&-Jv?o{Sqp1@9pA@rNU9sg!BbV!Vf-q&3(lh=GyyvF7Aw`PZMPH)h@K zHOKfR%BXGoz?M^p8+T`2&UR{R(uTd=x)ZAQEl_$gH-0`6uXaXZUk>f*Iip5fQFV-; zTToq#%5GdS_QHj9#56Iw*vBL9Tz+mfy)VNGlB3Kxv7)ILmc*=2`O6It;sz)^=|PjE zIuqX>7+P`FN_|&V-{HhDpy|Xh)2%gmLC4pROBX2J^!Tagv|mlpq-^3UrN-J(pQZ3y zIqX;B9{^bY8H(}^Mrx$bS|pZgTHPc><)9ZhwF727tb0f@ryBJ;w{QL|1gS=PK21l=%esdIQc)Dx5 z9^zFmUUJn+WXBKJaG#D4)xppYZ9!2Zz|s}Kg!+UCzNT-Y8L)u&bvywwTy;Fb!l#ec zWZ1XwC{Nw)omiqJr6C8SICo-#1S^TL>wHrpoBJ)CqK3fNC&ett( zjta{^VV!3@VA5(xZif=i`UaS!IX zyc-ByU6po6o6?{iRD>;`{kJ^8H!gm8L?FZt(e$Im4k@1`KyBN~(n0@c;0506M!eXe z{|ayS+LoO%-tX`5hJ63%%nQ8Ne{^vN-s{2b3=O2gZQ#BB^CWM`_if91OlWjGe`5;= z@aPs4X8y*fi3=PQcvqDR9M7o>95BBYsGnxuw(JFFKpzh|s(2E`EMtDi+AaWC4>*Y+ z4#uIX#;IgUO4FxpDK=evu_G&u5)Ik^07&WZYA6qhyN^FNi4_Ckjo@-iJXb9C@`Lf_ zYqa_P&Y=J;J2(-ZN9}(2dq$LYiG0=$N*kkHDt0x51<2l2`~X>P{n}t%_)qQxB<{2N zb%B|-hx_Bv)Bq(;BPcq>EpJ`Aw5KzV({cl_48iz{_`DR7ani)t&U6!|L1RqR(|*oz z1bO;$hm_}=k_p;Y{B*a}7!rMQc`UGQH>tsSDaZxKu%5=3sClApcp(HkVz+IH+f^$gz|Sv%E|_p0J#rr{=}={z0?&?4oqY zsaRH;WBQ@7wrK9Y(52n$+4}z6<1pTME#+IdP|r5(d8{&@+N5l>Y9KL&7XRxw*lg9%kKf= z;w@cr@s=*RSO5+XQPJ-KA=lST{%{3I$W=)+eOy!tw(?@y$nR9LKP{>7>Tl=0`L{g< zUNfPA)&xBxCXj7V)8A(KtJjWu^|vozm~TZi2=7cIw>O307_X3bAP_*yR~1aUt(q z=BYPv@lf_rg{8i0(v_*5(gPm|W53hJoR8uA z#YJVh%PL8YvcL`LpQ3cL`568`KbjIV+<<+6$jY?UcY7@i==$=jI}0OxSB>)bk<&_$ zX`o!2!KTG}!iKOc3~kI{*t?3kWL)crbBZ#0yvhjpN=H^)*aG7J`rntV)Q+y2kM!lk zAy1I)%Kq~BsG!143^oc)F#8yAE0s^z@CY35g+N#X!B9cSWvBYa114vf;tImr7&kY5 zA}*Dn+=j}3X*|iuhOdj?F|J*0@qBz}5X!{@D5@MemZ?}CbxhTAuNvL)9*Wmdocf8k`MLWlWfVfQ_75z^87sGNnJ~y3-oB$vc zM&m;XXv*vJQoEBd#F-4Mxg@>iE9)V5bHfhP^|5y@xKnHho@sZ z68#@q_QeEjAEZg2W80Vp%!Ul1FCJ{i)W_gLhZ@rnEyh@EHY3>Gfpaox_1@h#|26_r zW!qcM<3ck}pf7=n9MHdQSicU)z90Nt4#@javL#_xF^Uut2MMZfMW>}%PsgjJ?QZgX zeR18aw6U!of2x$3Vqb7=XQo(wDSzqt`mk}a`8Z4eYF=u2=wi5I&un`x$C);4K1@pO zW+qx=Z;z$Ag}Wh6LLh%*oinlv>+y0*JroJue)u9~k8x+*#`zbV3`CzLURy`0Mz7(# zugSfvVI3sgjB(I)j;ca3zvEs}7oV+jZJB35vqm$1F{XLG5@=GOSRbIIX)w#h z<~TjUM)zrD5Ar}gG31j#WTh;|q?2*lqEvN+Dmi&!Z?+s+J$!!Bp3{hS#`*=Cor8yeaHg1Iiu~ zSR^~0*_9L7a@i~iS2y>%Kv!1erO<@~5zIsu$?4N+%x*T#;A9rb)#ud3-Z??_aycap zUAEZJ=;M*^_AQR;24*mh3?-{DhEk^x9tVXZ5dzDJzH|yA5DeJ_tc*AK- z9Jz0CsQelUsZEF%GtXGoM<3__U%RbnTO(9G{|h5ywn3U9p2>0 zWN-51>}?jbY-sZGcWfWZiGgIy7Rv$9#K2-4KW(+qa^%!*Y=(u4W26Vn0a13&+4KM> zGOA9D@Y_eABOfX?YE4v&q*E9)0#&hKZ)HYbe6KCW9L-iOhMSh~9wx#2ATlM-l?IhY zkax0w``G1;(~BiWqhB-60au9;p*;j*65k(M3buEE;VbOD&Nmd~Mg3J67?AlIEYQvt z!=R4*AZYg7fygG^XcUV^eBZ`dF|ZVHV>>8(%*CfCfD{JJ-26bl6w0^`+5yg|fg9W* zBGiE*Ub2g80A2zkPgIurigyrap%p9`LX)N$H^el( z?{bUAzH)(z$ZDZrMsZ{Ar3kk(J6wj_-HqHb@4_$9kp6nYI^@-4%S#xu-W#Yc`Xf*w zLXbm!eP8n9QL}8A5q*@37YGlRlKT?jw&ec;h!WkB+rdL|x}&NK$pm4V^GJmhH3$`m z5V16VwuZ802!nC_jUOqMp|%GzG_e2NXs$cN{O|o$82{1ofWUj}RaLYC|5pdA4q*)*#FlFfmcy9!~ApO0&q#hpI1`{E{XW_>ZbJ|f1a!axFq8D{@;ulrLq$K zk!)EB3Uj8$0`Q698bFfN>b3%Ah_ZiYh=??h4sbHcY=pYDLx0TD+6aDNroIxuc8(5` zil>R8lhox0ym4EKCq7E-f3aJH@_X@2ZeQaCdAsnajvwM#&0xG*-jF=Z>Pi$YZTqJRwqjK`EALZ+NaW*cIHl3BGIqO zPKUXSaBmDsBZf6iOa~;&n4u4kqEu9;%dU5R%{UxhY+m;U&1%zYx0|7BwK?2dq7RA( zsqxk;U32iVoZglb(($%gJztE?9@M2N8%c|jU=r4DP9*lnjs)vrTHEU~>w?{<1YqD^ zCro+}u>ihY60x+)+<+9`OC5p#ZmfmwpvFvB6AKO)DU1NrdDMMe9cQ9^U2hIFn}5^Q z{}rIYIR4Fk|H*?phEJ*d$%6mMqaT?bgZ)W?Lql@@*`=KA;!lRW*%99R4+`B8T$=DV zL+(CV#mL9qECD3Zn}Nvz?#J&B*wK`OGyMC;?k?A33cMt)g~L``Bd7G7Ud;<}o>2F& z6Ra2+*^m#|*ZaoHKt?Qmbkz0xM5~a}FA8DV?@zsHR7ONy{xTk}2P9O|iNsse06|Y` zs#_1!D0?jfyIzFfTnCL2<^PH6*gn!dbcn(hF^b`Cd_-85^K=1)0$40rKouyQ2YbR=Ka-%4eV&;;bnrz&-~$5E>WO- z7Q9R|bE1NTKUhyq3+Vk(PyCOw>v@k(2sSa&{4XWZ<`AXShp>Lb0Ff%IPZak4T0|f&(NTHtM;wfVn#`= z+$4)^o7bj4!DhsT*QlF3Q?FqoLG6oeZ_m#@^i(pNJZGh?T@S<47ae)hNK4F)ARZY6 zdQp*yBi?A)+K;vnqj|z0MH$&tUTZ@Xn}6;P2MLS*PfhM!KFY}cLC1Ez>=0%J)pYA) z^_ICo)&9c8R&objp7S1?pc{Z?-mgLW!_{#}KVOT#N`E?51WKI-Pn^;x{~ z%8DGp;9{`zp!Ud|I@P!o2sNW-R$k%NQz?mhxoN1MOfEzb8DqOHywQ^dM9Q5S2Y0d-20v54+=pGO1JKW zAULzW$P_Zzndd~-%*O|HoMLLN5`;k-p)u@}Mu=~dRla^k0`)Mp9DzOhDAtSDqo@;-9Ah677 zd?^+KF?aTd`ftR9m%kKL{>9TbErGw$^uhmwrtb#Q^aU;w1ZejjjY6KUO`k6gYjgX3 zo(LH4dx=rr>kKw9T0CcywvPrv#C>0r)j>xQq@+;#_*pr6Z60R{|J%nC_-V|7)AKKD z%VsH}K=K!VVcm9P#>U~3oXP{_joaPPoSkGiQ4Q>4+(!g3df9R0y93u|kdc(=8~(|tP)Xg-Kp z7oSrC&^3o;glfc_JCYpmGOjI}O*w%EgxXk)fCOlNj+5&9zREFzalhT~G&kn? zM2tEyAen>XPR=-T5M7S=~fy+UZFZ5(l5Eu(^Bt#*xWoxeZ(0ZtDro;q(%SI0O$A z(QD45-0PzzGr>zE1{zf{WG~ZPBU21cI}h3r{l~ChF4Lz=SMrarAW0&p)cHa*xGBAq z2e^-s^9vUn&*17KelRXs9rMkW9|*po$Zb|T@%}RNd>N!;hTl{);8~Je86)(p8q>Du zM&R}QTFivks|5VHy}*ud%>(9vZf~>_ma}f2hek=Yca{!fVp7s>auj;#Q5DbpN8MXB zozBkc@EQpU_0~yi$>l+H`dQ7*1=>T@2d?pn6e!C3Rw$p$Y|bZ(k%UuA>KrYz_v}9G z#Q_%~EE-I@97kabQNcLqh>qtKPXNRLycHU)rSB_6sj|PAM`dh?6TYKrL~870y^4B| zgL)Fw^-C7Mxe=kaXuG~NzUZ||*2(nlW#|yQlXVp)14W9#y_fR zBx(}kqk#%kCSt%xz#LqWG&s(WLfyoFg;~IVH2>b)q?4FLB93I1_`s%;7iehu77pwk z9KKN8P%0NK96_aR$C>ul=Cv^gKMFjk@z#9N^e3ZL>egfV--APK*bLlIw_3>wOPk7Z z=O0}h1jA+;B?53o$1Vd7A4z^MW2i~Sz7}Ol>`Lv)2dMwezZt82>O;4rHcaGkq68;p zz=U~Jx+Bo0!Q>Rgnr+Yx$Nk?!a~X?eB#oo2*>X04#9YJq{XMdQ3Nty!o^3Ci@8m2gkFeAKS7B2T!1hjlhLgPIhB5eyq#V(Oj>kX z#B2h7)U-8jZ#G}tiz9tSpZ&>x@`X_yP4gk^I#RwEZK8{6i1H}3SGaUaP&eMQM zBBK3V)}i{+v&r`c5la%GAv*p<2dYZbbC`Z7GQ6oWH^nKU&vJOzuB)R{werpfTx7c8WmNY*WB3Z>);7cNhL97x^?BKVUStoV2fiyGmR!v^ z(d4`~%z*c#f^^{eIhB2PpO!bt$PU~o$Sx{=$(5fk$XcA6q|&}Dm!oZ+$~zff2Q_TW zlb&D*XgCxr5U~7Ep<#hV?7xB$ST4t$qd*r9|C5MVjZcpb%Aj?RO=V+jfBw;`wG8Y} zhY4@}(zu%|ow}KprYuzwrwwzE*rX_jBOR9~9FLTL_$n_R09SX30Za#;3*RqYQf=%( zNpKy|I`eqjsRM0RMeDCKsTA~0(h#9FIk`SBt8;h!(AL4&^a<~#Y%3;v)|`d3w$;ur z8Cm=!%zFQ60Zk4+WxI4VKlR1zXkLIjahS9BOsRQ1Imb^4QD3~9Q{c;4wt(&T3dL;} zIhIE@lnmRv8SK@F?uxU(Xtt_|JB({e)l?N7{d=}_jBa69`-^@ruY+`2_eb8bc$~=N z9SiMd@uuXMI?;vpF^1PnbRo$2WYLPO&U1!@>g;Z(>^r;SB`Y$j20(aB*5`5@%3F-& z_i4juKv?!->+#%nEV2z;P4If%-dcJ8)OuOFbh>oM3v3RI-;L$R5W=met{5q8gQp;L z7(_UWET+K&U3aM6)s*X1OoE@TIMP%d#yhaNKh_>;WCX$BW@`yfT)Lid1(vL4L<7Ay6JS}= z+$uMRB;%4Sxoa@M5AFWicU>$XMrh)Q$!FVjAYjYTHf5>xd5No+;Xc9K1JKNNj~fX0 zU8DG1b6q@mnJjGqx3$PeW8r|-x1M8PEq{~@Q!)~0zhh|9Kb`m74Z)5=o6pqjyj(8o zXOJ&*x5v5=x+XpySrk~^vM(SR1pZvRHsIM{_aQonRhxF^C=l_Y(J@sJ>0cpX_yo88#YslcCb|9dU!u$jBV|2X#>O=IT7% z#qKYP_M?2c#B>ADW)HGrZBnF2!VBGIxeO3{m0 zi9FCJm5KlFff#ihtmglIV7k%+^=(uTj2Xk6i6KGnY@>)3#?}RovlVCa5KC9h2N+HI zIm%#>=f=3bUM|9xSJ)ESRL`$s6x+(QWR%Ra>mW-M@i?)OLq(sbogPmr_l>c+otiia z+jrzO*1Vk050@}Y8A2_9b0=y~pL^n?=`e=>@wjV*cC*~ z64e<7?OpG@Tm4KV$k+=^9&Qw~C#KC%X^E2vY?u`n0jj~@F`+mVdi+e9BISwYSkd8f zcYLm8gLC><3{2?r1=8%8B`hl<48OlWX`CE zGFx_``Qw|-F{6L1bjXLo=T72GlHZn=2)28{>*b$fLeG)#^|vCssQs}xqTnz3vyUlG zQ%}x|_Dh3~{Ao;taBH6aJAULaA`E`o#lsK?`eZTL-tU;QsA5LQ8@4hOC=kS+I-|IL zmr%QiqmM-7DB?l8cb8Y*HsD`3WOahbPmrSNKDgVpoAPoq*R*QYdre{YAl3Aq@sMp1D@_^#d)g`{60;E{m}I_wHph|} zW;p*^;quTm_`R+5@&z%4?M>_5{{%(Ly_`0Feb2fB7^7$&@nVa)t~=|seOUShTkT?f zxi&)HGvZa9fX()5p&PnX_GS8_mgkulFq@tt5*-LBM8)!k7~F zz2ySH$_zTNtm8u)hwKY$v|FSXwN*%u%hiaF$LJ$(Fy}-bFX6LQ8JvIIu$}5&yz+!s zy-NL{SXx8iL>8uG0XEBQy1S|sjv31A&mLVW3`QG%59|yq&UruO_gUVNgK>{HQ$$Nh!HcN3F29HYU`vh^GeSuQLQQ2uD_oGn6_gr*RFAl&YEeX zi!qHAA!%H}GeZ#|BlG3jDmWp=Y+WbHZ;F;Z^0p$0~A{5SR%oh75r>hj_767Lu)t76I3P zedwulpZ(lvK!w@2Z`O3TFe%gCO$;m&Bp+2GJ_aGT9$?bgjL%CShb zu`dJQPKFjI1nE;pU^+{noK5L?Ir6@FOC|o{Y8Xi;u$7@3y4cU~6|!%B8p}(DJnuG7 zjJL^=9#4-|8tw3v{zd<#GqH4-q5WI;cpo<#u(Gm8Wvz&D#c1CwX!5i{4BN^}I~{Z) z=xYB&e3{*6ua-L_a}Ieana?i~zu4u`Q!Cnc+`w3e?zdc~4;RpCbsy*aH#m^eqgGzS zhQ>YKLEJ_vti;}WEI((7)}?|x<{gezYt$gsb*YfJ5V;oz$WETXEE(j~D{nHx?>WSJ zYq3R(2N`XU9FFw33ked0B5!(=NL>%Geu?g$PZ^jVynn!p z%sa2|dhC&Rgyn6wQbwTw$306}$x3+nWw-8O%JN5T4Vg{e7ph17*)Q~gqXJ$?9Qcxh z=2gFfbh2%s&UKe%Cc!nzPoYkh?x@`;IL-6-4EbI@p4{LCNL!W+gDHzoNN1SFaU(D+ z-Y&y%COzYSMGzYwX>*=AZcJb92faFrk-O8cK=1MO3x{O*MNGiQ<(&`y3$zCu>l_(? z#6!>`ZR$-I2=;L1S9!--fh^?X7Y@cSPgC6qoorDG*59t5V@v@OQ(i@!+TboQw<&Ph z4sqx`wdR!H?$hm~i*)ibzU;y3yXFMV+If-oYbc1&-#6XYqho_Gr8~%`4V>5h)TM=G z^`{?V#~fZxxzG3KPaP{kVV(@ZP0tgbxhEGq2YFxi$MU9J7Vwc=A0Ay~06`E=657Vk zRPv>%%-6>4)$Tkhxx>_iS?52WTeyABEZAUNZ;B(1dp0RXJ;N0PR=U!h+z1@Nv`VD})5BImpx6C4*&&>&m5Swi3yllPr)Az5r z&h{ocWL{s=@xMyi_B4v3uVo07)TOBLDx`dt85i1)#Cgx9TOgx?6&=n(t_*i!QO+2G zJCks=C}BOGz@-;1{*57*)Zj}%%2ye`K7)u+Ep)aHg;*Fo6l_=GT|AfQ0oe=g63g|6 z9j@@6)rZw&>o8a)g#lTr5rJ)+tXSPp_+QvYtT(GPK@YR5kB7y5t@Y5WxGikXr*LS# zQs3`dRH?YFLIZZC8jpZ~a#$&ejV7aXx>TnvKe_YQT#YCD7MXlryfor>@!W~O6>fs} zF8+8Sr=~O~`sm9UT~1~kc-cV{cLNDNr?dW`>KDYoPCI+19#i7;t4@z$m(yq#S!FCn zKzzTWA|;>$=f-A~LT({8GRW6tuwdPn5&vj27NEat!bLmhwCahxH_mWG1t^XRNP_A~ zEfPY0Pg}4!?^2Gpzr=Y;@P|POKyR?#u(E2Vwxud-yc*G%C9|1D5sgA2PLbO%;axU2 zeUC3LeL=Rhx}nMu5eBRTfCgiuPyZb)uK=yDO3fN7tQPC{C=M6>t$;SzRQc@HHfd5W zs~E)$iuIQERxsd90XOBAUy?K$Y3zJ=-{*1BXG-w%HhBKpGX0Yb03GdJ%d6!V(X*GI z9#ozCm0wvpcVQn#S20_pKRFLhYeSoyB%2cop6N|@F2GKKU*>Pyfy^Nfj3pCLd9Y8= zIMXvyL4RTgP6uuzve;a3ZL~!hyl5DM{+LFw;(jmXrr zCM-k>ef*i`!aL-lmC@e5MtqxT(PFtey#Bc7$OAXxufO_3c)9;7%ccU^yKT=>=24T4 zqs{3BKbO6o!Vymt-0fk;0X;p59mj^ycSlfuM=?jhS0eKLFdp)tyyS6qT(5 z#~fw}hL;?3oCi1Yf?cF;L|-=?nQ@-%9cRP7oscP9PzWP0di|jNcPd`N&Pcj)47~dr z676j~@)xl(8@qZ;C%Hb~BvLR>{e(gS^Yf+X zkG2CSv3yQbA@RBiRO;Vxg!EB6?)$r9zX^3=T*G|z8qf9lyL;%X1l^)n|`s!Pzr zpOKFZ43x#QRs4DT?*)DfS@){Og>%&@dNZlqX=*?w2^-~59v%ZZl8HFRy%>a%e*I*F zf#ZtVFnWKauy-)u%+1sXHy;D80P-JlNX3gRB%>;q6y23pXxUjoSHz?4by|RG3m>gk zwmc~hBl<7S>35%GS$GYB4+Ym;+f0^m@C&gat@#+y$hk;izd0(M|KO;g?&%986MHZR z-*2a(t?5NFRJ~67veVhCOlO^Iz*G4E*{p(awZHWM;Oj)8F>Y4{vK>s`#$0k~=P*T4 zJXnTknP>ik1wIsmU&xk0q*nD!N*gwM>VZl}SDRK}Fxs1z=y7^7&JqonnK!aY1Lj|3 z6FnCFRGH0a?89L9>@7DH93~`rZ}s9$GRx-u2Xu!^5Hhw2SZ6S<^%@}UBlvUk8c<0O3Kt9tWNu#a*1H*+{7#{%8jvZX zaz#krE}7HhGIfr@|5_#JeTfINdoEGUP3j1!K;w~53i^`toW~XV-c|+3TS)>Si*WwM zTgg&J?#9Wcjf>8!NPE0z$Ze}%i|x;bAjH`I%GE6l`wtBT9=j{6ljR1A;EWpG7@s8Y|{bf2o~7Fgi$Lav-$b5Ue5-obfuXAj8lMF(Va(Oj?+|3^_dj!+ZXgNJ!?ZRU>(q=^b zA#f|>9e4}vm}AW|`g6dyt2>OB@6z1F0x&}L={tyRW4`RW;c}kFk$AZ6u7LkBy2?AQ zPGQD8H^zTo$am-Abo<#5a{VWc-EC9a+`4Pv4c(QlEu(2&0N-esQ-9FCco`0NL4~|| ziQCzd+N&Yg^HSTiuG>`&>9*8_{3w@*1~REaf(tbWQwCF+3;7X1aD*=;FVd?kEWd2R zY-qucE;L0Fk(UDFgd1vxjU}Gw{~NlhvZCA4g_wm$y`!}!apuhz7-q*QVYOZ*hiTyx z%UwR!9pV~rAwuX&Lp$-C_~T2M?c)FSj_8yQFhc!c95HHSG8*S%<(TI?bW?{i;PE+x zFOX(mz3N=jF#hcgB-e#RgYi6TPpb!`_paxCu&^8V_x0RUg(z6TZ(P}eYf_Xg+^J#= z{$%X5fB!;%zkfhCp(eXBJCLN7@kuq+?shz9JY7vp+*&PP^O%D1O~TeZ2UAEsd#DogON{fz^4#y4 z42u_frN8tW7p48~;-6rH^N7DkQ&O=xuF{A;%#OO9!TkYP zp&4wr{}MK$wfBVZq$&VMSc;(?2_;v8O`jSyh%OYRkIIWVOPtncLKl9vXKcSL4%V&8 z`^o#B598CfhwwS?NF;2$TjST)(@8mR2dP8Ev^f{`8Yxn}(9n))IF(n)2YO{XT-Mq^ ze?O{h6_>GxK2BQfAB%fg~L*8ldVmp>W7zJ&wKj+~;F&_6qKm(9ozLI-{OmcX& zA-Ip(>M>SLo=|b_#)g2~tup>OX^Bdux5#6iL9rJYnpGFj2PgcxKhHh`Q;2wX501a) z6Tgdx|0CYY9W<5c>|%YpbLjLI%vIGjOzD%H8Tzm(FW-+-8ewCFpMJKhD{ODsAiql< zkWkMz$&~x^{RkWGZZ+Y?tmRirXRoN%z& zFcUOz+Va9WSeanj6dg(D`ew)$qg3 zFy$sEuR|$tHuOsS^fbESX;sNKrrvJ2y1&aTQZsQmd*8r@(|@zuhR-SFI;MWw?^$m4 zV$`lJnr`uGYyl}qNd)!TP(WZOCo%mLtU2D(ch$w-36tAj_ua6!{$m#JK}1`7=!&v- z_T6P8N%(OX!~L$I^4eAQRu9|C#?PDGu4R<2_-Ch^B@;{#Oow||Z_n!$ALqF?QHS|e zgblBrORm;GpzpJmha^a;_(i@q_>f_1Arq20$~Z#k7rCQeR=&S?!@!u=ndjrWyn z)vuVZjIZm%N=6CVeYz%_Y02-}!rSK6vYAwj^$)$JifY9l*6JPYaUoAB(9k1t;-{jNA(P6&dOSDZf;xt+vcnL0*@&L)dJ1_yGX5%+OV7Vw5;7_HFDcYIu0=7;WJ@novImM6Ld@pGIS(EBYSn5=X2#BY zkdfAQ3BJ;PUUb$;4U^C}=D1aD~CnS|3o{>m>L!^D;Z7hp)d`QB<_#-(74#XRhb#5L(|s@1E(VoOS?K+z70~ z*)DXz&sd=M&2$WSk*sewvIr5fEWNJ2MB3NMd9ur=ts_y7#mIcllulYy{P6^;x-G~| z(3oCNf!uZs#XsgbQ<>`g)U!}tSyZ7ue`z_EE!{EX7q9K)OgIpn_VUcj8OLbwtKtB} z0hbFL~SSPhmA4Cj`eo@z`-N%}Ilk>iAn^nOGma|n^<%Bv#1R~d4`J2@x zm^>V|DkLelA7TpR_GMT~O0cC3Fv7?WieJZ02xE!Z;iIen2_K?TO6LfEw{;MrQXmIZ zD`3S&eYa@e!jbM00;zFw2l6=hfa>p^Z(%`#oAUP|31Fng#Ef_--Tbx~q`4qAQCR*e zAeA7bP{afvzmNgH?};_#yLI3_O4)=3-l9j3O7t{2Q*;4tBbgU^-FyIRbeo%fO(@LZ) zMJLYZ827nKX-2xf$*PedG>3z`4%j43DABYA_-bm8>N9XuuY^6U!~yv=_i^1t+xuu#{gsih)po` z-@i|=pZNzN&|om&VH|NcXi~zwX43|E5mH$In51uUUq7l16^`W|hMzL#Y{yI)NCrLOgnlayybT>4);#=; zSXmdsZskADVs3sm&yU#1Icf=sJFfpGiTU_=ZHN?rqO~y=%|rjv<6!${`r(umEEy4m zj|w>u59E8#UkvbWe|Qn}t|VL9vi0hu?(^T$HePOY*C!)>J~2BH$G~|f)>%k}1KO^o zQ4fbV*`yapo|r8uD(^l;fTV}n-92!#;Al%?F?HCqG4Htnh#?o<-S2O2u;Q8b3O~L; zI<$ZtAB3;Lbbmlut1Nc3zORgEcba^(*$w|yxe|+N({|!GYyYaStb14KVNUKtEw~yrK@R#?N!`mZAEJ zbQ4Vxq)*qKV#OWb)nc&!I?^o1KnL}Fldn5`jrwSP8H1kdmZOsQ1??jdhv2m z1Yw{8Rd#hLV>?~AUM9^Z@yY6+EkYeRratGDpl5SWZTay54lmgWH0O3{yKU#Qn?=US z`Wf1sz-x63Za38dH6-X3*`kXMvdx8p=1cT=i6=N7?NjAne6^P!{C+xJ)&#{*6bWth zCwq@eiMYLU6x9jN5CLBg@A`@lg(d7%*4kr-NOHNrt+l|Jal;$f>(u(;F6IU&AUS4a zLJJhxIm46yM7R?izYv;QPeyl#^a9(U>g$vzuHs=x=%UsVM2ta?+D_fU_h}~ZawIp6 zn{W@SO}r-4W4UR^>PQHb5gaf92!9xucYuZ*1B^${losrk&zdgndi6C$&#f@%So|g4 zDxj5MdXPP#4tm0DFy_4Hdkc9Xp(Mh(hi>mENCO!_b-}tI{9$2G0nMaApQGU|HpALN zz?_t7wY~~py1k>^kv}E=!k6PM2KpUrHHr><-8ARXC&JIG$CaVt+^Xp|x2ohWt8UI2 zF7y^(nek>@OCY_yu@LfMp$^wy>v$w%ZgZmaI1;5Cx%U{eI^A=kd+ zyd({JoqnPsZGzXLLA<~~TAwCpRBWqGbibER)n z^@&*R>81nys!`Me?p50!p@YdMBNp4Z2fOOpPP>vH9${K6Y|07F zH8UCSWy87uVsH<5Z>!Ve!h+^#~ZvI!%s`;1rx=qL2 zkc4@HiW!oH5xns+(giizNBWCJK|Jne#~+svp~@6=br)Gq&n+bPt2CeGu1Mt4?BPwV`MH+qckGDb|Chn<*67$PTY z>H7>+=0knl0-F_A-zF|RMHZ~?)JIElNnfdBYhxJ+9n?R4_(}yn5mLRBGDY<%AoXjP zxNRTxy;jsG8AA#7ORx7ByNKXn1hk=kiEp0L5wgvQ0j>NL%qkoRQv)dW`?IZ{eYZGK zNf1P2LQ=s=vQ*zE`unoan}?Q1TKzcBt)^yr6GGhZ_TC;m4pO%df9+AVT`A984m%tC zGA3qy&+rhRr3>0^HI~O+VoR>emeJf4-hDd?8WtZ*pOYXv0JEOzVTC;49rb% zcd%G{=03UqqKdPj+kkdw>^(ivX)`%8Y5$NS^G);Z!4+agmrS&9-PWqF&TYN*qUi1& z%yB7+1DVVa);X)=)>Tifs9KNfHZ&uoG>jGFaIsvKfOc~tGA#WDMu47|8Xtvqm>9;2 zs>eqZBx*?)KU?tZqiKMl7*#mM6-<)rC6mW@A|dg|x(h;P-+?7YFm=)glap~2rweTc z>(`&A{`?)26bch40fhP;@Npf7t|LgzK`#-42P1>dfS(lDNXe)IWd2ex$+F%jmIGFS zXCfa{#@bu?S=uw6h`jY;tZ#UScPI)@*W4L=o!)2i>2f(2e_f^nT;1-IX)=$#|Gai{$33C ztE}D;E>y}=anwkoO&))Rh+GzTU0t+hreC>^^&|M$T`x833b?x-J+!(PJJ`)=hJqy&8`=nm7NvCFuXr;H)RR5341zE_;j49ULW=W^~P zewyXK4+7*?e)o)}c19|7S5~#@hEnz|a;bY&(Ob;|MVeQOnw?nxqTfCfQZxNfdKSh@ zVjp>1uaFWL9kMEWI#+1cH}FA3UaS4vA?Hk%C3nvKdIJY`-6gMQ)wk#Cy|D4KyA}Re ziWU{)d}UQNS*t;)yS97}sepTS1RSpug_cBaBY7@g7w?Sv&u-eQvjePdvoHQ!#~G`2 zJnzE+5bv;WHz<=St%sYn7C!fqIA*N1?Lp_Yob3&TrtPK7PZr!MDQo)hva{X1(u}L{ zHT#JkAiA3b-d}OqsBenollfLc?-xDn-lp-^odApxa|{8BXDIg?zGt*Fs(!!QrijaX zG!L?XbvAZV6Q!WuJ`4|30<#zq?T-oJAkf1k@mU##Ca+X1#m%w=qNGHh_XmYXRNM5} zqXzi{GXa${6CMPJmyl-fa<{K~X613AKR3uS#h*kV*v6&<=;rcdf`TkZKOB z=c_{lY>IDSB&CVCzQ8i~l=idQxj1|f^kMbEhqggvg z!;rj}vll8YK1z(%dwn71#0PAunzYU|P%HFni)OQCE?}74C@`(h$mghv^US9uE2g2R(f_VqQ88}*owToph3U{un|rYRR}xr$8_ zFiib+h~}XE4lVDk1|mSD$Aw?e(k`jl^2S)%gY#djmE3-|4B%?TLSgjK;u9i1l!1a_ zfXM(ms_zaumI9N@8nOx6V~yjyc|GqL+lEallOqfMfN}fK(MB?_%;WWPL_1E#epq(# zs2JWwGBHeSZn{AT(|zgpuRua+O=2|uTn)B3`r}Iq$<^@A{|A<87N15@g2X`$txqg~ z!_abJfTCu2ka6~uY-er0TYck1i~0I_1C9FRdLewf{Gxz#ohqn0ZyS%Wx#-npOKf9~ zWGDhZDhD4y;lFcK7yJJ29Mu%fE^W2N_%wK$%YHz;OywiUA%kTs&jw9 zu5#p)uX~s@imVYFu$HcObBEWaQ||S0VeI?!=Ejo8+s4z%`Ge(4CU9zC@^T0~=?Hl> zfxxZtztU6P=Bkmf*c2C6Shfn$rY zedpw}XV$Vd$S`av{BZZ9Osgx6<;|zwz1?K@nw|^kx4>)xl0`EQ3>Q=)=Mdw2kxH}A zstqk^1GB~U!;rJY-3;DXE5ix!=IT;tdty~-6K6ZNH1O{ZjlY?x4ID>#`BYT@gP979 z$?oE8Zsfb<>RV@H>qBR!mozsKB-wGJh-P8L5y5q1H=YL?RVpZ%a39T3Avo$5tkSIO z7!tpqdgO*}CR|6nHMDvVm#yID-d#sn<;2H#!`DV+Sv+hco~xv}Bq@Y7-+7!Sb4ws% z=d*LN8oKgZ@ma;8)k#H-e6--2kP}CTD+snPDL$0KJ?TPsbaXwPcETcOonGF$8DG}^ z)Wlo3dL`v>FfjW56vN|VJY3#*h(9A5kdHP#9++dytJ56oWuklQXLPrcNYB0;2ovY) zk)Tce#0YDNbujVT@G&to4uDjU=3dBSm@P~_^&{{J=WuQT4ZEOizCSPQ=JxFL_H2){ zIcyR26vqs7F?JAz&A9uU#l*8yTziXjyIhN4HOJ%VN}4wtRPxBY>zwnXSkDZP6zcg2 z#Y2~SU)-5S;?;yo|DAY=|Y?5Vk#$A~3)QoMp$nFD54#36AQ zq6$61)BCbJ&Ot*2+2%uOmcxU}GDTP#D+nWdDt9WI-Hx&4sQK`6D)-8F&?MinBqFSs z(A~llj|a}JRM?m-5V+6eSDnjWqRDOOk1~!gux?*kQ~_>%y>1Yv(Xnb#7XIL^7$kQ4 zRnG@*{uE|hn`qRi_wP*`9r(*_`}}8lhwfgrXC#&<9pkWRsD8)eyn@&UZmF&x#xS%F zc%bh0CfqFjAzCNh%HeTWEejjgRi0&5{WR3aiZh{}Pj3>APfJ55*yZ;ZnkN_J0z8XO zUW-2sHdCd%oO;ci*Nc*cV2;^@`cccmBQd2e^am~XE0XNn10H)TdDjPjk>MA{^}(N@ ztuXftABrQBj2D;a~d zq;8v-x@bW1>Qbk9F2l1PB>rR#(BFhB-HeFIM0KXL7-N?Wq@C3_YDmJ*pfg_Nwr-c4 zaW1(^pl)m&L!S9akXrY+bPG9fa2!6qv30)?E)i#K#pH z@5gkQV^iU0uxqg2B@vR~q?&6g?a_McTFUW8x?ko$ze!WjH=BWa>{M9xVzm_c<0w}A z6W>QjlFm4axA1$FfOk7LX^|!Qz^#3+AF{A8#GUNK-hz*f`A{p3>p`rObOpu$bQWH9 zEmbv4A4y0^1M;kyam0%m4v5V5Q6^q;<(<@=GAPBzmSbUiGMD~U@fi0zql^XO9pg>m zS%cZ*{`t0xZ(zvrL5objF+qWhuyV5k&jvgA>r zqP`3a*F?R|+tn6MaHSEMq7*Rg9~K!STRb^o0n^Wx3RuG87t!htHzzye{iCO;9lO-m z0UFw`JF9fNlMhs#q_S1lrRi?dMVvI`??m%`E)2mum0Fm~*-a}&$Lfo=t5}g`pJq3u z2IP(Nq0{&LmLsg6D|xg!v~^Bic7auBZVe~)IgK~Ekd7~%7pr+jK~q^^6m_duP!wBI zt?~DVh}?yqS5-9Yqwf+t=Z(rkxNFzRQQjgQzS4X`46gY=Hy7%<(a_CBcq&uehFV*h`5$6*zXi3Z)qgzU@$))5%ah z!5)-gQ$3ZlK0ZPYS5}_r{DcXGgheO$QvI32B_>^AbG7<2tl+^{LM`3{uAf49qw@EC za&RMgtJH!|nu^X=HgT_?EUga^y5;Zn=}ak;U5JdAa{<5lCbp*8oTq2*f|XCmIXRq&Qk`&_ zn$?u0sMN|#lhG7h?OI`V6dz2@ut)7XWVQh-fzdQ=GgSFFEu^o&Woyr6kB^^w>UTi zDm%357nJzY_zh@?YQYWI-7Rkv@D0~j-TTluP3FaXqlRW7&0WjV1uRD6dv5d|oz3?n z$1kSy!+hp3aDnTn0d?*5%1=vF2XxwHB;y9OMVaFyNB5y&VW@$76b702hDHw0aaaRn z17r-jUs6>ZT=;E%j$_QFqNE|jN(_*Y{OLn) z>W>lF)1Vjro$w)-O-}>5`fGuWk%Q5|;YRXw<>^FtLfYYIIKEf92lg%Fwb{BqNgc&R z5o^<;Ic&Z+_M^8{Nm#I z>zmV??df@J>`yEO8IHY|ErYw~)$QRt-O-!aWy^MQ>2#LxwXtLwylx8{W;LAS674&^ z5JcU8NiG>;)v#bLhfq7|nJ6A9EQBCS&g*xxhn8>dM#7eu%lMj{HavCb%b0d+3*Hc~ ztNfZl=Tlw=&%nY~kz^5?y_JUN1?WxvCl_YM9TvwVLE;>`BKNkad!CT3<;^IwwO>q+ ztLj~17H-AwSEjsnPL{Ql5(r}S3sbSv)wqO$Q<jZZtDFm_aJc7*UQD zrGbxE`aazh1EAcq9Z4Gel+PIvv?ATU-$+#s{d(Vk!=qLIxlrz~-80W#jq8R4)4M_- zLH)d9{y*7fpM zhg*YC`+ zGlaf{Og_8A30(U7bsJcen=l^)Jc&{Rx~FbAtLrP~my+?y3z??i&#W^kL%t~6YStdz z!BS++o;!a*OLn)N!&Xa!D&c!smM%1S=W$(=kU}~X7UsRYrbv4IMS?l+QC5l`rmHK3 z6(LpQ8Vhk_G^fsG&#ZZS-6Syfq%kW~dE~{!@H$k%Ij9RDHP2nrKADb?bg3r27@4g@ zmz}-sS9RP-Lf!sm_9+D$%}h}2GU-b%dN!hH!JbL|l(Y&O4p6;(;mE!Lz6ueo?A>^(3}; z*{2-uq9?!LOcZsgmz#@;H^o%hEiyw5sIzjx`{~Ia1kS2&zZFo(<0ad_@>mT3*5k#jk%c zXMPS#J2=+P>0Z~)2@}eRpVPOCT7tz5gXIXO^jD}7Z;kufKdo}Tkbzge#hJcW%$a`O z-;uj72$PP!hM?{6V2k?BvM@q5ex)~Cy7RKQ?Dwik`ZVUcSfy#G{!x@F+XUt0@X#0n zpRq#@g;k?Tqm&Jf+&KV)p+_*vCEy7wIcVVF(D+4#kyo%8;sxP~v1<~97yJdG5Zh}Y zyy9vdH*!ini<)5=rZ5=s>Q!5dZiKji2|l^{U=qH4kRH4wO0i7VF_A752et6lEJ~4l z=Tjd=up)BdXPIJFnUIUYkDNN9g;+)8&KPUtQ=xJaknz>^cO4TrMbrjvS7HGY%T;)2 z8t!>u4D3W`LX^Qu$i;KG#ZtaM3$Y65`5{;9bBV;M{f3b8+GT3ktg{%xI@8RX zoh(pwya+#Ut`MNIyToF+#Bs@AjbeoXk(5lN@X1ex&Ih4}toqcY03r$cuYyD5@ZV;C z%`JW{|&r3wpPIOf06F*9<=S`#{$j zg*;fjn@18V3nY4B8Dyz(bMa{p3=`%p3?wn72CfI$^#6Ea7 zH;xCuRS^6m@BUhyrH>yLCxdMwWb+eZNaRW_V_x>FDs;cfr0hSN4|+?+QTUz){Sn?` zW!}VAlhq2QYE)ZX#n$ITvs4mbV-qsh)~OY#<|2*{Km8wT)NT3NZ7i2#(g;8B;rjf3 zlSQ+A4wu#=&>s1G1*YmA44$EeyY*y%F_u!Dgd?n<;}rmz8cS{YE0*D=N!o1osEv3DYNA|ffBU{@HYrWzz< z#I1Qa-d}2d_`4((^dSMTQ4_nS^`%zFXpG$q;UV;w(#0Fe!`HX{-u=Oc3E580f8Ul` znPy)UzX!IkNUYa$7mAO?U;Yv!uLwEiDKMie8Os_$C>g_z<&iTi2=6Ha_J0hygaV@52%jeS{^w9+gB8|;MV{vS zUxR#w&OhK>`S1Tg!aaxy{<$aRA_$yumJJk~@toeR{O_me#j?Z$;fA4j0gMvSWN^k@ zftiG#618AxuWuO1LxhhMX$8?-h!$qh0!=xC1a&1O)_Y#U#{_o)H;ga9rs5L5nV?=! zk62sAKAB%z1)pBRv9z~a*>SUL`P2OIep$Hx6->eEpdZaDr#^JM z6&*^IxD*p8MEUJJIy6cQG8*o0AUcUqD&QNMMNlj%J)&i6NjLc6|5cxCk1|wkgU^ss zfgZD455jL6)DHzggdQ_2S_Z@5wL=6+D1CI*KJBSS z@1nVGgH57zFP8Qadt-}9M>LIS_sO5Gn_X1vUTyp!Y8ow4pw#1B|3|o*vAYBNi)4{F`x~H4JED>Pnp7%4{|2%;sN6rMD)H5rL{MrPS)gkI zku-=TLB!$}Y~py2dAM1>c`$l5t_$K8Gi9%Nc=$!+~u?Vn!WpISue5c!m+}Xy-M;l`c1oYRH;_W`(66HV$<)RFcfsk zOS;%8;IQiODw6cmbq3L-&+}ufWsJurUdrB`fH~t~&NW+?z7R9jhoZy^8qJto9jqOY zsd^NcPw)_2y+s&q_wpVn5|hx{?r(QA4u1;P{qr#mY%IB%nhI66E(VcnO5HDOuK0)&VKy!#xHjM^eG=$PWKvEPS^dga5Md^K_{+221leq zwmuegT+$m&rNz*hHZ-1Pj66HwpxQ&~m?!JNHwD`4E$J3?&I9EYgc)h>#rESk24(R9 zUtr9g+<0olq)L`?B8|dSZLRG2j|@aNmZRk?W50hDR-vQ+Hv7knMyt<13B`?bYcW;( zTWQs5_xTHmK;`@kPY1RE`)i6f2l?w)(S7vCWHD2~z&A;&cm{kfk@Qq8K@hMOIXo?# zUR|A%mw_5}5)9FJd{*|gwm<;N$Xz`}_~Z~5V+Svfz7ivk;8!RQs4J{4V~|Wxk3dC4 z9(^d)N2>{uBWf}9WIcbyJSe&2ioS)^IiDd%?E_(=&(-xl1CY!hb0Biye25@_l}L5& zS(8H4emM-bpdV~OBXNXw#sl%;cH|Yoty$LZa>ahb9l~zC4sOba6H6JVlyyW88H6_- zzE#n`1n`3+W(?u_M2yUkka74dK&nCep#D`v1pPn!XZDX-ewzV381XZU&l1RY@ZZYF zJp5n4Gk`UV7wjG;d$L)>_Fs%J~6 zxfc;3mwZ;@FZv+|nJv+tJ))N<%OYc|op}MHBry4f`a?LZi@{6qKB7_q5hN@E3H{G5 z+@D>1VBoN2N1$+jH3X8Xml6=zvTYK2P*k;J21rk`^Q{r zg9VR@DW>kudGhbV4dT~{y)9mx8)~^)?^RA9O@rId|BCF;9l&m} zWYfQIvD!TRXT_ArKN*5b42@KFjQBy&G~1Ojwk(wvmRymO|s?QC47Pbm!;u3B-~Oh>8GrH`ssR?t@9C8imuv*3hQr)PhOB2DDU7Z~t` z8PA0q%3;EhsLf_t{dx?ZzZ`m0xG`fPD*wG?wmKbGSx|f!QM|Z)XwJ5Xh$Z$&@yn4i zBR`ujN2H+<{qbUMn0}Eo^V>>P!Y>2i`C=}m!V&EGBAI{_rT=3faX^TVfNtl@TT2FlDV6sV(j0qU`V9=PDZFaNRmaQ zBsyG-?#~*o_-cHfX6AdX3iAb7=5rb!o3Bj{AKSKs?pg2`FqA;bD~~7~&TV}a`ivq3 z`lJ{c&J)LTWXkk!sz+qSdsSGfa;n#E6XO6Gruo-}GJtaI*$ffDzztTrnmaXkzW87p zkXOgZYBRgN62hZSpeT-x74J@A_C{a+)SK2&F%TOKdvWHuU@7TprT}K(syGzP8AU06@yO z447m@b`5Sl)c$Cb?yaW=b$V%MY?#tHY9d0=(Su2YLN;+(XqzqJMxa{Oiy##jqSNep zY=jzXfx#EdQIPNqh3bDlx5Xa%jX)tIrVfLT1|( zQ4ILi@x69W<<1Loo11PyRU5xWcG*o=8~BgydcKx+2mIJ#RjFV#rc3A?M=f#ul9b1j z-V4t$+&@u@lxTgP2}Rt>La@5&-Ik(#^s)$S;Yh21$jQt0zEQn-f_(U=(i)ydL2MP( zmi8X;qzO@sVO3}z!!}DfZUps*tuToA@oVAS70+lNx*tH{IEnXfgkP-`JAxE~NPFg( zqGVeL@UMDj8g&8CZ~T@BH8B!Anf}R9BqGkA3p_JMxDhSAd6MSd;u$vQxz)#as7_lp z1_2Fkjgt?jnNm>GhxL;&)APx9qavHLZ0$E3A>D=1&*st!-mdKMPu^(`M`u6wp^rxo z%t2O>Q*|3(3@qiR#O?4BsQmUY05_-3m$W==?@b=BRvXHt7yHb$6`YBe35$&h7>)<< zAsyN5cFW=4|;L!ErEF1ht zb4TZ@OC?U1m|M@{Sff#tCU_CprB*UuCj5>Y8H>1;SexbJ3(58~d=X80co$Hsvp3io5oAdu^i*TZ!kIB7StcGRT99 zpXy(Uhwo`7$JTAG=aX5UxmI)A#N5N{qg!a0=|n}=iLc)qWDX+sI?qZaMqg?Vbj~TO z2R!lx5}~Z9n}gdd1-}V{8wXLZ$atD>6zgtDRRej_*e zmYB@$`QVhS+BtvDKtQ?jArTfRt`@Y6`=162jI|3HFF%~uwXDDn$S@r_2EQKmkLV6$ zUSfFXn0re+w?E=&zH8LnG(Hk%zS(+sKUlN?;?J_9WvH5P)*il0Vqn0!N5`hs+N(4i zr^VB;aetJ><#ZeydeWadr@LTzbJ8@P(tQ;yr$`$;%2h|&*uHB zbe5ULR#5^D3~axL2XA3*m*&=xihr!IQt@%y7T8Eo))IP5j_zsD-jcsXcKSX z&@EBm`v!^N`&>#Kax1wyxEi|g=By7}8?%KarW-enEA53o5B@;$c;2uFP_105=$uyI zzq@338NX~L#@2qBoTZCp?6{%cjXX4u;MVng^~g#b48{!={a}}mxtoAn(CL1?w@Yf+*8M z%^Mlj3g7wdw4xV~TBAiv73Lb#(9zjpxT^Xql4K{mS@7B1jpJ|6yMXB8rPQjmJKL}F z^zxDRISx4h`5KX8fiG*GaI?Ef=^lqpKf`SDGF>EkA5eXAcn_wL=Z(RV5rP zb5b>Q<(=dIzC!hpf*8_}sh*O!4~CuuzZ9S(|$o2j%Abdag+NE05C39KD@~ z5YnOL^&*eRo-R@Yd^(HwtG8?kvbWPL#d4=Cek1B^udDntuxu<^-FIc=MzPz30q}W3i?vhr<%*#ktw#$=VT!_owaL+BqlsEu^>D&bGauM(7S*~_T zrlwX&hiI|7P@Bvq(KCq1eh54vGy#gGJnfMs@*Ry8O?Rg{AWu7{@WNpP0}z>jMChPl z!{{)*J}CaOszxQ5!k(gocGx+Af3`_EY&_8#xK25`KlyGimWQ?*W3Qe^?T7PqJJ!c^ z7iIAaieYtDbfn3d0{_kq={6%fEr7V(&5^hq0(=HejOuf_PaW9I2nCk1o1^WyR;QQy z_RGV5EBxU*p79M^D*W87r#CbW)d#NrN!H zyVTLUtj08e<2cLp`Qb&cHam0zsnL|Rw00Yn4z|R(TXPDD=ka9w3yV&xjcN7S-aVOn z*F^66@x#k?XVN>vjpVv9xO);+Q3X~Fvzj>0{Js_r5~GsMYtsL>l=bG;op`6$6R=%g z`_1g7jFTpvgkoU?>0;r^FvLMztHe3=0;Pi<_fHc1`fQLxq?(J_m~1jo7US=5)Z3^+w7u1naX-8g=2d_HXu$M`~gpB9i4 zup;;@+JBXb-5HQS*W9r|vns#|JpQ?Aw~Fo4BEkFs;s`niDYrPS=Hb)AM_eM$`qzN* z2UCLa_co>S-=Y8B^g06Q_xlm0c8DNAAkdE))AP6KhxCdP6rVOQm7P@q+@_IR%zeVr zqSeh|@yqCZ zN5QLLTi%6fePF#4Xv&4+6`x#n-x2G2Xv)u_L~{IDKlmVhCB}Uv9C$O9esOS2iv_rT z7tPCwI3SGAcH99C5&p@lpbm4ll?|sj+SrN+tL#=ELB zm;$puHB2`}pMK`^C4i~J8BqMIm;&=+|C#+`)&S+a`cgyIeEO}7&cpu&tN`<3 zf8kFeJbz6Z%}_pn{ARGj|CoBnEG2cIYU;Rvt{S0CzSN#fI)aaF-$>{+sB{GD&K7+a zL3DB%+6IP>E*@VdoTxk}JY^QI9vMEuJ0MOmXJBjZqL_po_bmz6FS+r%^1)|2`8LK) zLNb$GaYf-wCa$`oFJgI=-&OE#JZRobXq8~^1N>C$0bW`4TY&99B0KV6uX}Oz$~5(( ziG+yjy98sqbX+Iy!UKF_tkKikrrErVx1(!V;n0>c)PPXIx44-VfE}NX2ZWIICFe)`5G}!RbDVc=S@NJ<5g156(L(hwm zdarQUpve+>>1rw*L-YUyXDkzED()v*!l6=OFF=A%v%FP^|EGG!))&w5o zUH;e@(1%?arYR#h=g;avffE;^?cFi^fI?DHs4cL#+(@HG$>l1i*Dqw#>+E&-R{@p+mBpN zb1F;OXHqbFS_xy@KO~-`+POQ`?hP7z9yhS!Hlq6VLulDs{-R~Wbx7DEc*=Kj*J

_#qO7qYD|ild9P3;zKM!=vMG1|pn8XD(3E11=Q&j5F!C2aYNHBZzANvl!uyu(*?v z7^PSs8_XXLg7z8d%ZwB6r)@U=Q3+A{LoX{RS_vo!RE{08?3@8BC$kYt#lU+xG>C<0=Oa0^jFT3SiuKaFK5QD|YMDGcC##4o0Z4S*pJ zWeR{XgcrdP3_=ybDaG>Or$OxxWRXKVWHrF)6(Fq1?{+3D$Oa@Zkm7YQS2Fe?X&BTi|cun_|5`B2y0J#DBWOZvdfA3NWCdPCDy44E)^& z$o-Pif$E!j0&-7jOhEKai4R+n&<-jLS+2A%Hnc*KlT?CU;YAHu_HrM@EH@NtmO7u6 zG=G(5rU(_(2A^Te{0giRna>apohJdT8taFLDdZlPDeBkssl0mx7KRP{qvkkJUFcf2 z9Xs0r$WsWDYv)eaW`E&AolYF)EnrE> zSKEHSC;vYr7y1Ng4_BP^G`KLEkmK;l0W2|iXW&g@c^*Dv^m|1AHc0=2{VBLZi>kA= z7yzWWl@o7v1OL8&;7}j6`IV5U-;>(+$}IR z5SwnDj>U-mUluy>BTHwoYWZ^|DIS;9^2*2b7P*~Mw@W>9Bn(_TcCT~+x^_>*m0;wtAD}?R8cia z7UI?7f5Gh%wH3t`&miF9f89a{45`BorQ!47M9xEylcy_B${*LVNY6f5>Ibn=ge z=ldr@{@4nOw#D%hLYZdY4YXY2RJeu0$w&zYTpJUkHQD7QNgy%B~3d0^rDtnN-SeycB68p-nR>rp$YpLj8G7MBPXFBL$^Z@#g5G)K^g&9L#*o67{Y= zR;T$T5zMyC7VZn8tDtHENX^#;s##k){R525fp&$FxlIX%L{fke%|GD~sNv%aNYvr} z2}?i?Pa!S%6XV}d3)Jv`3m*bC{2y+hhX2zYyA5b8J>-yLEd44_!~bp}|FSFM3xIY- zd;!p|h%W%z6&IZ1;*^!Br`kUgdHyeI0xMN5y8`qGPfi9{d1wl2C{Q6ESeZ<~IsmKR z*aOl7t9!D2F0nC9ij*L++|)iUud;6Kmb)>F=bjE!y!+Kt6?7M(k@ye22Q}(Wkd4ZG zlwU|NsVI-j@4o*T`{LX%BR3Mt!+1n|lJP|IpLPX6sMyXF<>aA#YGxbsir`yG!)rBQ z>h4v@l;tq@QozsSpb^af-R+qX7UEBM=HMf6(^GKJNmK|y5)gloK}%r@c^Wi3oUIjP z!c*y8=oN7H)0-Ov_tWd~^GxkbncOg3`Rca!65vYLo58N9@z;_5H}VufK-1=Iq92LQ{DWuwT~L(%3sn6OsGpxGpu7H`D$vcuOYyA|UFG~?j(Lag>&@o%z})z|*>1yaF1uqIlfx^p8b^Wq zPG|vb&nQktlL!n&+=im!NcX_W8nnSR2|KdEb%+r%N_wRMF-kgg^<&Q*YgT%GYCMA6 ziTM0WBV;Y##CQe1;>7q^d|9gLc5Bq^>;J;zs68n!Z zKkdRF?v|B7=)b!=>1P0WTFlNud|LFhd-|*0NMMfweOh$xMtWKVj=`tJnCWqp0Fvm{ zt0&yg#{%*qwJ6^mbnS^6Sp}#sY9nH$X^%~Ju%c`$vo_Dw0X=!yIj~Q-*;$~!;Zuvy z>k}@Eb1<=@ebAcLFEUl!O$=l3#%#zm&@T=c+=(P2pC(24#aOZ*Is5ErO&=P!65Y=2 z;Q~1!w=hDLNM!vvjXUiB=#3)WViHrDFiv5A3>u*nTzk+dG*Sh2#niy&Yx&?DQS;ll zAX+cq9Ju#MQbJ)blpg}cQ)aej)Qc`$YmG}C28N5?iZTx1HGy_xq527z3h1u zE#+ypq_Rlawz18dAGQ}=%i!a#?d;`N?*0{m#movSLQ;KGjRwJT?ZmR%NQRfos zNAzsE&e`np?sQEU9$N?=hJmEkZvyQ1!LReA@Fpb`4V>|jlwru*P&%5a5Mm9SGn4^L zjfZC>241x~Ag9ZhKu++j$T`^4;yte5IDe$zef&3swuv6Ws{PR~h_{}hO298U@p;D6 zf7tyr)`dqCxuahS3>L7ogVdTMQSW2fmFoOK?s%QF{5#iJuz5lKK_I|ljbP(IM8FU! z)hn!3n`)np=00B6cItGIhKZO?B;b~$9V(PJbaXtw<_1rif3RXK>9rQ)YKM!1g--q;bu&b=g%4(uE+@on+5H1=@h<_W@UQ%D{z?;2=74evms% z>W#1{3inRzzyynC@j9X8V2$r6@*r7oEVK|2jC*#H%XnR_d6h%_F>|D+XbBZF#U3iW zc4RG8*trdH!RP$uRA_|v#gU}by|Bi~p6oZmJ~}M}QA7_$@yBvN)0ua~=xGXcM_k6u zuO9(xwwwGN3F0=qZ$YEe**ew7{GgsGItN{imMhZp6SspPcpL_a4)a6t_M;bGz+#Ll ztNb-B2Pursd#=@noIBOAY0t z@nY+B&}ztaE%p23Mk}FO4u|EM(`Wq5@oDQfBGI;KAS{)u#!N+doo6qLB!#k~pA&RA z81rmmWIjaP9v5S?wKabmr;h%hvB*I%YJJp0s3D`e>eRuKE|%qo7;os|GRW4Gi33d8 zde0${^BC3WEN@QON20fbNk>@L&Vy25wJ_-!{F&z??ukI$UonPww!HV-`-Khpm-h>) zo?0YSMT~d#%PWMy`Di^^lrhU0 zHO6sT-mDb1I{RnV6Sjd(W$dja!~_@LA{TR$o_#dc1sMs^i@UvrQJe80ya1vo`~}^{ z?8A&~xs@OIJma1SRe)d6g!CshOrKthd=7{$e5fuA#lHjsPR~xVGEU6aFy4Z#&-L2y zY8YJN*GbPtW32^;c|6&AB%C)~dn%!sS4`()FK6e)E(Uh8p?y4N#pq*~@1hlF%nwDz zC{Ij%GokM09e}wj@&mA z!V{8#E6&_K4|@LRwWmrTla?LjI7eEZ3z1vqc$h&_(P_Q zJRzgK4wv`uYqxKe719}bOYgVZt*)YWm zv>Gc=+5^2k7Qzj17`E2Q6)?7+RWKZ3gLqM{I+2)BF8#6>U{6WNMHIelG%gjiUtv<> z@q`b8Sacv1u)75t_1#cN%>&UkX%MQVPV9HoRe zItAAfDm+_lN&xU9=syG?J=#b5nCrtJJkC*uk77|AZ$$bCv^m&AYHQThrriiSV=toV zkTyJhj`eL|wm?F`@gl%0s1hb)R?kQj9rPYA#gTc`d68z2&$%-9JfoY~rc7`d zeJ57k>h9ApyX70l})n$L>X0lQ9K7vcoC$u!uXt3 zP1A?jr*>Qrb(PocqTACq>%ff~I);+y$!<;BAdhj^n>ag}W z&H}>1_+@~9w?@3_+E^>OOw1;b&H&E=2l3nn7<-D#hqzN#^2NH8&me1K?X$1p%Ivy$ zQY6|fHh8EzNHe&*DxJr&j;#`C8SEi;%qi3?MfM`;5BGV^)tO4)<(jm~*YhX|TvDIr z1rUUKL@U_^h6UvTv3`2f4P?A4XhwtuD5$dI?~KKx!CIkN zOs=Cy)*?R>dR{>GpqT)EZhtkLyN_M=j398(4}||kbMI5>pBooHFvvdrQ0J7^HaG5x z=8WDlVSn;@Y3Za$*V7_bX+o?Ja9FlADUz5O`R`GZlNT$zKP%I_V+@>D9@s>ozgHO& zyCu=#`6B`NpWu&gUN?n(-bWv)Uiay^a2^y_opN)+ZN$M>M|?a6F=NDv0N-~5C_U>+ z*PJm{XTns6_L5P*(70hkr7FzKwCloPS9J-uT$Pyu4Yp+na*p*1MJd)xPRyBGiN{1U zpyS-!gw9?f6xFfTfZ|37J4AoOsDO<>7A+%vsL5N(sr5Y3Y@9|mOh@iQxx0Y3vy}li z$NEUJ;nW2W9AE8bt%HB64c8~@%2$AWDV>%+ci#n&SiZ=ST3x_Ggy{fN{G6V#Y_F$xo9j!@=cSCTUg)Q9?XQ zF$_o(^j8@#*xOIaP#ihR zmioG>f9^jpLw&7`+H@o?Ff@EH;IjyV=h)Rk4rG41cHoTsFobzl;!2qI)4AkV?3SB- z-leiBZ}@Xhsgd)YCdRr`yLkr--TP@|5jnn*s}HeHRN@WvQv<~&jSojDQib^}SIg~K z8q1=ZI}(}amJIpvsGH=wrJ=Wvan^$aOy)POV*uXv4f=Fz*p}Q9MBBEQ4o6Ob+x|wR zQO1OT9Cw56>9hcVWitm?QoY?@UE zc$5qaBZg`%n|Rf8AHC80WM}H4l`4J=GvXsAhkn@KXN?~_&+(vlcroFWGqsgb1FZqC z?@oVgV8hpM16H7mmHmYuxzcv4XvrjU*K<*71L3>b?Ag1%c6SfC#LiQCo&K1WHmPHA zC73-h`uH6YGE%FUL!awxa+TyDfD~uF#Xn7{_4$%PdikbY8N<}LRaxo^kh0QwwJnnA2Ah5ivTy<5=#j3;<1}ve&W9K_fAnjUljDBf6UYEvihQkR5$NpF+u)Kt)#0=o$k%459@|pc!v+jTn|4i=~@QO zT8w;rSPXRuC~gkZ)5WrNZ9HQpJfT?*cAXr`L(q>ga~rQ69;e40wD8~X5zkS*o~UnB zK`i$`9~kgBSe~#E&!>;&_vQQFRN?y?6R695rs^juRc7XwSIG~yKDq0$q@>{5Vnuw|S^A?4_z&REV9*wJ%h z;1vS#bPX8UTINSAOw&_mm?hXq`72vBv#;uXo%u>yDs1a+e|}?$nn7(`-qHbVBuIz` zcC@DP3GdBK9}Pft%2m|LEi~<)z~8ePJ98f*a|`nwww{YuhICOMAyfHs$;GQ#y0S_q zQ&($Um~&fwaB}LKgKc-LJ%aK@yx^vi!Ic5P_^cq@%FvpP;f0{CkCSg>Nlci@M zOm>FPy*qWG>`4vZJAKlOS8ke#$z9$1t;+7-hFiB! z4B<-HGpUXUm?$}Gy%u}A8(W6nM;ycdey`-RR&sZ-yLfR`=4fu$#_L)AkUxT=@kVe^ z9sW$doUmJYs?Fd_bnGA2Qt6SmkX?J#GwQUPr`)CUMy6cQ&YNyd3XpzEzngel-!;0+ zYQi%uB5pNH71OP?!q%xxdb-aw=CSqBK8tuX`}mmqO{e%a*ZJ*nwT2oA7(AmCY%jhh zHodvyehiG!AV3WGHe3P2+VHmrra(!Pc&#Ccn>~51KKb!>I%J$!6Yy^Mcs~~+*U|cB z)bY9EdieNSwS4C%ERJ(Ll|c|mrJq2_T`e};`b6=uVF4WL5B={1C!914qAj;{4XG8L z`@0AA*NkvC*^cc;d>nfxl_9teA;_NxhZ$cOZudlwV{pS>66M_o+$TNQ2tOBAznK>o zLB(}N%ng(P4ocrAT(Kvkh~6mJIBK>)=qPwG4YXWd^Z8GFE*U&3bC;J7ND*rEpa^&> zLlWM0Y)JjCf3-h(5ia@q91fT28zFlw6U*J$ImUV6ZX);Gr>1MnA={}WXMr5-yF&FY zkMaH3mSqciC%Ug;cP)e6=swG!nhy7jEeQjdxXK$!f-%Llz!CT%>Mpu50ydEE)OHr}R?l3*OVpOKk9{csMt)o||RaA8346mUS8cd#*pP6l;>jwQ8D@s`7i*a5#f)Bey!0IN#Z>MK};O z612sWT+T6muxm<9IggDE<`tpVi>A1;iWuE(*;aE_#SUtzk0-0&{z&8sD6|y3Uw8gu ztvT+SqJ5vd^E0Dh*oFP0rd5H0G5Y3|#SGmByG%ftH7O& z;~hu|dz!1bM#SPSpS1Ty2TlX0l4XkMM4wkp%h1^H5gAOGHpOr_eS* zgrje=iQx3jHN+;tulKwgye~#ZnF#e@jGP*beyGS^AYLGH&=;T=ppkAHfqDCZ>mkB~ zl}e!Q4_#^iWO@jCyIOjXz&3V#uc?|TTDun>F%NezrgwAp{PN*}d@cG~j}L0l-`{e0 zUg40Szj8G`8#>;(ZFx$tT8dR&<4ei%vI-c7` zx4URXRUR>9sP=Bg2)bQgNpOBACpgB~W_X7w2d{Q#x_DwbBj^yddM$1uk~b@4PmeF2 z^+H~BWe^1NEaL1kRay2ehwsJ!#0qs?YdQdj*~H^VRLIyj1v-^r=e&3ipHVmV*gim_ z4HSIBJy$Y}=OzSaH2a)c)lY%Q*@r}yXelNdDqzSgx?cqm;O^h9-%06=O4cs!ReI#) z2iCPf(VqH497j`gG;9yqltK*8}{)u=F8qK z67Kj!^mdYAtJ_~usP^6T>FqPw9fxKK6(mJHW#1D9nF4TU6W;8uNqG_kQI-*VlU}rO zmidBIjh@F&h_YOc1;IzV9INz#Bv{~WmC&Zx`_$?w^L|8mVNw4u0D)z%ThQnO`nQy^thkYE1@^&2%*{OWz( z?kn_d1fq|aj$V@xW8so}9MGVo5`=TvvdxK$^UmeQ6|CgcT`^;ROpTM_|OxfR;7B*7$NS>bQi*Di)kOLfXd)NA(xJq_@G`)S(8O^MAWe)$k zji7accHp$4q@d^98=a7>WX~Q2on9nv|Ng`F{07vl#bM@r411I4E2TCtLkczv?V1ES z(}lU=`04gm)UxhUapf}vo!}VkFWm8)X75sm>dmOUZ3EwNtrK^mkxajj{vYYaGUYE< zhAxF@d4JVmL!?k=%w}-Bsx>ft=Gwv*`T#e#qX*LkNZj}Ho zmOlb~FQ0f;no^u#J^-Ual@rqwNtpR4DJTg%6os;59RfRDo9dT`tBZEEekXlIp_H9` zzVAGCISL0WDwW3}OO}+RG!fY-vw6FEYyIYOYZWp{cNOZM&n3RQn!lA<1cO*Ix8N$Y zZ46oTSy~ncF=b!bCE*xxZsWuILQA?+mrOu9FDOSz?xuXHq`7L?VE4RHlhk4S#BP6{ z#0hR?+99p(DC6Q!N4B}Hy$(hl-HyemZKu(`m|=UQyE9HMPFcI}R2!Vz>O_)|1CrQW zA?le4mJHOY%p~n1jIeMHs&gjSMT43WedL*-6-^Va*Z-zZ}B~M*>JwEB+1&SY(M_4>Z5Er3asi=p;0AHp!3tn7CfQ6 zex44jiKivyb^7Nrg5$O?&s-6AruHjIWRvxJRiKNR9_NRXF%>>^O82i8HZSHxidP4(fZ)OlT@1bE_=n~ z#(97yXVIf(KGbKwI8B%2UM}7N#Jgo`%c7wH@TkAjRJK$31yrMLJ+Ij9%!}$r`QX#E z#2#sZStAk#7wg=Hhoxg%liVO`)7sM& z(QqNp8QCzZJ$BfXWVA60uDW+>T|>_a+Utj9l~}rOBj5v zs`5lPNwy@6>svYGlMbEXUVS4sukL8H=i1O3#1E+Y-hxGD=zJ=Ec7@yOA)3h1Y25U{ zgCnT{wypH#4d&LpY&Y()WFsFp4Opa`6ln7yNqr0O7CVO)9BF5drCc#p27BLw>#;h5 zw2pN5lOF!2n zH#oP`{IayeJzW&+pcLk_apRIiaqZwLdiH-R zUnzN2fuBaobMkFc@?R$s-5&ZYVTn92e6kM$EnYQC9ttyo$dxds04caoi`ezbqOXlS zi7}xguy@z49=3b8YF2UjvKL|2ZRHU9qXy7SI#^`vFiQosYIaWcnQHh6aMS-kq`d`H z9ZjMYVSf9_j#KOUd|DBXdKQ9_~9@R+X~4kOG&RizZI(@isU@EX4R(7x4Y zzqm6Wz!i;FBt*bH61Q3+;#QrH9vFd%G^cOl*Y8;L$%`bAP!fvI8CkL=H0{%>1GTiM z=TIXVJoP6JKj+%*4~Eg62Qc7+A5?#ZIKEAp&3vzRiQvC6PF=YrG%lZZ;e86p5A3AS zvRGKBo;J~Oo;_KNjePQL_7K}1TmP*$-EN_6qOinE)b?3Ise(bZ!a>4Xy8&NN<`w;nbyTU_= zF|Y~#YSWAL_f?pl09T;QuBEqGT1yA9hx!M+zn zwd_n&S~m5|<-3g)2vvZB5L1SVyf}yem9eqJD)K2;%ODQO&g@V-UQew{wLqOfvX}sb zVv@fCu-@d0XznNF5k(Fa7+eke|ltTp>OX72vWCA1-n_Rjtppr_NIy z2Ou#mXEHwom7kPgc5iT*1^BY~fq-scg0~$#G@{*`0qZ;Lc5(;s!yre0*Y)<^ zl*q5s)nQG&8ESD!2h+@JZH{X*52Uj@v9B}4|B8sH=KB>}51Zdu4;PsrS+ojw$fXMU z$oomt&{KZ;kg4UHt5*^ukSZkoltnwlK|oFWAEWzF?Ko{xAQ+vcZtyj2%zLWY^LU`vQcAY_lJE63n&He zbKtdQO>*iT|64{Fj&&`LKef^eM|37v1`p@Qw8A;RZB5FxSV{w*t&Dir;}=>h-tYqY zRSN)u33R1^f4GhNXb`8-I$r+Q&K!Xu!3+~!B5Pt`@a5V>*OVjDMz--v$={5c_1={v zjT!CGTV;zS<9-27h(uxmZ552K?Stn91H;`FxNzccrOfWn? zmlIQCX{gmFQ&;u0@sOAlPjQs}xBWL0RG*mWZ7s#^<-g)tJkO7w-hMtWJz1*B;q!c1 zetIOR`uSC7-b5Bn%7!ep3cd0}opWFSuNZ=btPt9e1WHRbyildrW3KxED6yuRC+<&T zjW#pd$z%t`N$AD$gWugqqp87&9s2`OhzSwKgZ7qZQ3z<0z)j0=){M4xLn$b;CR_Oy z;8InLw$YH*+-Y0anl+KjQQ$be-Lu}!kxjiCUraEhDFghynhteG8X#0r9qKTXi zwtZW?WuC1yD7WUO=l`5rQvoz7z9qCZ)&3!ZhCPu;rtwTqyK3ABrVrldeX zV`=k!;c{81`RwUoX3%Uf)kVBv!b7vzI_NbrYRqbnXMU3Mp`ty*@hwi6sFbSzMB5hQ z#^tyPG`U{Derh(J{lr;j$p0y|X0YV{HnrxX!dngOD|H_^a6mSJXhPi;Xvqh}d;1<} zRv6Mb?Yd<0Q(Ewp8uPvQ%}HCF>ukk^H+Da^uw#qa~zAp z#)nyZ?fMgorOrvu%fXz5tLQE#He5IDoOj<;9jriQ#QO>qPCzdaaFkj?eli&OvV}WM z%vcmf(BP8c+@@DRC;4;i?nt%WX-54JY8V-EJk7B zPJWEGR1y4=KMV#e@SN`L<3m83^Z6d~l6U9=!S5`>`Y?Af`C{%3%B6|g(OtenTC8BK z;JOC(YwvEpUBPVZXi#O2RD$tl|LIQH@8yh$t?Om|#zz{-eY-@}dH|x;`jX-_IawuI zx6k|T$Xt&keD4OaQfUA&%6#(~--= z!sj00`(PYRJf`vI#G;boJ4YG?!WK;5+gPpB5F%4)M#rX(rVfWb`f;^b9&Klnv8}5 z1MRn)%QrEv~T&H8$$!1y75zWu@6Gxg*9j_LR@{MN({ z>^amZQA*^O#APrlkr|u$E_n^RiJzg5aC0$!(DU?4TJlLQTKE0$s1j785R$-zp#Gvr zJ+FQ_^i(ZLQa+F!zDyi~_)T4&qmZ6q$4p--cM4T+9g1`=AZ}JU9K}Lb2V`U z!)`N5?J`Kiduu-YIs5Z-j)if zuF)#vM>9d21W}JZ@|jS|j|S==ffqzxst#{N8CxWf4DpY!=!%Q*A1V+P<{vv=iiW@4 zGon2IIBIl82K!@(Nb~f|NjNJdwHx-x?DugbBXiQlH}!xSSHwXIPMQv}X7i5VAAU=} zS#pP_hq7i)s!kUzvVfV@D7EdoUiyE|DRfIm`lr8#BP3C!;odiIM z;>|X-%M?=M)P1Tv;JxD`g~A!Tyv0$iB|qT(7ca!&&-Ro{_PhWDIwJ$Pr967#Y@^v; zpB3xll6@ox`}cXTF{-f7{{`;1&*>NnG)Xm)2a=YgVe|nMWAT?rU8^EHrK zQ%F)UERsuyl?T;OTwq*aj@Gb#pM?ZO(xJKXBB}HtassM(U)`X!f&If<+1go=KtuN2 z;FDXqvxRS@d19$2{J z-9BzUS65m0b6Xvt2cXiSEIIL|T+`mlyW#sZ)F91W5;nMewa-LF^4E+R_kOI%i#%#K zzn*uh4w$76}kJS-M{lJlTG%fJkg}5dRUp z2*qGPgtS)M4SrM5{|MDrY?%L{s<=h?W9KDr^0zxX?&BXv&LFnKKZdw!fZt9mXWN*4 zr$8*0Aa-5@ne7IG{;6C(#XvI^h#YG~RjO_9Imu7bOnE_s-s6V7@qmEYpONeNSLct| z8^Mp*=?uUA{r|>+4)+Ia=C(c;2M!?*zxokU;t#}Z0ue;%>`|#1XpBi*a5877!wit$ zmni9q;i-_MN@9nc!hL1^{=!_PL?mHmIcjMq4jw}n6BZ+Wgdw_*#K^nn;JXzyDiuP; zg;p7?ZfU@0Dt6mV>7>z#0}`D0%>%h+pVpPS&v3a){~%qNO7S;UE~dOXiITsF18RE_ zJ!Y`Rp)HkCF&R_<%3Cpp_q+`6d-dJ~)LCU6B^WSVWO)=zmS7IQ1LrW2-~h2`Z{sdu ztGxZiqOCdSpgWJFcP&?!?#;$q?q#Vxwa3+w|26yLO_!f)y7p!dI8D`hF<3IF)DMW8 zR*w=ycbg3HkANRK15N`~iw@$rmHJn(?1=gg)vU!c#2-6+5UKI+?z0nOe19BifH-ph zsGu>uemNOT|CRryXYOPI^P3`9?a8b|tf$pS%{8hP6dAy3(SP&f3gfznl{8oXN@j6r z6YIHPsuNfO)7~qaVa50RnkpMf^egu*37j^Ou1}q!57H8&S$asH#Gyqqh10bP$Xi1M zKp485T|^=QAmbuGf5;>Fi`P)0ZaqO1+)NlcrO#V9)`5p)WAWW*Y=CwKZ?%U@+!fbj zm>1lCI;RSCql>ycvtf?D$y1KE+zpXPCf#y^X7g&F){tv0)rR5Nu~&-$6RUYaDdh6) z@O+%}dD-i@%<<;k$U-7)BW2xQod)-{6oySigUFLLPn6)7lRC00 zZpa^JR1-+9&Y-6e50LTUEm70FpDuKcAVh)MyZ8~DAp;?dk6gud`|A(Yf{Hl5bKiLR z_7wXc-WGvAnGf>e?KUXXq-N#0dk(#={;`o6HLVj%W8VuqERIO{@>yk-i-j;b@G+e_ zLoIyF7?__CWaGkn9&CO^+P1=|GB6EHm4|g2m9yh-FNF z-=9Q)-C8EEzU+7;8ALsZEL9delms7IC{OhVh}21x@2SGw zag2L+5wMQc1fBX*vGOoSCdOh*W9g;^siw5bbfm);EZJm<{mVNk>SoH&qSmC(gvtJD z@CG3HUjcNJ-bo44K-HlSeEvt61>L0oP&I0F`~I;5-K0Og96>kfkE6v4@IR_X&`tW~ zq>jv(ls-UBBWp#FrfMLaFqsdh21VXYjj;BrBKQg?9d?`5cc~PyhOyDk)Y1L4tx4mE zuf+1r866seBO-`88|OE5_Q?Q6zJ?LLJl?cFP&81UT4*a!i`2$0N$lDxd(aq3_tbld zI`o-NRzebq`p(CK=T7QBh73%EP+Om}r|&0*%$LQ#OLVDStvDJZ}sMcMBbV z`V0QzHSh8WhGY_?C|t|Bu-V+Pd=Sm{>07HO@4TjLM-XqeywFn!=^LCuOU1>{fkLnX zuwXTar1Fw*%M>PItl=bN`tjJ?O-KAwJ(fNX4{Hq-33fhb(DMwPFJYZrZlG+Hn-Rpc zCghDIk}SX;Hp|lrd^He1g&XmkDmm@F`BMsR%gIzR&*ch?L-9SrrTP%Q`GqO*nv;xH z`&6b^jckV^J+Q^?lc@~yEOYB==V_Ux_syo4s)FuemU@%=w`{BVxFoad$`!KSjqk)I z`<&-ayt^b*qeZZ#_cE9@qPOz`85BQvw++@$s~-)$Q_%dl{|G>VNF;Bzhm~#9fE>hs z1noU*n*UI#o?`v61LltZ?QY9<{m0SSDlga{L-yL^-%b__olJdmw2M}Hr$DUN+ot^C zIeDo>i4X1$-p~=|nFA^m`bwD;vTovy;jnwb!1dKX1BR+c>;yT)8)lZ<|LwdXavAL4 z6v9NHQhWa%+Z1kRROFg*-1o^TJfiILRsSsI#*h;{hwe1xA0VD4nla(DUvcrs<_WRP z)x+{%NZ~)`nTW_6D>arWsjFdl690(mVZZKShuDJkEU0HimkYOTbh$|To~7|Y_)U)@ zX|G}vXMk;Hzb>O=c?YqL%#@dcrSCWX!S59tCkp49r|$SmI~Yy3Z`1A(X==~r1)<-o z9k4;YrD2D|W?<;)0fU5m`}QB<40O5Qzt_|A^#g~7{zp&&UGD!-f!L`3*qwnc_n%(Y zY}eqw9o2#^_a7B&?J?vpCyT%80`&BhGjr?dC8?n?)P53XqqsfL7i1Hki$z2lfhNTD zwF0XL9~nA(8zsp0)c>FchnvVO8v%N6&_NZf#%|jc5vfBAbaFbx>{T%Tv_bwO?14`1m;Eo}-;REJ0iE1` zsFY5z{`lMjo!p=9R$A+@f28?S@IQ?Opm_DmZ|$#m1zDqzwc@u_I*{ID$%9$bTbAD| zxWoG5y1=4C9Q*r2aCHpLK;=~ci%ynJlU}k*u*=$Hn8!G|phSL9V(v8NT$qAL(+E#4 zQ!W%-D%G|+No1?qSei^BQTj0`VjW0)1#8*5r84j#Yyu!t-?`w%Jmb_6{KadiK{sw- z2jQKin9{L>en2d-R zh1N?yRx{V0AOtVEFN$sm3D|#|7liYppXdUUr+H<$PGx96=RJB@vw>LDfwlIn+m|p&xKdh1cU(M zzaUUJR`sKSea<8CgMDTIK%!QNUt(ylo%s4%+R1ZmPZgi6hCfV$PlM-z29W}=uD8=o z{GLD0LDZWq{LYXTsXDI%I$1nEb=PkD!Q-nT7n1R^PgjxH&sIT;UdUrv!TS{n$v~Fp zF~oI%sbc2+SperOFsK>O-&$1s|1i7UzHXx&*lo+T@`nPc$@GTkN557X}uBc@=$Ttku= z722+Y(#+e&Eceha9mZl4(gMHKE%$H?mCN(pgcRxo7F}5hp>Tys>0wCJ)MBows`cmT zhMNj!!6|57T!7Vd!@mOZz;Ui=KsKT~+wsc30_*0G|9@9GH+h5qu|pm``_t>rgqYxu zqv{RFKPqR)2)B4p3iH=0wG0X+$UOwzsrK2H8 zmN)-!i#Un(&%ki*-+`f0nJ2=zx+JN61T%v1Hty~xGRzFBq#y+sTIKbFbw6Vy;qqk< zGkZ4u92aus_m(K%J}MI`TO?4i?_F&J8yal*nKoGbeQL^bidgQXGbwsgfplmySv^kQl@2J>WtY+OMpn{ICmR7GPc@1G4Hvle|NNBe$#((9O ztUJl?dP&Ep?`lhLey9i(*6Us6wFN8B-%g7-x&74y+|Pp zF8fJD$jL|{h<^OHFCi_cw+4pw{X3E1_q|GeaL6rk_c|IB8sg#z{~}^S zk#;>_vvJC!uW+7ZyDpza2M++Gq}^w)awMG1ztTdG`Smx{BJwywI}V{(L(09OcK;r0 zR?ryci9JZQ%lM7yfc_|@ef4Q$(EHroQ!NIg8dolO`t5&@)co2*KdOhl`%rO1MSwy< zc6v++*qflqWROwg;y3*!1n{Bfes|a}8;;*0ZWVChKl-l9Q-D+WwOI&vC;7+{6zFC( zR%c?=$m$q*H*qNh=iYeRM^Z|>hA1vyn3NHl{S`7tS>VxFRSsY_QGS5 zWv^n+N_Q?1El!^?59Ftrn6uWp+1`O+LH>)WJTv_I#<`xhLkVKBvk(xy0zA9Nz2*%= z{-eG*{%p%3$~4b^AtcYOkj6dj0C%hvK2j#tL`)P&>-Oe;K~N$)Lp4eYKXFpv`X77< z-&YXLWM+rVVj`@=)IW0|yVJaG5f#8s-Zy`ujOj~eiRBSL4cetFa}^nPLysF!7k)z~ zqH&2Pb&6;fN5$ZW;K&&9J}k&+*0v*mIEZp7ZbH}xHHgL8U+m4QhPi8@r?9^W^sEKD zf%4;Y4*Pa9(sPz-RET%fbj)A)NH25@(2oPf4KPn*gSg-WLPLPcGkgBYxj%CQdyaLS zD>x8GkX$?vG`a|^$le4e{IHxv-P;#g-0hIaOr08weAm04v_L>4mO!Ch{f>wV0VOWX z(-0ChSaAEL+tdD|0oSw?RH%oGa10!>L(ggl{Z>grE`=I8p3AWM)0}y2_6eUmJDq5K z^PVKo^Od}Lad1VQE(5P7TxIE1u$z69LFj2zkICZGGskoMllNxVHF<)*%k$B*{!v?k zj@ehdsqtI~HUfx(20Nc0wStELYB5)7qK^ToD-4O8>;pPO8i&;sPaUChuT73!9@^|X zrMwJ#8I5HP-^@6O&$5CNbk>_pm+qV$zfM1#SY^|-m~P0nJT#v3StIrXg?nDGoyhB~ z$@^cdf$qyWZ@D^8GqcVTWS2JEb4JWr(*PI2FUxN)e9qfgS^8@(3L6%O`opxj3!5)q z=F=0_zO?Osrc&(!nr@17pmVqRF@0#htny?y`g-_t7JF;nbfVp3X+!hIisg8DM!l_L z!EkvOjb_bNFGRw}RWl^0wS27S#3}0<(>AWmc#eN6-)0yt5Pm{^{d+xP$l``p^pMl? zm$21FP;tZeSnmDRRqK&Zh?gVrpFbp#ULt%gSCM(WQeg?`otKXg37nZAkzk^y_S#(TNZeIdugdF|kG%hum4${Q}v>^T9GzC@Waqy7T!e$fbTYUv%3 z7M)6dJS~x z_n}NXXy2j%qE#@%gXhay*v5?R`1B&cHTTCGW8Q`Zi1+ix8+j*=!+6|W7_{y#a>?Gu zZ@1cIw_H_Bf6;>i6aI8R8*X8wT=RJ&lc zh}YB>P|jv#Q!$3w!Dzm;>cnUN@l4!`(+7Jso0qQgK)<~3lfhU!cl%CZGR&)0Gqa~B zb0e8eiA1<^MnlVqbVfAvp;QeoP@h&P3nQ@LH7U3e zY2P~jc7TiWO+4UHthE(g^9VOemo?p%L^Ck}7B&H`Ox3mLMYKXj-ryro`xEp(Y;!+=)Y@kFU$ohAHSF^Z2h-J(!K z>&dAIN8fV%dFwus%1~IhY`Ub+!v2k$U_rNw>a~AglVffj_L?X?UuHL_kK2ixYQ#$; zf4ezn8<)A)QK!4l)!Gx*rtYi#%L~sQjOyg!#VJ9D59y!B3E(BEnrw$=NMLpFOe^;j z31d+VcXf#K?e&s<%5_Y+6}#NdX?|441|ZZZKR?y7*`8c|GKbsP;uVAX=2xGm{EL6FKLRe*XHkaABk5Lm2mT8)+DjtT-?!<`b2H!Ws2Pq6=nqQJ(K?crpH9 zSI4e5N;lAeogw0eMU$QH-!Q0G5!`5VO#!#Vf=9s1tqE*fdSK^O?bi9~PIsiuldiqW z^zlXM86(rOI~=0FFa9#>DovGAGelW!ApRvPPU--xlr-vq7>+-wqcxnd2s%xkU{Aa+ z9Di;4kV^PEDd50}#kt?Lr6YKf?7;?0;hc=;cI7allxP%d5zA&KaR3p^#Bm@Asi-Lu z=Ojf}L!3tq8y9sME`aX} zD)}@mLbc6QJR5{{2oc5BTlSTV@1P6T%0Pz1_3)-^Yl48xbb*{UUt=H8zecd-^)NPg z;Cwr2=bFxYai~1y&m2zi0?23@R(j*7hFe-VAFm{(hI)@{4>*7H_Gk*!z`c|^@fXU(iPeOJM~51Xt*$DwZhNlL-D^M;dib9a~T&6BwXGconuE zN%HwhFUO{n)oF|yL9$~y3Ia1dbd4~4J%3Vyf(JVy(+rd}nMki)rb!sKl8H+r+T}~Ui z-4^pMf;~Abt?uONykk3AvuxZ)00g~H;NJ?@I=R<&kz2jB+8|oKC4T0dBgXP6KZ$D~ z2Y0E_Nbx@MYOND)x9B1G;?fn=p%#o(J%&K!D3bc6jt7<~=LfGB?L}a)V<$IF-psM3 z-H=8k6)Ylb)H4PsuNjg`Ts)0U|MwN87u_d-o_Mtqp)Og1gguo;*VDMec5?#Js|LUjN5@X^c4J;CMu(t(I z@NN`?0foV_;P7igY&tN4QyZ>L|?Kjj=}Yz5>ToZ=;mjbUOK zFmEqzpFWs4rD=s@lw37$8txMYK${dk{u+azUG zq4i3R+_y9{j9pkQS5u^+#>v;QgvTI((%>mpEm>un@ zf#^4E_4E&#?JG;I%h=|{%7-SCyi){Ou5IGkTA#+&QrZtr+%J}lhd z&$<=R=++kqCsdv|mC8JnfaY{_TdAVXj+~+D(%w4Jp4@hZlyH~74Q!lKB}b^#JXF|X zuz))H;r-*qnq_!vu3*0mg-QZNo^}!LhSP;vo$4b2rr_z&rnOhIqo1bP>UK3vD|OGE zLFrn{`}lXl|DYXJSXAg(A0?6AS4FM_Ge*Au5fe2av$SJJHQQFg{;Iuo^Y5@bZR2R)pjrINjUiBn#ey za{ao@EX+d6u;s1RaqYNS(t9d6<6uS`)+QD#*KdyB^s`c)VR243M;|+@#J7|xH*LqO7Gl!){c*qs%_!QjfjJlWp)%6zoOGq zk_58(2b?m|mKKc2XY41tzR-AuV`f8C7gOPl*FvU7&&ebvs`{aOQE6hFGI)PDbFNg1 zXgz-rK2xQRkC1-Ckwm9|6Biu(CRsj7Ef1nD&D}i@z^3=ztCPgh468=YA!|nd*0%o|R zd{<4Van~OQue3}9;@kQT{US%Nm zyo`z;Y*%=9)f#Odfp20=}k#)$E13;f2Zdsi_Yp?XtjKwLQMnmr2M2SVG=6zY|Ytu|o&O8+TjbJ95te z-cEE`tIW$dPf9AGs7b;mbSbc@XvC?F1lnhibjiobIzBc}wC-60p#X{n2o#oZVOVd5 z+kI!{DNccQBxu-*TLNMHfyJ(l#<+RLWK#txtMr0ECNHmjzGZ11#ky+|TwfESu^ylKboF3V?bS zT8g8jkJVUE49%lfqWIXK!Pih59kMDC3d6uua1#_#YRkq`$;f|{0W>>B+f zcNy|Qh3xs8&BR+Vlo(!f%d6?zqlVB{cGKrE!{X%no^PIE3dL`q-got-9lWR(o&Ax7b|{Ncu^Tzn{#3J)hgZ6^&_-v+*ITxoRSo<9|F4A7N2 zYG1NLi(Z9f?vlvh%7_d$-S9SQGucq>Ub)J$EyL6GMk|1$uvmGUM_Ig@jXD;$v2_@-Icpj3dGM{ZObiUXoctoQCatfa_99-otjl^`f#OWQ z%e~P_$mEYs%cUB4nP1Fg428KJbW%uU%|jbY^~tHL49_>?6P1MyyguFXd8F(Xo>+H< zO6RlL4fk%!xJ=Cp#t56Kjh5$J1g-C!Nxo)w!&^_`V=Z1YD9;kt9c*N6eEB>U;PZ72 zo39I71Fae6*}K`o0h2w;d~T-4^Q6g?zf!cc!T$@On+b4c-=*;6+t6wMag4sZd7Ld? z3$0voT8VZ~D1kzTjfn?Pq#`Dk8A})@PJ`AZ`c*-eY;bW!EGL~7T)b|b0-R%Wo=~qf zuCq<~t{i}X>L`R`*-wlDlPOB`_Kw9vxwVO2{%7v-dJZ2eo}9R^t9|1YiHkr%p_L$V zQe~(}CuZ!u+Z^iwnFnR`v7(wlhRmy+-#i65_a+p&fCcQeb?SUjdv&WFy=OJXtuVQp zS7(X47HG3ti&O&7Tbf%?B^8c5oSl8Meu)d;V0>K$fudn0xgYOZFA)0+=S> zm!=t*eZ{vFwU(d8N5G-c-%o2B3W%cM5Gf2%;lqy_6gB<0$AuhiltY4td|CogM->PV z;p18JjN(nd14MY4Kqxm_|IiSi_p`#ihvD8d3vOMR4D?Z>HY<=@rZh*9jlr&EP8T_W z@DpvV7gbls4QH5P%2gopgy@mQ-stT1#iJ}*CDjdi^1k)VnkOq@uBX%*7RPU+tcCzR zqURvK;Pp6xErDy5#C_-dC0&6ntrU@hgEYgCS}?y_kw(9O<$_^BT7p;4wOo{vZGu-T zhQNdWX_VAJ{ep-5$H__+?Jqm>)4}`XG_k-h8Wv;D*iU)yh!|HHgmwksdR?UH5Ar$U|+I`>AHx>u7%6uNl@zOS9*(~Fvw;YG#Zl(X_pN`U$Tj-cwh!e9k1>*~1!qopTjb_6=7;SIWz^nDZ~M)F^L^{J#43nkt$VGusPGQ_`zO+k5Fue{!DIAI{L(SpIQyUNZUaeC*% z%`9tUL4i?#34nvagUN&WLV%%zt})nuS0y_CT1or=ZinzCR{`rOvS+LxxMPv724B)Bm z*())_mZW)tJ-mPJ?5xpkF>V_hC`uUReAy7)k|Qo-fcBL57(dE8%7r5ra^R#es=&26 zR`h}Mob{&$UxafuJNKA>nk~uw=#|3f+u_&9h$Bg9Ts1VNEtCQTnE;ykP=bhFq4J4rW!-y+>@V@>rv_J_RbJbdo~DH`U78o{RyD4#c59Kkt~0+E5s!yl;qp~DB_V3Tr0>ehEx+|D`RE-+npBA|7D9MVCr z!A#i92`Zw!kpW@C3o$+7d}^-L+y^Chzmm$s`TN4oHe{XcHbrjnR+}ytiQub zq52f=CUnSyAPQ}?5+zJdn;aW)S^v|XE5?bUr{aD^eg@G2Gg(zl6A~nudF;YO&X)HG z30xIf`=L==wO+O)UBax4Ii+OJEzt>3U(fOV42KGeYI18(!ZHQC`3I6Vp4A0t!M-FT z5~QT7yQUv&LiVw53SHI1P(0>$jd2ea&weUxs} zzzp+zjA`J9j;zWI|5D!%i*1i(S565A8v|`_Z%z;0F%BR<92rv`KJ`(C#xViVaLkRv z>eRKpy1hrMP#0=|rU6q+rp?dG&kd|TOtaxnrZycvFZqkne$aFR7CXrmV@5DW%xyT? zw^v*U)&-|Dk2*C_sZ!|?T45R@yH{o%r^v|H_GvJ&AFZ700XgPhGFH}UyQ>@}ZkvEU zfpF||!b51MH_PJ5;|{(hUDeZ!gH@ZR%#%zT^d+B4K>Rw>5o|8=yzSXM)su5>Usxh1 z-JN-eJ7iSz06`)_hx8T>PWEqSliXNj2j^~7(ob)_1^22*L#VfLx%Bn3``PX?yt^^= z=w@(Z?ko^_GXb9&T};H9tsQV-I+WFQ)C3c#J3w`>8?ue``u2;(vNCoGt!C_b?};1d zHP1`F@XuQR^nMf5ZpUx`;hxyie%sG3Mk zW|hik^e$HwbMBhdBvIDB`81(lU?0 z(Y_sM7S3rlv3hpjG?|0Hc&TP2&Av-ivu1A^XMmbZJ02=VA}oWP-91 ztS^A?uQ-3(Z9o|Lvmg7>a;Upn$xPP;-`mxjZ{x+Z?y!V?>C$o?S3%NYg$eI_e>wpOT(`sZ`ju(~;noJ4I(oI{4y-^y` zn4=CY&Ah%c!l#-S#))hqdfgX5&MU_yGMNv+rG*p8oRN%eEE~rYZwuhTiOoUeHPdP{ zS-O@paBpAo@}G-|deZ+cCKe=(=h;rDDZif>Cy)fjm-#*hatj{|oGRCjY8$;+$r%EN z&8HB1=e(Ekwt&=w&pGxv!%SBNbKP5;fh(G^>s%6De61IryzlRPnrB==ONm^1VY}b0 zUJ}O4hd#w*7B8V?=zESf$T8Xy1O2<3GQ6@PHn>bzbRC$FvX5e9d9;yas|%7Ixf+)c z4sYWPeTRk8*Jt}g!`{l|JB^U2O4NQbw|Cf=E7_tRP0XkZc4C=Zwr=2Tdj>P1FsrpF^#e_F5;; zq&4^6jsU4kgvgKC1|w&TDgd3G9meoEiOVq0N%SY{r7L}2o$Cd(n^|;r-4c&$*;>@c z5`6RK(<``@MN($;*Sbfdy1nCK>$clU!*SCupUTSYtcR;}ns3LE#N3!KQu%-K0}Bkh zBdJ)fh0p2MoL}5`Ken4>*#{V#&e`!@+F7pdky}sE&+*pnIlEiYiXj4It=mrGQEo%- ztdfV>KP)&-eVyS{!Hfp54%H5gN)SnHHW#H#YiRY^*sQ8l9ct;7v@gw{XXm4x?~6r` z4YwRt1G(GEqR;irh!tZ@**FI+dSvcXs-z;Wt!-*kxMHva{sQt(+__g5K(T&`#l!>{GvU zxKBkdhF>7HWJ^9i;$U_tG8JZ1#@BB5j2Z0aqn1XE%-(0~EQOlXPUd9nU~^g%Jns=u zJ}d?ggRcAeit^I+on%rr@=Y{B#;s)4|soCN3Ri}gZ{>A$C?taqlWMJg*I|0P2ZUWI$_q2-WXW(kfm61~X z0i)?)0v-Y){&9PV1q=~OTNDB!R37+WD1h>d9bT?y+ch#9c`sKNBu+ibL>)JV>dc$9daT(%2CWGvH@q9~vbUB5*|+w>@lT1vE)i^8~!FG$gNm>d0Z-QM(xpzv1KyfIS^ATYE*ls zNw;m>wH0e}l5G(50J``bQ#+lcYvZKdCBW_Gs$==gN1rKa54??sN%(NqEto4aVD zEvL9{$AA$rmmN7TD*LjRp!sSwF7gM!UI=K1YK7_vr0fns0Tn5U{5<`1QQ}iNM-c|6 zu|?XYZMhWIR~svWIrSo)DovJyEQ6wL)4JF3l*xx;UdXzo1OYOFx`ai5q;p%uVs?w^ zMHXnt7eKxpW4PH&*%K`QYy$1_Mq*ih2g^)M?cfl>`;B@7(acIL=XAM~tY#x=Hl(KW zSXM6D;v4b0tIy!z3+tTs5_=!BFnzMkYmEI5G+uzbJbPpuCnReHeEMZo%E%-GjTk zJA~lw?hxD^g1cLA*Wec13GVQ{k$d;v{crttznZFMnCa-~}dT7xMDzx}yrHl!QTbw|M*FmpMbqw@^2MTHm?lS84CFHkU{4 z^w3~BeN6mGz$09x#H?lCU>?0lPmG$w3KX5AbVOOxiCp zhza{m%~EQ!n%d*J8=l`VqQWLYrK1#;^2O{vqMckB4>2t3n^UWn70TA0q-PyENhqSTt&Y48%FP+ z$o_1*b({rvx5PR2<1xm)+1k1a^7XmA!Ihxt6xZbN6Vb?u_wD3%^^0dhVCw+if^pU9 z#z9`!kY837>Cwh|QRl&&aG+V|;x<7wz0{Pfc2C1VnzFRf+1%Ap9y#c3v-i(LO{g8k$tm$ zA86VcvptBdf~RF}M0~&P!R7!3L8=ab=kO(fD+5&u4YyQFOR?KJlAT{a2i%=)^%lC! zBap96a{7L0FDn(0ZJrt&os!G;&mf2zg@)h+{=3z*WV{Q<5DXT=ZhHftQ)l;6P1@y+ zN0ELAAtk>q8`uSNw(-mG{nIE2$wO(3(II$D`{dEn7!YXJA~;Cc|C!U{@WR8}o56j4UN=$StYG$LWh$ zyHd7qznSyY@3F1j9j-4cW~Q@*q~jeIwPy5^Sj}+`e)Uz+@80{C6}Qn9xTG z6vzNnCk6Nlhdh~>qG%JTkjkn{<;Ds+4(0W*=t$5c7e;ugG*Yjhyi-BNTQ;t!gnTxO z!1>FkHaKcor~V5WFOK>M4gEpzB$+QUZ6#K6n|YimuIwi?p3l_0qRXRH2g81UVPxrc z;{Ld!di~H`p61q2Ah3{aS1ciB)ON7ncE|sExe}v0gTFlCRQ0mtjr;QP;`UABrT=T& z;j8+}Y7LrAo1n>iOuSZwa%oiY)QH;vFKyj69dhn6*r$99yFGMlw>xB$fPSq&5+d!A zAqmkYf2quO!YKX1=AGJ`;2y5fuV+`g8eI%*y?n+vN8GoY(9?AXn(7!jUD_h7inY4iiR`$a*M2MyQ2ybnfD2c_Paq(3U0jxmt<0Ka%8-nx^DciOj@HntnjcV`qzKC+W63h(F#&u=i|5_2Wd`39eq=sM>;?`i%G83F%JKmu5ab%CfbA zc67b&KEFIjqR3Lcoj2k%*=%@RJvJ>Qpi z2TQORSqX}*P;s(G>CZ9r)ACX+czPlt#4hZkvPP8tN?AiYa|~G7X%z8d=Ip+3Hhi7t znSC=0fz=`k$LF)e{TJ5_PfiLSB_Mana(Dfr_`wWB?S@-+k<2tXT#z@^QlBz>syh~O zmWP}njO-qpi{sb$_e@H=V!nKl8M67llG+e^~E3gpU6yYWrpH;hB6b-Cyo{m&{kJO|WUdw}*EW34O;N#M zCMa~p`8yV-iRuH}9t=67R!7EaOx#~#_Yv`ZJe-{XUYbTm@AV`3?a|IdMB*edyYW1q zqguS8`u-Qf#%K6+VpY8gz#%#c~^qKp)`%&6PyUT{kT(X;)s*P$bIS!y!qlimZ z`HnQTsSX~p3v}0=&(2>c*5{;ybo)n^9`?Zz7q`x(4qXz^vB#IcoW#AK)z+9?qRGC$ zlr}05^%IXcFbB+OM%lh9pfPcQDS^uwfI(N-1%?r$!&-h292s=nS!H%4MKs0(n*$v0 z*PY&I5GIB0;!gYX>xP?WE08C2w@|64cEB4hq|7{LUzr?}m1f5iR#CG!+u~K_)BuC~Sq>G~N&)v#^(SS#dUBOeK&WOCbL=#;NtK! zt!Q)_+Rk8HKuv^<3R&)GS{rQ6azRLsPulPBGXAKp?a-RwiQ714<+7BNaH!Sh>_t}S zEs-wkp~Ee}$?N>Zr;ME9XLYEs5R^S5oG2UZZD+ih{oT-!%BPB@%pRnBeRpY(_8zVE z)5e6HYOmLOxiRzA$^}rtCEjP}O+T+iT^6s9wbQ%frBl9~r-rrz?~{Ga?PwWyJNWf$ zhz(X7S+OBLyYsdB>6JPesF0$p-JlV#bxkjQkJE6M!L{-mG(^X!r{f}Y-qO)3)(Bnv zI8e(~hP2C$TY+sW!!ep({nO=2`*~vCfxKVGf^vxNs=tg+U5p(m| z5cayjx!bL@V>gkiTPZ_RYgt<{Jr6XG{8f##i>Mz`XBe&R^p9JX2rqkOo#xV>c>0!~ z)390H1IqNX$%TWbA%wMRG-;jUO$M($PO;f*$yc~d*IzOp3$rS8**X6Bm`3bR?XuZ~ zi#;X5nWC_1>tQz<^3GBVqA>=y;uV4(R=26rpfSNRE>+m?jg>0j(RtmdgD;4>p!?x#J%tV)z9CXy1t0h-WLCKE;~<*_2g~?DD0k$ zmYZJ(uD2>HY)%|xZkJ!9=pG|7_6{}jUQca~BIW?`EHAwi`*(}Uq~_$6o0>*4RG$X0 z#hYrIZXNC5H*Aa5)@;@6ZvB&73>+0N4G!|!V(RXjYE%|dA`!|hYC`rwGX^U|BSV8;0>$7F^+7&Zf8UTe>A;%83#=B_?Uilj z4*;r!Q_#P#a6s9N+`>2akyzT_+csaeq=%DfJEUp7LHD( z1YyxYB2g|%3JswYI806m2PSkT2`v)LC%OM5t^Zlk0=qxn6!PWwWGe)F-*=w?>lJJAYYvNzN+X!F_p z<)--?p2}Wo%VR92bDYq^C2)lILo*{bFu&@3{)<29Cy~;jA13a9<5~i*tshuX{}=sI z#XS9Q-lapq)IaKL);oVFmKr>Oep|572ju<$n48KaG=@h7l2px{38biN$YKj)2CP2j zBEV`apRq+PKIilw%`i3Y{SeYP9$x?k974Ry^rc5#1_%1$_hHTeq7(jr<$mng_tQ zhRdMV3IuV*`ZFh(4C^`LJYvO#pgsC%gZjQT9#0{DArs>N)!r0>ymbOslKkRr6>eGV^GfFn#1F{aK)paupqTMZ3k5+yp0kWK7v z@)hEGTLfbA`qJj{A!-0GmsQn`yN2S9&QgA%=%c5fRV4s2sL&nwM2pcGH#g(R&00t* zqg-NLLfrKWlDHxjVY@veB&aFyceAFU<+Yu|^R$&t8*f2{69tA~FOThaR=BNda#GY~hz7bpUq|X++hq(|!;n z_5m!46p0bK0j{nIVZ)$96#I!4<@)DuIQ$Mf1^h2|to-m7kt_d2d=vv{m6|AP820!l z<&WP3eaZUn5T&44vRZR4yn%&s_z2&H6ffO3v>?CBQ22>P6n0yQwSBO~;C=Y`y7#!Efjd(6uzxQ}c;gynd(+tnLR)&aGLXsf< zX_I~*vLH7NSPW&+eSxUM&@o?CGsS;2~uHDe82m;7xqy;2S z&g*vUzo+6aDrGTvGAHt|CnuPHa8G_q_I`FNju%JzfcL9qeTokeQB*`}A=O|Q@rQ~h z*SqxmU%5RrPQ2Lc&VS{gPM(!!uyi?p2`TcCxtVbQ930lS0!jez1SR-}{|4GVCYdcw z_F8QRFk(U;rmo(s-^{Ugxt({GmC#>JlrNVX%ds5|jf9=?Xbh*SjsYk!&!m>y@ZA6> z936KIeEP`^k1pMI?_-lJz!4A(9(T(oXJUvMX-mIUJR7HWyE zjkZz7;h^KEV%X459E7Vr+}4Eg(a&A^sI+9eJhvU{+)Zx%pmD@s(&YhU(s8dT1mSoj zbM#*(&7Jm>-RW^{r{5;$w!OyyKVH1j3WsMe$ zEAMBQc#}Kr75f$KwnayqGs=w-Z4%EnM!Yo9>$R3*=LPGnq#!9vjp-EC6|Nooi4?2w zk$?ffwSyL0$Fw_xty$&|!MY>(D6aEU;(*?*v_aGB76h%mhBoWbVFI?p8QpY=QoWg? zS>1&ub&>g?@Tys(;>RYTHoK|oa6FlyhefeNoX8=^wo_+X&AELXF8%qJq+@R@XS0uB zd?|RdvLV{Ijr)OLZy&b#8T0MibP>S{(%@yHGx_=rN-Qv8-{kogFpBmvz5ct-YK<&%U|Cj9f=}dbt>?$h)DTS3avb zeF9yvBDZy_Fw3Mg_v#1L*?w&;6_q=>v>MM_5a022E?&S|s9(MMUmUAfbL-%3%{Ug z=dZFa$Z2sE3zVE@i%|uJjvg)rxK(Qy|38Cyb#HV0m)sr8CqFqcv(%InoOfK@+v+`d zdm3|gGdt3d%GSZHoI4u7UhvoU}%SKzj8HG?iT~APq z5&1e15i!SclVV7b75wL*)` zT7fjYVtIp%1dzh`z^_o1jqv0x*vx(au2!hYjFMdXDh^xdE#Vm+iq*&Y)A7D_HdOB0YAGH`U*rpTrOUAb$ACbY&VB0(e@R$p5pam4NLSWr7h< zc@cPk9V4J6O)iG?jp)jE#1~zJuA@U^U&9<3MJxyoq}LNAc!?)s^nK_2OQjmpQ%k{C z_mpPT>ITcvKgz3DJOom-D{bcm$>*pQlj^=^C()x$o-1A%9UUXSM2nj+8 zK>Aj~6Us|MO$AySrR4Qh_fdhj-ahYRIi8kx@M)?|#Hx|gUv^59t=V#)I`lA7>VEq_ zT;eeHMpfDO@3W;U4Gq3rXUtZKiMAEF{AC-M-9+T#j&bheyym)@gU{c7O{d%O_|f|i`i;V+SgDh0IeWrf&@=vHVQNlBg!t(r zNEVmt(Prs+0)Mv>{dTsg+mT04kZqF=dC1LYHXH4wISwp$e(ktLd&gO}HFq+otMAcX zsaVRxrk*v30*BKJx{k%OsJ4g;9De`|Ft4MF}kWOWDhduXjY5AmlF^@RCM-~z`)Q%J>DWGfKL z7mlL9>!6u(Fx7Z!WU#&%Pwc+jxwH%Ux*^303*;5r6y%nmxfNzo<6dd#5x{el^7xAS zekabCuf#~Ri_&@mxITgcfkZ)2!-^&1)Lo7E?!@Nd^3#v}fXc=(7=U3A%i&-NFv-D{ zeY+`lLnV;Gxs0h;G`uV6;4{%1b;gh3jZ07 z|20t(DQ3d*bJB}KO#F8*>K~JQBbRc&G?k1N)&>5WKiFci|2euWY;qkv9`g@0sf4{ry~C9Q2?4>-Hwm#OX*H6YDAr zF>+}OD%FK(-PC(v437HSB3C~SGB?{D_rDV*z&Lsp2BN@ciZkmapXiwNWH2-#7l~j2Q;k(uhTfjJFW`_#atn(AK=IseuuNDdBL9mp z1*H|LWh5Zw9S#l_*j%i-Y3ikpnf@$I=)Ak7`Kge=B{#)}AC%u2f05AN+?#J#`23eT z(0-d9WSX*Cf&k8>IWn-VDJ&P3PG_IDj`UnGu&y$eRXx%iFe5QVrxA^>a-4;Gb5MAh z@$!90G1Atl6jflqIB}r=aN;;STzw{I;$)Q`C?*RpKuVLhGQW}}FlAzi!>2@1Sm2Ig zhr7y-8DFGxzx@6@{xB+aZfQSr+is;sUO{a(SeAgnxe>)DciAOfRj^sS?S0Mp^7xY< z*o(V>-_d~=eq}ab%*JQNVUYjM`+0L2>!z)e`FB1*!_i-%%)bfwmdaf&<~@>pN`E@* zc6%X>v%Og!UF}`>_Y+TtcHpL0bn9;?k4(I#>v!3cfQ@s#{q^*wa8Pw&p#S;9LiWhU zwQ;45RT|w}$r0Ys{Y=muh()pahk_qYnBt5kjKgU-R~KBkkayNyIQ4*n#lKzoF=^b25t?dUtc`Md)C1-T0Ll zjoe%g)MKf$JfMF^H@|UXMd*p{lwQ83>WGdyl{PeoZ#&0F$RwP(&YhL>RhCUj;Vj&q zM|J&WNzZY47(MOF?<{7%VbR+bNunoTq0{DX`EHYbnHsMv>Z5`Z5Jx%enYEh zey&?7TrKaNhPK*mL7(cW=Ns#LK~IfOgE1CO+4Tzh9-kU!jjR}t28bK6(`{Q#MP71w z(+%K)^S{78j%FB{>^3)UH!AT2c-twD;)2GJF2r0TYeq>6o1EW9kgFn2icMEqAuQ6Tb|2`wt{YPs8L%QPLldAc+yP@ldrw&rK0_IwYPS<}yBahz9N%=sQ9 z)4{OjUdwL{2<@8F#C{ZoR-4PuT|~JM?9X$ay;ZYg=Gwk}f2a__+}u^ce1ul#GQiZ! zKs!+0i})Z@W!=vEGp*=hug6TKvGU4;qWSb!|$eFbs*d2 z;X-SjPP1a9TGR$_z_w{=b4dJ?aTvN%7SBcoF%FCYZG`!b7Oqw{6(waNN#s|KJ>{91 z_eoDxSH?wn{m6d^- z^6B$^wS$Z65M>#X@3J|vYS{^roGPWVThb@WF5|9vxbMJhRE#BLBwEIv#(elUMH@*H z>M0W9X-*GI7mFx>v;o*h;8pc%_7^c8Oj6wdqw~r^cAnP}D$T$PPh-9%i`i{N{-uir zb@txp>CkJk*`cHKtS9oR*Y5eyacog~(onFTQ7iUYYckQD*x0m<+dPRrO9F$ZfW?pp zo9(5YR;1=1+eZ3691YX*h^V&3En#)!Futq z$Vt8gJ|Qur7^`70Bn~Kr-NK`Q?3u^I?c`;vhd2w}pi0;>}9*;F2E2{{)t&d-#| zV``#9kbbNY@3q}EuOeOQ3mfvk^&^y45i)IEGcJRK*e08s)HzoVp8^ONQG>xuNbu#3nVdtJ@ z35>LjyVP^{oh4wJMqT3Nx%>(A^bYdnuxb4*GWbyHT!RIBd6i8H?9+iJe|xf0 zYA$(!5MH7`(b)TUk`xUY<8B^Q$K)#rC;PWk-kFW!ullW*Y8gh~OhdtSL#3be*cZIL zFZZL^7VaR&D=OA}pJ&q!3yxh;zamSKwJoX9t$PCH_oATc^`LHmC|Y$B{7yQ#y4QsDoV99iQkRjo1fh@;8QSdNm0X*)E(8gl*Mk zEtpOWkLlrBir29UOAL3!lVWD;6Bft`i;(OG@;9>^VI63q8^;T;Z%0ndh0R2t$Y$V} z$LP343(2d$1#JOxOYJy%qgDh5#{IpZu=&5so|-WBq9oOwwk zq~N6TxOtBEZq1S(f_a<0l4R~k$g=62xPILmE}sqL4Ri&${a8^QAhE!iQn_7e1Zh4O zsxV(hKFHMZenU;FacS+T{N^-)PjryAl-Vbo7KajANk*%rBwqANd&xphuVvA(P%XvI zOUew2cRfj&>m z@i~YNj;gi=tH21N#vrDP z0S`0aE`H2wCsfC6HAL30Z}Ke>i-YIYkonWiNVY`tr#DyVE?emMY?~brIy?#c*?+ zhwgTlQZfIeg{);5nv{_i3rVpA(#FrsNIG-sB7I3eIV$FXs55pzYGiB&c;`YycI!eJ z{%w4G6EIh0GbWea+4j4xV=JfJ7O`om;@kqn+a|Hg)P>C6J;Rn%=SyPI__cN|L&rO0 zC-?`rY?zIGW$=Lr)}HEVX~}{hLAdlOSgKJo)HAFNZ9d}V8qZ*m2e{Ztpx+|0Jos^! zSQ34F2{Zbu+*c&h#YnyS2wN#={fs!w5LzDD2IF5-zQNn)hnxk7 zflAw>jUJi}>vZ58YvQpOptW2;4KG8u7e1`uU_vF$M^i#2q1%22=}~+~1O9Kp`)*3G z8Wl|HzX_a-0e^kKs{a!6Rv3R4^HMDS(RS>}Li8^rP>1m^jM4)7W5i|i`qy+1`7VI< zU*E#38X#!R{q+y?cUenv0FegPXPr?i2E-j!0o{B?x2PeA7m23Ras;10LkDu{9l7}#ud-|7Ozw4NzDzz1_LkW38-MHo zD1-k)*<${DnyJBNL}3W@2EH^SR zA`l)B50I+>DV~6546H%Ww@|En${)Vu1EAUjHzV^vEX+eL3d~T#UxZq=S%IW=GQQ@0 zz2v{D&J}tbxa){LX7~Z(5650f6HGasXyjuMv%zyK-WL6WDSQ&Lh**Pf$lv#B6#jxa zT3aUw-XIw~@1PT1I<-nL2W%V}d_E~%VxG)2XFSQB33 z%fWnn!(2Vsv0*X=&r;{j-t{-pcdCfb<;U-E5`2HW$Iap6x;85cZ_U--?Us67i$t1&iTo#a@pRlF>5BL z7goUb=FdpW?MIX2ckM;XQB18cyEA_=}i5k;!7yYo>Z z4RkQeeRafUgxkxB)=GI6V8@;>kJMOu$L@Z>XU@`%s#cTXleGG+t)_BU5Jfc( zCnmPshCn^7tIN;N(Bd@3-_YW_ETudRc)#Mm#SADgE~=DZ4eGx|eUAkVMUuZE<=?`h z!x{MZ;+X*dzm@=a&U4gZ!V7cMmz%)_ej9Owl*RvL%u`YKl8GW|9+Dd%{K+Vi_*8X; z37pbv9WgJl_r6u`vKD~3!N)F`OY0KX3i`}++K+3l14_17LAj@gfgfS#R9?)@vEmWh z#KA=}sYI;e9HFce;n7al{fOEcxe~&6EUh_@8OE)tX6Y~+y=xbkAwez6iB5}zf@1GUhNPG6qbsV)cLk3odj!UrK!h=6_W zjWOsoC}aG6i%ns9;|GHZukc<5#NoS_nkYSb$FqHHmI=_+Nl>lVjf&RBlja-{z~%;2 zVg-s+A_6947-fhql^?W22frQpn&x_PwSUaLSpfj{DprrQ%+AB*qjBaQ zYgFcrPUg$kx;#0a?mKU0@hg5g>9XR)Y9Y(hP~+4R_Df+LS=+mzkh){eJVf|T&iEh3 z1Lk->jGrg)3RrfAdkI+L73|$*^(IZK=49!x7XU=N6~Ml2o4CF%$yo?gZ&&QhLk+Ww^B(PWKF{yUQ%JVG- zk^{~H;Q@CYv2_bil_{$15*w6IE}%-lL!`XnLBu)qtVhb#{^JKJ;9Vg^l%8nDDkHrk zgDe7(1_yXTiMY&(B8Zn97BKzcNl0iyEvWNmlF01n%FT2N5(MDzVpIBH@B`@P4E_+r z<_xN9`ws;yn0FIA(6bhO3@HH|rlR&^1Cc%R>t^b845m)Ps|UGHInzK&+Wns%H9o1G z540vh%BYLl@(9&7`srG{-a6pCvj~`vJclC5vrzpx?gL3@(S)ujwBWZo{Jl>YDf`00Emup#G@t2Jc^E z3`tsLpm(aN8=w@s0OS@mu)|7(b4`AVvrxY4b(Y#1oYR!5o>K{Yge@lnD19`8KHN>A z)G*YM%O(gLiGI0qeykxc$g_dLLn3X7hE5Tv``0cpS=y=t&K(X`As>3!`kvU@Tnqkuq*a6w1lA^Qjg> zF@1>@zd_OTAl=3JIoRc8OgV?3uy4k92)G(nEeeVe@(_fA9y?RTVaXj-S9|uw+Jni- zts+}OG-9N>3S1k#@GvE2P>2j8R@3M1Q!%6^n)G_}d3))*xUZb0$GZ*&ei2m}gKRLr z!%XVJ!>0KdlZK=T_OmY6PeAg_ibj7&nxqEoi8ZZb&V^ob)05$Da&RDr%oT}0ASVAi z-c(zWR2l$GeXNNw+%aD8EfKEcxggn2*x`-S&dALjZaml%gVQ#+P&51dlO?!P67@!! z0L38+T{(UG)czQg9J2a7MZ{o2A>g47EzC{>nvtlaWVmT21*)E)z1$OpAQQ?y4gU(56-F_tT>Rsl)~&i z;}`jyC_^Ebjowx!EIMO^^aKN+LE{t{2;=+E;UBz3E}q6I9`Vz)eR{@TV%1O`zErt3 z@+qK59(i(=!xqS3Q+hdF)yQzvJp$f-&wN?WTzN$#Tojj2F&hd(-WQ|E{4Xy)vf^*; zu20?`JION$w*sfob6IIh9<5ojgZz$d0ddm-u5=dxL{LQ%a!eWnW`382Or3M67n>iz zv!3&MvZFe}zQwgn;5)=9glN)rijaP}9(WYV>jj{G!Ipy z05|niP1NYh@zQ?%{W&3!1|Un|Igk=?dDtBEW2K18Q&)ek4QqxgoykUuoF_S2lFCm! z{Yp9Lt^j4=e=1uk!TPr|ajJzUiVYQe=fJ^w*1pXNl~UC%$oXnMUwx}A4I&Ys_0$b6>zrjp_+4Hm2mNC$`VY8GtO_G8d1&Hh;1wD@8G%2^; z@WWyHY%)g0s9Rx&G1|*zfy1GEJC9q|lSC`|v{*;H7SXXKw7a{z+l>3o_mk6?HcdO- zE-$ZXBG)B_F>WayOe-JIcQaLOJmN+L^ia2!U5nx?*nT2O$(6x7q8(2;|P$ zcL_79d-Hg>+I=*R}uj|^}ujqPrhwt>pc!&RXh8Ym|=_)?ndY-;NcT zaj(5-3vEV{@RnVYtj1;6MeB8mEjyMq^ z0Wz))3DwC|2u|2_2a}WzdB1-$>DETXE@zY%gGcQp$S-(v%{B_`v5EikR8Jw9n&e_X=Wdq=QmC4~yzfWOx@zj}1*nVO+e4M5jK zw_sDpkSMF~?dn972gC*jRv-$QIAcbu0qli>P8Gg7KM1QCq=~zLHb5-ifEC0GApVb%$BU}nYg2I6c5*G`z^N@AZtd=>2 zaoaSGThgTjc_g`u`Tk&km&5aP2=k8vy_fnoQ*GKy6-E@NMAjjzKd%_@&WE!Zz z>-WcNlQedNZJegMK`&x`P?JW-F5^dnpR znE#yC|0~f4!RWD8de)dr-a<8WL(Dr+v`>+1)efENCl?-)C+)dATRBNfJ}ak8kf-{~ zi%f%D!;h)OL&LMhXTxcTnhB|4xD;R&kGF#;Cn0#>r4?|Q_HYHKG?(IUQ%dZ4GoyVD zoa-8&-y!M=s0C#8xdiCSrYOvK^tz$1P6J|df(UupH`%963; z`)=@dslZH3@R?B1yry5uWGt`er79-xRfXSs%JY4j`|7!=j{eNR zOtY(qa&x(UO*MB-;`Z!nLaN*q$BiEBO$CqtEqO;xmhPaalUYIuHzpSE!DAgD6un06 z!F)KuuHB!{W#7IgxRI@Q+ESJ|q<0E)TZT0TvI3hwEptwVJwEXAJ+X{U$J-ThclG)jq8okLiq>r4ede;i&=Bi^EIaS4R}KqGj{JS_hF&h^IA7m_rBcC z11?FH(+XDsUk4?QuIu83@!Z4G%-khFp>XG!s5Nco?j*J9(2GT}?-Z>TAO>XVAROM6 zY{%6IvawNbCuxEkNI}@&Y3QAhdWT-E_SA(@FcsTX;Hny6djOZ|2u2b;T0%41;z2u9 z_GP11d4u^SgWF&wEd$3p?&!fSh^ST0+#neXd9I0uK~W~z+Lgf(J4esSZ>{gM$~_-9 zCeP9EmX1vHnulA{)18YBC(TlP7GT6UztIw_EA6{tj`gp9Z_|A){f6JDt%t`mCwKXU z?ufz#y-k!Si?QAtz-MKD(YfuuTQ{2E^TZ#J`fyzVxQcqeeBkqT`qrnj?L#luIqK(< zdpykr`EeC^yTvfsF%Whtb=vZMML+2tHc?wg7-Ja%Hb;K(UTfTxM`$&$rmw1!IqSh! zhIo%j?xQdl%HhR~+yed+2KBZR-W=knx>zAwRU!7Fvm{8{N58hGh-ho!QP4s(<%Tga z1bLPq+k&S6iw)W3c46Cn;|o#9=O0w_*`- zQRUS>i5(UtNW%><8xUE6LpEEfol9jnLthm!klN?%XWeD!TJ+sX)J^F{Jq|w^5J!~a zaU#>$nK@6F#|8Pct|9StM3*DD*BBbFeN4j0j5std?}GC<#K0juswa8>qQ~j!%y>ni zyLm#(JG5o>1O6(SqDV5H>JduX{t!nZ1&-4!gLv;D19B+sKBS^@LFuznjs5!chD%w@ zrn{>{h`GS}w8BvURbW{C5VQ9O2~45&X}=xZmNz3gzH4)}l6xvsyA+R8u0B14Pjxott0mKcARPpII}q&MxW z`5i}!v@*j^IYp|*t#jHo<^&a2PGX4N-!uR5GRhOO#LSU`a7rm z9Bf_ol@Ec0Gs{sY@(#za;7ek$Heml*JTU)!%m1izU0)j&SWI%!ep46q8I|YrP;pjb zJOiG2Knjeo9>mCfo_nK$0a^dRl9*3<2~Nk$Y1xu)V;pseM5}J20z(=?vTB|hv)8B1 za$Zhzwr7_2URXk(gn~~+{IVp~l6K4Y6%Y`Q??t}QS>J;%i_L`>b zU9TRzetMR?G(2g~Jm+t}-#v{`K?vnB5@woG$_c5|v8}34%@t&8xi7O$& zA22*cIb;+w@dcY44{>Xbia1+gt>tfU%bW#nh`TZ!;>4ypc$`>CP*o^gBWNId7x{pv zpl!bU+;X+2sN%dH#Ovj-kLz~@u@67-M9F=AHOpR1Pp_Fw-aDEwQP_KPx$|(UXYT;G z52)hH=x|!76+a>sXKWp%pP0otcDx32Bh6aho@rX#PQtPAdkdj=ABO`FyK9LGVXxoACt}SH*|QOUfVcV za7F#B{IR)t zmzHTXCbjC;ZQ-kenF3@ll(?$oUYR1lZs2wf)z0o}_hVgPl6uBrrv}-lvOF#;UfXcg z3A46XXc8?U582Eyynmj!F1>5zEdfZo2JWk%n^o_=NtNwq? zy=7Eg%eFO&ySuxG1PJa9!5xCTySuw5IKdr)2X}|y?(XjHZ;@p0v(LHrzVCbY*K5^U zt(rAQ&01}(*5;_H(R&{|&KEnQ&fd*0yUH!i!Dr_#uKh(h3_`Wo@Tw`u*^A#8CwqAi z;TSo1S{oV@S-)O1KWe4p>VYLxo z`V$d*211|o&P(25*W}K(v^=#HN46o!|-s_`av*d%lR;6+=9(f@%FLl>SW75 z6d&%Pt9XUYj!Gk)mQMS2V>r{O9$~IjZ$@kZ8Yy^%i+tJ(<0{whEQbutLAGvmZTAq$IY=3JQDxi(pyIF zF;?%o)ej;WM`xmz+(EK@a0vqe0jVVokF=`Luh`NN3IOmN zm2aMnU=;I(E7Uf{9OHg+Uy z4(CE?j%lP9(dwbeL-6`)*Ij7s7SLpNy{;MHc?K%NNqQz=Xg{CLe15M*)^U@MFa-_I z57+eEJeijr2r-3)kk%q9Dl8n&2V>D07V<_ubHjVOHV@O^=BHS8;|2*g%8s3Hh|+{^ ztRkfe?*DAKC#M= z@0k(Fx<=sATFMD67aKf4WKw=C~Sea6_Cb?De+7H>j#3b3gsL z>@gcI)3@~;ba^mp!NVYWB^|Owlcm`{+4v=6MshOrQzMhSbaHK7*tOnAFXMvH6z|7* zhm$6u)>T^Pyyv=*woerrB2TNMZSYcNVHO9#`E!2MC(XKMakE{cWqDETxoxy+2R+@Y zd)EBr!D7i$Fs)E5G{#7TMqO-Kg^asayQUa@xv`mvAor6cyf#(scOBx?A|9FMlVqEo zQ?DfjEd2LUtJ+4`=HLvYpGjTU8b0s2iZ8U_!;LN8EI&DD<+;ix|MqNa&anmk#DwprWOeva+?r%jXPYc`oF{!P40&KWmr zZ?UGz=A65Wb>AKV~^!IY0SDt!tEL^g!2yrOxG;9({&C7z$ zSR;?q?`&4qnmb&14R>48B@e0$zfOeWvrTwSITf14I~5% zFhdvQ1AK#yeZuld$Z<8BTfltTHEU-b>w>(i$%G)|YG=%A=70>*ChtRL{7l}vxW0Xp z1-xa!o+;gZf|pjnnqxu^&i7;;`H&z;QkBrw+{MQ=gl&(&XzwWAq?8u5lstV*QfG$| zCEzERJGGibYL4xQz31*Q)}`zxc=?&8n6&~WYmCb2+ z=Gv7JMlW(&GIV-~LV-0bTitb9w8J_0*;86pIrpOVS&t+k@rZ3M81HljS_l$Mbz@3w`(Ypg_ti2D>6x8o}HY|}R2i0GjjlhcIb z*q2e($ePpsyihs6j%GCF_`Lo4oC?=&^|Y6k$Nx|`+X>$DzV*cO#?#{`fNZ&hs{izM z5KwAr3pfZUZpFy|seajW#x2P*@$?R~Aw?PE6$i2o&3@O5vr?xBp8vbJoTemn2O!mfn3+w;eUN0J847fBXfYGGF9DVQ?cc}tei#EaT%bB$#roIP>Mtrlgtj)|#@6STy8^Oss@o zLt?tVMIU*zq;v@&42eeR^Vmfr#L0XLkT>izBjL@=x@Lk&qNEH z>2lVZS#8}{FVXUxxaHo{_r52vyRwe0x$YqX5Mbxm&-`a zwrvRbpSxN^y~Dex?NcWsf)rRi3mNq=66%+@wexR1XZsV2zZ0v))Z`cff0Ajo-Z=1_ z)E{GwF0e*;TmOAWUhM=)j2gn#6s{7hL}>4t6t~F?UJ{#4MKfXv!IZYLdX!H~uPqrf zlvrAR(A-r+^!K&gnPw@{y>SK?+%QE9-L}&=$ZlO_UeH*a17c(0dlF4M!;GtgdKuhG z2U(DVJhNk5O9b*u_h#dMCAd?mK{+md=?dR15Okg`9gU`(y`6M8RF_PIfs@to5y52L zE5+(l_NCJ@6kpw*xz8^wY!|McO!1OxbelS}i^(K=;x5Kvf6P()cs-y zLtQYxq8oLunj(&Iid0=zk`MI25S^(Xc9lQ6-VB;;cQkXmnmLRk) zM4$+v(+6|m@$5jeu)OdO!9{x`+ZEG|QkVxrM`>)A zh-cQ1x(M6uC7Oyqx!i=W^ei$D_a_$mLsX>xkp+2g>q`M;EtbA&u$y`QyXZEl@dH=xu zAAwmxcm9F>k2l}^B$QNn!HE{}uRSF9#Uz=0nH{dlpfhsH8NT)eaW^-|WPho)CCH0F zJtR+%bgC-Xs8^?0CbsGuMctz^sd}RM@$rK2u59UPcW6nC(-0DSDDc|j1Tr+5tKp+W zD%%g0WKB$X`)(!}WYLi#nMIx$trTp51uv|N+T5kvBK`?uFGrkhsn#E(x2AD10wg0s z|4q;Xu@($ET;PyX8w-jY%*zhtOEPb9iqv*Emr?x9kNh4A^_X|G4_xS&sl`w`D@saH z=R|jKHv?!y6&Il50V1u3Nxh19%=Y0CJ*|3F~du8kAQ;97CW7o*qTIcGO#znk; zFb-JU;9t6jV^s^F-J#CGj@H$5A!Exf=`~~VapwM}8|f({YS|Ucb?LAWURK{{D){|HMw!ig)jnGLSf-8f!k84CE!*CoY{JLD0q3JVo+I|Ab6O}}?Ywby$}U>5KS_$FkvqT>bpg5q6@C5wlt_Qvg57+8^@qDU}tS1mJ z7RX?}$69(Z_@0Ar4Y3;9w~AlD^feOGTJNKE&dL)Y1$=hmqcB5NLq4vS5r(jn$x^fZ zh2`fe=I_%0nOqy8Vkuk9^n6C|Z-N;f%$Si3dLTg}d0FF`%t>gETv&E|xT3X2wQ5B% z00L@I%Z{GQbYQ)3m%;GrcTErO%3++m%%Edg8gUj@(WSFq%dcg`bLY8Uq;cpi=vPIu z(_?Lx4DByegw=Hw1xyT&0Ldpr^fvT6=$PrX(Qhd)Cat@-!IA6QYBv}&#n9yomycbR z8!M6(@2OqQ%Z=Dd5uTg?D$EYI)d={So>pMq0=JEu#x*Q@zMVhn;v5I*%cDFW4sCTZ zVAxq^Zj(FRBVVP{UbqU_i+Uogtn}2oLs;zS(f?)|d|uK4<)QAw3JvijwLb1&0a-ol zky$>RMsyeJUj)Ke(SS>1y|oQly{=ghVkP|GhCI@i{|~Og{g($L!3S(b6ahu>XSl$S z8hKnP0rBMgx!d>hB8_dJL&A>F5uH+-DTl^St@_V!J$%@3SB!kTpl=mvX_nV>gres9 zqamD<$59lw`gQ|lk~#+%!AGgUF7(Vkx&@OY!D&v z5EvwMBAO<08hgXDO#>P;;!rlx_&A$Bkf(M;Px5EJatXzqB&)O{n^8f?9>tdzvt7v^ z&_D1x0MVeykS3I5>+6R?s9GEPXV2{H!u4-N7Tjh~z2>O#VDd=1V8|j!x)#1rq#^Wv zQ2Nu6=`!L0wx>g}^l2h+{_KVN%8Gp!Ls%BakwMJw^p#n=BMBN2ap38DlxTM|$epjP zO3Yoy0+hCTNy*G{p%QjZt#vX#t8wN7s(J;Oe+S$C!rop1Fp>WW&IMp~EdiLwH+=0c zknOKZ4SQ~S{=X0VpwZV*R!*;yB}1DxnD zwVxnFlD`X|z+dlMF{qIkuag$%iK4CBmMDUQWMP6|s1?62C%uBDK#)>3-^IxUVdDE6 zUQ#IV+G(`&n5E63y$5HJrhr~{d;SK(wc6X2uk3<(cG=A$6k`6{JV~G}*U)THG5gCP zkpnWL;-_pbvenx@7O$qUh77xLHpDZe4#*zRl_O;hbtf{6c2FNkAOO!mHW1P!0W4kE zs~x<`E5sL)i-CaX3)MO>89feisQ_8&mxa}96dwm&@iiC;psXuyqj+Xu#L)4jE4?(p1E<)9^Mut^k2`TTI)jvPN9>x0GopaeT&R|81HkG= zS6f`XUk>NN@wUK_cgx}>9|agflXW79Ez>o+#W=ij`q%(u0fs*18N8{(EB}P_>LHUc z!4vOMOrB(qZ^OKu?+AO2)4fHMdF(;Qgr04e+V9^xY-4OTZagv8suknchuFTIGfdn| zd0gl3|Md9gO@+bhfR9MW6X*Qe)zdq;wP}n^6FWa#wUv~|X7p7{bhWz=&SN%g@>abc zvgIyT%zQn6Cea*szUN(92@9*Vw?_AUlWX39(zk?UPp$^{>Y4VS$%IQ37PDve1H|2o zs|{pkRktrQCiOsKPxk_mb!@rA>K1*`uQKPA8l#C~?O})mDWWAE3<&Frbbf}|*b_Xq zJhBgS!YtqE-S%Y58`kUG4+?FNQO%NzYmr)oz3nECU>adUY9{ig3NTtU|~4J>k^xQj@d$(-;o1 z!pELGYmMqS;@t@QZmx_=AXU`Yig-bz^|NIz0|Y06kI(^|+rywWSVy z{2b%ZB=KT#Ajo<%XF_mI?aRq+ny6&+E3&=2uVtnu=jS3?`-t+`zCI*4bJ(E3uKh7T z-6GK)0vh$EmOd=I1$&m-F4$f0$FAag_t6;|rV-dA8GDs`?H&-1-oUQ@V}B8qw0<_b zZ3+55#h9Oi;5Hcp@nOXiQ0K#dZ;of3rdT-r^ zN$N>xm+QG&buwQ0M?SbVod1>iaH_vBfoZ#ZT%E~iNn+dd<{S(57##?=)<~as9Q)wG z=gDt*%Owcm;-jG9R(;t;C{Kr3P0odok$8*m_7zxmV0n3D79iK&FRkM&+!D;2x*OpbuJeCm2@B>G2OhP+YRypnP&?e4+=w7jp_p9HABv_jX&2YqO>; z=~U%MHBw_+-;3OiQo7KZDUNJem~L9q+G2`l30w_Nojws+*9G|?0TY7=bc24NPVZ^W zkkXFKPU((EG$PGU8jjhG<- z8VVJOf=H4t$z_h5U1KAT7B>xHn99a^`Y;|QY&D#ZAIa|%@K+ELa3PowG(!ls(J06} z(cC_LTmZQ~!_so`gWZ4@BX3)BE8Q*1!_lx5=@?x?i{Re$ih~<>iq_&f(+x~c;icYr zdB#;P%hM@(v*6i$&X_hxNiy)+p~-~gY1@03M6KW~&;7>?eJYByNvbes(q7zWGhxq~ zC49dRgt3qbol}x3y!cuTwX75Km|-jA7b`E_bL(T@<_6pFJaMHghjG&rV3rM6s13K| zz8F(+~jTn|Xvb$R0^E7LQXf772eb6YyxgJi&-(eJ(yUU4DE> zkkEGCl_Y(H>dvp9MZ9w`5bwxG|IBY}Qjq5S zJibql75&h)uRRh=HnV^~EP!rKi|LUBpOO_NV3oSYDOzlGrUF!MKM|*J<-aC6%r`ov z1!3)3<-T|L`t*`$AlI{g@UTKZQ(ZU+<*alBapa#Yr>CiW>ETW zCWrwOl6>Z7!F%%Y>d^bi!IOaznLz98{A}~4djaW$$agL2GaE&1rM@1&;|+b_O$b9= zFqC@d#-&jI*K}0%4|N$ue%d4Nj)w!6=wvt&5q<*L>cWI8;`511RfQ$mcIw&j+83@Y zY7!@(Wryg@qb`~AN~M^dH#z@oL{D0U7@jd=Pu1u~G>IqWG>pGjdb`Gm7w@7kyV*Y+ zWINuRZ(Io;)>X}(s@)D)rnQ)Jzhe*pkm$vw=#6b-#+CK zy>2*kabk5uuO@AZeVMAoM}FA~naIU`DhgJ~v08KXbnZv+7h~P&i5rZ7P|!2O~1hCY_>GL9ru-_pm`kq(zI= z{c%4ZLu`MoGMS_r02H6}H-dl?)`{}O#x^*19%5c3$+2H9O85BAsKKjvGJ!h`fbb7e z66Q*~GV?~9F3`Vjvc z!6Z{wZHG^D8AC}c`0ZrqPV6F^Z#%#$=%9bNeLQA12lhQ*QEfj(gz&@%Uv}Yd6}cm% zaYlZ0;qBG|oZQ9;ko`Bj^+v80sGUGz>-D^ky(J$vR6hb4w=9s3MPyJ&f8R4A5 zykRUZuKlB(uc@sprGM%BiTO?`4+-eiL)S|+vGeH70tm%2*%a7Qk1(C?E05Qbhz4Sw zQr74<4>&9DkJECDkn&#v8ta@}aTGr|yk556vKYBOyvVa_4qCzJM+O@{LqY zi^tRA7%?3&V|EpP=zfnwVg90gywUdvj>9a@55JhD7-wM>Rlgp&NTMlNu_^W}LiNt= z-JU|$_bl&4J)dVe9usR_8B@KR9Irh>8n1U}sAR<*8O*HD;~t}@h`3#C)kp73R8X~Q z09(t&?v`X7b@_`KtzjEA{JZ1sS?>K4Q+$rbhb5?&fD^~QQ8UYKkU&FgYKcT$E&Ru; z+0Awy?!x-Y)={(-^C#znt6lanvG+y}_Na>_BGu51(RT!pzMi)H>I~otFdp*B3|4kv zjEAn~GB+4^T6A6qTIF7I0Gd3+Uj2sNUUNgV;8R)obl?s^|EBYP_NwD$<`d6lqy3x) zt$iRV1>>uewdcu)i$`^o;!tsZinZPxl1YeU+C<6J(riIE|ATu zerWLWe!q;{{#ZbgG`!`rl|kW=F2{TqUR~*%77(t==y&TP+a?%LM(!C&DePc3hk{=A z1kG_2Ct=K%$Ux2Uig!3p!d+!1bLj9**}5uBM*wZWv0tA-|8Xjo?k$b#T1DO#bmyPNZK?TL~uuYRc}Q?D#X4I_E07W;I=LP~>==&i2=? z1+3#^5B=(Z$ngpW92SwT-o0w|_Fj`YthAb13wfE2vo=#GVMiAq_={5cn6zoHXoN{QD0s@DDZ7o{|CU>Dy$# zIidD6oVTps0G!Z5QV_tF^riJd+!t{i!xiXQC;Auny&Nq;ke6iW^1nY8z8*XMbu28{ z_CFm9-)0daf5*o3zZ+w(P1z4H5 zmUO737_QtIc*28Fq+{NiGkSgiy`(u!0T%o(lFJ(>r9|faU8fu=`|hmXk%E;cKS)O@ zr&&ixxg63!yAFTS&275cr!CjJ zio%`|`}bs98Xz@3sS<10?Tk^>yA#*TC`L$j(RWm5fwe=o4J+49u$T|j*9aC$y8o5D zV&oU!?G-4H5q|etUl4J2Yt|M>3K9_ust!8my5kox1Wp7p{6CUcmd?@_TqQ zO*8>(4)Wr?M9MUY;EnD6%O#mNp7%1#LHtro>J$Fe)zwAr^+DJC;-hoTN;3fFpDld$ zBPYo@!G(V21%k{ubCr~>$9cNX?u$x7r5K1XmHiMApGYvjRj-jzBiItT3GAM9YizOq zC6(_qzioQm8+#?w5B}fSE1#4TPJC;ux&4>DJb)^wz}%OdYXq>ke^NC;@Eisn}A%{<8GBz=PUeFOl4aBbE9B zt*<1<8s}NN8rKJ3(IvifKie)tHM(bP=tXJ$f_637Rx9j!hM4LU@cFW5#s+PUmlAv> z&Z!w8^+(N;YI+b(?fKWyiXSs>SrY`SIb+OH&8JGLOJSVb9CF1^x#H`@5rfjPXRaZ6 zebmrk+bp+Cq4xhE(QRH!jM#o3E@;SjC=bLa0Yf~Nant8+iIO-vIIn*+MDzS1w>#>- zpY|X4a|T7;Y60$~xp?=km-dlG)z3O?xGO<7m64rt4)#2kbXQxG2WkGTg!_9b#T@S$ z%Lh81L-}E5k9uW9iZUe#pHKB7++VtZzA^bBQOe+CO_?|2Ek{7kj8|2mx5^SqU!8Lo z@un`A6hbbuX^6z)RJzq~36DWM_g`7KtXnxUoDx^$kC(V*=pE>^54g<<+gYRPFerTl zvG#sF6=r?4G&$kjwKR~SWK5~lmc&=+Qo8bt@0>6p>uQI|r^N^(qOQkSKvnysk^GDy zA2>Wuw?h4Bh%ba*u}W&xcAK<(Ua7s`<3uar$^1#ox6)W}5Np7&jj+!*eL>k9tLvkh z76!-(?9y$0y|u_1N6UDlh85!%HY9DLR!A9-WKz?iSV&=y9F->0*6!!Fcfr8t+q2*oQKWHL8Kwo>_qp;E0tmJ5)dX~45 zZ`MQmK+#@-ta7`wN`!101*rTyLW`NFmz@ZR2#&Z1PUzf~RFDQI<|-L-hVAdz@wmOk z2Qb}G+nuBD$4-?#ID2>`>iUW$e~HDEV3pqiPd^jd+h*SLmy(>ZJ7G@(S_kih4R5aa z37d=g=`=^IoYZ7U5K`Ffwem+A^~Sol6cvN>q8gwmVhZ98-t_kl0A#bBmYP7D^KRXBT^QIkP3K1u`Sa5+WlIEZ`%R&OIRZ&Ti4&X@KWIfeasEJEtW;^yq;$~wH4HV^wR1pSCX4E8x&=$OU%em zqLhSd>Nz$o94D$-OKWRZkML-vdYL>s-8^W%t9zK4Zz74?gsAbdK(FCwVm7~}BOKvr zwSK-5Ev_%wtx2~3c=<-Jx9CxT8ULZ!^hFInh^LaKJ@wILdDsPetcLbyebj5iAqCd* zR450=d>R|;7(vqoUSO(&KkxOK*%bU!+3AOQUHW~%#;zlm@kM!7u}A9{BxvrW{ z1PaYvoyMr9DEv%0QW4eibiBbUI}dIAnT{ltI++JF{Mp=*C+b>@Trx>!%dBj1jA47j z0&dT3y~%hj-PY^(X~b7puzARy?mMPSOovH^Rxu)6I7)U3{#+wi*ad~$CR~aqBtOoD zij$oY%%o(iW_Uib4Q06EvvsZpLj9dfQ8!yk@0Kx(}=I(NeJ!`{6z!^mMdt z$Tub|7DfXDG^FXZw^)3q_c`MZ8_gz+CxI^R5&u;MYu1s}Ltg2Y`BItiE3n(MuJ^*1 zCS!L?U`8D2<5^SGGfd2ufak|MTU=Z2Vm$#w!N0>(A}F`?^SdTZg3`%mDK`@VQ~$q; zPT97qlsf&t>?l^DAxakimjNp8(%_Ev|0zVpfBU}`!wR=~VfL(OV~!bZKEY$b9Q0U^ z$dB$7RMhk3u5I;zI2RN^>k!E1bM5UThzU|hZ{+pNlX8sQ%I4lo88mj`Oc<3V$^gE= z{!@LOmTmJ8p#ez6LR>7K(x+5|ZMKamm^8PcvU+ zh79no9;Ft3BBJ3_^eF_A1J3@To*fgWv#`gO944O)(6cIAE>sw>Tb29vcZ}*238J~! zcE-y{au~?Jhp33QY$wnT*k!cD73*_9Zk-n$LWI|Zii1$UMWq0tsan22iZKTwqm<;G z_0BtDNz$Z29e7g=@4oA^7{S%vh;)66XDG(q5J6mqjD$$qph>tKjcIaYovGn6>7=pS zM2@L}2a~wGWu=#;EyY)mrG39d4gT*Tr(ba=H=<1cf9S#dr3}Nu7Wp5dGNrR0{=}=? zWGns**>~gqEeeAsfm;XkCscLPzW@8S%z%UzM9;(nAe=R!HU`!+Av$PI1%MRxn+r81 z%&rlEL0sSr11?zhWENP;#k(9Y*=TN5M20C#?YJfFL1pGkO1wlW1?2{~t9F|hv9%p$%bl-s+-U{M7KKtQM(=4JV= z5i{#r?RmdRVO;~HutoqOi!*}11fS)e5WxQWACgrY< zy?@?>0LA0Cen7^G0(socZSNn8N<2)z9m*l?7ZZ;jr_=Fdm_qc{O}-E_yb11$y~*xj zt@wt^dWEvhp~2|e_0CI!P?c(5(TI%&(N0-0|0NHqe=H33n`-cmVlDZf?B!Jm+yG(} z^Sk=EfjN6S9y{74#AZ!$2#ufTr|L}`UwD9~A`aO8v5a#v^RJ4pDm&;3Yo7(qgBvG81Bf8w85=IJ0#64h8MOr}>e}BtK1R)# zU->)}Fg~{Q9YsYyiywFh%3ut?In1u4XdV(;<_ zd+Lqr{)&5d>_HrI1Ws=p*B-FHFO|e~1X)I{rY?p@wDUckZn)jT^>}yExg5tWZjDA))Z6iNk-J&e>)jBA>wVngYVJkMu6%p3h$ilwIs`Qe6yb7wz=-TV^8^Nn)B{CG-95n(hiKI@*`64I6OHUs0Je1b5v8He z)Z}JMiFe-Zg)EvY;vPDsfFE9kINgW)$K-rk@IJ={hm#MB8_W~v^_H0W4qMx|D8uho z8AoI;f3Jq5|7|to2UrbdwO*J0UJVidV>M*d?eZU@pmw!g)yatnhXV&jrGUJYNxb$R z7A~ltF#vL*+qABhv*rl$el&XDsvoGNqoPCar@j@z<8U=~2$p>FIKdc+S|!9KyS>Uc zZ{ArxIsyWj!@PZ!mC0{0dQbG7V6GM%_NYrW=3L^a!(?h`e8=x-Rxakz*2UPr@3OE3 z++((Yoz(#az4y^0;j)bXG>>vbxDoqSpxKj0)ZI(OlhG?b_lg`AuKMw?5t*mx`{Os) z;^?11@aYK69qbp2)jrtp1viJ)(ElCa#><{EJ?5`7((?_eZ(kQucVc2)=x z+n5(^6whsb9ur`+5yqD9WHX3JwvQDuG2v80#Oh^03L=o1LAY1f+SlH1v`z|E<9af8nL4i3Ihow>0Kha+`O?vp zZ>OKDiTZ;n{a$lx?RWYdc~2ZXBrE^-ixd%$C3nVOFdAOot=9j`W6#TY#uK#IOV%M? zWtL>w&;~N}DB0X0#3fNI^%DARg3TEfUxpz4T!Af>nNg}Grq%|pUY))NY#8@Ha(2Ho z?Z(YScuAF1?s!l|_lEOmVd9aa2*2{Dx&cJ+{~qplhts-3L^HRBJb2~kB6IHpoz$d-z?{Q6YJ#nw{1HD z#)(im0)5l$ymR;qM-!s2jP@Hx;~B&Z`|miKg8zb}*^A$?w$=gYL~-T=s(Lw?|Dwss zU-5>c`FHuwUuvFjIGR5)oPWfs-f%R(m9E}!G=Eg705}?`--4b19L*p3sy7_XuiL+H zG=6V58h}_Sz;h(QeVs=%b3W?V0=+Yy~pJPd(?!%&X5Be6ke6KoCM`{Jt{I0%>kmjx#&)sT+Xigqg{?@R{?${%Bp(OED&f4$mPXX$>RE za3NnS9YkrJ@tj=z`Rw<#33tqE>xDPnIsFmbj`vS_Mc(!bR$*Wj6wZ_9|McXuh>R(m z?oqiqRbC_Bb`bY;jw{dmcX=gHXrnAXdC*4z*A@EIUZn3%Ms=~ZI4+r2jtQ}7{$c14 zDEj6QxxK)O5csFBXeMYTDBo-lk_iPEh$l24FXqo^sB3&&hvTQ+Omp6lvg3w$Lp}?- zFwgZ*z1%3Aa1NGZHT<&>nz;YbXszqS{6`n;zuL!w4s3f1ndWt^GJh<1rl0_cof@46 z=P?|PH=+<4S>EpZ1G;`S>TofC&(Wk}1^IiT!)uS*`Hatabq; zgt}QmXmonF0;cKC+8lHhVsqNA<9LR{P!(^`N*F|P*7-9OWHnqcQKExv_XmSkj)Tm7 z*Evp`BOp;0!5L1wIZzdNBg7s~pU~_~>?icmPNffd46_X}E@XC%`Q{R71$WCRf$3W> zwzCb|NLyZi$_wehbD7}xy@e>;h5`FLR3wxy_2!MWQ>Fv8?gXL*s3aZTmF;cufsLCW~&%1n_3r{sM}F;va9AZ7L86b;V@R)_g3TJG4^6;27q%j?p|R&sSa zeHPD|u^6==i`2ajF{P=dU8RSb8$ABcC!#aOm%E8GJ;8&Q&NJnhbgQ2O3+g_s#JRFF z|9lvysp8;es(b7K&G4=pSae%ZW2=d1=ADXyU^-}ds`y7CxN+Yai;=Lu2Q0s<`!gKy_W0dp z$p!NJnNE40vbej99i&Go+D(A}${b7!NNdNV z4-I&c8ZY}61fEf9dQdK4A^5lKkefcot%F5U~=&Tg>p3X)egrKPNCDh%Q(?2vavKRj~lRV1MiY~ zy(`ZsXmeS&zM3Xvc^q6!lqcp5LHjh2shFtZYAp*cUeL9VSuAAARQwA>-Y05X4N(pbDfoPaV)eQCkPOEDy|aklG3 zr@P>S7u($;LPY8>4_|+kXqs#La*}IQ)?8aY!P(mhXRH(AX)-ZKAWSKfb33ckKeRUl|OFB)Cin?k&E% z`;q-*2yPaWNdf&(tQQ%TO}3pPBNqoIEQSDxsfbUI z@lc8TWs^~fUwrY&q=F8M`BlXoOA5=yU{vD$x%tcDUzHshFrOR>8ae-;DyOdUKMaq1 z!G*E zqEH`0KuK}h7~lmAU0a$#X2sA{C}AzqkVFZhn-7grEi=8?cm*vo@OIf-o-wwM0`Y=A z!JRSEqLHhnfZc?{6KSC{wdc^!5UY?AOHwLXxwoLuV3u=W(iEmcWP$uD z6P2>;C*R2?iv6M=ZLwfb>J_8Azd)YztB{Mu!{jO6NECsky+cslQ zqmF|SrwM?Gb=zv-2<_`s(o$^lP}`B`!vY3mPaFpcKt>Yb!%DHb@=!$T^@o+ocZdKB zf*NDMonVLr_n%!cnfr)c}4gZlDaRIf!|DSmhf8EDvjs*XmERp|Lw#5mjO_1LsZw8M4 zWJ&}Gd;jjji3a-p%!Q8JUtLMDVHk9PInx2rV9TBqqJ)!(S)C83*jl9fIOXdN0EbYn z3s?TN(1eM%W!%W}#2%2P8o{1>jCn>7uCbRi+x*C<_9ui0`gHc04+eBrb{LYlrZDy` z6@2J1{W{tu?FWfFwOc7`(p&ek;}Eayml4zLbfFW`KZQ4Y>C{H~>jUVCt?nQZlwx63 zzV=o>=A+cJyzD~p)N8H%OWiKnU%yr|JpreSC^$-A3WXXIi9ay zJf&S9_6)KrukV+Jvl?ni!~gKA9w-?>96t6sKiTL~Kipj{y{JvE#gKkadWu++Lpr+!BQOinUiQ zq{o|E;%V|&{BSnkZVZ|M@4@m{*`PUn_IfGSgZ0Kh2X(`YXIER?*Ra}^k+E0 zE&c8SxTW9Ed~-{0UBBGY*_&Isdvi-3Hy`fcPQ=8(&~tfsNF&6sV00x|ZP3XFl$@vsv}s!9^pjG5U-G@qpgJtufLv-bIjWtUsnk(rbLB74LxR z`vgzqV99R*JUh7E4X>o5fb8B%=j02Kgh|6uLCtamD!tEo(0mEG}FK9D{2R^mHYnglwL7_k!3ufmZ)gN=N_ z<|xkLs}e6J#}O*gr|&xhR5ol58$XnnN$=MQ1(O2~LrN8qNzbype_u!y0g0I|xsL_? zmiL~eTOS7&qP%6Y!jQ@6l5gn_^%*h;I{yhR1$OL5P7tfOIze(sn8z7Zza?m8wTnL} za1}cdmOt1MrIfJ@Pny(U%q+klcO( za76mMi zJvaiqrtxoUQRiZtMY0N|Oiq?teRPq|cmLcWL>vP3hc3UvUqgK?ka^u~^P(6{e|{SE z&X9RMO!SWN+y{C9wS{mS@kQ`KaQTA3*UEF}fiH&K)45)GSoNvfHv01VgV_D19>e3h zh49Bm-~Ikv8etXuy0EHrb;Xb8eN8<1yC*o`b)JojhShn+dKWR-r9@_PreZc=xi5`# zs<^N&880l|6S>17xky+HeF-3zwr%?rK#IFnAlPR^C;TkS$_>jNYi`U_-1!cwTPi=g zxHf-dkp%bY9hdU6_~hx{%DQzXIpe|W&Hm6(C6ribp3t(SO44R{AtMj zlbm;|q^P~46JywwDet3LiZ#$dZCiPzJg)Z5^jU{W7lZT{)we>gheS98IGUl?`>PPF z;xKMX3>A79NDT3emW$?tD%eG}NEy`}mZ3wC*Q{vBmRVDhdbXmUyLqv^euP$s`?P!m z`?C`w(E+vY!=#g;chqz`qWoht1D=rxgecZQPzU1VlxaQ)W40_S4ECk>H@E^LsL`l! zSth7JZ1^4mF*r4h8pp-e=3%V&5eX+-H-i4U%0nycgEAn`!QDc511T$oE=-raG8f`$ zA}d<`y_>|WPjk(@tW}R=zK;^i-kUPj!W7SR^**n+Y5ql0h;#c7CJIG$*~i@V%a$kC z^A^^jwRKhnH5m(z+qYNPif-b9WpvhFh%1T3?IsWi*Ol#Q`tqQ3|$OD_nEV>qNxVp#ax!mDr{>X5ih9dnjmK zTc?H=Lc17?o}!3sAZVwR#gW#+~*l5}9$rE6s zTA2pY<)pq^nCml6`8AV@KqmD&*qR?(&-cZb#)&i22f1CQ*`iC+{cGax=LcJ+>)LOd z2j@itm)9@TggS>9ks@xgs6U zd)+RiP)i91EhJwb0G@OEFfkFMA=;qnux`Iuc1U{>7*B<5cPn;LMN8veuGChu;j?>e zgOoXJ@)Zd|82t~@#a%61_QVoQLx!c0o_>PjX6PN$qBV}{)~A@S?;Yln?eu6S_B-_j zP!etOVrxfD_3xE9cDX)#MS53dl_S4;i=7G|f>1pNc>;2%rZp=XK0A5CU zjrIZk&b7a&`%@pIF$S_DMBJcm z_8Q~+8KaXWPIns9wVQ7Hg7bo&YRLtpPsCqD;91|6<@V*8VV)UwV-ur4*A$aG(oPt% z_P5xzo~h&WF((sCzTPFGumSgj(txnP8Zundi+U&W} zZszu|`GAcjIiF||Q~DNM1<~g5PjNaWHCo9>KQz71zC3-_yBlvtnpz0Q7m4a?#-aZm zU3e~sEhZG+ZyLF9k<|J^+~{@Bh@;1@?kIC!br_)dJip@TB6_P2iN=q}4OHTN&4^LoHWDhV<~P zuyJG2lHum2n0HsEt_$VHKO!z#$H$wToemaDPLB4rynyt=P3E51as0H4C#Tol;H8xd zJ(KBKOB6z?ptuN3&V;gL*UK;3KfBlpnjD1rIY&Gd8sAL_P4%bJPgNm%CV`Q)x48EX ze%`EY*H@eEx?`rYXd$aQ!4D*{%9Sj{Nv!nJd`8>Oo2;5WSYngsmz^j%{dQh(a>|Au z(cx7{A3rWPBX*G+15_H^=FxEhgHG2f67uakz8Bb1z)VjZ0F+R8Xz^4|9tCN;T zO+QYA0vhx9xo&frt|NMTVwgmHZpNaM4^z|G5J*pMJ)slg!BO{ZMeOJCna)=%YdD=| zE)tfbeJ?pS>%19<4>>M-RkOimvTN#Ihg`C#LaHJC9H?YZMWRS^Q?FgI$;U5Pw6RaO z;$v3L!0p_u!%WTmo~+F+Dt#9^Ggkwy4mi-_c?4dVsq`Tj$;q)r^h-rMI?Dp^_CF^! zkL7>Xr?mu5I$gHdZd)xMcrwZy-x$kl+UlqdLo`G(FamZv_GK^RM~&Y;%2H#vrEX@t zc^bT(Wp$?MCjH8jLFF#w+T>Osu!M?%f1#&Bvgfkr=Hyt;h=rSsD=f=50YA8}Xmmvf zugVB&evKRE_Q<^(Y5-O0j#q|FP}#n1F<=j)i)JbYl)GHf-^51JB#u)$xnJ<(Mkl+! zkzZtV>ba5nVT+8Y*Ci6GIMJ0Ewnd?4W4JZ=t-pe>)fe}vlkAxo>+v)`%CqqXA^N<6 zaTzxz*7snKuk)$zbgSNVSxJk(v`D`|oB7Eh*HJYD-(dpEjS-1HZ8h{fW%I&4K4}!- zur|M2?mld4HOwO_PIWBznAxNpdK&oY(0J9+ZoPPcVQPCdX7=ERJ;>AURPnQK&#esl zMJHkPIS2US*4#^CYj^k1Jgxy@jMk>C3Q3J>W7EB=H90kXt%}_&%4l-RE5LWho(xsv z#az|h@G`$q%iQs~R}1hh8lT~uw{{tg9_-<_v}I9;+&|ElJ~Ot$e^+ze>zeH;d7b85Ni#6n1y0w@AZN@lKQE=Ope>x56 zcXdMKjU9MmKVI++ktwQpbK`aA(dfIo6?5Y9R$eAVuh4hT@s8Q>zVwojkdo-ylLE*4 z@i8Asle9SsSnl!mEbQ{_9{O`bpLt_w`_oDNeL52hy`_b!yeVra6)$y1h<$%vaT@N- z^{Y%@iMtVs8#pY~2F~287MZgF;%i41#RB?PN%xB#pSSypUGP|*d*trNN4$eVIwr(< zJ%lb@Praoj!Ou$hQ{*zI?OD{Wm*}roJ^SyjXBRpb_v1(1*-l$|2(OMfUv>6R zsd>4@Js(k(x#7jPB8kXX5?KWwJ7#$Cy{q3pp$zWXtV+-S9-1zD%9=*CJ+)ImovfXg zu*x_vwKKmlDoT{@G^~@eb3rg%ImgIob_EG z@B6Af0j~E}T|yuE%+P4_LTYd0EuJNRKnFJ?g&nSYnV5c*UZdrL%+gwKCzA}};l)UK z)8D|MoS5ZKPk&BNk{Gj>Q9vnNeV+maHU*gs7PA;l#|Ddk=jdxH2rVy{N_N-9V%zv$+ zSf|iwE@v~xf|SQf_Cz$%YI>5e=tW54Wi`BDwul8hDmXH{s<3r9SHg^9Jl#xC^CoZA8#aJIVm4n>iHSkdVy^s!%(908`FLjfqz|C|1Sx#}wmz@yU>#>pf9JI<=zJuj4~+xI6;~@K%nP zPo`*OL`-J7n0L^@H=v%|c$Ma}k)smsvn>9g;JW_C5FWYh-lD{m=`7WO;o9BrB1{bg zn>syNtu_;7D25wNAmL)>I{AawvNB;rk!zt9Dy?tcI(`HVaw-;MJ8Rocqu>^j?pADgmMq^UXfJ zkfT%k64PPF)6I&@r7Uo}{`H-W(BBaeIbB~CA2uD;?%t_VDCfUyGy2Rz~;>u}L z2XuYFvEM1@3wfC`KiFfYw|4W9Y*u4sJI~xTkR)$hPE>_UmA!Shoxy27=XB5_iL?Dv zWqER`%WZ#6UF+~3;XuY-S&jLpX5EhEkA0U&nU)eM-UtxCXe?vyaBM;03?VH7ktnn9 zW=gHzi=U52kJh#5KgCtff85wI?UPhviu?g{P8t6SD`M7%8U`bT;ZXmyF7DM9>hybg zTbAi}!#ed};+a4t?@l%^1%F^1tMOiSicgrkd8?pkI)5TpqL;;yy`qjUIS<4Z=``y->QSQD%(^&7vX$N z1{BqmXW34fY+P&XomimEAOcWvcV22*^H^%q4#>z|Wl z9EU7oX{@`C&=qb$rnkpWriWO@?w;jWlr>|ac0dw$8SX&o(+E6LWgg{>l1>`>@^f>S zSdkP9tyAzG@s(O(O@ig%Bpg0PtyF}yK9MH)%xA?kJYI43z0{XCN zn{%-R@daH7sN+D~X`N=07B08p`^mXGF)bh8KzPewxa=KySn;$j8p;H3D<7p*?a_(_ z56X?r({>lkG?|Gd8p|D;Gb z<)^L5K*F6ET_r@E!YA}I(XgyPMVu!byCP=Pz4}jw@{0q;LE{?(POz*&^VY*3Y55${ zwfGFSOxxyPFMM-;5lym&HF|sprW0MR63#IbfMnlJ#p7n}hZ(aQ99X&R&mRBWJ6;8~ zT)PwY2IwN2L$$fe?d-ZcXg+7Sh;&s{B1P~Q5Jyrh^wQLBVLeQ0vpak0GXVi^$EU;i z%@jF4v()Z_ry$QEc*of;{UzK+*^b*ODqJh$;x$lLIZ--Z~Ts zUb!Cc1g@`Rc}##)(&sg;%LXm?^cs%Qy`!PF;=*KRSKDy}$9q}wl+jRU~&_a+S+x%Uz ziasP_T%r&0Syao$oTCXx+Pvu5r0fkOqQ{frX#}oLz+IYb9MLjc;_w8-#FB~=gvc0s_cf$RG{b@z@q!b&uR zB*=0~E1x`Qj|oGP7qMV@+Lj*ayTVw~Zi$yM%czl;9;^!+3GD<#x;8In=9*^VI7x79 z4e~w-%~)r~t@mc9hMmeXp>Y*=u#|e+HVd9QOO9BwzG%-4JStt+TsO_@GWT4DsB~zj zs%&ox(K3W)14yl1JaRZ)7x%ETD?C?eBy5bsvJ46al557B<5Lc%RwtxYGnxxwxBC>A zyTER`X>sArl$iebRcpg7mXjovq~v#BnL^SDq4gl>jlFTp@tz7bR>7b zV)iUI<`G5yV@tjSD9lg)oc-f*&{J%1J>qiNkSnR^M2l(1Kga6o>M3>RuH9W(026*sZV3>wBOo>t;SROvp>Q?^9L8mYGcPWO2A z(vfLwJvqfAjXYh!B*#DISB`DUx1#Adqx}`Qt0WA6XoqCw6s@vjObj2Dnar0A*`f1i zpy?)ykfbp7rs(tfRODq-Ch4>4q#x!>FR)Pr^+bg##4vs1L@dFl?AFYpA$l$C6XFbY zHzT?UI8{!=hcR#No-<+u9_F&+Q!?Kj8P+wKky)1+E+0e^dRokGDbKXljr-gbSx=9$L#wFdUPnx^tr!f7Y%shm!|;7(#xG-y82mkx8}`;54V zs>07hh%#e={#9<_nJJfZc7ju9Pdj@h<@wM8BATx)vG`8+yt>j)H5)MY8QXdg?~wK61tVnL+ZJJgKv{qstC#d7gk^x`Ey&OQy<^$K$xHm|j0x zK(bjN;_OG2?ubSbvi-IT6>a;Ce+Qm-1TWWl!Yzq@8t-KJQ*r~z(Qi{8T5scLA4OIO z@*;nGS7Zfmh#blIrU!}u)(}~WqT&aBNEmP+gL|-p_RxU;&AVqXBOL!tk0cDtH~gL_ zOh`;fqR0>LG-H-f{0Do}Lvw#+=DK+7$coL>9PdzQCb)0--&B4NNDaJ0KLa58^%`Hi=#qVm~F z2H)Pjt^|sfE9h6wkeS$Sx{Q|U`j*1f`}ynVB7 zjt7fFIee6@v5PFD%N#NnsuZv{mX{JvbH^t9&9y2ze&e%2R+|OYr=4?()1Wo8;^ex? z1=Bn2)OUF*2R8K?1Gy%U#N(5BwZh~w;P*9Yr=tn0AXNcz6HJE7!cI{ZtI~v4T6>rS zBY4-}Tpez&#~RK*xZDn3o-C~r7VRHTb|*8@=fSD*s~f4T2d+7`{>eV6xM;{}AmvR) zp9Rj$2*;C0>#HxICbW0F{A|)$X5W68wY#ESPNp1*EiT$JZ2R3z&+!I|G z)ZCs3wG_TYge#&}ql;&58C!?yj1lYo=IgqS(Iupj(R0Mi+nHi|z%`C46Z$A;-Uaam zGfl$vjG8=EQm=^%4y@&vt^$NT&}lCi{tQ`vC(%bot<$TxQiVSSV!o z4)~&Q-ZDKjlHBTldK=N z1zvyPemEO2TLYJ^P1gI|0Wq?8-s?Y zwQ<8bJdw`_F17qtT=F@c`Qv~+K*TXO+$?C;Ivzf$@9SmQ0pWS-8%t60u2{@wz2%}M@&kj&cHt<{*+zG-&p zd1ORKh?UHZ|1>Nhp#A*^$g@LT$`3O%^0Ys>9qk^XJ^sn%V| z+S!t)*?{pbXlUpRLK)-*?0hGv?ANMueSPRxBZnXApsNf^cT%V#kY3K6v=X$@egG0O53CUjU91&dW z^c^8^Sy4YU4$Hl22T{&5v^IB^WAF=cDJV=;q{3Yz(|sZl&9Jtk$0q*Vg2kNfQhKbl z+v{lHDGJFwfInisy=gM=4CsA)PVm#jJ002+?wlZwz_TYBDDpuS!!Lb{n`7vg)djZ^ z)CBVsy}kyIE9%hiP!KfxWBE-Bx?m`iU3a5EwLJVe*zY$6*V4(FZ8b*)g1@O`6coN4LG4Wr#>9r8=Wx++(cFWQm zFdSU-d8hJ?IZ3x)u0pGjo?xER(#7xv)nPl?%UYDSv85Z7XI*2H9*Fv;5ZTx0QV(2< z!k@ud8V6C=UuVAu6F)6!{z1#s5aK;7_zJ+24}1&&Pd>ON0C@6&l>y+%dsp`_c(Q8@ zfG71$0eG^)-lQoY+k-4Fy7b^FD!ewVGm3$8n6OCJ1tg5k+%DZscIv|quq4e0>zgTO z3;Qsl5!~sv{7iLh;t}GJk0rd);5D@$6B!umsEegrk)%{>YMOET)w{{_qPtFYLRX)! zb^s0rmGsLW(YiPGil~oT!Rt+dVR*Fc#@M$I#KoWVr^%N@1ELV;>5?dtpAEGkp z3A9f6w^7x_A4==UroN>Bzv5l`|AJo`1o)M&yKe9PjbGuo=U2vl@higrSNuxxf6cEf zLk}r}^pvZw9)%D|=2Rx$s)~2fRbRCw!J88oUkC-mzdMpyg8c=vgt6%OcMXOk%Q^b8 z?y>XF!tym*#>1p*wOHc)153H*QyKv>;sH|mi&pUgu>oYnKd2UfjCfeN3y=}NsFrPj zjCgRd5ko(qE{y;gaqnWJu!M&_-(~}&y5IA;d~Ot;0Rt~Te`NV-vOkhry5*`T{T`ij zEN&tr)H!sc%yQQB0esW-gmak($TuwF|7jO60CoY1lHe_z+5U`hsb?7QDUn(U&}$CC z!v!g`H)F3`9ZD3R5pq5LZ8;jLnDfJU4Xxy2R7&rZr!l6&6PA0&ayyKLFCF~*`}3|; zs9wiU?8GY&IF%|<#v=YU$y&)*u!6*S($7(2G6nO+Bapzeb!7DjpS7-nB-a!e@Y{7C z`HsT)Vjzn$;3w}Mxho<6i-v1sBmIJ-N&>ma>4fk-( zdm8TE^^1lBo-=J0`ksb^x~Jj3tnA{JQ#hlHv1)e$S9C_P`}dt7Vaunqf>?iql^8?I z0RF288$)3}u0QZPalhd*Ps+R0ow*QOka?_v3Ar5ile+Fg6X&hDP=kmOz`J1{}|O zzO2Th*7NjP<^~Ff2&_3y<>#XmM;>PrNX;7)M=9biFHm74ocOccD)vSw!=1(bu!V_6 zLR-G&PHz=Lcy?kP$dCFt8Hq+J3pEvV1H!hee3@~VdHXMJvssZ~J#zB30% z+p7`1Dxw#uwI45r@Lt|BT5pxuoBD3;WtvcpPT3yavegy))VYihny$}d_6D{z@jrr3 z)Qfy_nZWy1_-peWM^a8n3kdEL2Kxb+d+dFtwFdd^IgLzuUz3QcN8_qPdYITzclU|{ zNuk}BD6QJLt+1*?9*0CCbK~z?-B2{zSVu;fRyylixjHHZE(uQ^vsJ8OV=m1&XwRs% z7K|%;EpdV=l_>-UHQ5n;+t$Ore<-kbu6s)CR2=Z?;7dTnI~42J&C80Na|bD`KbLEs zPNqFiL#-*vAHa_BH;0{gSvi)t5yLjE!0w5d;D7CZ&8vQq98!0$AAs)lgC)GB+Pfvy zJkrfm>Fa2^?y`}c2@eY7gITEq!dc<7l>}~^FV5SXVw9e*7KN3XNn=9AGG4SueO9_% z3zVNEi%&QGa20aDkvR758=Wi@&4|SeickOTBZPuP`PE}VckTtaj zi__YxiIW9VXK+*yiR5El%{eN+fyv$O*{oHf;(2#-d(dQXLd{F#$69w1~8LMY>odlGM4a z{bT`jRs#)Mb*Q9Yr1m1UAbpKM`UBC>iux^f3NEbAVe^}h3-V1ioyVW75@L~IaT(?6 zd`JZY#2WA@f6Tyq9XaEtmYPp*Z#;*b(A<@k!Kc9yej__q1PzG0N&=E z^m-rpuei#dTF$UVA}16`A5D!{QF0(1tD0dBfhxIbheu_(5 zWH4{NLs0zyHGy!uuEQ(eZOK6aAvAU#IJNokBZQ@llDEqjiD`PnU!7A;1Ia}{D(vxy zd;;`^vYbQrq2;QkU>`Qq@`hku_}2r9xnxR?(I@+wMcpHyN1S4 z&pp2J?{$8^>1Tw4$^6z)j*o@3@iEyHb_qq8b+ubr52#~MDzL%%WNwBi=03K9NMXaa z(3m^9xvh<)NELub@&Mwj00OBKyrCP2MKGJ-rBYE%zAu)mFa|Ga^fL$ zN-lDjLF1ft%zxb}oP%Z^N39T8WX^Wq}b^X0=e@r@Pvw940}T2aUVi9GU!A42y{Z$ajX*- zsz0XnzC3w0TLJ>TrOTG=|$Q=U35iRlhzmLHUD7Q z!ozT%5v&ZRUG@CBM}m)kTaHFXWwvhN3dd(eGHvBB99fBNN*&OtHmMr+gfbO%-mXSr zo$y_rj)K2Eo${k>#NQ@atME!lkQjo613D4*e=Bc;?q{{##qvQ|T3IWDsaX{Y30w3n zzJMN2v9ou_kC%M+RPecTN6c#?GN0!#&VvEY(gy86tDTBs>2>dD~bKQ|tO5=b$ zGKYJa)lcS11m);|QCQjH|9{Wu3kjE~kR;OMmd_#}xCxIzv;eU&$ z1R3%^nk*{BUzUPkKu$qY+xltUMo)CMS|FCdz0!A!nO_v}oL$t_AB&(olUh^G_M|wr zFGO}J&i?t5F59>Dhc!@lHd{5ZzzH=cl!KY=`O9vzByVJKtdijbgc0xtjWg1Xr(on- zh=!CdUG>VF*E;G@BZtBI-f0`&R*)H6(%1G-_D~x$=rBWmP%$q*d>mO$qu)-T9;rS` z2g>#S?`zf4uqVXF`ICz(td`Wh@^0K5^i$QldshSKlGAcb#-`j%3anaM92RN~rK|>X zK~L2c1|q|-z#^5OnJw!anx$eVtE;qA`CGrz@oA>DR(Uo%U-VG%G&>yR4h|FuOh%|A ze!s}52h-1MxjUQRTsJDuPmWJ^6d0}CWH|DCago##Q~BJbr?=hX*KM=?m`Rdav<^-y0xBz<}B3ga~8#&0vJ zg*g7K0^VTz(~Sqr+1b$x&5fmDGYc)M&io1T;a11TS5DEC_RW9 z*b6@X-U99uD|(5G|F#dvT0oiLj6i|=n%+Gz;tuX9-P?shVW3yCSHKCMr3ZEa&HNAl zsT3ejAu3u00Y~KcCH>sn4}yMM0}X;ktK-eoIK$7z=yL?QRH^dC;c{Sp*;s`_-=|2i z%QxL>@X?k?pGRz7h14M@VsZ9UIQRq6)c+rAi_pWx-2A7`oz}Y)@VXTK(=PCzD~8?P zAgxW~@E}ECOa;9F*NbdGrmGW7Y}7iY8mwIj>lbo5s)4kM*A~wiEKKlR#4q!bu3xYz zQfS>Z;tO$SKUMpdNlACO5^|I4DN8h62J8ZNvyYXr3P^t0U4lYuwsJwbQmxO1^QG#!i^{Bo9wY z3opAikzKyd(p;5aa;wQZ z(*4QZxSo!;Tyo7kYkjM?^6n7Liel4g<93b2t7yo&DVHofKZ$$KWFN-BD=EzLd~w=r z%$+TjCK}>g9DSGImEuX4DAd`Q73|ix-5x_pwzM1U$`lkWOCirl>Oiu_nl8M>v(*PL z)NVj*JX>?&;^IkIs>sAZzvrp*(;SU*_IcEcsO4{D3GsW)qd!C(y)iDyL zzesukg%pUbm*yGKLHzUbfk?xaa=25B5+yBnSt&P7hB?;rbsN;bU?=u$_P4c1dK_U& zHCkhI8Ub#$$)UAgeD|dm#|k05E^8oB6SeQL7qzKTpmWKwA1J<&OrTNDtQG$_Wrhge z{HFsuJe-7bLSF8;bGaG@!=>Mct}RYN`H1?a4UvS{*6=Puql8T)&Ox*YLcTSv_EB!fiFJmX|7jGt+Ed~_fIDPhXR z5HepsRYa97+loay_clzE;ZO5lj>3hfZK!Ja9+uj=sZ*=|8h_eM_;j-~qD8i${ay8L zPjJB5O5c@8tLtvxl|l*YZuhRXw9}iMaCPO@WUr>MRm+U%&gK|k1*p+*9R zvu@YOZ8G|RNLIt+3?7wj(FhI=q>f$nns`|VK85~Wd^+LlPsSdal1{? zKeFu8kHr!;*qI-d+mw8sb)cWUmZ$$_Z?|uZzIvHr3KHFYs(Be^e6}cVlTNXaMqyIR z-qKQL1Y7YaVk6@95i7CQx;38qv0+Ki*`l1}D&I}Ld-7BbnUn@Csbix1ir|l^b0#kg zE=@i0e`|$kUv7_(}EWXFYaA7lB42 zqd*O}U)L?!AqRdk+|$;fGJ(!MP;zXmRauo{ffszvH=$*`CFSwzfbzz*UVcepe!dE* zQ>Qx-C=z3yJ}h9#Fwsz|lUWxy+bj8ww|MNBne1v-a>H<@bXryabc?+7#A&8g zm143$*cz~b)mdwSyU;ja~5mQC`B#?uu2tkMp| z?UWLUtCWp_={Z+pi&V+iu?{Y;d@1pZOARBnf;hYO7Xx}pFBWWw1$e&VnDGGhOoNHI zWz0JxUE*&yQ}Yl$X)|0@D-Bk;xW}n7j*z3Ms8+0#8oBh_`}ND(S||SaTlg!aH`^%u zK5^^}k9aww04q*ed@%OI{)!N6r3Qno%&6-a0DzpuZP2fY>TWuOFs@AQCOlJ_YT92< zmp%vTt{imchcmy@lym-87Q?3AiAM|_TVILb7ADOXALaO82>K)85EP%U&NQiwKDNBo zbuszyi1AxEL9W)YbocAOYlXA8 z{VtGx;Sv6Ui|M#qzK$e<_4YwdbMMdN#Y$NlePc1E##aB+FYf%Q1%2h&H6BPu(jr@g z82DG0F;PZ)rGJ88{BZIt{|rbPiT$HP|JlDOh{gl(=9`z_nNGl%!iBQ{p`BnGdw717G}*(4@jPMoD4(Z|GPjc(I`yF`DWNClT^4e2_t zdbD0J#fJqA5g~_(3U%tT)Y+rDFko|7#^uL-H_M7ChBxLSNE%p_A?YfCCujF6vtd+3 zY3U(2B`d)9aOOBwMC5Y|_+o4a+uci@G#_%7IR16>s$aj(Bad@K7u*sXbm2AQbW@wO z5OP&On_SP&?sP$N#OuYvxOUfHbGF}<6r2m3P3J8Py_^k>J3BQKEnf>?kn`k?+->0r zOxL_KHKyj^-Uv@m|1SPWa&~^aP(xPOZh`*JYBUB^A87a!Tbv@Za#GWvICSi*&@LT7L49%O1tqy~re60^y_hs|D{&@EfZJ={Degg@he?uV9 zzkxDDfvJO0AC_lRnF01i|M7|i)+Tq$GNu=vvA0WVrd{Fw`&Rq@I=j@448OFY zBG+|5L71b;SnAPU`LHx&Bd-4fh+!)aA@iRRDV!pvTr-u#*Cj>X6#Oy!A|)oES71N( zi>U2EXZ)uQRSaVF=b{S?-u5lsw^3(SiPV<*kPlx2Jzp5o)&Dk{sbndF?`; zoEPSQi?J4C{@kL4Z$V$rPzuXo0NnNJ&O^q%hT$iwGk`8Rp+KLDknU{&KR;kO?ltwi zZqIU*Cl=e}Kc1iuB6+=w5RDsZ>+v|{)R^V4f?d@U)6;^)uX)Lh$MU8OBxQrh0F6gn%v=`>pl)av;PiZ53{O!qa3xc!#SmLu*yXv?8I@MtL zU7lLHlrc$eitZ3DB@YbeC`1Es7%p1!es=8b$GZ0~>AqsfXXh)F>XxFzEWNmM5rCAP zk!bVRbE!$=H3+?eoGcU;#q6b7xszqM70WB{C&Vf#QJ#G29y3uN?TPNLA=`>; zAK(oWbf)wR6m-T#T+BcxMqFe?8YQFlb3#9vRC&(m8?tZ6&N_9eH8&t+SyrPJJfofC zie26Ob{6TMha!4eF-!W1Q^9{8n4AeiX0-En{Qo+9x6=H*xJcFN_mVO|CH;N5P%)_A zBd&yF`TJ*KxYtRmn`i8~&D^S&WF}5$!qVGceje02xge;pe-dlZ=ge~p$7$1dF<)Df4+ zy3*QA^VsW<_0%nFwEv)#_P$p7w4?M{luU1B8XB*Z+H&`8-tRj9S42HG(Ntip;m7w0 zK7@62iUo8E(i9ESlm#OrNr}&upLkx!%IM>Ewa~LS?k%DZ``<2TV+`YIVGZ-fzma_- z`?C+e>v5X9{nZK?tTYM40L|K?5mdwV#9h|+69PF|dT&M{@Qq^kI$>Cs%NJtd13}JZ zP8c2%JpPt2{8x7XZ%cMROG2PKz!2?wg0Em6boN_e080G$n!kI^_H;XcF>EYOj6CxN z36G%dY#TrQJY6638*6YL)R%axCO9Y}Ag?t7{RaNeU@vI=Z)d;VDDyoq-l$MqKwq0L zu)x5z(FXcqf!nI%!}4Zr(C^7%Vo(p)+|wQVMrFKaMYQ!nWq28}v zw)MSMww*d2)JB`R_vGU*qVu$GwqQ!AYipi<5|DU|=KET9&b#m%nqW_#&sf9D=f$dD zOJ~=$2A=ehQjk)F_67YRGngT(<#d5y+UW@COK_hjEk)fD}eU1{*Q4m4*xwlcS?)p?x%HocDMx&vv15@2tcoUb4`f2aEBM)&do9eR|6^kPZ zofe0LhEYYU?uDaKbsJ%>k0-hadGa}&uB8QEPaP}8E6L(;q-!NVukrOECDY|XIIH-F zYKxLREoc4>DoozN%%AKg+>#JMFD5B@p`p@?5--~PhbmNF{CZ#0I&|J6z~Ag;ti|JX z3m}P@r}C2~IUgk&1p@=dBJ_2-wJ#6*oH`pGtE;w%hN(=v7YS2AVpW&Vs>Z7(4-~RA z)Q5{#NsgOzsqX7U5Glr8?9Je3V}6qm_TgFow=ZKmLPk_Xu>~|+ z-zgP?m_Gm80Z2^tD`iT*`sX1BNKM8T2q#MZb?A3o{`h+_kpBKXdvfdI_vK7^V1AFL z+p{BnO}x)fQYud8&dTRj;#g-&uZByT&Q=tF%Ni6s_nCYp-J6kc{<@T}6T{UeLCSur4NcPf1~rjOT`Lab>kJj0&Q4C$;chg_N>L?6g=B} zE9y-1X{+beoJ3KVJRJKa1(1_yAR7d&H7J_r)m*^k%gz#l9>@14Pd_oAQu;uBkID~$ zKh0f;ol#<0(OWsn5j%-12AbPlZEu+yb%9E&{Qap6?jbYhC5n)EC-&fXq#7H~-**A(bj+H_@_sG#|TbfF+syF=IE zNdQScuB%Mon<0g}1XQ{2L6Zh7Nz!Z+c5WbLu+{@2Z+IMEB|e0Sb7}lSaUJ{0^+wYx zU7a}o)en;)=RbgQD1H|_Gw=&X|2qHMDB&hN0Yq}r+h@crwrB7hlbMQS8nX&?v=s$ui%l`Gjv+8;eDwDY6npxf zadAqfK%Q)t{wE^7=9r9`YL~`zx)AG{@5HSEa$sUqJ4Qf*-hL;GLsCJjH|0c_py+iX zd1nDZi|_J(!s3y#ep*@av)~(dZ>LsWzZ4I-O8g|`GEUgknRw?CZPyUi)EphwD`a(E z;o@awe3k)w7T<8!lm0$L`cmfu^xYmeykatO`S{6bu7b75tlNji*}1K%>3K{`Yp|?2 zfAv=X9)vmnI5t32Xa1VFiJo}ndTs?QVNj$pTSToeZ_H0>KyaJwU1pcwIEKKqHa%DY z7JWds1-bqW-A)qfk&NO+3kbbI(>IA^JlviJ-Cdtu#L7<4yZMJoP(cG!`nEu11yk{O z5YSWXvgx@HVj3RKZ!J;PWr>yf0h{f?R$E{V;a?;tq)>9v|2}Z0~EeVsHQQ zn&F5KWU)v;(I0)bUN)SrrT%|RnasG}?k-iIytLk%?ha&+zx;Bo5HKzrvCOjiw`NW^ z$MfnQ7_!zB4F!3VGiY{lM*qErLnEZKPqy{_;z(+1sdM#$duu8r-nzJBTm#R#zbWOZ z;m!NcYN;eivo}lN?!ekfP^-qOC9frIin`Q1iJ3W;R+4zIsRy?%98!!@8cOTfuDNy0~~ zht;R5(Lkq`9>HiFl-vIq)ix;C{ItyT(fK{~gtKR^Ndhyiw#iIJP}G+RZaH}z|9hMO zvF$(N1Xt8}H|D7+r8jP4waxH0HO*3faj!kR78!|?xb)QgyQIN*4=8~__lO0zse2LF z&FB%{{~pthoy25cS1@BgHZ`t3=%D$96SOi(DUT;3C08@(&l(76vbbHQiiAg+v}IVEWLFd7PJj1Ho^+ zPw=LiVeu9yTyei+Yt|%Fl-t?KbSeeO@CBH9wd`XtYY0M~o6MrJ8YSc(FAmuTHIFv) zWuGbx^8ODQmf~sJ-Tw|Wh>tr1n)`HmzQoBwLkpY+)7Iz3fzT%`<~`AYOcju0S!O-D zP3``0C2Kd*-r(^X>*((5-la8bE8dx+2AiFil~s$^yfc7ghhDT+?s!-jV9Nl%qFyQ2 znk-QRFw;BVLv@FUTGOvxNx>d2sQmS}?FKk2u`Z zJCCJLJa(gePrdSDZp~!u9OFK?+Qszf8wNbnG1qw$t%=X>b~jE z6TYfZ`VCwsJZ7=A5HRS?i#kqiQ!QrX&$1ss_XV;l{Cf%Mi%$^m!R!Y@JHRL)y&{_$ z_y;ipsAEN56D;CaKob|}!+rC9B#Z9fg17HIGyf;v=yw59D%L=_0hbE%+r~;{pIEOW zfpub*v8lRhs3D>ih_FkKZ19CU?99i*RAj-8N_x?!(uJYi@l-GhkAGW^MnN>j^9aSf zx6h{>F|ZMErq-kIn3fb@kxdocCsklN5D>^nLvcw%y%}ISe%NQNXMOxvQpG!bI`Sc@ zBH9_(2P9Q0iX%;a@dS-ZI!sOSGl$=Vl~#Pk#H|RubGokxIX>l-Tw!;OjioC5qdy_y zeUm}pp6VYU_I>}t0^pA755D~i*tTS+``wxl5PKh569TtW53Yg(1n-9~hk)37?+WHD zcz?k3DQBmisA~-9{iY8Yc196+wS%L*?Bys$^BFb*whX!n?!J93OQ-n<0*U9LcIIuf<-6>@=*^L*gSE6a18?a zs9#qt2l7$(E}%jIXbenR4&$;tXMv}dj{I+*|>F0LxQI|pyJ;CK8HbDsaG)+5R z+(`xYM(w(8^*I+NP+T{sTLf)&%O+6K(<9I$(3Hi{&%Fbo;u1Ta{vYoFT-E57`b0Cr z-EcU^V%`6R5ymMWzVnPyJ#zlP)=F*;ssFol&jY%_YK-u?RI8eb!f;HL#ZY!ofAzv4 zWN;--G?5@SQ6P~3$;kMvF`SWclK)23=S0p=X5>YY3DcpFJ}auE<3{^{zM0v*>B|wD~GNg)B4N{-@h(8>oD6pE=Inf6tDi z3`r@BkY9{33n1Za#PjVYYQ- zi@+t^pFt@e`k(W?${k`-kJ`E^oPV2hKY5Sr36%H(sfX_|${4%&f~d8@-!1|NX$04K zKl}xFMIPp9m977t44_;0Ye+qu7$Cn~YuP)x-pAnFS%FI{pdYNq-bYYmX{-_^)#frY z2U;ozISpdYKvSf!57x}b{7(%n136Rp0Ay!!y?BmXYv3Lr#`E_!n~^P34dUeNrSK#gtcUZlbX!# zM?N78fh?);>wTHKLb!6wTZMBUeG`c|{%a9*&+lC%;P!uB1b<9SL@EE5EaA5h0rGSC zuMWbqY~gtk{I3QCWD)$UNPsMYe-sIjMexrl$RhaSkGKJ{2tJ?svk3Y>FM>aw7eRyP zMQ|P4y3cRQJu1(tEoAk7@73F?6aL%LJtnH68fM`w0j`>AL>G)Uj5d0@D!n^)#RQn4 z&L#1ia?c0s|8VO?8WHO>*lKgqY)1b_qx1_5vDOS$39k84TxW`Y`|VT{q}=)|{#m6I z?0lDSCk9a|t&#rQt5<11sjET~oUy~(g4x1S-95+9aq#>+zP#!(@EQ(wAX?>KI!Hp@ zjjdqttD5(3dVV5rJO2Rm8eMnK&%5K_ZLkYHt}3N>D_v0zq(!r=euy;JEj;`?U;2ll+IF$%_kha zW1yI{i0y})_#Edio^deG8eK#>6`mW*qZ;D^kyE7iP2@N`3w+e3NS8rEw1E0oDd}s+ za?I>B)WvpW@sp3JBKW&`bF^=b?F{{UGT45lk2#&0pH4jqv<`bRkJVZ(I@^x zGDbB3?NmC$YM+TgWTcVVYxf49Pb|1sb+vA(I98{W-`yNdK1STMt6*`pDj^B8sV~Hvj!(cB)VY57@0T z{kXylEJkANMv-&jzjgWH9HG+kD!N8D^*(^Wll7cj9!=+*TYi*=;<7niiufNC;xeXR z=vI$1ChtYs``?$c$Ma9+Hhl5c*Y7wDDkb$8pd9`GRe$SkFH?JXjY3Ed&EAd*TX}<4 zYy#hW1}-Q5&AzCSs4<2B6eF$1jGqY zJFz1bzIa2?_on|v9??~y9}B;P1$|V6VH;A%9Ykk?R}Z$WVKX|L#guUvb5cict`?5Z`q)zk?zE@kCd0&-JJ;E zy|=@i)cwxml2kpKj64)8Z$NlT|d9jud2QyVc^DP3|!G zi+TGujhZv9KWP(@lv^WSgH}Rotw3IRj1s0l8R>j=#D~wP<`XVqDm$Cvd_5_FSUM~E zAnRi^i(!(2TjYmqPcn%!;g{b7CMr}+$BHluAxK1k+0y5^*$_7bmXv$y)-N6V%6<-5 zI znoRp@^<^f$PxOdUhqHOyli3a@{q%h;FGo}g=sLXL&|#Pj!|$jo(e#LM(NPfP!|Me; zHri=|1@ZJJOTUlI?Boy8Q zeRrv6%AB2p_Y$sg*e3(|rFg1%jcNVDF2!JUawPEB(R~u$VKBPCwNtIr{cR$UH-8g( z@vCa2;4+aEfDa^gjr?AI<2qe&`cl1YRJJhr>ckVdR)`kvsC=F+`TNsk#~z8LFa365 z3vlSc!>!h@h2*x|!R)%y+6!s4w0PWk6AiFf=f(9bAun%FVbOHzwxjMm?zbNuA{@Y0R2Cy&l-Da??oa)bt`)7@(8I9;*WF;B0(95OD|9hx0+ zEI7OlGA?JZf)GLG)BHvm4@uJh5JAibTQi^BT5ph37gVXQ&hVCuvyp>#g81u@MMSz! zk&Vzp7pKm+Eg~Tq3T%(=-hD|#8*GGMl(~PHz4(*kF^{(ZFf*|a&UEDb+)AqT?K4Jn zjc1fxNmD^VRldac)#$q5E&gD*U!s{y`HFwHi~c&-Omdm)R63%O%l?IoP9sF$nNN`a zhph200tjS)*0cLRU*L!!ea`}e`6?etS0c6sRSv}vW{3}=KCcxi9nXcBCX?l&(nAF0-%jgiS|NgRuJ7+rk;;2r zQR%sm|DDK_I{=Q>>#cd)fGH^-zU5B0hh0;)Y|RBK-LxZ7KYkWKRK@T7Id9CT7o2Ew z558=}IE;IrWI~KjLacn}Uf94t95%?k@^!uK&^@jFISMC4@L>JV;1Gs|_hx?8EHD$r zm-C;2YiMKjf1LtW=>PbA-C-ar-=A5!cAI~%N%wm3=YGrY$Kapu-IFH=kuLxX=6{ab z_NJ_w2}NZZF3OtqSo|10O}^w$Xp}WvET9ck^okPAnkuM2$gosWSEKk{WQ$F) z(Jr=7nHk+k5+oJjRWbD6s(}EQZ^>d*3vo>>+LsCx$882{uYM>i39`##LpFWIQtu66 zgE8KSqx=y@S+`7HXer@>Mg)o{_Ig-)UJ%!k5!bSroi6a9=!hG0y7ffimI^ulc9>{+ z!5}cu{>e~=LpjDR=Jk>TGUN&P2kWyT*n zZC7oTp-*(3poLN-K?h}!=0BeaHj86u^q><$4O^CfKNBD+UD3mI%0g)TB19`$zCQwE zadIFJ1&%A7NUhL>J1;(Xe;vZVatM;*r!Zw9!@B(jeSA8NpzQZVq1r=CLtv6nmE<=4 zT|35>-H!UGrty2YJRiPK(&i4|JheRZO=vu0 zG9!7+rKM`d7aF3^X|R~*U^mD%C)FbzNE}@;>bd`A~g}x+eu#D;KU_6dn z=ayUDAj$3ijOP}pKWhJ=JoV%J{?5hOJ8d4-l8VSgA%vaW@jjgRX*SED`*`7H@*A9& zHmVw|l21)Mp`CO;ne}{he(+R7ha#lD*00Q26td&9C4=W}@YUow9h7&<8u-X5hRVNA zXs(?hIz5Hnl3hlM>$obo{PUgKG7XKS%#}Yu2VGhQdHeXsS_%0t?|`{8dm3BBPCDgb*P+fr|*xNANt_MnhAaIV9TaH*ed&4!ODgK$?xbW6s<6` z&M%`Ktmtl4HC5nxojvEdz|^~K#pX6KfM1;G{9O!oEe^K9Y`l-l441r>gdAvvBkt^} zxUdxg;+$rj#c>jPyAe_B{p8q+rq2LxWnLAstz>0RDhJX_ag0#vW;+~1DtZ;%2UY3f zG4MI@VBY%f!a(Weu35onsp<2?k_~KM^=dJ3V;0YKZJh1zuGRL^cWq}0=5-!lP>wl52*XSGVb zspGY&6n3fE;4>VqX_-#LPCsVi1p*l#`R>2lVsd=?qS( zu6nBG_nhBWT8kdkXO5*2v+A^+SE&H5BGN^=&~8e%3`Z_ISma%9d5HEQkaaeIEf@zJCA z;bnzQ+ZFfe_mEs#9)wNyxQ^XEHW&G723KS7TZLx*n)Q5{bU@_KzZKwzK8`-lZ2Z5g z20r5s{Zf5Eyx}`|u5RJ<>(;OZZy3c!u+4D7LW18h-*V>(_x5i$Hddrh$Pa;GAz>kS zfq(1bVdlF_M^EI!sCD=}=*Duc-dK91y568~P9-hwvV*Vi<1j$fr9-TG&K-Rv8jMY( z+z9@hlSae{5eoqwVvs}t8(^y0OZ$4#*icsz9hxf zt0ae1VZQpsmi>(vm7uxS)QpYa6{j(`(?xk+I(OhfjEi`q(e;St+w&=s9L5L5<;xnR z_2L^r*V@wK&7%aMyWl2~5a$5^cqqtj_^5ob5>~yhlyuG21a)r*VJ4&>SC3DR>*ghERq3yQxUVeRI5Rc4%@eR6bgx4dVWo5y!sn_jSBV+J2KR(+w zCfK=IHS>N&yoq7x`xP6*RL`9{nX2U|w<_;eB7lG9!g+DuA#)-F zCq#Tyy}Qe}!`5rbY9za6z4N9~4mH6zwZYcDmf9yro+@bC$(wqYCmK%@fZ#K_*1Dru zTuf@c?H*vJlaU`Gu&y|)Y&)ff6-0;ktsY%9fr2^}9Z)7r#{(DtS+l^Dx8W`uofND+ z@?gcFFrxigF&%&?uZ@}eHPL}YC;Oc#moivreP(7ok)tUsqJUL-*3n52#Q5Q%K0eZ< zLZHXpdU+WhrWaUcwCmI`=8Yeg4DoN2k5?a^M4SjuzL|uduunrwcpoR2+a#tUuykHC zEZ*(z%Gse9T0%HCT#LD55Sg%39C0}(k3GYUg;}MENnJ_6S#iNQX=dFCC^odE*%D7F zTJyi}=!PCdLb#wn;qS`BTOi(=%4u2SQ18y4SR1$Gc5heVu)a=~`s1TP(@w71y)>3Y ze2hI6h%BJOyn;QD8>v_ri@*d3Nc@mfSu&_SpcwjWqG9xGqS3)uT)IPSMgapc(EzRX zRu%`P9LEN}?z9u{?9{DD#2P8Y(Rtk&M6s?x?J00ZFl^_UzdlQ&Uh`<)RNOpKf!=O6 z)&VT^3|OKw1~Ae6d^bqK(LI%h2R}%ZDxb5Nhqy_o_Bs)8a#0kwiuuzTBKzjxr$xDI zyKG9KUM!EX=X$x1EnW231-x&|qZ`olCeX7vUh@1*M z`9`JTinO^EeP5kCu7l85#y3@0My_|>W4~aUFWOxF<5Ni)my8{IyZO29ZBC)lZptW0 zl~R10xbvba%Up}jvNn08)vMw>XY z*~vM+Bbwu=-eyLLq>X(ouQD4Mt`l^&3P3r#rKzSukx>(Ah>86+>2k;7MjnJ=UQL2h zSlgu6Lj^Zq_`Q66FuV8g$-8~yd--RoW3gDYSTuX4n*EDbCcz`BJoaiVEW1`1XzP!j zr18*|0S9uQb-0KhbqYp{i;YjO3jH^RVQc^mM^}TgAtE%ny)2&dZ2bjTTk7R}lGrpT z-~bXpph4&-Jo$b+;kDX52zqenjnwbKw;%mvcPpnmw(B zDd&iGMRG{GMBbYB^vM3}Z0z`27yEvX*-9=3kuy(B#5ag_dk1pLU`G{CY%@rdNk}xa zhT|%@V$_hLelULg18fqt_NQd+pYs#9g6&rC$Nsl4z=2Mvh4Bzj5%BrIRnod_eA!)59>fvE`k}&6Wy3v8Sr8CDw_ksz=~E zsBT6`jc~1P4%1cGZ_~sj3X1t7HTl`Su?T+-6(!gvuE^&WQ~6{?D#EcV_LCR9ur^ z)B0E6X`L;Hr{faeihzmR?&_13E%UzKU5N?5i}2_=%M)!TPT{0%ph%m~z6Aeq+|dR< zf*{|!KAIY1Hn8gmR9OpVru_CIVqU4RdJbL?5C)5td zy}fuMQDYw@B=ORoFOcmO=jb_tH?cLbXk)Rw_r9bhe)h2t6GyqYCklfP4yF8K+MrrC z#Gn$|i(5V3{;)Fh)62!gShCHW)Sbc;d41iF(M)D3oXC3SXS26R40}a)4xDG59b+R9 zIDjl)qDcxj=6?MXE6J$ulwO9_naP`v(fWS8UX={Hg$qKX%f4fY(X%6hMInCuPZc3G z*V~ixJ24BDohv?tm4f{Dmy3Iao85VGM~#yg8c7>&b}OCjV{=>X^-mGm4ZI1HG##A5 z>Sc@)A|5@J?^nH`WviG6@+98n!VJc=AZ;&WN(DqK^4GC#j zU#4F9q$>wES*a12DwXAXxFfiCk4c$f_t;nVIDxouY%yE%e}AfqGZ% z*Ya7=MsArIsGY!Ng+gOBB;j$cQ`_HfZ2O@klK+={;zLp2O4sJ2$x=bTOo|SNhvQfb z*q)oXZ+55Du!&<3(};iOyflQ@UFbn0?xP;1|41iqGs#=)q>S%?aRc_VX_T0ADZ<-8 z;h`XEBOXNt)Q5R}2oye5uqLDPv7w!JztOx1cFeEb^!nPi>@Y=Kzd-^XTm8v~E$4~H z(_Z!I`XC0Z$_&0P$$SWQW-US)HD%}6AbwxW)8o8Q-=1iPpbDMtCB3#>L;@J_+{n&+__l<2dMHnt zEOWGs{H?BuH~m8E!T3p3!zp2QHx>#S| zpuXMt*q6@jKaWbNxbA;plB{g>B#&$ttBdQqF@CB!0w=ZC^}d0obeOu^6opZTkB`Pr za<;s;SXXDADbf+0O0VsQ0@^V}7+-y^duvG4_J)bpo^TIWMH8azvYidsNi3coZI$}G z(okZM?49~#Q8S)Au^y(6K6<5l{lWHrO$dE13IyA49=vnQrxzq?XT7s-q|en_Dd0F* zk+Ut%cPG+@h9Mr7^uSBO?Sq5Y(!G_SFS(B497 zZ(n)Rdaw0p7rR!jAU;nq*O+%?KWC_Q=t1oo`nH@)UAdO)OuV*!r69h)2;f4jIZ)az zWLJ@-F3eb|-=-Aj?c@l&^~9HZjD37ZJQq@onL4*bys6);7}^uavPU_KNpVH$aYlR2 z`Gx7G1Gs)Lbdv2gpK`o3l)rP!i9BI%@3>W|iW9x5c06keFgWAG?py&)Ai=!P7mFgj zq`I_W08T^Mw-ISa^qm)6Pek90nUW@@d!nnLc5&qeQjziL=c~1>4G}1w{+fUZ z^nh5elz(^ekTj`ax{3QY@~F~ql6`vFj~e!xo|q{JcT0Zd*Q| zl51AF+`656sU0&&Ge{LH%P8_jkV|uSF3~jTG8>3#m1t{P*@Az&0=F-35-X-eNe*BA z1*X02(TX485#88@9LpU>!G{9yo?kMN0s!8#(Q#8kk+1gF*c#}}6Uvn0()zIP8#A@# zTvs_&(z?yx8t1!ug`+W{P`SBTeg7k~+RO38c@1sS8}3oDJvNtn5tq3+88x0-Lzny6 zV3~gd8@4l%bC4aR;EDw{N#9+kYdFkfS8zGXu8A*Wn04+=ke1gllDlizew%yETP1>K zO6%iwytl;RvQ%R)MU4@~b8Sp?&Th7ul5>@Jrr1ia0Gdu$=i*Lmu`54c7G&XhSK*Pk zYRX$>s@0m>+YdaJmA(q$l=A}WR-NWcV>Rwo7eCsJA9JMWjpv3lXG-}|!OY_1em!u_ z5wo(h9B5h50G^n+!AYzJUgEl`!}wnn*~A8QU2km&y*V2?nt`Dr^V)&325$VWjC9?D^=)GrgeE2 zM!1R!=+=^0%Q&fr$1e5fWA^iyq;Gio{?V2?JG8o>V6@d6*-$7W+#E32?DqQ1t&kQh zNrh&|s$SXJv~5c~zIac`a^WS%(f;7^roX!Km~UgzVQ|^pH4%8zH>Opqvy@-D$5gRB zX4la&*!N+Fsz5xqcs!e{$>#XNgob&6J?@Xcvg?q^q3a)iWmnl{aQPkO`&;LOZ*gqa z63Q%h?rs!BCrdc;Q)!_k1A@vGjQeftP{5vOs+Ds}P~x=XMLID!5?@Lnv^5YE3?V;Pa4i$Q$3)`{)yu_2lT`V!Q8f z2UzhvHQm+t=s52xf5HU+&h_g}+E^$fz}1eG&?QwV@_ zW>QsEuE*nhm(9A+tO&J>^w%5A6d=-@31H*U%OzK%3(~=o?#+|^<^Ot3Q3{1@pDrO- zsgY5QaB%`nrX*HZ1}jjw zXqUI|F&3pEH6v0^a%1>2;HWzMe3j;*;o~ z;8z+3z{0hOySYb6!gV*f<+jwfj0zN5eIIfZp4D_^*~K3Xt2l$L6XRw16Yn#?;L}+{5lmXg+V?AGVfM~FFh+~ zmHmt!Wf+&;Fg@C^0k|714&b=FCaCvKL^K5eZl5zYz6Ur*j)4d}?g@=w8y%$WegKt^ zaXknOu+%!6=&4cSawzPZBo*ex{y|`?1Yi2f!+EQHD!vL19<9VI=fz$L;b}RyumFrD zF(;&Y02-p05#D8Lh3rVyqGvovmGGyf=&ML;N8~YuuEec;npIX&a?Rkiz{(>W{$eHn z?dlV)pU3!S>-h%-u`!MqA%pA?tzjjM@6~W8b-`5(jEF3934kC->>i=0XNy^}m&*!z zRIT=&x0knit!vt}tkIFKy6E=%?fHly6|E@1cqw`PiBn&AKk`WUM(jEtZ1%@0?C<*K z^G71*9^QP{_u7XN-FvUfs^1!^v?!421Sg3i%|Gn`D@0v^rjktlwxmFJ|+;@jD9a7PJ9O=B!9Zn?XYq_1x_S8>gWu?DUp0k#KX<# z70@ku033E1dB>c5U?4NNz!x!KC-h@@MRFio?6BOJ7C3kh@!ss%B0UkJJpnlR;bB0c zm)rc%J@g+r;+5j&GZH~Wty1fwR=OtjhUzQzNmidJN{5ZP`a!hBIi+tH3%Y;iRM;G) z9m!B?5$+)gkjk&lQ zz~EUQB3#)|8wq$d8Gv7iGj9ByS47xoQU>rtV?<2M3{UgrC%*uuiySIRGr2a$j=JSV zcW0A>TqpXLYZP(arPcRp%YB_`J~uH194hoDrdrc-_!xXBf zPN>Ts!P^(3Cw@)*QZj6v1kqbtQcvd}mNq%6{U#W3X5$}!YLFkCZvtAi=ldI%OoBg_ zp~@dvFmdFygHPA~c6*OgoB2*Fw2lq~8A?*_GT;?NdlnF|cRtF^)i=(EO9 z9vrA@s#_G~%w4f@nI1VV#h8kueUfRsXDZ|ZgQOg~A8+?5mVSt&MI(J-5ft_+(rL3T z=3=U2(t3ACIgH=~4!*V&Oc^G>9n>625EEyri*d4JzkH&!W1`aEy1^l1a1q5-%$$oR zQPxiC9M3rNy?A}lp0czgOI&04HQ5mGxaZE92JDa@dy6P^oDdfVo@Bn=Y0PfISBQgI zLD@(qtfZ(%LCTC0qPTk7V6d9QCC836IIWdhp$qh$_tj! z5^An#8i1-~?VGh|K<#MF`sjlJ^63P@A5C^>S&hMG81oDj$YrU};B&LgYI9fs&brz`22wHa>;-l#nRb=_GbnY6()+k_Do8k>5W3S~=JMwpc=V zalnsk%B~FZJE2}NDV)b!wm2lZ$Emr3x> zJbUU3B!vft+N*PRj~_f+@#cJ}yss+L9=8T9j4m&$Hg}}zUjO)lI=7N_jqIJcVoJHZ zyD}O=7q9oB(UP}~Sp2N)z^gM)V-VzCw;WYhSUZML9vk~(>?P*CnW*Lo?VUIfMpg}G zeC6>GZNX}g0j1o7m@_C{ke(qc4{w(cx$CeYfH0cYxNdDdnBDn-NF@#)bxlXK1I9(@=%* zzw};&*YMN;W=cm(V)%#23*iYtw9b)|n1z&kSMR zmcxIneyOn}(LF?K2Ut;6NO1h+t9d;&Xri$z1U*YxH$Y9P9~4u9)l+!OttB|6Z{B!e zJuJSYP@aT$K6`7QcMKhmRQe6K*X3#f3y&msjf*9|IAH~)T`fV0K3uEg(uTZBm9g#} zAkm8tk9h&Kgs9``?~unsT5WqBI@|sAZor3lj3fguSU;pP773LT$DrqT0ITbB0PFLZ z&|A=*k9g2r0IMpLy6+CO3JG8h9EQd{EWce<87UQBU8%`WvU`E;HxT0d`kc13Fj&14 z@q~2u#B0nB-JW>};~0%$$&B1xNp(|ieGyF|=yPS45W)>S&MC`CBYNmDd5qRZ6u-B> zrc-P+9QnNkoJMC_bl{!|cLtd1)7wRw&SvF|*BX_2)Fe_I*f?@FRtXPK9$S+X44mWo z-%r8J2;%3hVViH)seg9#sRSRT2%KD(Ow;D@=Xe9xd??88j(47bbai7@k%6DF_1czM z>c&{{vV#4wp|zW4d$dwDFwA_`Zd*udgteE>y1^79CBnvd4^^K*IIwn*I@uv?J1|uC z(+vLB=a~25K7lXl8{QODyHWK1dln0ug2@tIoaj9^3)U4hpY@j`8(-^2S7!WYptX_A z8M5l12c=Nji{(Nu%3s!DkG!bE9@D;o9n%)Jf`Xj5uJVC1KVq~-IDq>1{6$Mx$kZ|I zCg?HkcMO0DN66g#&%IEz9~gxhU*w_RzQC3c6#iTOy-?+1*uvP58^00N#2?d!1#h6- z`Omyvf_c6pv>>!#-|fgcdRBcHM;Hh0{NGQO!~gu*uMUKPo4tDYnST5aSn)IMt2v*mPGy7li{sSn|~t{ic!%zpp|&%&CFjO z?8yVmZqsTL7aHiFK{w56?{qB%CS9Fnq7Vx(E0EW|N7oKm=r}*_mma=6*Rgx|lyXJ2 zY~FCa=*)_D)ieS_KLuXSL7J8q(k%;WrW5(c~H=oxJ|ZSgpFOR2vdKSVV|E* z?-TLp!nSE5CW~2oGQOgcBiPBq<9s6`Vbtk*eg7|5A#U?Y08c~^U6Uk;T0_`VRMD!qEiVAT&Tk%2rL9u0r?}@KvF_VXxy3I@#bv9TJ=sBLkmk|9i)3QFRl=8NS!nSN6HRn0+iBDI}VXB}-H=)0Nt?I*;+hFmJ?pLWE z*`^4St0AfwP0(nmsOcOsLU0u=HCH;ag)kiFohag>cK?PfiY*~&Y3}F`WPKX(?^jXy zuf7t(p9up)BG(@;8_LsHpHU06?E!0@;(H%Rd{U>xzN0GsQXBQfTMS@{ys25LnA7}a z!%;;?pD4)YKS;kZ3&~GIK=MIOupsa^>(?RP-gzV73p0$6U*2T63dGCp2b=BtQ>$*i zAlzYaysntOOL1q@7Y07sVHI63NKVw?adRA-#>e7KXUds8J1a(3XD}`Cfb!k-(qyyM zev|21ocvpSr$Yemrp3rF4zUBNjcnH>hSVhsf$xnG@;6yp>7VkFsHsAGIYuF^R3sfp zSd{hPEjzlD`N>e8s-5{{-7N4Wl75M*Ln?9V{tEVyUhW>2KnlV|@}(K8y$=h1vn{o@ z>JG>MBjMNUAHpweFINgAg4rCi_P9v@vMKZOrV8cQ6?eV3wh?Z08P?ed;&q-hOgsz# zF4dg(VUON7XiBh!!w*y04ZXX zF~6XW?fKJO-W=cRdHu+YG&`@KG3bNaU-!EV)@p37L{H5sj*2$ zV^aU)aQ2F~3&itnL{2tJTqRf3&VF%er(e;a&VoWmy);U`=J0#}+!13amk)a5;rF(C zovR3Hqxo_b>5(cTsovcU;8*81Cw-Gq^i6i#6+|^TyWYDY=M=4{3IOwcywTWlia>n$ zt4-#alzzw+p3sfgD^9 zuIC3C$e=^Qw=H)w;b7XugMiG;dQ3EkBsm`p9e-x-U$8pr>`d{#j4RPew=g_ES{AHK;Qdi*hFvR~O9LV_=Y5#5R1%R0@3u=NQfXrsp z==~3YW1*M$W9^DcQVEU+RY3zu=}1_wvZ4Q0jZXIZ=teSr<@i@RtiZ3Y@HewK1UlN+=iDx@IGVfZg1&So?_mNbZTNmh zM6`%da?t+4Gl~NKz#DRIo`UqRHkO2!rkOmmTcQ6J*JkP}t^{v_uAfD%`%HS%RtVTXS z!Xk1r$=`YkbL=!d|1!k{afFZEmxkhw^9mjs=30~k(9lTdHIOrT;-R^mgqko)HcE!L`tQ7+0CuhI`KXEQt5pbEWLQ5J2aQ zm&Jucoa)4O{^8^W`=jJl5Mr0+YH_m^9@#r)S1`g4b&G*<0)FT$s0$IDeX_MQOdV6} z2!wd<4vDbX0`s&x8Tf|{6(I=Uq46JpCrpDPGD(ijB_cD??g^Xa z?0>|(135mNdzHXYb@Dvo+#Sa}eeIsdcJZI&l9VGtm;GeSLm$o}<;*Dg<{o=2Ub%+& zLUVM|rWD{K?WKo{FOZ6t0q_Q1H_h^A>7405EPfJpv!0wmvAxbynCcIz@{B%#6#%fn z?BQmg@OXoufHN=2l|4g7KCCL;&%eC%{@9>PV!Hr$nxqBMdN-<1puZaDU$ zdmkJX=(Z>6=Y2|i#OZBU2lHhy}AEzb{F&v+^E(@LnY3rth^oeu{bW{}pFN3p* z=RC99~{559d+&W2*1*kv$dr{o3HvcRAv0+%ug_4t53a{hM71_pYL;5Xm~zq zC+fhFK>^=E(8tE37d}IPElA)eIXA7tY_F7*88AL-mw;h+2U3r^AAa|+GG2wyF&P&? z-|ChzP~k=Hl#uB`M1J3~g@GO7D;!A5EIBLgD|DGF#gAwfym5ErPL*4YdnMGbl;YmA z3*6k77BBRpJ)qXW*5FxH>m%S9&H%XKd@E&I?>GTHX89~Yy1REjoZf}bPa#5+{j&ki z2Shx?Ew->0B&`*#h7dKa#lQLa>ESb53hzee#On&T3Q0e;qYS!;;zfQtiYJm=oyQ1A zodjdw^w8``@%_GS@Mh{EJ6|_nR69&&-9h}N-%6pWvk+tAvg-Gzs5GCr>K6IA&MlrZ zTkgjT>l8WvVCu)jc~6fN{?)W|sX8KfqF@dAr}Hg#7Ee#j^9u@XL<2GSLpwz;IKjb_ zn%8!hCuX7vQcO8I97K9(x$ZMp?fMg?TVDLyC*li}TINCOl9C3ypTohmWM!Z?KDozG z1tkHyc79KxCoP>Q8+(#V9r)qgR3S1Y z1J^qVl3L)mhEHutRHT^RY87QX>=?pF?c^%W8sB%XnkEE@ulFGZdBxM+6h`kJ^^Uc| zhl1W;49Rffnl!$h@BV5zUe~^($+WQt&m#i^zPI!BW23>pFL#=~^D{e3DrV4Ncx=2_ ztj=tH+j;9x->~}S-uyey*3nJse(?nAJlbG}CmuZ-nA~1hq|{saT*%fOxd z9_h+8gFzw;l4Hjz`p8QXJ>_HIXsAZa%~WwdS@G)z7o{^iS+@MacDKAFQd?^1Jl~EW zAm1_Dl&4{7vEP5ZV@G~&f;^IZ7%JSQR;Z0QdP?K?!vFDfh~|OSJNTo0Rr3pS;@cOu zFKS_)kC5@|>c!8+GfnY>Vt)aCmYGg?G%_SYYwRBecEj+Qjx@;7Pl*ie-Y``+Dx7)o zu?kuO40U&M?(pyZRswwk{R0i7?fuNx1POj3wavHpG?HW>ywnf&LqA1hTs2O!BSQsB z5ZCq*c-*|G-X=9h5x<^9uJGj{f}iZS=f9U5`p}@}>r~E9S)tdiEEs3`jxl9nhW8fc ze4w!3yP#wF|9%e~6Eo4heimHmHnIWpihy76^yZo{*hc*aXbN|utD(q(#%%xRa+j)& z5kV+cTPLYIIi!SkR@;%j(-|k~VT{VzI&_mSHSh}=4B4R+EO_{v@$!|u=)BN|=M?jo zfYgeWi>(?KwyElVwoPcFEnnC9ZAOVx>H@Do*{U3R8wRA%6w~h^f`gEw_K7PU?A?T3 zt2RaIjtZGRYmAa7yR1=?-5czjHqrj~Vz;H~Lc)!BkbOLV&V#RvbKyBui{#JfmjGZP9^N> z9MG@E@I*W~ZqD7|SopPOVt}M$M8h{-?xAv!gd+EsTuUtCG0DW^wt(#8iDM#|n#*>H z1dfS)dKbct=|Zw8_G7BcyV$QB^ik@hD)i3YqMpz*-^pBgiWPKqi+AC7&|ji>Ge?5y zL82i3bHHL!o?)aMd~tXLZ?jjrFb{82Y}~miL|y1{v3GbOaWuP<^i+}Vb9Z#9a&G9E zu_8aJZz1%_4Qs>IE;P*Id)_`?(zh0SXrR$VTo9g`+Xq}~FFtui8?@=`e;?RY7Y}Ag ziW)*Kz3kyijF&y@JeHd<# zGP;DJ=bp*Kodi5+jU^ti*km*;$V~Pz<`7aQ6LX~~#UWBAD?T6m0Z`nAPgF4Ct#F&X z()L-f@QzT9P~!aOQ2$-htYk=}NCs88;_%X}(_>CnwI- zJ`(B@{l@vxOo;NT1{{BHb(ybMiLd9Eh;@x@5EyNsvyTilQm#V!$q3tuekk%h znEJtZI74E9^H~?c%wHD)lH+@>3IRz|+j}(8kxGZ2#JB6-&iN4>{z^lxXO|B3*?GUy#AZp)|kvAJ4THiVJb!Q1a9@FS6=z53}AtOCv#mI~eH*(jfaz zzcpe-ZCGzu??@+M3k)lCs~7n%|J?ok*AL&|zqzi^gcJ-Dj<`y)yc6pXNHKDko1qD5 zFE#Lb)15~&SuDX4xy{uswEns(Ln)HtQleYVU2g#^2ZXZFc&}=9k0w-y(ibFlL~KTO z;vg-ifV*^pF^b@Q93jk_%kwZ6LpZn)M1n7PC1+HtXMp!9CRBY6bLf?47l^@-J4pJy z8=6oaY9n+654%Z2opXo8X?HUIsgy}2DM?B7M|dyI{(W-GZMEtey~phNRO1pZF%JMg)JGw1wv?W2P&&OCO;}mpCp&Xg5$OI-AO-H zmRv0CYU!nqK&!yf4H0~1#tRC1gLf1E;FOW9kGUcIw|y5ERFHGX@1k7(O+DqKTioiI-n^FO_I;%3f~cq{xC6sWYi# zQ2#XH-c{gKAA!Hj&18!m3c31{7^y6Uk`j;-tO}Y;@3`rEFQ9~JB?`wyXg-DT?l`kX zBQXlZK2pT~!y4w}>B*X6x#9JHtHdBvbIF(kvF@GW zz2F9q&z?NVllW3R^{zjc^gvFNd1bGEWm9fdR=Q<;L!mJJU0b$stXybxwA4E#J~#{l zI+8lLhLUoYEVZlzW(>2k-P`07_AO+qW;WQvrquoO+;y7|m9r2QQh%vN=i|XjVSMFN z+hf!8rZqR(n-INGsty}Eaz&Xf^n#jj@}UfJv9XO7!vV!tE31a%qz|IrnE9sp;Xvy4 z3p6I7jHjLX-i;cU)vE$J2i@Y8Cqk?|%Rsg-1Ji@Kw;rk$pAst=({`hYd56%3%`}>M ziEeCW%jNatTizn)XTFJl(3%`PP=6w|E2!0Bu(<@BLywh8z0)Horq`gV^(^6-xW;@V zxn{CFMzAGeQ?cq-)>h;j%pj`oK6NRY%_qp>KCY;F{zJ;)Ed#2q0x&qMpt1Y=JgF(` zq)`wromEI8BasSNLmJ59gU!6pH@yO+6E=4045tM-D>VFn?7an0UCY<#iMzXdAb5b_?hxD^g1fs* zkl-P>y9al7cM0z9?)nZ%?)~olfAikdysDY0nwsjWK7D$3_uf?Rvsrt|Z>0%J4NV|Y z1+}`j9O6A7Q2?`}0m_x@?)b=VQ-4;ZAN3(s+ zIz;MluX$ITo{e`oayb)Uq_c~y<)Zj-DP)Io(C?$=*9$r2RwqGCIVR`&RMM$j8B_7* zxc5eNJk?#UgSUdWT!99d(pI0o^=|u*mNa?VMjK3}UudJ$l|?9cHv*)l#!5n!Sq|jqK)6ERdV}(IUO!CM0{D&Xg;lc`shrYL;2t(=wd^g^JMWPq8eMqgsiO6c+xy)_xYB7K?vw?C zgQaL)f+dwwqQ#!GWS<&5Xei+Ci*4caIt<^|saomA9hvb;mL?~C=i~A@pmFu_a>vbd zly)oucU{L?S-SqR21e1l-ypderB^K6Ej0-DT+m4&xFJ-eQzkl(4>)NAJ zXc-ftMT_K*Eh9Sau{zyvA_LLX-iD7lWMy`3bes@H2t`(=ZEz|~qiEAC0y6Qf=SPZK z1Y;aO9bFf=UY}lqhN9;U@*osrG+#Bf)1L11wl9TbEjwbI-t|I2<3Z1=@XDO})9HoKp(!Bi9R5gB8o9Cjtoy9OPmkx7 z=V^JJi_sqoKXhfx91XUGoYO3}C8>?H2v8CaVOw)rI6XZxQ$1VRo^yW5swHPv3-dvY zf4e`@w?})m+&kRdXWty2s=I2?tJ~*Kem_*OlsY0TSEpFAJNjf3X(%fr#xJ=p8_82J zt3un-3xC!|w{`hSORxWq>)Mf_Njiz(>%K#V$V**^$sT;=`@x4BB4yhQR;6P~cx*&J z-tIdyMyO`re4g){LWQ|Sk7r7dx4-F1CT_vKZj-+E6_0L656 zdEu7&U#^lY&4OPimU!otu9V^*LW}1rqbIq3)&va#G}md=?DlWolI*?BpqSW=FKGYG zRgxAuAP~VdiRo9$7?*-&!=X}zZ!jh54xNxA2h$(TRu=zvj0|dxprhA4CR>fECUU8> z4tz7utp{GbO-yVcggJfn1K$oiZ&GCET0NeENYWaX-P*|vPPx|LMYA)%`te_!WC~yM zPM=gBx5>PDOu|goaa-!m;9rLl+(r`+)^;o-2y!{z%&g5P`$$`8FI-j5XW!Q+YbdYG zZK!!icI=h1CJyVN3pYX2PcP^%%H-J{1yVISp&C=E>zucX6|9zWPDD#zs#fh?BeS>T zM+8+xbaJnnBi=zH-2cz448}AEbd|KryB1A?Qi&7COG3j#{aTv#tdV=i&)*a7Tk?{$ zU${cH=2UJ|&yVX3tv_-OS$XL1y+KbWe*(}%_Is>4%ZB<{_NWTk6VrR+xJxXzu8e3{ zmN)~y^2*R~8ZkOG{mLst%SnFvqWruOtm^c?@|t|%o@mMY|0GnT_z7+?4?!RPOv85{ znOGn_sM}ykcd~*e`7zG;Fil^q>~AZ>)pf)@HUjHEtPJCg>&6BS0H_F?UlX5N%y;An z6x<9ZZD9B{s&0)&mz7ci_7FqCWBV2cguD&7;RrGVpA zgz33y=*v-3DWI`vbj;P;$Ka;P1sE9QD>DBkz&RBw%9CtG@yIe@7gE*heITc_4%>e_>6*E71OGycrmNgH7K6r~oeN8_D#|!0<0PD!{<- zn~VBpVEDs9#r?xUeKRopUJqbk;HLqs{mZ}r;GibHaZrB%IH&*v154ZDM;js+_(}i* z4qA`$3}<=78rmrBt`FDONSZ+^6(>X%9z+Pa_94JH$-Rh0mN1)_tG0 zlYG=~!Pi(FLqD&}afrSHz!h1mnQ>ncIbem~w1OSi&GD)QP~c2S{t0$tr4m<;nGcg# zgm&o{Fmn@*^Qc;$woZZ!d^O_i^Ggx$lJDP6gUAeNhj$ z+}G}LTjbf9S8!%?wP4cjKXLDuLUX@99p3QI6_2Rw1r35~Od${JDwQG9kbq{1Sc^57 zR%V=CckDOZoF6?2;7VG%Q-X66)Z?~j$DtXj+!&aye~5*UTG%=UITu7H0NMCJ4FwJ_ z$O#p!JEv{JxfBzgE4+W?)?7{06o-u3k^c(; z2Qk@cQ*@AUnAQQW%W$C9i2CsGA^{tEII1finp#$4b0z@xUj(@P+-#NiU&bqG1Q!&Y zxzg>Ck6fApK0PDY7PzVwdhePOj4_Xxv2xGKQK%drRwOPo(SGTh${z$*^q0x=|3RgqX zFS(T)+XJDUZEx6*K+7#FMmG?!+bTv3qfV~MMx*A8TD*fiF$=B14Z!QUmVYn-cAsfHmw zluv9dpQO5_UEiI~mCe*2%@g8#(2?fFX9YSk#6M-sSBxMQlZq^I|1gs-n9`qsQLWj@ z*_$js%Lc?(V}4L>%{-3v2D90G{m(ExpSVn^3n5wWYcTYrO)3O z>#jnK(xG1u1$bUpSq@zxy}zFSG(h?*5+z|QFuT5|a|Phhq4|A53$5XmCq=7imDG`) z3f@WXa*@#tqhPc&htTD@C-!QJdcSn(;ib{oK2*&7<->^a8sbk__7F&_PPiDCRH`o` z|JS6eKd~r+v*{a|G`ZGe+^J1@5gHhD`(#-a?>@^2262sGH{_Xcn{ol98pCML639!Z z324HP#R^jeuGZ-Zco?%>sOPhE7HTsmm9)E4d}Ns|OwsZ!nNm~Q&X_bFh4MX?ZWcw} z8rAOMc`8>XB*Vs>OR#dLQkUrK<}@%{hn;y>uMg(wDLEd=V%0mkjzHb=_MPi!o|f zvHlOaZGXFQ{GV{!Q2*cJwt%jyn=^;=}{BtUW4mUCm_F)*Na&A=$;j! zv;f0;aGrSx%3`aM0eu7-2jT+-g8$RFnddH?`vpuI$s``hd;=!IZmN^BfBYvf>7n`K ze*lw!%jGV32>iomEMYoD_6G@&Sor3EbV2>$|7wH-;8sw$L>4~fz?~3(HADb#tABM( zlN20D|1+FF@z3yL)(ie$bIM1#f!?lw$oH6N@5|fO=*drP7=CMC zVB!?}T%w9fR-V7X3@6YJ@HF9RTVdAjV)U5>(#~dT79snhyVNANtiHUPHpMLIREGlV z06)&0hO4y+Z4&CBrzl4YgJ^=-oI6Ez7H9makBK`vV0uF{sfQ~x6s2{>ZFaH$IWCjQ zPPO56Xw<$f_)lW($R%%~hSeQ6;e+_e+2D6!?Kb`=p&9+(t!tAXq`WAU5y-Aj@qnz< z{>q~z20#ZtNF^)fcu}SLJo<`)V!&WO2**9Kr3`Le3wYa)2=8*VGlq4!ft?xFakQUs zDh2^4+CW;k0vVY|8F`F>BMFvRlPDSHyE>3skH|&-gpv z(Pj5VH_v7WiU@**ZVKu45x!Z=oq$Zy95erbRtEy#+4u7bFD}gx^9*J+{3)5J|7hbNln#{GF_pIGZHTXa+Lxk2Q{&dOY#LUm>p1 ztJCdLt#KDzm56qEeQ(~Q4Y`y5`&>Oe{7$>ucgM^7hp@*-mp%Iw$LYq_ye0wpfVlk_ zHTL~)H=)Wihfm|ptJXZJo-YN@4^7G|Godp}h1FXRikvu;VX0q}U?#&1aVIgP3t)*I zsmUD0nHn-Xl7P)2eqh7@z%DmxPcm&3Qh}VzA)Yi?|8BL?&vs)~P98KeX5%wvvY69u z97Ded%maD{_YcUp&lnq0Ht27f<=GT>e|WosJ-GD0 zd2JO4?A%=jZ`td|fVejsCYaL7b$C;;lr*kk5lt-Pc^Kj_GOVm7S@AcLrA@Gi(S;D7 zH>4ggDSALY1AMwNs^CN{fBnu%?RhKS(2TyL0vDnevyJ@5hM#lO?dZNYWvIpqL`6hl z2{{yh3Y{~XNeDD%;t!^@yrgW;p#8uTY$&@6aMm-~MWlp-LWe@<%6UWIvu6dN#fein z0yFseK(cI4!f?qM46rVGis&M3wx`K`OXbZ5TEQ(O9DDzEQs<|z&fhVM`krDH)vhiI zVX}*untM)r8gb}QWha6mfUw1vn9j@{UGdo0s>ggZ^0$nKY4UH`UGb*mVYJGMoY(A0 zV^|QmyDDj|z=ZSOe&q%uM&9tOb(x-M7EL4md_mqI?herac(5?BbC^5e_Yz#ZJVeqT*LooMh7yBNv641>HIko^w#R{cm5 zpjgr@N~NY^s{J?77p`3g25 z<^kDgxIYy~OSrHU<20Gz-xc5yUmzZsWKbaPBx@x4ySow)CHdEcTcAJZ0zBoj-_Aiy zZpi@(IORu9v+p%}QqyGaFuY&(YDcCK0U3V-O;ta&Ad7OO>AHWcE|i}3{z8-!*atuJ zI~V5pQy4wxjxie^5$#)|Um$?k5OxGtAn_g2w?q#VPhO2=gxn~@{$yx8Q)rNzP9n=8 zWU%ncs(9abFJ@xY5#}JD{}12wNHrgiHF-%Fz-ZkI!>&aO?33(55;|c@;!>iDOX>{D zRqP*)g()idE4}ZLYGDpvKPhddo@%3ll3>96QWf4%bXvKCa?`lEnf!13z8vUp8h`T1 zrH3+HZ;QQ5kpqV<90O3F1ytYBF!o>BeerEcdk+v(e+RGf{%7#&S}caO^%_uIt(5|h zgaqp+;C}*J0kl`3I6&|!@UP^&04D3-jkn;{-zeALU2nmwzv=sc;MG4}fNlAm78nq` z`kVIp7QFhlH}hbb=fy9$d`UUmvgIBA=f5xQ^9lHzZ_W#{Jn!G- z6+@xTROKhQZ360C;P&BgwZ#eA%C$G1wBdzYW?REfmOK9ED$pt5rd)GQ&*k#B6u*44 zfk-A~U^JsYkBN~}KK0$=fjS&N9fCU?XUP)+kcs^OWTK%r+-`PM@>Rn|0$3SUZyh2& zxwT?{$(=io26cp(QF#*F3t7QYL7z7Z-7ZA~<$Gs*(9xB;JM>wwkV!^01C~!VrB_H&HLbh;u=ccxJd3w2JVn4{u zcvM`!yV3WB17t+>VA|rTpq+A6|A~1v-Jt*};|UwLiVrrVqDy4=s&Mzps z8&8c6j6bf2$O3q2Dq)R@M3OP-1Ert3t;k%7K)&h@Hrp9 zP4a#EyFmyDjE;ej#}P9n%Kf|Xc5nT&YaeiL{hmh%2#o$Ud>?Rc{ho6I2#o%<-ql-R zG+=Ggw;#ONKFbI~jst)YD*s?A2`$QM5p-~!h|=1J-x1dC;1H>x2N~C4K;+1Ouvv@q7SpW-^+syh7B@H$`Dqcqfo=x6AwcPa{+yyT#F6i)Etd0~GId;6S@M`bA~ z>P8OCJVgycA-5dd^J+c%?7tXP%?`}&+o(B?F^(as7(XC@)Ac!M6)P5^~8} zGp4EvMl6(8F?55qFqLC2>st1a+I>cU9zL<#tln_1v{ahKjbpLs+R<)vq^eQyO8~J@ zGFR~eh3b48o$=rrD*D`#(4E5uvNonyf;PYMYJs;m__DReQobv3-#OPoFCxV1SYkz_ z)gBc`;>_h4zo^C{p@|nazd^wHq#uIhZhrPKGSe5`;a^)DNt^^3@El{Rf=y4Wm~Jv4WFj*5$04gJ!S@Qxh_-LyC z4o!#ecF5g-W*j|Q4cF`0TUEPeK4`z$PD1-RE9(jWr~0UkyDOoxzf>+>jH5IbFoon3BrfAT2GWK+~VvUm9&2LaTp7p8q??&L~+bq6U% zoLHXy$A+}7S)rB)m@lb0@w2H^)GOUcFVAuNPg0G^v}~G}4s5}vY%=WxMHqH52r)s} z?=Lu%eaKU>a#!q&c37xWbR=9GMvfJl12T&YBvg?aw#c0t}#ixNoB->hXfa)rY>G@>n9~}c~wR)HV<0eSi(Evz*u&N#Q69RJVMl1V&hIqc)q zf;m1#p8_B`;4Ba!!#1G+nMui-*)5^O!6&mN!MskbZkqH@sHm9W{ey^%#I@+ss_3l}3ayl{0Z~zg1dgsH(Sg`1%-_9wzu1><^a66RE*`&;5@|6of-8 z&d-4I-<4@lm+Chf@B#V1t4YAd{h9o>alfa`nBV_dZlM93uM&++g1^!MQJV1W6U{?j z>4H%#t`-t7y4H_eEY6CyY#l|9AhsF8y}{ZQehkzV{@d)Hq&8_3iR5Elk$ULkl7u6C zpB=aCYyvAofjJkkV>oRN?L|a|^v|pdKbCg_EzE8hlijWRvNT+)`562^-7r+BuWI6o zS456(x%4JBL!KXFsVM?GG4y!5y}mvpJrduf%N{xJOb!tQdPNh7-Yvxv?8H$oQ;~Tu z>h7tm;IGf)jYs*vOsoj<296_U5(@D8dqF)@pgruTfNXS)pK4%Sa3v=q=e?IbhwA16AK+&h6JuAWF<2H_JWy^OGWU-*y2{ifg{2?K^zpA{P zHeHWjisq|v(j-ETRIq+kuZ7Dy$GH^v$eY1H^mn;*5KAKWXi>d0(+Ka>vbvVaaiT)=MK?hVk( z3yqjnl0AX-pVFTsr#!7_O1by}Qk~G3t{z7`p}Ugd+RC51_6&Efs4o0C{0A7F>TCq+s zTWPAsv#$nUoV(Y8((~lLRU9YiB^KUmbKLvJ4RAkIb`bq_Kjl<*e5)b9vd2Uf$d!2q z166@QiA%E!Y{n-O83HLJk@Ud=<@@qEkW$3%{Iv@oW5aQo=4)kf3lm`g;8vd@#1xfEJka#z)HTZ+7eH6(SyPz?i> z=Q3Y9>@e@dS??U9a%bQbl2=ViaVqH7nUnj>yUM>5*stOilOXoa#R6X|TAx`g!WI#E z(JPUS!jCIxHpYw5bT zrAA6>`wMzQ8R0BVU(Gid!C?eV1-FQY^cXX=ZdzU4RVLiNnpkeD%X*dtb4@|2@{BK` z=1A^DH+VuvYKMi~)-Cx6LTkv$dVSjqMqb-kzLcmm>^r+HdhHo)v(y11^xNWWqmym~ zxXCNP_ZB%%LlgHF)z0bg`p91)kq|%AR2p2)hilNem%tD`yo)=P9mDIBQ$IftxKI^i zxYD;}mF#LWNGl5DPNty%5k{oXA;@*OXLeM8GGJ`!)r^h1viKfGFhe2TX>Qm$p}&K* z$NhHp|OT)A}F&myY<<=_0e|BBYvUX zStjw6XU#6Z&zXBeZH2?ugruC1&7Uc_LdLUm zj6tMU3<8!EHr#}Zoz-|9YL|FHv5LC(H=#EJUY1kkmS9J>{`04xM$Ue_I`8}VX2khy z_1yD%0y0WTEsm6b?g`SJuELVSOEka#2E2q>PcQk{Sxt|mL)40kq+>w!-ALC#vHSKF zKe22#vhlO{gO^Ho{F8wiM6WXU2K5Gwx|oNKQ3X^)qv|l2H;SkhSnC1QSLo>TcEN6U zy9G#3^UDw*xlmHRT6gk@Tf2x}#+)4+!jjJ9+kwMrY)RxGwx;Sbp11WRnnBg!?d zErw@PRVzccnAX!W;MU5t!k*U~mG!l^WvgSW>GadhxAv#r2ujY_NiDNwE6t4unJizB zYG+Hs7dk7zt}FULrz(nOMPwk3@P!m+*-K3ZwE@IMlrO4KS^JdfzEa$#4EyXPHWnvr zNK%Nl@BN1zUH8+f8;%=*duvY{Rq?h|zrL3d9EP|LU2-ZM!Rv*F#}lV9lP8WEQq-Nc zMKbfU_*sSB!rd;BG>j$=6UFpxa~!oNW?Y1j$;X3rMh-U%1f(l3Gv z;z5EGYc>6;wh8NNp>Ls*3gbwdMq-yxai<#SHWLyTXIl09E%k1NlTp;#Eim4Oj3m}8 z5n{)Eq^6tc@q>_zV}VCF{k~oq#fKy9^B)!<`|U-=ZaXCC&7c|+%Cofr)XIfvN-mY* zm9ylgj95J>;SeumD5UK5adrEj-999r3^g?2hY5H;9Lsu|lX+=izdMvj9U~u@s}IFP z30po^s82(QX!y8dGjIx=lH7UEJZ#k{ICXs!xI=^=#E5UQI|E;SNGKaMFfR^+eGK#Y zS=&<&33R*vAo7dAOr0>>Y&=J#u6&B%G77#EG7*U5+Njlc)U8$h@b zFypxs>PIET5tF&*`2O~+$Zfh0TIKEF8zilW0ieA)#Gf+#qf#^`EoF-l%XnS5yOERzVPN+O3{OG$l1?uaJmAi{m zv>18dCL2Kw{O&^*HG@>&k@-g&t0Vscjhy}3^PcF;Kv;Ulw!0R!+9*MWn*Jl8c$|3= zZ6c2&NX?`<#=>3Hb)t2cq5Rryl0Ne^%WA4kN9;I>k+nXRhgBHRHNLBfN=mk66LTCib<8c^TUsH48kkz**81QMfxf!xzM)t1ZXxF)g+)vC#3 zI8dIQZ|&^Yq)i`AN!d@d!iDV69*gna74?cI{w%9d?S(OBK1f74581{w$jalbT`-wQ z%F?&(GfMC{1^3gBM2nicoP=OIzwa)2SZT~h%O77->)7zQNd!T1%2j3x5zg; z4?{On2nJ1N?{t8I{ml6@$|7H&pIF9=^XD^A#*P&g0PL+5B-V>Jv_*H6=eMj_o($up z&|yV2Ck5VA_?Z>`KRX}40MYWn{x63#6{byFQDM3g*lEi1&VOC-m*0|rMMiVcB-)s> zT5DK3ry2HGcp@5A3P!`Fz+GCv~7{YG@TEvLsl47A9p5|EQGzN z?dtB{r+v*u3#Sh;W#GjNm|s3CW20K=CJXMXd{t6HzrGhp8fgi8%4+tAGMD6@swvP< z{Q91VtM3v66*n)o?SzUWu`so1dM5EW5z$qoM zMCt5K(9BTPjFUX;D+jwGwoG(z<*N;$fUwI0>gw#Z?VOQfdp3|m)#iOW{I-4)p zbp)cEuZ?Ftc+A(-NXjIdMsba*EEv~si<#<&QW%p}u|``G>dvRwZvEVroHYj$aBaq% z)3l}4_Qw`@ZnMk?2eyM)0nd-Po`(p>en0UM!DXpo*9T}$Eb%gg z%8a=^YhODW3WsL(J%}H88Z#^P%$6-j(*Df-F-&3vZ!TX<0*jcWRvAk{+s?5{me&+P zur%%N`EpU@e7=700@Okku6!Fxp?Ww7*@yBjS zq5{LfcBvENVlk2}?W|_>ix}lCB_lM25P+`9UE5&>y0}KPvN6TXGAq-gSWX>@Hi@q~>hT`K=Mk;7&nEVuso9qreQU}jBuNCrK z)X4lWVo9Uuf3=*LZ$CB7Ff>h;>hf_YI~m7-Q$Hpp>pJ6HwLyaNL2Y42{n9f@NlJET z!3rBM?=+`S;dn z)`GI-`cWAAF`pN{yjIv@)*AKq!n#zTj6?5G zhicD-O-sE13*<0t2z$x^Uu6>ZsTDPwu$~yY!XESM5=I(+go|-L?j8F<>Dd87n#bb^ zpm4j5c#c%hP#E~=Vg;y)o}}SbgAaBe)2-=fU4h)3UL87BZFiZ$Jbw&-23ztfO&J%j z?g_%PyzQrSCAr=TC%17XH{gDnzESls%XbvI1rwBW2ckXfx0 zDjzs&LdWFiOXQTfbXj8tJClNj4X=T z&zgeEASahXjmx(lBv>^%O1@a#Z7XnAv=3G~$2dxSTgH3b7@KNuU20iXTBIQ0FnPK? zxXNcAxmR%Ua4)vZL_YRANxlJw^cA$_=VSms=Qj2@!JE$W-SPb%% z8fXH-XHJ1jRd(j=K3!DTFqwJpMljljPJeSNeUW$=p-WxiA<3PcO*%$nM!dzs_Cs`T zDQ}X($|u)wahg#|*S&Pe!?*skm;Q5DY;rH_?AY1ukM#8hf<0p&FNiF&huwY zCoAAT%FpF5Q;@$jq3MdT&2ZmykKaa@WI%t<)fh5Y?RSd&q)qD4qT&j#SMbQM4Z6k5 z5j`uG12y$hQZ%!{b1SdaRbiBvLr^y)=KOV+p@09!I3(Wh!Rhsfg&RphFd$-?c<$Mxh zQZ$*bKaGs6I^jMq`hoz|m_TPhYrs-2K+pxJu-np!L6RCS?VxFRh~=|Vz&2ZU>98T7 z@f@9tw`f30x-jej)l;ohh$#|SsqDuh&IDp>+Dhu0av`=0kz*HCoi?WS6*c;T%^F;Y$XJ9N>{Hv)mX~mIZtk~ zXMGlF<#O01a4axI&8J6CK0)nWYVG5mxaATR8$+l+je2gfC$B&So33csF0Q3bOW_>T zFeEi@jfvMh{hG6qZ#*RkJ|#02Mwo9*I^sG1ID5K#Iu=j&lw+gJ`@HmsaIM|uc6m^A zi_g;o8iTh{63l@B>tTk{jf{v@d#~R|F@m(R4;&eh?~!ZH`jt1VScAqdXZI5sS#7Xz z)Hb8PA0H7RYXt9sQH~yx-q$-ieQDUu@%YelQL=ryzRbM!@1l7b@hxom2)5u(=;(E5 zl(z{}w`2-kR8vj{MA&uWvOj%ZWJ$-->Cmyo;PoHlt#z84o}M?%s(@woqo{g0;@CO! za=X?Nr0<&5@xmNy5h5bS@H+~(2w>hj^+&@-xJH*DDcgK7kz&qMf2}L%>Vl-ukgE zigwV0Wl;xCxh-2gqDf?{U1G)vrIGZS8#yC)p9poHi95P<;R*5=kM2o_nXK>Tr1%uN z4ymV{QyU2-Id{GuaxWAaF`bz?X^2Jq5cl*z*8_aisF6kJ zTXv${BPw;F^q>&htTLxLuz3EJ+v8R${DaO;c75nwGw0Uw!gs7gU5-y%OTnEy1iE!q_ps<-PutgTD@f|WhCeg4S2@3lX2h} zFrL$3n?f&Xu-_djEf-2kx-Q?VmN)@PO^Prwg{a8Dv=t+WEAB0%!&@2o2-ltH0hJdZK`zjB7A8pQvujqFh&KYfkSqZKLgOq zJ=>LC*q>_+NonFWNF}#6Z_xE)l;PGb>``-ICw}2D#vp^JVA0WBQ;rV@?Ci6a(kQ{o=AcYVT`SSZeX_eO>8rOWQusq zm`f*+l$pvbc19NvWst>VH5CmU%rzs{x|AvNA+Kr~^ zFmLgR(hpGV*H6W(ZVG4l+sEiuxU8b?;CySo3;RH6-~@X@+_LEIFfbHy5kzAlpcf0* zLQ00SEFHy_G7gNj*R?rm;4WHoni1P9({f;Pc_UUP8WpPtznZMU)HUpvb9ZGGqghM3yFRRWQd#3^)pe1pLQ0o)7JY zl&qI!{^5O$_x&O|>O&!AR81oEcPQQ`k1$KDgNIlZpmyF-W% zw029fS~X7y`12RHe9=ERPEC(xn=9Q)<2-6kJPNIFr(odbQ1##rr1^dO$AADKAy z$b1~;tbtmAxj@M+u^l__uTn!ERAEAPW1ZqQu|>8ooog{tPEHQX+2J>XKHrbK#ilCj zI!vBnou-e|cHWhwc!Wxkvb82WquDv%YpTjZEL5Rq<#ht`ddczZJaOA;wV_u~rch&J zBuT`!?z-bb*<=f=Jf*uNo0-8MSt2!)#B5G?u+L$(-Rp&JRj6Ko@PCqFcQ(;*+{{rifuddSY?| z2RvHkrLNswIY&?2Tr+up%4Ece+4WlAowCxCRe=s;Tfvhgfi_!kWzPG8yD9Bfp_NLT9QyuOn>cR-^6ZHt_9?`Z z3#G=f;*;zerEABjNJXvLDbOYN!qbK(AGVL=2(?vlY)IXnk#h9k2Dj_OtjOD2gUf%I z`S$7@EwUzJv924(`3LfRAGqUwebhqnp4zZoX!$y%mTpRm?{&>|U}o`RUszVhqB1F3 zlM7J{wB!Ish zdL>O>oHQI#CRzfnAEqZvfU@cMBBSvYGxui{bLxCvbd2`235y4I3`N9AGpXAChWa3q zFp&N2hbfW7dQpg~ubiP@(}ZORW-+5&&;!)^Mb>pLEb&^5yq8l=`PZL1tCMNa90tqV z5Sk_+dm@5>XX$JlkEePZb7Vao@q5IP_eQT!%qZS3hC99D5f9>Lx?%CG?~Fx7v1T}} zr&8NlV_8F1h~$AMFt=6_GfPx~98q&;vQN(6St1luhpgb<%>*)7W0&0+v0gN&li~;U zp1yjd3SL`vFK{yImJatRJQ<*L4_F%eBC{__nhg7x0Y4^E(i;|GVk}sk*bASOB$94e zvbauf_{-^*VNcpa=j(Om7U1R9d>e7oxg%gFA~9e>sE1k*SIunV@#!a?&rm8j+=wk%UUmGS{#I zqRZ*{ql#DSt&LfMJJOiq<+wLhe{0k0jbUf$wS)7*io8}2=xsgggk4?jDvZUgNxMGt zj1vq`kin05$~C|)sd2L%17C}&Dn%DL<~SV|D_ty>yxr)( zc${yA(i~lX;#b%ktTxV7k}0U$mkF^_rmSP9umbMlzHLl7L0_hk&O;)U)^eK!w=C(-xxt)5Q=O(jgytQ!w~E*MMf z-Zbh09hSy;KnU%w@RiYXyNRtOe&D|J;PzbT)*r$3i8OY>ysiq-BNn1@J<~~0>wpUr zuojMQb6@e7i0U2WM}q(tiA5k>fA)J*zjiXY1knfoZw(V;WsF0PqMV_!@Ptic+aJKH z8pbad%7=NocXdvuw~4)xBQI$WE!DPk2Ofvv`CQ5Z*DB-=1h6bT%wuqf)Fs#@u2`DL zn6;bTuUoldo9>Ego<_F)2x|mmVFYt2iwLwfeF%$d!8-H{YTOnkEl=2u!DcRLs7wx0JpOp}}PbLSPyBS=YAJ)Hf3Ulq36pA)83VmL^H zsrf}p`gGsm)41TV>ek(e&HQo&6G1I!d8hux9lq(a-Zg#V_B~>DUlNBjMaU{vT>4*1(_t92> zj1{`GT6G6#(ZcCE8u-e*oh8k*ygY_#r#g9?Y@euC6o+tRCN)QHJ4DJ}wWoKaL=deb zqt7^|trg&Be8Rgro>O+S%QQbqMJH({VbtMKAk`i#*Z8fDmbsxzo09S`7VZ7e>0Qf~ zg&mSsyH|UWOLwo+!!XlWcwGZ_WJci>Z(Rvo8t#~->Y<^{GF~p*I(F%1oX<)){xOWx zd;t(pwVIFl?!QKzmiKT@gDt77d(l?K+uE%k9;2mNK-HbSw3k(Uy*pIGMd?WPWU;a*GzQB6a{y|mwx zfcA8HrQ-}KZqsTR-%r{S?AV=Ewh8RC)l)_$=a)z+oOT5(oYzHCac9UTpPi))?d7=7 ze4!aKzo4_ZQ7Zi%v;-buUc3DS433!NBaj)IbkheuSA)ij|A{zh?UDDy_$E(s7{hRl z2fJlZ-JqdKXW{W59K&B|%#>0TQ8m>d+<tnlNFG&Z=`MOQUU77D#niqE3r6AWif8?7yDGg@meZkgj?9>{yl96>Xf!?8z4yIH z{dm)mbsOC5&c?tJVkf7$Nz)q2G=DQObQy5MbUIDqLftPBQ`^hkM>=LC{9b27$b>v) zb%$g}v%-Dk2Ma5<_{f)Ol#MCcQzk|2pjp-u>jE8`mXpy$=^JFW(WWBanhO1gT;y+3_lNv;)6X;xc zgBvp=5SH0GoI{is*XV&)b}|aH_Cz~m8hz7TAi+J}tVr^kA-U;g7j11r6iR5NMaRPG zg0(f-OGc4%m^TOu2#+W~MC5Jm$x~q76&i+T2Fly?XR|mRaewM4LCarIg^BRqYCzL` zD(>UmnDzF!+dbPn$yrlmpJtqu=#WabLxa5+Z4>|*W?cGoUR`@VLq4(l{sqUfsLn`l z;~~!a+B3S*vyT=2`qP zWT%7wfYzX=iZT_xmm(=&2je^^=c3SE=>5LUa3!wRG+$4auXe?h;Cgk5Y;|Qj_#kyO zk+c;(MQem+>Rtnz1Zhi>?=unb!A^bHcDRWQTxRE+|AQ;<2?$ZMCu$NMBBFy2z)y<* z%}=WOZ$GJRj`^SUlC9|sy4YQGAM1!!Si1#tGn+`jxeE%|Xe_~SRfr*U;y2@?X`sg#1O0eoE z6+K!}9^^55Efs$^i8=TU?SD}A7C?12O}8i#Bxr!(9^BoX5F|)&cLD@=cXtcH-QC^Y zT{rIT?s7Lt-tT|EQ|Fv}Z*|o$yPuf{s(`7U?p|wg6&DJh>YG=kUW|Q$=!FfvwZ*g; zSP9ipkLx#s{0R@l8=X#6X=Y)$()>B?78wA+FUbc#Bx9B`5Z(+RW%CwRX-D0<=)DhE=j2gKvB8MILqboL%8 zH7`*;_V@?yw!43ef9BP;&+BuK!QGuH!mrd?MWm(%`w9j?aVID=zS2oHWcQ8oCy_ew zd<47oGt!E`f!KiUc2L_0QTV}1!ArZ*w7R8ftUY!demBdJrgHauVAC-qmuRM|qdomC zLdM3M9Ie&__5}GfUCPKjN@mQpr;3lvI_d=GwIgFBVWW5It9oi1FJIF^SQviVE#qgt zw%d)$JTsPIzGhdC^IWA=vXqkPT%PQKHPw{oHwuWJEMHH(y!geX1t< zl`I;fHKvmoAG`c*`tQ=B>7#n?=TgYa8umVVK4FJ!?47WtW_z6O5ED(l4+d9g5ODfn zZAf0~(a#-x%as>K2J&O{-2#qg3AH6&7W+n}{P@9l3BPj`2;mj~<>a)mWrW8Sw~*8N z*Aka;?$Dmn!_r55=gQ}@Dg*!8G*awbl~41>(iV=hN$qOgxxy2$P>!%x_F2LuDR<_l z@sWv|H<{wyssuU#K68)z`kP`40~uQw>o=r2Lk^cJlmXnWEn!(w2Hy{P45CEUcW!^M zb6K4ai8NXGe41ja>q=sOS$gk$7?LJp#<|xl+aJ1#<4arKWiXX+>~bD_a6c%L+j_do zj3wnFcho>?6nT6E(b?zTo)bh9?aYgWfLvPcYOF?U-P}91LX~&HntJncHaVQvGBH0- z_j(O*dZK&%=8-qGQo};i>o6~gQxZ>K18&^~S)wHf>ZVgjwCmKMmPf1`VcQkaJFKMJ%cj!U`xQp_%W{zsQy!@ezK_?EP}BAjLP#XG(ks?EyW~(v z2YEThx@q!!nbcViey2kv?%z0cjnFRK8C10XmO39jfu&9XAJQm*91N#nJc{Ow^h>8M zZLXUxM0OcuY4Mn8=VQN8s;4DswmzHI%v#WHBcc+EX?TNA{tSBQ@s-#bq?7oO*2 zH3kQ%b!W>-YbYzv(i2G3oF>7FFC{bS-FhT@1m}7JiY{+^td+MnuQTUhe%bjs^W7@W zI5##bPCwS&0?V}5?)MHBb}D0POnI5{LmJ256^}m1PIRbL8IaXyR%xyU5}f(zsYaB{ z(-1BXPNo3Mq89_Logu1_xc{57D35Pclqi(yCpwm12Q&BrEN)#L!msYpu0IFX0rX9n z?le1fO-QsgCWG(MEOen)<6Ff_$&}UJKgAErsT!6&v^-V^6#C)hfN$$S1~-SJri+mY z7u+Vp48Z}B15_wT{pRLr8#HhVBzg~MT&%Kqd5yK>g#p7!yQ&7C?Mu9;Sky9Gk8?t2 zc^8W(1;2={rZ{o3N#a&XNKS@s@RIF7^f9@Xu!AUYi9HsoyHelze?#q(N$Ch>x7KSn6v22V3ir4jW6k6k-iIC)l z7WoI*J^gF%Oe3|JhK-NR7sw|dblTnR9ubuj;hSnaea1Uf+7U&vB1v@90eGsuz?$f8 z1;C|F*oynaH;LU&?YX+wzx3P+ocCzFNAFY{lui+hv%^(?f{UFFjBpa;{31CS1;lNy z&nh^@_}Gq>S;J}5}le}_h3qrEr5~bmSsvcEfUmU=c55`gNyYz z+FH+jn?`$E;~vD(>OSDO`&wC1Zf}S(&3o}1Q|$NU?}fP5)yqVATS3#&YEu-aYejc*;PKx}Oc>Fp;*uniN|$og#Z z;Q+_lFdxJ$xj%N^I4gkK;1IDXWL=VMV+USN(Id}(q6w#wWiXiR$X`~)(Z*&k*ugwR z7eOF=>L#qbbT1{{f zH0F!R&`O6ZOKno^6a50o$@05J7Lrp_qu$y?@V2BoXM&LyM@aF~Hd}ALT7<^+xNpbZ zU{pgZGP5)S_BKZ$eBZzyvC)E}j*5>_5OJAbTw}lKNbMzk3Z;&I z5QLn*pkMi04=rR%s%1ycWL)5q$@njrM-Kaw7%ADH{CG0`=;vHyXfKM*!5+D%2ql&E?`r`vtSvkw9k1nSud1PY^LLjaS8_7rDR%uNK>DY96SDR)Eh5 zPhW&z5$_qR#nK#8xRa7REyQ+0sK3l#QSIyl4mvP7%K$Mj8Kai-7l!d0i}BA8@y_-? zK#qSwIuHUX{ueaJ@dCu(`e+1<{ogGmfD0g+bFU01G>pq2)J z*oEcgmR9&xe_3IeEl`!$9M2TW*DIZ>lCD7J0yUI9Yq!#`N$r_|aVyy_tV4Rl1z0Tu zQ64UFR1VyK@ExCz0_HpfE42J3Su*gM;ub;e&9s!=*BTT=UuqY}Pjwb~OUK(BKrPYb zS^kZr2$>Cga0Aq_Uz69#Z^46U`fW8?QeR(qpVRMVn&7QbdU$-7194FR)KY^tu)bA8 zQ_ek;sIgy}F+z1mg*ka&wsfi}!$0rwU5(Q<7|BRwZxW(&fkN;ce=+&xMi)c9&UQ?t zLx zOLr#8Op-=j+)qHl$jw+_xg9z809pRdcYd-L?XxW7MtraU;dH!e@sS3$T!=@@5?77q zFjzVoKaHm;@@6I){;d=ZffZ;zgf#4* z4b1U11h%*}^c1`O(Fp6UThp#!)18-*cIwl*)fUDA4F9bA{bKFeP8A2+AN4t>D?8`AQ-JS``yLJ!Cl`$|jW6;BfwB(c~PP`xUM0=oP1p__;h%w!0@EtBfvJwCA@LVZn1?i*QWa znOI_hK@uE5{U^RRi9hw@Rq^e`b5Bx$(%<53z(i(NJS*BVrkWOL!Oar4@7~CZY%&B<*;Lip)>GSSwET~zamdlZKpwX*<5pIwEqU^ek+Pu4Q0$17cx&A4 zPT{_n<2AoTeu5-WpGmC84_A-t$l;l~tXRna*E&1CBS)0ROXucy^1J}q=0F(SOf=E| z>__4z#vteo^AU%Ao3M{{=<>8Buii0o8Ri$%Kg+}Q^@pmD?HZcmA4<31r4E>l9)oMm zR~9&_b2-1X0F3Y?;1<1%fImT!6<#_i)HlieO|?=u^*&hns)}(WxoERYyM~+=*S&AC z)}%l-)5b#sF10@e-a|}S*ru4eeNMi55=q>iMc^fm&}2$r>qgEQrWr%1IXWwiDpfn50%YlV${q1QD>?+gL+B%?V# zSg!B40jwH5dfTJm_bf6jGF>WeW@LQ^i*|%GCT3eTC#A>1e9E@Ch>pqq9buWhL^N3I zRr0kzJW0pm*?Of}4l`h$^tLJV$#y%(j!RT5!ZuLho?&{g-bSw4P)08t6W2!8u|}wo zMe@*02+HL|v%sb>BZHaKCEjRioB~AaWYN*a3W*dE>Z>F|!>kF*Ik7l_>;#RAL2R3t z06cIWNN2b!j6DWz{Iefx6X|{Y5nlh}9M}8fs9MCkycTu~-Jp;0S(MK2bJrJ3q5`oS zT2;`hI2?UkRa&YqW4}TPr2e2nP{|(w`sgVF9s&8!tHfmTx%CW3hbwCtf=k^Tgd0+YGMqJ;@36?ySd{lQy49FPmoIk1WSSq!yMCE(EwD&3 zmbA&tu8v>xeX+5fVuFs(D8i+jyGfg|!0oRijVabORhxLt|NCPebkoLE9lIix=;ddK{1D zsQ#vSxz!S2BmEGCE6~<>hnsF;@y=ak`}pj(>xaLMT6-y#4c^F~{-~Q2fS)aUv%U^9 zj$%>7lgCW3UIW@!zq!#$XmO?Q9asviQ1x++=+??q+*h11HvnYi_7Kam@{ zaSKVBCUdtDqx{`S@+SpSmODa*eA=J`s{|iaMI|DCz8oBz9 zOhzu>q<$8f#+eoAkBTkxOwn4(teXjlUoJnQx3xG;z-|cn118R@n#Da@9Us#qw`l;W zcdaMmN=gJ?62t|^;tmBeBM5G8)!~;2>I#hN+!*$14Wh4up_sV-lf$6?>o&C5nt(+b^d>T8R``3vCk_F?FWqb*e{ z6(||Aqg{>39TkutGW$;27aWQ(h(@iEwPzM05MEKt4Ofy1nnb<71ngy6ykZxH^{>C}{QkTeLWRDj~wzvpzi+>P(| z)V8&(@T4Nl$FyIFRMCzj69I(*NFg;sY|?TITTyX!!RGVVK^^wYvcl8XvA>o52EM-? z!<6#N9&gXX9e&>K;~}h8fDtJbvg9sOYv9VD#XK!YY2gJ5$n%Aim!rv2RwCBOhZm(v z_GDx9wVIix;Q-WI0+b#;G2BQF2eUx2o5x8>7gFL+b-8myKx9zYfOjj#43 z!>vig5Vh2_W7Qxn$*hT+vknw}mq7e_%lAx5CWz39VT{*l@F^F$EqsNBT^NQ0dJp1P z#D|CrAI3$_t|!L#UZ$X~5^mm_~^ z<-UeTL&zy;Sk~{jfU#2DZ>ex&4dB#F-$^p5_pGzbKlA;-ZKU(9Kb6&xTX7J(^V6Rk zZ*N6-{t|04+cCTSQ%R!?ybPvjgO}#jm~fSX6_X8pU9)C!Hqvh2(kk*G+9RXr?6Ibt^xBP>US5_F< z_?%i*hl`4730Pm7UiK~&$W&S|X^94J?SWNB4_620+7;sRKAR=`_;ANEeo_;i>KQQJ zWr@B0n8v$;L}?E3=-I``8Gv}~3gy1Ha>>r3xYYrS7~(i{Bz z>-D^@?Q;DLSmBG9Tb>Whp%Ct>8B+1!63;dcnaX@QLB!WYR8%pHxjiSAtHYLqUL8hQ zOLlfWJ~A1mJVLvvTnNe6JG)rhK4i7{F_8kM;a+M_hTw^KvW2lU;G>8D-=xs&F;;2y zK&yD&NcG}Q_a*-0BN-z4Rf8%Wn1wm~lisHeTqB7E1WwAZfpvEXZyF!f{M6p>8FH2+)oyG=Fl1c>Gd;ITJ2v_d|_ zHQD!E2oEC9^hFp{E1f3UClGXd=Jh7Y{8orB6D#xFdAqIHmPg$k|KPV}@cwdecZ=)H z#_`TO-Qf?GU?;=L?}0NEkMfd7PmuV5KeM@x%5v&R)$PTG`8Coi`TPAj9vYtKJrejL-7?;4|1+M1srREnqagTeT|Usj~z&f7#lq=b>fK`%%?MpeITwWzhU z_=n7uGM`w>X>o4h-9yb|MNZ?d7?ti~9Z6$_@9P3g;>8U zMky`~>>Ft^t(VgHbX}z|#k!yThifBO!^JRCw~8>=siesUO}$XsDo!iuauv<0Oy&v< zf95y$hHn4-59T-Yz(}L9?U(CICbW>Kj`wo}Z3g*C>gaPQzMzjY$9&pGtVgq82!c?C zpnN!Cg0X>Knl3+(Uit=8`ZSAX!#60+hS2JRhEi${`EE%dJ?NUb5L5#U-Z5sLp2I# zl}==^K-(cSFv)weN_`(Pt(o||1CJuob)xGy6;$uk^=oFeK*Ke5&^)Yi<9$v%_}=6Lr-+D(Q>@m)%LgyaI;OJ!pZ z-*Vj({Q=x-jsB^2E7qcQ3&fEH&5z8ci> z*-)Onu2+oyDfwY6K@-PKPgIo8y zI>TMmUy51$0ckrXCoe%#g*mmkMnR`Zd-<{2By|Jq8)zyRH-sb1*{|n|kGx_`Gn&yT zB$TWwBJ%OU+g@Ff$53eJ#f?Jx!TX~L!G|h+ELj&Dn=1*yP!bUFF!ZR}lfYKRWm57ci!g14^_ zzkvkaZ$JX?Hz0xc8<4IK#`*#DjyB~f43s}T~&jKcC?%qX+(XvjNE zwy1q`I%#_6KF%@atj$;hsZq9SVog?r_mtd57$c~zvRVS%!TzB*0e0b&Ulqw*C5~I@ z3A*KeD%}>vj2s+)T{Qp9XBFropYa;kGUOqL{f7|c!vo<}n)IH7q=O`oHD%gfBQ%~s zwh>u@@SYY&yrof_TcTkv8ES5;zq>~3-ohHs(uQUIeQ>Gy80iWEP_{CEO(_D3IC}8~ zfB!3<^nS`cx$BPlV0cugTsfKht8T5-uFxCW7JAln7g!9Jia7dj}Z)B zwn(h+x1n7E39R@TNQcyRt{XwJ9>h}iDkc9f927bf8VwqAGFvmu09?^+XB>tdilN8J z4zv>QyB7Hd(yNW^4 zV0<7VV1YADweC!v*EU}iO0}giRV_u)Uaf_;<|b9ZoP_(Rv=s)vI7nOPq%D4fGiQp3 zudeO02Hvqt;628vbR56ptRx9$-0+K#N*h!pR*OSad+?oj>b+AL2E*RzR8t^!%P+EZ zM}ab{l%dgGXM|ous#j}U-o@prF~zk`?RRf6BSt9of~);zY_t{?QIdPew%YXPKC54f z%}tTqXtHq6%1iK5XLN2sVHJka+d}Jm>weQ&zi8X?%wfGGasly0$Z=_sKPS2#y2Ttz zj@X=s@xW;!a4tZ<)j&F8V3yLUn~NKtk%VQ~kzMHQBzcj5o2rGk$BJ`!WczIYnLIpDMcrC!1jbf9Df=_-xlK%9sW&@zfRA-WmHoIdZS*J0f=x(eX}Qw= z{e2oVO)8A0?9qB|k%r7~bc=N=^fwZy?BTQ+k1hzk7=+Nh^l$;%a2@s0I_&nz2z~3} z;v-mHXN8Bc0qeCUKf?ny>STRQKUiOT`|l!;AuDRThWUU1;E!>Lf~B=(303&PT&B+N z5)-F4K&LB>&pdM&+`06u$K(kQ=YF&w<}3>UUg|tf!XcGYbrK>!!BKQB=Rm`@X_cTz zTeBn$ck>X6+yVa>Vb`5`t-yvdX{(@lCvbFLK?CHh6s1gL@gQD}9>xjNvJ;Gd4&)j3 zl0j_c8ICDEV@L>RWt3hfnp|}ZQ8&6AF*+5gpCqmhtu*eyEc+-Jjz1Y|*!?O~QCk%I zMRE}Qo8Ex3?BMzE_VRZ3@azDHQSq2uIaIRH)VLncL`=Q`KQ=7fKR_F9nhfAsn+I~5 z(bQlk*jP8Cay3$1;smRQN3KXn7CG4NmN3?JGLDbgQ(SL22fI1qm5l9i%Qf&#ZPX5F z1SIumzauo3TfKhwlh$Z>PqDEg40Aat?$N-uA6ytJ)SO5dsv9;CK!{8S;jirL;1+3{ zY^Sm}xs`0GF9#qV1jsAgSOj;6i3AT`Pg1|nI&3S04(&U?1DN2rywTNP^6}`L@Tz3u4bUfI8s&T1rAG0H|A)G$x({I6Zmhr7 z6v*c~rjku(5YPI(EA}N|?ZGr&6|X8@TV2jg+)6i810aje<#lZN39D*7W?ILF^~q|? zbgq_0yNhhtAD_NuO0R3KQhi9X4zaVVRZpe`0!+nGhw;LlS3@{6k7vTLWuHOI4DehGPLTux$BWLWbBWDY}|MWas>&rBGZFun0OWE^Ii;Rydzx%hur$pI!u%uKHTs6+C zcLQbH3-P6!tzO?G0a>|XuA$9?$3kzUEOHtxRZQv4{7&EEE@D?UaGTU7$xILl;A~p> z9U{_BWWS7*ha604Y$d28A&6UwPsoi`aWCFb1EP45f-TB>Z5>G1=HgE@UAH)v!#u9< zM4lcZ4wGye)f&Ym)0@a79Plk0rm~u7t*A|wjg(VQb@mfd_hkhu@a2o5cUTW8Ua7Tz zqGQlWTyzrCm1}CZ(3EQ$>jHRaXSo*04oT+DaF%cn{g%t}#PcW|$VpnmqKM?f!fkIH z55vm%Vw2!5L)WZr49VSJPKX`M7g$xv>W_bF<=hZ z(zlM@j>20*E$d!cTtzy4I+GF>EihQG$t0`UnQ7X z1Ws^Db{dY|e=ZdBG!~THPb)1n#|iQAwKtQ!u_=sff0avM!rV$ozV}L?cXF(YuV$SK z6K}>vVp}=LLrP0%qh|S8p?R^O5d^9g(NS2I2hiI}I#z8e`mC zaY=`DGjWn&tgLiBj1rk<<5wzPqs*?3vXf!Vd=Q6UYNfoVQ}M-pPuoxZMnOqV>ebzGuJ7< z)0A0y(mlQ9(<}^eryoThhl_2MSS%YBtUwt(S? z$YLebl3Dt+^^l1lN)Xz4wPQU2sEsS~Jd%vkdUvpQeD)1jVD#!-ag}pGTX2?_hCwX4 zgM7y{+w3Q)D}iz^@TTKMY1Lk30W4tDynh-*-mOqldQS8W-hQ&7aIK4r{AS|K8zBM( zUG!SBKkqybVQU_@yls^8tNYl5*O5XS4w133z+f?8DU$(~ah@;yKLk0IOaG zF=@(!Gu^%FsO=xveB^yuAnBGe3$A79#+rE)3w$D;sg{&i`o$J;STkH5==g>ARBye& zyuVFfXBv{z6sI;&($46zKcC9oFbZQIJ_kFC*+E@GgnT5T^dok{opHTo(M#w@1DXD7 zEobE~!8$P~EXU!+iofdT9EM&Ve9mi&G(!#_dK3t1CWLB`)Px+qSY3{{PQ>leS#IVA zNun%}R*&FTOHS9DWiCA7EbJgvkI1;X(L|%2YpASw{}6Ufk(gx5kY;$H68~-k^RDAL z9@}Wd>2MO#dF8==Hg@5v`VdB=y8AhY4}*=v;n)BHyN*7<4PIlz$RVi5nuSqp50QP7 zO%@x(2z(FGtg|h%+39TT!lW_ju-BGp4IRWg)`Oeo74!~Jf_!{+^xu@mWqyh79m&@ggB8L+9wwYn@|xLRORNC<+eI~U8vjq zaJOUY6(yy`F;dOS$|r zH^45iCB0W~y}f)y+}|BoB726k!B+rmim}gLyR=FRCH6dBF8OipyS9$shhFt?*>Pcw z&S>Yik>jZ+RJU3tNU71m-Z`DSiz=>~>S0s@g8KDBY|<8UNuVp&P_Swf0cs=!kuH<)De5LA&G1HVi{LW9UVrelf!;m#w~2dTEYCMIiLs!RfZk0C zxYR{4#~U8vbNVzBquXD}y)`ONd0}$G2N4a_kVm%=7ue)p7%iQQvR5^|PeEwB)OQd5 z1HldWRphnSByiS~TSt5M)gL;u^`JSIfcXs3N{LlL2W$$mPi=m#l72h28hk@kJU`9` zX0L{IH@8BzeM~%r-S%;=$5!P2- zfu5hi@0qQC|1Ri&sSJ-Bxps>8{J7e=w6$HmLF;pq{FL0QK&%;;+v+DT<{<4-R5-^{ zl(fah5x;|)99oMN%Ibr%i=u0bYFKe6Mc8{rTx!~FP0@%ARbLN{gpd@yVji2slx-@> zV49Fy*=3BJ6l!*zt;pxnEnJMbvQ5XOkwMMlSp+H_12y;HX47yuhJS!b;u+6Awj0o;@@CckPt~#sBb;s`AaQ%nQbLviCq9;_tGhW9n zsi*7^LxdO6r!6tMgkO@ax)t4wRPvW<4lVn>CTt+3bu56U$^e|G!({_Jt)|{I$SEET zzI}sMb3u<~yQ1a;f0V~?LnZO{?G@MkaFt=FvrOl8!=DHZK)N-j(<2YM(n8{_fVw_0 zN8E$Bg5Iwd=J>x%AR}5&U>K!!Uf%!}RO$XfwQ@;6Ox(hcWr`$Rrsyi_A3GwW_9RwE zt8O{E?6V<9`|Y8Cu2|Sa5CS8{|wW`fM*2?%f<3 zq{?xpmbj;wtg zc`53gP41d*>D*l|Gts+);L5Vr4V~g%T+eU#lq`lp*T&}lp8fjdAcor>OYSsPNf*(zs6rte>72$TU~PT zcy|g9ay zH7~V(VX391q7EXb<&x(fB%#Ok=$rMTN&tFL4~V+Ie^}$!MHFighTatGtn&#JIob?% z96e-n>TYUCJbU*=DY|JO4p*4lSh{FOGvZvszG}~9C%L=?g$ciNK;&GAx*>&*8i#>T zzGTzm^J|Hu3Thup?n{vqM#|1tjnMerk- z-QEm!!gS^^-_=>7;L6a9DTk8Q_KhW*GQJm>r|0xwO3WvJdgB2K8E?JHagHXK)Wn(GwkFA^;B#RMMkC%VRAHHK_-aXxA^t&piPSEm|+jY8tbbv%>|BTU~mw zCeoLi(v>}P0w%&p{fO+9xW2@4pN+imVy4uDoDbbhf%y0Q*jIgem}i0YFEl;~vfEG( zdJ3rP zDYs^MVL3cdKHv3TNrpa2vZ^||Z0t~!O!@H`r;#;(bIDijmr2A&DeXUGpQbw2c;m>X zq-H9%bT28+piG;c*|4))_5zB9FVm2G|6R|4z_!-fW^HC4@y9iWTu)^>sDmY^UN@Ln*3+pbcv+UHKoc=Ea%l?`Kq(?pM*`cUAHw6&Vff z=am%S9UBemH&hEy?p)iJHyUt7?Dgn~4IgPvNtErGbIxq`FFB0zMqu9vw^UVcVxLSp z*VUUSO=)RJ0xVjOzUXZ*;>%^tPM7b&lRkY;h2s!zN;&YKF)oQN2C5X}&4sMn;dhsC zksiKiJ|h<<)E@rwW;zm)l{q~>5#=&pMjtYS28M#oD1(VBA=d?ThbphFee{n~CgUB6 zZWJh0ugn$?Wh`yzmoBCGhA+iUL$7oA_gxh%k8!mv0lPDJWn32ln{ErsQsp#8P8MYb z>?Ia=&)ooU%#$IT{Qc`R#iP>+AH2JHl@iDF@?)OkMtxsE-Sb6SpUxu*=jg(m;ZL0E zXElv0C6`2W!yr;NwgNiY5LF7lE<|={oI&JjbR~L<3ep%3y^wQYb=T!o8=em%TZspQ z+2ZDB?5&Qi?4{0LVN;XJ(~zdW`WXuSV?rnkntOGrYC%AI4t!Oxw{qc zWq~4Nk;N7uu{*nL^dH2r>wp@>ehIQ~GQ|JUBmO~*Gvb#jA7>7a<++Kd12UQY!8dKWi<$*5fZ3T99CKZzM#v%Fqn_l0L2VdeI`Uf z$PD)>Hs0yT=%+N=&LuT1?42rN(~8j1tsC80BkH4CUd$s|E%pE79Gn?G)=;vpSA1`l%81L2cLL5m+erYp;QVZKuxqAH@^i$y=8yd@P?M11{!k zp4mV2d$~!4J>=vMOjonx_g36rNWOs}83!E)O*i=rJ&g=TyDq?wtkmZ<g zynQW$wOl^6wdOed@1m!>qgBbsMmvT~JdBd+Nn@dIWm3th(H`ov6Z%ti`w7F>E4S0k zS}hK%tkZGDOi8Ro^U+^%=h-J($gnx4{8az}LOLp3yCd^M;=50q+w)MnyO)5|WIGl2TDy(rA} zk880J%JcU-kI>NE-dw$j)yHr^<_>1Av-vP(l)IypJItRjUjyL^FPZXp0BE1-$? z6U|U~eKZe}MiSV2n7(bG)6>mVR>-KNryvhar}ysM^X!C%AtDd8W8z8s=y$%hR3*)+ zi1V5KES}{&em1#-(h!R^w72*)5SxWnOBtTNCvR@avzFc1GD~ty4_gx{B9%~Om7jX# zo252?EUUR3fjF#Ojwdxl<;Q+m0&%Z@CS1C<|N8XT9a2}p9}A`e^PM6x=WVi3to3K- zq*Ma#pY0{A7k?KY;(`2mr<(HBZw`x!vdce)aak2`vu7wIo2p;?oT*Uu30P1)nL;4S0#)T*PnlkgrI)ZzjHZ6p9LD zz`Kxs)WO+JxR`O*YfGOzRy?vu0io6CcK>THM8VJ2@cXs64++`HO=7y8WK*2q{~iL5 zz(XJxc9E06(Y)_$p)GvL4}pMA^Xcx?W0dsj7_sd{9O~>;eF6O=CkQ8qqZzc9v!Exk zmi0d7&>eR!9=ImgqZ5MWMF43 z&UP9T6<5ien7Yf*`__OkN_kNJXUY0TY zM}WzSnP=@gz9yq+?=+3%I#_qsyZJRkpEUS?Cd)`!|N8XTtp*g(;=_J2J*(;%g9J{F z44%RMY;YJn`m^1>CJOP7OYIiq&pVepGk?33qia(@-R+|dp!k}QOuW-tVEKF+<)zuQ zvmyD2K8U6NB!BPJt&R*u3GIgEGJGrFudbMsCKJ#6;^+=(l#oW)0QJwI0P60q7m!ww zP34-@fdonQ>kA>~Iz|Pk?lICPD^vSsMO^o!4Q7ZDa=Au4=#5=)P=R`V$|S|>t^OgW z-#^lM{CU+ya+yu@OQC@MC>YebP@Ys@uUuc_6ymQ!iAt!HR7ocq1sE+IjXCn}Mj8c{ ztZ0Aq@%}35C0)b**||Ug z)Ww5&+b|>iTQ3hx*?9S{gq{&>$ZwafLV|q`XOXr)dX!y+M@TJcDaYo$N{Xh1?<2()SIIYHFae=xZ6hD+_DLkRHICOkLoR9!AlzDb1@q2#2sC(*Xz$n%A zL>r@jGpCd0mA*9_7W^b{98UCx!pz+z0AY&FV1VYHH>rd~B%5hY!v6;zl!vi_?CxM>F^1+LP&bWLxD8Q%QY&ojc+RWZ$TkjG|Z?_*(BXpE} zVLRQ=!nZSc2~8NZQg8t4c(7LBljkn_0`jdT++$(80RJ7jGd+Du@`9LIVe${-v7tS3VCIbN-i@ z-kZA`7<2whO3&+;`7GU^owmT3^N)(2688NcSG64?$R9~QV9fdE3S%)^#N_|VW@Jy0 zgIz%yIoZTOQa_ZV21RiU`So7@>)7SzeL1t2F9}5of}4S|5wiwgKa$GwrBW~$Cs3?A zy_0xPPg2Z4!aK5Cx0;d~P8x-klkaz$y}Lt5$R7prWy468SaGF)XGNmO=&Hbppxxk- zM8b0t9J>q5@nr#W){K&W&j~b&J23xH9M##$oukQeB~446GtcMD{K^G1v2f2AD-wnD zYT_~ZF1-K!WaEEp=gn*jaU9A96GTnJsb~B+dbpzBepjS$weh|`=uH36`jcn!|5!dP zS^n7|jDgtCGa)BXK!u6oOxG`z4)pwQB3s>bB}4B)stL&m{@OwF(OR~U6f~WDDmnw- zhs47zel2@ZtG1AOBJ0fS7L7aj*+u3!NO9jp`j(MY?M6^j5ED%Cl?-9t~iRMj-*rbXSh{Y&DxuqX;$zIGNa{B~tEZ%&yuL zHP2Kdd~hFzIvqn)QxrwVLwP5$9|z3%hz*Cyp>q4h>p;j3S@ie7s5Brc& zI&BC`df?~J6UcN$<-|+6TJ?{zdtz~8diQ1`HaC7u&noo#HLvw8FS?*bRKo=iCkByp zGw1o3Tru=zwy?|zxt4A=`>*KTZ&kdV^as`J?f)p^&4T}a2rr^0uQi0f_wSXzm(Lb! z{T13PkuwnaE0kwUg#TAjuh<3T?@U$sO6EBraJxThXIkJBiEPY+429M=t2Lx^^X6iSYI)va`tJ>#WQ-H&R;>xGoL+7rv=*ukC_HOPYGd=_(u27Xj0qd ziyn__v9ICdK0sM4AUsch*%SF|e5B_2)J0ap3jOc(ycm&~i3O*H1LkKyr}ZUlzd}8c z%}s;8!o6~=#vy30TJ3@Cfi!UvAcR>NUYcCq;%DIyw$DE!w05C_mG*f@`d6bje%h<( zzjW65d6t^a4QI3!9O-xM$4~#5^z8Ig&TtZ)*3kW%NO!VCK{^=`=56+s9*q;S-_IJl zcb((KIA6aAe$abYBArb9==2p&<$7!5Xk{9iQTYx9!$t2D% zjX`ZjmP>Z{0VOiGOQVN4%=-N?_j*f3e4*&33ZsLDs++E1*^so6tA1uHGhU{f7EUW? zsTV61kvPfKTth~H%c|Uz>-CD;qO?}!sOdtn!8b~~@0&umsis>J*ajN-$l`$Ar+z1! zn~O<~S4XFtj{EzkYc8_etI_+WPgHrh)~yb~&MCNw*N-y+ml3Ba_#Sq_i_R@%}yjm(kEn#W{pqGm>y8(CN=d%hpAA}2e&TJ0O6(xXmAB&wRf(5jK6ectuTx&8bQ z<{`IvIADb14w^t?RXEa;SZWmEUDuUhgh8Hx9|z0EHIRFnRqy-`y#c*_yGsjO*b_^H3K1gImBcuc zz!i7tK$3G#z7QB8UzFcq*Fk;L8QAoq#KlO z5D=uKyBnmtL%O@WL%QJrhu#CCfN=Sm@r=F{;(_bC_HIX_|^KKJ|$bP zQ0xmbG9J;7Jw&1g`zRL+h8EfHW?}Ad{zRf;_?pyb-__xQDzNr6+XyLQguV(NQ(w6` zBRJv8QSy4^puVe}g#4+>rs8SD>O zeSYhU2XcJrJ(HdQ;zTAEZ5~}X6=c3JP?boR>JKkwiKiV#%7kIgA|gNH_X`mw_R~OV z=c_4s;n#K2JN@+pe6upb)^Izg_OaM7+p9pcNX$QtYF0s2Iy#PSi(XbkwK`BX9a3+} ze~Qe%hc}cJF%vQ8*p|;kET9GWcWTBc65 zHV0z@^&Y+KjP~{TiOjDse~pDSmeEk98xYM9$kAD8ACq_z9P{z|X~x&s!*aC|LNg83 zk5a@L&mKj<)_55ve>e9lj_5$Tw?K=&w{@jgd9mUfn^x)UVIw0!xmA)dlSDl)%d&hp zlT1|fWrfjNmfA%vyG1*ap4|ikTMmiVyHlFPjet;xxP!Wl`HImR7Sa0L&_vlt`H7R1 znl!K%6|lbLXcgO3EKm6y5ppCPr{ci0>d`TXIz=Q+L!W-DMyMU5`KG7a48JnHH8vrh zZ{_cbeh_){F3(`*0{mTW2iatxpF22R|JDNdUnk^3-8D}rJi@HW*?j-qOroc!ue}x> zNd0%CQXeGH%@&dH;jhMYg7(pPlA`R`Hmz zG;AbFWVckh?RnvwHH-ZAWi?opqwl*30_Fl8QZ|&x26~Y;Evtg97V6!uK_f?98+;|$ z)Z2Py03{2@aMh{AkxW0N0asDrlg&=b!>9UwDq^nK8$S~IY~fZdVk&v}*J!OIjPOLD zs?_4L&8zdT;NxKal5Ctfp%MCSG+{}B2nR+P(GD6Oz3y-yvnJhO$E*S|yxmiewJ(pd z{cR2Q)!R@`;!hvYg*XWr3#7Xc)sCfqvY$tg8EG7U62|*Wk}QPr7HRVma#WU384A+K zKN~MW`@VH#U9Fc3+uS2}iWg1lmZAr>JD70^8ykfiuaR3V)5?c zm4tGzW702*fiyf=$JZso?QzGTFtWIwH&aoZoX3R8&u0Rl_AiuCiMa&4s(c-?xs!8Me^HaQiNi0>eR&#lIK0V&;LeBza5~q2W*vNjhan-RIibb!6A4etP zv)$P{bxm!0(0onPeN1XQ5$j(GDMvh3+GU$D_VuI`*r(<7QLVFRxf}86dby1pS?U@Io)|Cg}G8IKir_dwH;N(O1v zDv`2uVhf@P&bY8@yGtzZ7oyu-cll3vK1eUu1wNxEP!%l1x58@cV?rQdJml2)SM)3s z>3`XSIq2nJRG$7no<_7s-3EUwFvHNl5GhHwbssd+-hdIr) zhkvW`MI7U!A*sy=b|IpebtE9f>^n?_NmZ&2vC|cgu=6d&;p(9eu_q3(<#3S<8*oMo z`Z+HG3ztW)6O~g;JqnM;wy-%;-eRDo2bzRB^IG%5O`eH4V92D95cre9p0v=Bzwy@m z?aa7dOj)K?9)RlAN|MX*uA%-FCjX+RPfqo#U6d}2pYxb#ee-wV%>9rAs|Y9c?nZwn z75~Qa&yzv-#cd;X9$cFE)@15|W9lX}3f#%Ry%~VxzD|yP={)nAbR2T6Jpljic5r$v zxcR#2dIWNpqXR_xBVxzHH$aEj1*1*#V-%kWhCuF3(pZl-Q}i|aFy#t$Hx6?X)-&m1 zK9tb_?rn|w>*d?_rUBY7p9R~lM#KoyVoV1a7-&-yj>s@SV?Z?-e><@`o-|7d)BB=9 zuT?t;hcY;L+P`;GR%Ub>uVZs^(l34VF=HdQ|3zpH+?ruUuK4)$?#5ht z^xoot^kt*dvv{tE2a9jnDC&F8y?1}bVX^_QOaBRGaI&e3R2*b}E_JX>Fg!$kuyK9b zWV6%T9khM9`Q9lsz^k-r`uvOi>Xps(&~ft3G66^sL1-H?!2J@bNpfE>{rV&y{2UK2 za=?+nHBF?R)#5Chu9Iy$s`6Ub(6q_(Q_kDh)xABGf(|mTojEa*tWK3>rwnKE5{yDjn}5tou(-U7)r@EEyXrTZbmeN4OwPZ-@Rf0AP0CLG z4#Gd(wP0)-Ize)BW5I1|tifek|DKRVThq*?%J7)UC}DSmBKnBg)`cOMbUTUycrUzbfU!W-IoCTYde!PiZcny#0c z;Fj-nDW9F4InZlB*J4tFGWO_R%`H_In05c~Eg^LQ>5gf^rx^6tP3W02FZ8$N>SNPc zn=D?dnJ~rE2D!#^553O4(wkW`x0M_%z)I$(-{2}&vX)|riflHhY6UlePYkqwTo5r? z?81(!#%nQw3X({}w}UF0mD#Lo=A;p(zzdO>PEn1@Mpo5DOw%)TWa8ZW%Q9X_fl=Vv zs#Bz8v!jgN+m%G$@74z+c%~E;&nBbd6n5_V(t)GTlW&xJ z#<6TR_ubBlr!27=kD~SX-JarEHpq@12m6bW=gqu%?RJ{`JI43&cP@F{bMBMM5epWe zyh2f*)l1*uE<}kR1M_AGILtfQ73W0O0qzGmw1O_$K0+WV-O@YI@pf-+tt7tvV4Sl; zv~^1n`zKbg^>H08wsLXV-3znXG^n~?)PuGhEBVoa=COC`)J>N~r%Ad;s>USO` zjbQ#a^H|xs9F`PUh~H<5wR_7f2ri;V&FD2^FF$RlaypuuS01Ta#w8DlIxTTmRJk4V ze!Oi1)wHVj%2vsp++?8X@0&Hn?AcpaS4_+AnVAn1BxZJF&gwARx-l1IVp8Kb=|No{ z_ipm^Sp>Z;%NdUF^`9wXwFVD<0voexnzl*WnpJu=y`Zj>8dOofJ65y&+z`Iv;p%OB z@JXRxBbvN}&>+|<+Rm!9oj5?yCdh+pN;psVvpP0br*3ri_BYA6CPVu-E19HbH+JYevuk1;B^)+3 zFE5h0<6C`)k-}#MdYt6&rY&mv8z9?E$5Dnel0OrGew}9}zvCSdoj);-Ghj(Pb9cA{ zc_sC0&AE?Ff%|%s~D>TEj%db+CAYRUnz( zvD$65Dto7MRiH5$nUs+R1N_i?lT|*a?Cfnd%TgT-Cr^{R=UK=t>iJkWVA@TyQ96~` z#4s((l#J5IIF$PcMeE0C6@{^y?dD;gQgB#D=9j(O!a4tVKX7P((QNLsV*T0ZC%e3j zVKT0M9R*zueLQCM_Y#F}y6d4S#QhE#*A~@X9`1^GeO7RqMw#sUo@c#JlI;S{I7}kX zdauL8irs#KxRyMrA^k*B&=q9;ywQr?aF>oQL~78>^Hao8okyNRZHq06zuCZjiJKfh zuJM%VS9d(QF%4mqJj!0j=Pk!1W-87TC?zWfgdNNXinxa0;FyfPZ`3;7qVYX7r*uU4C5c{vNt@lv^&}PS2JcVNf-~p~t3UF0i2|)C z>n*+xYpEioL$;6uVieuFrH7sU&gKaJ=}_lW07tE_-;;4%y^(4_kKA+p%Y17D-#Iwx zXS6H{u3u6?6X^8l7uqn|a2eFFwVnNmSqV)xht5b?7K<_KE%Ocu)@lFejl7+odt>U; zf+4QpGkhU~ocTMSh}#X7pIFXF*maiuv+yTgXa(|i!&!s@;a zHq_v*?&b;S>V_G-9SC<7oVU9A#FM}?$YWj@ZVKsjA#tkY013vu=A$@d8Y*LDFDEG!!Ip(5W^`U6w?ffg`;v7fq-8&Bn!y1}bkr>#oqb z1YE{4;Xddb{)y53P)QYY;`tj47(bjdaP?I=^X7zMUywhy`GI2ng{|QG_{10cbq1oa zq>^RH8JB0%+cBpjJAUJ1TLm|Adgg0dhtYN?MGR_FPGTitu{DRB?ue`Hl#W)o^MyFB zKZ=wx2_|1#xBVD6Q$`*MIpp&cMBlr%EC5W#cEd z6K8h94L#9kTv*-JWSRJ;-QnaB`K}6NeCVYyP9>PX_=&;ca<1`3n<+9xKqBR>i4 zG!svY0?~^klQ!MToXWWz9J+o5w98yDt--~|nv913ei`p=Zm^9w0nOJvRu!x#b=+qm zuT3x$4+20jZr4F48)vhV(TMMMtV`^63NMfQO*BXwb$&R!Q77>t56l4nxKzDp*QM;s z`@~$Wa3W>gn*Hnid`!HPM@p#m(1wk`NGoB$$2$E?!dVcpPjYo}?9#~!+c!J)N;r6R zdVAi5HSWw3N36W)v;SF!*L%ephr>x=6+WCCQ|6~#Eh=5+u5u`tk6M6Q#H!1bSo(h&5S?ss}M942RA{mtw=$Se&Ufp+U9Wf zmr}WF|Dm1)%xYaWCUGb`1E0-aJM~bC{ZSrYP!XxX_~eX6)y_okjCvV2qP{#=E1NFn zTXr*7J=y^)>>VR|2~&na$@FPPV>cHiuKrqHFaH@5|mCh++S!dl-`XeWoHihkC5 z$!;ucqkjF^hw&rUVu2%apriysW9O>*dG>6#g8_^y+L*czhEdBn$?2%rRGHzaKf1*% zmp<7H|4iWCb5)GpmALDDwTrNI5g;{VpSNwYbU+r%IQ~;t9vT zSAXOZh6-De@z2)3{>I!6#58fo@^pqTizhF@>srq=jg@z^Kq$;EPO9gs6JCpTUTd*` zcl7M~Em%-@9|cd4{MrBcF!;h@8eYa@(Y^YNA#Xw0_d*FyhLfH92l3d|I z#|P`iBV*MAQl^RB6IPQU0$^^MFnv=02Kunb@MFc>1H;>c>{}i|`>9wgc#E80(CC?| zqoQu!-k3j}w4GS+h{LzvWCl+OOCl`!V;2^ur*5Ggy>CscG`Wti!fL&GlWwd089)u~ zz}M-VFDRQ}XR#$R-$>7$*1{Q7{VF>8=s2#ppy@YrLa=jLqO#Znf9QvFf*E%w7$gyF zHj~VNczwVD?HrlcR;6uYU0yJxHgb;Fhc{LQ+S^-rVs6;Kui$1f88ts@D7{VbHny?) zic2|}r{_{7+P=)4_4VRx4Ml5IMU6%Oou=m0oiYKGJk$2aPw74sXQ^i^GmT_ewyr4h zLT!}GUoC{u{cPUoNa}Rtev7~-^&_P&)Kaet3Ai-k-<_r%euBbrB_i15VCi zN_07KSv`rUX*x@-3Db*lt6%ft?wxV|3_hA)|6pf|eT?~Wf~3XO&+vA+Ma8u^XCeGp zZ_+JB#pI|gNC!fROmeWBhh}H1bbIzxe8cI$*(9!Lq0SQLm)JzCMEv-!NalC5gsp|} zpakRA{GAUg1Pd2np}&fh%zF-Iw(&o@O-j|YU(D~GMPnlvH~lGRP|B_@*bJ%}HR|@2 z+cS!3X|tB_AkP!YR}r>d@)stX(fvWGz*@#w-Lmw;i)z<{3cm0Ynq=ws4Qh_=*2I8c zGf%Tk&v-%17jFh^?T?0JWaWTj#?mwyikbB+W?aU`iT#cM4eM-un0QK4J~?|hARCpG zH+}F|I!ZT^W^V$B(lD9VZdEk26ONF|yJ)_y8)`zBY2X`;$B7T3OWq-WyQyOtV7;U` z-&L~x*B^yS2|3bf-GN5~sjC7aF>V)=JP`^YD5v9mw*?8Wi(VJaq9@b4D~ z;_UfUMx9Hz3)Ii(%fPO|+UJQADPBz1vZMxg#tWxfrf#$w7nGP;1AWQ1EWOE9+{eDU zrsuTg&iKZG_4{4;-!F{qIeu1VtT!~oEtfYgU!Z9r=~dGXre;mL&vY+l!f+jym8l-_ zYR@{)*!DgzvbhMbw9#380FJP!8|O<@&%;G{6Z| zv^VkL{-d1Th~{KjW-GAI8bPIuZ*<8p;*cRHr6t|=607aZd#AP$lYZNe*PE|eowUS1 zBbrY3PjIaxN8iooRO7x}9fAky2B=$q&2bY*qOm*+|D8@bmHI{Z^UiMwbfGogSjdnu)k9_qhTc&trBMyXDerKHuWER-kzSI!X9n^Q8D&(rEfIZ@(9j=^SDAsZ7@f?E|A?>wN`Q*tzXaYY9B|!5QCV;K@OL#u+7NzzL;oz|Z3zy4 zDo(YZ4&*ptciCFrt&f}3f~DlH@RlX+-CKxp{y*gxKkC3t8v}M*n{(NGF|Tq3+HwXE zZV!B`*j?*}78k6vHDII(^s{Z6^X!&q(kv(F?@KV6D+r#Nz(QgR!Y-Et>K5pyJYAZZ z9<*MX!NgzWu49jt+A!di7~N?aRU%vDT)gC@|6s85!J4F-?$*IC(5(`3$BlPg^271C z$f8ReSRdK~RQ9aj`RcvksoOqhFGYv}kPRRjZL0vX0T;j8w%M*a^>HViFU&uQzFBqN?9@tJsZ3(okR&3)m#kP_?nCRID1B|U(04^Y z#{RqpC#TJRRYUXwk_l;yQ~Jbr4Jl<~=MpBzF=YcO-l);aFVP#GVkR}t9w+(j`$3DD zj1)sm!#&R=1SjUL=@dh+KOOtFt$%Disxd5e-w#4_;hdTcmECvhRGK^<3=-)%9?Uh& z*B%E?a6vrGSyjCCTQ!kkZs?ITpD_&_w=FKk@StN5+4I<=X8a1P4+$t*=QQ|&pGW@P z@wF%mGU1EJiNNs^yM{1=}{uHhwQ|`U^Q@WlYDo|QlOEk8MchnCW;0&h9{S#<^dg3KX5$RqLL>$=& zm-*yTMhazBkO_iMzr48Mk|mVq+a6Yy#W2AoQw{&U3Op1H3`0KD5A2XSaZ^11dleXZ zXFBqG6_8{!i@9F~SWL_si?KiYOO@2znSCBx5{yskWUeQ~YX5crd<^C2?KP!1euRJR$2X4`WC2)%#$^}$`TlAm;ZqY;K zK_zgD?o|^R_5HnXqL>Zs0N_js>9@?f6{ZpQBa3AwRkA4P|E;Ql&iNNTpD^C_%-)YMb_H2Gi!40*YPY~tPO#I&! zkI3gh#Um*7w0Q%M02w0!7FMZF^R*ZYM#45-&%Y}Mq#r5<)Y`NyU;SdlM(8&(dHq~@ zhZv`>Ci}o`ufLmYe&u>+Ib6|0o0Rk!7L>(Epb{L3HoOiT&q zySW3y9%8o3R>w~|tiHf7yiCK&lJ?~L4E%oOY!D>FH^X!}HHMNNiu12OqW_VBf1X!1 zxN4+Q(1Q3e(h5Q`0JRQ6`PoNw4+RKC$Uhwb2Jw%rM>UXJgUEkU{Gyo>BJaKfz#twh z#{n3`gE^2`dmIeFARgufU=Y7m_h~fXVj*@ zIz35X?Z0ApnkrrT8E6YslM4i!^8>)!usSx#It4ws24){DP%@5U2 zJgbbDXb}}Lk9gV>?RSt%m*R){IKtw1o#lQ=5cQ60BRp>u)5C_Tp2~sq&Epusdo8Y> z%A|u<05!0Os23#7<#FF*d2J5N&NFmx|9i*pqY6gZmbtxum};J)>~R+EHa)q=6MLJ* zO4wWbZ1(pa#J`UCdsDG2KT}L(sDOG$rdMSmN$jtwo!F>D?oTtnN?&E7QAk82sse|f z)acr?_RDET_Tw;?t7Dw|4=xyW#;pbY=HV**KK~0Y@Ly8_X9*nDw7y8-;Uryi@P2=C zobQ#uHN)S!xBvS>5cSroG(AqWA2Izn3%*V%#p8v;kb51fKkvEsdk@UR;s2P&-+zYn z+kRo8(tMFwl?m^^&gslb`FCH%vbQuJsxr#DGEu*uGnRZ&LGzW!;)%xNwUTJOc|4hh z!Dz^ToY{_Ru=`&(S}>}@i+Tt9!1T}A{eby>v3%0smgb+pu>boSca;LA(vMRCxx~j= zd}GY~AMRpp`%57`m8y@<_j_g@@8shho-v7HBEUmS>?s9b=>s1K?|y1?+Fqw0tIPTJ zy0sOta4sCNS(96%*Zs=EHG(~7a$+?L1g1^^KCd*>8p()SO!cY0$cQMFXaw0ahEQ35 z*1@o%0UD`elIGSV78DTI$$@9z6NtWIl;xq5~wPTqD zBuiURL~7IRul8ER!>7^nBarD6wjLgc9*D(RP%A^P?3tUG-S6J@pgc*KKUniZ_CR(x zo?>EX*mN2X4=7_Xq@_vB8yAUA2+IoxN0zLNcc08z-UBe;XSY+7;a4xOgQPifzq}!RTez4T>7$zE5-4T)TTLdE=L;S{qmg=CtT@Nr@|fe zn&6B;o-Wwryt8o4gUKA?{9ERSI6a|B!a5Z!kjdkoqL7RQc(z7y%0ti3%!3Xls;Z^& z!(jfBY@#rsDDHJXLM;jgCngzK*fwo3yyO52k)*>+fcEZB2GzUaV*i}Xk#pffuboA0 zRV3d%9z8#+9RD<#_Z{a?3WYCZPJyKPot#oc-VUKl=p&o?(%?CU zN9^OBs#FFSJ5ZHqpP2r&bb7|(WI+8gF&?MA@(MJ=^OrdO%x z7^OR+1x9p=Sr9zo`##ps8to2UMqu+)yv_l6Atwh8`_rJ|v!F4z-WbBB{y0(Uw`QNX z5>FMS!n;p5R%q(;r88G#L^8opqTRYDmPkK&?RuVbQJY`1QJ1STX^LA|2+eeroxnJy zvT+R03ypl@oE$B|PRv@iVmBR9)UtG(H%ebNbK`Dg^o@%#{F>0KXBZe6RNUKMV%LR5 z!a&DUbbG=&(>QS5)mR_vm;gGfmNCI286US42a>zkqImCcskEq+C<(bFMRGD^E5_#qrFwVwVOZm->@p(xYY-Zt8=t|Hi_)s zkRuS*5?)*lYm9Z`OG0DCvzM z;v$ongcI9Q{vhW!{u!;S<8;Of2r#buGC9jcimhs*2bW`?mgEL{@Sv!y$?!}E)b%%9 z36+=ezS)p~=4~8nV4oag9%BZ39+AIV!CbKiihp$&BE#%NZyMd+xbYwe-Yq0w+KOmh z?jL>AS}Qa|FeY;3%8JeIhd&}m7b16a?RMbp4I@TP&S_>z_wHy3w!(jQmnPWSPV)_u zHpMa3G1zVM!1>JaU9kD9uGUt~t@(i+jp$eAg0Q*i_ORh?L1FyFg^a4xX9`AXQJdMk zP%2sn82(>Ic**iQFRcIMx{wRdrf784X5D-AZ%@m*6nI;fm{@R;PjxW6zfseQOs-oxXUyjqZT5~`k^M0iC(wMD}ho1@&J8R2QD z^L4&4q$#Ay0TuoT?x>FC$kZGAOgOvk;PgE~@1k3*xAV)UG+OCp2y{fCp$KELjN?za zc@y!OkT6w)PiA=uOlp|d^0U3OYOqjpBfJJndh`@@a5~=2GRVRm+!rzp8d4Xb7w6GT zJ5PSBbU&WI*m+HV)!LrD!|$3MOm!*1!7&fC&h6Dj;>RR zUa!~~OnlKir?j!dzRT*E3?F6XMCccCdOaw4u+ci4?|xmA>zs+5t=wdcz13uE!!qgB zV&Wch~E-;y2zsz0r0` z6)KY}Ye~R9ax#TyuULsN+3Y^*djtFiS~$E9L0}b4fkm6#rdoe44r7#TGv}Nw;+_4P ziIXq2%s;nPxk4KIxj3xnH8{)Rx38^(Z71bF_x6w|Dl$^G>*AKiGtf&6I}BZ_*6l<| z9F*_Y+k~J8#hux8E)~~qID$~yJ>Le*%r9g!6dTG878s8T6z#pm2xU%PIa!(d3N|0w zM~_<=O3%FyI2I_s${jYMD^3&8P#lKr-M^5yxbEffB0BuJ67#dZ#dJZaL4W|yOp6nY z#uSgV>(orPw#12yD3tzB4vk6km9jW<2#FaVA7Gao0r|iP z_S~Fx`zJ-5O~xq{1$RMuEjzGQmCu!Vo%1qc4W2Dp<807cIJKT1jP_QPo^n#tfow;C zl%0>hJF}7;701Ol`>x?i0SPP#ThO6F4Uz5t-^etSx=n)O!KVEO?KeqOzhZfI_K$ha zg}|T8`oWpz2g{BXojc!emK~Dqs?f~DR2OFRuq1bI+<1=8czv#qUz<4HW}{y_pQgaL z*(p-tk()V7)mco|Jc%@Ky4n0Z1rEpVBr-SOWe`D}0Tvqq2@(H4G`)sdjI?g+x3akSlVgfYGR`KIC5&lJb9=<<4`^zb;O4@&d%{VQ4> zs&W(gL#MTDcg~L5ce?sK*5l4o>S`O|4Ert4fxH$iH+DYS5^g@oW1A65n}))XwWVWoNOM}Gw6z64QPj2^kL9$~?;f*yF~n3ru3$WXlSpLpRR z-a)i^)YhRUzkIj!7xG;ikx2&e9{GOYZ~AIg`k&E*t74n~h#q_?EKyrQJ;Y{WR)8#$ zDKCI=Kv-h(n1s-T`qN1V!iaxwJ*ta=FyehV-8~W&^1cIv5g!b;BBsCmHV^9Q4tm(_ zqk;4|3MjU|SAF?Se*qZ9;yMHY^cVFVk`4%b`pDIu3Z147pI=?iD6yxBe;qqRjW)^k z{Kij1RFV@kN!~}{&Z+5D9yA&9^8Q%)|Lf>@ymb;zxQ&{YNYzg$6twc6xd&H{iM1d& zcb(8mv}Bh-iT=0ljQ~F0`d_ttkSHXnTBggU*kXg@BT9jfAlU4-9mTD?duRPmJOYRd z$ZZ+wr)q_fV-O%|pobE_(M}>+y!X|eQkxn!TL533t4NnUWxVsQa7&CP1u6xKchUzr zhvexCI0TQvTjg52i36f_(`(Z!-`N)8Z!Ur{!V#FL=pEV$^>zlM;kQwc@7_ml&Mk7T z)4y?VFjLF9r1`Jl7On}=H-*%*tjjXk&cxD5$1eLqKYqxnVA(Fpk`$QgyKY`-ZD4POzO`p8CUM1B2cxT>}5u zAPz6(DEs*9OVHB({+pw0SB%GdKhl(SCQU~L%q#Ry+xuBc4Q@UC^?#2Bf=-XeRKU4< zv^SWCdhAWKqy_&T`1^}P8O3C12Ta=*m!n(>09JIV{~)77et+R?*zUv4ujSfHJwj2F z1lqXp+CJ}g@IOb{j-rZ+ox&FuytQZtPkdhYeDg?%LUfKVv&+IV0^DzJgO?`gZGNY@ z-)0Jx4fvYg+<>3yvGCn37C<#W%ZYn_`yib!LHfq+rTi3vB(ScyGCZmK1Pat*wjP+5 z8EWh)dp((+X+~@|5L+|IPslYu&k3ac{@-w)VE^B7pJ@DFai5$`#x}B9Zs@QK7s5VE z@IhfBwDDbW{n+ny&v-&`1(kor4u&+v%fD(Bj4M*tAtUF4A1v(vsPh9M3IKI}P*nm@=LeRQ`}GB2 zO!*CU1{hO}?Uu@b=;Yxv#}UJG^oU;e*KcVNb+xWVg(3hPhUSXwTLt9ME`4H*N9ft6 zVIaVL(&gd#Kj%L2AX9;5^f-zMi|J`YhwjVtA zomKX-WxelU`&&$SEXS9mK)t!}k>H9ok(Z(qZf(oN+HNTVTc*H^H&4yC@Sxr-qJcR6 z1vjN)tl$Or%jNM|`~*Gv@z$NACHq^)^V_SsI|Y`xh=otbBgZntDTT)rk=iZtOPih< zO*7qR=yRu5)v)mkj%RlLqO0!|UC$IZIv8INos=n8ztiW0B^O~G=Dr}FtUv#y!8(TD z1?G70y&0gPH${(*y+`N&SBQT zDsT^(3ldc05g$K!B8;;`YtKN{ZeCkjzlb&2luQ9fH%3Jz%U|8Q!e8?RWw6gsv)i?0 zv~m?s=M8`zd3QKYyH5xmhDqyobHQU69(+Ixo|1znKIWhSg{`VkB~`54Hxr|h{KNz@ za}smS2rk`6`RIeH_RbTOy%ri|?cMe^uBBrs!JL>B5XodY4&S;K ztr{jJX$(aXxo-lb~xxpuo^$fHxjg?m1b1|dFh2r09So`}f2LK@(L z%hYXu=M5FCf);GtkCktgrQK@O2l`$uqkHmo974{;zaPOUARYQ&iP*N0o2M|)diROg z(sDY57ysf7`T`IL-6vxIgHGrR^?f4t4{y+K0wKVIdawi%vG-OlyY3UQ4=NxL`@lX_ z4kTjlRS${S()&cL3Xq8XLOqXOqzzsV1rjiV=BrHJzx_8;hoIc=zGVwR+Y<&!&VrMN z+qaU`LrlDr4kk81xI-8Lelmg;U0f+_hf%!_u!Ds3tz+R~a;Rw0wa>l{^*(8wXf0$x zx&Hcwcncr|!d0Rn*5P@SJCt^}{b(SsqATegrJcqZJ*pltexHX$YtYZ;yW5$7TtbzX z_$SUms+T+p7L8iIgfR5j%L9N#+#V`s7h!^CooUQ=Ahw+@uzGQaA@@cq1hk}~0XQ5) zEweW-7r~pb5b}LeizVpBwG>lBp21X8t^d9Vrwcx|0I5Hcxb<|EgaI@SU2qK<#qlqQ zItJ^(ItQ_3LuR=H@ z+3CybH#yIc6=IgOIp`J~DA%4iBal&^9QZ#)r+?3WgNOp2AuTfx!h;jhP!ho+7bGUA zdwBo_JT@JRH;}sVKlV=^At|4H?8j#waRHFvSXi>KKmzq z*zf1#{J`k}H=le_sxK{tVE8AqKb z41&O~o*3rOj~;?Y*U@L=3QMfEr3&k{b}^sI%P^GhC^&EC=nWuX$%9(FpVFs#I}X$I zL0q%9x5*EvWZU#4|D63Qd1d2>Dbam-d{+;ebU)9Rd$RQskO=z36({QF#=^ksmM2~S zXAveT>;Y^~YlvXsa}{N+?5AZ-)5){!0xz_x6Rx;$QLO1RJ^%R-giaiJpIF*Vjhih> zz^R;GY_{`qFc|iNhyjY9xFRs`SHxG5_smbGpX(99=n;hk@iPC2=Q_&h5`@`I`Z`jw z@~Y)a!VkZM(hYb;#|yXC>fC=V57D*%xjeiqo=4690-0BGh4ZR7ZLhQ00}=`v{uSNF zzdC>e^pC9vbqwGD{XGKE0f5$rJ<5Os^k5En%8!Eq2k2qWdj|-Z-{-fVO!pCZ!Fp8; zykNmk4LAgO^Z=^^*lF~Cn?VS=JcNegr%H8+=2MXY!sK_+YpVdk;Grs#^8)`ClF_F- z*?OW>fL`p>`fpw!q8GRP^qQ#Gx~SIXg0GLhWu@Ajh+mmBl_bY^PZmt^m~)+b{qXxk zMkZdOg{+DJLc@Zi;L?iuj7L&azIV~8me{DdWqD9jTnP1qc1saGq-iG8w6}4m?jIC` zu%k&YbfjuSi&{dyJWveYK1;!!@82*GmMoG4DRqP>kqrhkiUTO1_cNPey0Y~@u-(Bk z+Mo{V8j?lBvWm5DHqi0i$Pz0f`!N++kR}-KKq8;RB4%W`}ZRb8t=l&rMtmsP|xbjUFXKAz= zLc*j?IEkjE9iYM8$0HKg0Le!*xcYmid51QWynh|eukPv1bJqc^KnM@CK~NO)`C1;oEw_QB?SpwCz+Lw+8IZJn znDd^y?p}4DwDpLv7}*5~g>)p|WZLVB3QyX%yCVN+j`*aKvO=Dv4o4Y@S(}PjeaHmo zLSrMFOd%5^d~1}|wrHtpAnJfOCHqlyN>|h+ZqTxcg9}%JkV#Yq?jD){fzN{w(!Xsq zLpZ-aw7(%%adb=Wgx8~gLo5aYz~lQoI}~mf&4CDXP$k6+7JhvcI44^&}B!+NMtk0zt_A*^V8HxZQBP%&yJR zb^h|rxT0jkR*vZ>Rj&%Yw!;11DOOgZ9gz#^V~!5eY*f24#YzhD&E(%(kLrmPbLv;cADcZP;h=wa z0H%)zgGzwuW^0!A}=Z4mg8@F$!aEQU<}DTkVwGv9blB5S?}~IYW*QI1>W7|b}zoEK{E|Q z>PCn#aG?#Nvkyl6F7p}~T6DY8(Rd#7y(SU$NmaTL!BbM6?k&uNe#_D5lM^mj$idt1 z4z9ZCCVWdyvc=8FL{H{A1^ifd*C!ErTAmt?aa__7ux3&o@&^xlpT%tECaqBa3JvK* z36RgHD8eUA%Z2ycqx(rjd+e9ez`EoXO!9t2j`5o_rT>$5lB4qD86>ne5=fcU*s_@u z)J3iox_4Uey*s6^v<00;pBFH3)w#tXyfgeBv!lR5I{=h+Ro7!{_2U}8;;}bqTI8}H z`5xy!KsJ0Zm>3XjnJked*o`pK?l7Um5?*(7gR|)iXUL4zuCyABKd{KIBA>u^zb0+w z;~pe5F(9}nyIT5`p8RUP>bw{TZd$m@vgGExI~<+%J#8(Q*vu{qz*JggDOzl7wAmWp z_;7cfTFDlPnRn?$5s|Gy)mDLG z&*_Oy=)P?-&KbB~<}tQ$3|-e&ofccnBHK3@C1Gbe>o&tq>@X=D=_kt0Y9BQM+l#K7 zjvRh{TR6M$`fSw3=;e_6zLn+#bNII0@Yc?G@ki~GyLk2CyH~EZ@^`1JEVo~EK-&U5 zw?0$v-z!R<9>jdP!ye#ic=u#@fF`Dgv5*EyO$-Vnt3p>9?{%4WK`)Ht1@kAlaJL#~ z?uI5Q^MM~E5{2>Ss)Mv-RR>iE4L>a278#Ya57a_aXIl6oU{f?z*j~pFfh(qPxtXHI zPWq&IwrfODde5xKxMt5)n+WJ2PiYumTy)%6o8`0M32rxya6nepqbWe)t8-2EB zH!Qo12Xm-d*U;x?bO}qqPmK8?s8*%a*p4hT~r}1F=&JqppZlyjSild0^HiNoc{jAnQM%iJqM0Sr1MBzK5k(+0G1vq!@ zE3ce`4XL6P$Qh6Y-RuRyQAb5M=rfb8MNJkQIPvNGlQ-@fnvHiUch#c|9PlIr%N|c) z)HALlWUtlUagv$8a@!d`R34NX9SP0u)liY(#-cI#1QlM+O71LdIJuIPLw%$qxb5wy zM0A(xwMsBtu}W~XaZ}DL zsAFQwph|FuPLdB*NPFq)oC0j6AdiLVsg9D(Ohb@svDa8G!>(9i11%f51l$Otgs?8B zIBG%0Al1I;!f^*4Apuh!^J=~mu?s6f|IADOHcY&Wetl=nJz-_mR(xDo0B2@GtmjJl zoREM}yDW4l2(5p`#t0_YQ)Cfo zSqZAy(Uc`36r-Zki2`~DF=tV2`pi>9Cmy;bS;*b8hzpF7ccF- z;Pat~>>E8AF?@qf%hsz@%&VH`t=pv}8B$^`pYk(LGsz;5NngrgZr2D83OLb>ScfJB zoT_JR5_0`ll@|;}i11+h6#rl2;AMZ0lzVb--rgnj*N(>t5+w)M8#C0u{o+W+w-{Pu zB$O4#j)i8D)80!Q{>s6P-^5Tm-y`6rg*rJfU}W}@`x2qA1eFlpYYL4$LL{ZO;frG} ziA^s{iR}9rrP2Te@_v%h8QY5F>cYOAoyzKtj`8fq&rFf8#Ny-6s*($H3mNY|kh92f zWl#^(1Ss%^j~X#DwmL5FkRB9?skv55{Ayp>>TMt1wr}ytCN^Jsm;6kkUfE}aIv%=T zYhq(#ty&^_WBR6@?~PQ2KabH#>rtP--l<&stZ94IEry7@ z8(;f)!_I{)`K*y!2v@E(EA?p7Q;1p!=hUEuLY@dWd#_RUH4#j6Z*pUZlGd}c?MZ2; z?(T-iQ?l(%#|(BGu%r)FG@TFZr`g~(&&*EEsIh)vFF)T8Q%|G`T1+fFPjih%JSnB# zDP8qf9G7^j#x@%#Dsz}(Qj)-P+3h+uT|2_abZ5c*jkIK8=JfiG*?K-ZeJ@!mt93`) ziRr3C^kQ?-kRbt-eK8kbq~-dBwF?UosBcPq(!2U|wuH;U^d@#zsi8DZjYo22aPjnv zwK7VD#xY)Mj{R3LX1ZUZuQl-!%$bMH8F_c0q;(oJL+^{3S(k6+tUW!tMq2xa$i^3B zDcg4$eizwtiInfm)8-eGaTpJj;^tq^;77qUNg-7>%;#9uPtlJLugjwN$wREk5=6hy zMXQnT%4~TfK!a|TOGgqS_EnuS(B=28`yG7u>SEhr@I?D{XXX4qyPEh|wn&;Dnj z?^|#^d3#+ox14v3SeU!NmbR};&8-E~yESe;@(d)Ku*xofVoY$yyJ5hhh3S~LvC4CH zk1Y(-EHA-Xhf8utn{6uo8~*rwTdW4Qx+%D?X-6~vZa1hOc~_!k_~xfpRd{z!r}|&; zN5OC{_dIu9;;Zwu+KaP2o8x%Nsu$1q>xc{d2mu77de*aH$&%x`-gr-Dy zo=xTP?upY}HkLK%@zV%a;}M2w)5|V)P>vr3j&fMoa~W4uuAjU z@3&>OqKw0@y|IgTQrbJE0LoO#uXN)b3( zyQ|GE6e^RLG^B`&KI*F?uRY+RA{&u#7q|1mEt4!=@L~zd{s5!$DUSZ|{Ui-E7|C~TjTjc}k#i=no>@Paz^>*5-8EVZ<&=u1C#}yQ$?uJa*ha1*1j1Qd6YQy`ZC#NX$j-h`zO0j=g zR5{IH*y$F8n-;Q28e?bPU3Ls^#>+x?qDvxE!CD9eb%#^o2<9qEeb;wl8z@R``*60$ za3DZ7Jg0T4(HE`>W3?(XjH?(XjH?zVAypL6bg_q(sV$LK%(Cw7dP zk&!WSMC6WGYpyj9Dh;>@Aerqh7KsOBWu#3i8jon>ffNlVrz@?5e6DqxFBv;|uuNH| z3Hj$L_Ke35<+d}Uu(^j5SILLYhcrONl%DfU9p?S={CE-UY6im39DF%9C%SDCM_bJ6 zSAQYhK_L!Tz%=n2a3rXjxP!XTiL55Us=wzMG}a|FJl1^xw5=|*K*{sxG!U9(EX)o# zcix70nx%?}r}mB_5Vt8JBuc}*?-$Kj<4D-AJK|y;(=Mt!UWNJh;gC?X9<7bNl;1sd z>r5YDak7`9UeKj3H~CEAX`MhdeY%>D5gv(RFE#A=0_OklTit$Ze!meNbl;rpz>4Y; zkS#ID;BA)}ZjW>i<6m6mAY{GC7E>fnLLW*Onua6ZI7Px6r1Ow(~f z>*jDC#^64K%~c8gx4eldVv_q`!C-=T1Fiav8fCG{eF%A(9oRYmq4iSz*~6=OdI=53 zwjbY$^*Q20wcAUv*!Bmvkr5- zi~o{5C(uFusBgLRK973y`i1y8TkCw?jyu;%)6 z;iuCyj5j8(W8bVr^8v6wMpvdw6=9~H=SSX|P>&AZpezixFpjftw#w#o&&@IyasxRy zLg>&$E2v~=!T+szt_pK4VKkULGOg}v5rvHTq{DFXyK0H|oSgg$%uxv_ZIauvM&iY> zh#NQI(tNB83^u=7)-69bsca3L7_gUX3Fe}VzsAL}5?(@PO_IfiOVY~v?*IUUanj>GRiSqgRmo5G{HKXG=x8i5BN#Ro%) z(@s=7=Vu>!m)JLw=gBj}WYkGB*b8EXDkE9_D9krsA{FdBJs3HC>Z|+lao>Vgag+vY*5rTn`fP!&K zvoG(5TF|@TtD8_fP7I0q14SPKbr3U{(GP|!m~oNs__OAQ`bpi{p)MhIZ)Gty7qO-*!jV_-pp06kJ@7oC$a515UWM{Y&E#hf^0Q6rD}hJZ&ZnX24=t% z^M4^gc##g|Up05zm%owixLbAxe_&QgU~4lnQ$K@~#ar9}QZKDr+$;cHRS$3|`)ubU z7X94EQEME9>MIVHC9Q#Ci9l@wZSZ+E!nD>w%vsF35cxu2CMJ@T$Ag=l_vtIh$XEnd z{bTM?Wqrcft_${i!@Yf=68e?)XPSR0MSvH~``^mu3dbfo>c`07a^^emXsyE!`NJZ& zBHsCNOYj-5?)2q%Ab!CPTCRfpJS>DhI-PG1HlN&hvo^<0&b&UH1W~OEE`p5dqHYS? zhGF ztT=w@YocM+7br+8_*N&nd?FD*i=%}|JHs%MY4UOhWk!w_D#xnA9KQor)e#SniFDr{ zFTc~^54L(^JanF}-7p+oeRfnz+NUgG7L25WSq`S!IY8h^_9|7*c~wW0b*{12X8k^2 z43D7@nq2C*Ztsl!T!@2qHgP(LKxZu3`hs-m~GH$!Q$JPJNYkZPt z;n(Nw*O%M;yMgVOgOR&~qUW8XY)Zgvro3}ehBz1UpyOts*b z!ifs%V!hhaIxS&KsA?e2T>6)!+96tV3R^eQ4xZ4>VUW`A zuJ6P1Zqjk(5HqH)eFd3zp8cMb7^BKi3~7alLVo70PPW zxEtYoOF4`+qt5R~vIld_K2JxP`aX2f4*k!og>urFN;9m9wYuvR0I(g9*m>xZouFp% zVLHjeh@3a$zinn^phF=M;`4Go^%)--9a*$YW3vp@Fti}m`JYBFbBT=6W(@7LKUmmq z{?#K92~Ss3mnfU`w0wzyus8vc1TBCpbgYNsR0ByMW-)_Ce2>f0BS{ zsH~K35H+ch58s8GuZW#(@s|u9Kca-Y5337XUXhEgi)q)eND)DFWTYV*Cr(178lpE6 zCsO>9d@=%6sQ&Lgs6+-^hxsoLznEWI)?{ejQ?N}GoUA*}JO5-v*v!~{gc( zH^ty27VKV3zg^fe6#kIV=*M#B6yk82-MaPi;vQGIn`5u)`$m|Sc$}TIZt)#7L*);v z)o+tUb9Y0ICy^hjeU;2oBbU4dlDyX3E#ev6%q<1u)t4!H0?e7SlEU!)r4;qa&N*?8 zId#W=2ef1@#W?84@_tcPck#;g=6POUjE)@)8|_xu3)R`TT0INnKDs@o^VDd}hM1L0 zmz8DN1J>P~QrJ4{W?hn*7!CCXyTg5Pz#l=Qpa>C-5yr9q50C}wAD}IRX{%~t$aI{3R6altFeF3tv|G_k7;c;x2?bXm9@Rqim#5!VX-@*M_afjS2#MC8T&PgkxU?&IY) zOnq-LR!pz_z>fsGv=9N0gK>bRVSN6>W4JwA#7kjk@vA4cw@f$g){jyle>o>tG0v{>%xL{1oe zK0IVuFKcOTArVwpP~ zU=S9et&s2m=>goO!7yL+Ybw4yGAkUD5pFkE=0D_PgAUEVjmpv zf7W6(vJ30A>GsUOR_(tR=)acnIyg@T4eTwZ`CGev*r`7rf6$N<(G7i{Tf)xk^NTwNUo`EDMpM8aTnkoR~~b+0(`=Ny#kGaKgB+Yee}N%^1JytUC6@*lM`%`bgx~b$LKlm0g6$ zx{fxWoO#^WPcA!YG4Q2)CSlq7y>TVd5q-kAw~6Ca79>4{94}IQmb<%b685GT1V zN~Ni(u*^m@j@~5KZNeeajYyUy5%cHW!=?yDP&6zFy71v1TuMqd=OQ>dx2Bmxx=s;M z{eE*npns;}$DPMP+Rf6*E=~QT^6ce+v&#h!3#iEmhBP=#(y zZf=`c-SiGVch?oS_nS9u8r3}ytny$oXaX#nmv(2BeL{YkRRUKWab4s^YALbTwCBEW z#JmxxnY|~DmH|cc9PY^pbV^q>z3GqXQI3vg?Rv2!)K;z*1gWK9GouiLH??^;$|jc0 z(vEEImKp6xmmW)ACYif=ESZt9Y+^?;_g2OE0@Gbn97~;PCLm_VBko=&8EirJS3(|) z(q2!>Ypzimzb$mxAj&!~IdS*yO$uH4!UZ(e!=>B%*c5gHpxkC#o(nM-hN*C64=Dra z54Tp?w9Uvd=$=U7yqcOKT5hfXMEu;$;hU5H05am&@&&tK_D$`*ZB_~oY0L6**`$Kh z(J>FgeZM;!&OD#^amc@1E)G^Ej^be>&n7dx*$D?xqzG+QLynymn+oyFRonHc*DRKG z>erzEuGnK$VKYi{hg8*z3)@;|3`Qx&3B&Kgp`TqyL!{Aj>sE2;XkM*GT^#eAhC0bz zCw0IYhZIptLFif;!S3U;iF%^k_^1)(SxH!Y-guMiGp+jaOgwGq&Obz^>^bSF7U}M& z36Y@)vFFb5lLhO_%VR8tH9t3RUo;hJ^ttB~D{m%S0E@|Wg9sb!<5uGlZ;dcr*X_@5 zfQRR!Ip=3WLQq2fr0G=OB?JPh8Y@UChO8B~9&0ePkcuafS>eQMYK$(v{T)|pI? zZhVt!^S8<dErr_9cgBo%!a)ueRYJD&#L!WJ z;Ge$u!5Ans#43X2K5FvhD);_^Vj*H#T_!f13j2v(D0Y5iFz6^0#L|Mv!1T4%Qq0X? zHESI`FiZ6HF3lHdFur)B_=52uiNXbcLHS0kAec|Z(mf#h!#CW&Ysj8;_Qr(ksSuCH zDMrz0;QiTYkY7Ojc#eZZC0m!yJ!(44ALrhlyJd0a>kV9A^PR!NT$TMg_6GoNlkDkI z<=6zIjs?_H%=p1ab4%J5SYY@pczb7;h@e?MC{ued6yO>Fv^{k8j$aRukp zWG2C^Eup7V;hsOnBnaIwPrR&utP6h=iL!METrNcz&~g>u>_RiF7~eSP88~FgK_gt( zlmg?a7K+RIgyvAN+;Lg%#I7z;;Wv-68y4p*rL_52RY@t6bvBl$^ROSD-~h2%*vx_a z^s6|~U!Ws>ie&EL{yq=#+Jx-_-H9UIb0^bUU544wiInf8{R(+1SC92vEKWdsoV|wq z(p06i__}#JuYgy$a)@JdyG^hRn6?eX#(pMV@!o%1GuF|0KnPTzC9(lwFhh##!;S0p zRjw|G8cLPrF;{dh_Z!)|at*^dUp>L&H#KCMUWWQ?IJVl-(1w=Guqes$3vzc3bc?pm z^iu5aNi$mvTUS5JBb8wGp999=4PR(((UxR;IiZzR^7IW5}Y_8N%- z>nC6zJah3c+q^tmSlK^zyxJI&D4K@|PTj03qD!PD7cnIvtVr4g;c=;Tn_rWp&|{Nx zq!}Fu#u<&HWa+KgsVz?WDka4EvysvymAuqhP2LV9j*40g4o({k-lz94Krou64JYH& zB#4;MvIR%G`J~_Ftk<*D3MHyg6g=>$FaOLd6OxfUd@e){6eUqk6iz}r%0V|)&_3NU)y{w^b_=~{j8_7e; zNZXJLC-(8v=QyQHC$jR`+O61#sRQMy{V72b`UBup^m`DTZ7$`xXv$$Px*Fqn%+QzX zTMwO&(+Qw91AxV^vT!d1C(14`r%KDR!}asy-0-aG$YwK*!FUBWw(RI?$?J6>xm)Yg z=%8?NgP>z22@sZAB%~JKblYdCAGXFFHdR;k`SH3kRF|%KIZH7<`h?CsU<5@9i~vte zCfVo7G{)xQKSVynQA>4ef=ASUYe|`0F#NUMf)x98p4Cxn(vB+HIDT4i*e4*el7K8k z1l&JXDy274%n_W4dDA(3AIxBXWN^3_6cIjR{?%6FCHRnVgi6DtUF&I_kAXEH<(l4j z=s@(U3#57TVh%S{ZXiUs^NR~;^##1orYZ}~-6j}qr&{gv15v&OXq~ak3*~+L1EuAM zRAvT6K~aAA+$;Y;yd8DEp(%?9#umYN%;p0;1iE2~gVI#zwvagqX$`G_VB<0sD-)I`Aw;+P+cd zT#koVERV!ReFPR)+NEE2Wj)1Z;jDK#Bj0V=GfP)GjbTh={;*8)s=}P=f1gl-%|M4S z>B`XNH>1+~3eD+t=``2)mM-mAJ1p$%L~7>p2%cBlEOT`z!GSRM}5O@7niBgmx84$vl` zwI&i5(vh=55cT4=o>9P417_(8nR2JcjTCefk$}#;j@d2IwQ4ZuqVOCpid(pXumY4*ChWr$0ywCVfo%lqxE$WZub zk#6Q&)+a}DX;o9l)jQSf&F4qfXA(lh=lkuxI#PRCNm^=p_XvnIX0Z19jkJ$!#NxIk z9X-<$%E^UFenKQJrx6V@9oLU#5IVszObtwJZ2PC4yGY~Rjr3oZlRpnXkEx2a9zmy3 z&uH_b(-Ni;+q;IqIo`Y1-?axtX6x**wpQ3Km_Il zEKp{lLpLC!zqB<*JXXyv!6TBYmt1RahcIoCXPRBk1p3m_ z{>JDzOF>hfIwZpqm4z6)moc^ZXr3PJQwo%W7&{o9jCDa-xj@LWKz#Vox07wgITkiK z;K&=hmACm8q!P^i4OXlLO^RkMA{IKmLt0E_%hRTDWw;z4e`$vesam2Z_!dJvlU0$Slr*kTVaw)@ z#~nXJ@WVt_^YxNhE{iBZTSrSHU&4PJKSCAk)h=EV_r>k5-Ck6_4@(0xKNTDq^T~X7 zVmS|rV(@YYDj1_qE8Pp2u%Q1XPcXci1ai zZRUnQL^)a%zqk(05bGEg6_0^cq+m@8n(sM#hUeSHqpaR}=4i>Uxnf1$Ph@a_9U)HQ zr2`C|HplvYhgk)Wp~ForF%-JzJ9Nswk63LU>_nUlSpoe5mrHY|Xh-iq(|#b^R|d`X zWEa=(+cl=pjL1$f$YD}4)%FrI&|@ZTrqY~|l9maR*YRA1>c)IY`LtJ7-Y2w`f#MJE zVE!XeS#R5{RCy);XH@pY*S7-O1-cw`N&S`&Z1Ebfu_Lq%9WEs z2xdp5)+a>&EH1GP|HgQoFWPH2{z+^XEyZt*A91!|yGi=hx_JESOuG4$Q7qT6G;Rc# zz_#r0sX!GC?nxTY)zm)*KmJg1-FS7lae;{uKx?(6!5O(#q{?K2SeeqZfSd99WBR=k zk2y0gG07-WnBhJenjWfskc((yrN7hC89_hRXe4bXP{%v^7zJ6#gKOsrtyP08-|iT- zrzRFf7s<}9drTBVBrCP%km-a=T3!O#-i|mtPw00#2PG9uylnsq=w9WvWHj-1vTa~S z^x{;$66Y+3^CrwcR?ccp&in!2v%2XgI6C?50KccA8cy+Dc+C6a-7)WrhY8Uh-3mC*1Iotfc)P1M7MF=b!YHyB`d?A1_Vb8Hk@Z7Y6kr5}LC+`MGz5 z8?u#kbEX4X(@0Yeo92w^P!=r5Y3IoKTO4_NjeshB)~$EGh#<0!59`#>Rh*X31g`iD z%@bMV9mZb1UE(DW5?+#8MdO*LvZ_{sW19={&*b``553yQZz~2{P6Ql``Qi@WQKjW_C9=35>QRckK+ zEHUJx8rnZC)tNT$dYG4)S|!S!)s!`zk{7M!$rFxbh6MLR7kG2!mW+}EWPGu8t3k=$ z*G#$&lhLyQ;^*Q5E*=)6^BGn+cTFhK=`!KWBg5->sZz00>gt7Jl*F;<=qv>(*~yr} z-!S_>9ujS;sHCNnch@U!6vVigL*8=sGv|#bL!y~WgmtMT*QYB8Uf`kM26MJtJFcd$ zxc_owh#Ut^Bjw&hjcF%k7I%t2xjR&RQhd9mQv|$D_D0S04R&C?x%4IF4esc9 zFy7?ebt)d3DVtZ&^;|xawPHeAm|7o90RCKXQH+>tNW?yIRQs-lW06^9Y2q%#@`gM< z_kQp&Gb31GhTsd#kARRxzd)o12eW~d?`M6_14d;$tyWXV{mpA_OQ*^@^7D02#eZP^ z2{DGg(?PixVS*Jy{)ErQ6r}Uf0BI;)fDNtHGFU^%+ptY90_^$Y+3ji`OeYwm0mK~i@0-GK z<>(k0)=YMSsO}+V2Zd<%k}~>=Fr_)~n~MiF0U9u1e>F>I0nG&E-3ypZX&y95lm`z8 z5l)v1PsaOM17InnkZmF4s$A{@OrU`6lM_FRoCg72U!U;?0*{gl&>}gEKREA&C!@#K z`?w9w{V;{a9#QnRG_k6|ML~i=(wQJBK%_w?lL<#~6h+sW$q^-RgkmKRiUmmz@$X3# zhx(iMRuxgZHrpzppeDi7p*fLl3AcH>T_XeTI0@+#kq%}#J}F_H$rm!YE%g!4Nw1nY zr;a)t2sv}X{*T6oT*!2LywX&JPb7CJ^7=l@`VNFiVS8>(5B79Hp-7)ko*Q-4Cy0GlpFMOJ2!RIhaQ(eABY!5i7?tlz!!=wdM{aWFuk}N55Y?jPG(gbTs)lS- z_E8o_T3Gsi{Be~axun7HZfEnAa!JCquq3Y%CwZ&YzjG@C8F6-J!_GT*jZ85!M0d}+ z9Fc<{tuuV0nY}rZCvWXH%?Xh?BcdZico0WNnF}YuLmrLdcPePZ4kw#sqT{v-3FIUK z**tP7*(=?y0ak&;n~D-Ioy)J8r|wOn0BB3Ui~GSWE@8>^ap%uAmF|d|W8%5v$=n$n zJb@;^4jiTb@2-sG@0RvgBEg3Xuhn(MaAvEgljRGKgVxtU;gx~fY~jBFt0=od_V%+$ zh8x+Sr}H)D;h8v#eCU^AgNo*Odw5LpGq`v3jRAzGQ%nl16>Xwz&q_~#_N_4tqF%Mc}H9m>d!^kgs9F&jl|PSMv5I;-F! z|Hm@g&A&a+}`K@`Z-(ARiRj_J%YvOFC(WM7fxQ3e#nFDki!84&0>h)c5ja_l|pI;{QO^loM z0!xjfsbMqN$9*8xa!N6F&F0~Q>=?Lu&G*V-!4>Bj{}3R3Ck#QvrD#wdo1$lViPLdQ zoDXHvGEp>KCa;sK{&k+lV1VaDMenu%u^013_;A?Kc>5T-l!-sCzbm!(0; z#SBce-3kgPu|drQy4xxBLRh545De2W-o(YVsl{xX^#Z?AG2{wd{4I}5Kk8TmY8 z`B=Mj9F*poFDqujM4*)ap<Q#b>wjPeBkwA7{MsK^nMe;H_&5$Ip0!)4|8W@F zy%E?$$JA8=RLq&;&oqLw25$SKGM|;F zBnDV4EKCxO)kLgQz7{YLoS;Uv@f$1yq`rOwL=BkpGV9&fwQM#nwD(8eq*==n4)>~k zCCCvL67C_$Nk}nQqN*eqWCFw}>0GEOaoTZ2ea`|AhC%d`27gBhV~_ey#NYXJu@R=i z8UFi|`qXowX-{`@>(f0>2uRfEJqgru2qY+ELI;am|C)~6IMaED*$~Uh3w6W?^3P6G zp7v`jl*!ZGtsgVE*@Z&(5cTEMqh+OM+`a9^tQs=Z`*A5pD5B}vmS;w#ZVJM}QiH|F zv82%_;%ny3{bpK#|5WlzTK9;@oxSX{uC$w}SKqDhW1}OY9$fE<=NOGen4iwAr9}&~ zIDc~2R=cAyc8CiMRHMDgeA1M`m3cO=wZBZ zb0Me^YkWHCdzRkUk6IbKH{D)I;idA=%bGL4Yd6k+(e3yxz&4*)&!j$X-k7f-!i+&jw<0csqox|v?{;{0 z5T#)=rK8(8DWJW{)RumV&adio8@q7O>v?iJbIpllCDYcS z>^P-x26*-{mr0riKZ};_Z~Wo&6h2f^)=%T`cKUGb zWab3L8^1gu7nuxArSA3dym>-CaG9;M07cI6uk+a=LU>_DY8@#Hg4*#eUYE9h(SQ5R zh#y&Qi(YkFtXtn4SO3%u+Vo8*Y@i2>-y2mA@~$`6IfqnDz2^<-M(M{Dgy7Y4-_9?~ z_F@8n-wLRq0RBlz!14bZ-;ZN%vVQM!!@to7_XqmBp#k{EZZ6BRw|J|?z=P7Fo33yc z`}3Fe4;NBH9=FS<=)4O;t^C-$zgE=F7Mb z<||QF#UiJ4cB*c3>i37sSh|n7O!ivH|73s1r3WCnGVlAahyL!fY)~OD3&i=s=g!oA z>EEo}mp`#pqK%80SE18qO@+~umeyCvY85*FhT}&Vk;WmcKEorF<&sPIGKL9$uKAqp z|Ho4nea<^I=p$#>8BD;*h3{$ZuyBN-{D0_vIYP3)>`PwtQtKBGYq7D;kLH1~FWpxZ zorJ@-SxY2)Wj0RzfDs|&w|W&COe$J;u{LXM(KADV&pXy?ITrm@+}BD$=!j39j1L33 zyK+pn_7(}tnI@nmjq~2ezdNTnJ0rOl1I$Cgb+n>0L)8SEi1s>+mwcj6N8y%UP>hWz z@Q}iCh3ZPiyd`kD{O7&h*RBx(hOP{cKoP1VDtVi7`m7y0U;INFR7RrL$Rn~`k)&tP z!5m@wGP*2z7h?~HXM{$RX9RzgVG|z@sDBmp=ffuB0~lVC4XAGLjYazw8J5jreoP#qtzaQ(SYL;zvs9_e;bH*Z>6;QWM{pF*Bc% zBe(+xg8ea|bo8)AMN@mo^p*YKwB4VN4vPfEY3jdDxJ1GN0UwHR?`3UcmqA{G9{muz zt0Ed?^moy3Rz*2ksa^f@e?H2Z{&OTI68=OI=~AUOz^N59FBfJx=Q`vc{fFb%1myT> z(x2afG_D6Ze&yAxlKW)xWhL$g7u3QF7PKNI_E0VE1~93_Ivn^nJH0rFt2UxC>{zdm zg+!aPOyJ9*Qd9ldjh;(z?H`xF6IgH!J(H;ThMe37{J&O=?DZ9ajQa`$iQ3>QxwF5X zUR2$2_XW!Z?)uC2x4))ZJ+b!6W-#2{XfPaUCnl%}443RSwbS&;C|coes;Q%r^ufzV zS^^P|G4+>!Pcfg8zi#p}g}b=~bHDtMoz&9h0!8hg(FrEe#>uDgcQlHwM3_wwYGoEz zg*q7}{ugK=R`_4n8~%Oa@74sQ+kgMEUFiH9hqeIyy93*k60 zKHHn;n8i=vS!;p-=CU=1=ie;q2F!( z;e3i53se{hP)n)(;M=#whuM)hCCfqnrmrpxq177|26GSOsZOARk%EYV>^Jzrf}oqO z#4L3_-Cv$0QO51`BNTIbU(_ULo$}s9pdtB&RVyV#GkDjywT3w#3wIGUi`<#a}0gVA8KAZ9Mz#o-z4RP|RSb+z-XrYtEd(fS+ zvccefeiilr-$h>234dVvrWNq|!?R`R`a>a$k81J>EQ%TjQjzQT;Z&j~uSSsP^Fk8H z=kr~|HsUPA+m-)Sh=FkroA`UM|98ZzD zRqwSD4=7{&eHKA}L$c>^5yckU>M@VqxW+5nMJJ3wD**(vH1yL~QLc68_ZMm`%eTIF zC*1>K+bEv-hgA&{#gzDRx_FpXVHaOaR;5l`K$ZQDJINfc<2R0pdqzHkgfJ_lDP1{= zysWmcJZS;+J?T-|nWT-T>be^`?#O+;vAO$x2fozTy8H=%7aH=VvpqJT>P158mdBh* zuB!~_AWR9kdD=NFBu%4;4O9cB_46T~gcD`gg#4+_+e&oiEj#fO+j+=X4Noo216rxz zd_1n_`CWy5Ji1hD7V~e$qs_P4{-N-1c-2Q(ZDjp?N?5jY>xP3blA1j!u5JCUcH{S& zy53E89u39o<6MO)p<>fgmkqV+WwbKYoSobj4G(pf=GbSKZ_jqT)-Mv~K&m6dEE+i& z`UTJ|pyBEkL`}pmF4sY+eN5Y`_Z(wRZ$1d&7Qbz{#%qL8v06;@9p__xJx;kX!Ypy3 z$vSH#=G{75tVU%v(x_CarVML(L9VpGDFvRfoR#oD#K!;I3I2a5kU;CexV6bRz~YVx z_i?DzeGXZ=VasTJAJ3=s;L5yGiNDiv>3UMTPe1c-nqv&4F~Wbdt9)_pp8l4@3VbG8 zGkEm$SZK0J_TzRs9H&03Jj5k8>)^}NlF92VvB_~^x{S0TTgVnFP0Y%p)w7f0C{5q9 zp7~HxFdy;y7 z^Y~sgP8w|XKGk_SP1Sq?PG2}rZv{Qe57?f}eHfN6jQ!Y1qS-YxTB0G3+D(n)YB{D; zgUp7X&)hUDPVZ+|HnFZ|#~j4%6@4O_urU0~3&>}f|+T78Q`dEp~p zbrDEwDb?%Os1zzejk1V#rMo@~Td)g3^5tnXX_6#FQ^vUOwp4m$H2fZ}R7Hy6W%M3mK7I-)G3-C z@+}2g7dDlUYC~d_)9ts}n*h!ul@}^^+b*RP6YJ}wE8tz@6M~KH#9&dI=Wj$#BPO!z?f`|`y0cdkKds*%Z{FsD7OOth zJ_-%#Grc{2KQgr>$FI2kcDlKhx__K#<4B^rCHG_0^2VT6af(0U4MJ?$*Ldkg2JaPV zoN-u|LBrNUY|E=s-AL2d`#8^MKPlE<;*9)!Vt2UN_=V)S_~Qce$`?LV(-ZRTz6jo7 zu5MEO%d!N%nk&m4Hw9jY3IlixPZjO+TzD7czBx7swc_LliUmLdm zLzE|l!zRAmZai-$Xj(c*c_APAN7<+=MdXEh%{SUd=C@>A z>}y}I|BzQ2*j&0{01!c6rp#oi+kZ?JtMEg%_ys`*On9f=AAbS~^`*M+FXb#`(p5T6 zu{O~OLNaA0%$)Q-T>#1@8$^NnIKz26{pHSjRy|M+o^A!F(Qb_*@5r%zhU=1Ch4bc|>X$jxR!zakF)BJZ9 z5+d>Xo2t8&T_$919N#Ww;hP_GXZ?lT`u*#7^A_i!M)DRhgwCP(tkiSVrPeoI$_*9O zU^uRqAK(i6_cGB|?9qSic5W#vXrJ|iP%#PK=14rjk7`1G9-I>bBmB#VDCt3Aetg`7 zzqxPgvPsrgy&wZ4{KLkzrLsO>4-SH&9{1m2u=ISuz_q@v#iPAdfXL1817EBu=WLv{ zy>vUzR{X+#+)geSORivD+H8=c6Y5Yq^MJ08{TCDlo$V>>#@+t!Mhu&@)iol!k^BFwQFkR=dy+54`eXDmCvp+-1zX3Sdj= zo3NgT2O0_mHL$!$)i2|1q+a+Ep84LKs&>d*az9yiGH9gu#($(dxAMK_jxHW2@J)A> zU)FZ6F(9sGaV&p~ufTnFcD<_yd0~r3_JKgEnZd1P>A$jAdIw%iRlnmj3iLgiEPo*U z2c&Fyf7ZKs=X|q9H>hI%Zs8W>db^%8a&hqepyGnAOWeAwD@HPXvGR7}=dE5F&iT@x zj(tXUeFm;`@}L@6_YwW*ULE^oDI{R+Z!8A+-?fhY>LmQf*glmy<=p%J@X62Bp2IF3V=PB+rAMpQm2}QAu{lhRw5THLl_!L> z3A{DSO9}Hra-;$zaQZ)hX7)5n#hgv2yNC9&HOmy)QD78@b_R|B!dH4s}UaoK*=ENK~?E9ZR3y-`SQ~P z8-O^G;Lj`?hczO_)O7ia(+xX;^%~_5_z)}=9KLk^IG!|+lG8W~s{C`MQFACxYvfzV ztKm8$&0Ai4%bWU-zT-z@PJ*?OnDF$5hl#?H{J50$w73jA)lY14A+yBQH4p;|VP|3+ zyze%1FDg9^fM%8Hjcjf*b{^4&;!b5HO1sZO6EB=cZ#DH8GN;z%MO)~!ijIxB0rmrl zLNchHnuHuF*=0J>#7r5(A3a2Bx6p(LYVhET4zgHEVK&1nutSy46)KT-Olm~kFCdH1 z-OzfTAZPxHIz;$K;DVQe9zjn?Hw3#p{m#Kx*KZ6L`?Ty$aU6M`Mp%=QY!zT7doI{( zD+g`wZQU!Ces=z97?{bv`-790^nT~z6;#!Hg_7pWBWk_lT-N)6^7fqX_Rm-DZXiEdx382C@UJLCO*85Wi%85R1{W(4KV+jXy>7LV`q zo-?Z}@qvLG&V2Y@R%lhB1165!3fJ_A%y~Nq5H#btUvYWsq1`-(bZ47h^}bxTm36SC zD)v7UHvPc5JYILPxZl#PvWn>Be{FB8m`VN}?O$dU5n04>(OWUY>OEA0dw+Emp>6Ft zNU$l?yJ0EzV31at5^QX4^hLwD&BjeC#u~b9oRZ({70JX(Re$}lFS?N{r&BJz&vU7& z%O*9#yLs#KDh+de59xPDqsp)n1-S)0xnCoSPBtWBg3Wjhz;iBi282h6>@t8P>B;UQ zjr}fvwDAOrU93vZ7n(y{^`&RFX^hiU>{jzrvU0cKM8^!>M8%0=YfI)FN?3dsEk}6o zbYp#^|Kyvjp-*DCpGtYcrMDEnOy%#frOtSx8Q`5h+? zk@b`qDqY8)^xD_YHAyPvg{vvKdJ!NIm;%93P0!)5^`E%~3fBdc4e*UrfiiaLu%Y{&%n-Bt3o}UyvadlZy)+kZ5mw5ma;#CELNsT1Js2S*RS` zyWTK&=2fn#n~4y}{B)boCRP}WM-d{&n+}~n7=)jut775xeD-h!3^!xgi#*FQ_u>L_ zl@J`%0g1=g1hiD68+fw{u7N{vS+HU>!t3Dn)g{HMx36eKX^~QC>fOPlrk-f4_h)-?N&1* zfw~%d3k(HhJUNjhgD#BrrXb$)Fk-=V##`E4s{L`RzQ=xKDBZ0M-N_MYbbS~;ye>WushSW0b%5M}DYe=yCrUGX zXMWxH57UCGNq`{6UsW@rWIk3?XzWL*VN(Y2%TkwhSi9}+(oWRh8#vCnav z0+6)QjW)NGc=+YnO!g%$GMo6P{D&Fpes0=jHtEPh$C;IThuqH-GrMfQFg`$gK5%%t zbG?=3>E;_(?m?*G+!hOmmxX?E1Z~g=2wfdq9~wWQ1iCVUM`qNS&StH5%0`}g5Dn_; z;#zNU!N+;)JRB&qN?UuZ5y?3^>e5+a?A%caB>cPsIbwT8_3^T^5NtnL&*8qD7kRn@ zy6!7LwN~51R%&;Vel1 zq}PQV6V9M%4NynBRN_acs9}f8s4F!HvBcBMj&qV>kgfvSflraW_Ji4Mn%bjzRdU=} zTwDZ`^vh2%w3gqMFVEmR*0KBSvV*$3mtNvokQ>@(#e+($lSdDosmg2WC5;YUtM)Vz z=4r+DfrGT1W$=fgdAzAeP>o`bua{xWK2W!V$iEmipj!@1H?^lVD(SCs=UYC5?82^$ z2~t>&Z(Zuz1}4L9jyp2PNzdABN*x5&r~3+FEG~3OKMVqmFmJrunj_}dzYskvJHkrW zz$>o1_O-}wif&0u?Rmf6y+tWYb%;mqe~=$PpwQPz^dR^AI6&ClSU&9qKa7SH%Jet2z|nwtG%i+7n*U_50m@Lex4}wPUN7?B6E9?kqsmL-azH zq30@g^W29{a#W;8Wcws`bgiF$)s4L2N?6s4=UNT=l$v+X##q|~zV5*p<~LJKB%?DD zlAcxc)+F%x{lTs3Wp74svlD;#20KsZ=n+W4f4FY!i*%TS^$lqB?2e#$^FYnIyQA z-LsiodvW7u%sJ+mhxi){@M5={LvCQt>E-VIMyUYp@eT_t+Udu2wjx9~ zy;;{e4Gb^k5Kq&zZ_25;2rBgc<88}}NMeT5DU3k<0Cm{blri*|2?Jy}*!3^sp)fa{ zsn2=o;|%jx5MS66z(;Zi`_Scxp+P?FRq}`Vw0{ut=(2jM6TCO=Cceq$fiCSvHVAKp z7?3_EB#(sMsSZdGoO8&}6Q)ITu(PANCu-^a4jbwWQ%%3va&3Kbce7zwKm^(HC4A=X z+04MooeNQc6a(oub-ckSl3uhE+>T@d(gXNpYkbXU0OEbFuzjp@;m^W2k*^n935vLx zz}?i*^%~Z<=V~?+{f5%GWf2q7!{;9>>x3eEXvZ`+Wj0-wKE!IEFFEkf$5nyaa&w0# z^sY5vGWzhYz~lNWZ6F4q!K3>3yHEY-VCENsT3Tan`M%Te?sUB=NE#aS@g?^k=tg5= z7PKiwxfq%>cR4@LGos~W^FnfsypetDvgVMOPV&&cBe-3R$A#?FKW3+!s3&GzIJk>o z(6ImcRz&Gy730| z3m3!7(V)!jG3tg_SpzHcyoC(6QB!V6S;yz--zoh^vtDIY?nkfP@V^#df0;h9V$d(w zVZE(@&Y_gb(MbT8Zs)eoS>NUrlp zWkI&d-&My-yK=0+(=Xq9@-gT+|sejCxZ6Hq~{ez?>qCJO6vPtgRBtg3; zNTr!&w>ofim!8XsGt28+Q4Il@UH%|02ff<`&aJP>+6C*SW|x1y2<|5OBBxur5{FnP ze(B`2@VSc%t_{Y%j}wQ`4@aaZONuEq_HS?Kjf1uh@KyX)SX9qqmh`;{A0E^Bza2c7 zVGic4vEWDA-!+&}n;Ko>7n`pRSRSU~B*6zEA0oqigN9u(5IvGyD{J0$OmC?sdC(if zzxC^#%^S7mV7Tu_RNcPeWEB)k!h1SuAfbKcxrk3S<0@z z4kyEL3@FeQXu0trCLv~NrNQ>>F8Q|lGOZ|^0b`O`s+q%2ti+Iw`EZB2dav-4OwvSK z>6u$8!$h-C^QnC+#8l`0XiWVCP%X#7WV-Qp{^C;w8mG)H{|{{dj~n0{;JCmIWm{Y6&zLIzN>^g0~$&+nqk*9^hjp_4#gx1Zc(20E`tjw$b zW%>fWVe;r9|Kf80!eH-yd}F42QhRu*(P~3wiOWmd-*zm0lD-5argU>jnm$|w2 zGkhOj>9^-P^Q`!}MGCBFZ~rB>^m30-WN*%BF)Y$V!DuuL561*O57fyeKUVqdaTR{} zoC_KsY*Bt;`k>Fhjt!W-yC&!L4 zqhpGn?aaafQ7=3OGk;L%du#FU%F=vuyGo}`4;&SFN}B$Uic2=l-cFFC=mfS^3nY0; zmBl1Y{sVh;wcC|n#Ln-(QX1AzvW!c;UsDz9E9UO5m2aQS|IqJgE{vyO71A)4I+V%Y z-F#hv5y70N@yT?5=6|MNxN}ZAMkvVrCSZ`5)H!Gj0ExCo>s(0U(3()rLnwALTFe<+ zo8ytVRHwIC7$5Rnwh5>`DUS7mru_IV4(|!>Kmto@?JZUNcsylYRfj!CVhtS&GGA$_ zT#U*LDGQM9Em!w^5UyPCn3``5p}eGDxi05btCtIWn&F;x*dtaaxVr)7`8-sI`})+d zU26Kg!hUMvdgugfs?nM{+kKuU7My?v3C)1RfFwQyxfuiAzPQe2(wpy39G}*3bN||U z3HB@Snv`llbZi5u?6rGZ2eQCzN>h9W6gs;Pj($WsRwjX(* z4!-0$|AUTU5L3U(5)w+7DLqelF7zGMN!S#(Sur`EhGBtI@nnF8pE}p}!SzTw08$Y= z_nDLt|G*TVOt@|`hU&}sw*MAON7Ub5NE@0C5klpc=+bW@2D&kWFEoiUNOWoICZFYR zqDvfx?`?jGE&-X%RWW~wF6sYj#9h>5$)CFLqhU06!w0eGIKoJLmTlziAphdBua3!D z66mrbNcEdh@rzdR`!YrXj`x#W@rz*bugk|x+H)rtYYEWw3H%Fu2%zA%xEq3a<(aHreR6q-IowfM?s_K#* zL5VOVBGjq+9<3GexuSh{QxqvkN2w@H_fI}OXv9k>V=2oZ z18B^z?@5SzP$5SW6SQvCfcTIUyC$h<+vId(B}w?ZNCCvicp2a++CSz?Nd9r-CDm8b zNLeNP*q;aFM$PT{CEHJ5U|xUklt1x))atB$xkCsY1?CMiy#_w@xp#ZZ(uqOIHoBu5 z2<3RX%HjVgjPzisLyq}jKt2SAoT$gds3c~nsXU>)-ck#eTf_aO7iCj9C#U&J0 z0NB6XR*)8!Rtkyw+bbSPOx-j_5QRPfwmYsoD-+#o-=hr5=x59e>o;)%sIc$!l0M{N7Kw_T zaq5gEu^9(<%qPqr*7|$o-otkSx21Z*kAx5cFN%?UTCKK<%5tQ=>t8^kfRS6%SmDHm zAGwakhE>)Y(bH>aqsLzwMvb=c?6@;hdb*tQT;Z_d$qsyta3iZ7h}D7O<-9q~zPMex zX}EK$UTk)`+N=nWpOmM8mSV!f@q&uw9z8-%TWv_u;|z{(x<5uma@cl*qgti(KkLjk z%uV%4^||b&BO^!LLZ%}+2UQ*{UMaykpMd|Z^1%NLR2~{{fQ_@$9@DW5a6+GAge~NW%ArD zuKMDMlm2tLwTP6qIg!D%e{$J66w{)PR>Q@ODfSfvS{ zQ?L!H9G+K>$+GTamv}?7rQhogf`}~aggk(hL3gFvz|*fMNLO>8(;AiWo$~jptA%oz zsMItlk*flZA!v>B-B%8Qr^Xid`B^W1WgE0G=*PSTY0Np`RaRFF@fZ z5X1E?v;N^9hU>n^zZkAG6f@e~Yr>VX%+2S;7ps}ob?JfQ#&%FSZdd)nhwC{t?04 z$>zsoPnv2FMJvK8a0|n|`o(~~nzrv25yYWt!751tx-Nc}S$0C_-5GGzrJuW9N!fY? zkLmiC1m+<&%sA`3gFaY931*HuFK5Ee#&t7!vES|M4i~|d z_w7gfcTtV=U}u|7(r4Uf@og`sbsS~sv25ACIw3>vhjn{Vc7FzF!aKv_r9s_4>Wn1X zjJ((4Wr2MH9T0V&K;lk#2tg!o=R1nHb}?uVNon~kTiwt#dC+0tukYV^qYc1^X$9~C zL>&`~EiF2>4tSwP+#antuyE*2yPI?zTc?r4xOM}&8fH(J$#RTn7@{}FtI_zVcJET& z70LF1HF-_|Rc)^h1vLZ^K{;B+a&Rx3QLKG_(uL|(SJ(o0kJ)ua>$|m(a0-=7TE2DT z1~D1VrKf4B|F@+un{mzlTPe&Al#3DV8cdy~J{UZjeY=#T$8nx>B(xTk>+<%!HXxhR zW7I>;QdIGZw)*8Ozz02br}e8W%~eZ^>4dn($`8zO6EL3azZ#P^zQWS>sPyG0hv7XQ zS1(ab|GJNNQ15_T67_IDJl^`KF4`ubf%6~8u`z_Eeuv!uB*!K*TIw$i6)}hZH(Hn} zLX|?JMb^*4Rx`sN9S~E)HcpS8W^&vE32~8we#jx%K@tf|LP!))R1s#N12Xx#2Qnm? zH8uFMjt8#0PO<2<%KDA&^=ePCzJqHzM-PMDApE?9yC4qs|5v{3vO#?=;F$M4tWAhq z>}xNaL9jcX&KG1+!E38jz^frefdRZfT*k`*MfBKQ3P~l&@qLL^YJ7jo9tZK{LYmg* zpNg38b{=5X<5EHJqYT!YMD4CJM5sOGY!3`z+{0NF72Sj{0?(}r z-M_4y(QLx8P{*JC3b*7Om~8>sGFc(C#Q|$6rw`-RXCMuU{ZiS^Q$m9Z=dOteSOHYC)SZktd zl0XHc%3N`#%sV|@Eoyu*e z{C+E9fK%|a@yq~wv{!NyB7Q_URWmj-N;74m;6_pNh<9=EO2eD-}L2OxCVgcBkc~)Mh zU|G!|?|R4EGhBy*|M7$M&G39YT>UDA#_3Hg=-iN0)Jwr^{TVp8-nfOKAaS%+lE;ZP zHZa`fsuNnrG= zpJkkl*Kd`$u`*oN<@U$kL|UrSsxTc_A7L8O_*wk_k2d+m6M734ephK~SVs~jN$x$B zop69hsYf6KyfA^8jEUS|(9L-G77OC#$S~Lg!taam%;<1Z(cAmDP?B?W1@wSE*gOyg zu>zb_Y<&D>_FK+N`J_62Bb-sNJCV*8%EBsf)C#qg9OX)$5*4o{6qGH+-~0YDG2gdb2`b2qmceK0raA z^qW%_7r3@G4l_X~2h9N>IG*P)vFVMQs^BH{MNb*4tZs#Un>2DB@ z$MC(&GlT=_=3@U7!U_C4gp;EgL)1@-bv0$o<*siJA1dKLb8`3d1jr35Qb|9SZd z;r==E6T<0Ji6{8#|AcU{IfQC(u{j_J_j3j`4T5mLt)CF?*TP>AF7_vci~R}VVt+z7 zofW*~H`9w`QUx%l*o0-D-fNLe3VO{qGY<9v>|}qi@>I-+K<#3K{KWLX`-$bB2<~<9 zmuQ=Jlt?coX|#t{D+IL6nl?b4`F7<6BdO0@T$`>&hW`zd8B1&%O}qowi^L$5wGKQ5 zaq4R`fHtlliyl9?O+Dq}g2?xOgmcFVm+bl{YVf9hd}Qzqkjpp*tp?SZuOA3)Jtn~K z@p#+0e~bdtDhn|Ku6VuRUIAY<>b{vF!t22O=`)H?y!U$b&+Te|vAR~*h9S6JZ0=iy z`1Ab5|1;f?;8vLivw`5Y;Cr8NS{0;dQw>hVSK62GvkFw?1p=y4jZY&-oQ7y!@s2!& zXz_gi83;1suh^=Kl187qN8Jc!(BdCiA#d2#4QQ} zLe|L<;0{&t&?Vu4FG@!|DdY3Lb#Ni5w!X*^Ck&d(MGvSnvjY`|%h2lRf&UG%$o(Y!!x0)1^nYTkD2^Lxcw=~ z^|zgaWNGU@Yz6e_rGrrBds>dh*WkZv$bUk|`~Z@^F~2c6XGyME3OZXMb{=QbHjwz_ z<+Z$GSkn=x{`}{YeBFBE41FAqGHWM+MXv`@fNgwN6thPG5Pn1dZ) z7aW8IkHxjwNM9~pWRhV#ffV+?&)1aa96X}MnRzKo^pTFTe^mIK{F%dcHC)eyhLbsY zI8PNZorp14+%mdiP1E7=&Lld003HmSG$p;q>BE6)W~-=PiB_WJx$EufMQ51VUi)e8 z!wvOqkkJB?dME*aclbfdng7eqr_^&Px@4da+Qr6xJM-Q~L;q53S%p^1?Zc1icfIvl zs;?3zFmb#fW6icTUdo&(BN}q%%uy#{Fs!&*4rm_E^bHwF3@Wo@9Htlp@uC?xhh5ws zfa85G>PreMDC;~uF41R%TY^J=X|z8IWD%U(Zo*S_<%9)hXido}p-Ln0SPRMbXmz zZLyL9zJkg`JIVJPJVtDhNK{EYr@nS5ZrblyBm=UF_@}F#vQIZt+o{bd=1paGxqcnpV zD$Pj}rjOMH*t_JG=SJ$yTn4+UH&X_9Ah;=UlnuPf$g98EZMrMXXx9ItmZ&xeP}=R8 zjlgG_>G?9*0V-NxQ=AQ=S1Y5}($YvgDx+UiYtd|W)!SHHtan!=-KY|tL{gD2tCXtr zd^$ZmebCs;<1bmQ0kG%Fe37zDnY}R=(W9ftIWq7I?jlz4?FqIeD>B?q&YrTpOh(|R z8{c}GTen#p)wZ=~K71!gKSEF-&vLLZ4Bc+xx8*uj*SQ-q@vwn)1%#=bd)yM?k9_4v z9(nKhuJfz_Lv}2}_wZDr{)~drY4-M{(5OKuo6&<~2xTPbFaTS|ZMOZ~{*-GJ;(a(} z&a8(m%lNR3=X>Lz*Yeu@VR_rTbPkEKHacX3YjGxsXbbwvyzHiviR@e)3q28_t_f%_ z=N83;!=gPoE-*j5N2{h$*6qk*T$)oRx}zfL|JgJls=9%C#yEgb9K z0if;E%>Xm!gRxM;yMxlcQ_nZO6V*5UXW zjKBg0j{xMpm9I}S_t-q-ht*ID3(7t#ljGG zTdP5GldZipMdRin3b&0U>X%I9G#sT4x#G;C=rt@I+)}s0I@9u=U@Ca;Q*r5bB^}Uj z4mhOG#Qer$hf!<}-L9__y2mqRpeVb=-H=)8e9IY{asVVBN%hq{+{wIrx z1}W}(WVRyqPED7T!&4I(k5dCWY?M@Ph6wfCPjWc(c9Aofw*G7qO6@bIC8@>KhCI8e zVJi+8t14)p9iGx%U#=@9D@(TFz51-cSl_@k7Kt;}sf#H1K6mhKM)8iHIFQqmcZdHR zQ+KH!2Crlq!$kK|_AJw@_{J|7IIG2bVzi)nujjdrB-*vEJ$ng0SyYhEeF~E$+_xb8 zmDc1&r_At05&d<0#}o z&z{@_JfZE9#W2s*96X^h#t`F#%_TTvn&EJF%SW<8zcRo{d`tz(tFkmR^ZT`!Cj(dD zYqB|J_faU3L-4ol8Z>8ei5n-+1mV-BoNhX1V&IA$=Vv?pozRq_HkONy( zT)DGp02RQg*q#dwMp|T0Pa_{xdR#KjvsEQ-vhW9wHXaEjWIl*j< z*dxz;>@ifKFJOyb+(7Y5u6jzkJ>TzU6SgxlpqaMIckT( zA7cy!nJYMlFu_+9PM7MBQP5^W^T+-*$yS8%yx|-lJ1?T2@SAh+p_w#02P-!LT z{sF&EfuQaQx-jKc$R@t3_3T>0a=U5hT7Kp$te(6yTJ0A;Q(#){m|7(AqdK$S#uwDf z?1s0oU-hqSc$b3Lca5i;?fcXu;fP}WAinbL@YPUg*e*n)@Y|o-pieNRF;N?%F5X(^qi-XlWUS8nVJ1(jbfIjijpieygt)4qS z?&UaN;>XXc${XALdWi+x2ewj=05!8-v;rtIJ=kt}6Q`;&s)K_EFMs>!{u#Hq=RyS*@{Nvp)NMf0=1l799{b~4GYo?lOID;i5%wkPP1 z=$2ZlJ#Q%tt072g_z5dH1?MP zomc*s{nJ<|)@uE=bLaCL?&o!ypoqltt}a%v=gqat=f7^tXQF|nBgszX$dH2*L!LBt zCrDOD>pr*kBjXLzDG9dg_f6!L@`GIy1Pq$ckam-fjaPCZnUcE;8E>);@?Tuw36O!s zGeF1JeHkQQx^iu|p$wujTX6%t5xQ5g&aCPx3w{7YHF;naeY|!ye{{CuYAsen2o}9enZDwVE^4^ z#+Iwiyp=jehVY93mybQfj>v_*FPu6wR%W=Q5J{&88RQgNcaqHZ$QBQwqYUYn>nzZ} z6a8NMV(eu$%8&7vvT-FcJ;B|5k?#DtHpYrBX*)0aNsjn;>~*JIxqK4w#3`bG-#-)j z#mveps$L3T2HjHFWLUDS0eRN5mwFRxtUKr5R|JqUy4vciEh}pDJixgl!}qb?D6^ZE zIJ7iuH=8sb*7sQcV0g!Og&t@u!y2_@^qxD}FBNIZ)4515Jf`HJV@^VTrro|Wh|@~* zy-`T4(=A_Wa}Fo#4X)|zhxfU0?H?x#ZHEHD_k6%Ll-!`7o3Z}YmDLyAjacY+JJ!Fo zb!Fv<_-Bh(!wZP#oq)LM=XKMdCi2f+Us+4Re|L6;%0v3O>R4i~4-B$KqTCOBE|_IF z5ZtVaX?A6TucU9ghVg4SoRVl3)2yn2eP(7`m0ey#wN?u^7R3%TmrFimoJ5xNtx253 zk^Bx1dw2!h);v6Rk@;nTw!+i^WsH9zM|iR|34agBWnfG}S;zhIGzG`|RSpj<<^iIDKF+XOnDvNWUVR>11dlj>jaGBR z{lYD|*-_`l9sAU6=Dz&xn#i0Db}T>7-mdKU(s}FqmdmyH>U%=mr6_yF;gWcI!`Kur zi^9NmRB{%HDtCUKN-mX02Q@JeuV##UXUk)|z_Qu(sM#!^Ud?FIK&6r*o~yz!3+6qW zZ60fR>8p@{UAt!ere$~r8UpI%nWkC48P0v}6b(NWpu^lx*nZhPRSZotky%5`ffc^83j3AnXNo8(VbeN*X zBf$<=-%r69LCm9dfjK|C#UU#|P>*5CabN;7KK^Y_1fGR4GtTs?cWyIo?GBrIw4@B! zsc7$zSl^$=@ilhyQ(skJsAWYV0Ecz29|teha$R(DPA8|dDJl>h`N4XZu{4F+RIRXM zpiBDsT&&k?Y|drOGkGZbWq1JLbhJ#ueV(2J7gFrZ^G#0Y=QnQrWx`7)H8GUYD=+^A%jdst z`_oOP8?#Y4%CX?YY|hBBob7E~bs2#O@c^l!HD>YsZwj6BXBMjk(;+4TjUzAX%Df^W z)d_&|O3cm7d}|y12`5<12jD<(cj#lRRwFRrr{p#xnq{~p19Sh!Sbcd|Q4T3nuspH> zFf7HTD-!-?$r$hJKWC*|q_?>gv3XSyH>V*HJWwuhr>N^xJ&Ln~ir?>cq@$+Rc~H=- z46GI%GllfiA%b#Z<})G-5!luH&PS5r%JJ?xRFncsjHpqQ;h50$se6>73#w8J23(@I zl5-hSPb!2JcuFZFatJ!<#<9W_S>=<%P!U8KFxzyhT6JFdAtQ9vI{;)u+nnupla07U zQH5VDC$X+1b;Y&4ox);6=qfG?=H?vpV!+l3wJL9ZF!xk`lGy=>kyouAm=mcjwZ0vs zw^{~EV53t6lY)oO0i%KXirT6GCI$Y-0KG1-1PE0)9V+jfzYNgp`pf=l%ob}s?;HcY zuIF{2I6LI?F3{_G-VAzOzi!J%Wp&2noiiAM*E%Me{ZeOV(HT*a0J=S7nN@tw8F9$_ zKc1M}rbD3Wp|`PRBTCC*W_2ww4V1#>;Zq>}nG^ymUq==}hJDrR#Ui05FtX9~o|@fv zLCN4h2y|1(cuJg9+ejlh|1*H{+fD}xvGMl)7%)Bvs6>3#XQVg%pM?1_R;$ueTB;(S zHX$+yevhYcp%xNniR~z!PF;FbAqF%zo5ONKD;SjcX3cF&t8WYd7}!sDdGRn+a8sMb zdn=f)*TH)rqhTicA&G&33Oo2Nfa7*dmsZ7oNPk5~9#t+8y{W9oQ(duw{0%a&s2zrl zJ60L6Fo;cS>W?edAL_rKnNtTNxLc?**`7oGKzs;*^t>98RY!Vw@vlcpQ+fLK;mxhZ zh633|9Xv#acu$ncOTs}&1p;RUm)5xmp4M+}4{P9OV6t1_9NO?MU_(0JeSXxhuDQ#g>7GCIxc$DtHYG*Fe z+t5yQupd1qZTjrF7zEheEV?>u2)vDTFw`_;byFxHF=KZf(I;_IN7>trrsSDgboDqn zovnBG@;Di~JvjY=^Y-d;awC4w z5Aqsenb~`|=Wv9FPY?XVHJu*Gc_L|;5W{yh1xOXc#JK^mZX1p>O=S7uh^mMEb_51s z-gZ)7ork(hA3@0$6~`9JAHStO^f$kyTV}0V!;JPpfgLUm#|F8OQbCzHK1U7-P{%P4OO^qdVSVqWZ5w2vj(zRd7NrbwkMc}?ZYVpVMiFv#uy{0{65gJm?wp+X(Kz?W$V52Jey8Vt2vrlV6cl8U=MockjXv4{J?u{mOASBO^VMwbHWfC_w>3aXnu? zlb5vfof}B${%!HZ``z+!@nPFxd(5ADH=QWJ8@2Z!?L;Gy`lTu=b$SK+X=aAGgV6x z)DdnQ74Ryj%CT7^33os3sF^hN#&RqArgYo(kZ6f_&E4s3B6o}Xlz}Vye*Ag^8%F5s zC8C)2G=@G+DCfLQuF5K}$lM<1m=l0iSE_;4!egB&acye!iwZ6MCJNvM+?R}*Qac5; zqoRlitta8>vY>v~khvVsP7>75cMUS1Cf}YaPFr(K%hYUY5;=YtIY%oWc5(}=8*r-% zFiFLF$7%H@*{a>fZ>^~O^zYToGP8KM1G@-fVNA$u3)Y`O~L zDV?89eV!y`TkG8%uMUM1dGoD$8a37vAoB*q_?3qKJX4j@eHq!SXLe+3ihoy|SmI_L z>H?byo(aB5w8!Ojy$T3GdAm@b|d5T75qa_ynx;{L%`0>$=?D|~zNuyBJ#$uB$gx3;AM({^&wTGW1QSyvTKsryNW2A-E z?l()hN$~Xv-&3y|UJNJm$n@}E!<>||;ZUM;y|ece&95BiE(1YGEHE63=}k_X^Vz^{ z1*LS)D|wE&(#mG`{POAIwVvM2&6*|i`kL0%_Z_kw!}V5d5;tz|6KDM!Y{bnojHGCs zVEXz6GmDXi1NE>xoDFG76?-}DY?ZiWs*pHYTkbcbE_O5ct=zBDJ!h`IMpe8A9=+_! zmTG!s#CT*aX&?rN?!!!vw=5g<;M}?dZ^NEV@y> z48!G?Begb{wBR@WL{C;yMQvito|ES{Q2_PWpGXVixrzMZ5uM$V@R;Nncy1|4EMvOW z#Sx-lEBPauHegF0ty9a~Zpt7>gS{g6Eq!K9jo%nZcyR*a2rLgobc~ zs@&ZZMq-v6c~v0uH<`baT?y|=cAB8mzXO@XKY%Di=qhPwSQ5p@{_aeI376MTmJIzU#!&;LwBrMsK_H zV5j{hZ^wN#+jfcn@vGPUHNUpq5~!_v3ohx^MN93@)xe%>NBi4Pjc?d4B{|@#tn(^y z9`5*qIFJ0Hj8KpKfy;|7_#!k=8?Vu9#5#>`WjLl?(Re;HSMT@!=-dm#n40`?x72cT zY|aMQ0gulf_A2A!xx2iX-O9jc(jeHS2!Yw@p6qu@Y|&WKKWM6Rf7(>nj^mZ|ddwt3 z+#~=vT;%Ooxi05w-<|ZSd%li5600xRn(V`1mKgkhaIRL(=i8F{_kgPEx7u2|B~%H{ zgXjxC<%zxhvErqc#s>GN$=e;-qPmi;hypuT0`rvF&@3rPiAVfkUPt3~=zplCPk$o3bI!aX2Cq>0RTGZ=rVB*O^ZqmJ~EfY z_OoG+v014$^l+{|kKz%TCP$uZm@*BY>EFMPH=WmY7@8QqEIa2%GOT?V4)Mel{!HPd zr_y}#z+Do#()ZauE4{%z_V8W;a8N&e;{T(vsUiO#iNCgU`@?@E{!TppL*lRfpNT&< zgB~0dDI>Fs$ZFQA;O!vAD4QQj^8E^AqCD7VO`2#GK&Fbc%#-vJ)rO+jh4m=*+O)$D zsHT&1yngMc$woWesE`#jrcQ2&GD~UV1)7SvXIiOt=ow=ftNr)0E{}8R^KV(25~6ZL zZlnX4(Jq8JaWC&gZRJxxD79wZX)Zh*>Ka-@b0uky1C^co8^)zjg^2D}PYC*Vimg;2 zUlEDr`RFj z_P8?)jD(5a+*NtM_n~JXE`BQEIitGEX9WYEtEw!#oY<$$5wt>YIrX# zv1f*jDfuv065~Erc4U^L>k4wKb35Z$mPR^r3ZsrJCjO!T;#JEi}`=JAoFG^o5j zbGY99m8F;98)oD`DL)4Joz+2IVN-`^D$l089u&brp)7k2_a4Q+tVJ%|w11o>1v#Ti&I8U%+ zwC~Y%lu(oJJqljD=_z0;iu2{hCC|~dcXG(aV=oQs#P&^*PW>RHHVzZRXLs*9=C#e( z(VU3HrCv@y)?rYhzV`o-oL>z7tl?$}FRyyr)!mNb)!krNQ}%{1?3am;2%3&g{2^X= zX742`g~p3k?`u2#9vWgE29&qHeybROF>*Jc+?wh?dZ~c^U22%QM#8~ew8MQh?<>U$ zjHPrVp$9moYXj(9p(=p1mh!V5I(yOhx)kE5FRn29ZLh^ zZ*GYr5)RODuLyFE#ZMS?Ab-l&^&&9#z7cr`qdc6O7oQ(pgMt>SNDz}xC@+}lE0VJz zVgTNz)SGNb&818Q`CjpZBwinHRA5X^(67W_kc@KvfxL}EL7!KPIj?dXRs3_}Pq1*z zwvdTJ2w(*GZr<$6FfF5mo5%%z67WV6nNInKhyk5~9H!u>7XhOX0m!JLa+rH6u6$H* zYoi55fE`SE1msq|$qqeiMd-4RCesWcIvDZcy7*I@u{Tw7=Ph*Ajq(F`jvIdRNN8kAa=m^_TtA zFsXC}f8HP~x&OTGXaDr)UD#7#&zom`$6tX+WD&|v z#6W?pw*Orq%gRPj(iz=yKzQX1@T4`zba0{g7=#J0)l)UCh%e#ElkC*XTO2-qdma4n zXBeU0;cX`RdoG3G_2IIoMk3lN`kf0zIBClB86oZYPI5Rt~|9|3u`ZWnsKp6JEl5-Zyw@p0|c!VJq* zQLo&MyOrc0<)>x+T=mATv5OM?N5ZlWXFuGoG=)8Sxhm-@Q+Nv|Vyba?jVoffOF|qR z#8CleM*nwX@kWp-SN2`hlCm8ylOkV5(h6&f5!4UQcnAzavLa2~Gwwj<-*DZ6o8sr+ ztdXbCE9>SGwqMO=qyX9Y=3samOk#Winjfp-UD>v0(vAE8h<^+ZQ1*ux=iGdxQg9gh zkHH4Y{`|3jPVR%UKhGP0ansN1_CeX7=Ur^2;Ln>IK-r(4tA1sFcpE_3AHYH|i{S7g zJaB~}>e@GU_d0y~GEE$g-Y~M?V(L}S7L-kgKWZ%8JF_)rII}LNZX*PZE~D!X=zn>H zb|$}J)mF6T{%P0;vfj+s;ntB8U_!hq5Qwnu#PI|o(wqY?q2^$)b@=2*1>?CMO~|OT zFGK=}fB6Ea5V$w-jwtcRo?PQ=teoT00r79d9b7YYE&OOgJvMEXSrygbE|v@6$msYB zls3GyYXF7Tf0zIuhhX`~A@ImIXMc}F2w4mCG@i4eEF`D4i}C#q3r9j3j!qe#&fxo9 zwRY@GLLM_phWAXmJ6Jau48M{be>{oFc|)>2a5U)x&4xnk7D*IR`h<3pJ$lbQuU|Z&6i5Q~*{w{}L3{u5E@S9vd_Pxxr`WL2g086IEC;!vU=|;m1)Q=r3vwCw z|JEJYd5o}5x+8!B+d+R1Y-7K$DrY)YS*Ie-oX(Pb!B}p>H@sT!T~QB_9NKOnybO_N{jctzw!+7S`&@A; zp6ONl2zdso4PEE2eBKoN!T~Qv*BMy%rL5VFc1^=QefzFrzH=#LYr@v!KmYs2ao zcn8Al_K(5grd_NV9$&@2?Ai>zI+#ZGDdK=nhE=7+8~P^fF>E6Q?3=YI8Ci9VGHXv* zOR>Hl?PTr1?*L>4^KPKLXqZ=opV|nQ15z8><*v?i`c6nVP@f6^z1@23o8Y6o2W#8{my&$VDwvxY52pFYTMn#w zgfR*akt$wJtn&)A;hi4yQM^2=!HQ>WB((P?oOP3ce6Xs{S3u?e?o-yGj2F%LRRGh9zb8>yfLueYE zFRhpJuaKw?Uf9rZ0r2r$ou{>0{cdB1zdR1|TZr-T_VH*~=Vb|HT9N0>ff~x~UN@sq zX?J{DKD#8*u7?+3%;m{wjFvm8BG%@jyaK?s{uURJ#! zm=J+QXl?DW7xrzK;?$Yhpwe0brjBRHe4>2aLmEk>Q2^shKp+DtZ=wb|7zN|9K;GE|#lMbSy}y4tkED@a?VDj-VpHhM{LyAS+u}k{imxr&=<+qcXQH`K}$=l|}Eg zc2|&0?4|qJ&=9(S>Iy^7+eG$(S0ZZ+S0V!{lQx4rP8&OZvGi)L>rHacmAegQ!4PvQ zq-6EB=N?4_;^8e-kK=JIaxa;(DC%X0Y3#FKw{wM*t%&mp#yVe zTjl=On0%@TO6%T?>tV+6H|$i~kul4ICGF*4w7WfiJc8JogG-t3QJ!8-5kG`Bj4UHD z?3$!x0?F?kT1S_QXx>$kvE%35$J$QTjaYlPS`zVUw z?2f){vB0Z2y8RPjd(^@SCGOJuz`g+@?T(X_xuZ1vR@_Ug?zJdUHr_<`7V0(zl*Q_V z0e$mb24bOu`Z-{j6a>KxR+CWz9pRk6ZIwI*^Pan2-l)P|5^sePgMDwuUc#kYH9 zE$b_>+MD)RUjAy;$pV3Z_J!bjJSxm1Yi%w(?cV(M>OiI9Dt#AA$K%9%QuqqaF*2=0 z`_jex>&xA#{=Ftbm3(}jxykH zbl^n_7X+1TTm-1)w;}F;=(bFkOQIJC_he|(lcVRMXx?gKe}m&2!e-uU ztQi8~ITTNhLqj7{2ZuM4gAh{exKW0^&K%NPq5Rq{l15P(DFZc2w}*v3)uIH-ZKU!o zDznvf<4i#sKX!QNibW9#2S)=VnT+4B|Y)C&E3!!3)iU|q!b;?XRHIf8}B1yXq)gSK`jbf+%T0cI z-lqGI3YvRHer>1iY}Q=*2(KVRGZKku;&^+M6=w`r!FHf6xdTiNfQz*7E=wjCX2rej zY(ppC=v@T)^-T#s_00xOJFq*<3TuXLa5wytXXc9!F|i*UVfFWdmrw&;PW4R_cJI4E zp*Srymu)ZEGob5-75X_d<$2%9L`NTQP?vE=Fkl3Ao%BS?jXyloUXmv zNo{NR_LkshpYd7#P&q;K4!GYVl)7B^^*hrz*Yl+<3N#j6Dq9WyP>vO3|Chfb?*IvGZmHSSJP%7rA8z(>F%q+aEO=s7+ohep-vemOqRWTmx*z9&9dZf$LR_H&(3k zna4L;W7;T5SdiBaJgm&O1lX42d)9ZVU5|N6sN;ueHPGg4t{a4FzOZiXVmKQ+1V0X8jxvh>hC5uc}tY8~^B@|`Gqu}@%Nn8&J;+KtTLt;m( zQcvN_w)mg)n)5R^3cDA@q1(ISjxW$HdKZcAdihW$D?PS*26dtX+UxdSYJK@Xn0w3U zIC`hiGl`k)m}175*)cPYV`gS%W{jDcnVDjym}6$9n3-`5V_N%x_x|6#d-v{s*|SF< zx+ImPK0U2I8ma16;QN7+Fq-`}YEuUtic&T%(RT=NN4j?NB&*;lNZV0d^|=8GY7hoHhIMO}vm*$dV0Q zkY~}#jJDbfb*D33T_OS|Oj+aBH|MXodtDpgK7?*x0=ieDd87KX0YAD~ApPM&QDN5` zdKXpnNDqd3Ht_$9*ZHiK?~ItoFV9%&&-7;(dtnW5DkztxoUjn8he<1pXnW_Mk=4=9 z|C+K{5FGUvU7$5Sb7d1fT8=kLNrX*l=DBxn>Hp<=i(a91sf6^xwuov1Sc1JXPlqjj ztr#e}V2AOf^rNt$s4(47^Bx>^(OQ|1Wj1tQZf8DHMoJCis6u7lmH%wJVAm7!{j8PO zsnA)XssfJ*Zp`H_hQpG_P(DENEsYkVGcEXSDIz!>)aMD9e+30!c$b;*P~|?K5!UX^ zVhb18++|n45Y=VeR4+w4UdP$yJpX#}0KNJ8Z{JJvbtij+>aW9V*B@>J@AB1ZO-(QJ z7k>$_4s|oM>%REcJ?!6mvwJpATw%Igm(AWc;1veU-L&pjXLXE=o3zenL@&$ir_A(C z97cnph0rHxta_+wUa*lw!#j(#yE45d(>X|~k2Vb(pT^X=xJAa)_Iu=?WNgb3Y zXBW{{lpkJKiq9@r)@~+hg9yZ&%!@gHtErVONjvFdEJh*1_8=JUcu-9QRR3*<_-p~t$Z zj@+^RcxbHr%bS*)Bvv;n+dkenh(x&fFj^RMwyK>sl z0;OdENc=2O%p=3jdKog%u6>(m;WbpxMx1GOOV`?aZ4=uN``V?mGUhWrTH}QAU72jJ z=g|{e*n$4xgiKRoNn&;^&ZjLe#Y7A{TYGvCXi7xotR##_51pkwozjv?wfH>!Wl(d$ zP9iU--m6FL*P%!}~2^~}7xJ(F6`u}3!K(RDr7 z!}Kh5*ub)u7a*257G;pW@`d+XFKE0?16Vnk!~l$Wo}J-2r-ei~c5gq_E#gG2#Kl`G zYX95#ahm5_`%0h3ff>EndM*q31LvLUoZzeI7zk;fEX7snNZCuT$u*#_s$!SKaR$Kt z)3_dXmNYTi44ANL>Ls%{IGW^gc9x$Oe1@|i1G=?*Nv3&%$u>L-Erpe|p1n3~uU6v)XA;)Fr!M^*0@rV@-&EoMY0urxW8B}AB6l8Y z#rVkGj+LS;+0BEvH~M7-KxuY9M!CD^{cZ9N2RMz_Q2Mh-M^w)rwsiSr*?aLJ-$IDd zxq!p2JnQ<`i4WVc58LT0M_F%#k!?wC8Ma|ckTeOQJAryhS>TTMZ1li)KH3bXZgl(H zFzhmhc%d5dJpZ7#fEcIMGR%;59RhhePE40cOrvCVNIh}i8N?3DAa7*<++g!L67xla z!i!n2ZimaQkkkeyq(H{9dB1({;re{Y0j&VCUHax9Pe^$FrBczV2Ox8Wx4@XEU?HoO z^uVDVUEf>7K56Re<%X|!jtErkg+x=BY(5_j!!rZ2o!s~yp!}!&Gtxg>s->4t|FhlQ zb6rM!dUw8~JA1ycwLxbp;$|9*)>4nN(*OPN>xo{ioUfIE$E;F9e^{&E(4>rHCVU~tZCkJCj7*4Qg@eKz>TIbP9nD8vd(4096zG)_ zGX=~Zw{ULG5fe#PfE+)aYIc%gAk#W>Vh?YyrA$;GV~*-)#6g>F7*D?ZsQRAJ#ELPBd?K!x`p4b%Fn zP|=F{;7wbj5Hb@AQ#6}lQIUjG@Ky>_(PLnY8G6oUa*17A2(%5KbU@Qc$c3{K@vmog zlr=i?o|VM6EClfrYsKmriCsx1J9IFoQI6B+&!5|JkGX1&gQg5}fKZhuf@xY@Ofu13 zXPrCiKIH`-T=x|50&H4nCoi0@4^~Vsk0UF>g=b$|-G8PQMdj1B4CEK@mv$<-@+rJF z=p9G4dmJkAyoC<`!9}3s$^|`5a&25zzDF+a@*3v%lj{pD;`DKc!p!65iTK!B>DwlU zyAvB0YhhGI5w)qFcTZXD>Q^U3N!ny}u;DLJPFFFGIuoyE;#=YK_~=(sWpR>hqS{w+ z>QIH&u)CoWE_1PHt<9pW@Sq6((Y?NthZD~}+{j1~;cPb(`UL{ORQZ%HYfNu<=WP1r zLBrERGUoQCt(|vEtd@5~yaUGLv2Q9T_0c_=JqyvoFoY#J#X@eDG;67Q%Yl?8%IZC3wmpl6)kDL{XJDuHgb2`?0%ygpb$KseFuQ~lpWLPYlfkZe zs=WXU;UkoicBvUiKX+)eW7^Q7H^bJasV^TAGXewT9&;1j?bsoI>-;huVs|A z;u_9Dxarx1YpZ2yk_+L$DvPD)h>Z7*>c~9LOO=gTIZV zED3|zgQ|0Flmx>YCn2D1Fs2+QE5kL%)b@p=G{`OkNdox zYx_@$lNkRj@kH`M7rTu~W8QeZ(y*CYe^^5~hW0*peKW`v@_S*WeM%djrBK8i*@j8d zfEiVl19CN*ss)@Ti$}yJWUI()U-<2c*b~t16u(l>P_IW7A3m;#@a*tiz3{fk(01$M zzls&BvvAq%*qG@C4VVX+m6x|{^sT!imsDRd>56@AGG(SN@Hm28BAnkz#sNP=rM;Fb z=&WISd{7%xG__xC+_PHo#1s9Q1~+0M$lNJH@MfGqPY}QtMSdLzEc#ZvYM<@_25qH; zve}$&N7QO>zcBWNaQQ~Gj+C}eqG*+1y~Dk@s16f}fThvLp>7iZi~;BkD)mVh==MDhu3MpK;*lP4)zW3jvR}G@Anr%*3f5Dw{yd$;*#4e3lXyCkb^II`jiW zT>kq9jQg&M3HBCmf8^UA(dcYQ0Qr~t+wynjmnwB-)a~Cz5MJ2Byjfg6WlP;D>Xs%T zl}uPBywZ`ES~Cf-{eo*d!AEaU;~Y(!ENNPxlQXRk62*iv=upS7OIcJouPLq=HL4k3 z&aqMTH@Yh+5nwi6Y~G46J>KtjBsSTs6t7jCTa->63!*lRA36V`_W9;JGd718i>6T* z9|>Gt&zr9v7h^y2@j??GF|Hg~G(li4Ni(W@1QS4BprEpcp>~@Btx>i?tuye?RHj-d zy>?U7z+D#z;uzEQDN7^o3?`v`sB1bNx?`T9=o$VTbR#_7ri>u~{80oJIFxq9-urT^U;J+Js|X| zv|DTjcWkasgH*9bg`@3NfqIg3#7_O^`Bafywn~4r!Ash4nB>6V7@WFyf5R-A`UF+N zW0}W$^3)xd8bZt?iv3hCE-3Cm51XqBb@GcDk}@nJHZMnXDTZU{YJCaQ_1z#iKhzb&Fc zJN&3djr>)^=stS%TZzz!=U3oKS9pPp!KSEivzyl{-Lp)u+P&Rj?Td}wLmGV1b7;nD z(b$c3fBVot`r0b{G#{@nLyw&dQp)T8%%4vlhjlIs6^_+C4Ssvd)N>sVXW}|HR(JYn z4IbLlNs?vr(8?J0Hg{2~zVq@-R7VRxK zX{dr}s6J}x$Nh|Ivc@_QfMwCoJe8isH<$ngAxV;ADq0W9tQm~k<4aflfW=J}{L?X5 z&K82gB~2OWbI=u?y=zlV{JeOYCRe|0#S8wIt;J@gz_id@<>yOH7>>gvkjEP>Y}rWQ z_p3XnG>(x#Isz*L(f8%77=|zy7&1~5MxrHgD15bFM1|G7CCGXw55#%mgDE=`fJPfP zXucr|r_-6M__I>FKZ_D@Zv(6T-bmYLa)ua%v$--A|k z2*~}@1wh{(dZwA51kUvcM4~-*E(hquVD0<6-#q-3eFtkcoUP%kBdZ&D$`T9Zp1(zP zc&;erADFLVvNqonE^C@`$pyA6Oe0@p6708{g0df%bQdKQ)0j(!a0k~iF!0TswJ^^y zFeh>^){h3VJs%EvqnbV@N|^?r7Vj;u`d5rgK#(PuwT$Hk3?#%b5zbXFEZB@?R2Itgb;F@>)J`i@{lZgPzHr zwjFjFPt9`9*+-BP9qqwb2;L9xb6R&^KX}CsO{%xAr$L@ZB}gxLS#;#+-+PD{+q~Zs z{faQ$^s`&(@+ds+@$lTA0=sO2Nv;7v=?})UE1+&CpK?g3#opraMMBDbxmI+6k{HmHe8>BD#Qn3w5-d$?r{^q24l76>x{s^6V6 z>QmYehASD99UGX}qAB4=?-I zW~mNJDsx+<SW#2xk1A=!;=;Xq}ZHyv@Wj7K9Yp*{@6(HCAwZ{HHjLTRFD~ z4K^iSLZ>);B>M~mc8+H!kIvya$77H)9URL=?ZH-@q0cx+#wnUZbe&k1t=VWJil_QBvXcG&{CL^vXhS9_yso7RGyg zc_O)v9fQ2fj()moJ$(q_hroS%Oz+R)Bf0C4=WiG#Q>YGt!x6ObsFF|PbF8N*-tyj8 z3-iyU00>-78;8CD5ez@rW`pVl<& zWZ{C<*=KulF%TPUO9F*xao+&4aKWo>C4s$*!tXf-F}Zh@6!5<)Vx#40{!{xli+8uZ z_>W7U*=ecy-3>%%`EFQyu}SO4;Z0xpVWeM^mw!?qO9C}k+|4bD6>2E~a>@#`dM2mL^bQz@alb>vHp2D}M&-*c z3eIK4Sh6m51(2F~2yW>M`oRpjNs5_c^d6$k(5A*5=#d7PKoK?YvRWb&)e~B8a z7(`LQohv)Ae-?|D_R8NY(4Jib4NpB$kyuPbbq)-pz?O^-z@f?J{(yy0q{!)66#j?~ zTk`gt_ya#trGUeh$npoqMt`FEFAc$u=(p7P`klnPO69WV#xAADO-%^ou$=Li zj?Vc$ulo!p%uyRisA84@o`UIi#3+68Zh|nmpG4-&YyxH<9IlM4Fb#jUSQs%(i?YMA z+0->se_id&OIrQa>gsj5wTvx1QCaWtxBV_wWJ@-cllk*qHRd_p4LaYGffoprbM2I# z);1Ga^XvA02_zA?%I#q(G|X~WxeDl0;c=bQozMdOb{=NU=ghh)9s8BSN!;jmW;`ni zSSh1i%uG8!YRoRtRz+)c-b}ck>)k4H>aRhyJrV(_X`!HYI;+xryIbwmFL&ybltJVP z`x)|c(Na~BHJ>*&){!__go$7E4=s)N7d44suG1o-tIg!Yfyc!4X>!#ErF88#;{>zU ztZEj<%*ftoYRn*aiYnH!Aa_xxnQT(^u;X>f0Xd&SD7aU?&dcB_bKMm6cjQkUN;mzw zsu~zyg^v%i*B9EJ$6M*Yhp?-kx(4Ph#M%xD`6;(#e zr5l#UTfase=v~TmxWhTbtH5!KeZp6b@&@+^XS@lK7(k2->)<0wp>TX=0(W?K>nJ44WII zHPh-=ZqLzy0FM*xWr8pgnbC~c!K-Uyfg6ukO>@4;NfokI+3We_>DGbJz0@8r8ee9} zI=uQ_Iw5JdO_u+9MYyHWvbyP#e8V<-?mmTvjGGoY-vD?mIx-BQhOZ?=E&8Ccr7v#{ z?c`xV05c$C{%s1n32rG!ioH$SXqfL(hUMprM(Ku$w7>WRa?wy4y!K5)D*epTol|_& zy{`<{;rtfeqpF%F1^F#`?DeU)BW8*PEb++Y5HydKSwCn}D=+`Burdfe6-K|6{!Vf$ z%P#t=UW}PRBxS05oNbSg#F@GOU2M4I%b9VRn^MgxfE&K8W;m7Ny^@~ zaiVY8$jjQj)JF(m(lj{ZR|gl*E*Ss8q$z2mdkMk>GegVP`M-pkp&N?^2B*RAR$1=t zazL`o^(`=)tg=DuG|$x4C;$YGtuQFhK_g?+)|0@>G804!C4>bZGxs4%^n{@!=LoLMI2)V=|0?pKdwTToqW{<(KSmRr#)*{%amPyLAx?CP z%!|H&`B<^Na@27+n$$c{qdIJQ@gn54aJf38RxMfNSu?d)QSC+8$!F@f!=mmol!@5zB^a(#}*}wa}+|qHNOivQw9}8F6a&kLwM;Thr#_Ao2=W6AsS4&x& z`Pb4WM5Nq+_5TvXpMl(scx3((JG^XMIa_`D(4acAXZa+;Nj-~{G#L+11TWB$X;yh;pRE zglOmYDG;5iziWU4)s-GecYI5nK6R{XFq9bskpNq=Lv6e+Sex;Rk2KEvz?|LJ`$o01k(3x25Bqoe@3V&2Cye^G{{Ykm{78&fBuZS-g9hXU3VVRlakZ8D&o& zlog!Ql_D+Mw)Pxr8#kMZVn^E$uYb7JTi~02YnMsbG`&hZLlW}M<(3jU48Hr$31G}c zCCl=2!*z&ZE5`Y_0I{Gn#_5QZfT6${3pd~rF92d13UE_wn@~@9)d;*}o|{m^F*R%y z1FyFF`iAo=s{6gGkkJ%(6Y=29o_^~zfXb|1+fH6o$dS2P;2viE6XRhY`|xh;AmF4d z4x;7dk0VOCn(Iok5VLp068uq#5q9fG<|F~UPCO;UO4kloPz-|ZI2~;xsOn38E-+4OJvigBoj3%pw49XWsB_9J4S@P3a{VKB>p}^ z@ZOl(nELyW;=j%${>qN((e7PWzBqlumz<-DFXCuWw0f0oly_TSScr1zbjEe|8+=cn z!hQdH7uPqpDOl_JqV433eJ9s9#=7c^5O?e;%m$VOg$31{pDrvFiTx9)me?&-}-*uzl%#Sd=qb&@e< z`6eW=s+twuU1FK{$KonTK3ftI!&FB3q#jgCOFP7)sRIYhMgp!vqAmcQ+ivuVc~MvhO62xunFDcX(29GW zFLPjw>HEfxuW&Da-X&57*=z2SXnKd0CQNqS|MiZzPia(L9%~Jg9Jd8uyP;emQ}sr7D!&JV<*?-Y|C94K>?tJG8wl8s;rM^O(Eq;9|6@+j zxWl~M&68)iYOupy+PP+c?&Z=H8VttWh21sEV%rm6vxbZAg1hO>p1;>@UYY z?avO4=OiEMgIrB8d#OIh%6#8(^_B2EgL1=u+TB{FLQW9KF}szvUrs*~s0>^tohubz zIga5oI0rzKx1O|~IJzvEIWWgTJsc1j37$NR;frk{mQvfUt|}w}BbkUz7B~trqCb96 zf#PVKF|20#3H*u1&flNakH}z|`PlipT93CvzzzGn7Q`Pa!W8>h~Pd>H*W^s?{7I=FEK)NIWb1-k#yYdMxI?C77J)Um&3|6kM9 z>3>W2tN~uF?w-%Hsd>=9am`xhF^!_93CNeDW@29dgSSCYU9k(bdGB42?rvS_$rwNT zWTC(^EA{7K;{QvC5#7HKqlfwq9tQsw0jlsIokPDq6)O_Q1%=&VMS;vIS@oW~d`5*) zC(EJJ5P7WKhvre4QNVam4w64;#Mw>QH>*CFV2&b<&bgYUGqzxucK$ZDIx(l`QB2b``-UAVV`#_ z$G<&`dQ!vS&upDf%O2S=SF<|>)JEaQ`Jt{YK!-8R^3ehmhC19Y1{|5dG4n2>or7=4 z@Ik%4l6l&oqg;VYzWFokRrd@}+^7Lml9o^fr&)TBKT;l^%b(cPehWV5qu+0d{6I;? zWc3R18cehx>=fr-3GsjwJcru8v@B~c!MYP%B}saA&D#@!Ciq`LJ||q()9vn_N?4Gi z0L;L<(SZB#bnW=(l^eUr=B(klJfwd-{y5`9Q^RE4N2eP5GMFS4TV3lG^=#^AgB908 z-Ez>F(=E)eVb9}*BL#WRGrX}_Dk9xo%m8dX#=xRxYMB`=-my}dj!_W>8C$@k)IW051o|UuS}U%Jgf`2o&iNlIs*Zd-de0L|s&Zm$s55 z<-=LPSyEZ618R$qh`sjifd#LV1|eSb1djFkIt8Iid}HA+HG4?J-sT>_-)~Gn>TEXN zD<~3!D|)L(WTl9_vq6FgL`oOt?#6;$|MoPLijKD(0i9^WX8JRt_;eZLVV5O2q^FZA z(QmSgx4zD+_QXdc-j~~MgS-ZZso0Ny$N{vk%9$_rGS^RZoA+mQbA4U#>=8>_A^u%8 z%{l%heviDK@*MRhx_fh2g#haNuZKBqHOcj!(7Ewx;khk?!I^_tse9P(bWa(u>{uQ8 zPAy$kr0h*s{L4@suxveQF5)Qi#C?Dt9GCoW1ffEGENY!VXDd%py|Mf8d-yw}k$d=T zkYVSwLaf>6qgxON#x>lE9u?#9@3D<{YCa< z|8Hc^R8*n~W*NOklHt#ZUCKlY^Q^_;GlNxWC8Hv+@4h@a4C?Q`JkYQPtKt*nB6{4M zz)@yAk}#rAuA^zLk_N*YiPQ)d!~ozf^EvNe^pJH{v=BlvX%i-ecvC3;S!7%%x_R@`p#Iy zvvVY4v9YLqHI==^*%NimbQ=~{&Tmm5CIV%C#fLp>A2-{d5#N&hld|PbTs+%IZyfp{ zRA!CELB0`2S)@K3mIp2ne6(dn3!EP^JfNTdO(tj{t>mNtZ!X1LM>X6frY)4OZgHMm zDJ3^RK^KpSz)S9~Z6q8$X;LK9#41`xt{wpX5AF|+R-~UAK7S-H^3M4~5fX?go9$nf z>BSRVmFY4Mxbw%@d0ShCzkGRLP1a9*T_|u>;s9MO8XZZu{fX-|nOC_CkwB=C>3qa8f|;hTT*eT)pYpg0%5IA)|dVWDpVq&&8m*}uZ! z8#Fd%nqM4@5~1MRze4>RH1=QluR^wR%)c9e-k`C6>#5*8{N1YF4&lS!jo+ZL?^;3c z$fuZTsW3dT!#Dg{!Hu>g%tB+}1bFFqf^OsKLsqe7u;^$K5fU!>1kDFmg)6vWk2i1%r9F!sErspOUSLQ6v6E zdj5;)3{KXs3YBUf1cL3gM$zxe6`@8z?`0};UILB}!2y5KKmSq{Bd01x&6up6g8{IY zmdCk&0CY6|*p?(`FL#LPR}dqA!$+aAi-8^fqZ}hWtD1SiL2E!*x46$;B*{?|BOqz9 zhuU8J+<<<#YRx|e4#w>g+yZ|v?)HXHu%sO$ziQEZT$1s^BXT#F9`?pD~{Rv>NH8p z;Fb!d-3&Oec`&fXl3Vz{Ih_AN?7S5YK>VLbpBA>*aR06FjR5v{OCHKMROerHZ($_9 z{M7C8`)HvF_I`nbw1kuXi}Se|-Ave<#2}7f_#6aSB^k$eGj8SCG_7} zTf8%`D2?a4pZ~o31#1}}Sa*6bWe*bp)8|kT)-uX}JJLBE}Aqw^yO8ZcI0nrw}PHjKys3$j7#gw?4Lx>z3+~%JNNz zAIO*EM5#QY!rC^1F*;xry?>opYx8LewS4S&4GWrhAv$bC2Kwbqh)1WhODoTdzeO+` zYW0d9n54`3ITtH{KoPot_2|>tC)9`!?GGMDGxmJ2$V3%(PP3N*p_EqiDt2D;q!peF7DSngB%%{8m2yD!JN>L1|1^X$Lcqee12$OfG2D!f zyUI$-7}Zk&GS!c#aCEN<5$Vx6D8=xQeqyGyTqwAZ(8!qA#sjkAmeB0$Z2LWrk99Fo zhw)Yd;9$#NZKm^ISv>6(JH4*uCF=5;$knefXQf&ChAW$o zUjMW*>+-8Vg&r9d!e|8E_@cO9fV9E+mJ=3BGV&^E?edPcg+jEi{t%hV&wV|WI(8@7 z9@+Vszr0y$J}8sQhfqQy>JQmKX>FyB<@9@9!CI^2o2Js&UQ><2!==Pw(f-CXx<91^ zUWKWAwsF~UX6R!@N@hx_q9)1`>KW}W*N?!$+m_0+ zjh@k<-`3nn(_s^p4mhL}mFM{V^6^=X6;o;w-1s2*k(7}Y+S024OIr!Kl)Rj1+F!$NOWBBit>WkAq725?t+3+)rc0GTLrD$! z@JM=w+Xnt%wtv!mQi_trhh3&w!N#V>ByL}l+;(*dUJx`gvFa59avlQB10v?euqGyh=^8KFE4U%1to90%hJ2t-%B-9Fg2RvzaewX5i-+pDGc(bIbV;i8b z8lBOA;`I}23Qxye_)GK_$4U4Nsu8j#z8ZMfq&v`d`F@YuH>TPn(EZrijE$=ACjIJzI)L;-8JlicQ( z6dO6elDR#}-Z#u{_F=UI2T@caBrvgE}_8yhY4)&&_dP*!nc}oL;j(X2=z(7LeCk z&WvBrNrPJd5R!I;7IBe)vaD5Tn2OWT<*;@WM6+1;F?~&U1}8#l@doluis>n0dy|^L zE#3X4Y#6TeW^n$JejXyQws#k?sTwTbVk=~BKbH|cFE}rx$d7Gcpvn67l_St=qyJ$o zu)tb$q-4cHlU1v9SC!{ADjOWS+@_yux}3EcLYI6lv*sbkjfi`}oA`#(=X-5+)KxG& z?3h1eq-xxm8j=5^hy)sfS_*}uZWzT)nl&H7ab`MU&T zytl@ylN1eE6&@kib6TQ+Ot-aMBWr+xEmI42w`E1VL+A6@jITCzRwrLOC+FH@;q-6a z3>9r^FY@h`uCb;4I$yW)krMLUa!jcFvhq@?_%CEmilzmhjxpTzS%AxMr33`Di`zSL ziszzhB5zKe-@QbS>^#hk`5x-4dFKS%N}&*UE2a4yLPV&!0vWS3tQyux(pDGb5E2;9 z0JN39yzCsPot-(uuIi?w)qBQgw?mtsNM$ZJ-4391gC$QR}cvFBvV zEJ38)Iv>_EGTwT%_|kaKgkYuEtC1^M&65y0qB?yMl<;jyfRZEoC(AAi5U7NfFGr=A zWd_V&so6)@mhC9XDFF;^hqhSKyp8}po5lDtpDui=OxEnj+b3L8{tSYwbV}7)(-O?> zZqMOEg8*Hy;Dm3gBma9Xm2bvi+M10r`f6}AfwW=9~0^ZW48WQ<`mRWf(* zEah(h=`gN;X~r|egtPkinr-vWRhZYLAly6NqcCsf60FcbEIzk70R@}(3%3W*Of4zZswvlgXTdN zCcCP~Qg)g=Z8adq(mPkvK|HG8MR3d_v|k<}UMD_qdu@Zvr*ASRE)jb@AnVJu)KMyZ zlcnllVWl*63N7S$)59P{EZ7v2560;$g$3;}qo*$9!#JRP&oFO!Iz zm2E^&VMs1X&#*^L!hUmhRy7Bgh}11bp<(eW6#Y31{eLd(W6r@Sf%v~wDHNTsC`Dmm zCqc3qZ|r7OZ;jC3EfoE9XcJc`da$!I#`o%go$(a9Q;AHJw>TkDj%RRqq?pU&!>yW+-RDn#Lk^yzu9a%mRp&G0P`-HD0zS%A zb7>MxO| zj58(X%Z)d+UMDsF)XG)RDtbMdu4i;+XDiSv?>|`{_c#>OS#n!B?{f3MhTMP7$aIN1 z;r@3C%j~=lltXSErdt4HE+h}xEC8h39eOCJF870|;RQ=f^x_Q;hd)o7W?I{Hbu*Wp zC;Pv)T0zM`v%A_}Y;3r2a+w(YF@+-OMK!P23qA6Cat}XW(~T1< zJ%!o&s4Xosy*2P|*p2I-dv6b3YGIDjXR#z;)+*iv$4lnn!5kH6G*Sz|=_$Lrc?ylP z=^7!KS)`|bMgPU^>h>0hFE82Mv2HZiz({BhMgmhlt%u2(Rb)TmB>5WO@9k+IjC&x- z-;B^_Ywt{C^C5b=c@=08gtqCP3{cHIix{;&01JFlN>x3*zCGTzX4ByMcm_Q$>hJgN zPZVRSUrP-;xa1A-*T!Sc~lOb=#$&en2 z&5X#F%W!a|>sG^-kEb$kDQ$OU+h{%rNS)iU1L2&%ao1=G(62tZ7t{H$ucvR1FN|`u ziwgx55x7YA_qyT^t90N}iv$g1Uf1y8vcD$WsdTd)c7C2NXg$-1vKzT%;4N$3F5oy_ zTMl(6?_SlqNC-*}{8j0{a5)KMs82y2dRhXEl>|DLhAC3f>rrqJ8oNG|o`XEqYg zyPIOi{u;{(%4D722I~Z;z6}X6a(a_(jYjGL1|v>^-)>Hqx0w(HS)wUxC90fCWhPEO z7%##wYl>~sf#?}TwG5u9Q!lvFh@X`jJj&1%W(+(iUU8n&Uh_tkjZ@eRCgL|`rJ(sB z){V-iuqqT*ICbNVt>Rwp6ozkjk^IlWnz&Ql>9^sqN{_*xaXQFn3m&WMRmF%cP0g&laZ9E<&jVDx2-C zcxwnf6xJSR$v5WiQNiU>1y-4F;dyxiG>hPfon?e%Z8D!k$3BXd`Ccq^KA+t@+CWX2 zQk=;I5r-ik=iAG?G(C;D3FSVmp4~awBB2L4Q!OcwJlcCUh1xwYrY@QA7mT6s_I?c$ zEM|MeFLn8RZ}$a$ZZN_wbTfRo_F3t= zT1h^bx%gMFW&Rgec1sUKpR;y4)VIMcRc@}+xGka%#@r@@2ZEyMu18-KIPF+bhVUa3 ziY3!M!hoFEUP*RGdwgCl^&-iG&Ripz$FKfd)e5vG=&!)5H5Vp@9R(zYK1j*S0|e%L z&x_9Ttg=y}N4;hFY7(Q|^;K_zO{R332jayNZvW;lk3;UnR&i}w#^LP5v`X}-S7WXW zigjH(J>m)x1-A+--}~Lz@9FeY%bx6XCycQY{ZbCaf|(Z-YbL+Z(z)Ck|Cs977G0bK zivWxK7}~l-u!azHL>+C%?*kgAcw$R3($SlQ3Yx0uK+2=0V_&IeQ zp100aZ`$gn__wXIxnxIfTz89+sq+@yKON%aZj|d1*xq~WU+87nbRqG$J?QyX~|PQA-`bi8}KBUIYIRZuEb8MjVSt_i-a>ZO$~ zc7K@r`RVsI`FKZH&gKXl<4)6JTl|a3#ezL;|spHSEn)Uxn(uE})?`gGF#YB9o6!+cY{}Q13q2>d$KQa=(T?o|s zZ^F<0!}UWLm>ovm2jP!z9rz(9KyJ~nKleI;-tNK$>AhFKUZ`NCZBGkt=#aV%i>`&P z!8et^ZbTdZeK^`57->Z{Dw91O4@7|&Yub^S$PX&y{n?wMxq(T(Wdd-$ms)odrZ9kL zbX4ffP2JeUWM_y&>|X4J7$Z9GF(obh`*7EKlFioKh`d8B)+1}>8Xw3|yKk^PI|agK zb=SBe>NU5^eamx!YDGonV*nL_efWy+Azk|Qs_;-zxTS>Z-| z9|QMneAnYX@)2kXK5U>zQF-aMimi-(qM`x+W zJ}Mf4_T7`{725>z0DAp2U^>?Se8}dq@`QqqOM2`Z91{F?&kN1zm?Cst??!N~h|0qx zM>=1w+-h@?Cj;{!#`f|wm-TM*Eoj?Q^O_B7K~Z<=a=ecvga_HfnfNxr&3qVWFGFh? zT0kzPuOarFjQMFikf}SvfcI?BQOM-VjfriJGZqz5)J}2CfJEGR(8OU^=XTs=W#x7W zevkOCIj3njzK5ivY4f=!2_j~Pc&{^eoCEf$WMf+E5WLFq(RpL-F2CC+PUuU&`3uto z`z0pQ4#vLc3sZdV#*nRjM8`?!-V{47-7PsZ6x*<8Z}I4qgzO_&@xHJe{pN*5(PEa6~VPZsq==(Bbyp?6YhPD znc#*F`31m$97YiNp6KFSX(O4h?ha%D>8*dsnaekzU3$Gf>f0k;>qlA@neYAivTi?| z7Q&7Z`-ZGf+1-wz47-_jxaA@wM|f4I)fy8a`>t3evkz4fb{PB;R)9mPZDTE~$ze68 z;?rOU#4g)rqd(IE5rvR!P!7C6OJdHO0UgBdj%H%bh(B2wL5_Si#b-(MOMjacb@eLpuxGZ#zla5W^RdRYGiDSHMa&y*L!Zzj6 zc$)wP*8-rIpA>?I*@%k61PrI`23FxA#_M{-22)2*G`;d;q$^7&cdN=_MCUC1bsqNQ zIK!7VhwH3!eFn5!UG|Xk$5)sq8r|q#UD7r_MHM+0vW66@J}!+sHfpVLT9*430Y~9P z0D-<0Y1J2>q3dTxwZEC-UjI`ae zDhB0F%-@K(6<8J=h6xv@c%7Ei-6XizJHdHcE!f*oZ0y$q!CUWS!eY5M#DBsWY7bb%K z5?<-8;z5|ZUgHMqk%+liu@k!JofP_2$@J~bTI$n%-x#wqMURIQsA6@A!?NM||6uK{ zqrz&QZ9ycs1cF3bKlIYx8|?I z>8|dEm7MDCy{mRHg()uUGVIkb?_G-bDD0b7^eW&~VX!n4_8=&#e3@SMn7J3O%f9Hc zDhl6C<0xFY@p&B2EpaYhHYN1>T1+}|MB2xlXEN@R>4+}e%Fe64aB$sQ{!nmg?VEw} zwaTf)cD?2~hU&xoH_-hw{RK=9rqYMEGR7L1tNk_P>O{?Ns2bl`+QO*Y!r;_}rNw=* zSmZP$O{p92xCw<;K3EJ$IY9@W7qmm*_s@pPB%njS)V8hze$d{(t)+X=H_t$7;I5lQziUr@6UIU+guxN;5%-2xEf*!?c6>=~&}H*iZzCY1m?7~hkpd0%-& z`)uJxVC76efyd1FCJXeOCjLeGwphe+f9w%J#R)DK$oRA>;ypm>4D@PVd}BvTTgJ<6jc0c$?z^GosABji_2G^3b-GG? z&8o~G`Q<}xacy0)yWa2;vmSh`ZTB2!-@rN~la_@e1W}Cym99M% z*%I}1G9ecku5jyz?cvOgW>qjHes%fsBDcG{tGlh$vGN%(Ch$xb>r+*d8{AQNL3En*vRh#2)8>I!H8V40o4`{A(9HsKgf3ZhZ+y*4c?C_8W*b;V@- zlj497_E~IlO@d}nf{#P(tYaJ_R%UMdv)0pA_HFA@G0e~eiisV!2ciFfIAh&8ZiZ6& zB@dy_^y8^m>|@k*_XiB|R083b%>g4__196*DvLf)Kq#w-Ax&6!7$;j zhl^rmHA|PE%5AOaq1h0z6-32iJdS$$mf^99DG$0;Ky8fkP8!GPJ8M!_HWu~8og$8M zhecr7snxk@mvEAGJ%5tu&LPH88D5PfY(SwcLkm!WYAD>YDd$&}7k6R$=w%F!QJ zP9O!CD9ji;X{?^awxB$(bFVFU6zX8x)R+Gbmuw ztoN@6S3pf)B0?%$mCi_yES0PR4oX@D2~K%OmO#)!-`anBU--%GoSrm#j6f!4u!v{V zh)YgxF<$DFu$@#rc~RXwKO@=Ma&B|j=~pAX-Cjzqh}`00E3v&@bAUGzC?ObsHwrab za!*ENEQ_C05ycITqr}j{YOt)2eGnQF1%Wbeskf>eu`;}-%6+iN%SQkwv}Bb>t!qQE z@g;&rK_VfLPZULb2#A^go;E)AkUlY&5{cT z*%0P`67uuONu7)Rkvw1(M*~e~%F(}h&F!=-9jya>Rc!Bqg{4fCXZadEuinwQ$q+?0Ezrd* zgr}RgSt;DVII@znZyRO*E}8Eba9`w=bH6h9In&HFbuhIVMc+e*JvfmE=GafQ&9SF& zVE)8DXHnBh{FAoCxn^FigUpqvO7(}hwh_VIM<17;YZAjnM)gfq>N zJcZ{rU+fld1McT%N{-V^4e@;{i;qX(-a|>#K32pYzL!tTu=cdzd%Tofj9ad`wA{;} zQIi_9HE9d09rIh8auVt6hQvEQZ9Ad( z^D=g$zS|~eMj8fxH9)>0+L1WhT4itSC7xSRuBo_k2hMFS3HiNDCDjo^O~!SjYO{|| zS9eWau#X08zB(2-i+e!+G7nNJW-5vV)L;5>zNWD-di70-UB|GfFT^;<=}SfO(4 z=%xWF0R$e2rkH^bZaa>m4w<`dint!I6$NYR`@;BJWMs^Bm>%}S4c{e)^c3$XW-STs z-Ir}Iv!MAdeRjde3-m7cycFsU<)Bj@vo22BGquyu-3cQFD-_?PeEr}al@(;8{VsGW zecc9yPK;O|F&|A|j^rW$JjOQTzU$IT25jQXA}GuOQWOCJAFr=>O_sO8K01}3w8HjY zL?`EHa$i*IB+!q(Q0@J-?%6$pkC%PUyT+dP#G3aVoMl3j3_qpf{TEa2Tnzi`E0fbj z>zzA=yjUph)0Ysx@po_Uq0y+{6Xi_f)6?l4%?ji<_XJA5ELcca;7dxs?J*!I2u$;Q zc$+M#m(cw&F!^iqQYEF#az*~qUYho-66IWpH!6HRZd8&_3B*U1peL-F19x{mq?im{ zQ9Tl(u+J85>`ciwk5%{XnlrHCUg3t$I`0!8+nOvNhb2}=PBhaH)ORo{R=r%8&wOPO ztsb9QT<}}jA0FEeAXDW@Bg8cursxVHtcn}6{Tj4Y;STq>r8&M#4|GZ*q(i3F+cLhf zv}3Nc&#gFaLH+{{W&(Kzc8jm*n7G-Aog!f=eM~92p@wvUYTX!Ef54(2e9W?iR z-X1xQayxA|Co!eT*c&}Wxz8CuSHYtsju2@|;t4>DBOGD{XwXN_xs_2Q&S|;`7-?%9 zUhPUhpf=bRYK^Y+!BI5Hc-#~o+a47!^5?tSE#0LwR;!rGj$dw$4me{*3fv7Q>gV;J zHrR331%mHnosm7Vw7p zXvHvPjXOkAiA1m@s8pUB2YF0^u-8E=U;+JZvIEBN)9Jbt71MxzJkfKXrr^_vjR&LUbk00JYJe#~N)g38h+|^p7r}|O3)x?i|?|5W`1(lU@ zhdNI@+cZ@`LlF;WH0O&&otx6*|2fPd{H($tc3}`B&dF*977S0_feB0ZlbA$cXFdBp0a+FK!+YH&* ze3(6!V^1;KQe$UdYJ+RaP$FIO1EYrQ`MQryq4&#TR}0xXM46DD z@9S67J$cAdxKVFNVFi6vS{bRnhc0rDD!TrYCzq z3NGNT|A@FJLS7~D*b~Z{O!c^!a?{ksxuVvmYyG8cm)*OzJTJDIzcZCTS~QY=5&U(# z&~tgIxH}$8EkE3?r&j9mTzq>2uq0&`KJVhqJ})F8$ac zPacXfO7!8lsLNnYV}WW#&bTpFfz|V*lZb|Wutk0KQsXnvr)TzQTjetyniCIF1|jY% z5Cw}4)W{WDhQUBo(_;F-!$4Ds)`&QNPp1cuuR|79zd}FfoWpPE9g^96Y8?yB$}U!je(ju`JhW(;M?!zv#N7b(d`-~qF|P~G}D)T zXA-90P2kN6kT7wIAZ^e&k!ICuvSEjrIP6&JYp~=oCa)zCr7l8Fa?PH@Z#4%qw*28^ zmR-Cc0P+DR?Z(b=g-!J8zTc}O@;%SvcCHNQQd^KQH=al(_5@Z3pVg+m7zR)@E}_afSQ3}qI;ug;{!Y!H(eP z(b0T=@i-g&DN;nTHks}-+?2#w1;jZMkndqiNG4<4hBe+<%GRZ3487OjOxgwwAD zZR8f;+}*`9u|(`_&ZcwL$HVh-Mzo-L>>J!`(}R7M^Kk3P93ttjkbjoF)Pn`7??mnG zt^%$#2hPNP3_uJMBGe+bxR6BiPgzYNO{0?7r=ZQG4-9qnJj${7EIM#sjDv!V>T%0lL zoslQCNw$-7d3c*B!F}4s=StWann+{rv8YO z{lmfUDd+o>jSSM?zk4gT{Fum&FSDxUFxsZcW#kA^AamYGOwMEA(9@bR)iZSe^t^F6 z@$6_QMFEYAn2Bol!MCZ#!Q_^ToSInS7-1Ux7O+E1=9=n}*h5WRB02_&L zP6qbfs#}-O@=!~mIFVcQIrwt4naoy{+}M-CEeqdRty|r_=)KhxPM@D{ZuoI3f7CQ< z&*e~i+px3n6TaVV-3yUoV$P4XjUiqR)b-YVMaMc;+@YouI4R{be_co76m#=fitz~w zH5izi;Sr+5@%)+kKwVC7whJF~;;_slS27O7Tk*vR#q2K8apaTZDgAR2$nxja3S{QF2l)TBI;# zTQT1ZgK&ld<9o&oGbiN`DvFNH z=ZDuoETY~|$^>ZQEGT^Cd)V4sMUh*wo&|&C=P(9!1Byur?q0_@y+s&&QEZ-EAceox zMG8|NkP0i#@tn}7+B@@vTd^MR(Kk1S7+ZN$lYKXlUtsvQ&yzzzSzY6-v^|i(brsQ< zRbIOW@5XloZ-yIFto?-SWFaDx%+#Y7Od!j%*^)T3X8$2Ytm17y$deCGkcRDzeF4?l z8&68FUd#UWmOZSavDhKYo+~7ImHU>Vz_sg~jU#geL5-H7amP?L!@A4L%#RoJhce}j z=^~fz_432+y(JHCVk&u3_0=QMU zdcAPy%(tbvt<)^u8o5t6qsr##1`D)4tJX9DvmQt+mPsuSIJKbws8uePkfzH(hSph< zO0?&EP}iS9*e^HLf;^bA5_I4FeZL6ED~a-;!mp{WGB(wFmbsYVnSK=h)yG~z>b0_b zn0YPo++i*CGEv8J+Jar(MC7$*Eq~+aYbiE_aos(qT^)HV7!C0K60ac*=JAy z<>@)2O!>X$2%)SgFKBv}`{9hXrX8(~Bd#pm!z?R(#;Ziyt16$3D->mEnYd0A)skp= zb{-MRN6Ur}hYq5a@>I;QSM{3%GWnze*y_1DEfk>jzDU}K zG*AcE_^*d7Jci|^_Nwd{f1|o!C@nsuSu+OV(Fbadj)8bWo-$-?8yndB>)5jLd-+zW ziVL#}T6hcDz%X>!bET`p6JpqDu$;0FdtYCmqA5h@ohW6{d)8lZ_I%}pI7jVQAdvCl zG;DSWx$yqU*)QlH$2Uclwb*1x*Cl{BYaIR4FnCaKGTfLv-{;KJkX)xeqewNXh&LZB z8Pp&xLChyAFggEose*DsA(EfoGCH{ea>5?F5=y+H{AXG)KV-}>yuVL}8y9X0 z$j#AY(h+-gI(R*hzEYSzixJG4bMCHy&ZH{@8&dbHKxOdZbA@4QKwE8pHLoXR@jI-} z9pb^sl~R5<@k1|o4IX#ej9P{3va9jJ)@ zr~ma87{Y9h@z>0am;a-W6aBTd38?V%YVIpTuHFLQF|lm`_1Toj z4D7qTWlKOF&I1G`o;8N5I8z?g8WTvxIJP!X+%duaN|DvbvEA4nHY6R@H*?8U%w6oU zpz=z{g%7QCK+cIj6eDB}Z&KnJrR4eodjdM0g$Qj(hzq)k#I5>;mJZJ~#Z5$MU_sOa z@?q7;>y+P#t|6)@{wc;XTqWVCnJ3x-LEGqhc8W6 zb29(f;_JPD_ITQvncnH`ijeBJ0 z#06xQ)t8?j3JNGH<-%LW*+C1Br$6)yS|Kqd3W~FyvxC=2?LC3Nm3UZV7TgeHnI#X{ z8o6ZAisIX+^1Y-cS~e#CP)nm`bmIuWAS(vRuRGI-PZCg%`&sywT$gsxPe}KKmjb(i zKfQRfGG#g=(FNK8Ag|mKCio*AEkDN|9iMhK?oAUvJqA}E(Trq8gFJ`5!cGXd2@Ol?qL{A|GC zepK$kmM{b9dl_dyw@!W7*msaj&|CNpV<3a>6zdKvrO(*l3*gk4`Mvn7RAB+9X6AkV z%MhY(x3Z0_${eV+5IY@>Lkc6N|>sKUD@R2lZP8J{Z;~Zx6 zCqPRd$|#iOFA{8$LhwZ<{{P3PiA~$pBb1!RpG37-cTiBRtnh-WE;QtWP-->F!Ty&k z`|GLzXCosB^~WFmr@OPX!G`;n_cN__1pVu_RI0%L_{1{i^S{&7S%Lobcp6{se>=n5 z-0Yqq5K2pFN5CIulYmIf_L_hGv8TPx^!#K66v*oZsQ`5jpEjnSI}N<& zO{vhwCl~=Y^{n^V2HZq7e%HpLPs#}k*CLp+<75mNr`uh=mbWoDC(hbD$QYzEb4N93 z2EyqfApG&K28&ml<{neZKmEU7fgvLc5P!_BwFeMS{}?UwL;aa%xd{RUm}e{~B$eyuy?8Uy>$8Uua94;nU{EFMBNN(ds{4@};%^hVx7 z-wCMe{iP%whS&~h!57996eW8cXm!R2Ww5NcWC)`Qcr(CUV1JQC61~7%%$z_+@zu6U~zIXT1=l#Xm~(;;m@<_fin}$&t_*h)`-0f6Oztbf99)xoe{jc zOQvqu=i&Q+29&mYff7)oJ2Ioh%si2+lidBr#Q>$-K_}4_mbG|vYwK^oSE{K1l0d!u z3F2R${GUS#Y4+c*{r3szpYI(gY4|UvQKQxj^2aGGQ_TN0QpUOadoI$b2l;yp0`ee# zI|_IC@eM=3Gmrx3BOEyt?>zHOrX;H)4DHQGr^Q}#TD((i?^zRs3S@C7B!?5ldZU}h z9eV^n&eCqMCP*O57Dr1Tp+?A6KTeJc_N_@oGgB?J1+ww_2R*lZ>^yWO9{LX&+ay|vlGg)2-rM3YCzt0J;U;PWHzbE)v%+C|TF+NljGy3(0_cZe7PeuYf z9}*gM0P9<8NJH^|>|dhz+XqarEK?aQILP(b^F#3zp({D@!wk+H`7|_b$6eoh(=AkR zuGKyfj(}TL^hyUkQan|>oMfgBf(PC6AS6Tn0*!*INq}1FJ=?9mwEW(N@y;0`rzWjzLe`1%NZ9U_*h; zun!EI9f$cY!#W{X7KbJoHB}fcTcO>QX)CnwZnhSoi@7DqF7L!3I zopN+5$~Y*vU|8TOj%w##bazE1D1I8~XU9f2srfOqUyg=>MRLUfRWD1&~7 z^;QBY1^bK!QsVZ3{of6*HfEuds(<_c4oR(r`(rlU8iNN?^4kcg@A_w&S_e3g*SSDc zmw^JWuPbztQelIGlt>LCdQS^aabg0iOKF>*RBgXWh9s=Hr#6p1EMTUq=8BcuPntW; zjnll*q%J~oJ<^(yV8JeL8)9F&rZz{cL7Ou~XfD-Fbl|4^oXB)oHR`5OH>BQ!&}xv# z6e|h6Xj4e-5E|v+sAf%4yOwmyB|$Y@R)CHw4<|}RQ0qMf_WA>P0eaFV{X5*gcPL^( zMcH-4_H7SE5FYNf4fsVpsgW8oRFeN;O;B5ypsljOn@tT3&y7V&;jP2qgdA>(BOUQ*Jx%%q&iD+;%VRKG{nk$y`p(9S?0qvo_ z4fBUD3;I9z1TWdj%q)6?7HQlfjdCGPU$)tK>gf!zcc9|-Z92gnGl|ryzzI4Ex+Vd- zq3#_^i1pNo7XlnTs4z@`BnZ8ahs)wOs}ogeS6i3+v&&z_c3fiJz3%MP;Rp9ZKB%{X!nV=M~h`k126RoNFSh|x$FwdH*r-jKb` z<%~M#9Rz><;UW4wDfck_l@1icJpT@hPfj$q6({0vJbZ0l)EC@(6$h2z`q%b#P&Fx8 zq;CAtP+rqfW5S+mK#5(%<+8L3?P`4->5}UpIE5y`mQNg%{CiOsg01<)xWGiq{c){X z$5^H2AhxCXBMc34PMo(Kan}r6mCr7dtDgsRHlSuo@;E)$26=LbSK>_aui+iN_mfhX zE5&AK8t3y6d$krXR1;B*7Q4qArH<~ihQd52PC~PWHXvuQn3^W|_6_)xw1z5|$_=r~ zYm#>6(3d@Tt2FnqCTfU(EPcUR$@+;_uyT`6X+`W;B|b&&5cM^w$tv#1iWYudexNAW zUdy@Rr-=BU=smfmXeaWDOq+zKjD5f4^?_7 zWm(*a$4TiUF1C?J*<-v3QI`u^H!hRiW|H=89+xe?JhY(JF_9*%dKSgLt%UcWJ0xDG z55u0?-%BVE!a>Zw9d4HoEKZsgC*w0a3Rk^@ZWfQUgd*0qg+ll9Jn=9-W5@sC#+BAW%!--mkQsFZuZwodg6;pB+NHGc=yqa*x%~p_6Ixch_rkE4GI%+^SW9QBMr| z=B^=6I{qyQ9S89!W1?P6V^MW~H@EgMP2{1`4jBU&BYZf%W4Oi>-K{nku!1YU;>IPj z4|JmLglEey-73VUyIF%Po*&!1@Smee+B!9c?m~E;=U@6WSl$~Eg#6TJhW=B<9TP<2V;ydt)+D#a^fwomOwRWj_bHEtJ6DFr=RPQ5PpmEu+*duCMVIE$xWyz^Q^w+} z2RYL93htUK!=*+{Zt_J$45Y5#4Ty|Wq8(gChbs)6 zZ{>G3_nJ#a=MzgNLq~Z=x!sRZGurH~U6KdI0@*9rhg{R~Q*Iufdgc=^MpJp%hZfnb zhSSF9GTNsRjp75usp$BLBXy&~;Y~#?^v5RsO_j6?qbZjAQIbgysG7WBUr2Tv9mkaM z#a6>zH=Sw2uqj(qH&GdwI!J{?z2G+%pCe_pq$R3JtIeq94#gQ~XGm1C^He6Z*@l;y zWI~mS5jL^r1g`iIb6)Y+_?C#cZ@Lu1MUENS8?6wd716NyLDTgzj%X?SG0cr22smWn z3YHos^J4iUc0`+P4RW1(!ozuOBU~JlR}PeM{+A=k1rC#nbVJ=AkK%CZZ;K(-#xPx^ z$DMz^hQArcCM$E$;1#1Ij=41(eM!=^OKTA{*t-{0Dw@*DVKBTu^!%N3SMWCMw0g3BWI*o(Zf5mM7Eeyisl|AF=8QU(WN5Yj|X+>(OQz+Q)yH?p;vh`z}TTv|5$z z+jXsoI*nnnYLAmA3n4Qv+mR#A?49O#y=^-w2RF7&+PJoy?ey{1)$dIE>4qG2y6i

ujiWn!2}h3Hl9F95lR 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 z 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

45ped7LKYU4ZCT1d>PEa1G;I!`5z{ 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%0A||0?bSY5aKaKKaUnN({>I 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