Skip to content

Commit

Permalink
Merge pull request #21 from fivetran/feature/v2-updates
Browse files Browse the repository at this point in the history
feature/v2-updates
  • Loading branch information
fivetran-sheringuyen authored Sep 2, 2022
2 parents 1abbb79 + 54dbf64 commit 6ea231f
Show file tree
Hide file tree
Showing 36 changed files with 1,004 additions and 495 deletions.
1 change: 0 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
Pull Request
**Are you a current Fivetran customer?**
<!--- Please tell us your name, title and company -->

Expand Down
35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,38 @@
# dbt_pinterest v0.6.0
PR [#21](https://github.com/fivetran/dbt_pinterest/pull/21) includes the following changes:
## 🚨 Breaking Changes 🚨
- The `pin_promotion_report_pass_through_metric` variable has been renamed to `pinterest__pin_promotion_report_passthrough_metrics`.
- The declaration of passthrough variables within your root `dbt_project.yml` has changed. To allow for more flexibility and better tracking of passthrough columns, you will now want to define passthrough metrics in the following format:
> This applies to all passthrough metrics within the `dbt_pinterest` package and not just the `pinterest__pin_promotion_report_passthrough_metrics` example.
```yml
vars:
pinterest__pin_promotion_report_passthrough_metrics:
- name: "my_field_to_include" # Required: Name of the field within the source.
alias: "field_alias" # Optional: If you wish to alias the field within the staging model.
```
- The `pinterest_ads__ad_adapter` has been renamed to `pinterest_ads__url_report`.
- The `pinterest_ads__ad_group_ad_report` has been renamed to `pinterest_ads__ad_group_report`.
- The `pinterest_ads__campaign_ad_report` has been renamed to `pinterest_ads__campaign_report`.
## 🎉 Feature Enhancements 🎉
- Addition of the following new end models:
- `pinterest_ads__pin_promotion_report`
- Each record in this table represents the daily performance at the pin level.
- `pinterest_ads__advertiser_report`
- Each record in this table represents the daily performance at the advertiser level.
- `pinterest_ads__keyword_report`
- Each record in this table represents the daily performance at the ad group level for keywords.

- Inclusion of additional passthrough metrics:
- `pinterest__ad_group_report_passthrough_metrics`
- `pinterest__campaign_report_passthrough_metrics`
- `pinterest__advertiser_report_passthrough_metrics`
- `pinterest__keyword_report_passthrough_metrics`

- README updates for easier navigation and use of the package.
- Included grain uniqueness tests for each end model.

## Contributors
- [@bnealdefero](https://github.com/bnealdefero) [#21](https://github.com/fivetran/dbt_pinterest/pull/21)
# dbt_pinterest v0.5.0
🎉 dbt v1.0.0 Compatibility 🎉
## 🚨 Breaking Changes 🚨
Expand Down
5 changes: 5 additions & 0 deletions DECISIONLOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Decision Log
## UTM Report Filtering
This package contains a `pinterest_ads__url_report` which provides daily metrics for your utm compatible ads. It is important to note that not all Ads within Pinterest's `pin_promotion_report` source table leverage utm parameters. Therefore, this package takes an opinionated approach to filter out any records that do not contain utm parameters or leverage a url within the promoted pin.

If you would like to leverage a report that contains all promoted pins and their daily metrics, we would suggest you leverage the `pinterest_ads__ad_report` which does not apply any filtering.
197 changes: 120 additions & 77 deletions README.md

Large diffs are not rendered by default.

18 changes: 14 additions & 4 deletions dbt_project.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
name: 'pinterest'
version: '0.5.0'
version: '0.6.0'
config-version: 2
require-dbt-version: [">=1.0.0", "<2.0.0"]
models:
pinterest:
+schema: pinterest
+materialized: table
intermediate:
+materialized: ephemeral

vars:
pinterest:
pin_promotion_report: "{{ ref('stg_pinterest_ads__pin_promotion_report') }}"
ad_group_history: "{{ ref('stg_pinterest_ads__ad_group_history') }}"
campaign_history: "{{ ref('stg_pinterest_ads__campaign_history') }}"
pin_promotion_history: "{{ ref('stg_pinterest_ads__pin_promotion_history') }}"
pin_promotion_report_pass_through_metric: []
ad_group_report: "{{ ref('stg_pinterest_ads__ad_group_report') }}"
advertiser_history: "{{ ref('stg_pinterest_ads__advertiser_history') }}"
advertiser_report: "{{ ref('stg_pinterest_ads__advertiser_report') }}"
campaign_report: "{{ ref('stg_pinterest_ads__campaign_report') }}"
keyword_history: "{{ ref('stg_pinterest_ads__keyword_history') }}"
keyword_report: "{{ ref('stg_pinterest_ads__keyword_report') }}"

pinterest__pin_promotion_report_passthrough_metrics: []
pinterest__ad_group_report_passthrough_metrics: []
pinterest__advertiser_report_passthrough_metrics: []
pinterest__campaign_report_passthrough_metrics: []
pinterest__keyword_report_passthrough_metrics: []
2 changes: 1 addition & 1 deletion docs/catalog.json

Large diffs are not rendered by default.

32 changes: 16 additions & 16 deletions docs/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/manifest.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/run_results.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion integration_tests/ci/sample.profiles.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ integration_tests:
password: "{{ env_var('CI_POSTGRES_DBT_PASS') }}"
port: 5432
dbname: "{{ env_var('CI_POSTGRES_DBT_DATABASE') }}"
schema: facebook_ads_creative_history_integration_tests
schema: pinterest_integration_tests
threads: 8
keepalives_idle: 0
sslmode: prefer
47 changes: 22 additions & 25 deletions integration_tests/dbt_project.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,33 @@
name: 'pinterest_integration_tests'
version: '0.4.0'
version: '0.6.0'
profile: 'integration_tests'
config-version: 2

vars:
pinterest_source:
ad_group_history: "{{ ref('ad_group_history_data') }}"
campaign_history: "{{ ref('campaign_history_data') }}"
pin_promotion_history: "{{ ref('pin_promotion_history_data') }}"
pin_promotion_report: "{{ ref('pin_promotion_report_data') }}"
pinterest_schema: pinterest_integration_tests
pinterest_ad_group_history_identifier: "ad_group_history_data"
pinterest_campaign_history_identifier: "campaign_history_data"
pinterest_pin_promotion_history_identifier: "pin_promotion_history_data"
pinterest_pin_promotion_report_identifier: "pin_promotion_report_data"
pinterest_keyword_history_identifier: "keyword_history_data"
pinterest_keyword_report_identifier: "keyword_report_data"
pinterest_ad_group_report_identifier: "ad_group_report_data"
pinterest_campaign_report_identifier: "campaign_report_data"
pinterest_advertiser_history_identifier: "advertiser_history_data"
pinterest_advertiser_report_identifier: "advertiser_report_data"

seeds:
+quote_columns: "{{ true if target.type == 'redshift' else false }}"
+quote_columns: "{{ true if target.type in ('redshift','postgres') else false }}"
pinterest_integration_tests:
ad_group_history_data:
+column_types:
ID: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
CAMPAIGN_ID: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
campaign_history_data:
+column_types:
ID: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
pin_promotion_history_data:
+column_types:
ID: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
AD_GROUP_ID: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
PIN_ID: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
pin_promotion_report_data:
+column_types:
PIN_PROMOTION_ID: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
AD_GROUP_ID: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
CAMPAIGN_ID: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
ADVERTISER_ID: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
+column_types:
id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
campaign_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
ad_group_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
pin_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
campaign_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
advertiser_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
pin_promotion_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"
keyword_id: "{{ 'int64' if target.name == 'bigquery' else 'bigint' }}"

dispatch:
- macro_namespace: dbt_utils
Expand Down
2 changes: 1 addition & 1 deletion integration_tests/seeds/ad_group_history_data.csv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ID,CAMPAIGN_ID,CREATED_TIME,NAME,STATUS,START_TIME,END_TIME,_FIVETRAN_SYNCED
id,campaign_id,created_time,name,status,start_time,end_time,_fivetran_synced
2680065434898,626741793779,2020-03-26 09:38:46.000 +0000,9f8de0662581357b8af505197ad8145d,ACTIVE,2020-03-26 09:37:00.000 +0000,,2020-07-30 12:14:01.984 +0000
2680065434868,626741793779,2020-03-26 09:36:43.000 +0000,22a5457e096095c4e295a3c921db864c,ACTIVE,2020-03-26 09:36:00.000 +0000,,2020-07-30 12:14:01.246 +0000
2680065434863,626741793779,2020-03-26 09:35:49.000 +0000,5c7cdb607c2e540062914e276045d4d5,ACTIVE,2020-03-26 09:34:00.000 +0000,,2020-07-30 12:14:00.867 +0000
Expand Down
11 changes: 11 additions & 0 deletions integration_tests/seeds/ad_group_report_data.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
ad_group_id,advertiser_id,date,_fivetran_synced,ad_group_name,ad_group_status,campaign_daily_spend_cap,campaign_id,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user
2680072242253,549764253315,2022-06-07 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190
2680072242253,549764253315,2022-06-08 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799
2680072242253,549764253315,2022-06-14 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187
2680072242253,549764253315,2022-06-15 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114
2680072242253,549764253315,2022-06-10 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055
2680072242253,549764253315,2022-06-16 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697
2680072242253,549764253315,2022-06-09 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945
2680072242253,549764253315,2022-06-11 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075
2680072242253,549764253315,2022-06-12 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972
2680072242253,549764253315,2022-06-13 00:00:00,2022-06-30 14:31:03,2022-06-07 14:30 | Ad group,COMPLETED,0,626746449918,25000000,Cat Campaign: Brand Awareness,COMPLETED,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108
2 changes: 2 additions & 0 deletions integration_tests/seeds/advertiser_history_data.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
id,updated_time,_fivetran_synced,billing_profile_status,billing_type,country,created_time,currency,merchant_id,name,owner_user_id,status
549764253315,2022-06-07 14:43:17,2022-06-30 14:01:04,VALID,CASH_MONEY,US,2022-06-07 14:17:13,USD,,That Kitty Cat Company,1111111,ACTIVE
11 changes: 11 additions & 0 deletions integration_tests/seeds/advertiser_report_data.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
advertiser_id,date,_fivetran_synced,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user
549764253315,2022-06-15 00:00:00,2022-06-30 14:30:04,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114
549764253315,2022-06-07 00:00:00,2022-06-30 14:30:04,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190
549764253315,2022-06-08 00:00:00,2022-06-30 14:30:04,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799
549764253315,2022-06-14 00:00:00,2022-06-30 14:30:04,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187
549764253315,2022-06-10 00:00:00,2022-06-30 14:30:04,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055
549764253315,2022-06-16 00:00:00,2022-06-30 14:30:04,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697
549764253315,2022-06-11 00:00:00,2022-06-30 14:30:04,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075
549764253315,2022-06-12 00:00:00,2022-06-30 14:30:04,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972
549764253315,2022-06-09 00:00:00,2022-06-30 14:30:04,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945
549764253315,2022-06-13 00:00:00,2022-06-30 14:30:04,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108
4 changes: 2 additions & 2 deletions integration_tests/seeds/campaign_history_data.csv
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
ID,CREATED_TIME,NAME,STATUS,_FIVETRAN_SYNCED
626741793779,2020-03-26 08:59:57.000 +0000,19e757f946601de26307d8182635b716,ACTIVE,2020-07-30 12:14:00.362 +0000
id,created_time,name,status,_fivetran_synced,advertiser_id
626741793779,2020-03-26 08:59:57.000 +0000,19e757f946601de26307d8182635b716,ACTIVE,2020-07-30 12:14:00.362 +0000,151515151
11 changes: 11 additions & 0 deletions integration_tests/seeds/campaign_report_data.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
advertiser_id,campaign_id,date,_fivetran_synced,campaign_daily_spend_cap,campaign_lifetime_spend_cap,campaign_name,campaign_status,clickthrough_1,clickthrough_1_gross,cpc_in_micro_dollar,cpm_in_micro_dollar,ctr,ecpc_in_micro_dollar,ecpm_in_micro_dollar,ectr,engagement_1,impression_1,impression_1_gross,outbound_click_1,paid_impression,spend_in_micro_dollar,total_engagement,total_impression_frequency,total_impression_user
549764253315,626746449918,2022-06-08 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2330311.663,,,2330311.663,,9,1046,1341,,1046,2437506,9,1.309136421,799
549764253315,626746449918,2022-06-14 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2002916.391,,,2002916.391,,2,1208,1401,,1208,2419523,2,1.01769166,1187
549764253315,626746449918,2022-06-15 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,2000669.148,,,2000669.148,,4,1209,1345,,1209,2418809,4,1.085278276,1114
549764253315,626746449918,2022-06-07 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,,,,3222224.215,,,3222224.215,,,223,267,,223,718556,,1.173684211,190
549764253315,626746449918,2022-06-10 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2424901,2025815.372,0.0008354218881,2424901,2025815.372,0.0008354218881,8,1197,1417,,1197,2424901,8,1.134597156,1055
549764253315,626746449918,2022-06-16 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,1346372,2000552.749,0.001485884101,1346372,2000552.749,0.001485884101,8,673,712,,673,1346372,8,0.9655667145,697
549764253315,626746449918,2022-06-11 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,3,3,811233.6667,2060712.108,0.002540220152,811233.6667,2060712.108,0.002540220152,22,1181,1369,1,1181,2433701,22,1.098604651,1075
549764253315,626746449918,2022-06-12 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2425572,2078467.866,0.0008568980291,2425572,2078467.866,0.0008568980291,10,1167,1370,1,1167,2425572,10,1.200617284,972
549764253315,626746449918,2022-06-09 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,1,1,2436977,2347762.042,0.0009633911368,2436977,2347762.042,0.0009633911368,16,1038,1262,1,1038,2436977,16,1.098412698,945
549764253315,626746449918,2022-06-13 00:00:00,2022-06-30 14:10:07,0,25000000,My Cat Is Purrfect,COMPLETED,2,2,1217487,2053097.808,0.001686340641,1217487,2053097.808,0.001686340641,15,1186,1417,2,1185,2434974,15,1.070397112,1108
11 changes: 11 additions & 0 deletions integration_tests/seeds/keyword_history_data.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
_fivetran_id,_fivetran_synced,ad_group_id,advertiser_id,archived,bid,campaign_id,id,match_type,parent_type,value
EzxgxB9EE6a6AMma/sqx0ZB4pPU=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206594,BROAD,AD_GROUP,development
wYse+Xtf2L/SnzThOMnxccXJaM4=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206590,BROAD,AD_GROUP,pasta
DauS5IYbqd9myiE2Sf48/gxdYtk=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206587,BROAD,AD_GROUP,gaming
dnYod6xOMc/p/1/vRVBmtHc9MOE=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206595,BROAD,AD_GROUP,game animals
e7sEbGLUh9M3kDrqPQRjk4VSEiU=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206586,BROAD,AD_GROUP,cat
WKo7cli6AW25q84txWkj0ElbNgc=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206593,BROAD,AD_GROUP,you
Rm9dXZR1BJWn52udNn+s1+hKXoc=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206589,BROAD,AD_GROUP,are
vRfN8m9pY6IRUVV8H7N9lQQaEYU=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206591,BROAD,AD_GROUP,curious
3wtluSTMp046Wxz/zVO0oh+Ldh4=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206592,BROAD,AD_GROUP,aren't
bVbQarPqKGBt68E4yzjc6GV/+tI=,2022-06-30 14:01:05,2680072242253,,FALSE,,,2886843206588,BROAD,AD_GROUP,you
Loading

0 comments on commit 6ea231f

Please sign in to comment.