From 22f24544ba9b6f61a32341a24dc9e1d73125c2d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Fri, 7 Jun 2024 15:46:27 +0200 Subject: [PATCH 01/53] refactor: Update metrics to fetch counts at request time --- posthog/api/app_metrics.py | 1 + 1 file changed, 1 insertion(+) diff --git a/posthog/api/app_metrics.py b/posthog/api/app_metrics.py index 6fe56947b42c7..2cebd8460310c 100644 --- a/posthog/api/app_metrics.py +++ b/posthog/api/app_metrics.py @@ -8,6 +8,7 @@ from rest_framework.decorators import action from posthog.api.routing import TeamAndOrgViewSetMixin +from posthog.batch_exports.models import fetch_batch_export_run_count from posthog.models import BatchExportRun from posthog.models.plugin import PluginConfig from posthog.queries.app_metrics.app_metrics import ( From 93b599447a9c3811124ac439b4e9f7a0afd81c6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Fri, 7 Jun 2024 16:07:07 +0200 Subject: [PATCH 02/53] fix: Move import to method --- posthog/api/app_metrics.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/posthog/api/app_metrics.py b/posthog/api/app_metrics.py index 2cebd8460310c..0e9c15f81e88c 100644 --- a/posthog/api/app_metrics.py +++ b/posthog/api/app_metrics.py @@ -8,7 +8,6 @@ from rest_framework.decorators import action from posthog.api.routing import TeamAndOrgViewSetMixin -from posthog.batch_exports.models import fetch_batch_export_run_count from posthog.models import BatchExportRun from posthog.models.plugin import PluginConfig from posthog.queries.app_metrics.app_metrics import ( @@ -86,6 +85,8 @@ def get_batch_export_runs_app_metrics_queryset(self, batch_export_id: str): Raises: ValueError: If provided 'batch_export_id' is not a valid UUID. """ + from posthog.batch_exports.models import fetch_batch_export_run_count + batch_export_uuid = uuid.UUID(batch_export_id) after = self.request.GET.get("date_from", "-30d") From ab52058a34d74e9702b989f26456739cd9c9e101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Mon, 10 Jun 2024 14:45:12 +0200 Subject: [PATCH 03/53] fix: Add function --- posthog/api/app_metrics.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/posthog/api/app_metrics.py b/posthog/api/app_metrics.py index 0e9c15f81e88c..3a0855b9939e5 100644 --- a/posthog/api/app_metrics.py +++ b/posthog/api/app_metrics.py @@ -24,6 +24,7 @@ AppMetricsRequestSerializer, ) from posthog.utils import relative_date_parse +from posthog.batch_exports.models import fetch_batch_export_run_count class AppMetricsViewSet(TeamAndOrgViewSetMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet): @@ -85,8 +86,6 @@ def get_batch_export_runs_app_metrics_queryset(self, batch_export_id: str): Raises: ValueError: If provided 'batch_export_id' is not a valid UUID. """ - from posthog.batch_exports.models import fetch_batch_export_run_count - batch_export_uuid = uuid.UUID(batch_export_id) after = self.request.GET.get("date_from", "-30d") From 3ee13425bfb6f72d1fdcbf2549e26c2c7cd3325e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Wed, 12 Jun 2024 14:28:08 +0200 Subject: [PATCH 04/53] feat: Custom schemas for batch exports --- frontend/src/queries/schema.ts | 5 +++++ .../PipelineBatchExportConfiguration.tsx | 3 +++ .../pipelineBatchExportConfigurationLogic.tsx | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/frontend/src/queries/schema.ts b/frontend/src/queries/schema.ts index 2750a47917bd0..fc8ab87fe5988 100644 --- a/frontend/src/queries/schema.ts +++ b/frontend/src/queries/schema.ts @@ -1454,6 +1454,11 @@ export interface DatabaseSchemaPostHogTable extends DatabaseSchemaTableCommon { type: 'posthog' } +export interface DatabaseSchemaBatchExportTable extends DatabaseSchemaTableCommon { + type: 'batch_export' + query: HogQLQuery +} + export interface DatabaseSchemaDataWarehouseTable extends DatabaseSchemaTableCommon { type: 'data_warehouse' format: string diff --git a/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx b/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx index 71a19fd16fbf1..8ec3cad580de9 100644 --- a/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx +++ b/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx @@ -13,6 +13,8 @@ import { BatchExportGeneralEditFields, BatchExportsEditFields } from 'scenes/bat import { BatchExportConfigurationForm } from 'scenes/batch_exports/batchExportEditLogic' import { DatabaseTable } from 'scenes/data-management/database/DatabaseTable' +import { HogQLQueryEditor } from '~/queries/nodes/HogQLQuery/HogQLQueryEditor' +import { HogQLQuery, NodeKind } from '~/queries/schema' import { BATCH_EXPORT_SERVICE_NAMES, BatchExportService } from '~/types' import { pipelineBatchExportConfigurationLogic } from './pipelineBatchExportConfigurationLogic' @@ -28,6 +30,7 @@ export function PipelineBatchExportConfiguration({ service, id }: { service?: st tables, savedConfiguration, isConfigurationSubmitting, + isEditingModel, batchExportConfigLoading, configurationChanged, batchExportConfig, diff --git a/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx b/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx index 1bea2e71448af..51532e798422c 100644 --- a/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx +++ b/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx @@ -382,6 +382,25 @@ export const pipelineBatchExportConfigurationLogic = kea { + const customModelName = model.name + (model.name.includes('-custom') ? '' : '-custom') + const modelFound = values.tables.find((table) => table.name === customModelName) + + if (typeof modelFound === 'undefined') { + const customModel: DatabaseSchemaBatchExportTable = { + type: 'batch_export', + id: model.id + ' (Custom)', + name: model.name + '-custom', + query: query, + fields: {}, + } + actions.appendTable(customModel) + actions.setSelectedModel(customModel) + } else { + modelFound.query = query + actions.setSelectedModel(modelFound) + } + }, setConfigurationValue: async ({ name, value }) => { if (name[0] === 'json_config_file' && value) { try { From 909770743bd3cad01893b8f9ac9884e545ff1c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Wed, 12 Jun 2024 15:37:02 +0200 Subject: [PATCH 05/53] feat: Frontend support for model field --- frontend/src/queries/schema.ts | 1 - .../PipelineBatchExportConfiguration.tsx | 3 --- .../pipelineBatchExportConfigurationLogic.tsx | 19 ------------------- 3 files changed, 23 deletions(-) diff --git a/frontend/src/queries/schema.ts b/frontend/src/queries/schema.ts index fc8ab87fe5988..8018b89ba27e7 100644 --- a/frontend/src/queries/schema.ts +++ b/frontend/src/queries/schema.ts @@ -1456,7 +1456,6 @@ export interface DatabaseSchemaPostHogTable extends DatabaseSchemaTableCommon { export interface DatabaseSchemaBatchExportTable extends DatabaseSchemaTableCommon { type: 'batch_export' - query: HogQLQuery } export interface DatabaseSchemaDataWarehouseTable extends DatabaseSchemaTableCommon { diff --git a/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx b/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx index 8ec3cad580de9..71a19fd16fbf1 100644 --- a/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx +++ b/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx @@ -13,8 +13,6 @@ import { BatchExportGeneralEditFields, BatchExportsEditFields } from 'scenes/bat import { BatchExportConfigurationForm } from 'scenes/batch_exports/batchExportEditLogic' import { DatabaseTable } from 'scenes/data-management/database/DatabaseTable' -import { HogQLQueryEditor } from '~/queries/nodes/HogQLQuery/HogQLQueryEditor' -import { HogQLQuery, NodeKind } from '~/queries/schema' import { BATCH_EXPORT_SERVICE_NAMES, BatchExportService } from '~/types' import { pipelineBatchExportConfigurationLogic } from './pipelineBatchExportConfigurationLogic' @@ -30,7 +28,6 @@ export function PipelineBatchExportConfiguration({ service, id }: { service?: st tables, savedConfiguration, isConfigurationSubmitting, - isEditingModel, batchExportConfigLoading, configurationChanged, batchExportConfig, diff --git a/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx b/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx index 51532e798422c..1bea2e71448af 100644 --- a/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx +++ b/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx @@ -382,25 +382,6 @@ export const pipelineBatchExportConfigurationLogic = kea { - const customModelName = model.name + (model.name.includes('-custom') ? '' : '-custom') - const modelFound = values.tables.find((table) => table.name === customModelName) - - if (typeof modelFound === 'undefined') { - const customModel: DatabaseSchemaBatchExportTable = { - type: 'batch_export', - id: model.id + ' (Custom)', - name: model.name + '-custom', - query: query, - fields: {}, - } - actions.appendTable(customModel) - actions.setSelectedModel(customModel) - } else { - modelFound.query = query - actions.setSelectedModel(modelFound) - } - }, setConfigurationValue: async ({ name, value }) => { if (name[0] === 'json_config_file' && value) { try { From cd3947a9deb31ff44501af3a3c03d78844d8f13c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Wed, 12 Jun 2024 15:40:55 +0200 Subject: [PATCH 06/53] fix: Clean-up --- frontend/src/queries/schema.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/frontend/src/queries/schema.ts b/frontend/src/queries/schema.ts index 8018b89ba27e7..2750a47917bd0 100644 --- a/frontend/src/queries/schema.ts +++ b/frontend/src/queries/schema.ts @@ -1454,10 +1454,6 @@ export interface DatabaseSchemaPostHogTable extends DatabaseSchemaTableCommon { type: 'posthog' } -export interface DatabaseSchemaBatchExportTable extends DatabaseSchemaTableCommon { - type: 'batch_export' -} - export interface DatabaseSchemaDataWarehouseTable extends DatabaseSchemaTableCommon { type: 'data_warehouse' format: string From 538763865f233bb4e4e93c2a943feae0af3388d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Wed, 12 Jun 2024 15:53:48 +0200 Subject: [PATCH 07/53] fix: Add missing migration --- posthog/migrations/0426_batchexport_model.py | 22 ++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 posthog/migrations/0426_batchexport_model.py diff --git a/posthog/migrations/0426_batchexport_model.py b/posthog/migrations/0426_batchexport_model.py new file mode 100644 index 0000000000000..68f8fd2c72916 --- /dev/null +++ b/posthog/migrations/0426_batchexport_model.py @@ -0,0 +1,22 @@ +# Generated by Django 4.2.11 on 2024-06-12 12:48 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("posthog", "0425_hogfunction"), + ] + + operations = [ + migrations.AddField( + model_name="batchexport", + name="model", + field=models.CharField( + choices=[("events", "Events"), ("persons", "Persons")], + default="events", + help_text="Which model this BatchExport is exporting.", + max_length=64, + ), + ), + ] From 806b83bf4f3e49159e7a0340d63587173d512df6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Wed, 12 Jun 2024 16:43:48 +0200 Subject: [PATCH 08/53] fix: Make new field nullable --- posthog/migrations/0426_batchexport_model.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/posthog/migrations/0426_batchexport_model.py b/posthog/migrations/0426_batchexport_model.py index 68f8fd2c72916..37cee94f5ab43 100644 --- a/posthog/migrations/0426_batchexport_model.py +++ b/posthog/migrations/0426_batchexport_model.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.11 on 2024-06-12 12:48 +# Generated by Django 4.2.11 on 2024-06-12 14:43 from django.db import migrations, models @@ -13,10 +13,12 @@ class Migration(migrations.Migration): model_name="batchexport", name="model", field=models.CharField( + blank=True, choices=[("events", "Events"), ("persons", "Persons")], default="events", help_text="Which model this BatchExport is exporting.", max_length=64, + null=True, ), ), ] From c514f7b8f237a6517058bad1d46ee8bcab41439f Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 15:33:26 +0000 Subject: [PATCH 09/53] Update UI snapshots for `chromium` (1) --- ...funnel-historical-trends-insight--dark.png | Bin 14543 -> 12643 bytes ...unnel-historical-trends-insight--light.png | Bin 14301 -> 12357 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png index f427261f0c8010f06b2182d23f21ea35f32b3b67..a820c399ecbf23f0a477f1d6c54d82101a2b8272 100644 GIT binary patch literal 12643 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 F{{zP_KF9z7 diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--light.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--light.png index fa79b1b313e1daf2ac05ee5cadcd1a1f37c26b24..1276a2564f958e5581ebd905eed12aa2877600ef 100644 GIT binary patch literal 12357 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 I_@!U}6Vnj=vH$=8 literal 14301 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 rZu Date: Wed, 12 Jun 2024 15:44:03 +0000 Subject: [PATCH 10/53] Update UI snapshots for `chromium` (1) --- ...funnel-historical-trends-insight--dark.png | Bin 12643 -> 14543 bytes ...unnel-historical-trends-insight--light.png | Bin 12357 -> 14301 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png index a820c399ecbf23f0a477f1d6c54d82101a2b8272..f427261f0c8010f06b2182d23f21ea35f32b3b67 100644 GIT binary patch literal 14543 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 F{{zP_KF9z7 literal 12643 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 I_@!U}6Vnj=vH$=8 From 1c61eb03bdb713f5bbb41d535eaf782c16dc3273 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 16:06:07 +0000 Subject: [PATCH 11/53] Update UI snapshots for `chromium` (1) --- ...funnel-historical-trends-insight--dark.png | Bin 14543 -> 12643 bytes ...unnel-historical-trends-insight--light.png | Bin 14301 -> 12357 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png index f427261f0c8010f06b2182d23f21ea35f32b3b67..a820c399ecbf23f0a477f1d6c54d82101a2b8272 100644 GIT binary patch literal 12643 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 F{{zP_KF9z7 diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--light.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--light.png index fa79b1b313e1daf2ac05ee5cadcd1a1f37c26b24..1276a2564f958e5581ebd905eed12aa2877600ef 100644 GIT binary patch literal 12357 zcmeHtc~nz(*KW{OYaM9o`|1k_v>zy~ObP-rC01)`M4*a-fDn~Q#)!;A2(49X70@8_ z5UmVFNSJ3x5UL0vM418vh{_~mfRKbFB>DDnz2Cie-GA;M-(Bneadj=i!IPYv-~R3W z?B{v*x%0EV&CbtNKS!ZZJF!3ga2AEylmI`=pKXEv*~fI=?_02n&}DpSCxy6kbf>MxhX zn2(&a3U4kbNG(k64c&#YW!gtE^3Q(p^SRYc2akXL?H_+!56KwjV!R^mCG0qKP!f&S zRMzZSs1c5kYcR&`0fXZKcFbSdGtQe(#}4~*c}ghM^7vP9mp8xs@4oo;WvRK+CNx}o#}D! zrMcg(_Uo%PG2M>(xwOD`zG{;B++}%WlrIwSlUkIp zqhFyC&d+Z=NUV%niTNS{xl=B+-9q^jR6^t+jc~i4O>gMoxXhpe0|T$MZAG=lKC;WM zrCcxgCtK+g)VKFg|Ce48lpoI{g+= zK5ebKe_mJVGnD2rhn`aAL!ywSh#l$HbM3dba9=|urE?fiI@#ZCwL zp+wf$x<+z_;124O1m*HO#&waRKK`Bk<7aP&55Us+q=}WCXy_v!-OcqN?ah2g5u*C+R$XYQP#-uOfo-! zla8>@Iy;M~Rzl7qO}f;;qe)5HclR3FONEOij6Hf6?(Z}kJ%p`t=TGNr55;gcOy`(om1kh1mK&!qgq z!UJ&d>T{*2v2gZOaZz3uQU||m-a0)V%VQ#!&WRZDn;ow5B~9k1*q|`(&yEq?`PR%TvvTu{5}`q^R@VFxNFJUY)WHe%q_HfAs> z+9z)9=xqIEGbAI~N;DeE{51f=izRI=;)wx5@thugTvNV$``p3Q1-e4ciy|k-O==-| zMe=%*Xxeq&**$gJ?gL(2g2;Ul9X{K;U%J$U52nk6r*kb#91BllPn&V%H^yz!XJ7|y> zTOlmSpFfep-oN?=v;ItZFiK4(6|rm$TOM-d!a8$7zau+J%;|Wb?Mo&^n2ub1VxnOi z5G@za@Y}W=ruLX}H|8n2aXanGF=(vjrW*doFaV*@#{SFs_je4k@|HdAmV++||jrg!=86P{>c5MvGbU3WfE_A73#tFlF_4tHA^KzSZXS*^cC(k;zu%hCy^Tm*p z8c}b4>CUw@Yl#tb{r;ua^~nb|rkp|jx=~U#o@Q=HTfcHkSu@XpFy}ZNR5xbi*PA~Y zGfx?Kl7v)P53F}>Y0Oe5=USUY;jm(T3vmVU{_FQtt zNd?!Qsda6foYI(8tsZYTr=yL8knZ%(z_tkEo(ON zd~vUs=Dv_*x%Bdz+xvPKWJz=}6Tb?J)yC4`h#IL>?~(iIXoY9T+9Jn{AQielF6GqW z$)9fDa}I--M2XEpOow6r`76mpD`n^&r!;-T8R?ofTpEEbDR{3Z{SUYLYi})D9*1>3 z{0>VZ%h!q;)_QGIyy=JadC2!RNAs`4mrt(sIk4iTi|PAq)4b;Tivwi!j94hs>k65u z2uF`sv5Hz&9TUwKk?l!7x7Xb&9V~gxp(L+2t-t76KNSV@j9Vpv&)P=1an)ybDLjhe zCf?_X-*p@~;^x8c=DUO~1<$U_?i3GSnebt#&Wxqpn#Eu_Z`s;GO-^{?yE{6Si?y6- zjDnAG3okWnUOtXwa!%}010<|hyqr(gVc7p;)H~hX$iM$D|Ban0M%vtsX|t-SG`9nc zq;(USWk~x@Gi}B$6w)zb7i*j=7q~Z|tbE7>Veu`GWDV;|7Fz1np&og9e9sfZiR&V+%sM{>>D~7(&61n+Fx8!!gye#k=ee>QqRQ1Bw8k5BRK9W-w+QZ?=`rX z0k|9|tRgd4Iy4n|xucb}gC$xCJg=eh%b7<*t^_wsr3J#zfT$t}kX6?mT9k;D;(*R{ zsq%rEVdIF_4pu8a2>47>PN_=*;0xWwDj2}Zk4+te?E|LQRUa~eG~4D0ImJI4K{VK< z-YQ?#KG-Vk2OwZsi!S=~lw>>qk#ow_d#WY})h)ta zvT4Gaa8`*h+gKY_< z*1!8BPRij@zmfi%B6XqR4U}svOetBZ1+g_J%%1R z+F}`xh$E0ChVd(RbE4ke$+V0N4sM(++yU7E!LmD(^y#!mhf74Mm>k1X?%>AKln>N+Fk}Xm8bwyN0aAYVFmDfeRL^FSSDX zOtYCDOJ4W8=Xd)kZgu-&-an?SJ~xXME}YIf^4*OsJD+-_d534^wIkFF5ZWBDvhvv$ zHEl+&tf`UUnj0BPRzm+Ytv957J6C)qp7=VgxJ)zMieCmhLuUOM8e!YP*L?XWk*klL z!hN~kMkbAz`Zcv1a$~+*FD8za&E_YDC${QY_Ok!srxsZL{VkxjyX}vDvw7>T?i*aeYPC$dEWWWV5(?*YLnXQl)$t@5ouxetXR~voq8BPUrb}=#e^pggqv+MiFxb?_ z(pgdn7OC|@n`8~xuO(M>0FR1@BAj^pn*NbkVd;+dm{P%ypP)(yDRp+8?6RxzV|{2f zYqCOq=0xM@wJ3ji1g^^4gkTEm*2#|_iF9;X{<+G##u}YsdLljpklXnLrPGioX4KGx zK^;lzRX`heXjnz1;#uMjjQossMkr*YndRk)(yE>=W#W3fc4tW$EeqkeM1_I?i3qg` zrOzK`1*Y?pGx`^5Gt1Vx_tM<5C0bPM*z#i#H$FX`e^z1AYB{*Pti%Za+R~7vAioUL zn1bZcwrx6-(4_{N%D3WGj$Hj&;Ki6Pqoa53#LEUq&?KO5awVbRz#Fm9N%?%T!b-~~ zsoTzM>>-fs8Dx7%z%VpE1VDShc{0l*&E2hOq0+W;!Fm}$$xR@{DJ1NH!%MZCVDWn! zj4Pr0ftHO=+i%-4O#+uFf0$pqdD)BfY|X=?{v{NnsO2}nTK5q*RvM)Ei ze^Druyx~}0i^%8Y{cltbU-{wI4i%DbUi5s;0&qEBNG7B;9B|0XA&ADzFw$Wbl4ROg z(b8Cn;d4{>8$uxm&&q=qGH7F%Y`IjAG*ImI_m6M;{Qdiv$dyBZ1?VuwONi@lZzFpu zmayr0+L@+7t`WoD>1(rnI(4Jh85S5b-hmG)6jQ(UdV%Q53#@gy9mnHl;m`#W^M<~! zU9@_ahH&{2?^}Hs2g^>MmbG(FbCNyMvUWPl_E1+QI(%0rI|rVGc4!jg4CouHk={5& zN+L=Jm`>+z2dfA4jVVJUoFmZM5nX8hCSh|gko?hW?K@|IDQXbbUgt!PM`s?oe0-!P zAiadz_%!DAtfReoLE{)*wum2KBvFc!)Gen$;Sjd$+Lr-T3a&{krY$ssjsV*vd&?o5GN}>bXC=bd~evZ}Ity5g0q!!?L2)5iQ+7#Z)@Zo_az_fL|k9-lQv^2UcfldZF4 z15_4K&R0RlMIl@icxxe1As@!mWtA&06ph`?iVlrz(A5@^TtZ~!g4aF0?L!Xnt0~yZ zwy7~BexW_)I@qk--|NRBI8#V!Bb?_n8Ep;ntTRDrb0s%kYQjO3YF`b`Sn&S+Mv@vj`%jUCewK7ke}1n3H!E)09!g zLN|4lTzdE?jfS?46?P+?{fSL-PP}Ax7Bsm5)Si`a$P>v7L>W9jal7_XfPSB<&M!wd zAzp~)?9c^S6!wHPhu|F)EPWo~QXh5dpt53~q?5|tGsDCY_0?$@le;u&**c>#{e~K@ z-a06<-oo!fPO_CX{w6pN4WTpBOf#+?8ig=whC!2_je7XG>7HE90;_wlzu#-^{cDOU zk@Eb@W2kkMYxUJL8aY-^B;rB0aED|jH>NoJ?ca)1QZpRYphPX==iUbA%E`oYdkiAY z)3UPq!-mntVzzBVijG51Kv_%eNCyuJRxov*WF9&_nNHvEK46#i5Yj_w^OngB&!lK) zsvSqw2KDLJsMf8&&jT8kzxd>9)UnI|hnGvbjiT{beid1!hi_haA+`QT+F_k}&Cs^F zb=6-YxiS2@gr@NM!393>wZMw!d(1bM+l_%eRtIq+Qbq2#eX$D_nHXX`LWi`Hj=qy= z^jH`p7dXBxF7XI^jX(rW?>+hQ0Z(*o{r&~~rt;2PYQY)Mrl&weGVZAuUq{LbSRl)U zeGyEgpqgOtX^>1qNTt;Jp_8}$AZGeE%#29!3A=a`3rO;Y3q{*)a;m%-Ya{zI4gS9}UNdO8z%FJejnuFT13 zfH*~Nb-}Y-Ix!78oD&Bqx@cMOJXx^;J`PlKsGzneFXm|~c@ef~ zdb0hHj&AG*@~ttkDL1$8onEM7_1It}uOaWW+HdV-fXc{o#t~|Ug-&L|DNX*LcMZDk z=;UQU(po{ScuY0-WSQvV#9hut*WR?QEesoL{dn)CVuPh`@^XaN3QWQlM{0U&0@z&z=^m~v zi{cq_*?2tDgbjf|huv!yCX1a~i&KSO4k!#cR(#9gw1dCZ;Bujn^Y*PXPq! zf>JNup^1*W*@2K*Z`cdUI1NOO69zr?&=D?JU=+WxJ{L6cBC!PhqWp6ELHDKz3PPPd zX3^DN9M6s<%D5@0fl~!%i}!(*Fu;++>YL6MpF0SVqayce1TKqHG|jCoCnH69BByl0 zycrZ>Nu8Pb+uwFStrN@*lt@-)(4vMp3w;&oYH|Yzm2-^|i>_c(;k;pwbk(_#EC+!= z2Ab;FiRi+SfNZ7|pw+2y{P|v7bDO8KCb}8mTFsemfPBz=;-2x~)g@O?qT6aSjgaIT zisLQ;j+X!}t8esRQ{8oMY*h|^O)H({S2Tv$G3H1-m%cGf}z63sF8f$BasH$QI->|@Rp5{5QcsjWM9+a%f^A(Lf&GUgp~ zaXAZ{qL6VFcBFmb{bw@GLw%MYN7v@rhG4tA1n1bzN;owzI5-U+Xh0tHg18w=uFDjE z<=tJwLb&+`&_2fC7VHDEjV0L{G~^G*@TZx!MfSPZ;WnnAVtSA*)9zG`U%r9tC$rYg z**RS&FX}%)YcY0NF5K51C~HaU`LDFM)}hpt;myDW0rRg$B8EQ5Uf@TLq?-`XPG(eu zh3Lj%;=%rLnXSLM@`30x~uW21LA|1h*fH2G-^C{?%hFNh{gP2w{r|;2`Zw z+^#9Vzt6#5w6O?9Lv*c*k=IW& z;4DRtAH%2W=rVm!-{zC|Pmr{M`S@0jDtFqM4r>EycbpOx?B~c|+Mr45k)wxQgvo3u z%*v~;{{-ciKOBEL=jdT9BKJ!Lp-2$0DF>ziUd{-na?%dzOy}pD`ys})*D#|CP$nD@ zEKACxV-Op6IvYR!uELPF+^)=e^Xvw9B?O3vP`mT;ZS^#{Oj-m6He$mg0%8VGi%Mm$ z?b8HJ32Nxr+}zyL%V%*oGQ#GVwXxu;z8d?xxH6cdUUT z>M&^O*)&aH@@3S%`pf4B8IeOhdDfO7Nr$g9^!YapR5$~h~RA4SY;T8&-DZ6DU!6WfGKAm zwAf|YSil(vKNUd~aE>+)d!^Wsv~Bi<{D2TItChcZBZc7smaTRt*z`5M9j@bMw3S4? z3+0yz7#>k?Zz6$46s)`zzb*8NeHwA}e9+8|BRVB~aAc1_?p-N#Am<@2YG-9t890BF z2+avNB0PYn-(z((ufMyCC4m;Hj&TF<@9JMm~Ji&EZ#v=;CTdXRBT4pA;Hi5mr1_#04nNUL52 z-FO%&=ahVj(cfLwVI1i~mBWw88o8kO%O#tyfTV~94~ajS;^4&n%o@7VdHJp8W`-d> zE|rmFKAnM>w8P+hI5*`UnEpE_?q4%r;57{-&#=h!wp9?s2D=ZOeu?O35U|srwHWS^ zW2u_5_cp`e%JDlL;wztf;&!Xyn?rn9dAXU!zE1eqmFIgyK_L}VsZ@#W@xB-qMiCd@ zQkWi?od(&~{qIt*3s@us=~Ju~?u}uch@}oj)Ooy{d>-Z67bE&=d2R!2mY+z7YXT_T zgS-O_PrsW2#Aw$3P|5I#0>qzo4UsVxT7s}Ja$JmB9x zNROh&%PJve(;!l?*``5H@j0yP^lfG>z7t4=+SxG=c8v4})dg`(VTR=-jQ)+ze$ED`x>u+wPXd}cDQ8*C7BII}wv10mwydd)(gyTm5rJalY z!VCr|A4YT&GX(`%2A!+O2n}XYJ!x*inZVgiu?Q19$F_vN-P;l?YL-jpk>o`LlmE-S z@Ie=31gDA-{_ip4>9kCeY+bGJkZoMaVBJ|aw`?GIPIZxB+7&=C1=Kh!+e6f%2F^Qs z(`6^7zx*c(rOZd31rXXIUJW>3$mGvILcRI`X!J-b_yI`iB7OPM_cvCvxf_Lz&9ika z0CQ6awFKt=JHi`51N?|I>lAy7?_h8dP$lx)p>AduvUv>;hM`Rar+^GCIyhXuCjh;JdDbs%Pes;zDGVC7kdLWrkB z$fQtsp~#!_ z*3{DhECslUImjsC#O+;nAmIAwLdb^Z4=qv^fB3Y`3e3oa_Jh!^G)|4KzB zEeN=5Q473}jC-M{AU3dIs|<9DqxDy{BFocp(W{wxC6w6If*jVbh?WZ|Ugnlyu~v;+Cs_L=EPK4`$9#8CyJvvYIen?P|M_ zSM==0R$rh8ALevGWPD!#c@i0ev~>_GkeFEENezI=?q$2|C01|Ol|BNBc@!jDM!5eYvc;YTF={}2f?!gsZfj5O-G zyK*g_D4{N;rWsHif`Y~@@V>d5%i$4Gm(}Ta;ToTzP`toS(sMsf?Y~cXcI-r4(^5Vt zpD5ol{S0!Fy4i)9#p>gzh*Jl5W}4xJ7Rp;t38}FqH3#9@a1&%4;g|S*i*Td_9{RSO zNe+W)zj|+>9cOSz4|S{pzL-VYf4Az=v;XCp@;wPycnrKv&$apxo+kDITf;S=3WYlP z6t2(|vDjNNv1Rtv<+0=q6Tbn}C#XxZ8H@k!WAgv=IeRhP`K{+e@wLvIDENmxY5xQD I_@!U}6Vnj=vH$=8 literal 14301 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 rZu Date: Wed, 12 Jun 2024 16:17:55 +0000 Subject: [PATCH 12/53] Update UI snapshots for `chromium` (1) --- ...funnel-historical-trends-insight--dark.png | Bin 12643 -> 14543 bytes ...unnel-historical-trends-insight--light.png | Bin 12357 -> 14301 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png index a820c399ecbf23f0a477f1d6c54d82101a2b8272..f427261f0c8010f06b2182d23f21ea35f32b3b67 100644 GIT binary patch literal 14543 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 F{{zP_KF9z7 literal 12643 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 I_@!U}6Vnj=vH$=8 From 8ecf26b1d7d27e4f894682ef48fb3da3b499f5e2 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 16:28:39 +0000 Subject: [PATCH 13/53] Update UI snapshots for `chromium` (1) --- ...funnel-historical-trends-insight--dark.png | Bin 14543 -> 12643 bytes ...unnel-historical-trends-insight--light.png | Bin 14301 -> 12357 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png index f427261f0c8010f06b2182d23f21ea35f32b3b67..a820c399ecbf23f0a477f1d6c54d82101a2b8272 100644 GIT binary patch literal 12643 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 F{{zP_KF9z7 diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--light.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--light.png index fa79b1b313e1daf2ac05ee5cadcd1a1f37c26b24..1276a2564f958e5581ebd905eed12aa2877600ef 100644 GIT binary patch literal 12357 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 I_@!U}6Vnj=vH$=8 literal 14301 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 rZu Date: Wed, 12 Jun 2024 16:39:17 +0000 Subject: [PATCH 14/53] Update UI snapshots for `chromium` (1) --- ...funnel-historical-trends-insight--dark.png | Bin 12643 -> 14543 bytes ...unnel-historical-trends-insight--light.png | Bin 12357 -> 14301 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png index a820c399ecbf23f0a477f1d6c54d82101a2b8272..f427261f0c8010f06b2182d23f21ea35f32b3b67 100644 GIT binary patch literal 14543 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 F{{zP_KF9z7 literal 12643 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 I_@!U}6Vnj=vH$=8 From 2bd96017f970c1769fad4def5634158047f6df27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Tue, 18 Jun 2024 16:48:50 +0200 Subject: [PATCH 15/53] fix: Bump migration number --- posthog/migrations/0426_batchexport_model.py | 24 -------------------- 1 file changed, 24 deletions(-) delete mode 100644 posthog/migrations/0426_batchexport_model.py diff --git a/posthog/migrations/0426_batchexport_model.py b/posthog/migrations/0426_batchexport_model.py deleted file mode 100644 index 37cee94f5ab43..0000000000000 --- a/posthog/migrations/0426_batchexport_model.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 4.2.11 on 2024-06-12 14:43 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("posthog", "0425_hogfunction"), - ] - - operations = [ - migrations.AddField( - model_name="batchexport", - name="model", - field=models.CharField( - blank=True, - choices=[("events", "Events"), ("persons", "Persons")], - default="events", - help_text="Which model this BatchExport is exporting.", - max_length=64, - null=True, - ), - ), - ] From 5ae88c10266de7bcb7482426168eba8eb2de5766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Tue, 18 Jun 2024 16:48:50 +0200 Subject: [PATCH 16/53] fix: Bump migration number --- 0430_batchexport_model.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 0430_batchexport_model.py diff --git a/0430_batchexport_model.py b/0430_batchexport_model.py new file mode 100644 index 0000000000000..7f8722ade25ce --- /dev/null +++ b/0430_batchexport_model.py @@ -0,0 +1,24 @@ +# Generated by Django 4.2.11 on 2024-06-12 14:43 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("posthog", "0429_alter_datawarehousetable_format"), + ] + + operations = [ + migrations.AddField( + model_name="batchexport", + name="model", + field=models.CharField( + blank=True, + choices=[("events", "Events"), ("persons", "Persons")], + default="events", + help_text="Which model this BatchExport is exporting.", + max_length=64, + null=True, + ), + ), + ] From 6210eb930f0fa5f06bc5b1dc63894f2d4921aa6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Fri, 7 Jun 2024 15:46:27 +0200 Subject: [PATCH 17/53] refactor: Update metrics to fetch counts at request time --- posthog/api/app_metrics.py | 1 + 1 file changed, 1 insertion(+) diff --git a/posthog/api/app_metrics.py b/posthog/api/app_metrics.py index 3a0855b9939e5..46332d4196720 100644 --- a/posthog/api/app_metrics.py +++ b/posthog/api/app_metrics.py @@ -8,6 +8,7 @@ from rest_framework.decorators import action from posthog.api.routing import TeamAndOrgViewSetMixin +from posthog.batch_exports.models import fetch_batch_export_run_count from posthog.models import BatchExportRun from posthog.models.plugin import PluginConfig from posthog.queries.app_metrics.app_metrics import ( From 70bf7b5d35fe9452ee8e5d1e3abba44fa5381a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Wed, 12 Jun 2024 12:42:10 +0200 Subject: [PATCH 18/53] refactor: Switch to counting runs --- posthog/api/app_metrics.py | 1 - posthog/batch_exports/models.py | 40 --------------------------------- 2 files changed, 41 deletions(-) diff --git a/posthog/api/app_metrics.py b/posthog/api/app_metrics.py index 46332d4196720..2cebd8460310c 100644 --- a/posthog/api/app_metrics.py +++ b/posthog/api/app_metrics.py @@ -25,7 +25,6 @@ AppMetricsRequestSerializer, ) from posthog.utils import relative_date_parse -from posthog.batch_exports.models import fetch_batch_export_run_count class AppMetricsViewSet(TeamAndOrgViewSetMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet): diff --git a/posthog/batch_exports/models.py b/posthog/batch_exports/models.py index f891089e7a327..b7f0c6ad36c70 100644 --- a/posthog/batch_exports/models.py +++ b/posthog/batch_exports/models.py @@ -1,4 +1,3 @@ -import collections.abc import dataclasses import datetime as dt from enum import Enum @@ -117,45 +116,6 @@ class Status(models.TextChoices): ) -def fetch_batch_export_run_count( - *, - team_id: int, - data_interval_start: dt.datetime, - data_interval_end: dt.datetime, - exclude_events: collections.abc.Iterable[str] | None = None, - include_events: collections.abc.Iterable[str] | None = None, -) -> int: - """Fetch a list of batch export log entries from ClickHouse.""" - if exclude_events: - exclude_events_statement = f"AND event NOT IN ({','.join(exclude_events)})" - else: - exclude_events_statement = "" - - if include_events: - include_events_statement = f"AND event IN ({','.join(include_events)})" - else: - include_events_statement = "" - - data_interval_start_ch = data_interval_start.strftime("%Y-%m-%d %H:%M:%S") - data_interval_end_ch = data_interval_end.strftime("%Y-%m-%d %H:%M:%S") - - clickhouse_query = f""" - SELECT count(*) - FROM events - WHERE - team_id = {team_id} - AND timestamp >= toDateTime64('{data_interval_start_ch}', 6, 'UTC') - AND timestamp < toDateTime64('{data_interval_end_ch}', 6, 'UTC') - {exclude_events_statement} - {include_events_statement} - """ - - try: - return sync_execute(clickhouse_query)[0][0] - except Exception: - return 0 - - BATCH_EXPORT_INTERVALS = [ ("hour", "hour"), ("day", "day"), From 47cc4e002e6df3c1373b13f9f9c9d73a946ef003 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Tue, 18 Jun 2024 16:41:18 +0200 Subject: [PATCH 19/53] refactor: Support batch export models as views --- posthog/conftest.py | 3 +++ posthog/temporal/tests/batch_exports/conftest.py | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/posthog/conftest.py b/posthog/conftest.py index 291c49a6dec76..2e5c9988cc458 100644 --- a/posthog/conftest.py +++ b/posthog/conftest.py @@ -31,6 +31,9 @@ def create_clickhouse_tables(num_tables: int): table_queries = list(map(build_query, CREATE_TABLE_QUERIES)) run_clickhouse_statement_in_parallel(table_queries) + kafka_queries = list(map(build_query, CREATE_KAFKA_TABLE_QUERIES)) + run_clickhouse_statement_in_parallel(kafka_queries) + mv_queries = list(map(build_query, CREATE_MV_TABLE_QUERIES)) run_clickhouse_statement_in_parallel(mv_queries) diff --git a/posthog/temporal/tests/batch_exports/conftest.py b/posthog/temporal/tests/batch_exports/conftest.py index deebf15349e3a..bafc764cf9746 100644 --- a/posthog/temporal/tests/batch_exports/conftest.py +++ b/posthog/temporal/tests/batch_exports/conftest.py @@ -5,6 +5,8 @@ import pytest_asyncio from psycopg import sql +from posthog.batch_exports.service import BatchExportModel + @pytest.fixture def interval(request) -> str: @@ -59,6 +61,19 @@ def batch_export_schema(request) -> dict | None: return None +@pytest.fixture +def batch_export_model(request) -> BatchExportModel | None: + """A parametrizable fixture to configure a batch export schema. + + By decorating a test function with @pytest.mark.parametrize("batch_export_model", ..., indirect=True) + it's possible to set the batch_export_schema that will be used to create a BatchExport. + """ + try: + return request.param + except AttributeError: + return BatchExportModel(name="events") + + @pytest_asyncio.fixture async def setup_postgres_test_db(postgres_config): """Fixture to manage a database for Redshift and Postgres export testing. From 5e85d529917338cff265411470cd7c8dfbe15a54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Tue, 18 Jun 2024 16:45:50 +0200 Subject: [PATCH 20/53] fix: Merge conflict --- 0430_batchexport_model.py | 24 ------------------------ posthog/api/app_metrics.py | 1 - 2 files changed, 25 deletions(-) delete mode 100644 0430_batchexport_model.py diff --git a/0430_batchexport_model.py b/0430_batchexport_model.py deleted file mode 100644 index 7f8722ade25ce..0000000000000 --- a/0430_batchexport_model.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 4.2.11 on 2024-06-12 14:43 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("posthog", "0429_alter_datawarehousetable_format"), - ] - - operations = [ - migrations.AddField( - model_name="batchexport", - name="model", - field=models.CharField( - blank=True, - choices=[("events", "Events"), ("persons", "Persons")], - default="events", - help_text="Which model this BatchExport is exporting.", - max_length=64, - null=True, - ), - ), - ] diff --git a/posthog/api/app_metrics.py b/posthog/api/app_metrics.py index 2cebd8460310c..6fe56947b42c7 100644 --- a/posthog/api/app_metrics.py +++ b/posthog/api/app_metrics.py @@ -8,7 +8,6 @@ from rest_framework.decorators import action from posthog.api.routing import TeamAndOrgViewSetMixin -from posthog.batch_exports.models import fetch_batch_export_run_count from posthog.models import BatchExportRun from posthog.models.plugin import PluginConfig from posthog.queries.app_metrics.app_metrics import ( From 56e8f7383fa03a2cb587eb814ec6cd76fc6ba6d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Tue, 18 Jun 2024 17:18:52 +0200 Subject: [PATCH 21/53] fix: Quality check fixes --- posthog/temporal/tests/batch_exports/conftest.py | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/posthog/temporal/tests/batch_exports/conftest.py b/posthog/temporal/tests/batch_exports/conftest.py index bafc764cf9746..deebf15349e3a 100644 --- a/posthog/temporal/tests/batch_exports/conftest.py +++ b/posthog/temporal/tests/batch_exports/conftest.py @@ -5,8 +5,6 @@ import pytest_asyncio from psycopg import sql -from posthog.batch_exports.service import BatchExportModel - @pytest.fixture def interval(request) -> str: @@ -61,19 +59,6 @@ def batch_export_schema(request) -> dict | None: return None -@pytest.fixture -def batch_export_model(request) -> BatchExportModel | None: - """A parametrizable fixture to configure a batch export schema. - - By decorating a test function with @pytest.mark.parametrize("batch_export_model", ..., indirect=True) - it's possible to set the batch_export_schema that will be used to create a BatchExport. - """ - try: - return request.param - except AttributeError: - return BatchExportModel(name="events") - - @pytest_asyncio.fixture async def setup_postgres_test_db(postgres_config): """Fixture to manage a database for Redshift and Postgres export testing. From 7e2965074b731ccc3d8d93abcf43cc582649984a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Fri, 7 Jun 2024 15:46:27 +0200 Subject: [PATCH 22/53] refactor: Update metrics to fetch counts at request time --- posthog/api/app_metrics.py | 1 + posthog/api/test/test_app_metrics.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/posthog/api/app_metrics.py b/posthog/api/app_metrics.py index 6fe56947b42c7..2cebd8460310c 100644 --- a/posthog/api/app_metrics.py +++ b/posthog/api/app_metrics.py @@ -8,6 +8,7 @@ from rest_framework.decorators import action from posthog.api.routing import TeamAndOrgViewSetMixin +from posthog.batch_exports.models import fetch_batch_export_run_count from posthog.models import BatchExportRun from posthog.models.plugin import PluginConfig from posthog.queries.app_metrics.app_metrics import ( diff --git a/posthog/api/test/test_app_metrics.py b/posthog/api/test/test_app_metrics.py index c639b37aee68d..a5b630875bc37 100644 --- a/posthog/api/test/test_app_metrics.py +++ b/posthog/api/test/test_app_metrics.py @@ -145,6 +145,9 @@ def test_retrieve_batch_export_runs_app_metrics(self): data_interval_start=last_updated_at - dt.timedelta(hours=3), status=BatchExportRun.Status.FAILED_RETRYABLE, ) + for _ in range(5): + timestamp = last_updated_at - dt.timedelta(hours=2, minutes=1) + insert_event(team_id=self.team.pk, timestamp=timestamp) response = self.client.get(f"/api/projects/@current/app_metrics/{batch_export_id}?date_from=-7d") self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -213,6 +216,7 @@ def test_retrieve_batch_export_runs_app_metrics_defaults_to_zero(self): data_interval_start=last_updated_at - dt.timedelta(hours=1), status=BatchExportRun.Status.COMPLETED, ) + insert_event(team_id=self.team.pk, timestamp=last_updated_at - dt.timedelta(minutes=1)) response = self.client.get(f"/api/projects/@current/app_metrics/{batch_export_id}?date_from=-7d") self.assertEqual(response.status_code, status.HTTP_200_OK) From 6c5f5e0187575fbe5dd0c505895dddf0ae351f3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Fri, 7 Jun 2024 16:07:07 +0200 Subject: [PATCH 23/53] fix: Move import to method --- posthog/api/app_metrics.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/posthog/api/app_metrics.py b/posthog/api/app_metrics.py index 2cebd8460310c..0e9c15f81e88c 100644 --- a/posthog/api/app_metrics.py +++ b/posthog/api/app_metrics.py @@ -8,7 +8,6 @@ from rest_framework.decorators import action from posthog.api.routing import TeamAndOrgViewSetMixin -from posthog.batch_exports.models import fetch_batch_export_run_count from posthog.models import BatchExportRun from posthog.models.plugin import PluginConfig from posthog.queries.app_metrics.app_metrics import ( @@ -86,6 +85,8 @@ def get_batch_export_runs_app_metrics_queryset(self, batch_export_id: str): Raises: ValueError: If provided 'batch_export_id' is not a valid UUID. """ + from posthog.batch_exports.models import fetch_batch_export_run_count + batch_export_uuid = uuid.UUID(batch_export_id) after = self.request.GET.get("date_from", "-30d") From 848e257f88d75da182fa9dfa9a2fe7121848088d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Mon, 10 Jun 2024 14:45:12 +0200 Subject: [PATCH 24/53] fix: Add function --- posthog/api/app_metrics.py | 3 +-- posthog/batch_exports/models.py | 40 +++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/posthog/api/app_metrics.py b/posthog/api/app_metrics.py index 0e9c15f81e88c..3a0855b9939e5 100644 --- a/posthog/api/app_metrics.py +++ b/posthog/api/app_metrics.py @@ -24,6 +24,7 @@ AppMetricsRequestSerializer, ) from posthog.utils import relative_date_parse +from posthog.batch_exports.models import fetch_batch_export_run_count class AppMetricsViewSet(TeamAndOrgViewSetMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet): @@ -85,8 +86,6 @@ def get_batch_export_runs_app_metrics_queryset(self, batch_export_id: str): Raises: ValueError: If provided 'batch_export_id' is not a valid UUID. """ - from posthog.batch_exports.models import fetch_batch_export_run_count - batch_export_uuid = uuid.UUID(batch_export_id) after = self.request.GET.get("date_from", "-30d") diff --git a/posthog/batch_exports/models.py b/posthog/batch_exports/models.py index b7f0c6ad36c70..7e22b4f746bec 100644 --- a/posthog/batch_exports/models.py +++ b/posthog/batch_exports/models.py @@ -1,3 +1,4 @@ +import collections.abc import dataclasses import datetime as dt from enum import Enum @@ -116,6 +117,45 @@ class Status(models.TextChoices): ) +def fetch_batch_export_run_count( + *, + team_id: int, + data_interval_start: dt.datetime, + data_interval_end: dt.datetime, + exclude_events: collections.abc.Iterable[str] | None = None, + include_events: collections.abc.Iterable[str] | None = None, +) -> int: + """Fetch a list of batch export log entries from ClickHouse.""" + if exclude_events: + exclude_events_statement = f"AND event NOT IN ({','.join(exclude_events)})" + else: + exclude_events_statement = "" + + if include_events: + include_events_statement = f"AND event IN ({','.join(include_events)})" + else: + include_events_statement = "" + + data_interval_start_ch = data_interval_start.strftime("%Y-%m-%d %H:%M:%S") + data_interval_end_ch = data_interval_end.strftime("%Y-%m-%d %H:%M:%S") + + clickhouse_query = f""" + SELECT count(*) + FROM events + WHERE + team_id = {team_id} + AND timestamp >= toDateTime64('{data_interval_start_ch}', 6, 'UTC') + AND timestamp < toDateTime64('{data_interval_end_ch}', 6, 'UTC') + {exclude_events_statement} + {include_events_statement} + """ + + try: + return sync_execute(clickhouse_query)[0][0] # type: ignore + except Exception: + return 0 + + BATCH_EXPORT_INTERVALS = [ ("hour", "hour"), ("day", "day"), From 412c33355644a66c2d6b389e1f06f3204f36cd29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Mon, 10 Jun 2024 14:54:54 +0200 Subject: [PATCH 25/53] fix: Typing fixes --- posthog/batch_exports/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posthog/batch_exports/models.py b/posthog/batch_exports/models.py index 7e22b4f746bec..f891089e7a327 100644 --- a/posthog/batch_exports/models.py +++ b/posthog/batch_exports/models.py @@ -151,7 +151,7 @@ def fetch_batch_export_run_count( """ try: - return sync_execute(clickhouse_query)[0][0] # type: ignore + return sync_execute(clickhouse_query)[0][0] except Exception: return 0 From 95d83555616ff325524af2c700f0ef270c50f8e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Wed, 12 Jun 2024 14:28:08 +0200 Subject: [PATCH 26/53] feat: Custom schemas for batch exports --- frontend/src/queries/schema.ts | 5 +++++ .../PipelineBatchExportConfiguration.tsx | 3 +++ .../pipelineBatchExportConfigurationLogic.tsx | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/frontend/src/queries/schema.ts b/frontend/src/queries/schema.ts index 2750a47917bd0..fc8ab87fe5988 100644 --- a/frontend/src/queries/schema.ts +++ b/frontend/src/queries/schema.ts @@ -1454,6 +1454,11 @@ export interface DatabaseSchemaPostHogTable extends DatabaseSchemaTableCommon { type: 'posthog' } +export interface DatabaseSchemaBatchExportTable extends DatabaseSchemaTableCommon { + type: 'batch_export' + query: HogQLQuery +} + export interface DatabaseSchemaDataWarehouseTable extends DatabaseSchemaTableCommon { type: 'data_warehouse' format: string diff --git a/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx b/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx index 71a19fd16fbf1..8ec3cad580de9 100644 --- a/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx +++ b/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx @@ -13,6 +13,8 @@ import { BatchExportGeneralEditFields, BatchExportsEditFields } from 'scenes/bat import { BatchExportConfigurationForm } from 'scenes/batch_exports/batchExportEditLogic' import { DatabaseTable } from 'scenes/data-management/database/DatabaseTable' +import { HogQLQueryEditor } from '~/queries/nodes/HogQLQuery/HogQLQueryEditor' +import { HogQLQuery, NodeKind } from '~/queries/schema' import { BATCH_EXPORT_SERVICE_NAMES, BatchExportService } from '~/types' import { pipelineBatchExportConfigurationLogic } from './pipelineBatchExportConfigurationLogic' @@ -28,6 +30,7 @@ export function PipelineBatchExportConfiguration({ service, id }: { service?: st tables, savedConfiguration, isConfigurationSubmitting, + isEditingModel, batchExportConfigLoading, configurationChanged, batchExportConfig, diff --git a/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx b/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx index 1bea2e71448af..51532e798422c 100644 --- a/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx +++ b/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx @@ -382,6 +382,25 @@ export const pipelineBatchExportConfigurationLogic = kea { + const customModelName = model.name + (model.name.includes('-custom') ? '' : '-custom') + const modelFound = values.tables.find((table) => table.name === customModelName) + + if (typeof modelFound === 'undefined') { + const customModel: DatabaseSchemaBatchExportTable = { + type: 'batch_export', + id: model.id + ' (Custom)', + name: model.name + '-custom', + query: query, + fields: {}, + } + actions.appendTable(customModel) + actions.setSelectedModel(customModel) + } else { + modelFound.query = query + actions.setSelectedModel(modelFound) + } + }, setConfigurationValue: async ({ name, value }) => { if (name[0] === 'json_config_file' && value) { try { From 5c180f02486234ac595b336b9bfb6607913b26c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Wed, 12 Jun 2024 15:37:02 +0200 Subject: [PATCH 27/53] feat: Frontend support for model field --- frontend/src/queries/schema.ts | 1 - .../PipelineBatchExportConfiguration.tsx | 3 --- .../pipelineBatchExportConfigurationLogic.tsx | 19 ------------------- 3 files changed, 23 deletions(-) diff --git a/frontend/src/queries/schema.ts b/frontend/src/queries/schema.ts index fc8ab87fe5988..8018b89ba27e7 100644 --- a/frontend/src/queries/schema.ts +++ b/frontend/src/queries/schema.ts @@ -1456,7 +1456,6 @@ export interface DatabaseSchemaPostHogTable extends DatabaseSchemaTableCommon { export interface DatabaseSchemaBatchExportTable extends DatabaseSchemaTableCommon { type: 'batch_export' - query: HogQLQuery } export interface DatabaseSchemaDataWarehouseTable extends DatabaseSchemaTableCommon { diff --git a/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx b/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx index 8ec3cad580de9..71a19fd16fbf1 100644 --- a/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx +++ b/frontend/src/scenes/pipeline/PipelineBatchExportConfiguration.tsx @@ -13,8 +13,6 @@ import { BatchExportGeneralEditFields, BatchExportsEditFields } from 'scenes/bat import { BatchExportConfigurationForm } from 'scenes/batch_exports/batchExportEditLogic' import { DatabaseTable } from 'scenes/data-management/database/DatabaseTable' -import { HogQLQueryEditor } from '~/queries/nodes/HogQLQuery/HogQLQueryEditor' -import { HogQLQuery, NodeKind } from '~/queries/schema' import { BATCH_EXPORT_SERVICE_NAMES, BatchExportService } from '~/types' import { pipelineBatchExportConfigurationLogic } from './pipelineBatchExportConfigurationLogic' @@ -30,7 +28,6 @@ export function PipelineBatchExportConfiguration({ service, id }: { service?: st tables, savedConfiguration, isConfigurationSubmitting, - isEditingModel, batchExportConfigLoading, configurationChanged, batchExportConfig, diff --git a/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx b/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx index 51532e798422c..1bea2e71448af 100644 --- a/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx +++ b/frontend/src/scenes/pipeline/pipelineBatchExportConfigurationLogic.tsx @@ -382,25 +382,6 @@ export const pipelineBatchExportConfigurationLogic = kea { - const customModelName = model.name + (model.name.includes('-custom') ? '' : '-custom') - const modelFound = values.tables.find((table) => table.name === customModelName) - - if (typeof modelFound === 'undefined') { - const customModel: DatabaseSchemaBatchExportTable = { - type: 'batch_export', - id: model.id + ' (Custom)', - name: model.name + '-custom', - query: query, - fields: {}, - } - actions.appendTable(customModel) - actions.setSelectedModel(customModel) - } else { - modelFound.query = query - actions.setSelectedModel(modelFound) - } - }, setConfigurationValue: async ({ name, value }) => { if (name[0] === 'json_config_file' && value) { try { From 2fd98acc643e45709ffe8ac80190d6fd8820bfd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Wed, 12 Jun 2024 15:40:55 +0200 Subject: [PATCH 28/53] fix: Clean-up --- frontend/src/queries/schema.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/frontend/src/queries/schema.ts b/frontend/src/queries/schema.ts index 8018b89ba27e7..2750a47917bd0 100644 --- a/frontend/src/queries/schema.ts +++ b/frontend/src/queries/schema.ts @@ -1454,10 +1454,6 @@ export interface DatabaseSchemaPostHogTable extends DatabaseSchemaTableCommon { type: 'posthog' } -export interface DatabaseSchemaBatchExportTable extends DatabaseSchemaTableCommon { - type: 'batch_export' -} - export interface DatabaseSchemaDataWarehouseTable extends DatabaseSchemaTableCommon { type: 'data_warehouse' format: string From e92a600eaec59399cb48caca58abeea487f74610 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Wed, 12 Jun 2024 15:53:48 +0200 Subject: [PATCH 29/53] fix: Add missing migration --- posthog/migrations/0426_batchexport_model.py | 22 ++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 posthog/migrations/0426_batchexport_model.py diff --git a/posthog/migrations/0426_batchexport_model.py b/posthog/migrations/0426_batchexport_model.py new file mode 100644 index 0000000000000..68f8fd2c72916 --- /dev/null +++ b/posthog/migrations/0426_batchexport_model.py @@ -0,0 +1,22 @@ +# Generated by Django 4.2.11 on 2024-06-12 12:48 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("posthog", "0425_hogfunction"), + ] + + operations = [ + migrations.AddField( + model_name="batchexport", + name="model", + field=models.CharField( + choices=[("events", "Events"), ("persons", "Persons")], + default="events", + help_text="Which model this BatchExport is exporting.", + max_length=64, + ), + ), + ] From b2feebc4cc3c6b875a49b2dc764a67a24a31a7cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Wed, 12 Jun 2024 16:43:48 +0200 Subject: [PATCH 30/53] fix: Make new field nullable --- posthog/migrations/0426_batchexport_model.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/posthog/migrations/0426_batchexport_model.py b/posthog/migrations/0426_batchexport_model.py index 68f8fd2c72916..37cee94f5ab43 100644 --- a/posthog/migrations/0426_batchexport_model.py +++ b/posthog/migrations/0426_batchexport_model.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.11 on 2024-06-12 12:48 +# Generated by Django 4.2.11 on 2024-06-12 14:43 from django.db import migrations, models @@ -13,10 +13,12 @@ class Migration(migrations.Migration): model_name="batchexport", name="model", field=models.CharField( + blank=True, choices=[("events", "Events"), ("persons", "Persons")], default="events", help_text="Which model this BatchExport is exporting.", max_length=64, + null=True, ), ), ] From 082917ae3f9dda41030fbc9899fe89526a1ef287 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 15:33:26 +0000 Subject: [PATCH 31/53] Update UI snapshots for `chromium` (1) --- ...funnel-historical-trends-insight--dark.png | Bin 14543 -> 12643 bytes ...unnel-historical-trends-insight--light.png | Bin 14301 -> 12357 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png index f427261f0c8010f06b2182d23f21ea35f32b3b67..a820c399ecbf23f0a477f1d6c54d82101a2b8272 100644 GIT binary patch literal 12643 zcmeHuSy)qNyLQl4S_k;twpwJWW%`tvHHnA;EJaB)hzHw19jf>TM&IfZxICg5(NA1 zn+w+|qG{~?0N$TlAMigf{Cf6?$)!(!zp?-6!#790?zX@BFE9HwAG=ul5#v%Bvm4>% zZIky!)Os&uQE+8S&xA}zEF5xvow_i(!A}`^>hIhj%18d>ZL-7u>Bez+)D9p z+;So4?g5>)2}vE>3j)2rX#&y!?Kk@0p8TgN2auCZJ`;_|{H3M9nDO(Wdq7pcx3ugG zj}8oMEZUv-_aBPujc)=8hsz_$6@69ZFi}HH%#|xw=-=-JeO6vkacX2_Bu2eNLqajO z%sVEJ=h%C(#kbg{^wFaeLkMrSaJ>GtA?UOn@Jtu*+Ae-)!~TMazAHK|k4L`>YKj?h z2?z)%ut7!FAN&M#|$KV<7*$$xh1Edkmsk;;;i?0nSwOl z8wqdSDdHcw$@VK6tv*^XDyi;fM0VE3oNK%yRLI{}2w9DvSOjdQL2lqOp(_jDQ(G5H zL)Vv(M&?6sqHJU;wKqP4iTG2XzIj(y8c1*1nXtFFx3Fc`m0HK>VW-hpDsGEml3C(B zN(k;1zGI-6tG90E80W*U1`BdxOplCA5~mfHvlrZesQ)`=h-*|Ct`U%DJ^XpY;frG8HjfcjFPr;yu%42Q(RI2 zjI6?b7Z7s6B#0|j-d!#*GlaEbGW^c5Db99A5h>1`2)u_?yS!(ZW1UjCqqy21kRLtt z=S{M)uGSZn;QHvGQuM-GcfUgNcbHyam2V)lFudy}c3uW6X_eEs@| zu9*KefV3deA9<|5eU`=@+IXE2Is58PFC>#cTIMG{+mP_KO#0Pibk;PqhzjBKtbXu| z9$w(sU4Q#R$ecu=WW1m#`EQ@X$jfxrNm$)To<}{u5OOLjKk84}L_|HlYWn-8A)|!TEbbU4OU3`jNEVC5Y z>rG>qBvs8TE{j8D*pP;&JrL;(Yf5dJ&9P^adfDhQZ?IWf?go}ui|V`YLFc_XvU)ak zS%sLKW52(!If9a8c5~P(+3Bq5dn=Xw+Dx^N#V#LDn)B$_{Y8?w;`6}CCO=}U*%(%q zsgIh^=j&bEeRqs?52{@JwQX~BvVW(=V)E?gHJCKLhsbMM4 zxS*Hrvxyi%81Z#(FNE;nnsN8XB!-iJnQ!Pyt$jW{y!GXfo>U3!n9^$vMf(bfZE! zLE<}ySsrcdUfviZsfsf8ZS7%q+&~^#Y#Q#`51&z`nljcN-GV>C zc|Z8Nb}-7r!J$5Bn8TtNk3SRd!!1`g`v(N%c4)gg6~)z^Yr%*Lug%T$J-e7SzoV;~ zxf1Lu+E`4DF4G@+f)cnXg!K#obyu>zYF0ORLpdH(<`wP!z&`+#~857iRnYm{JalxBqMdVFmCQV@L z+jD*vN&lMbXgdG#d)>sl-2^H0fyHW2$9hG1L9VN~&3sqPN^IgLO!BDARVQ2Nl~H`- z>!TjFSKgcAX77~crA**r92bUKZRstH$*7y|?YbWis@DjLz&W(zNw&)yOSymE)Qm3C zP@rU7de3~fxJ|HTeP!WZzyEZFi?+Ly5JFJ34YkL-bm^yt7ik(C&tnVQB4ZI8{x6!x z6y+P=RN1}giJd#a?UVRR`zLFNCqn5^bM1EY&ru7|cbHaxFVwwS^ zge4PAxq_FP##1UO*p-3|I(7;nh72(kl+I%j$=zp<-7p^se_@9hy*%|CY?m-ql&&W# zfFLn04T*4^TVlxo6@t&^wb?|+84xyDi(FF2Yvuq@o}4lP9}0VP;DV<1gmL_2Q}>Hs zbXkI^jRIXSO}%GuchXyB2DJzQSiWv4wvtc9i`gdm;n``1MEmNH=AM*g`YsiY{ifIj z-E&6wP}c*SNOLgXK7idg>V34OwEpDshOnM(20N2MB-DET%oPLiQ84nvW2S(SQi^GH ziaaAf8H!=G3~mIN`Sy?8gtLi$8$Aspy4>Gu=U!B#s!-j>*gu$h7Z{!a+&^KZWlk)k z8D(7=t;H<9bM7?6Caa4sWuyKGYT<;Y2`swrLAKd#Xn`T^`nM*^2)(uQR&5L9wzW4D zq#kxACM|U_9sUDZ*vK(}kz18GY^KvX61Sb*NoHtljfN&7#yYYte48lW{#0jc)d;t= zh#=p(v_Vc+QOvE{pRIFm9g|vt{a<>8SL-i~fUPj&Nj!EL}Zfbxf+ z5R=p?3CJHjP8p4Y5lsMj$4Vs^uu!}aPAOg4!Agyb39K->;bk}bB!7sdx;-AfTy4A3 z53cWigZg#p^+|IQ+&V7e9C8(UdjxHe}t&s8zNu)67{&@#LR2Lf{tFoKoC-~DR{of%)jXB0SW_}S%%Z?*?p$B0AoLhgf*T)t5b)qgt zT|wh)jQz{J`|H{LpSG0JhujV*N17f=@x>bM`%U{63XdWq$Tmh=Y>XnBN3}@{D6Mw6 z7D6|Wr)Z_N1=01~T=dO+Yo;{XfUWJLjNG%PW{1hAZx4?IMCEGflZ~OyYrhQ-56{>2 z9wU`s@bBN1O#`XyjHkd>>dnm}$|b{ng}HmTxM0}&YDX6TnGur$6iGQBOX?CePu)`^ zg=1Q-P9(-^O#wtYFb!DGx7jK@={1l;y36FJ{MIu3!m z0OW9rBeCpli+75A(|6YZ;v$`v{>;;Q4{Tmt8x1Jp=hnA23>KUCCOR_tqj5UC@-kl@ zQ|U{|tK65_L(HNVBOOUb;kK&ypD~8#bH_IiIj@6Zg3LqRdlF5y(^ZNXa@Ez3qF1t+ zxNJw@BigoSe-FcrG~zZJv(;Iq2aV@UU-jp`=>?#;Kn&*Ql`xgOs#f2chWJTG(vAe4 zv{TON+eb(d+=bJ~#<-mV1ZrxH+lw^vv_u~~VBqZ}PlpH3f42J4Q)4&bYXNrT)t#JE zYx%}Oa6Ex1OQ$`F>dn*n`XRhz?{`_+q`LLZUTYQ^aQeqcj+OXYWjiad5EM4C`_=>& zA0Mwa;S;I{{JKt#87l{+yiUw114rrg7Ahkw;tQnHs-H`i58Fvw7`Ipm00l5aTO|9% z%{(dOpqV%2ft~7VLXH4F>KMD^Vu=jytsejxg3iWP>-x$r|ijx^HCle=-}aw~4%mcRewa*0L;eD0WPcc`z>!8{0# zQs9rzwLQZtGHjgZpBWuh7ujZ@p3syFQu&FM;?w| zqygt$>^OnVwnSSTpza~g4|X2K8NM*dK*BgS19sPDANO#kThRRyHtU{o%t(cc zzAL?MSgiQE`T_^E2jn9e_E&Y?%Vb^In9}th^%a>}^5x#vy*qVrJzP!SV zsE_XNIiYFzAcsi2#JtwGrqeRAm0OadyEXl#eo(=YP|3=n1?CG^zqVr?X>3L^a&si8 zSBo}7UzaOslV+BoP2T*O>0S8&>kF6GAJd8-{8AKm-vPhTHBQ#e6bn=hGPBAG1@>q{dNb{+z%qx1ogl;0+o7D3o-Y={jgw!E!XPQeg?0-Cf@%dMCKrA#ccy35N{rGu^E zYQmh0JzNfd*?-rtG?#z;H0a^t(vZvMAxlYIhj>UjU1FO&;xAcsg;sedI>%$ILZpp) zYf~=HCGfg8zsU?gFuvzjP*C0;%xk_$D}#r0o-6<0FshrDD$40}`fq^75#YNc%c>VO zg$ic9tk@pfkhWLY7Y_tg^=vP6<&yV3~=I-FC+2a!anl zl6Lh~T|;cQBDSa*yR@upn>7D)3ai>%U>~Dwg{mV^$00VkX(Be=xIFc@g@7PMl>2HYRqPcm72PQvtuF1 z>H+{}Lf}rby=qcs>O-YeR8$C^rJrqeMNK_izxXr+U(7VW{{)g!^#K*6@qVx4f#UDTVc5tyVg+E*r5#? zey_m6K{op#?Fm-AsrH=dt+B*AiJ{VnWRb1ey`U>o{f@^$@AnRUC4tUXm(qQfT9i(H z(A2B@wBu>FKVB(~2lkLSo|x*6=T0zCm4l1S7va?&;HN$GA``fK{fYQclj0UfMTvbY zMnn#*4*A^h2B0-LFRFY8bXYDX;jNhNEI+qLw(1})qhij~zk#E!ee^Go`>z1m&q3q+ zRrkw3JrdEseFsG}6wA6>k`tU&bKI5d?eQ~|h~lOI^!Q`8yjP`5K1ebt2zQ0<*W3{2 z2NbSunap+ibpZwA-Cg9y;3y!?r7B-2>Ics#)J%&Lp<95Yw?0bR-x3V3)X4in$YulTM#xtnBDQg&(TE-o4C=r2V)@ zb>?`HRHZmsrgRa&uMVa`^xRE>Qb$4b+&@|17@y*T5k5cz054G=>kW`C*G>cJv^M@q zZ*tc~c+bvqO+IOAvql^L@BSY5VA+^iDuwWc>dbdXp9C-ZYS7SIIN5NMYt;MFP<~B* z7}a>3(9DkRIJ8R~^9U_H=Gk_CQoQZCw6x?dd}MF_*EdSt0K$$i=COU+lD$J0s?MC9 z#HPAcCu=zQ0mO2^UFw(HxfeYCe0}qVQjw&@A)>Y;wdVnesk<5s&o|P7CTB;*)%TYr zNisO|s~7IOgo2dZbThWA3-enlb%#{9Xn~JN;GIut+=WB<`|NuqIIaJ!8sXC zj)2N8M(C_1Q&Uras;Cqg+ABz`ZJhdwfj%ZNq$y5D%~RwY@#|7A2f=dB$*AJg<*}Z+ z(UAI13L4;6J*Z{+P^C_D^3b^1R(Iz`n#IZ{YlmkYK&6!d>_|4K%`C#J2nZ^Pzcz(s zhdVDK%t|9WGc)p9WG%k z-ma`;&)_Z4OawL67#u;0+L}R1U(>}L<_=UggUw=>bgcB}WNG)RE9^v5d~4V)-FdY6 zn47y0o@b?H4rer{xB4bx)pjx<#G z{Nnf34H^$_DSHZ~JT=T(GPmybbtSsQPc*>7!wHVU)^B`w#_z}mnlr2WpbtqbIZuvy z2XGR#)V%ND0u8EItNK2o1etHeSlp>xm+h7MNmr)N``g*I<7;R%%Jpx3l{|KiF^MH> zGVVTAncNj!bcmiR#!My@8+*yU8c+5zRllT>jcME8v6Dp;Ca^jgzbG)z=5kjwj10hK zQ`nok`uUtQnIYNzE#C@{>^{CvNLuPv<<}5-T^mA1Ai!_xqq7{6UVTX8S8-J-j5o}O zY8eDCZo~tOuK*CyUo#Up^zbA_BdM3UD=ZiZ3bm{Uo&uB)nMkLMC(+dZv7iPZKMZAy zOfoV$5;d2xZyw8XhQN21R2FqpH=(4{%&lCbAts@Uh;bZfU%gl7M)CF=4N~k zCj2K9efecHn_3Jo=D3Zims$A@R=ur|JO_FP`1m~*h2-ma{4EqPtFL&5*7vc1R{u)0 z$NbWhLobe6hRi=GVFlvc3R}O z0G%JGHAxtGpMg%pVjyny&x`4818bf7#SWtjRGY}osIu^_z85~tJu|xo_tmu<_ z+o1)WY0zx&o4Y>bIF`r}M)o5nDbxle&+|hQ;6fMssPPU1qH#Tf&A3VegxmAs;nNHM z9=O*JE^>_@ux`@iE5AyunM{^WV}c)voBf12S-b892thFhz%Qa6WZl}sN8<<&S0w)pmk0$wd%mjKL zCL*QbIgh*l69%=Dj|+e>ux{Tt>)t2=s8bnbXBm(;o2+`4Onui>#(=I-VS$*j{>@c&E$B=Z5dvEmu)-)FTJFyVmqjhh2(mG@hDEa?sUxbu*jCZ36?{wGq1;#*R*zM0peZ4 z&aS1JoWaOkg;MCY-bM08qTCkE02Zr+VLIs{u%jTKv z?i?IWFaLh~&4X*X0-$@)+?5*cf=$?HNw+|32IMeE8l+8g&r&#xxj0&lY@*>~ z=SL@3e(><MyX&hD?;1i+z>-9pVE+3+&BszR4!iWGW)!e|-|mY` znFAKW27h99KwxlG?GPa96n+E1-QN#e^MK{T_;pA1Sb(wTBOCnkc)MnDCzeXI7)(-Z zu1jdjf5X;STE+Zd52y;El+8}w@m;qZQ=bt2GG@`u>=S%3MB3X9Ye=8hSmFVBJOm2dqs+aM#&(Xm%qS~r!)e|uT^2nn< zv1`+v^$+!5d~)DL)by{UtzcHasczzZwSoxU>4xdp%sxpatlVlmQ0Rh=4TKXKH-0L? z^B4|-h<`I50{O}tF#EjxfK|`QGAr5f`(;$3sgY;KfD0fmS<%K%dZZ;#jnm~n60LiQ z?|(^4l7q7bOm(%N%5OYZDK!BFIHeSTev-x-gMvOtz#5>GSzmLO$lrTH!)F`n2jo6l z&cZIYEpBH%gMtGR`21Xh-|^$e&jTRJF@E9#H8lQ_|L?H%zIt|)fW4A?2n@(1fQb>< zac6a_ib;^y;+D!0>tfZ^v#OB0&sLM!N7QIrR8}zJV<7AaVGV^ z?M?tU2g_1k{&uH#v&Cl|+h5D{8K)mWuAt+s`rB39;`M}<K&H3gf@XkQf|MJek;jB9s){+tViTwb8>0!RiL;U45`smV47Ye8MMuYp#RV z2lO6?fa|F#yYY5J`EPBjv%gPCU))5Eey~H)J%a~_LM%fXy2{IFwPBA2KilfYBWS6s zyO$#@giXs_nY$}?Xts7AZA6O;;OU&12lH71Shtm)sWcQ5cev{ za&KYm6W2Y@E&Lz~Z^y~xtAI+ZF^*(I-qFJ+)q;6?pR`P(B8!@)UBX+FyQfucmUhv7 zU9Do@;LA*IF%E;7SR7geT2?D(@$C% zXZ0d$GOAv616_xCI%%eT3a~E`%O6+Ye#ek3$ppn<1i!Da2Tc_etMWhQyP5$#k4Uw{ zxhAqs+C>j|cQW#I6Q)iUX4gMJ?gSrcL`<^aFV1tz&io($d>(v{o0_ zE_$oDwNDIKoV0=?4P?5;(bVE`W@uv9-2yv1^b#P74%@q2I@JHc2>a1$C|CB)ic$(G zu!%fV%6>piw_@50D0t;p63F)34(F}s;(0(pj@lBAtEEfX1eh6I5CMk@9F^*R(af&i zeI&j8L}L3UW}-Qf2EYm4%XF*m6L6=xB*8@>KI8{*K!X+NreZ>nxO{?2p*^5VSvj0h z?q3#=`BvTGcyuwH^}DhonpTx6%rS8l1+n_k9PR@^;zP_nhRHgDNqr8SnP*+8fR6AR z1wDY%agI$+*$OiU8Widr-KEsj4`jF};@-?$n0wP+z}CNhC4tFnQu{(VJ)uBA#h>81 ze&__m)}SCh9uTYRxXQG7HA=wF5Wv+Hl@cJA@LIW08CwObAB8_^8*|z0>^7i6)khC!mK~(FOLLer(e$c($RXWOb6sCSW;!To+m{rft02>!Y`UELtD8Ae76bybjeK*rj}q*Ut9hyh2<=SX?+I!OLpRdRs=M|8#VFSs*qvMZ)`-{FULOV~2n6ab_q#@~e6@C3!?H2u zgyB7is~t2omNMM>S9+v+Lyp|Yq5|%NSQ?H2ygy5HSj}2X_)dGavs*v?2z2A~|Me`( z|9S!cX}trB6HmNQ7W+Uqv`^Q6^nUx(BZZMRAdrOzO7A*q{}+GL=*ZtVh4Rl*f7d+E zKbHK*l7HWH*gxL%k2n3}P5;!(zir&~pM>&HLis15{C}2E%=K=d(VKvH5lbBefu4N_ zQ1|l6%FqwIs;i*U(E(rJ=6-E}+&rnI(|zOPMfRHqk|Lb!`r~T>5~BS^#RCq{*qSZ<0voi7kmHjXg{C> z*&#=(qC*qvXWGvJL;eGiYb|nZZ>0)CTTxn3P!W(Z?X_wnlZrqA0Tm%4ga`pb2uZY7sn;PI z1Z39AAY)`oWC&3~kSUQdgoFfzBtSyK9Fjot-^cd>?3fv{OkJ5(B<*H ztNsQZKivsi4GurN_~-}d^1BDHPoU$+U;ImhGY*WkWZ0rpH}CPwLnIf3@qh7uKbbni zfxff9AG4pJzSWswUGjp)JG1I(tkfG(ydN`Added+b!cel`p^Mr&c9QOi+8zY96-#8 zyLuwZYG!Bdf3H_Lyw=W*3Pu!_m37T;>9s<#jArzq$GwlEP$+R{dU9BAVIgf-Sbv?@ z)d+0Lnln|Q;rZZ~tU_54cUM6oc+RZfVilTq!pkeeI-J(d^Ao`aD?>UubF7dl>!8)c zb|1jAvZ^Dv=ThiZ?W>-GB@~sH2a2vh_h1{me0&NK$zG)2T6e8`-g4WpR$>DE|G-o5 z?gt|I@hSA)ul3*01RHSuKalo+Q`OV!yaHVmH!&%*=MUW6j#Q^=%@fC`nkRX*&>JDj zWi0BBuw*g!z_Ec-@89hC*7CSAi!Js=SepqAuljqCuyho|BM&4r2b!F^f!gQwOGO?#i&JDD6#}+kPhX76I;DzAH)b?P_iP#mc&M zPoMiDb7;+Yr2tP75YX`+s` z@yBFQKPNCqd~oYIVH&-Qh8h~X8RWPV5#8HG7dPp*a(o4U9KI=|Nm<;8Dz_@{-h%Xl zVJCBNi?t0ai%;!^RlAvWW3wJc!ha@)b}t}VSt<9n9~Iv)TNl!P|NDiZLV~mH*TePL zjw!k@<;3GwQ^evRfipkFb5O#kkB8(=RblDF)_N=zKSUq;FpexgsJ-|o^l?FOhaYHl3BvQhU zSBVmTsy-rlr(1MuwsH)vldjXNo1&DSSaqr8R{9nv-7TtVx&u~z3{^t8N7s5+_OvOEn^@)6TN9pk;Nq#2*4(e2z0`aLENVwQaoUR;nbtMO zPf9u^z@OzCPxR_Ib`$xY7$gjtGYLNTwwcdBMz>QP#A-!fK~utpt3sVa#jbu# zIELM;XSm8BYuNVeyJr5S(LD&tK$)K?&ywxXB<~1PpDSOQ>Q{|i)i<2S`!-tdf<;!m z3bh-Z_oSFsg?6=n=@ZC!$&1&moCq7Pi*?qi7?|EJ(&@LNo8;|?a_vfNx_#`>r{w%c z)!`f)Dcu)-b*&zYUu(^cX!ILERrZrIaob>q^D$lBo60=tCch5R1PN_Ez=Y4ke_6W7kRT;A7a zr%$ICHu`5SN-aJk>Sk)kathOyGS==p`?A@du9s;Y9_Q{PGDlF#>QL$W&P#iNiP^nf z3ht@LQo+hBf?Mx&jJ#lr%kkP%NdGl!W$A3arHCO~Sh7zbeh(S$yw~zG+&)Ia;_J(+ z@ZKzYSvR2sM<*IuS&$m0?xYxN3bGwUOQYnr(9Ae@H#au{9vxqxPP`iU08v9QxF zJ?;%lcH1A?Ie1!`WLPC6YD^J<@o!)4a6jiaJn#f|@M7P%qur(Bl|Neto&btrZ6`Zs zH0i?+;AM@xPc4HIjnYXry!N59N!kfsAvQ2^M&!{TTS|`L*0_Y6#z;)k_SDA}ebJm_ zbnv^T>x@i`0Ow>k2dq1jNa!g+lKC+mW$BKp$0^3TKWGYOK*j+S<;SaQseKZI)AGy& zS#OqIKW=j3g^Dl8bz8`qbhN(ErZZo$THFF`bl@X@rS6E}LBa*+MCDCx)J-l>rVHwn>1x zyU*Ke&&sWr17-eR#PXstx02X_wgu8sKmvNWgq3h~o9dd3E_AkAsIEHc>6wfs&E3k1 zQWvF&AdOTtM)@`37xgO#{M;}Dwws-=KEx{{Cj<xFw(zYF)&}jZ z{JwpIQOt-|#oR#3s2T7pVQE@Tu&(Z!7W!=S@)Nq$!a>w7Jbh9^OiD6JJmW{pQmQk; zsX?QwN475feI(rq86q2u0#1YfITGKM?qn8DkMPAYMjo=jts7IfwmR)(J1NQY;}!iU znMhoR!M4`Hic#;0wJ9s=MRy3E6tV}*8Mn*lg1MWH8l^ra+c&WA8zO`xUTM9c4!3;c zO0BjfbFR~hoj>8{R;3EfESpza6vs*jCi+W|N65yWxVlIzL!rf%&<-+Awgqh9wFFYD5xr*hu2bqoYW36=C*~teV zQ%tQwJ73=fkwc$lSO2+AuvHybUc0Eiwbfc-oP^gOG!N4D7$lpn+ZOW!WvrX&nEHi> zy&c<8lei!LoG|?&Y0GkFRmvM%;_`2w5yjkw<@S=cbNgo1Qes*r`dPuO(Ap=cqWOWX z;6l^sm=_*Eui+tber>H(j-Pvem7GVT*@RPv_ZtMo1p3h z1Zh*@g1DpNfl@86l|Zqc{Oq~M{`o0v&*N5aZfsii{y6@#c|k(paeVkV&m}+y1u=}o zoqOi$M)QV-kdDn0ePPM%QV>J>*B>wQD@&FS*Y7dny}_Og2w*hFQO2%)W0@Z$#35ls zN(idzP|~6=nh|RSma{yi@GwQh2~lY=<8Pb|Bi?*7+CsQ%I>E2?w2yrHV}@;b4!O`3 zA#u;9m?oQfXqy#f)NR=DTmTD2MTL`C;`Fb2-b3ZE@SC!TE7g&fS2zF4pskR-e?GoV|N&mD^H+gZQSl3)@m+TP!2C zB*_mb8cC23lrlXtYcVC2tf6o-1Tmh)O}7sBj%)~{i|9F7_hFHpwPkvSbRX2cyB39E}uQb`?Sbi>^E(c81HfLBvcRfoi#q-eB+mEF^b z;_(wZ%Ip-&x(*jhCdE`G4JJ_?KN?ez;kC!~SJ{D8^+agXuM{S(bS^JcFwGEmoM)%A zNCI76Ks}ACoWo1X9-#{lCE?hnOWn2bt}c4#h6-lAx^7wZNbM968@rUY{xW%GY6fHj z=EL;K)JB5l{Onj8Zs{I#Y#1x_pHy30TjR#x!X?jw@A$nH8AcB73pywpX_qp!3yPFq zvsA0XbJ==N8jS5`S6s8}=3xipr>nL&E^$S2VI{40u+T zMBjP-XGp0L%$2yXq3SRwpfguiZhYzNj}C)^K^bjme^V0q37?I|Z8mBG`9kQ}>wCD_ zwjWc>U>t02s-&0yUU!~^gN)!IbUZ;ol0K8w_4~DzUhDAlc#xWjzunnw8Ij?yzTKH{ zGg1C~KnbN!+yVC(q7}PkSe#x=)~OVxzM@YasF3PCzsGoP$zwksNK9i0*) zylTO^kj8d?_8nAxU;A*aYrU<$PNNZXp&L`ZKo;_cWRfA5;H^~ZlNX%H-McJ zOmE6Pc>S=)PW!hmK>_bRA9=-IEu)DVy!S=D%R9F0LgC4unZsAw$UV=ZM(1T*25bE} z5ci5^=NuHDbu7(%(NiA4OL4rITW-A*W|4q-oevTq)~Ls4%gy0W41_IXZ6=~w^YUWl ztol|kuEVFr3^mtw~QkZVwLbOIudkE(DTr ztxp;?)eWe!*YEurv$EE6?GE4g&wG=49YRNMQ#)RBnD>=<8<(`hk=K}uV_RzTmD5IZ zFAHifCFQZd#q$0Bwu%%_s2tq0Gz$q4plJvCFp+cYcGQo9cv9cE5q=rr5`bKkaZ_?j zPAYS*Sl4VozZl3vjPi-C!&_`*jI5PhVf*3=-HkFo$=#k7wAdjdjTksb?Ycm45GsV=3=Gp9T1$ZuDFVdh@E%x@&rH_WtTA}C;md0r*4&NEddy<21Te*ha9 zmO4M%L2}o5!;9twPrlDS$!M!lvCOlriklK*Q_HNvjzmsaeOnmR{oSGK{fwG{P4(U) z&C$>zi-QUhW^7ZE_439}CCfn(I#iAG*ySvHb9GnuB`8aHxMtBsER>_bitH92Y{$sS z>^6=E+?=PVJ}QzmLr}+C+IbVTAxE$K5ux5|E9dSvbCJU|ty&sFb;42`NJ|DA5u+`) zlT{u{!f2PR`Mw#xNp`X`10T|KXB&n~C7r1KE#A%aeez%WcHm;2cMBPB;Xn&?Tph)!tU znKwyM2+DcQ6uo1+z92ah-LO+19*-8`J~KESA2n2i%EXZ7uR`Lt9lqpt2QD9R%{)Qd~eS*gwh8cW8-M6>kSW&Baa5S;(?QV@MAEyt;j+V>!|D=w&U1idH=}2%MigeW{y0_cm$NJeR4^uJiP?QhYAX2yyI; ziS-MXuY$On=RN)B%li6kSm8CyV|21d*P=A=F49>Y7=jxO!$ePkH8*o?yIu_^>+N(c z+AU>+L&r-6nE+3 z#fw%TU30XXE^^H{P+Q5G!t%30f)!er9rrT@%H~bm%IL%CW;uzw5GMni=qxN7>~*Gk zp#iz^R^Zs#LUhAS=%Ule8(E{KoLh>KoMLBZDg}l)X6rTRvY=$m0HR!Y&)w>%( zh{s26?+=?DI|Xvi=c=^5`a!HU$Gnq@-819-^LKMAM%QkEpZ!PEZAfUB?bY(-$Bwo{ z!J!{AtaDQKgy!DgjEZZ6JKH;1#$3qU{DtH&y*AvoD@`zbzyNEK24sgwu1fHx&B**~ zRN|C2QK6Z2O&d;szTFAiuP9=g5Dz-n%PX+rPSw~aztjP7j!j%4=euPtKrrL9idSL< z7_h{N-$r}$J2pe?7IB?XD*bxn@EIYue5&Dxx?`h}PrD&6GhKAy{zOVHvI~`Jhhn$A zLEb?yr~C`z?iEhho&>80K<0IkgoGcA=LRA>297Vju;--Yu)YR0Dyu4|6Kx_SXWf_lw~MYny;MBeT7w zyOo+&a_(KMV9UT|{5-V`7>1qtbyIJN4;j)3LwQ}Y=%6S+{VV^WupfqmeR>&M>(lEO ze}|2K{~S91w>e6^3lQs(#+-jueWCkYto}7sXIn;V)>B8~QSh@{y_5T$E`NMokC4xj zPEJlja34ENKwId#ydc^S6?jY2Zb=vV4j=L_ z4<_rPX@lqHmQ~%%a`~eJ-(f1n`^@e~#4g|YJp!<>Z3E9-E?Y8W?Xm{m<#}#s>+)N5 zCdE{vP^uzoyy*Q-)uIG|cp-d*1VFh2|D9et^j2-m#^U1Qey86^#b0uT)+^XCAxaLc znnVac4Lkj?pkQa(ikP0lAtay!RJBO5ymqqP#cE7d2=Q3rD;jy{4KpKpvrXJ^tb~tc zPvLN{t!gK(3kzM+_Uw-sH{W72pOQFb9#me+0r3#Rdyp}UZuEmX$|MI92SmSv3}3t?vJz^=TT)P{ z>a(plO=X9BiqeKxjag$np|&y;=ly2qJESB*(>5@F09n`EicamGv&7qu8|^ok9UCQ! zp_t}f=GV^^%(gU+V{<@8sS>d*+oe>;Tr1|xLI_LRVu*T>tCRieI5#hx8|q+-1oh~y zZ`PSi-;grYJyo@ma=3Wp>SEBOHfOm;_ZrK@c;^@{{}h;T_7W7PdmC_bUuM)_9~7#M zIQd;C4oykl)nOIhNC8vFPz>N04YmIFMo;8MP1Q+RwMx1FT>DM7_zo}9m2EtnW*-TZ z@MT5I+UL9DQeXXQ0;szk^pzR)XG^l2uz^xvF{`Z2dzjW)3%56WFNy{H;&_fQC>ED6 zKe!8EJ{REsW_jio0q-232#QzKSsyjQ#oNbR$OR-_0Z`9u6NbgY!B?UvV;)MU2d2Kr z?3$`6+RConVFEpXay}hd+=t`=9?Tw5*|yWL5NtyPWs1ftsJyLxkB1;`Y=1)MV1sR9 zbFtBY*Ex4!P90gNF9~$w@F1t}0d;etxTK`&Y^z@MyY;Q2o}iV8Yb}jWzPJP5xz41T z6x#V9y%rOms%A_L)w~bDhxG0CN~!cf@hP7|AGWdT)hh$>_~ScIN;!a5;>Su}E);`Q z1kirsG&u7+Gtv}1bx^+VsL8!#X2MB`Rf-+(b$}Rytd(K(PV>E3y$a@nUHQ%M*MtCm zmK|n)oa~vsVvjb#S5x^%YcOtfsLqGItS#>71$@YXaGG~rjLNmVadI}q*Z|01?H9b} z42T8M>M%2(Kz-bd$P^)LWX$!rP{%5mPB|#GA_M$UUa%cAO=DS+YIRYN8-OMI!+ORN z7cuMd6gCbaZyvsINn`_lJ5|qS{BAd(Yo9x>D`49=h(->P+hyD;%>0R?dEsenD76gj z8{dbZIK}a-5wq#+hYf}g)91dVofHirl5)JFk+`?XETX}UQjTxM@B6OBYCP0 z@wMB9;-tGNP6ZkToxO`7$a;|6BRPKsz?l@&S`nF!ls57tcbo38@J&baJSFZEZypgC zt&LAIGBRZKx<}jsoki_@r8!WB5Ewkf>_Pa-S!0~#yb{;BU@OQnwOhDP?F*oyc&?c? zP8u2ZXEmxGqm2=+K~MlIW9Um-S(qd$`L$ePp;P75V!h~9nmGGy+;gpFCxRg<|7MZy z+!|Zdns;R}HVVyj+U=mQc{r(lOm0m4hhNRblp0QCx+!k@5nKYq<4S=T=Gq0CLvOKHNknZ(T0}$lkuYI- z03{EwCMi?9KUqx%Uh|fbibxs5GMN^w#+dWj3LaL--T|Wi)8NSErv4PAp>+o52$p|V z^BF;t?Ku7XkZQ=squsb(k#Uo_cvDuPX@FBeR64%i{ALN8MrF>38}w;(9@ zmS*HCh#22enc7gW$!XJ_1SlCYFO+JiaguFV#ozp`oj z(a@4e|4>dqTs!ciX@DZVPgrz%#!60=;!kgWCY8fQAT1`nQ_5>Nas&mhi+Nukp^T+5 z>vpr9HRQg&-ODS3!Q=pga-|%Pptx8tzFoKN83|BZVR3@6R=)1}%kc!=8hzyK7@1;9 zc2;xdCx%O+Z9*ssT>*z=Xu=)oyR8X9J}o_qA&1GWvn@3vvW_GZ-zCM&P&oSa`c{+r zW5MeH^)R~n3?)YP>_@Pptv5u)aBNAjmeIw6>Gem~avZD|K;-7eZF0wKz?WGyymh zFiGsg0>88M{uFI0jkux?U0zy`pg73u%vujPeH-9hb(l86v6YtDqK6ApqvHnNK@b~w zuh`VOQi3LKf`^oTwoM&p96x<%wJ= z@+|Zw<^a%MIVc)kNdL>nhipr}KEz3>s3!P!k5)89mGKe;>c<9L_CA+dBfy!SIb0UC zY8se(YDsxxTzZFP{k*{hBbM5*^sYmt)n|9Td4!hSSJ`?8_4O5bR)LHxe{}7(T?*7e z-H)qoZUxZTK92u201hY?^9)z{5K!zsR*B88BZg`{7ghYr5JQ2eY&H>@S4|b>B-kSf zqt)|*I;2Ry`O2Dg`Mtn}1Fs)F%W*#@4k})JvChN-;07xL=E|yA zuRAQ684x*=Kqee^%{sVmn?vMXHyiGg*+8BRswVEzo5IPtGkaF0x5z# z;8OycApXleMCmc8dijqey3y}V3Q?IhfNr{`p^Ym*#prpvU$A1;v)%r&y#0vTmQ1u5 z@RjXqDK%}4J|BH!Aus_aSV>vrB7d*}>>-2{UCfM`%?S{ngNT0pk%axDa2=tYgchmL*=zAc1U^iY~;okx< zsjYBphFR{`185UxTLtk{NrG=M6dzt3HlQBAP^^!sob7CbliW8q|FN<-Y$l~L10h(l z(fO&o_dKuK7p@$};N?u^ofvsFB2qOvWv9WzOLqtT?GNv=r70FIhFDx!qDqAJjDzEC>e+>~lP}yR%+LNL}CYE<9#Ixc^ zFD1RPH8v`@rO_htg-9tar^}-`0S|#xO>|#TOzp-muT-hTnNY1e$Zn$f%OTK-@Vuuq z3JJ4dLs=t=K9L5PY2ZlWfAFim0MYaT=NQ7k1q~=XScGwCC}T~>RZs*x;;fBt|6IB< zOX=8u=6MbjQ;c!bg2egmR!}r^H#;6=?EiN3WDv7q ztWxH5hFTp~Mbyr|CZyY8yhYArAF#H=1NDx0#R|6?)w`4I7=sS&%u4s3v$WE^q7t(K zAxxddTB7CNu_WM{(;Ro|F{wB4qh0i#s-w!Rgjt_T7bBDp?>t z4^Yaur7QJT!QxKWYl>SR;X?ZT0nEt=WdPtPuDL?H$qri6Nkpmkyy4&`#05M&CKB ziEQ5(O=|pd3!ZR$n}bEr!P#egtnR7`6z2gz8Ew$2GgWdf{B;+d@9m4`KhuvMeA_Ap zfb%ZdS$ohe^FUh(m64-Zme|$4YcGM%IHZQ)Fr2?>{BuX^o_PcZ87Q+AL^xDHfI2o7 zK^@zx#Jgj~^$=Tk_Zv%5iCJzAClJ3K7}9&TF0tKqmvRGWA^FAEE8Av@Ht#UU@oc?g zcz*e}d|fxq9@R@l(}oM)D>pN;5g3;>q$U6i7`qYCYTL#Xz(vkY8jG1nJFn)Mp zD7$`_;V&Ra?I*O{^4i*5__mCGU0lNvz6LdR*LoTX$`=~o7h@usqjKPsi4Q=nlq&y5 z%iCubZj6DNO~PrQ+z~q27Y6piIX3KlpA0EhFKX=wlYi(3@Bl!p|62FWf9nVNS6g@f zgM&*Eha&Om=T~{4n+V@1$6tygbzaa^P7?nmhiz6K3D?m@`vaExUBy*A@H`r=u_c^M#I2Uu!D9-Zz$6U(?jW*83JI1lO+hAxqufdpHZvYApFc>i_Fh~-oslv15uxI5; zm0FuKr)t2zC#TMc6P?*KR8_fD?(1QCSo$^^f@C7rdagq%GvkN`tTO5$*q#aM825Fgrnr1RBWkKeII!P zy89dxUjRyRFxc7mA6LPC`}2#uzy0+k-d|tf{jc3zG$0z-Ot*6Ozn1~xu=`Kt|2XsO F{{zP_KF9z7 diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--light.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--light.png index fa79b1b313e1daf2ac05ee5cadcd1a1f37c26b24..1276a2564f958e5581ebd905eed12aa2877600ef 100644 GIT binary patch literal 12357 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 I_@!U}6Vnj=vH$=8 literal 14301 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 rZu Date: Wed, 12 Jun 2024 15:44:03 +0000 Subject: [PATCH 32/53] Update UI snapshots for `chromium` (1) --- ...funnel-historical-trends-insight--dark.png | Bin 12643 -> 14543 bytes ...unnel-historical-trends-insight--light.png | Bin 12357 -> 14301 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png index a820c399ecbf23f0a477f1d6c54d82101a2b8272..f427261f0c8010f06b2182d23f21ea35f32b3b67 100644 GIT binary patch literal 14543 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 F{{zP_KF9z7 literal 12643 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 I_@!U}6Vnj=vH$=8 From 65a1c8ac428529708a8e76201b95204ae0b936d8 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 16:06:07 +0000 Subject: [PATCH 33/53] Update UI snapshots for `chromium` (1) --- ...funnel-historical-trends-insight--dark.png | Bin 14543 -> 12643 bytes ...unnel-historical-trends-insight--light.png | Bin 14301 -> 12357 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png index f427261f0c8010f06b2182d23f21ea35f32b3b67..a820c399ecbf23f0a477f1d6c54d82101a2b8272 100644 GIT binary patch literal 12643 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 F{{zP_KF9z7 diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--light.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--light.png index fa79b1b313e1daf2ac05ee5cadcd1a1f37c26b24..1276a2564f958e5581ebd905eed12aa2877600ef 100644 GIT binary patch literal 12357 zcmeHtc~nz(*KW{OYaM9o`|1k_v>zy~ObP-rC01)`M4*a-fDn~Q#)!;A2(49X70@8_ z5UmVFNSJ3x5UL0vM418vh{_~mfRKbFB>DDnz2Cie-GA;M-(Bneadj=i!IPYv-~R3W z?B{v*x%0EV&CbtNKS!ZZJF!3ga2AEylmI`=pKXEv*~fI=?_02n&}DpSCxy6kbf>MxhX zn2(&a3U4kbNG(k64c&#YW!gtE^3Q(p^SRYc2akXL?H_+!56KwjV!R^mCG0qKP!f&S zRMzZSs1c5kYcR&`0fXZKcFbSdGtQe(#}4~*c}ghM^7vP9mp8xs@4oo;WvRK+CNx}o#}D! zrMcg(_Uo%PG2M>(xwOD`zG{;B++}%WlrIwSlUkIp zqhFyC&d+Z=NUV%niTNS{xl=B+-9q^jR6^t+jc~i4O>gMoxXhpe0|T$MZAG=lKC;WM zrCcxgCtK+g)VKFg|Ce48lpoI{g+= zK5ebKe_mJVGnD2rhn`aAL!ywSh#l$HbM3dba9=|urE?fiI@#ZCwL zp+wf$x<+z_;124O1m*HO#&waRKK`Bk<7aP&55Us+q=}WCXy_v!-OcqN?ah2g5u*C+R$XYQP#-uOfo-! zla8>@Iy;M~Rzl7qO}f;;qe)5HclR3FONEOij6Hf6?(Z}kJ%p`t=TGNr55;gcOy`(om1kh1mK&!qgq z!UJ&d>T{*2v2gZOaZz3uQU||m-a0)V%VQ#!&WRZDn;ow5B~9k1*q|`(&yEq?`PR%TvvTu{5}`q^R@VFxNFJUY)WHe%q_HfAs> z+9z)9=xqIEGbAI~N;DeE{51f=izRI=;)wx5@thugTvNV$``p3Q1-e4ciy|k-O==-| zMe=%*Xxeq&**$gJ?gL(2g2;Ul9X{K;U%J$U52nk6r*kb#91BllPn&V%H^yz!XJ7|y> zTOlmSpFfep-oN?=v;ItZFiK4(6|rm$TOM-d!a8$7zau+J%;|Wb?Mo&^n2ub1VxnOi z5G@za@Y}W=ruLX}H|8n2aXanGF=(vjrW*doFaV*@#{SFs_je4k@|HdAmV++||jrg!=86P{>c5MvGbU3WfE_A73#tFlF_4tHA^KzSZXS*^cC(k;zu%hCy^Tm*p z8c}b4>CUw@Yl#tb{r;ua^~nb|rkp|jx=~U#o@Q=HTfcHkSu@XpFy}ZNR5xbi*PA~Y zGfx?Kl7v)P53F}>Y0Oe5=USUY;jm(T3vmVU{_FQtt zNd?!Qsda6foYI(8tsZYTr=yL8knZ%(z_tkEo(ON zd~vUs=Dv_*x%Bdz+xvPKWJz=}6Tb?J)yC4`h#IL>?~(iIXoY9T+9Jn{AQielF6GqW z$)9fDa}I--M2XEpOow6r`76mpD`n^&r!;-T8R?ofTpEEbDR{3Z{SUYLYi})D9*1>3 z{0>VZ%h!q;)_QGIyy=JadC2!RNAs`4mrt(sIk4iTi|PAq)4b;Tivwi!j94hs>k65u z2uF`sv5Hz&9TUwKk?l!7x7Xb&9V~gxp(L+2t-t76KNSV@j9Vpv&)P=1an)ybDLjhe zCf?_X-*p@~;^x8c=DUO~1<$U_?i3GSnebt#&Wxqpn#Eu_Z`s;GO-^{?yE{6Si?y6- zjDnAG3okWnUOtXwa!%}010<|hyqr(gVc7p;)H~hX$iM$D|Ban0M%vtsX|t-SG`9nc zq;(USWk~x@Gi}B$6w)zb7i*j=7q~Z|tbE7>Veu`GWDV;|7Fz1np&og9e9sfZiR&V+%sM{>>D~7(&61n+Fx8!!gye#k=ee>QqRQ1Bw8k5BRK9W-w+QZ?=`rX z0k|9|tRgd4Iy4n|xucb}gC$xCJg=eh%b7<*t^_wsr3J#zfT$t}kX6?mT9k;D;(*R{ zsq%rEVdIF_4pu8a2>47>PN_=*;0xWwDj2}Zk4+te?E|LQRUa~eG~4D0ImJI4K{VK< z-YQ?#KG-Vk2OwZsi!S=~lw>>qk#ow_d#WY})h)ta zvT4Gaa8`*h+gKY_< z*1!8BPRij@zmfi%B6XqR4U}svOetBZ1+g_J%%1R z+F}`xh$E0ChVd(RbE4ke$+V0N4sM(++yU7E!LmD(^y#!mhf74Mm>k1X?%>AKln>N+Fk}Xm8bwyN0aAYVFmDfeRL^FSSDX zOtYCDOJ4W8=Xd)kZgu-&-an?SJ~xXME}YIf^4*OsJD+-_d534^wIkFF5ZWBDvhvv$ zHEl+&tf`UUnj0BPRzm+Ytv957J6C)qp7=VgxJ)zMieCmhLuUOM8e!YP*L?XWk*klL z!hN~kMkbAz`Zcv1a$~+*FD8za&E_YDC${QY_Ok!srxsZL{VkxjyX}vDvw7>T?i*aeYPC$dEWWWV5(?*YLnXQl)$t@5ouxetXR~voq8BPUrb}=#e^pggqv+MiFxb?_ z(pgdn7OC|@n`8~xuO(M>0FR1@BAj^pn*NbkVd;+dm{P%ypP)(yDRp+8?6RxzV|{2f zYqCOq=0xM@wJ3ji1g^^4gkTEm*2#|_iF9;X{<+G##u}YsdLljpklXnLrPGioX4KGx zK^;lzRX`heXjnz1;#uMjjQossMkr*YndRk)(yE>=W#W3fc4tW$EeqkeM1_I?i3qg` zrOzK`1*Y?pGx`^5Gt1Vx_tM<5C0bPM*z#i#H$FX`e^z1AYB{*Pti%Za+R~7vAioUL zn1bZcwrx6-(4_{N%D3WGj$Hj&;Ki6Pqoa53#LEUq&?KO5awVbRz#Fm9N%?%T!b-~~ zsoTzM>>-fs8Dx7%z%VpE1VDShc{0l*&E2hOq0+W;!Fm}$$xR@{DJ1NH!%MZCVDWn! zj4Pr0ftHO=+i%-4O#+uFf0$pqdD)BfY|X=?{v{NnsO2}nTK5q*RvM)Ei ze^Druyx~}0i^%8Y{cltbU-{wI4i%DbUi5s;0&qEBNG7B;9B|0XA&ADzFw$Wbl4ROg z(b8Cn;d4{>8$uxm&&q=qGH7F%Y`IjAG*ImI_m6M;{Qdiv$dyBZ1?VuwONi@lZzFpu zmayr0+L@+7t`WoD>1(rnI(4Jh85S5b-hmG)6jQ(UdV%Q53#@gy9mnHl;m`#W^M<~! zU9@_ahH&{2?^}Hs2g^>MmbG(FbCNyMvUWPl_E1+QI(%0rI|rVGc4!jg4CouHk={5& zN+L=Jm`>+z2dfA4jVVJUoFmZM5nX8hCSh|gko?hW?K@|IDQXbbUgt!PM`s?oe0-!P zAiadz_%!DAtfReoLE{)*wum2KBvFc!)Gen$;Sjd$+Lr-T3a&{krY$ssjsV*vd&?o5GN}>bXC=bd~evZ}Ity5g0q!!?L2)5iQ+7#Z)@Zo_az_fL|k9-lQv^2UcfldZF4 z15_4K&R0RlMIl@icxxe1As@!mWtA&06ph`?iVlrz(A5@^TtZ~!g4aF0?L!Xnt0~yZ zwy7~BexW_)I@qk--|NRBI8#V!Bb?_n8Ep;ntTRDrb0s%kYQjO3YF`b`Sn&S+Mv@vj`%jUCewK7ke}1n3H!E)09!g zLN|4lTzdE?jfS?46?P+?{fSL-PP}Ax7Bsm5)Si`a$P>v7L>W9jal7_XfPSB<&M!wd zAzp~)?9c^S6!wHPhu|F)EPWo~QXh5dpt53~q?5|tGsDCY_0?$@le;u&**c>#{e~K@ z-a06<-oo!fPO_CX{w6pN4WTpBOf#+?8ig=whC!2_je7XG>7HE90;_wlzu#-^{cDOU zk@Eb@W2kkMYxUJL8aY-^B;rB0aED|jH>NoJ?ca)1QZpRYphPX==iUbA%E`oYdkiAY z)3UPq!-mntVzzBVijG51Kv_%eNCyuJRxov*WF9&_nNHvEK46#i5Yj_w^OngB&!lK) zsvSqw2KDLJsMf8&&jT8kzxd>9)UnI|hnGvbjiT{beid1!hi_haA+`QT+F_k}&Cs^F zb=6-YxiS2@gr@NM!393>wZMw!d(1bM+l_%eRtIq+Qbq2#eX$D_nHXX`LWi`Hj=qy= z^jH`p7dXBxF7XI^jX(rW?>+hQ0Z(*o{r&~~rt;2PYQY)Mrl&weGVZAuUq{LbSRl)U zeGyEgpqgOtX^>1qNTt;Jp_8}$AZGeE%#29!3A=a`3rO;Y3q{*)a;m%-Ya{zI4gS9}UNdO8z%FJejnuFT13 zfH*~Nb-}Y-Ix!78oD&Bqx@cMOJXx^;J`PlKsGzneFXm|~c@ef~ zdb0hHj&AG*@~ttkDL1$8onEM7_1It}uOaWW+HdV-fXc{o#t~|Ug-&L|DNX*LcMZDk z=;UQU(po{ScuY0-WSQvV#9hut*WR?QEesoL{dn)CVuPh`@^XaN3QWQlM{0U&0@z&z=^m~v zi{cq_*?2tDgbjf|huv!yCX1a~i&KSO4k!#cR(#9gw1dCZ;Bujn^Y*PXPq! zf>JNup^1*W*@2K*Z`cdUI1NOO69zr?&=D?JU=+WxJ{L6cBC!PhqWp6ELHDKz3PPPd zX3^DN9M6s<%D5@0fl~!%i}!(*Fu;++>YL6MpF0SVqayce1TKqHG|jCoCnH69BByl0 zycrZ>Nu8Pb+uwFStrN@*lt@-)(4vMp3w;&oYH|Yzm2-^|i>_c(;k;pwbk(_#EC+!= z2Ab;FiRi+SfNZ7|pw+2y{P|v7bDO8KCb}8mTFsemfPBz=;-2x~)g@O?qT6aSjgaIT zisLQ;j+X!}t8esRQ{8oMY*h|^O)H({S2Tv$G3H1-m%cGf}z63sF8f$BasH$QI->|@Rp5{5QcsjWM9+a%f^A(Lf&GUgp~ zaXAZ{qL6VFcBFmb{bw@GLw%MYN7v@rhG4tA1n1bzN;owzI5-U+Xh0tHg18w=uFDjE z<=tJwLb&+`&_2fC7VHDEjV0L{G~^G*@TZx!MfSPZ;WnnAVtSA*)9zG`U%r9tC$rYg z**RS&FX}%)YcY0NF5K51C~HaU`LDFM)}hpt;myDW0rRg$B8EQ5Uf@TLq?-`XPG(eu zh3Lj%;=%rLnXSLM@`30x~uW21LA|1h*fH2G-^C{?%hFNh{gP2w{r|;2`Zw z+^#9Vzt6#5w6O?9Lv*c*k=IW& z;4DRtAH%2W=rVm!-{zC|Pmr{M`S@0jDtFqM4r>EycbpOx?B~c|+Mr45k)wxQgvo3u z%*v~;{{-ciKOBEL=jdT9BKJ!Lp-2$0DF>ziUd{-na?%dzOy}pD`ys})*D#|CP$nD@ zEKACxV-Op6IvYR!uELPF+^)=e^Xvw9B?O3vP`mT;ZS^#{Oj-m6He$mg0%8VGi%Mm$ z?b8HJ32Nxr+}zyL%V%*oGQ#GVwXxu;z8d?xxH6cdUUT z>M&^O*)&aH@@3S%`pf4B8IeOhdDfO7Nr$g9^!YapR5$~h~RA4SY;T8&-DZ6DU!6WfGKAm zwAf|YSil(vKNUd~aE>+)d!^Wsv~Bi<{D2TItChcZBZc7smaTRt*z`5M9j@bMw3S4? z3+0yz7#>k?Zz6$46s)`zzb*8NeHwA}e9+8|BRVB~aAc1_?p-N#Am<@2YG-9t890BF z2+avNB0PYn-(z((ufMyCC4m;Hj&TF<@9JMm~Ji&EZ#v=;CTdXRBT4pA;Hi5mr1_#04nNUL52 z-FO%&=ahVj(cfLwVI1i~mBWw88o8kO%O#tyfTV~94~ajS;^4&n%o@7VdHJp8W`-d> zE|rmFKAnM>w8P+hI5*`UnEpE_?q4%r;57{-&#=h!wp9?s2D=ZOeu?O35U|srwHWS^ zW2u_5_cp`e%JDlL;wztf;&!Xyn?rn9dAXU!zE1eqmFIgyK_L}VsZ@#W@xB-qMiCd@ zQkWi?od(&~{qIt*3s@us=~Ju~?u}uch@}oj)Ooy{d>-Z67bE&=d2R!2mY+z7YXT_T zgS-O_PrsW2#Aw$3P|5I#0>qzo4UsVxT7s}Ja$JmB9x zNROh&%PJve(;!l?*``5H@j0yP^lfG>z7t4=+SxG=c8v4})dg`(VTR=-jQ)+ze$ED`x>u+wPXd}cDQ8*C7BII}wv10mwydd)(gyTm5rJalY z!VCr|A4YT&GX(`%2A!+O2n}XYJ!x*inZVgiu?Q19$F_vN-P;l?YL-jpk>o`LlmE-S z@Ie=31gDA-{_ip4>9kCeY+bGJkZoMaVBJ|aw`?GIPIZxB+7&=C1=Kh!+e6f%2F^Qs z(`6^7zx*c(rOZd31rXXIUJW>3$mGvILcRI`X!J-b_yI`iB7OPM_cvCvxf_Lz&9ika z0CQ6awFKt=JHi`51N?|I>lAy7?_h8dP$lx)p>AduvUv>;hM`Rar+^GCIyhXuCjh;JdDbs%Pes;zDGVC7kdLWrkB z$fQtsp~#!_ z*3{DhECslUImjsC#O+;nAmIAwLdb^Z4=qv^fB3Y`3e3oa_Jh!^G)|4KzB zEeN=5Q473}jC-M{AU3dIs|<9DqxDy{BFocp(W{wxC6w6If*jVbh?WZ|Ugnlyu~v;+Cs_L=EPK4`$9#8CyJvvYIen?P|M_ zSM==0R$rh8ALevGWPD!#c@i0ev~>_GkeFEENezI=?q$2|C01|Ol|BNBc@!jDM!5eYvc;YTF={}2f?!gsZfj5O-G zyK*g_D4{N;rWsHif`Y~@@V>d5%i$4Gm(}Ta;ToTzP`toS(sMsf?Y~cXcI-r4(^5Vt zpD5ol{S0!Fy4i)9#p>gzh*Jl5W}4xJ7Rp;t38}FqH3#9@a1&%4;g|S*i*Td_9{RSO zNe+W)zj|+>9cOSz4|S{pzL-VYf4Az=v;XCp@;wPycnrKv&$apxo+kDITf;S=3WYlP z6t2(|vDjNNv1Rtv<+0=q6Tbn}C#XxZ8H@k!WAgv=IeRhP`K{+e@wLvIDENmxY5xQD I_@!U}6Vnj=vH$=8 literal 14301 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 rZu Date: Wed, 12 Jun 2024 16:17:55 +0000 Subject: [PATCH 34/53] Update UI snapshots for `chromium` (1) --- ...funnel-historical-trends-insight--dark.png | Bin 12643 -> 14543 bytes ...unnel-historical-trends-insight--light.png | Bin 12357 -> 14301 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png index a820c399ecbf23f0a477f1d6c54d82101a2b8272..f427261f0c8010f06b2182d23f21ea35f32b3b67 100644 GIT binary patch literal 14543 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 F{{zP_KF9z7 literal 12643 zcmeHuSy)qNyLQl4S_k;twpwJWW%`tvHHnA;EJaB)hzHw19jf>TM&IfZxICg5(NA1 zn+w+|qG{~?0N$TlAMigf{Cf6?$)!(!zp?-6!#790?zX@BFE9HwAG=ul5#v%Bvm4>% zZIky!)Os&uQE+8S&xA}zEF5xvow_i(!A}`^>hIhj%18d>ZL-7u>Bez+)D9p z+;So4?g5>)2}vE>3j)2rX#&y!?Kk@0p8TgN2auCZJ`;_|{H3M9nDO(Wdq7pcx3ugG zj}8oMEZUv-_aBPujc)=8hsz_$6@69ZFi}HH%#|xw=-=-JeO6vkacX2_Bu2eNLqajO z%sVEJ=h%C(#kbg{^wFaeLkMrSaJ>GtA?UOn@Jtu*+Ae-)!~TMazAHK|k4L`>YKj?h z2?z)%ut7!FAN&M#|$KV<7*$$xh1Edkmsk;;;i?0nSwOl z8wqdSDdHcw$@VK6tv*^XDyi;fM0VE3oNK%yRLI{}2w9DvSOjdQL2lqOp(_jDQ(G5H zL)Vv(M&?6sqHJU;wKqP4iTG2XzIj(y8c1*1nXtFFx3Fc`m0HK>VW-hpDsGEml3C(B zN(k;1zGI-6tG90E80W*U1`BdxOplCA5~mfHvlrZesQ)`=h-*|Ct`U%DJ^XpY;frG8HjfcjFPr;yu%42Q(RI2 zjI6?b7Z7s6B#0|j-d!#*GlaEbGW^c5Db99A5h>1`2)u_?yS!(ZW1UjCqqy21kRLtt z=S{M)uGSZn;QHvGQuM-GcfUgNcbHyam2V)lFudy}c3uW6X_eEs@| zu9*KefV3deA9<|5eU`=@+IXE2Is58PFC>#cTIMG{+mP_KO#0Pibk;PqhzjBKtbXu| z9$w(sU4Q#R$ecu=WW1m#`EQ@X$jfxrNm$)To<}{u5OOLjKk84}L_|HlYWn-8A)|!TEbbU4OU3`jNEVC5Y z>rG>qBvs8TE{j8D*pP;&JrL;(Yf5dJ&9P^adfDhQZ?IWf?go}ui|V`YLFc_XvU)ak zS%sLKW52(!If9a8c5~P(+3Bq5dn=Xw+Dx^N#V#LDn)B$_{Y8?w;`6}CCO=}U*%(%q zsgIh^=j&bEeRqs?52{@JwQX~BvVW(=V)E?gHJCKLhsbMM4 zxS*Hrvxyi%81Z#(FNE;nnsN8XB!-iJnQ!Pyt$jW{y!GXfo>U3!n9^$vMf(bfZE! zLE<}ySsrcdUfviZsfsf8ZS7%q+&~^#Y#Q#`51&z`nljcN-GV>C zc|Z8Nb}-7r!J$5Bn8TtNk3SRd!!1`g`v(N%c4)gg6~)z^Yr%*Lug%T$J-e7SzoV;~ zxf1Lu+E`4DF4G@+f)cnXg!K#obyu>zYF0ORLpdH(<`wP!z&`+#~857iRnYm{JalxBqMdVFmCQV@L z+jD*vN&lMbXgdG#d)>sl-2^H0fyHW2$9hG1L9VN~&3sqPN^IgLO!BDARVQ2Nl~H`- z>!TjFSKgcAX77~crA**r92bUKZRstH$*7y|?YbWis@DjLz&W(zNw&)yOSymE)Qm3C zP@rU7de3~fxJ|HTeP!WZzyEZFi?+Ly5JFJ34YkL-bm^yt7ik(C&tnVQB4ZI8{x6!x z6y+P=RN1}giJd#a?UVRR`zLFNCqn5^bM1EY&ru7|cbHaxFVwwS^ zge4PAxq_FP##1UO*p-3|I(7;nh72(kl+I%j$=zp<-7p^se_@9hy*%|CY?m-ql&&W# zfFLn04T*4^TVlxo6@t&^wb?|+84xyDi(FF2Yvuq@o}4lP9}0VP;DV<1gmL_2Q}>Hs zbXkI^jRIXSO}%GuchXyB2DJzQSiWv4wvtc9i`gdm;n``1MEmNH=AM*g`YsiY{ifIj z-E&6wP}c*SNOLgXK7idg>V34OwEpDshOnM(20N2MB-DET%oPLiQ84nvW2S(SQi^GH ziaaAf8H!=G3~mIN`Sy?8gtLi$8$Aspy4>Gu=U!B#s!-j>*gu$h7Z{!a+&^KZWlk)k z8D(7=t;H<9bM7?6Caa4sWuyKGYT<;Y2`swrLAKd#Xn`T^`nM*^2)(uQR&5L9wzW4D zq#kxACM|U_9sUDZ*vK(}kz18GY^KvX61Sb*NoHtljfN&7#yYYte48lW{#0jc)d;t= zh#=p(v_Vc+QOvE{pRIFm9g|vt{a<>8SL-i~fUPj&Nj!EL}Zfbxf+ z5R=p?3CJHjP8p4Y5lsMj$4Vs^uu!}aPAOg4!Agyb39K->;bk}bB!7sdx;-AfTy4A3 z53cWigZg#p^+|IQ+&V7e9C8(UdjxHe}t&s8zNu)67{&@#LR2Lf{tFoKoC-~DR{of%)jXB0SW_}S%%Z?*?p$B0AoLhgf*T)t5b)qgt zT|wh)jQz{J`|H{LpSG0JhujV*N17f=@x>bM`%U{63XdWq$Tmh=Y>XnBN3}@{D6Mw6 z7D6|Wr)Z_N1=01~T=dO+Yo;{XfUWJLjNG%PW{1hAZx4?IMCEGflZ~OyYrhQ-56{>2 z9wU`s@bBN1O#`XyjHkd>>dnm}$|b{ng}HmTxM0}&YDX6TnGur$6iGQBOX?CePu)`^ zg=1Q-P9(-^O#wtYFb!DGx7jK@={1l;y36FJ{MIu3!m z0OW9rBeCpli+75A(|6YZ;v$`v{>;;Q4{Tmt8x1Jp=hnA23>KUCCOR_tqj5UC@-kl@ zQ|U{|tK65_L(HNVBOOUb;kK&ypD~8#bH_IiIj@6Zg3LqRdlF5y(^ZNXa@Ez3qF1t+ zxNJw@BigoSe-FcrG~zZJv(;Iq2aV@UU-jp`=>?#;Kn&*Ql`xgOs#f2chWJTG(vAe4 zv{TON+eb(d+=bJ~#<-mV1ZrxH+lw^vv_u~~VBqZ}PlpH3f42J4Q)4&bYXNrT)t#JE zYx%}Oa6Ex1OQ$`F>dn*n`XRhz?{`_+q`LLZUTYQ^aQeqcj+OXYWjiad5EM4C`_=>& zA0Mwa;S;I{{JKt#87l{+yiUw114rrg7Ahkw;tQnHs-H`i58Fvw7`Ipm00l5aTO|9% z%{(dOpqV%2ft~7VLXH4F>KMD^Vu=jytsejxg3iWP>-x$r|ijx^HCle=-}aw~4%mcRewa*0L;eD0WPcc`z>!8{0# zQs9rzwLQZtGHjgZpBWuh7ujZ@p3syFQu&FM;?w| zqygt$>^OnVwnSSTpza~g4|X2K8NM*dK*BgS19sPDANO#kThRRyHtU{o%t(cc zzAL?MSgiQE`T_^E2jn9e_E&Y?%Vb^In9}th^%a>}^5x#vy*qVrJzP!SV zsE_XNIiYFzAcsi2#JtwGrqeRAm0OadyEXl#eo(=YP|3=n1?CG^zqVr?X>3L^a&si8 zSBo}7UzaOslV+BoP2T*O>0S8&>kF6GAJd8-{8AKm-vPhTHBQ#e6bn=hGPBAG1@>q{dNb{+z%qx1ogl;0+o7D3o-Y={jgw!E!XPQeg?0-Cf@%dMCKrA#ccy35N{rGu^E zYQmh0JzNfd*?-rtG?#z;H0a^t(vZvMAxlYIhj>UjU1FO&;xAcsg;sedI>%$ILZpp) zYf~=HCGfg8zsU?gFuvzjP*C0;%xk_$D}#r0o-6<0FshrDD$40}`fq^75#YNc%c>VO zg$ic9tk@pfkhWLY7Y_tg^=vP6<&yV3~=I-FC+2a!anl zl6Lh~T|;cQBDSa*yR@upn>7D)3ai>%U>~Dwg{mV^$00VkX(Be=xIFc@g@7PMl>2HYRqPcm72PQvtuF1 z>H+{}Lf}rby=qcs>O-YeR8$C^rJrqeMNK_izxXr+U(7VW{{)g!^#K*6@qVx4f#UDTVc5tyVg+E*r5#? zey_m6K{op#?Fm-AsrH=dt+B*AiJ{VnWRb1ey`U>o{f@^$@AnRUC4tUXm(qQfT9i(H z(A2B@wBu>FKVB(~2lkLSo|x*6=T0zCm4l1S7va?&;HN$GA``fK{fYQclj0UfMTvbY zMnn#*4*A^h2B0-LFRFY8bXYDX;jNhNEI+qLw(1})qhij~zk#E!ee^Go`>z1m&q3q+ zRrkw3JrdEseFsG}6wA6>k`tU&bKI5d?eQ~|h~lOI^!Q`8yjP`5K1ebt2zQ0<*W3{2 z2NbSunap+ibpZwA-Cg9y;3y!?r7B-2>Ics#)J%&Lp<95Yw?0bR-x3V3)X4in$YulTM#xtnBDQg&(TE-o4C=r2V)@ zb>?`HRHZmsrgRa&uMVa`^xRE>Qb$4b+&@|17@y*T5k5cz054G=>kW`C*G>cJv^M@q zZ*tc~c+bvqO+IOAvql^L@BSY5VA+^iDuwWc>dbdXp9C-ZYS7SIIN5NMYt;MFP<~B* z7}a>3(9DkRIJ8R~^9U_H=Gk_CQoQZCw6x?dd}MF_*EdSt0K$$i=COU+lD$J0s?MC9 z#HPAcCu=zQ0mO2^UFw(HxfeYCe0}qVQjw&@A)>Y;wdVnesk<5s&o|P7CTB;*)%TYr zNisO|s~7IOgo2dZbThWA3-enlb%#{9Xn~JN;GIut+=WB<`|NuqIIaJ!8sXC zj)2N8M(C_1Q&Uras;Cqg+ABz`ZJhdwfj%ZNq$y5D%~RwY@#|7A2f=dB$*AJg<*}Z+ z(UAI13L4;6J*Z{+P^C_D^3b^1R(Iz`n#IZ{YlmkYK&6!d>_|4K%`C#J2nZ^Pzcz(s zhdVDK%t|9WGc)p9WG%k z-ma`;&)_Z4OawL67#u;0+L}R1U(>}L<_=UggUw=>bgcB}WNG)RE9^v5d~4V)-FdY6 zn47y0o@b?H4rer{xB4bx)pjx<#G z{Nnf34H^$_DSHZ~JT=T(GPmybbtSsQPc*>7!wHVU)^B`w#_z}mnlr2WpbtqbIZuvy z2XGR#)V%ND0u8EItNK2o1etHeSlp>xm+h7MNmr)N``g*I<7;R%%Jpx3l{|KiF^MH> zGVVTAncNj!bcmiR#!My@8+*yU8c+5zRllT>jcME8v6Dp;Ca^jgzbG)z=5kjwj10hK zQ`nok`uUtQnIYNzE#C@{>^{CvNLuPv<<}5-T^mA1Ai!_xqq7{6UVTX8S8-J-j5o}O zY8eDCZo~tOuK*CyUo#Up^zbA_BdM3UD=ZiZ3bm{Uo&uB)nMkLMC(+dZv7iPZKMZAy zOfoV$5;d2xZyw8XhQN21R2FqpH=(4{%&lCbAts@Uh;bZfU%gl7M)CF=4N~k zCj2K9efecHn_3Jo=D3Zims$A@R=ur|JO_FP`1m~*h2-ma{4EqPtFL&5*7vc1R{u)0 z$NbWhLobe6hRi=GVFlvc3R}O z0G%JGHAxtGpMg%pVjyny&x`4818bf7#SWtjRGY}osIu^_z85~tJu|xo_tmu<_ z+o1)WY0zx&o4Y>bIF`r}M)o5nDbxle&+|hQ;6fMssPPU1qH#Tf&A3VegxmAs;nNHM z9=O*JE^>_@ux`@iE5AyunM{^WV}c)voBf12S-b892thFhz%Qa6WZl}sN8<<&S0w)pmk0$wd%mjKL zCL*QbIgh*l69%=Dj|+e>ux{Tt>)t2=s8bnbXBm(;o2+`4Onui>#(=I-VS$*j{>@c&E$B=Z5dvEmu)-)FTJFyVmqjhh2(mG@hDEa?sUxbu*jCZ36?{wGq1;#*R*zM0peZ4 z&aS1JoWaOkg;MCY-bM08qTCkE02Zr+VLIs{u%jTKv z?i?IWFaLh~&4X*X0-$@)+?5*cf=$?HNw+|32IMeE8l+8g&r&#xxj0&lY@*>~ z=SL@3e(><MyX&hD?;1i+z>-9pVE+3+&BszR4!iWGW)!e|-|mY` znFAKW27h99KwxlG?GPa96n+E1-QN#e^MK{T_;pA1Sb(wTBOCnkc)MnDCzeXI7)(-Z zu1jdjf5X;STE+Zd52y;El+8}w@m;qZQ=bt2GG@`u>=S%3MB3X9Ye=8hSmFVBJOm2dqs+aM#&(Xm%qS~r!)e|uT^2nn< zv1`+v^$+!5d~)DL)by{UtzcHasczzZwSoxU>4xdp%sxpatlVlmQ0Rh=4TKXKH-0L? z^B4|-h<`I50{O}tF#EjxfK|`QGAr5f`(;$3sgY;KfD0fmS<%K%dZZ;#jnm~n60LiQ z?|(^4l7q7bOm(%N%5OYZDK!BFIHeSTev-x-gMvOtz#5>GSzmLO$lrTH!)F`n2jo6l z&cZIYEpBH%gMtGR`21Xh-|^$e&jTRJF@E9#H8lQ_|L?H%zIt|)fW4A?2n@(1fQb>< zac6a_ib;^y;+D!0>tfZ^v#OB0&sLM!N7QIrR8}zJV<7AaVGV^ z?M?tU2g_1k{&uH#v&Cl|+h5D{8K)mWuAt+s`rB39;`M}<K&H3gf@XkQf|MJek;jB9s){+tViTwb8>0!RiL;U45`smV47Ye8MMuYp#RV z2lO6?fa|F#yYY5J`EPBjv%gPCU))5Eey~H)J%a~_LM%fXy2{IFwPBA2KilfYBWS6s zyO$#@giXs_nY$}?Xts7AZA6O;;OU&12lH71Shtm)sWcQ5cev{ za&KYm6W2Y@E&Lz~Z^y~xtAI+ZF^*(I-qFJ+)q;6?pR`P(B8!@)UBX+FyQfucmUhv7 zU9Do@;LA*IF%E;7SR7geT2?D(@$C% zXZ0d$GOAv616_xCI%%eT3a~E`%O6+Ye#ek3$ppn<1i!Da2Tc_etMWhQyP5$#k4Uw{ zxhAqs+C>j|cQW#I6Q)iUX4gMJ?gSrcL`<^aFV1tz&io($d>(v{o0_ zE_$oDwNDIKoV0=?4P?5;(bVE`W@uv9-2yv1^b#P74%@q2I@JHc2>a1$C|CB)ic$(G zu!%fV%6>piw_@50D0t;p63F)34(F}s;(0(pj@lBAtEEfX1eh6I5CMk@9F^*R(af&i zeI&j8L}L3UW}-Qf2EYm4%XF*m6L6=xB*8@>KI8{*K!X+NreZ>nxO{?2p*^5VSvj0h z?q3#=`BvTGcyuwH^}DhonpTx6%rS8l1+n_k9PR@^;zP_nhRHgDNqr8SnP*+8fR6AR z1wDY%agI$+*$OiU8Widr-KEsj4`jF};@-?$n0wP+z}CNhC4tFnQu{(VJ)uBA#h>81 ze&__m)}SCh9uTYRxXQG7HA=wF5Wv+Hl@cJA@LIW08CwObAB8_^8*|z0>^7i6)khC!mK~(FOLLer(e$c($RXWOb6sCSW;!To+m{rft02>!Y`UELtD8Ae76bybjeK*rj}q*Ut9hyh2<=SX?+I!OLpRdRs=M|8#VFSs*qvMZ)`-{FULOV~2n6ab_q#@~e6@C3!?H2u zgyB7is~t2omNMM>S9+v+Lyp|Yq5|%NSQ?H2ygy5HSj}2X_)dGavs*v?2z2A~|Me`( z|9S!cX}trB6HmNQ7W+Uqv`^Q6^nUx(BZZMRAdrOzO7A*q{}+GL=*ZtVh4Rl*f7d+E zKbHK*l7HWH*gxL%k2n3}P5;!(zir&~pM>&HLis15{C}2E%=K=d(VKvH5lbBefu4N_ zQ1|l6%FqwIs;i*U(E(rJ=6-E}+&rnI(|zOPMfRHqk|Lb!`r~T>5~BS^#RCq{*qSZ<0voi7kmHjXg{C> z*&#=(qC*qvXWGvJL;ef8Nw8-RgOoInh3~T zD@bLEhDoLbMZqx27$783Ac>5DFosOuvuW?TYu&%@J>U8My1HB|3CWvxzk5H=Z`yBe z|72^m>5J`O$jQlV!kjpIMow-GJpF8X-CB5f+tGI(9#&z`Sp6th+@?G#C$~!ubM%OP zM8*U&>Y=0eBbltdWxw*-jrRZe^2qfsr+-cJJrvUPFj@u&T(zC@2-XvlpA4~JiVei*&{ z{-NAD^tfh=96Ip#^PlZPFaL2$?sIsE`(=F`dij5QaG*=b#SMy-%r|!wpA;AG+q7wZ zZ>1mlg6~~ILv1em`*%IEY`pgI-P1Sa=gQs}39ZjvuneXMBl8OwUbXYad2Wmazpf|c zyA3v=gJfT`Vk-7ovz#;51h=(!YPUv?hX&oBEI%O^J=;p}Dh?D~o2{;e<@oIQKZY$Z7Zga-XE%W9E#p2m=mtAs{%*4`n zqyI!l*Rcy1?{6YUT-90^7aAJsM=zHcE1(&WTdEG59LOu4$_!<-8Ozt*x)rG)Mt_gn z+WW*NaQpT#I?iNVd1dnAdaeJhS^IBHxl3iXY`G(voAZP7(!#56lJ_cA+9YRC-N>b$ zH@!m>qYdWqwKJ=??=DJOS>|_5W`?!KTVw-?-$UH2yy*p(Eh|OyKKu2H(bWP@SDr8Jk8j#PFH~K8&HnCua`CeXCQUKN zvv;rRyYKx12cr8{U(&nq`k&vhOr%T0x|iPl-XwT=L!S3y_@2KYmBZd~;KI?!`LU$4 zc4qoLJv~~5B~_e)?Tw0*>6;Ve=6waqR@M`uv2r8--a_$oyhULlyTrF$qghe==ieB? zRI_%|*;C2d&V&R*)*;bkg-1CvjG@6U*^}ZLLbFh2r$ze+=S{*U9!e!5-tRXypG?{3 zmR4p*6}AQ+3>tiq5z_QSe@OFQqB>PF8LaEm@^Ir0gF>=hYriin=l88}g&}hl8k}3I z^B6|h&UEbp)y1P*W#=19Wo<9i9c+?oMJ+~t#GJ^kc8bpMSohPjTPeJW*PC}5d%dr_ zZp3|fQBX#T*{iRw&uBZ!Lm%prW#!Kdj>eYNo)D%@F zRq#5c`owXI95E-H&k}a$nLFT^kF65*Sq*ceUAmETAC<4vt@1C6_8#u@BHHvuDDRz| zX;if%*gH6I;EBh#a_;bbsm7s~7Y4EIb9}bNA~W10Rx<9vyQ|xFVsVN|RM*VBc81_J z_pu|@Akc*~Kc-D(4ZXR8mCV!gU{JDY-P)+dHmQi8jhp3q!^bMcf@W-kl5fu0Jlg_h zo*jO>YyPyP5Rd8ZX=b&r>wEWX$ZVbBUY7?m!;QY; zr5T)5$it52rj&mS@9pj7GQ-)e&phh|1s;<8V-;=$$8Y3JLdPELE${ozdF#!AQs?Rq z%$P-{(*E;@m*+-H9Gg>At&$}NWBN2~GakCvM&>?wqOnEOw&jTY&TcQEhisXyPW%1H zjZP|FHaFIzrR&=k@b#ei!t=!47?p_k*EL8^zQXxfnTYK>+L_yrmq}zFe9Z;-6Lat~ zDTc7gpl=u56>Fn{8@WGG(rykD)0S!Cn;o-2%M53wVu%{vL$7Z?C6U^{jaMc&h&IBc z?A{hTv>Eq-v?Zi@>D#15>D*wL(G!si8v zpN(WzCVBJCv9<&DJvos?OUI?G(2j^Q&hZ_A4~TZ=Mi{~JILYY`ws(qKaxh-RupJP7 zS(-0*$geXeTEt-65=w*F=4_dCksh%lMzqlCPpVC3i@AnIlDRH=gfOb{zB(@hYirPV z{)WDawKY!2NtqohAaUbXZ$6Q35Eue&<=b#qsXw5kbGxZ7<8Eol7MXCip zHf-=}qlQRyWKtJqrgW|KRw^+#vri4vwJw4^%NWU3RcK9SNA0?Ed@41!i)Wv#e^)7e zSwg~0Zl>BYmmU+tr7G*jJ(eBr$k!d;5nOY%&4gdmG`=v&;QeuD-${b$%sjp#wI>DwS_D?k_nw2b&)BGRP(6FOJC8hGTXt8ZSW~yRV(?(LbS{tRRYY1J%%;Rp z=5lp7OlqHXuaiKD~;=NL)BgAb=<65M<%+F&{@vCKPZ0NsMTz~ z-1%DD6rX)f%(8TzW4e*&NO%hd$+I_@n3mtYxpFG_t7lX54ZAS}=mCS(Yd2oHe_)?m z)lj_^c|yDHIAA+&IKfbG+b;UM;f4f%GD`<9Y`(i)e^13=i1p>mmj$Y_8P&@7ziimk z988rg+*LL@NL}tBk-caHcupnFl1gk zd(Uj4PurQCLldD@fSGrwbQ^RFXC_%Hn3d8bn}cg+8fsu!F@!E#lcJtAb&m7@cn@fe zuy&MLz4(Q98O)3Gv-3wdp~LOX?AOmblFtRD0;m`!nlFDmN%ajypu%U>(wEPSXp45A zdvWE1G4rPo7#oIw*0d5xi{Skx8W+wCb>g;Vro)-_e6w&q3&2(|G$q?)qx_#}b{I=^qJtMsF&NM5Qpi-I(P?KDD!CnZ=I*JsH<~;pMBb7LU>+ z_m+b4qGNtujGh@z)N}J3DAe9w>1*sdeI?(3{et$#EoZ8=q%=D(EPk9gkm$(DHpPXM z4_qz~FEv^Obv&mmj}@SD4q@SVsA`4%?Xk()Q9pfz_R084?YR9A8!$0sz%S1mO2aNW zbB5lxKB#K+iC6#n!_YfzSy5A|+T*L3)#2@|D8AeJ7=!}wEOTdA-?uosyMwTLaec8L zm{Qo{Yfc;SqxGg0TjnngVkM@rpkGm?dylC+-UPRi`%FJuPzb-IlOiNfuOIEU1!`ym7nU_a#29CzCU~yO-W~ciCCQB-lM%-X-b!ybi$K zbf-yJ%hJp+l2QSs9mj>8DU=6CZmcc3CV{1o7B+jd?M`teH#Fzjq&q(CN?_MAg77kV zeJr=-3G zz0+VVP3|b_*n+YP>GO;)d#l4PbS^mc}T z{(v_AUq_D1+in{?ghNUL zXXcr~#@{(8n09+P_xS9{t$!PT#&DipGFOzBrd`0Adsf;%7Nuku6urA!fBB70?ET?; zCP76FeUB{TwcTqDt(M>H%9*Upid`OUqPf!DqXLQYVHq(C{lb?DvA?M!@Fz=`$9b@x zEzZ7~Ne3=A*!MDETC^&@@;6<5rSF-iO`F^xw6)-!CEi2>)-)(&L*<$cTfIP-+7Tuw zqNz%mRD_-Du;Sg?5p;rH?4}z&#pXZy*~23n3|TIPVy>AT9kSU%JUszbK_m0b^;nA2 zpvEw~w#*XH+!@Q%~68CvvMC~t~F z)U+Xx-=C%d^JtJUF)?KACMK9u8d>yNxj%iMg{Z&%VD!@TAoz|{eSb#^kemi4D_TGU za@v78Q~6!V40*7uY_`orvpMVf6@X5AmTaDccT*ZJuAWK@Ebo6J$gGc7Xje-#C4kr( z0XY`U`Fg1L#ER3r#M!Fjl93rcxL;AZfA0E|F5cqXbBd}D${Qu7`X)7+pHcKoLhWMJ z${4Q6`Sa=f{2wl!C(_RaJU_N}v+~1S>lE(NaAJEX-EEOFVFkXIL!%%Ev3Aq;2e8sU z?|wgmn|Y&1R9EzfzUtGSmHDAQ-uKn7>-&NAL*{#&&~pr-*sa=e-NpH{ffoIM3gcL{e`%Z<%hS57B0TSDmd&_i~P};CgrTTXrqg+k!dt1 zQ)Yf1%Tm5S5Ez@5KkpQ?p#s{|2L_i^GJDTLy5xHG%{TmJ3i2;T!*_Mh02|SWnmiCC z)_`62p`JJd>wUEA@+!zWaGsjfT)^y ziHC;%+4OL`jH)lp!>vQ%OC2@;4c|W3)6a$y)*t5@-Y_ei;;FW-k(CTeL@d{gH@*rs zBAFPQ>>6XgUBk@7xpXdJeRJFAHQ$A9v7>dau`7Be0r!>*V-rl@g;n(du2(XPymm`L zH4BJOBSHqyO6xE2>)~>Ie1Hm1mdT6qzj= zS`vBdb7a*n zOeYjXM$}X#ygHHtEFOsJT|ASBZvhS6`NSrDZk(=z{5vu5RJOSp5=G$lGH>0wb!~D$ z-#TSqD_*vU*TitH=M~+KUuo6S5Z^2db3=<7OG1uYD`7CYtyC=RI955g$lyFrsD4sk zgToN==NYoSpGhbF)H9ur9>_5Glbn#>W_hN1KJo10YdX>1_X4HzmE~baZ=#I>&043{ zzEZ}d=2ul!UE{ONu)H>#iXdhPH`VuvW&CF3f@fQF+jH{s_t=@v99^rRGI+O0-_F|f z^Vdo%Ln<1yGS;(?bw9)2$8%+Bgo~rAwOvgQSZDv4uYGQrJ5)0}PRf8#p-+Z7^ znRtD*eECv%8C>LFsZ{BiyS$5etGods=-@3Zt&!gek{ z+~U~ChXy#@e0kPW;rG)huc;}1`jqCA9+<3l@6dN@$M2p944jNNDCZh4^j*}&OU2iw z292!1hR2&_g!ph0 z5G-=QEH;6CPY2gGRj)E|nHejZOg-p*a7Q1ns0pk3Q6^ zypq3cvrthcyC*Ja-6ie1&=d`Mr^06VRU zE4gW~CZ#lkDQK{XGP*nRBLGybj^_fCf|ym{ zJ;P|A0-c3w{KAqpl!0{?IFY)0dK}CbTZ3bD-Kwr(pqXcM>H)`Z*S2ozBUL2?Egn-mizM-!J|KBczM~e z#`4Nn4kHPS6h(Qtft`iqTAT5BVN0s6rcBD0Woh40wNk!%6m-{F@cx=v5#M=81u0HT z_nbUp^ud7#yMspc>d#FAE$&JYG5J1%5nAP3r}Zp2Ed!Jou|V|P-DzTg)|D^nD5vTyU1bj;n&yBD z?y@m-^Q=vpY)(^2>`53$@rHnZ73N7eq)2_yc@cIao@uyDD#d}r5_TlU+T&_LY-%*O zT^WGxTp=9@Ur@-2e4siF+TonDOw&S$fn}M61N2~`n(ydP9@Z`l_}}Cs(Jg?k$gxUP zQ8Eb&0K!R*;@27mGRj*w84msi23^Bsvh-}^!bGa}qWlc;WAs1}rSA9q(R+u2+1yXw&V;0?`ZVP(wqz=Nd=7`bV0$u~cpR8YmZFXXy)F>h zAe?9v2o%ogc>7qZl1PwWP=J+57I`-n-QQMF=8GIu5{_vW= zptt@ck_ae8u+22)Jc?Io+MrYOTYKz635LMO%S5=zGJ0A-1;m;}O}n<)c8hGt+{`h1 zs8Ow%)yaKqt};DoCoy?|zPKGSQ4O0kdz@Lw$XgAPtb!9T@g|JuW(!XN-({#9js5vJ1V%TK=3h+HZ8s&NU=atp zkEjltHa^}a2}jJEHKc(ZI$aQhk?^V zpujaSQy}rZDlG_x1D75nxv#}c;RcA*RD~yCCE~rDYaT-Wvla4T_zM00#0K5;1qdF> z%*zpeTEs^0tC@b)#EEW&rl3(fGxWv)PRJAFA#lb9;P`{k?A}$ipoHA|8QVaqL39GH zMI6tL0?Gx03C3Y=l40oJ;2>-Zrx4L$C>iyxZMYZ>eVFG#jeQFLetil80W=-nkIY1& z0fJBHo;?cmOXAE+Q-7lo#mRbVe88pu@0o762ipgtioqrR4A{0Y;{@Q6T}AU>zXw}} zf@u_Mz@CTB$Xu5lNjv?(#p4v|Jju7^;QPf&p6O;=gRhM8e@I593iG?bJy_m zs;l}^={{;UET~8PY1q3H+d!SFS>0=y{!s5!84czU#R9sZPQ`%kw76BPLm+eI{IX%+ zB{IU>6yYq-Q200iq8+UO(hSQkFC*k+n}tm55X%SokqxEp3uG~0o|H#L zr?3?;by2*bJ34I_6U`ijtFL~1_Xr0&5&{U49D;rYeEIzbjml$!O#iFItY-B7<_TH5>O3gHY2Y#=(GTor69%Jsv=73 zyHdYN7q+|rTWbZZ3?pm^J7y8eNl-zxV^#BZ2`um`tM`Otp!85HS!)4SuK*9pSN zB2^ZHmC<@Tw6tn{hZU@0e_FsCOa1ay`3f(aR;Qw#^u8Y!o=yYH3QU3o(ORLW)G{XvB zwqu6-Zy*`v9yM8Z3KZJSJQ{4M7{V(jl-sSqqB8arQM1$F)}Q)D`&xTmw3AjWhnL;? zjTDO0u=72wJ1+}5J7;C!M@%tb%PU5Nylgv5OUvS_v3&gjNMGxk#9eFZ0LJ!VLcs3i zIFa1@FBcS@adN776`9~`)d~Ye+0E8-0rxu|TalizP{aYI#|H#`KV%x6;Gj^95B)JW z6ayP%ig(bx0GeGu3r#n+kOx!uCoBdSkNjo{PPDA)xj{GsIJF<`*~hjw%Sia12cO@JA)HFn`vHk{Ta(ELz!dt zf%3rgRjb#I0C*H?2b(e=eO3{6WlJAG@Np0YTo9>eW|>8Ckz@hpV~v>G+>lqWrN&D3 zkeuf2yN>&lCpnLg4Y!YzsIi=lML;wwTPe71mIpUy{(xpd7>tdJatA1s&N6>`#?=NT zBf(oWr=L->iZ)Wv!T|`YO)@IbMjioH7wIy8(*^DrJfDL7FlAsTq^ks=pHV&{9JRxz z0bZ1o-C?^G3roi<$(9754K~o+E3$YclZ_tU;V-WBYxrM;K^HwI@k4tYoRDD0Fvv;ASajX03&rFj zg)Z3D(2baWUjw!o^r$W3ZIq-~dn}(Relhf~rn5(d?;jF-8#CbihsOa=0EdPmv3vH|eMub1umB02`xvZ_d z->rIva@h-LA5^X`#AWEUNs1hx_W#fgIsb`^`1fuF`gG?1$9tzfP1vUi`=7l#?^A_+ zs<2NL_Mg7z^;1`U>Z(s&^?!EN5`J>=m4|aoAHuRh4VXtE?7Lnx-zVy5hsV5|PH^ z<>7F+)WyY$G9UD_vR%O?l@ALF3i>C5cw8T0GZpW+DQ@LlJo1vlVf5_%?AI%|xa|5n rZuzy~ObP-rC01)`M4*a-fDn~Q#)!;A2(49X70@8_ z5UmVFNSJ3x5UL0vM418vh{_~mfRKbFB>DDnz2Cie-GA;M-(Bneadj=i!IPYv-~R3W z?B{v*x%0EV&CbtNKS!ZZJF!3ga2AEylmI`=pKXEv*~fI=?_02n&}DpSCxy6kbf>MxhX zn2(&a3U4kbNG(k64c&#YW!gtE^3Q(p^SRYc2akXL?H_+!56KwjV!R^mCG0qKP!f&S zRMzZSs1c5kYcR&`0fXZKcFbSdGtQe(#}4~*c}ghM^7vP9mp8xs@4oo;WvRK+CNx}o#}D! zrMcg(_Uo%PG2M>(xwOD`zG{;B++}%WlrIwSlUkIp zqhFyC&d+Z=NUV%niTNS{xl=B+-9q^jR6^t+jc~i4O>gMoxXhpe0|T$MZAG=lKC;WM zrCcxgCtK+g)VKFg|Ce48lpoI{g+= zK5ebKe_mJVGnD2rhn`aAL!ywSh#l$HbM3dba9=|urE?fiI@#ZCwL zp+wf$x<+z_;124O1m*HO#&waRKK`Bk<7aP&55Us+q=}WCXy_v!-OcqN?ah2g5u*C+R$XYQP#-uOfo-! zla8>@Iy;M~Rzl7qO}f;;qe)5HclR3FONEOij6Hf6?(Z}kJ%p`t=TGNr55;gcOy`(om1kh1mK&!qgq z!UJ&d>T{*2v2gZOaZz3uQU||m-a0)V%VQ#!&WRZDn;ow5B~9k1*q|`(&yEq?`PR%TvvTu{5}`q^R@VFxNFJUY)WHe%q_HfAs> z+9z)9=xqIEGbAI~N;DeE{51f=izRI=;)wx5@thugTvNV$``p3Q1-e4ciy|k-O==-| zMe=%*Xxeq&**$gJ?gL(2g2;Ul9X{K;U%J$U52nk6r*kb#91BllPn&V%H^yz!XJ7|y> zTOlmSpFfep-oN?=v;ItZFiK4(6|rm$TOM-d!a8$7zau+J%;|Wb?Mo&^n2ub1VxnOi z5G@za@Y}W=ruLX}H|8n2aXanGF=(vjrW*doFaV*@#{SFs_je4k@|HdAmV++||jrg!=86P{>c5MvGbU3WfE_A73#tFlF_4tHA^KzSZXS*^cC(k;zu%hCy^Tm*p z8c}b4>CUw@Yl#tb{r;ua^~nb|rkp|jx=~U#o@Q=HTfcHkSu@XpFy}ZNR5xbi*PA~Y zGfx?Kl7v)P53F}>Y0Oe5=USUY;jm(T3vmVU{_FQtt zNd?!Qsda6foYI(8tsZYTr=yL8knZ%(z_tkEo(ON zd~vUs=Dv_*x%Bdz+xvPKWJz=}6Tb?J)yC4`h#IL>?~(iIXoY9T+9Jn{AQielF6GqW z$)9fDa}I--M2XEpOow6r`76mpD`n^&r!;-T8R?ofTpEEbDR{3Z{SUYLYi})D9*1>3 z{0>VZ%h!q;)_QGIyy=JadC2!RNAs`4mrt(sIk4iTi|PAq)4b;Tivwi!j94hs>k65u z2uF`sv5Hz&9TUwKk?l!7x7Xb&9V~gxp(L+2t-t76KNSV@j9Vpv&)P=1an)ybDLjhe zCf?_X-*p@~;^x8c=DUO~1<$U_?i3GSnebt#&Wxqpn#Eu_Z`s;GO-^{?yE{6Si?y6- zjDnAG3okWnUOtXwa!%}010<|hyqr(gVc7p;)H~hX$iM$D|Ban0M%vtsX|t-SG`9nc zq;(USWk~x@Gi}B$6w)zb7i*j=7q~Z|tbE7>Veu`GWDV;|7Fz1np&og9e9sfZiR&V+%sM{>>D~7(&61n+Fx8!!gye#k=ee>QqRQ1Bw8k5BRK9W-w+QZ?=`rX z0k|9|tRgd4Iy4n|xucb}gC$xCJg=eh%b7<*t^_wsr3J#zfT$t}kX6?mT9k;D;(*R{ zsq%rEVdIF_4pu8a2>47>PN_=*;0xWwDj2}Zk4+te?E|LQRUa~eG~4D0ImJI4K{VK< z-YQ?#KG-Vk2OwZsi!S=~lw>>qk#ow_d#WY})h)ta zvT4Gaa8`*h+gKY_< z*1!8BPRij@zmfi%B6XqR4U}svOetBZ1+g_J%%1R z+F}`xh$E0ChVd(RbE4ke$+V0N4sM(++yU7E!LmD(^y#!mhf74Mm>k1X?%>AKln>N+Fk}Xm8bwyN0aAYVFmDfeRL^FSSDX zOtYCDOJ4W8=Xd)kZgu-&-an?SJ~xXME}YIf^4*OsJD+-_d534^wIkFF5ZWBDvhvv$ zHEl+&tf`UUnj0BPRzm+Ytv957J6C)qp7=VgxJ)zMieCmhLuUOM8e!YP*L?XWk*klL z!hN~kMkbAz`Zcv1a$~+*FD8za&E_YDC${QY_Ok!srxsZL{VkxjyX}vDvw7>T?i*aeYPC$dEWWWV5(?*YLnXQl)$t@5ouxetXR~voq8BPUrb}=#e^pggqv+MiFxb?_ z(pgdn7OC|@n`8~xuO(M>0FR1@BAj^pn*NbkVd;+dm{P%ypP)(yDRp+8?6RxzV|{2f zYqCOq=0xM@wJ3ji1g^^4gkTEm*2#|_iF9;X{<+G##u}YsdLljpklXnLrPGioX4KGx zK^;lzRX`heXjnz1;#uMjjQossMkr*YndRk)(yE>=W#W3fc4tW$EeqkeM1_I?i3qg` zrOzK`1*Y?pGx`^5Gt1Vx_tM<5C0bPM*z#i#H$FX`e^z1AYB{*Pti%Za+R~7vAioUL zn1bZcwrx6-(4_{N%D3WGj$Hj&;Ki6Pqoa53#LEUq&?KO5awVbRz#Fm9N%?%T!b-~~ zsoTzM>>-fs8Dx7%z%VpE1VDShc{0l*&E2hOq0+W;!Fm}$$xR@{DJ1NH!%MZCVDWn! zj4Pr0ftHO=+i%-4O#+uFf0$pqdD)BfY|X=?{v{NnsO2}nTK5q*RvM)Ei ze^Druyx~}0i^%8Y{cltbU-{wI4i%DbUi5s;0&qEBNG7B;9B|0XA&ADzFw$Wbl4ROg z(b8Cn;d4{>8$uxm&&q=qGH7F%Y`IjAG*ImI_m6M;{Qdiv$dyBZ1?VuwONi@lZzFpu zmayr0+L@+7t`WoD>1(rnI(4Jh85S5b-hmG)6jQ(UdV%Q53#@gy9mnHl;m`#W^M<~! zU9@_ahH&{2?^}Hs2g^>MmbG(FbCNyMvUWPl_E1+QI(%0rI|rVGc4!jg4CouHk={5& zN+L=Jm`>+z2dfA4jVVJUoFmZM5nX8hCSh|gko?hW?K@|IDQXbbUgt!PM`s?oe0-!P zAiadz_%!DAtfReoLE{)*wum2KBvFc!)Gen$;Sjd$+Lr-T3a&{krY$ssjsV*vd&?o5GN}>bXC=bd~evZ}Ity5g0q!!?L2)5iQ+7#Z)@Zo_az_fL|k9-lQv^2UcfldZF4 z15_4K&R0RlMIl@icxxe1As@!mWtA&06ph`?iVlrz(A5@^TtZ~!g4aF0?L!Xnt0~yZ zwy7~BexW_)I@qk--|NRBI8#V!Bb?_n8Ep;ntTRDrb0s%kYQjO3YF`b`Sn&S+Mv@vj`%jUCewK7ke}1n3H!E)09!g zLN|4lTzdE?jfS?46?P+?{fSL-PP}Ax7Bsm5)Si`a$P>v7L>W9jal7_XfPSB<&M!wd zAzp~)?9c^S6!wHPhu|F)EPWo~QXh5dpt53~q?5|tGsDCY_0?$@le;u&**c>#{e~K@ z-a06<-oo!fPO_CX{w6pN4WTpBOf#+?8ig=whC!2_je7XG>7HE90;_wlzu#-^{cDOU zk@Eb@W2kkMYxUJL8aY-^B;rB0aED|jH>NoJ?ca)1QZpRYphPX==iUbA%E`oYdkiAY z)3UPq!-mntVzzBVijG51Kv_%eNCyuJRxov*WF9&_nNHvEK46#i5Yj_w^OngB&!lK) zsvSqw2KDLJsMf8&&jT8kzxd>9)UnI|hnGvbjiT{beid1!hi_haA+`QT+F_k}&Cs^F zb=6-YxiS2@gr@NM!393>wZMw!d(1bM+l_%eRtIq+Qbq2#eX$D_nHXX`LWi`Hj=qy= z^jH`p7dXBxF7XI^jX(rW?>+hQ0Z(*o{r&~~rt;2PYQY)Mrl&weGVZAuUq{LbSRl)U zeGyEgpqgOtX^>1qNTt;Jp_8}$AZGeE%#29!3A=a`3rO;Y3q{*)a;m%-Ya{zI4gS9}UNdO8z%FJejnuFT13 zfH*~Nb-}Y-Ix!78oD&Bqx@cMOJXx^;J`PlKsGzneFXm|~c@ef~ zdb0hHj&AG*@~ttkDL1$8onEM7_1It}uOaWW+HdV-fXc{o#t~|Ug-&L|DNX*LcMZDk z=;UQU(po{ScuY0-WSQvV#9hut*WR?QEesoL{dn)CVuPh`@^XaN3QWQlM{0U&0@z&z=^m~v zi{cq_*?2tDgbjf|huv!yCX1a~i&KSO4k!#cR(#9gw1dCZ;Bujn^Y*PXPq! zf>JNup^1*W*@2K*Z`cdUI1NOO69zr?&=D?JU=+WxJ{L6cBC!PhqWp6ELHDKz3PPPd zX3^DN9M6s<%D5@0fl~!%i}!(*Fu;++>YL6MpF0SVqayce1TKqHG|jCoCnH69BByl0 zycrZ>Nu8Pb+uwFStrN@*lt@-)(4vMp3w;&oYH|Yzm2-^|i>_c(;k;pwbk(_#EC+!= z2Ab;FiRi+SfNZ7|pw+2y{P|v7bDO8KCb}8mTFsemfPBz=;-2x~)g@O?qT6aSjgaIT zisLQ;j+X!}t8esRQ{8oMY*h|^O)H({S2Tv$G3H1-m%cGf}z63sF8f$BasH$QI->|@Rp5{5QcsjWM9+a%f^A(Lf&GUgp~ zaXAZ{qL6VFcBFmb{bw@GLw%MYN7v@rhG4tA1n1bzN;owzI5-U+Xh0tHg18w=uFDjE z<=tJwLb&+`&_2fC7VHDEjV0L{G~^G*@TZx!MfSPZ;WnnAVtSA*)9zG`U%r9tC$rYg z**RS&FX}%)YcY0NF5K51C~HaU`LDFM)}hpt;myDW0rRg$B8EQ5Uf@TLq?-`XPG(eu zh3Lj%;=%rLnXSLM@`30x~uW21LA|1h*fH2G-^C{?%hFNh{gP2w{r|;2`Zw z+^#9Vzt6#5w6O?9Lv*c*k=IW& z;4DRtAH%2W=rVm!-{zC|Pmr{M`S@0jDtFqM4r>EycbpOx?B~c|+Mr45k)wxQgvo3u z%*v~;{{-ciKOBEL=jdT9BKJ!Lp-2$0DF>ziUd{-na?%dzOy}pD`ys})*D#|CP$nD@ zEKACxV-Op6IvYR!uELPF+^)=e^Xvw9B?O3vP`mT;ZS^#{Oj-m6He$mg0%8VGi%Mm$ z?b8HJ32Nxr+}zyL%V%*oGQ#GVwXxu;z8d?xxH6cdUUT z>M&^O*)&aH@@3S%`pf4B8IeOhdDfO7Nr$g9^!YapR5$~h~RA4SY;T8&-DZ6DU!6WfGKAm zwAf|YSil(vKNUd~aE>+)d!^Wsv~Bi<{D2TItChcZBZc7smaTRt*z`5M9j@bMw3S4? z3+0yz7#>k?Zz6$46s)`zzb*8NeHwA}e9+8|BRVB~aAc1_?p-N#Am<@2YG-9t890BF z2+avNB0PYn-(z((ufMyCC4m;Hj&TF<@9JMm~Ji&EZ#v=;CTdXRBT4pA;Hi5mr1_#04nNUL52 z-FO%&=ahVj(cfLwVI1i~mBWw88o8kO%O#tyfTV~94~ajS;^4&n%o@7VdHJp8W`-d> zE|rmFKAnM>w8P+hI5*`UnEpE_?q4%r;57{-&#=h!wp9?s2D=ZOeu?O35U|srwHWS^ zW2u_5_cp`e%JDlL;wztf;&!Xyn?rn9dAXU!zE1eqmFIgyK_L}VsZ@#W@xB-qMiCd@ zQkWi?od(&~{qIt*3s@us=~Ju~?u}uch@}oj)Ooy{d>-Z67bE&=d2R!2mY+z7YXT_T zgS-O_PrsW2#Aw$3P|5I#0>qzo4UsVxT7s}Ja$JmB9x zNROh&%PJve(;!l?*``5H@j0yP^lfG>z7t4=+SxG=c8v4})dg`(VTR=-jQ)+ze$ED`x>u+wPXd}cDQ8*C7BII}wv10mwydd)(gyTm5rJalY z!VCr|A4YT&GX(`%2A!+O2n}XYJ!x*inZVgiu?Q19$F_vN-P;l?YL-jpk>o`LlmE-S z@Ie=31gDA-{_ip4>9kCeY+bGJkZoMaVBJ|aw`?GIPIZxB+7&=C1=Kh!+e6f%2F^Qs z(`6^7zx*c(rOZd31rXXIUJW>3$mGvILcRI`X!J-b_yI`iB7OPM_cvCvxf_Lz&9ika z0CQ6awFKt=JHi`51N?|I>lAy7?_h8dP$lx)p>AduvUv>;hM`Rar+^GCIyhXuCjh;JdDbs%Pes;zDGVC7kdLWrkB z$fQtsp~#!_ z*3{DhECslUImjsC#O+;nAmIAwLdb^Z4=qv^fB3Y`3e3oa_Jh!^G)|4KzB zEeN=5Q473}jC-M{AU3dIs|<9DqxDy{BFocp(W{wxC6w6If*jVbh?WZ|Ugnlyu~v;+Cs_L=EPK4`$9#8CyJvvYIen?P|M_ zSM==0R$rh8ALevGWPD!#c@i0ev~>_GkeFEENezI=?q$2|C01|Ol|BNBc@!jDM!5eYvc;YTF={}2f?!gsZfj5O-G zyK*g_D4{N;rWsHif`Y~@@V>d5%i$4Gm(}Ta;ToTzP`toS(sMsf?Y~cXcI-r4(^5Vt zpD5ol{S0!Fy4i)9#p>gzh*Jl5W}4xJ7Rp;t38}FqH3#9@a1&%4;g|S*i*Td_9{RSO zNe+W)zj|+>9cOSz4|S{pzL-VYf4Az=v;XCp@;wPycnrKv&$apxo+kDITf;S=3WYlP z6t2(|vDjNNv1Rtv<+0=q6Tbn}C#XxZ8H@k!WAgv=IeRhP`K{+e@wLvIDENmxY5xQD I_@!U}6Vnj=vH$=8 From 210423605106ccb4fbb9fec708722d89117c36fd Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 16:28:39 +0000 Subject: [PATCH 35/53] Update UI snapshots for `chromium` (1) --- ...funnel-historical-trends-insight--dark.png | Bin 14543 -> 12643 bytes ...unnel-historical-trends-insight--light.png | Bin 14301 -> 12357 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png index f427261f0c8010f06b2182d23f21ea35f32b3b67..a820c399ecbf23f0a477f1d6c54d82101a2b8272 100644 GIT binary patch literal 12643 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 F{{zP_KF9z7 diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--light.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--light.png index fa79b1b313e1daf2ac05ee5cadcd1a1f37c26b24..1276a2564f958e5581ebd905eed12aa2877600ef 100644 GIT binary patch literal 12357 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 I_@!U}6Vnj=vH$=8 literal 14301 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 rZu Date: Wed, 12 Jun 2024 16:39:17 +0000 Subject: [PATCH 36/53] Update UI snapshots for `chromium` (1) --- ...funnel-historical-trends-insight--dark.png | Bin 12643 -> 14543 bytes ...unnel-historical-trends-insight--light.png | Bin 12357 -> 14301 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png b/frontend/__snapshots__/exporter-exporter--funnel-historical-trends-insight--dark.png index a820c399ecbf23f0a477f1d6c54d82101a2b8272..f427261f0c8010f06b2182d23f21ea35f32b3b67 100644 GIT binary patch literal 14543 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 F{{zP_KF9z7 literal 12643 zcmeHuSy)qNyLQl4S_k;twpwJWW%`tvHHnA;EJaB)hzHw19jf>TM&IfZxICg5(NA1 zn+w+|qG{~?0N$TlAMigf{Cf6?$)!(!zp?-6!#790?zX@BFE9HwAG=ul5#v%Bvm4>% zZIky!)Os&uQE+8S&xA}zEF5xvow_i(!A}`^>hIhj%18d>ZL-7u>Bez+)D9p z+;So4?g5>)2}vE>3j)2rX#&y!?Kk@0p8TgN2auCZJ`;_|{H3M9nDO(Wdq7pcx3ugG zj}8oMEZUv-_aBPujc)=8hsz_$6@69ZFi}HH%#|xw=-=-JeO6vkacX2_Bu2eNLqajO z%sVEJ=h%C(#kbg{^wFaeLkMrSaJ>GtA?UOn@Jtu*+Ae-)!~TMazAHK|k4L`>YKj?h z2?z)%ut7!FAN&M#|$KV<7*$$xh1Edkmsk;;;i?0nSwOl z8wqdSDdHcw$@VK6tv*^XDyi;fM0VE3oNK%yRLI{}2w9DvSOjdQL2lqOp(_jDQ(G5H zL)Vv(M&?6sqHJU;wKqP4iTG2XzIj(y8c1*1nXtFFx3Fc`m0HK>VW-hpDsGEml3C(B zN(k;1zGI-6tG90E80W*U1`BdxOplCA5~mfHvlrZesQ)`=h-*|Ct`U%DJ^XpY;frG8HjfcjFPr;yu%42Q(RI2 zjI6?b7Z7s6B#0|j-d!#*GlaEbGW^c5Db99A5h>1`2)u_?yS!(ZW1UjCqqy21kRLtt z=S{M)uGSZn;QHvGQuM-GcfUgNcbHyam2V)lFudy}c3uW6X_eEs@| zu9*KefV3deA9<|5eU`=@+IXE2Is58PFC>#cTIMG{+mP_KO#0Pibk;PqhzjBKtbXu| z9$w(sU4Q#R$ecu=WW1m#`EQ@X$jfxrNm$)To<}{u5OOLjKk84}L_|HlYWn-8A)|!TEbbU4OU3`jNEVC5Y z>rG>qBvs8TE{j8D*pP;&JrL;(Yf5dJ&9P^adfDhQZ?IWf?go}ui|V`YLFc_XvU)ak zS%sLKW52(!If9a8c5~P(+3Bq5dn=Xw+Dx^N#V#LDn)B$_{Y8?w;`6}CCO=}U*%(%q zsgIh^=j&bEeRqs?52{@JwQX~BvVW(=V)E?gHJCKLhsbMM4 zxS*Hrvxyi%81Z#(FNE;nnsN8XB!-iJnQ!Pyt$jW{y!GXfo>U3!n9^$vMf(bfZE! zLE<}ySsrcdUfviZsfsf8ZS7%q+&~^#Y#Q#`51&z`nljcN-GV>C zc|Z8Nb}-7r!J$5Bn8TtNk3SRd!!1`g`v(N%c4)gg6~)z^Yr%*Lug%T$J-e7SzoV;~ zxf1Lu+E`4DF4G@+f)cnXg!K#obyu>zYF0ORLpdH(<`wP!z&`+#~857iRnYm{JalxBqMdVFmCQV@L z+jD*vN&lMbXgdG#d)>sl-2^H0fyHW2$9hG1L9VN~&3sqPN^IgLO!BDARVQ2Nl~H`- z>!TjFSKgcAX77~crA**r92bUKZRstH$*7y|?YbWis@DjLz&W(zNw&)yOSymE)Qm3C zP@rU7de3~fxJ|HTeP!WZzyEZFi?+Ly5JFJ34YkL-bm^yt7ik(C&tnVQB4ZI8{x6!x z6y+P=RN1}giJd#a?UVRR`zLFNCqn5^bM1EY&ru7|cbHaxFVwwS^ zge4PAxq_FP##1UO*p-3|I(7;nh72(kl+I%j$=zp<-7p^se_@9hy*%|CY?m-ql&&W# zfFLn04T*4^TVlxo6@t&^wb?|+84xyDi(FF2Yvuq@o}4lP9}0VP;DV<1gmL_2Q}>Hs zbXkI^jRIXSO}%GuchXyB2DJzQSiWv4wvtc9i`gdm;n``1MEmNH=AM*g`YsiY{ifIj z-E&6wP}c*SNOLgXK7idg>V34OwEpDshOnM(20N2MB-DET%oPLiQ84nvW2S(SQi^GH ziaaAf8H!=G3~mIN`Sy?8gtLi$8$Aspy4>Gu=U!B#s!-j>*gu$h7Z{!a+&^KZWlk)k z8D(7=t;H<9bM7?6Caa4sWuyKGYT<;Y2`swrLAKd#Xn`T^`nM*^2)(uQR&5L9wzW4D zq#kxACM|U_9sUDZ*vK(}kz18GY^KvX61Sb*NoHtljfN&7#yYYte48lW{#0jc)d;t= zh#=p(v_Vc+QOvE{pRIFm9g|vt{a<>8SL-i~fUPj&Nj!EL}Zfbxf+ z5R=p?3CJHjP8p4Y5lsMj$4Vs^uu!}aPAOg4!Agyb39K->;bk}bB!7sdx;-AfTy4A3 z53cWigZg#p^+|IQ+&V7e9C8(UdjxHe}t&s8zNu)67{&@#LR2Lf{tFoKoC-~DR{of%)jXB0SW_}S%%Z?*?p$B0AoLhgf*T)t5b)qgt zT|wh)jQz{J`|H{LpSG0JhujV*N17f=@x>bM`%U{63XdWq$Tmh=Y>XnBN3}@{D6Mw6 z7D6|Wr)Z_N1=01~T=dO+Yo;{XfUWJLjNG%PW{1hAZx4?IMCEGflZ~OyYrhQ-56{>2 z9wU`s@bBN1O#`XyjHkd>>dnm}$|b{ng}HmTxM0}&YDX6TnGur$6iGQBOX?CePu)`^ zg=1Q-P9(-^O#wtYFb!DGx7jK@={1l;y36FJ{MIu3!m z0OW9rBeCpli+75A(|6YZ;v$`v{>;;Q4{Tmt8x1Jp=hnA23>KUCCOR_tqj5UC@-kl@ zQ|U{|tK65_L(HNVBOOUb;kK&ypD~8#bH_IiIj@6Zg3LqRdlF5y(^ZNXa@Ez3qF1t+ zxNJw@BigoSe-FcrG~zZJv(;Iq2aV@UU-jp`=>?#;Kn&*Ql`xgOs#f2chWJTG(vAe4 zv{TON+eb(d+=bJ~#<-mV1ZrxH+lw^vv_u~~VBqZ}PlpH3f42J4Q)4&bYXNrT)t#JE zYx%}Oa6Ex1OQ$`F>dn*n`XRhz?{`_+q`LLZUTYQ^aQeqcj+OXYWjiad5EM4C`_=>& zA0Mwa;S;I{{JKt#87l{+yiUw114rrg7Ahkw;tQnHs-H`i58Fvw7`Ipm00l5aTO|9% z%{(dOpqV%2ft~7VLXH4F>KMD^Vu=jytsejxg3iWP>-x$r|ijx^HCle=-}aw~4%mcRewa*0L;eD0WPcc`z>!8{0# zQs9rzwLQZtGHjgZpBWuh7ujZ@p3syFQu&FM;?w| zqygt$>^OnVwnSSTpza~g4|X2K8NM*dK*BgS19sPDANO#kThRRyHtU{o%t(cc zzAL?MSgiQE`T_^E2jn9e_E&Y?%Vb^In9}th^%a>}^5x#vy*qVrJzP!SV zsE_XNIiYFzAcsi2#JtwGrqeRAm0OadyEXl#eo(=YP|3=n1?CG^zqVr?X>3L^a&si8 zSBo}7UzaOslV+BoP2T*O>0S8&>kF6GAJd8-{8AKm-vPhTHBQ#e6bn=hGPBAG1@>q{dNb{+z%qx1ogl;0+o7D3o-Y={jgw!E!XPQeg?0-Cf@%dMCKrA#ccy35N{rGu^E zYQmh0JzNfd*?-rtG?#z;H0a^t(vZvMAxlYIhj>UjU1FO&;xAcsg;sedI>%$ILZpp) zYf~=HCGfg8zsU?gFuvzjP*C0;%xk_$D}#r0o-6<0FshrDD$40}`fq^75#YNc%c>VO zg$ic9tk@pfkhWLY7Y_tg^=vP6<&yV3~=I-FC+2a!anl zl6Lh~T|;cQBDSa*yR@upn>7D)3ai>%U>~Dwg{mV^$00VkX(Be=xIFc@g@7PMl>2HYRqPcm72PQvtuF1 z>H+{}Lf}rby=qcs>O-YeR8$C^rJrqeMNK_izxXr+U(7VW{{)g!^#K*6@qVx4f#UDTVc5tyVg+E*r5#? zey_m6K{op#?Fm-AsrH=dt+B*AiJ{VnWRb1ey`U>o{f@^$@AnRUC4tUXm(qQfT9i(H z(A2B@wBu>FKVB(~2lkLSo|x*6=T0zCm4l1S7va?&;HN$GA``fK{fYQclj0UfMTvbY zMnn#*4*A^h2B0-LFRFY8bXYDX;jNhNEI+qLw(1})qhij~zk#E!ee^Go`>z1m&q3q+ zRrkw3JrdEseFsG}6wA6>k`tU&bKI5d?eQ~|h~lOI^!Q`8yjP`5K1ebt2zQ0<*W3{2 z2NbSunap+ibpZwA-Cg9y;3y!?r7B-2>Ics#)J%&Lp<95Yw?0bR-x3V3)X4in$YulTM#xtnBDQg&(TE-o4C=r2V)@ zb>?`HRHZmsrgRa&uMVa`^xRE>Qb$4b+&@|17@y*T5k5cz054G=>kW`C*G>cJv^M@q zZ*tc~c+bvqO+IOAvql^L@BSY5VA+^iDuwWc>dbdXp9C-ZYS7SIIN5NMYt;MFP<~B* z7}a>3(9DkRIJ8R~^9U_H=Gk_CQoQZCw6x?dd}MF_*EdSt0K$$i=COU+lD$J0s?MC9 z#HPAcCu=zQ0mO2^UFw(HxfeYCe0}qVQjw&@A)>Y;wdVnesk<5s&o|P7CTB;*)%TYr zNisO|s~7IOgo2dZbThWA3-enlb%#{9Xn~JN;GIut+=WB<`|NuqIIaJ!8sXC zj)2N8M(C_1Q&Uras;Cqg+ABz`ZJhdwfj%ZNq$y5D%~RwY@#|7A2f=dB$*AJg<*}Z+ z(UAI13L4;6J*Z{+P^C_D^3b^1R(Iz`n#IZ{YlmkYK&6!d>_|4K%`C#J2nZ^Pzcz(s zhdVDK%t|9WGc)p9WG%k z-ma`;&)_Z4OawL67#u;0+L}R1U(>}L<_=UggUw=>bgcB}WNG)RE9^v5d~4V)-FdY6 zn47y0o@b?H4rer{xB4bx)pjx<#G z{Nnf34H^$_DSHZ~JT=T(GPmybbtSsQPc*>7!wHVU)^B`w#_z}mnlr2WpbtqbIZuvy z2XGR#)V%ND0u8EItNK2o1etHeSlp>xm+h7MNmr)N``g*I<7;R%%Jpx3l{|KiF^MH> zGVVTAncNj!bcmiR#!My@8+*yU8c+5zRllT>jcME8v6Dp;Ca^jgzbG)z=5kjwj10hK zQ`nok`uUtQnIYNzE#C@{>^{CvNLuPv<<}5-T^mA1Ai!_xqq7{6UVTX8S8-J-j5o}O zY8eDCZo~tOuK*CyUo#Up^zbA_BdM3UD=ZiZ3bm{Uo&uB)nMkLMC(+dZv7iPZKMZAy zOfoV$5;d2xZyw8XhQN21R2FqpH=(4{%&lCbAts@Uh;bZfU%gl7M)CF=4N~k zCj2K9efecHn_3Jo=D3Zims$A@R=ur|JO_FP`1m~*h2-ma{4EqPtFL&5*7vc1R{u)0 z$NbWhLobe6hRi=GVFlvc3R}O z0G%JGHAxtGpMg%pVjyny&x`4818bf7#SWtjRGY}osIu^_z85~tJu|xo_tmu<_ z+o1)WY0zx&o4Y>bIF`r}M)o5nDbxle&+|hQ;6fMssPPU1qH#Tf&A3VegxmAs;nNHM z9=O*JE^>_@ux`@iE5AyunM{^WV}c)voBf12S-b892thFhz%Qa6WZl}sN8<<&S0w)pmk0$wd%mjKL zCL*QbIgh*l69%=Dj|+e>ux{Tt>)t2=s8bnbXBm(;o2+`4Onui>#(=I-VS$*j{>@c&E$B=Z5dvEmu)-)FTJFyVmqjhh2(mG@hDEa?sUxbu*jCZ36?{wGq1;#*R*zM0peZ4 z&aS1JoWaOkg;MCY-bM08qTCkE02Zr+VLIs{u%jTKv z?i?IWFaLh~&4X*X0-$@)+?5*cf=$?HNw+|32IMeE8l+8g&r&#xxj0&lY@*>~ z=SL@3e(><MyX&hD?;1i+z>-9pVE+3+&BszR4!iWGW)!e|-|mY` znFAKW27h99KwxlG?GPa96n+E1-QN#e^MK{T_;pA1Sb(wTBOCnkc)MnDCzeXI7)(-Z zu1jdjf5X;STE+Zd52y;El+8}w@m;qZQ=bt2GG@`u>=S%3MB3X9Ye=8hSmFVBJOm2dqs+aM#&(Xm%qS~r!)e|uT^2nn< zv1`+v^$+!5d~)DL)by{UtzcHasczzZwSoxU>4xdp%sxpatlVlmQ0Rh=4TKXKH-0L? z^B4|-h<`I50{O}tF#EjxfK|`QGAr5f`(;$3sgY;KfD0fmS<%K%dZZ;#jnm~n60LiQ z?|(^4l7q7bOm(%N%5OYZDK!BFIHeSTev-x-gMvOtz#5>GSzmLO$lrTH!)F`n2jo6l z&cZIYEpBH%gMtGR`21Xh-|^$e&jTRJF@E9#H8lQ_|L?H%zIt|)fW4A?2n@(1fQb>< zac6a_ib;^y;+D!0>tfZ^v#OB0&sLM!N7QIrR8}zJV<7AaVGV^ z?M?tU2g_1k{&uH#v&Cl|+h5D{8K)mWuAt+s`rB39;`M}<K&H3gf@XkQf|MJek;jB9s){+tViTwb8>0!RiL;U45`smV47Ye8MMuYp#RV z2lO6?fa|F#yYY5J`EPBjv%gPCU))5Eey~H)J%a~_LM%fXy2{IFwPBA2KilfYBWS6s zyO$#@giXs_nY$}?Xts7AZA6O;;OU&12lH71Shtm)sWcQ5cev{ za&KYm6W2Y@E&Lz~Z^y~xtAI+ZF^*(I-qFJ+)q;6?pR`P(B8!@)UBX+FyQfucmUhv7 zU9Do@;LA*IF%E;7SR7geT2?D(@$C% zXZ0d$GOAv616_xCI%%eT3a~E`%O6+Ye#ek3$ppn<1i!Da2Tc_etMWhQyP5$#k4Uw{ zxhAqs+C>j|cQW#I6Q)iUX4gMJ?gSrcL`<^aFV1tz&io($d>(v{o0_ zE_$oDwNDIKoV0=?4P?5;(bVE`W@uv9-2yv1^b#P74%@q2I@JHc2>a1$C|CB)ic$(G zu!%fV%6>piw_@50D0t;p63F)34(F}s;(0(pj@lBAtEEfX1eh6I5CMk@9F^*R(af&i zeI&j8L}L3UW}-Qf2EYm4%XF*m6L6=xB*8@>KI8{*K!X+NreZ>nxO{?2p*^5VSvj0h z?q3#=`BvTGcyuwH^}DhonpTx6%rS8l1+n_k9PR@^;zP_nhRHgDNqr8SnP*+8fR6AR z1wDY%agI$+*$OiU8Widr-KEsj4`jF};@-?$n0wP+z}CNhC4tFnQu{(VJ)uBA#h>81 ze&__m)}SCh9uTYRxXQG7HA=wF5Wv+Hl@cJA@LIW08CwObAB8_^8*|z0>^7i6)khC!mK~(FOLLer(e$c($RXWOb6sCSW;!To+m{rft02>!Y`UELtD8Ae76bybjeK*rj}q*Ut9hyh2<=SX?+I!OLpRdRs=M|8#VFSs*qvMZ)`-{FULOV~2n6ab_q#@~e6@C3!?H2u zgyB7is~t2omNMM>S9+v+Lyp|Yq5|%NSQ?H2ygy5HSj}2X_)dGavs*v?2z2A~|Me`( z|9S!cX}trB6HmNQ7W+Uqv`^Q6^nUx(BZZMRAdrOzO7A*q{}+GL=*ZtVh4Rl*f7d+E zKbHK*l7HWH*gxL%k2n3}P5;!(zir&~pM>&HLis15{C}2E%=K=d(VKvH5lbBefu4N_ zQ1|l6%FqwIs;i*U(E(rJ=6-E}+&rnI(|zOPMfRHqk|Lb!`r~T>5~BS^#RCq{*qSZ<0voi7kmHjXg{C> z*&#=(qC*qvXWGvJL;ef8Nw8-RgOoInh3~T zD@bLEhDoLbMZqx27$783Ac>5DFosOuvuW?TYu&%@J>U8My1HB|3CWvxzk5H=Z`yBe z|72^m>5J`O$jQlV!kjpIMow-GJpF8X-CB5f+tGI(9#&z`Sp6th+@?G#C$~!ubM%OP zM8*U&>Y=0eBbltdWxw*-jrRZe^2qfsr+-cJJrvUPFj@u&T(zC@2-XvlpA4~JiVei*&{ z{-NAD^tfh=96Ip#^PlZPFaL2$?sIsE`(=F`dij5QaG*=b#SMy-%r|!wpA;AG+q7wZ zZ>1mlg6~~ILv1em`*%IEY`pgI-P1Sa=gQs}39ZjvuneXMBl8OwUbXYad2Wmazpf|c zyA3v=gJfT`Vk-7ovz#;51h=(!YPUv?hX&oBEI%O^J=;p}Dh?D~o2{;e<@oIQKZY$Z7Zga-XE%W9E#p2m=mtAs{%*4`n zqyI!l*Rcy1?{6YUT-90^7aAJsM=zHcE1(&WTdEG59LOu4$_!<-8Ozt*x)rG)Mt_gn z+WW*NaQpT#I?iNVd1dnAdaeJhS^IBHxl3iXY`G(voAZP7(!#56lJ_cA+9YRC-N>b$ zH@!m>qYdWqwKJ=??=DJOS>|_5W`?!KTVw-?-$UH2yy*p(Eh|OyKKu2H(bWP@SDr8Jk8j#PFH~K8&HnCua`CeXCQUKN zvv;rRyYKx12cr8{U(&nq`k&vhOr%T0x|iPl-XwT=L!S3y_@2KYmBZd~;KI?!`LU$4 zc4qoLJv~~5B~_e)?Tw0*>6;Ve=6waqR@M`uv2r8--a_$oyhULlyTrF$qghe==ieB? zRI_%|*;C2d&V&R*)*;bkg-1CvjG@6U*^}ZLLbFh2r$ze+=S{*U9!e!5-tRXypG?{3 zmR4p*6}AQ+3>tiq5z_QSe@OFQqB>PF8LaEm@^Ir0gF>=hYriin=l88}g&}hl8k}3I z^B6|h&UEbp)y1P*W#=19Wo<9i9c+?oMJ+~t#GJ^kc8bpMSohPjTPeJW*PC}5d%dr_ zZp3|fQBX#T*{iRw&uBZ!Lm%prW#!Kdj>eYNo)D%@F zRq#5c`owXI95E-H&k}a$nLFT^kF65*Sq*ceUAmETAC<4vt@1C6_8#u@BHHvuDDRz| zX;if%*gH6I;EBh#a_;bbsm7s~7Y4EIb9}bNA~W10Rx<9vyQ|xFVsVN|RM*VBc81_J z_pu|@Akc*~Kc-D(4ZXR8mCV!gU{JDY-P)+dHmQi8jhp3q!^bMcf@W-kl5fu0Jlg_h zo*jO>YyPyP5Rd8ZX=b&r>wEWX$ZVbBUY7?m!;QY; zr5T)5$it52rj&mS@9pj7GQ-)e&phh|1s;<8V-;=$$8Y3JLdPELE${ozdF#!AQs?Rq z%$P-{(*E;@m*+-H9Gg>At&$}NWBN2~GakCvM&>?wqOnEOw&jTY&TcQEhisXyPW%1H zjZP|FHaFIzrR&=k@b#ei!t=!47?p_k*EL8^zQXxfnTYK>+L_yrmq}zFe9Z;-6Lat~ zDTc7gpl=u56>Fn{8@WGG(rykD)0S!Cn;o-2%M53wVu%{vL$7Z?C6U^{jaMc&h&IBc z?A{hTv>Eq-v?Zi@>D#15>D*wL(G!si8v zpN(WzCVBJCv9<&DJvos?OUI?G(2j^Q&hZ_A4~TZ=Mi{~JILYY`ws(qKaxh-RupJP7 zS(-0*$geXeTEt-65=w*F=4_dCksh%lMzqlCPpVC3i@AnIlDRH=gfOb{zB(@hYirPV z{)WDawKY!2NtqohAaUbXZ$6Q35Eue&<=b#qsXw5kbGxZ7<8Eol7MXCip zHf-=}qlQRyWKtJqrgW|KRw^+#vri4vwJw4^%NWU3RcK9SNA0?Ed@41!i)Wv#e^)7e zSwg~0Zl>BYmmU+tr7G*jJ(eBr$k!d;5nOY%&4gdmG`=v&;QeuD-${b$%sjp#wI>DwS_D?k_nw2b&)BGRP(6FOJC8hGTXt8ZSW~yRV(?(LbS{tRRYY1J%%;Rp z=5lp7OlqHXuaiKD~;=NL)BgAb=<65M<%+F&{@vCKPZ0NsMTz~ z-1%DD6rX)f%(8TzW4e*&NO%hd$+I_@n3mtYxpFG_t7lX54ZAS}=mCS(Yd2oHe_)?m z)lj_^c|yDHIAA+&IKfbG+b;UM;f4f%GD`<9Y`(i)e^13=i1p>mmj$Y_8P&@7ziimk z988rg+*LL@NL}tBk-caHcupnFl1gk zd(Uj4PurQCLldD@fSGrwbQ^RFXC_%Hn3d8bn}cg+8fsu!F@!E#lcJtAb&m7@cn@fe zuy&MLz4(Q98O)3Gv-3wdp~LOX?AOmblFtRD0;m`!nlFDmN%ajypu%U>(wEPSXp45A zdvWE1G4rPo7#oIw*0d5xi{Skx8W+wCb>g;Vro)-_e6w&q3&2(|G$q?)qx_#}b{I=^qJtMsF&NM5Qpi-I(P?KDD!CnZ=I*JsH<~;pMBb7LU>+ z_m+b4qGNtujGh@z)N}J3DAe9w>1*sdeI?(3{et$#EoZ8=q%=D(EPk9gkm$(DHpPXM z4_qz~FEv^Obv&mmj}@SD4q@SVsA`4%?Xk()Q9pfz_R084?YR9A8!$0sz%S1mO2aNW zbB5lxKB#K+iC6#n!_YfzSy5A|+T*L3)#2@|D8AeJ7=!}wEOTdA-?uosyMwTLaec8L zm{Qo{Yfc;SqxGg0TjnngVkM@rpkGm?dylC+-UPRi`%FJuPzb-IlOiNfuOIEU1!`ym7nU_a#29CzCU~yO-W~ciCCQB-lM%-X-b!ybi$K zbf-yJ%hJp+l2QSs9mj>8DU=6CZmcc3CV{1o7B+jd?M`teH#Fzjq&q(CN?_MAg77kV zeJr=-3G zz0+VVP3|b_*n+YP>GO;)d#l4PbS^mc}T z{(v_AUq_D1+in{?ghNUL zXXcr~#@{(8n09+P_xS9{t$!PT#&DipGFOzBrd`0Adsf;%7Nuku6urA!fBB70?ET?; zCP76FeUB{TwcTqDt(M>H%9*Upid`OUqPf!DqXLQYVHq(C{lb?DvA?M!@Fz=`$9b@x zEzZ7~Ne3=A*!MDETC^&@@;6<5rSF-iO`F^xw6)-!CEi2>)-)(&L*<$cTfIP-+7Tuw zqNz%mRD_-Du;Sg?5p;rH?4}z&#pXZy*~23n3|TIPVy>AT9kSU%JUszbK_m0b^;nA2 zpvEw~w#*XH+!@Q%~68CvvMC~t~F z)U+Xx-=C%d^JtJUF)?KACMK9u8d>yNxj%iMg{Z&%VD!@TAoz|{eSb#^kemi4D_TGU za@v78Q~6!V40*7uY_`orvpMVf6@X5AmTaDccT*ZJuAWK@Ebo6J$gGc7Xje-#C4kr( z0XY`U`Fg1L#ER3r#M!Fjl93rcxL;AZfA0E|F5cqXbBd}D${Qu7`X)7+pHcKoLhWMJ z${4Q6`Sa=f{2wl!C(_RaJU_N}v+~1S>lE(NaAJEX-EEOFVFkXIL!%%Ev3Aq;2e8sU z?|wgmn|Y&1R9EzfzUtGSmHDAQ-uKn7>-&NAL*{#&&~pr-*sa=e-NpH{ffoIM3gcL{e`%Z<%hS57B0TSDmd&_i~P};CgrTTXrqg+k!dt1 zQ)Yf1%Tm5S5Ez@5KkpQ?p#s{|2L_i^GJDTLy5xHG%{TmJ3i2;T!*_Mh02|SWnmiCC z)_`62p`JJd>wUEA@+!zWaGsjfT)^y ziHC;%+4OL`jH)lp!>vQ%OC2@;4c|W3)6a$y)*t5@-Y_ei;;FW-k(CTeL@d{gH@*rs zBAFPQ>>6XgUBk@7xpXdJeRJFAHQ$A9v7>dau`7Be0r!>*V-rl@g;n(du2(XPymm`L zH4BJOBSHqyO6xE2>)~>Ie1Hm1mdT6qzj= zS`vBdb7a*n zOeYjXM$}X#ygHHtEFOsJT|ASBZvhS6`NSrDZk(=z{5vu5RJOSp5=G$lGH>0wb!~D$ z-#TSqD_*vU*TitH=M~+KUuo6S5Z^2db3=<7OG1uYD`7CYtyC=RI955g$lyFrsD4sk zgToN==NYoSpGhbF)H9ur9>_5Glbn#>W_hN1KJo10YdX>1_X4HzmE~baZ=#I>&043{ zzEZ}d=2ul!UE{ONu)H>#iXdhPH`VuvW&CF3f@fQF+jH{s_t=@v99^rRGI+O0-_F|f z^Vdo%Ln<1yGS;(?bw9)2$8%+Bgo~rAwOvgQSZDv4uYGQrJ5)0}PRf8#p-+Z7^ znRtD*eECv%8C>LFsZ{BiyS$5etGods=-@3Zt&!gek{ z+~U~ChXy#@e0kPW;rG)huc;}1`jqCA9+<3l@6dN@$M2p944jNNDCZh4^j*}&OU2iw z292!1hR2&_g!ph0 z5G-=QEH;6CPY2gGRj)E|nHejZOg-p*a7Q1ns0pk3Q6^ zypq3cvrthcyC*Ja-6ie1&=d`Mr^06VRU zE4gW~CZ#lkDQK{XGP*nRBLGybj^_fCf|ym{ zJ;P|A0-c3w{KAqpl!0{?IFY)0dK}CbTZ3bD-Kwr(pqXcM>H)`Z*S2ozBUL2?Egn-mizM-!J|KBczM~e z#`4Nn4kHPS6h(Qtft`iqTAT5BVN0s6rcBD0Woh40wNk!%6m-{F@cx=v5#M=81u0HT z_nbUp^ud7#yMspc>d#FAE$&JYG5J1%5nAP3r}Zp2Ed!Jou|V|P-DzTg)|D^nD5vTyU1bj;n&yBD z?y@m-^Q=vpY)(^2>`53$@rHnZ73N7eq)2_yc@cIao@uyDD#d}r5_TlU+T&_LY-%*O zT^WGxTp=9@Ur@-2e4siF+TonDOw&S$fn}M61N2~`n(ydP9@Z`l_}}Cs(Jg?k$gxUP zQ8Eb&0K!R*;@27mGRj*w84msi23^Bsvh-}^!bGa}qWlc;WAs1}rSA9q(R+u2+1yXw&V;0?`ZVP(wqz=Nd=7`bV0$u~cpR8YmZFXXy)F>h zAe?9v2o%ogc>7qZl1PwWP=J+57I`-n-QQMF=8GIu5{_vW= zptt@ck_ae8u+22)Jc?Io+MrYOTYKz635LMO%S5=zGJ0A-1;m;}O}n<)c8hGt+{`h1 zs8Ow%)yaKqt};DoCoy?|zPKGSQ4O0kdz@Lw$XgAPtb!9T@g|JuW(!XN-({#9js5vJ1V%TK=3h+HZ8s&NU=atp zkEjltHa^}a2}jJEHKc(ZI$aQhk?^V zpujaSQy}rZDlG_x1D75nxv#}c;RcA*RD~yCCE~rDYaT-Wvla4T_zM00#0K5;1qdF> z%*zpeTEs^0tC@b)#EEW&rl3(fGxWv)PRJAFA#lb9;P`{k?A}$ipoHA|8QVaqL39GH zMI6tL0?Gx03C3Y=l40oJ;2>-Zrx4L$C>iyxZMYZ>eVFG#jeQFLetil80W=-nkIY1& z0fJBHo;?cmOXAE+Q-7lo#mRbVe88pu@0o762ipgtioqrR4A{0Y;{@Q6T}AU>zXw}} zf@u_Mz@CTB$Xu5lNjv?(#p4v|Jju7^;QPf&p6O;=gRhM8e@I593iG?bJy_m zs;l}^={{;UET~8PY1q3H+d!SFS>0=y{!s5!84czU#R9sZPQ`%kw76BPLm+eI{IX%+ zB{IU>6yYq-Q200iq8+UO(hSQkFC*k+n}tm55X%SokqxEp3uG~0o|H#L zr?3?;by2*bJ34I_6U`ijtFL~1_Xr0&5&{U49D;rYeEIzbjml$!O#iFItY-B7<_TH5>O3gHY2Y#=(GTor69%Jsv=73 zyHdYN7q+|rTWbZZ3?pm^J7y8eNl-zxV^#BZ2`um`tM`Otp!85HS!)4SuK*9pSN zB2^ZHmC<@Tw6tn{hZU@0e_FsCOa1ay`3f(aR;Qw#^u8Y!o=yYH3QU3o(ORLW)G{XvB zwqu6-Zy*`v9yM8Z3KZJSJQ{4M7{V(jl-sSqqB8arQM1$F)}Q)D`&xTmw3AjWhnL;? zjTDO0u=72wJ1+}5J7;C!M@%tb%PU5Nylgv5OUvS_v3&gjNMGxk#9eFZ0LJ!VLcs3i zIFa1@FBcS@adN776`9~`)d~Ye+0E8-0rxu|TalizP{aYI#|H#`KV%x6;Gj^95B)JW z6ayP%ig(bx0GeGu3r#n+kOx!uCoBdSkNjo{PPDA)xj{GsIJF<`*~hjw%Sia12cO@JA)HFn`vHk{Ta(ELz!dt zf%3rgRjb#I0C*H?2b(e=eO3{6WlJAG@Np0YTo9>eW|>8Ckz@hpV~v>G+>lqWrN&D3 zkeuf2yN>&lCpnLg4Y!YzsIi=lML;wwTPe71mIpUy{(xpd7>tdJatA1s&N6>`#?=NT zBf(oWr=L->iZ)Wv!T|`YO)@IbMjioH7wIy8(*^DrJfDL7FlAsTq^ks=pHV&{9JRxz z0bZ1o-C?^G3roi<$(9754K~o+E3$YclZ_tU;V-WBYxrM;K^HwI@k4tYoRDD0Fvv;ASajX03&rFj zg)Z3D(2baWUjw!o^r$W3ZIq-~dn}(Relhf~rn5(d?;jF-8#CbihsOa=0EdPmv3vH|eMub1umB02`xvZ_d z->rIva@h-LA5^X`#AWEUNs1hx_W#fgIsb`^`1fuF`gG?1$9tzfP1vUi`=7l#?^A_+ zs<2NL_Mg7z^;1`U>Z(s&^?!EN5`J>=m4|aoAHuRh4VXtE?7Lnx-zVy5hsV5|PH^ z<>7F+)WyY$G9UD_vR%O?l@ALF3i>C5cw8T0GZpW+DQ@LlJo1vlVf5_%?AI%|xa|5n rZuzy~ObP-rC01)`M4*a-fDn~Q#)!;A2(49X70@8_ z5UmVFNSJ3x5UL0vM418vh{_~mfRKbFB>DDnz2Cie-GA;M-(Bneadj=i!IPYv-~R3W z?B{v*x%0EV&CbtNKS!ZZJF!3ga2AEylmI`=pKXEv*~fI=?_02n&}DpSCxy6kbf>MxhX zn2(&a3U4kbNG(k64c&#YW!gtE^3Q(p^SRYc2akXL?H_+!56KwjV!R^mCG0qKP!f&S zRMzZSs1c5kYcR&`0fXZKcFbSdGtQe(#}4~*c}ghM^7vP9mp8xs@4oo;WvRK+CNx}o#}D! zrMcg(_Uo%PG2M>(xwOD`zG{;B++}%WlrIwSlUkIp zqhFyC&d+Z=NUV%niTNS{xl=B+-9q^jR6^t+jc~i4O>gMoxXhpe0|T$MZAG=lKC;WM zrCcxgCtK+g)VKFg|Ce48lpoI{g+= zK5ebKe_mJVGnD2rhn`aAL!ywSh#l$HbM3dba9=|urE?fiI@#ZCwL zp+wf$x<+z_;124O1m*HO#&waRKK`Bk<7aP&55Us+q=}WCXy_v!-OcqN?ah2g5u*C+R$XYQP#-uOfo-! zla8>@Iy;M~Rzl7qO}f;;qe)5HclR3FONEOij6Hf6?(Z}kJ%p`t=TGNr55;gcOy`(om1kh1mK&!qgq z!UJ&d>T{*2v2gZOaZz3uQU||m-a0)V%VQ#!&WRZDn;ow5B~9k1*q|`(&yEq?`PR%TvvTu{5}`q^R@VFxNFJUY)WHe%q_HfAs> z+9z)9=xqIEGbAI~N;DeE{51f=izRI=;)wx5@thugTvNV$``p3Q1-e4ciy|k-O==-| zMe=%*Xxeq&**$gJ?gL(2g2;Ul9X{K;U%J$U52nk6r*kb#91BllPn&V%H^yz!XJ7|y> zTOlmSpFfep-oN?=v;ItZFiK4(6|rm$TOM-d!a8$7zau+J%;|Wb?Mo&^n2ub1VxnOi z5G@za@Y}W=ruLX}H|8n2aXanGF=(vjrW*doFaV*@#{SFs_je4k@|HdAmV++||jrg!=86P{>c5MvGbU3WfE_A73#tFlF_4tHA^KzSZXS*^cC(k;zu%hCy^Tm*p z8c}b4>CUw@Yl#tb{r;ua^~nb|rkp|jx=~U#o@Q=HTfcHkSu@XpFy}ZNR5xbi*PA~Y zGfx?Kl7v)P53F}>Y0Oe5=USUY;jm(T3vmVU{_FQtt zNd?!Qsda6foYI(8tsZYTr=yL8knZ%(z_tkEo(ON zd~vUs=Dv_*x%Bdz+xvPKWJz=}6Tb?J)yC4`h#IL>?~(iIXoY9T+9Jn{AQielF6GqW z$)9fDa}I--M2XEpOow6r`76mpD`n^&r!;-T8R?ofTpEEbDR{3Z{SUYLYi})D9*1>3 z{0>VZ%h!q;)_QGIyy=JadC2!RNAs`4mrt(sIk4iTi|PAq)4b;Tivwi!j94hs>k65u z2uF`sv5Hz&9TUwKk?l!7x7Xb&9V~gxp(L+2t-t76KNSV@j9Vpv&)P=1an)ybDLjhe zCf?_X-*p@~;^x8c=DUO~1<$U_?i3GSnebt#&Wxqpn#Eu_Z`s;GO-^{?yE{6Si?y6- zjDnAG3okWnUOtXwa!%}010<|hyqr(gVc7p;)H~hX$iM$D|Ban0M%vtsX|t-SG`9nc zq;(USWk~x@Gi}B$6w)zb7i*j=7q~Z|tbE7>Veu`GWDV;|7Fz1np&og9e9sfZiR&V+%sM{>>D~7(&61n+Fx8!!gye#k=ee>QqRQ1Bw8k5BRK9W-w+QZ?=`rX z0k|9|tRgd4Iy4n|xucb}gC$xCJg=eh%b7<*t^_wsr3J#zfT$t}kX6?mT9k;D;(*R{ zsq%rEVdIF_4pu8a2>47>PN_=*;0xWwDj2}Zk4+te?E|LQRUa~eG~4D0ImJI4K{VK< z-YQ?#KG-Vk2OwZsi!S=~lw>>qk#ow_d#WY})h)ta zvT4Gaa8`*h+gKY_< z*1!8BPRij@zmfi%B6XqR4U}svOetBZ1+g_J%%1R z+F}`xh$E0ChVd(RbE4ke$+V0N4sM(++yU7E!LmD(^y#!mhf74Mm>k1X?%>AKln>N+Fk}Xm8bwyN0aAYVFmDfeRL^FSSDX zOtYCDOJ4W8=Xd)kZgu-&-an?SJ~xXME}YIf^4*OsJD+-_d534^wIkFF5ZWBDvhvv$ zHEl+&tf`UUnj0BPRzm+Ytv957J6C)qp7=VgxJ)zMieCmhLuUOM8e!YP*L?XWk*klL z!hN~kMkbAz`Zcv1a$~+*FD8za&E_YDC${QY_Ok!srxsZL{VkxjyX}vDvw7>T?i*aeYPC$dEWWWV5(?*YLnXQl)$t@5ouxetXR~voq8BPUrb}=#e^pggqv+MiFxb?_ z(pgdn7OC|@n`8~xuO(M>0FR1@BAj^pn*NbkVd;+dm{P%ypP)(yDRp+8?6RxzV|{2f zYqCOq=0xM@wJ3ji1g^^4gkTEm*2#|_iF9;X{<+G##u}YsdLljpklXnLrPGioX4KGx zK^;lzRX`heXjnz1;#uMjjQossMkr*YndRk)(yE>=W#W3fc4tW$EeqkeM1_I?i3qg` zrOzK`1*Y?pGx`^5Gt1Vx_tM<5C0bPM*z#i#H$FX`e^z1AYB{*Pti%Za+R~7vAioUL zn1bZcwrx6-(4_{N%D3WGj$Hj&;Ki6Pqoa53#LEUq&?KO5awVbRz#Fm9N%?%T!b-~~ zsoTzM>>-fs8Dx7%z%VpE1VDShc{0l*&E2hOq0+W;!Fm}$$xR@{DJ1NH!%MZCVDWn! zj4Pr0ftHO=+i%-4O#+uFf0$pqdD)BfY|X=?{v{NnsO2}nTK5q*RvM)Ei ze^Druyx~}0i^%8Y{cltbU-{wI4i%DbUi5s;0&qEBNG7B;9B|0XA&ADzFw$Wbl4ROg z(b8Cn;d4{>8$uxm&&q=qGH7F%Y`IjAG*ImI_m6M;{Qdiv$dyBZ1?VuwONi@lZzFpu zmayr0+L@+7t`WoD>1(rnI(4Jh85S5b-hmG)6jQ(UdV%Q53#@gy9mnHl;m`#W^M<~! zU9@_ahH&{2?^}Hs2g^>MmbG(FbCNyMvUWPl_E1+QI(%0rI|rVGc4!jg4CouHk={5& zN+L=Jm`>+z2dfA4jVVJUoFmZM5nX8hCSh|gko?hW?K@|IDQXbbUgt!PM`s?oe0-!P zAiadz_%!DAtfReoLE{)*wum2KBvFc!)Gen$;Sjd$+Lr-T3a&{krY$ssjsV*vd&?o5GN}>bXC=bd~evZ}Ity5g0q!!?L2)5iQ+7#Z)@Zo_az_fL|k9-lQv^2UcfldZF4 z15_4K&R0RlMIl@icxxe1As@!mWtA&06ph`?iVlrz(A5@^TtZ~!g4aF0?L!Xnt0~yZ zwy7~BexW_)I@qk--|NRBI8#V!Bb?_n8Ep;ntTRDrb0s%kYQjO3YF`b`Sn&S+Mv@vj`%jUCewK7ke}1n3H!E)09!g zLN|4lTzdE?jfS?46?P+?{fSL-PP}Ax7Bsm5)Si`a$P>v7L>W9jal7_XfPSB<&M!wd zAzp~)?9c^S6!wHPhu|F)EPWo~QXh5dpt53~q?5|tGsDCY_0?$@le;u&**c>#{e~K@ z-a06<-oo!fPO_CX{w6pN4WTpBOf#+?8ig=whC!2_je7XG>7HE90;_wlzu#-^{cDOU zk@Eb@W2kkMYxUJL8aY-^B;rB0aED|jH>NoJ?ca)1QZpRYphPX==iUbA%E`oYdkiAY z)3UPq!-mntVzzBVijG51Kv_%eNCyuJRxov*WF9&_nNHvEK46#i5Yj_w^OngB&!lK) zsvSqw2KDLJsMf8&&jT8kzxd>9)UnI|hnGvbjiT{beid1!hi_haA+`QT+F_k}&Cs^F zb=6-YxiS2@gr@NM!393>wZMw!d(1bM+l_%eRtIq+Qbq2#eX$D_nHXX`LWi`Hj=qy= z^jH`p7dXBxF7XI^jX(rW?>+hQ0Z(*o{r&~~rt;2PYQY)Mrl&weGVZAuUq{LbSRl)U zeGyEgpqgOtX^>1qNTt;Jp_8}$AZGeE%#29!3A=a`3rO;Y3q{*)a;m%-Ya{zI4gS9}UNdO8z%FJejnuFT13 zfH*~Nb-}Y-Ix!78oD&Bqx@cMOJXx^;J`PlKsGzneFXm|~c@ef~ zdb0hHj&AG*@~ttkDL1$8onEM7_1It}uOaWW+HdV-fXc{o#t~|Ug-&L|DNX*LcMZDk z=;UQU(po{ScuY0-WSQvV#9hut*WR?QEesoL{dn)CVuPh`@^XaN3QWQlM{0U&0@z&z=^m~v zi{cq_*?2tDgbjf|huv!yCX1a~i&KSO4k!#cR(#9gw1dCZ;Bujn^Y*PXPq! zf>JNup^1*W*@2K*Z`cdUI1NOO69zr?&=D?JU=+WxJ{L6cBC!PhqWp6ELHDKz3PPPd zX3^DN9M6s<%D5@0fl~!%i}!(*Fu;++>YL6MpF0SVqayce1TKqHG|jCoCnH69BByl0 zycrZ>Nu8Pb+uwFStrN@*lt@-)(4vMp3w;&oYH|Yzm2-^|i>_c(;k;pwbk(_#EC+!= z2Ab;FiRi+SfNZ7|pw+2y{P|v7bDO8KCb}8mTFsemfPBz=;-2x~)g@O?qT6aSjgaIT zisLQ;j+X!}t8esRQ{8oMY*h|^O)H({S2Tv$G3H1-m%cGf}z63sF8f$BasH$QI->|@Rp5{5QcsjWM9+a%f^A(Lf&GUgp~ zaXAZ{qL6VFcBFmb{bw@GLw%MYN7v@rhG4tA1n1bzN;owzI5-U+Xh0tHg18w=uFDjE z<=tJwLb&+`&_2fC7VHDEjV0L{G~^G*@TZx!MfSPZ;WnnAVtSA*)9zG`U%r9tC$rYg z**RS&FX}%)YcY0NF5K51C~HaU`LDFM)}hpt;myDW0rRg$B8EQ5Uf@TLq?-`XPG(eu zh3Lj%;=%rLnXSLM@`30x~uW21LA|1h*fH2G-^C{?%hFNh{gP2w{r|;2`Zw z+^#9Vzt6#5w6O?9Lv*c*k=IW& z;4DRtAH%2W=rVm!-{zC|Pmr{M`S@0jDtFqM4r>EycbpOx?B~c|+Mr45k)wxQgvo3u z%*v~;{{-ciKOBEL=jdT9BKJ!Lp-2$0DF>ziUd{-na?%dzOy}pD`ys})*D#|CP$nD@ zEKACxV-Op6IvYR!uELPF+^)=e^Xvw9B?O3vP`mT;ZS^#{Oj-m6He$mg0%8VGi%Mm$ z?b8HJ32Nxr+}zyL%V%*oGQ#GVwXxu;z8d?xxH6cdUUT z>M&^O*)&aH@@3S%`pf4B8IeOhdDfO7Nr$g9^!YapR5$~h~RA4SY;T8&-DZ6DU!6WfGKAm zwAf|YSil(vKNUd~aE>+)d!^Wsv~Bi<{D2TItChcZBZc7smaTRt*z`5M9j@bMw3S4? z3+0yz7#>k?Zz6$46s)`zzb*8NeHwA}e9+8|BRVB~aAc1_?p-N#Am<@2YG-9t890BF z2+avNB0PYn-(z((ufMyCC4m;Hj&TF<@9JMm~Ji&EZ#v=;CTdXRBT4pA;Hi5mr1_#04nNUL52 z-FO%&=ahVj(cfLwVI1i~mBWw88o8kO%O#tyfTV~94~ajS;^4&n%o@7VdHJp8W`-d> zE|rmFKAnM>w8P+hI5*`UnEpE_?q4%r;57{-&#=h!wp9?s2D=ZOeu?O35U|srwHWS^ zW2u_5_cp`e%JDlL;wztf;&!Xyn?rn9dAXU!zE1eqmFIgyK_L}VsZ@#W@xB-qMiCd@ zQkWi?od(&~{qIt*3s@us=~Ju~?u}uch@}oj)Ooy{d>-Z67bE&=d2R!2mY+z7YXT_T zgS-O_PrsW2#Aw$3P|5I#0>qzo4UsVxT7s}Ja$JmB9x zNROh&%PJve(;!l?*``5H@j0yP^lfG>z7t4=+SxG=c8v4})dg`(VTR=-jQ)+ze$ED`x>u+wPXd}cDQ8*C7BII}wv10mwydd)(gyTm5rJalY z!VCr|A4YT&GX(`%2A!+O2n}XYJ!x*inZVgiu?Q19$F_vN-P;l?YL-jpk>o`LlmE-S z@Ie=31gDA-{_ip4>9kCeY+bGJkZoMaVBJ|aw`?GIPIZxB+7&=C1=Kh!+e6f%2F^Qs z(`6^7zx*c(rOZd31rXXIUJW>3$mGvILcRI`X!J-b_yI`iB7OPM_cvCvxf_Lz&9ika z0CQ6awFKt=JHi`51N?|I>lAy7?_h8dP$lx)p>AduvUv>;hM`Rar+^GCIyhXuCjh;JdDbs%Pes;zDGVC7kdLWrkB z$fQtsp~#!_ z*3{DhECslUImjsC#O+;nAmIAwLdb^Z4=qv^fB3Y`3e3oa_Jh!^G)|4KzB zEeN=5Q473}jC-M{AU3dIs|<9DqxDy{BFocp(W{wxC6w6If*jVbh?WZ|Ugnlyu~v;+Cs_L=EPK4`$9#8CyJvvYIen?P|M_ zSM==0R$rh8ALevGWPD!#c@i0ev~>_GkeFEENezI=?q$2|C01|Ol|BNBc@!jDM!5eYvc;YTF={}2f?!gsZfj5O-G zyK*g_D4{N;rWsHif`Y~@@V>d5%i$4Gm(}Ta;ToTzP`toS(sMsf?Y~cXcI-r4(^5Vt zpD5ol{S0!Fy4i)9#p>gzh*Jl5W}4xJ7Rp;t38}FqH3#9@a1&%4;g|S*i*Td_9{RSO zNe+W)zj|+>9cOSz4|S{pzL-VYf4Az=v;XCp@;wPycnrKv&$apxo+kDITf;S=3WYlP z6t2(|vDjNNv1Rtv<+0=q6Tbn}C#XxZ8H@k!WAgv=IeRhP`K{+e@wLvIDENmxY5xQD I_@!U}6Vnj=vH$=8 From 947b14e7f97beafb9ba7a643bb022a0642668332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Tue, 18 Jun 2024 16:48:50 +0200 Subject: [PATCH 37/53] fix: Bump migration number --- posthog/migrations/0426_batchexport_model.py | 24 -------------------- 1 file changed, 24 deletions(-) delete mode 100644 posthog/migrations/0426_batchexport_model.py diff --git a/posthog/migrations/0426_batchexport_model.py b/posthog/migrations/0426_batchexport_model.py deleted file mode 100644 index 37cee94f5ab43..0000000000000 --- a/posthog/migrations/0426_batchexport_model.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 4.2.11 on 2024-06-12 14:43 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("posthog", "0425_hogfunction"), - ] - - operations = [ - migrations.AddField( - model_name="batchexport", - name="model", - field=models.CharField( - blank=True, - choices=[("events", "Events"), ("persons", "Persons")], - default="events", - help_text="Which model this BatchExport is exporting.", - max_length=64, - null=True, - ), - ), - ] From 212f77656573cb09fad0e4dd01f948af422e3c8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Tue, 18 Jun 2024 17:12:00 +0200 Subject: [PATCH 38/53] fix: Clean-up unused code --- posthog/api/app_metrics.py | 1 - 1 file changed, 1 deletion(-) diff --git a/posthog/api/app_metrics.py b/posthog/api/app_metrics.py index 3a0855b9939e5..6fe56947b42c7 100644 --- a/posthog/api/app_metrics.py +++ b/posthog/api/app_metrics.py @@ -24,7 +24,6 @@ AppMetricsRequestSerializer, ) from posthog.utils import relative_date_parse -from posthog.batch_exports.models import fetch_batch_export_run_count class AppMetricsViewSet(TeamAndOrgViewSetMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet): From 7c97f50a837d5f9018d2fdbc32e7c6aad12d5bb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Tue, 18 Jun 2024 17:38:15 +0200 Subject: [PATCH 39/53] fix: Clean-up unused function --- posthog/api/test/test_app_metrics.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/posthog/api/test/test_app_metrics.py b/posthog/api/test/test_app_metrics.py index a5b630875bc37..c639b37aee68d 100644 --- a/posthog/api/test/test_app_metrics.py +++ b/posthog/api/test/test_app_metrics.py @@ -145,9 +145,6 @@ def test_retrieve_batch_export_runs_app_metrics(self): data_interval_start=last_updated_at - dt.timedelta(hours=3), status=BatchExportRun.Status.FAILED_RETRYABLE, ) - for _ in range(5): - timestamp = last_updated_at - dt.timedelta(hours=2, minutes=1) - insert_event(team_id=self.team.pk, timestamp=timestamp) response = self.client.get(f"/api/projects/@current/app_metrics/{batch_export_id}?date_from=-7d") self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -216,7 +213,6 @@ def test_retrieve_batch_export_runs_app_metrics_defaults_to_zero(self): data_interval_start=last_updated_at - dt.timedelta(hours=1), status=BatchExportRun.Status.COMPLETED, ) - insert_event(team_id=self.team.pk, timestamp=last_updated_at - dt.timedelta(minutes=1)) response = self.client.get(f"/api/projects/@current/app_metrics/{batch_export_id}?date_from=-7d") self.assertEqual(response.status_code, status.HTTP_200_OK) From d32e42f453f142618d08b1282f4f895e0690080e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Wed, 19 Jun 2024 12:19:33 +0200 Subject: [PATCH 40/53] fix: Only run extra clickhouse queries in batch exports tests --- posthog/conftest.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/posthog/conftest.py b/posthog/conftest.py index 2e5c9988cc458..291c49a6dec76 100644 --- a/posthog/conftest.py +++ b/posthog/conftest.py @@ -31,9 +31,6 @@ def create_clickhouse_tables(num_tables: int): table_queries = list(map(build_query, CREATE_TABLE_QUERIES)) run_clickhouse_statement_in_parallel(table_queries) - kafka_queries = list(map(build_query, CREATE_KAFKA_TABLE_QUERIES)) - run_clickhouse_statement_in_parallel(kafka_queries) - mv_queries = list(map(build_query, CREATE_MV_TABLE_QUERIES)) run_clickhouse_statement_in_parallel(mv_queries) From baa3e2abde7989a432f3ebd625ecd3ef40f77324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Thu, 20 Jun 2024 12:00:05 +0200 Subject: [PATCH 41/53] feat: Support multiple models in all batch export destinations This commit introduces a new `batch_export_model` input for all batch export destinations. This input is of type `BatchExportModel` which can be used to indicate which model a batch export is supposed to target. This opens the door to creating "persons" model exports, and eventually extending this further with more changes. The change was done in a backwards compatible way, so `batch_export_schema` was not removed, and existing export configurations should continue to work (as evidenced by unit tests passing without changes). However, moving forward all batch exports will be created with `batch_export_schema` set to `None` and `batch_export_model` defined in its place. After updating existing exports, `batch_export_schema` and any other code associated with backwards compatibility can be deleted. --- posthog/batch_exports/http.py | 2 +- posthog/batch_exports/service.py | 37 +++++++++++++++---- .../temporal/batch_exports/batch_exports.py | 36 +++++++++++++----- .../batch_exports/bigquery_batch_export.py | 24 ++++++------ .../batch_exports/http_batch_export.py | 9 +++-- .../batch_exports/postgres_batch_export.py | 27 +++++++------- .../batch_exports/redshift_batch_export.py | 22 +++++------ .../temporal/batch_exports/s3_batch_export.py | 29 ++++++++------- .../batch_exports/snowflake_batch_export.py | 23 ++++++------ 9 files changed, 129 insertions(+), 80 deletions(-) diff --git a/posthog/batch_exports/http.py b/posthog/batch_exports/http.py index 9977b3bc75729..98a97a74b3f4a 100644 --- a/posthog/batch_exports/http.py +++ b/posthog/batch_exports/http.py @@ -5,7 +5,7 @@ import structlog from django.db import transaction from django.utils.timezone import now -from rest_framework import request, response, serializers, viewsets, filters +from rest_framework import filters, request, response, serializers, viewsets from rest_framework.decorators import action from rest_framework.exceptions import ( NotAuthenticated, diff --git a/posthog/batch_exports/service.py b/posthog/batch_exports/service.py index 89992d2228f75..f5438514a735c 100644 --- a/posthog/batch_exports/service.py +++ b/posthog/batch_exports/service.py @@ -54,9 +54,15 @@ class BatchExportSchema(typing.TypedDict): values: dict[str, str] +@dataclass +class BatchExportModel: + name: str + schema: BatchExportSchema | None + + class BatchExportsInputsProtocol(typing.Protocol): team_id: int - batch_export_schema: BatchExportSchema | None = None + batch_export_model: BatchExportModel | None = None is_backfill: bool = False @@ -90,10 +96,11 @@ class S3BatchExportInputs: include_events: list[str] | None = None encryption: str | None = None kms_key_id: str | None = None - batch_export_schema: BatchExportSchema | None = None endpoint_url: str | None = None file_format: str = "JSONLines" is_backfill: bool = False + batch_export_model: BatchExportModel | None = None + batch_export_schema: BatchExportSchema | None = None @dataclass @@ -114,8 +121,9 @@ class SnowflakeBatchExportInputs: role: str | None = None exclude_events: list[str] | None = None include_events: list[str] | None = None - batch_export_schema: BatchExportSchema | None = None is_backfill: bool = False + batch_export_model: BatchExportModel | None = None + batch_export_schema: BatchExportSchema | None = None @dataclass @@ -136,8 +144,9 @@ class PostgresBatchExportInputs: data_interval_end: str | None = None exclude_events: list[str] | None = None include_events: list[str] | None = None - batch_export_schema: BatchExportSchema | None = None is_backfill: bool = False + batch_export_model: BatchExportModel | None = None + batch_export_schema: BatchExportSchema | None = None @dataclass @@ -165,8 +174,9 @@ class BigQueryBatchExportInputs: exclude_events: list[str] | None = None include_events: list[str] | None = None use_json_type: bool = False - batch_export_schema: BatchExportSchema | None = None is_backfill: bool = False + batch_export_model: BatchExportModel | None = None + batch_export_model: BatchExportModel | None = None @dataclass @@ -181,8 +191,9 @@ class HttpBatchExportInputs: data_interval_end: str | None = None exclude_events: list[str] | None = None include_events: list[str] | None = None - batch_export_schema: BatchExportSchema | None = None is_backfill: bool = False + batch_export_model: BatchExportModel | None = None + batch_export_schema: BatchExportSchema | None = None @dataclass @@ -193,8 +204,9 @@ class NoOpInputs: team_id: int interval: str = "hour" arg: str = "" - batch_export_schema: BatchExportSchema | None = None is_backfill: bool = False + batch_export_model: BatchExportModel | None = None + batch_export_schema: BatchExportSchema | None = None DESTINATION_WORKFLOWS = { @@ -609,7 +621,16 @@ def sync_batch_export(batch_export: BatchExport, created: bool): team_id=batch_export.team.id, batch_export_id=str(batch_export.id), interval=str(batch_export.interval), - batch_export_schema=batch_export.schema, + batch_export_model=BatchExportModel( + name=batch_export.model, + schema=batch_export.schema, + ), + # TODO: This field is deprecated, but we still set it for backwards compatibility. + # New exports created will always have `batch_export_schema` set to `None`, but existing + # batch exports may still be using it. + # This assignment should be removed after updating all existing exports to use + # `batch_export_model` instead. + batch_export_schema=None, **destination_config, ) ), diff --git a/posthog/temporal/batch_exports/batch_exports.py b/posthog/temporal/batch_exports/batch_exports.py index 04e9a7fa000f0..aba8037ffe32d 100644 --- a/posthog/temporal/batch_exports/batch_exports.py +++ b/posthog/temporal/batch_exports/batch_exports.py @@ -13,6 +13,8 @@ from posthog.batch_exports.models import BatchExportBackfill, BatchExportRun from posthog.batch_exports.service import ( BatchExportField, + BatchExportModel, + BatchExportSchema, acount_failed_batch_export_runs, acreate_batch_export_backfill, acreate_batch_export_run, @@ -111,26 +113,42 @@ def default_fields() -> list[BatchExportField]: ] -DEFAULT_MODELS = {"events", "persons"} - - async def iter_model_records( - client: ClickHouseClient, model: str, team_id: int, is_backfill: bool, **parameters + client: ClickHouseClient, + model: BatchExportModel | BatchExportSchema | None, + team_id: int, + is_backfill: bool, + default_fields: list[BatchExportField], + **parameters, ) -> AsyncRecordsGenerator: - if model in DEFAULT_MODELS: + if isinstance(model, BatchExportModel): async for record in iter_records_from_model_view( - client=client, model=model, team_id=team_id, is_backfill=is_backfill, **parameters + client=client, + model_name=model.name, + team_id=team_id, + is_backfill=is_backfill, + fields=model.schema["fields"] if model.schema is not None else default_fields, + extra_query_parameters=model.schema["values"] if model.schema is not None else None, + **parameters, ): yield record + else: - for record in iter_records(client, team_id=team_id, is_backfill=is_backfill, **parameters): + for record in iter_records( + client, + team_id=team_id, + is_backfill=is_backfill, + fields=model["fields"] if model is not None else default_fields, + extra_query_parameters=model["values"] if model is not None else None, + **parameters, + ): yield record async def iter_records_from_model_view( - client: ClickHouseClient, model: str, is_backfill: bool, team_id: int, **parameters + client: ClickHouseClient, model_name: str, is_backfill: bool, team_id: int, **parameters ) -> AsyncRecordsGenerator: - if model == "persons": + if model_name == "persons": view = SELECT_FROM_PERSONS_VIEW else: # TODO: Let this model be exported by `astream_query_as_arrow`. diff --git a/posthog/temporal/batch_exports/bigquery_batch_export.py b/posthog/temporal/batch_exports/bigquery_batch_export.py index 85385b1c80108..3b940dfc9a9ab 100644 --- a/posthog/temporal/batch_exports/bigquery_batch_export.py +++ b/posthog/temporal/batch_exports/bigquery_batch_export.py @@ -150,9 +150,11 @@ class BigQueryInsertInputs: exclude_events: list[str] | None = None include_events: list[str] | None = None use_json_type: bool = False - batch_export_schema: BatchExportSchema | None = None run_id: str | None = None is_backfill: bool = False + batch_export_model: BatchExportSchema | None = None + # TODO: Remove after updating existing batch exports + batch_export_schema: BatchExportSchema | None = None @contextlib.contextmanager @@ -230,24 +232,22 @@ async def insert_into_bigquery_activity(inputs: BigQueryInsertInputs) -> Records if not await client.is_alive(): raise ConnectionError("Cannot establish connection to ClickHouse") - if inputs.batch_export_schema is None: - fields = bigquery_default_fields() - query_parameters = None - + if inputs.batch_export_schema is None and "batch_export_model" in { + field.name for field in dataclasses.fields(inputs) + }: + model = inputs.batch_export_model else: - fields = inputs.batch_export_schema["fields"] - query_parameters = inputs.batch_export_schema["values"] + model = inputs.batch_export_schema records_iterator = iter_model_records( client=client, - model="events", + model=model, team_id=inputs.team_id, interval_start=data_interval_start, interval_end=inputs.data_interval_end, exclude_events=inputs.exclude_events, include_events=inputs.include_events, - fields=fields, - extra_query_parameters=query_parameters, + default_fields=bigquery_default_fields(), is_backfill=inputs.is_backfill, ) @@ -408,9 +408,11 @@ async def run(self, inputs: BigQueryBatchExportInputs): exclude_events=inputs.exclude_events, include_events=inputs.include_events, use_json_type=inputs.use_json_type, - batch_export_schema=inputs.batch_export_schema, run_id=run_id, is_backfill=inputs.is_backfill, + batch_export_model=inputs.batch_export_model, + # TODO: Remove after updating existing batch exports. + batch_export_schema=inputs.batch_export_schema, ) await execute_batch_export_insert_activity( diff --git a/posthog/temporal/batch_exports/http_batch_export.py b/posthog/temporal/batch_exports/http_batch_export.py index cf0e9b485f376..38e54c836653d 100644 --- a/posthog/temporal/batch_exports/http_batch_export.py +++ b/posthog/temporal/batch_exports/http_batch_export.py @@ -1,8 +1,8 @@ import asyncio +import dataclasses import datetime as dt import io import json -from dataclasses import dataclass import aiohttp from django.conf import settings @@ -11,6 +11,7 @@ from posthog.batch_exports.service import ( BatchExportField, + BatchExportModel, BatchExportSchema, HttpBatchExportInputs, ) @@ -92,7 +93,7 @@ def from_activity_details(cls, details) -> "HeartbeatDetails": return HeartbeatDetails(last_uploaded_timestamp) -@dataclass +@dataclasses.dataclass class HttpInsertInputs: """Inputs for HTTP insert activity.""" @@ -104,8 +105,9 @@ class HttpInsertInputs: exclude_events: list[str] | None = None include_events: list[str] | None = None run_id: str | None = None - batch_export_schema: BatchExportSchema | None = None is_backfill: bool = False + batch_export_model: BatchExportModel | None = None + batch_export_schema: BatchExportSchema | None = None async def maybe_resume_from_heartbeat(inputs: HttpInsertInputs) -> str: @@ -357,6 +359,7 @@ async def run(self, inputs: HttpBatchExportInputs): batch_export_schema=inputs.batch_export_schema, run_id=run_id, is_backfill=inputs.is_backfill, + batch_export_model=inputs.batch_export_model, ) await execute_batch_export_insert_activity( diff --git a/posthog/temporal/batch_exports/postgres_batch_export.py b/posthog/temporal/batch_exports/postgres_batch_export.py index 54eb667062fbc..b7001463c8924 100644 --- a/posthog/temporal/batch_exports/postgres_batch_export.py +++ b/posthog/temporal/batch_exports/postgres_batch_export.py @@ -1,10 +1,10 @@ import collections.abc import contextlib import csv +import dataclasses import datetime as dt import json import typing -from dataclasses import dataclass import psycopg import pyarrow as pa @@ -16,6 +16,7 @@ from posthog.batch_exports.models import BatchExportRun from posthog.batch_exports.service import ( BatchExportField, + BatchExportModel, BatchExportSchema, PostgresBatchExportInputs, ) @@ -220,7 +221,7 @@ def get_postgres_fields_from_record_schema( return pg_schema -@dataclass +@dataclasses.dataclass class PostgresInsertInputs: """Inputs for Postgres insert activity.""" @@ -237,9 +238,10 @@ class PostgresInsertInputs: port: int = 5432 exclude_events: list[str] | None = None include_events: list[str] | None = None - batch_export_schema: BatchExportSchema | None = None run_id: str | None = None is_backfill: bool = False + batch_export_model: BatchExportModel | None = None + batch_export_schema: BatchExportSchema | None = None @activity.defn @@ -262,24 +264,22 @@ async def insert_into_postgres_activity(inputs: PostgresInsertInputs) -> Records if not await client.is_alive(): raise ConnectionError("Cannot establish connection to ClickHouse") - if inputs.batch_export_schema is None: - fields = postgres_default_fields() - query_parameters = None - + if inputs.batch_export_schema is None and "batch_export_model" in { + field.name for field in dataclasses.fields(inputs) + }: + model = inputs.batch_export_model else: - fields = inputs.batch_export_schema["fields"] - query_parameters = inputs.batch_export_schema["values"] + model = inputs.batch_export_schema record_iterator = iter_model_records( client=client, - model="events", + model=model, team_id=inputs.team_id, interval_start=inputs.data_interval_start, interval_end=inputs.data_interval_end, exclude_events=inputs.exclude_events, include_events=inputs.include_events, - fields=fields, - extra_query_parameters=query_parameters, + default_fields=postgres_default_fields(), is_backfill=inputs.is_backfill, ) first_record_batch, record_iterator = await apeek_first_and_rewind(record_iterator) @@ -424,8 +424,9 @@ async def run(self, inputs: PostgresBatchExportInputs): data_interval_end=data_interval_end.isoformat(), exclude_events=inputs.exclude_events, include_events=inputs.include_events, - batch_export_schema=inputs.batch_export_schema, run_id=run_id, + batch_export_model=inputs.batch_export_model, + batch_export_schema=inputs.batch_export_schema, ) await execute_batch_export_insert_activity( diff --git a/posthog/temporal/batch_exports/redshift_batch_export.py b/posthog/temporal/batch_exports/redshift_batch_export.py index 52ce4e9db32cc..5ac9a2ce4aec7 100644 --- a/posthog/temporal/batch_exports/redshift_batch_export.py +++ b/posthog/temporal/batch_exports/redshift_batch_export.py @@ -1,9 +1,9 @@ import collections.abc import contextlib +import dataclasses import datetime as dt import json import typing -from dataclasses import dataclass import psycopg import pyarrow as pa @@ -262,7 +262,7 @@ async def async_client_cursor_from_connection( psycopg_connection.cursor_factory = current_factory -@dataclass +@dataclasses.dataclass class RedshiftInsertInputs(PostgresInsertInputs): """Inputs for Redshift insert activity. @@ -307,24 +307,23 @@ async def insert_into_redshift_activity(inputs: RedshiftInsertInputs) -> Records if not await client.is_alive(): raise ConnectionError("Cannot establish connection to ClickHouse") - if inputs.batch_export_schema is None: - fields = redshift_default_fields() - query_parameters = None + if inputs.batch_export_schema is None and "batch_export_model" in { + field.name for field in dataclasses.fields(input) + }: + model = inputs.batch_export_model else: - fields = inputs.batch_export_schema["fields"] - query_parameters = inputs.batch_export_schema["values"] + model = inputs.batch_export_schema record_iterator = iter_model_records( client=client, - model="events", + model=model, team_id=inputs.team_id, interval_start=inputs.data_interval_start, interval_end=inputs.data_interval_end, exclude_events=inputs.exclude_events, include_events=inputs.include_events, - fields=fields, - extra_query_parameters=query_parameters, + default_fields=redshift_default_fields(), is_backfill=inputs.is_backfill, ) first_record_batch, record_iterator = await apeek_first_and_rewind(record_iterator) @@ -462,9 +461,10 @@ async def run(self, inputs: RedshiftBatchExportInputs): exclude_events=inputs.exclude_events, include_events=inputs.include_events, properties_data_type=inputs.properties_data_type, - batch_export_schema=inputs.batch_export_schema, run_id=run_id, is_backfill=inputs.is_backfill, + batch_export_model=inputs.batch_export_model, + batch_export_schema=inputs.batch_export_schema, ) await execute_batch_export_insert_activity( diff --git a/posthog/temporal/batch_exports/s3_batch_export.py b/posthog/temporal/batch_exports/s3_batch_export.py index 7f460cb12fa7b..2caaebf6adf16 100644 --- a/posthog/temporal/batch_exports/s3_batch_export.py +++ b/posthog/temporal/batch_exports/s3_batch_export.py @@ -1,11 +1,11 @@ import collections.abc import contextlib +import dataclasses import datetime as dt import io import json import posixpath import typing -from dataclasses import dataclass import aioboto3 import orjson @@ -17,6 +17,7 @@ from posthog.batch_exports.models import BatchExportRun from posthog.batch_exports.service import ( BatchExportField, + BatchExportModel, BatchExportSchema, S3BatchExportInputs, ) @@ -315,7 +316,7 @@ def from_activity_details(cls, details): return cls(last_uploaded_part_timestamp, upload_state) -@dataclass +@dataclasses.dataclass class S3InsertInputs: """Inputs for S3 exports.""" @@ -336,12 +337,14 @@ class S3InsertInputs: include_events: list[str] | None = None encryption: str | None = None kms_key_id: str | None = None - batch_export_schema: BatchExportSchema | None = None endpoint_url: str | None = None # TODO: In Python 3.11, this could be a enum.StrEnum. file_format: str = "JSONLines" run_id: str | None = None is_backfill: bool = False + batch_export_model: BatchExportModel | None = None + # TODO: Remove after updating existing batch exports + batch_export_schema: BatchExportSchema | None = None async def initialize_and_resume_multipart_upload(inputs: S3InsertInputs) -> tuple[S3MultiPartUpload, str]: @@ -444,25 +447,23 @@ async def insert_into_s3_activity(inputs: S3InsertInputs) -> RecordsCompleted: s3_upload, interval_start = await initialize_and_resume_multipart_upload(inputs) - if inputs.batch_export_schema is None: - fields = s3_default_fields() - query_parameters = None - + if inputs.batch_export_schema is None and "batch_export_model" in { + field.name for field in dataclasses.fields(inputs) + }: + model = inputs.batch_export_model else: - fields = inputs.batch_export_schema["fields"] - query_parameters = inputs.batch_export_schema["values"] + model = inputs.batch_export_schema record_iterator = iter_model_records( - model="events", + model=model, client=client, team_id=inputs.team_id, interval_start=interval_start, interval_end=inputs.data_interval_end, exclude_events=inputs.exclude_events, include_events=inputs.include_events, - fields=fields, - extra_query_parameters=query_parameters, is_backfill=inputs.is_backfill, + default_fields=s3_default_fields(), ) first_record_batch, record_iterator = await apeek_first_and_rewind(record_iterator) @@ -674,10 +675,12 @@ async def run(self, inputs: S3BatchExportInputs): include_events=inputs.include_events, encryption=inputs.encryption, kms_key_id=inputs.kms_key_id, - batch_export_schema=inputs.batch_export_schema, file_format=inputs.file_format, run_id=run_id, is_backfill=inputs.is_backfill, + batch_export_model=inputs.batch_export_model, + # TODO: Remove after updating existing batch exports. + batch_export_schema=inputs.batch_export_schema, ) await execute_batch_export_insert_activity( diff --git a/posthog/temporal/batch_exports/snowflake_batch_export.py b/posthog/temporal/batch_exports/snowflake_batch_export.py index 374248e83aff5..1f33f69b9814a 100644 --- a/posthog/temporal/batch_exports/snowflake_batch_export.py +++ b/posthog/temporal/batch_exports/snowflake_batch_export.py @@ -17,6 +17,7 @@ from posthog.batch_exports.models import BatchExportRun from posthog.batch_exports.service import ( BatchExportField, + BatchExportModel, BatchExportSchema, SnowflakeBatchExportInputs, ) @@ -114,9 +115,10 @@ class SnowflakeInsertInputs: role: str | None = None exclude_events: list[str] | None = None include_events: list[str] | None = None - batch_export_schema: BatchExportSchema | None = None run_id: str | None = None is_backfill: bool = False + batch_export_model: BatchExportModel | None = None + batch_export_schema: BatchExportSchema | None = None def use_namespace(connection: SnowflakeConnection, database: str, schema: str) -> None: @@ -448,24 +450,22 @@ async def flush_to_snowflake( rows_exported.add(file.records_since_last_reset) bytes_exported.add(file.bytes_since_last_reset) - if inputs.batch_export_schema is None: - fields = snowflake_default_fields() - query_parameters = None - + if inputs.batch_export_schema is None and "batch_export_model" in { + field.name for field in dataclasses.fields(inputs) + }: + model = inputs.batch_export_model else: - fields = inputs.batch_export_schema["fields"] - query_parameters = inputs.batch_export_schema["values"] + model = inputs.batch_export_schema record_iterator = iter_model_records( client=client, - model="events", + model=model, team_id=inputs.team_id, interval_start=data_interval_start, interval_end=inputs.data_interval_end, exclude_events=inputs.exclude_events, include_events=inputs.include_events, - fields=fields, - extra_query_parameters=query_parameters, + default_fields=snowflake_default_fields(), is_backfill=inputs.is_backfill, ) first_record_batch, record_iterator = await apeek_first_and_rewind(record_iterator) @@ -601,9 +601,10 @@ async def run(self, inputs: SnowflakeBatchExportInputs): role=inputs.role, exclude_events=inputs.exclude_events, include_events=inputs.include_events, - batch_export_schema=inputs.batch_export_schema, run_id=run_id, is_backfill=inputs.is_backfill, + batch_export_model=inputs.batch_export_model, + batch_export_schema=inputs.batch_export_schema, ) await execute_batch_export_insert_activity( From 0c76d930c4a1c596f65ce2397b0748164d9a3d5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Thu, 20 Jun 2024 12:19:41 +0200 Subject: [PATCH 42/53] fix: Add additional type hints and update tests --- posthog/batch_exports/service.py | 4 ++-- posthog/temporal/batch_exports/batch_exports.py | 11 ++++++++--- .../temporal/batch_exports/bigquery_batch_export.py | 6 ++++-- .../temporal/batch_exports/postgres_batch_export.py | 3 ++- .../temporal/batch_exports/redshift_batch_export.py | 12 +++++++++--- posthog/temporal/batch_exports/s3_batch_export.py | 3 ++- .../temporal/batch_exports/snowflake_batch_export.py | 3 ++- .../tests/batch_exports/test_batch_exports.py | 4 ++-- 8 files changed, 31 insertions(+), 15 deletions(-) diff --git a/posthog/batch_exports/service.py b/posthog/batch_exports/service.py index f5438514a735c..2483738cefbc0 100644 --- a/posthog/batch_exports/service.py +++ b/posthog/batch_exports/service.py @@ -176,7 +176,7 @@ class BigQueryBatchExportInputs: use_json_type: bool = False is_backfill: bool = False batch_export_model: BatchExportModel | None = None - batch_export_model: BatchExportModel | None = None + batch_export_schema: BatchExportSchema | None = None @dataclass @@ -622,7 +622,7 @@ def sync_batch_export(batch_export: BatchExport, created: bool): batch_export_id=str(batch_export.id), interval=str(batch_export.interval), batch_export_model=BatchExportModel( - name=batch_export.model, + name=batch_export.model or "events", schema=batch_export.schema, ), # TODO: This field is deprecated, but we still set it for backwards compatibility. diff --git a/posthog/temporal/batch_exports/batch_exports.py b/posthog/temporal/batch_exports/batch_exports.py index aba8037ffe32d..520a1f5f0a061 100644 --- a/posthog/temporal/batch_exports/batch_exports.py +++ b/posthog/temporal/batch_exports/batch_exports.py @@ -118,16 +118,21 @@ async def iter_model_records( model: BatchExportModel | BatchExportSchema | None, team_id: int, is_backfill: bool, - default_fields: list[BatchExportField], + destination_default_fields: list[BatchExportField] | None = None, **parameters, ) -> AsyncRecordsGenerator: + if destination_default_fields is None: + batch_export_default_fields = default_fields() + else: + batch_export_default_fields = destination_default_fields + if isinstance(model, BatchExportModel): async for record in iter_records_from_model_view( client=client, model_name=model.name, team_id=team_id, is_backfill=is_backfill, - fields=model.schema["fields"] if model.schema is not None else default_fields, + fields=model.schema["fields"] if model.schema is not None else batch_export_default_fields, extra_query_parameters=model.schema["values"] if model.schema is not None else None, **parameters, ): @@ -138,7 +143,7 @@ async def iter_model_records( client, team_id=team_id, is_backfill=is_backfill, - fields=model["fields"] if model is not None else default_fields, + fields=model["fields"] if model is not None else batch_export_default_fields, extra_query_parameters=model["values"] if model is not None else None, **parameters, ): diff --git a/posthog/temporal/batch_exports/bigquery_batch_export.py b/posthog/temporal/batch_exports/bigquery_batch_export.py index 3b940dfc9a9ab..af46bef7e4576 100644 --- a/posthog/temporal/batch_exports/bigquery_batch_export.py +++ b/posthog/temporal/batch_exports/bigquery_batch_export.py @@ -14,6 +14,7 @@ from posthog.batch_exports.models import BatchExportRun from posthog.batch_exports.service import ( BatchExportField, + BatchExportModel, BatchExportSchema, BigQueryBatchExportInputs, ) @@ -152,7 +153,7 @@ class BigQueryInsertInputs: use_json_type: bool = False run_id: str | None = None is_backfill: bool = False - batch_export_model: BatchExportSchema | None = None + batch_export_model: BatchExportModel | None = None # TODO: Remove after updating existing batch exports batch_export_schema: BatchExportSchema | None = None @@ -232,6 +233,7 @@ async def insert_into_bigquery_activity(inputs: BigQueryInsertInputs) -> Records if not await client.is_alive(): raise ConnectionError("Cannot establish connection to ClickHouse") + model: BatchExportModel | BatchExportSchema | None = None if inputs.batch_export_schema is None and "batch_export_model" in { field.name for field in dataclasses.fields(inputs) }: @@ -247,7 +249,7 @@ async def insert_into_bigquery_activity(inputs: BigQueryInsertInputs) -> Records interval_end=inputs.data_interval_end, exclude_events=inputs.exclude_events, include_events=inputs.include_events, - default_fields=bigquery_default_fields(), + destination_default_fields=bigquery_default_fields(), is_backfill=inputs.is_backfill, ) diff --git a/posthog/temporal/batch_exports/postgres_batch_export.py b/posthog/temporal/batch_exports/postgres_batch_export.py index b7001463c8924..02f0634bd1540 100644 --- a/posthog/temporal/batch_exports/postgres_batch_export.py +++ b/posthog/temporal/batch_exports/postgres_batch_export.py @@ -264,6 +264,7 @@ async def insert_into_postgres_activity(inputs: PostgresInsertInputs) -> Records if not await client.is_alive(): raise ConnectionError("Cannot establish connection to ClickHouse") + model: BatchExportModel | BatchExportSchema | None = None if inputs.batch_export_schema is None and "batch_export_model" in { field.name for field in dataclasses.fields(inputs) }: @@ -279,7 +280,7 @@ async def insert_into_postgres_activity(inputs: PostgresInsertInputs) -> Records interval_end=inputs.data_interval_end, exclude_events=inputs.exclude_events, include_events=inputs.include_events, - default_fields=postgres_default_fields(), + destination_default_fields=postgres_default_fields(), is_backfill=inputs.is_backfill, ) first_record_batch, record_iterator = await apeek_first_and_rewind(record_iterator) diff --git a/posthog/temporal/batch_exports/redshift_batch_export.py b/posthog/temporal/batch_exports/redshift_batch_export.py index 5ac9a2ce4aec7..180e9fc18fd1e 100644 --- a/posthog/temporal/batch_exports/redshift_batch_export.py +++ b/posthog/temporal/batch_exports/redshift_batch_export.py @@ -12,7 +12,12 @@ from temporalio.common import RetryPolicy from posthog.batch_exports.models import BatchExportRun -from posthog.batch_exports.service import BatchExportField, RedshiftBatchExportInputs +from posthog.batch_exports.service import ( + BatchExportField, + BatchExportModel, + BatchExportSchema, + RedshiftBatchExportInputs, +) from posthog.temporal.batch_exports.base import PostHogWorkflow from posthog.temporal.batch_exports.batch_exports import ( FinishBatchExportRunInputs, @@ -307,8 +312,9 @@ async def insert_into_redshift_activity(inputs: RedshiftInsertInputs) -> Records if not await client.is_alive(): raise ConnectionError("Cannot establish connection to ClickHouse") + model: BatchExportModel | BatchExportSchema | None = None if inputs.batch_export_schema is None and "batch_export_model" in { - field.name for field in dataclasses.fields(input) + field.name for field in dataclasses.fields(inputs) }: model = inputs.batch_export_model @@ -323,7 +329,7 @@ async def insert_into_redshift_activity(inputs: RedshiftInsertInputs) -> Records interval_end=inputs.data_interval_end, exclude_events=inputs.exclude_events, include_events=inputs.include_events, - default_fields=redshift_default_fields(), + destination_default_fields=redshift_default_fields(), is_backfill=inputs.is_backfill, ) first_record_batch, record_iterator = await apeek_first_and_rewind(record_iterator) diff --git a/posthog/temporal/batch_exports/s3_batch_export.py b/posthog/temporal/batch_exports/s3_batch_export.py index 2caaebf6adf16..03dfd8406c584 100644 --- a/posthog/temporal/batch_exports/s3_batch_export.py +++ b/posthog/temporal/batch_exports/s3_batch_export.py @@ -447,6 +447,7 @@ async def insert_into_s3_activity(inputs: S3InsertInputs) -> RecordsCompleted: s3_upload, interval_start = await initialize_and_resume_multipart_upload(inputs) + model: BatchExportModel | BatchExportSchema | None = None if inputs.batch_export_schema is None and "batch_export_model" in { field.name for field in dataclasses.fields(inputs) }: @@ -463,7 +464,7 @@ async def insert_into_s3_activity(inputs: S3InsertInputs) -> RecordsCompleted: exclude_events=inputs.exclude_events, include_events=inputs.include_events, is_backfill=inputs.is_backfill, - default_fields=s3_default_fields(), + destination_default_fields=s3_default_fields(), ) first_record_batch, record_iterator = await apeek_first_and_rewind(record_iterator) diff --git a/posthog/temporal/batch_exports/snowflake_batch_export.py b/posthog/temporal/batch_exports/snowflake_batch_export.py index 1f33f69b9814a..137b32df56dec 100644 --- a/posthog/temporal/batch_exports/snowflake_batch_export.py +++ b/posthog/temporal/batch_exports/snowflake_batch_export.py @@ -450,6 +450,7 @@ async def flush_to_snowflake( rows_exported.add(file.records_since_last_reset) bytes_exported.add(file.bytes_since_last_reset) + model: BatchExportModel | BatchExportSchema | None = None if inputs.batch_export_schema is None and "batch_export_model" in { field.name for field in dataclasses.fields(inputs) }: @@ -465,7 +466,7 @@ async def flush_to_snowflake( interval_end=inputs.data_interval_end, exclude_events=inputs.exclude_events, include_events=inputs.include_events, - default_fields=snowflake_default_fields(), + destination_destination_default_fields=snowflake_default_fields(), is_backfill=inputs.is_backfill, ) first_record_batch, record_iterator = await apeek_first_and_rewind(record_iterator) diff --git a/posthog/temporal/tests/batch_exports/test_batch_exports.py b/posthog/temporal/tests/batch_exports/test_batch_exports.py index b146352c74958..2634da9c1dff9 100644 --- a/posthog/temporal/tests/batch_exports/test_batch_exports.py +++ b/posthog/temporal/tests/batch_exports/test_batch_exports.py @@ -6,6 +6,7 @@ import pytest from django.test import override_settings +from posthog.batch_exports.service import BatchExportModel from posthog.temporal.batch_exports.batch_exports import ( get_data_interval, iter_model_records, @@ -266,12 +267,11 @@ async def test_iter_records_with_single_field_and_alias(clickhouse_client, field record async for record_batch in iter_model_records( client=clickhouse_client, - model="events", + model=BatchExportModel(name="events", schema={"fields": [field], "values": {}}), team_id=team_id, is_backfill=False, interval_start=data_interval_start.isoformat(), interval_end=data_interval_end.isoformat(), - fields=[field], ) for record in record_batch.to_pylist() ] From 99efaec1b8342150746ffafee398b220482709a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Thu, 20 Jun 2024 18:34:51 +0200 Subject: [PATCH 43/53] chore: Add test utilities for multi-model batch exports --- .../temporal/tests/batch_exports/conftest.py | 24 +- posthog/temporal/tests/utils/persons.py | 239 ++++++++++++++++++ 2 files changed, 260 insertions(+), 3 deletions(-) create mode 100644 posthog/temporal/tests/utils/persons.py diff --git a/posthog/temporal/tests/batch_exports/conftest.py b/posthog/temporal/tests/batch_exports/conftest.py index deebf15349e3a..da5598f9d8ca0 100644 --- a/posthog/temporal/tests/batch_exports/conftest.py +++ b/posthog/temporal/tests/batch_exports/conftest.py @@ -46,6 +46,17 @@ async def truncate_events(clickhouse_client): await clickhouse_client.execute_query("TRUNCATE TABLE IF EXISTS `sharded_events`") +@pytest_asyncio.fixture(autouse=True) +async def truncate_persons(clickhouse_client): + """Fixture to automatically truncate person and person_distinct_id2 after a test. + + This is useful if during the test setup we insert a lot of persons we wish to clean-up. + """ + yield + await clickhouse_client.execute_query("TRUNCATE TABLE IF EXISTS `person`") + await clickhouse_client.execute_query("TRUNCATE TABLE IF EXISTS `person_distinct_id2`") + + @pytest.fixture def batch_export_schema(request) -> dict | None: """A parametrizable fixture to configure a batch export schema. @@ -135,7 +146,7 @@ async def create_clickhouse_tables_and_views(clickhouse_client, django_db_setup) CREATE_EVENTS_BATCH_EXPORT_VIEW_UNBOUNDED, CREATE_PERSONS_BATCH_EXPORT_VIEW, ) - from posthog.clickhouse.schema import CREATE_KAFKA_TABLE_QUERIES + from posthog.clickhouse.schema import CREATE_KAFKA_TABLE_QUERIES, build_query create_view_queries = ( CREATE_EVENTS_BATCH_EXPORT_VIEW, @@ -145,11 +156,18 @@ async def create_clickhouse_tables_and_views(clickhouse_client, django_db_setup) ) clickhouse_tasks = set() - for query in create_view_queries + CREATE_KAFKA_TABLE_QUERIES: + for query in create_view_queries + tuple(map(build_query, CREATE_KAFKA_TABLE_QUERIES)): task = asyncio.create_task(clickhouse_client.execute_query(query)) clickhouse_tasks.add(task) task.add_done_callback(clickhouse_tasks.discard) - await asyncio.wait(clickhouse_tasks) + done, pending = await asyncio.wait(clickhouse_tasks) + + if len(pending) > 0: + raise ValueError("Not all required tables and views were created in time") + + for task in done: + if exc := task.exception(): + raise exc return diff --git a/posthog/temporal/tests/utils/persons.py b/posthog/temporal/tests/utils/persons.py new file mode 100644 index 0000000000000..1e7b54c2a85e4 --- /dev/null +++ b/posthog/temporal/tests/utils/persons.py @@ -0,0 +1,239 @@ +"""Test utilities that deal with test person generation.""" + +import datetime as dt +import json +import random +import typing +import uuid + +from posthog.temporal.common.clickhouse import ClickHouseClient +from posthog.temporal.tests.utils.datetimes import date_range + + +class PersonValues(typing.TypedDict): + """Person values to be inserted for testing.""" + + id: str + created_at: str + team_id: int + properties: dict | None + is_identified: bool + is_deleted: bool + version: int + _timestamp: str + + +def generate_test_persons( + count: int, + team_id: int, + timestamp_start: dt.datetime, + timestamp_end: dt.datetime, + person_id: uuid.UUID | None = None, + version: int = 1, + properties: dict | None = None, + is_identified: bool = True, + is_deleted: bool = False, + start: int = 0, +) -> list[PersonValues]: + """Generate a list of persons for testing.""" + timestamps = random.sample( + list(date_range(timestamp_start + dt.timedelta(seconds=1) * start, timestamp_end, dt.timedelta(seconds=1))), + k=count, + ) + + persons: list[PersonValues] = [] + for _ in range(start, count + start): + timestamp = timestamps.pop() + person = { + "id": str(person_id) if person_id else str(uuid.uuid4()), + "created_at": timestamp.strftime("%Y-%m-%d %H:%M:%S.%f"), + "team_id": team_id, + "properties": properties, + "is_identified": is_identified, + "is_deleted": is_deleted, + "version": version, + "_timestamp": timestamp.strftime("%Y-%m-%d %H:%M:%S"), + } + persons.append(person) + + return persons + + +async def insert_person_values_in_clickhouse(client: ClickHouseClient, persons: list[PersonValues]): + """Execute an insert query to insert provided PersonValues into person.""" + await client.execute_query( + f""" + INSERT INTO `person` ( + id, + team_id, + created_at, + properties, + is_identified, + is_deleted, + version, + _timestamp + ) + VALUES + """, + *[ + ( + person["id"], + person["team_id"], + person["created_at"], + json.dumps(person["properties"]) if isinstance(person["properties"], dict) else person["properties"], + person["is_identified"], + person["is_deleted"], + person["version"], + person["_timestamp"], + ) + for person in persons + ], + ) + + +async def generate_test_persons_in_clickhouse( + client: ClickHouseClient, + team_id: int, + start_time: dt.datetime, + end_time: dt.datetime, + count: int = 100, + count_other_team: int = 0, + person_id: uuid.UUID | None = None, + version: int = 1, + properties: dict | None = None, + is_identified: bool = True, + is_deleted: bool = False, + batch_size: int = 10000, +) -> tuple[list[PersonValues], list[PersonValues]]: + persons: list[PersonValues] = [] + while len(persons) < count: + persons_to_insert = generate_test_persons( + count=min(count - len(persons), batch_size), + team_id=team_id, + timestamp_start=start_time, + timestamp_end=end_time, + person_id=person_id, + properties=properties, + is_identified=is_identified, + is_deleted=is_deleted, + version=version, + start=len(persons), + ) + + await insert_person_values_in_clickhouse(client=client, persons=persons_to_insert) + + persons.extend(persons_to_insert) + + persons_from_other_team = generate_test_persons( + count=count_other_team, + team_id=team_id + random.randint(1, 1000), + timestamp_start=start_time, + timestamp_end=end_time, + person_id=person_id, + properties=properties, + is_identified=is_identified, + is_deleted=is_deleted, + version=version, + start=len(persons), + ) + + await insert_person_values_in_clickhouse(client=client, persons=persons_from_other_team) + return (persons, persons_from_other_team) + + +class PersonDistinctId2Values(typing.TypedDict): + """Values to be inserted in person_distinct_id2 for testing.""" + + team_id: int + distinct_id: str + person_id: str + is_deleted: bool + version: int + _timestamp: str + + +def generate_test_person_distinct_id2( + count: int, + team_id: int, + timestamp: dt.datetime, + distinct_id: str, + person_id: uuid.UUID | None = None, + version: int = 1, + is_deleted: bool = False, +) -> list[PersonDistinctId2Values]: + """Generate a row of person_distinct_id2 values for testing.""" + person: PersonDistinctId2Values = { + "team_id": team_id, + "distinct_id": distinct_id, + "person_id": str(person_id) if person_id else str(uuid.uuid4()), + "is_deleted": is_deleted, + "version": version, + "_timestamp": timestamp.strftime("%Y-%m-%d %H:%M:%S"), + } + + return person + + +async def insert_person_distinct_id2_values_in_clickhouse( + client: ClickHouseClient, persons: list[PersonDistinctId2Values] +): + """Execute an insert query to insert provided PersonDistinctId2Values into person.""" + await client.execute_query( + f""" + INSERT INTO `person_distinct_id2` ( + team_id, + distinct_id, + person_id, + is_deleted, + version, + _timestamp + ) + VALUES + """, + *[ + ( + person["team_id"], + person["distinct_id"], + person["person_id"], + person["is_deleted"], + person["version"], + person["_timestamp"], + ) + for person in persons + ], + ) + + +async def generate_test_person_distinct_id2_in_clickhouse( + client: ClickHouseClient, + team_id: int, + distinct_id: str, + timestamp: dt.datetime, + person_id: uuid.UUID | None = None, + version: int = 1, + is_deleted: bool = False, +) -> tuple[list[PersonDistinctId2Values], list[PersonDistinctId2Values]]: + person = generate_test_person_distinct_id2( + count=1, + team_id=team_id, + timestamp=timestamp, + distinct_id=distinct_id, + person_id=person_id, + is_deleted=is_deleted, + version=version, + ) + + await insert_person_distinct_id2_values_in_clickhouse(client=client, persons=[person]) + + person_from_other_team = generate_test_person_distinct_id2( + count=1, + team_id=team_id + random.randint(1, 1000), + timestamp=timestamp, + distinct_id=distinct_id, + person_id=person_id, + is_deleted=is_deleted, + version=version, + ) + + await insert_person_distinct_id2_values_in_clickhouse(client=client, persons=[person_from_other_team]) + return (person, person_from_other_team) From 354a93653ab2d70c55edd088db30b2791bb4d650 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Thu, 20 Jun 2024 18:35:24 +0200 Subject: [PATCH 44/53] fix: Pass properties included as keyword arguments --- .../temporal/batch_exports/batch_exports.py | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/posthog/temporal/batch_exports/batch_exports.py b/posthog/temporal/batch_exports/batch_exports.py index 520a1f5f0a061..3b4e5e0b435c9 100644 --- a/posthog/temporal/batch_exports/batch_exports.py +++ b/posthog/temporal/batch_exports/batch_exports.py @@ -151,7 +151,13 @@ async def iter_model_records( async def iter_records_from_model_view( - client: ClickHouseClient, model_name: str, is_backfill: bool, team_id: int, **parameters + client: ClickHouseClient, + model_name: str, + is_backfill: bool, + team_id: int, + interval_start: str, + interval_end: str, + **parameters, ) -> AsyncRecordsGenerator: if model_name == "persons": view = SELECT_FROM_PERSONS_VIEW @@ -161,10 +167,20 @@ async def iter_records_from_model_view( # without battle testing it first. # There are already changes going out to the queries themselves that will impact events in a # positive way. So, we can come back later and drop this block. - for record_batch in iter_records(client, team_id=team_id, is_backfill=is_backfill, **parameters): + for record_batch in iter_records( + client, + team_id=team_id, + is_backfill=is_backfill, + interval_start=interval_start, + interval_end=interval_end, + **parameters, + ): yield record_batch return + parameters["team_id"] = team_id + parameters["interval_start"] = dt.datetime.fromisoformat(interval_start).strftime("%Y-%m-%d %H:%M:%S") + parameters["interval_end"] = dt.datetime.fromisoformat(interval_end).strftime("%Y-%m-%d %H:%M:%S") async for record_batch in client.astream_query_as_arrow(view, query_parameters=parameters): yield record_batch From d87a15ede3e843e96a317c134c9e0363790dd8e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Thu, 20 Jun 2024 18:35:41 +0200 Subject: [PATCH 45/53] fix: Support custom key prefixes for multi-model --- posthog/temporal/batch_exports/s3_batch_export.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posthog/temporal/batch_exports/s3_batch_export.py b/posthog/temporal/batch_exports/s3_batch_export.py index 03dfd8406c584..fa629f705abc9 100644 --- a/posthog/temporal/batch_exports/s3_batch_export.py +++ b/posthog/temporal/batch_exports/s3_batch_export.py @@ -62,7 +62,7 @@ def get_allowed_template_variables(inputs) -> dict[str, str]: "year": f"{export_datetime:%Y}", "data_interval_start": inputs.data_interval_start, "data_interval_end": inputs.data_interval_end, - "table": "events", + "table": inputs.batch_export_model.name if inputs.batch_export_model is not None else "events", } From 38d196faaf60531bd2abaebf71a2aa7362d01a49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Thu, 20 Jun 2024 18:35:55 +0200 Subject: [PATCH 46/53] feat: Unit testing for S3 batch exports with multi-model support --- .../test_s3_batch_export_workflow.py | 478 +++++++++--------- 1 file changed, 233 insertions(+), 245 deletions(-) diff --git a/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py b/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py index 9467b294b7107..ec884d946260b 100644 --- a/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py +++ b/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py @@ -3,9 +3,7 @@ import functools import json import os -from random import randint -from unittest import skip -from uuid import uuid4 +import uuid import aioboto3 import botocore.exceptions @@ -19,10 +17,10 @@ from temporalio.testing import WorkflowEnvironment from temporalio.worker import UnsandboxedWorkflowRunner, Worker -from posthog.batch_exports.service import BatchExportSchema +from posthog.batch_exports.service import BatchExportModel, BatchExportSchema from posthog.temporal.batch_exports.batch_exports import ( finish_batch_export_run, - iter_records, + iter_model_records, start_batch_export_run, ) from posthog.temporal.batch_exports.s3_batch_export import ( @@ -45,6 +43,10 @@ adelete_batch_export, afetch_batch_export_runs, ) +from posthog.temporal.tests.utils.persons import ( + generate_test_person_distinct_id2_in_clickhouse, + generate_test_persons_in_clickhouse, +) from posthog.temporal.tests.utils.s3 import read_parquet_from_s3, read_s3_data_as_json pytestmark = [pytest.mark.asyncio, pytest.mark.django_db] @@ -100,13 +102,16 @@ def bucket_name(request) -> str: try: return request.param except AttributeError: - return f"{TEST_ROOT_BUCKET}-{str(uuid4())}" + return f"{TEST_ROOT_BUCKET}-{str(uuid.uuid4())}" @pytest.fixture -def s3_key_prefix(): +def s3_key_prefix(request): """An S3 key prefix to use when putting files in a bucket.""" - return f"posthog-events-{str(uuid4())}" + try: + return request.param + except AttributeError: + return f"posthog-data-{str(uuid.uuid4())}" @pytest.fixture @@ -181,9 +186,10 @@ async def assert_clickhouse_records_in_s3( data_interval_end: dt.datetime, exclude_events: list[str] | None = None, include_events: list[str] | None = None, - batch_export_schema: BatchExportSchema | None = None, + batch_export_model: BatchExportModel | BatchExportSchema | None = None, compression: str | None = None, file_format: str = "JSONLines", + is_backfill: bool = False, ): """Assert ClickHouse records are written to JSON in key_prefix in S3 bucket_name. @@ -210,21 +216,29 @@ async def assert_clickhouse_records_in_s3( json_columns=json_columns, ) - if batch_export_schema is not None: - schema_column_names = [field["alias"] for field in batch_export_schema["fields"]] - else: - schema_column_names = [field["alias"] for field in s3_default_fields()] + schema_column_names = [field["alias"] for field in s3_default_fields()] + if batch_export_model is not None: + if isinstance(batch_export_model, BatchExportModel): + batch_export_schema = batch_export_model.schema + else: + batch_export_schema = batch_export_model + + if batch_export_schema is not None: + schema_column_names = [field["alias"] for field in batch_export_schema["fields"]] + elif isinstance(batch_export_model, BatchExportModel) and batch_export_model.name == "persons": + schema_column_names = ["team_id", "distinct_id", "person_id", "properties", "_inserted_at"] expected_records = [] - for record_batch in iter_records( + async for record_batch in iter_model_records( client=clickhouse_client, + model=batch_export_model, team_id=team_id, interval_start=data_interval_start.isoformat(), interval_end=data_interval_end.isoformat(), exclude_events=exclude_events, include_events=include_events, - fields=batch_export_schema["fields"] if batch_export_schema is not None else s3_default_fields(), - extra_query_parameters=batch_export_schema["values"] if batch_export_schema is not None else None, + destination_default_fields=s3_default_fields(), + is_backfill=is_backfill, ): for record in record_batch.to_pylist(): expected_record = {} @@ -243,12 +257,29 @@ async def assert_clickhouse_records_in_s3( expected_records.append(expected_record) - assert len(s3_data) == len(expected_records) - assert s3_data[0] == expected_records[0] - assert s3_data == expected_records, f"Not all s3 records match expected records. Not printing due to large size." - + if "team_id" in schema_column_names: + assert all(record["team_id"] == team_id for record in s3_data) -TEST_S3_SCHEMAS: list[BatchExportSchema | None] = [ + assert s3_data[0] == expected_records[0] + assert len(s3_data) == len(expected_records) + assert s3_data == expected_records + + +TEST_S3_MODELS: list[BatchExportModel, BatchExportSchema | None] = [ + BatchExportModel( + name="a-custom-model", + schema={ + "fields": [ + {"expression": "event", "alias": "my_event_name"}, + {"expression": "nullIf(JSONExtractString(properties, %(hogql_val_0)s), '')", "alias": "browser"}, + {"expression": "nullIf(JSONExtractString(properties, %(hogql_val_1)s), '')", "alias": "os"}, + {"expression": "nullIf(properties, '')", "alias": "all_properties"}, + ], + "values": {"hogql_val_0": "$browser", "hogql_val_1": "$os"}, + }, + ), + BatchExportModel(name="events", schema=None), + BatchExportModel(name="persons", schema=None), { "fields": [ {"expression": "event", "alias": "my_event_name"}, @@ -258,57 +289,42 @@ async def assert_clickhouse_records_in_s3( ], "values": {"hogql_val_0": "$browser", "hogql_val_1": "$os"}, }, - { - "fields": [ - {"expression": "event", "alias": "my_event_name"}, - {"expression": "1 + 1", "alias": "two"}, - ], - "values": {}, - }, None, ] -@pytest.mark.parametrize("compression", [None, "gzip", "brotli"], indirect=True) -@pytest.mark.parametrize("exclude_events", [None, ["test-exclude"]], indirect=True) -@pytest.mark.parametrize("batch_export_schema", TEST_S3_SCHEMAS) -@pytest.mark.parametrize("file_format", FILE_FORMAT_EXTENSIONS.keys()) -async def test_insert_into_s3_activity_puts_data_into_s3( - clickhouse_client, - bucket_name, - minio_client, - activity_environment, - compression, - exclude_events, - file_format, - batch_export_schema: BatchExportSchema | None, -): - """Test that the insert_into_s3_activity function ends up with data into S3. +@pytest.fixture +def data_interval_start(data_interval_end, interval): + if interval == "hour": + interval_time_delta = dt.timedelta(hours=1) + elif interval == "day": + interval_time_delta = dt.timedelta(days=1) + elif interval == "week": + interval_time_delta = dt.timedelta(weeks=1) + elif interval.startswith("every"): + _, value, unit = interval.split(" ") + kwargs = {unit: int(value)} + interval_time_delta = dt.timedelta(**kwargs) + else: + raise ValueError(f"Invalid interval: '{interval}'") - We use the generate_test_events_in_clickhouse function to generate several sets - of events. Some of these sets are expected to be exported, and others not. Expected - events are those that: - * Are created for the team_id of the batch export. - * Are created in the date range of the batch export. - * Are not duplicates of other events that are in the same batch. - * Do not have an event name contained in the batch export's exclude_events. + return data_interval_end - interval_time_delta - Once we have these events, we pass them to the assert_clickhouse_records_in_s3 function to check - that they appear in the expected S3 bucket and key. - """ - data_interval_start = dt.datetime(2023, 4, 20, 14, 0, 0, tzinfo=dt.timezone.utc) - data_interval_end = dt.datetime(2023, 4, 25, 15, 0, 0, tzinfo=dt.timezone.utc) - # Generate a random team id integer. There's still a chance of a collision, - # but it's very small. - team_id = randint(1, 1000000) +@pytest.fixture +def data_interval_end(interval): + return dt.datetime(2023, 4, 25, 15, 0, 0, tzinfo=dt.timezone.utc) + +@pytest_asyncio.fixture +async def generate_test_data(ateam, clickhouse_client, exclude_events, data_interval_start, data_interval_end): + """Generate test data in ClickHouse.""" await generate_test_events_in_clickhouse( client=clickhouse_client, - team_id=team_id, + team_id=ateam.pk, start_time=data_interval_start, end_time=data_interval_end, - count=10000, + count=1000, count_outside_range=10, count_other_team=10, duplicate=True, @@ -318,7 +334,7 @@ async def test_insert_into_s3_activity_puts_data_into_s3( await generate_test_events_in_clickhouse( client=clickhouse_client, - team_id=team_id, + team_id=ateam.pk, start_time=data_interval_start, end_time=data_interval_end, count=5, @@ -327,12 +343,13 @@ async def test_insert_into_s3_activity_puts_data_into_s3( properties=None, person_properties=None, ) + events_to_export_created = 1005 if exclude_events: for event_name in exclude_events: await generate_test_events_in_clickhouse( client=clickhouse_client, - team_id=team_id, + team_id=ateam.pk, start_time=data_interval_start, end_time=data_interval_end, count=5, @@ -341,15 +358,78 @@ async def test_insert_into_s3_activity_puts_data_into_s3( event_name=event_name, ) - # Make a random string to prefix the S3 keys with. This allows us to ensure - # isolation of the test, and also to check that the data is being written. - prefix = str(uuid4()) + persons, _ = await generate_test_persons_in_clickhouse( + client=clickhouse_client, + team_id=ateam.pk, + start_time=data_interval_start, + end_time=data_interval_end, + count=100, + count_other_team=10, + properties={"utm_medium": "referral", "$initial_os": "Linux"}, + ) + + for person in persons: + await generate_test_person_distinct_id2_in_clickhouse( + client=clickhouse_client, + team_id=ateam.pk, + person_id=uuid.UUID(person["id"]), + distinct_id=f"distinct-id-{uuid.UUID(person['id'])}", + timestamp=dt.datetime.fromisoformat(person["_timestamp"]), + ) + + persons_to_export_created = 100 + + return (events_to_export_created, persons_to_export_created) + + +@pytest.mark.parametrize("compression", [None, "gzip", "brotli"], indirect=True) +@pytest.mark.parametrize("exclude_events", [None, ["test-exclude"]], indirect=True) +@pytest.mark.parametrize("model", TEST_S3_MODELS) +@pytest.mark.parametrize("file_format", FILE_FORMAT_EXTENSIONS.keys()) +async def test_insert_into_s3_activity_puts_data_into_s3( + clickhouse_client, + bucket_name, + minio_client, + activity_environment, + compression, + exclude_events, + file_format, + data_interval_start, + data_interval_end, + model: BatchExportModel | BatchExportSchema | None, + generate_test_data, + ateam, +): + """Test that the insert_into_s3_activity function ends up with data into S3. + + We use the generate_test_events_in_clickhouse function to generate several sets + of events. Some of these sets are expected to be exported, and others not. Expected + events are those that: + * Are created for the team_id of the batch export. + * Are created in the date range of the batch export. + * Are not duplicates of other events that are in the same batch. + * Do not have an event name contained in the batch export's exclude_events. + + Once we have these events, we pass them to the assert_clickhouse_records_in_s3 function to check + that they appear in the expected S3 bucket and key. + """ + data_interval_start = dt.datetime(2023, 4, 20, 14, 0, 0, tzinfo=dt.timezone.utc) + data_interval_end = dt.datetime(2023, 4, 25, 15, 0, 0, tzinfo=dt.timezone.utc) + + prefix = str(uuid.uuid4()) + + batch_export_schema: BatchExportSchema | None = None + batch_export_model: BatchExportModel | None = None + if isinstance(model, BatchExportModel): + batch_export_model = model + elif model is not None: + batch_export_schema = model insert_inputs = S3InsertInputs( bucket_name=bucket_name, region="us-east-1", prefix=prefix, - team_id=team_id, + team_id=ateam.pk, data_interval_start=data_interval_start.isoformat(), data_interval_end=data_interval_end.isoformat(), aws_access_key_id="object_storage_root_user", @@ -357,8 +437,9 @@ async def test_insert_into_s3_activity_puts_data_into_s3( endpoint_url=settings.OBJECT_STORAGE_ENDPOINT, compression=compression, exclude_events=exclude_events, - batch_export_schema=batch_export_schema, file_format=file_format, + batch_export_schema=batch_export_schema, + batch_export_model=batch_export_model, ) with override_settings( @@ -366,21 +447,23 @@ async def test_insert_into_s3_activity_puts_data_into_s3( ): # 5MB, the minimum for Multipart uploads records_exported = await activity_environment.run(insert_into_s3_activity, insert_inputs) - assert records_exported == 10005 + (events_to_export_created, persons_to_export_created) = generate_test_data + assert records_exported == events_to_export_created or records_exported == persons_to_export_created await assert_clickhouse_records_in_s3( s3_compatible_client=minio_client, clickhouse_client=clickhouse_client, bucket_name=bucket_name, key_prefix=prefix, - team_id=team_id, + team_id=ateam.pk, data_interval_start=data_interval_start, data_interval_end=data_interval_end, - batch_export_schema=batch_export_schema, + batch_export_model=model, exclude_events=exclude_events, include_events=None, compression=compression, file_format=file_format, + is_backfill=False, ) @@ -434,7 +517,7 @@ async def s3_batch_export( @pytest.mark.parametrize("interval", ["hour", "day"], indirect=True) @pytest.mark.parametrize("compression", [None, "gzip", "brotli"], indirect=True) @pytest.mark.parametrize("exclude_events", [None, ["test-exclude"]], indirect=True) -@pytest.mark.parametrize("batch_export_schema", TEST_S3_SCHEMAS) +@pytest.mark.parametrize("model", TEST_S3_MODELS) @pytest.mark.parametrize("file_format", FILE_FORMAT_EXTENSIONS.keys(), indirect=True) async def test_s3_export_workflow_with_minio_bucket( clickhouse_client, @@ -446,8 +529,11 @@ async def test_s3_export_workflow_with_minio_bucket( compression, exclude_events, s3_key_prefix, - batch_export_schema, file_format, + data_interval_start, + data_interval_end, + model: BatchExportModel | BatchExportSchema | None, + generate_test_data, ): """Test S3BatchExport Workflow end-to-end by using a local MinIO bucket instead of S3. @@ -458,41 +544,24 @@ async def test_s3_export_workflow_with_minio_bucket( will require its prescense in the database when running. This model is indirectly parametrized by several fixtures. Refer to them for more information. """ - data_interval_end = dt.datetime.fromisoformat("2023-04-25T14:30:00.000000+00:00") - data_interval_start = data_interval_end - s3_batch_export.interval_time_delta - - await generate_test_events_in_clickhouse( - client=clickhouse_client, - team_id=ateam.pk, - start_time=data_interval_start, - end_time=data_interval_end, - count=100, - count_outside_range=10, - count_other_team=10, - duplicate=True, - properties={"$browser": "Chrome", "$os": "Mac OS X"}, - person_properties={"utm_medium": "referral", "$initial_os": "Linux"}, - ) - - if exclude_events: - for event_name in exclude_events: - await generate_test_events_in_clickhouse( - client=clickhouse_client, - team_id=ateam.pk, - start_time=data_interval_start, - end_time=data_interval_end, - count=5, - count_outside_range=0, - count_other_team=0, - event_name=event_name, - ) - - workflow_id = str(uuid4()) + if isinstance(model, BatchExportModel) and model.name == "person" and exclude_events is not None: + # Eventually, this setting should be part of the model via some "filters" attribute. + pytest.skip("Unnecessary test case as person batch export is not affected by 'exclude_events'") + + batch_export_schema: BatchExportSchema | None = None + batch_export_model: BatchExportModel | None = None + if isinstance(model, BatchExportModel): + batch_export_model = model + elif model is not None: + batch_export_schema = model + + workflow_id = str(uuid.uuid4()) inputs = S3BatchExportInputs( team_id=ateam.pk, batch_export_id=str(s3_batch_export.id), data_interval_end=data_interval_end.isoformat(), interval=interval, + batch_export_model=batch_export_model, batch_export_schema=batch_export_schema, **s3_batch_export.destination.config, ) @@ -532,7 +601,7 @@ async def test_s3_export_workflow_with_minio_bucket( team_id=ateam.pk, data_interval_start=data_interval_start, data_interval_end=data_interval_end, - batch_export_schema=batch_export_schema, + batch_export_model=model, exclude_events=exclude_events, compression=compression, file_format=file_format, @@ -542,7 +611,7 @@ async def test_s3_export_workflow_with_minio_bucket( @pytest.mark.parametrize("interval", ["hour"], indirect=True) @pytest.mark.parametrize("compression", [None], indirect=True) @pytest.mark.parametrize("exclude_events", [None], indirect=True) -@pytest.mark.parametrize("batch_export_schema", TEST_S3_SCHEMAS) +@pytest.mark.parametrize("model", TEST_S3_MODELS) async def test_s3_export_workflow_with_minio_bucket_without_events( clickhouse_client, minio_client, @@ -553,21 +622,29 @@ async def test_s3_export_workflow_with_minio_bucket_without_events( compression, exclude_events, s3_key_prefix, - batch_export_schema, + model, + data_interval_start, + data_interval_end, ): """Test S3BatchExport Workflow end-to-end without any events to export. The workflow should update the batch export run status to completed and set 0 as `records_completed`. """ - data_interval_end = dt.datetime.fromisoformat("2023-04-25T14:30:00.000000+00:00") - - workflow_id = str(uuid4()) + batch_export_schema: BatchExportSchema | None = None + batch_export_model: BatchExportModel | None = None + if isinstance(model, BatchExportModel): + batch_export_model = model + elif model is not None: + batch_export_schema = model + + workflow_id = str(uuid.uuid4()) inputs = S3BatchExportInputs( team_id=ateam.pk, batch_export_id=str(s3_batch_export.id), data_interval_end=data_interval_end.isoformat(), interval=interval, batch_export_schema=batch_export_schema, + batch_export_model=batch_export_model, **s3_batch_export.destination.config, ) @@ -628,7 +705,7 @@ async def s3_client(bucket_name, s3_key_prefix): @pytest.mark.parametrize("exclude_events", [None, ["test-exclude"]], indirect=True) @pytest.mark.parametrize("encryption", [None, "AES256", "aws:kms"], indirect=True) @pytest.mark.parametrize("bucket_name", [os.getenv("S3_TEST_BUCKET")], indirect=True) -@pytest.mark.parametrize("batch_export_schema", TEST_S3_SCHEMAS) +@pytest.mark.parametrize("model", TEST_S3_MODELS) @pytest.mark.parametrize("file_format", FILE_FORMAT_EXTENSIONS.keys(), indirect=True) async def test_s3_export_workflow_with_s3_bucket( s3_client, @@ -641,8 +718,11 @@ async def test_s3_export_workflow_with_s3_bucket( encryption, exclude_events, ateam, - batch_export_schema, file_format, + data_interval_start, + data_interval_end, + model: BatchExportModel | BatchExportSchema | None, + generate_test_data, ): """Test S3 Export Workflow end-to-end by using an S3 bucket. @@ -657,36 +737,17 @@ async def test_s3_export_workflow_with_s3_bucket( will require its prescense in the database when running. This model is indirectly parametrized by several fixtures. Refer to them for more information. """ - data_interval_end = dt.datetime.fromisoformat("2023-04-25T14:30:00.000000") - data_interval_start = data_interval_end - s3_batch_export.interval_time_delta + if isinstance(model, BatchExportModel) and model.name == "person" and exclude_events is not None: + pytest.skip("Unnecessary test case as person batch export is not affected by 'exclude_events'") - await generate_test_events_in_clickhouse( - client=clickhouse_client, - team_id=ateam.pk, - start_time=data_interval_start, - end_time=data_interval_end, - count=100, - count_outside_range=10, - count_other_team=10, - duplicate=True, - properties={"$browser": "Chrome", "$os": "Mac OS X"}, - person_properties={"utm_medium": "referral", "$initial_os": "Linux"}, - ) - - if exclude_events: - for event_name in exclude_events: - await generate_test_events_in_clickhouse( - client=clickhouse_client, - team_id=ateam.pk, - start_time=data_interval_start, - end_time=data_interval_end, - count=5, - count_outside_range=0, - count_other_team=0, - event_name=event_name, - ) + batch_export_schema: BatchExportSchema | None = None + batch_export_model: BatchExportModel | None = None + if isinstance(model, BatchExportModel): + batch_export_model = model + elif model is not None: + batch_export_schema = model - workflow_id = str(uuid4()) + workflow_id = str(uuid.uuid4()) destination_config = s3_batch_export.destination.config | { "endpoint_url": None, "aws_access_key_id": os.getenv("AWS_ACCESS_KEY_ID"), @@ -698,6 +759,7 @@ async def test_s3_export_workflow_with_s3_bucket( data_interval_end=data_interval_end.isoformat(), interval=interval, batch_export_schema=batch_export_schema, + batch_export_model=batch_export_model, **destination_config, ) @@ -736,7 +798,7 @@ async def test_s3_export_workflow_with_s3_bucket( team_id=ateam.pk, data_interval_start=data_interval_start, data_interval_end=data_interval_end, - batch_export_schema=batch_export_schema, + batch_export_model=model, exclude_events=exclude_events, include_events=None, compression=compression, @@ -744,88 +806,6 @@ async def test_s3_export_workflow_with_s3_bucket( ) -@skip("Failing in CI, skip for now") -async def test_s3_export_workflow_with_minio_bucket_and_a_lot_of_data( - clickhouse_client, - minio_client, - bucket_name, - ateam, - compression, - exclude_events, - s3_key_prefix, - interval, - s3_batch_export, -): - """Test the S3BatchExport Workflow end-to-end by using a local MinIO bucket instead of S3. - - This test is the same as test_s3_export_workflow_with_minio_bucket, but we significantly increase the number - of rows generated to export to provide some guidance on whether we can perform under load. - """ - data_interval_end = dt.datetime.fromisoformat("2023-04-25T14:30:00.000000+00:00") - data_interval_start = data_interval_end - s3_batch_export.interval_time_delta - - await generate_test_events_in_clickhouse( - client=clickhouse_client, - team_id=ateam.pk, - start_time=data_interval_start, - end_time=data_interval_end, - count=100000, - count_outside_range=1000, - count_other_team=1000, - duplicate=True, - properties={"$browser": "Chrome", "$os": "Mac OS X"}, - person_properties={"utm_medium": "referral", "$initial_os": "Linux"}, - ) - - workflow_id = str(uuid4()) - inputs = S3BatchExportInputs( - team_id=ateam.pk, - batch_export_id=str(s3_batch_export.id), - data_interval_end=data_interval_end.isoformat(), - interval=interval, - **s3_batch_export.destination.config, - ) - - async with await WorkflowEnvironment.start_time_skipping() as activity_environment: - async with Worker( - activity_environment.client, - task_queue=settings.TEMPORAL_TASK_QUEUE, - workflows=[S3BatchExportWorkflow], - activities=[ - start_batch_export_run, - insert_into_s3_activity, - finish_batch_export_run, - ], - workflow_runner=UnsandboxedWorkflowRunner(), - ): - await activity_environment.client.execute_workflow( - S3BatchExportWorkflow.run, - inputs, - id=workflow_id, - task_queue=settings.TEMPORAL_TASK_QUEUE, - retry_policy=RetryPolicy(maximum_attempts=1), - execution_timeout=dt.timedelta(seconds=360), - ) - - runs = await afetch_batch_export_runs(batch_export_id=s3_batch_export.id) - assert len(runs) == 1 - - run = runs[0] - assert run.status == "Completed" - - await assert_clickhouse_records_in_s3( - s3_compatible_client=minio_client, - clickhouse_client=clickhouse_client, - bucket_name=bucket_name, - key_prefix=s3_key_prefix, - team_id=ateam.pk, - data_interval_start=data_interval_start, - data_interval_end=data_interval_end, - exclude_events=exclude_events, - compression=compression, - ) - - @pytest.mark.parametrize( "s3_key_prefix", [ @@ -837,8 +817,20 @@ async def test_s3_export_workflow_with_minio_bucket_and_a_lot_of_data( ], indirect=True, ) +@pytest.mark.parametrize("model", [TEST_S3_MODELS[1], TEST_S3_MODELS[2], None]) async def test_s3_export_workflow_with_minio_bucket_and_custom_key_prefix( - clickhouse_client, ateam, minio_client, bucket_name, compression, interval, s3_batch_export, s3_key_prefix + clickhouse_client, + ateam, + minio_client, + bucket_name, + compression, + interval, + s3_batch_export, + s3_key_prefix, + data_interval_end, + data_interval_start, + model: BatchExportModel | BatchExportSchema | None, + generate_test_data, ): """Test the S3BatchExport Workflow end-to-end by specifying a custom key prefix. @@ -846,27 +838,20 @@ async def test_s3_export_workflow_with_minio_bucket_and_custom_key_prefix( inserted_at to assert we properly default to _timestamp. This is relevant for rows inserted before inserted_at was added. """ - data_interval_end = dt.datetime.fromisoformat("2023-04-25T14:30:00.000000+00:00") - data_interval_start = data_interval_end - s3_batch_export.interval_time_delta - - await generate_test_events_in_clickhouse( - client=clickhouse_client, - team_id=ateam.pk, - start_time=data_interval_start, - end_time=data_interval_end, - count=100, - count_outside_range=10, - count_other_team=10, - duplicate=True, - properties={"$browser": "Chrome", "$os": "Mac OS X"}, - person_properties={"utm_medium": "referral", "$initial_os": "Linux"}, - ) - - workflow_id = str(uuid4()) + batch_export_schema: BatchExportSchema | None = None + batch_export_model: BatchExportModel | None = None + if isinstance(model, BatchExportModel): + batch_export_model = model + elif model is not None: + batch_export_schema = model + + workflow_id = str(uuid.uuid4()) inputs = S3BatchExportInputs( team_id=ateam.pk, batch_export_id=str(s3_batch_export.id), data_interval_end=data_interval_end.isoformat(), + batch_export_model=batch_export_model, + batch_export_schema=batch_export_schema, interval=interval, **s3_batch_export.destination.config, ) @@ -896,11 +881,12 @@ async def test_s3_export_workflow_with_minio_bucket_and_custom_key_prefix( assert len(runs) == 1 run = runs[0] + (events_to_export_created, persons_to_export_created) = generate_test_data assert run.status == "Completed" - assert run.records_completed == 100 + assert run.records_completed == events_to_export_created or run.records_completed == persons_to_export_created expected_key_prefix = s3_key_prefix.format( - table="events", + table=model.name if model is not None else "events", year=data_interval_end.year, # All of these must include leading 0s. month=data_interval_end.strftime("%m"), @@ -909,6 +895,7 @@ async def test_s3_export_workflow_with_minio_bucket_and_custom_key_prefix( minute=data_interval_end.strftime("%M"), second=data_interval_end.strftime("%S"), ) + objects = await minio_client.list_objects_v2(Bucket=bucket_name, Prefix=expected_key_prefix) key = objects["Contents"][0].get("Key") assert len(objects.get("Contents", [])) == 1 @@ -918,11 +905,12 @@ async def test_s3_export_workflow_with_minio_bucket_and_custom_key_prefix( s3_compatible_client=minio_client, clickhouse_client=clickhouse_client, bucket_name=bucket_name, - key_prefix=s3_key_prefix, + key_prefix=expected_key_prefix, team_id=ateam.pk, data_interval_start=data_interval_start, data_interval_end=data_interval_end, compression=compression, + batch_export_model=model, ) @@ -933,7 +921,7 @@ async def test_s3_export_workflow_handles_insert_activity_errors(ateam, s3_batch """ data_interval_end = dt.datetime.fromisoformat("2023-04-25T14:30:00.000000+00:00") - workflow_id = str(uuid4()) + workflow_id = str(uuid.uuid4()) inputs = S3BatchExportInputs( team_id=ateam.pk, batch_export_id=str(s3_batch_export.id), @@ -983,7 +971,7 @@ async def test_s3_export_workflow_handles_insert_activity_non_retryable_errors(a """ data_interval_end = dt.datetime.fromisoformat("2023-04-25T14:30:00.000000+00:00") - workflow_id = str(uuid4()) + workflow_id = str(uuid.uuid4()) inputs = S3BatchExportInputs( team_id=ateam.pk, batch_export_id=str(s3_batch_export.id), @@ -1036,7 +1024,7 @@ async def test_s3_export_workflow_handles_cancellation(ateam, s3_batch_export, i """ data_interval_end = dt.datetime.fromisoformat("2023-04-25T14:30:00.000000+00:00") - workflow_id = str(uuid4()) + workflow_id = str(uuid.uuid4()) inputs = S3BatchExportInputs( team_id=ateam.pk, batch_export_id=str(s3_batch_export.id), From 3f87f0380028e4a9c80e229bf1608df47a51a9db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Thu, 20 Jun 2024 18:49:07 +0200 Subject: [PATCH 47/53] fix: Add and correct type hints --- docker-compose.dev.yml | 2 -- .../tests/batch_exports/test_s3_batch_export_workflow.py | 4 ++-- posthog/temporal/tests/utils/persons.py | 6 +++--- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index f79697c73fbfd..b479c28e5f4f1 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -48,8 +48,6 @@ services: - ./docker/clickhouse/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d - ./docker/clickhouse/config.xml:/etc/clickhouse-server/config.xml - ./docker/clickhouse/users-dev.xml:/etc/clickhouse-server/users.xml - extra_hosts: - - 'host.docker.internal:host-gateway' depends_on: - kafka - zookeeper diff --git a/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py b/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py index ec884d946260b..950743bbaace1 100644 --- a/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py +++ b/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py @@ -265,7 +265,7 @@ async def assert_clickhouse_records_in_s3( assert s3_data == expected_records -TEST_S3_MODELS: list[BatchExportModel, BatchExportSchema | None] = [ +TEST_S3_MODELS: list[BatchExportModel | BatchExportSchema | None] = [ BatchExportModel( name="a-custom-model", schema={ @@ -886,7 +886,7 @@ async def test_s3_export_workflow_with_minio_bucket_and_custom_key_prefix( assert run.records_completed == events_to_export_created or run.records_completed == persons_to_export_created expected_key_prefix = s3_key_prefix.format( - table=model.name if model is not None else "events", + table=batch_export_model.name if batch_export_model is not None else "events", year=data_interval_end.year, # All of these must include leading 0s. month=data_interval_end.strftime("%m"), diff --git a/posthog/temporal/tests/utils/persons.py b/posthog/temporal/tests/utils/persons.py index 1e7b54c2a85e4..0a63a96d98fe5 100644 --- a/posthog/temporal/tests/utils/persons.py +++ b/posthog/temporal/tests/utils/persons.py @@ -44,7 +44,7 @@ def generate_test_persons( persons: list[PersonValues] = [] for _ in range(start, count + start): timestamp = timestamps.pop() - person = { + person: PersonValues = { "id": str(person_id) if person_id else str(uuid.uuid4()), "created_at": timestamp.strftime("%Y-%m-%d %H:%M:%S.%f"), "team_id": team_id, @@ -160,7 +160,7 @@ def generate_test_person_distinct_id2( person_id: uuid.UUID | None = None, version: int = 1, is_deleted: bool = False, -) -> list[PersonDistinctId2Values]: +) -> PersonDistinctId2Values: """Generate a row of person_distinct_id2 values for testing.""" person: PersonDistinctId2Values = { "team_id": team_id, @@ -212,7 +212,7 @@ async def generate_test_person_distinct_id2_in_clickhouse( person_id: uuid.UUID | None = None, version: int = 1, is_deleted: bool = False, -) -> tuple[list[PersonDistinctId2Values], list[PersonDistinctId2Values]]: +) -> tuple[PersonDistinctId2Values, PersonDistinctId2Values]: person = generate_test_person_distinct_id2( count=1, team_id=team_id, From 850ef73e607e3ccf3ee48e1efdab4fea48019e98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Thu, 20 Jun 2024 18:57:37 +0200 Subject: [PATCH 48/53] fix: Typo in parameter --- posthog/temporal/batch_exports/snowflake_batch_export.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posthog/temporal/batch_exports/snowflake_batch_export.py b/posthog/temporal/batch_exports/snowflake_batch_export.py index 137b32df56dec..4d966fc4e00a4 100644 --- a/posthog/temporal/batch_exports/snowflake_batch_export.py +++ b/posthog/temporal/batch_exports/snowflake_batch_export.py @@ -466,7 +466,7 @@ async def flush_to_snowflake( interval_end=inputs.data_interval_end, exclude_events=inputs.exclude_events, include_events=inputs.include_events, - destination_destination_default_fields=snowflake_default_fields(), + destination_default_fields=snowflake_default_fields(), is_backfill=inputs.is_backfill, ) first_record_batch, record_iterator = await apeek_first_and_rewind(record_iterator) From feaaf9f25616c4718b34b04337db7e488d2a38aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Thu, 20 Jun 2024 18:57:56 +0200 Subject: [PATCH 49/53] fix: API tests now work with model parameter --- posthog/api/test/batch_exports/test_create.py | 2 +- posthog/api/test/batch_exports/test_update.py | 37 ++++++++++--------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/posthog/api/test/batch_exports/test_create.py b/posthog/api/test/batch_exports/test_create.py index 2bc22b56d0b25..0728ac6bdfa4e 100644 --- a/posthog/api/test/batch_exports/test_create.py +++ b/posthog/api/test/batch_exports/test_create.py @@ -294,7 +294,7 @@ def test_create_batch_export_with_custom_schema(client: HttpClient): } assert batch_export.schema == expected_schema - assert args["batch_export_schema"] == expected_schema + assert args["batch_export_model"] == {"name": "events", "schema": expected_schema} @pytest.mark.parametrize( diff --git a/posthog/api/test/batch_exports/test_update.py b/posthog/api/test/batch_exports/test_update.py index 30333c206f953..7b749c62dc24f 100644 --- a/posthog/api/test/batch_exports/test_update.py +++ b/posthog/api/test/batch_exports/test_update.py @@ -315,23 +315,26 @@ def test_can_patch_hogql_query(client: HttpClient): args = json.loads(decoded_payload[0].data) assert args["bucket_name"] == "my-production-s3-bucket" assert args["interval"] == "hour" - assert args["batch_export_schema"] == { - "fields": [ - { - "alias": "uuid", - "expression": "toString(events.uuid)", - }, - { - "alias": "test", - "expression": "%(hogql_val_0)s", - }, - { - "alias": "n", - "expression": "accurateCastOrNull(plus(1, 1), %(hogql_val_1)s)", - }, - ], - "values": {"hogql_val_0": "test", "hogql_val_1": "Int64"}, - "hogql_query": "SELECT toString(uuid) AS uuid, 'test' AS test, toInt(plus(1, 1)) AS n FROM events", + assert args["batch_export_model"] == { + "name": "events", + "schema": { + "fields": [ + { + "alias": "uuid", + "expression": "toString(events.uuid)", + }, + { + "alias": "test", + "expression": "%(hogql_val_0)s", + }, + { + "alias": "n", + "expression": "accurateCastOrNull(plus(1, 1), %(hogql_val_1)s)", + }, + ], + "values": {"hogql_val_0": "test", "hogql_val_1": "Int64"}, + "hogql_query": "SELECT toString(uuid) AS uuid, 'test' AS test, toInt(plus(1, 1)) AS n FROM events", + }, } From 591c3eb46655280264870e1b1a98329764b1bb8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Mon, 24 Jun 2024 17:43:28 +0200 Subject: [PATCH 50/53] fix: Re-add hosts to docker-compose --- docker-compose.dev.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index b479c28e5f4f1..f79697c73fbfd 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -48,6 +48,8 @@ services: - ./docker/clickhouse/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d - ./docker/clickhouse/config.xml:/etc/clickhouse-server/config.xml - ./docker/clickhouse/users-dev.xml:/etc/clickhouse-server/users.xml + extra_hosts: + - 'host.docker.internal:host-gateway' depends_on: - kafka - zookeeper From 674e95db134be2a5a7c221847871076e19329d70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Mon, 24 Jun 2024 17:51:42 +0200 Subject: [PATCH 51/53] fix: Use UTC timezone alias --- .../tests/batch_exports/test_s3_batch_export_workflow.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py b/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py index 950743bbaace1..5c1db0e391c9c 100644 --- a/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py +++ b/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py @@ -313,7 +313,7 @@ def data_interval_start(data_interval_end, interval): @pytest.fixture def data_interval_end(interval): - return dt.datetime(2023, 4, 25, 15, 0, 0, tzinfo=dt.timezone.utc) + return dt.datetime(2023, 4, 25, 15, 0, 0, tzinfo=dt.UTC) @pytest_asyncio.fixture From fc3ef027643e7ed6918f4b6474708565fe1432b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Tue, 25 Jun 2024 10:32:04 +0200 Subject: [PATCH 52/53] fix: Add missing test column --- .../tests/batch_exports/test_s3_batch_export_workflow.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py b/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py index 5c1db0e391c9c..5a2ecfe6a3fb9 100644 --- a/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py +++ b/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py @@ -226,7 +226,7 @@ async def assert_clickhouse_records_in_s3( if batch_export_schema is not None: schema_column_names = [field["alias"] for field in batch_export_schema["fields"]] elif isinstance(batch_export_model, BatchExportModel) and batch_export_model.name == "persons": - schema_column_names = ["team_id", "distinct_id", "person_id", "properties", "_inserted_at"] + schema_column_names = ["team_id", "distinct_id", "person_id", "properties", "version", "_inserted_at"] expected_records = [] async for record_batch in iter_model_records( From e32b4a5b3cba41335be71568f8c45b8319e10431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Far=C3=ADas=20Santana?= Date: Tue, 25 Jun 2024 10:38:22 +0200 Subject: [PATCH 53/53] revert: Python 3.11 alias --- .../tests/batch_exports/test_s3_batch_export_workflow.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py b/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py index 5a2ecfe6a3fb9..ad33a48cd6149 100644 --- a/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py +++ b/posthog/temporal/tests/batch_exports/test_s3_batch_export_workflow.py @@ -313,7 +313,7 @@ def data_interval_start(data_interval_end, interval): @pytest.fixture def data_interval_end(interval): - return dt.datetime(2023, 4, 25, 15, 0, 0, tzinfo=dt.UTC) + return dt.datetime(2023, 4, 25, 15, 0, 0, tzinfo=dt.timezone.utc) @pytest_asyncio.fixture