diff --git a/_meta/fields.common.yml b/_meta/fields.common.yml index e752b88f7c6..c252705587c 100644 --- a/_meta/fields.common.yml +++ b/_meta/fields.common.yml @@ -777,3 +777,17 @@ description: Cloud region name example: us-east1 overwrite: true + + - name: event + type: group + fields: + + - name: outcome + level: core + type: keyword + ignore_above: 1024 + description: > + `event.outcome` simply denotes whether the event represents a success or a + failure from the perspective of the entity that produced the event. + example: success + overwrite: true diff --git a/beater/test_approved_es_documents/TestPublishIntegrationEvents.approved.json b/beater/test_approved_es_documents/TestPublishIntegrationEvents.approved.json index d46e4c8cbdc..9fb07003a19 100644 --- a/beater/test_approved_es_documents/TestPublishIntegrationEvents.approved.json +++ b/beater/test_approved_es_documents/TestPublishIntegrationEvents.approved.json @@ -22,6 +22,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "amd64", "hostname": "node-name", @@ -218,6 +221,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "amd64", "hostname": "node-name", diff --git a/beater/test_approved_es_documents/TestPublishIntegrationMinimalEvents.approved.json b/beater/test_approved_es_documents/TestPublishIntegrationMinimalEvents.approved.json index 2ab00ba12c9..c83dfc0994d 100644 --- a/beater/test_approved_es_documents/TestPublishIntegrationMinimalEvents.approved.json +++ b/beater/test_approved_es_documents/TestPublishIntegrationMinimalEvents.approved.json @@ -15,6 +15,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "ip": "127.0.0.1" }, @@ -69,6 +72,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "ip": "127.0.0.1" }, @@ -123,6 +129,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "ip": "127.0.0.1" }, diff --git a/beater/test_approved_es_documents/TestPublishIntegrationSpans.approved.json b/beater/test_approved_es_documents/TestPublishIntegrationSpans.approved.json index 1fef5fd79cd..f4db82f5249 100644 --- a/beater/test_approved_es_documents/TestPublishIntegrationSpans.approved.json +++ b/beater/test_approved_es_documents/TestPublishIntegrationSpans.approved.json @@ -43,6 +43,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "success" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -172,6 +175,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -302,6 +308,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -436,6 +445,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -572,6 +584,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -780,6 +795,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", diff --git a/beater/test_approved_es_documents/TestPublishIntegrationTransactions.approved.json b/beater/test_approved_es_documents/TestPublishIntegrationTransactions.approved.json index edcdacd5ca7..e6033eebf49 100644 --- a/beater/test_approved_es_documents/TestPublishIntegrationTransactions.approved.json +++ b/beater/test_approved_es_documents/TestPublishIntegrationTransactions.approved.json @@ -38,6 +38,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -170,6 +173,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "success" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -393,6 +399,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -543,6 +552,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", diff --git a/docs/data/elasticsearch/generated/spans.json b/docs/data/elasticsearch/generated/spans.json index 72c858ff774..788cc4795b5 100644 --- a/docs/data/elasticsearch/generated/spans.json +++ b/docs/data/elasticsearch/generated/spans.json @@ -8,6 +8,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "labels": { "span_tag": "something" }, @@ -121,10 +124,13 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "observer": { - "ephemeral_id": "c0cea3b6-97d7-4e15-9e35-c868e7a3c869", - "hostname": "ix.lan", - "id": "a49b4a08-689a-4724-8050-8bd0ae043281", + "ephemeral_id": "2f13d8fa-83cd-4356-8123-aabfb47a1808", + "hostname": "goat", + "id": "17ad47dd-5671-4c89-979f-ef4533565ba2", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -187,10 +193,13 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "observer": { - "ephemeral_id": "c0cea3b6-97d7-4e15-9e35-c868e7a3c869", - "hostname": "ix.lan", - "id": "a49b4a08-689a-4724-8050-8bd0ae043281", + "ephemeral_id": "2f13d8fa-83cd-4356-8123-aabfb47a1808", + "hostname": "goat", + "id": "17ad47dd-5671-4c89-979f-ef4533565ba2", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -237,10 +246,13 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "observer": { - "ephemeral_id": "c0cea3b6-97d7-4e15-9e35-c868e7a3c869", - "hostname": "ix.lan", - "id": "a49b4a08-689a-4724-8050-8bd0ae043281", + "ephemeral_id": "2f13d8fa-83cd-4356-8123-aabfb47a1808", + "hostname": "goat", + "id": "17ad47dd-5671-4c89-979f-ef4533565ba2", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -293,10 +305,13 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "observer": { - "ephemeral_id": "c0cea3b6-97d7-4e15-9e35-c868e7a3c869", - "hostname": "ix.lan", - "id": "a49b4a08-689a-4724-8050-8bd0ae043281", + "ephemeral_id": "2f13d8fa-83cd-4356-8123-aabfb47a1808", + "hostname": "goat", + "id": "17ad47dd-5671-4c89-979f-ef4533565ba2", "type": "apm-server", "version": "8.0.0", "version_major": 8 diff --git a/docs/data/elasticsearch/generated/transactions.json b/docs/data/elasticsearch/generated/transactions.json index 17e67dac12a..024ab9d4273 100644 --- a/docs/data/elasticsearch/generated/transactions.json +++ b/docs/data/elasticsearch/generated/transactions.json @@ -12,7 +12,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-22T14:49:24.899906Z" + "ingested": "2020-08-11T09:55:04.391451Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -107,7 +108,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-22T14:49:24.900309Z" + "ingested": "2020-08-11T09:55:04.391568Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -124,9 +126,9 @@ } }, "observer": { - "ephemeral_id": "f78f6762-2157-4322-95aa-aecd2f486c1a", - "hostname": "ix.lan", - "id": "80b79979-4a7d-450d-b2ce-75c589f7fffd", + "ephemeral_id": "fb037b97-0027-401a-9dc4-17d162f2687f", + "hostname": "goat", + "id": "a4daf4ca-b280-4ede-90df-bf62482cec37", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -202,7 +204,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-22T14:49:24.900644Z" + "ingested": "2020-08-11T09:55:04.391639Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -219,9 +222,9 @@ } }, "observer": { - "ephemeral_id": "f78f6762-2157-4322-95aa-aecd2f486c1a", - "hostname": "ix.lan", - "id": "80b79979-4a7d-450d-b2ce-75c589f7fffd", + "ephemeral_id": "fb037b97-0027-401a-9dc4-17d162f2687f", + "hostname": "goat", + "id": "a4daf4ca-b280-4ede-90df-bf62482cec37", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -309,7 +312,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-22T14:49:24.844687Z" + "ingested": "2020-08-11T09:55:04.338986Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -388,9 +392,9 @@ "organization_uuid": "9f0e9d64-c185-4d21-a6f4-4673ed561ec8" }, "observer": { - "ephemeral_id": "f78f6762-2157-4322-95aa-aecd2f486c1a", - "hostname": "ix.lan", - "id": "80b79979-4a7d-450d-b2ce-75c589f7fffd", + "ephemeral_id": "fb037b97-0027-401a-9dc4-17d162f2687f", + "hostname": "goat", + "id": "a4daf4ca-b280-4ede-90df-bf62482cec37", "type": "apm-server", "version": "8.0.0", "version_major": 8 diff --git a/docs/data/intake-api/generated/rum_v3_events.ndjson b/docs/data/intake-api/generated/rum_v3_events.ndjson index 77d0e6b73a7..88bcbe51df8 100644 --- a/docs/data/intake-api/generated/rum_v3_events.ndjson +++ b/docs/data/intake-api/generated/rum_v3_events.ndjson @@ -1,3 +1,3 @@ {"m": {"se": {"n": "apm-a-rum-test-e2e-general-usecase","ve": "0.0.1","en": "prod","a": {"n": "js-base","ve": "4.8.1"},"ru": {"n": "v8","ve": "8.0"},"la": {"n": "javascript","ve": "6"},"fw": {"n": "angular","ve": "2"}},"u": {"id": 123,"em": "user@email.com","un": "John Doe"},"l": {"testTagKey": "testTagValue"}}} -{"x": {"id": "ec2e280be8345240","tid": "286ac3ad697892c406528f13c82e0ce1","pid": "1ef08ac234fca23b455d9e27c660f1ab","n": "general-usecase-initial-p-load","t": "p-load","d": 295,"me": [{"sa": {"xdc": {"v": 1},"xds": {"v": 295},"xbc": {"v": 1}}},{"y": {"t": "Request"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}},{"y": {"t": "Response"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}}],"y": [{"id": "bbd8bcc3be14d814","n": "Requesting and receiving the document","t": "hard-navigation","su": "browser-timing","s": 4,"d": 2},{"id": "fc546e87a90a774f","n": "Parsing the document, executing sy. scripts","t": "hard-navigation","su": "browser-timing","s": 14,"d": 106},{"id": "fb8f717930697299","n": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js","t": "rc","su": "script","s": 22.53499999642372,"d": 35.060000023804605,"c": {"h": {"url": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED","r": {"ts": 677175,"ebs": 676864,"dbs": 676864}},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "rc"},"ad": "localhost","po": 8000}}},{"id": "9b80535c4403c9fb","n": "OpenTracing y","t": "cu","s": 96.92999999970198,"d": 198.07000000029802},{"id": "5ecb8ee030749715","n": "GET /test/e2e/common/data.json","t": "external","su": "h","sy": true,"s": 98.94000005442649,"d": 6.72499998472631,"c": {"h": {"mt": "GET","url": "http://localhost:8000/test/e2e/common/data.json?test=hamid","sc": 200},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "external"},"ad": "localhost","po": 8000}}},{"id": "27f45fd274f976d4","n": "POST http://localhost:8003/data","t": "external","su": "h","sy": true,"s": 106.52000003028661,"d": 11.584999971091747,"c": {"h": {"mt": "POST","url": "http://localhost:8003/data","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "a3c043330bc2015e","pi": 0,"n": "POST http://localhost:8003/fetch","t": "external","su": "h","ac": "action","sy": false,"s": 119.93500008247793,"d": 15.949999913573265,"c": {"h": {"mt": "POST","url": "http://localhost:8003/fetch","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "bc7665dc25629379","st": [{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "generateError","li": 7662,"co": 9},{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "","li": 7666,"co": 3}],"n": "Fire \"DOMContentLoaded\" event","t": "hard-navigation","su": "browser-timing","s": 120,"d": 2}],"c": {"p": {"rf": "http://localhost:8000/test/e2e/","url": "http://localhost:8000/test/e2e/general-usecase/"},"r": {"sc": 200,"ts": 983,"ebs": 690,"dbs": 690,"he": {"Content-Type": "application/json"}},"q": {"he": {"Accept": "application/json"},"hve": "1.1","mt": "GET"},"u": {"id": "uId","un": "un","em": "em"},"cu": {"testContext": "testContext"},"g": {"testTagKey": "testTagValue"}},"k": {"a": {"lp": 131.03000004775822,"fb": 5,"di": 120,"dc": 138,"ds": 100,"de": 110,"fp": 70.82500003930181},"nt": {"fs": 0,"ls": 0,"le": 0,"cs": 0,"ce": 0,"qs": 4,"rs": 5,"re": 6,"dl": 14,"di": 120,"ds": 120,"de": 122,"dc": 138,"es": 138,"ee": 138}},"yc": {"sd": 8,"dd": 1},"sm": true,"exp":{"cls":1,"fid":2.0,"tbt":3.4,"ignored":5,"also":"ignored"}}} +{"x": {"id": "ec2e280be8345240","tid": "286ac3ad697892c406528f13c82e0ce1","pid": "1ef08ac234fca23b455d9e27c660f1ab","n": "general-usecase-initial-p-load","t": "p-load","d": 295,"me": [{"sa": {"xdc": {"v": 1},"xds": {"v": 295},"xbc": {"v": 1}}},{"y": {"t": "Request"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}},{"y": {"t": "Response"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}}],"y": [{"id": "bbd8bcc3be14d814","n": "Requesting and receiving the document","t": "hard-navigation","su": "browser-timing","s": 4,"d": 2},{"id": "fc546e87a90a774f","n": "Parsing the document, executing sy. scripts","t": "hard-navigation","su": "browser-timing","s": 14,"d": 106},{"id": "fb8f717930697299","n": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js","t": "rc","su": "script","s": 22.53499999642372,"d": 35.060000023804605,"c": {"h": {"url": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED","r": {"ts": 677175,"ebs": 676864,"dbs": 676864}},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "rc"},"ad": "localhost","po": 8000}}},{"id": "9b80535c4403c9fb","n": "OpenTracing y","t": "cu","s": 96.92999999970198,"d": 198.07000000029802},{"id": "5ecb8ee030749715","n": "GET /test/e2e/common/data.json","t": "external","su": "h","sy": true,"s": 98.94000005442649,"d": 6.72499998472631,"c": {"h": {"mt": "GET","url": "http://localhost:8000/test/e2e/common/data.json?test=hamid","sc": 200},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "external"},"ad": "localhost","po": 8000}}},{"id": "27f45fd274f976d4","n": "POST http://localhost:8003/data","t": "external","su": "h","sy": true,"s": 106.52000003028661,"d": 11.584999971091747,"c": {"h": {"mt": "POST","url": "http://localhost:8003/data","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "a3c043330bc2015e","pi": 0,"n": "POST http://localhost:8003/fetch","t": "external","su": "h","ac": "action","sy": false,"s": 119.93500008247793,"d": 15.949999913573265,"c": {"h": {"mt": "POST","url": "http://localhost:8003/fetch","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "bc7665dc25629379","st": [{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "generateError","li": 7662,"co": 9},{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "","li": 7666,"co": 3}],"n": "Fire \"DOMContentLoaded\" event","t": "hard-navigation","su": "browser-timing","s": 120,"d": 2,"o":"success"}],"c": {"p": {"rf": "http://localhost:8000/test/e2e/","url": "http://localhost:8000/test/e2e/general-usecase/"},"r": {"sc": 200,"ts": 983,"ebs": 690,"dbs": 690,"he": {"Content-Type": "application/json"}},"q": {"he": {"Accept": "application/json"},"hve": "1.1","mt": "GET"},"u": {"id": "uId","un": "un","em": "em"},"cu": {"testContext": "testContext"},"g": {"testTagKey": "testTagValue"}},"k": {"a": {"lp": 131.03000004775822,"fb": 5,"di": 120,"dc": 138,"ds": 100,"de": 110,"fp": 70.82500003930181},"nt": {"fs": 0,"ls": 0,"le": 0,"cs": 0,"ce": 0,"qs": 4,"rs": 5,"re": 6,"dl": 14,"di": 120,"ds": 120,"de": 122,"dc": 138,"es": 138,"ee": 138}},"yc": {"sd": 8,"dd": 1},"sm": true,"exp":{"cls":1,"fid":2.0,"tbt":3.4,"ignored":5,"also":"ignored"}}} {"me": {"y": {"t": "Processing","su": "subtype"},"sa": {"ysc": {"v": 1},"yss": {"v": 124}},"g": {"tag1": "value1"}}} diff --git a/docs/fields.asciidoc b/docs/fields.asciidoc index 8617af4fdaa..750fb2b7527 100644 --- a/docs/fields.asciidoc +++ b/docs/fields.asciidoc @@ -1130,6 +1130,19 @@ example: us-east1 -- + +*`event.outcome`*:: ++ +-- +`event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. + + +type: keyword + +example: success + +-- + [[exported-fields-apm-error]] == APM Error fields diff --git a/docs/spec/outcome.json b/docs/spec/outcome.json new file mode 100644 index 00000000000..36231ee8824 --- /dev/null +++ b/docs/spec/outcome.json @@ -0,0 +1,7 @@ +{ + "$id": "docs/spec/outcome.json", + "title": "Outcome", + "type": ["string", "null"], + "enum": [null, "success", "failure", "unknown"], + "description": "The outcome of the transaction: success, failure, or unknown. This is similar to 'result', but has a limited set of permitted values describing the success or failure of the transaction from the service's perspective. This field can be used for calculating error rates." +} diff --git a/docs/spec/spans/rum_v3_span.json b/docs/spec/spans/rum_v3_span.json index 02a0202e537..00f58b7814d 100644 --- a/docs/spec/spans/rum_v3_span.json +++ b/docs/spec/spans/rum_v3_span.json @@ -42,6 +42,10 @@ "description": "The specific kind of event within the sub-type represented by the span (e.g. query, connect)", "maxLength": 1024 }, + "o": { + "$ref": "../outcome.json", + "description": "The outcome of the span: success, failure, or unknown. Outcome may be one of a limited set of permitted values describing the success or failure of the span. This field can be used for calculating error rates for outgoing requests." + }, "c": { "type": [ "object", diff --git a/docs/spec/spans/span.json b/docs/spec/spans/span.json index 568ab4a05f4..fb29c3bcd9a 100644 --- a/docs/spec/spans/span.json +++ b/docs/spec/spans/span.json @@ -47,6 +47,10 @@ "description": "The specific kind of event within the sub-type represented by the span (e.g. query, connect)", "maxLength": 1024 }, + "outcome": { + "$ref": "../outcome.json", + "description": "The outcome of the span: success, failure, or unknown. Outcome may be one of a limited set of permitted values describing the success or failure of the span. This field can be used for calculating error rates for outgoing requests." + }, "context": { "type": ["object", "null"], "description": "Any other arbitrary data captured by the agent, optionally provided by the user", diff --git a/docs/spec/transactions/rum_v3_transaction.json b/docs/spec/transactions/rum_v3_transaction.json index 8d20ffe1b84..0130af11311 100644 --- a/docs/spec/transactions/rum_v3_transaction.json +++ b/docs/spec/transactions/rum_v3_transaction.json @@ -79,6 +79,10 @@ "description": "The result of the transaction. For HTTP-related transactions, this should be the status code formatted like 'HTTP 2xx'.", "maxLength": 1024 }, + "o": { + "$ref": "../outcome.json", + "description": "The outcome of the transaction: success, failure, or unknown. This is similar to 'result', but has a limited set of permitted values describing the success or failure of the transaction from the service's perspective. This field can be used for calculating error rates for incoming requests." + }, "k": { "type": [ "object", diff --git a/docs/spec/transactions/transaction.json b/docs/spec/transactions/transaction.json index 3de85ac0e3b..0654371641f 100644 --- a/docs/spec/transactions/transaction.json +++ b/docs/spec/transactions/transaction.json @@ -52,6 +52,10 @@ "description": "The result of the transaction. For HTTP-related transactions, this should be the status code formatted like 'HTTP 2xx'.", "maxLength": 1024 }, + "outcome": { + "$ref": "../outcome.json", + "description": "The outcome of the transaction: success, failure, or unknown. This is similar to 'result', but has a limited set of permitted values describing the success or failure of the transaction from the service's perspective. This field can be used for calculating error rates for incoming requests." + }, "marks": { "type": ["object", "null"], "description": "A mark captures the timing of a significant event during the lifetime of a transaction. Marks are organized into groups and can be set by the user or the agent.", diff --git a/include/fields.go b/include/fields.go index 0defea3cfc0..917176d54a5 100644 --- a/include/fields.go +++ b/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetBuildFieldsFieldsYml returns asset data. // This is the base64 encoded gzipped contents of build/fields/fields.yml. func AssetBuildFieldsFieldsYml() string { - return "eJzsvXtTHLmSOPr/fApdNuKHOdsUD4ONuXcjfgwwM8TamDH4zJ5Zb9DqKnW3DlVSjaQC92zsd7+hTEmlegCNTfkxy5zdGbq7SkqlUql857+Q3w7enZ6c/vz/kCNJhDSEZdwQM+eaTHnOSMYVS02+GBFuyA3VZMYEU9SwjEwWxMwZOT48J6WS/2SpGf3wL2RCNcuIFPD9NVOaS0G2kt1kM/nhX8hZzqhm5JprbsjcmFLvb2zMuJlXkySVxQbLqTY83WCpJkYSXc1mTBuSzqmYMfjKDjvlLM908sMP6+SKLfYJS/UPhBhucrZvH/iBkIzpVPHScCngK/KTe4e4t/d/IGSdCFqwfbL6fw0vmDa0KFd/IISQnF2zfJ+kUjH4rNgfFVcs2ydGVfiVWZRsn2TU4MfGfKtH1LANOya5mTMBaGLXTBgiFZ9xYdGX/ADvEXJhcc01PJSF99hHo2hq0TxVsqhHGNmJeUrzfEEUKxXTTBguZjCRG7GernfDtKxUysL8J9PoBfyNzKkmQnpocxLQM0LSuKZ5xQDoAEwpyyq307hh3WRTrrSB91tgKZYyfl1DVfKS5VzUcL1zOMf9IlOpCM1zHEEnuE/sIy1Ku+mr25tbL9Y3d9e3n19s7u1v7u4/30n2dp//vhptc04nLNe9G4y7KSeWiuEL/PMSv79iixupsp6NPqy0kYV9YANxUlKudFjDIRVkwkhlj4SRhGYZKZihhIupVAW1g9jv3ZrI+VxWeQbHMJXCUC6IYNpuHYID5Gv/Ochz3ANNqGJEG2kRRbWHNABw7BE0zmR6xdSYUJGR8dWeHjt0dDD53yu0LHOeAnQr+2RlKuX6hKqVEVlh4tp+UyqZVSn8/j8xggumNZ2xOzBs2EfTg8afpCK5nDlEAD24sdzuO3TgT/ZJ9/OIyNLwgv8Z6M7SyTVnN/ZMcEEoPG2/YCpgxU6njapSU1m85XKmyQ03c1kZQkVN9g0YRkSaOVOOfZAUtzaVIqWGiYjyjbRAFISSeVVQsa4YzegkZ0RXRUHVgsjoxMXHsKhyw8s8rF0T9pFre+TnbFFPWEy4YBnhwkgiRXi6vZG/sDyX5Dep8izaIkNnd52AmNL5TEjFLulEXrN9srW5vdPduddcG7se954OpG7ojDCazv0qmzT2nzEJIV1tr/xXTEp0xgRSimPrB+GLmZJVuU+2e+joYs7wzbBL7hg55koJndhNRjY4NTf29FgGauwFN3VbQcXC4pzaU5jn9tyNSMYM/iEVkRPN1LXdHiRXaclsLu1OSUUMvWKaFIzqSrHCPuCGDY+1T6cmXKR5lTHyI6OWD8BaNSnogtBcS6IqYd928yqdwI0GC03+5pbqhtRzyyQnrObHQNkWfspz7WkPkaQqIew5kYggC1u0PuWGvJkzFXPvOS1LZinQLhZOalgqcHaLAOGocSqlEdLYPfeL3ScnOF1qJQE5xUXDubUHcVTDl1hSIE4SmTBqkuj8Hpy9AZnE3ZzNBbkdp2W5YZfCU5aQmjZi7ptJ5lEHbBcEDcKnSC1cE3u/EjNXsprNyR8Vq+z4eqENKzTJ+RUj/06nV3RE3rGMI32USqZMay5mflPc47pK55ZLv5YzbaieE1wHOQd0O5ThQQQiRxQGcaU+Haycs4Ipml9yz3XceWYfDRNZzYs6p/rWc90+S8d+DsIze0SmnCkkH64dIp/xKXAgYFN6LdC1F2rsVaYKEA+8BEdTJbW9/bWhyp6nSWXIGLebZ2PYD7sTDhkR09ijO9Pdzc1pAxHt5Qd29llLfy/4H1a+efi6w31rSRQJG967gYt9wgiQMc9uXV7WWJ799xALdGILnK+YI3R2UBOKTyE7xCtoxq8ZyC1UuNfwaffznOXltMrtIbKH2q0wDGxuJPnJHWjChTZUpE6OafEjbScGpmSJxF2npL5OWUkVnOIwNtdEMJahAnIz5+m8O1U42aks7GRWvo7WfTK1kq/nPLBUZEn+Kzk1TJCcTQ1hRWkW3a2cStnYRbtRQ+zixaK8Y/s8t7MTEG3oQhOa39j/BNxaWVDPPWnitjpxHN+1t3lSo0YEnh2wWj+LJO6mmLD6EbjC+LSx8fWOtQmgsfkFTedWJ+iiOB7H49lpmwOg+u9Oj20iuwXTi2Qz2VxX6XYsxuiGDFMZKWQhK03O4Uq4R545EITWr+AtQp4dnK/hwXTSiQMslUIw0BhPhGFKMEPOlDQylbmD9NnJ2RpRsgJ9sVRsyj8yTSqRMbzIrbCkZG4Hs9xNKlJIxYhg5kaqKyJLq0dKZQUer+SxOc2n9gVK7H2XM0KzgguujT2Z1164smNlskBJjBri9FZcRFFIMSJpzqjKFwH7UxByA7Qy5+kCBMs5s6IvLDBZ+sIUVTEJAs1dV2Uuw63d2Ap3JeA4VhGVKQhXDqLONjl5I3wdCN7tohvo2cH56RqpYPB8Ud84GoXngHo8EyeNdUekt7W79eJVY8FSzajgfwJ7TLrXyOeICaCmXMZYjlid1+9IV+UjIGOpQu+TKc11fSNkbEqr3OCQzR8be/A2WhPM18HDz1JaGnz9+jA6g2nOW7rEYf3NHcrEgXvTHjZPj1Q7AuSG27OApO+3yR1BC95UempzSoJiM6oyEB6tbCiFHkXPo+A44Whu49Jqn9Nc3hDFUqtXNVTXi8MzNyreTDWYHdjsF/bxCDI4gJqJoDLYZ87/cUpKml4x80yvJTALarulYyGdqdCsZEW7xqRe11FgM2PawuGkcY8lo6jQFIBJyLksWJCPK416hmGqICveVibVSq1ZKzb13MqBIloL1Hj03M9OD8SdnbCgB4EeGCHAHUsLlpj5ba6niOFHjdYRkZ/A3l6VrixC3Ki1AsaFBe+flcANAH0MNSxvyewZrMavkKYzpBWscL/W4UR7E1IwPOF4G36eYCqEw4OiGs0yollBheEp8H720Tipjn1EeX2EQpTnCDrIdkaSa26Xy/9ktXJtF8oUKNyam4q67TiZkoWsVJhjSvPcE5+/ESw3nUm1GNlHvVCiDc9zwoRVLx3don3SCi4Z08aSh0WpRdiU53lgaLQslSwVp4bliwcoVjTLFNN6KJ0KqB21aEdbbkIn/wQ2U0z4rJKVzhdIzfBOYJg3Fi1aFgzssiTnGuxWJ2cjQv09KxWh9mL5SLS0dJIQ8o8as05MA8Nhza/njCh642HydD9O3BdjRFlTyhRWCa+FyKxC2yFejeOEl2MLyjhBsMYjkrGSicyJ+SijS1EDASq927Faikr+113gVCdPd3gE1WRhmL5HtI/2Hi08zdcagPxof0DrTvCwuDPpSAJZZ3er9nYagCFhD6B0OB6O4yeNOWdMJik3i8uBDASHVmbv3Z03VkdgNO+CI4XhggkzFEynkbEiTNaB71QqMycHBVM8pT1AVsKoxSXX8jKV2SCowynIyflbYqfoQHh4cCtYQ+2mA6l3Qw+poFkXU8Ae71emZ0xelpKHu6npHJBixk2V4X2dUwMfOhCs/jdZycHVtP7yefJia2fv+eaIrOTUrOyTnd1kd3P31dYe+Z/VDpCPyxNbNkDN1Lq/j6OfUOL36BkRZwNBKUxOyUxRUeVUcbOIL9YFSe0FD2JndIEe+nszWJiQwrlCiSpl9sZwwvc0l1K5i2cEFpU5r0Xb+oZC8HJSzhea2z+8hyP1x1pHIJxKE7lxwX/D0e5QwAU5Y9KvtmuHmUhtpFjP0s7eKDbjUgx50t7BDHcdtPVfD2+Da6Cj5mDqPWm/VmzCmoji5T0whAeaxHlyFoQ0zxHhsogpC42x3pDjXYsnZ9c79ouTs+sXtfDZkrcKmg6AmzcHh7dBTRo2b5O08dJ7rG/BzYVVL1FLOjmzEzmdAQNTTg8uggJOnrFkljhrEs1jQwFBbdMbmhqujXBWIp3TKrVgfhQzkkuakQnNqUjh6E65YjdW5QEdX8nKnugWxu2iS6nMwwRcL+Roo3i/1Btjw47/veADddsHyHuNVZ/h258k3W034ejsyTJC5+37ceb24Dbit9xJG6ZYdtknVz7e9WaVmzmfzZk20aQeRzj3CBZSlizzIOtq4sXRsP8/1T4evKai4ZwuOpUKwkiSGcj2SSqLFcI1WYk+t11PGE7jXEoZM0wVcBWXiqVcW10L7CgUtV9wxEIYUTXJeUp0NZ3yj2FEeObZ3Jhyf2MDH8EnrI61lpALtbCUaiQaDj5ye/Xh9TpZEM2LMl8QQ6/qXUVtOafagF8DY2lQMRfSEFD6bliew9ovXh/Vzt+VVCbV1Ur3Lq2R0SAJI8tL2P4vQBFsOrUH+JrZWZ1M4/bwGbt4fbQ2Qm/OlZA3wlvJGmARh/qRN0cCikpak70bD67ILvG05w3DWjzWGALq+b7JBkjmNoqpN2I52oHvG2RTaaaSYSkm1sjQcC0VmoPt5OijKhiYSeT0No5BBXl9dHAGoRC44qMwVEwqq93VsYLyfKDFWfGfwAReZkm6AEyrPO+RJL9Lw4xd8KomdkkwHSgY9JrynE7yrjB7kE+YMuSYC22YI7EGbsDO+tUIEGYfngJxkYPF4HTjUKYu5grX513lYJHcKHNqrATSQ6gI54DqcrwTOFkXiDnV88G0dcQU8B07j+XJqVSKWdG3EfA1RcM4MChBqJBiEYePohAXkcp7zVwwyxhWwTM0aMMHu7pxCDJMpZjiXtG8MScVmb2SakcO8VHBfUQ1SExTh5SCDgZzdqF4PAX5q7G087mVttGqAsGFXHQXHfE0Cjyt4TmWFS4vOI79F7f7jTHRgCDpBf8CDEXAGTpVNAQf12GV6ADCmCSvTkBkErk1jHJK3jCjeIrhTToOn6KCHB9uY/CUpb4pM+mcaTAqRaMTbrSLXK2BtJTbDLhuRM5yHcJymiC4cVUlXEisYoU0IYiHyMponrFopjZkCBMlLmbTL8gTmKhfdQaxZmw4DloPBMGpbnKv8tlhua5BdQh7iIswBXPtcFx/9aJGEM4FQbmx44RnIdDanegFyfh0ylSssIPZj0N4sb0H7TFcN0xQYQgT11xJUTRtRjVtHfx2Hibn2cg7ZYD+ydt3P5OTDEOhIUigajOXroD64sWLly9f7u3tvXrV8nOhiMFzbhaXf9aewMfG6kE0D7HzWKyg+xFoGo5KfYg6zKHS64xqs77VsuC5+LXhyOHExy2eHHnuBbD6Q9gGlK9vbT/f2X3xcu/VJp2kGZtu9kM8oDgQYI4jTLtQR/ZG+LIbKPloEL3xfCCKmbwTjWY7KVjGq6YyXip5zbOlHNGf7eOCs+YnTPzhjPN+6I0eEfpnpdiIzNJyFA6yVCTjM25oLlNGRfemu9GNZaFRfKBFOZv4Jx63+DqWGbvUfCaovTob97LMGDlv/HL7BX0xZ5q1E0Qa4hrcdBMuqFrApCRMqpcPOcTg8HtEqImUOaOiD20/4k8gydIShAWOcZYOFos+F9XT9akZVbHVMOwt8pIHVRtqqsGCXg6yjLuQti6WgdKZstdGakV1BKUnDr1COdyliczstZ2qRWnkTNFyzlPClJIK87g6o17TnGexR86qUarSxs9HXjN6zUgloqgtPIb+1foVfz7r8cOwN1STSqRzll6xnhj/43fv3r67fH968e79+cXx0eW7t28vlt6jCjMSB3JcnePwDYYdSD/wuzoMgKdKajk15FCqUjbC8O9dCqCRLXNf3nE8Vs+NVAzl03gre7aHpPOmyfrvdk8pRPrVr9/2HqRhYeKdD20ageRq+VitNYIo6uKgpMgXzRysyYIYKXONUWwUzAyQFcPSK5RNkQ47JPOwgwzE+pl47ec7aGKBK6XJga6ZsiJfRujMCuGRNjdnNQ8Vpilp9h432kD+PWdpGcTUFwcweUfG4c6Iv7wjDjg82Iz1dFGYnXzeKMOwZKldjQMyQIFE4Ozjzhsnp/EgUXJ4dFfNWV5GVg1QdNCLF4bWToUSC3uzGh7MVsvcWEMaHurF86wp/PGCzgYVRmOhCiYLIUQIkCW0ScVzY/XAHtAMnQ0EWU1ZDi46a5mZo5T1u6ePUtfvSF5vi+kwq8sDb8w74HbUi66jJIIcijQ7lCCKo5OCCjpD5s91TQgdIQpT5iM+EoUcx5zkqPX1HbwkevTu0HRkuNHTEHaEbvGNZuZ4z5hRNPp9cejIflwc+rcYKN2I814qWjrcMq7axCNFS4dhIWr6KVr6KVr6f3e0dHwwfVCNKy3T3q8vFTIds8KnuOmnuOnHAekpbnp5nD3FTT/FTX9PcdPRJfa9BU83QCfDRFDz0s4W3/T3hA2zRrxwqfg1NYwcvfl9rS9iGE4N6CHfVNA0ROlGxhm3UjDZ1LgxkkwWgIkjBiWGHn+FQ4RBP0Bs+3Kx0LfS8tcOiM46EuVTVPRTVPRTVPRTVPRTVPRTVHSb4J6iop+iop+iop+ior9llvbZUdFZjteL9369fg0f7y7Lu0zEFcSb5HyiqOJMk2whaIFqlEe5pJmvfOyKrIJJxv38hoqFq1IXF2l1JaMkWdFzCkmOjXlWXIFcHz6Lhh4fSzepQjV8CPBgBseDWvQ0zz3qpjLP5Q0Xs30Pzd/IES5gPefiys23IM/GSZbn4zVX+M6riFKQ37jI5I2u3z9HcN9iZM6zcaJl33vvBf+4DjJbZ+0dWBpgLHI+6RuwoOnb8+Vdgc2wvOQ7intrQf4UBvfth8G1t+yvExXXWtlTkNxQQXItRD/FzN2CJysxJkW2OxBDfHO0i1M8CB49p1sDAXT+y8HWp0G0vftiOJi2d198GlS7zn47CFS7W9sPg2ogDt3Qdp1w074261KaBS21N3rHPB1aHUlBMq6vusfmiinB8ufbiZd8l1huSc1Qat1PVZ4jxHaSztpbwB/uf3CC5QesOf18+8MnLQgsjCUVi4GWdRLKzuA0nQ0a+WSYjEBrjqLkOVuHGNdHvYhLlkSADb3alov8ExZ7RuM4gvsXZ4e/7K2V/viru24WTn/gyl4kz5NXLzY3k62XO1u7D1ii7+BzCWsdNNHNLfRziPX87ODk9CI5/o/jByzRNdAZel1ums9Z30o4jR8+Hhx7NRf+fhsUVuRNK3cjIFggRKOs/tHp+X0WiJ8asbZ2wqPTc/JHxcDSYAVVKvQNi1p32d9dYrYTWBmHZNdQSrmuee/HWpBScQm2hhkzWEkah3WDPhtnQkOa4z48P15zTXQWfpJ4dLA6+1LMaC6r2xm5EXHaEDqs0VlCdWybcDCgWH3DFKv3Di2nXOM4XSjx1fHaQyKDGyt+9Jj11QNBqFJ04ZGBWHbvo5uIpnMHBtGu6rliplIiMmj6ZniuDFgkMTAC1u0rtnAoq+N1/d7gFmjm+7I1wpEnC3J8eF63zXiHJdxxrLmV4aGtQmwEKOrl4I9+ckFu7FvHh+du+HYEkt1mS34Q9YR+fOxaAr80Q8rtc57MyYEhBRe8qIqR+7K2CrhFFVbjiztoje0sYwscpP53lsF17RsZWWErDEntaCkIK9z4No5Uk1JqzSfob8igIrm9+WltKnFGQx933A8o1STFjjaNOPYWRSZpTgeLWMecfYrROWFDfG5BhhTDofERxpRgYf8Oszw57QU9qtswiIsboI24I0YstDpFusPBKBZN8HF0+GrJRKa97wWyrIFheZTEA/q1dwTtrc3E/18vFoaMW7xoOuEtxUXpyi3QSYll7nWzcRB1xhA5JYenB2+O7YGYMIss+35+zbJRzJxWVzUZo7OkZjEmyl+QwjdekkoxXUqL4mDZiwaBc5mQk8CrhDTe094e0zc3HEN7Bh8sP7Y3D4PGpJ1tubm5SW4Jw/A7Y8wyLufbApUs7iEzB2LIrsFCajk3rBcQ0LsJ3uZE03nM2NkU+FIjz4LrlKqMZQn5nSnpc+gLsNnMXSgqstAaf5MaaThFT1x7P50OWMfgYl7XMPhEFgOk2bQYMJoxdTnNfXPIIczfcGfLKdkmOTOGKeCSODOBmRuFSEpsZVQXO9gnBwcjcnE4Iu+ORuTdwYgcHI3I4dGIHL3tkKz7uE7eHdV/NuPHB3NP2x2yS8PYvdhNTTWYjeuWt0rOFC2QAkOb3oAE+wiIZZhcEw0EWWslr/NxkDnoHg1qe2trq7FuWfbEFT/64p0nSgo0l6MYhemwzhx9xQUE0KEA25BpSWhpGkcvQS9G43FXN4fBwHIcBmVkwAw4CeMxb8XRr++P3/2jgaPAGb+YxODa/LjbAvWSe4WDBgMf8l6EC7EFWnzvBXNaqyCTkGK9VFwY6NeXzim0tFaaPJuwXN6Q59uQeGchIFvbL9ZGEe1L3Xij5uVBQ8J2TEyntLRnimpGtjbhCpnBHB+Ojo7WajH8R5peEZ1TPXca3x+VhKSmMLIbKiEXdKJHJKVKcTpjTnfQKKPmPEq/mzKWxSOkUlwz5YKDP5gR+aDwrQ8C6I85n8aD7tiwzV89FvYp/vWbiX8NRBGQPyQxhElAxastC26BdQvBDol2GYUbaA4qoUusAKCBEYaZRjVqdDXZtuvcShxWgDRGDZzXEDacjF57rcdYGSGJCEmMojyH7oJMcdkv+PYj/Sn6GNnfU/Txg6KPa/r5MgqC05PuFioODg6akrHXVS8/J4fooGOiy3NycmZlOAa1wMaxaWPcsjH4H8fe1Odoh0+nPK1ysCBVmo3IhKW00sEyfU0VZ2bhlaOYUAtqtFUK7VAOrIQcfzTKt/wD+KIKAx5Qg+3PJQGraISccS2uQst3boI5C3slZOyjfbuwVBIPjSIBvgS/M6o5hKiFEevmeiipWOF2Krt1FYN20zadNL/bam8wSMJfQhHwc/WnGp6+hVigBnQDno3V+HAEA78P2chGDtFWJgX6a15e0MOwLtcTOQgglGXGr5mG7oWRa6HRzhAeSxWLQ6UyocMoU4St7SNYFooaAG/wd+6ABhCt+aGNOWChZMqt/5ks0fqaL+wQWspwrzhtDU/HWkIORAb1WlMpasXVYbV59m93VHh7vtXjHE/o8NJg+A3V9dKGC+j48D4X0Btm6HpsrPbVmZw1evnCfve1mVbsj4orlkGhs0eIcDg+PA9+VLjHAn7tYjQxMiFjlurEPTTGCH8PRs0EQTAC1lNpg/UJIdo777QPJeS3ORO4Z7CB2LU/yGtcZDxlmqyvOyOpc2BYgCw+dc5nc5P3FaWNVgPvR8G1ObMs2upvyrUppdk/Lag+TTGds4K28E8873dL6BqVk81kM6YcpWSjENhx+GLpEGZoQ++dQS7iEsh3AXaNgMf32NC2QPkBn3NuoLJkUNAlZ1gC2aLZMwIIwk+pvYVu8PYJdgzce240y6e1ok0Fjv4AN91AyeWATDT6tNwJCOCdNrhhYvpDekgPBM7QdA8YUfB9z2K9saoxsDY0vbq00sVfIQ3qAoMvU2jenLLg+wGMWmItc/ARso+tfkZfSNANuzvCk+ZK5ZpgYovDF9jHlJV1pnHEKv5Jr2mSUzFLTqs8P5Pgjjj2j8c85LrVUfz4eomG4qGRb28hQd8duT84PJdeXcGag4qnDV4QWM6BfbTVstyyh/ad7G9iaAhWMDPHcxp4U60pvJaBM8HFwUWaV66OO3htqAmuMtC0xKweI9QUtxPVi3Dj+aGoT+ewVKaML2LvStPXDdadTR0VmpDW7sb0/m/Q/eLE7RGW9+rp0j5h5saK+TS0Y3byjLoObmaczDU4Z1DDP82ltms78DtxP7qxlIQ/x1JBbS0otpOTglFdKVZgFwAImu7DbPQYBPoaesUCDcdojsmjxnHBCgkRKkxDP203XFZj2rXVvuaBZxlWgCG/Uiwh5wz3fIzl5+xFN8Zlc+MKPANT0HUL/MiTH45wHJHgILXzamP19MYlvlw1/iWq7XyyroCjBwXBOx+a9feclSPUk8FCk3FYhIjeIidQ+hNIoBZB51R4vPpO6OPadB021zKMMSBknWbZeETG7tysw7lh8NWU52wdxfxsjL4j70Fp3AYg30dBK1gfs8yBwvpq+FeaqfWSam2RuY5hSU2ZwoE+zHZgAgwcpCmZWjXIypKHOKcvkoaBXqhhg5RKDe5IbQsDZcUZtNzW2IE88GTOmaIqncdxxO29qcU/3O6VCZ+RSQX1NlYsfNGInOmmUS2SyHPDlON2rSn23c6OycJdFkFMx94izsrlHgtjQtoENwvnO0PJmmvkWfki7kviZrSbMnad/l2KkWVj9YhEVxMPVpvqw/hejXPzgg2N5rm8sRBa3TJtbpS7d9ySIlMcNVYOga0J+kaEya5qWJm5FfWiulu3y7iPZ0o4cfJlGrk5QzQdLApyxUG/hoy4CHNRdUsfslVpFi6NjOlGZw8nYGpSiajU5YgoNqMqy+PdB+4PTxMrx1T2D6mIXR7ocaBP4UUjr5mCW8Zq8UFk8pIdj7eE+aBNlHPIyVF3G3Ze7Ow1kY8c6B5ekNXGiCZ+3WnAQTrtaNgG3I83VksNvBVuxSlXUUKNYhR4m6XOGeyJVPYzWFFKXrIcej/cQtMZtzJE6orn/F+oH2poUSLboCb+ysRtUE1sJQ+3OUNro5X3fDGeEI3TvlJOBCnslay5qVAZHrmQQ3MjSZjWHbQJ61G5kfX7j2kczSJ8pjVmLOUpJBS5Sjw5hNWgYBRbm1yEgou3RBKvmUQstsC2wKuAdNyTkLGbEW4cl2hBUkjBjazj++ohVldBLfY7Zj/6Xi5GkivGSlKV6EaAl+LD1cSqVasR0iYe7dWKJy6l+Sje2dq9G+Wmx1lV25tbL9Y3d9e3n19s7u1v7u4/30n2dl/+3oxCzKihmt1XQenzKz7gNK3ANNHACLpWwBFeYClbKjDYzOlTVoWQyl83WN+Lpo17JpezkdP/cjlbG8WTh1vESCfjLOratdF5TWURld/Ddlc12LDpiqWyKIBnQy62kCZYtmB4K/c05gZVLwTJFTKr8pr0sYYHJmuj1ENJJrH9legM03PZlDSdsyTCRdjeSi1T+LGnQlbrTS7Kylz6HwUV0kXCef2vMvEDVL/hec57n0EHG9DIVi/hHLmpGzY0Ap7AMG2TkpBPIdbtmcfPzKpNijkfpKmdfo24xj5e5BkNzC4yrwrYPeWd6iJMLBO0dduVUoPauU3aFwnSm704/fderAqA27sGfIZyAupiq6r9gGU9fqF6Tp6VTM1pqe3h08Z+M+VixhSE26yB84/euJvMSLsBFP1Ske2nkEIbZZcPJgMwvFrJsU30dT+pvr8Ofjw8+mJWvZMju5pQMj1Sxlow79Gd6e7mZtaETMxYN6l6eZnkItwJQBeBq1Kl+LWPwGRQfFTR3AWUGqk6EgbIFr7eBAgD4/rCiWXxFl16cSFfEJmmlVIsSxynrG/iXMvO6A1pKp6gYBR7ovu8ZUzwsfd1VImfBAGKaHrTqwOfCKdU2tOFSr9Vw7SuCisxCEns2kDbGQVJwd293jU1V1LIXM4aRT/sVSOvfFgA1/sNXJH/r724+hu/3eOl7uzdZGtz6/els6OveJsZfWN6rg/g+iRFF4076FG0A637Udq2SUhP8WJD/LPp1OH3XBcDcKDFFtrxIkecL1IdHKK13aRXg3bxwV5rQX6HYvus4npOaM6U8YIMnIWGdawVd4CXVnO0loyKayRzeePkcYsqgKCRLRZdcGRORZZDXOGcLcBVdmNVZWGiY6qYXTMYK+svUcwAhCiZ16vmBkaBkw5NYSAASxtLDDdzBmlqIaIdW4qCo8+AW3BW5VSFUPtadVRWuOoReXLm6n4Gp0ksUw0myOIsUY4JRD3DWtqSovOKO/UBFBTkVVVZSuVMNKkUKSsh5AmHRo0ir2YgCXQtKbVbnsJJEF56Rnn4AERBuH/XRv7c4MjjVvhZQxWsXRFgBrTP3yZnNrDuef8QeH9nmTr7aILxwJKzMFyF0/fekf8dUsMtSrSV2CEWhqF0l8n0MuphmHFtJZMMDKNYDgzUWWY5E8tqorfSv4vfgShgozi79rr0+BL3pofVn7OSbL0im3v72y/2tzbR0n14/NP+5v/5l63tnf/3nKWVXQB+ImZu7xFoEcMUfreVuEe3Nt0ftRRoeYGu4JxOK3svayPLkmX+BfyvVum/bW0m9n9bJNPm37aTrWQ72dal+bet7efNOruyMlYx+qYvF6s+ferd4tY39sF4GRMQiB1zLrwxIiMr9VgGX06tM1KeW6klGFRKpnyYdbg/oIo7GmwwnZllvSLMqTQuVQHFO5/eCzWfnSsgMvRnDRMlcgvM72pdfJZX+6ItEXev764WYkbQehctdngn8tomEi0wAv3AXgUiwO8FUYqhcXAJlLLy+hp5FtaGn12SGd7PYdA6PBdFMrdG0PXrimh1cmyoSxO0b7xP7ejRfahDxBUyZnkN1TniDV5qW6/jsBK3sXHI1k+VAnqq0SJcwqzj7GA6g4RcK91qLVPn4cN9uEXkMA3uVtcWsYPXKJi23LSWMvysZh6b3vetRDFu9G6lYhFEFlBCOeQMesBIJhny1YJe1bujmdA9V4lDa4PFDNzGdvU8xKf1nTM0IsOpwuvZh9KeL7SzPHVtzq/lLLKxFigsNS7WOijOK2b+TulpFEG0nJobqthd2VfusMB1f77QhZXO5saU2Ro2v56ib8T1OHIDt4vwhRGfYdmVUV2dZN0tcd3fQesHlVWdxGzttio0jW2ESoSROeXR9/Gdn4C8f/ea5Fxc+djqu4vZeRdIWyjwo2D1RPD58jT2ITscRiOQg0iCH4XrqJHIHykt+yCuWhaqGPK9QgrwrgAzDB4a7M3VQbLdXb2/seG6Wl0zkUmVpLLAnmsb/7K5CaaPZbVExfXVpY4u79uu82kuaW+M0TuurwiMAOKq4lJxjHBuU6h2RES0zCvQv6Psp/eaOWM+rAzM6c71gEx6zlS7GV+A/dJq9kvQ2K2LWD0F0wD/k2Uw7D0LGmFMgk4peKTCIjYt2WxtbvaYUwrKXQlLV5d2ISvY9qaB2x1VLDAH6Zg6Akg3/Rl2iBtnHtHMkpOol4FYc4GRcH1hyc2WyVKzP6olT+jDelScu4F9a7VbeC1EbrUehfBQhN87AsAUrjtuyRF4ZehVM4WcfaSpIVJlzncdVN/IPxl7J8OpDuazYJjuYOuaRR2AHqXNBGYwYrBNmKB5fhri1l3+o99CrniQ4sKIcU55lK+AT3kzt3f30ihc2jMnnTifR1V6U0gUjhF2AoJ33KzcKVGpFJprEwtEjjJjywdce/YK7K3r4C7fsJ4Js2iGvobjXM4SDb8n/vcklRkbJ573+q/rpIjYuFgHy2LNFTdFW8xtOqmQq/k2KfXRPDk6X0t8NlnjjSAXObIm3OrvNyLMiJHwVh6vQ9zDuKksMQjm9uVGURNhwd1L5GWTpg1dqkXN3W4L9Inc67hwYUCx6yKiCHRh1G7yW3wX9pz+WXeZHCAL427tobEkeyBqxmF3OCwILQsuGNHB3BRHcsVotnCU5C5rT+i1/Tm6JvEAeuIg0ioQN1w3VK00ZSVmNIdJfX4R1Cmg9vhLATL5yZGbfOW4UrJkGweFNkxltFiJsp3pZKLYNSof/vHzi5U11AXIL7/sF0XNTDjN/VPrm7v7m5sray022o26/cbMB2bO1SeGYEG0UtMy0IosWtHVZB1jsVbgph8hSWFcU3R3kFpR7cR3IXkiTx8RJux+6yhgy/HVDPydMrJI4KIg97BUdktB5nTatk/ravcb+4KhVE7hX5SdxmWVGqptyGpbexAwNhSY8xKZdM0pK3uEr5k2fOZX11S9l1AsBJxbPzSmUHCxnrHSzDuj45XUbNVO0L0GQlOIdXe5YgICb0mZ05Tdqp3copXUJ/6ztJNi4fSTYuGyrK2GAnNs7G6/3MpYNlmf7k4213e2t/bW915ON9d3aLqz93KTPt+bsru1F08PU+6M/C7G/Sf/+Y4Q9wMsTNqKh4bCHR3/EISaazKxclEzWMyFbNtfIXbOBynbsd3K/f7/BJVbXR0wJ3ZFphw44GDx9Vvko8D9ZyqyDanqxZJG1MvIVaIIdsPJAqc88XZv8qb2OvznTydv/suXTNR1vLe9ZHnK9FqCL7vwf2eF6Wn8TSHVmGWIzdZ6/HGMvMLO1PSguGmMxfoMwWT1NXVeYhJq6FrRwg/da1n1Jrh6KzWGbxlF0yswqaAVsCf8gxqj+KTqdDYeoEgR4j3MF1//4UtsFIHs+ZqqhaWN0G2G/MIUhqlBFRT2cU4rDeZLSGCXU3e3NLm1ZQvM1z7y8fTueNr7kF+zEdhyIZE4G9X9fewdBY0AYpcJ+8jSyrARmfMsY2IE4ZD4bynyxchxyBG5Udz0mA5X/3PFP7syIiv49Mp/fWql9afOEE+dIZ46Qzx1hnjqDGG+784QvaH9D5MdQA6CcUAYhLrRS4oLEFGHxNZ4vykspFH42mNJN7VA4GQuihE2kAnVL+/gb6GALQzjNhAlh6oEO864sFONncrH7VlhmoxhFeNIX8Vgf8zjwNrbwapnHx1ZTTMNw3lt0sMdV/Bu4auR9/fYVxw2SHa+ad3y1gWA2kSpW/31g7AzFJShwWHIug/qDLRyd1Eqjk3FebCZ4tdRdAQUuHRmh8gU0FnhxlwWbIPmHvNhpXa4SxzmcxfbS9xHCkRRLMR5x2qbhglgzIrl7JpGlua6dVlvNF2UPlGWTFlFFy+AhvkOrs+8r1X+4bJcCVAzYFMDYFlhks5els6uFJrmD1Zh9Ezxwl4E2O7y5Ig8+/nkaO3Oo7S6tbm51TzwtX44NITt3gE9LQbbB+CL9h76Sg2GvmIXoa/YKqiOxR8uOfPEjl3biL2gitxNhL+9Kal9VrZ3Xzzfe948LQUv2OWA1SzenLw5xjhqf7v47E+AFpTCZrciRbRRjELcyWRhIlNCpaEEgzMW3tzcJJwKmkg120CfNySAbhQs43QdLMHx38nHuSny/zw5OD2oWfx0ylNOc7Qb/9fIXRm+3FmC5YJ6csms/FGC3D9x1QTDmJjeGGK/o6X7TLtlGX8xHCW9sYQUo50LIlMrtgfqor2lRFY3X+xstkjoMyXSHoE0SJIUQolBdWgeswFLA5+2G2jhZR7q/fibso73N3FH6g7KfHHP9kUqb8RgkWpoPrYTrIIFRUHa3/330+O29/pqdX2glRh0EYv0k1FrI2FvsTRoR/ht6KdZJFQ+TPjduG3vn7qOPXUde+o69tR17Gt2HYtCefifDwzk6zF62UGsGAEyW6Qxv42Va+SeUMrHRTxwTVbsx55Cw1svnu/tNAA1VM2YufyL3FIXsBq8pyCYYlGAr/+LlZqDfQMJ9RlSYcYVeKgdJGsd6gvu5BBcMWi/ESu5gCHgPRgCVB0LHJVBfHbeshKg4HO7rSBYChhmjbs4gJ/dxzvCAH5mMq6VmVKlFpjEh04tWgv+YGrCDm2hMFGwpTdjPVwzVxleib1lobw4pmJjwCNL55A3XqcYWMhOzryLVCqnbKh1XVk9JdjGlyqhyc1iKP/Sod28XmH0jRRW72tmAmDsDBOD+btOG34uN1m3nrNUZk4OsLBdC8BKGLW45Fr2lJ1+HJThFOTk/G1/tenDg16QhtpBB07vJh5SQVvWbU/V94AyY/KylLHsFauIUsy4gYqKIiM5NfChe8L/m6zkUqzsk/WXz5MXWzt7zzdHZCWnZmWf7Owmu5u7r7b2yP+sfilVcvW9PYI+ZKglnNKAmpH3d2CQnZySmaKiyqmKXdfQTjOFCCvLbKIr9jAuRhLJFly5VGmItMZKS2SaS6lcyPwInXZxlb8wKIKXk3K+0JglB/mGI2APGCPS6tlYpzFBSCIXhFZGFsD9IvbWvegnUhsp1rO0sS+KzbgUQ56sdzDDXQdr/dfDPpgGOloOnt6T9WvFJiz9oc/O7e+v8MXtN5i9VNF4HZVq7Qlnh2d0HbzTco7EYe3LFxgftqdIo1hU8HiZsGDIDimYSyq5raUPFeT10cGZvUEPMC2z9p7F3USaLGQwIej2os+4KNeXEi2+GyFK60vxtxjnAFDyQ0+pIEefv/jP95QSnmPVHyDPmiLrnBP4neYzqbiZF6GyLFcu9CyKoWR55qLZsBIxhKXOsVUWhpq/OdodgQNjDei8VMxx64QcZJkHYxpCHjEC1w0xWUDCuEqp9kalJnDIjC2AaLvGehaQI6ZZSRU1MnQUproRXf1MC3qF8bMjgnlwc/r8cndr+yFNi7+0q+nLe5m+joPpS/qWwnmSulGb+xf/+c64ZQgSbsctu+xusDRUBsuoaENFlDx1fHgO7yZ/84fg1oz4bpwvTCpFXeQ51ntCEW1QNUGhua8YNKwVnTQtC+2cquyGKjYi11yZiuakoOmcC6ZH5EimV0yFTqLKpW78ezVhSjCIdJUZe1BVZpXOuWGpqe5NfP2UjX/bSrFuzNeRCD7uvbh8sfO1bli8C+U02jtPav6ave2OrQMrUPZMY/HVDrK6qm+7fcOIUpFTZn48eXve7fL1movqY8/YNdDRTGFEuPd9BYGeeI23pxdvz98GzNxjU5sxmXxDijSA860r0wjkN6dQx2B9I0q1BembV6wtkE/K9bepXNu9+RYV7Aiur6lkN6WugSBZ/cWNHd9IjUrBdT+DkCF941P1xx6yMSg29vy6hr5eK4T72IlD9yisj7Mep62iHBDHDR/ogEdfOo3mN3ShSQWvjCBX0FUaCEaHglHBxQwKX7i620xccyUh0KfRVt3tH/SerhSoiZUv+DaeMGqAEY3bWCjvwUJ/E0gQRnlZNz5s9V6i6QDI/cVt5m2zDkWjp3fSZ9R1EikzosqIGt8L/tEXEnGMEorK/VHRHIJ7wpiRLOfb20BlB9djPTT0qDRTiasCAl16M5byDKqtWXEUSKlm7tBVs7X5UidTWvB8qAiMt+cExyfPvJNGsQzStjM24VSMyFQxNtHZiNygONz1t+GTHbir/BFTmr+a/7Oj7uCuN6N0QsyD677WL/LS1OL7jfwnvWZtbEUFpgbY5fYacLYANqjbit64Qi4dyHeSnWRzfWtrex10cp62oX9cAepb2+s4gs6h7LbN/Y82Zry180vtrJ/PnWcr90k9ItWkEqa66wxTdcM7Z3jYkKEO8MvS49ZmsrWTNPvqDlZ2w5VXbl0rVoM/zGWVBWXc2wnqindOqsHgBSihPTbbScEyXhVjKKJzXbRKGzYsAcEm1Gish9XvwMIbu+BrOSSM2CePtKpOlEuGxd4WVXOObQpqSS4UFUAze3Pbnm/vNqe39+PXcrhA2MaQ/hZYHSsoH4qtW9WSwARe3kq6ANhr+JHD4b4af7YLXtUglvlreEroNeU5nfRkthzkE6YMOeZCG9ZiboAb9Ab9dT1+0SK/aedfBOeX9gO2gBiwc4hXPIHvgAcOyu4oDL1q8HJo3ugYlCBUSLEo+J9xN2lAYfj4PhReHMMqeDa2lIIfvPaN+k8qxRT3ql3wQGSuAngYttl0qYGnL9M8OCTEw5xdKB5PnfxqLO18LpUPtYXaEbXpv150Ixtigh0BgunHmEaAxS8XF2fw+XaH20/ebR1i/uxLUfNC1zmbjCuV+2pcmmEpThNh2AKpcg+vYn9UTD8g1MK/MJHZIomzqB5YqDN+tYncONq3BSaBWdvo3dt7eTuILuHnL3CRXjjjBm78nRj5heW5JDdSubYaHcwMsG8XEmsz3LF7zyywwLTmjFrpu6vSbO0879/Mgpm5HOo+XG2gFKdqpWZH5e2wqfOExcVtjQwBG1iV7I+KqYXVg0IX4EymVeHT38LYvvfvyomvXGp1q+PD856w9RkzI1JCh+eyMr1oggLXarDsr3du+LrwWoy5zm76jMpJLmeJz1hKZbHRgl2XUmj2xXkKTrssU4mB/Otylbtwcjtb8bj50nzFQftpjMUBjZVwehxVn19zuolTVy+o11+1s9mMtxjWiANw3WYV2wIjTZ11bpia0rRR2PCk8eXdQaFhgE4Pf4gLTaXKCBczqwljf0T8szkvaYi9kOqjWCmVK3VEhS/Mq9pFkImSFWRX5pJmZEJzKlKm1sKowWjDPoZ08TAW9KGC7kg9vfATaOFm6q4hbszQKSQMU6MAgfNjaSa0VK50e0kFsStaw6IhMRyJw08PKnpCp5aX5WjO6VA12gKJ4CzopKh3rFYvRz0OaL97gZuFst7Y2RdNaxaVXGiesRGRlXF/KJIVf4YWHzXqBS36zJLuxR/u4ZqDx+PW+Do5aiOrQd41ts5P35x1zgkhJ0c93G9z2QUOnYTp94LdThHdPHczvwf+OiVkFvOp1+7jHXGMR50Qw1BE2xcFLFg6p4LrgkSVAkMzlijZCjrL1GGN0Csl7Na9oY2d6dy4oes01BDz5VfD/FG8fNP8hPXYw0RYnd6PCZ7NuGz738aNhfi34laDnTr/rRUKaWARLIvH/1so4jupDFHUGcF9sd+/gdXDKtDww/HhuUPfA4IngVCbRPs4foS3vuOHRWSI8nGb1W3oOe2p04X4cv4GDeE5YSgFclwFnYh8uf1GkT9X+Qt7QFNDZpLV7QVgEHRJxE3HM8m0WF01oY+0FFEvJl/Nv6xMvJ+Bmizdh24DULIkNPOJex2sdXrzI9Uh0Y9vqBLjERkzpex/OPyrvrVo3tMDAIptNrfV0pIaYF8vWp2NcCJ3l0D5N6zAgrd8XS60AjKPS7LEo6Q51T5KALrzeNUwzAC3ky+5TNJKG1n0u52lmiUsp9rwFPv6JRMpjTaKlsmP/q8GsjCVHooGJDlfqhUBdCIMCO5gyI7S6pUSSqhQLrwb3ZEduNBdy3I8Ne3eUNGRaa12Z/vWpQx4HbWp4JEWF5UyNI5yLGM0XZrrL+0Vtjf5J72mvYipRDpgyYsOXtx0roLjXGYdVNyzv/Y09CxkmM6c/rgC44z5t+/USdv9zEH9jZ4IGzthU0ioKXNuMJfBkKpsNAcoqWr0xD3BqCUFlYcwl23shvVGWUReHN+E1f0VhSLWdsRmCX8WA9doJdhYhl/sqLMg39UtjIkt/FyvD+iEgLWQUideU8zsRv83E6mEoBmpiGA3wBes6FbI6/gQSJJC3daqbIP8uY1OiZauj6m91iYMbGtxaNfEx3mAde6z+51CAC04xt8sgkQZ8nPgIlzi6GGJffcVfrjsI+vO2XNXbSiW2uzzxWOxAvJY7NVdcBNzpGtO3TAJOcuZVU81Y+TdT4ea7O5s79itfL71YifpWVoypSnPfQOfx7aIrEYr9C2m/IQd2artKg7rO4jbINWrsjRkl+XOSLuaJhX+ygvdpTbDkPbd7edd4th+fieOBr6ffOcd9tGsT6hVBJZGVmsdQNQv+9biG8o9+la3tvmWxnWfvsWsHpJrskf+ViPnX4OkmjR5T93QzaobyN9D/wDXUgVYsqOeQCgw89arrZ5iMs93+9Da6IP1MNzee2LaTdnuPzF9zb9czy+L45phxKpKnRnbnrjmNIClts3t5Oh8bRRrJVat6ADvTuZM9jYJuxP00LfMKznU9bBPTat1mb0N7mpd1m7itlS/sl6eEDZ8yMyUb4EYmg38wqhLEQGYWW+hgEip/YqbH0HR7bbgdNRgLENDbmxyOo2+uicd3ZuBmzm0aI8uiko4cQzLOMlrFvoa1wm7BIWyqEGPy4HVDWuOe+KTMm796D7SwA3bbhkUOgg/IOe11rKHOi4HqMnM+DUTro9WNKuzw5RKGpnK3Kn6XkFXE24UVTwiHCwG65pVG3tYNMrIBZROc02LRiCQ0lxLmGyBikD9sL5alJFJhqd/jOzNxSZSXo2IubGynPKtzOL6rlbz0NxUTkqvq5Bj190wIpSzAljqIk/2FspCUae6uyUcqY2MaUNOzrC+lR6BI0KPSDTmDVe+qu436BmnvGiQVo8jcpmeqLc6IVfRC4neR5C4wQ8OOzKR9txAZJ/dliafHbvOofDmGISIsUW21Zu5FOF7xciVkDdiRMb+sLqfUFSJ+tnrqui5kV7sNRDgOIhZXA7msVg9wIg4aKaH5mAB2ZJ+ceTkDF16jpqoJjcszx2TC+vxx69OP2zyv9oCR6GnyTqdCamNvfkMFRlVQGO++nMYdpo36+u/ZlS5isvUhMiEGTfzagIxCZZAcj6bm42AvHWerdtLpkfo25+//Vd9uvPLv775effNPzb25ifqP87+SHd+//XPzX9rbEUgjQGsHStHfnB/+3t2bRSdTnmafBDvmF0P7Dmptev9D4J8CMj5QP5GuJjISmQfBCF/I7Iy0SfuykziJ9+JED9VAgj3g/ggfpszEY9Z0LKMWj8C08HLyykzRd0JzrlgR+FCiuwc8ZiBc0GSvSaQgAzdwTi7SRCGWyb2qJGKlEzxghmmEJAG0MvBVAPSgMD+F0QeN1k8cpg0WelayADbDbqZSnVDVcayy8/JJjw583HmdZtYd1yjn5y9rFTyYzfsY+vVdrKVbCVNKy2ngl6iOjUQgzk5OD0gZ547nKLm9uzeKu2en6wjcN0vsF571MP23PERuK98tzn/lnb8h+bQ+xw4GEg8p8z8lMsb4HAa/nLBmWHcXM68Q6By0Zl9a+rW020iWixXzfuTDE5OXE1gkthxSbPMcWPXa80yWX81XedUuIdjA6DPRkejJQwJNev//vrgFKnvj3Uu1v/ALwxFf2fUgo4c5FZWiGKmESDf9ITYiROO1kL4G0tznAD0EVQtz2SlozEBEM1E5ty4lk3ijgar7t7mdrL1B2EipaW2Jx/kLSs/tmI3WsrP74xdjchvXDE9p+oqWQsovy+swC4gcasb6DgB0rvBBY1Ak87RXzpuIFrBgPrvW6fM4WJuCyO4dTkPDPYYOq8B1ZLJgkhIqpMKaMzJvbquBuGPXXs5P0O46m98yhtglzS9Yve2jbzd3gSirhvkk4Rd926PuFv/0iPw+h9rzciJvv0i73YzYs7z6wGkrNXXLz2jrKVV5DzsYwKy5IjkwMv/SVOrw4XgjKBbfns6U0hCCHGmHuohUHjuzqrf7Eh8QH0ZEr6or2dnl/jvOE98DIkXc2sM53RhxYIqK0fEpOWI8PL6xTpPi3JEmEmTtW8P8yZtIX6gNFgXnvj2/ATasuQovt7E6aqerF9bLCYWdzuIwcg+UWqWjkjJC0Dot4dOC3QDn9/zPfpXuEGDm9+NAk87++jb+Lu76gtGMY+d5uglg95KjpeMQvF2LOzRMStip8YQSJcxw1Iz8uNjVA4G19074npTxncKpr3nsKG4btZeD6nhIdzHlxXEQSn0y1fQ8B2W2mryLsWUzypV77skqhLLI4BoOTV2usSXsmmXOfT2ej0iN2wCGiBn0JjfqAoS+xFdXIqNUsF6YVxfcsXLw7Xa/IM/wVZAdsPGIEUzgn87lxo0gM7QFqsHZ28canTyQ812An1GFm2KnT5vMWi7e8PHHPMpoWLhmRxgHdepA11oH2qJtKFr4f8OfMMqvA4WusyTNy725I+KVTgwOb54DVUypQAS8savUsmUaR1ZL8IwoZ6rYuD+SCUErFnJzOMDogOPD88fYIVncWj5o+uX/rgnLqx/LlGfqyPYwSQehWmjmg/tLmkRmcktY0Sa+FOKZuqtkQSj7/h04fMHvP2LkHOMxqeqaFic6qvG2cTbul0rLt/7TDA83+rzt4TnYywMNWwmFf+TBUiWvQFwAUlASfIUpv9gza2Dw7983H5nxd9nIH9nQd+zLBcv4TsX6TqLskx4KNuIY8PA5+U0+CKCse6O1REjw4GKeTCkNNSeKaoYBNa5y8KP7Oqh+65aI3LsXB31NXT05vcR+eXdiLxmM/uEVTHbGD2rJjlPL3EYtnTPt6fCvk+FfR8OUu+GPhX2fSrs+1TY969X2Ldd17d5qde+mC+j0/m07eGVOj/T96vVudGe1DryOdnXHST+5fW67pK/d8XOr+h71uwaa/jLqHZ+VV9Qt+MilUUciPFpul2dj05x1KZel3h21dHrQJ8Lo96j1x29+X1pVH5ayFYdklVXuem/44epBf/m4PB2ABrzDymlH9aZ0V0khM2qo0LhQbDhu3DnON47vNmI7p6zvJxWeVyjt77upnUkUHBWBAcCxWxJlteFbDCFU6oZFfxPlKkbcRFCxsnekPnIWMYypwBgKifClbOpIawozaIn5vQS4vPOf25sxFO1effDt1aB/Kna/FO1+adq848M/OdUmy+VzKr0EYv2ddJ13Qy33FwtEPX25mYDPs0Up/mwMdVed3eTOc28KVoMVpV/7srqt8usgXWeGkogYgLEwamSRTNmTrkGP1En1RCrXY+0KJlO+krS+Gh6Na7FvbG/3aE+TabhPyX8B25a+EPmOYMqNmg/sH/VQQk9OYIN7bku5xclaD0mUv8OAy9HcOeLggrTMlb1nt/H6TnpNyViiHUBkFpWgnd9dFD7+3tSKONxfCQIE4qncyQoCAFpVMwOeY2pLEoqvNRkxUCwpzaIsZXkGOdU6lDP0IqSkG1KlaJiBvE8U54b5qy9UH3ZC4lQ7gJCfgU86AXNAEa9nodUwPoKleKb4i4ZTDX4eld9TFteXKtvvgbZhmvqHK6pe0j3AoIyPf34kgP9ZCpbN+Dy1R2/S63gSSVo4eh2leA71gf+KhzikZWB71gT+ObVgDg5xtf4ctz7LPrqTqZd3/m382y447WhORauwuhbP6uH78TUpbt8x/Seofxro+DNQgKLGIfmf8ajQtGBMLQDBMd0gbD1WIb7/hVpdIkvVbjh1mblj7bjbk8e3Kd8UvE8uxyWGlcPXEpk767ZUw9Q1Ns0dfmQjiwCnwlUEb6JCriGlNFUFgU35PyXA4xSEBiFziCD2g/RUxBgujN9yfZeZdmLrcnmq729ydY2Y5ubm5NXe69evNh78fLl1mZaO3jvMWinc5Ze6Woo3nTohu8gy68Q5M5rpkKVum7W7N7k+farjL7ae/WcPd/ZfPUqfZnt0Ww3nbxKX+00de1o8oFWdNSMLoH06iYXCJC/LZkIdXiUnClagBKcUzGr7NqNdCSlwRW7oVjO6SRnG2w65SmvQ85JHfDf1A8QnZc6lW3d/hGdhxlsjZiRubyJFwx16sKOuiC7SjO1DiEtIzLL5YTmHbzg130LYcvoOxk1/S0PLOODLOBe+JqYy3nKhB7M1fEah3cFkzFXvI05f9ibzaMIJTr0IXI4hZglN2KssilZkPOzo/8gfrrXXBusH1MzI6k1n+SszrDXZfYRsuvdkHpjrctnDkqazlkYeDvZHFDS670ioilqypFNwYqaoTqEnVEzjyrx+H3jHYKKoNuotNoA0t84ZHlO1cZMbmwlW9vJq3ZnFCi5lQ6Fwl9kYUFGm0WYjLx/9zq4u7wEA50SuK5FEl6XKL296mAosyItL7PEtOx9YwWbJVb9oIqEnmIazUS698j29vP72pQ+YkE3ZxDtygLgrnThSV7ejEkM6hXbmUe+qrqZ0+YjBRW0rvBMXM6yzwTbJ6osRiQrr2YjMlHsZkSE/WLGihERFXz9T6q6Z16VxbLbOKwk5je0OUvcyWQ7eRUL/025/5j8Au1iPkXy/w2VI3ImlbGkT44/srTCP5+dHa+F+q3Li9VNi+QgsT1WZHXTNGzGlpZGvtpfRqiBp3jO1q2W0NVeodyZnBpyKFUpVTPZ8h6SGF70CkvNujLYA1d6RuMw6HtWZsceWPcIS2spFw9c1ovkefLqxeZmsvVyZ2t32fX5CtOXsNCh49DsKj+HRs/PDk5OL5Lj/zhedn3DOgjDovq8hA9c3Eo4gR8+Hhx7ZgR/t23RK3evPlp76qNdPX+MvrrbD7OUYcRP0e9FSamoPSl1h1WX+dps/wT1Jv1whGcbESm6Wl+N6udgcB/76UvotDo1VucydKF9EyicinCjWT4lVITdtasqOeaO2wdRLfFlwMB6i+DWwfTLWVFmQ4X/rh4oRReuihUgiaoZVFnQI7toBfQBeLQLohMt88owrDQaRdlB6dVwr0WyyRu6IBPm3FyImVJJw6ACq9Acuh1He9aRIdzHdZSFJ1xs6NDEd52s5+FPqyaGD1ubif3f1osOIi8h2+ZhAmNLE2NiZuZBVXfEYscGx96iv4q9C9uqsJlvXOHClZmzKLCfJlV6xQyhguYLzTWRwmrJYcjC3shhk8iN1ScCN4AWrlTFZ4i8gUKG4YUCNySq8c+dOo53hK50yVMuK123jO3IdTvLMspUZuxS85mgYJdjH7m+t97QRMqcUdGH+x/xJ4ywL+2QkJ9PwgxxjbA20KtGVWz1EyHHlnyDncL77IQpUwYNWr47YE98Y0RbvkVUqhalkTNFyzlPsXOOro9zPOo1zXkWZy1B66hKGz8fec3oNSOVqOsmuBYD/tX6FZ+nV48fhr2hmlQCjISh+XRcOPndu7fvLt+fXrx7f35xfHT57u3bi0/dsgrTVAbKsDnH4RuXM3jnoPKvelRJuLUyQPJSlq07ztLquZGKaVckqd7ons0j6ZzyOFT173bHUXaoX7/tPc9yrJwC5S9Yhpk8jQ5Wrg81arGQY9Mo0TFZQElXjdG7wJlYvkBjM9ofkEo7BPVZpx4o+zPR3M+zIHiEzzi2LI24F1qurWQ3o1xo07hiJ1xQtSCuqWyzZm33bNLGXtxz8B6Kp6KgIrtcsoHU1/HPNvfhpyrPPdzYsgpICe5L15jI3Zlt97uXesJcTvppST1I1DTP69u23fyscw1/ulzUkIfIOhRFVi25Z5kkfYhlGrD28+1xQW0pH6XvZgoZMhW83lyHwTrdA4OmwBuCleF0HM1XX2RTcgMh/40K6WCIhZxcDwgGIMDhef/+5Ghk1aJCCq/dkJ/fnxzpUXw/0qiudWGPn11qvgglprE0cKjcA0657qoPpdBGVanB/rGoNOQLN1yMOchhsCQsBSmVZYIpuHwKbvgsvmTPTo6IYpVmjVLade1rXxprCt1WcHnQN8DqkCNC7VWl2yFnxGdPWuxJbXqYbbqd7uzuZq+mr149f7m7tMuwPkPfLC9ZPtbjoKUjxbTe0JHuOM8t7HDzCU2nuzGQdiAUUZq6S51MjqXTmVVEoipVvSUpo25JEytuu0stBN/Wk/nzjl0nsP5tbESw/wAX7nEabble3EsQkT2KSZHtDsTI3hzt4hTdSfWcbg006/kvB1t3TLu9+2K4ibd3X9wx9e7W9nBT725t90z9FwkGW/UXCobxNSQEy381SV1AA3r4nYahiOYFz/vcLG2OUVJlj+3XsRsNYvx5uM1nGStujaYnq9CXtAo5xH+/xqH+BTzZiL59G9EtO/fXMRX1L/DJYjSUxagf30+Go/vQ9WQ/+kvYj9x+PpmRnsxIX92M5Gnx27cmDWMwegiKnkxKy2Pri1qWHgjWl7M9PRywL2idejhwX9B+tTxw37SF6wsZsZbHVjlbSt54UOT3SX1NOo4GsVmRpYvpBoOeMDu+vRYfutllG/plGs/eEbMeoty6ObbbO9sPBa4D3WNE1UNXcIe5VVL2g7r1QFCB0S8B661ZPlYf5QVrbKsT67t2ou3NrRfrm7vr288vNvf2N3f3n+8ke7vPf3+oBmTmitFsubKGD8LyBQxMTo4egwwclANG8Dpwe1Pacfb1pYsteqC5+V5kv8BGAeaWVGRpEb4foWKAfDXUlqM6UCumaxxSgXm9E1Y34d8PQ0YV7AglEyVvNJT3MaAxcOOA8BIoNPmhM0bSStmBcug+KCITwLL7UZUW8s8QNc9ZKkXW5Luh9VFVdpO5n28vHaruYLyR6oqL2SV2LJTqEZMrhqQfSyYOdBJAbzshOorDXBZsg+Y8XbrgZ8mS/yVJJyVL/rp5JyVL/uqpJyVL/vLZJyz535iAEiHgWxT8A3BfXqwPU39toT3k5H5DInm4ar+iwN2C4VsQpwNI37Sw/AlRNd+fJO3x8/XkZA/B9yMFL08YjyAi11UWZlwbhxWX+/gu/u725MefMHnRNYW1lOHzwv0AvoAfNEsnS6YGQt44VCcYiJ+svnXCFNZAIDeKG8NcauWEavZihzCRygyKaoXN+UmqsEDVXWBdW+qcmb/TvGLHH8H7+Y7Nfq2YWrjvRk2PP6RP6hJpXNbOO2hBhQ69cV5e2u/GSQh5kb41wqQyXm6px5wwY5giiqXymik64Tk3C4CldkfUznF78t8d/3z548npwbt/4MqZa2vd48j6/dcfq4PDzYO///rjxcHBwQF8xn/+bVlhB7YYb5/7gqM+rYY+xgRgnRu7vVA9DeZzVXLrbT0LiKCaWB4JUYB9b8K+uD3yBJAAWWjoxxOGdM8HIoEpyTOL5PPfR4Ds4/84Ozg9ujz/fQ3pIXYUBRh4KNxCoGSqq/OGU7I/KiZSbFTgJgQCtqO/ef/64gTmgrH9cNAjOIx4TRXUUSI5hPnhsKKCPnOw1pqi7ZhHv719d4QEffzz5a/2UwP0iPrabYixAWHKC5oTxVy4GnrOnrFkRsYrWyvjHrfW6n+uHO5/UIZ+UCy7NKb8MOHiQ7GgZZmwj2zlv5a22gDBDVTa+dxQkVGVNfcbL1THRXyQim6vEEli2VXM+fUQCziYTBS7xkq/oBV5V6Sdr3ON/PLvr98sC/AVWwwA7y/8mmErcn7tPMxyakfq3nnnb3+6+O3g3fGHWmPzLPz04sMhyi5/R5X+w0lhBZqfeKhnYgkUm9DoDzdcWEAt3S2t0nUKLz3K8iFox44dx+TYrRrZ4eCEAu/u27gPn42QcMx7EPPhiE2qWV1z5/4CORGcQzXWhDn8Hd/tarMUxLWwVPe/D7JS/dWddSJCfLRmxl7hBaPC2OtkSlN7QVPDSMmvJca6KOj5SknJWWqX4uGDmjruA4RPwQMa+/7UEbQuBltbIRliD8WClDlNoQO+vWGOD89d1AK5iEFwQ2sGtSfFzPOCYoSlvOvbSU4hrgumQFnB3Y1cRUJNrV/i4rkgY4fFZBxWcmAZZKqYCTFKFkNxP6CRKw/ng8uhYtxcahM61quRD3iqKcK3vB2RNOdMmBHxj0I3PmzHlPjq+NklLxNyMsV65mXJXOjayZnn20bW0PNyPMJ6HVh3SjikAcao68JzckaM4tec5vliRIQkBQXRLK4+xw1MRhXLRlbcC9Hy0VT7W6+2k81kO9naHT+gysac6qFKvx3kOd4RVM+ZRjKQwiJEecJykhWGDHryh7Y/NRepNKqXENBf48+NGuqicEE0N5VrwYcV5xayWlWWFHSlGMSx1fqWA4zQfCYVN/PC0tMzDLdlik0lvGEJyrJMuPQCAGvLtzUsl0Buf68riz7HoE7OetHXVKP1YE0x/EZCrKSd7XZo7uePVd4oMvbOf76DM9pnfB2c0FQqig8Gi4aLyMNAQbGoe16EvhJ0ZgV+C4CLjvYhi4TmTBlNpCISCsUJiYXKYGG1JuALw9kpovBJN9oNSOderkUVIAIcL2K273mKByoruAZ3gRUAlcxD1Wk9Cq05JTIycnJ0vnFydl7/ENpvjcgNm/ghSwwfx54P4YFK5S5wVo8IExmojyRjhqWYUiGsfGpZsmbk2fHRuzVXTTqEbTKTPqR+T2Xm7Z4ej9cnD4p6xj0WoLlmqVmVSbEIdXIRCAg3hb8sZ5AkVYyaqNBw2CtPWYEygCs16LuTpHVuqFp/HfeCva+KAPbmG8qneFA3/0MaQPHGDYVLdDHArqUHcliPhIAVy2Vr8vCxxL3IIAfGsKK06sFJJGO8ZvRqaf1rcPfjBTa5b3seYePdhns89C/yx1ymV0RZtVobkGVK6GRPjk7PMQL4l4uLs3OyQS5en0Ngukxlrpe+K4YKIz/ANZ4cIaPi2kdHW9XbVfeCysfIO5FRRlJTbWHwDLKXcB5EMFubSwc8DVtiOFYE8luqDd/OGwJqMCbXCu00Y3dUfHX1gH0d4CWWP6jbpNF/HdcJxiqfYbPcuXj99vDfL49Ozy/tIbi8eH2+7NqGLuC7+q5RtNdIqy7cnU8Y73XY3d77IPxq0WiHT6FpNkedDbtbiEyq1VVNMplWdV5GczZQKOzJXF2t6UlIU1PRyIq/aeSdoSTn4grWQwoZ9ilHhwuiYOKl6vqac7V0Qdzp2tJ8MWImkht+xUuWcQr1re2njU/aXitrsaH89actytXMjEgpc54uRiiboEyArlx/61pFAU72g25/DOgvWN0NLjYhOfPe5Zlj+Zc/oZy1LJ6q6hvh/WB5kCoEAQQcwZWg6ztBj1qXAWd6qeugyTC718LW5ib+/9IGokGDei6iPkQbRLFrrtuiw4TZVQPtgF7vctW7S0vuWVPU59B3E3ZK0nn9zR1q0oF7zm6y7wBItfNFgKnF/iailv+pFMJtzzSI6qj0EMVmVIHhUDNQUPQoeh73f8LRtYj8dJrLG/AoqazWmX6SilwcnrlRsaOvDmAibCnj13UAChfccJqT83+cQqFuZp7pNfejG9QOWMOCbgmkxSB0tWdyDDJfdPDxQ80FPF6MokJTNzjY0JwmRGhqKswvc91HDFMFWQnjrVj+AbdaNKyHQrQA1wnQl/vZ6YmOeTPfkKa+LLzhDVv8UJfypltTxOtwVpbzxgSoQcMq3IhRFiyoof+sBBIFuGbQLube7husRq2QpjPkFFiw3cZ1OJxtpfoQh9/wS2h6f9DAQ7OMaFZQYXiKjpKPxrWvZh/TORUzNmowda5DB2sjyTW3y/W90LF5oYBkX9qwGnnLngpzTK3q7McUvoc2XiRo2nNOOW14nhOGhibMkHUt10UWmxkBYVMedeigZalkqTg1LF88RL1Gu+dQghO2CIWrz21M3ffcriEwmGLCZ5WsdL5AaoZ3ApcHj6IO2THQkJQKcnI2IpRksrAbAMbQSvCPREtLJwkh/6gxS/MbutBoWm5e2fTGw+Tpfpy4L8aIsqaMJqwUVTtRs8pn2YPRNuHl2IIyThCs8YhkrGRgnybSyQyk7vwPVlmuW8EsVCdL96e9LZ7FJf3iOITm0ICqLq9MKyOFLGSlfctDwHv9dQDQd13DgZ4dnJ+uddJs7b3NaDqvbU2ISgyGZD039O7Wi1ftNTeaXX7T6VzLR9D09rdsoOJnKWc5I69fHzbw0ROYskwwZPxas8ILhKBAaihU7474vSMJZNHdrdprNv9Cwr4Hsk/ybyM0OH7TLD1jMkm5WQxVZOSQm0X/7ryRwijW6o8E4EhhuGBisMInp42CJ26yDnynUpk5OYBgCtoDZCWMWlxyLXtSlh8HdTgFOTl/C/nFHQgPD24Fa6jddCD1bughFTTrYsr357sHnBmTl6Cc9837WooZN1WG93VODXzoxtz+N1nJpVjZJ+svnycvtnb2nm+OyEpOzco+2dlNdjd3X23tkf9Z7QA5oBFn9b1mat3fxy0DJw3tC0eEoskBpTA5JTNFRZVTFZc2MnO2IClUdrBiZ6PQgrs3TdNoxF0b55QJdC1AtHwuMVJowlSdFO9F2/qGQvByUs4Xmts/0LA4Iqk/1nEc1qk0Fk/2QZTAsWt0ZWQBF+SMydCssWPdmEhtpFjP0s7eKDbjUgx50t7BDHcdtPVfD2+Da6Cj5mDqPWm/VmzS6oPedmR2YOh3Yq7WHvrQMst1X68pCx32rY7f5OTsesd+cXJ2/aIWPlvyVkHTAXDz5uDwNqhJwzJrks9w8K5eWDXTKV6QchErChPoX3l6cBH0b1fxgTvJrD6zkpSKX1PDyNGb39cimbd5VkCbyyXNyITmVKRwWiMHoVREycoe4haS7TpLuVRqw4NSCGIE2PG/YRSgBvsAqa7Th4uZT5PhWrkunW34zDwbh/bbSBwDFpli2WWf9PiIfd4gmHA2Z9pEk3oc4dwjWEhZsiyAXE280Bm2POoRO4oCcWE4p3FOpSIrUymTGUjwSSqLFcI1WYk+t6sIohfVBRdlDGu7QKUHlnJtNSrXdwd03JxfuTQe9BDqajrlH8OI8Aw0ktzf2MBH8AmrSa0l5ALDe4xE88BHXgRz9GSBXU4XxNCreldRJ86pNsTcSJLTCcs1qt9CGkgFwFpGdu0Xr490iNxdSWVSXa10b8waGQ2SMLK8hO3/AhTBplMGJezsrE5ycXv4jF28PloboUvkSsgb4W1hDbCIQ/3ImxsBRSWtyd6NhykwHeJpzxuGtXisMQTU832TDZDMbRRTb8RytAPfN8im0kwlw1JMrHfVOS8hcily4RA5vY1jUEFeHx2c2avgAFd8FIaKSWW1uzpWUJ4PtDgr5BOYwEsm3fCvZFrl+SNn/n4184td8KomdkkwHagRd/jV8wlThhxzoQ1rNd8H3IA19asRIDrUBqdAXORgzsTbyxE6h6HzJ4LdccMHsvUQKsI5oFIc7wRO1gViwNBXX7gR+A6EmRoZde2LIw8wFhgZlCBUSLEo+J9RcBqiMHx8j6WM+ZSMYRXQrU+5D3Z149BkMJViinvVjnYQUIO7dtcQX9mxj6juzex+FFIKmhbM2YXi8dTgr8bSzkM/coKFqLnoLjriaRR4Wssz7MuXRK5h/9XdTSj92x1Ho4l/w2BJ0FHq+KeMGuqAu6GapDLPWWqijuuNVpWhTeWUiwxpLVB+LmfakXyooennhrQU9LU/wA/GyjkrmKL5gGVYj/0cMevz8W0e/Gd8CjYMLOi+1qlCngHxgC6KLkvtS4UqBkn+Guuwjt2AcLIzybQVx7oS1h7dme5ubk4byBjkqPZUoQ3xD0JghABCjIFMNTVBa9CiVFxH/ExOMdlEyIw5c2FjybWHLmSqA8GAXJqxbnn3kLPaKSEbA+MyYwt6xTThpu7nH3PmWtK2dGoJ0jdYhYMhWIdqmykb9sBY3YKnVU4VwBuGZAU3vmRyO4LsVBrnNuaYWyKY62DAWP2CxnPZAAPiwmUD7XW8ZuSgxshvvKGpIWP7nrsu7O0BHy32QX6iPQWvs+cv2S6bTNkmZS/SnVcvt7MJezXd3Hq5Q7dePH85mext77ycvmhZjgaxXTYELU9s6NePuBNgqxWmJ3pehDKr7mTCPQyJOY5eaJ7LG9z+jGuj+KSKI8fdGC4FQFWQFBFMmFDot3n1o0HCR1toQyFBFyxd9QkRwcgegX+C36ZUwwqOrdLGU5cR0zhFXgpod8ZP80qbTrt7K3v+yKjRfYOg5uguOKifXIYqAuFRu5HjWl7BLK6pPRiA7rj6dJeuWLyOdXfcmkQkMzaoA8VTEw0kAVO2+ExECeZGIi8KpGRH8C97ruilYfsbHNMooDSusAFpteDEx7SjUbQJfumBLdb+j4mvmR0GdddJgMynmPnRlqOlFkuOQOhSVAsA+yzueRRd2CRUR4OJBcFO71O1GidZMi1WV2upa06vmfempqw0uLgwG0IMKPbClQPS5StFDWeipA8JJ5qLWcX1POxafSjhSNv7glRl46p395zUFlQSS9GuzoLDi2DaW6wDS6iHb3GhJtXUDMZTzxpZR64QcOwWVVCBIWma9YgJfr71TfdPqzm0jlI6H9WTi3nCOH5rrU3pfqCcexB5fcTzg+8JeDGiGggLBh23R55tyAnhho4Ec7+SaJJjv0EnUxxEqjAGVawFXfuE3sJ6b7zkNG5w1fE9XLexHb3xtI+zI39vFsbzGxKC8hq6RXdXah5sJMmlvCLUXkmYiccMNkNp6RZRLb7A3bvYeJ5sJzuxngWxew01q/7mDi0Ln7o/ktMHB2JPA3AObTRFwuZIUcjmPcGasfvMRWx+kyGFLjjyKaTwKaTwKaTwGwkpxDPpK0zVjOQrxhUiSE9xhU9xhY8D0lNc4fI4e4orfIor/K7iCuGy+O7iCh3UZMi4Qne13xNPR3MXhFafWhlC7Xpj6qJUNmIUBWVLzL75GMNb0ZF8Jj6+wRjD5YW6Lxho2EPzXz3QMBY1nwINnwINnwINnwINnwINnwIN2wT3FGj4FGj4FGj4FGj4LbO0zw40hJ4pCIxzgF3U39zhAHP9HiwN5lRrPl34yCVs8g5lNmmaSqwsA/WrcC5i6EcpZOFNRv7itzC/4UYxcnBx8X8O/51MFS0YFOXtDT6E+hpSwTqbgLjZQTWiobYqV6GKJ+h+bsyTo/MROf35p99GUPVyzQc0hA7iHlz0lOAaEgNdxZO/ARS+erMbMS5WavUPJ+yFslRufxw2UA9d4UVJU7Oy1pyFpXMg6uRvXv2q1x5qRvv5XA1bLkCXAXGNpnMoBBUqQYINzYDb1dM5TDWCHUpTWZQ51xhlNJM09+BFVUSFPfpWt0Yf68raA/yOYUu/AI92+A1TBu/+tFJQQSgUz0SbrSefhhiL+wy/h80IMZHMqs4Q5we7RX4KU7mxeMOuTLzMHnqLQcAVlM0Ss1CClTAr4GMTCkO4mFn9FRvOS0UUM0rqEiXnPAKWzma4PF91p3Xy35xcvDt2R6upfCEpD3bDW3rmqF4jMhvU6HH3D1c821dbijlBWOQbahT/SC5wnGbx01HctSghz9jHJNS5o8bQ9Cop7JhQ5w4h0RsXB5ubO5sbYYK1NtbwgT58fSFJI8S1LI+7Gl0xN/3yuEOW1oe7oYtBXsDp9PUgK5V/pxh80Ai1vOEvjS9xpANTbOIV97n/VIf1PjpePTB642Jr59Wru861/f0WtP1FtN1GEPR3uk23ix237N3X4SxLY7chWwzEXJbH7oPGCLh2ZfK8tuBqxD6kMxz9/9n72ua2ceTP9/MpUJ76l+MtiZYc23FyNbfl2M6Ma/Lgi53dvd3aUiASkjAhCYYgrXg+/RUaDwRIUCJlaZLJzdTWVkyRQDfQaDQa3b8G1Gwb1tEx7GcsLLk++FcYtBrwEdGCk3gGNhmFSkoAShk/IHzPKODvDyOSFQsD0FkZbJKEL8HJ6Lk21kleSENNVn7tUZsupNliZ5UYbmUVL5pGYEQqtFXZpRSzqMzNYxWCaw1pQ+G9vp1cXVz+cjV5f3s++ef13S+T86vbyfjobHLx8mJy+8v50cnpD2s0jOFcIlhYY7ejUbi5ejPUNeh4gdNoiGOWEmfWGATXG6R7RRu4yo3owxlIRlUmpcT1HJIvYVxyeg8K8mOTpUm4wDT9iDhNQ+XxtksUIXlNIHPADGRkTHkzTufN9XUQdC4k0kbJjob4XBfwscfa6rwRHe+MfnW0WUA0ZvtcbDQHVcCzngVcqPsPN3lsRnNeOGKhM2EWJqDMU9HBmZnhZhO1wHwRJNHJjubnwlFQ6ZzkWS52xAqC+c3lCYooHBPZDF1evTfT6EZ4Q0Jeh5XzSmZVcMoLkobqNkmC7oLfURZ4Glh7mbmUqiZFegarSopllpEcslBgvOpLZPTq2enFs1dHFycnL19dPrs8uzp7efbq+OWrl69GF8+vLjaZE77A4682Kbe/nI//9LPy/Orp86eXz5+On56dnZ1dHp2dHZ2eXhxdPh+fHI2PL8eX44uLq5dH5xvOTrXjfJX5OTo59c+QGUMrp+DxM1S1KmdqO+vm9OzZq9PT0/PRyfHVq/Gz89HZ1dGro/Hp0dX5y+OLlxejy6PTk6vx5bOzZycvr54dv3z19OLZ+Oji/PnR5fmrzqUpFI+U83JnJs9llaOli08Ke7+c/kZCc7UuKdB/gSXn3Y8UtHRjluoDePH2pzcPl/IK7D1jBbo4H6B3H366Tmc55kVehuBbvSM4GaDLi5+SBx04cnnxk45j6D6Av+Gnu9rH1aUQpBZX4fmyX5V3KozqBVvKGM2M5ELYhJDd3r4+rAxthBY4jfgCf2reiUbH5GQ6PotOpycn4bPx0bOjs+dPj47G4fPTKT467itPKSsmeFZ0Eqm2WvqXuCCHdzQhtrEMJXsVnrljFXCUMohnImqxRmIp22vTU/9//2h0NB6OxP/uRqMX8L9gNBr9u3PNWYvfKaR+/oEMK9uoM7Pj589G22BWIrptOXigVq6OMxTiOBbqMkW3b6+VVi1IHDtw+fJuZMF4kar6fs3KIGr0KEdY1rhSF1fqVBWgf4oxtrS2eNMp3FIrfjwnYtgzqpKE7Jg8lSbUGPzlchmojL0gZH0HXKrKr6meGwq5UsRmWNYq5ORBV+h89+GnS6eezrb0MC8zeXkzkUfqXaXCmdOV6sZvOzhneflkQeKYtZ5bWk7zRyenk58v3ojT/NOzY8/bVxeXHd7fD4Kg+2Iv83oh6l07QUSPVRkWuKqE7Hc5xgOpC1VtRF9gDydhdnRymneuPEN4gacxCH4HTqeMxQSnPoZeyp/QLMYOW3SmnV0oJXNWUCntSwxxcSHhfFbGCKdWTnuOUw71rZRPLUUkDfMHqMxXlGlK4s4H2ZR8KSbavfaHTqXx6cnSOpJuEgXohsiJVcWErSBJyC88f3teVVh/ov2YQnlSnMpSVphzOk+F5uCHRcyHwImw5gUPQ9lu6w/Bl0WRxD/iOEuHmsYhjfhB7Xylau1X5nvMlnCzzJtSJ6g8XFsayI6T5mWyU4GjvOaIBYFT/UL4ROXrSqWnS3xbk9LOYqZQZ79Jr6Gira/XsMnS1/IatlGy631tB15Dey42moNv2muoyP1uvIZ6tv7MXkN7Tr4Pr+HXnJVtew1rs/OdeA07zpB9WP/TeQ0Vjzv1Gt728g82/ILVVmFh4n8F/6Dq/jf8dGdHUb+DUFX53JaD8Onz4+PjMZ6enjw7OSZHR6Nn0zEZT49Pnk2fnh6Po57jsQ0H4R1NxAEuyRr+MuUc+hYchBa/j3YQ9mX4D3cQKmZ366+67eyZqqlkjwoQJ0u9soOQJTtRAbutb/u2BJwQJ09R71QZzrnGHxPPWU7nNMWxOt96JCA46jzZqpNdOxjeArAn/Z1E8hAOu5/xL4C70mZzHYvFumr+Jh4qx6FOftQxUdaj9rioywpkVDfix6yFMKbfidbHWB5pclbOF6zUqwejhIY5MwjLebigBZGSieNYHGzEEfiekmV1sqoC/tUisAhHVuoEysnnkogT67ASEl29d0mm+nd9fJrlLC2GJI1q2HhDwc7nkuRi44Hy+YqPCrNhisNP9pc94rEE9TsMem0HR5YdV/lU5/KJJJdXvKkEGZmRWxUeVmflKRG7DirYnAjrDyxD02SVySfzuvSAi404lpNnAU8WJB8qrw6xRrKRUns8nT0/mj09efZs+vQ4wqf4aUieHz2PRmREjp89Pa0PrymV/HUG2XRfG2r9XOdj66R/g1MDORkJwbzMFWwDJPgYYGdeWldBwoI24wvRimpfaAzfaDQbnT7DeDTFz0dH02eWVijz2NYIH96/XqMNPrx/reMfNbSouqMAJzesU1IQVeYeFt6H96/5AMIg1ZtaY4kxmOYEkrJRxJapEAmGeLggCRkY5IMMFwv1PUPaj9dloe0241UZ2zqLLY8HVW64ez225+LccpYQhTSLYTwT/CCDdZWD/PpGcHsohlCMq0ynjR8GIBGsLAyqoGlVZvBfq1s/0bZM4bcwaSQS55xp5I2P6mpPgQg2hMZzw2euGbQneldDe7dQQbY6n5MrN5hQTrpzjxmgVoMZljKPayiqtSYolxidnADOOS2Ux3MgZjFlhVCF+QPETy9gvbnf1xqPCYYkwozklEUoKXkBjUyFrgvjMiKRB2ZBnpHh5SlBe1k636v8HOLzvUA8a85QpnZAK2ltnlTgMFuflRuWFxZYqhgUOPJIcfrxoyX/Bcv2aoPz8ceP8tDiQlBoomvZt7My3qIB9tVyG65nMotfqEBIhqSJWNIqIRIKu5ecVAv2wfKVABhodcahKfoo5Fm09xHuDsH3AgteAZxzlBNxOgJTXxySc3120AaPi1tqo954wu1dDfDi+PjpoUTn/fvnnxy03h8LljmzpxfkdzCD+x/ShEWAFF/pGRB9jjghqTOyTcQvq4xCatBHE5bSgglzXmoANoWdOzKbwZQIVaMEZyDxyDG3RQHDZSvgNMs2xKeQQVCQFP1WApRQdXAE3SX20TpGi5Eck6VrPjPNYrD0l5gbQgfOPu8tBrKREInWWn525CvDnFtSs/V7OdV87VQR1GgodgWhcIOLRa1vS7eqAdqrkbMDpDIbIatBx/Hx04bmOD5+6hAljlAPuzQSoAMlxAZzEeiVv6h7bx8Pth29VxO2xt71d9i74D4vsh0Qdi+AwS8NOmO1pEx8CyvUSlSTvjuLdl2mJpexWtDftCzMWwOrM8msNFNMixJIKUUkyYqKHiBdvvlRfV0DkHcqPqApKZaEuCEMxZJJW7W2QX9tdDShgv+CRvt2oNHkoW1XQnALrbfrRNht9mr7rsyC/PjCa3dKelv2Ldef8BfoG/oL9G0j0LcdhhR/UM17bBSbAse5o/9eU5UPHHf1ihEOhpKpGgGvSvMWMmfJPTbnC+VncKtIqCRbIR9QQgfK0wEQtg2IK55QwtWOqpGkUMIArQZLFzGN9DFZO6JwijDE+yiDG3ZrbvmHkx4QMN8tXt/XhOr7C6XPi9L3vQP0/Qmw+b42LN9fiHxrEfm+OhjfXzh80qiY4Ll2I1qmBaqedjAwZBvazKjq0LKEKEA8NM3Z0rpDtNH1HpSjiy/YEgnllcL1rr5VhvJlIUuEcWjO6upWvTSk6nNyD5uAmEKUf4CWUL3Vp4TeLHSBpnbB3AlB1dA1iLrFM5xTh6hv3glc0wOWfEwc+ajz+ob9TuMYH54EI/REzsb/Qhc3H9TMoHe3aHw0GcvDzRscigf/OkDnWRaTf5Lpr7Q4PB2dBONgfGLIe/LrL3dvXg/kNz+T8BM7QKo43eH4KBihN2xKY3I4PrkaH5+p4T48HR2rPA0z6DyY4YTGu/K6vbtFsn30RJ+JchItcDFAEZlSnA7QLCdkyqMBWtI0Ykt+0EzOhTcbdH8fVz7vMpJjCyhR24ZwGtHxuSb0NocyKS1lnaTovGG/4XtSH61PJE/Jrsz4Bg+yN0O2DD3Ay7YVchwcB6PheHw0nJOU5DSsU/+dHAFa5lpf01sz3Ta5/6qPjLZO/6iZ1f2p9RyStGB8gMppmRblqjWM8yVtrOHdhgY2iO8qj+NRMK5ryt2SWissumLnFNrdsq/uY6UZlWX1j9fnb7vYVOI9tzin9PCbwvNno6Ng/BkVeP6EH9h1PrUXBXPp/sIc0XQOMSPCNCfyn9A+5pyFMptOlnNO9ZUgnBfgQCG4NhDDVt1T2ZmqhGzQv9R7b+XNaCC493GRk5DlkWiOpvNYcVvgOUDNwhVqCYEIkDyoJ88qJ/15SNPhZ0TSEGe8lFTygTru+ChDzm2nKcWlmraBcbG51uUk5SxXSMT/JuTTAP2T5oQvcP7pAO4sAQpX4fHqyso5ns1o2BgJmqYkb51V2QSSLynmqgnm6Il2palW1W8u/wctTK5mzwGl7svlCvYcTAIIytH3VOIkGkVUSZamx5EVKIMUyXBpNRwFns9BF6gm3011locl3Fp6A1vKVS6vR/7066pJI9v2cRbi182qUKGU+hAcUR7mBA7d9RWm2gQKrPba5sUq36RqNw3kic6u8tTjaLMz5wwwdH0pLUUFRK3i2M3oN/X1D2s24j/g5PMuk4CNkgM4MvfhgZUFpxFZzYjR+mWckhxPaaxLFGr13/ihfR8Q24DTUAcnPvZ0jRoefZ24f282sE64kwpIfkfz45RTVwaB0Od2RDkwUjTGBcPtjsEe14D9KvRGm0RDs76fzGwf6CUcX0Rftx9urw7EP8DMxTG8aBqtPsAFnsJOlKNXat0eOHdvFTbA5xLHD3xe4jwK5L+DkCWHn5dkuiBxdjhjE4ggiw8/pWwZk2hORNOHDoMTjctKeLAokv/8H2jIEOYORvXufw+80UE6NFFfrzRvv/b/s6f52vtvD/gdD/j8LoBw3Y5MUokzCjxkeWVZOpNTHdLtoCZIRgIEh/Ce88MGaO3FP25vu46ERfE3eypqjGqt/mpzSGHxqT2Lmy0cx7Ab2r35vm5ZHuE9sfB/QYcdzvBnEPP4x/CeTOA2cWIRxydhTnBBov9cQKEM062tWymRe/HVl4xxoTku/nFlc/jfxvxepyjB4btbJNPg0FEwPgpOB3YYjzscKlDw/c1Fjyx8kpYJHHp2ukC0FrVuUCzYGspXTE1zcfimyLM6rroOwY7R4SXHSjU8ub480IETqqJ8VkU9+zdLJC+wA3Rt3zmrGvT1DlSj+n6qOa713aOr6C8XuJhQPhFLgEYHStbrMm5ab8j69eV/PXM0PBqNnw9Ho9GoBxzMbpHNz1FOdA3RNgXj2M9K28gMkoQWdC6PP2Ys9GQY6Y9q81IfGP+MhHM6nNJUPAV3Xjinfxf/+MmM4+l43GMYheBNdir86hTJcsRDnPpFtcG84GQ8Gp8FfYRCtJ+SPLgnacR2lWF/55brbmzwQAKSJDRxx0mKp/Eac91miOUkEJZXB2ZmMcPeYuz7t6IZGQ6T43Surr5GwUhY3ONRMJLORPinxp5aEJQwXiBO7klux5q/FCYmVy0ycfoUFhvnhPME7tpAa2cxo4UelIQUOQ05eiKh9dE9XOVX6ScyzPsLFCrPcnpPYzInKplL3RIXJJdZbQcDVUmlatW+8xVtmHbFZ/McmoUyXDJqAmg6UKleIctIixHgMb+0qQ6iO4wUFt9Bw1I9CU76TTFJ72nOAJ+r01XWHzTXVzZZ6yYdpw/IJDGAlKgZGqBNZgguZGlOALPsG5iigiQZy7+l2blTFK2bGLj7SXBRyoEWQxopSD3gYuDs13quwu2ti44jvFtfORzk32LtbXG0tjk6P3n7j8uDarMXR2Na4ILe28go9yQH+cTpJ5rOwUW995ot9wZo7w2JaJnsSWne+4XOF3swBeKYhu6PxKQa9WlaBEngdQekhGAwfRXQVdXW02CkInMfwIcYkRlN3UQu0UL1sjNHlhTBG5QjtkwBNzZCCU7xXPqeXl2/v70L3uXzAbpOwwA9gQdCeaIPt0MJkpIyQAWcUeuolc9xasq1LBdMKAPKdTJkwdCCxBnoffCocxKCcArLFvSEsL4yltolYghOOMJhzrg0nJcsj6MWEU3voyClvAjm7B58FkOlikBcm8pAXo50E1U1JTu0Lsysey0MCGoVoweKQm+CuvxLXoVCILGXspwWaiJQTuZY1p+0VMBmI9gw4kU3oenaO4pDMSAv0FSW08RpuGC5/HMY6iOz8ke+lO84I/O/oe0LnfOiylFOoaihurrQUZGwlOJYZcuJyQAnnM97KG/LNBLyiunz0CL+uyRZTkKoozOEJEvZoA59kn9R945MaGj7kg6hXzQSs5px9bND6RRKYNKE/K7jcjShOKYmbS/DxeKFcqHWXk7oXB7xX6AiL4nbuhwbp1lmw9HIPyY9RsbMFFhwsKvMyxymR3bm468xCU3exFzZ761kCxr1zm6zYa8orGxdDDAH+I6AprzA1XF07TgBYLn8FulvEY30IgljVkbVergQf+ptKReLHke4wP4l8kb9Km2L0PkUzq/VtQKOogm8MNFNijdDwrk8u+gV43ANHwRZzoREVOG2VcK4/GX4ZbV82CFf6hOxbn+G5A/JsVwgns5pgufE0zVO6BBPw2h89NSrXaver0UL6PrSHMvlOOmpULL5IzoXYgIvsTiyV4kmSAxcYIYEBnmNnHlfXilnVh+awOrIvrobw5B5v3dPHZZOra+u68fqLcHhgqYEFEynztQHgfVB177sU8akgzZd/VXXXpWMd524xvrq2k9O5pURvboP51Vv+1ofRSz8BLKqFNKl/tuzvORviBcYrqTjWOLugDaSv4l1zRcsLyZyW6jsLG0VyP6GRhm17N6GLOS5LHQ/cZSI3Jrsyuv+wbIGzP+Jd9BauhIap39voOmsBdWz19qX3TrdvDuV+ol+RHfvLt+9QL+wpTB9Egygx5z8vUGLY2Wg1ZYGatfnyOh0SUKgJVfs55Xc/iL/8jRync6YLa1qWxCfI61rLAEVz73iqfaNq4tbO6KG6hiSgIQ8eEgUGv2P6koYq/ro4ihVfVlL3WAGcqZd0tunxsmv8EOlrxveWTUicPFUTXuzX8aDaUnjZpfNGTW799747HI8er7XjZx3twh6sN3wfkJCFhHvOlhFCy9yUoSL7sToXmSCVvpgJPBTOSV5Sgq4F1Fy+Kv9zNNu9bsx9lzLrWoU2VK4WqtWH63VrA7Rq2WuPuIZi/xqp9ditkYgY7LASnNyRVelR4dv2tMNi9CH68tmR+L/eYbD7TFVtdjsjEUNlf/IznT0d7MzpS7/9mjFbP08SXCW0XSu3t37W8dVZFGsNpIEZ02SIYtL3q59c3RbtPmJzwkUYuGk2O4UV+22THREspg9JNo7sbWOq3ZbOhaGIJmV8dZZthpu6XqNHbRpx6bZtd36jb7H9yvbVRuM0uXV7nJjHnjaVT9W+4o51Pr2gapt1GsTIF+6mp2qh4B8IWFZWLejyGN6Ko5xllTc/qyi4s5v3vg51mgA0mNYMHSPc8pKLr5QobNt7sHKG9LHPXijv1IZNy1N2jBpPdq0oQ4cT1SBk6z3RJW8MU8WehOC29kyLV6gcTdxrdC2lW9HOmFpqhF5Q5ZGXJUi+ZDSL4hkLFzU+NGAoT5OWjo/r9DCPuSxukfTIJ9gtOI0UuhkqqGHFCc0dAPQ6pa0F3mmfSW3j8ydXeCpDjEDwfwSX+bFXuUXRuye5MucFqR29PIAGG5Kk2hioBGWH6QXdIg5J8k0VmBxHmpNdIquwx+yZA3sWg+2aqAwmzG2qDnVa4NtEd5nxC0EtJYFs0YEfGhnQJEFddaFjgoYbmNp9AHAycFx0d86EWSjsG1K0Uo4NUlZE0OtM4U15NJNiETnphV1oQrQQBjFTMUzAZTykkxRhucEaaolUulqSs1Bvyja1XgvnVUvkrPhOiqKzK7iYk2KwaKF+2rK7dj9TlNSh9L1cOzzbjiOzwWLnClqs7FWzqvFqmyyL6crmLXnluCoKq9p09s4tiAkY8WietpoJ05CnLKUhjjWXWp+FCooidAvd3c3DdQDVI+xzEnecXRbL7g9JL9XTVexvy419odNmamFBnQVGvtAUvJJyCJnUL3Gz8qRhst6aEzG2KghVqxIKh1e2iWkuodN7cKaFmFNX91K2j7wyln0VhAnwQbsFDbIIVNxIppcFNMZQeFDGEMmBslzJlGxWBiWeU6invx4BL5N3tvFfd0cdBd2PSeOwpW+hh9aqbM9BBnOceKY0SvdC7Wf63NY+5mHOCbRxA4fE/+JxzSdT2Y4LFgulhb8V98RYAb887JyGM/RLIbihOD7EENXcpIPVUBRheYozOlCwgkrPgCWV4aaq0Kh7sC65S46bmYtVN4q0BXbNd5+qnn8cf86SeRp1An21dAvJKGFKtvq2wta10XrzrwJibXs723RZsWiPo4+PWVWgx4HfeqqYa8ub8zzirleRewagsV/CqkpITil6XxWxt75Bxdt7du1AxvjdF76/EFt3Hr25AazG1o7teiLeY4TwDHSNEpkLB8FTdHdmIiaAHehwxgBZVpQzxr/ykOpyPoao9fStXX4SciS5Z++tSEzhH2NQfN2bpxqVS2dzc5jdT4ee1N15xb+QdeXQaMPDl6NR1713jXKMeGcoH3V9r6Es1VZaBBpaYdeVrexLe2krNBkVsC4gNPKM5xyBZFRkC9Fkz0r3GfDQfxVvgzp3DrzWmWgh6bisdLz+7zCRZ4HaF+dT/YHaH+Kw09CENLoNzbdHyBShAebmiG+HNoa23Yiq91Y7YcVfP8sMZLEK3Se4irb0CkZpdgPmUzVNFAoeuOT4/Dz1R06FFYiP3xBo/0Dj76JSiefFLWqG5vkjjs+eKS9w1E/vVXLoky8H9SpaesatbnMPf031ySJZ5NO29WK+avVxbFmTUipGm1ZxAOlTIGvonBB40gWsi/TlDqj8z0NMRT4itiyn7zVhvhCMK2cElUokGmam6ig5s7wyPF0j00Z3tKG01Fb9rvh2ViBvkD70TTIGC/mOeGf4wDcvUKZFiTJYlyQgORCl+6HOFwQpVQ9uoWX051wdo5mZQ71jng5HUb0ntq2AqSvS9iliocBctzRB3/M4hcSsr1V3y6j3hXftt7bVrt/ra9Y6W3rAspIfhuWGJhi15dOyUtUMLRc0HBhXXvKKpYcFax+C4zz+uXvt8KMJM17zVxh7258N7FFF83besaMMuKrN76KH2ZDUki2IAnJcTzZxjHhSrcmJtaqb461RjBxF+tobAS19Jt/ncFS+3p10lBVGcLAo4mtNyEFbikRYXaiOpkVzBS8JiEd2Kx2ToEoXNWlSk3UwOUQIwOZjqZF0wdXINLpgz5+1x2TW1+syj9lhQKtF7MeQZ2r5vDX+uctZPqCV21AM1ggvIt+2FXI5ZrxQt+ue9Ib1Om+spaljDVlsIMT6A9gyUT6duTIJsqNA94eTTomuANJnUL1+1x6GHBAiF/yX300pteGpnv8RuIA3TErBaAycsDOBOhKEqEKhHjlzNlD9XhLwBfus0Uit2uqdCcMoesC8r01sCcXzTgbIJf5sBXzOcLyxkLtiNUtsF15oRPbNGswTTueV65vatziQjHJ7XJNPYhhTpyi3JAqpOZbwNOz3nDwKzvJzzuTsKNH229psBo8dPCo3aEGxO02tJHqgsguDbe9gcit0W3rAoL7qLdra4AzkotBNyE2pG6oqkMulKwQFoVgwjhp1pyQcD63xccP2rBq3FcdzRV5OJ+XEqvG3Z/eSLjPGY1lGciCQRioOKZzknIK5Y2cHKY1M+HMhsecrB3XV2mlMgGXsB7h6gyo3b1dDwkOTdshqkHMPtdH002oApXxuJm+dQdFNtnZ+K6hOj/2+BxTXpCaa2cDns5V3X49zrIqnGkceXPqemza/kiUNUTV4TDOb97A4HszDbsf4Teipeq7KrLQRsMkwb+xvEHJ9KHo2Nkb8b2JtVShNWoQjPw0RbubL3Qj9g1uJ1zUTYWQQBDZR5wlQ0nQx3rsPn+kkHvNLj9XrZTrAlC2GMVsPpdA764p1KI7PCf2nkRcV0CnjyPBLqbYm4orKJS4CQHG9RPTyu/n9xCsyTfxmJQNg7J9GG90mUfNhSRIXlAaQ6ZhUwK4NOWogrZnU3CaRLr2l77P5ehfw1csX2LRkPiXLvjwr+F7guPh9Y2KLBTPZziOOZri8BMAlqM5vSdpBXBT6Ap3OUlYQdwKlWuHWjqovqGhrjxm39tQR4QXNLUvqTW4ReOH2mnCxZWzXm9A4UekwDTm1vHB6tUuj3LoFrBFyNOq9IWWskgDy8oYYKdk0cPfylTe4Ms4TTlpymGw31Ny1DAaUtrMZb8eWhEGXsNCZIk+kNiDonpXpTF0FCpOpnRespLHD+CutWRPnWnE/sRZQiAVTtZ0xim6vhkgrO8gZdnJlH5BnIlBDxD6v6xUNUEQjpf4wT4m8IKpA0eOl2ZdqAvOj4F68FEV1//B3X1SRAvdshCEEtJzC3kA+BjQTJawVOVYPw5QRDKSRqqSibxHqkBmYGALRKvJXL9tZfUJdEAHV+uEfakILD1gTZHD6oWswc1S0BGmtvL1zf2xYPD65v60mtLu1DtpVu30O8cKeYR6oaKU/YzdWOlXDksr6bJNm4l9CbbKXV6rVtmqdR9Rq9IqUmma20qxylaN4TciWwy4Wm3G3paLqZZ436xzNalB6FXIHVssnPiYgol760S9Le6rJearb7zXLZsVS6FC5cTiEHxWVKzWBY5ncvMRIzlAZB6opDUtYIcS0SSZNtbH2pXbwWpvO4n46nyu5LKtbGiNpPoRsR9Vrb2vrb5Wr79WI0tWXq1R5ToP22gylorTQrtZZznaQpaGJE81tLBb/vXx9/Xtp0xfadk1dCNvpdq6luGPGcJWH/LKo+XjncUroqy9PuF2j3D7iK/xFT+2SmNtWlWtRg9DPcLGVzFjqXiltfcewWzaXkTTw4KbaL89FmTZ1cfz0aXwq48tu4rvdhiTZXf7cLRRsV8PM/3SBLpxo2p6PmaCWsuHelhw6u1uh4NGldzH8LKuQq9jLZMvGcmpU9PAk13py190S7FUFVfsFuUtEIcou4cq8Kqeg6iRdBFy0XT9J3uPw7IlUAngYruHt7jTjEM31tK3b3mPFh2DAPtfcK1M3nbGQHKuOEBOYESbQLbsA38clbWO/XSayWkBet2VI0SRape+EL26RJv1XPIhwbwYD/EaC8cIhotM/WcUNs3CoQLi/MalrkFuL/FTH21zumoXRF9hBGoUGGkujoIESmZ0Hh6Fi/wnlmYNdv5tC7Gmspfs1kDNd6sxDRy+X1HOw3VnwApQZG6bjbukWXa1RrW3kl2h3w0BmKPCwDu/eYOu1COnW3hYlZiVgH8sV2B5Psg73TLqYw5dinZDnBVlrowgVeNCWEY5EVYa4CSp6r4KTUQ5pLCF06Hclb0g2vrFVquUoFbxb95/V5EoMDa9wk7CMs5y2gVIQdHVGrH2St/whDiO1QXBUlYAQllOE5w/oIzkGSlyXDB141wBQDQog1ml6XzyiTx0IG9VZqlq6VfyULtmlvAxQt5KDqlhulMPPeRLSLLeGaP1uEO/F0b5oWNxTsjZMm1O5Mp45zpSUJ8AvTstNvIkzkkhcXeMOKEFzjKSkkhhhUW6FlX1VeAnKyGcu3ASqM1PjPwC5qVWj5YiQPXSRgOLyvhRgyNbqILzTbyLQ0ZL9zW7Yl3nZu17G1vgNHJT59GK9PmuQ3ot4ZZYLuYdkgurqYcYRlzOFwVcXcoIR3XBKBGlcpQy3+qNWTPwq8c6OfdWMa0gxsX61c6kfmsFds/HyEO9+pUMOmiZf9Az+eQxCQn1ep6yyaooTwOVYucLsCoxGz+4mnT1WgRsqskqojYKKD6XDZMCaggYGtCV0Fb7F3DDnbIChSxNhcVYMPQ/fL8eVGwAUDOSQ0lQaAVRjnhB41hXe4xUXU5zcU4+lzjWIcEOhwM0LQsZ75DFOCQLFgP2V07gz6hJwXUKywxxWpRYg1LUWhUUQcJZweSCkkPPUcHmsHwNrj/X9wXKBtuDUEHpJ3sji6Xt+QGJ1UsKOs5UyYRLxoubD7IIH0lY/oBKyanBzqjVU2m7Y3DrACib12ftcfvSo7O591F+9lHffnDAv4y1l1Bx1JKpYnbVrFx9imsTy49hVja6FuMGJWeaVyz1dVKwAsdByvIkyMKmadaCwqajCzKShy401hrzUX0gZIvNgE7A6eGZ5brUIcUSFhnUEOaFD2QSIq0AbU1IqowSgHWpWqqCRkVPsjAoFAcsVJ1JpzVZflQWHx39T+NqTQrhhrMkP25MlBLsPnPVmKJaNLmemulD4fC3amJEu4qWJsoMDovS022fDRZaqFaxKq05ywnxbaXVkwqvifjuzBroG228r1Hrij7RiyaSprIRWWJeGCZxqGLMZKFPJg2Td7cBepei1zQtvwixClnKKS94halk2qx1msWlaDZcKJmclrMZyTk09+72XzLCCWHES8hcsYkTr0P19BSHkDGhpk58+k95KTRQ38OOUd/+mNZZgfpQNP6xIfBudktfiVdfWyKf1cD2B7Aqjca3FH1NZ64oXmWpzQ0Es6vyXCWbrQp0jQpdpUQ7YNpuV5FuW5U2lWl92BprosPkvYFvKgeOmCUKeCNiOHyZMFlOZvTLC7T3Hxj+/+51mlJOf9+luoE0AlC59zS3NaM9ZwvsMGLcc5wHze62T997wmXt4VtSoFv6OwmkNZ7AFRKb+UhmYVhmVEbhQoipeufJ+/M3B8EPtsfOwgzStXRrtqOFlrbGgBRv27BdjkLx/FDJjzLAKeGy6re+cbc+CnLGil5G5KOB8mpaWBBQU8H18/f6nAtjWMsIccYKm04eyOUfyvBVAzGhNz1hTtvfA8JLVVVOTCjUvAbfh+WEvTEP3bBTeEzTud8Vu6L8iGptg0Gtr6MuG8dKIIO6vmtZgl7UpbUrEKFzs9CMalf8RwOxvlKc6vIhPkwocKI3i5n04bAH6NmmTL41e4riTRNusMUyLSpCwVPmw/LEcczCiYyi+BNxrAiW5INdWe3SZt8ucF54AUwl035EkD4sN3eGHUqytl41xwNjZQ96MU/TkpPvYcbFBgVA8mkRP6g0tFZ+v6PJ7sh3K2rmo2oyXepcqQpoWaieQb0qk4eggjVBIBoGq/+6ffXMbBOtRWEiWdW8C5aJ1RR+kgi/lU8dYGUB/6mAE24szp9eAmfqvq0HmZsJkLnYAy90CwctNNK4Xtl0NzTeyoQyuJPQnfYjNaapn8ytLUSbxhjCbqQeaiWzaUOIX/9s4o6/gqD3lmi8E1neVGg7UNNHXB8hlzVKrNOFTOFMcOaeL26tx06/5gdglSOS5jRcAMJ2sTD+px8Q+kSnOMVSSmUnE4lNYkWpms4Dmwzv/YH1O9o0ZdlqzqkY4v92zZD7C4X4OkU7gzSr3ynqJDwIyDBD5qCD+ojyBbQ/bkUoOtqRLKZlGsUgEcStMLdJYMhrXRTNySUXnAO2Ir0n+mIPTkIqqxGiggp3MUhEZHsdyCfuEshw2u98fU/JUoLOa7lU7qOq/iSUv5logOIXaO8f4hvRFd+rRZovqnrnjzyqbwMB9PryCT+oEBMAERjcoE9M+oRZdRsDTu+IchvnWKZhRwB1Rr4gkgpFGjWTKHrmqfWzoFvB84HCJmq+7U7zHGXr++12iLyzcVA/0RQgunV2fLHQVJbTISC6mMi8yuMN3EiIa8DmHuhLfR+utTisPupw1oB+3rJB+G4246Ro6BoXOd9UztUouQ867gUYtCWxy3mpc9mDlUE0ux6Z+oGwK3f8IQ0bnPWqLKKioQh3oqFA7paYI1kEWizvhzRc5CwFxAcAbnCe+EZ++njLvc0U/LS9LfhSh/eJZlsCeXK25BM8m9nQdm7X/a3QyikjWke6db3yTdQhFFVvKdXVREzZ9lg37b/2Hlb20hgRG09Fm2PqlFT7zEsgWh10iNYIRYOc5gSJ/+4eMuJBp7Cqr0DMVQRFEpzCA/sHAbqVQVMVBs9UuhcBNRRzWGWBoDJo581jB2+JNwsMS5/IV7C4KIrsxeGh4jEIWZPjAdrP8XRKi+Tz/kE7RzlxMJW+DleaCDQlgPACIVsypKKN4Rdno5U8H34uSUkg9HHfsz03wwC3uU6h786rdO2K2p3U2fgBOsIPiAfYKZbR0MIVtUIAs3IaQyFWBPBSIaH3rWGgbdGWPYbCzNrKahi9+T+fK3vUcCa2+DimZov3X1C7Z6075wc3XNW61O6TZLL10mq7LDfV3Rpb5xaACIjIMb6oc/fexQjLCS/jR5bmvJMlf8u48NSTCmS1XLuysZhN8XAoiyJE7lW6R/vg/FPznqpR83dl7Vx/avgaxs7d4rVWUVsQBDgPA3HNpeBnIvhb8LeejGxUxrfJb4Memf1O0kfeiYWxX55bg7a6kN6YFiFhF2VSqrPXa/zAygLdLuisUIEVfmU6a/GUb5+6VzTnBbpOs7JAlyTGDyvpKqb+W9Pt0yW1xMuYhZ+E6N7RhDQosz03k/qVbn+RiHKWZRseNarQripSSrWn6jmaGu+rvSJbs1h8HG5msKDaf///2ittI+ExWFaaLJ0GYb3Z8v8CAAD//yaY5LQ=" + return "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" } diff --git a/model/modeldecoder/field/rum_v3_mapping.go b/model/modeldecoder/field/rum_v3_mapping.go index 79eed06176b..c66f3ba6750 100644 --- a/model/modeldecoder/field/rum_v3_mapping.go +++ b/model/modeldecoder/field/rum_v3_mapping.go @@ -78,6 +78,7 @@ var rumV3Mapping = map[string]string{ "module": "mo", "name": "n", "navigationTiming": "nt", + "outcome": "o", "page": "p", "param_message": "pmg", "parent_id": "pid", diff --git a/model/modeldecoder/span.go b/model/modeldecoder/span.go index 0b6a68c345f..f935883f459 100644 --- a/model/modeldecoder/span.go +++ b/model/modeldecoder/span.go @@ -93,6 +93,10 @@ func decodeSpan(input Input, schema *jsonschema.Schema) (_ *model.Span, parentIn decodeString(raw, fieldName("parent_id"), &event.ParentID) decodeString(raw, fieldName("trace_id"), &event.TraceID) decodeString(raw, fieldName("transaction_id"), &event.TransactionID) + decodeString(raw, fieldName("outcome"), &event.Outcome) + if event.Outcome == "" { + event.Outcome = "unknown" + } ctx := decoder.MapStr(raw, fieldName("context")) if ctx != nil { diff --git a/model/modeldecoder/span_test.go b/model/modeldecoder/span_test.go index 9a9ed39adfd..58b25356f82 100644 --- a/model/modeldecoder/span_test.go +++ b/model/modeldecoder/span_test.go @@ -45,6 +45,7 @@ func TestDecodeSpan(t *testing.T) { instance, statement, dbType, user, link, rowsAffected := "db01", "select *", "sql", "joe", "other.db.com", 34 address, port := "localhost", 8080 destServiceType, destServiceName, destServiceResource := "db", "elasticsearch", "elasticsearch" + outcome := "success" context := map[string]interface{}{ "a": "b", "tags": map[string]interface{}{"a": "tag", "tag_key": 17}, @@ -101,6 +102,7 @@ func TestDecodeSpan(t *testing.T) { ParentID: parentID, ID: id, TraceID: traceID, + Outcome: "unknown", }, }, "no timestamp specified, request time + start used": { @@ -118,6 +120,7 @@ func TestDecodeSpan(t *testing.T) { TraceID: traceID, Start: &start, Timestamp: requestTime.Add(time.Duration(start * float64(time.Millisecond))), + Outcome: "unknown", }, }, "event experimental=false": { @@ -139,6 +142,7 @@ func TestDecodeSpan(t *testing.T) { ID: id, TraceID: traceID, TransactionID: transactionID, + Outcome: "unknown", }, }, "event experimental=true, no experimental payload": { @@ -160,6 +164,7 @@ func TestDecodeSpan(t *testing.T) { ID: id, TraceID: traceID, TransactionID: transactionID, + Outcome: "unknown", }, cfg: Config{Experimental: true}, }, @@ -183,6 +188,7 @@ func TestDecodeSpan(t *testing.T) { TraceID: traceID, TransactionID: transactionID, Experimental: 123, + Outcome: "unknown", }, cfg: Config{Experimental: true}, }, @@ -191,6 +197,7 @@ func TestDecodeSpan(t *testing.T) { "name": name, "type": "messaging", "subtype": subtype, "action": action, "start": start, "duration": duration, "context": context, "timestamp": timestampEpoch, "stacktrace": stacktrace, "id": id, "parent_id": parentID, "trace_id": traceID, "transaction_id": transactionID, + "outcome": outcome, }, e: &m.Span{ Metadata: metadata, @@ -201,6 +208,7 @@ func TestDecodeSpan(t *testing.T) { Start: &start, Duration: duration, Timestamp: spanTime, + Outcome: outcome, Stacktrace: m.Stacktrace{ &m.StacktraceFrame{Filename: tests.StringPtr("file")}, }, @@ -296,6 +304,10 @@ func TestDecodeSpanInvalid(t *testing.T) { input: map[string]interface{}{"duration": -1.0}, err: "duration.*must be >= 0 but found -1", }, + "invalid outcome": { + input: map[string]interface{}{"outcome": `¯\_(ツ)_/¯`}, + err: `outcome.*must be one of , "success", "failure", "unknown"`, + }, } { t.Run(name, func(t *testing.T) { input := make(map[string]interface{}) diff --git a/model/modeldecoder/transaction.go b/model/modeldecoder/transaction.go index 44e44d06c2d..818fead35bc 100644 --- a/model/modeldecoder/transaction.go +++ b/model/modeldecoder/transaction.go @@ -163,7 +163,11 @@ func decodeTransaction(input Input, schema *jsonschema.Schema) (*model.Transacti decodeString(raw, fieldName("type"), &e.Type) decodeString(raw, fieldName("name"), &e.Name) decodeString(raw, fieldName("result"), &e.Result) + decodeString(raw, fieldName("outcome"), &e.Outcome) decodeFloat64(raw, fieldName("duration"), &e.Duration) + if e.Outcome == "" { + e.Outcome = "unknown" + } if obj := getObject(raw, fieldName("experience")); obj != nil { var experience model.UserExperience diff --git a/model/modeldecoder/transaction_test.go b/model/modeldecoder/transaction_test.go index 91e1a45c593..87774bbd698 100644 --- a/model/modeldecoder/transaction_test.go +++ b/model/modeldecoder/transaction_test.go @@ -33,10 +33,11 @@ import ( ) var ( - trID = "123" - trType = "type" - trName = "foo()" - trResult = "555" + trID = "123" + trType = "type" + trName = "foo()" + trResult = "555" + trOutcome = "success" trDuration = 6.0 @@ -68,6 +69,7 @@ var fullTransactionInput = map[string]interface{}{ "duration": trDuration, "timestamp": timestampEpoch, "result": trResult, + "outcome": trOutcome, "sampled": true, "trace_id": traceID, "parent_id": parentID, @@ -124,6 +126,10 @@ func TestDecodeTransactionInvalid(t *testing.T) { input: map[string]interface{}{"duration": -1.0}, err: "duration.*must be >= 0 but found -1", }, + "invalid outcome": { + input: map[string]interface{}{"outcome": `¯\_(ツ)_/¯`}, + err: `outcome.*must be one of , "success", "failure", "unknown"`, + }, } { t.Run(name, func(t *testing.T) { input := make(map[string]interface{}) @@ -172,6 +178,7 @@ func TestTransactionDecodeRUMV3Marks(t *testing.T) { func TestTransactionEventDecode(t *testing.T) { id, trType, name, result := "123", "type", "foo()", "555" + outcome := "success" requestTime := time.Now() timestampParsed := time.Date(2017, 5, 30, 18, 53, 27, 154*1e6, time.UTC) timestampEpoch := json.Number(fmt.Sprintf("%d", timestampParsed.UnixNano()/1000)) @@ -219,6 +226,7 @@ func TestTransactionEventDecode(t *testing.T) { Duration: duration, Timestamp: requestTime, SpanCount: model.SpanCount{Dropped: &dropped, Started: &started}, + Outcome: "unknown", }, }, "event experimental=true, no experimental payload": { @@ -236,6 +244,7 @@ func TestTransactionEventDecode(t *testing.T) { Duration: duration, Timestamp: timestampParsed, SpanCount: model.SpanCount{Dropped: &dropped, Started: &started}, + Outcome: "unknown", }, }, "event experimental=false": { @@ -253,6 +262,7 @@ func TestTransactionEventDecode(t *testing.T) { Duration: duration, Timestamp: timestampParsed, SpanCount: model.SpanCount{Dropped: &dropped, Started: &started}, + Outcome: "unknown", }, }, "event experimental=true": { @@ -271,6 +281,7 @@ func TestTransactionEventDecode(t *testing.T) { Timestamp: timestampParsed, SpanCount: model.SpanCount{Dropped: &dropped, Started: &started}, Experimental: map[string]interface{}{"foo": "bar"}, + Outcome: "unknown", }, }, "messaging event": { @@ -295,6 +306,7 @@ func TestTransactionEventDecode(t *testing.T) { Duration: duration, Timestamp: timestampParsed, SpanCount: model.SpanCount{Dropped: &dropped, Started: &started}, + Outcome: "unknown", Message: &model.Message{ QueueName: tests.StringPtr("order"), Body: tests.StringPtr("confirmed"), @@ -307,6 +319,7 @@ func TestTransactionEventDecode(t *testing.T) { input: map[string]interface{}{ "timestamp": timestampEpoch, "result": result, + "outcome": outcome, "sampled": sampled, "parent_id": parentID, "marks": marks, @@ -338,6 +351,7 @@ func TestTransactionEventDecode(t *testing.T) { Type: trType, Name: name, Result: result, + Outcome: outcome, ParentID: parentID, TraceID: traceID, Duration: duration, diff --git a/model/span.go b/model/span.go index a1f6e378fbb..8a2464a967f 100644 --- a/model/span.go +++ b/model/span.go @@ -54,6 +54,7 @@ type Span struct { Message *Message Name string + Outcome string Start *float64 Duration float64 Service *Service @@ -203,6 +204,7 @@ func (e *Span) Transform(ctx context.Context, cfg *transform.Config) []beat.Even utility.Set(fields, "experimental", e.Experimental) utility.Set(fields, "destination", e.Destination.fields()) utility.Set(fields, "timestamp", utility.TimeAsMicros(e.Timestamp)) + utility.DeepUpdate(fields, "event.outcome", e.Outcome) return []beat.Event{ { diff --git a/model/span/generated/schema/rum_v3_span.go b/model/span/generated/schema/rum_v3_span.go index bc0eb407a8f..a0d23f8bcb9 100644 --- a/model/span/generated/schema/rum_v3_span.go +++ b/model/span/generated/schema/rum_v3_span.go @@ -61,6 +61,14 @@ const RUMV3Schema = `{ "description": "The specific kind of event within the sub-type represented by the span (e.g. query, connect)", "maxLength": 1024 }, + "o": { + "$id": "docs/spec/outcome.json", + "title": "Outcome", + "type": ["string", "null"], + "enum": [null, "success", "failure", "unknown"], + "description": "The outcome of the transaction: success, failure, or unknown. This is similar to 'result', but has a limited set of permitted values describing the success or failure of the transaction from the service's perspective. This field can be used for calculating error rates.", + "description": "The outcome of the span: success, failure, or unknown. Outcome may be one of a limited set of permitted values describing the success or failure of the span. This field can be used for calculating error rates for outgoing requests." + }, "c": { "type": [ "object", diff --git a/model/span/generated/schema/span.go b/model/span/generated/schema/span.go index c70d368f976..5b563ec3107 100644 --- a/model/span/generated/schema/span.go +++ b/model/span/generated/schema/span.go @@ -93,6 +93,14 @@ const ModelSchema = `{ "description": "The specific kind of event within the sub-type represented by the span (e.g. query, connect)", "maxLength": 1024 }, + "outcome": { + "$id": "docs/spec/outcome.json", + "title": "Outcome", + "type": ["string", "null"], + "enum": [null, "success", "failure", "unknown"], + "description": "The outcome of the transaction: success, failure, or unknown. This is similar to 'result', but has a limited set of permitted values describing the success or failure of the transaction from the service's perspective. This field can be used for calculating error rates.", + "description": "The outcome of the span: success, failure, or unknown. Outcome may be one of a limited set of permitted values describing the success or failure of the span. This field can be used for calculating error rates for outgoing requests." + }, "context": { "type": ["object", "null"], "description": "Any other arbitrary data captured by the agent, optionally provided by the user", diff --git a/model/span_test.go b/model/span_test.go index dbeb8d924bf..cf52c54a1a2 100644 --- a/model/span_test.go +++ b/model/span_test.go @@ -55,6 +55,7 @@ func TestSpanTransform(t *testing.T) { Msg string }{ { + Msg: "Span without a Stacktrace", Span: Span{Timestamp: timestamp, Metadata: metadata}, Output: common.MapStr{ "processor": common.MapStr{"event": "span", "name": "transaction"}, @@ -64,12 +65,29 @@ func TestSpanTransform(t *testing.T) { "name": "", "type": "", }, + "event": common.MapStr{"outcome": ""}, "labels": metadataLabels, "timestamp": common.MapStr{"us": timestampUs}, }, - Msg: "Span without a Stacktrace", }, { + Msg: "Span with outcome", + Span: Span{Timestamp: timestamp, Metadata: metadata, Outcome: "success"}, + Output: common.MapStr{ + "processor": common.MapStr{"event": "span", "name": "transaction"}, + "service": common.MapStr{"name": serviceName, "environment": env, "version": serviceVersion}, + "span": common.MapStr{ + "duration": common.MapStr{"us": 0}, + "name": "", + "type": "", + }, + "timestamp": common.MapStr{"us": timestampUs}, + "labels": metadataLabels, + "event": common.MapStr{"outcome": "success"}, + }, + }, + { + Msg: "Full Span", Span: Span{ Metadata: metadata, ID: hexID, @@ -81,6 +99,7 @@ func TestSpanTransform(t *testing.T) { Action: &action, Timestamp: timestamp, Start: &start, + Outcome: "unknown", Duration: 1.20, RUM: true, Stacktrace: Stacktrace{{AbsPath: &path}}, @@ -144,8 +163,8 @@ func TestSpanTransform(t *testing.T) { "trace": common.MapStr{"id": traceID}, "parent": common.MapStr{"id": parentID}, "destination": common.MapStr{"address": address, "ip": address, "port": port}, + "event": common.MapStr{"outcome": "unknown"}, }, - Msg: "Full Span", }, } @@ -154,6 +173,6 @@ func TestSpanTransform(t *testing.T) { RUM: transform.RUMConfig{SourcemapStore: &sourcemap.Store{}}, }) fields := output[0].Fields - assert.Equal(t, test.Output, fields) + assert.Equal(t, test.Output, fields, test.Msg) } } diff --git a/model/transaction.go b/model/transaction.go index a8836a930da..9fc1872d26e 100644 --- a/model/transaction.go +++ b/model/transaction.go @@ -52,6 +52,7 @@ type Transaction struct { Type string Name string Result string + Outcome string Duration float64 Marks TransactionMarks Message *Message @@ -136,6 +137,7 @@ func (e *Transaction) Transform(_ context.Context, _ *transform.Config) []beat.E utility.Set(fields, "url", e.Page.URL.Fields()) } } + utility.DeepUpdate(fields, "event.outcome", e.Outcome) utility.Set(fields, "experimental", e.Experimental) return []beat.Event{{Fields: fields, Timestamp: e.Timestamp}} } diff --git a/model/transaction/generated/schema/rum_v3_transaction.go b/model/transaction/generated/schema/rum_v3_transaction.go index 98e395d5502..6a5518485b5 100644 --- a/model/transaction/generated/schema/rum_v3_transaction.go +++ b/model/transaction/generated/schema/rum_v3_transaction.go @@ -100,6 +100,14 @@ const RUMV3Schema = `{ "description": "The specific kind of event within the sub-type represented by the span (e.g. query, connect)", "maxLength": 1024 }, + "o": { + "$id": "docs/spec/outcome.json", + "title": "Outcome", + "type": ["string", "null"], + "enum": [null, "success", "failure", "unknown"], + "description": "The outcome of the transaction: success, failure, or unknown. This is similar to 'result', but has a limited set of permitted values describing the success or failure of the transaction from the service's perspective. This field can be used for calculating error rates.", + "description": "The outcome of the span: success, failure, or unknown. Outcome may be one of a limited set of permitted values describing the success or failure of the span. This field can be used for calculating error rates for outgoing requests." + }, "c": { "type": [ "object", @@ -850,6 +858,14 @@ const RUMV3Schema = `{ "description": "The result of the transaction. For HTTP-related transactions, this should be the status code formatted like 'HTTP 2xx'.", "maxLength": 1024 }, + "o": { + "$id": "docs/spec/outcome.json", + "title": "Outcome", + "type": ["string", "null"], + "enum": [null, "success", "failure", "unknown"], + "description": "The outcome of the transaction: success, failure, or unknown. This is similar to 'result', but has a limited set of permitted values describing the success or failure of the transaction from the service's perspective. This field can be used for calculating error rates.", + "description": "The outcome of the transaction: success, failure, or unknown. This is similar to 'result', but has a limited set of permitted values describing the success or failure of the transaction from the service's perspective. This field can be used for calculating error rates for incoming requests." + }, "k": { "type": [ "object", diff --git a/model/transaction/generated/schema/transaction.go b/model/transaction/generated/schema/transaction.go index e231f74cd4f..5dd3ea7556c 100644 --- a/model/transaction/generated/schema/transaction.go +++ b/model/transaction/generated/schema/transaction.go @@ -459,6 +459,14 @@ const ModelSchema = `{ "description": "The result of the transaction. For HTTP-related transactions, this should be the status code formatted like 'HTTP 2xx'.", "maxLength": 1024 }, + "outcome": { + "$id": "docs/spec/outcome.json", + "title": "Outcome", + "type": ["string", "null"], + "enum": [null, "success", "failure", "unknown"], + "description": "The outcome of the transaction: success, failure, or unknown. This is similar to 'result', but has a limited set of permitted values describing the success or failure of the transaction from the service's perspective. This field can be used for calculating error rates.", + "description": "The outcome of the transaction: success, failure, or unknown. This is similar to 'result', but has a limited set of permitted values describing the success or failure of the transaction from the service's perspective. This field can be used for calculating error rates for incoming requests." + }, "marks": { "type": ["object", "null"], "description": "A mark captures the timing of a significant event during the lifetime of a transaction. Marks are organized into groups and can be set by the user or the agent.", diff --git a/model/transaction_test.go b/model/transaction_test.go index cc26a38d9a8..294b4fb236f 100644 --- a/model/transaction_test.go +++ b/model/transaction_test.go @@ -132,6 +132,13 @@ func TestTransactionTransform(t *testing.T) { } } +func TestTransactionTransformOutcome(t *testing.T) { + tx := Transaction{Outcome: "success"} + events := tx.Transform(context.Background(), &transform.Config{}) + require.Len(t, events, 1) + assert.Equal(t, common.MapStr{"outcome": "success"}, events[0].Fields["event"]) +} + func TestEventsTransformWithMetadata(t *testing.T) { hostname := "a.b.c" architecture := "darwin" @@ -207,6 +214,7 @@ func TestEventsTransformWithMetadata(t *testing.T) { }, "message": common.MapStr{"queue": common.MapStr{"name": "routeUser"}}, }, + "event": common.MapStr{"outcome": ""}, "labels": common.MapStr{"a": "b"}, "url": common.MapStr{"original": url}, "http": common.MapStr{ diff --git a/processor/otel/consumer.go b/processor/otel/consumer.go index 352b01bb8a2..7c553d9d0ed 100644 --- a/processor/otel/consumer.go +++ b/processor/otel/consumer.go @@ -111,6 +111,7 @@ func (c *Consumer) convert(td consumerdata.TraceData) *model.Batch { Timestamp: startTime, Duration: duration, Name: name, + Outcome: "unknown", } parseTransaction(otelSpan, td.SourceFormat, hostname, &transaction) batch.Transactions = append(batch.Transactions, &transaction) @@ -128,6 +129,7 @@ func (c *Consumer) convert(td consumerdata.TraceData) *model.Batch { Timestamp: startTime, Duration: duration, Name: name, + Outcome: "unknown", } parseSpan(otelSpan, &span) batch.Spans = append(batch.Spans, &span) diff --git a/processor/otel/test_approved/consume_span.approved.json b/processor/otel/test_approved/consume_span.approved.json index 5aa80b48efb..e2e91dc3f28 100644 --- a/processor/otel/test_approved/consume_span.approved.json +++ b/processor/otel/test_approved/consume_span.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "processor": { "event": "transaction", "name": "transaction" @@ -35,6 +38,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "parent": { "id": "46463058" }, diff --git a/processor/otel/test_approved/metadata_jaeger-no-language.approved.json b/processor/otel/test_approved/metadata_jaeger-no-language.approved.json index b8737f2148a..413ea9d6c1c 100644 --- a/processor/otel/test_approved/metadata_jaeger-no-language.approved.json +++ b/processor/otel/test_approved/metadata_jaeger-no-language.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "3.4.12" }, + "event": { + "outcome": "unknown" + }, "processor": { "event": "transaction", "name": "transaction" diff --git a/processor/otel/test_approved/metadata_jaeger-version.approved.json b/processor/otel/test_approved/metadata_jaeger-version.approved.json index 95b35093d4f..b24362e1327 100644 --- a/processor/otel/test_approved/metadata_jaeger-version.approved.json +++ b/processor/otel/test_approved/metadata_jaeger-version.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger/PHP", "version": "3.4.12" }, + "event": { + "outcome": "unknown" + }, "processor": { "event": "transaction", "name": "transaction" diff --git a/processor/otel/test_approved/metadata_jaeger.approved.json b/processor/otel/test_approved/metadata_jaeger.approved.json index 97cc356786a..f458485969b 100644 --- a/processor/otel/test_approved/metadata_jaeger.approved.json +++ b/processor/otel/test_approved/metadata_jaeger.approved.json @@ -7,6 +7,9 @@ "name": "Jaeger/C++", "version": "3.2.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-foo", "ip": "17.0.10.123", diff --git a/processor/otel/test_approved/metadata_jaeger_full-traceid.approved.json b/processor/otel/test_approved/metadata_jaeger_full-traceid.approved.json index 0b9f630f0c9..27d38732c1b 100644 --- a/processor/otel/test_approved/metadata_jaeger_full-traceid.approved.json +++ b/processor/otel/test_approved/metadata_jaeger_full-traceid.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "processor": { "event": "transaction", "name": "transaction" diff --git a/processor/otel/test_approved/metadata_jaeger_minimal.approved.json b/processor/otel/test_approved/metadata_jaeger_minimal.approved.json index 0a2e7c809be..48624bc91c8 100644 --- a/processor/otel/test_approved/metadata_jaeger_minimal.approved.json +++ b/processor/otel/test_approved/metadata_jaeger_minimal.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "processor": { "event": "transaction", "name": "transaction" diff --git a/processor/otel/test_approved/metadata_minimal.approved.json b/processor/otel/test_approved/metadata_minimal.approved.json index 40c422514a8..ce04e6993a5 100644 --- a/processor/otel/test_approved/metadata_minimal.approved.json +++ b/processor/otel/test_approved/metadata_minimal.approved.json @@ -6,6 +6,9 @@ "name": "Foo", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "processor": { "event": "transaction", "name": "transaction" diff --git a/processor/otel/test_approved/span_jaeger_custom.approved.json b/processor/otel/test_approved/span_jaeger_custom.approved.json index c38e194804b..6ad5dab2567 100644 --- a/processor/otel/test_approved/span_jaeger_custom.approved.json +++ b/processor/otel/test_approved/span_jaeger_custom.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/otel/test_approved/span_jaeger_db.approved.json b/processor/otel/test_approved/span_jaeger_db.approved.json index 272394df4cb..a8d836b4d97 100644 --- a/processor/otel/test_approved/span_jaeger_db.approved.json +++ b/processor/otel/test_approved/span_jaeger_db.approved.json @@ -10,6 +10,9 @@ "address": "db", "port": 3306 }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/otel/test_approved/span_jaeger_http.approved.json b/processor/otel/test_approved/span_jaeger_http.approved.json index d69a7da587b..356b396e12d 100644 --- a/processor/otel/test_approved/span_jaeger_http.approved.json +++ b/processor/otel/test_approved/span_jaeger_http.approved.json @@ -10,6 +10,9 @@ "address": "foo.bar.com", "port": 80 }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/otel/test_approved/span_jaeger_http_status_code.approved.json b/processor/otel/test_approved/span_jaeger_http_status_code.approved.json index a442c1deeeb..d0b78523349 100644 --- a/processor/otel/test_approved/span_jaeger_http_status_code.approved.json +++ b/processor/otel/test_approved/span_jaeger_http_status_code.approved.json @@ -10,6 +10,9 @@ "address": "foo.bar.com", "port": 80 }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/otel/test_approved/span_jaeger_https_default_port.approved.json b/processor/otel/test_approved/span_jaeger_https_default_port.approved.json index 364d2f7bac5..8a123fb8abf 100644 --- a/processor/otel/test_approved/span_jaeger_https_default_port.approved.json +++ b/processor/otel/test_approved/span_jaeger_https_default_port.approved.json @@ -10,6 +10,9 @@ "address": "foo.bar.com", "port": 443 }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/otel/test_approved/span_jaeger_messaging.approved.json b/processor/otel/test_approved/span_jaeger_messaging.approved.json index 02d20f49e8b..f70df328b26 100644 --- a/processor/otel/test_approved/span_jaeger_messaging.approved.json +++ b/processor/otel/test_approved/span_jaeger_messaging.approved.json @@ -10,6 +10,9 @@ "address": "mq", "port": 1234 }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/otel/test_approved/transaction_jaeger_custom.approved.json b/processor/otel/test_approved/transaction_jaeger_custom.approved.json index 6ed86e2cf0a..f4d4ae7a0db 100644 --- a/processor/otel/test_approved/transaction_jaeger_custom.approved.json +++ b/processor/otel/test_approved/transaction_jaeger_custom.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "labels": { "a_b": "foo" }, diff --git a/processor/otel/test_approved/transaction_jaeger_full.approved.json b/processor/otel/test_approved/transaction_jaeger_full.approved.json index e7e017eae75..8a34ca7b6d9 100644 --- a/processor/otel/test_approved/transaction_jaeger_full.approved.json +++ b/processor/otel/test_approved/transaction_jaeger_full.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/otel/test_approved/transaction_jaeger_no_attrs.approved.json b/processor/otel/test_approved/transaction_jaeger_no_attrs.approved.json index 0ac25122bd4..5aa6afef575 100644 --- a/processor/otel/test_approved/transaction_jaeger_no_attrs.approved.json +++ b/processor/otel/test_approved/transaction_jaeger_no_attrs.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/otel/test_approved/transaction_jaeger_sampling_rate.approved.json b/processor/otel/test_approved/transaction_jaeger_sampling_rate.approved.json index a7be7796ac7..d9930ac0cf9 100644 --- a/processor/otel/test_approved/transaction_jaeger_sampling_rate.approved.json +++ b/processor/otel/test_approved/transaction_jaeger_sampling_rate.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/otel/test_approved/transaction_jaeger_type_component.approved.json b/processor/otel/test_approved/transaction_jaeger_type_component.approved.json index cc090fa1eb4..da6d530c8c4 100644 --- a/processor/otel/test_approved/transaction_jaeger_type_component.approved.json +++ b/processor/otel/test_approved/transaction_jaeger_type_component.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/otel/test_approved/transaction_jaeger_type_messaging.approved.json b/processor/otel/test_approved/transaction_jaeger_type_messaging.approved.json index fff79939d55..e5b19f6c04a 100644 --- a/processor/otel/test_approved/transaction_jaeger_type_messaging.approved.json +++ b/processor/otel/test_approved/transaction_jaeger_type_messaging.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/otel/test_approved/transaction_jaeger_type_request.approved.json b/processor/otel/test_approved/transaction_jaeger_type_request.approved.json index aa8a4857851..4414e25caa8 100644 --- a/processor/otel/test_approved/transaction_jaeger_type_request.approved.json +++ b/processor/otel/test_approved/transaction_jaeger_type_request.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/otel/test_approved/transaction_jaeger_type_request_result.approved.json b/processor/otel/test_approved/transaction_jaeger_type_request_result.approved.json index 519fd70d8ef..6a4cbe7ba87 100644 --- a/processor/otel/test_approved/transaction_jaeger_type_request_result.approved.json +++ b/processor/otel/test_approved/transaction_jaeger_type_request_result.approved.json @@ -6,6 +6,9 @@ "name": "Jaeger", "version": "unknown" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host-abc", "name": "host-abc" diff --git a/processor/stream/package_tests/error_attrs_test.go b/processor/stream/package_tests/error_attrs_test.go index 437322ddb4a..52459203497 100644 --- a/processor/stream/package_tests/error_attrs_test.go +++ b/processor/stream/package_tests/error_attrs_test.go @@ -59,6 +59,7 @@ func errorFieldsNotInPayloadAttrs() *tests.Set { return tests.NewSet( "view errors", "error id icon", "host.ip", "transaction.name", "source.ip", + tests.Group("event"), tests.Group("observer"), tests.Group("user"), tests.Group("client"), @@ -133,6 +134,7 @@ func errorKeywordExceptionKeys() *tests.Set { return tests.NewSet( "processor.event", "processor.name", "error.grouping_key", "context.tags", "transaction.name", + "event.outcome", // not relevant "view errors", "error id icon", tests.Group("url"), tests.Group("http"), diff --git a/processor/stream/package_tests/metadata_attrs_test.go b/processor/stream/package_tests/metadata_attrs_test.go index 74df0c787c9..7fb2f567c0f 100644 --- a/processor/stream/package_tests/metadata_attrs_test.go +++ b/processor/stream/package_tests/metadata_attrs_test.go @@ -134,6 +134,7 @@ func TestKeywordLimitationOnMetadataAttrs(t *testing.T) { tests.NewSet("processor.event", "processor.name", "process.args", tests.Group("observer"), + tests.Group("event"), tests.Group("http"), tests.Group("url"), tests.Group("context.tags"), diff --git a/processor/stream/package_tests/span_attrs_test.go b/processor/stream/package_tests/span_attrs_test.go index 1fc44fd89fe..d72649182c5 100644 --- a/processor/stream/package_tests/span_attrs_test.go +++ b/processor/stream/package_tests/span_attrs_test.go @@ -149,6 +149,7 @@ func spanKeywordExceptionKeys() *tests.Set { return tests.Union(tests.NewSet( "processor.event", "processor.name", "context.tags", "transaction.type", "transaction.name", + "event.outcome", tests.Group("observer"), // metadata fields diff --git a/processor/stream/package_tests/transaction_attrs_test.go b/processor/stream/package_tests/transaction_attrs_test.go index 79caec9f83b..498834497ee 100644 --- a/processor/stream/package_tests/transaction_attrs_test.go +++ b/processor/stream/package_tests/transaction_attrs_test.go @@ -110,6 +110,7 @@ func transactionKeywordExceptionKeys() *tests.Set { "processor.event", "processor.name", "transaction.marks", "context.tags", + "event.outcome", tests.Group("observer"), tests.Group("url"), tests.Group("http"), diff --git a/processor/stream/test_approved_es_documents/testIntakeIntegrationEvents.approved.json b/processor/stream/test_approved_es_documents/testIntakeIntegrationEvents.approved.json index 62e5fcd874b..a3ea2d1783a 100644 --- a/processor/stream/test_approved_es_documents/testIntakeIntegrationEvents.approved.json +++ b/processor/stream/test_approved_es_documents/testIntakeIntegrationEvents.approved.json @@ -13,6 +13,9 @@ "container": { "id": "8ec7ceb990749e79b37f6dc6cd3628633618d6ce412553a552a0fa6b69419ad4" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "amd64", "hostname": "node-name", @@ -191,6 +194,9 @@ "container": { "id": "8ec7ceb990749e79b37f6dc6cd3628633618d6ce412553a552a0fa6b69419ad4" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "amd64", "hostname": "node-name", diff --git a/processor/stream/test_approved_es_documents/testIntakeIntegrationInvalidEvent.approved.json b/processor/stream/test_approved_es_documents/testIntakeIntegrationInvalidEvent.approved.json index 52915217442..4171d7a6f4d 100644 --- a/processor/stream/test_approved_es_documents/testIntakeIntegrationInvalidEvent.approved.json +++ b/processor/stream/test_approved_es_documents/testIntakeIntegrationInvalidEvent.approved.json @@ -6,6 +6,9 @@ "name": "elastic-node", "version": "3.14.0" }, + "event": { + "outcome": "unknown" + }, "host": { "ip": "192.0.0.1" }, diff --git a/processor/stream/test_approved_es_documents/testIntakeIntegrationInvalidJSONEvent.approved.json b/processor/stream/test_approved_es_documents/testIntakeIntegrationInvalidJSONEvent.approved.json index 52915217442..4171d7a6f4d 100644 --- a/processor/stream/test_approved_es_documents/testIntakeIntegrationInvalidJSONEvent.approved.json +++ b/processor/stream/test_approved_es_documents/testIntakeIntegrationInvalidJSONEvent.approved.json @@ -6,6 +6,9 @@ "name": "elastic-node", "version": "3.14.0" }, + "event": { + "outcome": "unknown" + }, "host": { "ip": "192.0.0.1" }, diff --git a/processor/stream/test_approved_es_documents/testIntakeIntegrationOptionalTimestamps.approved.json b/processor/stream/test_approved_es_documents/testIntakeIntegrationOptionalTimestamps.approved.json index f9300fea18d..c17e3f74a28 100644 --- a/processor/stream/test_approved_es_documents/testIntakeIntegrationOptionalTimestamps.approved.json +++ b/processor/stream/test_approved_es_documents/testIntakeIntegrationOptionalTimestamps.approved.json @@ -6,6 +6,9 @@ "name": "elastic-node", "version": "3.14.0" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "prod1.example.com", @@ -78,6 +81,9 @@ "name": "elastic-node", "version": "3.14.0" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "prod1.example.com", diff --git a/processor/stream/test_approved_es_documents/testIntakeIntegrationRumTransactions.approved.json b/processor/stream/test_approved_es_documents/testIntakeIntegrationRumTransactions.approved.json index 90d47a69e63..cc74ef43737 100644 --- a/processor/stream/test_approved_es_documents/testIntakeIntegrationRumTransactions.approved.json +++ b/processor/stream/test_approved_es_documents/testIntakeIntegrationRumTransactions.approved.json @@ -9,6 +9,9 @@ "client": { "ip": "192.0.0.1" }, + "event": { + "outcome": "unknown" + }, "http": { "request": { "referrer": "http://localhost:8000/test/e2e/" @@ -72,6 +75,9 @@ "client": { "ip": "192.0.0.1" }, + "event": { + "outcome": "unknown" + }, "parent": { "id": "611f4fa950f04631" }, diff --git a/processor/stream/test_approved_es_documents/testIntakeIntegrationSpans.approved.json b/processor/stream/test_approved_es_documents/testIntakeIntegrationSpans.approved.json index bfeb0d06040..8c33912e418 100644 --- a/processor/stream/test_approved_es_documents/testIntakeIntegrationSpans.approved.json +++ b/processor/stream/test_approved_es_documents/testIntakeIntegrationSpans.approved.json @@ -34,6 +34,9 @@ "container": { "id": "container-id" }, + "event": { + "outcome": "success" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -146,6 +149,9 @@ "container": { "id": "container-id" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -259,6 +265,9 @@ "container": { "id": "container-id" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -376,6 +385,9 @@ "container": { "id": "container-id" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -495,6 +507,9 @@ "ip": "0:0::0:1", "port": 5432 }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -686,6 +701,9 @@ "container": { "id": "container-id" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", diff --git a/processor/stream/test_approved_es_documents/testIntakeIntegrationTransactions.approved.json b/processor/stream/test_approved_es_documents/testIntakeIntegrationTransactions.approved.json index dfc346090e8..edd247b1f67 100644 --- a/processor/stream/test_approved_es_documents/testIntakeIntegrationTransactions.approved.json +++ b/processor/stream/test_approved_es_documents/testIntakeIntegrationTransactions.approved.json @@ -29,6 +29,9 @@ "container": { "id": "container-id" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -143,6 +146,9 @@ "container": { "id": "container-id" }, + "event": { + "outcome": "success" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -348,6 +354,9 @@ "container": { "id": "container-id" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", @@ -480,6 +489,9 @@ "container": { "id": "container-id" }, + "event": { + "outcome": "unknown" + }, "host": { "architecture": "x64", "hostname": "node-name", diff --git a/processor/stream/test_approved_es_documents/testIntakeRUMV3Events.approved.json b/processor/stream/test_approved_es_documents/testIntakeRUMV3Events.approved.json index 97a346a78b2..2448f538f6a 100644 --- a/processor/stream/test_approved_es_documents/testIntakeRUMV3Events.approved.json +++ b/processor/stream/test_approved_es_documents/testIntakeRUMV3Events.approved.json @@ -9,6 +9,9 @@ "client": { "ip": "192.0.0.1" }, + "event": { + "outcome": "unknown" + }, "http": { "request": { "headers": { @@ -147,6 +150,9 @@ "client": { "ip": "192.0.0.1" }, + "event": { + "outcome": "unknown" + }, "labels": { "testTagKey": "testTagValue" }, @@ -213,6 +219,9 @@ "client": { "ip": "192.0.0.1" }, + "event": { + "outcome": "unknown" + }, "labels": { "testTagKey": "testTagValue" }, @@ -283,6 +292,9 @@ "address": "localhost", "port": 8000 }, + "event": { + "outcome": "unknown" + }, "labels": { "testTagKey": "testTagValue" }, @@ -366,6 +378,9 @@ "client": { "ip": "192.0.0.1" }, + "event": { + "outcome": "unknown" + }, "labels": { "testTagKey": "testTagValue" }, @@ -435,6 +450,9 @@ "address": "localhost", "port": 8000 }, + "event": { + "outcome": "unknown" + }, "labels": { "testTagKey": "testTagValue" }, @@ -522,6 +540,9 @@ "address": "localhost", "port": 8003 }, + "event": { + "outcome": "unknown" + }, "labels": { "testTagKey": "testTagValue" }, @@ -609,6 +630,9 @@ "address": "localhost", "port": 8003 }, + "event": { + "outcome": "unknown" + }, "labels": { "testTagKey": "testTagValue" }, @@ -693,6 +717,9 @@ "client": { "ip": "192.0.0.1" }, + "event": { + "outcome": "success" + }, "labels": { "testTagKey": "testTagValue" }, diff --git a/testdata/intake-v2/spans.ndjson b/testdata/intake-v2/spans.ndjson index 64ac29e9dce..fbd73a62a01 100644 --- a/testdata/intake-v2/spans.ndjson +++ b/testdata/intake-v2/spans.ndjson @@ -1,5 +1,5 @@ {"metadata": {"user": {"id": "123", "email": "s@test.com", "username": "john"}, "process": {"ppid": 6789, "pid": 1234,"argv": ["node", "server.js"], "title": "node"}, "system": {"platform": "darwin", "hostname": "prod1.example.com", "architecture": "x64", "container": {"id": "container-id"}, "kubernetes": {"namespace": "namespace1", "pod": {"uid": "pod-uid", "name": "pod-name"}, "node": {"name": "node-name"}}}, "labels": {"tag1": "label1"}, "service": {"name": "backendspans", "language": {"version": "8", "name": "ecmascript"}, "agent": {"version": "3.14.0", "name": "elastic-node"}, "environment": "staging", "framework": {"version": "1.2.3", "name": "Express"}, "version": "5.1.3", "runtime": {"version": "8.0.0", "name": "node"}},"cloud":{"account":{"id":"account_id","name":"account_name"},"availability_zone":"cloud_availability_zone","instance":{"id":"instance_id","name":"instance_name"},"machine":{"type":"machine_type"},"project":{"id":"project_id","name":"project_name"},"provider":"cloud_provider","region":"cloud_region"}}} -{"span": {"trace_id": "fdedef0123456789abcdef9876543210", "parent_id": "abcdef0123456789", "id": "abcdef01234567", "child_ids": ["51234abcdef56789"], "transaction_id": "01af25874dec69dd", "name": "GET /api/types", "type": "db.postgresql.query.custom","start": null, "duration": 141.581, "timestamp": 1532976822281000}} +{"span": {"trace_id": "fdedef0123456789abcdef9876543210", "parent_id": "abcdef0123456789", "id": "abcdef01234567", "child_ids": ["51234abcdef56789"], "transaction_id": "01af25874dec69dd", "name": "GET /api/types", "type": "db.postgresql.query.custom","start": null, "duration": 141.581, "timestamp": 1532976822281000, "outcome": "success"}} {"span": {"trace_id": "abcdef0123456789abcdef9876543210", "parent_id": "0000000011111111", "id": "1234abcdef567895", "transaction_id": "ab45781d265894fe", "name": "GET /api/types", "type": "request", "start": 22, "duration": 32.592981, "timestamp": 1532976822281000,"context":{"service":{"environment":"prod","agent":{}}}}} {"span": {"trace_id": "abcdef0123456789abcdef9876543210", "parent_id": "abcdefabcdef7890", "id": "0123456a89012345", "transaction_id": "ab23456a89012345", "name": "GET /api/types", "type": "request.http", "start": 1.845, "duration": 3.5642981, "stacktrace": [], "context":{"tags": {"tag1": "value1", "tag2": 123, "tag3": 12.34, "tag4": true, "tag5": null},"service":{}}}} {"span": {"trace_id": "abcdef0123456789abcdef9876543210", "parent_id": "ababcdcdefefabde", "id": "abcde56a89012345", "transaction_id": null, "name": "get /api/types", "sync": false, "type": "request", "subtype": "http", "action": "call", "start": 0, "duration": 13.9802981, "stacktrace": null, "context": null }} diff --git a/testdata/intake-v2/transactions.ndjson b/testdata/intake-v2/transactions.ndjson index 8f8dc062a3e..e2d5942a3c6 100644 --- a/testdata/intake-v2/transactions.ndjson +++ b/testdata/intake-v2/transactions.ndjson @@ -1,5 +1,5 @@ {"metadata": {"service": {"name": "1234_service-12a3","node": {"configured_name": "node-123"},"version": "5.1.3","environment": "staging","language": {"name": "ecmascript","version": "8"},"runtime": {"name": "node","version": "8.0.0"},"framework": {"name": "Express","version": "1.2.3"},"agent": {"name": "elastic-node","version": "3.14.0"}},"user": {"id": "123user", "username": "bar", "email": "bar@user.com"}, "labels": {"tag0": null, "tag1": "one", "tag2": 2}, "process": {"pid": 1234,"ppid": 6789,"title": "node","argv": ["node","server.js"]},"system": {"hostname": "prod1.example.com","architecture": "x64","platform": "darwin", "container": {"id": "container-id"}, "kubernetes": {"namespace": "namespace1", "pod": {"uid": "pod-uid", "name": "pod-name"}, "node": {"name": "node-name"}}},"cloud":{"account":{"id":"account_id","name":"account_name"},"availability_zone":"cloud_availability_zone","instance":{"id":"instance_id","name":"instance_name"},"machine":{"type":"machine_type"},"project":{"id":"project_id","name":"project_name"},"provider":"cloud_provider","region":"cloud_region"}}} {"transaction": { "id": "945254c567a5417e", "trace_id": "0123456789abcdef0123456789abcdef", "parent_id": "abcdefabcdef01234567", "type": "request", "duration": 32.592981, "span_count": { "started": 43 }}} -{"transaction": {"id": "4340a8e0df1906ecbfa9", "trace_id": "0acd456789abcdef0123456789abcdef", "name": "GET /api/types","type": "request","duration": 32.592981,"result": "success", "timestamp": 1496170407154000, "sampled": true, "span_count": {"started": 17},"context": {"service": {"runtime": {"version": "7.0"}},"page":{"referer":"http://localhost:8000/test/e2e/","url":"http://localhost:8000/test/e2e/general-usecase/"}, "request": {"socket": {"remote_address": "12.53.12.1","encrypted": true},"http_version": "1.1","method": "POST","url": {"protocol": "https:","full": "https://www.example.com/p/a/t/h?query=string#hash","hostname": "www.example.com","port": "8080","pathname": "/p/a/t/h","search": "?query=string","hash": "#hash","raw": "/p/a/t/h?query=string#hash"},"headers": {"user-agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36","Mozilla Chrome Edge"],"content-type": "text/html","cookie": "c1=v1, c2=v2","some-other-header": "foo","array": ["foo","bar","baz"]},"cookies": {"c1": "v1","c2": "v2"},"env": {"SERVER_SOFTWARE": "nginx","GATEWAY_INTERFACE": "CGI/1.1"},"body": {"str": "hello world","additional": { "foo": {},"bar": 123,"req": "additional information"}}},"response": {"status_code": 200,"headers": {"content-type": "application/json"},"headers_sent": true,"finished": true,"transfer_size":25.8,"encoded_body_size":26.90,"decoded_body_size":29.90}, "user": {"id": "99","username": "foo"},"tags": {"organization_uuid": "9f0e9d64-c185-4d21-a6f4-4673ed561ec8", "tag2": 12, "tag3": 12.45, "tag4": false, "tag5": null },"custom": {"my_key": 1,"some_other_value": "foo bar","and_objects": {"foo": ["bar","baz"]},"(": "not a valid regex and that is fine"}}}} +{"transaction": {"id": "4340a8e0df1906ecbfa9", "trace_id": "0acd456789abcdef0123456789abcdef", "name": "GET /api/types","type": "request","duration": 32.592981,"outcome":"success", "result": "success", "timestamp": 1496170407154000, "sampled": true, "span_count": {"started": 17},"context": {"service": {"runtime": {"version": "7.0"}},"page":{"referer":"http://localhost:8000/test/e2e/","url":"http://localhost:8000/test/e2e/general-usecase/"}, "request": {"socket": {"remote_address": "12.53.12.1","encrypted": true},"http_version": "1.1","method": "POST","url": {"protocol": "https:","full": "https://www.example.com/p/a/t/h?query=string#hash","hostname": "www.example.com","port": "8080","pathname": "/p/a/t/h","search": "?query=string","hash": "#hash","raw": "/p/a/t/h?query=string#hash"},"headers": {"user-agent":["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36","Mozilla Chrome Edge"],"content-type": "text/html","cookie": "c1=v1, c2=v2","some-other-header": "foo","array": ["foo","bar","baz"]},"cookies": {"c1": "v1","c2": "v2"},"env": {"SERVER_SOFTWARE": "nginx","GATEWAY_INTERFACE": "CGI/1.1"},"body": {"str": "hello world","additional": { "foo": {},"bar": 123,"req": "additional information"}}},"response": {"status_code": 200,"headers": {"content-type": "application/json"},"headers_sent": true,"finished": true,"transfer_size":25.8,"encoded_body_size":26.90,"decoded_body_size":29.90}, "user": {"id": "99","username": "foo"},"tags": {"organization_uuid": "9f0e9d64-c185-4d21-a6f4-4673ed561ec8", "tag2": 12, "tag3": 12.45, "tag4": false, "tag5": null },"custom": {"my_key": 1,"some_other_value": "foo bar","and_objects": {"foo": ["bar","baz"]},"(": "not a valid regex and that is fine"}}}} {"transaction": { "id": "cdef4340a8e0df19", "trace_id": "0acd456789abcdef0123456789abcdef", "type": "request", "duration": 13.980558, "timestamp": 1532976822281000, "sampled": null, "span_count": { "dropped": 55, "started": 436 }, "marks": {"navigationTiming": {"appBeforeBootstrap": 608.9300000000001,"navigationStart": -21},"another_mark": {"some_long": 10,"some_float": 10.0}, "performance": {}}, "context": { "request": { "socket": { "remote_address": "192.0.1", "encrypted": null }, "method": "POST", "headers": { "user-agent": null, "content-type": null, "cookie": null }, "url": { "protocol": null, "full": null, "hostname": null, "port": null, "pathname": null, "search": null, "hash": null, "raw": null } }, "response": { "headers": { "content-type": null } }, "service": {"environment":"testing","name": "service1","node": {"configured_name": "node-ABC"}, "language": {"version": "2.5", "name": "ruby"}, "agent": {"version": "2.2", "name": "elastic-ruby", "ephemeral_id": "justanid"}, "framework": {"version": "5.0", "name": "Rails"}, "version": "2", "runtime": {"version": "2.5", "name": "cruby"}}},"experience":{"cls":1,"fid":2.0,"tbt":3.4}}} {"transaction": { "id": "00xxxxFFaaaa1234", "trace_id": "0123456789abcdef0123456789abcdef", "name": "amqp receive", "parent_id": "abcdefabcdef01234567", "type": "messaging", "duration": 3, "span_count": { "started": 1 }, "context": {"message": {"queue": { "name": "new_users"}, "age":{ "ms": 1577958057123}, "headers": {"user_id": "1ax3", "involved_services": ["user", "auth"]}, "body": "user created"}}}} diff --git a/testdata/intake-v3/rum_events.ndjson b/testdata/intake-v3/rum_events.ndjson index 77d0e6b73a7..88bcbe51df8 100644 --- a/testdata/intake-v3/rum_events.ndjson +++ b/testdata/intake-v3/rum_events.ndjson @@ -1,3 +1,3 @@ {"m": {"se": {"n": "apm-a-rum-test-e2e-general-usecase","ve": "0.0.1","en": "prod","a": {"n": "js-base","ve": "4.8.1"},"ru": {"n": "v8","ve": "8.0"},"la": {"n": "javascript","ve": "6"},"fw": {"n": "angular","ve": "2"}},"u": {"id": 123,"em": "user@email.com","un": "John Doe"},"l": {"testTagKey": "testTagValue"}}} -{"x": {"id": "ec2e280be8345240","tid": "286ac3ad697892c406528f13c82e0ce1","pid": "1ef08ac234fca23b455d9e27c660f1ab","n": "general-usecase-initial-p-load","t": "p-load","d": 295,"me": [{"sa": {"xdc": {"v": 1},"xds": {"v": 295},"xbc": {"v": 1}}},{"y": {"t": "Request"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}},{"y": {"t": "Response"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}}],"y": [{"id": "bbd8bcc3be14d814","n": "Requesting and receiving the document","t": "hard-navigation","su": "browser-timing","s": 4,"d": 2},{"id": "fc546e87a90a774f","n": "Parsing the document, executing sy. scripts","t": "hard-navigation","su": "browser-timing","s": 14,"d": 106},{"id": "fb8f717930697299","n": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js","t": "rc","su": "script","s": 22.53499999642372,"d": 35.060000023804605,"c": {"h": {"url": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED","r": {"ts": 677175,"ebs": 676864,"dbs": 676864}},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "rc"},"ad": "localhost","po": 8000}}},{"id": "9b80535c4403c9fb","n": "OpenTracing y","t": "cu","s": 96.92999999970198,"d": 198.07000000029802},{"id": "5ecb8ee030749715","n": "GET /test/e2e/common/data.json","t": "external","su": "h","sy": true,"s": 98.94000005442649,"d": 6.72499998472631,"c": {"h": {"mt": "GET","url": "http://localhost:8000/test/e2e/common/data.json?test=hamid","sc": 200},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "external"},"ad": "localhost","po": 8000}}},{"id": "27f45fd274f976d4","n": "POST http://localhost:8003/data","t": "external","su": "h","sy": true,"s": 106.52000003028661,"d": 11.584999971091747,"c": {"h": {"mt": "POST","url": "http://localhost:8003/data","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "a3c043330bc2015e","pi": 0,"n": "POST http://localhost:8003/fetch","t": "external","su": "h","ac": "action","sy": false,"s": 119.93500008247793,"d": 15.949999913573265,"c": {"h": {"mt": "POST","url": "http://localhost:8003/fetch","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "bc7665dc25629379","st": [{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "generateError","li": 7662,"co": 9},{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "","li": 7666,"co": 3}],"n": "Fire \"DOMContentLoaded\" event","t": "hard-navigation","su": "browser-timing","s": 120,"d": 2}],"c": {"p": {"rf": "http://localhost:8000/test/e2e/","url": "http://localhost:8000/test/e2e/general-usecase/"},"r": {"sc": 200,"ts": 983,"ebs": 690,"dbs": 690,"he": {"Content-Type": "application/json"}},"q": {"he": {"Accept": "application/json"},"hve": "1.1","mt": "GET"},"u": {"id": "uId","un": "un","em": "em"},"cu": {"testContext": "testContext"},"g": {"testTagKey": "testTagValue"}},"k": {"a": {"lp": 131.03000004775822,"fb": 5,"di": 120,"dc": 138,"ds": 100,"de": 110,"fp": 70.82500003930181},"nt": {"fs": 0,"ls": 0,"le": 0,"cs": 0,"ce": 0,"qs": 4,"rs": 5,"re": 6,"dl": 14,"di": 120,"ds": 120,"de": 122,"dc": 138,"es": 138,"ee": 138}},"yc": {"sd": 8,"dd": 1},"sm": true,"exp":{"cls":1,"fid":2.0,"tbt":3.4,"ignored":5,"also":"ignored"}}} +{"x": {"id": "ec2e280be8345240","tid": "286ac3ad697892c406528f13c82e0ce1","pid": "1ef08ac234fca23b455d9e27c660f1ab","n": "general-usecase-initial-p-load","t": "p-load","d": 295,"me": [{"sa": {"xdc": {"v": 1},"xds": {"v": 295},"xbc": {"v": 1}}},{"y": {"t": "Request"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}},{"y": {"t": "Response"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}}],"y": [{"id": "bbd8bcc3be14d814","n": "Requesting and receiving the document","t": "hard-navigation","su": "browser-timing","s": 4,"d": 2},{"id": "fc546e87a90a774f","n": "Parsing the document, executing sy. scripts","t": "hard-navigation","su": "browser-timing","s": 14,"d": 106},{"id": "fb8f717930697299","n": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js","t": "rc","su": "script","s": 22.53499999642372,"d": 35.060000023804605,"c": {"h": {"url": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED","r": {"ts": 677175,"ebs": 676864,"dbs": 676864}},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "rc"},"ad": "localhost","po": 8000}}},{"id": "9b80535c4403c9fb","n": "OpenTracing y","t": "cu","s": 96.92999999970198,"d": 198.07000000029802},{"id": "5ecb8ee030749715","n": "GET /test/e2e/common/data.json","t": "external","su": "h","sy": true,"s": 98.94000005442649,"d": 6.72499998472631,"c": {"h": {"mt": "GET","url": "http://localhost:8000/test/e2e/common/data.json?test=hamid","sc": 200},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "external"},"ad": "localhost","po": 8000}}},{"id": "27f45fd274f976d4","n": "POST http://localhost:8003/data","t": "external","su": "h","sy": true,"s": 106.52000003028661,"d": 11.584999971091747,"c": {"h": {"mt": "POST","url": "http://localhost:8003/data","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "a3c043330bc2015e","pi": 0,"n": "POST http://localhost:8003/fetch","t": "external","su": "h","ac": "action","sy": false,"s": 119.93500008247793,"d": 15.949999913573265,"c": {"h": {"mt": "POST","url": "http://localhost:8003/fetch","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "bc7665dc25629379","st": [{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "generateError","li": 7662,"co": 9},{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "","li": 7666,"co": 3}],"n": "Fire \"DOMContentLoaded\" event","t": "hard-navigation","su": "browser-timing","s": 120,"d": 2,"o":"success"}],"c": {"p": {"rf": "http://localhost:8000/test/e2e/","url": "http://localhost:8000/test/e2e/general-usecase/"},"r": {"sc": 200,"ts": 983,"ebs": 690,"dbs": 690,"he": {"Content-Type": "application/json"}},"q": {"he": {"Accept": "application/json"},"hve": "1.1","mt": "GET"},"u": {"id": "uId","un": "un","em": "em"},"cu": {"testContext": "testContext"},"g": {"testTagKey": "testTagValue"}},"k": {"a": {"lp": 131.03000004775822,"fb": 5,"di": 120,"dc": 138,"ds": 100,"de": 110,"fp": 70.82500003930181},"nt": {"fs": 0,"ls": 0,"le": 0,"cs": 0,"ce": 0,"qs": 4,"rs": 5,"re": 6,"dl": 14,"di": 120,"ds": 120,"de": 122,"dc": 138,"es": 138,"ee": 138}},"yc": {"sd": 8,"dd": 1},"sm": true,"exp":{"cls":1,"fid":2.0,"tbt":3.4,"ignored":5,"also":"ignored"}}} {"me": {"y": {"t": "Processing","su": "subtype"},"sa": {"ysc": {"v": 1},"yss": {"v": 124}},"g": {"tag1": "value1"}}} diff --git a/testdata/jaeger/batch_0.approved.json b/testdata/jaeger/batch_0.approved.json index 74b05116f32..7a787b14c0a 100644 --- a/testdata/jaeger/batch_0.approved.json +++ b/testdata/jaeger/batch_0.approved.json @@ -7,6 +7,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", diff --git a/testdata/jaeger/batch_1.approved.json b/testdata/jaeger/batch_1.approved.json index 646755e3a83..0201232c33b 100644 --- a/testdata/jaeger/batch_1.approved.json +++ b/testdata/jaeger/batch_1.approved.json @@ -7,6 +7,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -53,6 +56,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -100,6 +106,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -146,6 +155,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -192,6 +204,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -238,6 +253,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -284,6 +302,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -331,6 +352,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -377,6 +401,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -423,6 +450,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -469,6 +499,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -515,6 +548,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -562,6 +598,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", @@ -608,6 +647,9 @@ "name": "Jaeger/Go", "version": "2.20.1" }, + "event": { + "outcome": "unknown" + }, "host": { "hostname": "host01", "ip": "10.0.0.13", diff --git a/tests/system/drop_unsampled_transactions.approved.json b/tests/system/drop_unsampled_transactions.approved.json index 5c8e08584e9..5b08443a689 100644 --- a/tests/system/drop_unsampled_transactions.approved.json +++ b/tests/system/drop_unsampled_transactions.approved.json @@ -12,7 +12,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-29T02:24:19.182874Z" + "ingested": "2020-08-11T10:03:11.025737Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -107,7 +108,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-29T02:24:19.184164Z" + "ingested": "2020-08-11T10:03:11.025919Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -124,9 +126,9 @@ } }, "observer": { - "ephemeral_id": "ebd89158-9f85-469e-9bc0-9e19b174a1ba", + "ephemeral_id": "d0a481f0-3688-40dc-8a59-04abdf72261a", "hostname": "goat", - "id": "01019c57-ff25-4ddf-b9e9-2f421577a9a2", + "id": "fb7e85d9-3666-4b9a-8440-1448c17b5738", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -214,7 +216,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-29T02:24:19.099344Z" + "ingested": "2020-08-11T10:03:10.976907Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -293,9 +296,9 @@ "organization_uuid": "9f0e9d64-c185-4d21-a6f4-4673ed561ec8" }, "observer": { - "ephemeral_id": "ebd89158-9f85-469e-9bc0-9e19b174a1ba", + "ephemeral_id": "d0a481f0-3688-40dc-8a59-04abdf72261a", "hostname": "goat", - "id": "01019c57-ff25-4ddf-b9e9-2f421577a9a2", + "id": "fb7e85d9-3666-4b9a-8440-1448c17b5738", "type": "apm-server", "version": "8.0.0", "version_major": 8 diff --git a/tests/system/jaeger_batch_0.approved.json b/tests/system/jaeger_batch_0.approved.json index e43dbcb451f..61912285546 100644 --- a/tests/system/jaeger_batch_0.approved.json +++ b/tests/system/jaeger_batch_0.approved.json @@ -10,7 +10,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-22T14:57:44.517370Z" + "ingested": "2020-04-22T14:57:44.517370Z", + "outcome": "unknown" }, "host": { "hostname": "host01", @@ -255,4 +256,4 @@ "type": "custom" } } -] \ No newline at end of file +] diff --git a/tests/system/jaeger_batch_0_auth_tag_removed.approved.json b/tests/system/jaeger_batch_0_auth_tag_removed.approved.json index 91685f21869..d4fff61f94a 100644 --- a/tests/system/jaeger_batch_0_auth_tag_removed.approved.json +++ b/tests/system/jaeger_batch_0_auth_tag_removed.approved.json @@ -10,7 +10,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-22T14:57:41.042655Z" + "ingested": "2020-08-11T09:58:54.379837Z", + "outcome": "unknown" }, "host": { "hostname": "host01", @@ -85,7 +86,7 @@ } }, "event": { - "ingested": "2020-04-22T14:57:41.091071Z" + "ingested": "2020-08-11T09:58:54.454089Z" }, "host": { "hostname": "host01", @@ -93,9 +94,9 @@ "name": "host01" }, "observer": { - "ephemeral_id": "b759a57d-4daa-4708-a3ad-18c50d8c940f", - "hostname": "ix.lan", - "id": "3dfbe204-d39c-4f40-8283-de713063099c", + "ephemeral_id": "97a0be74-0ec2-433d-b3f4-8853ae5504c4", + "hostname": "goat", + "id": "a20fd88c-dddf-4e6e-8bcb-b13e08e0b4ce", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -149,7 +150,7 @@ } }, "event": { - "ingested": "2020-04-22T14:57:41.095868Z" + "ingested": "2020-08-11T09:58:54.454199Z" }, "host": { "hostname": "host01", @@ -157,9 +158,9 @@ "name": "host01" }, "observer": { - "ephemeral_id": "b759a57d-4daa-4708-a3ad-18c50d8c940f", - "hostname": "ix.lan", - "id": "3dfbe204-d39c-4f40-8283-de713063099c", + "ephemeral_id": "97a0be74-0ec2-433d-b3f4-8853ae5504c4", + "hostname": "goat", + "id": "a20fd88c-dddf-4e6e-8bcb-b13e08e0b4ce", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -213,7 +214,7 @@ } }, "event": { - "ingested": "2020-04-22T14:57:41.096227Z" + "ingested": "2020-08-11T09:58:54.463556Z" }, "host": { "hostname": "host01", @@ -221,9 +222,9 @@ "name": "host01" }, "observer": { - "ephemeral_id": "b759a57d-4daa-4708-a3ad-18c50d8c940f", - "hostname": "ix.lan", - "id": "3dfbe204-d39c-4f40-8283-de713063099c", + "ephemeral_id": "97a0be74-0ec2-433d-b3f4-8853ae5504c4", + "hostname": "goat", + "id": "a20fd88c-dddf-4e6e-8bcb-b13e08e0b4ce", "type": "apm-server", "version": "8.0.0", "version_major": 8 diff --git a/tests/system/jaeger_batch_0_authorization.approved.json b/tests/system/jaeger_batch_0_authorization.approved.json index caf55465635..e83d0d9c1a4 100644 --- a/tests/system/jaeger_batch_0_authorization.approved.json +++ b/tests/system/jaeger_batch_0_authorization.approved.json @@ -10,7 +10,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-22T14:57:50.071712Z" + "ingested": "2020-08-11T09:59:10.729866Z", + "outcome": "unknown" }, "host": { "hostname": "host01", @@ -85,7 +86,7 @@ } }, "event": { - "ingested": "2020-04-22T14:57:50.128105Z" + "ingested": "2020-08-11T09:59:10.788604Z" }, "host": { "hostname": "host01", @@ -93,9 +94,9 @@ "name": "host01" }, "observer": { - "ephemeral_id": "f672294a-23de-44c6-82c1-5a1487d72e4a", - "hostname": "ix.lan", - "id": "09366851-25e3-463f-bc4a-28c00c792112", + "ephemeral_id": "f2414fe9-88b3-4a35-ad5a-6951ba183d43", + "hostname": "goat", + "id": "78749c0f-d2f4-42e7-a8c2-a276a77f2555", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -149,7 +150,7 @@ } }, "event": { - "ingested": "2020-04-22T14:57:50.133443Z" + "ingested": "2020-08-11T09:59:10.794738Z" }, "host": { "hostname": "host01", @@ -157,9 +158,9 @@ "name": "host01" }, "observer": { - "ephemeral_id": "f672294a-23de-44c6-82c1-5a1487d72e4a", - "hostname": "ix.lan", - "id": "09366851-25e3-463f-bc4a-28c00c792112", + "ephemeral_id": "f2414fe9-88b3-4a35-ad5a-6951ba183d43", + "hostname": "goat", + "id": "78749c0f-d2f4-42e7-a8c2-a276a77f2555", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -213,7 +214,7 @@ } }, "event": { - "ingested": "2020-04-22T14:57:50.133822Z" + "ingested": "2020-08-11T09:59:10.794838Z" }, "host": { "hostname": "host01", @@ -221,9 +222,9 @@ "name": "host01" }, "observer": { - "ephemeral_id": "f672294a-23de-44c6-82c1-5a1487d72e4a", - "hostname": "ix.lan", - "id": "09366851-25e3-463f-bc4a-28c00c792112", + "ephemeral_id": "f2414fe9-88b3-4a35-ad5a-6951ba183d43", + "hostname": "goat", + "id": "78749c0f-d2f4-42e7-a8c2-a276a77f2555", "type": "apm-server", "version": "8.0.0", "version_major": 8 diff --git a/tests/system/jaeger_span.approved.json b/tests/system/jaeger_span.approved.json index 68b69eed719..8c4276585bf 100644 --- a/tests/system/jaeger_span.approved.json +++ b/tests/system/jaeger_span.approved.json @@ -10,7 +10,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-22T14:57:46.610358Z" + "ingested": "2020-08-11T09:59:01.990087Z", + "outcome": "unknown" }, "host": { "hostname": "alloy", diff --git a/tests/system/keep_unsampled_transactions.approved.json b/tests/system/keep_unsampled_transactions.approved.json index c5a5a350f7a..609ccaea068 100644 --- a/tests/system/keep_unsampled_transactions.approved.json +++ b/tests/system/keep_unsampled_transactions.approved.json @@ -12,7 +12,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-29T02:16:27.090771Z" + "ingested": "2020-08-11T10:03:14.274519Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -107,7 +108,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-29T02:16:27.091518Z" + "ingested": "2020-08-11T10:03:14.274681Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -124,9 +126,9 @@ } }, "observer": { - "ephemeral_id": "3f31e73c-2fdf-4f39-8c81-57b25d00fc16", + "ephemeral_id": "1c8e1e58-0c93-4a11-9395-687a4fd608b6", "hostname": "goat", - "id": "0f00bacd-a23e-41c5-a2fb-4d90b2776018", + "id": "6d235bfa-00c6-46d3-83f4-d52a555ac820", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -202,7 +204,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-29T02:16:27.092239Z" + "ingested": "2020-08-11T10:03:14.274782Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -219,9 +222,9 @@ } }, "observer": { - "ephemeral_id": "3f31e73c-2fdf-4f39-8c81-57b25d00fc16", + "ephemeral_id": "1c8e1e58-0c93-4a11-9395-687a4fd608b6", "hostname": "goat", - "id": "0f00bacd-a23e-41c5-a2fb-4d90b2776018", + "id": "6d235bfa-00c6-46d3-83f4-d52a555ac820", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -309,7 +312,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-29T02:16:26.984994Z" + "ingested": "2020-08-11T10:03:14.218629Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -388,9 +392,9 @@ "organization_uuid": "9f0e9d64-c185-4d21-a6f4-4673ed561ec8" }, "observer": { - "ephemeral_id": "3f31e73c-2fdf-4f39-8c81-57b25d00fc16", + "ephemeral_id": "1c8e1e58-0c93-4a11-9395-687a4fd608b6", "hostname": "goat", - "id": "0f00bacd-a23e-41c5-a2fb-4d90b2776018", + "id": "6d235bfa-00c6-46d3-83f4-d52a555ac820", "type": "apm-server", "version": "8.0.0", "version_major": 8 diff --git a/tests/system/spans.approved.json b/tests/system/spans.approved.json index 72c858ff774..788cc4795b5 100644 --- a/tests/system/spans.approved.json +++ b/tests/system/spans.approved.json @@ -8,6 +8,9 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "labels": { "span_tag": "something" }, @@ -121,10 +124,13 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "observer": { - "ephemeral_id": "c0cea3b6-97d7-4e15-9e35-c868e7a3c869", - "hostname": "ix.lan", - "id": "a49b4a08-689a-4724-8050-8bd0ae043281", + "ephemeral_id": "2f13d8fa-83cd-4356-8123-aabfb47a1808", + "hostname": "goat", + "id": "17ad47dd-5671-4c89-979f-ef4533565ba2", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -187,10 +193,13 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "observer": { - "ephemeral_id": "c0cea3b6-97d7-4e15-9e35-c868e7a3c869", - "hostname": "ix.lan", - "id": "a49b4a08-689a-4724-8050-8bd0ae043281", + "ephemeral_id": "2f13d8fa-83cd-4356-8123-aabfb47a1808", + "hostname": "goat", + "id": "17ad47dd-5671-4c89-979f-ef4533565ba2", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -237,10 +246,13 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "observer": { - "ephemeral_id": "c0cea3b6-97d7-4e15-9e35-c868e7a3c869", - "hostname": "ix.lan", - "id": "a49b4a08-689a-4724-8050-8bd0ae043281", + "ephemeral_id": "2f13d8fa-83cd-4356-8123-aabfb47a1808", + "hostname": "goat", + "id": "17ad47dd-5671-4c89-979f-ef4533565ba2", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -293,10 +305,13 @@ "ecs": { "version": "1.5.0" }, + "event": { + "outcome": "unknown" + }, "observer": { - "ephemeral_id": "c0cea3b6-97d7-4e15-9e35-c868e7a3c869", - "hostname": "ix.lan", - "id": "a49b4a08-689a-4724-8050-8bd0ae043281", + "ephemeral_id": "2f13d8fa-83cd-4356-8123-aabfb47a1808", + "hostname": "goat", + "id": "17ad47dd-5671-4c89-979f-ef4533565ba2", "type": "apm-server", "version": "8.0.0", "version_major": 8 diff --git a/tests/system/transaction.approved.json b/tests/system/transaction.approved.json index 17e67dac12a..024ab9d4273 100644 --- a/tests/system/transaction.approved.json +++ b/tests/system/transaction.approved.json @@ -12,7 +12,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-22T14:49:24.899906Z" + "ingested": "2020-08-11T09:55:04.391451Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -107,7 +108,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-22T14:49:24.900309Z" + "ingested": "2020-08-11T09:55:04.391568Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -124,9 +126,9 @@ } }, "observer": { - "ephemeral_id": "f78f6762-2157-4322-95aa-aecd2f486c1a", - "hostname": "ix.lan", - "id": "80b79979-4a7d-450d-b2ce-75c589f7fffd", + "ephemeral_id": "fb037b97-0027-401a-9dc4-17d162f2687f", + "hostname": "goat", + "id": "a4daf4ca-b280-4ede-90df-bf62482cec37", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -202,7 +204,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-22T14:49:24.900644Z" + "ingested": "2020-08-11T09:55:04.391639Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -219,9 +222,9 @@ } }, "observer": { - "ephemeral_id": "f78f6762-2157-4322-95aa-aecd2f486c1a", - "hostname": "ix.lan", - "id": "80b79979-4a7d-450d-b2ce-75c589f7fffd", + "ephemeral_id": "fb037b97-0027-401a-9dc4-17d162f2687f", + "hostname": "goat", + "id": "a4daf4ca-b280-4ede-90df-bf62482cec37", "type": "apm-server", "version": "8.0.0", "version_major": 8 @@ -309,7 +312,8 @@ "version": "1.5.0" }, "event": { - "ingested": "2020-04-22T14:49:24.844687Z" + "ingested": "2020-08-11T09:55:04.338986Z", + "outcome": "unknown" }, "host": { "architecture": "x64", @@ -388,9 +392,9 @@ "organization_uuid": "9f0e9d64-c185-4d21-a6f4-4673ed561ec8" }, "observer": { - "ephemeral_id": "f78f6762-2157-4322-95aa-aecd2f486c1a", - "hostname": "ix.lan", - "id": "80b79979-4a7d-450d-b2ce-75c589f7fffd", + "ephemeral_id": "fb037b97-0027-401a-9dc4-17d162f2687f", + "hostname": "goat", + "id": "a4daf4ca-b280-4ede-90df-bf62482cec37", "type": "apm-server", "version": "8.0.0", "version_major": 8