From f487588665b94403ff3d61fe6c4112a6e70091cd Mon Sep 17 00:00:00 2001 From: weijiexia1996 Date: Wed, 16 Oct 2024 14:29:22 +0200 Subject: [PATCH 01/10] svr GP --- dataset/data_loader.py | 4 - dataset/data_process.py | 10 +- exp/gp/__init__.py | 0 exp/gp/gp_predictor.py | 194 +++++++++++++++++++++++++++++++++++++ exp/gp/test.py | 58 +++++++++++ exp/svr/__init__.py | 0 exp/svr/svr_predictor.py | 145 +++++++++++++++++++++++++++ gp.png | Bin 0 -> 117926 bytes sklearn-env/bin/python | 1 + sklearn-env/bin/python3 | 1 + sklearn-env/bin/python3.10 | 1 + sklearn-env/lib64 | 1 + sklearn-env/pyvenv.cfg | 3 + 13 files changed, 409 insertions(+), 9 deletions(-) create mode 100644 exp/gp/__init__.py create mode 100644 exp/gp/gp_predictor.py create mode 100644 exp/gp/test.py create mode 100644 exp/svr/__init__.py create mode 100644 exp/svr/svr_predictor.py create mode 100644 gp.png create mode 120000 sklearn-env/bin/python create mode 120000 sklearn-env/bin/python3 create mode 120000 sklearn-env/bin/python3.10 create mode 120000 sklearn-env/lib64 create mode 100644 sklearn-env/pyvenv.cfg diff --git a/dataset/data_loader.py b/dataset/data_loader.py index 95c0db2..cf2eb0c 100644 --- a/dataset/data_loader.py +++ b/dataset/data_loader.py @@ -19,12 +19,8 @@ def __init__( df: pd.DataFrame, prediction_length: int = 24, context_length: int = 72, - # num_houses: int, - # num_pairs: int = 60, total_pairs: int = 1800, random_state: int = 0000, - # window_length: int, - # window_split_ratio: float, ): pair_maker = dp.PairMaker( window_length=prediction_length+context_length, diff --git a/dataset/data_process.py b/dataset/data_process.py index 82da46e..55bfe0c 100644 --- a/dataset/data_process.py +++ b/dataset/data_process.py @@ -329,7 +329,7 @@ def make_pairs(self, load = LoadDataset( resolution='60m', country='nl', - split_ratio=0.6 + split_ratio=0.3 ) train, test = load.load_dataset_agg(num_agg=2, num_houses=3) @@ -343,10 +343,10 @@ def make_pairs(self, random_state=42 ) - # # Select one group of data - # train = train[train['id'] == train['id'].unique()[0]] - # X, Y = pair_maker.make_pairs(train, type_of_split='overlap') - # print(X.shape, Y.shape) + # Select one group of data + train = train[train['id'] == train['id'].unique()[0]] + X, Y = pair_maker.make_pairs(train, type_of_split='overlap') + print(X.shape, Y.shape) # import matplotlib.pyplot as plt # _num = 20 diff --git a/exp/gp/__init__.py b/exp/gp/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/exp/gp/gp_predictor.py b/exp/gp/gp_predictor.py new file mode 100644 index 0000000..cafe1d2 --- /dev/null +++ b/exp/gp/gp_predictor.py @@ -0,0 +1,194 @@ +import os +import sys +parent_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) +# dataset_path = os.path.join(parent_dir, 'dataset') +sys.path.append(parent_dir) + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.gaussian_process import GaussianProcessRegressor +from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C +from sklearn.pipeline import make_pipeline +from sklearn.preprocessing import StandardScaler +import numpy as np +from tqdm import tqdm + +import dataset.data_loader as dl +import exp.eva_metrics as evm +import utility.configuration as cf + +import numpy as np +from sklearn.gaussian_process import GaussianProcessRegressor +from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C + +def train_gp_models(X, y): + models = [] + for i in range(y.shape[1]): + # Define the kernel for the Gaussian Process + kernel = C(1.0, (1e-3, 1e3)) * RBF(length_scale=1.0, length_scale_bounds=(1e-2, 1e2)) + # Initialize and train the Gaussian Process model + gp = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=10) + gp.fit(X, y[:, i]) + models.append(gp) + return models + +def gp_predict_quantiles(models, X_test): + means = np.zeros((X_test.shape[0], len(models))) + stds = np.zeros((X_test.shape[0], len(models))) + + # Obtain mean and standard deviation predictions for each output dimension + for i, model in enumerate(models): + mean, std = model.predict(X_test, return_std=True) + means[:, i] = mean + stds[:, i] = std + + # Calculate 10% and 90% quantiles using the mean and standard deviation + # quantiles = { + # '10%': means - 1.28 * stds, # 10% quantile = mean - 1.28 * std (for 10% quantile) + # 'mean': means, + # '90%': means + 1.28 * stds # 90% quantile = mean + 1.28 * std (for 90% quantile) + # } + + return means - 1.28 * stds, means, means + 1.28 * stds + + +if __name__ == "__main__": + # ----------------- Experiment Configuration ----------------- + reso_country = [ + ('60m', 'nl'), + ('60m', 'ge'), + ('30m', 'ge'), + ('15m', 'ge'), + ('30m', 'uk'), + ('60m', 'uk'), + ] + + + exp_id = cf.generate_time_id() + split_ratio = 0.3 + + for reso, country in reso_country: + if reso == '60m': + num_steps_day = 24 + elif reso == '30m': + num_steps_day = 48 + elif reso == '15m': + num_steps_day = 96 + + for _type in ['ind','agg']: # 'agg', , 'ind' + print('--------------------------------------------------') + print(f"reso: {reso}, country: {country}, type: {_type}") + print('--------------------------------------------------') + # load datastet + pair_iterable = dl.data_for_exp( + resolution = reso, + country = country, + data_type = _type, + context_length=num_steps_day*3, + prediction_length=num_steps_day, + ) + + # pair_iterable.total_pairs = 10 # NOTE only for debug + batch_size = 128*2 + pair_it = dl.collate_numpy(pair_iterable, batch_size) + + data_config = cf.DataConfig( + country=country, + resolution=reso, + aggregation_type=_type, + ) + foo = next(iter(pair_iterable)) + model_config = cf.ModelConfig( + model_name="GP", + lookback_window=foo[0].shape[-1], + prediction_length=foo[1].shape[-1], + ) + + # ----------------- Experiment Configuration ----------------- + + # ----------------- Experiment ----------------- + _q_10, _q_50, _q_90, _mae, _rmse = [], [], [], [], [] + + for x , y in tqdm(pair_it, total = len(pair_iterable)//batch_size): + x = x.reshape(x.shape[0],-1) + y = y.reshape(y.shape[0],-1) + + # fig regressor + regrs = train_gp_models(x[:int(split_ratio*x.shape[0]),:], y[:int(split_ratio*x.shape[0]),:]) + + # make predction + x = x[int(split_ratio*x.shape[0]):,:] + y = y[int(split_ratio*y.shape[0]):,:] + low, mean, high = gp_predict_quantiles(regrs, x) + ow = np.nan_to_num(low, nan=0) + mean = np.nan_to_num(mean, nan=0) + high = np.nan_to_num(high, nan=0) + + _q_10.append(evm.quantile_loss(low, y, 0.1).mean()) + _q_50.append(evm.quantile_loss(mean, y, 0.5).mean()) + _q_90.append(evm.quantile_loss(high, y, 0.9).mean()) + _mae.append(evm.mae(mean, y)) + _rmse.append(evm.rmse(mean, y)) + + _q_10, _q_50, _q_90, _mae, _rmse = np.mean(_q_10), np.mean(_q_50), np.mean(_q_90), np.mean(_mae), np.mean(_rmse) + + print('low, median, high shape', low.shape, mean.shape, high.shape) + print('input shape', x.shape) + print('target, forecast shape', y.shape, mean.shape) + + + eval_metrics = evm.EvaluationMetrics( + quantile_loss={ + '0.1': _q_10, + '0.5': _q_50, + '0.9': _q_90, + }, + mae=_mae, + rmse=_rmse, + ) + + print(f"reso: {reso}, country: {country}, type: {_type}") + print(f"q_10_loss: {_q_10}") + print(f"q_50_loss: {_q_50}") + print(f"q_90_loss: {_q_90}") + print(f"mae_loss: {_mae}") + print(f"rmse_loss: {_rmse}") + + exp_config = cf.ExperimentConfig( + exp_id=exp_id, + data=data_config, + model=model_config, + result=eval_metrics, + ) + exp_config.append_csv(f'exp/gp/result/{exp_id}.csv') + # ----------------- Experiment ----------------- + + # ----------------- Plot the Results----------- + plt.plot(x[0, :], label='Input', color='b') + + # Create the range for the target and predicted values + target_range = range(len(x[0, :]), len(x[0, :]) + len(y[0, :])) + + # Plot the target sequence + plt.plot(target_range, y[0, :], c='r', label='Target') + + # Plot the median prediction + plt.plot(target_range, mean[0, :], c='g', label='Median') + + # Fill the area between low and high predictions + plt.fill_between(target_range, low[0, :], high[0, :], color='gray', alpha=0.3, label='Uncertainty') + + # Set plot labels and title + plt.xlabel('Time') + plt.ylabel('Value') + plt.title(f'GP Predictions for {country.capitalize()} ({_type.capitalize()})') + + # Add a legend + # plt.legend() + + # Save the plot + _path = 'exp/gp/result/' + plt.savefig(_path + f'gp_{country}_{reso}_{_type}.png') + plt.close() + + \ No newline at end of file diff --git a/exp/gp/test.py b/exp/gp/test.py new file mode 100644 index 0000000..f4a3d40 --- /dev/null +++ b/exp/gp/test.py @@ -0,0 +1,58 @@ +import numpy as np +import matplotlib.pyplot as plt +from sklearn.datasets import make_friedman2 +from sklearn.gaussian_process import GaussianProcessRegressor +from sklearn.gaussian_process.kernels import DotProduct, WhiteKernel + +# Generate multi-dimensional output data (e.g., modify the dataset as needed) +# Here, using make_friedman2 and repeating y to simulate multi-dimensional output +X, y_single = make_friedman2(n_samples=500, noise=0, random_state=0) +y = np.stack([y_single, y_single * 1.5 + 10], axis=1) # Example multi-dimensional output (shape: (500, 2)) + +# Define kernel and prepare the list for storing models +kernel = DotProduct() + WhiteKernel() +models = [] + +# Fit a separate GPR model for each output dimension +for i in range(y.shape[1]): + gpr = GaussianProcessRegressor(kernel=kernel, random_state=0).fit(X, y[:, i]) + models.append(gpr) + +# Make predictions and plot for the first dimension +X_test = X[:100, :] # Using 100 samples from X for demonstration +mean_preds = [] +std_preds = [] + +# Generate predictions for each output dimension +for model in models: + mean_pred, std_pred = model.predict(X_test, return_std=True) + mean_preds.append(mean_pred) + std_preds.append(std_pred) + +# Plot for the first dimension (y[:, 0]) +plt.figure(figsize=(12, 6)) + +# Sort data to create a smooth curve +sorted_idx = np.argsort(X_test[:, 0]) # Sorting by the first feature for visualization +X_sorted = X_test[sorted_idx] +mean_sorted = mean_preds[0][sorted_idx] +std_sorted = std_preds[0][sorted_idx] + +# Mean prediction for the first dimension +plt.plot(X_sorted[:, 0], mean_sorted, 'r-', label="Mean Prediction (Dim 1)") + +# 95% Confidence interval for the first dimension +plt.fill_between(X_sorted[:, 0], + mean_sorted - 1.96 * std_sorted, + mean_sorted + 1.96 * std_sorted, + alpha=0.2, color='gray', label="95% Confidence Interval (Dim 1)") + +# Scatter plot of actual values for comparison (first dimension) +plt.scatter(X_sorted[:, 0], y[:100, 0][sorted_idx], s=10, color='blue', label="Actual Values (Dim 1)", alpha=0.6) + +# Labels and title +plt.xlabel("Feature 0") +plt.ylabel("Target (Dim 1)") +plt.title("Gaussian Process Regression with Probabilistic Predictions (Dimension 1)") +plt.legend() +plt.show() diff --git a/exp/svr/__init__.py b/exp/svr/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/exp/svr/svr_predictor.py b/exp/svr/svr_predictor.py new file mode 100644 index 0000000..8b95763 --- /dev/null +++ b/exp/svr/svr_predictor.py @@ -0,0 +1,145 @@ +import os +import sys +parent_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) +# dataset_path = os.path.join(parent_dir, 'dataset') +sys.path.append(parent_dir) + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.svm import SVR +from sklearn.pipeline import make_pipeline +from sklearn.preprocessing import StandardScaler +import numpy as np +from tqdm import tqdm + +import dataset.data_loader as dl +import exp.eva_metrics as evm +import utility.configuration as cf + +def svr_fit(input, target): + regrs = [] + for _col in range(target.shape[1]): + regr = make_pipeline(StandardScaler(), SVR(C=1.0, epsilon=0.2)) + regr.fit(input, target[:, _col]) + regrs.append(regr) + return regrs + +def svr_pred(input, regrs): + # Prepare the output array with zeros, matching the shape (n, d) + predictions = np.zeros((input.shape[0], len(regrs))) + + # Use each trained model to predict its corresponding column + for i, regr in enumerate(regrs): + predictions[:, i] = regr.predict(input) + + return predictions + +if __name__ == "__main__": + # ----------------- Experiment Configuration ----------------- + reso_country = [ + ('60m', 'nl'), + ('60m', 'ge'), + ('30m', 'ge'), + ('15m', 'ge'), + ('30m', 'uk'), + ('60m', 'uk'), + ] + + + exp_id = cf.generate_time_id() + split_ratio = 0.3 + + for reso, country in reso_country: + if reso == '60m': + num_steps_day = 24 + elif reso == '30m': + num_steps_day = 48 + elif reso == '15m': + num_steps_day = 96 + + for _type in ['ind','agg']: # 'agg', , 'ind' + print('--------------------------------------------------') + print(f"reso: {reso}, country: {country}, type: {_type}") + print('--------------------------------------------------') + # load datastet + pair_iterable = dl.data_for_exp( + resolution = reso, + country = country, + data_type = _type, + context_length=num_steps_day*3, + prediction_length=num_steps_day, + ) + + # pair_iterable.total_pairs = 10 # NOTE only for debug + batch_size = 128*2 + pair_it = dl.collate_numpy(pair_iterable, batch_size) + + data_config = cf.DataConfig( + country=country, + resolution=reso, + aggregation_type=_type, + ) + foo = next(iter(pair_iterable)) + model_config = cf.ModelConfig( + model_name="SVR", + lookback_window=foo[0].shape[-1], + prediction_length=foo[1].shape[-1], + ) + + # ----------------- Experiment Configuration ----------------- + + # ----------------- Experiment ----------------- + _mae, _rmse = [], [] + + for x , y in tqdm(pair_it, total = len(pair_iterable)//batch_size): + x = x.reshape(x.shape[0],-1) + y = y.reshape(y.shape[0],-1) + + # fig regressor + regrs = svr_fit(x[:int(split_ratio*x.shape[0]),:], y[:int(split_ratio*x.shape[0]),:]) + + # make predction + x = x[int(split_ratio*x.shape[0]):,:] + y = y[int(split_ratio*y.shape[0]):,:] + y_hat = svr_pred(x, regrs) + print(x.shape, y.shape, y_hat.shape) + + _mae.append(evm.mae(y_hat, y)) + _rmse.append(evm.rmse(y_hat, y)) + + _mae, _rmse = np.mean(_mae), np.mean(_rmse) + # Output the experiment result + eval_metrics = evm.EvaluationMetrics( + quantile_loss={ + '0.1': -1, + '0.5': -1, + '0.9': -1, + }, + mae=_mae, + rmse=_rmse, + ) + + exp_config = cf.ExperimentConfig( + exp_id=exp_id, + data=data_config, + model=model_config, + result=eval_metrics, + ) + exp_config.append_csv(f'exp/svr/result/{exp_id}.csv') + # ----------------- Experiment ----------------- + + # ----------------- Plot the Results----------- + x = x.reshape(-1, num_steps_day*3) + plt.plot(range(num_steps_day*3), x[0, :], label='Input', color='b') + target_range = range(num_steps_day*3, num_steps_day*4) + plt.plot(target_range, y[0, :], c='r', label='Target') + plt.plot(target_range, y_hat[0, :], c='g', label='Median') + plt.xlabel('Time') + plt.ylabel('Value') + plt.title(f'SVR Predictions for {country.capitalize()} ({_type.capitalize()})') + _path = 'exp/svr/result' + plt.legend() + plt.savefig(_path + f'/svr_{country}_{reso}_{_type}.png') + plt.close() + + \ No newline at end of file diff --git a/gp.png b/gp.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8be5846c8e0340560052a996d1f234b03611a7 GIT binary patch literal 117926 zcmeFZc{tVW`!>2nhK$LaObKb3r!q!JLMih+OGF~`m?<_xpR_WB;-L*?;Y0AMbNKPk9V$-JkouuJbz2^SW-K_tkEbo?|$NLZL|SD9JxS zq3{Y(s53f*`0$x$Gt3O|*9~U{9p{G*R?e=b&n!`@rp{089GvZJ%vfA3pE=n$*bDLA z;1xu(JaTq^>Lkv`_vC+l1Fyp~Yd%&r+(CE|qNhr_PAC+)De@oAN0|>cC>#{(j=Zdf zTgu{y>sxlsUYS(~&F3j|iG#u=I4 z<<79vcWOFwl0XVMLe~HMffqZlh|BW7Kk=UFoXPqB_0=~wvrshu{Z9B9BH{n@#s9Mj zNU;2WH4=#O^&M)cU$BfXm5El{y$O}?t&u^?D<8N+}{X99^{^M|q0&m!30khxFTeJCq@WuGhTB^&C&45+% z6N3ZquD`7dmebXoffT>Qx%?CeS)V*!8Y;Vfa=1~{NG9^psu5XbJiNsR#PnzUp9Z;EwbujxR*X# z+M{;OGrh8^s%SRNbCN)27w25iix1sPpVN;wKUn(nLsl>G{65Y0$y%9{y>6W%v$Jv; z6l&6Y7K;_LX%q_Qv9hO=&C2crab|zunXJMJr+ z73lcBa8?DcaHcacphrytv$)Xv-4nJ96M04l&e>|zYeO~Ppn@`thUcsC@j7j1x=h{T z!Pv?1&RS3UF;ynrA-lnyXqGz|8ur_r*d%Re=>MPX{g6 zQ~Eje`X#q<|J{LB>6{bK)=REUu=!!eNAudd?b@}I3q^mQ-5A4VLpF#~;e3%!XaB6h zXFK}QgVCKcsPEzn=*~2$i|}|n%N4UsDbBy{X!>#_cV(88^mI3tc6C}yP@Q9?dgk!< z5?P4hfnj~q8a?(&`q83w(Ms)sS#Pf9m+c|jB9n#}S7jRM0?-{VTc-+`h-H|>jImZJ zJCNMfw1@wZ!Dbv0cSMbNeq7 z_=}Yb1^@p2tM5z{S{vP|r7a)xsX9J-d=!j46xz6!k(dU3Q<$OI<5>Hx_XT2?6sK5=PI(BF&B^QM&;@p>D~CC&@H?M&VA~ zQnar!|3%V6umsT>y$m9zWn+jiYm2_Jd%RO8bLHApdEF6DJg?!af&yM=S6B0$5!cqO zeq*e!v8Lu}3_>`c4{PT4+_qzUT94!QFC)aRh68z9ztDP{=`rUPdTW#A;fj}vSp(1e z4IMYS#P03wxsJLMv@$x8z|wy9_lNL#O%Ow*5aeuPCst-Rx@95*$ixW&TlV)fxTsb! z4&KCfih{aab=)UnZM03tIs135l{s>! zdREHPSYrQQ7AxVIL&2%cAuQK@_t`)D;ZG4y5 zU9^@7yW~22e$9=s#JansRpxjtNviW%1*7!Q+&%N{#le5e%Pm(wq`W99Dk^T(*sjlQ znHO0DaBqeLkw(?eeMm2;6RVai7%J255jOBW+8XfQ8G*C-@#jxi)@$*04Q8xzCfB_0 z1>Yy12dyr8{k_cGfJ-jvw^O@Q1Ie&E*zJQ~f4KF?%Zu?tstbdMhX+4|Ns7n(r-#zC zWk!6c-7W{80PpR=+b5Dt&Oc;5@P`4~0}_lph$5x7-yVCc)n#ar=SwVq!M&Tnt02kL znsUQwwe6k{98}88L`8NC&b|`7<>&HM{Exb&}K4J^wuJ60$ZK#`+@#Wd@*7 z2tf{5d;ey)W80MkmN?~!`8+JI=iuXIH9A{HqC-aPt zxLwA)UD5iVJAaMgso?qcVT~gPORN*TkK*<1{m~uQXH%RgA`}H|`_PhytBpEG$gEQ-*n0=GsOKi8reL z8n*fcXSx?)(;cu*_kN?Cy*ljFJpu1uA0oZU+JPlXU;LhO#W(itkBS z)k^I}zw+6?*$GCkI(Vx{LYRH7f0x=Zs0O%3%HP^zN%v$MXF9qgt;kc232@;H)OlF_ zkC7457CPjVUuM4KOmjPfAP8zalrznb>(zko$x+^MnuE_qvJyv(8^Dy~$n$<26lJLV zpg9EmiY%3a*ItLQqF`c^rncc}%63a`sB}%`g%F5Eq$isdy@Y3?Bw&1sLg3Wd+1XFv z^hqKm*9pJFcP^Io8zCU|^rr%?X=5v6n@%uJi*9f|-kUXV38zOG&eqOas_W=a zTs9XG@e`L(cWVQmz3DH1qwgYH`OklX+-n?H#CJB)IxQ68e;x5Wjk?yUL9ljYKkmsK zm8RiXE0pcb!CD*daHa;{^WE>cey~_l1ZkL5%Oue9bg`&)5(>>lpfKI1hXWu+fFym+ z>)GNC-bUnDkhl2)#00Wq6(V6A>w9$V_4P@@(;71?y>o+|lE`Z#c?=KLnJQ5}vr+{K z

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

m_bt2 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 RXsht!xzzWy;>95ee* Date: Wed, 16 Oct 2024 15:42:22 +0200 Subject: [PATCH 02/10] add plot function --- exp/chronos_exp/chronos_predictor.py | 95 +++++++++++++++------------- exp/gp/gp_predictor.py | 34 ++-------- exp/plot_tool.py | 59 +++++++++++++++++ exp/svr/figure_merge.py | 44 +++++++++++++ exp/svr/svr_predictor.py | 16 +---- 5 files changed, 160 insertions(+), 88 deletions(-) create mode 100644 exp/plot_tool.py create mode 100644 exp/svr/figure_merge.py diff --git a/exp/chronos_exp/chronos_predictor.py b/exp/chronos_exp/chronos_predictor.py index b6850f6..8e5c2fb 100644 --- a/exp/chronos_exp/chronos_predictor.py +++ b/exp/chronos_exp/chronos_predictor.py @@ -16,6 +16,7 @@ import dataset.data_loader as dl import exp.eva_metrics as evm import utility.configuration as cf +import exp.plot_tool as pt def chronos_prediction( device_map: Union[str, torch.device] = "cpu", @@ -78,7 +79,7 @@ def chronos_prediction( ) foo = next(iter(pair_iterable)) model_config = cf.ModelConfig( - model_name="chronos-t5-large", + model_name="chronos-t5-small", lookback_window=foo[0].shape[-1], prediction_length=foo[1].shape[-1], ) @@ -115,61 +116,65 @@ def chronos_prediction( print('target, forecast shape', _target.shape, forecast.shape) - eval_metrics = evm.EvaluationMetrics( - quantile_loss={ - '0.1': _q_10, - '0.5': _q_50, - '0.9': _q_90, - }, - mae=_mae, - rmse=_rmse, - ) - - print(f"reso: {reso}, country: {country}, type: {_type}") - print(f"q_10_loss: {_q_10}") - print(f"q_50_loss: {_q_50}") - print(f"q_90_loss: {_q_90}") - print(f"mae_loss: {_mae}") - print(f"rmse_loss: {_rmse}") - - exp_config = cf.ExperimentConfig( - exp_id=exp_id, - data=data_config, - model=model_config, - result=eval_metrics, - ) - exp_config.append_csv(f'/home/wxia/tsfm/TSFM-RLP-Forecast/exp/chronos_exp/result/{exp_id}.csv') + # eval_metrics = evm.EvaluationMetrics( + # quantile_loss={ + # '0.1': _q_10, + # '0.5': _q_50, + # '0.9': _q_90, + # }, + # mae=_mae, + # rmse=_rmse, + # ) + + # print(f"reso: {reso}, country: {country}, type: {_type}") + # print(f"q_10_loss: {_q_10}") + # print(f"q_50_loss: {_q_50}") + # print(f"q_90_loss: {_q_90}") + # print(f"mae_loss: {_mae}") + # print(f"rmse_loss: {_rmse}") + + # exp_config = cf.ExperimentConfig( + # exp_id=exp_id, + # data=data_config, + # model=model_config, + # result=eval_metrics, + # ) + # exp_config.append_csv(f'/home/wxia/tsfm/TSFM-RLP-Forecast/exp/chronos_exp/result/{exp_id}.csv') # ----------------- Experiment----------------- - # ----------------- Plot the Results----------- - plt.plot(_input[0, :], label='Input', color='b') + # # ----------------- Plot the Results----------- + # plt.plot(_input[0, :], label='Input', color='b') - # Create the range for the target and predicted values - target_range = range(len(_input[0, :]), len(_input[0, :]) + len(_target[0, :])) + # # Create the range for the target and predicted values + # target_range = range(len(_input[0, :]), len(_input[0, :]) + len(_target[0, :])) - # Plot the target sequence - plt.plot(target_range, _target[0, :], c='r', label='Target') + # # Plot the target sequence + # plt.plot(target_range, _target[0, :], c='r', label='Target') - # Plot the median prediction - plt.plot(target_range, median[0, :], c='g', label='Median') + # # Plot the median prediction + # plt.plot(target_range, median[0, :], c='g', label='Median') - # Fill the area between low and high predictions - plt.fill_between(target_range, low[0, :], high[0, :], color='gray', alpha=0.3, label='Uncertainty') + # # Fill the area between low and high predictions + # plt.fill_between(target_range, low[0, :], high[0, :], color='gray', alpha=0.3, label='Uncertainty') - # Set plot labels and title - plt.xlabel('Time') - plt.ylabel('Value') - plt.title(f'Chronos Predictions for {country.capitalize()} ({_type.capitalize()})') + # # Set plot labels and title + # plt.xlabel('Time') + # plt.ylabel('Value') + # plt.title(f'Chronos Predictions for {country.capitalize()} ({_type.capitalize()})') - # Add a legend - # plt.legend() + # # Add a legend + # # plt.legend() - # Save the plot + # # Save the plot + + # plt.savefig(_path + f'chronos_{country}_{reso}_{_type}.png') + # plt.close() + + # ----------------- Plot the Results----------- _path = 'exp/chronos_exp/result/' - plt.savefig(_path + f'chronos_{country}_{reso}_{_type}.png') - plt.close() - + pt.plot_gp_predictions(x, y, median, low, high, country, reso, _type, _path) + diff --git a/exp/gp/gp_predictor.py b/exp/gp/gp_predictor.py index cafe1d2..8cf8d5f 100644 --- a/exp/gp/gp_predictor.py +++ b/exp/gp/gp_predictor.py @@ -16,6 +16,7 @@ import dataset.data_loader as dl import exp.eva_metrics as evm import utility.configuration as cf +import exp.plot_tool as pt import numpy as np from sklearn.gaussian_process import GaussianProcessRegressor @@ -65,7 +66,7 @@ def gp_predict_quantiles(models, X_test): exp_id = cf.generate_time_id() - split_ratio = 0.3 + split_ratio = 0.6 for reso, country in reso_country: if reso == '60m': @@ -163,32 +164,5 @@ def gp_predict_quantiles(models, X_test): exp_config.append_csv(f'exp/gp/result/{exp_id}.csv') # ----------------- Experiment ----------------- - # ----------------- Plot the Results----------- - plt.plot(x[0, :], label='Input', color='b') - - # Create the range for the target and predicted values - target_range = range(len(x[0, :]), len(x[0, :]) + len(y[0, :])) - - # Plot the target sequence - plt.plot(target_range, y[0, :], c='r', label='Target') - - # Plot the median prediction - plt.plot(target_range, mean[0, :], c='g', label='Median') - - # Fill the area between low and high predictions - plt.fill_between(target_range, low[0, :], high[0, :], color='gray', alpha=0.3, label='Uncertainty') - - # Set plot labels and title - plt.xlabel('Time') - plt.ylabel('Value') - plt.title(f'GP Predictions for {country.capitalize()} ({_type.capitalize()})') - - # Add a legend - # plt.legend() - - # Save the plot - _path = 'exp/gp/result/' - plt.savefig(_path + f'gp_{country}_{reso}_{_type}.png') - plt.close() - - \ No newline at end of file + # ----------------- Plot the Results----------- + pt.plot_gp_predictions(x, y, mean, low, high, country, reso, _type, _path = 'exp/gp/result/') diff --git a/exp/plot_tool.py b/exp/plot_tool.py new file mode 100644 index 0000000..3692ebe --- /dev/null +++ b/exp/plot_tool.py @@ -0,0 +1,59 @@ +import matplotlib.pyplot as plt +import os + +def plot_predictions_point(x, y, y_hat, country, reso, _type, model_name, num_steps_day, _path): + x = x.reshape(-1, num_steps_day * 3) + target_range = range(num_steps_day * 3, num_steps_day * 4) + + plt.figure(figsize=(6, 4)) + plt.plot(range(num_steps_day * 3), x[-1, :], label='Input', color='b', linewidth=1.5) + plt.plot(target_range, y[-1, :], label='Target', color='r', linewidth=1.5) + plt.plot(target_range, y_hat[-1, :], label='Prediction (Mean)', color='g', linewidth=1.5) + + plt.xlabel('Time', fontsize=14) + plt.ylabel('Value', fontsize=14) + plt.title(f'{model_name} predictions for {country.capitalize()}-{_type.capitalize()}-{reso}', fontsize=16) + + plt.xticks(fontsize=12) + plt.yticks(fontsize=12) + plt.grid(True, linestyle='--', alpha=0.7) + + plt.legend(fontsize=12, loc='upper left') + + # Saving the plot + plt.savefig(f'{_path}/svr_{country}_{reso}_{_type}.png', bbox_inches='tight') + plt.close() + + +def plot_gp_predictions(x, y, mean, low, high, country, reso, _type, _path = 'exp/gp/result/'): + plt.figure(figsize=(6, 4)) + + # Plot the input sequence + plt.plot(x[-1, :], label='Input', color='b') + + # Create the range for the target and predicted values + target_range = range(len(x[-1, :]), len(x[-1, :]) + len(y[0, :])) + + # Plot the target sequence + plt.plot(target_range, y[-1, :], color='r', label='Target') + + # Plot the median prediction + plt.plot(target_range, mean[-1, :], color='g', label='Prediction (Mean)') + + # Fill the area between low and high predictions to show uncertainty + plt.fill_between(target_range, low[-1, :], high[-1, :], color='gray', alpha=0.3, label='Uncertainty') + + # Set plot labels and title + plt.xlabel('Time', fontsize=14) + plt.ylabel('Value', fontsize=14) + plt.title(f'GP Predictions for {country.capitalize()}-{_type.capitalize()}-{reso}', fontsize=16) + + # Add grid and legend + plt.grid(True, linestyle='--', alpha=0.7) + plt.legend(fontsize=12, loc='upper left') + + # Save the plot + os.makedirs(_path, exist_ok=True) + plt.savefig(os.path.join(_path, f'gp_{country}_{reso}_{_type}.png'), bbox_inches='tight') + plt.close() + diff --git a/exp/svr/figure_merge.py b/exp/svr/figure_merge.py new file mode 100644 index 0000000..0fad733 --- /dev/null +++ b/exp/svr/figure_merge.py @@ -0,0 +1,44 @@ +import os +from PIL import Image +import matplotlib.pyplot as plt + +# Path where images are stored +img_dir = 'exp/svr/result' + +# List of image filenames (adjust if necessary) +img_files = [ + "svr_ge_15m_agg.png", "svr_ge_15m_ind.png", + "svr_ge_30m_agg.png", "svr_ge_30m_ind.png", + "svr_ge_60m_agg.png", "svr_ge_60m_ind.png", + "svr_nl_60m_agg.png", "svr_nl_60m_ind.png", + "svr_uk_30m_agg.png", "svr_uk_30m_ind.png", + "svr_uk_60m_agg.png", "svr_uk_60m_ind.png" +] + +# Load images +images = [Image.open(os.path.join(img_dir, img)) for img in img_files] + +# Define grid layout (e.g., 4 rows x 3 columns) +rows, cols = 4, 3 +img_width, img_height = images[0].size +grid_width = cols * img_width +grid_height = rows * img_height + +# Create a new blank image with a white background +grid_image = Image.new('RGB', (grid_width, grid_height), 'white') + +# Paste images into grid +for index, img in enumerate(images): + x = (index % cols) * img_width+1 + y = (index // cols) * img_height+1 + grid_image.paste(img, (x, y)) + +# Save the grid image +output_path = 'exp/svr/result/combined_grid.png' +grid_image.save(output_path) + +# Display the combined image +plt.figure(figsize=(20, 8)) +plt.imshow(grid_image) +plt.axis('off') +plt.show() diff --git a/exp/svr/svr_predictor.py b/exp/svr/svr_predictor.py index 8b95763..b4f577f 100644 --- a/exp/svr/svr_predictor.py +++ b/exp/svr/svr_predictor.py @@ -4,7 +4,7 @@ # dataset_path = os.path.join(parent_dir, 'dataset') sys.path.append(parent_dir) -import matplotlib.pyplot as plt +# import matplotlib.pyplot as plt import numpy as np from sklearn.svm import SVR from sklearn.pipeline import make_pipeline @@ -15,6 +15,7 @@ import dataset.data_loader as dl import exp.eva_metrics as evm import utility.configuration as cf +import exp.plot_tool as pt def svr_fit(input, target): regrs = [] @@ -129,17 +130,6 @@ def svr_pred(input, regrs): # ----------------- Experiment ----------------- # ----------------- Plot the Results----------- - x = x.reshape(-1, num_steps_day*3) - plt.plot(range(num_steps_day*3), x[0, :], label='Input', color='b') - target_range = range(num_steps_day*3, num_steps_day*4) - plt.plot(target_range, y[0, :], c='r', label='Target') - plt.plot(target_range, y_hat[0, :], c='g', label='Median') - plt.xlabel('Time') - plt.ylabel('Value') - plt.title(f'SVR Predictions for {country.capitalize()} ({_type.capitalize()})') _path = 'exp/svr/result' - plt.legend() - plt.savefig(_path + f'/svr_{country}_{reso}_{_type}.png') - plt.close() - + pt.plot_predictions_point(x, y, y_hat, country, reso, _type, 'SVR', num_steps_day, _path) \ No newline at end of file From 76b51a582daa1da831d0225747c1352e340e9cce Mon Sep 17 00:00:00 2001 From: weijiexia1996 Date: Thu, 17 Oct 2024 14:27:16 +0200 Subject: [PATCH 03/10] plot --- exp/chronos_exp/chronos_predictor.py | 12 +++++----- exp/plot_tool.py | 33 ++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/exp/chronos_exp/chronos_predictor.py b/exp/chronos_exp/chronos_predictor.py index 8e5c2fb..a2d9d87 100644 --- a/exp/chronos_exp/chronos_predictor.py +++ b/exp/chronos_exp/chronos_predictor.py @@ -20,7 +20,7 @@ def chronos_prediction( device_map: Union[str, torch.device] = "cpu", - model_type: str = "amazon/chronos-t5-large", + model_type: str = "amazon/chronos-t5-small", torch_dtype: torch.dtype = torch.float32): # Define the pipeline @@ -69,7 +69,7 @@ def chronos_prediction( prediction_length=num_steps_day, ) # pair_iterable.total_pairs = 10 # NOTE only for debug - batch_size = 128 + batch_size = 48 pair_it = dl.collate_numpy(pair_iterable, batch_size) data_config = cf.DataConfig( @@ -143,7 +143,7 @@ def chronos_prediction( # ----------------- Experiment----------------- - # # ----------------- Plot the Results----------- + # # # ----------------- Plot the Results----------- # plt.plot(_input[0, :], label='Input', color='b') # # Create the range for the target and predicted values @@ -167,13 +167,13 @@ def chronos_prediction( # # plt.legend() # # Save the plot - + # _path = 'exp/chronos_exp/result/' # plt.savefig(_path + f'chronos_{country}_{reso}_{_type}.png') # plt.close() # ----------------- Plot the Results----------- - _path = 'exp/chronos_exp/result/' - pt.plot_gp_predictions(x, y, median, low, high, country, reso, _type, _path) + # _path = 'exp/chronos_exp/result/' + pt.plot_chronos_predictions(_input, _target, median, low, high, country, reso, _type, _path = 'exp/chronos_exp/result/') diff --git a/exp/plot_tool.py b/exp/plot_tool.py index 3692ebe..0863b5c 100644 --- a/exp/plot_tool.py +++ b/exp/plot_tool.py @@ -57,3 +57,36 @@ def plot_gp_predictions(x, y, mean, low, high, country, reso, _type, _path = 'e plt.savefig(os.path.join(_path, f'gp_{country}_{reso}_{_type}.png'), bbox_inches='tight') plt.close() + + +def plot_chronos_predictions(_input, _target, median, low, high, country, reso, _type, _path = 'exp/chronos_exp/result/'): + plt.figure(figsize=(6, 4)) + + # Plot the input sequence + plt.plot(_input[0, :], label='Input', color='b') + + # Create the range for the target and predicted values + target_range = range(len(_input[0, :]), len(_input[0, :]) + len(_target[0, :])) + + # Plot the target sequence + plt.plot(target_range, _target[0, :], color='r', label='Target') + + # Plot the median prediction + plt.plot(target_range, median[0, :], color='g', label='Prediction (Mean)') + + # Fill the area between low and high predictions to show uncertainty + plt.fill_between(target_range, low[0, :], high[0, :], color='gray', alpha=0.3, label='Uncertainty') + + # Set plot labels and title + plt.xlabel('Time', fontsize=14) + plt.ylabel('Value', fontsize=14) + plt.title(f'Chronos Predictions for {country.capitalize()}-{_type.capitalize()}-{reso}', fontsize=16) + + # Add grid and legend + plt.grid(True, linestyle='--', alpha=0.7) + plt.legend(fontsize=12, loc='upper left') + + # Save the plot + os.makedirs(_path, exist_ok=True) + plt.savefig(os.path.join(_path, f'chronos_{country}_{reso}_{_type}.png'), bbox_inches='tight') + plt.close() From c790ac5ccd68cbc6c83db362ebcc95f3a929a37e Mon Sep 17 00:00:00 2001 From: xiaweijie1996 Date: Thu, 31 Oct 2024 12:26:08 +0100 Subject: [PATCH 04/10] improve plot function --- exp/plot_tool.py | 14 +++++++------- exp/timegpt/timegpt_predictor.py | 17 ++++------------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/exp/plot_tool.py b/exp/plot_tool.py index 0863b5c..7bd2efd 100644 --- a/exp/plot_tool.py +++ b/exp/plot_tool.py @@ -10,8 +10,8 @@ def plot_predictions_point(x, y, y_hat, country, reso, _type, model_name, num_st plt.plot(target_range, y[-1, :], label='Target', color='r', linewidth=1.5) plt.plot(target_range, y_hat[-1, :], label='Prediction (Mean)', color='g', linewidth=1.5) - plt.xlabel('Time', fontsize=14) - plt.ylabel('Value', fontsize=14) + plt.xlabel('Time [Hour]', fontsize=14) + plt.ylabel('Electricity Consunption [kWh]', fontsize=14) plt.title(f'{model_name} predictions for {country.capitalize()}-{_type.capitalize()}-{reso}', fontsize=16) plt.xticks(fontsize=12) @@ -21,7 +21,7 @@ def plot_predictions_point(x, y, y_hat, country, reso, _type, model_name, num_st plt.legend(fontsize=12, loc='upper left') # Saving the plot - plt.savefig(f'{_path}/svr_{country}_{reso}_{_type}.png', bbox_inches='tight') + plt.savefig(f'{_path}/{model_name}_{country}_{reso}_{_type}.png', bbox_inches='tight') plt.close() @@ -44,8 +44,8 @@ def plot_gp_predictions(x, y, mean, low, high, country, reso, _type, _path = 'e plt.fill_between(target_range, low[-1, :], high[-1, :], color='gray', alpha=0.3, label='Uncertainty') # Set plot labels and title - plt.xlabel('Time', fontsize=14) - plt.ylabel('Value', fontsize=14) + plt.xlabel('Time [Hour]', fontsize=14) + plt.ylabel('Electricity Consunption [kWh]', fontsize=14) plt.title(f'GP Predictions for {country.capitalize()}-{_type.capitalize()}-{reso}', fontsize=16) # Add grid and legend @@ -78,8 +78,8 @@ def plot_chronos_predictions(_input, _target, median, low, high, country, reso, plt.fill_between(target_range, low[0, :], high[0, :], color='gray', alpha=0.3, label='Uncertainty') # Set plot labels and title - plt.xlabel('Time', fontsize=14) - plt.ylabel('Value', fontsize=14) + plt.xlabel('Time [Hour]', fontsize=14) + plt.ylabel('Electricity Consunption [kWh]', fontsize=14) plt.title(f'Chronos Predictions for {country.capitalize()}-{_type.capitalize()}-{reso}', fontsize=16) # Add grid and legend diff --git a/exp/timegpt/timegpt_predictor.py b/exp/timegpt/timegpt_predictor.py index 76d2f06..c26d3e6 100644 --- a/exp/timegpt/timegpt_predictor.py +++ b/exp/timegpt/timegpt_predictor.py @@ -14,6 +14,7 @@ import dataset.data_loader as dl import exp.eva_metrics as evm import utility.configuration as cf +import exp.plot_tool as pt def numpy_to_dataframe(x, freq='15T'): @@ -53,7 +54,7 @@ def numpy_to_dataframe(x, freq='15T'): elif reso == '15m': num_steps_day = 96 - for _type in ['ind', 'agg']: # 'agg', , 'ind' + for _type in ['ind','agg']: # 'agg', , 'ind' print('--------------------------------------------------') print(f"reso: {reso}, country: {country}, type: {_type}") print('--------------------------------------------------') @@ -135,16 +136,6 @@ def numpy_to_dataframe(x, freq='15T'): # ----------------- Experiment ----------------- # ----------------- Plot the Results----------- - x = x.reshape(-1, num_steps_day*3) - plt.plot(range(num_steps_day*3), x[0, :], label='Input', color='b') - target_range = range(num_steps_day*3, num_steps_day*4) - plt.plot(target_range, y[0, :], c='r', label='Target') - plt.plot(target_range, y_hat[0, :], c='g', label='Median') - plt.xlabel('Time') - plt.ylabel('Value') - plt.title(f'Chronos Predictions for {country.capitalize()} ({_type.capitalize()})') _path = 'exp/timegpt/result' - plt.legend() - plt.savefig(_path + f'/timegpt_{country}_{reso}_{_type}.png') - - plt.close() + pt.plot_predictions_point(x, y, y_hat, country, reso, _type, 'timegpt', num_steps_day, _path) + From 31b013ab89cf8103ac9a50883f06518b91dd2a95 Mon Sep 17 00:00:00 2001 From: xiaweijie1996 Date: Thu, 31 Oct 2024 13:46:09 +0100 Subject: [PATCH 05/10] adjust the chronos pred --- .gitignore | 3 ++- exp/chronos_exp/chronos_predictor.py | 5 ++-- exp/moment/moment_predictor.py | 35 ++++++++++++++++++--------- exp/svr/svr_predictor.py | 2 +- gp.png | Bin 117926 -> 0 bytes 5 files changed, 28 insertions(+), 17 deletions(-) delete mode 100644 gp.png diff --git a/.gitignore b/.gitignore index 4b6eff3..b19cdc0 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ result/ /lag-llama dataset/_test.py .venv -configs \ No newline at end of file +configs +chronospack \ No newline at end of file diff --git a/exp/chronos_exp/chronos_predictor.py b/exp/chronos_exp/chronos_predictor.py index a2d9d87..ac4098f 100644 --- a/exp/chronos_exp/chronos_predictor.py +++ b/exp/chronos_exp/chronos_predictor.py @@ -6,12 +6,11 @@ from typing import Union -from chronos import ChronosPipeline +from chronospack.src.chronos import ChronosPipeline # git clone the repo and add the path to the local repo import matplotlib.pyplot as plt import numpy as np import torch from tqdm import tqdm -from chronos import ChronosPipeline import dataset.data_loader as dl import exp.eva_metrics as evm @@ -20,7 +19,7 @@ def chronos_prediction( device_map: Union[str, torch.device] = "cpu", - model_type: str = "amazon/chronos-t5-small", + model_type: str = "amazon/chronos-t5-tiny", torch_dtype: torch.dtype = torch.float32): # Define the pipeline diff --git a/exp/moment/moment_predictor.py b/exp/moment/moment_predictor.py index 4e66bdd..7e3db33 100644 --- a/exp/moment/moment_predictor.py +++ b/exp/moment/moment_predictor.py @@ -16,6 +16,7 @@ import utility.configuration as cf from momentfm import MOMENTPipeline +import exp.plot_tool as pt if __name__ == "__main__": reso_country = [ @@ -38,7 +39,7 @@ elif reso == '15m': num_steps_day = 96 - for _type in ['ind','agg']: # 'agg', , 'ind' + for _type in ['ind', 'agg']: # 'agg', , 'ind' print('--------------------------------------------------') print(f"reso: {reso}, country: {country}, type: {_type}") print('--------------------------------------------------') @@ -120,16 +121,26 @@ exp_config.append_csv(f'exp/moment/result/{exp_id}.csv') # ----------------- Plot the Results----------- - print(x.shape, _target[0, :].shape, out[0, 0, :].detach().numpy().shape) - plt.plot(range(x.shape[2]), x[0, 0, :], label='Input', color='b') - target_range = range(x.shape[2], x.shape[2] + len(_target[0, :])) - plt.plot(target_range, _target[0, :], c='r', label='Target') - plt.plot(target_range, out[0, 0, :].detach().numpy(), c='g', label='Median') - plt.xlabel('Time') - plt.ylabel('Value') - plt.title(f'Chronos Predictions for {country.capitalize()} ({_type.capitalize()})') - _path = 'exp/moment/result/' - plt.savefig(_path + f'moment_{country}_{reso}_{_type}.png') - plt.close() + # print(x.shape, _target[0, :].shape, out[0, 0, :].detach().numpy().shape) + # plt.plot(range(x.shape[2]), x[0, 0, :], label='Input', color='b') + # target_range = range(x.shape[2], x.shape[2] + len(_target[0, :])) + # plt.plot(target_range, _target[0, :], c='r', label='Target') + # plt.plot(target_range, out[0, 0, :].detach().numpy(), c='g', label='Median') + # plt.xlabel('Time') + # plt.ylabel('Value') + # plt.title(f'Chronos Predictions for {country.capitalize()} ({_type.capitalize()})') + # _path = 'exp/moment/result/' + # plt.savefig(_path + f'moment_{country}_{reso}_{_type}.png') + # plt.close() + + _path = 'exp/moment/result' + print(x.shape, y.shape) + x = x[:, 0, :] + y = _target + y_hat = out[:, 0, :].detach().numpy() + print(x.shape, y.shape, y_hat.shape) + pt.plot_predictions_point(x, y, y_hat, country, reso, _type, 'moment', num_steps_day, _path) + + \ No newline at end of file diff --git a/exp/svr/svr_predictor.py b/exp/svr/svr_predictor.py index b4f577f..70227b0 100644 --- a/exp/svr/svr_predictor.py +++ b/exp/svr/svr_predictor.py @@ -48,7 +48,7 @@ def svr_pred(input, regrs): exp_id = cf.generate_time_id() - split_ratio = 0.3 + split_ratio = 0.6 for reso, country in reso_country: if reso == '60m': diff --git a/gp.png b/gp.png deleted file mode 100644 index 7d8be5846c8e0340560052a996d1f234b03611a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117926 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 z

!&<-Ov`TmUf##BF?k0ow||80vexk^WY|JotFv!KXlEiw~Bo_>e6|k_1A_#}8^N z85}V$%Bf!;mq6z3s0C=1kpW9uccX-{)=bGt{6luq~(I_AcNj(wL;j#p0TP}{px zkqgEWTfZL;W-5f`NN($o?b8U2J}9VK7RUD^B_-{Z>@$y)ieG{n{QM+M-@YOU$Hcb3 z0OOgDP(|I_w+Uh_bx(#G2$(xjg$Oa(?>`rGCRxmZNn#@K!n`z}c{q<=>B~!wP3QL) zwqO^+Fa{OTI40=_!?See;TXfJcpQ_FkrBJ6PYV}kcZO{F`uh7@At^SofGHBL z@}nZ_G@Gj$kW9w}z0ofa89NF|JEH+AgoNgz{*$=9W?e zffHU7xE)g(bxLHuoEFL|vtERF||_nmZMam$CF zg&m7X^vfSJUGyc_c3(n{v>jCl$!^kazV|#U{^32TxaTe|^ZlQJBLsNwRE=4_U@4T^ z9=PQ@3;_w}1ZR_QR6V$G-d6?-B=bn1*(?g-#H7a9eq-O%(9Cbr`#&S&y$iTcYJsbl zE!K>4cY7+R>lhm||9MhAq9dK&&%6WCkceZFVDRkD-~z6nAwYs`pYTvv(9?ahOI*|I3#2ZN(eJ*^(!%-jxU&0e7lHA(m0 zZUFSLoUdT=T9rN88UhjtdFnd;FnvF^cIbQR)2~GTmX>-?YHWHq@^wq_5q4qKm6Yx4 z4S;!Cdxkw%YET@?e#>xzjNY3+HHA3bTHqyy{ehrR2w8t`T3szX9-9bZe*NIn`vldl zw*t6>cAxEUj04GD{dJdb0ywDH7K4U3ka2|XoF%3i|Cse!4$vLa)VAg@R3Nx&xsn(p zu`r#vWveIT4O^nh{Os?eov}#F=ON{8rZavz=wJZos(Gi|S?Vc1`*W7YRe+O)5Hsem zW^PYjqt7iR71iRL%s#uOT(4e$WGl?a4nwR*EHB&V8`V@UuDNu#LDXLim6!9yrn^lN z+0|_IU7wD9i0m;-LWjRVFrw=`wqF~5NcZv3P3Js5==8BClR10}=VLbUH3%sUl%aS) zC1p%NP;q-Qc3Vs=*X$T6MF&Exy<1!`-v5OH6+GxlnSN)9U zEvt<_=Dv!GI*-;Z#uKvY{OIvS0?0_a;0#h&1LatcglrQMH@aUTTLKON;ACIyN@5#T zhgHdb*%O5Aw}{pHBYr?TZ(bNJUrW?&Cf#k3lKw0>DB6ts9~Zsj*@+O?V_+H^aUCO7 z?Rg4}NoB785$6R+w6wO@D}bxX*|baLaTYp;KsI&O~gs z(kKuUsGA%yiR(3pU_(U1YVz2jRr`+O?b~a6-M&mtv)_SG-ga={1C>I8f|4E|Y2N&b z8Y%OReY)1BASsZI^MRy`Qys3|@5Qo3DV>HUJVYd%AT~cGFCO8l%t!xj|Lo}rfD=P9 z0>{7Id;}bi4=OHJz<#nnsPZ5MiOJ(1>uEs(40=5=VR|^PU6=H$>200XFrXB!NoIq4 zHk4-i#>U2PRwZ-{401q^I#M6IA8qwJB58h>1>sJ+6Ct=Ld;$U-6=AbcP!9+@I*ka3 z)2F9sP=GMjsi~;}JBu`)g|@{vogO?d;WDjae7qv{?B+!=^i`OxFMtE8pIzDLiifk!+{vkkfA!sW?} z{obax@|>Nr;qxE+Jm2&ZPc`M}KqQLpNv`4fg`)cW37B5ul3hn-KOh47AZ+BbXBqzb zwK$o{*3Qno8`7v888Ml?wtK6H$c3P2fYpbW1CddtV5d4~3QV2%U510h|g0vRk)qq5Qn0BjMrXS9*o5zcV6{@8wlJUxrzC<)9=&EC#D? zbV+B5uU7TmOtMa)iL9>Q@GD495Wj@ThJbEz%r~xMx+lHI4y5`|ajT}$AJj&F7NR6K zX1mji-#u8W)LB}&pm4rwu{aDRjtmf1z3mpI|`4VAkU;br=A;t=8l+w)}VaDgb)h#dN>s=d*i+D1% zb{$!ZB$Q1=I4;+n_~h%Aont;6Cs>2ZAs5Y#2y?fkvi?VEW4>HYH z5)57drb(G9ryYA@F3dAmhnpS@$g;;nzmPBWc9 zIW4!`imoL@<=E{02$9xsN|0g7pIcaHOcJqO1&AK6Jy>o8`4j>K=PY8x9Pjv^(AGC? zuRGN4aUec}BnSz_6bc2gOeQwsd;#2*{NUDN2)_kv8(?>c0dEK(;YEb~((oF5tRq0^ zyzO@7AbziyB4BD@h|s^lG$jOEwoIsM`Wp^Zbp=(plEEAhsX9*L>iy)Fkc zV6y{Iy;gxm{5$eZ!7ohlv4_%<9xU}X^XErCi431*r}Rdi@?iu~DZu|@2Js29T&uuf zPMITC*Xp~B%$;b9gCVPJkKgT`)y)5MbU0`^LK`9ALapFx-94OQKB)&v)w8+=3~{%^ z_!!w<5-60R$6JrDSV0}huME(bo)_US%Iih6Jh+x5h@(_{FtRcUh{M6;{`b81ywfRtblxu% z|681q_m(EOI|Qkzsi3Msv==Zu6&?cj=1rT0it6>tQG~Ch_a7lu?uRfb0(WaA=|?0d z8!{(Z)}mcWBE(P^#MNYuoGk?D89`(n64#>0ia*TX-tE814-t8p{!*p1Zp;ec@x z>@jV{(Iu+MqN;Prf?%6XTko;Izt4qwJD~oZ3&=}?p$m>VNp7yz(VyH)d6`_hbN77p zw${1?eUH5mg||Bf8&n*+4yuJ2Nt=BO9V!Jz*I~z9a6bcqCEB;IO!&?sNbw=f;~YF& zeQYbFbCwSJ%-j8>SD7EJC3-zZE`;I%FlYLXydwbjzN4giXU@N29gLpqS-Vri{~er&7M&Tzox*VpChw3MQS zr-xh`NySv!7^Zzd%q7(H1K+*;syP#5csBw-8zLWdU+9aK^H(BHKLITfp&xcRDTY?q z+lW7=j;3*(iV&M04bZ2u|mh*@bfuFSj3k42dD;-uHk|K zm*8Nv{Tg;)KP9PRlv0k+k=7C#c1p>EU^qG=Era(lYF}SVEWbp|Hz50*bmoX1YF~Hc z@-p+|PWl|UXR-vB0`m$g&*kQtAy#z&xwMW*p3QW7+%8o2SBNI~GX8@2O~>?8SfLqG zF_V>`0#3Vu(O=}X_Y6sgfPerbMqXjcM;Q=!M2)|^{JOr{eFHIb%z=iuO~+}k0us>y zET#X#4LPVMkoHRyvY!0?@Luy-S_70U#VR1l&<0WRC2eDGk$4{cV59;gGHrcN5;2LP z7L5a`?PcB>S@EGIm)>O|lioEs^@YF>Dgqik412Z<27WNTkkvTC7~tq`pPFEZ9SK^7 zExBtF(o}4@dP5B{8Quz6lOY~D6!S?Cek`Zv1JI&V8wwzB&N~n~2(*ld0Sdk((DNV& zZZasRoJi;8kMDv4tzqEU(X#9A1iA0a6+ok1@UKH|Gr8j-eCfONf!!kb1$37#H3NwI zL1gNrcY@oH-V*71XpY$Rr+(4i#_Sa2Wsgv5r-ioH{KNFGD?U3CUNb`J4d4a505;AH z)Z?@t15|DT=t#Zi*nv^^_clN~FOXcV&|V4#JM$dk_5ebNoR(6sKx>PGm(-p+JDbe? z%60?u!Ey8F?FDQ%a^`lTVRoXn+PU7n|?4-BW{sP zQH>qWh^+x0x(um=2$}6MUtg~!TjRz* z4s{WRE`w(guA+MOUIN&si1D=xVmSg4P)G&K{K=K(y{(JZDMV=-xnJ=Mb=pIkUDVnJ z{@@n8!(ttjgQ-zctDcB&16-s9v5WluaZZh7Xe_M;@p(0@FPQvCU0T*IyMw%J5<`qu z3FspZMqjzBgQhVDT@LLLwMC)yJreyAE7d`Bun!Hle@6Pmf@lla+T1LJc$l(-79I)e zps&1Eb9;b*+3O9!qCJ{2v=B63)X|JsU1IUseWcyw0{&DnkjX+N_OCQ(oq9F#x%b6S z`hB-c(u<%e@UkmSDp?^*9pQjQVZ4t%aTX4?<${(2kdAP{&Tn#k6{7iWnF zkaDpN6e;#e;`f0jtsT%m3$gv#&m{KsXn6FR;`xk?b_Bo?0_&nz+t_gH04aWdKx61i zGFgMMv-mG7(u%L{a6PsaaS|4RlAG4l)Sww6ih_V*EleB9EUtTN$ z0kebf*uSxsy5e>FF62$?DJ!xXd<~?JtlR!1e+H-^=HSbJ z?GvpdBk@!#p^cd>cX8_V6dddiRB#Bk3_!(eL?DsoTu{4@b(zz99dt1`A4y1fBasSt^cmFL_Tfgi zw)c|?4{V)!jqSU{h4bd&5#iy5_q^vH=2ulEBN2~$ya*n=bz^^66$qL^#QX9s0AM%S z1|c;!HdgH}qz^iIVSe5WwYif$A1^!$966$qO z2^b>iR|-Bkg8JP=Tf2G|F>MAO=V6k(uOrh6tn8@MHhtimoVM8wONrFB;&8;A0E7jk z@J)8J_|JDKeIz)Yc1fB62lY0DB9MAMAQAwDbq(;$uK@ZmgCUBi!!u_Bk;X9a?j*## ztpo1n2-Xy^P*dPi4PYhf=j#+@{_pQrCPWqqi-A9s-i3BaqyF>p=_lqh{_k@(^Zp73 zA8Z&z?T252CqVe($719E{P3?CI&-BDJs<{gdVJ!5$SM zgs$}IJB%zgvM{|v(Ks4vYt#CL65n=pb&ZJ({-2dp-OYZW^W|xVH1n0EkTW_>&#UbU z;kf?uY{+|h-Fjj-L`xkET;sn>`2W>Z5V6Ps>OW`Vly68(LV|LdJrhPNcJS!*laK#9 z|MX4Rx!cFuECZ57ak76kow&H( z^GZcdiT&k&f|o+D3vDF%b3>WJ@8sBZ(zpA107JzEI5Ln^JeARX$6-Gg%BfzhmS+O+5?+@N{AX8CXC)1?oQzLX;or*&uWRc+5o*l3ikB z;Y#c;ptMli_T@K#cG9Q$$9B5mP3IKUS?*A>-+2t9NpKdjvHrbQOdz8-x3*0GXAlJJ z$|KKvQd?A3oo_P;u&D9XM)DA@S4f|BvlS7-&;;E#M=%}f4ANb^n75x2B!}}!BX?2e zmq%a0*)$)IN#E1R8Wt57e`P272M_>8STebA^CA$_=KAsO6f#?bcuJ=Rr)5X{#HSBw zFWB!4006@vQo9caxLAGpy2$^dOg3h^bgJDP2hC@`r{?)Oz=+Jlv>gy3O~65Cei|zr zKK*}6j#AM~b)}OlLGtB1_;2z$-uk2=_etZ7dH!Gsl2QulsJsZI<3dMI-*C9MfrCP9 znwHkqHK>0Jk$b>)&Z+hkp0;<~A^tLQbC2I5ZXJvRnD?&B{@RB<;I zIk|B98200chr`;$d(NcnjS5GAh;5$?)WAaG{zflj&oCBZ}z-pYS$l1H08Zt$*a z33Z2OTbVr3$d~|9gHVV=KLvLGSHy`2cFF7pDdC9pQ9;`wNr@W2kiLrtN*QU~B8I3= z*<DA_r;};cGl$Dkv{B+C2 znbw9rQhJ|@OltGTRbv@wG$K-V5;$2SJLSH)k=L3+3NS__wFJNg^+HTA?Ye!8cwHNW8!Cs+kQMH!vncp#J`OpG&j~#~Or`8F-f<^0i9HIq%b%BYw1aY711s zh)2Rhi?`U`U->CndZdmD`|_HXG4RctiaM1%Ta*x}l>6BM*S zUrfLe8UR=Ps-GreHA4$Dn1v9rxXg-lO2|Xs#LI8|*uH&NA2#acT?^fomWYc2l9DQx zEP(?o9fDK}86)#UZ*p@@!hd?|vnF?$xw+A0{Aik4jn%(N$XW*LppdhBKy?<9_fzY; zTyE%VK8*CY%gE&h1soh4T${YHMbJ-5J2L&X0!7zSl;F35r5J+2XiPl z#Zz;LF0yiPy*dLSeg93?2!G4w!sVLs3(DD)@T#mGf-r=%h3#3m^}iMhKHaO#clWu3 zMLKfsbNw(8y9r%kdG$c9SK#gi=hzH_JfuRtBrQf~fok~kLM$N1#^c`kUtZw?--=1@ zM59o!beO7y5y;DzFAtR3T!{0Gwt=plJX190~dbDGbsq49E!l2(QNPQ+#2b~FB+X%M`u!w+b0Yje; zRmhP-aO;zJ#*A^6O6+!{P$8FJndOHrC3eASpNSx7ggh3xNoaGCsveL%Ojz}nc&Z{h zr9amzkq*=97VXlje$*teL!{ddEL9bgj_`RmUMc0ANB_8`D&|zEN>8U z629oZEw8l7-|{%#XycA303Y+Q&%N0NlOmm_A3rGIWWeRim2QFOcj4v;EWLQT#R_{~ zOyL4Gx~@e!cI_5nf`u;>G<$<%$dh7YSlXwb)yB*96Pu_DEo?Wrvf$-dyIe9yb{yy? zWU9ytwLO6YwStXa{B_nqH-CgVn8|+9_|-vxb2FO#QBq$lwVHzZM*=Os)k}o78ALaT z*i?JGR-zs*B(>e`MExj8eWIwTd9;815;h2oX|PBzL!~3%mPpVF>Per!0j)Lyp2`}i zQ}4?B7Y9AsR6{SzE<`WW#2hXFSx`ypK3BsgtAVCb=c0O}_Q5;xZ_-uPlx6Sep{PtQ z3I#_!tN!fM2JK~2MTL5YeYZX{>|;#~0Z;uT>7R&k z4gRvCa1@JdRxURL|N36F!_lFzYMx%71)B9eN&a?2^7h8UlyfCndvQ3N7~u;)0F%`< zdtPU%Fa@qxlS3<)1K+TmF8!?rcO3ZJn~T>>?&kQ7$+D+4z)^7dQKPCed}>gA&PkS)H|HqzSM`skrh>KghfnE_ zLbzdKPaR4N<#PCHcNLYcoyvu`O|Hzs_=PCpEBf_x{E1{2{NFv))O1)hCXS5uJsGP}6$=9a)MTysLEPsvY%{IB13x(S$+6w13`gvJbhafX;wUw$Kem zchpKclu7Gg4CFrMa>v>B-cR)JUEV>r(6zL*K<$9pKy_EstfB78?E73Q9ckuGl1zWu z-^ZOsx(XLf*u!>$8?qE$V>w9l5x%Y$@Sn<>?{sJ?Ox!T zdw745R&{|*Qm~iw*kU6g`_#eks}&42BoZ|6-mrg~cWdCQKGEc&%Jd}vl-p-t7>IWX z**O%4y+yLcov@oPSaig^7R-)vkHP1ErLRaUyt6j55xuA+v5o*yhV?W|dN zdR+S~zfYRJfS)FJ+{Y--vn@Kk;S*Y(4hyE?rXVGtVGPLh8oOn0(e!s??=v|Ar8O6B zSSdGxb|^btB0ie1(ro)6J5l}kC5=#m!b1i;jX%-DD{UzAd>emwlJjIC0@BjU`Z-Ec zuQK0`TIQy5JbAyR`NxZek?fW_RriaYLm`;z)JFgt)Svnh=f2D}Mt^8BQ0Vf~P=d4r9(Yx#Kd8bYe6#G5XSkyXpST zJ+%?^IzHrT?g2V=YyCGULvKvJ{L2_S6cpMLOs|{)L7{ z4wFm@>UzcfEUa)MJws3#NJTlI#9LXI*d+D+UYdd0D5w?; zfdzy4$$H8<*9h;cN?0+y>1);=%X=bC5!MWSf%{xklAb>5R2?o2f<~=+WdvGWRB{>j z-{s>6w4=0y4n!+e)v0Qbgmhin5%+$w+rlRM4gc~C)w#1{ts|gTqS@!n`x_c$^{P2| zppaPTO?4%-#b2aHwSN@^J?Qc7BNJf3l7H{wrBpXm$I2{b@uYWfaPap7IUiDi5?t0F zOfjOrnC4+Y=YsB|X{2<=Ct|MLiO#_*^jk;W&a=c{?T=_DEdLni-#f3I9bHQ}Z`I=> zMk5Y&k>_nGU0U1hbf&+0nHH6#Q{fDnm&dX7Q;#87F%6ukZJ=;~b9by?p6Op@W$ zhe_~&9xII120FkBuQ1$F5hg!AWd~|$RnF<%dh!0}4DQ5Jx=$MIF$+mW-I`@2=z?B2 zB!|Z?x=wF2co&7Q*$$|N3&8opC~ZbwUdNV6R8O}76#L?jzaBS?&vB%8A5>oWBH-8D ziv9f~we;LMlPDW(9D%yMz_!LD7cnt3kzZy0=3)MeC%gJ&y8TPmLm>{_F1zvXoVQwt zZVBBb+VixxI&6ah6D z!+)rJhl|)Y)9Xz_t_a(!Og z?m$)UdO81)WOc#Hl8E(3lJ4c|C{H1og+vv6pcks1K3VNIZSr>N+y65{!cHkr_Qf); zr=EuoS4h84t(}yN%*@UXE<$Kfoz2aKs}2`lW$p?t7oeA>y$$r&lJ4d(BU^^)?HL$( zfVq7Z)ikwclN{7s9wqirnhZPc%)xTFg|WxkoRL?9GVQH7<%!`J5*-@rfe@5xcMTjMDG*7Ehy2aCNGGf1vN0vW>Ib zHB|oQIr6qkK1+~{lB(KOKWp5Uol-XA{?jsxf!)Dab{l0>hmPF9t3g!8eZt&a(XuE{ z_@GI?w78DrM`d;f*qpE!n6>`5xVX9Ko|3jxj9$R*%=ZcycsYs{)K=2MwG7(j$_`AH z-90aBEm;cw>(^fbbLiM$z*0vkH6@_YY4mL}k&*}8g#Dy)48T4T`?&l>GDhe3ojbpp zh0jd~SgoPr`!Dd0x>Y>8%_-AuE`8Hp@us4BY!VJymg2|HpZ+k>4c*%A$mZ`_)0pe5 zoJ%41elw(29Xc&r+1Qt%v@BQ8t-4xki^24~Zp5&=iy_7S;P3Wj`?4Zha}pRY0uq`g z{KS=bg#+W(b)|>=Y~i=k{zV)kir>WNR9eyKyy*bA-_jkKN@#28z9&L& z5-uA*ofAvG&XKjnF#_40$pzYNV1vj)$kYG)Bp#oFsL=UH#Vn*ud8N6H*A2b@qzSYw zv@TCKO!{zZ)5&^RvGsv_gk2drAD%osA|eAW=)~kKDXM+4=kZAx)7)UPuJXL1$9o!7E5p~vM_#3cEjwX^v<8jhkQ&nL)WEg7_R zc>`uScv2vf>%|mjNr$i8k#oQX7x0n>1W+npF)_I*?<&UcYF`p5_=QU0Y89`Giwg)U zQ+S$^H3v*urjeB?J#I(bmB3!nc2@RBdONQ{D(4&oC1IO>cd&)ZvjL{`un~tPkn3Ig zxUTsS%SjT4i#{IqNo|b_;E|D$k-RzZNbs-rRnxMa%qXjSTtqk=?YBGesqtj}*zZ78 z6nKqBWWQ*s_qEj3y=H9^B*!W>up(x@nmdSP_BFnSjlpQheJde9dOWoJ*T>#KV{V1d zwE2}Jp8v#B`DF?`n3?cv4jYji+J2y`MR0SB{wdg9X?QW*$;(c#cFp)V7n8pbusX%O zQG8Jod-EkZvUYNp%TY=rt<7cv?;l)+HZ`8h&Ly!`72InONAYMzJ|X=1CB_+RRNhcv z6M5PGCymAuMQ|(5M<_}SE?3{@(mCh+AcuzNOv~G8Co!5Z)`SjOsHXib9=jGbTKHOd zqv==fzzm9gt&!C#N2l!DmwlDYpWDmcl;2xDkis)rkWTKN?O2ZNNaz^wcBNkEqb_`; zPI9pPr`BBT!{Z1np6pGwD3JIq5JLjK$A`gFme(wF3-+X2VZl8%ohdhZdIiEA(aqTN zl77^I^(&X3Rne;R^gTOy|%(cBOC=v ziWj-bp!*ZhSQffzl>h$0Ibdrn&<09X9lZ}%D!B;HfF%I5Lx7)uT+b@IXwFAOlDK2( zl4^uRQi zf%Pha_&91CJ}8YQ{qq&S&H-H*T?BRzn%|7o8VDE+&RrX`pYdrB>q98fd3T=jx zg(Rt3bnWzXqikm0tYvWZJ}(g05qJ z{=5Qm-w3!o_;t^my#-5R1XgC}tOhd$z8UI%CIyLz$80$FtyFA;@3$6#)KXGVbH~{f z;dUy8pFJe`9KqNAm#dch7?n4?1cXt^} z<3a1`O0GMU$b~^s(HX9nS2~_G&i?g(TE0K0x!`&CO5pomSfh&P=?*$xX+evX6oOp7 zWZ_hdmay+@=QJ}KIb7Jfux4Hl)@>H?I*OHKkz%MdJ{>^88+l;`|ee3!6J}D_`bj?47iFJ-nY)499jk zgK;?0Edr4rxzhRgxp^4OP{4%CQ2TP9FvcF&^>v-AJ)DeCVR-T*WH&*eek-Nj^p8#0 zm2aAtAI6|Tr-OBegvr01Fa8PS;zY_XGyl!aYhrNXnQ`(TlMWw|Sm_Shy^DvJ)>bCE z=INiP5JULO?r^xwGj&SVy_X~Wn^`POdMm96 z_Vm7$6y3_W|B%Km94F|pTVel4BV1SBk62fV-}8J!N+2TO?g`)|Pvo`EYHNe*jEcMo zPSa9^NHwmjWKS@QZ}iht%BH&=vUQ^1_3L*GJSl| zF~6{>KK${r?y2X8l`v@$vI*U@Q61AsTG9htU$l8X=5f86I-54v*|y8ZNCrle>7z%4 zU}oj`f|l&*rY8%56E>I&Xm)iH_2G?x8=+#C*_ue5voH4;<&nQh<=^foU%7OSNx`%12aZZ9g)3uwR$>FW*KCDFMKdN%Xfv5 zp1#O?Q7r%!C`?>8BXPudBXL}#N^7l6qb&F<#tWuFq9pjpMdI;AgaR-><<#yAEr8Jq zp;%YjFTRpzc{6D)TmG?A(!`}udE`o-u&{-PN~ddp$c6D~|EFR!p0>JTjP)KOdFO;p7|eT3>rp4s>ibo!oq+ za-ArER_p{xNkQselRVu3ix0E8=lT504hBmk=%19S;QjK+Ul!MoU?F^sE7_lItIhqD6>qfYUcv{jw?s)~tH9TNe9lhrOH(_6&d9sz%yFn=@ zJ({T?MyUZ;M{{bdEKlG{2AEa9kMF(8yk0A-+x8V~9(b@o7DAZBMI{+?m|5>MJYQhX z*P|vdKl6FyGhquJeB4_3Jla}9X07&YuUo3WCdR*N?6Io-(m1ZL#081kp^?u17Zeh^ zYFcXDhD>(F2Ya8kB=QWWhD;~nra5az@vJXF9lKUeHw$?ZQq@B;zB4*o_&i2+!CNjP8&0k~njd%pk zTI1n}YX$#WnrU6lw;r$DCB8V4&V82^6umCVLcC2YM2`}F)?W$82IiM zoSv)(8!KurXk`K(`>FNme$&+grMwP?$gfFv)*w{p`JKP zUC_YdxR_+AkcVK8w|_0P_I{IL9=Rd@xcXJ4$QTGC+8 zxf?bd=Zd_1LK1!=*?QHit;Valf z6^@6ZG>>9!mdYOQaQdXro+K`1%kQKOr7YjnxyKguBab{BXVFXA;hIUyfyv;dg|)h} zbuWISgk(bxm6!Ctn*vlkySSPE4l03bk(;Y$&$dj(Y*M*ZElHgB;lpiaJen{C1c_qW zpv#sw!;-5@ujA5AP%+(Mxma8EDueZWO%22T0VjuU3;u*XDTD16&v^CnWvDnw;waIQ zB!{>d60}|$2j*K>ePzsuR-WO-v$DwVNBAHaZ;e|ju1*DIDEBzR{!{m|3nDN(N*||*BXQ~JH+Eh>-dHwu^q{Dj)b2Ap- z?Dx!TE_rpn8}Fyd%E|&LvfDP@eeIir+>?eW-mxs=UYt7?iqlX0RJO{Z z#Szm0U`rFlh^-Sy8Qp;%9 zRLg{ABGX{+d*-fI1r6;PLJPvs&@kTj^QhFj^}|OY3%oYQh|8NchJ&u%V7Ye^2i*zY zD@IdSkL_Q<&H334IwmGX=u|>aX|ADiOsoTXJE#I|Y(V*{7f2!rHABFpRQ{@xvL|7e6CUlji1 z3!U=fni<+4g6oyX9}3R?iThmd%j*gSUqi!mMygy-(St%dJ@B`jwv^oXO1nnJ{hLKP zzddPIV@)_Ek_RWYKQ|b_g*d3-Y*GA2JG+^S0%U3dxG*W-* zX4gntO7VsIT#l3L=$TK=bSXQR|0OGD zqj{=zCIBAG4gwuzo4aklB(5n?6a>NLtqOzhTPk)R9>;yz@T6JE`n&U`=#sk#O@U(c z``knyEnp@37b(^h!XH=Jhcr$UFWfFUGZy$(L0d|2X;11UI5n2IYw)CE&v%?yCarFS zs<@P<=@{!fW)-k&4fPP>XlO^W;R)4>;RV>uIyEKCO47FR2^Tbw6dZe}Mg z;$g0T_>-C3TylLx-1W+x7w8V?qiJ%=+fO8l``{I7Xf}h%3k`_5Ime?N&(tS|OG8b@ zGBQ~GYOHn5#^{%Szw+%gTIe2pqQa9U92TkRt4WFE0lVF9J7>&)TN_8-)%FhEXeE+ZiHh^NT$XkLx^50C7MF>V3& zLbBH`*ZNI7_iI?{PqI$Zt8vhk!Z$~C*uKiV8E*+M*+1geQ~=Emn?4l`$FgKtAD>l+ zX7bTsf+alw^O{@rr&e{<8WOb6%IdYkKi}O7MYzmOOYmer4whqRt|h*e1SjVma^G^* zfu*^;4l}&|7MrsdWF3unb!#|s2kxetA_kC^v7@~zov^CV$Zr2q|C<$;p2dx(Fr1uJ z96fMey%@XFO3$9<%eK$HL+22f)-j!fhnZaag3?^$O%df;sB*BAWL7`Xw1H&(kg} z@+$>CbYCVs11w|Ob?uH%RvU&^*G`seL-65ivyfhnuU@Smv@ZU`r{?no$pQbSi3ya4 z5nuqfpzG;FN**NlIY3J>nmq%4Tal(__Zb~E*Y5o0$RJvCqLhC4JuF`*_=Qz_#8@3K zkaJW#clfBW#MHh*>|+fLq#0Y?c+FRtPy_L{D{(c*ht~bh)bZ)@j6F#>OVvUL15A{m zfmtZxZW_BXqwtBRIu1dm+l-&1c^0haL|I*aD5a?A+xDN~tEGcqY6D|C2Tl*MW#%M& zJgc?}7i|k-N>A3QGc^g<;m);MbjA8XCN*%AR)?lVYXU%SQMj4`=1^@TmWrsU4nc zi?I~@Mc<%{592%VpuoC0Vv2@gQn6NNS|JjnCsl~@rFnT>x|Y9$*tFyf_nb4st4z0b zX}7lji>>#Lr~3c@|Bp=(83|>S6-styNQw~RSQ*7RHrabi2@%;lQ5+m2dzXsqX6I9F~^{XB`Z3 zU&~|_jE(g76y_jHo~5n`K6uH3YhJT!*6<;cc#&}lK4n{?`KwzyTK4HMy7%#a+>RBb z?g>kiSKDJ~bX;CHs*?x-o%{ZWyUs3_y2V!_7dp90ez{Md7uyhCLz7=&-0|MZ`aqLT zUNy-*mXK(IR&R5ATuNgxyQs`V#7@oFBTc`z*S31e#p@>eFBsPU6aPwc2^Ku%;6nXr z`7@Q3G)>eI07hL_>`H-9kOi3{126az6}j8zSqPu`S9L%e_Sml*W*~5{E{}96V&6|G4?)TJGK?p78Y|v>x$1to8oTWJTjppES3?Q>)RJBvh`Cu%474!ysFl z68vo|t_KR>!JmumCYxs(yX&tallW_-8Q`>};9B!FQ*U3&x@^+a=%Bxe4{+q!0Nv zL(|67GoRfe*VeX;J+J>eVBsFwV-&G7_yl=k9gmHm!{3S45ZmlZ(O)l4r_m5PYt~JE z5hfcCOO_|JmUm{cw(yU#Q(Lw-hB3iAc-?;}4<00Nd*t?($Ex^dh}UhC76-!2bBy64 z0#yGKZ`o-7DI>bypZo*x?9=0SEAvEWZvGYC2ztjIpnTTVYouO(;*1FeMJPN4e|BP7 zm1K>L$r8g~W@d(tyj|~GXq`3_HRxI8d!8ZuY?p^1qTwEz#KQG<@}u6^E1K8bee1{s zP0=iVEG47){Jpm1`Z)KZXWy&%r+ajt1m}E;YO9Go%f4Js|Dj7}LR1!fGrc$7(Da|F z!}YjU_^*`HqpXpyy`j~ks$xegw>!WI0RxRXE#Z$=b)w$nG@%MG-FdRSTOQ;sv#v~L z#k(f^6`nMxE|(5E*ZGlxMMrC?_g>N!?B{Yc2UIx)tl60iaAs)XhlG5-&o11Rx;*K$ z6%w=4kpWVpE!SsO;-aHUjp|sQssCG(v&Xb|?uOlwD)Qh$rTDD{lu`FN6OSRT7AwjN zdU3Ws=$tfOHfOgl1Iwy?+M=|PQ1w79K&0<~9d)NQgU+6LIy@s56q+sek4aa@E1ak8Z1H52}#qMo7Gl=ZIzWcirp zH8kkyqnxdoL16C- z!juYHoZ0s=Te`L1YZiYPn1kO+Df<0x>qc~rWx#Uk%m`17f!O@X2{q^pcc>D4&lNmQ z9AT=ei48!N*#{(JjkBU@8{A{XO;G-=r7A0gx55`Y#_eCQy=t`lAn*_?CfCZ;%V_+d zo+)!26)ZJw1&+hz;eszW5hJ!gto+>zJdW6yPZ2(GJk_ZTJNdwz21keYM zDR@dpsMFf*cch?IC(HX8IYDX}NTY_B+Gd_bLUx<5W;Ojkz>GC)rv?t4yk02~USdBgR&^K$~k zm4LLb9&Z8+cw(gti)MUuyVgQbyZW;WB00#bo=VY;7s0$|r(1|x*mLg{67xD7GI$18 zY}oWJW5kniCjUK-^xms6?Qade0$&LhSyLKtqk7;$I!ExS_Mio&m)>j_}QWg$Da!ru6TYOmjNcl=3U2J>+pwoLgHtMsN#sE-b}S;u|o|dDdwz zjmQq4!;*Pl94*nv(Bc(N|YdM-Sx+x9n#Osqc&y4{cr9Q=H-no zeRvCl9~e8kEDt|{xU{-99S9B3-cVp`idjz^$O`{7uXG+kk!xMsdCC7*9q zaGn`TL_$*)#tA}zcodlFx_*5(TtuN-?tuPJZ0YMtlw-uq6>i8Q)b zT+EFpsjvx5i{b_aCQy~!l}X1+7VFRwfwZmL;46)zBf`T2j}Uwepn%F6jd#styW5eZ z9DR2X1*ep@_M(pQqZ)|= zpACtz?8mYVQ1!KdBqZiWY}?vnAoq@2`Ae?}Xw?#_!@W&fJkKeZ zM1P?IquI-B5>2k!i8(H2U-c#2t6d3NKp{F;@E<`(ESl_c{m$5G^f%8D+7plMtMkn^ z>W$086e<5T;xE2jkFC;L-Eoizv3zm(8k~vK>wl_EKJaT%ZIXBDpC$E{d9qVGi?x?b z5qp39Y2;TV6-jO7efl#*4`@i0qNRQZefFr!t~T@)cHSv{!dHY+f8y3};xg2=iinFr z7u#)Czo|{^XNMxHz-U-7l_Y52yMA{0VuT`GzBsoU?llK*J&x)34-NtDY0KQuk94)c z69rDeB*w>;Q`@T(Ool;SN4CquO7187H-`(7Z`om$Nj*lh5)YlYX#;aC3q_plg@1qQ zP%-%uNzTW6)@*039cTWRymTgF|$bZ;g!cGT*Dw*osk}NA}1GW5G zHE+|mm+i}loNBV8rDX5p@lh)jxZUMyMj4?_q1J)1jmHQRzuT1`VyhV_69=Q+#w|(z z1!02D4zGou9$h5YyY1%ITo9cqSw3Q7(g{5r!QK^OLNqwUXIdIF_^aYl+{aqH{Hx0R zXUz$WFg`_jJ~_h$F-2C|m%_=uyN+MENQ3+H^2iIRcEX#F`mJa~6*9P$yH!Xq>DFmw zKZiwX&SSA3kPqsuC$Yk+U-tGY=jXc@w_#{_J<&(o_Q_ED{`9%sv<~7msXJfK)%auv z@?1IxJPBmo$=LPSKTg{u^7% zs7|C#92KBXD#c~Xs2jJoq_?Zv^Af3ppBK)7c|$XI_6)_KP$o zLOF}?SM#R!Z~uQxIvi$#R}}AkN&E9u06q^$s&Hh1UTBy&ST#z5`Q|ejdAVifZJmzS zL#L_~UP+l8&1(pYQNCp88Yd2X3Uc(t8wSXCUG-RJ=es+?)l>&;DkwJpeGaS0hd0>H zxt9sT=dcmU_!*?nk9-hRYx}H5#DOGb$F6v+qOqHtue9z%t?%`^sb?7)F`8)XPyD6-R8a2QRgmgMf7BKAJvYdY$$R6wUA(5DoS;CiRS{n-aJ+>QUyiMm}H78z$*g z%3*-QHVV{!6)z*AA}ARPl0(L8Xc)B5Ap)D14MUTP4}SglX}?(KxNJ}Uxkm_jnEU

ENW}v4aSKpPrlsHE_rl65czS2#7ih=c{q9VxHkR=>E{;Qp%a=)`$YMPPa-h z^5i6XndX{rij;rZ|9|ANv=l%&l@(#Wd#h>P!|oF~sWNdK-Oz={W_pU8F>?3ry*Rlj z3B;Ds!|_)WFc0`EX`qB^eIH}ERXfF+!vHBLGrb#!Dcb_!F%GowiKxC=L{n9!A43el zOt1X045^J0(ch;<41a8*71slDEH7TX*tjxUdcC2%`(mZI-cI>}Q5D0>GNJPh$t+Cg zggf+kFNA^q1}2E_Uk;7Sw#@qZrAU7WKkMkUU6}}4nUk)CkKEnO#c0SI#~)vOxW*F_ zqVVUh75HE>wH*B<-KI{JXd+i&U zhybUo=8kTiy_Ufz=s--ue@hCELue?v{r&uI&geuJ+>il9=j*S!fzn%$zBocRFCCmd z04<7Rj$stN(<=N$qEJ=&-|CpsJwVE1eMb)CCl3cxe%dpyIc<+xB)k4JS-o#)2+n>`K^R&4-2&?9<@7fFx{8pHJYxcnFF#Z`=l5Jr zal0b`HyP7F(ze8wG=MY>#$^eAZQI9V9eQ`*9;f8 zW}RnPXsxTA~=1Jsf>Sx*ZfCh=bBbuGBT-3(lQXJ9__{`$re6XSIY^BP`aL~vj8SZOhBmw|kl5dfftLgQc)M#Q-+ZTX&traA zL3uzJ{iOrod5Um5B1ZaWIV8H2quPSIVOTgaaZGUodcoIxQP&6KK%1y(`9*y z47$klYUHg}Fk~&Uwc0BEes3R12!cDl`8~c@7%MvM+C&)qK3z?mrEg=_9o3&j? z5n{G4)&(9ePiIoew(p{&_}7w&lJ4;;tLu0ZUmLAjZ+%qfhP>FXFiqFN>NK)If4Dr% z1VbS`^~f)sWpuKe8pM<{R3>v}Zd+~##rp(ouIe(k6aT{7`fu3V@(uASo~}~Qb>8Ll z><31oB4F#t+*}A^;}t_=-Nf@-Z&?;O=6jRKV`A{cP85A>k-aoBZ=5j3Z&`wJJh2Sv zTGb4VTc$g;5Uz<;W}^-Tya)Do`mR;ogZn;qf9^U;I0%?dO62D2&=qkIWFX1nW0rBh zddK0tvMGZd(m;e#G=wn$Wv%_!1(Q-vJ~L9}neHO?fb>x=Esh0s`)d8~kV!Ac{~g_w z`#kn0fz&{<@1)b68Z(pjlKe>2DiTji^qE*RI~mO5Ag_CeoAxuDBg-c@>YMKJ#wQHp zz6Bom#eY=VzGO+hP4$!nXU|#udm~t?a?Wh7lYj*zRp!VV$HzyUw1ar+AiPul0>I{# z_)fig0Wl$hPAf!byMI#wA}(=W#Mc$ZPl#QRZN0=2G_b;<>r?Z0X>71PcUu#DyP%#Y zees2YWZP(d^oDEluG&3syf1dd@93LGlrcJOxEuTTrpZgVDsHlL; zS0xu4lIwJ#M3)F%Tjv)cf6UM_?*Od&wi?AP|7^n}7t29{v(M^pLXHuzRy&Ieiyu=} z#lq#v;3tPs2g`@lZJGE^NI{mjPKCC5Vq!gZe0JXyt z0pHzjo#Er8Ke z+$ev3{Z7r>5QbhiA=Ep$_j!5s4>D4VsZKA)!t4$96hyI;LA1zaJ-J|le42dfMPJ0B z|M8)p`C(#+ zC6BEqc-TG(ou8GiaWDEz;hTmn6D+E|_(@NkB&Pj++Nw#2z*T_6%Tp0T{71Abw}!9N zR$6ZZa^MGx?dPyTArY>tm=O}pC`WMZlWGHw0tjFxsVPRXwFYj0s!*A#61utWV*jPN*2Zy}-mtW2-1RZUo7mrFErI#TS zldJW)u~D}B(5NQ9d6T&sCcx1F3p;Ds!QanMjPkL`I9j{J?>0D^K3j2CH)xMc<5nB0 z*4S#Nq9h-?R%L-ioGmgcpEV0xME_}=<9+Y##`0lL*;YuX2)16B_u7|#a;fMzs;zE~iE4Vq zE9W8C_c5`i80CK%iLdMW04i>Hbs?7uvi_r_&*R5+AThvq;qX@*Y7IzJVysnB#202( zgeJrJ80!N_8gfR(ALg$SPk;#o%m+i4#GG-@t6c7}gJ0uJt5goVG{7uir z@xv}|3u%fTsrPKN-<4QtW$#e3FV=T&4Wdz-vKNB+hB-x|P$D_Zf~Jh~^oippCpl98 zf*MZOZdPJjf(-|Mm|D*`I@|~HXHfgqZ&-+tg3!g6%HnPQ8QS8^%*<=Ozs&-Q=mwWp zEn|~w;;H92t>)B7m*TOBEu|C_RwGY*EWK-J_r+z{s{#G%UG-!7& zCtZ2-GAng8e@+fvA^I*s4ZgM2)+sf&G{LNIg+AV5pK(a~)JRwCLpzj7l}F@HcZN)w zqvLX#_czB0FdFIY`ru23bBj$W+Sf=s?!sud)vV;%k*7bsXE{>TTyK&mb&T{YruHndA5NZn1+k-X7~qL3Z%8kZJGY=8rSP4WT4%mt!j%S*=?1P32zmCa9z;3BrvljuUfH@2@jB`BLhBkg;)B?g zD43oyX~$7Hf`0;9+5gC{<&on&zEc(b?|Hf1$*NNQi;PFAL8Okmp^aIaXe*7*Gdx_0 zqmrmA-%bRR zUej~2?T#9FQyT{OW9i7=aqFKmfzM+U!LEec5CUHXBuEi93QufU4&}N! zkQkoB+y%F~W)HS2Xzm>97`o8m7=W|5g)^|sBM7{zmpp#Fi9+f5bpbpm9LK%=$B_kO z|2*#Z5MNBm^1BTS4sh@~U{h}Z#bF*$Nv$~CJ8oM*+Nn?X&p)j_Zs#4HT;j3sZq<2w z>L_m-0xj)ro?|~7sr+cwRsmo#-f;D09?C?#j_ZJ-wqLlwX8v-c5kgyo_MYhoTzmgrw_qxX)9rGB z+5}GjLR9f1@N%hcEQh|d`yUp{(7HhD2H;Mp=#9Mv0NkOAXvF&N@B-+b9?ahr>x}ZI)nDIIhm_^gxbr_s(Qd9qIU*;+~i&xu$_hKkI3{6~=Pd=7XucOv$Dp_+H ztIPo(P@3w;+jN>|%#G2wm>jGpfM;ZMJ9)pZ_D`VS&uth$uJkCb`#>%ToDMjbGpvbu zNV0h(V*9*gfptzV2g&7ar{X-xN*Xvdk_-8~*y%+@1V%sP9g~8FvvcInFiO|LbhI(O z=^eBX7SDd7koydPS@V3;cZ*7BHtd~Wi&m!zv_hrGrldJTzqoSq^@B-^xwS=98R0Yt+Ouh$%9=O-Gk62Ytp4Ees;6z4JYScnC$%ePYl;8|_o{%WrF z01L$cSDgsLyoSc%)jPtc@{cI}D8tvGSyTXp`=DC?TCu~`FFiLfF(DADu(&cKOl8gW zD1tfs2>CtYczH4^oKRy)TOG43EqU#tLs5-J*G~JQ#SuByx*qoV=uCGm44f zrY}*s2W4BwD?$u|Zf!t~0iH6X1}7(1tt=;Vsj7zp=`v^H70u@jLwT0I~$_^(r6ouKExhthT1bENoGwl*fVrOs` zZb)K5V849KidP3xC~>|j=H4`v+S;nqrjug@T@+G6kK$15)MSVrWzy8Q8fEf|ti7K; zZTS-Xd{DSA{_WT1f0{PTAzY04O^M^C7h#y`=!~@?ip{Q2BT)CPyH~;o{@`obsmNA& z#Gh`hz@x;}b1Q2`$}i)8<@IsmR$AdU)Bqhi?4%3^2mo0n#(|3vCcq8^>Gf8c--*Yu z0B+?E_>ccix)~n}MBYAeA3ZaJqiF$+@;s0N|NO>oro)j^FqEVJe@eZzXwJBp$x#2$ zCJSC$rmks{R^2a+to*xzkK%~-#+%=kmMs1H6#sGn5jUhs^)C~uAv#)8@>xG(df{Ph zZCjmb^A=j^qz?JR~^;Mh6UU`<>+xfL?kF1?>N#mpBIpyt=Ye?%kfXED06~j~!0n{@ht`6fGO+&RhyVv<#{pw;D}dnQLm<58Xwqc? zIFH*=gDXRTYWNvyy-0rF%`nvi%<=4d5@elVg%xOm?+31cZ#{|~)QVsg#pXWsoye?M z%_=K*_4jnd_^o8G62oJlq5hBvS6ufcM3Q&|=ptDv0w3xoR)qaux6Pv>=?R-Qa|nFT zy>%zcG>*yiTr>eriYP^l>I3VYdlpGKd z(lu7Sbtz5r#A^3DRCQa-ZUt28;BbgLOw%*G`Ei#KKqx@iX$Bem_|HYtdJ;wuq>Q#E z3weya!~*+$|FmJ;DCfJpL#~C1-AX|>P|p!n3x0~ifpl@`))RYXEeRYn3NZO|yvF-y zV5$w6wo72{o5wAT1Ng1+@YNY0p?=w4OpnCD$=`9$;potSCcb)n2qO^pjV2NY*iQBY zAh$TA?~SS-)Hp8i$#JIYQ!#?3O49@euv=GG3zMHy{5zYfQ7$%@AMz4n9O~TX=lf+ zZRl~}FM|#Yh$Xal`56k$Tm!;(1FfHDIMvK^1Q!TLvaSN~={i7A&skR9JpferYgj{2 z`_mLhEe2R<-P$%#W0~FOLb+^M%y~-;JX<;^^7E;8cH@hl-etzQsa$PILxV$NdAEP9 zW9wdZaN)Ufauy7Fe@l>Seju}STz9ky+=0u_#3TtiZ4j#3+V|RiDN^!%z@CRBr%zq- zv5`l?lt-g+g;kJ((JPo;lLMqepKUN|93vEqb;{=?GF0z+GdyMhutf4DMM4J;61iIHz#>-lZrpe8nj?Q?c}Zb zpM>n4J6Alt%Bo?){ZzfPR46~ETax0{UW7SYA_e)Yci)SCyc?A}U%D9oj{7yTGUdd_ zj!@F0AsCr>^PphLYmj>&#QZ5TxmH}d4Wik9a@OFDE~?uy{6`|PSeW3bC3!cx`Xh+8 zb`DH(V3C9$fT-~l{G7S*uR%f>ZLf)KbSYp~fcxLZhCGlpq27*(Ugc=7);cNVpE@?E zY06j=-egg6Fy`Um19qZBm7KMU+O&5cG3Z8IXoAC5B{Dr!Na`>aBCz)@T;;y9ONzOs zE!msDo0>Kj^qG%kSF-(6XWG=30TkT$T7K1bu(OY>-P!**A}uP~n| zM460EiU^Ue$HLwpYxmwrPnss+6+!|>BsQJ$W@@b+7%u=427O221l&uNp%de%Sl0P+jIhT#z znj=pP!7dHSRJ4bFjezg#$zP^RF3$`!-i9Owc?V!L#P#bkN@ERcL!HzvP?BycTX$KJ zZ6-|iW2_`YJOU`qR)pJ-+GQx>^&>?+Zdw%*;xF(9@@K}O1FX6xufkLmV{<=>q^9`$?63myH5^(74MF8HZuG{-qF$@^ zf6EFP)9#{O-0H0IPizY+ujUk^WUn3_iynFi5mVjL)&^wYtNZLvJ!nX8dlhDDUh}y( z{M)~wLT=ewCoFNwR_d3YeTpVFpk@g70buMPCoH{&A1rM0A-J#0j@J(MckX*n_4jTN zV+v>+d1960@PnizyHyaFM2_GHe2H469Jmf++A&NEIf1O83OuYp8vj?s894UoFYk!N zlyNFi!;GgJRQzfC3-(JgFg%C3!v3Piy2Ko_2Cb@nIMt^aI`#USc;9a;O5%BPjb?Oz zrbl%>zEeQVhf!5*Yi+eDlmB>BXY`0RI~)Iv8pC0InLH&p7zUmlJw?Nj(vbJp$Y8Q1 zxf1xV?DzE-U#q=r%O@7!yWxRmN|T^F_u~4xTCGenf0BEjMN5bgh4@9jQNek)qUt; zAc5b3{8)GKG3=HBH3E1vxOvE|OK`mPer&9S;l^@uqT@z}(R##)MNQY^dlC8`_qsgw z+>&x|(~~#%b$c2GH4|HSp$Jkq##OrE|mSSP4IjQalWW;B`5Vja6upRjF*OJi8$b3hKRtTaQ+J2z(y z`Z~|(p}f7h=ZP!h8L(94@8W#J7iB~~-J!8VElPI58VU4Du$JM1c!?@wO94bGwW1)( zN3pkSgp_l?3Xqx}3lRAJOA$g#yP>;5A~oAKb=2~$7vVwMOI(F`+HcL+KpmOlYIoU} zBjDgB?MOx?H60r7OW%xRZ~wEVAiJ!}?cv|E^vWZP%&3$=7kwZD`f=spz>KQC$=u`@r{w_ra&ZU5V;7X`UBE{>t`uk zN6Ad|+SSfLESwOsHuytusS*$n{Lc&t3=_;hN)E(uLXTrro=-?%##mkc=&nPH zRDuEpjy-6@a65{IVj=!VdRN0@ZuUGJP^nyU-HrI=f0|0Xypg4d{1r5laO+)$`Nhci zbFg&@x)Eq8mv^^A#^ro`;HKMHs}ZnB@=tZO`uk1z-oooQa;pI-k(c`X7vJUOWkpUlRR0NHHl`MUbhnABWv3zvd$X(r?-^3hnj|dDdhznxp16z%m4Y z2zzbX+7%H-`Q7R=$-4GWMWwt+&NVyq#s=PN9m(^5cjNKJ8ig?WQQuVBg8_`92t&Ph z+@8eGM-s(gaCbjj6WWl^pwxbN3}e+v8wRpsfaLzBY0+PI>hoIIII(qIR|2=QzRx`s z)2nVk3Hk@oiGakGv^rH}8x#8O@WEtWp4w=;F!!EXX*>HJdwWvzG_p&6-ldUw9xGD= zydDmQCgH&Q(w%btF#PmtZxZ>ENEff%wBhJ?W0&eWG4_POsz35Cd-LBKfyQHivO^ab zaLw*7e$jSA&S&eP4@@@66EX^msv}5t^HiTDrN*jPMeB#|hB+P>iBCT7>mGS2peRkF z0){0Be#GJH9!Z#VeFZXHn(r`?oUD#c{M2CG)}=?ZEhC0{ADE_e3XRkgj7$-@p!UxX||R z8{U0<;z`#6v(L6C}nd{M+pbHu_;HZ5SN3xNcwXh)=^dKN+d2d{=He4TQA|B1*p zs82AI?1IgB{#i1ViIgW-H4~Ie zZFgWBiPj&9K>+~u8iep57%0adLt3Kfa{~VMM!9q9x1Nyqi5)PZ^z8OWVB8H-sD-fp zw*7g+%!O06tMh85Lgp8WEo1z_g1Q>!mp=)k)cyXW)Sv$)d*Ml^F@FAgnfEv5=D#SyR^+wm)Q{g@ zYt;_EPbIEEYn@FJKFsM9B3X*1s@{=O6D*n__ur7AM?!~4vLc7__5&aDPW6i~PwE`1 zr?X9AvIxcTvuEo3LsnXaLuXLb1sO(HcQfLtBv9qy&v8J8?(RXt%pmWv90mP#) zgyg@n3(@%L#erkyX>r1Gue~c>Yl5Yg{Y;}9d7_$o*1WP@!r)Nn7OdbbBp=&z(xrI0 z>8lL@4R=#}48er!ZTkp6W0~}dohhb6lTD*rzG#E3oHeMI;Z6$9v2-EOEl}q??_Aq! ze0|l(*IHDzHz;r5dQ28w^I8MT<%R>gR&3n`{fMMSTr{}a8gF@o7qI3Y-z~Yw23)4P z2&CnXR60w*+rbx4wB74~GI`D4ad2Eg%qDc}R}C*tnWuoAKls}Orp%W%=ZLN0udi~A z?DWL>8q1G8Lad|7j|D_uM~7kAcIWEk72q`qCVmp`n+Y-#>!q(>6%=vAMwqLQuI@J_ zONp6Ae@U(ey~Io~F(guq_}2pt!V;A$zu*XErY+2wbPFw^#<6k-3ggvyf5DD}^Ij_g z3M^jvYxCgM`fkmy*ISD}=JzCvk@=Uyve4>J>x9mQOR+`B*BTJ~SvMVKMG@~pyXl%dPUC2P!kOUO{Lh*9+&NFn3(#06?&mFE$x3Ey9$ ztA*0m<(2~gGzot(+lqmY5QZIX_9aQZCiER}j&Cw>eq_#TuQbc#DsfIV3j35+l`N|O zN+U(lNx>p_4-_i#1AUA{sp@W(KAvWUTNv$KU@n8g0>HX~!Rc6A zI|??z-7bbb>pk1Naz(GqRNys*JIh`EF{iT3( zFP$5){n1mwoo2_N+t{o+{GF@S?$Nelm*}Kep6fQYJoVF~P4`Ri{X(-cIA6yjO--2j zB-c9ocT_-2d&$Z#pT%|h-bSl9b#AkR3CriW0~CzUV?K^gIB^lM%si`3pwr%)+t`R} zjBP*s>|D*F1w4Q%5t(Ppj7{T~-=%K=-Kx+Ogx%@+Wu!$0Gp*VMb}|QpZS%QcLWQgV zha2%{RTOFXd*OOndZnGKl@vFAo`6PAx3w`s2PNW)T(g2>#K+s4DnW%4CZ$X#c4-~! zf34Y-G$(Tg%2Zw`oi!zgzx<}ZVKh6VmfF>5cJ0ZJ_!~ELS!jvK^e)^TGv4$In8TA5T@@S!Eb`OE|dx%egz#htrfQH$GR@$-Q8zc?6zp z&^qqTKdC3}#G01yiIr6c2nI3D&x^|k`r~SEEo>+N0sZsxaQwghk5)14WZ)%+?ZIh+ zm5Dtx`Z7(AXo)u6Ck6trv9UG!7#&D7Qd@v^9&`vGlRps+)XBaF#LjFy^l9twn;L-e z5EH!X&cY`seUYh3M~yWoF89d`sCMcpeMk{S4#%DubJgE0N@E}25WD_h(I7y;A5|V) zq=`wN7P)o?o#u2--oAkX5fu``+Lcx?ojkc$11?7x@&YtU0Jg-BH{6RuwJrF1$3Lxi z9}Xv8Yi8_#)>`nmUx>6g0P9Y2Eel{;5Kl!Ko=@x%V=&D!Z9Gh^>MEQV>cAPt(o%Kc zIsyC16VLj*ytG=G+T0W8vCyLJpULM>SM39c{Rn!~oDZtEZDLprlV7@pGihsCyk4iy9DWqTHP)mMv>S_;24fgB%?)P%UvmQkH+3bHd<7Atey3qkD7hrHe z<$}|u-0z`ia@i$zqyHVjOg8s!LJ0Z#S!F*xO#{^MCAMw_owM@fc@$9-A9r{0duu-q z7Y$?J`2nCbGb?Gw@D>b}y%CGrtsoQQs5BC(h2xanVV6k*w&e2Yx_z-L(NmshrC~!N z!hf%B_vz7#+rdawb~1QmmVGK}XlN~^Td4Ieo4|oIf{Fs3ZT8yW`X9 z@%Jq$(@|-oI7&GcBz9!(f*N7g31#f=5R?6kR@tao8;%^&3pRsZ-lA< z5PCq`A7%4nO&jsx(xv7V*sIfq^+m01#$4N0R3owLH?YrKu9<#*OHgxL0Dd(vnV=hl zeJ>fM@*~{}Ef*9AXLXFeo%*f7X2kUuGQnRTJ&ctO@w1!cOUy{SJ@BC5^0@A|xi4pH%wSa}wPXzb+ z`JaFHp4+bo!lMg&(SDo%Ba-BlUK;s7ZS3pyOvI+-@Sj@y9_(%p7XBOcl}tL1zeR-c zueB}>JrWDS2ktQ8*~ta?2C&T!w1*l|CU`VrZ#z!Jyzg2|VA0TC`G`zm5Xcdc5!Qn) zp@hvHECDBhaBNeeX6_H}!`$V2x8+A3`UdX7u2^rCe*_{35s5^$cOotzIzjN2P$H}Q z%ZSJ*n)X$X=L`7cA%sqMzf$eHL6C99UGKV6G?kFMf4yMTJi2rd9VKeh=Y_!Y*M)v_ zus-c;iB!S5m)zp}P)YmvKDBjhPGo@%g+c%SWqdEvG-yLm)|4}C8lfC-GD8nl1z?{tGF>8UtW*Rm%wVAz+ zZReA4>chRA0>P|OI(*%^J}PvYuf#jb+foZ&ZyJsZR;D2+;U4)#8PtsQUJ}R5P=q?| z%b*~G6I%!$AxB;IrO>G^7v9f4`B<|OxM__gBE(CO@{8aIHd11z2Hg}^p_Jx&IYY_< zUUaR9zW-Y~wGz2`hU8#E^j;mplq2m}8OHjAwvJq^&6kIepGrq%<^s(wfik;sUHs&9?Dw3rBY<^ zq1_~5QJBj~&hf_P-=og(L-Gubb;p)420a+7WeA+Dp8A!hom=3FM3W1_RyYMC@AKJ- zLIR%K-6oeW(@f7TVlzW)9%YUg-AOgS`c)dHcahjPw|WU?KCbW)mRBmTM+*M-GstxwSu=M&>x(D z7qyIFIwGH8U+7(;$xZtw^=tmx-f-c6(fh-ud#zLri_8fB>dqUa4M&3VoVX%5mg2s) zcG+~JkKo~%1c^-yCv)Ug(CdIh1X!X|iQAl5&U(1LkH3QUsb3cA^{ZQq?X7a3r)NfY zvd-VS{<)UEg9Fxx2)vl_5GDf3VBMBZdswetKGyf+SZVB&@^yfjy*0wK<)%C`I~i*gh>TH#^H#e_)NHY ziu&k`p@{HlO3&xnXG4NaZ4JBWrwSIwo)(uce@$~`M9At_6wdZ;Zil6th6~)o%a58B z?|y3vOBz64+uYnN!6T(~_he|C17bnh+&)tp9}7Gp4)5ZXvfFp{Qf!i@&&3GzOGUHC z8t!_qN^B%n9C<$CQ6(%U=ONg{k?F8mjm>4k@tqp`CjM}vUr7Ew+tqO+*xNLzF@2ok zKCGNfOh4u$RJ~)@a>nf8ZJ!QPcf^B)OKsv5$`9=8h#b7Vx8g_61&6{0+@};26slFm zP_T`-&Ht>)?XN4^$33wQQXdqwLrmrL@Z*DSDl-G{ zvjq}QyBVLSDQ|yke<{WOxEiV8@ZvH8(OSDuI$I{u$NA@Y+J}Fa_SHVCRXKGRO5;&yPp@a~Xg5@}mMMY;!Rm7$VVBF5k zYbq{Zt8mpqo}9=2d%;a^c)P(QyMBI_9rGb|BlItQ3*=)@j z>^1g1cXXCj!mqK8#;4?|ux0yelE}-`H8*Bf281OGjyfZ+xLY5DC6 zBH{sQ#5xKb&%YxqslmXo=d&Ad_sYfN7XF++_k}y?xdcz{K}3g3%}e1q1-x|d?@(|x z2d*c;zHUlLoYB^n&ILCU9&DYIskp8{dlzc^09lXZV3j#B4H*ca6!qJ~EG!NM_5zC} zMPB_F5F;?sMeh41zN3OZMB2-%&tU`5`%E?q1KXhuw~f&Ffkut5XhaxE7x24)Y482} zI(1|lY%qear6W)qw76*YV0kw9_krCs?$RZ)s+1GoLC6OHk|@zLIH4(M_U;!ulq+YA zloJ)=GqyIc?*V^i<#M4mOATbsU{3xgRybvo5)eC>&hzlOuP zgQ6ZSGPZTUp%t&PDCK~b`GXsd?|~T-7t6U;;QnytDW#PEnsp%_BHVA?OFjNZ!TxtB zslV^<+&YKYXseNb$-mN=`QpL~|NWoaaIBY{^eS=$D}o#lE&!JG-wY?fF!=jAh)VwP za8f5juzPbQsub8D>wYbpmv{G+IZ!65Gd@L+GxJ^+7(rVVDUCdJ%*9e7Si#hPMAzC+ zf3FQhjh#u5azLq7{_U)P+r0Li$!19~XwzUZ&Z?mVy%ugi9pVgV+!R5$KA z#ekqX{lb!mCOh|kLR{FwMqa;S)@_|;`o>vk`bD1Ke~cseXq||&Fspk_`80R# zn%$oasjp7no-HsOaKX3pa1UMMYWuleXLVh#!&OW}RwsH_ZSCE5 zZR}dLmpSyZ}FJx9sD}tv;0Cpma@LgX>$ErNJLhwK>7e|>% z${v%c_&``>b0ZCR2%Kf5cG|NWmY12HAYg00l2k^e37cCXol~a8a?R9qJcIm45IAr$ zK)4&_zeY<{vo3>>ol=(}MT|{^I?@X<=pz24o=+uw?cR{xf3%NSAu59MWO;p!mI_8d zD{5CrbDKNup)8|sexkz9rUlC&_vc>|Aeu4xtvEdtPLjaJB5>cp|2m?WkB^5-B*J~% z0p}U^WqqlEeybV3OZ2cSVb51WdS{W>Q~Rf5m8@#v2SN(c_Y_PBl?m*3GlLLC)rl&k z&CHa~LhMWFzZXBbU&?}In6~W_m>|FUS98skLWFc&X$dWXL`37J63i;v@qBo)qYY+x zeP&=nQeyv-L80;QK2}Jggyu6+uW*M5h=K;sjyX3KJC>y7dbZO<&SusvAsPTdl zl>Z;1zB`->|9$@qoMRt*k3;sBE$d_z85Itdt(3AQS?6%b9+70Hkcgv{%^|B)NJeJ1 z%i<-mgRFWziS8pJ);)}toZ_;;0D z$pi1;kk^O)Epb;eNgF%zYmOD{U=ZyYLWTLi((PU$A?dL_!}EVUt}8ozOiv>D6B5It z1!6`XJUOBi;rHs2iW>9hBN$UiCW{6h{V!i`>q&|lxBc$@kBXEkFMRj-v7}ui*ow0J zwRCQNxH@kS?I<+LLY}D7h~n?^&ST9Kg}aG6QLsL;GpB}1iqvf%NS!><;s@r05FDuJ z^t`IZj8B)r&u&Gqd$Rp|8Gat6na`gY|NE;Z_&_L|CSGGyUgNw5vT2=S+wRbuG*gmG#LGnJBmsRNBqf;wHW0Wam<6`Ni9vbMi<^t{0e zW?r@n99WQ@2etft{ae#cG0?SdmC3HN3)`S}dw&;1k8e2|BPTWE1Rc{Ynb77@jUDZy z)wZ!ftca=2(-`V@ z$KPu8{ZD$c;SYbwMHlh>NZ_&bX|?-8 zk_}Mnat+$m22VD{&-VDoDWL!tx9qby?~A$6&JJeEJ>G>-rvQ%JO5^3JKm4z+Wb${) z*OoPnhre>Wg^_+T1gD3j+h`)OBN0h=jKK(q!E8=}vameRt2Msw&*!K&x*qCapw4Q| za@dzE8~TJNi2hs~?<2_1PUK@yoCa@<7}t}PRNF(b4G-Fj2}zG|Yuau_r_Vt01uqZ7 zjdo~KKynnfS;S%0=xO)2DH_}#frIzSEpZDez~aAh!ISNEo3Pvq!q&iz@0xMiz2}Ln zl0D~%1jmZWk4ef)9ua?@sa%Ky6irHQHpFFKhyUGZjD;5-4Vqx4}iaN?ny&T70+dAiypbbmUJmDQ)X# z`Sx?F^Zb=wg5YSyR^%Qz8})RGH$GZaz$t?8yWCK9V*M(RUXF@G2@b}^f8K+ISn;=N zwL>f=ZrekN6U?J3(LD;lzUfaL{am6d#T$8@84V(tMTCly<*q-desY~2!m%xTDgwXH zLH^`M+}bYhj=A%04LPU1*TyDtlGr^fe*s4h=@rSv4H0*ulzuOrxq?>8x5?f7+`vX;|;5iQ0TR;G2Htpa=HSNNc)oe1N z0xbZis7bmIBac9B4s2_lBu-B~J%#lm5NQrR-ffC1wT8>R_|??P9xfUqmHd8HI0s*_ zs>Xnd2G;SZ5#-v21*pR%JLq+Q+(UrB$@eVEJTDG3{nO!9i%6;PgqyoJnOm~W2+`2B zj4>Z9@BQKpgaMRI8%3yo7T?`beie`!aTwwhqtF5In5K#}pfxb+%S z>rmPsx3-$hTuH&WiGZRd=)D~Bt7kRJja7|yO6FMo=Gs~a#PJz~b?p#nC(FXHEaeO< zy44XXYE(LD&1BGmfXz<|UI@-Ksr4(SVcev}z3(19`z3aG;71a22dltyxVR#Zq*Md<|L;=jHQC*CCsg37DugM# zfJ74&%$kvEohp(^In}SrqDDS_}(^!xnPOmnb0uwpsulK^;=H|5$ zt?y*vlST%EFc-AXj!v7f@X6GS_B9mQ89SjOeS2)whR2RvW_wo;ryE9lSR_1|{_gcOl#G_}ZpKQ(2xBZ50lZ`1bCrrY5oqLACX|5(V|0%hr&t4qTkd zi{Jvkhhf`W_MkR>*)|;oIO+>~{pCUGbjOb(pP=L8jLD#%CK^|r&cdc1vmUq^Mo`IV zI)Wsx%pvd6Y9zo`p^z#6(aCW<7Y>HWd( zflj6(b%FH<;m7dCt*gLl7ZrD0?#udh=8I@lQfJhx^2@Puw zJ|ZSR|05g1d&o|T`FCQ4E7u@y*@^?#^)TGed_BY9%}j`}5hX2LUh5ylDmWR1WY9t& zLpzlW+M6|qv>a8e;J>f_;BNUOmgraoGxAV9_#6H)oxDr%|#UfIIyr>99nw!lEwD3=Tj{a z5TX$E(rO*LVO_tE?%fNJw5R&AHQC(n8z6C%+HuLV2 zf5Oiyp`ZU`^Ak1ZzIwq#!DBt)@!Ef4jFA*$;+%TVPo4h$4LbUvEUp~lGiB(`ugrZA@sX71aK1h$} zc>&PW1mc+o09D3CgN?guU%_7a#aO^EQR9=d!<9ZB%IV!vI3&qU(L?!<5aITDVtP3K z9N!~mk-*M>l(}{sSd6&EfO>Pc@Tv<3HcQkbmGPl3|G}?o3-#NU6A2y5bOhW>LXu^3 zbQjP=s% zqQUK2W9wNWl$d^GeuROm=%eb7vSZRxS+#^K0v3c+$zw=Mdv=NlAbJ zB{!Y&XisnGkicxg>{v@2O)%9XCg;7I80^3)mFr~+OKS)<({I=MRN`4@&iTH{B3c8C zNP~-e85w=&(W$->v~*y z1JNg0Fv3jQCV{&7w~r}=>BW0Yig4KEmt|Vp#zEu9ln&2mO7*R!0mTl#c!@Lk$jdkM za0G(;RnXi6$CUuJMiaB3Xb^lHSL5f6HuvxMB%D(8l5Dk_ZzG!WP@AsTMiG3?jx&lxkb z$xz_lzvtJA5LUKhFwoD~IMN3#sq`;2rLGE`=`@mmSE}STM}5$)oZcciQOg{69&PH< z0iU9|Ts7;jRJey|g-hI=8Jz@1GFct%`3F@mm%d79gxcD=mo9^PKz)U5Uyu*_=K(8g zcYgUNoDK)}HOrYRksV7N%Ean`j$i>(rGP^*|9@Be9u*go7v!Zt**Afz^V%tcBEulEGvJ*HhXAp-tdazXP4yOt~W zW`6k7&*^+E6l2}a4ggN5vM=x~%owFuYmj+^m;UQ`pwrP;iCb>NwqNdhmZynm zXcKSX{&lwXoq}L_8T*_KFn`DV83I;S!BU2J3zahD;Dv6>gVBxJ#1$~S0Nh!YL&@*I z_}2`CJty#H*^HwTS0P=Jh1fWhV8UF9W7mm*b(C} zBrrDz(cUU95|%H>l3&Gio+m0j_-Taw28Ls^#}Orz0Q-7=(N%uw5;vc}AL3HUYdk*s zBx918BS)h`|8p-!?pyUg48bm#rJzwW?quWn!B8(#kQ0onJiZ#>o}j$eWmx15WN(y{ z>)+h89gEo$c;I!olB~Y(eC~8U6apEWIF?omId=2NsWj{9Vh!l2sO~d480ssLlpKeb z09{&O56$|&ivgj=p-YPNi?h58FyqPv*=;9VA`slh$?nBWY3rw*Y6Z^oh*(*#op#^7_VAO(!w;_|(dY0AHVcNy z0+%I`;^w-#ZDm%ihu37x8D7~2);%^SgOY!@AZnY{#-MCOVU(zr$cW0Zb0bCB8%HPU zn-_d;Km1yJ{?5bP-K93855KcjUu3J!U&x)`+z&#(NKW^Lu|m$t)FNM`m`0|X%;yuJ zsyXRMdl60KKO|a2K_y^q(Pv)3XDS-dB;Hj$4smxQ^en7WMC+s3Db8)yw-ln3p2A}t zYrUzsv5GlImXgDRK5}0V%IQ?{^6dKDqXXH^ctg3@)mI_r%*#!4oFltr?k|N_-OHG+ z%l6Z$5>(lt<9HXgw)&=m2D22tW6^f4Z83=U2wPKB`rmK6+p5YQk)UO{wjlauoxN#U z9@1P*Bsf3qzxAeo8+(&9r2ql{e7jkVBPUIf-bV>oR;U|X*@5U(4U zImFyTu|k4D{C>+P8It|{_wSe2HuSTt0aHbS9A+TYC7!+|1T2Z+=p#W0f56GUS)!)e zp2+K|oY=ugmg*aa!??+{QTU#RUZC86$3A{Dd#3NvtgSGp-F07+A8CxUf0r5I20; zn$j8?bT|UyiWDb}nA7x!tZW&K#?0FwKK|A*j7E^>PzOHwG;^%dpgRC;g~%rX1b znjgu8LLtuJ8PdN~^s1vk-MU|xp*Aw99^U1sSnfhdVy!Nbu$m(;<)oDFKPZp6WcvvH zvnUIO&enf2VUGE1FDKbwh$IOTvSj&b=s)YYw_)ov~s1lMq>PyY{2lMgwlOcNv8ss<>EUJzoVgA4xn}v-9tMy-hfKEgwhf9 z?dtcWLQ8mREfX`?KC7`1`H}33uL#K5!}x@uA2U&RktFYw z&&-LY*`9mpz`ve30eO>sNJUg3a)-3fu-W3$jltc_5hs~Fp>5hpji|l4J#L#cFi<>^ zCpr|m-QStz32R;V@&(9aj))KSt5;^wKfe@m5+Ev54`Gbve^5)Cr7glhF-vl+yX`Z_Y}`;{LFlphQ^xxc z+sOV&U%5?yg&5<%DUsKm9a~WzL=NdW$X?Ulc=Y+wOD1H0TkPg~+`Y57OGbqG*Zt5* z`6gDRy|x-z8LE}PJF#{GS=bL#BgQD1ro+3KiJSr$!wOxmbof%u{Jp_#T_h9HHLf&= zPO>HrUcx|Dx}bGR8F2WJ{oT7C2eJ(q9xPpUtz^u@y~%6kmx4B5iwjMMx3x|WotD_4 z1BV=vcGe6AGZb@#Kj<5GWIgAbpmqf%1%^P`sETGW(B^x*rE3@ySo<0n7-!xR+zmjnJXx5VV%iQeUkf14JQ zk2gS;T)luNa=$JhKlG@jT%2l4dbolC3xm2vx9U)E=rU>r86v~Z*39$oDew>pUjP5A0<#Q(y`%-F&b8~gpx+NwRW{4;E9aJ1m3n?U+IyOXmBE4GZw3&h zm1aWcOoijx@GNH0fyI;rZCetCL?_wC$wzii^LG>#Hu55rIt-V*7KG3@q82c{fNzxv zncT->@pW)$>{^&l3vQ~i?mLWyn18zWBye&#=#$#I<|uMX^hI3(cz1-NTAK6i3!OGw{>eW*WcE8$&7t#VKja8|3-}WF| zP_`;DMg#>@^fwxexg1<*BBlryNB@q<&REd-%79J&-Q8D98f$o2wZ%PEYGG7bVA<~v zFQskB@F?Bmh320MbDU1QPldR#Pr7N{*%_WpBmR4?-{4q&X1=i@-P8cDD#?y5P4+_E z0I1E94fwXVR30uY^?5auiy>h;p-nV8{MZk|5sjKWUz<*|W2sxGJG1=KN;>Y)Nj|Uh z>Q8#tmdR=uuSOgqYk4N&V}}exq>(%Q;EuBm5W?L|?O8f^MHp7iK-`m7DM}zlWPtM| zvH0>y7!uYRO}X1*XdYeHJNEsD15PjLxeL2*PfQ|H^*zd4=>u;Ou~gXMmI%qG*JYqa z3e(~G0&@Mm+#6zq=uD4Ddv*|K!b-ZMMM_sI83nw2r}d)*1*5DT>j5b1W0~e_f8`>y z#3r}++I>Bw6uZxy{lr=bqM?rK>)iK+#}kMA=TdfZlTZ(B-^`F;l5!Zn$Hdn>>in*p zAbh^6QuY^3+mu=I-u|-EHc3X#MpQZf{KYCs;2a;?m*4(wSK90?EN?BygBWkE1@dK- zH*!i%9G5M1c(p9{-vyd_krHL>pKJY`ROYj?7A{VQzxeROn}6W~g*%xf#PF6U^k-2n9Xdtl(B*l}DNpgeliRyJ7ayFm zC!)L;<7L&T?(Vunqy-2NRIHpb?aF7LAR0Xwt8N9qK9>KsqD^vOugbw=Rbr)Hto^qP za()$PNyeex`*uXEEnAh|tfG!ZukR-4$$a5VtGbpBk4<_yXnA0bk}T7m{ab`a!5)lX zm?M+PYi9}%F9ZwdbX_r5UuDmJM5~a`7j<^*;yx+qf}E1)x$V8WHIvaArk_2isB=2E zD)Ogxf3iFLdcrIDTkXqmkR4W?IAj(NBo4ILo-m#J@8AJPFd7zO>!btgchOaJF@=xA zScv)(+*?;EHo-_nuXXu>r&H5IBfH!Li;`bKjT5pP>pJu<@4$fvzk&Z8ij8$iN;Km! zn{IUA`s&=R&`wOqz6(T1fS|ZQdP;!+A3tAIwzhUuBZ}XCW@I9=cQ~dq#Wa6^Udw-5 z);m-SK={dq#w!nt$<7v&#_#R|f*bPl=hULyRyZ9DVkk{sI)y}=u?tF~h~L;9F6twb z{q4m@KK0LV8g%y#HzPi5zOM8yU+Z@2IBp>;WxS}|!i|m_^J9Ch5t!%iU&lE&#UZ{5 z6(ZN{^%b-k)0EW2O2_Ccn-+fgSafz8UuUa>#NANR(gsqB`*fdUXY7$++#~J^0Aldu z9;8aWOgjFNChg*u>}`ff+c?_HA-`LknliDG^NQ;=SU>`gw7u7D>GPxbwo$7OcRmcZ zNax(dM&frs!x;RG?BL=Y>eSA{DT%`O(T891qN<*FTsFj1va(k0UN7?r`>z!m=AdZ;CB_DFMTr< zfB2PPQs%ux5>G(EaJKDumvn&}uk?}eWzr8D3z<5?2&zO$SelCbREgkF*`c1e)gL-S zZL5Y(*T}^2>eDf8ozIs?%@1tMf8zCCxw?>*X4DqAX}4)!W0T#rpsdQ{`SmKX{h!|; zURNM$B1C;y^K}0$S0Dq|u@&>H5(yFC=D;{J>D~ex6#6xc73>~{?(AN&U8`h(uhNMd zY>fx@?nKCt**4xv@J?2!iv#|#5L`7A8!OtiVdJvG@p>XZ5c-e_VSr@$A@+>pO!$JP zxp=4p+Q<~6LDI?f-~s>23VGP%2UTPNxuP9Qit4d1rxm^Rph(h~!8p98r;#e-Xx> z+S?0tlx{!188__LWOy54S?r?}`z7KVUg*I{ zb1J}Q7YQte?T#uBK6Lc#xxRSb4=$xxr5<0$`~nEJ{4))u5{NN8+NpBARaG{%bcK4f zD>~sC??e&%%j+#)JmOK_2-YI=|0)v<+sRv-Lo7Yo^>B(Ud2hR%;dIH)?Qm51eZYsM zo&0xFw_<)R_Cs)KYoQYZ-3q6B9j=W#HV{%L$b5fgPSE5fP%~e-c=Txm0vhaB!@TX~ zDk?gI$sq)NhhRpG(TaOnXS#By5O7{?Wjtagrk8}Htk%?pVJc#th)0B^YyLNz{G}en zqfGviV0qT%I+oCqW?f}*B3~xqr1cy2ZmU13r=x8Wrqd%0Jle8 zoFiR6Iv9lDzH!`Pu7S-hm{B8DqS;$`tU6Hz{e&6| zC3;R`mL-y}@d5|tmI&%4Pu;Ai*fAx=1ct98pLCS`MW4;*l>GI%He?cKgkZJza(FNV z3Fu0TnHbqxvU{~XGC=`}v-M-SI-lLaDvFV}ejX9*JgsjSxC`oM?K!{l&7(*6!(zK( zteM)_MgLi!|4y3u5LuoXDZlRUqpv*&=q5+C4JEu<5Xg9)?tamL2?^yz&-~(1(&&>x zq;VM-6w{U7=P`cs!~DmV zDGFXP$(5dq$&WWP8JdnCRtB9OvNz6UJe^>x1OI#B)x2&R%9+A<#E(0otJ6jje22Hm zw5xhHcD5G#BW8=GUy|opA_l;=f`oT$EHW@w-Orwdr5c{r8J}qWtG}cVTXXe4)I4&3P4?Ip_z z5eA!bdZBVRg2K({Kv3%9Rpen0PJ*24eH{)U$u3Cky9ibm(3I`GUBXuVS%B3v1^IHK z2l=wkL4P*==-(4`LPGxR6D{3C7Asukr>Tfn6JKhlO=7iZAdkxax;j79y+6kGbm!q4 z2}}NsZ|9>lw@~1;S?vTW-;V-jU@Gk$dX<&z)qld6Ez3>7=ck{VITyvBdSRaN(%0=c z0e=%F1A{U8?~|UeNNTL+2Ahu@4a9#uKxBA$cqrHJR!76`cr3XPYhIQbx{E&_*(~b~ zv!u-(7Pl9($THGF_c8h>D*u{(ek*b)k~V6>3(*eXp-=a%n*R6L(fS{tEx{ z3VFq7riw6YcnAraziL;;;YU^|yD@KJQEzT10R*F>;<^ml+g>+AjJw#14 zInr@L8OiTq(2@^;jJq#s58Yq7C`L$Th$?2r$|c&63_S)>G~^ zw<%Ln_F=o;$5xQ0o$JlzfesSWxrf|@3ONNkf1Y8jO^ztL`yG3G>J^?ZBirDKa7a!x zPj~{lcjx%(PAd~bz#NCJIKXEvvQi*?LT$m>Yz`lRrsrN-3K%%L@HCB8JI$f8>LND> zUgg3!a!C`{Nd^p`>h7qI*J{l?kTt#;wBEMd4RoiZ2THBO>%b7t#NqhvVsJWl4F8@j z?m?_CXL3B(Z@z+N9XoaL`!AOQVw(^M)+8T?g74BLQ_%#Fz{mff4}t(}`j_gw{Z{6L zBr{ewIok5$xJ%;6W-iJ=KW}%7KXBBm@q)0A{mO5rK${ev%fB1N2FUGD=GfVZQwp=0 zMi`YEaXHRnH*BE_-gT3t&hx;|?9b|T(HRDe2~YBON`fubs8}VUtN&aJBLfBrJ40_? zHSlB<+-`QQWZadXCmRTNiJ`?`@DoE=LKraW#K73HvZocFhdkfC@BqdDjn&9_cE{zG!xjcT`nIDwrZ<00` zKFiv(Qyd%|0F8srll$xxz}eCE(Ik2O@0$xgEztEEtxh^HO&5`Fa&c|NC0O8cyc1z+ zbqsZ#MK>*&fxKO&jz$-SYMQ3&yj}FX@&T9H#Gx&yc{{Uw86yFNeR=i%fE%EBW@)BB z?z#~);`I?MpNZSslf1``&XuV+3+9MzuC{s|ORF-;AX}e`wC|`1LhaK9HIPzzpAMQL zShM`?zZBwtDd)%)0?|3KO+km9>*A(qNXr!0d0H<|)cV9RUGfvYvM-wzCld7QI#luU zbs4(Y7CbrR^Wd!~V~JX}vMzpV#%MCh6eL{IyNFBMmw^gbGks6m-a_2dU{8QhStR=L z@yAWW`;a7WI?2zXp7wf555kg6KD)Yw+ZNkBchC8^cffp>y`o@@vHPcWYOZEWC{@Ibbu0!K3mboz8)j z2NY5XLL|z6O@A`TMC*(cy7qzo8Ue?=Fl$A z&x1>|q_;hxO;s;Xw{Dw)MW0o!I_54sK*9OnoqrPk$ll@RMLdXI<%K z?R!I3zg>yaLtte}>_oNGb%qJ4f|igFfSZ@4o~!=d*6!(*@E!0fh7LnG=s`q&G5 z_FvYD6`b+3aPeWJ3lH`>DZkIC1|G}gSdC+WL^}L&vpeLR`;i?xH+Q@KXrl{)lL`K7 z1fX}fr66B!3CR!(BSe~*eSs7pLW?lGrzC{jJ^|rwt|h~7JRr#~kak!H;c)5^@|jzv zKz7mW7Z+fdf*a5S8o#yoo_Qpe`1`{9KSs_!gtcH7WqmhXUJdI7-hb>AQKA^* zf}ulkLy&9wE|NAF(Ut4g?$t;Kj>-sXhssYF<0AOst=Q|N_iDs9DFXNDB(IUg6k=gmAMA{%uI}7BYTDt79RRumdTz5k`9mc zJ_-_1x4n>hs>jT_S3Gbgnf>_ZbK?BuljMN0B?ws)9&K!_trQr2ollMEx^-*3actlD zgEw6%=(V`DJ;S6}_T#3+2ydJamNh;PK})8XIm5jg3Xxr( zq#xYHmZo~WVF{%>_o1%X5i}f(MkV;I`;bsfMrOrYJJ*Xq^}ywdGF}lkDs1u--nWld zSC;xJ?me^d0yWLxhmdr|D^r83wZ7Sh5Uxk~*pXjkushao=|R@@qwJHbIZtA%7KkgYtJU!J5%-Hg z)0pbu_Im@~Xi!kafgF~6UiZOo`9Ha*H1%-vkiSBZ8XqRPX|!z~7vIznd+YIG_LaBZ zX#4)f;hz0f|BC@90W^Sx^QBQo#yRl9WSVQ~v83f!)n8xr#``ZbA(InP8+4_`vQUYC108kwF zrgj7qJ6EMAJbpVRK+RJ}nTJ+Jerw0yL#CvF@pg!@pM9^JEXyD$=lYPIPzlJx>B+Fse419+m*!tqw?$@%8Z;k za7imHJ~f9uv}e&p-bD;_BJ=LzZf4#%iHt&VQZNqQghSGgdY;_d86L_vCJK2lBR|WuM<>=w)jL5#LXpYEaIGGOD+F1{^yz-? z{^ncyo*aRIB}?S=G)o|QOuH=}hOjh1MDc6$lTH1TrTOqm&dj&r@p7HpL)Vo*(Ww$(SgxR7X5qtpwGvW1ivgucIhmG4&E}?<$a9&LM>CdeZK## zXzA|rUw9!e1gl8v*?DXPk}lIzu`=xmJnA5$b8pzTtOrWB)$8qCfKpI3c=%6+HO#v# z6%(*12GC;J;o-atr;qqi0b#&uHdFG@|M%ey>g70)%y~6NU$N$KnwF z?Kx$q4JSV8nSh1Y7rq3=H(*3Mu6uVSLj(vc)T8(#NA*9MQ`+D_wvI)>jnucy{7n}f z85mN*ikjWwv)@@K7aiY&GQD$e;sL3eH1oRz6T&!`ijjIDWsTI1d;5%k6%wZJk_Ye1pl$fZR$phv@tqJILBar?q~RHwVtBZFakQ>V7=Uvs>A9S4CbLq)G<2nN zc1JKs5?CSFpp9r=xoHKwgn+a7NaE@2I4(-T=^3tS$qdFD3x~>#YQrqSv)8lnnNQ&0 zPk7BBsa?O+`STakNukv&eg1m?INEO`<2y=#JoBI$6evlC=l;#ggmT>YbiWyh%N?ylZMKj=g~iR|(HOuO)SUS00+&8wahyVD4;tg|sgi7H_%6>DQeC?Gw& zsUuIym$kZ{G=G{0Ao!##V}Z&niDg~nyB17O3bGg;t7gO4bnt95>_EIHz68iN>>pI) zgfOlwMEhulfj6DmEY-U^X)I!Q@A@{7N$&r?!w~#W2X(2X6`^VN-06*OO@eF{o#c-7 z=Kk?bWu(qv-FU?6haX=lN2HS+qegVxouKER2-Oo?(5a}&oFZ4lo2@NTAJr_Im0Y@p z5uf+yqq`v66RJGsxAPg_w!HG;_7&@NETsU|jS3QvVy&1GjndsO?nN0qS!vbOhr1sp zik6TL@!W0>2I*POKN^2=O+@WYoJ1A^R=U4I3|E-9jRoe$Cz|9txe@OJ&j0jyoZ^va z#PIaX(J$*~zdoq<@o7R*H_sVl(WD+)$6rdr9iaKe^UDJjO+dG>dzM`~=njN5^F-_B=6n^o-vV2Mrtjy7^w4r? zJ9iK7kDpK4h!^Wrp&mbie@lAOcQp{1#-d#d4gnd z!>!0!9C)1zEE!sCD6!x0v*9?GJ1{iLjL_q2|7^Jlc2B^*cQ3EE@AG4wBb>=3gNX3` zmCGMs{#ENbfaH=T9E+@yb?^n#=ZTt}!*~QHD@%9TBedkV+;x_B17&SF@mz4GccpKj z2A#pV+OGMaC$*Ksi+o{hl2oD79M}|xQzR|D!-lq=U_^3a_*}{*qK2~Rv9o{FjhZ%$_z^%b0M$eZ4^)~o=$uMl1b2% zt-J1HUoi2HVnIV=r)&N%+2~#G6)_a?>T0GFH8+-4e}I`NK(BHA`26d)`*&j>K4xVR z(prezwfDkMfmQs|1=yUr=Bt3eHR=8jUYY?krL^NgR$S3HV zavV!5APB9IV9PbcH*h1r8-M6{(XV^nq}6&0foZ4gP)!Iwm>eTJsK>}h7iM~V60r$h zc2ZQ=k_X@^gbZrUY|YtAgd2`7_0RI zO^wia)8NHxd%ub_BY>mAAhyb#N9n;Z;mojQV*iK#ziGbH>hULP(=X{twd>fCVk4n? zFZEV8(xjSsop`rBP^dyJey#^1S}2Q{8my_bTspp zGqw6dTM~fr1(J`}IwNsyHzjSkvA%3Ug$76|x>7upGEq8!4VPuqpFGkgd^J?dro5i< z3?w)VJ-H*QD=n|XQ;m4<))a3goI0&hxLghcQqZgQe|Hbl zP0UKqaVK-?BZJw9_J5n-&OJtx#ngQM`xu5clMV2-kvun=^o1DxD3t30r`zDCsirb@ zSobF$`es?wXo3W-Mj(8<&w`X8$H$rga(t#|;t9b;`2|?V1{n z`P@*=9p-0|^fWZUe!1WE-aU+|DgDW&)+y7l!b6&00vPt=!wDz^#4p6xC=p5h_YX3U zF*n(ePEN~He321c5cZFYq_@d%YFYKnKfU;ZxA&Dt%HUlxA}^h(ur6a(+7Hx;Fcfh? zAP>M}+}s4v!Vrk*VU_Ye4I0SqzDrE<41e!JO?D-Gco@I5YTG)hP*jahCyz>6T)ENfoF#I1p)*zAN@DOJP}@H{q%In{i7Sk;aj{PamFXd@-J6YCFFM-rrXV772LF%76rjr|sW+1}6>|Y2K^mBs_#~T?e zskZ&5!!2FcjPio5cuZ^Dy%oFnRMSk1fMCaeiR9DOt+&(GB^S8sqvCpUK3(OJD(GD# zzkeoSv9)bsyU^9GmDsvHC>YWug}Q5k@T=u-?`~uO|90G?OhIw>|39s99F| z;D$8S=3*8Fo+Wf9+oC=}>oGkvGnWu`{d^|jD zz}zY})1#52C^tk6^2ZA3sHTCM{s~_Qdk0_Wh1J?6>HFjL9H99_f4e&;UJz7^c89}* z|MmeV890*(30RKoDxh5vX-Su79~zi7o{I0r!zx|6_%-(UXTE2`nTY8w!_6kfJpkZ& z@huvybpF7kxB#cegT0#kxtCIMG2jp0!ha_?5tR{}9TPi#SHM0R+>kbAVm)&;TokK- zjKsH(Bm5CdoND)2Y(CA7DuKXxU~qd9zvJWC{xA36r;5yf>VLUv%6GefIJ*%wHY0NA zmOt8S%#WPMcoF@?e&eZ8lG<8*Pt;bw*>eEKH4Z9#uOb%?UZa?7%y%|Xfu0?Kv1$gU z({(`>)X^0_xp_!9oh^M74yL}K%4p+?*s>)Q<<9WK%=4R*+BO6M1}k;vIz|JzYAI<@%d zmX<$LW~CT~5;xU|SP)FaiBbv6)SUY_ze(j|&(fge`zLC$67I%HiT#DwbLI#uta)hv zU!njp1oGo5+c$h0Kzj{Avo6=%f`xC7gpj@S zgBy@Cn%bBET~H+F5v&QIzb_uKoV!uw-j=26b4D|``DikNU6!pm6SP_0z9k>K3A|)P zK@W=9TfaY1?In0-LHC=rs^j;a+<0L0aAAJ)hbI-{M8WoNE#JF_3CD7@s%=N?GHvGkR=_agWGnMuYXQF%f(@y+fNk61xt{-`)(Y*A676cJP&J znkVQZCGKC{+Wrd+tJZ3rc%q@Y$O0={yn+f6&~^j&CWV?r?xxjrcr^4^VVnlSXRjrz z$EH1FB&w+m)eM)nxz@BCC*SeD$R2ljU5ClhJ!+r@uQz5@T-89UA5A;nqoYnN1#K&P zjh6}Ft1vIYT^UaO5MoF%9$93L-;s6X1SdIoo&7cx*#0aIQiUpC=h8s@WQ;^R(S3~F3w^7kB1ywrkepGjIX`V(dx^2WohtmqyBAo3ep-tpXUvpZg}zM zJ|=!;S#>+Ep+!7c9bKfy=w;w|us;)c&WK!)5A_XD(SE#3@TvL=={;4ujtMOtXK@qX z)Sil=WP4#ij4gR7>cL#?Sq}?>>l92(9o0tdu12IAhatmWg-QSjqy=!jV1Gt^y4!M3 zwu&;e)-nMnynZu#t<~WPPvnPgO)j8&<1-9%I*B zh!#^OhU0BhiWpbxO63iK7OBe9%K+Nj36Sv|(G}>K*tdj`<{y`L{73bSGjH{%A^$Lb zblW%Ahc4sf9|HMX@;!)9lfY*(kT;NK+HMaTTb7=n+TddDzVyU6A zG4eXTpft8Gyz2j)pEzVa)y^eRC-NYs$ofO)t&mA_yRv|10tB3p{z3}QqRg|&Nr0`( zdx}J*hDonpRYTS$e7hvF|I@*e>9R5U^{sea^P%l=rM}iuFvt65X_nwype~Clg zbEsu|hzGDj+|EPLqce*+Xoke5g#O?*SmQcFp#j4XjPkU_di7gaP4cWgLNxAw_n7L? zI`L}$Kd#<8p6dVq|36me*vD2`2gwW#GwYZkO5u=kkWxz7WshUe1|=g@6ylKVy-Ri> zA<5ok&+q-b-k;w;zkj;)SMhv4ALD+%-EP;r|L4r=YHqzm@p?VUYQpHK6$~tm#g=vn4B_J>lb>oUmT=OD2|dLUjA$2#`*ml zklq`#>sg&O6j+;h#uphh0fV+?N`4WyVin_|El9y6Gfy>Nzb2Od+F<&P0GS7#3{P(I zHZnl7iw&N4Gp9^;NJSu98Lz8;^Riy`!6LMc`D)i_NP&Qz$1$T;Gu72-x;GP#=TFTA@~T^xY3|!ieYZFnbXEk@i+fV)WWQ`(ieh1LsF)Q()HP`H<9cy zj5*reR7R{L;s+F09irIPK!_5C=_7wja|6&q_>lVp5e8H)j>rP7KvlC~O-Xlrg!fj3 zSm)<;_QCSimCqDnskaIhZh-e{nsZ&gqFKls3^zS%e_Ts8$F3kMt#vX}-ijozs=;;6 zKkL|6mriFX3IW3Rzy!JnG53;Fqc)+;t-hPE_zDHZ^_42SBk$h+vy|oy;)~kmQjmlAV>JuoxMgIx_m?RDO zxZVqgrIRU&S)a7IL${yIr%xmGNviIMiDS=gYPLc-Vf&T zcyO{5TYBPqNX^SX<6mCIsFI`%a9=V(7Dk`-qoh3tD2h=OjyDCn|LAhX-XLl62g->= zg+H!fFB)A-EFG((U~KA4Ra{Mg%*s>2KO@V2vf$WSsb};JL2*mid{A8GaCgezz=*R2F(Hnv+KNIp6|wPJBiadlRx4*)z`ENaP@P zDzp#$Wde{{1%=d^~`3nlC7Cst#13Yav)55(*}>BG~}xU4q9Y)1$aWa?$5$(#em}5hD#|n zEj7cL-G{lS^vG4F3pv}{P|t6t1>V(~$Wo;eM+Pa2IdAO@sd5L-Jw3%YW&4r&85r|P z_k2>D9L|~wZS5?ti68e}-g3VOL%h~Hw;ZTDl*M!UP~`;VWYbrkiHiK!?XDx?X( zVOp^Hczc^(!o`%wTYO;J(X5~ll>rV4czjygYTr~K5tb3yIg@g?3LF-X zwkm(es58h@E_)4BcK`ShLaG5qrk3Uz0fk%zdv6PAY~VG>%Rxz4w$Xp%XP4en0u03C zh7W->M$jAVMx+w4(b&||xWM0NjFKJm{k+D}h9qJW@=u4k6bx<4exU@A(=LcV zM8=DCUKr7H5@PC2W_VLNkZAX<3x$zLlfBiEQ?){0W-5RpYd2R;iJkH&vis>wN1sr` zdKQ^zeQNOfM6wNo_+-*;zMG%AD=TtFb+Y^O>N`!X>T7N|ksLZnOyg|vipbsptxb$p zTh{GkKm9eCH2VdNMYLu_v7Fsgp(ERTn$|=_QlB9bA?Q?=u`Vl*run4IULHj%NwE%E zjlrs%C+%8oa-Zc#2b|K^PluJ(;a_jh>i~V=;QhH=xX?T~e+?Of6>*MJAf~XFeQJF> zkajGlpdC!Q`a(A6FQ_SQkNFU~HKBcP9-|RNePL3_k%4ZzQksKu2ot8dJQwuRz)=3R z+=onI)vIf(_jv>+2xyYXGGOIR@4wS-4N1j-drvfX_kJJw@pbJ~Lb_x8cdM=R{(81b zv!VZPU(s*Zu|VW_tm4wj9$?3=Ttf*MDpNb(qto(MJh|nFlu#v$GWbk;a$L)A?2>c#LeOO3L3=|^8X`G4P;@OYJe<_4+$AZ^3mUq#Y*q73-fFZ+DNZf^f& z0!)L3tW(oOtFp;%GWPm-CuN>4)siN7il}Yj!k)D;FMW7)Xl>T|jQe{dBa%r|r_w`h zxLUE)?9bD?+&BeyJXIMw;oGReo9dB%_Y&~2_AUFF4th?VO&i_+2N1)j5Q_c2Qn5@6 z%KV(F+ax%MPa0H=5(jvO{NLqUQ0o{SruBpboVxKhc*;A<$w|WEec_i^P-29JHmzt= zQ(-s+sum$b;uY@B47o#91_6TV87*Nj+;Z_~wONyO(h;BmH8$$K+>8n13OYLYebl^F zv!yibe{=v87{8GD{7MEGBYnM^G0rZ74?FXBLgfVSw-lGiH_7gEbx(Kqd^udP@`2q1 z1!B|ecwLY^bA|{?KJaJF{m2+U1?p4gV^$xIXoMGjpzwEZp&^XBv!bV7KG>btrZao; zx@A`@(TAB#r>=R+CS=q41KVza+#!4UwN>MfAr!QDB?CxFN!03W^5G-CynPV$0F&@l z+ngJPBiYtU@MKLeOH^XXU3QB>@Ckn0w&|}grrK0kF(iKTC)_fNu~g!f8gQwaSDfoL%Q?!A(du3wtwQY6-ar|u8QQ@7F#8Hd+;ZzUZ zsK{%EN^HwM(~9%HkGN>RmD_UGw0J>i4T-pYV5;ggmpnQ`ABbkRUZXV`>-sFmB0wPU*={CW7kxO5`hzmnNBat#T}+B~G9E?WJ2-=@bx zZ)LIfF7$Xpa^7*Tt%OS?PuI(2&8bicS8I2-GSQ>k4O=TjL+vkrwvkYI;K7vf2+X!f zM7;fRm?qiL(NQ*+le_W}T!x+6t%X=|`!K%^d<5w1(vl^|Ii%y$y@(UX9^#FoBi{DS zY(VBdP#QFV+3C9>Y~(-@if3zd=MRipMUDkX=h0TE>rvbwrI`0zEAIG^XI zihYgt3B7jyyPyVSU8d3EIWK_IOWZa^=zI3xj;GKYDx~OL8sRHi5H?U^>4Af*$~`w5 zR|(!dv>Uh9jpV;%%=u3Qr*1{w8^-N=e{*GVKD&ZBVIRv{YfGRyFlG3A=Zj}Gt=2^b z`*wB>p2u%jB)OH@B`UXuf{op2GN6m#N@F7(%ZjSZaO)^&c`m4~r+ITJ zae;z*o-fSF$%r4lh9# zm6cc{#*-K)u(Ov7(Kb1#I zRv|Y?#Dso!ya8j!#ds=iDI)w82@u11uSv+kdhJZ&d48RuiD5irZPnLhEs)ujL;*IZ zpsYd$Fz zkNiwkBx}Lw>vjTStjUKTwl-|mAUCRtQcym0Zex(~vGJY9qLQNV$}`OF;-QT*|ZnK~Cy z{5zw2O`rN;=^yyslO_2oJgVlF`Q_hl&R_e^KKx{5@NYvSk4&1q!JN$)X~UM6L7YPojmAgUsE#&?VCVQCT)!8GLm*~PxT z+zygN+OQq*85m^#8;`m_a6zY^dFzfwiB4Unv`cAnKS?_xxz?W)_-*8p-o_RnWVoRH zvEX<+#rar&fpr`eE&JHec#y8ah>bK>g`Yr}*ekH0!MT~5Kve#B*w z9txPVK!Q{ocv3biw7H>wVv}1Mfsgp%1-fB>Al0R>l_D2gP|eleJrG<6uYu0E+tPM2(DbVvr1=Pn} zT0IZz;#RYGYiV~&{r=3B|CIht`i`*9_ww*GOhsnvvD56gp9mZzk86=HVVJbEU5^|& zXSTN?2~}f-`oQYS`~mt6!XA5O92w%+CC$2_yR#2+PZg!iCy=8hegsbnVNw3s-;1`# za*THj6gaMMnDjmH3)bdoOGR!m>cPtr$}yW*I?w(f#L4aWB&9gcmaw-eANShK0USYQ z8FH?-I70=HCZ45an5Qgv1SO)LrBxg|+au+%?OZP63VCQ_%}?cO7fBxC^9u8_Z#C+b zd^@)0?^B(W06juTNP~_ZumZW)kS5=H4Nt|!ln+g0Zq*kbeWkhcp!M+N1Hx!eU|XNz zn}fdB`NF+dw-S1W@A(H4)w=g~VPFJOtq=Wpy~ih_@)v{nT-`W1`)LBh?_^SizP^~Mmh2D-+pb02VHWw5B$J;LVC}-NVRbJ1_ z=Ck@Px80N@)2JaIBH1{-` zR#$^WG+O>0#7BhQtD>sb-ophg3Su2LzsZUGyH#6h_K7bxI{lwIZ%&N>Hy<1r>fOb| z#j=%sUv43qomA%euYXb?4r}xknYA4pAQ0|_{^Ple*#+IflL}Y|KZApCG&^gVHy_m0 z*yY8L^XDn=`{tjwFv0&~QnyjUO^tE1-u#p&_92ggcE_MGdzr_TN9Ej;*S_qRWq*G= z)Ta`6Ubcdp7=L8mULmuuuL3*ID{n>z@7C2s?(*&Q%`c3THT5pM_qSpdYHTRpT2?{| zTEKm&T*hBCg_uEg3S7w3f`eL7{|8*4ck?uLHtFfIh~dT+W(K*pCeS3&RSvwdeIO0K zQcj4R0=EZfMXGusHfBW^l;!9L9L2S^-LWr>9{4SKc=7X^ZVi z3o`Ko)9lo#S?BiwlkQbAAqvu1F}(3l8&aqV;Zkk8F4PjC_>qSR+hhyfJA_>29an|G z_y$UG#$`MBOWRo;Z||SWZ=6mwRuR6P>=?n9Fl zUjW(8xVj}Yphh6hww#onUwok5zEyL3?~i6*;D!BXuSvz_+OVs`-u|?u=lY|N4Qp=q z@5L74WzBP&VpfElD2`wqX0T+izjF^7{>`Y?hc7OsJX`Ti6M!zcBID(CuX2c;>#4VI=j8*2k3)VAzP>uIeM@%YTxRO{ zDI=^WhHC+IWFeK3jS-owJ1amKL7pDe()<7555}L}Qs~hiG6GJ)#HQyGH(VOBb`D)n z2waDGC_y<54i5?j%@UNBru$`&uo<3Aw|hkxSYyT37rj@L2S*?vo+sLn?Aj`2aC%UL|H=Q1yIlrd|Z13^l; zu(WPx;J2imgHE1kK$BA?JzNU|nWAg}c+j!{MQC~soI^hYI2BjbLPdHtT3rrwp7Cz0 z9{T>d0{Y<^iXSZCVAcVdelrg9Hr@!X`4sIAPB8iFPM*aFTL&Et&r+KQwmj8o15#Md z3nQlM`;tn#?-w)OX%=h0^7uXa@y~1y5_iBJnMA6n?oF#O`a;C@vRW8cfMCOQYXa%U zjH!On$8B;IXTy;9e5~(|ZPw_nAqyIZ8}&2zZy*gBds1 zadS3dfjZ1@M=CK(!_5%-B-MsK(+ZyGxEyoV-_Rg(c>War zxRO$xo@6=Lnu>k*m@viQenUVxiqX`l%X|^>fwie#Z9viQxw#w>;6V$&eg+1UeS5%t z%ZUIU2Cl;fTEy59=O%OCJ6(*vK~X->0l={Evt!TZ zkAlp_uVNV>^XJW`fI)PHe2eC~IUxslAe4C>$xr0x#kJ!=Zn+C(ZH6%9i%$HP(fAWa zOC?@#4W$HEu;5FUQ|0lM0GWv6>`yZZL*NhtcZRm+il)lYSOhr4W_5Rm3 zU%V%tx`M&xUS6iy>&6ckEDSc7M*V-hfhy8uLj5E$JL{y)|nb; zXj$iKzCueB9rp>90R`(K6}|hZbH5LEAwGXd12;2F=9T(%}3QiTHCZOpj+Wf<`pt)1Ga&$ZL665{oli<0gcU#F)e(Gp(!Vna`#;2p2<=rEI-Hle6;nVe!<#Q@DF?vXQ%FNJwLR{j{muIDd7V;U$Ck;BR-DevqZy~Cu9DKToT7y(%Zvf=@{hc0$o<8GWBk!?q4b$lvOJeSm zUt5;nevp2J1O>F)i>=ivo|U!y#&XoK2YzR=E|UdSy=iSmT1!9K#1M!=Vdtqx=`X!j z+8mlo-;(UC)Y~tYah-RWUYCD@`9Jc`r&A>niXQ1Z{)b3}REdX#tMtjNlj@v2n-g{X znJ=Rl&7IMhdxw*f7;vQl)9sVo{Szld@v{o5C>Ezng5$dux_5!;qP&6tpM|+KZ!uuO zwy*}2dDm%*%9F0&CATrNm0qY_QgHY;tv*`A&CR=uc3sjVRcVpNb!+2wxlIUFR z+H{R$tM$j47|HZba0WnchVSY1hpQ_=)|yM-&)zRC3GFApmzs9{%FW~se%qz-?8{`d zQhR9pQE06bxVv}i@+qP&^QFjkt%iG^z_^|LoX^RQDV_xh9p@Hiy(x_UkyBR<^*W|? zYLxNjO*)SIM?#6wDk1Mwb}m9&#MAvJ$C|#bJTDCq5M8#9pg=l?D0yZ{Jy$1s82v0u zXyIs5(x&(`rsxjKP|aFGPTV9iuP$}VT0T^P`1bJdY2lpil_#flR!dKSAc>4<=35-0 z-Ff$7&HrjEDnsfl`Q*;DYwPqI3czDs`eYqj#>(+sAQr(y*;Y{Vl~U)Ip|v1BA^Bms z>G=Xp@2y1l!-UL@lfMIA8VI=Vuj;Y--Rfu{ z-S#0w1iqg11E3G^CDEC5l)E<2l8`Yxw&p*pQMjwF^+}eWBi&ga zg|yH-&wia>G4_#i{yNPaA9P!UWK-3h&+O&eVBWDkOI@8CRn8nxm3q2BHmv zM(DSs+qN@Z{w-}=wbtXj_J)97nUaNo-g^M4IVPGK(u%L@su^Qmktd$MT9F7lgz7g| zqC*((Vzb+Lo#;%h%hg;TcR==kLtfHQyWXB5VHWh~^%0lG)9&>!mGlEz>o#sZJ=(VO zJSFz)>wLaLcYqdWHW@nKIt~yHoj*X)Z28;TPzzGWX%fMzxL8&H9bd9ys}nxy2u+Ja z6P`Xp(T)cvT6%k3&61Tf=B*ipUyw8Bm@B?~@WMavYV-wa+EHs=jE$Cm4A2ylZWdHv ziWn2Zb}xJMdM?A?V0ahm>N{H!Q3l57w;yfGdVaMN0`8s>_X@t`sUP(v#ZRF{vX%?c zeb_9ia3W}o)y6g`^;22EBtxkZZhij_&f?<+pIr=-k%bm2i6Zy=bMxfxZG21XHlO-c zsl)OvjO*@fK5vj!AHR%6bN@@1LW(GZGV!JISJe$}M$yrOztDZ|#eTDTh=2(Qv3EpY zGMag;b%N_={)y8-@nV_-14C@nPbOlKnV{c>7$R%$?g{tqM0fmSrgx5m(3SW{2O<*q z9?wpVp+__c-OfkG)Mo*Q-b2d#ksk6yto>-!oee*c=0ocPno8OGYZt!<0OH0b1Td7x zRr4c-&@(g=J)3KPwm!G0BPsTX^wrmMfLd72Vr=- z+u@N4f)m`NIEPl<*=Bha-QoM%sE&~L9y1x;3<@aKzZ$5(4~j!3TTlC_38ZhGrDmq# zZNnKkmiw30;$z7Q`h$&&D00IiAVvRnbmbUaSrnAlG2sluoCa{+VGgoUO_nW~Th}nS zV?m3vd5FjG+C`Xq6KD2DZ3yx1_$1oLvPAMNK1y-kHltSe1V>+I{hj8^<$LUobp9K2 z>(A4~-n7-IVqf;Yk~{v(jS@KQ1W$z6w6rPNsn2W=f1m|}$xKA*hJd;ydAB|R6s562=6HbT9aHB)r z;(d1Vt_YsZGcww5r+wi_QR1QGw2$yi(uWdSD=b}hs#gz^H;*%0WFXLZ`!c_l-?{+A z1}Ps;8@Tx_*rknsnH*bHTP_oIk&Pbaqa&!+DXi(lJFr6PCEm*Kc)+BuHAKD?I#Mpz zY+CQ2k~Ox!U$fT?HIkm>c-=Nq%3A4~wQh0A$WPi_vy8o^rF-r75j_GJz(r3RSfzRO zfH#ep+8L5G)w@6zg+6~Y&Vh)Z=l!IyltmR(r@Lemf%XEIxeYMw#fT{Cm$u7YkzfiimVhytN{qvHF&za6X)EoLz(3usPS<>Yx|dVcL1m+L=@ z60vzAM`I+H5z=I}6}CSCS`|cVBrSL2>6UtmK6ZWRw9WubK6Nqjf6Cbw70~ zxbilic}GajYXBHj)s0+OKREqh^xm%vHtq%eir8>mv}JAPc`Y5-V3F53PmNC+0L+Ar zaE~24@78Tjv;TLCb5%}AvZ}jwnx1L>9KXXWm3&>V2PYsoGW?nL z$?Y^UCPIVGM?R_Br49mG?=Nm~Q8osQ{+f@AGJPrqs;=Gd7+G7ehO8VuI!6h}DN^#o z`PM}%z2V@Q+RXR2j$-zE_0TOXDJlreJsO)qz@R>8*}&yr@wP1$!5=`MC94G~Qp{0r zz-Us<1>1BLZSL30$x_M;U#c!Wyg<5BSk%PLW`^QC=5p1n4J!t-^5sYj(U_0|wJ$mD z+KLCe0~DFz)&Bbe$7G!-@7#6Sc$pyNvv}fbs^eh^#>hq2CXmy>QnW|dHRgIGlhHu3 zja~11k2VbFPCX+6(Q&j_8-6e;Y3$!36B-yUQs#7@8?=qbRX$*)GP_oMX1eSQ+chV)jz>w{WbNVw1%miX zze+I9i=Pnzg<=Kb^G>45U2=1^Ia+K;c6aMj19>(E#5+jekxypU@UWKZB4P4ZfJOF= zRV_|2m(o9VnJ1rF{SBsqfK7^X=*KRa(@01kHb5{8ZX%N0IKcagH)tt3?l-->KnvGR zO6)!Pm`JA3FtY_LV9Tf9{L@#@n)XB6$VpSkl?v zr3W`jLPbnhm3ZU%x|_Y8fym9}olMtDYSBbG4{qFZpaVs(#=%sQZcupAj%k8}?S3#M zK?K%nKfI2vu(0 zOJ^9rdu% z;r6#CXbXi&R-M5&`An_%Nw0n}ETTff(Hns-GRQ(`ycKCX+nb$614&UKW-1a|EIRRq zMq78bz6fh**w34FMdbZ0G4>pMnc(iUhgGFLHSr9>MKkalVP5jT2zRL}lB#Z;`$xU-N0t${a@jsoD$Nc1SVXJjh>*7(b{ zl>TA&=1xMzU8aVagDnA%E+t?Z_7wQMTeG8r!oWxne+rT}hT zWXLmrUY2bX{xaCJ_jc-q$pU)hGZY)I5ZVBl$D%z?=K7!9diKAKSL$kGbHi&bzup4> z>NxG|C^1j>p5SH+CCq$nChkFt;;sw%FO{R5KY@~y{HK4ui91vINuQY-`d$=mzZafk ziO;hK)az`inv8dERDt_h{79yh345)sNGXs=S;5GJh3o{^8JCfwqpV~px8J^jv{fS` z$C|=Lz8>FwE)w!2`*o-)3VIA#Zhr5>xR1RlKR({3VW_ zZXth#mWH2jX8aeI!4(p%`LFY0-P!1(C%h_OdXtAvzjpH>gCwGq0pDA&#?LIt5bqnp zhHB6*7d!M~{_3FX;2k#q#HCKndnlYB`@ia&zZpV1LSDQ8`2jvti6l?BaJO(E!FvaG zc&Z7f1xIx0+v zqrOjf1dslpQZv4P)R`1uuRh%U0muQ#{LYQ^SFF6Ky-Ya(iIq2Jci9=ga~x2G(>L3d z4Ethav28cwmBz!nD`zj-MWDe@Wr^-AZw=xJ_F=^n)4(;kjJ(~Cv_V2*s45fGp(-?G9 zA1@RRJD(34!=N6we(v~+=&2_tOl1j2q9fr$oAmxo0dsZ#&~6f*IT zJ}Eo&0?%-m3Rh%oDIX@0*|R@z@{jA~pjb3>&>$degt>Vs7qn4kM?dId853X0-Tlb* z{&dWAiPV@s{Dm!iBdy)_|EbsOsayuvHC5@_){({1w2|WhwY# z=@9wqyL9vy?r^Ts%(1=5J;b13Lw1_zyg}|SKqH=*X3CW(R(aqbr(zuxh*cV>OWH`5 zD+>k&$=Db$7dE>gI%g$b895y9jsM7x*W~fzyz-+V>_TO3xNrr}=QQv*lHy^AfLK5~ z_O?qZ`q6p$^|Fhj@)8CC;IAeao6U1J@+=z(%3nLcoj|mi? z38anz>c4Zkv@^jR;sdzoZV*9a!zps1?b2)KS{qjW_XZiln^A?zH!-%~$QLnJWH0YI zwDQo*^Ta`Qe|w;&XMv~!@;rU7W5ML%gX;hIAi)7t6LG&c1hI2$O!nWnpl5KE8Dq(ZtS^MUt z6A+L3t<0A!u?G>UgpKkeQMyzk50MMb-_7N(=#lzf(f`}$`T|cuJH2R}Z?8buz>W%m zuna4<(_T6Xg@e0jVGzr4W14E`!$bQ$#OC?JmzT>qZE#$;1a>RPj6m{U@PxhWR{j zYHBTY;#kv7<^ZJu?qsao*{6y~rl1nATL;3 zPTh_mw&Z!YMM0--m98z&SOUPnqmt{tHN#q11)`&g9g-@v!;QTnlZ5ezH~n7&&5f>1 zbp9bw{&%?sFY(!G34l}pN)S*7{WqVVi(WA^`o3`5=wLl?lI$Glp^gDF*R(U_a!|%0Jw?_Y?UJ#2RoLW+?X-gf~ zO7UR9+$)A2zw3oNv>fE`c?4MXS83W5eZ_3t+=#P&~_Xh)JT4MMLIa~Vk-F@=3 z;$g6a+?~Dz)sXc&qrT1QMl~d?Q*{(KBVCLoY9*=a6fW`I7%^3yR7S`|tR&sm9Zd<*tjn3HJL_-irZzVB`2DkPu;niOW(-85 zuilgubLs)%G$z3QCwE#u6L$VgS=MCsnWWdNE;C48I+7tzsBt$70nYU}#r`i*l3Hu2 z%a8$>*&b}gag}qeKl&~ZcMnxxbrswcctK|L+2a7DFy0@PGQd!}bTUC}f1d+#7!EJe zJFH}Ed{XXjo=<_{qmp_S^OGIPJ+2MZGeDYqS*Q6b`97`Ud9A_Sm^{2QZFvp16OSHllM`?Knl;uV4FniR}Yk595|2oT6nBv$JOH1AtLrsK5g zGL6w@uVK-B7y04v5YSN3`i&A!46VmQ8$}4fVwhO`rFJvPz4v?2!c}dI$8X<~Y?d$d zX9MGH-SG)7B_9Fn_ccNEf8pVU7WErNlv?7)oNdY1+9lO*6u%#vp0gTvYLr*~>ro>| zJexG!Q4@U9_XO{G1x2MO#`Oas2<14Lr#)-1%x%1>pg`1J2x^zCK}jbB^$gQ3js=Sy zRq^q`I46gS4HFGsAN0?G>N8tJKL8gi4YbMDQiB&rBh8l`;QEo(rK9Hkv-PyY6j;^_ z;B&YAjZ^yWXYpVuUV}X8T<61$ zPsY3_Z}~jTQXqbt7jo6|-q-&`kEx}~(-*4E@SaLCt{nk6Vf|Mi)$`i0iRGXCkpsDsEEcl(_Y}EgLTK{x{QSZ$Uj~8ShcY^jxo=*-t8{-S z#MEzDm&w#{J;yDK9<#$BE=iua;kzKErSm|DK8|Xs{4~d!G&Wmvsej=12^!p6jVEX3 zYjc=+-`?!t5uf~!J!m_+%pfkdyT8M^^Rr7;gDC>e^UJk69nY7UwwA+&f4^2#K6lu( z%2)~FQ=olzcV!|SozC{pTEk!)6PNjTE<=Rt3CvA$6AHGnbNoy~=33B}?WtVC4m5M9 z>kBQav_iR)kdMu}{d4BVCU#TCZnU}8tYF>&|1C@AZbZf;* z!4U8B4*s=n_3{TFjgJzj?>q>*s};S_gh~?bg#lKGmt_lQ-}dJ@@4Je-Fo8+kUE1vK z>M585g^Qk=^kj=5`k_zzIwAN#x*P%a@mNh;HNI)fEgGE|?%ZvlSo!zQ#^ZnK+>iJu zEwzEih=87NEjLbxMAP5qs6ikc_Ih8WzjP9#IrvoZsIcJK8##I06YmRT?HA(+9f2eX z+OvYCz->b2#4B@+R+c&(p*xmB&p6|y!DJ{aF`lECMde6dL1i5S9d4rsUM!oy{?xg~ z(gL(pp}TTSM2A0KYYns%uI1a<81PfdG!bF$Q~yWD=Aq9YV^aeIA+{Y=;SXT~W9yUH zwF6Tbm`(Ezsw;{pC)FI~Eo(EI2rl~1WXgQJg zh4@rovRXHWT+HQnmHa^E&5TiU_ROArjSS`}Nul$bo8(rpSJ4)R{Lg_O06{nRr&mp5 z@9QJknFy*LL-Ph#30HK4Ftsb>0dp*m5nRB^ zVJ=XKlvsh5PETK0Q(+X2Sp>;>$00N5G{HFbbU;rGLXinO`SUg=s}BzGEH{1` zng#Qtg-_sA|MIV^b>)XC#Z>6Y*@dR<+sYJmN$m=pwj%$}NdJ z#3y_}k3GEGaoz&+P_DDEawV>JdrTzzyM5qgPx}N>B^=z&;n3B(*vU`Pcl;ndn4~)C zWGC^de(;P?yi#7<9Cs*oY|#}K$a#+D8hIkv%)sFS!wj^y*s`=p(CR>-b;0nqSYC*) z6Q1ysi3uaw11vu5G5R5(Sp?lC5;xf1RytX=jVezSAf(;wXDF}KhiK~f(b%+sEt`Ds zBhrti!1^g$e_Mnk7Rnhdk3f-#M+!n3fifT>B9r@ak~(R`@#G*@VFvQVAkJJ z(8{YZA;kDfXf5CBx08F~bqVoWfvIH$2tGRl72`B-hK9p~9p)_r^eN(}Zjr_ny1@<> zuDpgauid;5?Yq;y!y{=m#=|*OWKSA@2S&ShdmQJEPc6_UQ_u>hA*OtMl%mi>;Gej- z$r;c>+Vkh@XN*k)+s-~+_O_m#FXQ9$)~(_4$E(t85I&R8R=`&RDv*T4vH#h@+V7RH zDiZa>2V zP%`jI%3!WTWSJTDTBr zss5;d_yeFHbl{Q!6Ik0NUmVnE!3`F9ol^LW3u8<`NG}tXL_eJSLYa57x2J1|8*`K7 z@V))6ux}*L{;=|WcbyPgft3j8R1iZz=OPi3k6i#{M@gnj=CXVanWQRwN*Q$McRWayOOYZthz7UNr7TaROlHWtTM$F^S4qC; zSb9W*;JfrK#6E_pcRRi0k+VaW^||A74No5dw@XmJ%a}auFWMHgxWm7^h=7H!2{rP@ zTyKQifO|1x7l(nYwoZbXl*|w%RwcdUpA-$QxHj|peh6rR&C^yS(Q$2aF&wxWfUQbd zd~J7X$xog*)ky^-7QhZQQfUL`kY(hDfD4w~IL&A2FI~T6K-q13@@teNzsGdyy{pXd zI-e@<-HSeI^-rJFR>A(eFo2K}FzhQV6&HlZb9=S^k&n5bAC7Qkz_rojYf9I<7uKO9 z1JU^tOHbEC<($RXqSS+f%T)?2W(~yY$WL6lQFg`dNijSYb#>cWyJ9(_%)RhGRnqCS zb%uUJL3ZZ~*E%J_SQRMLCoII+NllalPCla;-Ga*thkL-Z26IeCSMu}>4uE#BW02?% zQhWLQRY#)Vp=(zc%N?(!g??&?x*giMEF;f_+kGPHhAceHRVXhI&Kv%WWi%0h6d(-? zG0nebY>V?4S=4o5zAPrJN>j@hMn5!Y!^yu@iIvx~<{`yPG4`5*w&xSj=1Y3f*@}nlEZ)PJ7a_(Xw742V|PF%WXOyRv5UNY`g=`nSz(#O>3ru)? zFz@J&JC!k+uN!g+qTv@@7sKjX`(*t=~@<}nlx)K{cpAj^j88>_P%ZyChI>7UF`Uz3i9E4FSPbSJq^5T;B1beZQUqcoXIjMo&#u zDAHdS#ozx){&FeP_U2IT`QZQQZS7UZ$+6>gnX4}{LtX#}Rfu`vSUpQnz^b7iWK+sE z&2L!Z+{iO}dj8}-)Xl&ov z0K<5St7sGAGR)Vo)Ygk4vpwwFT702?x|6D&6`9!D^*I@3BhMeFOaqBoFVh#f^Dk^@ za8Ju0p9a?_z`D?8p%rc)rvLukW~^431YZaaI+$U>bA7*XJ}YmZWx26@KjGWS1vo}% z76Fkob!`jAzMZVT_>2puT0@r{NugRsnKwQYrST?B*&s^4z>1zUq?4ZU4P=Qw?jFEQ z)#8mkD)%Y52(%HBJqe;OFjg0o`H&VA+1TfsFAjok@?yBTEvj;u61<2w!b8ZaXoc7S zK{EQq-kus|#?r~lRu2VqNYx@31pf~LZ(_!kBk*tPgWTME@u{u>QU5oOl`f{sZkdN) zuV)Uq66sp=*A>Y=a`E^uRo4I&DY5ETk=r3uEsWLKD}WIPAMVhl+3}LZS9<6V$*KMj zA=u2;lE(B^0Ku7;K^0$63fPgr##Mt;;Jo|W zCxZ=NGcW;zZ!cWv-X3F-4{nO#V{18+ZR=(kCU}W2LFf`W)u|=0*7mS=QR7}8#(n9I zboCqeME2`RY9kPFO8k#KX1w6%g&Wc1Bjardio3d|G=7lXUrKCLQ^tlv)>le7He7_& z-azqVsJ1Z=L|C8C)IYtAhX)U^ix*b5v6TIRYz@p?6etqH6^dsg@7R0VUIh(h(dNIr~Iu6Srx8>hEI4Qr(|N+Lkq3 z0pOqT&AO#Q=)M@2DCQieAABe#7Q?3_-z-I^;~^s~4)d2`dHOTHJg44yM_Ga765jXL zTROZ=_4rs&ex=8ZE~Ls~$Q)YJxjLhrp8)CYHdAF-5`W-legypmap-t9s!ak8HJA}{ zAmG55sO%nNpQ;nZ;4htfNRDYH!I^I}fF%#a4LoOtu=8nq-C=k&4+^E(8z;h)DG?5b zKf6RXtzc3VIjS!3g1=w>O&=dF=(5T9w?!xDLwfbVvuBCXeaD55+4v zYz%5|<`uNGwKJkZ+RsTgtb>eMnLHYq$JxAAk6dXEG_@r%4uskSM)9p5?vWv8`RUxq3 z^Xgl*bXqUK646qAsn9~T%M%@j`@*OR&H6RVzEbAq=~dhOnNyc3_j#Ixa<*7WW`Gx-u`{0rg!<+_3spoQc}{=WM+vr+j1eq z%3pO$qY1dueJ#$Q@ILDrve!R9^(Uwg00gdW#1XC5cKN#R+=r@@JMrokDnh4mk0KOL z-}~={Qz6+g;iS6@w%6Yt#u#L9dkF`8kj5$mJ`~bI1y<23K^`pchz1o#k&FMMiE?e< z84A?ot@+GGnkkKN*!g1kwPjnQFYw*o0*s*4T$-x=w9BX;$GkNjBKyX{)N

m_bt2 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 RXsht!xzzWy;>95ee* Date: Tue, 19 Nov 2024 10:05:33 +0100 Subject: [PATCH 06/10] add: timesfm plot figures --- exp/timesfm_exp/timesfm_predictor.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/exp/timesfm_exp/timesfm_predictor.py b/exp/timesfm_exp/timesfm_predictor.py index ef2c8fd..6fa6fba 100644 --- a/exp/timesfm_exp/timesfm_predictor.py +++ b/exp/timesfm_exp/timesfm_predictor.py @@ -14,6 +14,7 @@ import dataset.data_loader as dl import exp.eva_metrics as evm import utility.configuration as cf +import exp.plot_tool as pt def pad_sequence( sequence: List, @@ -157,4 +158,7 @@ def get_timesfm_predictor( ) exp_config.append_csv(f'result/{exp_id}.csv') + _path = 'exp/timesfm_exp/result' + pt.plot_predictions_point(x, y, y_pred, country, reso, _type, 'TimesFM', num_steps_day, _path) + print('complete.') \ No newline at end of file From 902ac2b88ac5c23e675efb381397f9c5d98412ae Mon Sep 17 00:00:00 2001 From: Nan Date: Tue, 19 Nov 2024 10:10:37 +0100 Subject: [PATCH 07/10] fix: change data type for timesfm plot --- exp/timesfm_exp/timesfm_predictor.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/exp/timesfm_exp/timesfm_predictor.py b/exp/timesfm_exp/timesfm_predictor.py index 6fa6fba..7230346 100644 --- a/exp/timesfm_exp/timesfm_predictor.py +++ b/exp/timesfm_exp/timesfm_predictor.py @@ -159,6 +159,9 @@ def get_timesfm_predictor( exp_config.append_csv(f'result/{exp_id}.csv') _path = 'exp/timesfm_exp/result' - pt.plot_predictions_point(x, y, y_pred, country, reso, _type, 'TimesFM', num_steps_day, _path) + pt.plot_predictions_point( + np.array(x), + np.array(y), + y_pred, country, reso, _type, 'TimesFM', num_steps_day, _path) print('complete.') \ No newline at end of file From 1e20dd17cf29760fb44d3b54ee4c71266a630bf2 Mon Sep 17 00:00:00 2001 From: Nan Date: Tue, 19 Nov 2024 10:20:38 +0100 Subject: [PATCH 08/10] fix: make sure figsave dir exists --- exp/plot_tool.py | 1 + 1 file changed, 1 insertion(+) diff --git a/exp/plot_tool.py b/exp/plot_tool.py index 7bd2efd..1db7bc7 100644 --- a/exp/plot_tool.py +++ b/exp/plot_tool.py @@ -21,6 +21,7 @@ def plot_predictions_point(x, y, y_hat, country, reso, _type, model_name, num_st plt.legend(fontsize=12, loc='upper left') # Saving the plot + os.makedirs(_path, exist_ok=True) plt.savefig(f'{_path}/{model_name}_{country}_{reso}_{_type}.png', bbox_inches='tight') plt.close() From d65c7199e2d8aa37c8f51ed4bbda247838032868 Mon Sep 17 00:00:00 2001 From: Nan Date: Tue, 19 Nov 2024 15:37:10 +0100 Subject: [PATCH 09/10] fix: wrong forecast data --- exp/timesfm_exp/timesfm_predictor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp/timesfm_exp/timesfm_predictor.py b/exp/timesfm_exp/timesfm_predictor.py index 7230346..827e651 100644 --- a/exp/timesfm_exp/timesfm_predictor.py +++ b/exp/timesfm_exp/timesfm_predictor.py @@ -123,7 +123,7 @@ def get_timesfm_predictor( if forecast is None: forecast = y_pred else: - forecast = np.concatenate([forecast, y], axis=0) + forecast = np.concatenate([forecast, y_pred], axis=0) target = np.array(_target) From 238afbdb237e708ef8772d2c8919b845df346821 Mon Sep 17 00:00:00 2001 From: Nan Date: Tue, 19 Nov 2024 15:37:21 +0100 Subject: [PATCH 10/10] fix: more flexible rmse calculation --- exp/eva_metrics.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/exp/eva_metrics.py b/exp/eva_metrics.py index c00113a..9374b37 100644 --- a/exp/eva_metrics.py +++ b/exp/eva_metrics.py @@ -40,6 +40,8 @@ def mae(real_values, pre_values): def rmse(real_values, pre_values): """ give the real values and the predicted values to calculate the root mean squared error + + y shape: (batch_dim_0, batch_dim_1, ..., batch_dim_N, seq_len) or (batch_size, seq_len) or (seq_len,) """ - rmse = np.sqrt(np.power(real_values - pre_values, 2).mean()) - return rmse.mean() \ No newline at end of file + rmse = np.sqrt(np.power(real_values - pre_values, 2).mean(axis=-1)) # (batch_size,) + return rmse.mean() # scalar \ No newline at end of file