From 13868d1419cfd763f5e07a5567b65b6bc3ae92a9 Mon Sep 17 00:00:00 2001 From: Ziyue Xu Date: Fri, 27 Sep 2024 14:14:29 -0400 Subject: [PATCH 1/8] Readme notebook polish and cleanup --- .../feature_enrichment.ipynb | 825 +----------------- .../finance-end-to-end/images/enrichment.png | Bin 138183 -> 153899 bytes .../images/generated_data.png | Bin 161222 -> 105510 bytes .../finance-end-to-end/images/split_data.png | Bin 67195 -> 73583 bytes .../finance-end-to-end/pre_process.ipynb | 56 +- .../finance-end-to-end/prepare_data.ipynb | 352 +------- .../advanced/finance-end-to-end/readme.md | 201 ++--- .../advanced/finance-end-to-end/xgboost.ipynb | 114 +-- 8 files changed, 149 insertions(+), 1399 deletions(-) diff --git a/examples/advanced/finance-end-to-end/feature_enrichment.ipynb b/examples/advanced/finance-end-to-end/feature_enrichment.ipynb index 884a0066b0..88831a6e92 100644 --- a/examples/advanced/finance-end-to-end/feature_enrichment.ipynb +++ b/examples/advanced/finance-end-to-end/feature_enrichment.ipynb @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "7130bd7a-bda0-4592-818f-bd65c505baa3", "metadata": { "tags": [] @@ -27,217 +27,12 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "9375ffaa-1143-43f5-b1a3-3ef45918e4bf", "metadata": { "tags": [] }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
TimeAmountClassSender_BICReceiver_BICUETRCurrencyBeneficiary_BICCurrency_Country
00.02.690ZHSZUS33YSYCESMMR7PCTKF9R1PVGXRXU9AB3JAUDZNZZAU3MAustralia
1200.03.670ZHSZUS33ZNZZAU3M28P261NQ3D4WIZUY4RDXFOUSDXITXUS33United States
2900.03.680ZHSZUS33YMNYFRPP2XJ54L8ED31VMBC1MYIK8LAUDZNZZAU3MAustralia
31700.034.090ZHSZUS33XITXUS33Y3ZW8BUEF5UTB5LWVNEFPGGBPYXRXGB22United Kingdom
42900.020.530ZHSZUS33XITXUS33FHOWZR8Q77BXKIZHAC0781USDZHSZUS33United States
..............................
6255839325300.05.000ZHSZUS33FBSFCHZHEC9HYAUYQ3UARN1CMXER1CAUDZNZZAU3MAustralia
6255939325900.061.000ZHSZUS33ZNZZAU3M6CT5WHMATEO4Z6UYDECPWRUSDXITXUS33United States
6256039325900.01.000ZHSZUS33ZHSZUS33GFCUM49U6M2LRN5NBEB9PKGBPYXRXGB22United Kingdom
6256139327200.074.750ZHSZUS33ZHSZUS33BLP8GYMXG6JWR104DT3Z8DUSDZHSZUS33United States
6256239327800.00.990ZHSZUS33YMNYFRPP5QEHQCHK8JFTVNCYC4KQKGSGDHCBHSGSGSingapore
\n", - "

62563 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " Time Amount Class Sender_BIC Receiver_BIC \\\n", - "0 0.0 2.69 0 ZHSZUS33 YSYCESMM \n", - "1 200.0 3.67 0 ZHSZUS33 ZNZZAU3M \n", - "2 900.0 3.68 0 ZHSZUS33 YMNYFRPP \n", - "3 1700.0 34.09 0 ZHSZUS33 XITXUS33 \n", - "4 2900.0 20.53 0 ZHSZUS33 XITXUS33 \n", - "... ... ... ... ... ... \n", - "62558 39325300.0 5.00 0 ZHSZUS33 FBSFCHZH \n", - "62559 39325900.0 61.00 0 ZHSZUS33 ZNZZAU3M \n", - "62560 39325900.0 1.00 0 ZHSZUS33 ZHSZUS33 \n", - "62561 39327200.0 74.75 0 ZHSZUS33 ZHSZUS33 \n", - "62562 39327800.0 0.99 0 ZHSZUS33 YMNYFRPP \n", - "\n", - " UETR Currency Beneficiary_BIC Currency_Country \n", - "0 R7PCTKF9R1PVGXRXU9AB3J AUD ZNZZAU3M Australia \n", - "1 28P261NQ3D4WIZUY4RDXFO USD XITXUS33 United States \n", - "2 2XJ54L8ED31VMBC1MYIK8L AUD ZNZZAU3M Australia \n", - "3 Y3ZW8BUEF5UTB5LWVNEFPG GBP YXRXGB22 United Kingdom \n", - "4 FHOWZR8Q77BXKIZHAC0781 USD ZHSZUS33 United States \n", - "... ... ... ... ... \n", - "62558 EC9HYAUYQ3UARN1CMXER1C AUD ZNZZAU3M Australia \n", - "62559 6CT5WHMATEO4Z6UYDECPWR USD XITXUS33 United States \n", - "62560 GFCUM49U6M2LRN5NBEB9PK GBP YXRXGB22 United Kingdom \n", - "62561 BLP8GYMXG6JWR104DT3Z8D USD ZHSZUS33 United States \n", - "62562 5QEHQCHK8JFTVNCYC4KQKG SGD HCBHSGSG Singapore \n", - "\n", - "[62563 rows x 9 columns]" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import os\n", "import random\n", @@ -251,96 +46,13 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "3fe8e513-f041-4165-88b1-3b21607ca734", "metadata": { "tags": [] }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Currencyhist_trans_volumehist_total_amounthist_average_amount
0AUD125721094630.7587.068943
1CHF124941090937.4687.316909
2GBP124961121443.9989.744237
3SGD124601121692.5090.023475
4USD125411124650.2389.677875
\n", - "
" - ], - "text/plain": [ - " Currency hist_trans_volume hist_total_amount hist_average_amount\n", - "0 AUD 12572 1094630.75 87.068943\n", - "1 CHF 12494 1090937.46 87.316909\n", - "2 GBP 12496 1121443.99 89.744237\n", - "3 SGD 12460 1121692.50 90.023475\n", - "4 USD 12541 1124650.23 89.677875" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "\n", - "\n", "history_summary = df_history.groupby('Currency').agg(\n", " hist_trans_volume=('UETR', 'count'),\n", " hist_total_amount=('Amount', 'sum'),\n", @@ -360,7 +72,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "7aa07b6d-dc96-45e6-a467-8c770cafb84e", "metadata": { "tags": [] @@ -390,8 +102,7 @@ " ).reset_index()\n", " \n", " temp_ds_df[ds_name] = ds_df\n", - " temp_resampled_df[ds_name] = resampled_df\n", - " \n" + " temp_resampled_df[ds_name] = resampled_df\n" ] }, { @@ -423,16 +134,12 @@ " \n", " ds_df = ds_df.sort_values('Time')\n", " resampled_df4 = resampled_df4.sort_values('Time')\n", - " merged_df = pd.merge_asof(ds_df, resampled_df4, on='Time' )\n", " \n", + " merged_df = pd.merge_asof(ds_df, resampled_df4, on='Time' )\n", " merged_df = merged_df.drop(columns=['Currency_y']).rename(columns={'Currency_x': 'Currency'})\n", - "\n", " \n", " results[ds_name] = merged_df\n", " \n", - " \n", - " \n", - "\n", "print(results)" ] }, @@ -448,101 +155,12 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "605095b7-a514-4346-b984-3590d79d13e4", "metadata": { "tags": [] }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Beneficiary_BIChist_trans_volumehist_total_amounthist_average_amount
0FBSFCHZH124941090937.4687.316909
1HCBHSGSG124601121692.5090.023475
2XITXUS336211572653.9392.199957
3YXRXGB22124961121443.9989.744237
4ZHSZUS336330551996.3087.203207
5ZNZZAU3M125721094630.7587.068943
\n", - "
" - ], - "text/plain": [ - " Beneficiary_BIC hist_trans_volume hist_total_amount hist_average_amount\n", - "0 FBSFCHZH 12494 1090937.46 87.316909\n", - "1 HCBHSGSG 12460 1121692.50 90.023475\n", - "2 XITXUS33 6211 572653.93 92.199957\n", - "3 YXRXGB22 12496 1121443.99 89.744237\n", - "4 ZHSZUS33 6330 551996.30 87.203207\n", - "5 ZNZZAU3M 12572 1094630.75 87.068943" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "\n", "history_summary2 = df_history.groupby('Beneficiary_BIC').agg(\n", @@ -593,7 +211,6 @@ " merged_df2 = pd.merge_asof(ds_df, resampled_df4, on='Time' )\n", " merged_df2 = merged_df2.drop(columns=['Beneficiary_BIC_y']).rename(columns={'Beneficiary_BIC_x': 'Beneficiary_BIC'})\n", " \n", - " \n", " results2[ds_name] = merged_df2\n", "\n", "print(results2)" @@ -601,347 +218,12 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "a44309a2-e252-458d-a9dc-2691aea9360f", "metadata": { "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1/train_enrichment.csv\n", - "/tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1/test_enrichment.csv\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
TimeClassAmountSender_BICReceiver_BICUETRCurrencyBeneficiary_BICCurrency_Countrytrans_volumetotal_amountaverage_amounthist_trans_volumehist_total_amounthist_average_amountx2_y1x3_y2
01971-04-01 04:30:000348.06ZHSZUS33YXRXGB22MV2B0B0S1NUTY8OCOEQ2QEUSDXITXUS33United States4422.18105.545125411124650.2389.6778750.0084160.016993
11971-04-01 04:35:0002.69ZHSZUS33YMNYFRPPCQD9INGI7GJATKWRK0D44ZSGDHCBHSGSGSingapore4422.18105.545125411124650.2389.6778750.0084160.016993
21971-04-01 04:40:00016.63ZHSZUS33XITXUS33IJXYXLV8SF72RU3MRSJ542CHFFBSFCHZHSwitzerland4422.18105.545125411124650.2389.6778750.0084160.016993
31971-04-01 04:51:40054.80ZHSZUS33XITXUS33B1850ZUIHTMT61N7HMIZYMCHFFBSFCHZHSwitzerland4422.18105.545125411124650.2389.6778750.0084160.016993
41971-04-01 05:16:40031.96ZHSZUS33ZHSZUS334BBLS9B31LWHZFF17RODX1GBPYXRXGB22United Kingdom4292.6473.160124961121443.9989.7442370.0058550.005855
......................................................
408041972-03-10 19:01:40012.99ZHSZUS33WPUWDEFFEBY8SA8UZOWNNJ2X7OUBZ2USDXITXUS33United States112.9912.990125411124650.2389.6778750.0010360.002091
408051972-03-10 21:30:00052.34ZHSZUS33YXRXGB223D4772259A6PY7Q7XVJ302GBPYXRXGB22United Kingdom2272.62136.310124961121443.9989.7442370.0109080.010908
408061972-03-10 21:36:400220.28ZHSZUS33YSYCESMMZ5VK0S69KASH3B82M6W5XVUSDZHSZUS33United States2272.62136.310124961121443.9989.7442370.0109080.010908
408071972-03-10 22:30:00060.50ZHSZUS33YXRXGB22HA4WJAB98YR8M9FIE0C2A1USDXITXUS33United States285.2942.645125411124650.2389.6778750.0034000.006866
408081972-03-10 22:58:20024.79ZHSZUS33ZHSZUS339SJQ6WVX8CGS0P1DYYGQ45GBPYXRXGB22United Kingdom285.2942.645125411124650.2389.6778750.0034000.006866
\n", - "

40809 rows × 17 columns

\n", - "
" - ], - "text/plain": [ - " Time Class Amount Sender_BIC Receiver_BIC \\\n", - "0 1971-04-01 04:30:00 0 348.06 ZHSZUS33 YXRXGB22 \n", - "1 1971-04-01 04:35:00 0 2.69 ZHSZUS33 YMNYFRPP \n", - "2 1971-04-01 04:40:00 0 16.63 ZHSZUS33 XITXUS33 \n", - "3 1971-04-01 04:51:40 0 54.80 ZHSZUS33 XITXUS33 \n", - "4 1971-04-01 05:16:40 0 31.96 ZHSZUS33 ZHSZUS33 \n", - "... ... ... ... ... ... \n", - "40804 1972-03-10 19:01:40 0 12.99 ZHSZUS33 WPUWDEFF \n", - "40805 1972-03-10 21:30:00 0 52.34 ZHSZUS33 YXRXGB22 \n", - "40806 1972-03-10 21:36:40 0 220.28 ZHSZUS33 YSYCESMM \n", - "40807 1972-03-10 22:30:00 0 60.50 ZHSZUS33 YXRXGB22 \n", - "40808 1972-03-10 22:58:20 0 24.79 ZHSZUS33 ZHSZUS33 \n", - "\n", - " UETR Currency Beneficiary_BIC Currency_Country \\\n", - "0 MV2B0B0S1NUTY8OCOEQ2QE USD XITXUS33 United States \n", - "1 CQD9INGI7GJATKWRK0D44Z SGD HCBHSGSG Singapore \n", - "2 IJXYXLV8SF72RU3MRSJ542 CHF FBSFCHZH Switzerland \n", - "3 B1850ZUIHTMT61N7HMIZYM CHF FBSFCHZH Switzerland \n", - "4 4BBLS9B31LWHZFF17RODX1 GBP YXRXGB22 United Kingdom \n", - "... ... ... ... ... \n", - "40804 EBY8SA8UZOWNNJ2X7OUBZ2 USD XITXUS33 United States \n", - "40805 3D4772259A6PY7Q7XVJ302 GBP YXRXGB22 United Kingdom \n", - "40806 Z5VK0S69KASH3B82M6W5XV USD ZHSZUS33 United States \n", - "40807 HA4WJAB98YR8M9FIE0C2A1 USD XITXUS33 United States \n", - "40808 9SJQ6WVX8CGS0P1DYYGQ45 GBP YXRXGB22 United Kingdom \n", - "\n", - " trans_volume total_amount average_amount hist_trans_volume \\\n", - "0 4 422.18 105.545 12541 \n", - "1 4 422.18 105.545 12541 \n", - "2 4 422.18 105.545 12541 \n", - "3 4 422.18 105.545 12541 \n", - "4 4 292.64 73.160 12496 \n", - "... ... ... ... ... \n", - "40804 1 12.99 12.990 12541 \n", - "40805 2 272.62 136.310 12496 \n", - "40806 2 272.62 136.310 12496 \n", - "40807 2 85.29 42.645 12541 \n", - "40808 2 85.29 42.645 12541 \n", - "\n", - " hist_total_amount hist_average_amount x2_y1 x3_y2 \n", - "0 1124650.23 89.677875 0.008416 0.016993 \n", - "1 1124650.23 89.677875 0.008416 0.016993 \n", - "2 1124650.23 89.677875 0.008416 0.016993 \n", - "3 1124650.23 89.677875 0.008416 0.016993 \n", - "4 1121443.99 89.744237 0.005855 0.005855 \n", - "... ... ... ... ... \n", - "40804 1124650.23 89.677875 0.001036 0.002091 \n", - "40805 1121443.99 89.744237 0.010908 0.010908 \n", - "40806 1121443.99 89.744237 0.010908 0.010908 \n", - "40807 1124650.23 89.677875 0.003400 0.006866 \n", - "40808 1124650.23 89.677875 0.003400 0.006866 \n", - "\n", - "[40809 rows x 17 columns]" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "final_results = {}\n", "for name in results:\n", @@ -964,67 +246,12 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "47c958c3-bf73-4ab3-a66f-414be10870ea", "metadata": { "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[01;34m/tmp/dataset/horizontal_credit_fraud_data/\u001b[0m\n", - "├── \u001b[01;34mFBSFCHZH_Bank_6\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── \u001b[01;34mHCBHSGSG_Bank_9\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── history.csv\n", - "├── \u001b[01;34mSHSHKHH1_Bank_2\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── test.csv\n", - "├── train.csv\n", - "├── \u001b[01;34mWPUWDEFF_Bank_4\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── \u001b[01;34mXITXUS33_Bank_10\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── \u001b[01;34mYMNYFRPP_Bank_5\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── \u001b[01;34mYSYCESMM_Bank_7\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── \u001b[01;34mYXRXGB22_Bank_3\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── \u001b[01;34mZHSZUS33_Bank_1\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   ├── test_enrichment.csv\n", - "│   ├── train.csv\n", - "│   └── train_enrichment.csv\n", - "└── \u001b[01;34mZNZZAU3M_Bank_8\u001b[0m\n", - " ├── history.csv\n", - " ├── test.csv\n", - " └── train.csv\n", - "\n", - "10 directories, 35 files\n" - ] - } - ], + "outputs": [], "source": [ "! tree {site_input_dir}" ] @@ -1051,12 +278,6 @@ "! find /tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1/ -exec wc -l {} \\;" ] }, - { - "cell_type": "markdown", - "id": "02b30e6d-6433-4b42-9950-d1ca3d83e697", - "metadata": {}, - "source": [] - }, { "cell_type": "markdown", "id": "f9966065-80cb-4f85-adab-8c44f01fc8d1", @@ -1064,22 +285,6 @@ "source": [ "Let's go back to the [XGBoost Notebook](./xgboost.ipynb)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "28efd726-3a92-49bd-ac4f-b70627f1df57", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "85517284-0593-4c5a-ab02-cf31024b88db", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -1098,7 +303,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.19" + "version": "3.8.18" } }, "nbformat": 4, diff --git a/examples/advanced/finance-end-to-end/images/enrichment.png b/examples/advanced/finance-end-to-end/images/enrichment.png index 68f70b57e32a3b5035af39e2246cb2798dec0bc3..2d7b8c2ccacd08fc565749a6c8dcdaaf33d56543 100644 GIT binary patch literal 153899 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 M zlC_Ii5b2c2GnoI)#(zKdGAU5be)uou{HJLJX)jM@`fvZ+b0Tfa;iet`^!5KN*W`%@ z|6M&o;GZa|Ql$U(lqk#pZrK0)S=aylkDRl*a93AX1CDS0*TMJ?lY>b^fI#4uPk+k) zCxiZ9_Wbb}ufm@q@6f^j@V|67SSRhjj%lw#NzuIIMvVYyJXB+0q6PDSlP zAvf?r1pleRnn2s(+TuTFd2`Q0mS$GR#yK1fjhsz~e@S*v)m zR3fZMT3@<;(z&|Hs3jR5X@AL=fDcQ37x?j$fs807iRk?fk3XXR&GenN_(0O7E?B`Hw}NsK)GA1$B} zf)YDOZ%daIFHqP)`-xNqRoJa2eNLJV%YXh?exH<^KK*n8S#YpT_!Q$e7&u1D1?UPD z7hd812=^f*{vr26onj`zI`k!1`z2fSJ_>vBFu$ZGJ;kLcf{0jjcwef}!a~`x1G`Q! zfy9`50ZwkRelU5KAp$`AZ38CT%|OK|kP=x_`?81iAw$}d1dWW6GJCiUOa0X0_q&`` zww!zE&EVkR&-iKb&lR~tCbK?A)k7vy2%AZX!@j?+8if-U?q(yhJ4o!#-b1sLl>@Rw zH@&`{LV>+B14)^BKlM|mYvw;^Xn`TznnJ_km}v@P5a-=md8Kpb$mZOT;Lp6A5!Y*z zCbdPGOJ^Y`I~~+vje%kT5`~_2{aTNGI;m*NCqWxQ>!orsUwc*w zAQG!G4}W%X7r42tnK9{JIw3d?m5lba&r6gu+&D#DOD;MG9#rU1=d;_@QeOuQGBPso zORoxTcevX|OpC{(cHCyNaI1FQ?3{Ahq1U4Kux6ECHN$}Gbum8 zutF^L<;CYflIDe|`?(aX?1p8&6K{Gh_rccJdt^#q`hYiUV_ivZZ(Dl7dp!u?X3j$g z1E$RztlIf9M11yH{Zj0+jHAcOki_|qg}&CGjy77Yg!wB+e09al%{D%Ecw`?LLyMCi z$FT}&zGHON|5C81exE^l4Q@dpEQ*-4b9{W2aQOtWmhvuo8-)o|bHeY^`1?9VeSIgl z3CHuG1vGUGLC&PeD8F_8F{{xi$;N4U5Rf|Qe5coDsBxPM`MxlHP7@_zbK!wRh%Prd z?UJq;K2+f zGfm;93h0daA%Z}8qxrN%WI1ialFqZDk(8A$aet1e(hg=Wvnz}wKS)nyFBA;O{oMvH z@Fre(MRMW!qd#6h=SiPY9>PA4!uNHYO5F&Z#Vh>HRO5hX=A~KhjvwQuD4S$t!7p67 z*WB{cCX_d7oKTiQ9h0MNf<%4#;vOY<6(`+=i36`vgRfyGZ+-aW6Yxpqwx2RkKLkB=@-2YU==CC`^|G*h@LWxjMzIuG#Fa&&9Z4-I&l z1MQ!hAdxqKdvs09r7Y>0;>q^Q{&kmKncZ97LyBPt!?1J=HJdHZSj8IIu$!m)PiOBIX8?v>$`^$nf0sjU<0(oX&FPeU|I zSI9(~4H1WvZV3A75vQabrvWtXY$pYVr2`*bS&Ex~&KzUy+0Gj)>t?CbtCy*aa$Lsd z7Wi(9M>{Z556LGEC^zPsVLNVspIDSY!b#BtoE5-dJTA0Rf2S7ekL6Y=qoeCfe_U&g zmEX&3VtgEd$5LnWzB3k>3 z?y||&lKuSpNf;J6f{04`PtV4L*rrV(A-Z$p77qxP-Y%?K7JgD-^~nrSPO+~A&c$1O zsYLOmM+m~7)14o77;R!xKLzv7_pcfeQ>%zGKa3nruXBb}`Ke_K=np(Es^H(*poO~H z`Lr6c#a>szcl24owf*$v3mb62L)7X>s|4k2?i8F9e}`_mNkS~-s+-)i%Uo@oHj>Er zu8EeEVwGNritR_u>VRtDKi9YNGB8zF{FB_A?8nLAiW|u_7ErE)cJ%nqE^I*z-qgc) zs0mWq(YRk`A8K(J16Ydxs&2erzZ4OI9Wpj$b_A%da^tdov{1fj^>($Wr1cYwacWho zr)Ld$VVTE><{7?Cc^%0H} z1)7_QE95wzjQ5iAj;31aQNrbSuoD5B{e)kEB%hriEa1(B=RWVaf7{S zxKQJ#*tLpL7%ZM*Lv28M3-(4&2Zjx7)YlaO{z$0qqj;s~DQJM~ymW4S z9EiL{;%wc-K}&QO;oqe8*`5k@a6gck*t?P*5X`tDHlM+s><}A7p;hIxK~1eeB1V$+ z{a}PWn^9|wXI3cHZehjYJ@$}U8_(4B*q$S!p#l(p*@ll_xCV6lJc^y;H_yMlq~*Z= zau>&k%8X*tzvD@M26t}q{PTgtCDa zu2&p3eaIS8j>c8Tv3q+E!1DvTxopcQ)Duw%<#G{zn%Z7JJr&zQ;;*_w`>q8SkRrC1 zt7EZ#KKKgABvS3p*%|~J{Or#jbh&N^WrAm*Ttwm2g$BkMG-=9HA(5vcwH-OuMwbz4 z`DT8Nb&sD<*XVqiw8Kl{v*m8dFV(pZiGar@t*VB0yrP%2pz(@D+^ang%w>K5&<9Ld z#*@RYskw&hW-75}_!rPtB z{nYuIu`c7~PQbhCt%?@=_qIpZRT8r#fG_kKK(Y#fyQQ<|(MCy9iSQYIAAcSpO>?oR zM#O9H@&oAhlr-Jl9#LA(Xs(xql`!26jQf}eJsyb=bD}@`<&5e}^t-CW32u#U^Jbrs ztyDJorF}6a30HQ+TZQ^&ei`nT8#+DxyFghG(_q-J7Xhsp*q08nq^~|paW@$8s?QF* zGo$Y6$ZJx1nkv?eB`rRzSvDO<9vlO|2bHmV+4oDMs$R>O+UX5s3^i!t&%5-l+(T5! zX==~#k6%3w4btBbG~WJ~Op-BZc`+6*bx;$lkf-PU*Ub>s-b@)@SJdC41F{6<2FJ*Q zGOLrzc0TMb<^k(F*?gt8nnH|wKUmYNgw0r$=70IS?^o2YT`rwjp!?E%@nXG&F2e<= zi$E3JLdK!S4P3bvhl7mNOCyUs&$<+llKTDu`0edif9*i*_Yw~^+%i8klcftgT{lCF z9NpW=oVs^^E~swuU|*dEvEH5DesjL-g-qA?e}}qt_e2>^Xuj*Dq(ozRXS{{SpeG(s z;e#$@Qu>*z_r3JxZyHy==^nf6mrI)LZl@~~^;bNAeQHb16EpzyT)a_+1d|yRTx2Kw zu4v3~1mPwE;q@s3GtOPpIY~B%B_A3w;N4yGeoSj8Op)Db6$>7`CHDTbcq*P-pF=FW zjX<~=GL)l#FTj!7X3^_tj!QVjInBkFt7Y z1-1m0Ufg{|IreFcsE;z=gnTsYxvq{xR3Y6e;+FNHrsRKp4a|x!y~pVrHus_gm5vEbBvEyvJfL; zuQ(0`@h=QLWCMUen#8Q&o!!^zIH>aBMWr8u?rVq1i{3b3wEc7~L+eqnh{rw?nTIV* z)=R2>%+gOc6r?`8HaX6=g44GxzF=c^syR7bczEVh&p|dndEoI~`?f%`y#sa{U%dbF zmIO_XhEu!n@mvxN8)ZuG=cS-ENa(BZKSd=EQ2sV4xxJL0C!(94=eB_wTvc{mGC=eo z%)Z>tQKf+4te86OANih>LP|GDglHG*PUV8J%tZ=pX?nOP*B^8L!K^IXvdq|Mk{G>ljQDwi}buB@cj7os-#rC+K5X&{2@FT1?EVrn*PVi0)E>&botne~$0Q zT}+3{Ets6^k{zM>T&#Vf86<5P;1UAI1Y~{-Fq~BKq-N;xmKnp zs2}myD{I)350AwIF>cdn+?zVO#RUa5F<)kz4HuH(zo|=rq|0T5e;A|@Fj8E@`&%|_ znC{|>+d**dc5jVyCQscaWe-a+#=^}Fadmq4&2L#dhaMRhLz&&)iNXyp#sSZ_n)3B# zzY^}bTfV+j82Wl^7=(D~9z53r5Sp1cO!_r3XyA+=E;}u4QvN-0C1vn#GWta?cXhv3 zP@~eKH%=m;Bb9K=piqc3te9dT>ikD$Pu z+p1y*qA&ex`lh1MHc1D=2&tvc-W*Rze!OB-E@uA>k!Gn>{$3Cx+QOvhHD!gfz476* zP{6Qpl`?f%b401bI|S4gt)eh7&sY5if{u5m=R6B`GA5&9qt)gneY|r;ffvBrNZg*d zhy1foZ9jHZQK1HM6l3yhsJq^|AlqME3UiC+pT8hu*0s*A)~AxJOwg(Qq7#;e3toR_TYD7$)xPL zI4AtzetH~D8{mznxF@cOi>Q;0FAw_yrO*AN5ln-tN;)N=nGXx2ZdEg(_3pb^Wr^*J zZD2{M9}!7r+Ke)8`t~K8f8P?E<_`D6j*~rx@tQ-3rs3JmjurU*C_+k-NG{QJ)@{F) zrbJc`#Agp;vAjWhM|vq@pmus*L;V({V6r8=VJaK*fl=H2w0$_4YPO1a(gi!&0B`8n zBBygKlvoJu!{24c;L9u2$#d8wU{!B(Jn!Z+=~G1$P-U(F@_SV-Ix8c5LlLRef#2X| zGWa{eWU*I7IsKiIU-jrP2NsTT23uAINZshU<%DnXp6~VfZsOHX2I)t4zmJB$syKhm za05V6k1YFa)wglEv*?^zL&`c@!%9lyoz=*#KsTZf3&oy+Nd}L;)X$3Fp^}pT_@
@80;#`XZvxQ%b4@4#Q(u|9h>%+YtoV&AMNHZ$#or$PR4QpH z4YQqJu^Y~?&wnd}Hf|=qkJFQ;!M9H~ffs$%0P5@COU*2n01qRMI#U#e{qHH_L2S1? zV_Je_Np9POngJ)#JL^?B$59*V^^9DJ=jT#|5Y)doe}p-dvfIS);8=p2xEyi;sGpYEJw<_J)m29@Ghe^z~vi6}0Mjjm9OFx;-Xa?pGrUX6->h@GeYsg4xa>=L-yrUlJ6pZffW;uZka)lz-F z=jz(YV5bb5D*(urIrf9LoUZMP^k}hVB2G=&c~jA?;@({D`(Y=&ZF&Bv%B7J4pm~C| z&rrv&>U8bqoqp?Zd3hR$Ue*v2-NaA2$pl31sAovM_Yolr<2-x?o59X+7XtFWKA6y9 z&nq&HK~;|Vt&Ov(0Zq*^t9JRjU9^K1!l4_}kt3z2n%yagM9_Fn3EEe=zd2+O?)b~0{*N_t2@-tcu6T)x zPPAR2q(S( z$T>{5T83Sb0IOBrMmq=Zpbp^xf=N;pc}GH#CED^81Hi1u8@6f#jzaGD!VicTY$!S! z&cie@H=rXum|0V;0@Y<}g5dLjUCo*O_*r)E!=w04AY~z>rugqu>8S<7YKP`%$66FX z%O+{xITLNx0NmeJyMQUolyc*cBkEAL4Q^tHI3FUHUa>dYBEzLQ_%}zwW8w&hX_%oxfn4=hGaPKWC+qNUr*`Yv{vu~MT@*ubik>Pp^jy#={61yK(PPJ;ft@hN7--(gZzx$s4n&Y41J z(R&}Y9PL{6iFCrYG+nkXSU$L?Vo&gwtV zr1CY1&-eL&*|Hq8#nfii9Foao2qymBlXN9$-`Btd(*PBT@{fpKy>Cg$-#wcc5+k;7hKnP?>b8sed9_R+(-u0jccpva6JhhXpar<)-%E~+L ziPLFO5Nft|e!EyW@Jll*cGaQ}IX$q|;#z3NjMCK(O{k1ir#@;{`_AKK0?z=jq|KI|=TYE~s^d;|8AZ^q~H>%kC781G4u!nhTbEFsc zu5b|j?_X5-NI!CTfz#W1{r0Ur5yx@W$4r8UF1y?+rsDfU*M_~2O)9MbpTlTF0---M zk$}}ZHj?$6vE*Q{i*n0M|+hY?M%%$sA z@5$sdi`neY0EaR*{?;RVlYes+njX!lF0-T-rNB>rzO)yJWzU)w!}R z_cwM%w3|oG8r7+ZbO2R4`!cWUzIJ^!Lur#>LbLR1N)PMZ-|xESA1fo>uzd4}W-3eS zw7>5))IfzxE^}Y`uktQNr(+o#6>Y@XmPsiOb2ZoPImi5bea%G6-(b}5r)cO?SCu2H z7dKM@r7x-i91P1GD5wI$5$94U7h@jECERxvZ#3nV9)4z4v`oop%oLP;;a&5V?VR2$ z?%eHHZP>;7Kt+!MSrsl)1hQtHPcN( zJm4X&QBgK(K_?Lx#V&tCrs>9CwzaAKyW)ChCreK$14&W(%WaCWvB2G=FTbhXLpD207Ie#`1k7k@PjuXA_^)Qzzxx@Jc zQlT8V+StA(Kh%Uc$-<20NWW%@9pIej?XvFMac$lxQupezwkd2#bvm=pXC7)~Qjc$! z|_ss>8Myv05Fcq{`fn+H<%hg zfHU47ro($~Ed-iNf~Kr~Er_da%Dx{BL!Y4`A}o%atrQ%jdEt6@HpNixeA9MV+{sdn z>D9q*wiCVB=)W*}Dp}2=_B^)hcIQ|;M!lOf*x_3O>C}>)mo6*-V zS_*|4Qlvn!7N%cjS+i!XpA?*zNrRte)xE`^p~yyc*p&uazr`{`hUcA9f<6+)MHZ=_^ix=V%!DA=m#DUA{ zJBTv>u?DY_r<$O9?CT9(#ee)EM|-A^?)UF*+MKQ2y?K=zU9pb~00RBV@6M&|uH2GZ zzbE*J1o4VsoA>=&d5_i`pyVt&R0M+l!Q4GI?N1bLexPH!J0PP1TAyIPE4>Xv% zaNm)>Ub<5P#~QJSoBTm&d-SgsDWl`Zr1TGmGq14l6Z7E*Xe)0fZrPX!kN9kpEiam zA9sDil(E6V>sh>O6c8I+B%!43;lb!&OgjA_L#kf%4Wd8jrd|a5ZB@9-?zXmU`aq6d zjcCgJbru9mm6p?95IKYAcc6754C-=N9j6;e};Bw#&6I=Fn3H<@!EHC`g*P) z&~-QWYkt=gERWNKvsY16%$(5-wuQeN%6<!X@0nXQ{cjqO`d$bYfA-{p z1j3KvH?R}^XBU>?Lmg|8%sAa)%XLEZ%JQX3O&lRg8YjE3$newTI($e}c^~u1M_ad5 zNXLbvO8YI?JIET<0+mU8mAW1G>;_{!*N%p>lEEgfsHnU_3laKQ`#Da8(x;+?CY3Q& zBJGU{Vaob17XbyvI%d?wsiMDo>{`TqJS@>oo|EvQNcQgT)OXUAx0mOC&!_IkGWZ<5 zJ%vvv_q~Mo$AE1a?g3N+mBkx>soxhU$JX4iD#!1youM@O>c^sCml*!ZVM#m7M&ke; z;fjd>{l_Gv)J*xe;?8cUE_&oW=R;UqPH1;0^dg^1Hf_goR%g2>hGM3~P3n$fsj;3| z!bCM?@B!gFaoVDX`)b%-cf)TzoCR$07tZ{w1!zrmZ$E$tsQYPWoU4}{sjQv9 zWE1(xv66A|c_>7>0p4$!fFT#fs3oN(eVik6P&UB#tmWZWH=hLI&bw9tZ%^s5NpN5M z*Y1{%G2q3sJ7RFPvLiv8chhg|Ue(&eCR!etV$T_#$m7cHhVlcW_3m2Jnyjfy?0phI zu4@k=Dc7~+ZWW%n|EP->;=_|wGzD9w(ES>(cAtLh_Sq8fl}hW)L(Wv-8dpTYo&FWb z5cWO?5RP54(b5Q;&@Iqu1!nOQy_8ZLD7))mdW0~UfO%@IgNH|->G%-u2A#^Qs|*Ex zO4riqK>Hd}`XHmJmH)^Y>|SolM(rUim8CH0m8mbuKgcavt&*y zDQC1ZoGX!P<%DH@SU+9bv(Pt`E)aC zyQ}be->}?P+Tr{q5bm*t=!$?MDVH~^bLB&+2d{>xeow@J`zFLueW&~B#N*9%28;BA zn8Ml%6rsj)5B1tc zF%J9H(SnK9v1$EdqBZg2Rd=()L1~>!yOZPB9UJa#I#^=G;|l^9+2&_Vd!0#33L&n1 zby|W$wnqX?70)4)LSUgWPeXpby-3-6OG;-D_j#3X>heK-rfD| zIr_uqB6h+QtN*0;kCsv8Qm$;3X`=UgL@!Bd!*8E%VeL;{89t}hrYivd)FjQZR&h@S zPxu)L(HG>8AHDN@vtP~1mD2-UTU!4B)5^f#*|fhuBQR;j)^ta%)`FRkUFImPN|i#V z3k!`|x7F-&eJ{EV6Jh6zDJ0;z65uKbAhyi|k&I zj_)~0mOp>lwlTh{n`vF#W^MbTqg})n9XeTRIp4jhij_Yo)KhZ`3Fl5MQ{~|M(C8bK z59C>TOHLYoPT~C6L14x^wnru-?de?v+vfV1;`c;f{P+!)oIWC_csZ-*-x^w(@cUEX zx=R)S&ZgjokbCV z@nXuYDw?+2#`aswn)}HWNl$#(=juwq?rsSQ)#GvD;Leh$iQ;^2utK8n1kOOrbWF^i zZ92!j+Y~1)|FNHN6QkbkUzfv;ViN(GCSq1z)Oug>Y(2X}{)PD;m;H%mt=WLiGP1S_ z6y^FS*0R;Hl79dkPPmLD`f(+*V{E2Nw02S>Ytu}>+v4EnhGp?3H%$PgL)YI6AvxHO| zcg35sYp!*AOcT#`LRXguzY-6Dc|lH#gsqA*x?SZK!tG4qs}|rzR>gNAN*fLbgP6>8Y3o&PO-j~K7_`kA8K?xqomO7 zzR|usWAu!o68X)4nN++ePN*$V9}xstNtv6^v2)}*e)1w5;aKD)Dq95LkzZ5+a=7R8 zZ@KjByv`qA3EvIrkvqUnXmdc}Gc&?J5ak%>;{!meGL-FSS3}+Hq{yUHYjgZ2C?}hw z6jrgiOL@tEgs9r$siBh_QC8@>9r}d$bFlC)6WPL^*5*uGA@|q(6M?r!rKJIWsM`ptDXHXMFzKsrQ!fsKioKay|E-AR0|+Xf>`O?)7Q1RK;rbS7N@>F2(Y>aVNV(3z z{ZDs+?B`*6!b`2Gc>Bt8wxjO%*rz$tKU<6T(eI+Y{m%(+>%8R%WXdGh+R~Styr8l<_%1zQGJCK!0#E%~)7F&kru)80-RDnC@qYAR6TwjZ zO7)}r_GtczS5rnBIsr(z@KB4vkRk6jKU{-r^#3>PPaKR>*m2O>D zem2+C+}xM(uw?b$a1@lV^XNg*%B{1`{Df@VZ`Loa!5?H#JfpDj@vvW@Y^d1hH3SEn zfFSqdLCK-yj>aC`@;bj{$D2MklyPSAjqIrkck=?rFtZcaL9~+CK zfZf|xLx*>IDoiNwX5Z83Z}6wz3q=2N?tBGm2@7^q&TwmLSc4#x?AmOPWJ&+pnPXzg zL_=22l2O~W2_~+I2r=u^8 zxO`zRIEvX$OW&!+cofF?=dIXQ^)#NIlsr{5V0OczO-xoeO@st6XA`%Jb#?KTG_)R2 zkDlz;Z?vuRHl-Ob>J;7g2olX1O+n?ib5FXW%G!vklK_C6U2{Wlk%@fz5&c?AR#O-8 z_X|6K#VZOtw(k(qwVKQ_eTm5C6*DxvY~J6u+*VtLT|a}b&+>|Vhmu%F@32y<`SDs8 z7MHv~$GtEYO0O(lbm8e}OVu97OMS9MSzFMz_>Nf!W0%lABS(Gml7O|TJMG|g7l_8^ zj9jZPp+riA7C^_xN$-9IEuc&4x(7^3pGV#^`1&)jk#F=$CqWqsp;sTHV-y`@$9Dnik88{ zkrf8RTiSE0N_3l`bF$bmBA6wUwwLe4r3|N+rubo2q0##rea}2cF_k9k6hppbmh$L8 zi*m`?`_Hl`!_?QQeRsn3Gt-Uml*jF7$F7`g_S1=X;yqVmxMH5Qsm=q7E^m1ftqi<& z&E5+_tm?h|-5u<4Z&Vi@yZJm?cy0=TMOPN-W!&=$t)@aAU6Dp(c0>22s)#l z@1O?X2?+}i2Y#RguC0ADKUX+PBim5CWJW{7?02~kl6>0KDglNynykQ06ZGYNU&Y_5 zH61`$lu}VxJh^l2Bh;Po{kEaGE35yldA@(sy1J*}1+_C9y;hSC z$0^#Ff&S3Y{jJ@^4dRz*1-4)=M%{bucT4SULT2!@YUE5D#uEw8g4>|y01nCD!+DhzKoKi zY<40{kLJqB`=$EGZtE!&yz?$=fXKO!Ze`F5p)labRju%WGx%LcN&{}Dv+iX6M%N6mo7+mLWp@((A+U)@89zD?%*l-^(0U##UHauajJ z#JC~dotX+Dwa(OmZqm^PqbZ-?RQ>v(;kQ6La(l9g+Vzw26q%I+_|G&BqrF`goI)#=B-=gt){6N2Mxx6rgv zl(!OUBZH<@_UQ6mKi^xqrHxf^4qBCnzxvSEK$whsy2-b87b7_$hr#<Wo;X%vzE={Kf$*PVVk*vejBW2 z8L+DkJD8SQiYJxmzHOE|mR#Syy8k6P6kK2NU41GNPAYj>VIcoh9-D?F@_<@{Tc5B! zpJ;q*-o-CA=4RJ4f64Lk zpS&0^4Kih7HN@RFfj7dshiXIFLGQ@2hX+k<_P&xON)bxBTQ8c(W?TM^ivghAis5!y zQE^ZSYFch=zHx&jer)V|_+VZQ$blk{V9u(KO zOh(ti=#;UdyevN#gzb$Qf(yhS)1Zw@g_i|PUcf&mxy2)%7fNVqrcJ~czK@R){+P+ex8zmKs%M*=m+C9aUdcj zEiB}I^IKJqdOWZi40~Alj78|Rf*Un=1Ga8UV59nRRNPHZtH|wEZ-mP!%a;VrKVY1o z1Y$+)g^k{oMlNcrCeauYh`6ZZx4VA+FAp9>TE{d`8a3Qay1U-GxH>)3<3MK z_LvnLtw{b9_-1(~1A3c^%Nce(`dMN^V_^F0F_9OhSJcg@+UryA?(TzBn^S(H55zLr zK0YBavy}Hf0*MdolwQoUCWUoYrqlwaA?y9l1sI;WT{E$@KBC^ zXX}lYGI(~iaIXreGM{01%57d~Ez|t^FB+`V{Un+{EV!&m1x7;m(6r( z#fueGON)cL>&UUCAs1)KUqbxhyF{tbE@N_ann03DE+rLic_35tnX@(E_WqE%@o5N` z((A8nw(5*sMM4NVz{;cV32&tR5kA&l+_yBy!w+ZQtSx%8cKc!_N~D4Nm!p$Fn~F-~ zb@BMI8V|@TLD%(0a6}IEfZhMTEcg=jInffsGbQu8N1XHxwQswNGH3B0gZqVhZVJz> zM~__Ijs-Z_UtZ>P{>`FOZyTI=sFdhu`laBHY-GEXhOmj@?Tf7UJruqn-4+&kW$>p@ z!fNHr2ymq;>e^bppDR)9Q>_V=@!AU`Co|2vrB9jRuCv<)veVfV%PJrEs8ZwUs_nZ` z=h(OpJ%&bS)7E-xrvRs#Dn z40v@kk@Y|)Gusdi;O234#peExiOzovfVLLqtFsY~e7oGI|F`?k%TGTr;{GRdBL3h1 zlatZ3ANBuadxS-uinP)Czt?v9_}?6T{&Sc-REeVh!D)%?C%g84p83y82Vdg;2aBX1 z7*7S}X)gJy|9S5J?A@IDXYBv@2>oZp|4(-P|0PgYtw-<(^+%KIC>_lIy2`CIiT@TI zEDPo&SLV5!-n^6SM18o1^J6h6^2DBPOxWx=h~_`B-H1VAfvbMOZMeR&E z9X@PPW4YOLU7}ZK^Gk`0o7nKO<5L_=c}ZqOIoO`k-nCMllw>@JgO5LV2%xR6nB|!x zmo_|Uwi?lJR@pTmZaEz8Px;0cC2ew#u$W_6*J$(MX3NF1K4? zSkj1I@y3bVOaY+wXEa0RBIPILIG@^e<0o!O_Ceea9i$P*9vw)fQf9f^{qeGvwB9kL zL9t+5{y+Uo!$=tY+{POVWAf5z#Xmye&FlIBqsh!KJ2{Q5xfQVQ&8~2+^x9jODpY^} zZxU;^7$-Z$X&Fy8lZ~dYi&}zIW4^+&FVzH{E4G{7h8vyia5@M#pt!s?4QZ{k^cOSX zJ4(PN#7j;2Ud;D}@KS=S@R!@}F(Bc0e3JColsr=J;YW0K@0LiCK89Ikp&Q(a_DA|l zOiUVwN2@w1tx0i$W5jMjbObdgC%&Q+J5nJ(yJPu}cgw5Wh|D^k`jkxk0CRczqCd6N z#m4bZi#L`U9n7hJf@m^D5TaOkEAxjg7p8%@_#Y$>61(~*AOYZ;{Q2IC1EM;_NsmSO zK!GT&z)_Zn>AUT{<_~S_ua_7mh$4^+e!b;CYDzg*{0Wwq21yZ^3Zx7M9{iNf{fZWp z7D^gFcEWY9R&9eWa9?T@T|ULIGvA`#fn{w9p(xgq9D#U_X)g!In&YpuEl)VX1*noW zwAPJ=9!%cX;~BCB@gHr#EjAAR3k&e7G-CLe2+!%A<{UH|!n=No=|Fl(MfW=`Rw``N zwqiX=+H447XG-0y}daj`L=mOdCplyS>|7n3PK z9eL>k39FK|N0m9Cw2Xdv19nMZHNcSZlc^{QS4T&+=X2r@6hnV>KLFi(wqR4*6xt1@ zFxC*xdMYed%rH;d2}_53|O&Y__13pLqYum@&xI`@;ke4Gf(( zF_$V?kFsl|k^9zlI?|A;$JRZ;_L10YLGDA4XI|Td`H&H2iX z`fNkNyIXVD4X-9{D{sGrr8g0_4e!kXvLyMU;+PA;Lay!F>Z5e!Ahz222CoG%nOThn zM_a(mV5C|BL5ugfadOwg_DbFzwRHrju(BPI(0F5%Hu&j=c5gIM`D$` z$MGu>F_^P)+^Wq8NyzFn^Gd~?88dLnYo(&8ZMiIJ2qaqD*I-_qHFMNuIXBVHr5i!c zrpx$H)Cbd;FcT=EF|XgFHV@b*G|yb@3|M(?jp#RDsh|rskJqiXeM+QjGMgn&FSKS5 zEX=$#3u!VdUXWRc+moIh>}Q#k)mdB5vIVE7A`tB@T;$r7<36Q7%S&vhH9Gn7$#fG7 zFr$4G$`6j(&G?ElS3y5XC`c+XNiqr`cV*hSE*8h0*4LWF4G*Up4TCH3D@h6Z8dq`g z4@0ZYO1kYoNjQM9DoWMnX$vKgbZ)iu8!N8tG3D3=l2D zh=q%BzRImT;mU(q7H!XERQH?zEZH=qz8HNF-alA?vs(1w!UFw~=rqwQA-66)kQlMmxT)$xQkwSrr}& zX6C4s7P)`-lLs=Uvx##2c{3WNR87E4l#eN;RsiAE$jvOTUOejJFC?(eEQ|^x%4Zf> zZ={&8l9>r+=3RGxmu)*e7-LsCJ83SE_4B9^e%uN#S#&9W3!Pif@UV>Kc2`z_Eg@B= zSMEwgSI$S%ioEJHkil>!gfwrbw5|l}*i0XZFwdxnOn1ui*K*4Y6(l)tyCOR#djm~1Z57i>Q3qP#lA4Qsu($mV8rX>WWea7;%AE28sM z7}CkR@6uc*%9tjimfn7>Mfk>IPPUU(Cn5_ZC$K2GHmmGDAhiuDIGk-@i)k?r5wytW ztlYia)|jT-Zx~E^Us?Ome6xiY0Ad5QAa!DG?XPCZ!PD;Q$&<)KtrxG6L7_zNgr*$~ zQn~lS)K_+v%vUZ;VFme} z6##JM_y;!WbmgV@B5sSe^D$2yB&HAc0w9}qq$E?wke#6)w`GH6c3)Jvp)a$>z-T;( zt&4HyXf4T7V;h-i&R>;luOOf>R%T;>#dZjdIUtL-n2S4WHr!i8hlJa@$z`I?!9M=L zhE%Gl)9%2VsR7oRWb=5FU&w=4i+6wnb!-La;?I9oAJsDgoyWAbu&-?=XM&@23J5&s z^UO8!RcbAhxUKprA$P7>iLN?&JZ!zYuOS0>`YSt?#SMf1-bybm%}iFc^hXO#sTnV5 zuBbpKwFWZ0ngX*W<{G1Xm3loy)=L@BO*Kmtq55QQGJ@lp?pFfWqe3?E*9I0%yNewA zo7&M8L$wmNyLfH%xBQDcg_^b|z$GmeBirq%^Y87Q)^srJijR#HOTxnQm*s^Tl{;Mz z6j$(T6`f4J5=HyvO#?S0mOWO~9Gp8deuggkEx94Bs;sk?i(-T2v>@lX*F_-=6W<6% z(*@|?Wb_@UkD(n^PA)%p@gbeK8Zha_peG8ErlS(g)swS_sRujXGp&@dyRNpy&Ry-!+A*;g2CnnX)6ko<#aVxs~v zy%W=q)c5XtfeF7=4}jml5R3*7WOyRA4aJGUUY#y-pJSz(s9 zesBF(%On==kGs}msW@Nt+FoJ0yq+}-&Cpze9?^hfca1V-^!n=i&RxCQiorJ~d&7wK zVPY}kn)7Ae-l*3jzBmS^X~asV0}oNKTkyuDp{q3-<4u)bMy_qhub|LnlHs4x-Ai&k zI5-1Wy5iGn>I;lbCGE6a?o1;UwC9Bc{lwQB>o+a0EfUnopPbSB&|esT`M6nYvITW@ zm0hW=a8GI%m{~q^;$6!Iv1nNGUaNoH&XWH4D2pm7Lgn|}fGy^=eP_?leyZANFGE&b z#KCs|XXlLjR_k|u*mO7qR$mm}q9Hy9`9zo%6cw#UPyhpvHDvCIxJvy={L2NXM&Fgf zCfbK6qSNq?HaFZif`ro3NFn`o9fl2ye1r%lQQJ!PS|f#6?F-X@ zQ}@;k{gOy^4mWj%9R*-D2^>mtiBFr7 zkJ}Pf_L^W3Oq6#irnLMks4*nQK?pehnF1?XAWmXN&l`@Y1X96hvYM{8wE66}`jEtH zQoU}yx73~q#Fu>&s6*vTUj`mV6a_8A491iA0&g!3JXU)xHb#nBSTaEz`8Dn8cH^p% zj7<#mP1~!woBgsnJy}{DH<%H_l_%p|ov%t%9K4eQ9(K^#^HwH!cUd?Nv6E|g^QX2U zW&#b712pd{)GcYJWQ697-5p=K5BaC2CHkd4zo=r9SAs^-Kvn&S@LznlV^SQ#%IhpD zf_y%Esu=R_O8vnVvua3YB1&MJo8v?IN~B)@cwQhJzO+ogq$oCb0(xYb5L?%T9DBeJ zb1tq+C^Z$KpY91vowQU>Qo&e>V9K^-C-=cZ7wj);HM6K{jQDV+V!-ksqm+Q z3eB&Q3HhCzSQ7e2C7nu$-I4o4>n>#g;?^PKP<+Cse%tnn^?9e7+^p}H$h854>fp1k ziT$9C&M|G$kZEl`l?#gtY-MFiC2(awO3IB4 zjOT&vnbsbjXLd5RdNHrvL53u&V^;G2dsgH)=t*h26IS;573}lv^($8fU%xX3MPm2m zaL`2k#f_6eU^R0FffE3N(_&cq+8o4O%6D(ky(f+ZDZ<+=EDXI^#DJlUm;~-RiV~Z!|{Zq;#)86u{83^v@Blinj+RPnzPPcnF4Rb_98Luv+tT${T9WgeJXnSpvg!|fc3?atA+R;O}NQl zt)t-gxa4k-9VMmKg4vmTu%~I^iDVFop2_&26K?O7ri`UJ4FX#X$KjfQ>fQI}e2#^^ zFHUIGjk3Awdu7;5pE5uF_z~EA!jo7xKFZ+khI!a^^a#J9g3;G4#@-sejipr#0jD#d z1qQx5mofz3YS9}lkFpvjrgno@0HgWV9`%<-KI;}Nb2DZyPuR^kBFFW>xE$}qCUJ4E z8_^T8Uo>|8-h$<646CQS;oxCK!uCKUJpnIOnDI$xDRi1T+9C&%=oc!ayVKiQg?rv& zR`1_|-=6@7+AZ==#@7e3-f;T6rO_(5G08Re8})4iBFik9g>;Cm^@bM=<q47sZP2$g=5-0|rt)jed(r6Y-OIzdYpXNaNBW%K^uD>;P zp_H(n2*_p@ttFgGZ`q@+QOym{C$f>ZKOSvR8E&ky;Q1Hjv^Zd3r=Gk1W#R1TrHqZ5yf{2)+TyLMuK zQIXx`GlA=;Cx~7dO(9UCW(uiL(hl+HFubNbO{Q>XS5RZ@klLv>-8x9~&r|Z@Sd=qg zOzUx9gNk8gU?@f(c-=Ns?+##D>us?JAmqV39jxVFBm{b?+dgPOx0)!JJ0J_Q7g$cm z?wRLP6T3PKra~Va2{(#;byov4Y;D{A?h24Z1>5za3NqTt(TO!v1^R+XN?bF4T*$l$ zAb;ujFIQkt_&h%i9t>`LQ4-}chY^gswf)td?tv}7Sa4WVyYN=vdPK~MNRJFCs9IXwPn&&cv)*kr+!eP~%zkhrMA6BO&UC25;V zhkP)o>IDe2%}`=6JX*}Ak8Urtq~M~7dIxI~VR(eItsK|#VJus2jO87yJI(m)ekHn+ z5sC^IK~x;7k!#|S*D0Z|x<*nIT}-K9!MO0M(C5}}EBAM1lcs(N5$2)517s6RQu zuio&xP-+FESj#m+WU5tf_hr6R(z<%F4Vo6=&66m2X@63$ZeqPoZ6=>=zsiza4j$OS zD5`gH7|PcjxacLK3=waHk#r%HG!2D6`hmcTX2TLDCvyWkq;&?4$!e9OrpsykxH<<0 zdL5d61r^{wf9gk5ak57)GHI0BUbR<(tf|G#G}8dfwJXKl(y6OH3*ja}&r=3PIEPI6X2RVrIcZe`&Yw>S0r zd-6xFh3xJ!%ky4~$ixwR_7!a*V{60^Xf+gG;&Ep`gXhnu?MZW}6meaBjfQQb=?Y?r znR~}_%;nHBTJNhI&Otg^h26pPa`w;giCLr}G@s?GF~-pg#vp)I&qaiNB+MA>AekiA z=%Zp-GC@fz;Q|LPzndG~$(CO#cx z`KU0CYzYP%eBelr``uE|ruE9E39Nul^wQG^{Z-Vxs%dvQ-39$Y`Zvi0k-?|+pN6y8 z#@HKf3r!IR9Be(Y2c3+ufo)Ptx1Gfj_=$t3N^cQ<(W&&|vA>ZN*<>(gG$JI%zvnOS z`de52eT*x|-c_l5n|TVgdsEHc-v()|Homjb%k6q*6#PlsYi9 zIww!~dI|2$s_3&e@BT{$ag5BDw2d(st&qN@(x%%XyO85(?k!t1@Bk1SIh+5Z?UlQj zeEpN>JpGRR012+#&b1lssF(zD?y+>r`E}h3&CZiCt(fO7=tvEh7ZWuI1}u4JC3+O< zG99Xa=WU^k=k+(85bgA6UqMi)N8y$S~_S`|69}Qqv3F3m?&@; zf`n3%Uw*XRl{|GlvcbS!G3rQJNl$4bbR=Kj{qwI7L7MJpLd%*QWmZRqulCp-ObX+! zW51njRaOu=!)J|y#Z~Ig*_MQaJ}4T!#hYo8SF%2JdZq`^-+1SPOXnh_w=QAH#b<(- z8}RKFnUTSWEOynOrsUuCi`{d4&}#YyqiE+(MiG85g z1)U_z^YO%tGV=bZPb}wynI_zwkUAaPVmuEJref&m=fbkG@G?MWLD?0KB}J8y!ia;U zR`r7rC&{dQe11oC))?0OSmP=mi*@d|lh6AONCYb&%pvIzl=-EL9#^~+pD=+BQLRBw zuM#R1dFICL@381}qtxK#qkJzr<_f&i$0m+z;!A#_(N#%sFtcYJ+Lxwj`t zNhYHimnSmI{lFzQ@5Q$;7;_xB%B+j8>^kg}Q4kq379r|(b*MfLby)f-Iz^ra0rJ_FgV4$MTxV?%|#({O%f5V zL>n1N&CVbE>X^C2Vw9^YZHkeX2Jy16f*OI(SUm&PP23?c<~ReaB6y zH^$sXbOx;At=UQq5Ph55;j&66{26)z0hcnK*>Ip9q-r zT*QK`$G%msGJXd6fDA6r#qS?@-P>N*cwTkYc<#DK>OURfb47Wv$$#&u^1}Br+Po_U zktgfI)q!lY%sI#0>ZhbvlzW{$eAvyMwP8BK)7zegw)<%rtC*r2k7<=VV?SwNctK11 zw>1zR?bW1?MdDB(kP4RVf=~t3cxsW2ph8?j;eAitxJ2TuJRB%q-+m6e$Dn~;97t^l zL=s6p=5%HO&Dur^I?2;}D7LMA3q!YcHF?P?hAoC(>)XmJ{4(IJ-@&omhirDxX_}!t ztV3hIju&@XIIp&DOaAs*7K8JMLC+st3SJMQz-t%5-Mjq1f$5m&S3_U8UYx2bYG+FB zXij{akJbj^SXY_suk%3|Ln7WsC(r*fi7Glc0$Z1yMw?n)i$ycVJfkpc;OU*ub)-Ug zzjo1VV@C76ZVuA0L>caD;?*%zuGLja6{<_RYR^oG;s@WT*oF82ppzse%aYJlQ-&5F zOwH`5gL|fn`ul?MvHU0h%!=lBs$lNq*p9rE&=(=CC(^eqYZQh<`ybYz(9G9d@L*Y4#{sak)v9=P}9rc>UXU+#+VjCrChYIkh||@5uXzr6Hhj}hlG6>l z?$8|MJ|=kTyfIv}%2#2W_fdSAvf?6BFf-&^yB&ZAxWQ;ea;Qh`dTkjU1f?8&^ESNi z0y(by#9Wf+dwmUFcZL}bp!!boBKA@F9uHHZ0{<#1VZAgwnq27=Ymw>E;{;x%5DyT^ zuD0`K2&N34%ct^e&4G(BL+4nJF&dq=m^pRT$~d@DYi?!vRIqbmBv$hr zo-vtwYa|3%_@#gs`kF{E67%glj-^I7YCcC(4rA{()h6k$6r4KuRZJNTHrN=GTxIZ^ zJJ-wf=!ZYvyhFXCr`O6;%xX|B6fNw_k6W!(G_M?Zs`^XO-CdKp#ic&iZ>?8};Tpp( z+!}Xv8?TO##8(t}?;SgO(Sg3#K0T1Q$iHiBOQ;7gNUF_UW~na2(F(n0FcpLv!_acj ze#F*!ve1d|DJms@k$hGX^?3vmym`3;Fp9b#PEWdQ$(Q!77|$ z}(6Em5{p(vsV)w z=DBgH8XjQgxHk0X66)w@faMOEby;Rc+$nh6etHCCc1 zG;}mvBE9}4?1Zzgfu7EB?8)W7%10|XgRvb1RViIC3yUQggbp7CYU2;Tej5AZksXEi zmL8pI(D%!8)aPti^4&x|zXd825?dl25ZCyLO(A&pm?%naKZvf4jagK8SLk5{3-?-4 zI7O!n#qAB&@O4ex2>mM!;Xm24EqH7n{j7^ez}}<7zqo0Mh+F?=mJj>>ZF?-Obn?Qo zVFv9hN1|kAW4){Wi?dq=ruAX@j*+(P;z`Hg>R$8zl0@DL40QP<`R5RHD7J7V$8rIZ zJ1=eIDaiob2*+zga{F_4~_qyR^D$aF-Q8 zU?5fC`%7rvj1rVg^3K{>$p_MzG5T3cr7g?cNxiTTlzu^iY^RLZ>%RRF6_tm8th&_K zSJx0gi*lSvw}Y>1jGv0KfFKcstFI{}#IK~}tCEjF&o8xS=V22rBVV+7aV)Uj>)jXN zUiZWbwSC;I3kS9U!okKwp&B**%}4W0;L}Y(l(oj$LvN0-LCPDl(xSVZAU!0Zl`Y%@ zJx@$j0p>!Uq|>FREvoF-Nj{lf{Pc_}7=;Y?@C(>}5e@_rkPuO()Ei>Y&RbyoX|6=n)Ix{|DxAT{8`rZ?!1v*cJT#n ziQ`nM&svX-)XT6ioz>+-+CuLXnMSVYNcXIDl-{4cmxpNWnFG)+P#0K2$3!?dm65eA z3gR@P{N}~b|V#MQ!kw1SlC zh0O3=dZRzMU6EMSE;QhS-X>^yzdSIL7Iuf>>_gg=mV_dY1zn=IiX8=7;xID8U ztspdr&)UTkLjKzws!9Vi0jb`#p=%hHJ;frPodKeU<^_etv5l+|y=kYW1Sh7<_*HVd zrK&L2+n_@TcE!J@?Mm_)%tK#nM%%>fH&#}OgY zjSLxy%y3|BWCrF7`WPT$RY^6txs+OGjOsW><)lm!l56E45;5=?YWn@^#&CH|cJg>D zDJe6EF6~wAPMlYNaJVF-jc*5z6w4VRdX`vcU7rfah%jy9I)qqzP+cMIvOXbN1DLaa z#MXAh-xArz#IEq@=6$qdA?7){K{(&H+fDt+Fx_TtcwXhRUcx|oDo;GmjU;IdcrScg zFCUl_!TH)86K;I`{_{`~2RvEZQ@opZ3_DwYG><8q(RvBOT_)x5Q&aKV-yf!N@}OVM z#VK|C0v3!VgyjtGG|AhNXng^G5h{{Q^Gj*U@(`uuowMGriAV)8TvYCn=tKoC1?ScK z%?PA(1No58Ni&HEtc42MD4F+Wqc!?XZlgclu)D+O6S1ZuGd#ihi^Gzr#j|R05?BVp zM~dMGm-z#8BOm8m)bht79Vd29JK=U!i+#0$3A=TVYY1vtGt0ijl%X)Vhw$hIf8XzS zSsNe7z9=gXWv_`r4hgm~OSy}QTu&*L0z1%6e(p43gShA}cMT*+V?_N^d|3XX3 zFkLo?GAK*u|7EQVUQksQz^>AAd4dm$bNsmzeP=$K9B*4XXrfxH+n`|0P;ghRJ0bW4zzNBepXw|*;6>V&&u_b1&yoMEB#9o-Yqt{NlnA& zlap-n+VeMYaCz>QjZ_IaET=Zo4u|W$=aSy<#jS>h*pYSHg+4utlknww{LQNpP(lMp zj<90K6xxj|7_GM7shqBP;Nh`Ru8VhZ{B}lhHdP?Ea)OQi^^t4SQHvd3Ex~zl9V zig22Q1%lFDyA$4yX}^8#x?u}pZOkQkdJ{9BAa7PWxc;`R7r^bm!M)i9C= zfqeH8^g8s!t(9w)-^YQLdxcmal)ev#3}rri387UF0B*)&>z=o-kG1B!D8xRwj3_1a zCjY5jl2<070a*83NOA13B8NZ!Xb@)w05Dm{os1Sm>vlZL7 zDehL>-QC^Yp+Iq$;t<^3onpb=2_Z;v*Wmne-gD1+&t3QYdDmU{pR8o%$+LF$-kHqo z`F>`0ebIxjnua2|)jSfDW`yWZ6>(V}F(hz3)tO5tVpQ?$zd)f2^BjS_jPXKsG{?Gz zz-8+%k6`O^yCfv=%4YEM*7Ds2$EODZso_{riv~RUV0S0tLRcT!DPmQ(U zj&M!iU(X6Yq_+6m#VqzBv?)k7YxB=)etkSUaD zzgKhi%KTbicMmJvYy0<2)|Rfqkbgur{^`g1nlBvtc)eMvvt>+-lt-H)mEni?x2*@h zN|L=H)U#x+4J6Uz1b7KzFC7bod?dn>hX~Dj`f|6Crp>ziWP9~?b!{i9L{CWFc8CpO zJ0?BvLwQB;u`xrqEd+NBz(Jsrg3+(Y<<@06L{dg!U%$}?llv5Vcv*bdE+81^Pm@J@ zL;LLvSH-729_hq>25rrJpz{hY)I;ZmlpLLeipf0|bQXnAa^(9Yf?b!>sIXl2XvwJ+ zHA{Rl_Y)%&n6{F_3cgo_8-i!{duSu30#X+_w+AGKKcscRhJIr=?97#3&mMQie$SCp0?%$y?wH>f`uXbSbc z`T4<|k8G%6EHOeC`30J(m5?b^nd!zX&>Zv|AUJd>iq!-ObnXxg3 zDTscE68BKAHyZ^RxXI@fDB~n8|4(>8lzw^i>Zn1Jv?oMcE$@{vpUJ|((7TrEA7=8D zt-+}v+l;6f<5`!yd}}JVmAkY3^Q|@Cy5H%SU)-6Cv-Olwe~p^hW&wYUkSfR1Wq!pW z?&Qn|E=f~4EL;%JjMeSK45dq^@3S*0&$c0+4Gmp`@f|{IRL&43|2Wm*Oa-scA%IP8 z&bt%)A4>CZn_U0atU5YXmUT^$HT2JMl>e#e-wG4?rxw38@L2OD9=Nr1^dUCF%u^S6 zPGZCt`Cn4?|B>W#=KK>AaN5>uRCXQ@YBHdAAx+4fM1o!Qn%eb<9(Blv*Y(PuX-ma^ zhS4yk=%a5=g|ps>w%Q;6*VwZDE$HW8+FU9$DLRU>c#hcSw@KLJ=u9QTwjs+Om=R?2 z*^m@t(nvyxaq879W0J%Pbj)lg;`LaLOULDZtvEIC)h|5`ePsCv$4dPoeLCglq{m}p zKA}BTxu-wXes&}BZz@0|2m8O^3?BpoJc{ss{QIhZQwFW8lFa`FQaC3c{4c~oU)+Dc zxAK3ZEuQ}Sja~F|@upz)R@zekcg+7g8v0`SY{F}PXS4SI#UK9lY*Qlgzkn0J$Y}l> zd*NT0_FwRgy9DF^H*Xv+wddLKE3t)G!<+eE`zjoT@;|1|lUlyAqmqltNc|L+g8^_I z-B0Dll;2xn+j_|LWrh4-UoCuWdzG%Z-iU-py{+mvReCJ|XBe_GtcCgkptv&?R*)RB^#E1cSsE zf=6H@Lrmk6i}D)cK1K#nLX{CsGH29@KVp zcE!si*~GJO^3zyT7MG~fm9uwiY?tW*^rJHE7rNQK)pF_b8`k}y*5P16yA1h$)##>6jO5}%?G1ih zsrY#WewWBPTKnK}m=vSg4Un+IK!Dqb{$ zOZ0+=IF?=rBS~e+zf3m7(RNOuDx&5NTeTOqB@Y_#XrUtgMumaLId;WsszVK0j@^!aP4&sP9Y~DF@C1}bAJZYZ zG}KmF1M^y~{P_aM*$al=Y@A#PTK$PgT3ve|xlZ&<3OXE50FZffb^6VM1e`pI60SUP zs`&p9D0FD8--6KHIStb@MJAjaJF{@Os>d@1E8EO85qq1u!YkWGCsS% zmcIpAojoDw&`9Gy-?y%5XZ_s%O}zDPU?|ALkLQqJ=$wnuzI4jVxXs3e6e$H5zZDI8 zKM`Oh@nv3M6ZoPI4-YNLcIcs(K|&RHq$ujh&ak)~mW{oN78%bu0dfO3di`1x%JcbH z_9&CuRtfu*4N$NvE9Sy84R%-su6X8Tg@QtWN-;;dl)UMQd0&2VR#Q@WZXd4E|6^S) zrc(=BIhN(6oHx3Y&!bx~(bVE^{ZLT#UdYrf8KghgOwMU!*B~CUHl*RCZm-0_rwjCX zI?)d}1wT5%eQQgnSlc`x_nP7`7Tkuu@UqYlHC^5KcX$12?2xwXp&cq;sue3Mq83qVfW6IV;94B&HHetnV^Pb$0&>is4T_RWB!< zx+KP0`z=1H(zFaD+<4Fboe0-C=YVd!j@g0>f{h2;2c)R{CY@fj+4;Y;$kzeQqrAnu z;P7wXrv;XUx2?{j1KyFeP$@Qg?4tzj{0Z9Otaf}6kqvjQd^@(rH|10nrx*wMoup2v zju)SlAbS}M+XP!Cf1QG3A>D^TJ3Wk!-qTzGK%pz^v3rxT@wHEcaWr`f7C{%|9xK2V z03vvDzzn1Eg*oA2xV8@XL0W?qCq*_9Yb#u4a-bf_xI{{i7XXysZt%(>))8jWihDeX z3X<(f<{p=-;+8d*`?{RQGkuK|LqcUO%w8WwmMN>v&pdsNVZ1lkdK-BV%zq5B5}V1C zYzO^%;Xyp9!E5jh_ER=L6Ihh~{Vla#oeIu>E?Gp4UI!xcaK+&2+ZwlY8vHOcYIXCn z4&3SBdMGLA4|pusVwxKcx)0q- zAe^1;vm5Pm(^%PBfZO#KJ#B%NO@{fWhO?R)!>XzxDm!MBf*%0}%=Zw>{9`lFeRj2R zRiSN9!d4%)0&i=!ZzY9t+uj=qbdubi80Y#|h&-)xlqKK6y{zO_ub7JyS_-F6gpVmK z(_q(lQd#gcMESMHy$h;h@2#+3*E!ca6N|>9eW>~9_%Sw>0UKSf7l*zXmB-TR^xNrP z&5ZNL8#%@_BMIiBGyU#4Vqynam0MMmHND|gAg=cMisVJ-2cE^h@zDI1n7;go?l$zt ziv)7oJs8o9+1TUGitZZ)DjMUS$!g@#rl10vt~Yjno({ z0vZzsTZFF@tNNLXXi4mRzjTDY^mO2>;9qAS_gc~C@BC3hYhqVw0Sd1jc+yZZC@ziQkJ-?=pgkCJ&xAllR6L|vA?aAmA5=vb}HiL2Ogw~6x;qV9JS z494iW^Z0>O>XglBa&OZdbZC5i*MzQHEOL>`6k09)IEcp1yd!klQ>qy38trrxF1nb1 z*%W*3dNziBLr>H@3??2&MR1<;IrX zIV*z|9Xs$XB+Vi=K$W^$n13Rc*FHf9Wzk9Zz+|>2ka_x1 zB7W|k{B%84K2}(^-Ihm|DF>CnB0%89o$`CC;Y}RUf`s7{b6;+DMxXO>OX}=3tT1CU zHl`hexfu97$Mi|JQ~2>}Y}t|L_l+Fl{<4O|=~4!@_QEkkIAXd#jZ0dRu1i{DhG;Fb z+n)n0VqW>-0c%q{evb4??=Ac}k%(-(e|WMAGI^a|WI6^_g_oQQwhR;E0bs2xz_soZ zkkzu}qNQVIttI6KeJDD^7PNv4)nuBQe@A$Ig*@Ed7DD3V%j3B`4G3}*;lAY_q~`(9 zE7o>5A!YhA*QlihQ%!edmcCB^$)_5}FSeQ<{GRWa7g{{w9}=1)9?40qnKSmyyt8v4 zH^wdoO__{=;+u4od3(g5;MAWR_wDnAOn$lf&I%@I8_%T!nc&Fgdc*IOfZ?L^FXZiI z+WBV;TM4Bchndfj8b|7mpS#l%x!W-T9`?=gz6vXjwPda{kLkF2q8n!}#EqBG-B~~c18|GHvHj3}d*b>R02;0N1kpLZ0<7C_kRgzGzsNvSOq}aTQTM;`@g%)+s z-f!GOg^*@c)Cs!f2U_3SB1|*=FZUjYGuAhSeAd0D4yK^GnT8Jfc0y`>uo&>rSlP7~ zBJk8E-_911))2klM94OGjsIz)a2$D_3aq(=J#&tJpS(v9lvTTBa&E%&QciUf==yPv z|5=nQGu%tQ5sJzaZ54sD@ zvHh4_#+i=<2V07nmZFAMXRL2CC)hO?AoMJ&5`PEml^*&5Su9lYca@owCi2EC&Qfh^ zVdmwyddUgNK63kSPdr$qc;=+Xj9%TX^9JoHo==h9hkicV;WIBei>1c}6U4ZeBb;1Y z%3jSfd$$Np*xh57Ko!;2!%-Z&)x@jn<1PG&`PW-w^Y0%W8wsZ^-S#cM)t5Ggt7>4$ zNl>z7zQMLV8ncWX-rIo{Jp85}XP^*xJ5Q-SB%9m}=0wmrdwzXll9MfuT? z(Co46m84PWDt8af|yiHS!1+QZ8TAT(4A#DinNqj7sUK+Fdd}8*C zt*6B^G+hA^-6qYY=k!ciJWH5%0Rh zK|!W`D8x7TpFVl{KYVg)?{lu2Y!%7-0-Bs<0fvl$Fg%R8IjOz9Jh?C=AS-@A0I4l6 zR_esvP29$u1Tu>_m(iempQw8*rX4;Le?rKW$v&U+I2L)(&K6?FKG%nc6_kj@cZB>0 zD`ld@2Y;CH`>tiu`m^RU`b`%of?~>svIJ)8w%^N^io0K!Bt=zGA!L$DA9vy}=`)jj zmhEkB3#$Ju_LpBL&LtyaEo%VQ-q~bw=}*4F?}ocm=1EU3&Y$K3pS2}a=VPv2;g@YY zh)S(k4YmI2tj!u~D@z@SP+otbuQWazaFTf^4zTg*D#0W_$O(@&z;QBWRjXj+~e6 zUs?cW@L}QAl*R@&(xAMY69Zpo#^BqijqUKrFVc0hjhvp|;HHXX9Ca)@nb~y7uAEwe z0RnF;ko_QuZKj6qa`U1|W{&h>^qVpeW_LO3H zazH<&##fh)sctEmaasP@6w2ekzVUfamfasmlL;14JUTj#X)Niyfq-wz-Uk+htuxKR z#npAQUkRgSBAIzP6(5{&%xbdDj7GlZGv3Nx9Tn%cozm+bcdOLRv>wryaTC0a`t@cF zTV&i7F?%Qs7XK_sn~L*D`+&}W*PhDrD2)F(Kl#CWafW5TngI%zoT4<-&V|AaWmrAv zd|H9Rb6psgC#*f1?60lBh**9^bbbI#c<9f9gfwFMQW&(zj3ToXFGK`#m;YiC_}0#t zFxwj^|a5En57kz~Hdis~TG zHs8T{?r}xTzYTv8Eb8JwYo3I=?MLwI%r@q+i7vxa!=P`LpKj8U9g68H$_bsA&=lkzORlkE9Q*tk zXqxY_M48bQVZBp`>NE9bG&cZGwUz^xipY@}6?;;&Peu9qRop!?{DbSMzV7-qNS9|9fK_J6-VDSbISi*B)c;oiQVP8?;?27nJR-N*5 zeNuG(9}5YaJ#6LsiV*xzT)iaWdomubX;q2)ey8hht1liC=XOaq+*7rZE21Mu>RI+w zCru;+e0ri=s^?jGDpEV2u-=BgU)Hbg^X>>a)>_vPwggqI7rx}ciU)z>YjTf33N^f0 z=b65bL9sOwKaZ}9pQ}kUa)s3t$ct>eB@MX6js0}JaRoHwl|2ZwQ0SAp)?>;4`~kg4qaj_4{H^pz zdWbsSeBl|;7Ror_n573z^C?OK)!dpQQqpapDr>;I0t*_OgU> zXg;+kJ@b!`7n|DAZb$%MRpU9@OYa28LrZH(i3M7O9jx3F+W#ckP8XSC zzV1~W-?qh6ZzeP)PUaiR!7bWDm;(`1#F15QIhcL@eWLg;B$`_4QbAVNr3l&qs(){^Dp4U=OM`R50Es<^Ran+D& zp{@IZA&M42clDTgDIu`L&;exqAqWoH9FxaIaxE^-s-7e2Q4vVwlXd+u+sp6R+uWBi zbwTIW$i7aPL8>X=XPeTPBUbn|CQ4G9pJ+#wU1i>o% z-Q2;~4$X6SkBU*$$bJUYmOa%_-H7}dOcH{=94l)sOl>}ol=F3O5neEF91{c3i$D}) z_hnsLA=thhs;O^dDD)spED@{63nO!AxzuGAHYt#)JgJD7>GwT5OVT3|LXIVrfh0r- z{NJ&@OdI(hydim=9k8Jr7bUCdOEloUMQUlmsXyw6JFYg6@lO;UQ{hg2?>#;-LV4&< zhI2O{^M;u1EN zxC&ZJfx|w(%0M9NO6B+kFgLf&lVmqvxGz(t%xfwTWLDJ7o|V5Ng69jLDKPtYhl#3f zmx+Kq!qDU}BDzh4m^aken0r2oBvaRypLyTapx5{azEwQxfCsmGwRcAFw4mDd?L$(P zDxV6@MtWhAOs2Z<{ku{Fp44A|+3IsDiw9=}t>ONF<+pt>O~=W$rTcy$kj(R?{a7P$ z8UQE!SU>tws0%)sw?(4zaoS)-uBu?=ZyE0(kNp({9Lq^|e5ytUd7uOd)(isF!;B`s zj%w`nHOuu+$vXN)S3S~iYIBA`>f-6&rKx6R9#4<&lrqQCscgk&q&d8BX zk%{~W$N)4pu4#-GSMnGgLWw6e!B3pVD@}DMG?4o2)Ko&H+m!f*-0)D$2zRQO3XYAJ z8R<(CM#rj>OikUk;1kB(PtR5)W8+%MoxGRwM4^C1r;T7gTff!tCZ^Q#et#rKl`kCv zd;{I965*aUG%~^wdZ}};b5p^^>DKP3`JJeD5ZX@AXtzDTQbzwVn&a-tN{%5`N!sINoyRR|y>S)H?_Q zm#3{uQ>xN=zVInZNZNN(MZaF*HPV7;d`(E$a==BOE{+b)L89d;P5Cp@4(M86k=1EhJr% znqGXO;44e2??1SggVX@h&V>o{h5p)|8f?6=s|0Bz63Gx>##RMcOW%Whs0#zLN5-@Q zJR6T}++X8EtAZ|@uUBoWtyU1D{&;TR{CIzTo`e%Q-_I?kXyXgg2Q?=Y{5q0bo?!l2 z*%26+sJ<9GLxpopq%qBOgQ*_d-p>E)Aa9^9A}vGsz8ekgq?+>4mK|M?o!IAb&AzY1 z`pdZFZQNI@Du+S#{rm$D^=Nd{T=Y5TZPooVK_4RsgSc`f+sQ&gI!ChjbOJLY>EkW< z%PG3sxF1()LrwY!ZF&CvdB~}lo+f8XyoEgZ{i9VOLv_(r^ruxRW_#Y43VKs;lI-Og zTm7Q8QgR@QE*kT_E?f7q@VvqhzDQJVP%M9YCe0{Bbbygoi_hhW*>!rG1(PQR*Uy$G zDxe{8UV&4oBjBldem|f2xi)#UD53Fg-D_~H&X0&JfYau~A>o zyM%>>_*aZ1a>q``?FSE7rH&E&5}P-u4;>8jY|EA_f`RmBT-%&Z5%5u0k=da`sWZ4b zvV(qarA2y+!?34>n;+Ob)Sitw@d`s^5}0h4MW=S?kpi@BSt50T5TB%NvgK2i9#DInxYL_8vxjSt1G^ zoJ4U27fu{Vrn$`UHMFplimlnLeGGN z>C!Kv)zcrNC?7*8XMexl@UHHW3TxIw?CQ!2+H8>Z_HnWzpVmY4t<7x4QeVZTP&w85 z{P3zLbd|(LJl3Mz?usP`Q!c&H4G?*+ZAP>yO;xh?XZrJNR@C~Gn`j*SK3Nh1xRL1K z%q?)r>vM_j_tpdPMlMThkB$BM_@`!%{Mk62Iu@u9;zCnYFk+aF36t*9mKW|a+mzi0 zpVKmv?Jn=nA=i}@qo)Q!W>4;saHPqtb=6IZ?tH`<&18Ff$o)p3!LlhK&J!5fK-)dJT&legc~MtoLMp3}{@~`y)5G5RWtx|L z-+?tLAT#}X>1tR@N#-eKP;}dC{UY=Qz7pLPsGSyigcH&b>Deyx3{I{N2i9z(iUzbZ8|wXi83G2hs?3H z6{6+3Au(@N#9J$b`k~I4=Y0<8wzRt!Cn`PB#A6Z}SS7?6uVE>3-J+??NnusiTe8QK zp<=P5OGRcHXtPRlZJP78{pi`EXZ1!lnVh@}-D$_1lP#>vM9KVKzP_WUbRLVT0c6j$^#rLtdf*g_xf=4PL9CQx`B{ZN5U2-p37l6v9!K?zJ0or zFr3~5RL0Vm2T5)@`AUQ0p)2^@ipLd;-^VT^M{;7wmD{kB72+yRj!9&@{QIM2^QYhH zKhdU(O8PD-ZR7Txh@Ff(eg1mKtWW`u03tT7GHjUqXaWLoGjGujbtRqFbq}leJ z($g^HJ~~0vEsx!?qz^SX=OhPgayl@x1L$XRgBNk}BF46c(t?BBEa)6_nDr=xt2~vlwsW7KT1H9OYAvr0x~r$#Of2o^}kq zTHQ|LBIhEU?bRy!ETpyUz91j#VI5sD8((f3l^|KDy>=3yKkIKsKPsLUtg;beYP&Fz zi@`7~I*nKu{_g%i(J6Li-aHZ2Ctj-k)eaUvMWKr>;r(l79)+wBCI-y6QA(+?CN`)H zukpP>nh*^f+sCT?vuJexinoH=*=T-+q<)2HVAW}SITU&tKm4V?f2ip$AkzM5`G829(+DWWLAY(X* z! zQc`g{+b43G=&Rg5KFa5Qp$bHLp1vM4optH!g|dl_p4E3CETNgx*aQvbfY#r-8J0XO zK-)&~k1f>KPgNeRdj9dT7l!0=Lm(?_q#?ek{l~ZY_T33461L=zleuu91c9#(7txfI z-TFMn7Doq1?r0ENt0tW7%dekG4wwbAwZDhbfaz#$A;iEQ=1H>bAF*pX{L#z1z1)48`1(S=%>L>1Bof z1u+j*Z%;e(mP-T1#AU4`E!OaGrLGxDYRPW6=N@FyY{umm5 znZBjNTFk33tcemOJIKANH4tgHUG~1-5B?bayCAc)MLa1%Adr_=uPFKXx2k)wVk^ab zlA3EF-VWBiJp9co&*gVE)QXlozgB#gKPObf*NWTA@UcXl2F@?bl|7J{T?7Y6X2x*- zJ#wZx$EUVwUx8Q!q#n{Dg=)t(Py1EK^P9PvRq>Z*62xV$ny_NM9M7VKkb?X9k+O@^ zT4uGlgRl_QrQHHhcLezR57rQxJ?vx*(tw>O8@$a3f*fIPf7b#3)OmQ!aZxMaM)M%;#%)2aZe|4w-!w zEpfaJT6`6SGE;x2dR}$x^D{WMDmgKwM|w*(2LExjPP@dgo$l8~i~}0IrvG;Na6mZB z)$E+caC3P-X~F?`3dY*&q1pe+xGUA>-{!`A9|ZK`teV1^VJq;AHdd%TcmYOO2toH! zt$DGq@L=kki-+M>Z(=U;YtaW?wp;*#+#M3tq)^b_*6UovRb#9q0L74v)i^vKQNrQF z+-4#yhHTn(tb@gneoV>C(7{-eA*MXtZHj2Q@6|c@(p^sZbuPx$ZN}}h`oOg_i$rL{ zyGYWO_@>w=(aYl<2u+BE-tZg2C zvUXyuXe~jHns90kH%SRF|4ifqYwc&=jOH7)MkqCPiQRnX@-NCcU!f_~>0;BQ3okev zH}|#3pewMn^=rm2ZidFW4{JUZ)Sl&=PYev%i|Um_deo77Ue_@@P0MoT$|Z37%!8qG zw;iEZ*`THXEKuw~JVpgPwrvfz;(7f-!?wn1nO9pFEV^TU-_Aa4+H&%nX#|#n#jqtJ ztc!WCXMh@k(lEoOp=9EgNBw=(pc3d^kq*x~q!TGM-w+c?!b5uRg}f@n*MdO$kQrXB zPPpE*=}1EzjC^WOhuULTVjr(M`_cqcM->TX(<5QMl-a{aa`SJ}ir<^P;>U#&vZwZK+f<65;TUG`5YoX_j~ zi2~9mik(CLNZT6MqTG}h6P`R@aaexslx;yTmn#c6l%iM%4!vp&+HyAvs0j@!TA+sFG%WAkpSGV- zV%k*{*=leR2;#3hSig+OZk5C&+qq!)EbSZ5x7uMF`wIFrPc@tXoHn`UWz~ef7sZN> z=A3sbc=bfwIus^yfzQVJKT?2^swUL2*EAvah0keYF6^fSc(-~Bwhdy2Y!Ae1`z*s5 zb0W{IzZ(O5-V%_LPF3}C36h-LvPd6Raw&8;L6Cx)-CvU|wVAE)? z0B|F*FWeUr)!hYH#4E2G%Jj1bkjOneNownt{)NkqxVs7& z-0&0TtcmZ_34JIjL4`>46}MmAaD|Jn-!G5u@Z2-Y*j-??qJ2bT13bH*le?so4wj} zf}gVMZLC~s@>Y*WEUJm?h2<&n5lm}6MW4G7Z~!++wR}Cjg`XEg^rocA&vVUjR(`vN z(<=XvTa8>eo-i%tF+UE#*iy{12tZ!KAMdXTgDs36`%Qzl7sIz^m!=uZR_ zWxmN>bp_j3d6wcNQ0a>K&<d@;w``AHiaUr*3)z5zIKZ~=mnB<-B@D?H6?~8P$Q*vc7xb-BFkz%A zlKN|!p&v!s3S~4{ZoYf(niwy~XbOnUf>A{4O7zHq=_&z$>tW8%fWH=pDRUONb zjWoybMYiYH|0pDN;n^c{nRkTY$MSC3RMZuPO*mzN%YTiJB81?hvhfbI+wyL_EP9HE zu+6q>t5A;ue%=NQ#9z+oUZzs$KYX?Hfb&9EpDT!>yq$DaU&>^DaOm0dcFdW^WTolp zNl8vz;L=d5Wot_7KF3#1O;+*T3n61U2+)+jw&^2et2e*oZHAWYY97k zYE_Y?9lRMzxf3m+edpjn5G*ZBjl4n6KNM%gyLY+vy=_QHqb3{1K8eLldB{su{QcpD zoFOyatkL&BS&Mi(%fB3-`W_~A$5$;LXy_(#AATV`>zR-GcRBWXM6@bSb}_hKYt~I> z4Wn4@W93ry9p=v(CVdI-S&;q_8E!7#~^!xr{^eVFj}E@zR_bW3Rns1bQ(fQz7kpMRzu z^dWNKJUMH|OmE~ed}8uvjG*bU+zK|EaqJr{UZv$}*UN(KgV&UZYaAObzOBVc!cTa` zDs8m{a|Hwir^eM06BZ{mdB)Gk^*J6}Xmdublgq+L*lu06TD_eRnm~oUAD|k3PlECrG@%Od@v1gdYQ}Q}-6qt?r8gutr;b~e zlqkLw$A+RVsJ>J>i`tH6Cv1_pScNOd8E@zj9aPAYH&gj#5SXYj^B>S;39^$X3t$!x zJ!R&-w9SJA-S&ITD4sE~Xe_5QE?2I#*%pX6>W*K8vr4A&vyHyG`4hOIf6IqzVSu}E zk^}T%Lge)NDYpHyQS+mbV#0rE0n8%2Iy;sOz_FZjt}Ho0AUIJEJ(e<M%Umd3p(ZfOo3<~ml(b+{QX zTZKm#rWwzaauJNCu%i!?SQ*zV zw6Q!Jx2@X%&6!kiH{NJs38ofKjal*3 z14v5tT7Mu3qW(wN-r#?PNF;>l9 zZ{W}Xs#3Qud+7`>r}`;n;oC3u?T;L={LSc{6X{yO$-spauh#{t03buy*a>9;dJv=l zkmN%d6tlB1zIG-HPvy9q9rTx@sw|ZY>Mie9I^21T;x16b_Xh2k)xsw>d zXa=%#V%D`2`2+7Pjh7KKuok1(V3c^5Vu`rgRqm^%Y@4Hyb7@KTvaNfcAfo;5)(|D0 zmcmC$&ErnZS2;Dch1Wq=i%H$<=zkzX7dRg6=|T6I(>=8jeW1V8vc6heR(Dcp48_*^ zFJ+sA+<}t+0eWpZ9M0F-v$Dzllb&id)%BsH)?E2@nXQ_5D*Np*tk?#MtoJ38_*f`#AyKkviL{ZFJSoKC^X=+O^lk(7To>{C(N_ihU8tVQ+JSGJ#< z66Vp)SMdMA%~jLlT*c>m9#{A$e@ z{{8Cmh9;lgP;N>Ep6mD9@UjCRR8vcCFySo^r5Tzds;~}=8GRNVEt!V%ef`5V0K;EbEdRi| zbmxE{Fh}tno=uNFC8DNxUN1TAaxRapYIHO#VI!uEvM-8sfjO3j86O{Bw19<{3=ovTK}W_s7wP1)Z-e zq`*SFGnhe;9b<>L=bq8YwUXoGqB|B$BcWc}vxmc}4nXckjlppB!x31mi|q7~#W&9! z*1i06W-zG>1}rf_bqY*=s3r$?Rz3d^)VYja4~U!BfxZC(90Yq%Zv*ZS6a?7t=4|0Y zS15OP>9>m@(09+a2F4%oZSuQYMzK`Oh`dt-7f?B`r0XCmnR4x z5y*?95j`(k!uApIpML4#$PCM}7&GBBnb8|f=tF?2Ty|07b2S9OuOSR(T-|-rrI*!0%z{ewAU~3U!^}T|JaxtaAtJ~t*-NJOmXWgSS zE2PZwY(MVh<{JyFzRGj&CY0c5?}`CS;boomSy77x7`Bd29{7q>vx`5nieU&Kv+QAS zO{J0xd@#iZ=65mO2~1IbYdGx3$oR1`$fAN<^D^;hFyyYjGcjn&X2>-0&B2oBhtU!X zxfWv>%lC_cU*8;{KE^-RQ{o?{6?N#CF6_+DF>Fo&Q3vjDN|4At*bYcXXV@+R19IO0 zo^Ibp?`lX4p`Smc6r1JXUvARw7FQE;$KHc*Qwq&5kA1pwc39q9`iPL~2#~drzU|q2 z;+Q*I2}p~^@5Tu+YK|~|iCU>oO+Lf?VC6!CcxuSb?{2UB`aj-w^;O zvyeQ4DYI(Got-EIU`N4C9%sRMyo2>xeC7v8_0Qq%v{OAM>8f0!4}p#)GH1nE2~5JK zlR1u|VD*t)pC!}Nxdz%3;1}HKlgLbfD(W|e6-MT1jH)B>l!(0)G)VFjT_eHQg4BWQ zN$@y=4E<>l>#g7l{%3u0F-)`JEj5Yr1M;k8;hY(KPg}CB)-U^-etnNj%rppsTSfN> ziGX!puOXH$AFqSdvyHT42<#1-nxBy>yxoi_9PO=jf zHMbup>&?1ya=O*0$5&o++<+bxpZT2wb2soz;O0RIT6yNHM{GtiehsjgzlM~LbA2{T z8B#Y;Q5NT*9_P!Eo5OP*nehl#bsKyMR60Ah(aXyqYbK$SMzLjq*!|#@hl|f6jBaOsWN~bfLW=lEfRVHRQeNsC%N8-Q35x2 zI`G!Y#)0iu4Vx{*^izs1MDj5$iT#kLRQ|(BLH7zjI5=yFgwOn5gUP}?X9A)5zg8=JKzVkXoe2P$f6C+Y@M zv1+V2-V*$mR)GIQ+gnD(*=*~g5Q4iq1PJc#5Ind`aEIXT?k+)tyIT|7-QB%|JB?c- zhi|XF&Kc{TfBW8Be`<_(RJ}dlsyUyYvuaj7e3yf?jo=v)SLf52QiXEZ%!e{51>`a) z-_ivNd+ajlE1Zu6E?`OfE3xall=zJv2}#hcdV=FBRe|yYR8@wjg|R`IAAIn_t6!B0T-I z(J<|hn~>)@Dg!gO=-|cbPuqK;suj?pbm5}Vdtnk8yr^1HQE}*20p0w2QBw$^BLeE2 zexV3-P;t5zU+HUrROXvYqWNI&EhWgaP~-oj)O;cEP{(xp1V5sA1-qTRN*V}%Q}NjiyX>lYN-0U^A^uTr1kCv1HTrK>X&;!D zO`n5Q)$fv@pMwEbQ<)TmwczS~D}`eP*MY3JdWFfy3n$lUUUl_pV&z=LcunUeQZ?{Y zdByWF$z7}GM-S^9Tabr(7=ccmD)H=zlz}p1>vScB8~fpXB|V1f;^BKy#mO7C)h|VU zPYv7dXP+7g-$D0GHQ0r0=zbvQ2Sk@@JA5pZz2w5E-E9P{J&ZcKzUxev^Il0?iQLdC z3P*5Oo_@0FAFgCuc>HAF{&L03$+_RU?Kn}&zqo&le{yZ!jePaO#hyn}KB}xr3M@zI zq-d}m!sK?gYF`X=uJ}h|?mWP!C)c-HoV%K^;p;8--On2x9-NEy3Y(r~I)ZmUa=lIr z;>*0Zd_E>+C!9zLHTAIUAa}o_-1%i~eYn@4_(Mxz!-elkU9A*+er4#q#r-quC*`V} zCyDoyCsAh}oI($-caKld#~R%4U-dcPt-8IezNs%xqg0&M@2cNCkK&i=JLYy4;uP&y zq=J7f?6ui<_e#>xf+U<5NW4RrPP5IG*4J9zZqY`%~1 zvW*=OgTDkYwx}P0O`6cCN`2VUb z*}^sSL7QtK3jsWf?7dF5QCvE4jix4KKE}_Dy`x_?A(I29#*WBuS_Ms>5^r<;S1@nF}KCO z_HAFo#hWO(*wbMl<{+H_6P?gR`kE=4l8%iXmYovS*LGqty@(19_eB$x{r<`jQ62z< zb(zNO(C!G=#p5RlaWDL9CHI(U(1|H_)v!#|idGy3Rvbfk=R@TGm~^3$8_T)MoC;b2 zCMl=|xg$&T`(kX-Z~m|@c~{x3@Xu$5pD3?y2WVG@aj4t#*@V7L`VYqBp7&)cmd38y z@Y;MP(MHs(_!RJYv2c;5vyhOK=%&4m%x+IH%u^Gy3YDWkz||DhEFJhWSVBG2_q`~X zZtg9MD{mLLNK?BgBB&GOWW;+SLy30}yUEL2BsIx|Z*8Cl<=WDR*YvHHRJ=EgZ;zVx z%jB%_d6+Q|a4~*sl-KmzDH-b9a3!p=ufgLlS5p3fi}j_v8ab$aIp|-SF9hnNR4#6@ z`n`K@ZHakEzK4On{`hQZTs?d3g%WM_uusCuB4pA^U-u2w^$Cbd6=L<_+0R0DyRnt% z#4eEAD*hz4HjR6`suk5oH`$c_u{^o)ik>Mg_$gKh!afF%v2<65zgQAiq?P3K()e|vKas7Ud(@r|)6&8!zQ{qPhz4=!K)c4FJUxV*B-y1m z+kQK=U0k`U#2f10Ry_hoBS3dE1bM}Mnvl4KoXr-v&6dWsb*UWrbaa? zT9fr6p9T>B9JEgGPs5m#gHDzv*sGoK8s6pQQ>#s$xzc$}sbt93o1B@ZlXA`Zgx8e+ z%FTHBaxLHSqcWIF8h+4*QmveK=2b4*vSLNZFqD25KABlM%(&$9V3w&RDPxd%6A1qO zJOE5W9JQ~|K#E8dyD@}=w-c>=YeJnxp-HXp*6--Z>cU$(^Hf54Io9h8)8LyNwPOPh zXEirhn(#Vljm#7statB>b6E2 zW*pII5L!lfO5;~5RfkX#_0<%BdEa@LR!DC{I`VxtFuJGbdeD5Wqpr-4gK}7knVz;% zenv#ba)db8%ew_|-1@UZ;0K&seC=66%>=4fESbRI37?BL57wqmtvQ?+)6M;Y_*$8` zCj^~oK$^t3dGx#h*U#FW0vl#~)I3N*JIEa!(KrbK@pWK2Ie-T~YQWS|bHV6zUM77D z6zDyrg0*2G_As00trlL*LO?vjG~Sy|Cu|{Z>xp=I%VgtCQ$`)r@cWOKjV~BhODB_5 z-2mS0w94bVV*rP0IHK2Gy%A}g5Sitx+U{g3-5#@=2(J$0{<+m&GM310 zbN^H!vL&Bh2r(fJ1=$)ZX;Z$hDxrX4XJjW~be_D5Xt|n5r+D~K(>4JE`MPMTVVfO$haf68pah*v$quG0tKUveRaT3w)^xROu)z~cc@{zhu->tlz51qjr3UT?wi;j zVv-;_`mRM74IA!wq2+3+{UEHOqT(-|E6oIhw1QTePa0d_rKR)>;p^?86BCE)WeH|D zFNi7K8cyqH|LVlT^y4&~)OS`A7g?AL-t^KZ&AQ@_3q;pA_%B4Fw8O;Oa~FJLrLeS) zIjrUuvoWa zA)mW?mFZiGD-<0y%tr+}TUm1Wc{doM9N+Qa5-1y&?TU$Xp~OZb{;#Dl}zaUq}*ul)ySU7s$B zQ3N|JM8XQzYm2>~xO{S4L2K(cz)S%W;g_flX{r%-^Da~-j07(_GiF=GS6j{sPIC@W z{kJeoJ$}AG1C7G(@DK=Ps_J+g1fPb;{ZC3OlrM9uErkwXHq0B&@I_}Ofg#R45dGY| zTB>YQtRMHmsd4TwlJ+>zxsZ!>{S7(|k5*RCLAcR>JyJRB=W^-d49Kci+2CDA9`*;5 zbpP#fS0P8pp_O<^PVI^8ew%a-K6s~)cgVLuhA1=&xq?E~K;VuB2?!sS@>9cvKpyaPCyPxIO+CvJkCp5H2RDdRV}RD(H%6~*3- z3Y*WE`}vO_y!~l;@hhCUV&>27iTZJlP=Qf9!;4CL$ps@u0YV#!h=bqTERZ!A0sRgh zS-I6MWT7PP9au90%}~V`<~EPMSi*>oZJ3b?bO}%cq+Z;oqXq;^KmC};{%lrVwbQVxMlY?4)iBg|9}H@5RO9vO z*C{=0zO%O*>8vy1NX#%R(4eUsq8Ag6A!wM|vHqP0#coD4=u<|i`*wd<63^;8tJ}*$ z6l3Pytln3Q(y)tIF`lgtE)wCb&>h5T%ZL);nMO=8p8!eP>ytXL1Tn`LngudzPV*KP zAhsMMzf&@Y`pD6)jqx zxOnOhzmtI*1ie{8xvun@ly@jTFHEujN(LT@0sjy>)h!*E2KJ12=$n8h;(Is0$Z3vamt$FQONOs1e;jdyyj2RNnadI zj4M?2K(o<5NqC{1lhRKp7glh{gbC-tiap5ba_*wt#rRa^aLk-op{N-Otc@Co!--rj zPX+ncyogm|BqRO3>SX;J<>8f<$k)`4NKX9S&=?q>Kv^>11Ln>H=5fC@b;H z+Fop?<+dPNTQNjW*^3E>e^A{zqML<(soBzL@1m5e7oz#rij}j3J))x?y(G3Y)7{Kp zB=y=vhGk1kT}P6NP+WU4FgK5^b?<;raGzm_==jojp&xkb%?8+s1u0#M9qI2EnGc}_AQCaa#ussRJ;NC4)}Dwmv@U`i*Bd94JMh;{?%Wu=Fo3%e4nq>0@G zGXrX_1*$GzCF|ZvS~l&z|G`!gY=DtqdQJJDIZ@;@N>`3jvHg_n4+=Wv_uPZNq)ArV z$`^b31?keUi}=lerQlo(L!(+v>`4rIqo(}jN`UYd43nU$A#m^sqz!*g%+kk3jOlliaE7(e#xLKx1)z2d5rTSt~#G~nA^}#_aQG#I&82~$!SX8_ir7El;c5WTc+Wec=;;r|@ zmZSFy@;WY83)6Vv=sRJu4Ob7x13VUWUnT^724wJ-044QTeT1S4b%!h=&QOr2Z!GtP zE*WKEM>&G9MRa^Qo1+7#>k2GrmQAo=Y_)(uz+*7cnBliYqsFMF+Z9REp zeGctg-@s0%hc!W9k=rsxy$ot^GS}Ab0&Ubzi&w9xB}mD z_>?+zC$v;l*Fn(ibsqjT!(~DzIsCb{q0CR4-z}wu#u*KL9bF#Paa7BPbmkSTpv4Rk zfOM#-fz-AgO|3f#03weQPO<=-aVjt1Ut^R^umVN^+twufId;Q7{$$1#%YZGD56Vh6 zI}F**5R&!2Lkp9t2l$rlU&nT;?Ar08TDt1Q>-D3m->zn4SDtuglygFFCu|rh?L?X< z1xteda&7m_e#R0mL3x$TM_Qk$kd>0rMo^iX131}ZY3{YlTl(q*s;jRhXy*LpKJ-kR zkd+njDt>#0ru+y25u=qB>ye?~7sKuq`{a(z4@?fPl6ao3^pnRJwSEvAAIpYfoWPC& zZtgTr68|?x0B29TEz1^Kq)D4bNx!jpeJg(B@Isk2oNIGSh{W{8Fe#Eh+~YcUq9DLm zlYwDSpqeT<9*Je_sIt2Vo2kUd~E@B#ct8# zY=od#{9Y8kZH(@+2B4%6e4I;fdJWI!`wGN(^9k zQp}$5cA?QDhh(SxZl}42js3zKTL!d|m^$E#Y5grE4K-N>dFzi1;pRdZo^Vr#GX{&0 z@VpAkq6gvd6T-KNgF&0eYq9KAmOjf7K4I!U?}ia-;{E=;=Owl_Yj;7*r55QlZR^cY za06K&J$|pq2Wx_>V4VTVq3^kvxI81VHR$tX9|s8hDM9!&?1y?laU=oOUd!xxyUy}` zF?NnOF4^jGjfovQ1dENtc+&5Y2{|b*89pZi7UQ9@&J|84)*d;=DAEKY4lN&pWu#zb zQ9l4xo$!Q==oA#4mOE$Oo#O5^n+@pH(P|WvENNx75g-3R{>OKNTcu59ZMuphxW&hX(WU8p&!bq6P}*~WY7;8Ea8g59`L5}n@a!& zv|?>9@E*%}_1WCTS7;Uyl*RI1gF}z_vGl`3xLUbB>pzOAhX%9_?E)Z;r<#+q(-V$2 zWs;5Oz+b@5#+vbEHP0>Lmgm&oyR|v;$Rn3+Z1-j?@mX5L37mx8=-|UYFol}Oef}0i zXU{0Jh~wf<;PN)8b-I$@AjTu%6a{&T-avgPy4+7+eN@(_ z{0N|C;O9`pshhWaerh6Ii2bw2%4=lNHd7JjLiCJS*WImGkJGBpG$~^N-609mIPev@ zM@pSHXj==u(FeF|wG4MQ{-u!BOvGHFZ3tWneMqZNygZO!#~%rc0`|ipzqRQ_&*47o zC|RRaWfBbO|E8nO_bVe{7C<-xHim2{?u!zia2@p2lTS`d5S*zwHD7wNw4FVnUpQc{s5n3wbCP#w+UN{m~ZL`Rlfk zL07VFqY37o4?li1Agpz}4zWeWC?8a(XwB1M= zgmUW%ySes-icQ!_HuD4S}!j48URJ-6pE6F?*!WDA_E6=nL0gV*pfX z3`^Fu)Kw>hIqqNo4gLVsINre8XBHNI?2N?X8kn`&Jk9*)MW?;PW2L(jk&Y*4?hHby ziy}?KZQq}DKNuXwaqwcUX#8mK0}!52D-BQB#8Rv4UMTUSUkHAy{6T})K&+}qa!$jS zM#cUH|4lU+6%V;?#7?WLPRto-sltE21@(A9`N2)m@4Ir37z=En7pbHV za+!emgEW#$V5ov4hU?;5|FvA{az}({BOO9a9X~@fI|6mx@XQV7%_jQYTYS;{t0lK@ z45lx&LjmZ^N0{<>fwO-!Jusm`rpyPelYYZ$9gpv3ji?c`@mgao0yMZQ)71`}y7F6J z=GKsL|4LzG`O*bySp6%bMmF0ltfGQ`a!)dN)rHCPwoS$%goe6N2~TMG`#x)v$6*3N z%NQMk{UzyUek6Ibx zWF5Q;mma3B`GCPho_NkYn@q$?ZTAA2FR2WWjsf(B7au`b{MVN3-Hlj0Dh(Ocy&!x+ z9R9Z4>9+c|wPz;k=O$e8+SwRdP;Qjzo*GwyK)&|`g81zI7pj@Kqvzk{l0WB#hy?vU z4GRlJ1ry?ksuUS3V>q}D`EgIIk1K&Cgxt=U!ufcV;~Y$qyT5<9W%&QNWiRMPA8uL4 zR;Tg5{4(Fp7~!VS@o9xG2Ka@9Ouuu|^TmEjA0GjswtzUwObnuqLyev4oA(OzZT9qG zcKPpxYz(;>`Pv1@#Fq$S`D&smWkGbx@cVM#R7%O7GWE4yYN#5r>-vfnZnhFr{~!;8 z<90o2L7=2gn%uM)&TLYnLpJEIp%`Q0*lLk33*nXk9qfXCcuQ(&>ccpX=u(x?DM^3mU|D`FvWHgAoJfa=lBoIHRgW@ zax>wdcteg`_;ojWjRxsgBAj^FF0Op(Z!3kAbR|ByF1dFP`-NLVzMW-{Z)Aa+;oh3R zu7=&#S@A2M?}3*=gj&%~mK5gjE5*+&nqrq_@-ln;Alr_lnsGLVA0+Pzh2v}j{YFiS zQV7Tk?jv~5R8g1_-f86iP4L+ug-g4xgk&v`T7;T;x0Y=ka`)8Q^N9(OClj_c|3WF_ z@{2KXS(S-^v+Jq9d$LR;zxGaxb+n~dJ+t-kD%%a z;mTP8Eu^M)q4U$8x@%;=7%50PUa1op)Z~xsDzH#S`RTvVByRf9lM3I z0%RC|mkgU>Ch`5AlW>rsWbT*>ZP)Wu9(}zG(xF&zXQgIkgUcs z9UQCU{_;a1Tgl~nHi5f?YOVH0fjT4P^_ho3q%zR&Am3KKaL$KZQScJe$_Cp8RJNtx zdhAZ_zT%lo6c49Mv3tQ`ta*Bv=?E@^<)%@s_)JW1KaZiGQxzS&!E`i*)daK3rN zJ0)yeVlj;3?-{eEUSIfxO}BLa<aouYxg39u#B_}`GxI((Vec+QFu}k^(y)gpvG2qUZvVv<*j1>tq*F)hC z;4u?FBtx`Oz`w3TdicrC2ju8;tc5w@!9UPr#2cxUeA?Xgku-*Mk%gI6ng6^SfN9r^ z$)!raWX~>gm(HwAqchtGkd{?P@-uMj7ewqoh{l7w z)KM0E8e6K=x(;`mKzL2bomE=RLd@1LJjet^b~P4dReitAkI&*3pkwjv zx~0^-;G|*4*#cv(MkBZFD9oaSgRfV4&*Xf_scN%j2)w=m!D0>b)dS=bYq=72e@;~- z)IP+o5HnAmBI}f3^HZun(E|%SNm+D8op58|#nHhZ5&8h89K6s&n*0g17QfcH?==eZ z3W`kt=?JX7B{j^@dCk;MhAc?EVw8`468L2#0(Qf^oG%W1rBnzmerPq^*a`~F720m* zaAAugQO)=EW}g`A`Rr3=OXWp}^{xx$dmG_{dEcsS| z+SHCKg1K{Y0N-AT5KAv;xxR7S?ja&N^~ZHa`&3zD6MlYKp@n(WA@@(O(*m4qQA%|9 z`O&j2znlR-nSoQkTNS=-iHD`%i8Z35Rn?O#t!}kq{&jPqFYv9DiKDtaM97a(p9Vf- z$H1x2tBUwk*4l8?Za`MmCvdUREWFn+{5}v6X*8&qCTe@N2~Aikd1d0>*WfFtEziZX zX~zQ_V_9L>o2P+$*=~7lwn_*`kh)D$-}kY)n4Ih`a&^X)40J{AURy-lZ($FshwH9U z>2Y(qC42ZVC4+^0uTZ)@u=pC&hxc?m{50|#^Y(|M6@%U5eOqR?Tj!1-70c=4+3Ol?1>nZ8CuP*h>nH}864ae-u=+P7 z1iu-gg%N+W**6XqW%X~W84s+@u6|XKj6%rnyj}YA(}{ZO6?gY}lm~p=e5vThRgLI1 zaln4WY%^*A!ynt3$uDysaESNcaCrPLIE3MD+p>hxSQ6n@_$8xPC05@`JSml(K-TY9 zgq{7a9zgBm9B>IxX%nIX3h&oWY8q?SucO?6GG~6y7Z^qYM@Xn((TSYn7vd~4@KcT6 zHzJnCFl<`$`kM|Vrv^>3#Kg%nXP$@9uKo3}uj6h<{z)IXyo)AQtTlQ2?kEvauF$eY zO*SXsRECJ0(m0bFXD&<*vKa6oM^pE6?Rc?K0|~?H-qPZf@&i$8%)C_7K-NXzM9A3;Y@@`SPOgw~Gdz6q;$Tz^Kd(oK zCh>)D&&mEv{EfY_%(_}sY?pmx?IIvKIiAzLBZS=GcgytscCamSnXp+nzXH6gBx}Wb zW$jm3-NO&(Yr_ErDu7VzeJQXc}f4d05ke1yQqFhv;`CQ*gQqmw)8xChnQx_|K<*Qm*XPtzIeAjBpOE2Qu zjZ({zHq;?AAif%pKg+!ky;bE|hP;-l>j@{tE!j+cO^Iux$7l&O4SwbSc13|b=OhDg zFGLwLV$X{M z-*{HKlfH|@W)*1G(Vw(m*1+Oluj)56a~FadFrBhKRkSzKczNP3Ndl0VA!t$;jNWxd zEmuG8Oy1H)1w(&hrN;j$yto}IQ2kKGXCvZ#A;1CdzDzYuCgnlcbmw|GtdVIYBw#_OFU^Qtrfj95I`-W`T6MKr}C?6cV|Xn|5Uc!0!S;e z3RgFw_;b;|=JsT4Auj6|h2Wqp4;PZzybH*8Of~3hO{_f6Sa@FKjK7^hT>i8I;S4lu zBrOZoCuGDNwabQOG{9N`V|#Xh(m}0gZyZ~Cnyr`u)~Lf`y=Gm1+ozPf?3s(ZxXyd~ zurHI!@=toJ|7;9zG?GjX8K3!lhnyH4R_MgYZr7gC-6CSCsg@oiOqm>`q5W}3c)quD=Iy7ko-{wERq7%yar^M{l6R-GsB4!Y3=IxL9 z*fP2;pGd9;kV8s0H{`R4p?=)tYf>hOsCO!I)WNd0-g&{YfkhL8>c!6qja zQ|G@GYDPO5sMsL^zqu6;;5oZT1>7p3s`09m2`k)cwnPE#V}Qcd&=PKh#HTEz zk3=qO1OHK6omedT;#2cquk*I2l3>EkBQPqpLnQ{CJY>aMW&Ta~cXBxtat{GSV4NkN zBdK=$hP?T}^zs+#T69?d666T(0j}@}!x5Owd4yMro0*e`y4xAMtd-xWv~zf_yrMRb zUPE!E>#U@3gsR!Por;nnA3JCK3^?>yhmad2gMQ*`B>DOfA=9;zW7Cp1Z%LQ#qHwI7 z_7dVB<<{3i>aYTv#p+>aQid~0=$~i*Re&aPC79?RWpKv@*Q&Cqhv8>J(jTlrde<3o zZQ8(ye-}HRf47qh+q4Ne4uL(vAm-2|kNWJWu)^u zn-3gbPW@j({(tu4eWrZ>mj7S1G8)x<%`SVY|p7D~eZ-1 z!8hrD1h%Zpo^i#vCrY%nS8EX(b3RozGI3DlXMW=+3xV^yoGX@9y+i{M zY6@;F^Bs2UbpLOZvF!UlP{h27a)Zu(rh56ol&57VNbmj5{^1pgaM1zX6?*yq3v1EQ z^$3$>OZer>CgpoO+UsWxQ2&qsCb1p?2DM7b`<4R4fh+Lj0 z2EvidFsi$3rpv#BNYaeFyCLbF=M#UW#(lVseBCYvt5&O7v7R>vu}|Y$Hu$TaTKCId z2D!h2CW6>Fh$GPoS`0|EkN=9N&%ElSgkcx<_ zG4=%Tjlx3e9+@B`G;MS}pk4v>v>5(^5H0_#V8xFD&#kYa5Mvytl)_AzM8l4&Pspd! zoi5?roj&2$FSh5jE{trku2|(}vM)>bOsEYeX66VVqZiiO#+;exzP!R}xYdD`OzZ;X zAZCzy0e1g#_?GhBVBNJCx$Pr~Volw1L{3&jMw{wdW~uN_l^TM(jZRfGj`Jp!tCtPw z@4U7tPP6fZ;5Xb`8d+ws<&oiB_I%e@1XE@i5g8diHbl*W`-d(z;->zVPK@z-pIvn$ z$_)88Gv2GK!?t!)NmV1NF%+2C?oxi`)W%QM22hZ$W_I7)M!d4aJ>40_PL~5-v)N2> zxOy>I%v+7@CdBSMx+ zfsMw(TF2El?FXKxzQ=6Ii;evpAGgyyHK0#gr+E&CN~~%rZ=#H+kHy}iHI_O2`(A+T zppTpb?W~|PzWEgs!v#|%-K2)LS%FN0Oaa% z)w;9hr5W(?nW&jLNrn*V>jYr8obceBK0$8@z7jO9#bseoUI;j|WR@O|0zUcn8(}V$ zP9yTznSrOp3i&SDjC@PsQwCSRD_$)v*4KaVK>3NqB%qJ5*iT8yC>cOO=$?q0jkGo8 zyLwVt$#=c`ZAR7y*_f7;8gA*)exKG3OIe(pc|Z34rAx?_&&7U=m-^N*3eK_|5{0<$ z%pXeeOi!!-bY4nskLsWhUw?bcYJwV22KE|geTEhso4fY$^h31-gr3}T?gQn2ciy%<7&F?% z?9DQ7sJY9QH9g3;X@^&Mua9M6j#=>k*gwh8AByhh6Sf`n%6{k|^SxqIyI>)6&^Qb8 zlSepsYF^)20ysOy;KD|;rh5IsKYS4|Zbe=<+PH|eD6ueEebz{49=LoC@MS6V^yE`n zA{?IDABwJqNPxX9V;ud^CqA~cS}AbLVJ0h)`w$~)n_J(2=F7<8#Lu1BQ{84e;vSsA`1(kt&FO8Q$@`o!$tamlxG3_64xxa0#$ z_ENqP%xnvjo zckn^Tp_f_co%V|neOU~N0K-;G#AloMeNN?cfNsbADE_unHu`2J!UsbViX)ZUk5|WN ztp~5>BX^IG!l0sTLc-oknWh2;Fx#^!_dh zruGptZwfr0KjI7?E&49&x_!<~njQBZVOnoP3%8-=a}QSeTCYtMdrg*W3EgGu?VDeg z1e>(g1b&mr+=srMSq~ajp|_$gMc9R-iM9*`E+P(`xa*nZHrI+Xl(E6Zqlsp5M?}Ri z0PGBMd3LYirk~ggx(@@6-i)*EkB@O}i+>cDDt15I#5b4xB(&hW1j1 zpjn6yCn1V&Bf`x3FY!}l18yUr{E0kM#BPZ%u9jlQ$)16F)b(t1A=@uU>w^Msauhk! zO%bBDp*)79o_jGzTG^B`_c1>2jwfS|->USL$dGV@fmbm+N;zZ*&G(Us7?-z8(HpSV z;?v)MZ!+BN9HHMSrbc84ZWg@T%pCePNtjONG9Mf+M{flb+(lftB8rdd^in+MS<;T7 zapry&^l8lZV|iSFGt3}Hb-=^?*0;UNoHzc8$!C!W@6*I523}2 z=eZfiQND6W9T`h!rrSca(dn&qUj+{Y;v&8diN_zUH!9e8HY@Tld4-H`(QC`Fi!ViY z8aE^tf)yaW@1#3NeCtJ%_o{GUr(kSjDkc%OJ!(Zw1+*xTfF2=eOtbGAp(8EblDE28 zeLCTYq9m{aoptzxXZECEi2BK|@P8~!E zjX_99DpNvYfA9CxP-D+0t3^onmR@@7qT zPz{7lJm{O9Na-J@{^U6gO0_@7Mu|t;@yWIHWD{cma(abCb1=u??Y51r|IC2H4eu17 z;p1A0j?=dn6bNC#n=(A8t<$dhxj8;R#{VZmk5zGv_5A^JgyHjpzA-%qOw7voI9l;wWekm z62f3z!XzujDc>TGhfjPqOdbwOA55i)z7;IU$P6J~f0k$l81U$lY&#-FeViRI?oA3b zu~_jj!K%%Tfv1|+D{xn>Nw1y4ri?fHOgT@y({u8H;@ODecFHyBq*+L~ef%F{Y?9Ys zWSzSAq@SHqZ##8cdfR1NvZ6%wHp>jDNrFlk62Vr6Jq?8}y*#jZAFcP0iDJ49wjgf! zc6lV+DMq=!yUjjFzk5jg?CKMLw3<%l z)O`QcnWs}VPJ>nZW7v0GIS#5|KsbURUts!7hmpaP$KJB zQ}$E{JhhMVa)c98m;O7j0kqH&xAW_?^lnu$eNyZy<@@b-AD~rDOXM#c!kn0~>kbHh zZ}w;wHQoDIu#Oguh!!l6%%p7c!Fj<}MBRIei*2y%Lek>r`TCm$RURhW_%A zI>dokpV~=tIl>in$RVbXCWLfY4^)FvMX@bds@FBVJao2cJbt2^n4iOZU|m0Ot?4UG z?Hx|@TUc{Ka~k(%@n$fH92lzC1XWPdpk&IB&U`R!@WqMy4ldpyGDp5J-c0ZZGm_t7 zdf@0Sd%^h?gR-!bZubVYHpw&w;=;|~3-k};ry(dmT=7{KjuIfSNFa4te6$6Z3mV`a z@hc0#2oKb7`(Z(}2)?r>G&TLF;u=50ffnB4AVTbdgGqhIq3aBqmo2LKVT2q+sXu}z zj{~bH%Jq5VfANl)R{&nzW|38Cug1A);DOYat7-U9 zG@~8Eq?jAO+)zQ`_z&J8U&knt?yUp14?hB9);xaa&M$Yq-L+M#v($iRs}gR^HYC2f zWvdbmk>p0$-ZcWMvM}Z~gzrK;Li6Kb3vCyvjL6qo+^85_ zubKwV<#y~q+eP5M-<7uCU-^ce=w$Qx7#za?*W4JdNTWOUJX>nw+R`QNcu#b6smd==A16>r#mu-T23S!%p8XY8OG$;|? z4(-lf|C$i3QS_t$sBBX|FZPjStzo7Ruv>>df^psdXe;o%(1bT6P|=DqdS zyZ?r;LQ457X@}Jm5#Vujtk9650=TEWdjwPRZ@1(Hoeb~VG~M^R4I5h~7sgYTTBF&Y zhckM>ha2I$Ir9tE{ZvXWBmiONk5u+w;JVJxh@CCgAumCGbIx4@K@%`^t)racDl>qb zrclyEp%+Ige9_0){S??ZGE8Z9hwPkl+49fppm~>?LRDunaZpFdM7k{Ya41Wf8~?J?l%+>h45ba*(HOL5{W9xM%9W zmV}a%ZOVV9UiN(Yz8bZ3xE@&Qo_CUiCskU+@paT3FHS<=d)%{#q|uzQsZ;H<*?Jy!QiG4!bDacdPHy(u=j?m* z-p}u+{&hW7wW?NEKehB<>){;(_fb|-xSKiuFaHeWPW+Z!V17H^c@8T@2QPlbO+}U* zp!<5Iuxd+*wxM2GU`My@zaaTyH@>_NF6;lL7rFD}_jOulToz47T!hk;kBJXLv&5cy zE8gJ1y=vmtgnHVUT|%&4`~u$6Qh05`4oOq|!3jSFIO<2_D;F(Z-XD9iH zm}C3(Z#X~^hp7h4!5&b0(GuUcwR9LY8tg{U6qo;Xb4%yB2tXl!;U9>|)T}nH z#aAdN#Q7iCwK5|cs1pztxjng_Qwzy3~@VbhkAdzRu80_K0kr+&-S4GQ*?VVijILO=h9IzD^} zKl#TgR5yJ>QgAsd$S*OHCn0hhcnBZ!96hB-y|E>PZwVJ zbtyAyFdcIT&FM}!q_Qaz|5u|2bb9BQsEND#-%Q{wGtJj`Q@s<(4sMuhb8g&@ckVRV z#fNwz$0MdP&knQ!kT)#_-RF|#KPM~GF4V27Q5V`Q*!&0>LczDs;)BZ)e~Tl9?WH4G z5`xMb%?A9%y%@Hu^$ZL~`3GF2VK~`?sccRiy8|n{$OtRDJm_GBCpJXg!6f||(ty;d zIu)b^xzg%8jBJ2rbc$b^vWWaP=cbGvt4od}5W`(=G|J?SaMO$I<+)U(e6Ghn4?(+Q zohGxki)+`12X__1IEnkt4y|0^t!a>uoyL}>*Kx`*n{~7%=w&G9mZ;H7!y*|}OMJ&7qCm?XKWUeJilhpE!gfVsJ2PY|KGGx;=G=-iph z%2iFyl>Iz1tg)jjuQRps4QAb2)hJ*$XhVpJcLQ@Eaq}-jUam12Vu(!%b>~lx)wT#{ zpoWzB4IfM3p$MqD=|@gs+9?v<)peImyH|N!xM%&t7>)qGd;Z7$l#cOW9Fv;frE!YI|GUPm)By&Mf7z87k zaSEkrvVDIL^Fa0z*}_k?X6QVii41<6bjpL$CHvXbMBQtlCjwX}ulsiX*_`OC;GvsnI_Y&W{}J<)c7~@kNP+l>Z`yh`#F(!VQgn|tz!B$L5Ct~ z6^9?x5!j=B>rIxGh&J}S156eK?$OX_kWlK6m?M(dm1}t86qk25yQ}Ql3zzBqbS=3{ zMr@F^RLo;FJPyj}_W;Ex)vmp#3w50=Q|7kR5(iq4E`zjQygoh3>r;?&I^G+0P*q8( zpKPH}ij3L;lUpy`=#r z%5Nd7+n1G?H(A-b$Zn4jLAE$^vpMCeV~p`KPs5uk?lDfSfebENowsn-wXE0}q-7YH zzjkK&b?1kOBNySs6UV;OD}S?Fs)V*=7s=n4|LCbOldj+(I9_?h+yAZKhSwBSAgAp|??`!p^chab(3GdVQ1-zCD@T`8gtgm2m z@9i^X6nev`0GFj!+&*EQ@h?A01_|(SD4t{BEZyp`Bio8-rCqEvlnBnRx*#*R6tsc{x57C(9y0A*2jryRl+GtSFAPVE)Ht%UHQBHi{csga7P-+s+4pO2cslC-hSb2;Zd9lduGH@qC+8rIj=9thJRwie+r^cwHPIulS4j&`mhrRe|)Z8%yHPRcs0x!1al55rN zhhFm#I{RPD!GgWn(yZYU)w>Pw#oVQL_SA$R&pKrM+q@TXEbE1yhIbj_!MCGf*W!S8 zm4m5_vaQvgI|tcPh{;0eJJvLm99NQ*g&baU9s_}HC6QY9;+U8)-{|;usZZu;cur36 zubRWDCd(KVTYs}72&L`AI%ly^pN%<1KQcS#_u|OJj>#SN~yu?*+%ZJ47w@_IN@Vl7D#x#%sifU@l_Q_YubiUzexlS zM0$O`SkMa|WIjxxHbhl(*ib{$^&M-owLem0-M_)!x6o}N^|~~2fB*2a{R4XY!1}hq8h03l zKQbz|SYmy6?8Sw5UIA+dv$>b3tb9={x>A{6RuuhbLv-^fr)v$(iEB%`lPpX#f;zdw zj3}{j(rCWs_lTBgQDavA6&S6Jh1tKWP!Kwpesi~9Dgw*J$vUn~Qg6Q2=bJ2|zN##7 zjirXYMT$z3>g)F@Y&5z3b zS-q%3vwYT@^ZHLZ3P;ylv?#Jz8cdmg?LChnWY1S@GE0!A9P;bp_QeF-2^@6qs< zb&{(id8N9*D1=*_XRO<=DaFryz6WAxgMoM1X`{g4uEDP`!EUj5nNGy-gX*i}_;K>C zP^jr00dsO}O7c9enrY{m5%?#nFbDNSRWawb_ed!196R)X%Lh)s`fo zv=I>O=&esx*{K|4EAXKNa*g<8wvyz@jMPQW7WH>#J6eOBrtUx- zk=Y8HrkU||bpmt(2gS5jDww~Tf_0VOc+XhgN1G3GBQ98AeRYQo-x(3gQ@9W>H2)H0 zeB&|Ui=Xzo?lilFCm!3D{e>6K2~+mS6NaFLvB{oA*c?V~5{S@=6)AZ1 z`Cvl7fp2e>vo55XBIs;6QNAQsLJB6oH7~5e8(LjcSY}QiQ4OzvjJwAN4HI^N>UqlB zRx?s_A{}av_dFr@w^gp*)rs;;M{mMHbDgcK!x=)rMYT28DO0iJzvrM9>-EaBI?rfXUcAy&}rB?>BG2hX)9jK zd)n}RhuL~V-SeV|L6|3uTalqeLUWjriznirTRjH*qgIYO&bWp~=AcTGxVT5&%(2wk z?A=_G&?8(`g2qoRay7$caC$1kvN0F5`XX->{l^|wDvo58=Y%AmWdWM(B+ahZRpd_K-Vo;E z&hUv!Qe`CU1(TLXWZnaP?9tNc&*M-dQJIl;k0c4mTP1zAF4%B>t;M_sHJIC}C<(O7 zJ})P&>c%ZMeZxG%A5zx6G3{t3_Nv51rn0E1-?05DV!cK$V>d7JTUSXDLl5fAqGk>3 zMWkAkrNeyHb~A>Xs+NcbcUJi}{rG2pe%l;=Fae&|hlqmOB9`N}R2j_+q|45-f}f^` zAp9KDgYc9yQRYSY1-+);i5lcFf32tplU{&u1ci5v7R*@j=ZEy_Z@>uuqLhR_ZO2Ux zLd0w9YP1tqDI8*ahsA&k00fEz+XJ!?TfBWM0M=*(_|~~r)$g0baIwthuLU8U@MDs{ zNl56J$K;mj9VG?^f|b4=n%SP1ocgWvfA-6aI0n=l!D@-rd~JoY9_gWn8=_IIA_0Ab zetT?vu*vMjgAODuJN}pUcvsl%X|ri__wieTlXKLIQC@2p1|XnQ`m&h!l(Q+Q{ovp?6)nD-Qsr25unI9M%Al66uzS65Aw!uFb11>i7m z{UA3TQn3HMG{Z4y@C*FiULNm&&U^FvmTxM~*|apu`q9qbxSRh9x61i}_v6}huiAUh zXYNJl)3z_TRP1W}+co@~RRw4=VEy~f3Q@(!>!wEHEAHa*lf0Wr7_}2?3su?{;?ZQ> z_T&a{j|McDkN@l8M6wpogn7MPWGg~zN$gIoBA2qACG+d!_Btt@HbG+(W_yiv$mZ=t91<9ir0&sR~pMq z4#f>j<_xvj9N#zg)wvDQPKk5xs~1ZfPY6S027MJaKZLSoPxTp@v>F`h0n`>(G`IoP z@WUVD3WJS*94DMGNF(_P#D1S{(vL0ZVP3(7?k{C>UPgE?t;#!gq{qI;boY;kFdtzL zb_P1VxiPCeh<-0;1D8tQkcYeSp;}F6&9wtLlglS-^mi@|-OwaSGpOWvR3zgn2%lv1 zUil+IR!l@ER@S+bw!U}iHflz6ccVjp^5k=r-L{Lbh20{*n!qGpJ@P`11KFEPuML<7 zS9q>G#%4%_#qL%rmGr-WFSpwK`Rdq2UuWyL!kvfs3SOi%xNc!v@VcLKhnpt&kSdgWfa z1Uw_2>SFED=UPv1IEfvPY|YuMThryAEVZ?Y9(1T?}H*M_sjrkAX(X|7&8)Xj9p`*+5N9sgqU=;&~vyoFDm zc-(J4#cIj*V95U_2e-fK^Ch$twSLco;v{q8mK=(@-%*w0Gmt*}bX0Ss1WkAnrpe@} zJ|c|ft6|tt)1vhK%$EV0dLvvXGPw^ihZQBQlyO61V_I_h)MkW_jq3u>qW0kM6f%Bf zSDr$R|J8e5>;WtG8h}9Ro*?}s7Vd;kRmgiN@>9BoQ1?_Qfh4zDLqgpOQ~SbX=5g^$ zPPk!;Q{uN4zQE?KAD?NK6#Bk!CO!?5`f<zfHz@Y1D&4Ky(QVTqIoVs8DbT6;g^L&lyo;GK{%ZN?u?C&FlmhrdvB*V{k8mI5Pf1Tat6HaSdhe#;l-=F3)^|!t?PlXrTkK65;NQogfGgf1_-bTDur%E5<)>C|)L#Ff_y`K(F-w?Fj5 zC@w1`w8H{E`iEiEi?;#Zu2?rCXN7zVF&MypU`1Qxct^s)7OwpgqwrBNIvzcW3m-+GXk=0TH`?lvJbsJ$NsDk-ncV zr9OPU+~TGuEd+rR>T{1%?~x;M!++?Mpey6gm7R_eO=pN7`g{lfAm>tg^@G6%;(lGa z+NZFr)w(!aN-^&@|z#BaUoZCWk0g41+ptpdCgL?^#}uc~_q2 zoR;6`x4a{-unR)hoHEt6pECWnVj2l{js|;(Df*&qpvQxb1D>bhu&bwyTOF{H?+PD3Sw%CQYs;)Nu zJAlLX4dWxY$5%eaaw%;?Xi-ZF5|FpD-ED?0dz`b0wC8ke@#$+d z?GScX#9Zh45qk%UE5yW^wk9`$OnFPw3xLKvW~VvD^~K=xpF=G+*c+1tyDvv=k70~H zF3VAFIL-5CV6G{pkE&)=8rSZaA>LiL2k_c+r@XV$g{q?GiPK)7q4o5+G!L3j{20jt zw5ev931hyQT2Fx%T+@@D{RMkV%8i!OM|Do~HYQ8l^{x}a3~`C8qHYRzdYRlC5@#h}t3sr2_N_|5F%mc&9%^XgB_ii> zMrdJHP!CHeHI0XVy)E^mqoCDWLZ*PbHTQF3z&wx*O`2)Z$MQ^SJ40}2tv4XsGMCXqVZEW+}8bFUrEHPkg4gAbu z9mC|~y7bv|O;JHrj7gIYHrE68KTN(DnI|T;l63WvqNrQeM7&?&-b9xljIq*bh(B;} zXBGuKrdZ9u)L(rpezMcx0|4cXXL#KKEp;*CfrM7SZi?5F%8>jpHS%|CX@FaOHUYM896t_ljj$?;_(fF?|9({gG+5Xo)J~e*(Ru%PdQeLq7e&Z$fbqwi~}5@?6=@~TnGWkmrxQl^HS zbE+7C)l(-W)p?mq$6mbNkSxNx{94XMK zJ6WFnP4aoVq6;9=vrML7ZTSd;BW@bkT}YEN_o)q00a@A(DGco8fZXdYUz%CGk^Idd zvzS~S+Kxe;rdJ89`gbhRL$FZC-u7Va>r@lgu=Z?DpRuEo_L3JeP&?orZ%mi!PrXVy;RQ0*A8aMx0YZ)w zsNsM$qZxjOnnXddF9P`le&*<^MKW5P{3KhO067xy~1ZZ1*w(kFA4p$g`7rcrBLYO z+*ugQ|Fq#zXXWw$q1xg^>*C!{Y|09*q-bm4ua`_D=h3IoajnU0%Xae8)%5zh9ZnLD zY>G{8w$Z>-pvdB=aN35{edhAiFwfacf5j??C8$+Tm;FS4zoRtidwAHW2P9fhXY4UY)u(Jnf7HeVQd|| zHjh5@HKpX;JE`X86?;wiKXzWBwc4U~^Rp2-8O3mb%AU1}i8<`k<(`;#%v)9z;beM6 z5#ISh=RnG2J@W?{Ir8*nHc9WZev?>!sY%;>R{F7?5k?68Que8Ks??|0L{Q!THA-{W(TU&H_|Om$`t2jdvw6k$=kH( z0egMln?a?y4YaoQWW~l}=Js8>b#AkU>Gy)eL-S>!`)gyTjJa;!9XB45l=4&z`1L{y zW@{$iceBE$ka;tsMkN=QURwknL-wc#uw)G}_^54rc&Apa*7#_=wnzS<67_X2U0T(} zIoDBP`@!hjFvPIh1!Da|;Mnreo!P}g(s}M&+9Bt})v!((CJLMP6%k?~hf8a^XLaPn zwakyUHS?j;AaYc}oyB;R@S4u()kyB6*@5j^OL5@^hU>S6csn)Ht)^lWhmJNGVMx%VZmHGYEz3pA@?F>WvUOls9s(G`)A4i? zBwT7&xY;0;miy~-0a7W%B>Idi&m)-}B$6l(h7@guiCsZ4>o=2@0&BuaWf;Y8H_M8; zCi}KIPt7b}@>a5R@;=3|SCRp&$(RW)MA=5>jq1-TsZ9&7mb)n|(w|g;%*{&eL#*Hx zyd90pE&Z8U6z@<#&3pG3Hneg=s$86Mnru(IFWrs_-?6#y147BCarnC&4@}r9Lr5QR z$^~R)LI^ADSf@KN&$FPtDAQJl9DH>ntIUStkmv>uHlx%h+x<+$>a_9t!QN%|NTBAMKH;gT|ZNHjGpCNF~exX11Q04{erEvUIgFDk|=keg_ z=2MR@0@&20D$r^;yOTXrFRlvzgrPv0K&@Udswx! z(njV@a_m=cyIAbrCYPGhhU^FLB!B-deY+19=C_ASn3P{Gr8qe(xT*g&67)@?+Z>lp zQ}3=q%Ta?u>BXLPjdpMBdYBb>iAXx#dh9l0;)*bd&lPBTh!VO1mxK~hR~I%ArzeOv zjdOZ@9N7O0(2`PzYRmwqI3@=b^QJAZ;a1J;RmVX$*z0P!CXvt?+qE07X{WM%bSAb) z1K7l+{YWElZ%3|)6}R3k{Hl+(_3-Ii)nz$@jxLsn9%L9;gryXA2D&~9eGjfw9URF% z9Clgw0u^d^-aP7j}Yxlh+_S}P40m1T8 z$QtL9CRgW?5a-o>2klx0ofZ9RhF8z3C`33G5e**|qqhOWBpt26THTe&^>BlZS>^lh z3%hPw0U$Z~N*yjguJ6KfH^0=wVD-r&m9Mr@9UhPfaN)3AaXfE-s)=|0Sk?o>UD@@G zd#`}IF09y=ef!PqQ#MGo`klSoRWf3*F_d>D#FD{0H8HCBScU8$P3RiYQ2))MCmg}B zi07+S7`JaK6x1noB#oZXN9KwrW*AQ)(QCxLdVm_vU=0zMFc7EN(SUN=ZTn$VUT3`_ z(@q!F>-7ac!YgX@njO+AtlQtzma%#(+;n)r`L{cHY7u$sQ7_&kd9OzM6KgMIfVT(R z5ALgK{`m+@@|U4QPa4G8l_H}aR!q1ugF!Kuj@12qwjUc`k(Nh;zP1G8Eft)U9Tk zeEA=X`&XZ)rSB6?|6>*Z+D9PazxMFo_xCXcyZ{FX;(uxXH!cxk`q~x1{eMzs__igD z@z0L`qV|6~>p=t5pLhC0F>IZ<{%`BQR{ifInuwZOT9&;;Pye4Y^(52%FBJYcSNHe- zH~0SaWBhL{68irM>o(D|AM{Z4qo3;T-xn#7{}WR;3nvfLj@l87#*}y18N+D812&g& zb9`T+huL6e0rJU-lBc(Xv#4|5z*Hf9&hbvehy(2Tok26~J(o8(#1@tdMKw&jqbx>Z z$O%gfyBAE_dm1ET@Pc6B@A~#wKN^oJ0~;!s^NbJat+Y$8V0g<3Ofa`g=lq39VwBbl zxhXL;DLt7Jst8#HK!(Fyi~V{E!%nzkKN)|1tJjp7s#8~dsLN@*YAI!uLyP60_35z< z3YfaHkJw6=^Zy=ShbL1RpZNPU$3gpNt>A1?CbWU7CuDvhjdI@HHH+B01|!y0EwsB} z`12713X{}PlNr(3hB<{!qVVb1cfsujkp9BoSt+4?npsfIR1%+Mt(7hEvxm7WeQ=R3 zM7Fm(I?PGLlp}Gt#r^W1uhznRDw3j}m;!R&kWpeKw@l}?>@Kd(@&*Es^Vo(W@*c1m zY%|<70r@E0kf^*x@6g3^ zNVLRmA(T-C_@YORxkOSrZIT@wz7aU0zrE_i{ zbmET+TEyR`EuRp5Xv(1>sd3Kt^j?ZV}fPf76(vo?{H?-S^<#D;^7ZJff?M?&KAG!%={2 zessdDwnd*Q0r22vS*n#KM-(7pCmCvFsrBBo=Rm_K<{~DG80dU$FEF+o#5eq>s4yPD z%3Vh6QZYj+3bx(EuwFu^%A_J85|-%++Hb%KI%{hre*W;Z3Bt4CFrUV0{o@pe-A`mO z5sDnxDmVh5ha;Xq2XWz@qP%-;t0L?;=Kg5 zKi&^4D{O{Mb}JBsI%lS|yF1F0sh{~pL_)~!#6^y|@ZrwOlnpmruvh^>W|1C0{WXF) zaj{hA_2xDX?Ovl99ZXwRyYCm2I4H;L9K0m}gbYqf~sPz3INs z;c2s+N|-*q;6?OzhTxAAV8j|vVx5sZD~S!sg^{0#BP9m<505|5tmGIE5LlW$)kUP! zcXcc*IQAupzVFS|d9AZOmaYt>iGh<*w+vl3rFqdZJy0`sg+RKNi)^|QUi*?E<*H`% z@yQZ#OhIiWWK{Dq`3LRByJnCnwf-w!7TfH~Q?tsGZ-9av>faLsJ8Zvu9FS6S;0+Sd zX0mbK(q5Nb5-KhG0dB~5gCXK=m4UOj1~lv-QES$E<00XT( z&Nyyu75`ToYF40ij<+q>+s1xW3usj$XTgg6=;37w{4>M3-+A^-+dooeRx5U!!yvc72f)n(;xhfkUDlUb&=n1~lbtInV8 zIMxI_e6aScvV}rtLu^U`85NswPqx#%Cl3XQ`zT0)ix62!UTn0Gb$5KK`t0tGWwi(< ze?t+`YhF}qWwVkFh^T`!PGS+0x^vMiFY$a5Fr>5~?=&Xwa)SEh$_4OsHL1F~{}ji1 z{6zvr6&aHkBnxE7586hfoPE`TcY``Mf3}1Wq29S7I0(e~Gm6RMnWJ7?8By?z-Ox^= zklYbCQtHh7<;fA@>M<%pxaZ)FAHF#n)Vc=tu7 zj)i?%xjFV0qwQ!pSzOs-?>niCfud@x8*k&O!8r%cR;GMUzo`O+cCY_^nFBw%!t#e_|KDFqwDqb&`6`P z%5X;EI|pRi0%y>CU&S{9<=6v;J%Js|7mp%O=IHuz*aA}9+_s8{JAD*}>-%vC1kRi7 z;fq@`6KiC&ySv$oQA6`0Sc#a5f#YX}=%HI|SGs_<8ElIYmuUQoJW}=q{|C+S<@%4q zi9TpNofAgl1wdd`c^Q_<_{cohM~0Tltzfa1tg&NR&vo^9&_Jr-2K!o(l^vUxrFIX zhHdbg{k*I*@!7?g_)jQ5Wzg7*n%2^cz(>wJ-bN<83wmO(e@Ndr8Vk5SBgFbh_{r6- z-i>nx5-;v^BcA)m_D~k@>)EeP?v)(NGD3Rp`d&)I_DaP(R7DIl;H+tB>t=sMvu`9; zln3V}a+@N@M;=t2w&TwZx5B$W_|VcI+zsqh_>j97OGlDkeWg8CyQbh$l=D(SJ^|tk zH34xP$JdFfd}Or0lXQwJqRaN|h{+ag7Df_(=zXZk5ji9%8~o!K$oma@pGWH3D|-xgP!MA02YkBvnTh zF-vo%bi?EsA#)R|yB$S}a?9*|D}>|88Hr`qCjah?fBBBTX}PFFo&KH*dds1gl7c)y zrzJ(V$~L7MR$uc^P3(ESkzI7Nr8jc7XpCjC<&57r4h&kRY^=~89p)@HkJnw8kcFSZO!}2H*+KD*3 z{=UkATW!t#QDD~2pSAMBFVRKu!5oeim=?lji}f^4R&xl2Cq0>M{;Q*oC3(@_2>Y!m z?15g|SV{!-gJ$2m7DVwPy7%gKCX=q zKe7%V?u?ApFq<00y3!0~iA7Ga1%?EYnfN42Vmcc*9I=l8f!L|wWO}!trd;R)wUw>( zs6$ng7^5^DuzjGj%E@xPrlhW`G5F>iZsiHUd0FVoYT04pT{8`Xtw?|Ts{7=MK>c8T zi3JDon#n6rR%rJ(}Vr9F7hNDvbl?P!jF#4KZyO!5>OzY|c01hGExD0=8j!fDQhm zzZjDQm(apew;BgEu!3@(k0+0N+&uPnsGL=q4L^H3X_#;gm~u}CX!EXUc_u%4SJ)); z+1>XUu|>I=&ts}@^bLuP0P5WR#c-;3T<%+1vM=)`4v(L$OL6L|E#w6IA$1^WgSkS0 zv0eT0m2Z>dhF)9lWc8Iqmha`<>2qq8re345M(v$}ZrOZAJUo}KU73_{>@_bBI(W9}~-zcAh>07SnD67ucv zTsBRnc3tLMtt9-tJ)mi5L}=^u>#1+uYSdb6u!8i_!FP2nx^$z8xgEy|p0zP5muRg| zCfBP18=Ae>Dv3urhC{m=XGNKeekkrYIfV?wTE>yeL>=CoV1+Y z$nEJJArX9OM^ssqjw84z=ovep$bHKC?sW+7>8#m%Z2FP@<@0IY!MupvOEJEu=>YSd zJ`#xOQxC#FZZfV1##MUG_-w!Qnr;FciGJ(0XWWsK#nd~t3lwae1*QhU zW=@I!%)D+gx%j@=l|i={B{1Y`u+t_cC#3VUnmL^Of(N;$jP!{GJ{rI)b|VpjNGyJ4 z$`MUM7eC{p1m8hLHtp)3!bK92r%hIfFkEh>i!xfKizSzkiY}$Nj(h`>_)v`(EqLmG zQiK(;Uz;<`b;>2iRChJ)2;=pYS?vTnhn2=Ky5Rjm-5r4At9R|6J`MA_IGGCs!v|mj1Mx`g zq>UjnzGazG3uJD`p9)K^{pI2Q?>%>UWA}r-Dm~V}32$_u^DdN2r+-=e<1#80D|XV$ zegPmTXIzr+$N%CX*|Y)f)22zW9_-$)>nM9KBq}RT=(?|x_pK|*_6E|oZ5*O0~*Ta{o!vEQwilbu=SYQ4Qemk06H_WKPhX*h1~K5bg28jXI0{;lvlD0@_j2l_1vB z_jLXcZko0(k%GHk+#1!wn5gE+jMlHgk?BUKb%=fZN|MjZl61U@-7Sf2xB&d6-u@sr zp!#Ia0Zkd?*Cq#;VQB`}&Aq*eWDq*nR%5?a>OCtmwWlhodFsc zdo}yQ2wYuRfr6O-1ZLt*5kz!;Vm6GqJBnR#q_p~tAKV!fKnnfA3x0^V$kbCEryKIi zE&Sz9yDqG&H7qCCxvcMvN*U)5ZabCt4HQ;)g*c1a`Nj_Fn{!Ri#4p9u>G~Vg`u^WO zWKNf7*#S4+kj~<(w^qsdQ~$^K=%T>$UPqX zWyn+i#>Nc6r>6JK5OcKnsx1#gMkUKi3A_x0^mHi)= z0aml$*--!k5HFO5tJ`{WFEp_%J7>Owv%1k8f%@aMH<7fpdQOrUB>!SoOuvxTxUj#c zqxo==d)HAc?KLFW);A6EVcNLqK89c=)Ac=`b^*cIL!;I4V?uu4~vu8`am`VMZ0P znp4_)Hw*k7$@DW&0)T{c=gJpYJS%VC<5HRMx*hEHkr$l`u9cD|ycnbIFyCHU3)3&h zon5TL1tWRBNAQ+;JNfC)m$e5k;xRRXaxIKl_ti~tc4re#)<91!Y4>%keWOBnS>+ck zPWfln8WU25PS~G^M+^osk$l(^F9}-39AA`lGt6%mH!^Zr>t2LW2=oN#+{Q`w&1qR# z2Xb%a=H%^7m>B8R?MPamQBlvNJmRa@mPcdJ&T+r~u3lwxx3DyO2qxm2ihw_xb0{#x zfdQEyw~~bR?CjSl0dyiA1mUkH({dia#@-wMc0%Uo|IXfy2u4eb4JVeKEDy!$h%7lQ zDX#K#i1V|a!e%q>lEZ6`pE(|t4tLHueKvMa4P62V4)2<#ak~lM6(OCM2NiKx7hfC| zS5}B|dPI*0{8`w>`+~!f4JSyTP0oe+U_t4e*)Z*5g%KQrJ+pv>{p)tnQN67J?PB9B zZy&^_X~D)+|IW+>iEhoy5MS2ArKzcDwu}?09Mj!kVz{`+T$g4?Y+{Q?J1#S8CDr$` zi@o2;d+D7#|9~RFU-8pi3qgieOWeIE{#MNq5@ROaJpXN5xnZtu>e?Ld#ruIo5r`2` zS(!I%Nh#t?J9{Q0I2R@PEY?`S=ESXM9^vg_z(A7m)DgIcO!N&RfWgwIo|wcK+vQv+ z;`azV^>tOF0}j-Ax>yb|dGZ~g>IIBg(8e`r)D{K(yDgfP9xA70oJw?MCDf@iq#7~k z!Qotx0L@m0n1;z`woUS+P+zCJ@5<=c^}Wd|KsznLe)&I)J&{2&+@}nIE6q(ap$%$6 zvi?^gnUR4ymE@on*3jod)mj$4zqnZC=?{ftP2%%qx+7s?v_m?rdoCYQC-5<$61I+a zJr5mpEgkkG9iP2~5T7y7^*X_*_jVfO~a3Jq*t%>`Edz7z$Qm_t;Lxk(2c*k(Tk`L<1e)#1002g#N?( zV=@pxM-_Uq)m;3DScmNKrsZ)Z7JM_|J^_>k>c)P}1MSKKvV$@5J zivX64J!K2lm2@>1-8fxO;hp7l&1UNS2j%fd|De5-d;yGPvgR+B@(cd9}j2L5e_%Kcq zS@@dJ=C4yn=aW(2EO(lTY;pVLU&JddD2q*(N*;qi;Q%V}NBY&FfqtKXbPM;0-80c= zYZN6K4gfCQN^0_rrqc()vA|mT`j?v=Jr}iD!f&XgZr9E@}@j5OJe?S9qAm0<*N zB^t8;(?=id6j?!hU>ap*dqkw_E$X*2TXXnn2pNA*cK6y zh6AOH(r?)r#9zt1>j0N`;EqR4>P$Fo+~F13@ps7T z`)U(++fT0gg4pnl9#{W?k=|hcdDFh~OZ&uY2S+P-@^N*6fQGDkBb61O0ktaX-iMVL*x~Zhy){#I5Fwx%b*)F{R`4k8C^>cpT%O z+ zX_>PU5e6K~rE;{BaxNSGqlE{xJMn9Y z*P!t9!}k!(P{-Z*=ab;}yra7TkE0A3__nc@md|MDp&x8ta3bi=*;e>v?{$tQ zJ+EgR!tSQaN+@90Cn#tOY33{QU-&lZK?&5thEV^RUb~uz)CH1+3K^r{U>nI!h+BkH zZfHhoC3y0xW;f;|fGsjmjq)WTX^2k^LXy3=b#;}*NQS6iZ9k@CstQ#En?1NM@ztD{ z%B66_X)!5xBjGl)U~d)^-<>VPnbetOEhE%k>d0$2j>fY#Z?Ie+hN=FIrTN%$6w zBAiR2UMI<7ueGEcO#TCFxh=A}Bd??^JqYnBdA)M^XhwfEZ|hgH?rfE{B@(j|Z6?Lf zOsnh@KA=H@ZSHI3$F-ILM=DXqSz_vRuY53o*Bw5XVZG7-?87xT_}-zLps2oL7=`tW zui43C*pS`rp^r?PIj>Mn8h{0hV7Z^K=qZ<5&`_@QLhqY1jU$VP#8$Ni^{^ggX|5u-4aLg_D&yLn`pdi#L%{`9&gy zz)WMIcH|#OCJECP>A{I`WzPel*NcOX8j=)9`{;F3_YYhlHTzl5=g^$Cd!XZAz>{xH##7zt&kQCl@c-G&k3^YD`kOZk0kk=aO!k~@g z#mxOkGSZCK$v}9J>h9#7SPw9Vp4a;9_RDoJHcLsdf7p%b@&BRjD}y3?mOX*S-DPlh zXK-!YVHn)q-QC^Yok0eN!QI_uaCdi?<$vG1yZ3$A&l?-j5gpxCl_#qz&+laB$;>js z|2~){lf^o1Lm@hdb_i)csZ+7QdnHr=@9J%$5-$T#* zQ!7Bpe5}Ifu(Fc&`)_`m^o|@>xFq9*e;x1}1Msi-D<|vs9BS9Vw(|a8aH+B+T#KKA zy@tI%!Cq;H)j96?J;mdXml_fb{;I0s^Yqu)3q`8jkX%vQ1}g1-*_IQzFbH2NY=ziH zC;dz-Y5aWr*_~tY#L@)X^ycVb8c{$%fC3Z*N@p>|=01J zhMx~cg=f|0@|V7Vl`}|0Ae59P${x|+< z`u@;MBQP<|a-U4r+Lp02;7cLg23KhcB~?c+1K#QuI^}SEzkv2Zw_0h;zKvzFVL1IO zC)Q@nPb?pb%x+8GhU*!3sk~$JkQbDxN)$iFk#H?S8%&6hgIV%f96ZMj1EH&QEkym@ zcTU08;c0Cnvjfy~ywB6~GfG}|zIn+lz7Rs?BW!7=t zeZ@OfrSkVXt(ih~{E*ySLLX_G832A}FN}I+Ev~OqGfG-bPQh>PjFaD7f9MGae?G}G z<&GZ35{j|f{9ayU-(_hsB>W==>lPUKXwXjbk0Tv-2^^woKpm_}v7Ne?0f>{lk@x%-^Q+5VdQ zRrBko>E-!uM(d6D=TygCGrlKGLnu?Wp&6}SD6%HWWZcfrZYB3-2z#2O7!tXB?f{Ki zXJlzbOVK|h$~af~dCo-^zs#WKzkF|Dv%*FA1}mtuDSGAMg|f{nLAmg&a9z%y5`JW4 z%P>g%^Y=a-Hy+fMmkp0Pr)`~IpUwL%fWNG` z{R<696eur9;mmBq4nnT4>GU$Q8)WQ>7uuhc$@Ka4X18;yx(`=KL|y+(W6xNY93+DB z(8(V-cTR%7bGW?Xf%h|h(vWz?tXDq$aAFjX0;;~?q8-bW#72nS<>y{cwGF+?TAA=3Xr8qHP5>)%SLbN{oY6QZp_`|t=KB-U zYFmOo5gE!@(@%X<11Oh@_06sop;vqU4UWkk%?A@gPbTcKy5_G4K_lB;_B0_-mIHg3 zgM%}%g+{wl_5-AxiD5Tk?0UTAdcVRUbeGLJmCrSp_5p({W!O?R%-me709_fjcF?fh z0zX#Dynia6&j5LqtrlijKU*NhW3#)%SKyl6@)4CU>4#(lZZQbpvDd^(Du?ejAjf(Q zhS24~79Ku-I!TqVDk}7&FdiE;SX10oRW-gU1?8%Re+2PV&%9J<(gg z8t~kE=X$5{Zjk}<(m0+*=uIa#$lbaiS}zv~?{^z2r9OI0+xAs~-rU#GQg9!;i$hJE zXG&iO=HU&oB7jhk8|X|Qa;iC_zsfU7yakp`;>gR_Xp7PAE-XA8Qp@$l^zk4&JHzQr z@JG17rQ4MunXksa#qwR3Xz{R4@PQnpxNBbX6Kn^%Ds6sN*^E7sg30K04w3WN!#!lc zrgF;=GHs8*F#XYX*fKJ__Rhq78=_1bmES`8Sa9*W>^?d(Q|e*rp=)CBLgVcp=5_+b zV$kXyIN_DKJO*ihMnt%Vk@x7k@_yZNHI8mxDR9P)x9;bnI8 z!HY_MwZAJAR*=mMb+ZN0>wfEnE|d+)YMl|S*gQ1tCH+WiAwqiPpA6LXCTPqu)=m)` zTKWqr0L6J9lUU~%HL`s@TE}(8>uaIMW6iY1w_||v_0>}4dR{5Dm`tpvZt&ox38shvjwjCs)sg<=SATHF>vSziN>%y4^5>CW^i>+ zy4K0;p>cQo7*Qq`#(BEB*6cSQz{DhJjz~>FAZKs{lexf@cT4k1hbuz4+8boUvMt`! z7K2^2m0Sk7_$^~#f%c(NYLF3exh-~g%~!X(1x_qGO+ z#p8?zrHdB04a00)K>OHKn4gb-u8f0;20K-Fd+8n~w+>KdWLgXajq)gGu8wV@T*`H7 z<`eP#z50&0&(OWU>cYqm2C@-9R$Ewyi1qP`cM@~aT`}aBH{y@D*N^6(2<1Wxz8Zvo z$tLu+2s!TULvc{G6cDJ{m+w)6ZHmWfRPjd0uy*;U8lT0cFH2c-iu_I7r!i+E`Xv4z?YfdC4sbMZWSOgwM@~N!$ezy|2r4>A zqjTLdJ!sf(oTRP&_roOevhOK&E$M<$ZR+YY?@ih%fAE@rTp?r z&XcVvC#|%C(a>&dcE4YTLCjVjCt^YR#NOt=58l8-(Es@~+UC=*sTXfAfW`V)?PXSq z_owcX>W}$ciEfESs=CB9dm%b@~ZauJK!KZ0u zEr)rO$2!3&>mfutxOYc!=p?}#I0%N}$*reU;P{Cn9mF8<$u=wJwK^I)jV~|HLMua> z?{3d4ioBc03Uyd0g&e;Qyo4mRTV5zjlx-g0t`3}#N?RV)?4)svayY8KpLk^ zlJa)Y85sI5d7NFt&?Lo~z#8lb9P8zrGDQw_Y`mbZH#CBaiHOTQUhnaz0PKuX_M>pc z4FJ#LM%*iFAJ%Een`YG*d@PFj6xMd!%blW=adPM|agJ$7>%fq}1fKcm`W`{V0xR^p@JZ07^WBTI-E$ z3NJsFd-?|FiySjL;-oT`h#2wFX&+~ilYDs%z6Lg*`xdC6E#;D?VfWo~T7kO+dY0ga z4raJ7lP%-rHq1s}lYYCgfPmck(d6sf+7-I+6L@5K>OI3)9_iVsA5>6h9S=)TUE4&! zy0b_8bjRnVS0%-urh%-+G-<@TYFeMmC>5hB4SXb(8Oh9=%uu>+nJ zUvxv2fayQ=(AZJi8ZfiZ2rJbueZC|B-V3BIO<1amgZT#G>tCQgz#)D64-o;T-*8WB zLWF`XskPU~yk>4PexGRErAe4*A+1%w)sfKd*^9Onzgq#wUG-W3ZnJ7|aWQk;+hl`J zb^S4zM)0;U=fI;$6^a-fEEf(y33FMi87sj@u44PKxMeMeP zKw-9A%c0%LVO^gr{v93C+cgM5cwfwCC)3vJ+bb9Ppu6FUeksAfV*y4_#qD`jS-=Gt zA-a)AD*=?70x;|*1i+ydhb{q~=PfXXEZov2G_LKdw<)iz-)ivrP+MH~U}@5o3hGOe z8rD$lKGc4cAzShgYZtCmt^kJ3M$c;$%_T;GZsK5MM^wDkBmBQnS04RdWVc;^ra$(g zVPX-ASkVHvLd(ru?Gg%;Kl|2StzTF4w^VR(T%v*tH^hXoG#?=Px+}4l@J)7C#*Lh(w;R4ZWa;WW`P}kp`S*qu2wSs|lj#VKPP5T8=-tFMeRueYF~# z$|bp$6%Jhf@MK#J!czSyO@RX@QiX);;BL6Y>-yu8t{dukHXU~tSJX~ybeQ}J&utk1 zwhZiCpjMDEaDRG&ENqRcbr;r}3zB&&wupn2{0rFZ1E6(BTN6|$k!-1RF+br_LaXu7NkFVDQ z)NFzZtr8_RZ>0pmjHshCI=67JUX_@v>p;3fHkjn~&DvCt3Mr>s%0*wgO-0i)A#e4v zd9T?{0F7~)O20++y=8($`aL~TH|^63cs5@$( z4eImd1H2nC2NBR^Y-}Pd+>Tw3l0i+SAqV%HpD$&rhOurs<<-{%&JjH0w4De7mhCCt zyMNo=45$0EKPvHjd+_$Vjl!OK0ezAT4k>nVa;gQG;{II|bNjhTa~Z!VAlxk+6;>ve zwcLpNds;;1vf9MAe16Ve=qe2=HYbqos|D+`15#$CorMT_(pB@i?Hp83?xD?b2 z!wr-S46C)`o)O;EsLekj0_k*kkj^&9hnIX%Bc$<<-pT;yvf_%(Y;crM>TajT{->1d06#VY6-)0)h8Ow(7AZ_gG|( zQher0Hq`tvrV6q2#AP=v0I4<&Db*O+=Ex5U5^^rpNO-mt6vsAWw5mQ*^f2~ZA&U|Ne) zA;AmJdbXfG5@K}$^!$DjWg>6~yreO&E&ZAFf}9!M^TtkX1GKRmZKW7e>rAud=osl! zytAiFesyLU4ulSp+V}x=()+hxV)J+?+GPS}B1ik6Efv0xV(l1Fqc!#gN6&;nGlX`i1_g{f+J zO#s|E2iL5@86@P{IJnXN|L0b`6Y8K_Xa>ys72|6^z{= zB0xDF9!h_5j5NYO)1GATJD)Ew*Cmcw4+GA!DN$OS7J}*3xfZ?Fo-FWE6(8!$ZWg&? zy)kQ@oBo-jegtUwFbJ+XLCRX=>#6&_EBY5|J_wUb{+Z>7v7eigX5KYux&ML+cSz5= z*_!T;^mbe zNIUIK;0cr=$syLtPgH5(YI%999KBE;zUOKw}Tm$lh1tP=Lj?Oa{ti-cKQ-{q7~>pY6Zb?gVLuG&jh_tvJ0E*V}QGBfko z>5s|qunv9MUK4H8nCJ$QKMCO5iA0QTgc_Hpp~`~`ijhM%ErJ)dQnu}%mpVnx+%Ugk z`A62i)05tC^cy}pLk4V;llb0hwUv|ebXkhF6@wn|(`4x&BQ9z&F`9 zoa0h?aCd_-45NxKZ%{((Yy{AAu;lvpyG`TgDD+RNH$PYgu~Nb&qpnLattlQC@|M7ck}c zLkFm)BulF|htsL$?z6v}mXhDyS)gDOjjUOun6OpEh^e--UT1z~1gywk41PqP7dO6N zf`QBCMy^|;ZLfdXIL@hdWu*ATP*yf?12R@zT>$&tc9bR`j;K}GT0?tuhIgYyB*t?= zpVk)9_c3U1OAP*{Oj8TTPiYX}YbQF!NtT8(=}J!JIzso~(nm-4L3#<;te@>@W26(6 zmTY&it4z?*u;Py;u>BYk6*;tFUxmRrkyLk0T04|WKLhBOX6hjZaFuFaGt>!1P4tFx z(JHf52@FJnZ|zFuqLkxPG=|VveF=kiej%jg&^A7`ae&J^?M%~76+G!SF(3HCY%#)% zK9#rC9zf(rZy3zPVSy^<>~9VVw%>3f7H>wb*1{k+9TQRf^!7t?sqDVEbkZZlB$7Z4 zR^6BqFBslA<$X?jnuZ#N6^NMpgme3tB@{A%Ik4gh>qpM)?32v3IBG>W*u;+Xz|uP? z*k8or8}D1vJRn61K^w-S9Nd{0o5^T}4Axg3PUJilR?Dj9K{!vPj7R@rl|3cAkyd|- z$1Zc*f7jG#_}mt(hS7z)Lcm`~hAM(Dz+5QMPbF+q8sdfhIx(fMP zKt)E6`@_@RIsg=*K-4=FT&-T$>At^6ODn%hksG$oz#Zy?5G69QpzeUVk8|FU@AI z8M|*)KcF+1vCu&B{`x(zw$*-SFM?{PwnJ!Q-tnadU$X-`2gI3s!qsdV%BR)bSU@}@ z_ZOo(n5@HjrNPTryoZsh@i=47Mzk&+1^RX#?kT)#y0EdTowgc7DZ%9>k(*q2FhkSe zmN0Of#G!a4-W(_zy^f;$E-wdTe(_Z7F~ElGz6@&6tw9LB}=k6L}$C^z_hI7hEM^W)tKf%RmF4 ztdx9>vHf|eV(cy85QznPBEPyfKm@m3FWr!Cv8o5ae4=f6f?Oe!7V0suTj>Op0`ZqZ zv9ElNV@t^wA3}6g!c;e{gD3l-luSAU@LRkudj;QCZ1%dkKzT65^4EvEbrZtgvd7MI zpI4wr`)|6?1E^P`vzDKy>)^o?d#_6-G{5xjJ%XNK<`+Q3i#r` z=}kTB3puPjH#+>lu6kfyIZk>7lM}#-jIoU^d{Q9Lc=i4=PBO``*3SfN(A_J{H zmli}HH3}7|&|!mt`Tu>l|Fe*9deF>O;xY;CXQ$c`o_jKL^?Yo7_wOgWLaR`oAv?fLQ;Z%=~*& z|7uSn77RT8Ph$U*&eH#@)++&M;ys%#@c%KF|H1hqs*^GI|Gk-gTJQh=R>~vA)Gn}n zEb&X2liy%TJ|=h_Q2)6>EZ}BL|0!rmuaKCtYtSMU@c|GZDuCq@7BjK?bjVUhouGro zBR-*5_wN}EXGeT~{~?@7#7ymatvV44iohp641Z@9o)J?xCh0S%5syfbLe%fUv~g_0 z@Y_nju#yR&hY!NM%iy@nC6wM985&SP;7R>0DEyZK(y3uZ4*ch9X85Hx#IPG_qe;ePtXF-{X5CczPBynbI(HYYcNp4U{3LhI&^He7;m385t$eh z$V&=y`gY5HBYP<8{x@m_cAw!~gE;nW~GI3gToJqL`Obnu)d^ zouwmCrggq_L|*)l2=ulQbAggdVO_E_-#UsIS40B&@LPXRs@*RnAdQA^)J3)zWBB9{xP$exW><*Sn9i+nnom^a) zMH#xQGn`vP)JI zV!kH4ALrfl3}Zk6I-_S4nl+{JyG4$Pl}$giP%n$4>_bc844pF8GQy)!fN}0`_+j=6UzpV@5Ta zT(sb99m%}8_HY+t=-7{>stnt@sjoYr;44gf*-GG}5M)NtM6(yQym2Q0e^xUTLn%>V z!$uRV*hl|ESDa(d({{HVQ9IP1hz=A+|3eQ%kWuvb#p2JV=`P4sY`qYAACsgH&{paOMZ+zB~0PR48QKBq;4m(`>YLUy(#hEh>%?)cjI=Met zi_;b7fPZz;C=68Jy%3MY;jB36wvy|Ks~y;?M$9uR@c|(ooq3jnSPKA~*w+^#p?9J) zN96Pg&9&8=Ew@6@>8rG6Ey1czV8ET3L_ZLkd`4o^3Qcn>g3s!hpOwN?WS^wII`5LhGiaq$lbNOJaZiE}bbUyFezXov@~9}>Xs17%?9Mu}AGd*wmL;jb#3U~2mpPe_2T?jFb6kJd z-<_5BAmsH>YBD~Jv#*ik-1eld;R1IsK!myvP!axCaLir4gOA>v+*g0Tx2wy z!FW$SGpk1u&SF&I9=p)yEiYZ_KvKC z*ofnx&Uy#4T}%;Q$8VFdamFVt^R{VrCijO@Bvc}(hV|G5&v)X>1LqLqXdgyT#>Eou zb?D7!oD(l_t&4nwNnm1Dr8GRWq?>LX_D0iD6Hu_^dW8X!gUo@M#}Btw8wo(v)Z+Nk z;fA8x&*e2^Pl4%1j$rViO7aE^z;WlIL}Mqq6l$bqvu(R7(|lsqutGv(Q~Hq&j>PJa zI+>RTW?9GfUd{*mqO8V4QCum9MdfOzC@z~2)$I!Im|uptN4i{+gE(ldlmaJzo9wjD#9?4sw$)aPnEqZ|;#?JRuf8of=~qZ% z5+8l>E3Sit84$+2zT;vLB>^)_>^DLXvO_Rl8kWq?W(5WPUm5P>i1r*jt~uA#m@g^g zXwVIe`Qw!(+AGW|(IC3sTlM?Z?_be(6A$+Rz&J-sN~EEGFdB9jQJ_Ewo)dB1ce+dCD(o6>7+ucD3DT?Y#W!(n(1*gKlcR>mAgcqGW~?Z_!DDx zU0C9g9^c%OQ_x{2K=Q5FB+}(;EM!Q+A0%tGbXlH8>q|&kR;~mrTVva1IympIEmvnY zC)@pHm!M>NnCVd!cfx@xIl2lZ@!rJEB5`WJr12>5RrOk~<7lrnmlpAr5;*QL0o1WM zmRS7~Vs^eHBRp0~8`nM!RDu*SsjtkxZ50k?Elbkqq2H3X2v|3iK~A(|5>jTIlFLp( zY`>lR?S#dvs7^=X`=W~*uLs0XzdMqeH#RKbHza>VS)avq+Ts)qwMts2l)Vd-+AVCy z&EOGH=W`WpY;#(YnURt^{&O?Vcmlm$N_RgJ9aN7#8gu4-?1Qme+rovkfa~27@1FO|{PF}hb(ozKLo});hx#UaUz$irgfk~BDHh$} zZDmGBY|dyLmyluNU>tXRwx%kz-;eSS8cQE8{u_;hiZhHRBuQ~@fs&)4i;vu?tfSdL zSGvHU$#LQZfwaLz`d3zoqdUAGzGDq{Jvi)%q_!n-SI7BeoF?V>YSksdR?%?e)I6Et z`Ju=Tl{r>2&=l03P=l6}hDci83J-LIQ{u_5 zN&KH7t$DDSeP=GECD=rx6&yoxP897;mmD8e|I7zHxk3EjlUt@%C zR}JVxndgv^kMm!$POM(^kYep~Ajw)rUbJknlkqM%k=zkZ=C+MuKxD!-OhZh5+bcP$ z6S=5Ina0oQW|Uzy%hAl1#Wo_$O6uxOb z7vQNOA*n?*!g4rfp14*@u0FRrBG&TE*P1!9*i01(!^rJG^gYSQ$TaRMb+qDMR34W) z9Zj^ZPN{-IxLFes0KvkUW<$%kj$kSKt{OY={W3W|YFMOB*+wztA>f$(;oD47`WeC) zNFi;V-oa=Ndcur0k;AYNpr^mqxBXmszX-pvsBdHyOex%^oM#Xj{ak z18YxID0u}3u21$KER<C*#zoHP^S4lrz)&-2D1&WRMqp?phe1)DbVy8wilJ zQ{x?>viSpz+z*DjvIldE@!Z zgkDk-nliuViQHPb^NU#sP<{lcwTiP8n)#i-=& z>Nc5I;4j_AoC@!e@big%=?4GN@O1s>JZ*`lo)&%*o7Z`m?JJ%o?{Lf?DH#%tKKft$ zu7J_s^YnR&4$^=mRDotl$z=>yn#Ra?KW7u9kG?wwhasqSe?wp%l4E17IZvf3MW z1rvtRK6EdrBKA;xD*}XuX);4iUOEXt_AMM#&S{5@+_NP{GXs38Q2HvdasGND5;qg;letFZEa88L_6MtY+c!~Zb;E;*pl~>4O^KkPfy33$fPL={NXti%NOrQmzhW_K zG^?H%9jKLmMWJDEN~I~>Xo}Z<0QrAtsz$L$xzl?2ppvpz|2q}{H^A?s>k5Ts0Lxmp z!NIC!3fNi#wmw1|-`(UJ+*u5s{Mm^-MuHEsN7YB8*!mk!tsOx+*QFHVY*zs1qXK@x zw1uN_#az#~l(lzjG1Xzd?7#|NL!?X%{Xj%Tj3kx^{`PbPdYUHx>=HO1 zCxt^cz9a0Svh0ihT8U~cFBkI3Io5^{_qng!{-KV|o=PVgMk~8)NH-k``pzsD6f8=+ ztzP?0RJYBLF$$s&73i!YOyRxZ5Z$-EnNaT-%GTx4VJ zS0arws#h*h(md@nHET^|0ryZp`c(7>=spp#^crQpLWXaVf8zdz!WZ5Kt6V7kAV!V+ zffwZ%G8}gv2Ze6xJS>wAsp!f2;#zj93@l>SeRBfQLv-1J*GQ=c)rUv;ktr<0=2mO*uEq>&eIgoq(qK&(aZ$Z*u zRb<2uoFAnq{YjI>DBo}^Ljc6Q>_0a7qIOt&u1?N=p!#4tR;oIh2d5s3CQGCBgH3-E z57T&AG%j60`_mjTCFumY{umrRg5qb#d)In>C6z0lVH>(JrE{1Uv6aaE@Dw5v;gcLV zJU(Wq6LyqdZh8a=kM-YQ4$eEPcGT~nq9vCgx3s!XOVWEc%Pk7A7fW7R|5A+FLOl%u zq<1eiPcMjS%7aSc3YPN)JIT-z{X0G4SN6|8=p9QOSh{PxrWuM>w|)|We!#L@g}rPKv2|&)@+~_=Oil>?lfSi_bzG*X!vD^j$XlR#W}^DBNkcZXL4AE~m?^ z`_!Rt#m_vcS851uDL(Kb+D_VAkY|Hj5ic zmY@OYtowSgkarH%t-B`?@}j4hYRQeI^OQu`&-z2bB&??nOH}1Ae3M**1wwlctQ|u& zY5Y*O7*Rl2Nl+al;*~c337?7Ha)R2`xXK*4-53EYa6Nr z2Sj!Rzg5p(7*jcm9)Wasn=NGC#RSQ)78mYhssGuQSQ4!;GTI2oNCf27X9GZ8Uj$j! zD8FOvul!BCRF8Lq`=6#y6L9H{L&&!8JV*@Jp@JvK6dfZS{v`|KF9hf<@AI4xG!hgx9IU*!}xYi z7X^hu40S!@g*Z7coO%clUJ(g7?8p-JoB#V#!56 z?He3A5YE#@iOr6Z{QM9Wkhs9xpR$;rhN0-m70#_&fi046IukUUTuo{RN>$ zkI>_BTLh(|5)<*68F8Pkzr_kd8rEN@3M3LB$Bh$5g5-})H@0o}?%C!$fXjgbK_UR^ zWJOC#wJeA*g$zOEf_7gKWpshm#uZ-kfK2B-|VZHk`QKIvgYzLlUckskTGo^NJ4 zE$9b}K->SMC;}a;xq0>+U1^8fCVj5da$BenJ*NI1<$*JL>NY%4pYF8h(8B#_ZC4_Y zXJ)BzrO$y$7v7_Xa1b#yIpDDuP@W^slkK3JFQDmHM`&VrEDa#V*-v$F3rD>g%uzD? z!Ip2)f>gxC^lzDbN`mY=z_S zFp|e?LA1UaHFD~J!Zq38)P#){o(!Qh-P{TCUH4Sqs#0*j5@P92ydH5U>L35y#r>}b zr>$u_)`RZ*?2AFY=9RZRCoBU88Tdwy@;pxMVC%>dV3Pnob!O;gr~{+e;C+tGAm;j_ zch!7(X6uaX8hmlR!UZ+(-Wdh6QVxG`+@AjjQmI|pFBoObgl*3bM2PYTBG=`e! z0@?c#ySHway$>O96-EE73e-~!twNB?VAq;=@~!S(yD)N;w1ztH28-Q1*dWCS(h@Hw z&zNB!F(%+gD!E!^#6TkgGsXT)xtMt!cJBxfnlf_Tkt}3?M=KImHZ-O8@T%Nx!K<21 z;2$?RG$kDIWQCJ^W5g;0yh?b4u{2S39l`3So;XeOtT^ZcAvx6yrQtr@*C~Nq1s_GI z=TjYLOX^p#Qa?AP1aGu8^2bIaYF;X!TTah#px}!c1j5i3C@XwkQ)C))ezK8ctd`5` zU)~@)THJp)rFV)hGn0(Hxbr?nNx~*lRTX%*nd7uM!3n1x9zR^|i+jPu@ zP}RdmRA<_Gt)mau{ZMe4Db94s^SxjnA9saJz79VhfwuGf1sRwIHusxu!8J9{f;+}F z*HTpOgj*sS@Ha{(d!I8{9R)oM69SNnFzYqA_AjyzKY3ZNN41ES4kc+ zqp{y2>Hd17lDs}5;T;1y$gCFyd9hBr77~1RZWmS(L5zqgoS+8o-0y-nUf%=^5E?!` zMJZ(H9^8HCJ8m!1E@uDT8YE3G%h|a?crUGVRwd}l04F9P5HEc9I{X0|dl?CXoK;Q$ z-MKk0H1uS+atERWV(tZv$&iDPRgUk>bNA8vy@T_qb$995u3&8nu=;WQ#KR0|3=oHQ zuvAtk``LV#4I44{8n>n%^vvZA>IzvdIvrE6 z8a3KMR|d|}(aTXOA|Tp9q-sobGeoxaa(=oYg=oZ}PWWdhyxs&_sTL4v`L&!`fFCTu z93@PGR$N-O$uKk~6r|G&|Lzk?(3U4@^VOj4h~b<_)IQdpd1<34;N*?JsE$0Xt8Q=` zoFf8e7iq$bBMJiPymZ4CyaCIo^mEiiTo`LCd8|puo6x0MD-Z+6_)5J4PWoJScKdEQ zozd|ZLCeKMyc+=E3trKVbXUH=&{&H>5nl6@sM3_Dl*QjTr4+JIcZzrTgzH$OYa zsq6_`Vj*w1N(k1y>j~h-uQ;$ia+<#N>Lx@-Ht5bxh*~?7Frz8YKZ5|K5cVIhDE(^$ zoXKh~jNz>}KQG{pgYHxjX3W=i_Hw{DIL|upYR|N!}ib)Gv%)6ufww}4L47rp)<{t7W_x3*O&g9@y*;!s=dMjYE=$Ln*66E}`J!z5?it#Gv~(P_ELFb$RA`iS#cReZ6xuo&ni0{sU9A)M3r zydoym;%Qd+Qr{p`!AT_sI;SucsD5&G@qrrJe(O114XKt_>2zjNEK-Hpe}o5@=Ui$J zN71(+f;->$Kjik#Ife})r}X2}M8JWo$yF8}&5brH&$iO4mrTpUf!=*JkV=cLYBmO6 z?bAEs1d+l1ap;kM&&ckjf7#}03T2onhO31u}L zBf+nPcz;7($Yg!!lzmFU*A20GJ9;m|q0plNEjrjaL60x&=8lK(rjN-|F5p(O(m7@b zV)DW_O0~Rh>Re_e0CD{CneD@`U-NI>+lGF!4k4@`|JM1_83VQP&THoay8015~JYR&^-)vs_}F0 zRz{pzZEGHpxvT51+p3q>)_va4?5mwZXaSDCUj@Oa4qp*gE6RfwnaSItpIAD{XLChwaUug2m`upoXYLB!7MEZ`$Fik`W6v@WW8##9=leMwCmq~EzA%a&Ia z8w??nEF%<5ht#%cR2eoQRbK!@`%)EZT9DO$AN4x|7n&x$T};+0#2K1T-2aKOWq+wZ zjq6j9*aCe-4QqD2r~&Vk z#=F*G4A?J1X?UDMbCzu>GUIVO8LU+cRn<8=&^cd=h(}{Hh}YaXw}1_=n(3OxAC$IM zEsD%nB$^p{{ZqUdi*(mR9;?f6xYZWAmdv!(9=aJz=5fpL1g=a%7UyXI{2GJ_d4SAt zFp*(zW=sRh&8D$n{~Mf}8#gqs-Sn@}$>D;}_8FeAm%<jqJ&Z%Vq zc~zz4K<5aYrAEUmml0lm!cH*VC)lU0SOE5n5%}9QbjtudS_2R!(5x=dksRc%=IFw> zrWIFpG&6=qhC)l zzekV}VQ9f}FW1i&cqK|QL)CZwB7Wxnx{kkFp?af+Qp5Y0uqUS`fB5NuVe5`RF8D-< zg{DXLvF%1qi9dm?cI=USe}2sC<_4G(BUT+L7bp%AS+(A(9~1)M_H&#|(e_C=JdDWs z^`wx!sx0%)A@Zt)X5>f{Hgzm?b-V#vp6@$(Fj8XftSba?eqDhDhB+CqGr}6B_|E-& zbklv@I`&5Sz8BtZ(4PG88HN}PxdUtRNN|m&XL;QLZEA~Um$$WPZ^jUa&CXSi!+Xpt zPa(lQs??!(^%fGJq@cAX?|ZL6ur~pofRm|j#J+6s`VV)QjNsB^hz7)(L8_`MD-{YH z5EgE`?snLbb)&TKw70!P>l!A`oelJFSQ|nYtSl9)WZ$90-M`!@@U4azaVzQ9WuJQ> z7M_MExF<*CPSZyq@}1tlO_mfdmf{971q+ zry+#k?he6%ySux)ySuxGKx2(HE{$vBZViX;Kj#eo`w#Bu4(_A}_0&`Kc6If7*WP>W zwe5<96r4sB>$-@HQu)z}93PGmE(t6E4*hdJVsG)-QIX)^YX3is&oN zSES>y1?_y5tdK@~;qT)=hk1{8*W%L+jj_#Qmu$~<8`W8Xe_Hk*sTMv|)?)yyfuMdV zMXf5)acyZtwIcrQaO1azqL@orP6a|uJZ*Xfr^T=(-vfSmVe|)0-dS$Vyf@WwCm;4n zRjB;6g8B|ySXS>l8IUJU@?n32hr~L)|M9|z1X_dR!-5IT!*`VSCA2?4`y#^0uVjuU zACt&2?+nP+lf%b*7uWx~Vq}?kl5UXwbU31z#l;n_FzJUR6*_5irr{=@*7urge|Y77@nI0O+OjN zKkE=mIUp%4RD@2Kg=%R<;A9q`XS1&qk!ny{pv?={a0Z-wd`lTitTT%Puma3q-r3NR zC70))8N$tfYHq^L6f|HZFR{%$eCwTZC3%T#ANFqeO8>P+q*w;EJ3jcLgv3G<^@!p9 z48vH4j~IXh7plXTuuJ%RbWNCIqCml49>{kZMAiYAuMH^>| zOFUVRMgImvMyiR2P_iiX*aVQ$hi*K647(lR)?L0s60VfLsVPqiA=SHbeit%L^&rXt zfz*t!|JGC{OV+XoS8~=Xnw@IOS40&bh>aD1|rne3Uw-i_Da5ZRAV}Kvc)%) z6W2piP_yLcm_(yxP>pc=2sq=q_5DT(>)jrB#UtF$uVn5GZ&xvfrS!$a*-(&)-UiUl zQrQnNl6L@E;fJW05yl#D4K;5I{2j+gNstj3IzYjvTD)}%J}MCrld~)?^;5p;feGll zpWNod;Wx^QHH3NzO&)M=Tdxt{_Buw*ScyW+z@N+v$mC-ICu~30nZ#u`k+8i5@f!C2O*2%yDxnpB>67IhU9bHpWN_fItxWhsetW0~#Nk z^vy#~yg?S}r7(F;O{6*BBlyZL3Kj-uf}lKtFtD zo+-;%gl`+uk@qY1oNq6xcO}829_MK5Jek?UsIWFAn?bn*iGE}NXL6iA_efUH8-)e? zC*h`rqQdxx=i7S{!t~Ymr9RrGA^sNI;P8 z^t;PWH+=M&ZTQ(}ZIx^j&dBRi$s@g@CR1P!?vL6pm%SuE0757R@)=C_dNnqWTr@B< zK@aq~p0PNn)tD!>AV2+UAo9)dgCNoWX-N{B#ZHC0a*RLDgZyet{PK-ne3}-Z@fNme zMMU@xZS8(q=t@6ujFU#WyKB7hS|=o+Yh1xKn*opo#3NC$d^2 zO$Ix0TZfsJknK2dj>?(!FXS-nN2ewlQiJ;nnp=mQo#{efe8z7-8W5C zv-|$xDl2bv6oh@A-rrw_TtUF(l{5EgY0KE~?QkFw^|)4>Kto9E!2Nv&Rtm19Yj( zXkB`&`#PExY1)VSTs_zzj8e_~Mho}Vm`7tuMFP4851e6M`vSKx|H*WlwwfRv8xC5q z!NAWaYx*642QEA#k%?#SMrH%*ifxssZ~@*CiN1{Y1@WUc8t< zn@MtK(Bp|V)yn}6a6hzOPZyam{~5~;)o7D5GX6X3zIt`V+2sliw0b;+Bhh7yn{^29<@PVzQ^5W*38fwQZ#m0V+^N%3oRx_@|k zj%x|l$8Gct&$zI)Q1i0h24Bl{l2E>14Si{| zpC&fDOr#Zayn_eLdn`S6`BHq;cOQh9h&%NnGl1E#MfU5(a5Bp0Z(6Rx5-sEFD<`1Ois4i&!wHHqD1<7(K7=) z2%%9Y0v=<9Rj-qw8m+VA;<^3~7sWb)+?Sr0@9)ip{;w9`AUO8&xP*GK!TV#mrPocE zJxQw`ZFb9kES!$6eB+`29ONljy2jAwvijJK?Q#Lmi(PjRFqio-W|TRscmAa`ZDcpCa{&{Q$<_V+8aVGhTi~42 zd*F1D%yKVyMtry*t)3XZ!gE>guyk_l0aL7rd|%TZSgkErUrq%NeVb2aPbT#6@OXZg zIzW+|MXz-;y>we{dBY#oISH$}OivR)x{_+Sl9;2KFBa+-ulU@dj zpWY4I=iI(9sQxP-ZzSf=Ph>$D|LvoPWQZ5k`QMNI=ah>Z>VBvH=gC1B-@`tDga60b zVc#%iaR1w7|LZOR5-hs^zW;x9VF%$dbopFCn2BxZ|5)Oui{dms=ZZbooss{) zeXal3=M`4_=`M1x$Yky}slbBv_y79~d%?1GS=QDh-9v(x9KmIE!4iThqAq`}61X2I zJ&2mD=qYXO->0;H#q3Fy-Q4?{Wf9a%TC(L)7+*2-z5$mqE>1rdTIE9Z8{}j&N@cCP zU*^nrr>+ne@3*`BVaA5J^diiZXRe1gda2Pg_ECDp>dt#05Z3N+cEEN#|8&Rlv}M&SNPLy~b?&$43J&vxxMOP~!ODKpiR=VuL@;iBJ;gf&-X%Cem@ zLCng9ZPv4Exv~xcAEh0rf>-$LpU%$mB3rC`1XAO~T+E4E67_dT5O|eD_Ex8#_&r;K z|KbAtLQDRBSnq{z&!zvi`I53JaKO7N@j#qTp>NsmV9l2PP(0hci6GE~t^Jc^VJWh* zE4#urDbdT4cw!?t%c_7SKQ1MIF883Qh9kC#kU@jtGleOR0%W671VOjSnx4utzP4wS zuA~Iq%a-N_W5-{e#EDZ_#GZc4>K!J3h?i68>+VfD79F9`_`|-E@Z)kzAcC9IkaU!~ zRGUVQrpR2Sd;iV6H2qTUU2@CJhf5#Uqfen5fc?QI0E=1a-mOf6ZQbwmx0Q+zECuh* zb{~IQMn{(oCYz`)_8aP9Ib8S(b|B!<5!DLwN^1vw>A#gL5Ju$G{ERJtyE;+6$ZeX? zQsd~>yJkD9te7UN_4eR?vZcEwDZ8?i$&pwUUWW)AdBOx6RfAR+-d+oKPaCecpa6^O zh~#qj$}(|;p{jr}?*v>Hik6&!Vfc`;`k2SI*Z<%^yc@h!L`kje!BQux80)HZC(&=0 znU>*X~`+P&~8+EO*vy5Yj3r zsh1^wu_t!izssVN$-OA)?r_i*cOG`zy9@2b5&acgt7Wregb2j*?kFSS-Np;W#% zRLB89BsL2KY<-Y4V?FDv$H=SezJy90bUixfBkWBFi7sK=Aa%st@tC=HB?UwoV={bY z7%|_$QJ;1gzbiJ1#%7Ww=k5P{+zv6p7EloZZ`L#M^p1YFz4MQ6s9SXP>P?mG7wNIQ z5Vn1hsk^U9wv`~ix;3oOyS5Y=8ux^_ROa<_KKlYAaj+j#Oxww#yPhn~u9&w2ZH}2$ z6tgnF+A%6!EgLh51hL;Xe>?2#}^7;!S z`iiFu!uq(-G;xKS%{0Mmw2O5|=$r(}5epbx5!ZWmqt361n8V^C;Kof%jhDGRiN8yh z5}eMP0}AvzRX>`sJ~oIf$w&9-_iaEJrf15v3?58Nb+N5n4 zHRlo>YMJOY%1uR$h~jZ)hS?7eH?=5}dt)96R$uW=cd%k&p_f#m9i7q}tRtF=Q4^mP zy~GPNL_qC7>`(U#F6-Cl6I4;G84ud|Cr*@(x&1CBZ&(j(ZFJWqS#niVc+C_HYfRvq z91g~Uq<_gNw4TM@Q=Z=2V(x!(ZVQ=Pd6In9q+hdby_#jL+wYND_F6IX+4v^z<7>QA z+nr+4IL@GLap{v^8@RVlI8tj~40WxZtqIFFTGJvB|JW4TX0E9&gEh8zD}@WnRJI57 zWYDcBASg|N>f(Bv(`#zbZUs|Df5711+9ygDbes(=X{c?T0Wtp5>&olZ+x{SzEmE_* z?HdFn(-w_|q zt-(Qg9Nd^G7x3#K8Jp^QO>JggbwTry4ofYyfi>%#;5sf+$0{`9AG5&+vP)KrU^#Vh z`sP;JrX=e;6COWq|3_2I!(JRB$ONN8B5P zuau2H-Pj3Zi|?fi?=d~9e^{@&J1M+v);R5;|3bXsRTEd$pw?C%WG!3W)YBB%K*{Q4 zJ5sn|?|CmQH_wKKmfU`OLvf^3_Kd#%y1q6xTIpXtji)?n=2je8qwb>U6&&5*On#E_ z2hdcPP($u>vv`KyAV`S@oxzS0Sz$dW*vKCw5vr)D1zU3cWR^38?$>FzE^*u?Q)`Y&nDG6&9xJS~`aJ z{t^}zSMtDwuWb!+vzU>!v_!usFUNZ)z*UigtKhjR@iL^_)Y9THw)+EXur+yR%e9}d z1r#Y|EaLe)N9ghlD%rmJYaX-lPM~e=*~9>K?TjS9vomt9bW|eRqNJ#7Nc*K!i`Ihz z{%%{91GRQRbi2f3;@Pg7TPV6<>t2)<=Zv!cWS=)JNn!or(e7ABc8MPWDc7n5>PpP9 zkP>e_Q;2eMCrPL}c2(}aE^#`9kipM)u-F(~5R8zN&+M+_l}Dwtv-nLbb|b5HZ<=Cx6Jin|bs=1l=U>WTN(LL-Sva;Dec+9g8|MPv;R@s>6Wo zg>enA?amp+^)kboZ6*dwm+8k&CcaziQnUOoutAY^JFrrU_+}$a<8)a}L>rN~mP6se zh`t_Im&bez!yu^p>jx8;uavG-1wz0~+MbsZ8O}JbGc;RX-x8Fo3p%M>KHpRBNqM?# zA#Kn^V!4&=X+dYV|8ryp?bUX zyd07s^dwI14Y@4mhIiGfT#jfoJ*G`k>2?ZcLAD7LSRr(^Rt*#MEQTfW~%m1XTV1A!rA4z!hJ92kTF)u79_`SCpix$q}Hd8`^H%pv;Ie3l~h- z2~Wv~S0@joWX6+Ym9Wl~fkPKh@gmYe&FNCu)Aw`5d zrXe`C;EtCmw=}d%F?6UUB0DK~@za3Uo%@{Hkb+_%OWTQD}rsL9Li%t{~%-rHXe z$^F5qlN-Y+7g}(@GCoEI_KJX@i>XEr2=rPT$BxM?)xP}~&`vK@-JuUuvy_zBy0$+` z+2b5+$<)NLo?>G3Qfv%9C*PI)o}s4!M^n^jh?%Ui2!kbxmYU#GGP%9TS7cxmQhi?!t-dmBQa|P|VJ1(lgNImXlYq zyEQ0@hxlz6483oH|I;AVL?tVn!RW7FCKkita#|49M9);5?)Ng>jn5M*s~|=QlJk_L zc4g#8A-x!PzPtlTo#fbu?ynit=GW70H(W|B?Ws{9lcK27fTNRqbx8{Pl_=rTJQ?oa zQsduET*_#oTLo>NpT5%}%lsk&;y?SH3K2+jGZKSQY_pBiG9~8!=AY-0IBFHNJ|A7D zr5MMTU2i_S8GqTX_N7Xm{x|Ng=K*UGZ*HBr{6h$;eOkjqyPet25?gIW9U!Ik#f_GG zQ+ESd_~Um8r6irX!Owa-mE1a5h!Z3pFdJi{T5j;|ALMG6-uL(R%-y-^VY$3rE(Od= z-$p(4K-`R_4Lu3}a!^%{VUK|F($4a*-PC5KD`>tjGYOyTX@9n+j2gq#!tf9QH@?t{ z=n|uvOuff7dz3~hwxYIn*d-L{C?@MfEKQ<)BuK9`?;yH}LHh61e$k}s>GzsYFX!~q z>X7W*U8NL2LTMH%4#!}%DR6+7La!Q~Av93#i2GCwcHv^7UTPE#E?gjF(ajZIN}Myk zR&TVwU$so_e0fvvNsN8l+g;;8jDBeXXvdlw@Lj;eAe#Io6aU_JlpG_Ur>**nBOgK# zqko}yHb4%gaSM;&cKh%S1B-p=TV9VC*Zg(7VtZr*sRrxBR6h8SbwZYG{|`Ig4_93( z$*f}eqyf9#4v6g&oe#%GN0n?X zI&&9u(G#}R{Nv!f-h6yKpK_cP^%4`LRfj5;98Ce!CEJ&di1GX*te>%ZquUk0Hap6P1>v*$i)PZALNqzuOwc7X`k;jF;16CsljNPA5L`}RvPuto zYD6iWX3tcRK?hnk#LwK|tL6ff+8X~mO0{MGghRra+4bBu312HtLh5Fw`~I>q+gW)& zds(zyx0=XBwfS4j=V|KS-knsEuZa@FsdSJD03~F}UNH48g{bg5-|fUd0M^GH-ok3g z{8x^~h|CG%9!+}8nc<$^KX1NPeh{kBvvUxWiR3rOMAxBja?4^l0rz@bgZx(dkZ&4a zzU&_TQrg3xqDAUx`{kg#b@-Zhm&t!liy7GM)C(Wp&Wq>lXZQ`kot$>pVgFboMD3sh zJYET7fkEZ_y-X=7xihEbRi_5EG<_nImBml|(L;lvjaRt+?kMZMCEowZt=ap0%9JmN z+Oc9F2Oa@pAKQ6%n7ZN$ea|!DL14)nET#t1+CRH@AiRKDE!Xi z>SqpAp zO`$n$ZRXcEAv8fi!g45!Vw-@BowPI9cgAnCfi-~`z*8&Jcf7D}{Ok*ofga-bxRG*| zZ8gj}_L)-w>{aG?WL%X$&!HO|%!lHYuq;YXDzZ%85hho%8+9*>PLh8A#F~3x^lh2N zC6F*l&^qKx<6xN2L7LBL$+~r+MY-+rC~iPWR1C;a#N^9i1`$rlv@_Op5 z>xy@#3W&_V!Y}FVmAAukH~&3s?wm^fQbBY!xv4W`rx!u!9|()2mTR8&lIY~0_O^q! zv{su>EseGPp*SnUP~yXPyK-)}>pmCleMWN3t|Xa_{~hr6(NswnQ~nu+8UPftfjbGc z`uC@((8VQ6ruXD9e}6kYt%vxJCa#Qd`vyu>;W52B(C8Yu&p$CnF8KNkT2FkLX}+t0 zK0&{oj?Xk)(x{Y%6P}aE+h1s7mW?WZP+8wzn*4-tv3` ztos9|jRg6m?@?DFBZqI=uTw^{fO=)n&N_koBt6*#3~$$FLm8db(P8BERFNR}hLFdh zAbl;H>QY@}+8yEC3+?x}7mHv$;Ba)<<9sDgjjq_th0AhiB_4H*5r%2R6>J?uO)WqD zJp6s80f}a99+O2m4yr&8DABpBHaKc2M;_MrWL>-Xp3g$Zx|*jtonZ#PB6}~;R01@H z=dBzX^KW-7%zayxPmXPZYm$H1Y(1G$WhWRZ;3;NMlG=K*WrkY_2YS6(Y}nHo#jqg9 zbzGLeRnESX#7ydA==+cMnE$lo8rAk2z_{+pQe6C*0e)hBZ;D;K+$Ce>+l@FrR)&XG zdba%O4O52x1A-uJ;j%da9dbNLr!dalrr2#4mdK1NkozjkASK-V7M|lSi7;KJ)mG(XW0%d%jscg?wzz;{F8rRSx_)d2MK3+gPJ=kp zQxMrF_CY*8XO4gsBFCl7s>vEecb$qC-n}T>`+9}zs}`Qi zKBg^hb~EtCvA4UZkW>-nRAON?tXCj%cBulOz=EHnS)QLzH7x4~idf}1Vv#uJf5GI` z{Z=f&3UB=477tYLofI)ATTauN3}kK%p~w z^knnzrvnsarkRfn)W>I@9d36N5XEC{i!%3uw^>t-BU+lIm)+2}WUoc>>xPY%SGL&E zXa1O;-aIsfT8+W^#eY9M1Zj<0%1Ms-E$Tqb6t1^;>vo-FR8)0Sga7jGuD4%S&)Btb z%;(*Ua85ZU{a|-se`x9ksR;^g8mAJ{)5S;=cS_ zMxKICO}TKCA=0p`v;yiqOm2AnJn{|^h*53#x;yiH~=PBXgT=T8(xzmeft&M zp9pY5oduh?IJS5WbxWV#zzA*#ha#JZ?v{FV$&{vG3$dTsF?A42 zX#Rrtu*h1QxY{>UVy4QzN@zZacGBO&=H}|)LrjWnv3%)9=tI2A3f{5SGRSFs0>%Ill=QeTaCXVMrsl2 z8lky;B=UeA-lohHX@`*u^cUabK6|#W(Ab5>(&osT6i`uzCC!bjVr@s(HIM)wN}}!C z9BvM`FR0V5eBmaSpK0^W-W_e4`HUnd1~R=E#?P3Wv}pc|y^j{%FMt*z@#=}DUk4G{ z7e*|h95j9fBR2J%cJkg56+elPr)=UJj(9Xgp00CT%`P)U0WD}4DoA_cP8~z|ZAGxF z@M&duXUDY%LT5x*=;f*oB_Z3s4XHg~c2-?>G4%-?v8@6x`Muae&=pZd(ceGC$D2ut zD?I16qCIS!neN;S`S&KlCiGuFBD{IsYHDT-PcN^zHINv%>rDMrc-UC#r1cv7r3vDu zj5{^yuq50qVUlWWpoPqYowVum;`8MWg}Zn&}PiqhF=e8=E|$ zv3h5)AMM|>8KC$?XAd8n3$YEaA?eOe_Tkvp3=}O!+_FG8d1_C+pw(td2>zmz80MLG z&~s$w;`ZxlN%{1@gRZfeLu?goKy>cDf=j9EJS`=`fq6A8VF!0ycy<*3(IX7##P!TiXOZwj%s6!iw793bEwXP9;3= z@~@J)xBKTH`z^I6CcN0g)}B*om@COq%>x#IghU>)_12E5BmruH!WCiuGzo8?H<) zO`2LBj{O>$UL&j8L}b6syDR}d)S2IZIQjj*8Ss3zPM5W{>m^*ndNl!Rb7zXSLqASELes-y||NHvvDwOMm7IJK{{JQ-q)VDP? z;TPcaby0RLQ{QSKlc_pu)TGXI?mK1zc-W^dMQy*Y3@fZOv1Gw;_|pS~@*H6%l2#}~ z%A~!v&~-|3?c}pYP4n+|F0yYl1tVI2`&-e$dcL@<%vD=9>$cXJ?2>Ks0lQkrp9f{X z#H!)D;+7rdUA)XWjWZS=rC_xGqz9zQ#hPzsx-vEYUoC(G9ryk~&ze!s*!N>9;+oYk~Tb_&z0M0C09lQF7) zW<_>)80m{I%=)gfIjon%_d}ty8T|cygKx=OJ?!9*_^TID$|-;ulClJOb9cstS7Cv@Wzr(rP>;gZIZK=-QrqizLu@P-VOQ;B>@Y2PQLtxHbGf3PezoVqdZW6e(tm!sN z_QN7I_oi!6!;N1t7hIyc){8qc1JO0$XW*}<^(q=+HW7b}73U68fj+u2TfCkN$pH^F zn3$dx<}XjXNhR5l!-aQ-M-mG@6*f*v^<7zV`h|GzfStWLZ>~R#pFJWTjfG%RMDx&S z$h$!&_AzziAEuROIN00k%k^Vx_;RRz4)tg?!{1$BI*;9_ce9&I8B?-|uypds9}Uq- z)-6}A9YJ^=oxC0dJWKulB<$%6hnjI6e&}c|9)ZU|51tBc#He2%e@q*sWloId)>7Zd zcb5AO^gf4{xvnxMtt+w%qy@F(7aj5OoNKS2#WYW?=1R@Gl7rxp@?y^LI#w3X(*lc} zDJeoUWUqx5?nh_8#5{}hdoKK&w$~Tr6o0;x9rPJSNF}uEh6EVR?iL65$kEOB|Eb_= z-FU1RH)F@ghNrc(;5~o-!)BB-n|;sEUtDb5vGn736lT>cOi$2$HesLpoZP4pRRz8D`-=31NqWXl z6Ho3?{c6fP8Af^%i+DJ60s&GNFn=Bf2$4f*7pzq*Z+6L-xL6NO)^ubxFqBWqDyO+OCCR_@r|oMoPGyx1nE@s6aK()a~z zmi%;(anV}G1I{JwBsz*$3i7Q8-qhV4i>z`0AX2N@V?ejwONw1~R^C<8-$FhiX4#>x z`c}qgWP~lP9%84tO*25zo7+mU!91_ki5%06`tG@ylYwC)D=ll2B5U&lzH@qs%JERi z*fQVWm|K5Lr7ii%mt#j_sAHDHB#wqI2=!UKr-U6d1KCZ9W{p9AZjYCC04D*Hx*T6M zXnfqW2su?_ANG=s(@TEj!ao6*g$&G)OhrR|=xD&Q#>MGrmk&P&m(JX~2QEQvP zb3SqK%@1iTzjLtMegbT}A{e6t0%+huF{A4&j;nTA_DUL&=X?e(gB0`$fJya( zgS7+hQRqe})<*CF`x;yt{4!#Wcr#esG_m~Srh9%GIwgg^f8-{E`=N)PODP78km+?I zeZ}(dMHy@GRi7*xh`(PCkk`c&X*A1&!PJgZHmF3Yaf#Tt}@BQ3Ukm!L@fAZGx#N0KWi->38rVo!sCEN&6{p zl+{|&JXc`^MeIVRCZdjXcq1vYJK{HYs0$rLvGm7s1OD{pz<$Eq3FQ65=v{ z0f`PGytOYS*|+(DfE~uo=)?}}{o0Hy#6DniO)tNqO?E3=>X@^*E+)s3MeEt4Ec}V>0ze_I><)%#%>$vOlO@&__|3%s^CPbAp8n_*s&J_ zOvgUtGFiQ@c65S1QFl`B0_lA5RTSR}CgP-)eHfNMga83HBV{~W`+hLuURTwe79&Tz zuvfXVObm2uLTU3HO|hHqJq&y`dfkE2+^JeIEXNTy-%opUo`;Xw`oMAaV2u~n$Rpoc z%KeDXBr8|ZkSO;M_|CQ30KSx<$u4WdReje8{~ zrpOjrOvpV=U##h3O6klZne(qpMo{$#_A|nGH@A8b;9QY8d(Z2RMf4k# zZiD{ty|8Ah=(n>M6|-M~x;c86f?=5SYSotq^@{6@fj3XIrmWjz>WKyhbQdvHE~IGj zmNA?S`>w1-B^lJ--E=JT@UBL4A|%?lfRdu=T9q(PO#Xwsr?T}+A(zdb@r~-tKg9_i znuwmaArUOgOIHEe_p>bfkls~P4+Wvj05+#?4*paI5q2E;a%0%k9i)?ncp5kN%~xdI z6`Orz5AN7@$;|qYoEF60_NzX@e)}Eh$$AmuY|ztBMCJGJxyEPeu$$jjBTed=lwis6 zS7#GpPj1XZHdRKf^UNxN>^x@gRXM}&Y1yd`>e<9EBz%N-)4twRBjE5dkn(z2Ne6Xs zLg&DVG|Sl!e5UK}f%B&5Wf0dmdQt+<+K>4G(StYDA+7*DqTj^$D79<7PPM_Di0pb5 z^=#biF}%v$Fz^FMeb*Vnw^_6sJ2XQ+GK#XU4~&SRg$lGy%lC)?m- zFs;_YL{1^kQxu*l9Yo#1>kkkDef>y%>ni`nlz^Xsgq zPMh3Oc(>IKxyc^^`|HhP^t*v6plYS92tADOZ4a)BAZPS3DK*PgTEO$9g9Q_!xs2(Sq8U|53vG_wF#(;igW!=nE>T zg8p0pxNz$&hz23U8yll{%lAja;)wSpaS&7mfXih|OTsczM|j{CGewE<5mEE<{E0m= z)iozUy~vXzhLm8B)bseY*&d@};~TufZH^g0s0EErnZ4ViN@_Lg3M+TTk+-R}vIzjq z@@qN!_azscC*}xRh(V;478c0p2?xW(P_rgJ=7iJfw!Dn`WEKF4N=V0f1Yqq;wXtoo ztED4NkiW}%bEHy{Ka5~I4mU|cM65YFR?YEDs3XP=^Ly8X}kHXGVmpX*Eg6K!z%BZuQPM2jv4XMb`cn7O zUXdz;I&Iy$*^yco9`$Qw&71h21;sWR&N(YQHOk3IKO;CF;KsXGXFpaG*L|Zsa4Rb_ z?E=aG4*$Mr0gA_@>%B{}8ch1vcr7*_V0@5cz4|C|wL|lsTE7TfD;{~b^ETZ@{hIvq z9IaW>lzIo34f$DN997~6Fdx$qD`B?ynwyFOfXNC~mE%@RvRkn3^wUZUJm9tv?+-AR zq^nT+`%?)!$5|P06Hacqe0?rLa7}%_KxQX(k4>R9VvE?C=TV@n6wrp&s^BcoDmxvV z^xWrq$~l%j+Gjp^XMy|9(j0sz2a`N8vz6CQ#0A=NK{1uC;e-dr6$^+Io}*O?GwK!)StbHYkSgW z@{uUHA{%g~Ijn2Y0niXbiqeV<6BuWekHGoo+l#%qt6apDNZEniaIg&#qUDllY`;|u z95&_|BU!mAd~htsjQjY>+Fc@(j<9lU_Jht1njxOb#WnANRaxF|Rpbs;Xt(tWcT6jT zh9{T8ecaumyIiH498Z1ke8?K}U%{+WxehxgE~Oq9^dgfO=qPLVk5+T1YpcOIW|cY1Zt8l`#>&2& z!Ur7Cw9UE}MLE&m<3V^T{Cg^}JKrCz8>jLNF6kWToaIeum}Y5<3JUotH6ZIwTH^aX z@0Bdzs;nJAu)F`Ji_-r{qUCZNl7-nY#A91>%@Eb%QK9cxSg^&X0n8C9P9Q$YRwI)T zj1^Hp2?uj+Lp<6I3qwNz??^iXNE3MbEb8C^|kW%;WSrlvXM zrPYtEpgH%;zc=3Kb?s3QlykZ55KSlrV5Pq&C_qtF$D_aT;6 zZu_tw=fp(kEt=IUqSGs${Al(A_F6Wc0S5TTyis$OdsWDz2yxRhYepM1MOjM=`*JNU z@yLz*W9!09DL32QqZ8NJ2m#Dzdh*H6yNX(H7Gpt>x*LXe3;WIG>_aLqSy@uaM)|8x zUR>(ok4|QVMzYpW`GK3#Sxu4g!A>R9@l&OlR}o_BnFdv{dY$#0<_C1sYU34hconPR zyj!D>1E`vBxiKtMBD03M;EqTj-WuaG#6d8rdd574zTwMU&RVOKIO-RY~q4^R%9 z$IFiYp}oe}Jtb|Dqik?~R{q(d;&E=LB3VFJk-b&#cNC$rqRUCbvQgQ-hjzHJ1c#Pt zzR8>eBy}o|QI+2$a4U}-5$Ll0_r&y)l`i$0R7OAa?z(iOhQtV`7t$o9XbZ_!A~vN3 zifcrwo$i+E7&Ac2c};EncMiXujVFmKUmcN5r5SGsvmp&Ibc8J|$1>f_V4o?mn|?iy zwU6VTdpApR6=lT@D93#++@t4h!&5n17PY{6 zFA5$g9D5Gi6FLJS(ep0IVH0OQ6()YOb1Zsx;ul5sE`~;y`3}h%2wPzKx-ZE+Qd#zS zpqgu@S&kk^%j4gvK==Y0{$7VyaP$ECVggFKV~AdMtg0MDq2aU~9qP%vOmj+S^N*-PQbgsYFI9@C3iv#Q7~8H2 zN$r~09|c5x$@o6bPO5}JREnf!{&v*|vWt$r4`gYa8HuPaW}{0r?)AR)S_Szt;#eIx zZ-&npb#Mh1oV+Y(B9#OXA4gP|o-XX}RJ(4zkWRr0d$Nn= zQhOs29^G)9RuwQXaFYKvED=z ze*M2L1+kg;=%z0&NF8|O7gvci9(1|aJbA7088DAi3lt&^(|d!@n#?##-9nMenIf}x z%AhK*s<51uvGNWZW|IZB{4S3dW!|g$=(QV8CsJ2ODyh&-0{TPC)_MmsEm;25!>mok zS@qBZHM&j_(C*D_In&!Yl_?}0_qc?o{PW~1ddFM915!(|w*F=bQNKILYR0Ek5#(3- zS^>Yj_nc0f#yo8l=GeIJqEF}$Pa=|q51p}a*^fR`m8vLBRVQ>+I<(s)$qEph58&*M zILfySqJh^;M%7tX5Et1+s_@WtD{#Uy+?M=b?R{lbTu<{RPH>l?0fGj18{85k5Zo;U zcMI-r!3k~wg1fuByIXLF8DtpP`Mv-DyL+z}sEG>Kv!EV$S^r*c2{;k@;)uyWT%oOI!-o3WDLEiD zv!~9WYvo~NiO8znU6Cq}u69d%!R)Qn`1&hAk=bFh#LmwIY|MD|oZBmCoSl%l07*=``dx=gpbl zG&DK(zlac>xJX%dcg-~&DT8OD@o~lD!+D^sv1%DuO*ZpeQ+PGoDe6a90$SFH-ibdr zpa6Lh0ZnK~q3--&i^0X`1s9D+1qBMk+Y{R)yRv)}Z5CE_`#_w&;d;-&%PfJX<=}Qd8rcUOhd}y*XGH$aW8yD}MRJT!~Ik8HjYptJ8+pX@+ zv$MJ$q2$4*rEMs+E~RDhU*s~noTx#e8;gd;+C8PYrHhSe^Resiydjr|)5<@Azc52_ zCBp5KpuC}`l)k|Z{E+m3@toq2-hrwFNQTvyLIcA8rV3v3aJiO()OPnW5B`fMsE`?u z+3>5s^UH9;x(SmTH)4CnQO0Dw34DkOaG!-G*TtFKc8EGNRp|{?|FROlBiX&ub>zul zXH!bbRK@!V;U!YKf0N%bUpwzCH~&Rd?3}5TGnZ6FWz{9k>Uu@XoS0WPc3`lL zk@@-m5!&O!>SK72Zj-~+o^uEJzg5z&nfkw2r{T_KSM0ik^v?HDkj>Y7%7bnDEm^?n zAJFY&51)shQM;&`$Lq8>=Dpuc7tX&WO!}Du+&^4M=()1R5&VfLbJJV1^a7km z^5?#x$hU;X*`~eRqCeLte6wkahYV5*R$%~ED>s*;c_P4JRD1rz38NhdU-DN_eGc0_c6rK{yKK@6PRgf;R%L>uq) zLq4%@#<=|q!aD2;Xv*2?p=9Y59Dkd9a&g;KgDOv`LpKR`e0Dk%>q>rrDOGp9cQAq8N;4kBiT(A zI-S95rgQPuSJlwuzz%WO-mod3EzyrYq$?PTm-O7>u5z$`RF4pe!nutDF z*I5{Qk=F42*`Uom>O(W!VEeGg2gPi?Js~&ea%QIG{+?X73rN-qjcxQu@Q63*RCBu} zPS#KpUk$^8=A!?-`&ZLW;KtO#dTd(FXHy<#F-Sb-v-JrmES=_i|r% zA6PUNmwjU-{8dc-*rP3%of<1Wrcv-@`$4Z~FKOsPhqP<^Hs zD_y2*l<55$#}A6rGUoh7Du!t@MGt~1ZFHSOX z=;Y*L6WLZM)nvw+3iIi63iZNrbWH-fXeey+a^QkM)Q{|wvatE+Us@{Y16c0=&IR}u z`1pBi@{L|OBoQ5B(Q<`>w-2tT`+F(U?A;^*7FZsn0Jsolt1>m_UA1T_}>-&r6p^b zsWI6ziw!dguo3ze-%r=0Mxr$V{tfo8K`l-pm;4ModiqDD;}T9XJj_&6 z;6JmMcC&vl(-zr)G1_Q^#va5{CH@oc$F8F`h zqb{Ta9}GviyHm}p)VM4JrYuF)2y>Ai4_>#-k_v02MISS~yt^6?I+v13b81_0X?d|= zI+&-Ku$7_)@|a3{a%zzMT%P^9_SOeu|Dchc@BaKD7hhYTs9S&rW>$>UO4FPQ!1H$G zSX)b<2w(R{6ks?ene%uC6p%;-{HdZ+{pR=Wm-xIZ(sKu9)V3h_ z-2h|?Y)f4TZdF56OelA}ZnIMP2W?s>${ZSs??$o1K6QMpz>2Ve!5Gq^*H5TYgJgyj zqe2~to0%MTx^2r1OsZdxRHar^Cc70y>h!;oEJhUYHevUEsBAZ6<)maII=AZz35C35 zX61X2aH`moPNWv7tJ&J&X1O&%PqxMHxJ->2Pl9uNxOHf8j9hfJq;{TDnem$Vkhw@# z^C^e1v~{TIcC@%6f9-PE7AtS(3ae+9!A^(UN0-i4g+k^PTFsrPQ3YjR`b+QE@lw5t#R`+^QLC^e^sEU^XF2-^-97sW znl!&x>Em={$x4GC+0WE5v6dYuO;XQaU%jweVRK@t|k3*(x`@O!k4KGyT z$&#Dq=;4HEnuP~Kpp{~aDl`8P>YDE=kVK&hc%-?Ich@H?~vZ>P4Sx97#IJgj)m z-==WhX6Q(FH(|O*F-cY~n~@r_+BzS`e7!GT8>ppUiYNfp7@}G^_nn&**!{Gq4f_zC z3lU*3+>LTm>3px5^y((8xp@mT(bh?4Sawu%S16`l>Dd>^ADy$}#-1O%&Jn`(v8-v3l_}7bVS{Iw1F3k!7$<biA}G-O|&g?s;h_2|aJ)M!${Z8RT zx5M^S>eGx0$8|V|Odr6+%kAj4Y?IGfdX#HT8f>lv)dou@h+^i&psC6?)N7!U_NPf3 zPs&z$zo5%n)G=A6jED5$*jsAT4P(avsmC2*@uFVn2|NrbZr4uIP6RUC|-qgkBJ#O=zH zKE~BzW#YRRGw>Bgs3Us@-^w>N-)+joUq8sq__EyXI&l!TIEA-QjoqW%aI_3N){R85 z$k3&JZn?|20Oyx1eFVm+q<>}KV1e#3M+&Ses9g2c=Nh%DlIiov3bPAIe?2gZ6zJ)3 zpz=npFl}v$ieAAAPl`D&h@p=JLio3I>1V%*zT@O=`rPwXvdUt$US-~04>uK)K;cc1 zyZr?APx}W-2mXPb-Xv`JQf!Iu()WuB@!)TTAA98UMcD54qp&5yr!x9EH<%pft1j4h zpf6^^BKz72K?QAR#HqtN`Px9MW?W=8o1pZ<9-=rh*kGnbfW={UXoHovCGSB7;)_wT-N?HF5d)8`jmC!zsH@@9WDD9MA#G?)RpN7i%$=wvY`G4~6H(cN%`ocyTZRpNQRlW`&^ljwp<#?eXr8BHx zMXATJ;QE4#&PjJH9#x^8~d_M3RpvH-(C=^$H|_c?SpgH zqBQT$h6yZBV^NE-cSqSYBcjbS`hSs{QCLH3*zE8#Egm}$fVd2(I?o8#>bT(HU7&bH zxW>;MTz!t)A`bp?co6OH>kQZ8iH@W2c}za#&CU`w{88kNqQ=j6C8&dbc0Y7aQLSb5BUBMbssy)kEVqv zvryOFBci=y)i0?%5_c^ezqaD@(Tlviq~==9sBf?FIm|)uCb6ul_%^opr@EElMdqB) zwX-0qsp4Ni>|F2MPi7lA{N1CzGBhjycEXifGl%-1@N2kPMmii={E}d%(=?e)KZDLG z3c9{MDJQbpIo30n^}avBfWAPQpykUc9A_8A-Riz3gTqC=_!Lgr@t=v*oY@t)6**%S zG{Mb_Ea|)~cyAe3j#zdS$8UHT}Es>uteHvLQ0Ss}4j!w}RoOwHlL5VkPXMV;(+~Om` z4v0+Ci*~Fl8TiLQJA7{v#R2k}nYSMIF-4~Xrnyf==%|r7n)DpVB#n3RF{p=RzPeLl zzC7WP`H3U{0Z?_mQ-an{Whpge9Ecnx-!oxFTsizBEWt{1axdy-M<}_a=~=9}l^pQa`%EWI9b71-bpH&ATim6x?_q{P2a)=p~g`>vDeR zgN%(NE^`-m-?iWBwS$T;XMdclCuHatX{90LE7%(xou&Mmx((S}C@Kr$Vz+wB)Jr%`XUlG@;Y39T8SQCQHa#?93; za3=4xu@JE9hhHgg;-JJ<>XcVHzVo}Jz!xDl-C}PfzyWz3-}0*AFThXnF3<9(L za{4ey+XDDOp^bf`M^oz5u^L(m>0Z^0Q4UL|NtAz0acX@*9k`#Ddy~w-XHFyykjXSe zqt={i63prpsHw;6hEE+sYw&z#o^sx0SOo-GJRVaQ78fabFX-muxO$EL;M06rjz8~@ z(`(tV@%#}E!NI=G^i*>ug?+DeuTgMXBbemlw;MOy$n~^3JYhS;dtc%IVtAit*FbTi zEClf(dGC8z`cS{G&L zi_Hnf6#Q^VVw6^fo_>Y-fV(WHGwoD}v5`v4P~^k6?X|yj@7TbT2jt9synb4y52F(= zTk3l>##=@5R;ST#=;b{M;l^!8`&3<@wlk?4byjU!ioDoCr$wP3my8vr-3!!wM@8jO zEHCFjx)*G{e90xxLip>w>5LT@zG#Ki%lJoI3K*=+?C%Vhw^bMfxN82Vtz0*y3FH$( zLb;xuZ=RH6sHIwOB0imQ5l9F%wo{XOc|JK_6qqhU*5UZEDrCg zTr3w0&LV06`mp-fB4=PtpYSLqx)j%WGcTdGgJ9iwe}q>IjglV@IcOKB#!Ia}BMo^t zLY_|-(zA)yHElrd$*dO)D~iT^tGNfEk_FL~Nb27xe~?)mzLOmZP6v4`B(p1k1^EzQ z-fOvQc9*mEog((Y;-jRH|CBRKqqs_Kt21w}_&n8jD#{kzWGqmtp^>}OY`ZHI3TreS zUD_(XfBpt&E_ICPSgG+d@f&rD_M{K;62W{j9SDyIflM@Bpl#;l(MJ{da`#)MHB>FH&;)D7=n#yMku$Kf>V#4<&1SE z*Hd(qa&h%r@=LAC9ach_9|GZyVcv(4Pxi0KrQ3Kb8yT#G5JaZ&dyEWxV! z2;r{?Ob@^|UvzIPz(l(uBA2 zJ4O-6+ZR{~ZUm#MJV2(2-tlVk?v?Sl=CP%<%HQ{tNC|~1=JxAVkW7xjH-P{%O}{fJ zMFSa)m-QkZixn&$DQTBMckk)m=a-Jj`PgwEZ&5pC}j=SKr~86@*qXc69Ecoy*GT?;iX;FNEH)RMH%2GsQ=77xPF}1r3Ch-X`DD8 zL~D^((OZHW`*Q>m{)5hwwGB|)cUNo z9f)wBikpN|u=QJ6Jn^Bz7Fu<;`fwXR9d$6331>?qBoxo>yB;C8JA=xj)3o#tmDDn1 za-ob|E!EJoAK*H@r>1!$Qmd_NlRvk4cI^@0CRs;4lW6{hF&7M#i47J{!j!aA(K%x) zFE-NcyjU5aobF@iVn-WExYp4z<4%%3qPi^aI%<$?+I*&Gy)!A_9nao`b5xC44Bgk8 zq13-g=S!{e`wEt7gz>AM}WFtkS=qACaLbVZ*`M;yp;L8{KjlRb*g#Mrw+0 z%B~-1+l5l0*`TGXLcGhGZ}D6Cdo!iqF(Ag&o;a^_HDHxUv3jsx1+%`>KEQlc0{^8> z!}ppo*V~E|Bn(f+Ix1%MM9s`nCfl~bl?S(T+&hDZGW=@X?CoLXbLydXcW889w$eFi z+8>K#%9L=T=Hc4w+P*S{#9y zZMb)qUU+TM+GjP}e#9jn+WNTTylf<~yui+{EO$X!Mvh1t5~fZu3=ip*#pZJO_41MII2Dd_F}XTh0x-|B9Hx z#wabH^NM}!-%hcH`Rx`!@NP)m>A5_Z{w7 z&8aXmQ&$W)eiAg~ZI?RV(jeMPmR^xZ)%VpdLBo=WDxrAYR^di&OsCkk7u zN7A??q_;HGk+mA%eH?dsSOoNu`&^^zynD%Q| z!9zCY3L`7ord97g>rKkaWmh6XAD-1RN!iR*v4xk2kj|&58E-1k`mlW*!q_5uA*-CU z)hDLe)SpI%^~kaY*=JeUs3jC5p}vI#4OI<2IG|>Z-epmf5KC>QFRH5Xndy<`r4$y1 zzQ|Rg1natO(=XYG&N-N_OYI12Y)sRf6$nDUxSpK5b{ohAw4$Li2&x>u2#(smVRdud zau4^s^;pAfl#$;59ZKH%Qu;PRS6r;yQQY#hXD`yn+MXmK zw7PE-y*ELaM#}*yfnV_{<2Y33)TUY30vs#hh|hw6Xpic4&C8*SXt?;69>b5T6g%a? zFNUCPtwYO9A?Q)NWO`^U^V0xat-Ng2t{~~Gn6n@5R31hvEhGeobv0gwIQ6Dkl9@;$ z7?e9wV3bUY*Eel`i6Oox^s_lA@t71GC}KgI%I&jwZ|)w&3PDDONy2Sp77V z-z&SyFP%>jvT(|=WFq6WESnz2X#H-mwnK3v)&Kj*+bae_^tSExB8lfL7irIVTPavX z;j4!!ekL_JWzX$)%xD0elfww+JoA*y<_Xj^S$cQehnmK0xQFoagPQ$DqJX7vVCytp{?4JL16}zovrz274-i8%-bIdZyN$D&<;ze@%k3e|E zgy5=Nn84L$lOl=`Hp>2MBzPO$GI|4#Qe|Vy7ZYf6pTLI(v%Y=Szsh$t+_cKv)X1D*^?57-$cdOw8s-yaWyDY^t|B26>q~Y} zFOfG8D1eK^2L3g+P@wRFo?)Haq*m}U7t!@Qt%lePIc~=_i{MWP!BO~iG8xXj7Yu3$ zi2xgAU(E!H1&el!P8XhGh)z&&St>iW_tJAXLU9LH?CXcyy##XJHn<3`p(@SfEegat zUD2MFY-j!@XLK{?jfXWr>Ge{Zf+mgQDvS+?-D}fK2uTK)W9^dT{L_Zc8F)ctAKh*! zGUl6t9?$bK7EJhD-kIj1!^OJ5UDHxG`x%@X3LX}ys8aB zlPF~~1ianh?`~n@^HCD_YAZ;d$)~E$ z@}Ag#D)^nLipA5!anOpGrGdO^INt1NY-*W-1`u+NS2yiZYvO8s`;Q$Ve7~_2ZB<8N zW{*!LG!~w~7rWCf>Sa{=)+Z)W@1JmLv=cMN7P3+bT4t`nX^wGc3WzPX9%1 z9t&@AqMPfJ_&GB@=U&DEnw?HLw2(InF_CJEiA-y2F`vR7xooO+Ac7@mfFp1$VXOTv z`A#CPBx!_v@Bu8n4bgL@0oVx}^E2Fh1k85u2JCyfCqUZQbi!5ehQssF5`jXh(VAfl zrY$W~T@eT;IsMT&-eDo22M4B-H;n|qZpVVMVX#0_Qk9+M5Rfpm8YIufEr&Ws&Oo6D za}Efq4kHZ@qcze(rE~zD`q_CwBS>A}0xo`iA}%U3E@uro39_0;-r6CDAM#qTpkVA@ z%(2LwPtBvVhACQlu6+2`q0lnD=kN~2AKz^+%Yi@OvUKoXbHy{MV7}nY4AAPv(?fXU zc*#V}glV#cD^wcEl;0((Z`XBSV4xF5Q)O+;sEaYTOn&0*`~%Q|#&S6Tt=h)`Zo{xp z->32GtxL^crwAdW71HQ!^ZSs_7VA?a`+_G1-qBDPPe#@c8+Q-^#Z4n4M{bjMw|#qu3872oA&m_#|YL`i+DDKj;zt*N6sry*zv^8X$~@p!0Iypll@8!V{uAT z0?g*B^=PQL`~>>`=2>IGY+poE1Tt9={Oz0Y(w~h2`nO_e zL$&FRQ;<+~-Iq0UA39|*e8g!nU#d7uL@XqP>{Ht&LPU}2VI(p6E6Z|0ZN$p)g&{~m z)v`8gd1LBLkNlIs2mNRhgE+)jqyEmxAcjoFoRO8T{*uYxQhamLLelTI(@5@% z2?Im)=cAOk+SNqee+4Qm24};ePKBkb^G>}EY23u`k6iUoN8U;)jqA+kit zBu6d}j)CF*o3{&Y>v~&6svU6Q%X~@_(QzJ{G~f`D`F6pVCJ^#otuSJ;vj+Etm7e#(^lc*9Hxts33SUEMWw-^pX$ z_z8nV5Q)m^E2<4s{c%vTqsZBL+^DHO(2twy?lTx^)!;@p^351IiYMqDdDc;+ghjJY zV$?i@(9P$}6gWAjmF<0<1<)%puv)iVTbPCYf=`KJl}oq;G#{K#R3FC-|Kv#7L_Ez! zo_+I9zoF+@2aoxq0Q)!s49cR<0E4gfof1+@Z3@epkXR<+VDHM&y0yeoF2Zpu0Y;l{ z-uG2vD4C_HAZ<0AMBwx3&i5gNTYrS;W+O}CXc7HQ3sMzHQBjI4Ssgocm`YVe_MDus zklU^z9dd5dA!Mec_8%C3-oU(eX`#F1{%Iy~OGU7h3OuYuWI-0(_Lf4n%|wtl1w7S` zD&HxmZOM%XT-V5#uvJOR=Aco;p@Axqk``UXA${J4ukTi--3m>;b6V|Wm)O#0eoq@4 z<3g=A7wt0#jE{VqAKLfeQKITx3xejV_#840$l91xzPurFR>~P^V`tf@T_Im#0+!-`J&PUYuVg3GI?1taSqm7Wo4d6sU zT5%Y_TCaU}g&tG%nooFOE$}d7T9EaP8%T`!$JDGO^Awez7()lH)ejK91msOh7`(P*MA;qxK=i90Zj0eH&)@$k7276tS;9s8lpO+#hyzjXkcqc60#pd%Tz#PGU zKj1VU@t~DJYwl=ZmHf0XnoY%SDu}j3dq;ZCnxz2N0r4)w>c?%Db{cXlQA1PTE;FGpZOru ze82Sc1h1g@kMC6LbE7W~yMc9^`QYz6da%M!j7mnsxyoi=qNuqAWUjEGf8i zTyuee$O-!akbJa+S^wnEA1zjNVj4wKtFS2RdwBU*y%_6iKtp0)gPc znvtS&AaIaZzuJ$u7oRM7AYc3;EN5Tr%S(@WjQeAJUll!#*z~$1&flqQY*0e{noI7M zigDnV9)i>rNAUT)uLZC|Rhg|!?X_mdZ)H_OS3qX>i%@{nt-z`Lh8DS;az6i$G$~nu zndPt-c?_vbqMz`=Ixe@JYe6d$9?*~>*LOX933_Bf)iTigTM)#F2$jO_dW(d((I+rS zRAZ#5t!mY%!P7g7@qP1?ABL*DfX(X;Y>{>Kc7z1kIxla;Mb9=RWQq-8Qqz5xNA9Kxn}CH> z!OueK_0o*xF{d_M26%HnNzPs|>JNFcc)gkeUp;k2E0LgkY}b=Z&%HQpi2(I^xCP-y zeGQO;aJ&66&f79nHqFDVrBHxDf?w?g{A+7I?&!|Edg~+UTpj#_%#`1+qdf-*iMI?f z=8$E`^eDzOzE3wa!NO~|)eOD%()^-0ET7DxAPR;S2NfhC_C1PWYM)Vt&=wRz9?`WV5-Jet6lUYN$i5 zVjKY2RatbcM^T?s2DJz|i{BDY?O)`SC6Y@5E^55zA){}6ObRvdH$WCkNmN}G_(iea zXC9wW6!>xny%7!|iqL!qGLSeHyCggWPv(q^NP_bCT5`^X!J`hnV-R&-#EpyxrG~;B z3K$^-A7*qc0v~?{F(@Fw5S^uNDE~sR4+^ft658fp3;i`x)LrPM#!ev|(<*y;X$v^3 zdkrJYjfaQY^T7vBl#eoMFZHAZqKdK=g~7a+wA_ma;;%Qb?VW9eKTN<)99w`tJ&%C>KXlMuq9fav4U|LcAR8 z^#KOMze6Rzh(U5;Y3(lpWRCk+Qc!I~jl<;O)INIdUzUh(X5EdJwxzEN@P`zMk4zba zHB}Oh&5=3KP@L2Y+gNL1>62mKt|Lj?Zf|+*2+qXJBg+qoM$hG!1NlD9EBj7@Htgb_P;)lT^G;SJ+S?y?%+jM1q?FpC& zCA}qzH^p)?{iWc^4aHT(xq{j}gaw`{8q;FD$U>X)jW!IA0#(c&aJXKyG^@T{PAWhq zg7_a;-9Z0IyyA*nu0fi#1T&sAR_y&W0fJ^wGA;3KmcK$t3aYp2Qhzu1Fk;GErN4i3 zxi@9c3jeDyya_t~`ywfEVg-8YzZz<kh zz~jnFE9R`!=!MHxi9%1K-@37Pf#3K8zmP#a10Gh1lXh)6CH>%E19UFvp)VMg-O;-P z$0hs(yF{$@xt?Z(v#N>l?M65$sXTqSOds6y9R8SWHIa?feKXd$GQ2^p4`wv|dwN91 z+OTgpml6)xx5VEmJ47NZt?cvK4kzWOC@rn5IzFa4pJ`@&H9u_fIw6>hR@DlHMagUNwLwR+urL$jPy+pE=DUz-~{af`8{o^tj61nGjVq1Z2;BpkgfglLpU-0 zzeM#WBlYJ%Bfz*Ok7fEL`fX&|$0KsS>~DWZeVFDTJf=L8kUVx`)?xPy^Rk3*9lY2D z)#rWh`NFMt2WCxuTc#RxaYtd%eRKE41s!%agisBi8TtsmzAr8^wfyPPyYXl$tQjQn zN<-01t%vbWmlY;gS&ZW;tdnluH!ZyOM7X5a=lBP?t?PhRdVJ)*$8WhQy@1fV0?Pz) zTcM%Z*?4v3fCIUvSFcsNl!ZGqnC|+9T8Jlm1M1Mn8!aU4N#jh>P$ZAS90u%Elrv*>!(5c z9Ffy+Co2-Ye!Tq)bGTi5k>|q7*=>0xA)}|mXs*S#-0)2I3wiJ5@i>1_D3H|WK86#V z{Cb=oi1DjrTn_RfkU8p=_P<;*0)^vMvJHve=()oSlGi&@rMLrg$4VtsP6h4^&xVfg zKNu^+U1=$Il#*rnb>YUGA39Wa;Cv`{&v#MhVWxl?ebnL~3ZOXs4x=r&hHJIgTLdNONxK%&B--WE-l&r;iHSx(0QhVt+XG8`7FNqbUWA6FDABJUn z@n-C5n-&Cz?)EkG1!uG2Yzn)#M5_kO-5?Q+(U)_)Oz^Fx_k25n2Ubi`a#arqt-#Xn z8RH}c?f^KzuHPK-4hS^RvSBK>2mC8LMZozju1KZK!be(-mou8o3qaVM=v2=Zrh2!F z)tNhzF=QEbW2~#^c(ZGp4M3Tv^s1T0`_t&{4a?4BF5xfAG8NE^<=s7K?~d)%$eTS~ zL+&qi<7ct=xS%X{EL0zTPysY33zIKB1)wh&b z(mixRpQHGbR3| zJ}FoU{KtXJ3V zz0DxVoOL8jdJ%Avhq3I5^IC#Q^4hkt$2|=oi8EM(ff2h6hPAThE0=_ku{jb>e6xop zpbW{IyO;AA2~;X0K?))XpDQTo^$*bGtZ6TYwe@of=@=t}`H>dW8Y=N@duXNB7H#28 zgLR_pzBn`<5=(Qg3@{C5l`!)Vsq2YvhH1r)i@v{GG0J(HS>(@Z%X+2Fc9us`Ecy|J ziD2953Gs+P`SEL~pbz7a#}K6~#jf}1I~S^xX2H`r>#{xT>gT^S!7V;) z)C&1Ze^%+1B=R%%F60=RP7<-IN}+Y)RC6>CJ1oA(j?Yy;y!It5c}~ai;p^SZ=c#KZ zwXB(fgBXdgqVZw*Cqew3s$rEZ4Hi*XpDsUoFd!rSLOl0N^6ymAddUf4KdP(wo{pI1 zJ@EO}I`mi{TsZ0& zSa#0->d1SOGpjJrBz;LC2Fq4R41XT!CE-ns{O*fo|D!KfU%{*9iSoP)T$jgQ&JTx9 z3dEmd#E0pK|*SiJ%ff3O|yAN?qB&?oKhH!AFI()K&<_u z@ffa|NGqS2rWfo2eifjd(0aUiqx*q}{kaeq*$*gqw}=ESj4)5PX3XkC!BYB(%)0>H zHOwm4_tgWx%eL*#l~|E6#FX-C zy1l#YafkuB5!kvNehv$(DhIppES!`UyE9CZYi9VN=xG)8uXXSVgnB!9_j@~_VhnCg z9jg#W%xPt2p_w48>LmVNYPl)vbFQxf7LXFFpmS^oO<0~)izH*3r_X=j zGEAkW03LLTTX^c`a#kWXrz{fryvbAP!$escr&uC_6L-eEb(mgED0ywnqCiPc1^!)Q zre6&i!AxaSbP)>yMl3y zonW!=LPhLniTLD!Pszv^swo$QW$Qpob)>T;eC1;1 z(3+Qbkq2>vPMMg4hj-ue>;y{HDGLrb5YctrOl=iem~Jw5h~bjv7L=`lS{V*?YXm=U z$Bor4&jTT)2;O|KBt8_N_Dtko&!v9>gp|soJ@o8XMf1SFjmsl9C$#_cPRvdIFS-KH ZuZI($lVd_YTNr5jD6J$_DPa`&KLGY=xS0R| literal 138183 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 Ig5~@F3m9bKfB*mh diff --git a/examples/advanced/finance-end-to-end/images/split_data.png b/examples/advanced/finance-end-to-end/images/split_data.png index b0d739bfc4562fa77efae7b76eb10a5d7cd76d78..b717a6cb5d4f8e6596e498dabb2ac6bdf6c54a2f 100644 GIT binary patch literal 73583 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%0A5oO0 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\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
TimeAmountClassSender_BICReceiver_BICUETRCurrencyBeneficiary_BICCurrency_Country
00.0149.620FBSFCHZHWPUWDEFFV4ID8QTCIROHAP683AOX78AUDZNZZAU3MAustralia
10.02.690ZHSZUS33YSYCESMMR7PCTKF9R1PVGXRXU9AB3JAUDZNZZAU3MAustralia
2100.0378.660HCBHSGSGFBSFCHZHRP1SBN0Q5U58XBS8LQNE0JUSDZHSZUS33United States
3100.0123.500YXRXGB22YMNYFRPPMAPFA8RU98VZP4MD6VFN1JUSDZHSZUS33United States
4200.069.990XITXUS33FBSFCHZH3WX5XAGWK7F3CXRX6RZZK3USDZHSZUS33United States
..............................
113922369116200.00.770XITXUS33SHSHKHH1BEEX2F5NEHDU3YV8G17005GBPYXRXGB22United Kingdom
113922469116300.024.790ZHSZUS33ZHSZUS339SJQ6WVX8CGS0P1DYYGQ45GBPYXRXGB22United Kingdom
113922569116400.067.880YXRXGB22WPUWDEFFCGUZH7AV1YPIQCLCQMAWV6AUDZNZZAU3MAustralia
113922669116400.010.000WPUWDEFFWPUWDEFF9FZFL7WK3AA7K5C0Q6X5W3SGDHCBHSGSGSingapore
113922769116800.0217.000YMNYFRPPYSYCESMMAGKF0NGK83CJQTT5CU36PAAUDZNZZAU3MAustralia
\n", - "

1139228 rows × 9 columns

\n", - "" - ], - "text/plain": [ - " Time Amount Class Sender_BIC Receiver_BIC \\\n", - "0 0.0 149.62 0 FBSFCHZH WPUWDEFF \n", - "1 0.0 2.69 0 ZHSZUS33 YSYCESMM \n", - "2 100.0 378.66 0 HCBHSGSG FBSFCHZH \n", - "3 100.0 123.50 0 YXRXGB22 YMNYFRPP \n", - "4 200.0 69.99 0 XITXUS33 FBSFCHZH \n", - "... ... ... ... ... ... \n", - "1139223 69116200.0 0.77 0 XITXUS33 SHSHKHH1 \n", - "1139224 69116300.0 24.79 0 ZHSZUS33 ZHSZUS33 \n", - "1139225 69116400.0 67.88 0 YXRXGB22 WPUWDEFF \n", - "1139226 69116400.0 10.00 0 WPUWDEFF WPUWDEFF \n", - "1139227 69116800.0 217.00 0 YMNYFRPP YSYCESMM \n", - "\n", - " UETR Currency Beneficiary_BIC Currency_Country \n", - "0 V4ID8QTCIROHAP683AOX78 AUD ZNZZAU3M Australia \n", - "1 R7PCTKF9R1PVGXRXU9AB3J AUD ZNZZAU3M Australia \n", - "2 RP1SBN0Q5U58XBS8LQNE0J USD ZHSZUS33 United States \n", - "3 MAPFA8RU98VZP4MD6VFN1J USD ZHSZUS33 United States \n", - "4 3WX5XAGWK7F3CXRX6RZZK3 USD ZHSZUS33 United States \n", - "... ... ... ... ... \n", - "1139223 BEEX2F5NEHDU3YV8G17005 GBP YXRXGB22 United Kingdom \n", - "1139224 9SJQ6WVX8CGS0P1DYYGQ45 GBP YXRXGB22 United Kingdom \n", - "1139225 CGUZH7AV1YPIQCLCQMAWV6 AUD ZNZZAU3M Australia \n", - "1139226 9FZFL7WK3AA7K5C0Q6X5W3 SGD HCBHSGSG Singapore \n", - "1139227 AGKF0NGK83CJQTT5CU36PA AUD ZNZZAU3M Australia \n", - "\n", - "[1139228 rows x 9 columns]" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df" ] @@ -431,28 +209,16 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "47961d9f-c0fb-47fc-b901-5512be98ebf0", "metadata": { "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Historical DataFrame size: 626575\n", - "Training DataFrame size: 398729\n", - "Testing DataFrame size: 113924\n" - ] - } - ], + "outputs": [], "source": [ - "\n", "# Sort the DataFrame by the Time column\n", "df = df.sort_values(by='Time').reset_index(drop=True)\n", "\n", - "\n", "# Calculate the number of samples for each split\n", "total_size = len(df)\n", "historical_size = int(total_size * 0.55)\n", @@ -475,14 +241,12 @@ "# Display sizes of each dataset\n", "print(f\"Historical DataFrame size: {len(df_history)}\")\n", "print(f\"Training DataFrame size: {len(df_train)}\")\n", - "print(f\"Testing DataFrame size: {len(df_test)}\")\n", - "\n", - "\n" + "print(f\"Testing DataFrame size: {len(df_test)}\")" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "785c6028-e792-450b-a294-a6460b03fd9f", "metadata": { "tags": [] @@ -499,23 +263,12 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "8cb273b7-4273-414b-9ef9-0da9f7d3e839", "metadata": { "tags": [] }, - "outputs": [ - { - "data": { - "text/plain": [ - "'/tmp/dataset/horizontal_credit_fraud_data'" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "out_folder" ] @@ -529,7 +282,7 @@ }, "outputs": [], "source": [ - "!ls -al {out_folder}\n" + "!ls -al {out_folder}" ] }, { @@ -551,8 +304,7 @@ "source": [ "## Split Data for differnt Client sites\n", "\n", - "Now, split train, test, history data evenly for n = 2 training sites (Clients)\n", - "\n" + "Now, split train, test, history data according to Sender_BICs" ] }, { @@ -564,7 +316,6 @@ }, "outputs": [], "source": [ - "\n", "files = [\"history\", \"train\", \"test\"]\n", "client_names = set()\n", "\n", @@ -585,11 +336,7 @@ " group.to_csv(filename, index=False)\n", " print(f\"Saved {name} {f} transactions to {filename}\")\n", "\n", - "print(client_names)\n", - " \n", - "\n", - "\n", - " \n" + "print(client_names)" ] }, { @@ -628,63 +375,10 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "1c2c1e5e-8d95-4bc0-97bc-25e15e878433", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[01;34m/tmp/dataset/horizontal_credit_fraud_data/\u001b[0m\n", - "├── \u001b[01;34mFBSFCHZH_Bank_6\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── \u001b[01;34mHCBHSGSG_Bank_9\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── history.csv\n", - "├── \u001b[01;34mSHSHKHH1_Bank_2\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── test.csv\n", - "├── train.csv\n", - "├── \u001b[01;34mWPUWDEFF_Bank_4\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── \u001b[01;34mXITXUS33_Bank_10\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── \u001b[01;34mYMNYFRPP_Bank_5\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── \u001b[01;34mYSYCESMM_Bank_7\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── \u001b[01;34mYXRXGB22_Bank_3\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "├── \u001b[01;34mZHSZUS33_Bank_1\u001b[0m\n", - "│   ├── history.csv\n", - "│   ├── test.csv\n", - "│   └── train.csv\n", - "└── \u001b[01;34mZNZZAU3M_Bank_8\u001b[0m\n", - " ├── history.csv\n", - " ├── test.csv\n", - " └── train.csv\n", - "\n", - "10 directories, 33 files\n" - ] - } - ], + "outputs": [], "source": [ "!tree /tmp/dataset/horizontal_credit_fraud_data/" ] @@ -700,7 +394,7 @@ { "cell_type": "code", "execution_count": null, - "id": "87163fff-d4cb-485c-ba59-3582104dfcda", + "id": "e6a448c4-a7c3-4ec6-a44b-bd8d123a3200", "metadata": {}, "outputs": [], "source": [] @@ -722,7 +416,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.19" + "version": "3.8.18" } }, "nbformat": 4, diff --git a/examples/advanced/finance-end-to-end/readme.md b/examples/advanced/finance-end-to-end/readme.md index 579748f474..3f86ad5893 100644 --- a/examples/advanced/finance-end-to-end/readme.md +++ b/examples/advanced/finance-end-to-end/readme.md @@ -4,11 +4,11 @@ This example demonstrates the use of an end-to-end process for credit card fraud The original dataset is based on the [kaggle credit card fraud dataset](https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud). -To illustrate the end-to-end process, we manually duplicated the records to extend the data time span from 2 days to over 2 years. Don't focus too much on the data itself, as our primary goal is to showcase the process. +To illustrate the end-to-end process that is more realistic for financial applications, we manually duplicated the records to extend the data time span from 2 days to over 2 years, and added random transactional information. As our primary goal is to showcase the process, there is no need to focus too much on the data itself. The overall steps of the end-to-end process include the following: -## Prepare Data +## Step 1: Data Preparation In a real-world application, this step is not necessary. @@ -21,7 +21,7 @@ We illustrate this step in the notebook [prepare_data] (./prepare_data.ipynb). T ![data](images/generated_data.png) -Once we have the this synthetic data, we like to split the data into +Once we have this synthetic data, we like to split the data into * historical data ( oldest data) -- 55% * training data 35 % * test data remaining 10% @@ -32,29 +32,34 @@ Training DataFrame size: 398729 Testing DataFrame size: 113924 ``` Next we will split the data among different clients, i.e. different Sender_BICs. -For example: Sender = JPMorgan_Case, BIC =CHASUS33 -the client directory is **CHASUS33_JPMorgan_Chase** +For example: Sender = Bank_1, BIC =ZHSZUS33 +the client directory is **ZHSZUS33_Bank_1** For this site, we will have three files. ``` -5343086 Jul 29 08:31 history.csv -977888 Jul 29 08:31 test.csv -3409228 Jul 29 08:31 train.csv +/tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1/history.csv +/tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1/test.csv +/tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1/train.csv ``` ![split_data](images/split_data.png) -The python code for data generation is located at [prepare_data.py] (./prepare_data.py) -## Initial Analysis +The python code for data generation is located at [prepare_data.py](./prepare_data.py) -We choose one site data for analysis +## Step 2: Feature Analysis -### Feature Engineering +For this stage, we would like to analyze the data, understand the features, and derive secondary features that can be more useful for building the model. + +Towards this goal, there are two options: +1. **Feature Enrichment**: This process involves adding new features based on the existing data. For example, we can calculate the average transaction amount for each currency and add this as a new feature. +2. **Feature Encoding**: This process involves encoding the current features and transforming them to embedding space via machine learning models. In this example, we use federated graph neural network (GNN). + +### Step 2, Option 1: Feature Enrichment In this process, we will enrich the data and add a few new derived features to illustrate the process. -Whether this enrichment makes sense or not is not important, as you can always replace these steps with procedures that -make sense to you. +Whether such enrichment makes sense or not is task and data dependent, essentially, this process is adding hand-crafted features to the classifier inputs. +#### Single-site operation example: enrichiment Since all sites follow the same procedures, we only need to look at one site. For example, we will look at the site with -the name "CHASUS33_JPMorgan_Chase." +the name "ZHSZUS33_Bank_1." The data enrichment process involves the following steps: @@ -67,14 +72,14 @@ The resulting dataset looks like this: The resulting Dataset looks like this. ![enrich_data](images/enrichment.png) -We save the enriched data into a new csv file. +We save the enriched data into new csv files. ``` -CHASUS33_JPMorgan_Chase/train_enrichment.csv -CHASUS33_JPMorgan_Chase/test_enrichment.csv +/tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1/train_enrichment.csv +/tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1/test_enrichment.csv ``` -### Pre-processing -Once we enrich the features, we need to normalize the numerical features and perform one-hot encoding for the categorical -features. However, we will skip the categorical feature encoding in this example to avoid significantly increasing +#### Single-site operation example: additional processing +After feature enrichment, we can normalize the numerical features and perform one-hot encoding for the categorical +features. Without loss of generality, we will skip the categorical feature encoding in this example to avoid significantly increasing the file size (from 11 MB to over 2 GB). Similar to the feature enrichment process, we will consider only one site for now. The steps are straightforward: @@ -92,25 +97,17 @@ we apply the scaler transformation to the numerical features and then merge them the file is then saved to "_normalized.csv" ``` -CHASUS33_JPMorgan_Chase/train_normalized.csv -CHASUS33_JPMorgan_Chase/test_normalized.csv +/tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1/train_normalized.csv +/tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1/test_normalized.csv ``` -## Federated ETL -We can easily convert the notebook code into the python code -### Feature Enrichment +#### Federated Enrichment and Normalization for All Sites +We can easily convert the notebook code into the python code for federated execution on each site. -#### ETL Script -convert the enrichment code for one-site to the federated learning is easy -look at the [enrich.py](enrich.py) -we capture the logic of enrichment in - -```python -def enrichment(input_dir, site_name) -> dict: - # code skipped -``` -the main function will be similar to the following. +##### Client-side code +Convert the enrichment code for one-site to the federated learning, refer to [enrich.py](enrich.py) +The main execution flow is the following: ``` def main(): print("\n enrichment starts \n ") @@ -131,16 +128,11 @@ def main(): ``` change this code to Federated ETL code, we just add few lines of code -flare.init() - -etl_task = flare.receive() - -end_task = GenericTask() - -flare.send(end_task) +`flare.init()` to initialize the flare library, +`etl_task = flare.receive()` to receive the global message from NVFlare, +and `end_task = GenericTask()` `flare.send(end_task)` to send the message back to the controller. ``` - def main(): print("\n enrichment starts \n ") @@ -164,16 +156,15 @@ def main(): end_task = GenericTask() flare.send(end_task) ``` -This is the feature enrichment script. -#### ETL Job +Similar adaptation is required for the normalization code, refer to [pre_process.py](pre_process.py) for details. +##### Server-side code Federated ETL requires both server-side and client-side code. The above ETL script is the client-side code. To complete the setup, we need server-side code to configure and specify the federated job. For this purpose, we wrote the following script: [enrich_job.py](enrich.py) ``` - def main(): args = define_parser() @@ -203,67 +194,16 @@ def main(): ``` Here we define a ETLController for server, and ScriptExecutor for client side ETL script. -### Pre-process - -#### ETL Script - -Converting the pre-processing code for one site to federated learning is straightforward. -Refer to the [pre_process.py](pre_process.py) script for details. - -``` - -dataset_names = ["train", "test"] -datasets = {} - -def main(): - args = define_parser() - input_dir = args.input_dir - output_dir = args.output_dir +Similarly, we can write the normalization job code [pre_process_job.py](pre_process_job.py) for the server-side. - flare.init() - site_name = flare.get_site_name() - etl_task = flare.receive() - processed_dfs = process_dataset(input_dir, site_name) - save_normalized_files(output_dir, processed_dfs, site_name) +### Step 2, Option 2: Feature Encoding +Rather than hand-carfting the features, we can use machine learning models to encode the features. - end_task = GenericTask() - flare.send(end_task) - -``` -#### ETL Job +In this example, we use federated graph neural network (GNN) to learn and generate the feature embeddings. -This is almost identical to the Enrichment job, besides the task name - -``` -def main(): - args = define_parser() - - site_names = args.sites - work_dir = args.work_dir - job_name = args.job_name - task_script_path = args.task_script_path - task_script_args = args.task_script_args - - job = FedJob(name=job_name) - - pre_process_ctrl = ETLController(task_name="pre_process") - job.to(pre_process_ctrl, "server", id="pre_process") - - # Add clients - for site_name in site_names: - executor = ScriptExecutor(task_script_path=task_script_path, task_script_args=task_script_args) - job.to(executor, site_name, tasks=["pre_process"], gpu=0) - - if work_dir: - job.export_job(work_dir) - - if not args.config_only: - job.simulator_run(work_dir) -``` -## Federated Training of XGBoost - -Now we have enriched and normalized features, we can directly run XGBoost. -Here is the xgboost job code +## Step 3: Federated Training of XGBoost +Now we have enriched / encoded features, the last step is to run federated XGBoost over them. +Below is the xgboost job code ``` def main(): @@ -311,16 +251,10 @@ def main(): job.simulator_run(work_dir) ``` -In this code, all we need to write is ```CreditCardDataLoader```, which is XGBDataLoader, -the rest of code is handled by XGBoost Controller and Executor. - -in -``` -class CreditCardDataLoader(XGBDataLoader): -``` -we only loaded the numerical feature in this example, in your case, you might to chagne that. +In this code, all we need to write is a customized `CreditCardDataLoader`, which is XGBDataLoader, +the rest of code is handled by XGBoost Controller and Executor. For simplicity, we only loaded the numerical feature in this example. -## Running end-by-end code +## End-to-end Experiment You can run this from the command line interface (CLI) or orchestrate it using a workflow tool such as Airflow. Here, we will demonstrate how to run this from a simulator. You can always export the job configuration and run it anywhere in a real deployment. @@ -331,42 +265,35 @@ Assuming you have already downloaded the credit card dataset and the creditcard. ``` python prepare_data.py -i ./creditcard.csv -o /tmp/nvflare/xgb/credit_card ``` ->>note -> -> All Sender SICs are considered clients: they are -> * 'BARCGB22_Barclays_Bank' -> * 'BSCHESMM_Banco_Santander' -> * 'CITIUS33_Citibank' -> * 'SCBLSGSG_Standard_Chartered_Bank' -> * 'UBSWCHZH80A_UBS' -> * 'BNPAFRPP_BNP_Paribas' -> * 'CHASUS33_JPMorgan_Chase' -> * 'HSBCHKHH_HSBC' -> * 'ANZBAU3M_ANZ_Bank' -> * 'DEUTDEFF_Deutsche_Bank' +>Note: All Sender SICs are considered clients: they are +> * 'ZHSZUS33_Bank_1' +> * 'SHSHKHH1_Bank_2' +> * 'YXRXGB22_Bank_3' +> * 'WPUWDEFF_Bank_4' +> * 'YMNYFRPP_Bank_5' +> * 'FBSFCHZH_Bank_6' +> * 'YSYCESMM_Bank_7' +> * 'ZNZZAU3M_Bank_8' +> * 'HCBHSGSG_Bank_9' +> * 'XITXUS33_Bank_10' > Total 10 banks * enrich data - - ``` -python enrich_job.py -c CHASUS33_JPMorgan_Chase HSBCHKHH_HSBC DEUTDEFF_Deutsche_Bank BARCGB22_Barclays_Bank BNPAFRPP_BNP_Paribas UBSWCHZH80A_UBS BSCHESMM_Banco_Santander ANZBAU3M_ANZ_Bank SCBLSGSG_Standard_Chartered_Bank CITIUS33_Citibank -p enrich.py -a "-i /tmp/nvflare/xgb/credit_card/ -o /tmp/nvflare/xgb/credit_card/" +python enrich_job.py -c 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'FBSFCHZH_Bank_6' 'YMNYFRPP_Bank_5' 'WPUWDEFF_Bank_4' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'YSYCESMM_Bank_7' 'ZHSZUS33_Bank_1' 'HCBHSGSG_Bank_9' -p enrich.py -a "-i /tmp/nvflare/xgb/credit_card/ -o /tmp/nvflare/xgb/credit_card/" ``` * pre-process data - ``` -python pre_process_job.py -c CHASUS33_JPMorgan_Chase HSBCHKHH_HSBC DEUTDEFF_Deutsche_Bank BARCGB22_Barclays_Bank BNPAFRPP_BNP_Paribas UBSWCHZH80A_UBS BSCHESMM_Banco_Santander ANZBAU3M_ANZ_Bank SCBLSGSG_Standard_Chartered_Bank CITIUS33_Citibank -p pre_process.py -a "-i /tmp/nvflare/xgb/credit_card -o /tmp/nvflare/xgb/credit_card/" - +python pre_process_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -p pre_process.py -a "-i /tmp/nvflare/xgb/credit_card -o /tmp/nvflare/xgb/credit_card/" ``` * XGBoost Job -Finally we take the normalized data and run XGboost Job - +Finally we take the resulting data and run XGBoost Job ``` -python xgb_job.py -c CHASUS33_JPMorgan_Chase HSBCHKHH_HSBC DEUTDEFF_Deutsche_Bank BARCGB22_Barclays_Bank BNPAFRPP_BNP_Paribas UBSWCHZH80A_UBS BSCHESMM_Banco_Santander ANZBAU3M_ANZ_Bank SCBLSGSG_Standard_Chartered_Bank CITIUS33_Citibank -i /tmp/nvflare/xgb/credit_card -w /tmp/nvflare/workspace/xgb/credit_card/ +python xgb_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -i /tmp/nvflare/xgb/credit_card -w /tmp/nvflare/workspace/xgb/credit_card/ ``` -Here is the output of last 9th and 10th round of training (starting round = 0) +Below is the output of last 9th and 10th round of training (starting round = 0) ``` ... diff --git a/examples/advanced/finance-end-to-end/xgboost.ipynb b/examples/advanced/finance-end-to-end/xgboost.ipynb index 0163088d21..fc37eb9b4c 100644 --- a/examples/advanced/finance-end-to-end/xgboost.ipynb +++ b/examples/advanced/finance-end-to-end/xgboost.ipynb @@ -9,9 +9,7 @@ "\n", "This notebooks shows the how do we convert and existing tabular credit data, enrich and pre-process data using one-site (like centralized dataset) and then convert this centralized process into a federated ETL steps, easily. Then construct a federated XGBoost, the only thing user need to define is the XGboost data loader. \n", "\n", - "## Install requirements\n", - "\n", - "\n" + "## Install requirements\n" ] }, { @@ -33,9 +31,10 @@ "tags": [] }, "source": [ - "## Data Prepare Data \n", + "## Step 1: Data Preparation \n", + "First, we prepare the data by adding random transactional information to the base creditcard dataset following the below script:\n", "\n", - "* [prepare data](./prepare_data.ipynb)\n" + "* [prepare data](./prepare_data.ipynb)" ] }, { @@ -43,31 +42,16 @@ "id": "f69c008a-b19b-4c1a-b3c4-c376eccf53ba", "metadata": {}, "source": [ - "## Feature Enrichment\n", + "## Step 2, Option 1: Feature Enrichment\n", "\n", - "We can first examine how the feature enrichment is processed using just one-site. \n", + "### Single-site Enrichment and Additional Processing\n", + "The detailed feature enrichment step is illustrated using one site as example: \n", "\n", "* [feature_enrichments with-one-site](./feature_enrichment.ipynb)\n", "\n", - "in order to run feature job on each site similar to above feature enrichment steps, we wrote an enrichment ETL job.\n", - "\n", - "[enrichment script](./enrich.py)\n", - "\n", - "Define a job to trigger running enrichnment script on each site: \n", - "\n", - "[enrich_job.py](./enrich_job.py)\n", - "\n", - "```\n", - "# Define the enrich_ctrl workflow and send to server\n", - " enrich_ctrl = ETLController(task_name=\"enrich\")\n", - " job.to(enrich_ctrl, \"server\", id=\"enrich\")\n", - "\n", - " # Add clients\n", - " for site_name in site_names:\n", - " executor = ScriptExecutor(task_script_path=task_script_path, task_script_args=task_script_args)\n", - " job.to(executor, site_name, tasks=[\"enrich\"], gpu=0)\n", - "```\n", + "Similarly, we examine the additional pre-processing step using one site: \n", "\n", + "* [pre-processing with one-site](./pre_process.ipynb)\n", "\n" ] }, @@ -76,31 +60,39 @@ "id": "8bc8bb99-a253-415e-8953-91af62ef22a2", "metadata": {}, "source": [ - "## Pre-Processing \n", - "\n", - "We exam examine the steps for pre-processing using only one-site (one client) \n", - "\n", - "* [pre-processing with one-site](./pre_process.ipynb)\n", - "\n", - "Based on one-site, we create the pre-processing script\n", + "### Federated Job to Perform on All Sites\n", + "In order to run feature enrichment and processing job on each site similar to above steps, we wrote federated ETL job scripts for client-side based on single-site implementations.\n", "\n", + "* [enrichment script](./enrich.py)\n", "* [pre-processing script](./pre_process.py) \n", "\n", - "then we define the pre-processing job to coordinate the pre-processing for all sites\n", + "Then we define job scripts on server-side to trigger and coordinate running client-side scripts on each site: \n", "\n", + "* [enrich_job.py](./enrich_job.py)\n", "* [pre-processing-job](./pre_process_job.py)\n", "\n", + "Example script as below:\n", "```\n", - " pre_process_ctrl = ETLController(task_name=\"pre_process\")\n", - " job.to(pre_process_ctrl, \"server\", id=\"pre_process\")\n", + "# Define the enrich_ctrl workflow and send to server\n", + " enrich_ctrl = ETLController(task_name=\"enrich\")\n", + " job.to(enrich_ctrl, \"server\", id=\"enrich\")\n", "\n", " # Add clients\n", " for site_name in site_names:\n", " executor = ScriptExecutor(task_script_path=task_script_path, task_script_args=task_script_args)\n", - " job.to(executor, site_name, tasks=[\"pre_process\"], gpu=0)\n", + " job.to(executor, site_name, tasks=[\"enrich\"], gpu=0)\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "8068c808-fce8-4f27-b0cf-76b486a24903", + "metadata": {}, + "source": [ + "## Step 2, Option 2: Feature Encoding\n", + "Rather than hand-crafting the derived features as Option 1, we can also use machine learning models to encode the features.\n", "\n", - "```\n", - " Similarly to the ETL job, we simply issue a task to trigger pre-process running pre-process script. " + "In this example, we use federated graph neural network (GNN) to learn and generate the feature embeddings.\n" ] }, { @@ -110,39 +102,15 @@ "tags": [] }, "source": [ + "## Step 3: Federated XGBoost \n", "\n", - " def load_data(self, client_id: str, split_mode: int) -> Tuple[xgb.DMatrix, xgb.DMatrix]:\n", - " data = {}\n", - " for ds_name in self.dataset_names:\n", - " print(\"\\nloading for site = \", client_id, f\"{ds_name} dataset \\n\")\n", - " file_name = os.path.join(self.root_dir, client_id, self.base_file_names[ds_name])\n", - " df = pd.read_csv(file_name)\n", - " data_num = len(data)\n", - "\n", - " # split to feature and label\n", - " y = df[\"Class\"]\n", - " x = df[self.numerical_columns]\n", - " data[ds_name] = (x, y, data_num)\n", - "\n", - "\n", - " # training\n", - " x_train, y_train, total_train_data_num = data[\"train\"]\n", - " data_split_mode = DataSplitMode(split_mode)\n", - " dmat_train = xgb.DMatrix(x_train, label=y_train, data_split_mode=data_split_mode)\n", + "Now that we have the data ready, either enriched and normalized features, or GNN feature embeddings, we can fit them with XGBoost. NVIDIA FLARE has already has written XGBoost Controller and Executor for the job. All we need to provide is the data loader to fit into the XGBoost.\n", "\n", - " # validation\n", - " x_valid, y_valid, total_valid_data_num = data[\"test\"]\n", - " dmat_valid = xgb.DMatrix(x_valid, label=y_valid, data_split_mode=data_split_mode)\n", - "\n", - " return dmat_train, dmat_valid\n", - "## Define XGBoost Job \n", - "\n", - "Now that we have the data ready, We can fit the data into XGBoost. NVIDIA FLARE has already has written XGBoost Controller and Executor for the job. All we need to provide is the data loader to fit into the XGBoost\n", - "To specify the controller and executor, we need to define a Job. You can find the job construction can be find in\n", + "To specify the controller and executor, we need to define a Job. You can find the job construction in\n", "\n", "* [xgb_job.py](./xgb_job.py). \n", "\n", - "Here is main part of the code\n", + "Below is main part of the code\n", "\n", "```\n", " controller = XGBFedController(\n", @@ -170,8 +138,6 @@ "Notice we assign defined a [```CreditCardDataLoader```](./xgb_data_loader.py), this a XGBLoader we defined to load the credit card dataset. \n", "\n", "```\n", - "\n", - "\n", "import os\n", "from typing import Optional, Tuple\n", "\n", @@ -227,8 +193,6 @@ " dmat_valid = xgb.DMatrix(x_valid, label=y_valid, data_split_mode=data_split_mode)\n", "\n", " return dmat_train, dmat_valid\n", - "\n", - "\n", "```\n", "\n", "We are now ready to run all the code" @@ -239,12 +203,11 @@ "id": "036417d1-ad58-4835-b59b-fae94aafded3", "metadata": {}, "source": [ - "## Run all the Jobs\n", + "## Run All the Jobs End-to-end\n", "Here we are going to run each job in sequence. For real-world use case,\n", "\n", "* prepare data is not needed, as you already have the data\n", - "* feature enrichment scripts need to be define based on your own enrichment rules\n", - "* pre-processing, you also need to change the pre-process script to define normalization and categorical encodeing\n", + "* feature enrichment / encoding scripts need to be defined based on your own technique\n", "* for XGBoost Job, you will need to write your own data loader \n", "\n", "Note: All Sender SICs are considered clients: they are \n", @@ -259,6 +222,7 @@ "* 'HCBHSGSG_Bank_9'\n", "* 'XITXUS33_Bank_10' \n", "Total 10 banks\n", + "\n", "### Prepare Data" ] }, @@ -343,7 +307,7 @@ "source": [ "## Prepare Job for POC and Production\n", "\n", - "This seems to work well with Job running in simulator. Now we are ready to run in a POC mode, so we can simulate the deployment in localhost or simply deploy to production. \n", + "With job running well in simulator, we are ready to run in a POC mode, so we can simulate the deployment in localhost or simply deploy to production. \n", "\n", "All we need is the job definition. we can use job.export_job() method to generate the job configuration and export to given directory. For example, in xgb_job.py, we have the following\n", "\n", @@ -459,7 +423,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.19" + "version": "3.8.18" } }, "nbformat": 4, From 1351a2d3a4b3becfb1403629a54f21f5abb51416 Mon Sep 17 00:00:00 2001 From: Ziyue Xu Date: Mon, 30 Sep 2024 09:51:27 -0400 Subject: [PATCH 2/8] Reorganize folder structure and initial gnn --- .../{readme.md => README.md} | 36 +++- .../{images => figures}/enrichment.png | Bin .../{images => figures}/generated_data.png | Bin .../{images => figures}/split_data.png | Bin .../{pre_process.py => graph_construct.py} | 0 .../{ => notebooks}/feature_enrichment.ipynb | 10 +- .../notebooks/graph_construct.ipynb | 190 ++++++++++++++++++ .../{ => notebooks}/pre_process.ipynb | 10 +- .../{ => notebooks}/prepare_data.ipynb | 4 +- .../{ => nvflare}/enrich.py | 0 .../{ => nvflare}/enrich_job.py | 0 .../finance-end-to-end/nvflare/pre_process.py | 140 +++++++++++++ .../{ => nvflare}/pre_process_job.py | 0 .../{ => nvflare}/xgb_data_loader.py | 0 .../{ => nvflare}/xgb_job.py | 0 .../{ => utils}/prepare_data.py | 0 .../advanced/finance-end-to-end/xgboost.ipynb | 45 +++-- 17 files changed, 403 insertions(+), 32 deletions(-) rename examples/advanced/finance-end-to-end/{readme.md => README.md} (90%) rename examples/advanced/finance-end-to-end/{images => figures}/enrichment.png (100%) rename examples/advanced/finance-end-to-end/{images => figures}/generated_data.png (100%) rename examples/advanced/finance-end-to-end/{images => figures}/split_data.png (100%) rename examples/advanced/finance-end-to-end/{pre_process.py => graph_construct.py} (100%) rename examples/advanced/finance-end-to-end/{ => notebooks}/feature_enrichment.ipynb (97%) create mode 100644 examples/advanced/finance-end-to-end/notebooks/graph_construct.ipynb rename examples/advanced/finance-end-to-end/{ => notebooks}/pre_process.ipynb (96%) rename examples/advanced/finance-end-to-end/{ => notebooks}/prepare_data.ipynb (99%) rename examples/advanced/finance-end-to-end/{ => nvflare}/enrich.py (100%) rename examples/advanced/finance-end-to-end/{ => nvflare}/enrich_job.py (100%) create mode 100644 examples/advanced/finance-end-to-end/nvflare/pre_process.py rename examples/advanced/finance-end-to-end/{ => nvflare}/pre_process_job.py (100%) rename examples/advanced/finance-end-to-end/{ => nvflare}/xgb_data_loader.py (100%) rename examples/advanced/finance-end-to-end/{ => nvflare}/xgb_job.py (100%) rename examples/advanced/finance-end-to-end/{ => utils}/prepare_data.py (100%) diff --git a/examples/advanced/finance-end-to-end/readme.md b/examples/advanced/finance-end-to-end/README.md similarity index 90% rename from examples/advanced/finance-end-to-end/readme.md rename to examples/advanced/finance-end-to-end/README.md index 3f86ad5893..4ee0d96556 100644 --- a/examples/advanced/finance-end-to-end/readme.md +++ b/examples/advanced/finance-end-to-end/README.md @@ -19,7 +19,7 @@ thus serving as one site (client) for federated learning. We illustrate this step in the notebook [prepare_data] (./prepare_data.ipynb). The resulting dataset looks like the following: -![data](images/generated_data.png) +![data](./figures/generated_data.png) Once we have this synthetic data, we like to split the data into * historical data ( oldest data) -- 55% @@ -41,9 +41,9 @@ For this site, we will have three files. /tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1/test.csv /tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1/train.csv ``` -![split_data](images/split_data.png) +![split_data](./figures/split_data.png) -The python code for data generation is located at [prepare_data.py](./prepare_data.py) +The python code for data generation is located at [prepare_data.py](./utils/prepare_data.py) ## Step 2: Feature Analysis @@ -70,7 +70,7 @@ The data enrichment process involves the following steps: The resulting dataset looks like this: The resulting Dataset looks like this. -![enrich_data](images/enrichment.png) +![enrich_data](./figures/enrichment.png) We save the enriched data into new csv files. ``` @@ -105,7 +105,7 @@ the file is then saved to "_normalized.csv" We can easily convert the notebook code into the python code for federated execution on each site. ##### Client-side code -Convert the enrichment code for one-site to the federated learning, refer to [enrich.py](enrich.py) +Convert the enrichment code for one-site to the federated learning, refer to [enrich.py](./nvflare/enrich.py) The main execution flow is the following: ``` @@ -157,12 +157,12 @@ def main(): flare.send(end_task) ``` -Similar adaptation is required for the normalization code, refer to [pre_process.py](pre_process.py) for details. +Similar adaptation is required for the normalization code, refer to [pre_process.py](./nvflare/pre_process.py) for details. ##### Server-side code Federated ETL requires both server-side and client-side code. The above ETL script is the client-side code. To complete the setup, we need server-side code to configure and specify the federated job. -For this purpose, we wrote the following script: [enrich_job.py](enrich.py) +For this purpose, we wrote the following script: [enrich_job.py](./nvflare/enrich_job.py) ``` def main(): @@ -194,12 +194,20 @@ def main(): ``` Here we define a ETLController for server, and ScriptExecutor for client side ETL script. -Similarly, we can write the normalization job code [pre_process_job.py](pre_process_job.py) for the server-side. +Similarly, we can write the normalization job code [pre_process_job.py](./nvflare/pre_process_job.py) for the server-side. ### Step 2, Option 2: Feature Encoding -Rather than hand-carfting the features, we can use machine learning models to encode the features. +Rather than hand-crafting the derived features as Option 1, we can use machine learning models to encode the features. In this example, we use federated graph neural network (GNN) to learn and generate the feature embeddings. +We construct a graph based on the transaction data. Each node represents a transaction, and the edges represent the relationships between transactions. We then use the GNN to learn the embeddings of the nodes, which represent the transaction features. + +#### Single-site operation example: graph construction +Since each site consists of the same Sender_BIC, to define the graph edge, we use the following rules: +1. The two transactions are with the same Receiver_BIC. +2. The two transactions are with the same Currency. +3. The two transactions time difference are smaller than 6000. + + -In this example, we use federated graph neural network (GNN) to learn and generate the feature embeddings. ## Step 3: Federated Training of XGBoost Now we have enriched / encoded features, the last step is to run federated XGBoost over them. @@ -263,7 +271,7 @@ Assuming you have already downloaded the credit card dataset and the creditcard. * prepare data ``` -python prepare_data.py -i ./creditcard.csv -o /tmp/nvflare/xgb/credit_card +python ./utils/prepare_data.py -i ./creditcard.csv -o /tmp/nvflare/xgb/credit_card ``` >Note: All Sender SICs are considered clients: they are > * 'ZHSZUS33_Bank_1' @@ -280,18 +288,24 @@ python prepare_data.py -i ./creditcard.csv -o /tmp/nvflare/xgb/credit_card * enrich data ``` +cd nvflare python enrich_job.py -c 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'FBSFCHZH_Bank_6' 'YMNYFRPP_Bank_5' 'WPUWDEFF_Bank_4' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'YSYCESMM_Bank_7' 'ZHSZUS33_Bank_1' 'HCBHSGSG_Bank_9' -p enrich.py -a "-i /tmp/nvflare/xgb/credit_card/ -o /tmp/nvflare/xgb/credit_card/" +cd .. ``` * pre-process data ``` +cd nvflare python pre_process_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -p pre_process.py -a "-i /tmp/nvflare/xgb/credit_card -o /tmp/nvflare/xgb/credit_card/" +cd .. ``` * XGBoost Job Finally we take the resulting data and run XGBoost Job ``` +cd nvflare python xgb_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -i /tmp/nvflare/xgb/credit_card -w /tmp/nvflare/workspace/xgb/credit_card/ +cd .. ``` Below is the output of last 9th and 10th round of training (starting round = 0) ``` diff --git a/examples/advanced/finance-end-to-end/images/enrichment.png b/examples/advanced/finance-end-to-end/figures/enrichment.png similarity index 100% rename from examples/advanced/finance-end-to-end/images/enrichment.png rename to examples/advanced/finance-end-to-end/figures/enrichment.png diff --git a/examples/advanced/finance-end-to-end/images/generated_data.png b/examples/advanced/finance-end-to-end/figures/generated_data.png similarity index 100% rename from examples/advanced/finance-end-to-end/images/generated_data.png rename to examples/advanced/finance-end-to-end/figures/generated_data.png diff --git a/examples/advanced/finance-end-to-end/images/split_data.png b/examples/advanced/finance-end-to-end/figures/split_data.png similarity index 100% rename from examples/advanced/finance-end-to-end/images/split_data.png rename to examples/advanced/finance-end-to-end/figures/split_data.png diff --git a/examples/advanced/finance-end-to-end/pre_process.py b/examples/advanced/finance-end-to-end/graph_construct.py similarity index 100% rename from examples/advanced/finance-end-to-end/pre_process.py rename to examples/advanced/finance-end-to-end/graph_construct.py diff --git a/examples/advanced/finance-end-to-end/feature_enrichment.ipynb b/examples/advanced/finance-end-to-end/notebooks/feature_enrichment.ipynb similarity index 97% rename from examples/advanced/finance-end-to-end/feature_enrichment.ipynb rename to examples/advanced/finance-end-to-end/notebooks/feature_enrichment.ipynb index 88831a6e92..13ca766500 100644 --- a/examples/advanced/finance-end-to-end/feature_enrichment.ipynb +++ b/examples/advanced/finance-end-to-end/notebooks/feature_enrichment.ipynb @@ -283,8 +283,16 @@ "id": "f9966065-80cb-4f85-adab-8c44f01fc8d1", "metadata": {}, "source": [ - "Let's go back to the [XGBoost Notebook](./xgboost.ipynb)" + "Let's go back to the [XGBoost Notebook](../xgboost.ipynb)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d8855463-ce23-44e5-b0ad-4e05d256ba8d", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/examples/advanced/finance-end-to-end/notebooks/graph_construct.ipynb b/examples/advanced/finance-end-to-end/notebooks/graph_construct.ipynb new file mode 100644 index 0000000000..82669495a2 --- /dev/null +++ b/examples/advanced/finance-end-to-end/notebooks/graph_construct.ipynb @@ -0,0 +1,190 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3d892b5e-2f3b-4182-bedb-d332bfc3a353", + "metadata": {}, + "source": [ + "# Graph Construction Step\n", + "\n", + "* Construct the graph for each site's transaction data\n", + "\n", + "Each node represents a transaction, and the edges represent the relationships between transactions. Since each site consists of the same Sender_BIC, to define the graph edge, we use the following rules:\n", + "\n", + "1. The two transactions are with the same Receiver_BIC.\n", + "2. The two transactions are with the same Currency.\n", + "3. The two transactions time difference are smaller than 6000.\n" + ] + }, + { + "cell_type": "markdown", + "id": "b8498bf1-d368-4d15-a5bf-559eb6e3918b", + "metadata": {}, + "source": [ + "### Load Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "db9d04f0-a64d-457b-aacf-1a3737e07e12", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "site_input_dir = \"/tmp/dataset/horizontal_credit_fraud_data/\"\n", + "site_name = \"ZHSZUS33_Bank_1\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2d84f89f-fe0a-4387-92a2-49ca9143c141", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "import random\n", + "import string\n", + "\n", + "import pandas as pd\n", + "dataset_names = [\"train\", \"test\"]\n", + "datasets = {}\n", + "\n", + "for ds_name in dataset_names:\n", + " file_name = os.path.join(site_input_dir, site_name, f\"{ds_name}_enrichment.csv\" )\n", + " df = pd.read_csv(file_name)\n", + " datasets[ds_name] = df\n", + " print(df)" + ] + }, + { + "cell_type": "markdown", + "id": "b200c438-f285-4037-ad22-b496d57588ca", + "metadata": {}, + "source": [ + "### Related Columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ccdc785e-9597-4083-b74a-2cacb25b20cb", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5bd5be54-c5e7-43c7-ad4f-de29a09bc7ec", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "processed_dfs = {}\n", + "\n", + "numerical_columns = ['Timestamp', 'Class', 'Amount', 'trans_volume', 'total_amount', 'average_amount', 'hist_trans_volume',\n", + " 'hist_total_amount', 'hist_average_amount', 'x2_y1', 'x3_y2']\n", + "\n", + "for ds_name in dataset_names:\n", + " df = datasets[ds_name]\n", + " \n", + " # Convert 'Time' column to datetime\n", + " df['Time'] = pd.to_datetime(df['Time'])\n", + " # Convert datetime to Unix timestamp\n", + " df['Timestamp'] = df['Time'].astype(int) / 10**9 # convert to seconds\n", + " \n", + " # Separate numerical and categorical features\n", + " numerical_features = df[numerical_columns]\n", + " categorical_features = df[category_columns]\n", + "\n", + " # Initialize the MinMaxScaler (or StandardScaler)\n", + " scaler = MinMaxScaler()\n", + " \n", + " # Fit and transform the numerical data\n", + " numerical_normalized = pd.DataFrame(scaler.fit_transform(numerical_features), columns=numerical_features.columns)\n", + " \n", + " # Combine the normalized numerical features with the categorical features\n", + " df_combined = pd.concat([categorical_features, numerical_normalized], axis=1)\n", + " \n", + "# # one-hot encoding\n", + "# df_combined = pd.get_dummies(df_combined, columns=category_columns)\n", + "\n", + " print(\"Combined DataFrame with Normalized Numerical Features:\")\n", + " print(df_combined)\n", + " \n", + " processed_dfs[ds_name] = df_combined\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f326a613-e683-4f67-810d-aece3d90349e", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "for name in processed_dfs:\n", + " site_dir = os.path.join(site_input_dir, site_name)\n", + " os.makedirs(site_dir, exist_ok=True)\n", + " pre_processed_file_name = os.path.join(site_dir, f\"{name}_normalized.csv\")\n", + " print(pre_processed_file_name)\n", + " processed_dfs[name].to_csv(pre_processed_file_name) " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c1b8925c-6890-4a45-a9c4-f80399b463cc", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "! tree /tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1" + ] + }, + { + "cell_type": "markdown", + "id": "8591e4e1-74b1-465c-8124-eaf9829a6a8e", + "metadata": {}, + "source": [ + "Let's go back to the [XGBoost Notebook](./xgboost.ipynb)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "nvflare_example", + "language": "python", + "name": "nvflare_example" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.18" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/advanced/finance-end-to-end/pre_process.ipynb b/examples/advanced/finance-end-to-end/notebooks/pre_process.ipynb similarity index 96% rename from examples/advanced/finance-end-to-end/pre_process.ipynb rename to examples/advanced/finance-end-to-end/notebooks/pre_process.ipynb index 614c2c7634..d47167f261 100644 --- a/examples/advanced/finance-end-to-end/pre_process.ipynb +++ b/examples/advanced/finance-end-to-end/notebooks/pre_process.ipynb @@ -184,8 +184,16 @@ "id": "8591e4e1-74b1-465c-8124-eaf9829a6a8e", "metadata": {}, "source": [ - "Let's go back to the [XGBoost Notebook](./xgboost.ipynb)" + "Let's go back to the [XGBoost Notebook](../xgboost.ipynb)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "26989ac6-cedf-4c9d-8b25-60e0af758cfe", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/examples/advanced/finance-end-to-end/prepare_data.ipynb b/examples/advanced/finance-end-to-end/notebooks/prepare_data.ipynb similarity index 99% rename from examples/advanced/finance-end-to-end/prepare_data.ipynb rename to examples/advanced/finance-end-to-end/notebooks/prepare_data.ipynb index afd57770a1..76d9264ae2 100644 --- a/examples/advanced/finance-end-to-end/prepare_data.ipynb +++ b/examples/advanced/finance-end-to-end/notebooks/prepare_data.ipynb @@ -32,7 +32,7 @@ }, "outputs": [], "source": [ - "data_path=\"creditcard.csv\"\n", + "data_path=\"../creditcard.csv\"\n", "out_folder=\"/tmp/dataset/horizontal_credit_fraud_data\"\n", "\n", "import shutil\n", @@ -388,7 +388,7 @@ "id": "30661d30-7032-4bde-9fb2-ce67897a2f55", "metadata": {}, "source": [ - "Let's go back to the [XGBoost Notebook](./xgboost.ipynb)" + "Let's go back to the [XGBoost Notebook](../xgboost.ipynb)" ] }, { diff --git a/examples/advanced/finance-end-to-end/enrich.py b/examples/advanced/finance-end-to-end/nvflare/enrich.py similarity index 100% rename from examples/advanced/finance-end-to-end/enrich.py rename to examples/advanced/finance-end-to-end/nvflare/enrich.py diff --git a/examples/advanced/finance-end-to-end/enrich_job.py b/examples/advanced/finance-end-to-end/nvflare/enrich_job.py similarity index 100% rename from examples/advanced/finance-end-to-end/enrich_job.py rename to examples/advanced/finance-end-to-end/nvflare/enrich_job.py diff --git a/examples/advanced/finance-end-to-end/nvflare/pre_process.py b/examples/advanced/finance-end-to-end/nvflare/pre_process.py new file mode 100644 index 0000000000..7e6e962bf7 --- /dev/null +++ b/examples/advanced/finance-end-to-end/nvflare/pre_process.py @@ -0,0 +1,140 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import argparse +import os + +import pandas as pd +from sklearn.preprocessing import MinMaxScaler + +# (1) import nvflare client API +import nvflare.client as flare + +dataset_names = ["train", "test"] +datasets = {} + + +def main(): + print("\n pre-process starts \n ") + args = define_parser() + input_dir = args.input_dir + output_dir = args.output_dir + + flare.init() + site_name = flare.get_site_name() + + # receives global message from NVFlare + etl_task = flare.receive() + + print("\n receive task \n ") + processed_dfs = process_dataset(input_dir, site_name) + + save_normalized_files(output_dir, processed_dfs, site_name) + + print("end task") + # send message back the controller indicating end. + etl_task.meta["status"] = "done" + flare.send(etl_task) + + +def save_normalized_files(output_dir, processed_dfs, site_name): + for name in processed_dfs: + print(f"\n dataset {name=} \n ") + site_dir = os.path.join(output_dir, site_name) + os.makedirs(site_dir, exist_ok=True) + + enrich_file_name = os.path.join(site_dir, f"{name}_normalized.csv") + print("save to = ", enrich_file_name) + processed_dfs[name].to_csv(enrich_file_name) + + +def process_dataset(input_dir, site_name): + processed_dfs = {} + numerical_columns = [ + "Timestamp", + "Class", + "Amount", + "trans_volume", + "total_amount", + "average_amount", + "hist_trans_volume", + "hist_total_amount", + "hist_average_amount", + "x2_y1", + "x3_y2", + ] + category_columns = ["Currency_Country", "Beneficiary_BIC", "Currency", "UETR", "Receiver_BIC", "Sender_BIC"] + for ds_name in dataset_names: + file_name = os.path.join(input_dir, site_name, f"{ds_name}_enrichment.csv") + df = pd.read_csv(file_name) + datasets[ds_name] = df + + # Convert 'Time' column to datetime + df["Time"] = pd.to_datetime(df["Time"]) + # Convert datetime to Unix timestamp + df["Timestamp"] = df["Time"].astype(int) / 10**9 # convert to seconds + + # Separate numerical and categorical features + numerical_features = df[numerical_columns] + categorical_features = df[category_columns] + + # Initialize the MinMaxScaler (or StandardScaler) + scaler = MinMaxScaler() + + # Fit and transform the numerical data + numerical_normalized = pd.DataFrame( + scaler.fit_transform(numerical_features), columns=numerical_features.columns + ) + + # Combine the normalized numerical features with the categorical features + df_combined = pd.concat([categorical_features, numerical_normalized], axis=1) + + # one-hot encoding -- skip this step, this will increase the file size from 11M => 2.x GB + # df_combined = pd.get_dummies(df_combined, columns=category_columns) + + print("Combined DataFrame with Normalized Numerical Features:") + print(df_combined) + + processed_dfs[ds_name] = df_combined + + return processed_dfs + + +def define_parser(): + parser = argparse.ArgumentParser() + + parser.add_argument( + "-i", + "--input_dir", + type=str, + nargs="?", + default="/tmp/dataset/credit_data", + help="input directory where csv files for each site are expected, default to /tmp/dataset/credit_data", + ) + + parser.add_argument( + "-o", + "--output_dir", + type=str, + nargs="?", + default="/tmp/dataset/credit_data", + help="output directory, default to '/tmp/dataset/credit_data'", + ) + + return parser.parse_args() + + +if __name__ == "__main__": + main() diff --git a/examples/advanced/finance-end-to-end/pre_process_job.py b/examples/advanced/finance-end-to-end/nvflare/pre_process_job.py similarity index 100% rename from examples/advanced/finance-end-to-end/pre_process_job.py rename to examples/advanced/finance-end-to-end/nvflare/pre_process_job.py diff --git a/examples/advanced/finance-end-to-end/xgb_data_loader.py b/examples/advanced/finance-end-to-end/nvflare/xgb_data_loader.py similarity index 100% rename from examples/advanced/finance-end-to-end/xgb_data_loader.py rename to examples/advanced/finance-end-to-end/nvflare/xgb_data_loader.py diff --git a/examples/advanced/finance-end-to-end/xgb_job.py b/examples/advanced/finance-end-to-end/nvflare/xgb_job.py similarity index 100% rename from examples/advanced/finance-end-to-end/xgb_job.py rename to examples/advanced/finance-end-to-end/nvflare/xgb_job.py diff --git a/examples/advanced/finance-end-to-end/prepare_data.py b/examples/advanced/finance-end-to-end/utils/prepare_data.py similarity index 100% rename from examples/advanced/finance-end-to-end/prepare_data.py rename to examples/advanced/finance-end-to-end/utils/prepare_data.py diff --git a/examples/advanced/finance-end-to-end/xgboost.ipynb b/examples/advanced/finance-end-to-end/xgboost.ipynb index fc37eb9b4c..34c89f05f3 100644 --- a/examples/advanced/finance-end-to-end/xgboost.ipynb +++ b/examples/advanced/finance-end-to-end/xgboost.ipynb @@ -34,7 +34,7 @@ "## Step 1: Data Preparation \n", "First, we prepare the data by adding random transactional information to the base creditcard dataset following the below script:\n", "\n", - "* [prepare data](./prepare_data.ipynb)" + "* [prepare data](./notebooks/prepare_data.ipynb)" ] }, { @@ -47,12 +47,11 @@ "### Single-site Enrichment and Additional Processing\n", "The detailed feature enrichment step is illustrated using one site as example: \n", "\n", - "* [feature_enrichments with-one-site](./feature_enrichment.ipynb)\n", + "* [feature_enrichments with-one-site](./notebooks/feature_enrichment.ipynb)\n", "\n", "Similarly, we examine the additional pre-processing step using one site: \n", "\n", - "* [pre-processing with one-site](./pre_process.ipynb)\n", - "\n" + "* [pre-processing with one-site](./notebooks/pre_process.ipynb)\n" ] }, { @@ -63,13 +62,13 @@ "### Federated Job to Perform on All Sites\n", "In order to run feature enrichment and processing job on each site similar to above steps, we wrote federated ETL job scripts for client-side based on single-site implementations.\n", "\n", - "* [enrichment script](./enrich.py)\n", - "* [pre-processing script](./pre_process.py) \n", + "* [enrichment script](./nvflare/enrich.py)\n", + "* [pre-processing script](./nvflare/pre_process.py) \n", "\n", "Then we define job scripts on server-side to trigger and coordinate running client-side scripts on each site: \n", "\n", - "* [enrich_job.py](./enrich_job.py)\n", - "* [pre-processing-job](./pre_process_job.py)\n", + "* [enrich_job.py](./nvflare/enrich_job.py)\n", + "* [pre-processing-job](./nvflare/pre_process_job.py)\n", "\n", "Example script as below:\n", "```\n", @@ -90,9 +89,13 @@ "metadata": {}, "source": [ "## Step 2, Option 2: Feature Encoding\n", - "Rather than hand-crafting the derived features as Option 1, we can also use machine learning models to encode the features.\n", + "Rather than hand-crafting the derived features as Option 1, we can use machine learning models to encode the features. In this example, we use federated graph neural network (GNN) to learn and generate the feature embeddings.\n", + "We construct a graph based on the transaction data. Each node represents a transaction, and the edges represent the relationships between transactions. We then use the GNN to learn the embeddings of the nodes, which represent the transaction features.\n", + "\n", + "### Single-site Graph Construction\n", + "The detailed graph construction step is illustrated using one site as example: \n", "\n", - "In this example, we use federated graph neural network (GNN) to learn and generate the feature embeddings.\n" + "* [graph_construction with-one-site](./notebooks/graph_construct.ipynb)" ] }, { @@ -108,7 +111,7 @@ "\n", "To specify the controller and executor, we need to define a Job. You can find the job construction in\n", "\n", - "* [xgb_job.py](./xgb_job.py). \n", + "* [xgb_job.py](./nvflare/xgb_job.py). \n", "\n", "Below is main part of the code\n", "\n", @@ -135,7 +138,7 @@ " * test__normalized.csv\n", " \n", "\n", - "Notice we assign defined a [```CreditCardDataLoader```](./xgb_data_loader.py), this a XGBLoader we defined to load the credit card dataset. \n", + "Notice we assign defined a [```CreditCardDataLoader```](./nvflare/xgb_data_loader.py), this a XGBLoader we defined to load the credit card dataset. \n", "\n", "```\n", "import os\n", @@ -235,7 +238,7 @@ }, "outputs": [], "source": [ - "! python3 prepare_data.py -i ./creditcard.csv -o /tmp/nvflare/xgb/credit_card" + "! python3 ./utils/prepare_data.py -i ./creditcard.csv -o /tmp/nvflare/xgb/credit_card" ] }, { @@ -255,7 +258,9 @@ }, "outputs": [], "source": [ - "! python enrich_job.py -c 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'FBSFCHZH_Bank_6' 'YMNYFRPP_Bank_5' 'WPUWDEFF_Bank_4' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'YSYCESMM_Bank_7' 'ZHSZUS33_Bank_1' 'HCBHSGSG_Bank_9' -p enrich.py -a \"-i /tmp/nvflare/xgb/credit_card/ -o /tmp/nvflare/xgb/credit_card/\"\n" + "%cd nvflare\n", + "! python3 enrich_job.py -c 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'FBSFCHZH_Bank_6' 'YMNYFRPP_Bank_5' 'WPUWDEFF_Bank_4' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'YSYCESMM_Bank_7' 'ZHSZUS33_Bank_1' 'HCBHSGSG_Bank_9' -p enrich.py -a \"-i /tmp/nvflare/xgb/credit_card/ -o /tmp/nvflare/xgb/credit_card/\"\n", + "%cd .." ] }, { @@ -275,7 +280,9 @@ }, "outputs": [], "source": [ - "! python pre_process_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -p pre_process.py -a \"-i /tmp/nvflare/xgb/credit_card -o /tmp/nvflare/xgb/credit_card/\"" + "%cd nvflare\n", + "! python3 pre_process_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -p pre_process.py -a \"-i /tmp/nvflare/xgb/credit_card -o /tmp/nvflare/xgb/credit_card/\"\n", + "%cd .." ] }, { @@ -295,7 +302,9 @@ }, "outputs": [], "source": [ - "! python xgb_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -i /tmp/nvflare/xgb/credit_card -w /tmp/nvflare/workspace/xgb/credit_card/" + "%cd nvflare\n", + "! python3 xgb_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -i /tmp/nvflare/xgb/credit_card -w /tmp/nvflare/workspace/xgb/credit_card/\n", + "%cd .." ] }, { @@ -332,7 +341,9 @@ }, "outputs": [], "source": [ - "! python xgb_job.py -co -w /tmp/nvflare/workspace/xgb/credit_card/config -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -i /tmp/nvflare/xgb/credit_card " + "%cd nvflare\n", + "! python xgb_job.py -co -w /tmp/nvflare/workspace/xgb/credit_card/config -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -i /tmp/nvflare/xgb/credit_card \n", + "%cd .." ] }, { From 2a37e5b841fff3eb4222e09b4b9d8fc3e8263be6 Mon Sep 17 00:00:00 2001 From: Ziyue Xu Date: Mon, 30 Sep 2024 18:31:42 -0400 Subject: [PATCH 3/8] Complete the graph generate step with edgemap output --- .../advanced/finance-end-to-end/README.md | 11 +- .../finance-end-to-end/graph_construct.py | 140 ------------------ .../notebooks/graph_construct.ipynb | 85 +++++------ .../finance-end-to-end/nvflare/enrich_job.py | 1 - .../nvflare/graph_construct.py | 129 ++++++++++++++++ .../nvflare/graph_construct_job.py | 100 +++++++++++++ .../nvflare/pre_process_job.py | 1 + .../advanced/finance-end-to-end/xgboost.ipynb | 43 +++++- 8 files changed, 315 insertions(+), 195 deletions(-) delete mode 100644 examples/advanced/finance-end-to-end/graph_construct.py create mode 100644 examples/advanced/finance-end-to-end/nvflare/graph_construct.py create mode 100644 examples/advanced/finance-end-to-end/nvflare/graph_construct_job.py diff --git a/examples/advanced/finance-end-to-end/README.md b/examples/advanced/finance-end-to-end/README.md index 4ee0d96556..2cacccfe5a 100644 --- a/examples/advanced/finance-end-to-end/README.md +++ b/examples/advanced/finance-end-to-end/README.md @@ -53,7 +53,7 @@ Towards this goal, there are two options: 1. **Feature Enrichment**: This process involves adding new features based on the existing data. For example, we can calculate the average transaction amount for each currency and add this as a new feature. 2. **Feature Encoding**: This process involves encoding the current features and transforming them to embedding space via machine learning models. In this example, we use federated graph neural network (GNN). -### Step 2, Option 1: Feature Enrichment +### Step 2, Option 1: Rule-based Feature Enrichment In this process, we will enrich the data and add a few new derived features to illustrate the process. Whether such enrichment makes sense or not is task and data dependent, essentially, this process is adding hand-crafted features to the classifier inputs. @@ -196,7 +196,7 @@ Here we define a ETLController for server, and ScriptExecutor for client side ET Similarly, we can write the normalization job code [pre_process_job.py](./nvflare/pre_process_job.py) for the server-side. -### Step 2, Option 2: Feature Encoding +### Step 2, Option 2: GNN-based Feature Encoding Rather than hand-crafting the derived features as Option 1, we can use machine learning models to encode the features. In this example, we use federated graph neural network (GNN) to learn and generate the feature embeddings. We construct a graph based on the transaction data. Each node represents a transaction, and the edges represent the relationships between transactions. We then use the GNN to learn the embeddings of the nodes, which represent the transaction features. @@ -300,6 +300,13 @@ python pre_process_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_ cd .. ``` +* construct graph +``` +cd nvflare +python graph_construct_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -p graph_construct.py -a "-i /tmp/nvflare/xgb/credit_card -o /tmp/nvflare/xgb/credit_card/" +cd .. +``` + * XGBoost Job Finally we take the resulting data and run XGBoost Job ``` diff --git a/examples/advanced/finance-end-to-end/graph_construct.py b/examples/advanced/finance-end-to-end/graph_construct.py deleted file mode 100644 index 7e6e962bf7..0000000000 --- a/examples/advanced/finance-end-to-end/graph_construct.py +++ /dev/null @@ -1,140 +0,0 @@ -# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -import argparse -import os - -import pandas as pd -from sklearn.preprocessing import MinMaxScaler - -# (1) import nvflare client API -import nvflare.client as flare - -dataset_names = ["train", "test"] -datasets = {} - - -def main(): - print("\n pre-process starts \n ") - args = define_parser() - input_dir = args.input_dir - output_dir = args.output_dir - - flare.init() - site_name = flare.get_site_name() - - # receives global message from NVFlare - etl_task = flare.receive() - - print("\n receive task \n ") - processed_dfs = process_dataset(input_dir, site_name) - - save_normalized_files(output_dir, processed_dfs, site_name) - - print("end task") - # send message back the controller indicating end. - etl_task.meta["status"] = "done" - flare.send(etl_task) - - -def save_normalized_files(output_dir, processed_dfs, site_name): - for name in processed_dfs: - print(f"\n dataset {name=} \n ") - site_dir = os.path.join(output_dir, site_name) - os.makedirs(site_dir, exist_ok=True) - - enrich_file_name = os.path.join(site_dir, f"{name}_normalized.csv") - print("save to = ", enrich_file_name) - processed_dfs[name].to_csv(enrich_file_name) - - -def process_dataset(input_dir, site_name): - processed_dfs = {} - numerical_columns = [ - "Timestamp", - "Class", - "Amount", - "trans_volume", - "total_amount", - "average_amount", - "hist_trans_volume", - "hist_total_amount", - "hist_average_amount", - "x2_y1", - "x3_y2", - ] - category_columns = ["Currency_Country", "Beneficiary_BIC", "Currency", "UETR", "Receiver_BIC", "Sender_BIC"] - for ds_name in dataset_names: - file_name = os.path.join(input_dir, site_name, f"{ds_name}_enrichment.csv") - df = pd.read_csv(file_name) - datasets[ds_name] = df - - # Convert 'Time' column to datetime - df["Time"] = pd.to_datetime(df["Time"]) - # Convert datetime to Unix timestamp - df["Timestamp"] = df["Time"].astype(int) / 10**9 # convert to seconds - - # Separate numerical and categorical features - numerical_features = df[numerical_columns] - categorical_features = df[category_columns] - - # Initialize the MinMaxScaler (or StandardScaler) - scaler = MinMaxScaler() - - # Fit and transform the numerical data - numerical_normalized = pd.DataFrame( - scaler.fit_transform(numerical_features), columns=numerical_features.columns - ) - - # Combine the normalized numerical features with the categorical features - df_combined = pd.concat([categorical_features, numerical_normalized], axis=1) - - # one-hot encoding -- skip this step, this will increase the file size from 11M => 2.x GB - # df_combined = pd.get_dummies(df_combined, columns=category_columns) - - print("Combined DataFrame with Normalized Numerical Features:") - print(df_combined) - - processed_dfs[ds_name] = df_combined - - return processed_dfs - - -def define_parser(): - parser = argparse.ArgumentParser() - - parser.add_argument( - "-i", - "--input_dir", - type=str, - nargs="?", - default="/tmp/dataset/credit_data", - help="input directory where csv files for each site are expected, default to /tmp/dataset/credit_data", - ) - - parser.add_argument( - "-o", - "--output_dir", - type=str, - nargs="?", - default="/tmp/dataset/credit_data", - help="output directory, default to '/tmp/dataset/credit_data'", - ) - - return parser.parse_args() - - -if __name__ == "__main__": - main() diff --git a/examples/advanced/finance-end-to-end/notebooks/graph_construct.ipynb b/examples/advanced/finance-end-to-end/notebooks/graph_construct.ipynb index 82669495a2..4a45d6117d 100644 --- a/examples/advanced/finance-end-to-end/notebooks/graph_construct.ipynb +++ b/examples/advanced/finance-end-to-end/notebooks/graph_construct.ipynb @@ -12,8 +12,9 @@ "Each node represents a transaction, and the edges represent the relationships between transactions. Since each site consists of the same Sender_BIC, to define the graph edge, we use the following rules:\n", "\n", "1. The two transactions are with the same Receiver_BIC.\n", - "2. The two transactions are with the same Currency.\n", - "3. The two transactions time difference are smaller than 6000.\n" + "2. The two transactions time difference are smaller than 6000.\n", + "\n", + "Note that in real applications, such rules should be designed according to the characteristics of the candidate data." ] }, { @@ -47,28 +48,18 @@ "outputs": [], "source": [ "import os\n", - "import random\n", - "import string\n", "\n", "import pandas as pd\n", "dataset_names = [\"train\", \"test\"]\n", "datasets = {}\n", "\n", "for ds_name in dataset_names:\n", - " file_name = os.path.join(site_input_dir, site_name, f\"{ds_name}_enrichment.csv\" )\n", + " file_name = os.path.join(site_input_dir, site_name, f\"{ds_name}.csv\" )\n", " df = pd.read_csv(file_name)\n", " datasets[ds_name] = df\n", " print(df)" ] }, - { - "cell_type": "markdown", - "id": "b200c438-f285-4037-ad22-b496d57588ca", - "metadata": {}, - "source": [ - "### Related Columns" - ] - }, { "cell_type": "code", "execution_count": null, @@ -92,40 +83,35 @@ "source": [ "import pandas as pd\n", "\n", - "processed_dfs = {}\n", + "edge_maps = {}\n", "\n", - "numerical_columns = ['Timestamp', 'Class', 'Amount', 'trans_volume', 'total_amount', 'average_amount', 'hist_trans_volume',\n", - " 'hist_total_amount', 'hist_average_amount', 'x2_y1', 'x3_y2']\n", + "info_columns = ['Time', 'Receiver_BIC', 'UETR']\n", + "time_threshold = 6000\n", "\n", "for ds_name in dataset_names:\n", " df = datasets[ds_name]\n", " \n", - " # Convert 'Time' column to datetime\n", - " df['Time'] = pd.to_datetime(df['Time'])\n", - " # Convert datetime to Unix timestamp\n", - " df['Timestamp'] = df['Time'].astype(int) / 10**9 # convert to seconds\n", - " \n", - " # Separate numerical and categorical features\n", - " numerical_features = df[numerical_columns]\n", - " categorical_features = df[category_columns]\n", + " # Find transaction pairs that are within the time threshold\n", + " # First sort the table by 'Time'\n", + " df = df.sort_values(by=\"Time\")\n", + " # Keep only the columns that are needed for the graph edge map\n", + " df = df[info_columns]\n", "\n", - " # Initialize the MinMaxScaler (or StandardScaler)\n", - " scaler = MinMaxScaler()\n", - " \n", - " # Fit and transform the numerical data\n", - " numerical_normalized = pd.DataFrame(scaler.fit_transform(numerical_features), columns=numerical_features.columns)\n", - " \n", - " # Combine the normalized numerical features with the categorical features\n", - " df_combined = pd.concat([categorical_features, numerical_normalized], axis=1)\n", - " \n", - "# # one-hot encoding\n", - "# df_combined = pd.get_dummies(df_combined, columns=category_columns)\n", + " # Then for each row, find the next rows that is within the time threshold\n", + " graph_edge_map = []\n", + " for i in range(len(df)):\n", + " # Find the next rows that is:\n", + " # - within the time threshold\n", + " # - has the same Receiver_BIC\n", + " j = 1\n", + " while (i + j < len(df) and df[\"Time\"].values[i + j] < df[\"Time\"].values[i] + time_threshold):\n", + " if (df[\"Receiver_BIC\"].values[i + j] == df[\"Receiver_BIC\"].values[i]):\n", + " graph_edge_map.append([df[\"UETR\"].values[i], df[\"UETR\"].values[i + j]])\n", + " j += 1\n", "\n", - " print(\"Combined DataFrame with Normalized Numerical Features:\")\n", - " print(df_combined)\n", - " \n", - " processed_dfs[ds_name] = df_combined\n", - " " + " print(f\"Generated edge map for {ds_name}, in total {len(graph_edge_map)} valid edges for {len(df)} transactions\")\n", + "\n", + " edge_maps[ds_name] = pd.DataFrame(graph_edge_map) \n" ] }, { @@ -137,12 +123,13 @@ }, "outputs": [], "source": [ - "for name in processed_dfs:\n", + "for name in edge_maps:\n", " site_dir = os.path.join(site_input_dir, site_name)\n", " os.makedirs(site_dir, exist_ok=True)\n", - " pre_processed_file_name = os.path.join(site_dir, f\"{name}_normalized.csv\")\n", - " print(pre_processed_file_name)\n", - " processed_dfs[name].to_csv(pre_processed_file_name) " + " edge_map_file_name = os.path.join(site_dir, f\"{name}_edgemap.csv\")\n", + " print(\"save to = \", edge_map_file_name)\n", + " # save to csv file without header and index\n", + " edge_maps[name].to_csv(edge_map_file_name, header=False, index=False)" ] }, { @@ -162,8 +149,16 @@ "id": "8591e4e1-74b1-465c-8124-eaf9829a6a8e", "metadata": {}, "source": [ - "Let's go back to the [XGBoost Notebook](./xgboost.ipynb)" + "Let's go back to the [XGBoost Notebook](../xgboost.ipynb)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d926970e-a4e9-41a7-a166-0d11f8e9e320", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/examples/advanced/finance-end-to-end/nvflare/enrich_job.py b/examples/advanced/finance-end-to-end/nvflare/enrich_job.py index ac9fbab9ea..73d170050f 100644 --- a/examples/advanced/finance-end-to-end/nvflare/enrich_job.py +++ b/examples/advanced/finance-end-to-end/nvflare/enrich_job.py @@ -31,7 +31,6 @@ def main(): job = FedJob(name=job_name) - # Define the enrich_ctrl workflow and send to server enrich_ctrl = ETLController(task_name="enrich") job.to(enrich_ctrl, "server", id="enrich") diff --git a/examples/advanced/finance-end-to-end/nvflare/graph_construct.py b/examples/advanced/finance-end-to-end/nvflare/graph_construct.py new file mode 100644 index 0000000000..62664be7a7 --- /dev/null +++ b/examples/advanced/finance-end-to-end/nvflare/graph_construct.py @@ -0,0 +1,129 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import argparse +import os + +import pandas as pd + + +# (1) import nvflare client API +import nvflare.client as flare + +dataset_names = ["train", "test"] +datasets = {} + + +def main(): + print("\n pre-process starts \n ") + args = define_parser() + input_dir = args.input_dir + output_dir = args.output_dir + + flare.init() + site_name = flare.get_site_name() + + # receives global message from NVFlare + etl_task = flare.receive() + + print("\n receive task \n ") + edge_maps = edge_map_gen(input_dir, site_name) + + save_edge_map(output_dir, edge_maps, site_name) + + print("end task") + + # send message back the controller indicating end. + etl_task.meta["status"] = "done" + flare.send(etl_task) + + +def save_edge_map(output_dir, edge_maps, site_name): + for name in edge_maps: + site_dir = os.path.join(output_dir, site_name) + os.makedirs(site_dir, exist_ok=True) + + edge_map_file_name = os.path.join(site_dir, f"{name}_edgemap.csv") + print("save to = ", edge_map_file_name) + # save to csv file without header and index + edge_maps[name].to_csv(edge_map_file_name, header=False, index=False) + + +def edge_map_gen(input_dir, site_name): + edge_maps = {} + info_columns = [ + "Time", + "Receiver_BIC", + "UETR" + ] + time_threshold = 6000 + for ds_name in dataset_names: + + file_name = os.path.join(input_dir, site_name, f"{ds_name}.csv") + df = pd.read_csv(file_name) + datasets[ds_name] = df + + # Find transaction pairs that are within the time threshold + # First sort the table by 'Time' + df = df.sort_values(by="Time") + # Keep only the columns that are needed for the graph edge map + df = df[info_columns] + + # Then for each row, find the next rows that is within the time threshold + graph_edge_map = [] + for i in range(len(df)): + # Find the next rows that is: + # - within the time threshold + # - has the same Receiver_BIC + j = 1 + while (i + j < len(df) and + df["Time"].values[i + j] < df["Time"].values[i] + time_threshold): + if (df["Receiver_BIC"].values[i + j] == df["Receiver_BIC"].values[i]): + graph_edge_map.append([df["UETR"].values[i], df["UETR"].values[i + j]]) + j += 1 + + print(f"Generated edge map for {ds_name}, in total {len(graph_edge_map)} valid edges for {len(df)} transactions") + + edge_maps[ds_name] = pd.DataFrame(graph_edge_map) + + return edge_maps + + +def define_parser(): + parser = argparse.ArgumentParser() + + parser.add_argument( + "-i", + "--input_dir", + type=str, + nargs="?", + default="/tmp/dataset/credit_data", + help="input directory where csv files for each site are expected, default to /tmp/dataset/credit_data", + ) + + parser.add_argument( + "-o", + "--output_dir", + type=str, + nargs="?", + default="/tmp/dataset/credit_data", + help="output directory, default to '/tmp/dataset/credit_data'", + ) + + return parser.parse_args() + + +if __name__ == "__main__": + main() diff --git a/examples/advanced/finance-end-to-end/nvflare/graph_construct_job.py b/examples/advanced/finance-end-to-end/nvflare/graph_construct_job.py new file mode 100644 index 0000000000..81f8033c30 --- /dev/null +++ b/examples/advanced/finance-end-to-end/nvflare/graph_construct_job.py @@ -0,0 +1,100 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import argparse + +from nvflare import FedJob +from nvflare.app_common.workflows.etl_controller import ETLController +from nvflare.job_config.script_runner import ScriptRunner + + +def main(): + args = define_parser() + + site_names = args.sites + work_dir = args.work_dir + job_name = args.job_name + task_script_path = args.task_script_path + task_script_args = args.task_script_args + + job = FedJob(name=job_name) + + graph_construct_ctrl = ETLController(task_name="graph_construct") + job.to(graph_construct_ctrl, "server", id="graph_construct") + + # Add clients + for site_name in site_names: + executor = ScriptRunner(script=task_script_path, script_args=task_script_args) + job.to(executor, site_name, tasks=["graph_construct"]) + + if work_dir: + print(f"{work_dir=}") + job.export_job(work_dir) + + if not args.config_only: + job.simulator_run(work_dir) + + +def define_parser(): + parser = argparse.ArgumentParser() + parser.add_argument( + "-c", + "--sites", + nargs="*", # 0 or more values expected => creates a list + type=str, + default=[], # default if nothing is provided + help="Space separated site names", + ) + parser.add_argument( + "-n", + "--job_name", + type=str, + nargs="?", + default="credit_card_graph_construct_job", + help="job name, default to xgb_job", + ) + parser.add_argument( + "-w", + "--work_dir", + type=str, + nargs="?", + default="/tmp/nvflare/jobs/xgb/workdir", + help="work directory, default to '/tmp/nvflare/jobs/xgb/workdir'", + ) + + parser.add_argument( + "-p", + "--task_script_path", + type=str, + nargs="?", + help="task script", + ) + + parser.add_argument( + "-a", + "--task_script_args", + type=str, + nargs="?", + default="", + help="", + ) + + parser.add_argument("-co", "--config_only", action="store_true", help="config only mode, will not run simulator") + + return parser.parse_args() + + +if __name__ == "__main__": + main() diff --git a/examples/advanced/finance-end-to-end/nvflare/pre_process_job.py b/examples/advanced/finance-end-to-end/nvflare/pre_process_job.py index ce7c4a1c92..fbeba5df44 100644 --- a/examples/advanced/finance-end-to-end/nvflare/pre_process_job.py +++ b/examples/advanced/finance-end-to-end/nvflare/pre_process_job.py @@ -81,6 +81,7 @@ def define_parser(): nargs="?", help="task script", ) + parser.add_argument( "-a", "--task_script_args", diff --git a/examples/advanced/finance-end-to-end/xgboost.ipynb b/examples/advanced/finance-end-to-end/xgboost.ipynb index 34c89f05f3..522bdb2023 100644 --- a/examples/advanced/finance-end-to-end/xgboost.ipynb +++ b/examples/advanced/finance-end-to-end/xgboost.ipynb @@ -42,7 +42,7 @@ "id": "f69c008a-b19b-4c1a-b3c4-c376eccf53ba", "metadata": {}, "source": [ - "## Step 2, Option 1: Feature Enrichment\n", + "## Step 2, Option 1: Rule-based Feature Enrichment\n", "\n", "### Single-site Enrichment and Additional Processing\n", "The detailed feature enrichment step is illustrated using one site as example: \n", @@ -88,14 +88,23 @@ "id": "8068c808-fce8-4f27-b0cf-76b486a24903", "metadata": {}, "source": [ - "## Step 2, Option 2: Feature Encoding\n", - "Rather than hand-crafting the derived features as Option 1, we can use machine learning models to encode the features. In this example, we use federated graph neural network (GNN) to learn and generate the feature embeddings.\n", - "We construct a graph based on the transaction data. Each node represents a transaction, and the edges represent the relationships between transactions. We then use the GNN to learn the embeddings of the nodes, which represent the transaction features.\n", + "## Step 2, Option 2: GNN-based Feature Encoding\n", + "Rather than hand-crafting the rule-based derived features as Option 1, we can use machine learning models to encode the features. In this example, we use federated graph neural network (GNN) to learn and generate the feature embeddings.\n", + "We first construct a graph based on the transaction data. Each node represents a transaction, and the edges represent the relationships between transactions. We then use the GNN to learn the embeddings of the nodes, which represent the transaction features.\n", "\n", - "### Single-site Graph Construction\n", - "The detailed graph construction step is illustrated using one site as example: \n", + "### Single-site operation example: graph construction\n", + "The detailed graph construction step is illustrated using one site as example:\n", "\n", - "* [graph_construction with-one-site](./notebooks/graph_construct.ipynb)" + "* [graph_construction with one-site](./notebooks/graph_construct.ipynb)\n", + "\n", + "### Federated Job to Perform on All Sites\n", + "In order to run feature graph construction job on each site similar to the enrichment and processing steps, we wrote federated ETL job scripts for client-side based on single-site implementations.\n", + "\n", + "* [graph_construction script](./nvflare/graph_construct.py)\n", + "\n", + "Similarily, we define job scripts on server-side to trigger and coordinate running client-side scripts on each site: \n", + "\n", + "* [graph_construction_job.py](./nvflare/graph_construct_job.py)" ] }, { @@ -285,6 +294,26 @@ "%cd .." ] }, + { + "cell_type": "markdown", + "id": "530f95e5-d104-43d3-8320-dd077d885799", + "metadata": {}, + "source": [ + "### Construct Graph" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a775b7a4-32de-4791-b17f-bc8291a5f885", + "metadata": {}, + "outputs": [], + "source": [ + "%cd nvflare\n", + "! python graph_construct_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -p graph_construct.py -a \"-i /tmp/nvflare/xgb/credit_card -o /tmp/nvflare/xgb/credit_card/\"\n", + "%cd .." + ] + }, { "cell_type": "markdown", "id": "aae5236b-0f40-4b91-9fc2-4f2836b52537", From a19553d2e004ce8d467a150babc78e85975badbd Mon Sep 17 00:00:00 2001 From: Ziyue Xu Date: Mon, 30 Sep 2024 18:39:26 -0400 Subject: [PATCH 4/8] Format fix --- .../finance-end-to-end/nvflare/graph_construct.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/examples/advanced/finance-end-to-end/nvflare/graph_construct.py b/examples/advanced/finance-end-to-end/nvflare/graph_construct.py index 62664be7a7..aa141f2982 100644 --- a/examples/advanced/finance-end-to-end/nvflare/graph_construct.py +++ b/examples/advanced/finance-end-to-end/nvflare/graph_construct.py @@ -63,11 +63,7 @@ def save_edge_map(output_dir, edge_maps, site_name): def edge_map_gen(input_dir, site_name): edge_maps = {} - info_columns = [ - "Time", - "Receiver_BIC", - "UETR" - ] + info_columns = ["Time", "Receiver_BIC", "UETR"] time_threshold = 6000 for ds_name in dataset_names: @@ -88,13 +84,14 @@ def edge_map_gen(input_dir, site_name): # - within the time threshold # - has the same Receiver_BIC j = 1 - while (i + j < len(df) and - df["Time"].values[i + j] < df["Time"].values[i] + time_threshold): - if (df["Receiver_BIC"].values[i + j] == df["Receiver_BIC"].values[i]): + while i + j < len(df) and df["Time"].values[i + j] < df["Time"].values[i] + time_threshold: + if df["Receiver_BIC"].values[i + j] == df["Receiver_BIC"].values[i]: graph_edge_map.append([df["UETR"].values[i], df["UETR"].values[i + j]]) j += 1 - print(f"Generated edge map for {ds_name}, in total {len(graph_edge_map)} valid edges for {len(df)} transactions") + print( + f"Generated edge map for {ds_name}, in total {len(graph_edge_map)} valid edges for {len(df)} transactions" + ) edge_maps[ds_name] = pd.DataFrame(graph_edge_map) From 269f8c32f9d07661ed46bde2910bdae19efe64cb Mon Sep 17 00:00:00 2001 From: Ziyue Xu Date: Tue, 1 Oct 2024 09:48:26 -0400 Subject: [PATCH 5/8] Format fix --- examples/advanced/finance-end-to-end/nvflare/graph_construct.py | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/advanced/finance-end-to-end/nvflare/graph_construct.py b/examples/advanced/finance-end-to-end/nvflare/graph_construct.py index aa141f2982..ae90c2f24b 100644 --- a/examples/advanced/finance-end-to-end/nvflare/graph_construct.py +++ b/examples/advanced/finance-end-to-end/nvflare/graph_construct.py @@ -18,7 +18,6 @@ import pandas as pd - # (1) import nvflare client API import nvflare.client as flare From 66d1ea0e35846fd2664550834b0fa9701db5572d Mon Sep 17 00:00:00 2001 From: Ziyue Xu Date: Fri, 4 Oct 2024 12:51:26 -0400 Subject: [PATCH 6/8] Add graph construction and training notebooks --- .../advanced/finance-end-to-end/README.md | 35 +- .../finance-end-to-end/figures/edge_map.png | Bin 0 -> 32944 bytes .../finance-end-to-end/figures/embeddings.png | Bin 0 -> 66693 bytes .../graphsage_finance_local.py | 167 +++++++++ .../notebooks/gnn_train_encode.ipynb | 319 ++++++++++++++++++ .../notebooks/graph_construct.ipynb | 12 + .../advanced/finance-end-to-end/xgboost.ipynb | 38 ++- 7 files changed, 554 insertions(+), 17 deletions(-) create mode 100644 examples/advanced/finance-end-to-end/figures/edge_map.png create mode 100644 examples/advanced/finance-end-to-end/figures/embeddings.png create mode 100644 examples/advanced/finance-end-to-end/graphsage_finance_local.py create mode 100644 examples/advanced/finance-end-to-end/notebooks/gnn_train_encode.ipynb diff --git a/examples/advanced/finance-end-to-end/README.md b/examples/advanced/finance-end-to-end/README.md index 2cacccfe5a..6c71d30924 100644 --- a/examples/advanced/finance-end-to-end/README.md +++ b/examples/advanced/finance-end-to-end/README.md @@ -47,13 +47,15 @@ The python code for data generation is located at [prepare_data.py](./utils/prep ## Step 2: Feature Analysis -For this stage, we would like to analyze the data, understand the features, and derive secondary features that can be more useful for building the model. +For this stage, we would like to analyze the data, understand the features, and derive (and encode) secondary features that can be more useful for building the model. Towards this goal, there are two options: 1. **Feature Enrichment**: This process involves adding new features based on the existing data. For example, we can calculate the average transaction amount for each currency and add this as a new feature. -2. **Feature Encoding**: This process involves encoding the current features and transforming them to embedding space via machine learning models. In this example, we use federated graph neural network (GNN). +2. **Feature Encoding**: This process involves encoding the current features and transforming them to embedding space via machine learning models. This model can be either pre-trained, or trained with the candidate dataset. -### Step 2, Option 1: Rule-based Feature Enrichment +Considering the fact that the only two numerical features in the dataset are "Amount" and "Time", we will perform feature enrichment first. Optionally, we can also perform feature encoding. In this example, we use graph neural network (GNN): we will train the GNN model in a federated unsupervised fashion, and then use the model to encode the features for all sites. + +### Step 2.1: Rule-based Feature Enrichment In this process, we will enrich the data and add a few new derived features to illustrate the process. Whether such enrichment makes sense or not is task and data dependent, essentially, this process is adding hand-crafted features to the classifier inputs. @@ -67,7 +69,6 @@ The data enrichment process involves the following steps: 2. **Aggregation for Training and Test Data**: Aggregate the data in 1-hour intervals, grouped by currency. The aggregated value is then divided by hist_trans_volume, and this new column is named x2_y1. 3. **Repeating for Beneficiary BIC**: Perform the same process for Beneficiary_BIC to generate another feature called x3_y2. 4. **Merging Features**: Merge the two enriched features based on Time and Beneficiary_BIC. -The resulting dataset looks like this: The resulting Dataset looks like this. ![enrich_data](./figures/enrichment.png) @@ -196,18 +197,34 @@ Here we define a ETLController for server, and ScriptExecutor for client side ET Similarly, we can write the normalization job code [pre_process_job.py](./nvflare/pre_process_job.py) for the server-side. -### Step 2, Option 2: GNN-based Feature Encoding -Rather than hand-crafting the derived features as Option 1, we can use machine learning models to encode the features. In this example, we use federated graph neural network (GNN) to learn and generate the feature embeddings. -We construct a graph based on the transaction data. Each node represents a transaction, and the edges represent the relationships between transactions. We then use the GNN to learn the embeddings of the nodes, which represent the transaction features. +### (Optional) Step 2.2: GNN Training & Feature Encoding +Based on raw features, or combining the derived features from **Step 2.1**, we can use machine learning models to encode the features. +In this example, we use federated GNN to learn and generate the feature embeddings. + +First, we construct a graph based on the transaction data. Each node represents a transaction, and the edges represent the relationships between transactions. We then use the GNN to learn the embeddings of the nodes, which represent the transaction features. #### Single-site operation example: graph construction Since each site consists of the same Sender_BIC, to define the graph edge, we use the following rules: 1. The two transactions are with the same Receiver_BIC. -2. The two transactions are with the same Currency. -3. The two transactions time difference are smaller than 6000. +2. The two transactions time difference are smaller than 6000. + +The resulting graph looks like below, essentially an undirected graph with transactions (identified by `UETR`) as nodes and edges connecting two nodes that satisfy the above two rules. +![edge_map](./figures/edge_map.png) +#### Single-site operation example: GNN training and encoding +We use the graph constructed in the previous step to train the GNN model. The GNN model is trained in a federated unsupervised fashion, and the embeddings are generated for each transaction. +The GNN training procedure is similar to the unsupervised Protein Classification task in our [GNN example](../gnn/README.md) with customized data preparation steps. +The results of the GNN training are: +- a GNN model +- the embeddings of the transactions, in this example, they are of dimension 64 +![embedding](./figures/embeddings.png) +#### Federated GNN Training and Encoding for All Sites +Similar to Step 2.1, we can easily convert the notebook code into the python code for federated execution on each site. For simplicity, we will skip the code examples for this step. +Please refer to the scripts: +- [graph_construct.py](./nvflare/graph_construct.py) and [graph_construct_job.py](./nvflare/graph_construct_job.py) for graph construction +- [gnn_train_encode.py](./nvflare/gnn_train_encode.py) and [gnn_train_encode_job.py](./nvflare/gnn_train_job.py) for GNN training and encoding ## Step 3: Federated Training of XGBoost Now we have enriched / encoded features, the last step is to run federated XGBoost over them. diff --git a/examples/advanced/finance-end-to-end/figures/edge_map.png b/examples/advanced/finance-end-to-end/figures/edge_map.png new file mode 100644 index 0000000000000000000000000000000000000000..62c0cc3b3c96711e17c4ff6b0ff025c3a1f8c703 GIT binary patch literal 32944 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 tutYt?tXY5p|2>sd!_${|ChAW^Mog literal 0 HcmV?d00001 diff --git a/examples/advanced/finance-end-to-end/graphsage_finance_local.py b/examples/advanced/finance-end-to-end/graphsage_finance_local.py new file mode 100644 index 0000000000..3413a7befc --- /dev/null +++ b/examples/advanced/finance-end-to-end/graphsage_finance_local.py @@ -0,0 +1,167 @@ +# Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import os + +import numpy as np +import pandas as pd +import torch +import torch.nn.functional as F +from torch.utils.tensorboard import SummaryWriter +from torch_geometric.data import Data +from torch_geometric.loader import LinkNeighborLoader +from torch_geometric.nn import GraphSAGE + +DEVICE = "cuda:0" + + +def edge_index_gen(df_feat_class, df_edges): + # Sort the data by UETR + df_feat_class = df_feat_class.sort_values(by="UETR").reset_index(drop=True) + + # Generate UETR-index map with the feature list + node_ids = df_feat_class["UETR"].values + map_id = {j: i for i, j in enumerate(node_ids)} # mapping nodes to indexes + + # Get class labels + labels = df_feat_class["Class"].values + + # Map UETR to indexes in the edge map + edges = df_edges.copy() + edges.UETR_1 = edges.UETR_1.map(map_id) + edges.UETR_2 = edges.UETR_2.map(map_id) + edges = edges.astype(int) + + # for undirected graph + edge_index = np.array(edges.values).T + edge_index = torch.tensor(edge_index, dtype=torch.long).contiguous() + weights = torch.tensor([1] * edge_index.shape[1], dtype=torch.float) + + # UETR mapped to corresponding indexes, drop UETR and class + node_features = df_feat_class.drop(["UETR", "Class"], axis=1).copy() + node_features = torch.tensor(np.array(node_features.values), dtype=torch.float) + + return node_features, edge_index, weights, node_ids, labels + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument( + "--data_path", + type=str, + default="/tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1", + ) + parser.add_argument( + "--epochs", + type=int, + default=100, + ) + parser.add_argument( + "--output_path", + type=str, + default="/tmp/nvflare/gnn/finance_local", + ) + args = parser.parse_args() + + # Set up tensorboard + writer = SummaryWriter(os.path.join(args.output_path)) + + # Create elliptic dataset for training. + df_data = pd.read_csv(os.path.join(args.data_path, "train_normalized.csv"), index_col=0) + # Drop irrelevant columns + df_feat_class = df_data.drop( + columns=["Currency_Country", "Beneficiary_BIC", "Currency", "Receiver_BIC", "Sender_BIC"] + ) + # Use GNN in unsupervised mode, drop the class column + df_edges = pd.read_csv(os.path.join(args.data_path, "train_edgemap.csv"), header=None) + # Add column names to the edge map + df_edges.columns = ["UETR_1", "UETR_2"] + + # Preprocess data + node_features, edge_index, weights, ids, labels = edge_index_gen(df_feat_class, df_edges) + + # Converting data to PyG graph data format + train_data = Data(x=node_features, edge_index=edge_index, edge_attr=weights) + + # Define the dataloader for graphsage training + loader = LinkNeighborLoader( + train_data, + batch_size=2048, + shuffle=True, + neg_sampling_ratio=1.0, + num_neighbors=[10, 10], + num_workers=6, + persistent_workers=True, + ) + + # Model + model = GraphSAGE( + in_channels=node_features.shape[1], + hidden_channels=64, + num_layers=2, + out_channels=64, + ) + optimizer = torch.optim.Adam(model.parameters(), lr=1e-3) + model.to(DEVICE) + + for epoch in range(1, args.epochs + 1): + model.train() + running_loss = instance_count = 0 + for data in loader: + # get the inputs data + data = data.to(DEVICE) + # zero the parameter gradients + optimizer.zero_grad() + # forward + backward + optimize + h = model(data.x, data.edge_index) + h_src = h[data.edge_label_index[0]] + h_dst = h[data.edge_label_index[1]] + link_pred = (h_src * h_dst).sum(dim=-1) # Inner product. + loss = F.binary_cross_entropy_with_logits(link_pred, data.edge_label) + loss.backward() + optimizer.step() + # add record + running_loss += float(loss.item()) * link_pred.numel() + instance_count += link_pred.numel() + print(f"Epoch: {epoch:02d}, Loss: {running_loss / instance_count:.4f}") + writer.add_scalar("train_loss", running_loss / instance_count, epoch) + + # Save the model + torch.save(model.state_dict(), os.path.join(args.output_path, "model.pt")) + + # Load the model and perform inference / encoding + model_enc = GraphSAGE( + in_channels=node_features.shape[1], + hidden_channels=64, + num_layers=2, + out_channels=64, + ) + model_enc.load_state_dict(torch.load(os.path.join(args.output_path, "model.pt"))) + model_enc.eval() + # Perform encoding + h = model_enc(node_features, edge_index) + embed = pd.DataFrame(h.cpu().detach().numpy()) + # Add column names as V_0, V_1, ... V_63 + embed.columns = [f"V_{i}" for i in range(embed.shape[1])] + # Concatenate the node ids and class labels with the encoded features + embed["UETR"] = ids + embed["Class"] = labels + # Move the UETR and Class columns to the front + embed = embed[["UETR", "Class"] + [col for col in embed.columns if col not in ["UETR", "Class"]]] + embed.to_csv(os.path.join(args.output_path, "encoded_features.csv"), index=False) + + +if __name__ == "__main__": + main() diff --git a/examples/advanced/finance-end-to-end/notebooks/gnn_train_encode.ipynb b/examples/advanced/finance-end-to-end/notebooks/gnn_train_encode.ipynb new file mode 100644 index 0000000000..cc688bf729 --- /dev/null +++ b/examples/advanced/finance-end-to-end/notebooks/gnn_train_encode.ipynb @@ -0,0 +1,319 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3d892b5e-2f3b-4182-bedb-d332bfc3a353", + "metadata": {}, + "source": [ + "# GNN Training and Encoding\n", + "\n", + "* Train a GNN based on enriched features in an unsupervised fashion, and use the resulting model to encode the input features." + ] + }, + { + "cell_type": "markdown", + "id": "b8498bf1-d368-4d15-a5bf-559eb6e3918b", + "metadata": {}, + "source": [ + "## Load Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "db9d04f0-a64d-457b-aacf-1a3737e07e12", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "site_input_dir = \"/tmp/dataset/horizontal_credit_fraud_data/\"\n", + "site_name = \"ZHSZUS33_Bank_1\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2d84f89f-fe0a-4387-92a2-49ca9143c141", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import os\n", + "import pandas as pd\n", + "\n", + "dataset_names = [\"train\", \"test\"]\n", + "df_feats = {}\n", + "df_edges = {}\n", + "for ds_name in dataset_names:\n", + " # Get feature and class\n", + " file_name = os.path.join(site_input_dir, site_name, f\"{ds_name}_normalized.csv\")\n", + " df = pd.read_csv(file_name, index_col=0)\n", + " # Drop irrelevant columns\n", + " df = df.drop(columns=[\"Currency_Country\",\n", + " \"Beneficiary_BIC\",\n", + " \"Currency\",\n", + " \"Receiver_BIC\",\n", + " \"Sender_BIC\"]) \n", + " df_feats[ds_name] = df\n", + " # Get edge map\n", + " file_name = os.path.join(site_input_dir, site_name, f\"{ds_name}_edgemap.csv\")\n", + " df = pd.read_csv(file_name, header=None)\n", + " # Add column names to the edge map\n", + " df.columns = [\"UETR_1\", \"UETR_2\"]\n", + " df_edges[ds_name] = df" + ] + }, + { + "cell_type": "markdown", + "id": "a95b6b9d-7046-4ed4-8a7e-ce1f74ddf694", + "metadata": { + "tags": [] + }, + "source": [ + "## Prepared Data for Unsupervised GNN Training" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5bd5be54-c5e7-43c7-ad4f-de29a09bc7ec", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import torch\n", + "\n", + "node_ids = {}\n", + "node_features = {}\n", + "edge_indices = {}\n", + "weights = {}\n", + "labels = {}\n", + "\n", + "for ds_name in dataset_names:\n", + " df_feat_class = df_feats[ds_name]\n", + " df_edge = df_edges[ds_name]\n", + "\n", + " # Sort the data by UETR\n", + " df_feat_class = df_feat_class.sort_values(by=\"UETR\").reset_index(drop=True)\n", + "\n", + " # Generate UETR-index map with the feature list\n", + " node_id = df_feat_class[\"UETR\"].values\n", + " map_id = {j: i for i, j in enumerate(node_id)} # mapping nodes to indexes\n", + " node_ids[ds_name] = node_id\n", + " \n", + " # Get class labels\n", + " labels[ds_name] = df_feat_class[\"Class\"].values\n", + "\n", + " # Map UETR to indexes in the edge map\n", + " edges = df_edge.copy()\n", + " edges.UETR_1 = edges.UETR_1.map(map_id)\n", + " edges.UETR_2 = edges.UETR_2.map(map_id)\n", + " edges = edges.astype(int)\n", + "\n", + " # for undirected graph\n", + " edge_index = np.array(edges.values).T\n", + " edge_index = torch.tensor(edge_index, dtype=torch.long).contiguous()\n", + " edge_indices[ds_name] = edge_index\n", + " weights[ds_name] = torch.tensor([1] * edge_index.shape[1], dtype=torch.float)\n", + "\n", + " # UETR mapped to corresponding indexes, drop UETR and class\n", + " node_feature = df_feat_class.drop([\"UETR\", \"Class\"], axis=1).copy()\n", + " node_feature = torch.tensor(np.array(node_feature.values), dtype=torch.float)\n", + " node_features[ds_name] = node_feature\n" + ] + }, + { + "cell_type": "markdown", + "id": "70b192a7-05be-4591-b937-7bab878277ac", + "metadata": { + "tags": [] + }, + "source": [ + "## Unsupervised GNN Training" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f326a613-e683-4f67-810d-aece3d90349e", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "import torch.nn.functional as F\n", + "from torch.utils.tensorboard import SummaryWriter\n", + "from torch_geometric.data import Data\n", + "from torch_geometric.loader import LinkNeighborLoader\n", + "from torch_geometric.nn import GraphSAGE\n", + "\n", + "output_dir = os.path.join(site_input_dir, site_name)\n", + "DEVICE = \"cuda:0\"\n", + "writer = SummaryWriter(output_dir)\n", + "epochs = 100\n", + "\n", + "# Converting data to PyG graph data format\n", + "train_data = Data(\n", + " x=node_features['train'], edge_index=edge_indices['train'], edge_attr=weights['train']\n", + ")\n", + "\n", + "# Define the dataloader for graphsage training\n", + "loader = LinkNeighborLoader(\n", + " train_data,\n", + " batch_size=2048,\n", + " shuffle=True,\n", + " neg_sampling_ratio=1.0,\n", + " num_neighbors=[10, 10],\n", + " num_workers=6,\n", + " persistent_workers=True,\n", + ")\n", + "\n", + "# Model\n", + "model = GraphSAGE(\n", + " in_channels=node_features['train'].shape[1],\n", + " hidden_channels=64,\n", + " num_layers=2,\n", + " out_channels=64,\n", + ")\n", + "optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)\n", + "model.to(DEVICE)\n", + "\n", + "for epoch in range(1, epochs + 1):\n", + " model.train()\n", + " running_loss = instance_count = 0\n", + "\n", + " for data in loader:\n", + " # get the inputs data\n", + " data = data.to(DEVICE)\n", + " # zero the parameter gradients\n", + " optimizer.zero_grad()\n", + " # forward + backward + optimize\n", + " h = model(data.x, data.edge_index)\n", + " h_src = h[data.edge_label_index[0]]\n", + " h_dst = h[data.edge_label_index[1]]\n", + " link_pred = (h_src * h_dst).sum(dim=-1) # Inner product.\n", + " loss = F.binary_cross_entropy_with_logits(link_pred, data.edge_label)\n", + " loss.backward()\n", + " optimizer.step()\n", + " # add record\n", + " running_loss += float(loss.item()) * link_pred.numel()\n", + " instance_count += link_pred.numel()\n", + " print(f\"Epoch: {epoch:02d}, Loss: {running_loss / instance_count:.4f}\")\n", + " writer.add_scalar(\"train_loss\", running_loss / instance_count, epoch)\n", + "\n", + "# Save the model\n", + "torch.save(model.state_dict(), os.path.join(output_dir, \"model.pt\"))" + ] + }, + { + "cell_type": "markdown", + "id": "d7a5b581-1688-4c43-a83a-f3b152d05729", + "metadata": { + "tags": [] + }, + "source": [ + "## GNN Inference - Encoding the Raw Feature" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9dfe6156-1049-41c5-82d5-b81fa1814160", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Load the model and perform inference / encoding\n", + "model_enc = GraphSAGE(\n", + " in_channels=node_features['train'].shape[1],\n", + " hidden_channels=64,\n", + " num_layers=2,\n", + " out_channels=64,\n", + ")\n", + "model_enc.load_state_dict(torch.load(os.path.join(output_dir, \"model.pt\")))\n", + "model_enc.eval()\n", + "\n", + "embeds = {}\n", + "# Perform encoding\n", + "for ds_name in dataset_names:\n", + " h = model_enc(node_features[ds_name], edge_indices[ds_name])\n", + " embed = pd.DataFrame(h.cpu().detach().numpy())\n", + " # Add column names as V_0, V_1, ... V_63\n", + " embed.columns = [f\"V_{i}\" for i in range(embed.shape[1])]\n", + " # Concatenate the node ids and class labels with the encoded features\n", + " embed[\"UETR\"] = node_ids[ds_name]\n", + " embed[\"Class\"] = labels[ds_name]\n", + " # Move the UETR and Class columns to the front\n", + " embed = embed[[\"UETR\", \"Class\"] + [col for col in embed.columns if col not in [\"UETR\", \"Class\"]]]\n", + " embed.to_csv(os.path.join(output_dir, f\"{ds_name}_embedding.csv\"), index=False)\n", + " embeds[ds_name] = embed" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c1b8925c-6890-4a45-a9c4-f80399b463cc", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "! tree /tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5adcd468-edaf-4759-ac2d-09902811c97a", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "embeds[\"train\"]" + ] + }, + { + "cell_type": "markdown", + "id": "8591e4e1-74b1-465c-8124-eaf9829a6a8e", + "metadata": {}, + "source": [ + "Let's go back to the [XGBoost Notebook](../xgboost.ipynb)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d926970e-a4e9-41a7-a166-0d11f8e9e320", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "nvflare_example", + "language": "python", + "name": "nvflare_example" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.18" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/advanced/finance-end-to-end/notebooks/graph_construct.ipynb b/examples/advanced/finance-end-to-end/notebooks/graph_construct.ipynb index 4a45d6117d..cd02ae469b 100644 --- a/examples/advanced/finance-end-to-end/notebooks/graph_construct.ipynb +++ b/examples/advanced/finance-end-to-end/notebooks/graph_construct.ipynb @@ -114,6 +114,18 @@ " edge_maps[ds_name] = pd.DataFrame(graph_edge_map) \n" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "7780ab4d-7d1d-4eda-96e1-eed9243eff11", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "edge_maps[\"train\"]" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/examples/advanced/finance-end-to-end/xgboost.ipynb b/examples/advanced/finance-end-to-end/xgboost.ipynb index 522bdb2023..e00cc23687 100644 --- a/examples/advanced/finance-end-to-end/xgboost.ipynb +++ b/examples/advanced/finance-end-to-end/xgboost.ipynb @@ -42,9 +42,25 @@ "id": "f69c008a-b19b-4c1a-b3c4-c376eccf53ba", "metadata": {}, "source": [ - "## Step 2, Option 1: Rule-based Feature Enrichment\n", + "## Step 2: Feature Analysis\n", "\n", - "### Single-site Enrichment and Additional Processing\n", + "For this stage, we would like to analyze the data, understand the features, and derive (and encode) secondary features that can be more useful for building the model.\n", + "\n", + "Towards this goal, there are two options:\n", + "1. **Feature Enrichment**: This process involves adding new features based on the existing data. For example, we can calculate the average transaction amount for each currency and add this as a new feature. \n", + "2. **Feature Encoding**: This process involves encoding the current features and transforming them to embedding space via machine learning models. This model can be either pre-trained, or trained with the candidate dataset.\n", + "\n", + "Considering the fact that the only two numerical features in the dataset are \"Amount\" and \"Time\", we will perform feature enrichment first. Optionally, we can also perform feature encoding. In this example, we use graph neural network (GNN): we will train the GNN model in a federated unsupervised fashion, and then use the model to encode the features for all sites. " + ] + }, + { + "cell_type": "markdown", + "id": "05dcf825-6e31-4d10-9968-2f353eaa4cea", + "metadata": {}, + "source": [ + "### Step 2.1: Rule-based Feature Enrichment\n", + "\n", + "#### Single-site Enrichment and Additional Processing\n", "The detailed feature enrichment step is illustrated using one site as example: \n", "\n", "* [feature_enrichments with-one-site](./notebooks/feature_enrichment.ipynb)\n", @@ -59,7 +75,7 @@ "id": "8bc8bb99-a253-415e-8953-91af62ef22a2", "metadata": {}, "source": [ - "### Federated Job to Perform on All Sites\n", + "#### Federated Job to Perform on All Sites\n", "In order to run feature enrichment and processing job on each site similar to above steps, we wrote federated ETL job scripts for client-side based on single-site implementations.\n", "\n", "* [enrichment script](./nvflare/enrich.py)\n", @@ -88,16 +104,22 @@ "id": "8068c808-fce8-4f27-b0cf-76b486a24903", "metadata": {}, "source": [ - "## Step 2, Option 2: GNN-based Feature Encoding\n", - "Rather than hand-crafting the rule-based derived features as Option 1, we can use machine learning models to encode the features. In this example, we use federated graph neural network (GNN) to learn and generate the feature embeddings.\n", - "We first construct a graph based on the transaction data. Each node represents a transaction, and the edges represent the relationships between transactions. We then use the GNN to learn the embeddings of the nodes, which represent the transaction features.\n", + "### (Optional) Step 2.2: GNN-based Feature Encoding\n", + "Based on raw features, or combining the derived features from **Step 2.1**, we can use machine learning models to encode the features. \n", + "In this example, we use federated GNN to learn and generate the feature embeddings.\n", "\n", - "### Single-site operation example: graph construction\n", + "First, we construct a graph based on the transaction data. Each node represents a transaction, and the edges represent the relationships between transactions. We then use the GNN to learn the embeddings of the nodes, which represent the transaction features.\n", + "\n", + "#### Single-site operation example: graph construction\n", "The detailed graph construction step is illustrated using one site as example:\n", "\n", "* [graph_construction with one-site](./notebooks/graph_construct.ipynb)\n", "\n", - "### Federated Job to Perform on All Sites\n", + "The detailed GNN training and encoding step is illustrated using one site as example:\n", + "\n", + "* [gnn_training_encoding with one-site](./notebooks/gnn_train_encode.ipynb)\n", + "\n", + "#### Federated Job to Perform on All Sites\n", "In order to run feature graph construction job on each site similar to the enrichment and processing steps, we wrote federated ETL job scripts for client-side based on single-site implementations.\n", "\n", "* [graph_construction script](./nvflare/graph_construct.py)\n", From 47ea39e254683aa3000eff286b613ce09b2f50c3 Mon Sep 17 00:00:00 2001 From: Ziyue Xu Date: Fri, 4 Oct 2024 16:55:25 -0400 Subject: [PATCH 7/8] Add full gnn functionality --- .../advanced/finance-end-to-end/README.md | 54 ++-- .../graphsage_finance_local.py | 167 ------------- .../nvflare/gnn_train_encode.py | 233 ++++++++++++++++++ .../nvflare/gnn_train_encode_job.py | 116 +++++++++ .../nvflare/xgb_data_loader.py | 3 + .../nvflare/xgb_embed_data_loader.py | 64 +++++ .../nvflare/xgb_job_embed.py | 120 +++++++++ .../advanced/finance-end-to-end/xgboost.ipynb | 4 +- 8 files changed, 565 insertions(+), 196 deletions(-) delete mode 100644 examples/advanced/finance-end-to-end/graphsage_finance_local.py create mode 100644 examples/advanced/finance-end-to-end/nvflare/gnn_train_encode.py create mode 100644 examples/advanced/finance-end-to-end/nvflare/gnn_train_encode_job.py create mode 100644 examples/advanced/finance-end-to-end/nvflare/xgb_embed_data_loader.py create mode 100644 examples/advanced/finance-end-to-end/nvflare/xgb_job_embed.py diff --git a/examples/advanced/finance-end-to-end/README.md b/examples/advanced/finance-end-to-end/README.md index 6c71d30924..c9fd2304ce 100644 --- a/examples/advanced/finance-end-to-end/README.md +++ b/examples/advanced/finance-end-to-end/README.md @@ -224,7 +224,7 @@ The results of the GNN training are: Similar to Step 2.1, we can easily convert the notebook code into the python code for federated execution on each site. For simplicity, we will skip the code examples for this step. Please refer to the scripts: - [graph_construct.py](./nvflare/graph_construct.py) and [graph_construct_job.py](./nvflare/graph_construct_job.py) for graph construction -- [gnn_train_encode.py](./nvflare/gnn_train_encode.py) and [gnn_train_encode_job.py](./nvflare/gnn_train_job.py) for GNN training and encoding +- [gnn_train_encode.py](./nvflare/gnn_train_encode.py) and [gnn_train_encode_job.py](./nvflare/gnn_train_encode_job.py) for GNN training and encoding ## Step 3: Federated Training of XGBoost Now we have enriched / encoded features, the last step is to run federated XGBoost over them. @@ -324,40 +324,38 @@ python graph_construct_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_B cd .. ``` +* GNN Training and Encoding +``` +cd nvflare +python gnn_train_encode_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -p gnn_train_encode.py -a "-i /tmp/nvflare/xgb/credit_card -o /tmp/nvflare/xgb/credit_card/" +cd .. +``` + + * XGBoost Job -Finally we take the resulting data and run XGBoost Job + +We run XGBoost Job on two types of data: normalized, and GNN embeddings +For normalized data, we run the following command ``` cd nvflare python xgb_job.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -i /tmp/nvflare/xgb/credit_card -w /tmp/nvflare/workspace/xgb/credit_card/ cd .. ``` -Below is the output of last 9th and 10th round of training (starting round = 0) +Below is the output of last round of training (starting round = 0) ``` ... - -[19:58:27] [8] eval-auc:0.67126 train-auc:0.71717 -[19:58:27] [8] eval-auc:0.67126 train-auc:0.71717 -[19:58:27] [8] eval-auc:0.67126 train-auc:0.71717 -[19:58:27] [8] eval-auc:0.67126 train-auc:0.71717 -[19:58:27] [8] eval-auc:0.67126 train-auc:0.71717 -[19:58:27] [8] eval-auc:0.67126 train-auc:0.71717 -[19:58:27] [8] eval-auc:0.67126 train-auc:0.71717 -[19:58:27] [8] eval-auc:0.67126 train-auc:0.71717 -[19:58:27] [8] eval-auc:0.67126 train-auc:0.71717 -[19:58:27] [8] eval-auc:0.67126 train-auc:0.71717 - -[19:58:30] [9] eval-auc:0.67348 train-auc:0.71769 -[19:58:30] [9] eval-auc:0.67348 train-auc:0.71769 -[19:58:30] [9] eval-auc:0.67348 train-auc:0.71769 -[19:58:30] [9] eval-auc:0.67348 train-auc:0.71769 -[19:58:30] [9] eval-auc:0.67348 train-auc:0.71769 -[19:58:30] [9] eval-auc:0.67348 train-auc:0.71769 -[19:58:30] [9] eval-auc:0.67348 train-auc:0.71769 -[19:58:30] [9] eval-auc:0.67348 train-auc:0.71769 -[19:58:30] [9] eval-auc:0.67348 train-auc:0.71769 -[19:58:30] [9] eval-auc:0.67348 train-auc:0.71769 -[07:33:54] Finished training +[9] eval-auc:0.67596 train-auc:0.70582 ``` - - +For GNN embeddings, we run the following command +``` +cd nvflare +python xgb_job_embed.py -c 'YSYCESMM_Bank_7' 'FBSFCHZH_Bank_6' 'YXRXGB22_Bank_3' 'XITXUS33_Bank_10' 'HCBHSGSG_Bank_9' 'YMNYFRPP_Bank_5' 'ZHSZUS33_Bank_1' 'ZNZZAU3M_Bank_8' 'SHSHKHH1_Bank_2' 'WPUWDEFF_Bank_4' -i /tmp/nvflare/xgb/credit_card -w /tmp/nvflare/workspace/xgb/credit_card_embed/ +cd .. +``` +Below is the output of last round of training (starting round = 0) +``` +... +[9] eval-auc:0.53788 train-auc:0.61659 +``` +For this example, the normalized data performs better than the GNN embeddings. This is expected as the GNN embeddings are produced with randomly generated transactional information, which adds noise to the data. diff --git a/examples/advanced/finance-end-to-end/graphsage_finance_local.py b/examples/advanced/finance-end-to-end/graphsage_finance_local.py deleted file mode 100644 index 3413a7befc..0000000000 --- a/examples/advanced/finance-end-to-end/graphsage_finance_local.py +++ /dev/null @@ -1,167 +0,0 @@ -# Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import argparse -import os - -import numpy as np -import pandas as pd -import torch -import torch.nn.functional as F -from torch.utils.tensorboard import SummaryWriter -from torch_geometric.data import Data -from torch_geometric.loader import LinkNeighborLoader -from torch_geometric.nn import GraphSAGE - -DEVICE = "cuda:0" - - -def edge_index_gen(df_feat_class, df_edges): - # Sort the data by UETR - df_feat_class = df_feat_class.sort_values(by="UETR").reset_index(drop=True) - - # Generate UETR-index map with the feature list - node_ids = df_feat_class["UETR"].values - map_id = {j: i for i, j in enumerate(node_ids)} # mapping nodes to indexes - - # Get class labels - labels = df_feat_class["Class"].values - - # Map UETR to indexes in the edge map - edges = df_edges.copy() - edges.UETR_1 = edges.UETR_1.map(map_id) - edges.UETR_2 = edges.UETR_2.map(map_id) - edges = edges.astype(int) - - # for undirected graph - edge_index = np.array(edges.values).T - edge_index = torch.tensor(edge_index, dtype=torch.long).contiguous() - weights = torch.tensor([1] * edge_index.shape[1], dtype=torch.float) - - # UETR mapped to corresponding indexes, drop UETR and class - node_features = df_feat_class.drop(["UETR", "Class"], axis=1).copy() - node_features = torch.tensor(np.array(node_features.values), dtype=torch.float) - - return node_features, edge_index, weights, node_ids, labels - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument( - "--data_path", - type=str, - default="/tmp/dataset/horizontal_credit_fraud_data/ZHSZUS33_Bank_1", - ) - parser.add_argument( - "--epochs", - type=int, - default=100, - ) - parser.add_argument( - "--output_path", - type=str, - default="/tmp/nvflare/gnn/finance_local", - ) - args = parser.parse_args() - - # Set up tensorboard - writer = SummaryWriter(os.path.join(args.output_path)) - - # Create elliptic dataset for training. - df_data = pd.read_csv(os.path.join(args.data_path, "train_normalized.csv"), index_col=0) - # Drop irrelevant columns - df_feat_class = df_data.drop( - columns=["Currency_Country", "Beneficiary_BIC", "Currency", "Receiver_BIC", "Sender_BIC"] - ) - # Use GNN in unsupervised mode, drop the class column - df_edges = pd.read_csv(os.path.join(args.data_path, "train_edgemap.csv"), header=None) - # Add column names to the edge map - df_edges.columns = ["UETR_1", "UETR_2"] - - # Preprocess data - node_features, edge_index, weights, ids, labels = edge_index_gen(df_feat_class, df_edges) - - # Converting data to PyG graph data format - train_data = Data(x=node_features, edge_index=edge_index, edge_attr=weights) - - # Define the dataloader for graphsage training - loader = LinkNeighborLoader( - train_data, - batch_size=2048, - shuffle=True, - neg_sampling_ratio=1.0, - num_neighbors=[10, 10], - num_workers=6, - persistent_workers=True, - ) - - # Model - model = GraphSAGE( - in_channels=node_features.shape[1], - hidden_channels=64, - num_layers=2, - out_channels=64, - ) - optimizer = torch.optim.Adam(model.parameters(), lr=1e-3) - model.to(DEVICE) - - for epoch in range(1, args.epochs + 1): - model.train() - running_loss = instance_count = 0 - for data in loader: - # get the inputs data - data = data.to(DEVICE) - # zero the parameter gradients - optimizer.zero_grad() - # forward + backward + optimize - h = model(data.x, data.edge_index) - h_src = h[data.edge_label_index[0]] - h_dst = h[data.edge_label_index[1]] - link_pred = (h_src * h_dst).sum(dim=-1) # Inner product. - loss = F.binary_cross_entropy_with_logits(link_pred, data.edge_label) - loss.backward() - optimizer.step() - # add record - running_loss += float(loss.item()) * link_pred.numel() - instance_count += link_pred.numel() - print(f"Epoch: {epoch:02d}, Loss: {running_loss / instance_count:.4f}") - writer.add_scalar("train_loss", running_loss / instance_count, epoch) - - # Save the model - torch.save(model.state_dict(), os.path.join(args.output_path, "model.pt")) - - # Load the model and perform inference / encoding - model_enc = GraphSAGE( - in_channels=node_features.shape[1], - hidden_channels=64, - num_layers=2, - out_channels=64, - ) - model_enc.load_state_dict(torch.load(os.path.join(args.output_path, "model.pt"))) - model_enc.eval() - # Perform encoding - h = model_enc(node_features, edge_index) - embed = pd.DataFrame(h.cpu().detach().numpy()) - # Add column names as V_0, V_1, ... V_63 - embed.columns = [f"V_{i}" for i in range(embed.shape[1])] - # Concatenate the node ids and class labels with the encoded features - embed["UETR"] = ids - embed["Class"] = labels - # Move the UETR and Class columns to the front - embed = embed[["UETR", "Class"] + [col for col in embed.columns if col not in ["UETR", "Class"]]] - embed.to_csv(os.path.join(args.output_path, "encoded_features.csv"), index=False) - - -if __name__ == "__main__": - main() diff --git a/examples/advanced/finance-end-to-end/nvflare/gnn_train_encode.py b/examples/advanced/finance-end-to-end/nvflare/gnn_train_encode.py new file mode 100644 index 0000000000..b50abea8d2 --- /dev/null +++ b/examples/advanced/finance-end-to-end/nvflare/gnn_train_encode.py @@ -0,0 +1,233 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import os + +import numpy as np +import pandas as pd +import torch +import torch.nn.functional as F +from torch.utils.tensorboard import SummaryWriter +from torch_geometric.data import Data +from torch_geometric.loader import LinkNeighborLoader +from torch_geometric.nn import GraphSAGE + +DEVICE = "cuda:0" + +# (1) import nvflare client API +import nvflare.client as flare + + +def edge_index_gen(df_feat_class, df_edges): + # Sort the data by UETR + df_feat_class = df_feat_class.sort_values(by="UETR").reset_index(drop=True) + + # Generate UETR-index map with the feature list + node_id = df_feat_class["UETR"].values + map_id = {j: i for i, j in enumerate(node_id)} # mapping nodes to indexes + + # Get class labels + label = df_feat_class["Class"].values + + # Map UETR to indexes in the edge map + edges = df_edges.copy() + edges.UETR_1 = edges.UETR_1.map(map_id) + edges.UETR_2 = edges.UETR_2.map(map_id) + edges = edges.astype(int) + + # for undirected graph + edge_index = np.array(edges.values).T + edge_index = torch.tensor(edge_index, dtype=torch.long).contiguous() + weight = torch.tensor([1] * edge_index.shape[1], dtype=torch.float) + + # UETR mapped to corresponding indexes, drop UETR and class + node_feat = df_feat_class.drop(["UETR", "Class"], axis=1).copy() + node_feat = torch.tensor(np.array(node_feat.values), dtype=torch.float) + + return node_feat, edge_index, weight, node_id, label + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument( + "-i", + "--data_path", + type=str, + default="/tmp/dataset/credit_data", + ) + parser.add_argument( + "--epochs", + type=int, + default=1, + ) + parser.add_argument( + "-o", + "--output_path", + type=str, + default="/tmp/dataset/credit_data", + ) + args = parser.parse_args() + + # (2) initializes NVFlare client API + flare.init() + site_name = flare.get_site_name() + + # Set up tensorboard + writer = SummaryWriter(os.path.join(args.output_path, site_name)) + + # Load the data + dataset_names = ["train", "test"] + + node_features = {} + edge_indices = {} + weights = {} + node_ids = {} + labels = {} + + for ds_name in dataset_names: + # Get feature and class + file_name = os.path.join(args.data_path, site_name, f"{ds_name}_normalized.csv") + df = pd.read_csv(file_name, index_col=0) + # Drop irrelevant columns + df = df.drop(columns=["Currency_Country", "Beneficiary_BIC", "Currency", "Receiver_BIC", "Sender_BIC"]) + df_feat_class = df + # Get edge map + file_name = os.path.join(args.data_path, site_name, f"{ds_name}_edgemap.csv") + df = pd.read_csv(file_name, header=None) + # Add column names to the edge map + df.columns = ["UETR_1", "UETR_2"] + df_edges = df + + # Preprocess data + node_feat, edge_index, weight, node_id, label = edge_index_gen(df_feat_class, df_edges) + node_features[ds_name] = node_feat + edge_indices[ds_name] = edge_index + weights[ds_name] = weight + node_ids[ds_name] = node_id + labels[ds_name] = label + + # Converting training data to PyG graph data format + train_data = Data(x=node_features["train"], edge_index=edge_indices["train"], edge_attr=weights["train"]) + + # Define the dataloader for graphsage training + loader = LinkNeighborLoader( + train_data, + batch_size=2048, + shuffle=True, + neg_sampling_ratio=1.0, + num_neighbors=[10, 10], + num_workers=6, + persistent_workers=True, + ) + + # Model + model = GraphSAGE( + in_channels=node_features["train"].shape[1], + hidden_channels=64, + num_layers=2, + out_channels=64, + ) + + while flare.is_running(): + # (3) receives FLModel from NVFlare + input_model = flare.receive() + print(f"current_round={input_model.current_round}/{input_model.total_rounds}") + + # (4) loads model from NVFlare + model.load_state_dict(input_model.params) + + # (5) perform encoding for both training and test data + def gnn_encode(model_param, node_feature, edge_index, id, label): + # Load the model and perform inference / encoding + model_enc = GraphSAGE( + in_channels=node_feature.shape[1], + hidden_channels=64, + num_layers=2, + out_channels=64, + ) + model_enc.load_state_dict(model_param) + model_enc.to(DEVICE) + model_enc.eval() + node_feature = node_feature.to(DEVICE) + edge_index = edge_index.to(DEVICE) + + # Perform encoding + h = model_enc(node_feature, edge_index) + embed = pd.DataFrame(h.cpu().detach().numpy()) + # Add column names as V_0, V_1, ... V_63 + embed.columns = [f"V_{i}" for i in range(embed.shape[1])] + # Concatenate the node ids and class labels with the encoded features + embed["UETR"] = id + embed["Class"] = label + # Move the UETR and Class columns to the front + embed = embed[["UETR", "Class"] + [col for col in embed.columns if col not in ["UETR", "Class"]]] + return embed + + # Only do encoding for the last round + if input_model.current_round == input_model.total_rounds - 1: + print("Encoding the data with the final model") + for ds_name in dataset_names: + embed = gnn_encode( + input_model.params, + node_features[ds_name], + edge_indices[ds_name], + node_ids[ds_name], + labels[ds_name], + ) + embed.to_csv(os.path.join(args.output_path, site_name, f"{ds_name}_embedding.csv"), index=False) + + optimizer = torch.optim.Adam(model.parameters(), lr=1e-3) + model.to(DEVICE) + steps = args.epochs * len(loader) + for epoch in range(1, args.epochs + 1): + model.train() + running_loss = instance_count = 0 + for data in loader: + # get the inputs data + data = data.to(DEVICE) + # zero the parameter gradients + optimizer.zero_grad() + # forward + backward + optimize + h = model(data.x, data.edge_index) + h_src = h[data.edge_label_index[0]] + h_dst = h[data.edge_label_index[1]] + link_pred = (h_src * h_dst).sum(dim=-1) # Inner product. + loss = F.binary_cross_entropy_with_logits(link_pred, data.edge_label) + loss.backward() + optimizer.step() + # add record + running_loss += float(loss.item()) * link_pred.numel() + instance_count += link_pred.numel() + print(f"Epoch: {epoch:02d}, Loss: {running_loss / instance_count:.4f}") + writer.add_scalar( + "train_loss", running_loss / instance_count, input_model.current_round * args.epochs + epoch + ) + + print("Finished Training") + # Save the model + torch.save(model.state_dict(), os.path.join(args.output_path, site_name, "model.pt")) + + # (6) construct trained FL model + output_model = flare.FLModel( + params=model.cpu().state_dict(), + metrics={"loss": running_loss}, + meta={"NUM_STEPS_CURRENT_ROUND": steps}, + ) + # (7) send model back to NVFlare + flare.send(output_model) + + +if __name__ == "__main__": + main() diff --git a/examples/advanced/finance-end-to-end/nvflare/gnn_train_encode_job.py b/examples/advanced/finance-end-to-end/nvflare/gnn_train_encode_job.py new file mode 100644 index 0000000000..16518a74c9 --- /dev/null +++ b/examples/advanced/finance-end-to-end/nvflare/gnn_train_encode_job.py @@ -0,0 +1,116 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import argparse + +from torch_geometric.nn import GraphSAGE + +from nvflare import FedJob +from nvflare.app_common.workflows.fedavg import FedAvg +from nvflare.app_opt.pt.job_config.model import PTModel +from nvflare.job_config.script_runner import ScriptRunner + + +def main(): + args = define_parser() + + site_names = args.sites + n_clients = len(site_names) + + work_dir = args.work_dir + task_script_path = args.task_script_path + task_script_args = args.task_script_args + + job = FedJob(name="gnn_train_encode_job") + + # Define the controller workflow and send to server + controller = FedAvg( + num_clients=n_clients, + num_rounds=args.num_rounds, + ) + job.to(controller, "server") + + # Define the model + model = GraphSAGE( + in_channels=10, + hidden_channels=64, + num_layers=2, + out_channels=64, + ) + job.to(PTModel(model), "server") + + # Add clients + for site_name in site_names: + executor = ScriptRunner(script=task_script_path, script_args=task_script_args) + job.to(executor, site_name) + + if work_dir: + print(f"{work_dir=}") + job.export_job(work_dir) + + if not args.config_only: + job.simulator_run(work_dir) + + +def define_parser(): + parser = argparse.ArgumentParser() + parser.add_argument( + "-c", + "--sites", + nargs="*", # 0 or more values expected => creates a list + type=str, + default=[], # default if nothing is provided + help="Space separated site names", + ) + parser.add_argument( + "-n", + "--num_rounds", + type=int, + default=100, + help="number of FL rounds", + ) + parser.add_argument( + "-w", + "--work_dir", + type=str, + nargs="?", + default="/tmp/nvflare/jobs/xgb/workdir", + help="work directory, default to '/tmp/nvflare/jobs/xgb/workdir'", + ) + + parser.add_argument( + "-p", + "--task_script_path", + type=str, + nargs="?", + help="task script", + ) + + parser.add_argument( + "-a", + "--task_script_args", + type=str, + nargs="?", + default="", + help="", + ) + + parser.add_argument("-co", "--config_only", action="store_true", help="config only mode, will not run simulator") + + return parser.parse_args() + + +if __name__ == "__main__": + main() diff --git a/examples/advanced/finance-end-to-end/nvflare/xgb_data_loader.py b/examples/advanced/finance-end-to-end/nvflare/xgb_data_loader.py index 0b88e21e46..a5eef83dad 100644 --- a/examples/advanced/finance-end-to-end/nvflare/xgb_data_loader.py +++ b/examples/advanced/finance-end-to-end/nvflare/xgb_data_loader.py @@ -30,6 +30,7 @@ def __init__(self, root_dir: str, file_postfix: str): self.file_postfix = file_postfix for name in self.dataset_names: self.base_file_names[name] = name + file_postfix + self.numerical_columns = [ "Timestamp", "Amount", @@ -53,6 +54,8 @@ def load_data(self) -> Tuple[xgb.DMatrix, xgb.DMatrix]: for ds_name in self.dataset_names: print("\nloading for site = ", self.client_id, f"{ds_name} dataset \n") file_name = os.path.join(self.root_dir, self.client_id, self.base_file_names[ds_name]) + print(file_name) + print(self.numerical_columns) df = pd.read_csv(file_name) data_num = len(data) diff --git a/examples/advanced/finance-end-to-end/nvflare/xgb_embed_data_loader.py b/examples/advanced/finance-end-to-end/nvflare/xgb_embed_data_loader.py new file mode 100644 index 0000000000..aec50a5711 --- /dev/null +++ b/examples/advanced/finance-end-to-end/nvflare/xgb_embed_data_loader.py @@ -0,0 +1,64 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import os +from typing import Tuple + +import pandas as pd +import xgboost as xgb + +from nvflare.app_opt.xgboost.data_loader import XGBDataLoader + + +class CreditCardEmbedDataLoader(XGBDataLoader): + def __init__(self, root_dir: str, file_postfix: str): + self.dataset_names = ["train", "test"] + self.base_file_names = {} + self.root_dir = root_dir + self.file_postfix = file_postfix + for name in self.dataset_names: + self.base_file_names[name] = name + file_postfix + self.numerical_columns = [f"V_{i}" for i in range(64)] + + def initialize( + self, client_id: str, rank: int, data_split_mode: xgb.core.DataSplitMode = xgb.core.DataSplitMode.ROW + ): + super().initialize(client_id, rank, data_split_mode) + + def load_data(self) -> Tuple[xgb.DMatrix, xgb.DMatrix]: + data = {} + for ds_name in self.dataset_names: + print("\nloading for site = ", self.client_id, f"{ds_name} dataset") + file_name = os.path.join(self.root_dir, self.client_id, self.base_file_names[ds_name]) + print(file_name) + print(self.numerical_columns) + print("\n") + df = pd.read_csv(file_name) + data_num = len(data) + + # split to feature and label + y = df["Class"] + x = df[self.numerical_columns] + data[ds_name] = (x, y, data_num) + + # training + x_train, y_train, total_train_data_num = data["train"] + dmat_train = xgb.DMatrix(x_train, label=y_train, data_split_mode=self.data_split_mode) + + # validation + x_valid, y_valid, total_valid_data_num = data["test"] + dmat_valid = xgb.DMatrix(x_valid, label=y_valid, data_split_mode=self.data_split_mode) + + return dmat_train, dmat_valid diff --git a/examples/advanced/finance-end-to-end/nvflare/xgb_job_embed.py b/examples/advanced/finance-end-to-end/nvflare/xgb_job_embed.py new file mode 100644 index 0000000000..26e76b60a0 --- /dev/null +++ b/examples/advanced/finance-end-to-end/nvflare/xgb_job_embed.py @@ -0,0 +1,120 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse + +from xgb_embed_data_loader import CreditCardEmbedDataLoader + +from nvflare import FedJob +from nvflare.app_opt.xgboost.histogram_based_v2.fed_controller import XGBFedController +from nvflare.app_opt.xgboost.histogram_based_v2.fed_executor import FedXGBHistogramExecutor + + +def main(): + args = define_parser() + + site_names = args.sites + work_dir = args.work_dir + job_name = args.job_name + root_dir = args.input_dir + file_postfix = args.file_postfix + + num_rounds = 10 + early_stopping_rounds = 10 + xgb_params = { + "max_depth": 8, + "eta": 0.1, + "objective": "binary:logistic", + "eval_metric": "auc", + "tree_method": "hist", + "nthread": 16, + } + + job = FedJob(name=job_name) + + # Define the controller workflow and send to server + controller = XGBFedController( + num_rounds=num_rounds, + data_split_mode=0, + secure_training=False, + xgb_params=xgb_params, + xgb_options={"early_stopping_rounds": early_stopping_rounds}, + ) + job.to(controller, "server") + + # Add clients + for site_name in site_names: + executor = FedXGBHistogramExecutor(data_loader_id="data_loader") + job.to(executor, site_name) + data_loader = CreditCardEmbedDataLoader(root_dir=root_dir, file_postfix=file_postfix) + job.to(data_loader, site_name, id="data_loader") + + if work_dir: + print("work_dir=", work_dir) + job.export_job(work_dir) + + if not args.config_only: + job.simulator_run(work_dir) + + +def define_parser(): + parser = argparse.ArgumentParser() + parser.add_argument( + "-c", + "--sites", + nargs="*", # 0 or more values expected => creates a list + type=str, + default=[], # default if nothing is provided + help="Space separated site names", + ) + parser.add_argument( + "-n", + "--job_name", + type=str, + nargs="?", + default="xgb_job", + help="job name, default to xgb_job", + ) + parser.add_argument( + "-w", + "--work_dir", + type=str, + nargs="?", + default="/tmp/nvflare/jobs/xgb/workdir", + help="work directory, default to '/tmp/nvflare/jobs/xgb/workdir'", + ) + parser.add_argument( + "-i", + "--input_dir", + type=str, + nargs="?", + default="", + help="root directory for input data", + ) + parser.add_argument( + "-p", + "--file_postfix", + type=str, + nargs="?", + default="_embedding.csv", + help="file ending postfix, such as '.csv', or '_embedding.csv'", + ) + + parser.add_argument("-co", "--config_only", action="store_true", help="config only mode, will not run simulator") + + return parser.parse_args() + + +if __name__ == "__main__": + main() diff --git a/examples/advanced/finance-end-to-end/xgboost.ipynb b/examples/advanced/finance-end-to-end/xgboost.ipynb index e00cc23687..eca92a0d88 100644 --- a/examples/advanced/finance-end-to-end/xgboost.ipynb +++ b/examples/advanced/finance-end-to-end/xgboost.ipynb @@ -123,10 +123,12 @@ "In order to run feature graph construction job on each site similar to the enrichment and processing steps, we wrote federated ETL job scripts for client-side based on single-site implementations.\n", "\n", "* [graph_construction script](./nvflare/graph_construct.py)\n", + "* [gnn_train_encode script](./nvflare/gnn_train_encode.py)\n", "\n", "Similarily, we define job scripts on server-side to trigger and coordinate running client-side scripts on each site: \n", "\n", - "* [graph_construction_job.py](./nvflare/graph_construct_job.py)" + "* [graph_construction_job.py](./nvflare/graph_construct_job.py)\n", + "* [gnn_train_encode_job.py](./nvflare/gnn_train_encode_job.py)" ] }, { From 4f8b88d1533d5749fb7f387925824839d130337c Mon Sep 17 00:00:00 2001 From: Ziyue Xu Date: Mon, 7 Oct 2024 10:36:52 -0400 Subject: [PATCH 8/8] Update wording for readme --- examples/advanced/finance-end-to-end/README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/advanced/finance-end-to-end/README.md b/examples/advanced/finance-end-to-end/README.md index c9fd2304ce..d438085108 100644 --- a/examples/advanced/finance-end-to-end/README.md +++ b/examples/advanced/finance-end-to-end/README.md @@ -105,7 +105,7 @@ the file is then saved to "_normalized.csv" #### Federated Enrichment and Normalization for All Sites We can easily convert the notebook code into the python code for federated execution on each site. -##### Client-side code +##### Task code Convert the enrichment code for one-site to the federated learning, refer to [enrich.py](./nvflare/enrich.py) The main execution flow is the following: @@ -160,9 +160,8 @@ def main(): Similar adaptation is required for the normalization code, refer to [pre_process.py](./nvflare/pre_process.py) for details. -##### Server-side code -Federated ETL requires both server-side and client-side code. The above ETL script is the client-side code. -To complete the setup, we need server-side code to configure and specify the federated job. +##### Job code +Job code is executed to trigger and dispatch the ETL tasks from the previous step. For this purpose, we wrote the following script: [enrich_job.py](./nvflare/enrich_job.py) ```

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%0DS30**&*v{@+Wi)M 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 jS(%|+lwUIBqk#Vff&o(g diff --git a/examples/advanced/finance-end-to-end/images/generated_data.png b/examples/advanced/finance-end-to-end/images/generated_data.png index 4428a5f12d16f87fdc0f1f75454c70c87d927926..46a1aeef1fc68740df6389ad3785b8de95646223 100644 GIT binary patch literal 105510 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 I()ZDS07MWh$N&HU literal 161222 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