From b8e3e10f138040b637853dc5a4cc40e6cd07edbb Mon Sep 17 00:00:00 2001 From: AntreasAntoniou Date: Wed, 31 Jan 2018 22:28:57 +0000 Subject: [PATCH 01/24] Init --- README.md | 64 +- cifar100_network_trainer.py | 182 + cifar10_network_trainer.py | 182 + data/HadSSP_daily_qc.txt | 1023 ----- data/ccpp_data.npz | Bin 350007 -> 0 bytes data_packer.py | 61 + data_packer_2.py | 59 + mlp/data_providers.py => data_providers.py | 353 +- emnist_network_trainer.py | 182 + environment_variables.sh | 8 + gpu_cluster_tutorial_training_script.sh | 33 + mlp/__init__.py | 6 - mlp/errors.py | 176 - mlp/initialisers.py | 143 - mlp/layers.py | 1002 ----- mlp/learning_rules.py | 162 - mlp/models.py | 145 - mlp/optimisers.py | 148 - mlp/schedulers.py | 34 - msd10_network_trainer.py | 182 + msd25_network_trainer.py | 182 + network_architectures.py | 162 + network_builder.py | 180 + ...ntroduction_to_tensorflow-checkpoint.ipynb | 557 +++ notebooks/01_Introduction.ipynb | 669 --- notebooks/02_Single_layer_models.ipynb | 3305 --------------- notebooks/03_Multiple_layer_models.ipynb | 2498 ----------- .../04_Generalisation_and_overfitting.ipynb | 543 --- ...5_Non-linearities_and_regularisation.ipynb | 1219 ------ notebooks/06_Dropout_and_maxout.ipynb | 3774 ----------------- notebooks/BatchNormalizationLayer_tests.ipynb | 152 - notebooks/ConvolutionalLayer_tests.ipynb | 307 -- notebooks/Coursework_2.ipynb | 147 - notebooks/Introduction_to_tensorflow.ipynb | 756 ++++ notebooks/Introduction_to_tf_mlp_repo.ipynb | 99 + notebooks/res/affine-transform-graph.png | Bin 0 -> 13239 bytes notebooks/res/computational-graphs.svg | 2002 +++++++++ notebooks/res/pipeline-graph.png | Bin 0 -> 18721 bytes notebooks/res/rnn-graph.png | Bin 0 -> 21332 bytes notebooks/res/skip-connection-graph.png | Bin 0 -> 11392 bytes .../cifar10_100_and_million_song_datasets.md | 286 ++ notes/gpu-cluster-quick-start.md | 166 + report/algorithm.sty | 79 - report/algorithmic.sty | 201 - report/example-refs.bib | 75 - report/fancyhdr.sty | 485 --- report/icml2017.bst | 1441 ------- report/icml_numpapers.pdf | Bin 2814 -> 0 bytes report/mlp-cw1-template.pdf | Bin 80100 -> 0 bytes report/mlp-cw1-template.tex | 207 - report/mlp-cw2-template.pdf | Bin 80559 -> 0 bytes report/mlp-cw2-template.tex | 195 - report/mlp2017.sty | 720 ---- report/natbib.sty | 1246 ------ requirements.txt | 3 + requirements_gpu.txt | 3 + scripts/generate_batchnorm_test.py | 43 - scripts/generate_conv_test.py | 59 - scripts/secure-notebook-server.sh | 73 - setup.py | 13 - spec/coursework1.pdf | Bin 110591 -> 0 bytes spec/coursework1.tex | 493 --- spec/coursework2.pdf | Bin 94782 -> 0 bytes spec/coursework2.tex | 408 -- spec/cw1-references.bib | 29 - spec/cw2-references.bib | 64 - utils/__init__.py | 0 utils/network_summary.py | 27 + utils/parser_utils.py | 44 + utils/storage.py | 56 + 70 files changed, 5800 insertions(+), 21313 deletions(-) create mode 100644 cifar100_network_trainer.py create mode 100644 cifar10_network_trainer.py delete mode 100644 data/HadSSP_daily_qc.txt delete mode 100644 data/ccpp_data.npz create mode 100644 data_packer.py create mode 100644 data_packer_2.py rename mlp/data_providers.py => data_providers.py (53%) create mode 100644 emnist_network_trainer.py create mode 100644 environment_variables.sh create mode 100644 gpu_cluster_tutorial_training_script.sh delete mode 100644 mlp/__init__.py delete mode 100644 mlp/errors.py delete mode 100644 mlp/initialisers.py delete mode 100644 mlp/layers.py delete mode 100644 mlp/learning_rules.py delete mode 100644 mlp/models.py delete mode 100644 mlp/optimisers.py delete mode 100644 mlp/schedulers.py create mode 100644 msd10_network_trainer.py create mode 100644 msd25_network_trainer.py create mode 100644 network_architectures.py create mode 100644 network_builder.py create mode 100644 notebooks/.ipynb_checkpoints/Introduction_to_tensorflow-checkpoint.ipynb delete mode 100644 notebooks/01_Introduction.ipynb delete mode 100644 notebooks/02_Single_layer_models.ipynb delete mode 100644 notebooks/03_Multiple_layer_models.ipynb delete mode 100644 notebooks/04_Generalisation_and_overfitting.ipynb delete mode 100644 notebooks/05_Non-linearities_and_regularisation.ipynb delete mode 100644 notebooks/06_Dropout_and_maxout.ipynb delete mode 100644 notebooks/BatchNormalizationLayer_tests.ipynb delete mode 100644 notebooks/ConvolutionalLayer_tests.ipynb delete mode 100644 notebooks/Coursework_2.ipynb create mode 100644 notebooks/Introduction_to_tensorflow.ipynb create mode 100644 notebooks/Introduction_to_tf_mlp_repo.ipynb create mode 100644 notebooks/res/affine-transform-graph.png create mode 100644 notebooks/res/computational-graphs.svg create mode 100644 notebooks/res/pipeline-graph.png create mode 100644 notebooks/res/rnn-graph.png create mode 100644 notebooks/res/skip-connection-graph.png create mode 100644 notes/cifar10_100_and_million_song_datasets.md create mode 100644 notes/gpu-cluster-quick-start.md delete mode 100644 report/algorithm.sty delete mode 100644 report/algorithmic.sty delete mode 100644 report/example-refs.bib delete mode 100644 report/fancyhdr.sty delete mode 100644 report/icml2017.bst delete mode 100644 report/icml_numpapers.pdf delete mode 100644 report/mlp-cw1-template.pdf delete mode 100644 report/mlp-cw1-template.tex delete mode 100644 report/mlp-cw2-template.pdf delete mode 100644 report/mlp-cw2-template.tex delete mode 100644 report/mlp2017.sty delete mode 100644 report/natbib.sty create mode 100644 requirements.txt create mode 100644 requirements_gpu.txt delete mode 100644 scripts/generate_batchnorm_test.py delete mode 100644 scripts/generate_conv_test.py delete mode 100644 scripts/secure-notebook-server.sh delete mode 100644 setup.py delete mode 100644 spec/coursework1.pdf delete mode 100644 spec/coursework1.tex delete mode 100644 spec/coursework2.pdf delete mode 100644 spec/coursework2.tex delete mode 100644 spec/cw1-references.bib delete mode 100644 spec/cw2-references.bib create mode 100644 utils/__init__.py create mode 100644 utils/network_summary.py create mode 100644 utils/parser_utils.py create mode 100644 utils/storage.py diff --git a/README.md b/README.md index 058531e..c446b57 100644 --- a/README.md +++ b/README.md @@ -5,31 +5,53 @@ This repository contains the code for the University of Edinburgh [School of Inf This assignment-based course is focused on the implementation and evaluation of machine learning systems. Students who do this course will have experience in the design, implementation, training, and evaluation of machine learning systems. The code in this repository is split into: - - * a Python package `mlp`, a [NumPy](http://www.numpy.org/) based neural network package designed specifically for the course that students will implement parts of and extend during the course labs and assignments, - * a series of [Jupyter](http://jupyter.org/) notebooks in the `notebooks` directory containing explanatory material and coding exercises to be completed during the course labs. - +1. notebooks: + 1. Introduction_to_tensorflow: Introduces students to the basics of tensorflow and lower level operations. + 2. Introduction_to_tf_mlp_repo: Introduces students to the high level functionality of this repo and how one + could run an experiment. The code is full of comments and documentation so you should spend more time + reading and understanding the code by running simple experiments and changing pieces of code to see the impact + on the system. +2. utils: + 1. network_summary: Provides utilities with which one can get network summaries, such as the number of parameters and names of layers. + 2. parser_utils which are used to parse arguments passed to the training scripts. + 3. storage, which is responsible for storing network statistics. +3. data_providers.py : Provides the data providers for training, validation and testing. +4. network_architectures.py: Defines the network architectures. We provide VGGNet as an example. +5. network_builder.py: Builds the tensorflow computation graph. In more detail, it builds the losses, tensorflow summaries and training operations. +6. network_trainer.py: Runs an experiment, composed of training, validation and testing. It is setup to use arguments such that one can easily write multiple bash scripts with different hyperparameters and run experiments very quickly with minimal code changes. + + ## Getting set up Detailed instructions for setting up a development environment for the course are given in [this file](notes/environment-set-up.md). Students doing the course will spend part of the first lab getting their own environment set up. - -## Frequent Issues/Solutions - -Don’t forget that from your /mlpractica/l folder you should first do +Once you have setup the basic environment then to install the requirements for the tf_mlp repo simply run: ``` -git status #to check whether there are any changes in your local branch. If there are, you need to do: -git add “path /to/file” -git commit -m “some message” +pip install -r requirements.txt +``` +For CPU tensorflow and +``` +pip install -r requirements_gpu.txt +``` +for GPU tensorflow. + +If you install the wrong version of tensorflow simply run + +``` +pip uninstall $tensorflow_to_uninstall +``` +replacing $tensorflow_to_uninstall with the tensorflow you want to install and then install the correct one +using pip install as normally done. + +## Additional Packages + +For the tf_mlp you are required to install either the tensorflow-1.4.1 package for CPU users or the tensorflow_gpu-1.4.1 for GPU users. Both of these can easily be installed via pip using: + +``` +pip install tensorflow ``` -Only if this is OK, you can run -``` -git checkout mlp2017-8/lab[n] -``` -Related to MLP module not found error: -Another thing is to make sure you have you MLP_DATA_DIR path correctly set. You can check this by typing -```echo $MLP_DATA_DIR``` -in the command line. If this is not set up, you need to follow the instructions on the set-up-environment to get going. +or -Finally, please make sure you have run -```python setup.py develop``` +``` +pip install tensorflow_gpu +``` diff --git a/cifar100_network_trainer.py b/cifar100_network_trainer.py new file mode 100644 index 0000000..4376c53 --- /dev/null +++ b/cifar100_network_trainer.py @@ -0,0 +1,182 @@ +import argparse +import numpy as np +import tensorflow as tf +import tqdm +from data_providers import CIFAR100DataProvider +from network_builder import ClassifierNetworkGraph +from utils.parser_utils import ParserClass +from utils.storage import build_experiment_folder, save_statistics + +tf.reset_default_graph() # resets any previous graphs to clear memory +parser = argparse.ArgumentParser(description='Welcome to CNN experiments script') # generates an argument parser +parser_extractor = ParserClass(parser=parser) # creates a parser class to process the parsed input + +batch_size, seed, epochs, logs_path, continue_from_epoch, tensorboard_enable, batch_norm, \ +strided_dim_reduction, experiment_prefix, dropout_rate_value = parser_extractor.get_argument_variables() +# returns a list of objects that contain +# our parsed input + +experiment_name = "experiment_{}_batch_size_{}_bn_{}_mp_{}".format(experiment_prefix, + batch_size, batch_norm, + strided_dim_reduction) +# generate experiment name + +rng = np.random.RandomState(seed=seed) # set seed + +train_data = CIFAR100DataProvider(which_set="train", batch_size=batch_size, rng=rng) +val_data = CIFAR100DataProvider(which_set="valid", batch_size=batch_size, rng=rng) +test_data = CIFAR100DataProvider(which_set="test", batch_size=batch_size, rng=rng) +# setup our data providers + +print("Running {}".format(experiment_name)) +print("Starting from epoch {}".format(continue_from_epoch)) + +saved_models_filepath, logs_filepath = build_experiment_folder(experiment_name, logs_path) # generate experiment dir + +# Placeholder setup +data_inputs = tf.placeholder(tf.float32, [batch_size, train_data.inputs.shape[1], train_data.inputs.shape[2], + train_data.inputs.shape[3]], 'data-inputs') +data_targets = tf.placeholder(tf.int32, [batch_size], 'data-targets') + +training_phase = tf.placeholder(tf.bool, name='training-flag') +rotate_data = tf.placeholder(tf.bool, name='rotate-flag') +dropout_rate = tf.placeholder(tf.float32, name='dropout-prob') + +classifier_network = ClassifierNetworkGraph(input_x=data_inputs, target_placeholder=data_targets, + dropout_rate=dropout_rate, batch_size=batch_size, + num_channels=train_data.inputs.shape[2], n_classes=train_data.num_classes, + is_training=training_phase, augment_rotate_flag=rotate_data, + strided_dim_reduction=strided_dim_reduction, + use_batch_normalization=batch_norm) # initialize our computational graph + +if continue_from_epoch == -1: # if this is a new experiment and not continuation of a previous one then generate a new + # statistics file + save_statistics(logs_filepath, "result_summary_statistics", ["epoch", "train_c_loss", "train_c_accuracy", + "val_c_loss", "val_c_accuracy", + "test_c_loss", "test_c_accuracy"], create=True) + +start_epoch = continue_from_epoch if continue_from_epoch != -1 else 0 # if new experiment start from 0 otherwise +# continue where left off + +summary_op, losses_ops, c_error_opt_op = classifier_network.init_train() # get graph operations (ops) + +total_train_batches = train_data.num_batches +total_val_batches = val_data.num_batches +total_test_batches = test_data.num_batches + +best_epoch = 0 + +if tensorboard_enable: + print("saved tensorboard file at", logs_filepath) + writer = tf.summary.FileWriter(logs_filepath, graph=tf.get_default_graph()) + +init = tf.global_variables_initializer() # initialization op for the graph + +with tf.Session() as sess: + sess.run(init) # actually running the initialization op + train_saver = tf.train.Saver() # saver object that will save our graph so we can reload it later for continuation of + val_saver = tf.train.Saver() + # training or inference + + continue_from_epoch = -1 + + if continue_from_epoch != -1: + train_saver.restore(sess, "{}/{}_{}.ckpt".format(saved_models_filepath, experiment_name, + continue_from_epoch)) # restore previous graph to continue operations + + best_val_accuracy = 0. + with tqdm.tqdm(total=epochs) as epoch_pbar: + for e in range(start_epoch, epochs): + total_c_loss = 0. + total_accuracy = 0. + with tqdm.tqdm(total=total_train_batches) as pbar_train: + for batch_idx, (x_batch, y_batch) in enumerate(train_data): + iter_id = e * total_train_batches + batch_idx + _, c_loss_value, acc = sess.run( + [c_error_opt_op, losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: True, rotate_data: False}) + # Here we execute the c_error_opt_op which trains the network and also the ops that compute the + # loss and accuracy, we save those in _, c_loss_value and acc respectively. + total_c_loss += c_loss_value # add loss of current iter to sum + total_accuracy += acc # add acc of current iter to sum + + iter_out = "iter_num: {}, train_loss: {}, train_accuracy: {}".format(iter_id, + total_c_loss / (batch_idx + 1), + total_accuracy / ( + batch_idx + 1)) # show + # iter statistics using running averages of previous iter within this epoch + pbar_train.set_description(iter_out) + pbar_train.update(1) + if tensorboard_enable and batch_idx % 25 == 0: # save tensorboard summary every 25 iterations + _summary = sess.run( + summary_op, + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: True, rotate_data: False}) + writer.add_summary(_summary, global_step=iter_id) + + total_c_loss /= total_train_batches # compute mean of los + total_accuracy /= total_train_batches # compute mean of accuracy + + save_path = train_saver.save(sess, "{}/{}_{}.ckpt".format(saved_models_filepath, experiment_name, e)) + # save graph and weights + print("Saved current model at", save_path) + + total_val_c_loss = 0. + total_val_accuracy = 0. # run validation stage, note how training_phase placeholder is set to False + # and that we do not run the c_error_opt_op which runs gradient descent, but instead only call the loss ops + # to collect losses on the validation set + with tqdm.tqdm(total=total_val_batches) as pbar_val: + for batch_idx, (x_batch, y_batch) in enumerate(val_data): + c_loss_value, acc = sess.run( + [losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: False, rotate_data: False}) + total_val_c_loss += c_loss_value + total_val_accuracy += acc + iter_out = "val_loss: {}, val_accuracy: {}".format(total_val_c_loss / (batch_idx + 1), + total_val_accuracy / (batch_idx + 1)) + pbar_val.set_description(iter_out) + pbar_val.update(1) + + total_val_c_loss /= total_val_batches + total_val_accuracy /= total_val_batches + + if best_val_accuracy < total_val_accuracy: # check if val acc better than the previous best and if + # so save current as best and save the model as the best validation model to be used on the test set + # after the final epoch + best_val_accuracy = total_val_accuracy + best_epoch = e + save_path = val_saver.save(sess, "{}/best_validation_{}_{}.ckpt".format(saved_models_filepath, experiment_name, e)) + print("Saved best validation score model at", save_path) + + epoch_pbar.update(1) + # save statistics of this epoch, train and val without test set performance + save_statistics(logs_filepath, "result_summary_statistics", + [e, total_c_loss, total_accuracy, total_val_c_loss, total_val_accuracy, + -1, -1]) + + val_saver.restore(sess, "{}/best_validation_{}_{}.ckpt".format(saved_models_filepath, experiment_name, best_epoch)) + # restore model with best performance on validation set + total_test_c_loss = 0. + total_test_accuracy = 0. + # computer test loss and accuracy and save + with tqdm.tqdm(total=total_test_batches) as pbar_test: + for batch_id, (x_batch, y_batch) in enumerate(test_data): + c_loss_value, acc = sess.run( + [losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: False, rotate_data: False}) + total_test_c_loss += c_loss_value + total_test_accuracy += acc + iter_out = "test_loss: {}, test_accuracy: {}".format(total_test_c_loss / (batch_idx + 1), + acc / (batch_idx + 1)) + pbar_test.set_description(iter_out) + pbar_test.update(1) + + total_test_c_loss /= total_test_batches + total_test_accuracy /= total_test_batches + + save_statistics(logs_filepath, "result_summary_statistics", + ["test set performance", -1, -1, -1, -1, + total_test_c_loss, total_test_accuracy]) diff --git a/cifar10_network_trainer.py b/cifar10_network_trainer.py new file mode 100644 index 0000000..70dfd30 --- /dev/null +++ b/cifar10_network_trainer.py @@ -0,0 +1,182 @@ +import argparse +import numpy as np +import tensorflow as tf +import tqdm +from data_providers import CIFAR10DataProvider +from network_builder import ClassifierNetworkGraph +from utils.parser_utils import ParserClass +from utils.storage import build_experiment_folder, save_statistics + +tf.reset_default_graph() # resets any previous graphs to clear memory +parser = argparse.ArgumentParser(description='Welcome to CNN experiments script') # generates an argument parser +parser_extractor = ParserClass(parser=parser) # creates a parser class to process the parsed input + +batch_size, seed, epochs, logs_path, continue_from_epoch, tensorboard_enable, batch_norm, \ +strided_dim_reduction, experiment_prefix, dropout_rate_value = parser_extractor.get_argument_variables() +# returns a list of objects that contain +# our parsed input + +experiment_name = "experiment_{}_batch_size_{}_bn_{}_mp_{}".format(experiment_prefix, + batch_size, batch_norm, + strided_dim_reduction) +# generate experiment name + +rng = np.random.RandomState(seed=seed) # set seed + +train_data = CIFAR10DataProvider(which_set="train", batch_size=batch_size, rng=rng) +val_data = CIFAR10DataProvider(which_set="valid", batch_size=batch_size, rng=rng) +test_data = CIFAR10DataProvider(which_set="test", batch_size=batch_size, rng=rng) +# setup our data providers + +print("Running {}".format(experiment_name)) +print("Starting from epoch {}".format(continue_from_epoch)) + +saved_models_filepath, logs_filepath = build_experiment_folder(experiment_name, logs_path) # generate experiment dir + +# Placeholder setup +data_inputs = tf.placeholder(tf.float32, [batch_size, train_data.inputs.shape[1], train_data.inputs.shape[2], + train_data.inputs.shape[3]], 'data-inputs') +data_targets = tf.placeholder(tf.int32, [batch_size], 'data-targets') + +training_phase = tf.placeholder(tf.bool, name='training-flag') +rotate_data = tf.placeholder(tf.bool, name='rotate-flag') +dropout_rate = tf.placeholder(tf.float32, name='dropout-prob') + +classifier_network = ClassifierNetworkGraph(input_x=data_inputs, target_placeholder=data_targets, + dropout_rate=dropout_rate, batch_size=batch_size, + num_channels=train_data.inputs.shape[2], n_classes=train_data.num_classes, + is_training=training_phase, augment_rotate_flag=rotate_data, + strided_dim_reduction=strided_dim_reduction, + use_batch_normalization=batch_norm) # initialize our computational graph + +if continue_from_epoch == -1: # if this is a new experiment and not continuation of a previous one then generate a new + # statistics file + save_statistics(logs_filepath, "result_summary_statistics", ["epoch", "train_c_loss", "train_c_accuracy", + "val_c_loss", "val_c_accuracy", + "test_c_loss", "test_c_accuracy"], create=True) + +start_epoch = continue_from_epoch if continue_from_epoch != -1 else 0 # if new experiment start from 0 otherwise +# continue where left off + +summary_op, losses_ops, c_error_opt_op = classifier_network.init_train() # get graph operations (ops) + +total_train_batches = train_data.num_batches +total_val_batches = val_data.num_batches +total_test_batches = test_data.num_batches + +best_epoch = 0 + +if tensorboard_enable: + print("saved tensorboard file at", logs_filepath) + writer = tf.summary.FileWriter(logs_filepath, graph=tf.get_default_graph()) + +init = tf.global_variables_initializer() # initialization op for the graph + +with tf.Session() as sess: + sess.run(init) # actually running the initialization op + train_saver = tf.train.Saver() # saver object that will save our graph so we can reload it later for continuation of + val_saver = tf.train.Saver() + # training or inference + + continue_from_epoch = -1 + + if continue_from_epoch != -1: + train_saver.restore(sess, "{}/{}_{}.ckpt".format(saved_models_filepath, experiment_name, + continue_from_epoch)) # restore previous graph to continue operations + + best_val_accuracy = 0. + with tqdm.tqdm(total=epochs) as epoch_pbar: + for e in range(start_epoch, epochs): + total_c_loss = 0. + total_accuracy = 0. + with tqdm.tqdm(total=total_train_batches) as pbar_train: + for batch_idx, (x_batch, y_batch) in enumerate(train_data): + iter_id = e * total_train_batches + batch_idx + _, c_loss_value, acc = sess.run( + [c_error_opt_op, losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: True, rotate_data: False}) + # Here we execute the c_error_opt_op which trains the network and also the ops that compute the + # loss and accuracy, we save those in _, c_loss_value and acc respectively. + total_c_loss += c_loss_value # add loss of current iter to sum + total_accuracy += acc # add acc of current iter to sum + + iter_out = "iter_num: {}, train_loss: {}, train_accuracy: {}".format(iter_id, + total_c_loss / (batch_idx + 1), + total_accuracy / ( + batch_idx + 1)) # show + # iter statistics using running averages of previous iter within this epoch + pbar_train.set_description(iter_out) + pbar_train.update(1) + if tensorboard_enable and batch_idx % 25 == 0: # save tensorboard summary every 25 iterations + _summary = sess.run( + summary_op, + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: True, rotate_data: False}) + writer.add_summary(_summary, global_step=iter_id) + + total_c_loss /= total_train_batches # compute mean of los + total_accuracy /= total_train_batches # compute mean of accuracy + + save_path = train_saver.save(sess, "{}/{}_{}.ckpt".format(saved_models_filepath, experiment_name, e)) + # save graph and weights + print("Saved current model at", save_path) + + total_val_c_loss = 0. + total_val_accuracy = 0. # run validation stage, note how training_phase placeholder is set to False + # and that we do not run the c_error_opt_op which runs gradient descent, but instead only call the loss ops + # to collect losses on the validation set + with tqdm.tqdm(total=total_val_batches) as pbar_val: + for batch_idx, (x_batch, y_batch) in enumerate(val_data): + c_loss_value, acc = sess.run( + [losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: False, rotate_data: False}) + total_val_c_loss += c_loss_value + total_val_accuracy += acc + iter_out = "val_loss: {}, val_accuracy: {}".format(total_val_c_loss / (batch_idx + 1), + total_val_accuracy / (batch_idx + 1)) + pbar_val.set_description(iter_out) + pbar_val.update(1) + + total_val_c_loss /= total_val_batches + total_val_accuracy /= total_val_batches + + if best_val_accuracy < total_val_accuracy: # check if val acc better than the previous best and if + # so save current as best and save the model as the best validation model to be used on the test set + # after the final epoch + best_val_accuracy = total_val_accuracy + best_epoch = e + save_path = val_saver.save(sess, "{}/best_validation_{}_{}.ckpt".format(saved_models_filepath, experiment_name, e)) + print("Saved best validation score model at", save_path) + + epoch_pbar.update(1) + # save statistics of this epoch, train and val without test set performance + save_statistics(logs_filepath, "result_summary_statistics", + [e, total_c_loss, total_accuracy, total_val_c_loss, total_val_accuracy, + -1, -1]) + + val_saver.restore(sess, "{}/best_validation_{}_{}.ckpt".format(saved_models_filepath, experiment_name, best_epoch)) + # restore model with best performance on validation set + total_test_c_loss = 0. + total_test_accuracy = 0. + # computer test loss and accuracy and save + with tqdm.tqdm(total=total_test_batches) as pbar_test: + for batch_id, (x_batch, y_batch) in enumerate(test_data): + c_loss_value, acc = sess.run( + [losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: False, rotate_data: False}) + total_test_c_loss += c_loss_value + total_test_accuracy += acc + iter_out = "test_loss: {}, test_accuracy: {}".format(total_test_c_loss / (batch_idx + 1), + acc / (batch_idx + 1)) + pbar_test.set_description(iter_out) + pbar_test.update(1) + + total_test_c_loss /= total_test_batches + total_test_accuracy /= total_test_batches + + save_statistics(logs_filepath, "result_summary_statistics", + ["test set performance", -1, -1, -1, -1, + total_test_c_loss, total_test_accuracy]) diff --git a/data/HadSSP_daily_qc.txt b/data/HadSSP_daily_qc.txt deleted file mode 100644 index d7badf5..0000000 --- a/data/HadSSP_daily_qc.txt +++ /dev/null @@ -1,1023 +0,0 @@ -Daily Southern Scotland precipitation (mm). Values may change after QC. -Alexander & Jones (2001, Atmospheric Science Letters). -Format=Year, Month, 1-31 daily precipitation values. - 1931 1 1.40 2.10 2.50 0.10 0.00 0.00 0.90 6.20 1.90 4.90 7.30 0.80 0.30 2.90 7.50 18.79 1.30 10.29 2.90 0.60 6.70 15.39 11.29 5.00 3.60 1.00 4.20 7.89 1.10 6.50 17.19 - 1931 2 0.90 0.60 0.40 1.10 6.69 3.00 7.59 7.79 7.99 9.59 24.17 1.90 0.20 4.69 10.58 0.80 0.80 0.90 7.59 12.88 4.19 5.89 1.20 8.59 5.69 0.90 1.80 2.20 -99.99 -99.99 -99.99 - 1931 3 0.00 1.30 0.00 0.00 0.00 0.50 0.40 0.60 1.00 0.00 0.10 7.30 6.20 0.20 0.90 0.00 0.00 0.20 5.80 4.60 1.40 0.40 0.40 0.00 0.00 0.00 0.00 0.30 1.80 0.20 0.00 - 1931 4 3.99 3.49 0.00 2.70 0.00 0.00 1.80 1.80 0.00 0.20 3.39 2.40 1.40 1.60 3.59 7.99 2.20 0.20 0.00 0.20 0.30 3.49 5.09 6.79 4.79 3.20 1.90 0.70 0.00 2.10 -99.99 - 1931 5 1.70 0.00 0.70 0.00 5.62 0.70 13.14 0.80 11.13 11.23 0.60 1.70 10.83 8.12 2.21 0.60 0.20 0.70 0.00 0.00 0.00 1.91 2.31 4.31 3.91 0.20 0.00 12.03 1.60 9.23 3.11 - 1931 6 1.40 16.40 3.70 0.10 5.80 12.90 4.30 4.50 10.40 13.20 0.30 0.10 9.30 29.60 23.40 2.30 9.80 8.90 0.40 2.90 6.70 2.40 2.80 0.00 0.40 1.90 2.30 0.30 0.00 0.90 -99.99 - 1931 7 9.49 1.70 8.69 4.10 2.50 13.29 2.70 5.60 3.10 1.30 7.59 3.90 2.30 7.69 1.60 3.60 7.09 1.50 1.10 0.30 2.20 10.69 1.30 3.50 3.70 0.80 13.19 1.60 9.29 1.20 1.80 - 1931 8 0.20 0.00 0.00 0.00 0.00 0.60 2.00 0.60 6.60 0.60 0.90 1.20 0.50 4.80 2.80 6.60 4.10 0.00 17.20 3.50 1.10 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 1931 9 9.86 4.33 1.01 0.10 0.30 1.01 0.80 1.31 0.00 0.30 4.23 0.00 1.01 1.01 0.91 14.69 0.40 0.40 0.10 0.00 0.00 0.00 0.00 0.10 0.00 0.00 0.00 0.00 2.62 4.33 -99.99 - 1931 10 23.18 5.30 4.20 6.89 4.10 11.29 10.09 5.80 11.99 1.80 2.00 5.10 0.30 0.00 0.00 0.10 0.10 0.00 0.50 0.00 0.00 0.00 3.20 0.00 0.40 2.40 19.59 1.00 11.09 0.20 4.30 - 1931 11 6.60 20.40 24.80 3.30 3.30 2.60 5.20 4.20 8.00 13.60 3.50 0.90 8.50 15.30 0.10 0.10 13.50 10.20 5.10 6.40 0.10 6.70 28.20 7.30 10.20 7.40 5.70 6.40 1.20 0.60 -99.99 - 1931 12 3.20 21.60 16.00 5.80 8.40 0.70 6.90 4.80 2.80 1.10 1.10 0.90 2.50 3.20 0.00 0.60 0.10 3.50 1.50 0.90 0.50 10.60 16.40 4.60 2.20 1.70 5.70 3.00 0.10 0.00 17.40 - 1932 1 12.71 41.12 22.51 7.20 12.41 5.70 1.70 1.80 24.41 3.80 0.80 13.71 4.30 17.21 20.71 8.50 1.50 1.00 11.20 5.20 6.50 0.40 0.40 4.00 0.10 0.00 0.00 1.00 0.30 0.10 1.50 - 1932 2 0.00 0.22 0.00 0.54 0.33 0.11 0.00 0.00 0.22 0.11 0.22 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.11 0.22 0.11 0.11 0.11 0.00 0.11 0.00 0.00 -99.99 -99.99 - 1932 3 0.10 0.00 0.00 1.60 8.30 4.10 10.00 1.10 0.00 0.00 0.00 0.60 0.50 0.00 0.00 0.00 0.00 0.00 1.90 9.60 12.50 3.40 0.70 2.70 2.40 0.70 5.50 0.50 7.20 4.70 0.90 - 1932 4 7.41 4.61 1.10 0.10 9.41 8.61 2.10 13.62 17.63 4.71 0.70 0.30 10.02 3.61 1.10 0.00 0.00 1.00 6.21 1.90 1.10 11.02 1.70 0.20 0.00 0.00 4.71 10.12 2.90 1.10 -99.99 - 1932 5 0.10 0.20 0.00 0.10 0.70 0.10 0.80 1.00 0.30 0.00 10.51 17.42 4.11 1.00 13.62 0.30 0.10 8.21 4.41 3.70 1.90 0.00 0.90 0.20 3.60 0.70 1.00 1.80 1.00 0.60 0.00 - 1932 6 0.00 0.00 0.00 0.20 0.00 0.00 0.60 0.20 0.50 0.00 0.00 0.10 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.20 1.81 4.02 13.25 1.61 6.63 19.38 -99.99 - 1932 7 2.41 7.62 13.94 7.42 1.30 1.30 1.80 3.81 2.61 4.01 1.00 4.81 9.93 0.00 1.20 0.50 0.40 0.10 2.11 0.80 0.40 1.60 5.01 6.32 3.51 3.01 14.34 0.90 9.52 2.71 1.00 - 1932 8 0.00 1.70 0.30 1.00 2.70 4.61 3.40 2.60 0.50 1.30 9.61 1.80 3.81 0.40 0.70 2.90 0.70 0.00 0.00 2.70 0.90 0.00 0.00 0.00 0.00 3.10 0.40 2.60 3.91 3.91 14.52 - 1932 9 19.37 7.39 9.69 2.70 3.50 3.79 16.68 5.29 4.69 16.88 3.50 1.00 14.08 2.00 0.40 0.10 0.80 0.80 0.20 0.00 0.00 0.90 1.20 8.99 8.69 1.70 0.10 1.20 0.00 8.59 -99.99 - 1932 10 4.40 0.50 0.10 1.80 6.40 8.20 14.69 18.39 4.30 2.80 0.10 16.19 2.20 0.80 2.40 4.80 20.69 0.60 10.29 6.20 9.30 7.50 4.70 1.30 8.80 9.50 1.10 2.70 19.39 5.20 2.40 - 1932 11 11.37 8.08 5.79 0.00 0.00 0.00 0.00 0.20 0.00 0.00 0.10 0.30 0.00 0.10 1.30 0.40 0.10 0.20 2.99 8.48 12.27 18.76 8.58 2.29 13.57 6.68 0.80 1.80 22.85 5.39 -99.99 - 1932 12 20.23 19.93 3.81 2.40 0.00 0.00 0.00 0.10 0.40 0.40 0.10 0.70 2.30 13.22 20.43 44.17 27.24 28.95 22.04 4.91 5.51 8.91 5.61 1.30 0.00 3.10 0.20 3.71 4.91 0.10 5.91 - 1933 1 3.40 28.50 2.80 18.80 5.30 4.50 14.60 8.80 0.60 3.50 0.00 3.10 0.50 19.20 1.10 0.90 0.40 0.80 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 3.30 5.80 36.00 - 1933 2 6.10 2.60 14.80 33.10 8.00 9.00 3.10 4.70 7.00 0.10 0.10 0.90 0.10 0.00 0.20 1.70 0.50 0.00 1.40 1.40 0.20 0.00 0.30 2.30 11.30 10.30 4.90 2.70 -99.99 -99.99 -99.99 - 1933 3 2.59 5.29 3.99 5.99 7.19 7.09 0.30 29.54 5.19 0.00 0.00 0.00 1.10 3.89 5.49 2.49 2.89 3.59 0.10 0.00 1.90 0.00 0.00 0.00 0.00 0.10 0.10 0.00 2.20 3.49 1.80 - 1933 4 0.40 14.98 3.20 0.50 0.00 0.00 0.00 11.98 1.70 0.10 4.69 0.20 0.00 0.40 6.09 1.60 0.80 0.10 0.10 0.20 0.00 0.00 0.10 12.68 0.90 5.09 3.79 0.20 3.70 0.90 -99.99 - 1933 5 0.00 0.00 4.71 9.92 2.21 13.73 3.81 5.71 1.80 0.10 0.80 0.20 0.00 0.40 1.10 3.61 1.10 4.91 1.50 3.91 0.00 10.23 1.30 3.81 0.90 3.51 0.20 0.70 0.00 0.00 0.00 - 1933 6 6.82 7.93 0.00 0.00 0.00 0.00 0.00 1.00 0.10 1.20 0.10 0.10 0.00 0.00 2.11 13.14 14.25 6.12 2.41 0.20 1.61 0.60 1.30 0.90 0.30 0.00 0.00 0.00 0.00 0.40 -99.99 - 1933 7 0.00 0.00 0.00 0.00 0.10 0.00 6.00 1.70 8.40 9.90 8.30 4.00 10.00 0.80 1.90 0.20 1.20 1.10 1.60 1.50 0.00 0.90 0.90 16.60 2.70 0.10 14.10 4.70 3.40 21.30 0.40 - 1933 8 2.09 2.29 0.20 0.00 0.00 0.00 1.89 6.87 0.30 0.20 1.39 0.00 1.59 2.89 7.07 4.18 9.36 3.98 3.98 2.19 3.68 2.79 0.20 3.19 0.60 2.39 17.23 2.19 0.80 0.30 13.94 - 1933 9 0.90 0.70 0.60 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 5.18 2.19 12.36 3.99 1.00 0.10 0.40 1.20 0.20 0.10 0.00 0.10 0.00 0.00 -99.99 - 1933 10 0.00 0.00 0.30 0.20 0.00 0.00 13.80 1.90 13.20 1.00 1.70 2.10 6.80 1.40 18.80 2.50 0.60 0.70 3.60 1.00 1.30 4.00 3.00 0.30 0.20 4.00 1.40 4.30 0.60 3.10 3.50 - 1933 11 5.90 0.10 0.10 0.80 0.60 0.20 0.20 1.50 7.80 0.10 1.50 2.60 8.40 19.10 1.90 0.70 0.70 4.50 12.90 0.80 0.40 0.10 0.50 0.00 0.00 0.20 0.10 0.00 0.00 0.00 -99.99 - 1933 12 3.91 0.10 0.00 0.20 0.00 0.50 0.20 0.00 0.70 0.10 5.31 0.60 0.00 0.00 0.90 0.30 0.20 1.70 0.50 0.20 0.30 0.60 0.00 6.71 6.41 0.30 0.00 0.30 6.71 4.21 7.01 - 1934 1 12.11 2.20 17.41 13.91 2.80 15.91 14.91 3.30 19.91 8.80 9.10 10.31 6.80 3.50 3.70 24.21 7.10 1.10 0.00 2.10 3.10 5.00 1.70 0.00 5.30 6.30 0.00 0.10 0.70 4.10 0.40 - 1934 2 0.20 0.30 0.10 0.00 0.49 1.18 6.31 0.99 1.38 0.59 0.49 0.00 0.00 0.00 0.10 0.00 0.00 0.39 0.59 1.09 1.18 0.30 0.00 5.72 0.39 0.10 0.00 0.20 -99.99 -99.99 -99.99 - 1934 3 11.57 4.99 3.89 5.29 9.78 4.39 3.59 4.09 0.60 2.79 2.99 2.99 0.20 6.39 1.80 7.38 3.59 2.69 0.00 0.10 1.70 0.30 2.79 0.30 3.49 0.70 0.00 0.00 0.20 0.00 0.00 - 1934 4 0.10 0.10 0.00 0.40 0.00 1.40 6.59 0.90 2.20 6.39 12.79 26.47 9.49 3.70 1.10 0.40 4.70 1.60 1.10 8.39 3.10 2.70 7.59 1.30 1.30 1.00 0.30 0.10 0.20 0.10 -99.99 - 1934 5 3.10 0.00 0.00 0.00 6.99 15.08 2.70 4.50 0.20 0.00 4.10 1.60 3.40 1.20 15.48 2.50 2.00 6.49 18.08 6.99 2.20 0.70 0.40 1.60 0.00 0.00 0.50 0.10 0.00 0.00 0.00 - 1934 6 0.00 0.00 0.00 0.00 0.00 0.40 1.00 5.00 0.40 0.00 0.00 0.00 1.10 3.40 0.70 0.90 0.30 10.10 1.20 1.90 21.70 14.90 0.00 0.90 0.10 5.20 3.50 0.60 0.30 0.10 -99.99 - 1934 7 0.10 0.00 0.00 0.00 0.00 0.30 0.00 0.00 0.00 0.00 0.20 9.60 6.50 2.10 4.30 4.00 8.40 3.10 2.20 3.70 8.20 1.60 1.80 1.40 5.20 3.00 3.90 0.90 6.50 2.50 1.80 - 1934 8 10.59 11.79 2.20 4.20 0.20 8.89 0.10 3.60 6.60 3.30 4.00 0.50 0.00 1.20 1.90 0.10 0.00 3.60 3.60 15.69 12.89 2.60 0.70 0.10 0.10 0.70 6.30 17.69 5.80 1.90 2.30 - 1934 9 2.60 8.00 7.30 6.00 0.10 9.30 7.70 4.70 1.70 2.70 0.00 0.00 0.00 0.10 8.20 1.60 3.50 4.80 5.10 1.80 8.50 11.90 2.80 4.50 24.50 10.20 5.20 7.50 1.70 8.50 -99.99 - 1934 10 0.50 0.60 14.09 9.30 4.30 16.09 1.50 10.50 7.30 0.90 3.80 2.20 8.20 6.40 0.30 1.20 0.90 1.10 12.69 5.40 7.90 9.00 5.10 17.49 28.79 20.19 12.99 4.30 18.69 3.80 2.30 - 1934 11 1.60 6.31 13.32 0.40 0.00 0.00 0.60 0.00 3.21 1.70 0.30 0.30 0.30 0.00 0.10 0.30 0.10 1.30 2.91 0.50 3.11 3.11 0.70 0.00 8.62 0.80 0.40 1.70 0.10 2.91 -99.99 - 1934 12 11.69 7.89 12.59 5.39 0.10 1.90 7.59 13.49 13.49 4.10 3.70 5.49 2.90 8.29 0.90 2.20 14.09 5.69 3.60 0.30 0.60 0.20 2.40 0.00 12.99 16.98 12.39 2.60 5.29 13.69 8.69 - 1935 1 10.83 0.40 1.60 0.40 0.00 0.60 0.30 1.80 3.01 3.41 11.03 0.60 5.72 0.10 0.10 0.10 0.00 0.00 0.00 0.00 0.00 0.10 4.51 10.23 3.61 0.10 0.30 1.20 0.60 1.20 12.53 - 1935 2 17.00 4.30 3.10 3.80 7.40 0.20 0.00 0.00 0.30 6.80 9.20 6.70 5.40 2.50 23.60 13.00 4.40 14.10 20.30 6.30 3.20 2.20 1.10 3.20 0.00 3.60 5.60 5.60 -99.99 -99.99 -99.99 - 1935 3 0.10 3.50 4.90 4.80 3.20 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.30 0.20 0.10 0.00 0.90 1.60 0.10 7.80 8.60 2.60 7.80 2.00 1.50 0.20 0.70 6.40 1.60 0.80 - 1935 4 0.10 0.00 1.00 0.10 0.00 0.00 6.40 7.70 17.10 18.40 7.10 0.00 1.70 2.90 6.40 15.60 5.20 0.80 5.50 6.20 1.30 1.70 1.50 0.10 0.00 0.00 0.00 0.00 0.00 0.60 -99.99 - 1935 5 0.30 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.60 0.00 3.82 0.90 4.02 7.43 0.20 3.21 1.81 0.00 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 1935 6 0.00 4.01 7.21 4.41 1.10 7.41 7.91 3.81 0.90 10.52 9.02 4.81 3.71 2.00 0.60 2.00 1.70 0.10 6.61 2.70 2.70 0.10 18.13 0.80 0.00 5.51 1.90 0.00 0.80 1.00 -99.99 - 1935 7 1.10 1.20 6.11 8.31 0.40 0.00 0.00 0.00 1.60 1.90 0.00 0.00 3.01 0.60 0.20 1.90 2.50 3.91 9.52 0.20 0.60 0.00 1.70 0.00 0.20 9.12 4.81 0.40 0.00 0.00 0.00 - 1935 8 0.00 0.00 0.10 1.40 0.00 0.00 1.20 0.40 0.00 8.68 3.99 0.00 0.50 0.50 4.99 5.09 4.39 1.20 0.40 0.00 2.29 0.00 0.40 0.60 9.68 8.78 1.00 8.08 5.89 8.98 0.30 - 1935 9 16.41 5.80 2.20 0.60 0.10 0.00 0.00 0.00 0.00 1.80 0.30 4.80 9.20 9.30 16.21 14.21 11.71 27.61 10.51 1.30 1.20 2.00 0.10 0.10 0.00 16.11 7.50 7.70 13.61 10.51 -99.99 - 1935 10 1.60 28.77 5.09 1.70 0.90 0.90 22.08 6.99 9.79 19.28 3.60 4.50 9.99 4.69 11.89 4.89 10.39 20.88 4.50 1.30 6.79 1.50 12.49 1.80 1.30 13.29 16.68 15.08 14.28 17.08 1.50 - 1935 11 2.80 4.49 8.99 1.50 4.09 2.80 1.50 1.20 3.89 0.50 12.08 3.50 4.19 6.69 10.29 2.70 14.98 0.60 3.30 0.40 0.10 0.50 1.00 1.50 8.29 12.08 11.49 5.59 11.78 12.68 -99.99 - 1935 12 8.40 2.50 2.80 1.70 1.30 0.90 8.90 6.60 0.00 0.00 0.30 1.10 0.70 16.10 6.90 0.00 0.00 0.00 0.00 0.00 1.50 0.10 0.00 6.20 7.00 5.70 2.00 1.40 6.20 1.40 5.40 - 1936 1 14.78 0.20 0.10 5.39 13.78 4.69 0.10 6.09 32.35 5.39 1.40 2.40 0.10 0.00 0.00 0.10 3.79 0.00 1.60 9.79 2.10 4.99 2.30 1.70 10.68 4.49 4.49 1.40 1.10 2.50 4.09 - 1936 2 4.79 0.20 0.10 0.40 0.60 1.80 2.40 0.00 0.00 0.00 0.00 0.00 0.70 2.70 0.30 0.00 6.39 8.89 7.59 2.60 9.49 2.40 5.09 0.20 2.00 8.19 4.69 1.80 0.70 -99.99 -99.99 - 1936 3 0.40 1.00 1.70 10.90 10.30 0.80 9.40 3.30 2.30 0.00 0.00 0.00 0.00 0.50 0.10 1.40 0.40 0.00 2.50 2.50 3.10 2.30 1.90 0.00 0.20 3.70 3.30 3.40 14.70 5.10 3.10 - 1936 4 0.00 0.00 0.00 0.00 0.00 0.10 0.00 0.00 0.00 0.00 0.50 0.40 1.29 0.10 0.30 0.10 2.69 0.90 0.00 0.30 0.40 0.00 10.44 8.46 5.17 1.69 2.69 2.19 0.20 0.00 -99.99 - 1936 5 0.00 0.00 0.00 0.00 0.10 1.10 0.00 0.00 0.00 0.00 0.70 1.51 3.61 1.91 6.42 18.97 5.72 0.50 0.00 0.00 0.00 0.60 0.00 1.20 0.00 0.10 0.00 0.30 8.13 1.41 2.21 - 1936 6 1.30 2.21 0.10 0.00 1.30 0.00 0.00 0.20 2.41 0.10 1.71 0.90 0.50 5.72 3.71 11.34 2.31 0.00 1.10 0.10 0.00 3.21 0.80 0.00 0.00 0.00 2.51 0.20 15.85 2.81 -99.99 - 1936 7 13.71 4.70 0.40 3.30 2.50 2.90 0.90 0.00 0.90 2.70 4.40 9.01 1.10 1.70 0.60 0.30 10.21 12.91 2.30 2.80 1.50 4.20 18.31 24.52 9.81 1.20 0.10 2.30 0.70 15.31 1.60 - 1936 8 16.70 4.20 1.00 2.10 1.70 1.60 0.10 8.10 0.40 0.10 10.60 0.40 7.20 5.00 4.60 1.50 7.00 1.60 1.60 0.70 0.40 0.40 7.70 2.00 0.00 0.00 0.00 0.10 0.30 0.70 0.10 - 1936 9 13.79 12.59 4.40 9.99 4.20 17.28 6.99 0.00 4.20 0.40 6.49 4.10 3.20 1.50 0.00 0.00 0.70 0.00 0.00 0.00 0.10 0.00 0.00 17.58 0.70 1.70 0.20 0.00 0.00 0.00 -99.99 - 1936 10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.30 0.20 0.10 2.10 10.20 1.10 2.70 17.10 9.20 18.50 1.90 1.10 2.10 5.20 3.40 39.70 8.20 17.10 4.90 2.90 8.50 0.80 0.70 - 1936 11 7.89 4.30 1.90 3.30 7.79 5.80 9.19 11.59 5.10 0.80 3.20 0.90 3.40 14.19 10.49 8.59 2.80 0.10 0.00 0.00 0.10 0.00 0.60 0.30 0.40 0.20 1.40 4.30 4.80 4.90 -99.99 - 1936 12 5.30 3.10 6.10 14.09 6.70 0.20 9.79 0.40 0.20 3.20 8.90 1.50 32.68 2.60 9.40 8.30 9.20 5.70 12.39 11.39 14.09 1.50 0.70 1.90 1.20 0.10 0.00 1.30 3.60 11.59 7.90 - 1937 1 8.30 11.60 7.80 18.30 17.80 8.70 0.60 1.20 8.60 0.70 6.60 20.40 0.40 0.00 10.40 2.60 17.80 0.50 0.50 12.80 7.60 3.90 1.80 8.60 1.40 0.40 0.30 0.20 0.50 3.90 2.40 - 1937 2 1.30 16.72 8.51 5.41 1.80 2.80 7.01 7.11 3.10 3.30 0.20 7.71 4.81 2.90 10.92 4.91 5.51 11.82 9.41 2.80 0.60 0.10 0.00 3.61 8.71 4.11 5.11 0.40 -99.99 -99.99 -99.99 - 1937 3 0.50 0.00 1.50 0.60 0.90 0.50 0.10 0.00 0.10 0.10 2.10 2.60 0.30 0.00 0.00 15.50 6.80 7.40 2.80 1.80 0.30 0.70 2.10 1.00 0.10 0.00 0.00 0.00 0.00 0.50 1.60 - 1937 4 0.00 0.30 1.60 1.90 1.50 2.80 7.90 6.10 11.30 0.40 0.00 0.00 0.20 2.10 11.40 4.20 1.30 0.40 10.40 1.90 4.00 0.70 0.50 0.00 0.00 1.50 0.50 0.10 0.00 0.00 -99.99 - 1937 5 0.00 0.00 0.10 5.29 0.30 2.50 0.20 0.30 0.40 0.40 0.00 0.00 0.00 0.00 0.10 0.10 0.00 0.50 1.80 10.48 11.18 4.29 0.80 5.49 0.60 3.19 0.50 0.40 0.00 1.30 1.50 - 1937 6 0.70 9.09 12.89 16.18 9.29 10.49 0.90 1.60 0.10 0.00 2.20 0.40 1.20 0.20 0.30 0.00 0.00 1.70 0.80 1.10 0.80 0.10 0.00 0.00 0.10 0.50 7.59 7.49 3.50 5.29 -99.99 - 1937 7 4.60 18.61 8.21 12.41 14.31 3.60 1.70 6.71 1.90 0.10 0.00 2.90 9.21 8.91 0.10 0.00 0.00 5.40 0.20 11.21 8.41 1.70 1.90 2.30 0.10 0.00 0.00 0.00 0.00 0.00 0.00 - 1937 8 0.00 0.00 0.00 1.90 0.30 10.40 0.00 1.80 2.40 0.00 0.00 3.90 10.90 10.90 0.90 13.00 0.50 9.10 0.10 0.40 0.00 2.60 0.00 0.50 0.20 0.00 0.00 3.60 9.20 3.30 16.70 - 1937 9 9.02 3.51 3.21 12.83 2.61 4.31 12.83 2.00 0.10 0.50 1.70 3.31 0.20 6.01 5.91 0.20 0.90 0.00 1.00 0.00 0.50 0.00 4.51 1.40 0.00 0.30 1.90 0.00 2.81 16.13 -99.99 - 1937 10 18.03 5.61 0.70 0.00 0.00 0.00 0.40 0.00 0.00 0.00 0.00 0.20 1.50 1.30 0.90 1.80 0.00 0.00 1.40 5.31 9.52 8.42 4.01 2.91 15.93 6.91 4.21 1.40 5.21 7.21 0.20 - 1937 11 0.90 0.40 1.20 1.00 0.00 0.50 1.00 0.00 0.00 0.10 0.50 0.30 0.30 0.40 0.20 0.10 0.00 3.10 1.80 5.30 6.00 0.00 0.10 0.80 0.50 0.00 0.00 2.50 5.20 3.80 -99.99 - 1937 12 0.20 0.20 2.90 7.81 4.10 0.00 1.40 0.40 1.20 10.41 1.30 3.30 3.20 0.80 0.20 0.00 0.00 0.90 0.10 1.90 10.11 14.62 14.12 3.60 0.60 0.90 0.20 0.00 0.20 0.10 0.00 - 1938 1 0.00 0.00 0.40 0.40 1.00 7.20 0.70 3.50 17.09 3.10 7.40 10.99 4.50 17.59 8.10 10.89 1.00 12.89 5.80 9.90 2.00 0.50 4.20 13.59 6.40 7.30 10.79 13.79 3.50 11.39 18.89 - 1938 2 6.51 5.41 3.50 3.30 1.80 0.80 0.50 11.41 6.71 1.10 0.70 0.00 0.00 0.10 0.00 0.20 0.00 0.00 0.10 0.00 0.00 0.10 0.00 3.00 13.22 7.21 7.51 8.51 -99.99 -99.99 -99.99 - 1938 3 1.00 0.20 0.40 0.00 0.90 0.40 0.00 2.60 3.40 0.70 0.00 0.00 0.00 6.40 18.50 3.50 6.40 10.70 11.50 6.80 0.20 2.00 2.90 8.40 1.80 4.90 0.40 7.50 2.20 2.40 3.20 - 1938 4 4.20 7.50 0.10 2.40 0.30 0.40 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.10 0.10 0.20 0.00 0.10 0.40 1.10 0.00 0.00 0.00 -99.99 - 1938 5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.60 1.20 0.90 11.68 4.59 14.07 9.98 8.38 1.70 3.89 0.20 0.00 0.00 4.69 3.29 4.39 0.30 8.68 13.18 2.79 6.89 0.60 0.70 6.09 - 1938 6 9.60 3.40 2.20 5.10 5.80 20.40 1.30 4.20 1.10 0.20 2.00 0.00 0.00 0.00 0.00 0.00 0.00 5.10 2.60 2.90 1.40 0.00 13.80 8.10 1.20 31.80 19.70 20.20 3.10 3.10 -99.99 - 1938 7 0.30 0.50 2.40 2.00 4.80 2.30 25.18 3.40 2.00 7.00 1.20 0.10 17.69 0.70 0.10 0.20 0.90 1.30 0.80 0.00 0.00 0.00 0.10 1.80 3.30 4.30 15.59 3.60 33.88 9.39 0.90 - 1938 8 0.00 0.00 0.00 0.00 6.49 0.60 2.50 0.20 0.10 0.00 4.69 0.20 0.10 0.00 9.09 7.09 9.39 14.38 5.59 3.90 0.80 0.00 3.10 0.90 0.10 0.50 1.90 1.30 4.69 0.70 2.20 - 1938 9 0.80 5.21 3.11 0.10 5.81 2.60 0.20 0.00 0.00 0.50 0.70 1.00 6.81 0.20 5.81 29.65 11.12 4.51 6.71 5.91 4.71 1.10 10.42 2.30 0.00 0.00 0.10 2.70 4.61 3.71 -99.99 - 1938 10 0.80 15.81 33.81 16.61 8.30 11.90 9.60 20.71 10.20 8.20 10.10 12.40 10.70 1.40 11.10 10.10 2.10 5.40 1.90 1.60 9.80 4.40 0.70 7.20 2.80 4.20 2.80 0.70 10.30 4.00 16.11 - 1938 11 14.80 4.50 22.70 4.20 0.60 1.80 11.70 16.50 1.00 3.40 5.60 20.40 8.60 0.20 0.60 5.10 2.10 22.40 4.60 1.50 3.80 11.40 10.40 11.50 8.10 2.60 14.70 6.20 13.50 15.50 -99.99 - 1938 12 6.00 9.29 0.70 14.09 4.20 15.09 6.69 2.80 8.89 3.90 8.09 3.80 4.00 0.70 5.90 2.20 0.60 0.00 1.00 0.70 0.20 0.00 0.30 1.80 6.19 0.80 0.30 4.90 5.20 1.80 3.10 - 1939 1 1.30 1.30 0.00 0.00 0.30 9.08 15.37 14.48 3.69 0.50 0.10 1.20 4.69 18.27 11.88 10.38 2.30 2.50 7.49 0.70 1.10 3.59 0.80 4.89 0.70 0.90 0.10 0.20 0.00 0.10 0.00 - 1939 2 0.00 0.40 2.20 3.30 6.39 19.58 5.59 23.37 6.69 1.30 9.29 5.19 0.20 0.80 4.89 6.29 3.20 4.99 2.80 5.59 11.59 3.60 3.50 9.59 7.59 9.29 10.89 2.00 -99.99 -99.99 -99.99 - 1939 3 11.42 9.02 3.21 9.12 5.31 4.81 18.84 5.81 1.20 1.50 5.61 0.70 0.20 1.20 1.30 0.10 2.60 0.80 0.70 1.50 10.12 5.11 1.50 1.10 0.40 1.00 1.00 0.90 0.80 0.00 0.00 - 1939 4 1.40 0.30 0.40 0.00 0.00 0.00 2.00 4.00 0.00 0.00 1.00 3.00 12.70 7.30 10.10 6.60 0.90 0.10 0.00 1.10 7.00 1.20 2.10 2.70 0.70 4.30 0.30 0.30 0.20 0.00 -99.99 - 1939 5 0.00 0.00 0.10 3.01 3.21 0.70 2.91 2.11 0.20 0.00 0.00 0.00 3.91 4.71 0.70 0.00 0.00 0.00 0.30 0.90 6.32 0.10 0.60 0.30 0.00 1.30 0.20 0.00 0.00 0.00 0.00 - 1939 6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 3.49 2.30 2.40 0.30 1.20 15.88 4.79 0.20 5.19 2.60 0.50 0.50 0.00 0.00 0.00 0.10 0.30 0.00 11.98 11.38 1.40 2.30 -99.99 - 1939 7 3.10 3.00 0.80 4.70 13.60 9.50 6.50 3.50 2.40 0.00 2.00 11.40 17.80 10.90 11.70 4.20 0.10 0.80 0.20 0.70 1.40 5.50 2.50 0.00 0.20 0.10 4.90 20.00 1.20 4.10 2.80 - 1939 8 3.80 4.30 0.70 0.00 0.00 1.00 1.30 0.00 11.80 4.90 1.70 0.00 0.40 0.30 0.00 0.00 0.00 0.00 10.20 0.30 1.30 0.00 0.00 0.00 1.50 2.50 4.80 0.70 0.00 0.30 2.40 - 1939 9 3.80 7.51 26.23 0.60 1.50 4.81 10.01 3.10 12.41 11.41 0.50 2.00 0.70 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.90 -99.99 - 1939 10 0.70 0.30 0.00 0.20 4.19 0.50 0.00 4.09 18.84 19.24 4.69 2.49 1.40 0.40 0.00 0.00 0.50 0.00 0.00 0.00 0.80 1.79 1.69 0.10 0.00 0.40 0.80 0.10 1.20 0.70 0.80 - 1939 11 0.10 1.50 3.00 1.40 11.10 6.30 19.89 22.09 5.10 4.40 9.00 4.80 11.00 19.79 5.60 1.60 2.40 2.10 0.70 0.40 2.10 11.69 2.20 6.70 20.29 10.10 7.00 11.59 6.20 18.19 -99.99 - 1939 12 14.08 6.89 15.58 2.20 0.50 0.20 3.90 3.50 13.48 5.79 0.30 0.00 1.70 4.29 0.90 0.40 0.00 0.10 0.30 0.00 0.00 0.30 1.20 0.20 0.70 0.10 0.30 0.70 0.20 0.00 0.10 - 1940 1 0.10 0.00 0.10 0.00 0.00 4.11 6.51 0.30 0.00 0.00 0.00 0.00 0.00 0.00 0.40 0.50 7.91 6.51 5.21 0.40 0.00 0.00 7.71 11.01 0.60 7.21 6.11 7.41 0.00 0.10 3.00 - 1940 2 2.30 0.00 2.20 4.61 1.30 6.51 2.70 0.50 0.00 0.00 0.20 0.00 0.10 0.90 2.80 0.00 0.00 0.00 2.20 2.90 0.60 4.51 7.21 2.00 0.20 3.91 6.61 4.21 0.00 -99.99 -99.99 - 1940 3 0.00 0.00 0.10 0.10 0.00 0.00 0.90 6.49 8.29 3.00 14.78 12.78 0.40 2.90 1.50 2.70 5.69 4.79 9.58 7.29 5.59 4.59 2.60 2.80 0.10 0.30 0.00 1.30 7.69 6.39 12.88 - 1940 4 3.31 3.01 7.33 1.91 0.70 5.12 4.42 0.50 0.30 0.00 1.20 0.10 0.80 9.23 1.81 0.80 0.80 0.90 2.71 5.02 11.64 2.01 7.63 5.02 0.20 0.00 0.00 0.40 2.71 0.80 -99.99 - 1940 5 0.70 0.00 0.00 0.00 3.88 0.70 2.59 0.50 0.00 0.00 0.00 0.00 0.00 2.19 6.56 3.58 0.80 0.00 0.00 1.19 0.80 0.70 1.29 0.60 3.78 2.79 0.40 0.50 0.40 2.09 1.19 - 1940 6 0.80 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.40 0.80 0.70 0.00 0.00 5.20 0.90 0.00 0.00 0.00 0.00 6.40 6.80 0.30 1.40 3.90 1.40 0.40 0.50 2.60 0.10 -99.99 - 1940 7 1.50 7.71 2.50 2.00 5.90 3.10 1.80 3.20 7.21 11.91 18.32 0.00 4.30 9.31 0.40 5.50 11.31 2.10 3.60 3.00 0.10 0.20 1.80 3.80 0.50 3.30 0.10 0.10 3.00 1.60 0.10 - 1940 8 0.00 0.00 0.00 1.60 0.60 0.00 3.31 6.01 10.02 2.50 0.10 0.50 2.10 2.00 0.10 0.10 1.20 0.80 4.81 11.52 0.90 0.20 0.30 0.40 3.31 4.91 0.60 2.20 0.50 0.30 0.80 - 1940 9 0.10 0.00 0.20 2.70 2.00 3.00 1.20 0.50 3.60 1.20 7.41 7.61 5.60 0.90 0.80 32.03 10.91 7.41 12.31 2.50 1.10 12.21 2.90 0.10 0.20 1.70 1.20 0.00 0.00 0.20 -99.99 - 1940 10 0.10 0.30 0.00 12.01 22.21 3.30 7.60 22.41 17.01 6.60 1.20 0.20 0.00 0.40 3.80 4.00 1.10 0.30 3.90 17.81 11.71 0.80 0.30 0.10 0.30 0.00 0.00 0.10 4.90 18.71 3.90 - 1940 11 5.80 21.90 3.80 3.10 13.90 5.30 3.40 14.20 9.30 7.30 19.70 1.00 0.70 0.50 2.90 0.90 4.10 0.30 20.50 14.70 1.40 4.80 4.50 3.10 3.20 6.70 2.00 0.30 0.70 2.20 -99.99 - 1940 12 8.99 3.70 2.40 8.19 23.67 13.48 0.50 7.99 7.79 4.59 0.80 1.10 7.09 14.58 13.78 8.99 11.19 9.19 0.80 0.10 0.00 0.00 0.00 0.20 0.20 0.40 0.00 3.60 9.39 11.19 2.00 - 1941 1 1.11 0.00 0.00 0.00 0.00 0.00 0.10 0.10 0.00 0.00 0.20 0.30 1.72 0.50 0.00 0.00 0.00 0.71 0.71 0.40 4.85 5.15 1.82 2.02 1.01 0.30 2.83 3.74 0.40 0.40 1.92 - 1941 2 1.30 0.40 0.00 3.00 14.01 10.01 4.50 8.51 3.50 2.30 0.70 16.22 3.60 5.91 5.20 1.10 0.30 0.70 1.20 0.10 0.00 0.30 1.10 0.20 0.00 8.11 12.31 2.50 -99.99 -99.99 -99.99 - 1941 3 3.70 3.50 4.01 7.01 5.61 1.30 0.60 0.60 0.10 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.70 0.00 2.10 0.30 0.40 0.30 2.20 11.32 9.81 4.51 0.40 1.40 9.61 5.61 - 1941 4 2.71 1.40 2.01 0.80 0.10 0.00 0.00 0.10 0.20 2.51 1.91 1.30 2.31 2.01 2.01 17.16 9.83 1.40 3.91 3.21 1.10 0.40 0.00 0.00 0.00 0.00 0.10 0.00 0.00 0.00 -99.99 - 1941 5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.00 0.10 0.30 2.00 2.70 0.90 0.90 1.60 1.70 0.20 2.60 4.70 19.60 21.70 1.90 0.60 6.70 3.00 0.30 0.60 0.00 0.00 - 1941 6 0.00 0.00 0.00 0.00 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.40 6.20 0.90 3.00 4.50 0.40 0.00 0.10 2.10 4.80 0.60 0.60 4.80 0.90 0.40 0.40 0.00 0.00 -99.99 - 1941 7 0.00 10.20 3.50 0.20 2.90 11.40 8.00 0.10 0.00 0.00 1.10 1.30 1.90 4.10 4.00 0.50 9.10 2.20 0.30 9.50 2.70 0.80 0.00 1.50 10.10 0.50 0.20 1.00 2.90 1.90 0.00 - 1941 8 0.00 0.00 1.50 6.01 1.70 0.40 0.10 0.00 3.50 9.61 7.91 8.11 8.31 4.01 22.43 7.01 9.21 3.40 4.31 4.01 0.30 0.40 1.40 0.40 7.71 5.31 14.42 11.82 4.01 0.30 1.00 - 1941 9 4.50 0.80 0.10 0.00 0.00 0.00 0.20 0.70 0.50 1.10 0.60 0.10 0.20 0.50 0.10 0.00 0.00 0.00 0.10 0.00 0.00 0.00 0.00 0.40 5.00 8.60 6.70 9.50 7.80 4.70 -99.99 - 1941 10 1.50 0.60 0.00 0.00 5.50 2.10 5.70 3.00 26.72 1.00 0.00 0.40 7.81 2.30 19.91 6.50 22.92 7.71 14.31 3.80 1.00 0.00 0.00 0.00 0.10 0.10 0.90 0.10 1.60 1.50 0.00 - 1941 11 0.20 0.30 1.00 0.10 3.69 3.69 1.20 1.00 4.79 12.48 6.79 0.80 12.98 0.10 0.50 4.99 2.90 0.20 0.30 8.09 5.19 3.79 9.38 8.99 2.80 14.28 9.88 0.10 0.50 0.50 -99.99 - 1941 12 0.40 0.10 0.30 0.60 6.18 10.17 0.20 1.40 0.70 7.87 7.57 4.68 9.77 14.05 7.87 2.39 0.40 1.79 0.80 1.59 1.59 1.00 2.29 1.30 0.20 3.09 0.20 0.10 0.00 0.00 0.00 - 1942 1 5.20 16.80 18.70 6.00 0.00 0.10 0.30 0.20 0.10 0.10 1.10 9.00 1.70 0.40 0.10 1.70 4.70 0.40 12.90 1.00 14.30 15.10 15.00 16.70 3.30 1.20 16.20 13.40 1.10 2.60 10.60 - 1942 2 7.94 24.33 3.32 0.20 1.41 0.40 0.30 0.90 0.90 2.31 3.62 0.40 0.00 0.00 0.00 0.00 0.10 0.00 0.00 0.10 0.20 0.00 0.40 0.00 0.00 1.01 7.54 1.31 -99.99 -99.99 -99.99 - 1942 3 0.00 0.10 7.00 9.80 3.90 4.80 7.20 3.30 0.00 0.00 0.10 0.40 1.80 4.20 3.70 14.10 2.30 0.50 1.30 2.20 0.00 0.00 0.00 0.30 0.00 1.50 0.30 0.10 2.70 7.50 11.90 - 1942 4 0.40 4.30 10.90 9.80 8.80 10.50 10.90 5.60 8.00 0.20 0.10 1.70 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.20 0.30 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -99.99 - 1942 5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.00 0.00 0.10 0.00 0.00 0.00 7.61 2.00 15.12 2.60 1.50 0.00 1.50 1.20 10.91 6.21 7.01 11.71 12.41 6.01 1.40 0.50 2.60 - 1942 6 11.58 0.20 0.00 0.00 0.20 0.30 1.50 0.20 0.00 0.00 1.50 8.98 3.29 1.10 0.00 0.00 0.20 0.00 0.00 15.77 5.99 0.60 0.00 0.00 0.00 0.10 1.60 0.20 0.00 0.00 -99.99 - 1942 7 0.00 1.20 13.11 0.60 2.50 4.40 3.80 4.80 0.60 3.20 0.20 4.30 1.20 1.60 4.70 2.30 0.60 0.00 0.30 0.20 7.11 11.41 11.91 5.71 4.10 2.50 0.10 8.51 0.20 0.10 0.10 - 1942 8 0.00 1.60 0.00 0.00 0.00 5.11 17.92 10.91 8.31 15.82 4.01 1.50 1.00 2.40 11.42 7.91 4.51 3.10 2.10 5.11 11.02 1.90 0.00 7.71 11.02 0.00 0.00 0.00 2.80 3.91 4.81 - 1942 9 3.60 17.71 7.70 25.21 5.10 2.60 17.41 4.20 0.20 0.10 0.00 0.00 1.20 8.51 4.40 4.40 3.40 1.90 3.50 30.02 2.50 6.70 4.10 2.30 0.40 0.00 5.60 4.20 0.20 1.40 -99.99 - 1942 10 0.40 0.40 13.40 5.20 0.50 0.00 6.00 6.10 22.60 6.80 1.10 6.40 8.60 8.90 13.10 4.40 6.30 2.90 5.30 1.40 5.90 1.40 10.00 19.70 7.80 3.70 2.30 0.40 0.10 0.00 0.00 - 1942 11 0.00 0.60 0.10 0.20 0.90 13.06 3.59 0.40 0.90 1.10 2.69 0.20 0.50 0.50 0.10 0.00 0.00 0.00 1.00 0.90 0.00 0.20 0.30 0.00 0.00 0.10 0.00 0.80 0.40 6.28 -99.99 - 1942 12 0.00 0.10 0.00 22.09 3.20 8.70 7.50 11.59 13.19 26.49 0.60 4.00 1.40 1.70 4.10 11.69 3.90 2.00 8.60 17.89 7.40 1.80 2.20 1.70 1.90 3.70 3.60 3.80 0.30 9.40 11.89 - 1943 1 5.61 1.30 0.00 0.60 1.30 1.10 0.20 0.80 12.72 0.50 7.01 6.21 2.80 7.81 2.90 17.22 2.80 0.10 0.90 13.42 2.00 0.50 0.10 15.52 6.71 4.41 11.51 9.41 7.41 3.10 8.01 - 1943 2 3.80 5.30 3.80 14.40 23.10 3.30 1.60 21.20 2.70 5.00 22.70 5.80 4.10 7.90 2.60 0.90 1.00 0.30 0.80 0.50 0.00 1.10 1.80 5.70 4.30 0.20 0.40 0.20 -99.99 -99.99 -99.99 - 1943 3 0.50 0.10 0.00 0.10 0.00 0.00 0.90 3.40 2.60 3.50 1.60 1.30 0.00 2.10 4.71 0.70 1.50 0.00 0.20 0.00 0.00 0.00 0.00 0.70 3.40 1.90 2.80 1.40 12.82 23.53 3.40 - 1943 4 1.00 0.10 0.00 0.00 7.40 3.00 0.30 0.60 1.50 3.50 3.90 15.40 5.00 3.40 2.60 0.30 1.90 4.50 1.20 0.00 0.70 0.40 5.60 10.80 16.70 4.50 7.40 0.00 4.50 0.20 -99.99 - 1943 5 0.00 1.10 0.00 0.00 0.50 3.10 6.49 9.29 0.70 0.90 4.50 17.28 10.49 0.20 0.00 0.00 0.00 0.00 0.10 0.00 1.20 19.08 2.90 0.00 3.50 8.59 0.00 0.00 9.99 1.00 9.19 - 1943 6 8.71 3.21 0.90 13.42 4.51 1.30 7.11 0.10 1.50 1.70 1.80 5.81 7.71 3.61 2.00 8.11 3.11 13.82 11.22 5.11 2.70 8.31 0.90 3.21 0.30 0.00 0.00 0.00 0.00 0.00 -99.99 - 1943 7 0.00 0.00 1.00 0.80 13.46 6.88 1.70 2.99 0.60 5.98 3.09 14.56 3.29 6.08 0.30 0.00 0.00 0.00 0.00 0.00 0.10 0.00 0.00 0.00 0.20 2.39 1.10 1.10 0.10 1.10 5.68 - 1943 8 16.11 4.00 1.60 12.11 4.30 1.30 21.21 1.70 1.20 6.40 0.80 10.11 1.10 3.20 3.50 0.70 1.80 0.90 13.71 4.00 2.80 4.80 0.80 5.80 7.80 5.70 1.60 12.61 14.61 0.50 15.81 - 1943 9 6.09 1.50 0.10 19.78 3.20 4.10 9.49 0.00 0.00 3.20 1.50 3.70 7.09 0.50 7.99 3.50 0.00 0.70 4.20 1.30 0.30 1.90 4.50 2.20 0.40 0.60 17.58 2.60 0.50 3.10 -99.99 - 1943 10 9.81 8.31 29.23 11.71 29.83 1.50 0.10 5.00 1.20 14.01 0.40 6.21 0.20 0.00 0.00 11.11 19.52 0.50 10.71 15.01 7.71 1.10 0.50 0.10 4.10 25.52 4.80 0.10 0.00 5.50 9.21 - 1943 11 2.00 0.80 0.00 6.41 7.82 0.30 2.30 1.80 2.30 6.21 3.01 3.41 2.71 0.30 0.20 1.00 0.00 0.30 0.90 0.50 1.20 3.31 23.55 2.61 0.90 1.50 6.51 5.51 6.81 0.30 -99.99 - 1943 12 11.51 0.60 0.10 0.10 0.30 1.20 7.41 0.20 0.10 0.00 0.00 0.00 0.10 0.10 0.10 0.30 6.91 9.71 11.81 10.71 8.01 2.20 0.60 1.70 1.60 0.90 1.70 2.60 0.50 0.50 3.40 - 1944 1 1.30 6.80 0.50 0.60 7.00 5.00 9.29 7.70 0.00 0.00 0.70 12.29 9.89 0.20 0.10 3.30 1.40 4.30 2.10 11.79 10.79 9.59 6.40 19.09 1.60 14.89 4.20 2.40 4.30 1.10 6.70 - 1944 2 6.61 12.92 2.50 0.30 0.50 7.51 3.61 0.80 2.40 0.00 0.00 0.40 4.81 0.00 6.01 0.10 0.10 0.00 0.40 0.30 0.70 0.70 0.30 0.10 1.00 2.60 0.30 0.70 1.90 -99.99 -99.99 - 1944 3 6.75 0.60 0.20 0.40 0.10 0.00 0.00 0.10 0.79 0.30 2.08 4.37 0.10 0.00 0.20 0.69 0.40 3.37 1.98 0.60 0.50 0.10 0.00 0.20 0.00 0.00 0.00 0.30 0.10 0.89 0.00 - 1944 4 3.40 12.39 7.69 2.60 2.40 0.00 0.10 0.10 0.90 1.00 0.80 0.50 0.70 0.70 0.40 0.70 1.30 10.09 23.07 6.59 4.40 2.30 6.39 0.80 0.00 0.00 0.00 0.00 0.00 0.60 -99.99 - 1944 5 8.58 7.98 2.00 14.97 0.30 0.00 0.40 0.90 12.87 0.10 0.00 0.00 0.30 0.00 0.80 2.00 1.70 6.79 3.59 0.00 0.00 0.00 0.00 10.88 4.99 7.09 6.09 0.50 0.00 0.00 2.39 - 1944 6 2.70 2.90 15.69 15.49 0.70 0.40 0.90 1.00 1.10 1.80 3.40 4.70 6.59 0.80 5.89 0.20 0.00 0.00 0.00 0.00 0.00 0.20 0.00 1.30 2.50 8.49 19.48 4.20 7.19 5.79 -99.99 - 1944 7 3.90 30.77 2.70 2.00 1.80 3.60 11.39 1.50 4.99 0.70 0.20 5.59 0.70 6.19 2.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 9.29 3.30 2.70 0.90 0.20 3.10 0.10 - 1944 8 0.00 0.00 0.00 1.10 0.00 0.40 0.80 2.30 4.19 6.99 6.19 0.70 0.10 0.30 0.80 3.69 2.89 4.39 0.10 0.00 0.00 0.00 4.89 7.58 0.00 2.00 24.85 2.79 3.19 11.38 3.39 - 1944 9 1.10 1.10 22.10 20.10 2.10 2.10 4.00 2.20 0.00 0.00 0.00 0.00 4.10 13.90 13.00 0.20 0.00 1.30 2.30 0.10 0.10 11.90 10.20 0.20 5.30 6.70 0.70 15.90 5.00 1.50 -99.99 - 1944 10 0.80 4.99 1.40 3.50 2.30 0.40 0.30 0.10 0.00 7.09 20.67 2.10 15.18 5.09 2.40 0.40 14.68 2.40 8.69 14.98 5.29 10.39 1.90 1.20 1.30 10.99 10.29 1.50 0.10 0.70 0.50 - 1944 11 1.20 1.10 4.20 32.57 15.28 15.09 4.40 3.20 1.30 7.89 3.60 3.70 3.50 9.39 2.00 4.10 8.09 5.49 1.30 0.40 14.19 9.89 0.70 0.00 0.30 0.00 21.48 7.69 10.39 11.09 -99.99 - 1944 12 20.60 12.00 9.30 6.00 7.00 11.80 4.40 0.30 0.20 3.60 1.10 0.00 1.90 16.30 13.80 13.90 4.00 0.40 8.30 9.60 2.10 0.20 0.20 1.40 1.60 6.50 0.90 0.00 1.00 0.00 0.30 - 1945 1 2.00 10.88 0.70 0.10 1.20 1.20 0.00 0.20 0.50 0.40 0.50 0.10 0.10 0.10 1.60 4.79 22.06 7.49 1.20 0.10 1.20 2.50 2.70 2.99 0.00 0.00 0.10 1.90 31.35 2.10 14.28 - 1945 2 9.71 1.10 29.33 4.30 5.81 19.62 3.20 6.11 10.11 1.80 2.60 14.82 8.91 4.71 1.90 5.31 3.80 0.60 6.21 0.40 3.20 2.20 1.30 11.51 18.32 5.11 0.80 4.30 -99.99 -99.99 -99.99 - 1945 3 0.00 0.00 1.50 0.60 0.10 0.00 0.00 0.50 0.50 0.00 0.00 0.30 1.30 1.40 1.70 1.20 1.30 6.89 17.28 1.60 0.30 0.00 0.00 0.40 5.79 0.30 8.39 6.39 9.59 9.59 18.68 - 1945 4 7.56 5.97 2.19 6.27 4.08 3.48 0.90 0.00 0.00 4.48 10.55 1.79 1.00 7.76 0.50 0.10 0.70 0.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.30 1.19 1.00 0.40 0.30 -99.99 - 1945 5 1.00 1.60 2.00 0.00 7.99 0.80 2.30 5.10 0.80 1.00 0.70 1.40 17.79 4.10 8.79 27.58 1.20 0.20 0.00 10.99 2.40 9.29 0.00 0.80 0.30 4.00 2.50 2.70 2.50 1.60 6.00 - 1945 6 9.39 2.90 6.49 2.30 16.29 1.90 11.69 1.90 2.90 0.50 8.09 0.60 1.50 4.40 1.90 0.20 1.90 0.40 1.20 3.70 0.40 3.60 2.70 1.50 6.99 2.10 0.00 0.10 8.49 7.19 -99.99 - 1945 7 3.60 0.00 0.20 2.40 0.60 1.30 0.10 0.20 14.20 0.00 0.20 0.10 15.30 0.00 7.40 8.40 0.20 11.40 9.00 5.60 9.40 2.30 0.80 0.00 0.00 0.20 0.30 0.00 0.10 0.00 0.00 - 1945 8 0.00 0.00 0.00 1.40 3.11 8.41 0.80 0.00 0.00 0.00 0.00 0.00 0.00 4.01 6.01 0.20 0.00 0.30 0.00 0.00 5.91 0.60 19.93 3.21 0.20 0.00 0.20 2.91 0.50 0.10 0.00 - 1945 9 0.00 0.00 0.00 1.30 0.00 0.00 0.00 0.00 0.60 5.01 3.30 19.02 10.11 4.91 12.32 24.63 5.71 0.80 8.41 9.91 21.93 17.12 2.40 0.00 1.80 4.71 2.40 0.00 0.60 0.50 -99.99 - 1945 10 0.00 0.10 0.50 0.40 0.00 0.20 1.00 1.10 17.40 9.70 0.40 0.00 0.00 0.10 0.00 0.10 0.10 0.00 0.50 3.10 5.00 7.00 26.80 26.80 10.10 1.40 11.90 13.80 1.10 6.90 11.10 - 1945 11 1.51 0.90 1.61 0.40 0.00 0.00 3.32 0.00 0.00 0.10 1.11 0.00 0.20 0.20 0.70 0.00 0.00 0.20 0.50 0.20 0.80 0.90 1.11 0.30 2.61 0.10 2.21 0.40 1.31 0.50 -99.99 - 1945 12 2.90 8.60 3.20 8.40 0.60 5.40 6.20 6.60 0.50 0.30 0.20 1.90 1.00 2.10 7.90 11.20 11.70 9.70 0.80 0.70 1.90 2.50 2.10 3.30 3.10 14.70 2.90 0.30 0.10 0.70 0.00 - 1946 1 0.00 0.00 20.21 18.61 1.00 2.20 0.80 4.60 17.61 7.50 5.70 2.80 0.00 0.00 0.00 0.00 0.00 2.30 1.10 0.40 2.50 19.01 5.10 10.51 18.51 2.60 6.60 12.51 8.10 5.70 10.51 - 1946 2 4.00 4.10 12.11 18.22 6.41 7.41 4.40 2.80 3.50 2.20 1.80 5.51 0.20 0.80 1.50 0.50 0.90 1.90 5.41 1.10 0.80 12.71 0.00 0.00 0.00 0.00 0.00 0.00 -99.99 -99.99 -99.99 - 1946 3 0.40 0.50 2.80 3.40 0.30 0.00 0.20 5.20 1.00 0.10 0.80 0.50 0.10 0.00 0.00 7.90 17.90 13.50 9.80 8.40 3.80 4.50 0.90 1.00 0.50 0.10 0.00 0.00 0.00 0.00 0.00 - 1946 4 0.00 0.00 0.00 0.70 0.00 7.03 4.72 0.20 0.00 0.00 2.01 2.31 0.20 0.00 0.40 17.06 0.00 0.00 2.81 0.80 0.60 6.02 3.61 4.12 0.90 0.30 0.00 0.00 0.00 0.00 -99.99 - 1946 5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.10 0.30 1.69 0.70 0.00 0.20 2.39 2.59 0.00 4.58 0.00 0.00 2.09 1.99 5.48 0.00 2.59 4.78 - 1946 6 3.50 2.80 2.90 18.82 9.01 3.10 0.70 0.10 4.00 1.60 4.50 0.90 0.60 2.00 0.60 4.40 2.90 3.30 2.20 0.40 0.10 0.10 3.00 0.40 5.41 1.50 7.51 4.10 15.61 0.10 -99.99 - 1946 7 0.40 1.70 6.49 14.49 2.90 0.20 0.00 0.20 0.10 0.00 0.00 0.00 5.20 3.10 5.79 5.00 4.90 5.50 2.50 0.30 4.20 5.99 10.59 1.30 2.70 0.80 1.00 4.80 15.29 4.30 1.60 - 1946 8 3.40 3.70 4.90 2.90 3.50 3.50 2.40 4.20 3.70 0.80 0.60 5.19 1.10 5.09 0.30 0.20 0.70 2.90 2.60 0.00 1.60 0.00 4.30 2.60 0.00 0.10 4.40 14.69 7.49 7.49 5.49 - 1946 9 3.20 1.70 4.30 5.60 13.81 4.70 4.50 2.40 0.80 25.51 0.10 23.31 13.51 15.61 1.60 9.61 7.80 4.60 4.10 0.80 16.41 7.00 2.00 0.90 4.20 5.70 2.80 0.00 2.80 1.30 -99.99 - 1946 10 5.53 1.21 2.21 2.41 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.40 2.71 2.31 0.30 0.20 1.01 0.10 0.00 0.00 0.30 0.00 0.00 0.00 0.20 - 1946 11 0.40 2.90 6.10 6.00 2.00 1.30 0.30 0.30 0.00 0.30 2.70 7.00 1.80 0.10 0.30 11.01 19.71 7.00 6.60 16.21 13.31 4.30 10.71 6.40 16.11 10.01 6.10 12.11 5.60 7.90 -99.99 - 1946 12 13.71 7.20 1.20 0.00 8.71 0.20 1.10 4.00 0.20 6.30 13.81 1.90 5.70 8.71 0.50 0.00 0.00 0.80 0.30 1.40 11.01 10.81 1.10 14.91 15.51 3.00 2.90 0.20 5.10 8.41 4.50 - 1947 1 11.81 8.41 16.21 9.21 1.00 3.80 5.70 15.91 2.00 5.10 10.51 7.11 2.00 15.61 3.50 10.41 7.51 1.20 0.00 0.00 0.00 0.00 0.00 0.10 0.60 0.10 0.20 0.40 0.20 0.10 0.00 - 1947 2 0.40 0.30 1.59 1.99 0.60 0.10 0.10 0.00 3.69 0.70 0.20 0.20 0.10 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.70 0.10 0.00 0.00 6.28 7.77 0.30 0.60 -99.99 -99.99 -99.99 - 1947 3 0.00 0.00 1.00 0.40 0.20 1.70 0.10 0.10 0.60 0.90 1.50 5.20 6.19 1.20 5.40 7.29 3.40 7.19 0.60 3.30 12.29 3.60 5.99 2.80 7.89 9.39 7.69 4.70 6.49 0.70 0.10 - 1947 4 0.00 0.00 0.00 3.20 23.01 6.30 6.50 2.30 1.00 2.40 0.90 0.20 7.90 0.50 3.10 0.80 0.00 6.30 18.21 10.71 13.41 6.50 19.91 6.60 8.70 14.61 13.21 2.40 10.31 1.10 -99.99 - 1947 5 1.60 0.20 4.20 1.10 8.10 5.00 1.00 5.60 4.00 5.00 1.20 1.40 3.50 10.10 0.40 0.00 9.30 4.30 0.00 0.00 1.60 6.00 0.60 5.20 3.40 1.00 0.00 6.30 0.50 16.50 7.20 - 1947 6 0.50 0.00 8.40 9.40 7.10 1.50 5.20 9.60 1.80 0.90 0.00 1.70 1.20 4.00 2.20 4.00 10.10 1.70 4.90 6.30 2.50 1.10 3.00 7.90 0.00 0.60 0.80 6.20 1.70 0.70 -99.99 - 1947 7 1.20 0.70 4.91 11.23 2.41 3.71 7.52 5.82 1.90 1.50 0.40 0.70 0.10 0.00 9.02 9.63 0.00 10.73 0.00 9.42 8.62 0.00 4.31 0.20 1.50 4.81 3.81 10.43 0.00 0.50 0.00 - 1947 8 0.00 1.70 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 1947 9 0.00 0.00 0.30 5.10 0.80 0.20 3.00 17.70 12.60 3.20 10.70 9.90 1.20 9.70 8.10 16.50 0.10 0.90 8.50 12.60 0.00 12.60 0.50 0.50 0.00 0.40 2.20 1.70 1.10 0.40 -99.99 - 1947 10 0.00 0.00 0.00 0.00 0.10 0.30 4.92 1.71 2.11 1.40 11.54 14.14 2.31 3.31 1.91 1.71 1.40 0.30 0.20 0.00 0.00 2.41 3.71 0.20 0.00 0.40 0.30 0.30 1.00 1.91 5.32 - 1947 11 9.61 16.02 9.31 0.40 0.00 2.70 3.10 24.62 12.41 8.51 24.42 2.50 0.40 3.20 1.20 0.50 0.40 0.00 18.42 24.52 20.92 13.31 6.21 2.10 0.30 0.30 0.10 0.60 0.20 0.10 -99.99 - 1947 12 0.00 0.00 0.50 0.30 1.90 0.40 3.60 0.60 0.00 1.30 0.80 0.20 0.50 0.10 0.00 0.00 0.00 0.00 0.00 0.10 0.40 1.70 8.21 7.21 7.61 10.21 9.01 4.71 1.60 1.60 15.52 - 1948 1 17.80 7.80 6.20 9.10 5.00 4.10 4.30 3.00 5.60 22.20 10.10 6.60 15.80 14.00 0.60 6.20 14.40 6.50 4.10 1.80 4.80 0.20 0.00 0.00 1.30 6.10 6.80 4.80 0.30 9.50 6.90 - 1948 2 18.51 4.20 7.31 1.80 15.41 16.61 8.31 20.31 10.71 2.20 18.31 3.40 2.40 3.90 0.30 1.30 0.10 0.00 0.30 1.50 0.30 0.10 0.70 0.20 0.00 0.00 0.00 0.00 0.00 -99.99 -99.99 - 1948 3 0.00 0.40 0.00 0.00 0.20 3.70 19.08 0.20 5.10 0.30 0.00 0.00 0.00 2.20 4.40 6.20 0.60 15.59 7.39 9.29 4.30 0.70 0.20 0.00 0.00 0.00 0.00 0.40 12.09 6.39 26.78 - 1948 4 16.02 2.60 2.70 1.10 4.00 3.50 15.42 1.70 0.10 0.80 0.20 0.90 1.60 0.20 0.00 0.00 4.91 6.21 0.00 0.50 3.60 7.51 1.00 0.10 0.00 0.90 12.71 3.90 2.60 0.20 -99.99 - 1948 5 1.01 1.21 1.81 10.88 0.50 0.50 0.00 0.00 0.00 0.00 2.32 0.20 4.23 0.81 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.42 0.30 0.10 0.30 0.10 0.00 3.02 0.00 7.35 5.74 - 1948 6 5.40 7.70 9.50 7.50 5.90 28.50 3.10 16.10 0.00 0.50 0.00 0.00 0.00 1.50 2.90 5.50 6.00 5.70 5.60 2.80 2.40 1.40 0.00 0.30 2.70 7.40 6.60 1.60 0.20 0.00 -99.99 - 1948 7 0.00 4.50 33.13 7.11 0.00 0.50 0.20 0.00 0.00 3.30 4.20 3.90 2.40 0.00 1.00 0.30 0.50 9.21 8.41 10.51 8.91 4.00 1.50 4.10 1.40 0.30 0.00 0.00 0.00 0.00 7.81 - 1948 8 0.10 1.20 1.70 1.00 7.30 3.30 16.00 2.30 0.10 0.60 0.90 22.00 0.00 10.60 5.50 4.00 3.40 0.50 0.10 0.50 12.20 8.10 7.80 18.00 8.60 1.70 0.00 15.20 5.90 18.00 23.60 - 1948 9 8.20 17.71 4.00 0.70 3.70 2.60 8.50 0.90 4.30 1.50 10.01 5.80 7.50 36.32 3.00 1.50 1.00 6.20 0.10 0.20 3.50 2.50 2.00 9.30 5.40 28.62 0.40 7.30 1.30 3.80 -99.99 - 1948 10 14.00 1.70 2.20 0.00 0.00 0.00 0.00 23.60 25.90 9.20 7.20 1.60 24.80 4.70 3.80 7.50 7.20 1.40 2.00 3.30 3.30 1.30 17.60 11.30 0.70 1.00 0.70 0.90 4.90 3.40 9.10 - 1948 11 2.10 15.09 20.58 6.59 3.90 0.20 0.00 0.00 0.10 0.30 3.90 15.69 2.70 2.30 5.40 5.40 16.29 0.80 5.30 8.09 0.30 0.00 0.00 0.40 1.00 0.10 1.00 0.20 0.20 0.00 -99.99 - 1948 12 6.10 9.50 1.90 0.70 17.61 12.71 9.71 8.90 13.21 7.70 22.31 1.20 6.70 12.11 3.40 0.80 0.00 0.00 0.00 0.20 0.00 0.00 0.00 0.10 0.00 1.10 5.00 26.11 14.11 4.20 6.90 - 1949 1 2.70 0.80 0.70 3.30 21.69 22.69 19.19 0.60 1.00 5.10 5.20 2.10 5.40 4.10 6.70 2.40 6.50 10.99 13.99 8.00 0.80 3.30 4.40 0.20 4.10 3.80 0.50 0.00 0.50 4.00 0.00 - 1949 2 0.00 0.00 0.00 0.00 0.20 1.60 8.49 11.19 6.10 3.10 6.00 3.50 5.50 7.20 2.90 0.80 0.70 7.49 16.29 7.49 9.19 20.59 3.50 1.60 7.99 7.00 1.70 8.09 -99.99 -99.99 -99.99 - 1949 3 0.00 0.00 11.53 7.92 7.92 0.70 2.81 0.30 0.10 0.00 7.92 6.02 2.01 0.40 6.42 2.01 1.10 0.20 1.40 7.42 4.01 0.30 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.00 - 1949 4 1.00 6.31 16.42 3.70 0.30 1.80 6.61 1.90 5.31 24.33 20.43 8.51 1.20 0.10 1.30 0.40 0.10 5.11 1.40 13.52 6.51 14.12 4.91 3.10 0.80 5.01 1.30 1.10 0.30 0.90 -99.99 - 1949 5 0.00 0.00 0.00 6.12 1.30 7.22 2.01 0.10 0.00 0.00 0.00 0.00 0.20 3.11 0.10 0.20 6.92 1.71 0.00 0.00 0.00 3.61 4.11 1.10 0.10 6.12 3.71 3.51 3.11 7.42 2.61 - 1949 6 2.92 1.41 4.23 4.13 4.93 0.30 2.82 0.00 0.00 5.23 0.00 3.42 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.21 0.30 0.50 0.00 -99.99 - 1949 7 0.00 0.00 0.20 0.20 0.10 0.10 0.00 0.00 0.00 0.10 0.00 0.30 14.57 1.60 0.60 0.00 0.00 0.20 0.20 11.88 0.40 0.20 0.10 0.10 0.80 1.20 1.80 4.79 3.59 12.28 1.50 - 1949 8 13.39 2.70 0.30 7.09 5.50 1.50 47.16 2.80 3.90 5.70 0.10 0.00 3.00 4.10 8.09 0.00 0.00 0.60 0.10 0.00 3.60 0.50 0.10 0.00 0.00 0.30 1.30 1.10 3.50 1.30 8.79 - 1949 9 0.30 7.20 0.70 8.90 2.70 3.80 1.30 12.00 12.50 0.20 0.00 0.00 0.20 0.70 5.80 2.20 0.00 0.00 0.00 0.10 0.20 1.10 0.50 1.20 0.20 0.00 0.00 0.30 0.80 0.90 -99.99 - 1949 10 2.10 4.49 0.00 0.00 0.10 7.49 2.50 0.70 2.70 11.38 2.90 1.00 0.10 1.70 5.59 3.19 23.76 5.79 4.09 5.29 9.38 3.19 19.77 1.70 36.04 0.60 0.20 6.59 1.00 8.29 2.20 - 1949 11 6.11 0.90 7.31 15.93 4.01 10.02 9.32 2.81 15.53 5.21 14.13 16.53 0.70 3.01 4.71 5.31 4.21 0.80 2.60 7.21 4.51 9.92 0.70 0.20 1.40 0.20 0.60 1.30 4.61 5.01 -99.99 - 1949 12 8.30 20.10 8.10 13.60 6.60 18.90 8.90 4.50 2.60 0.00 1.70 5.90 8.10 13.40 4.80 12.90 5.40 10.00 8.20 1.20 10.40 1.90 13.10 13.80 25.90 8.20 4.80 8.20 2.00 0.30 4.30 - 1950 1 7.01 10.51 5.81 1.90 19.62 22.42 2.70 4.30 0.70 1.90 2.50 5.50 0.80 7.01 8.41 0.50 0.00 0.00 1.10 0.00 0.00 0.10 0.00 0.00 0.00 0.20 0.00 0.40 4.80 2.60 0.80 - 1950 2 11.90 6.60 4.50 2.40 0.00 0.10 7.50 6.30 6.70 14.50 7.20 1.50 2.90 19.90 19.20 5.20 5.30 3.70 2.70 1.50 0.70 2.00 4.00 0.80 0.00 0.00 1.60 0.70 -99.99 -99.99 -99.99 - 1950 3 11.69 4.90 1.80 1.60 0.00 0.00 0.00 1.60 0.20 0.00 0.30 0.30 0.00 2.70 5.89 11.09 7.89 18.68 3.50 9.39 1.10 12.19 1.10 0.10 0.00 0.00 0.00 0.00 0.20 0.10 6.59 - 1950 4 14.08 0.60 0.60 5.69 1.00 1.80 19.37 13.68 11.98 7.29 2.60 1.70 2.10 0.00 0.20 3.49 4.09 1.00 0.00 4.09 1.40 2.10 3.79 0.30 1.70 0.10 1.60 0.40 2.00 9.18 -99.99 - 1950 5 13.03 6.81 0.10 0.20 0.00 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.30 3.61 2.91 1.50 1.70 7.31 1.90 0.10 0.00 0.00 2.10 4.11 3.01 1.00 0.50 0.10 - 1950 6 0.40 0.10 0.80 0.10 0.00 0.00 0.20 0.10 1.80 0.00 0.00 0.00 2.60 2.50 2.30 4.51 7.01 0.70 0.00 7.41 0.30 0.10 0.00 3.30 7.01 1.80 4.31 23.03 4.01 2.00 -99.99 - 1950 7 0.30 0.20 0.00 0.00 0.00 0.10 6.70 5.90 2.50 9.80 1.20 2.00 29.30 5.40 9.60 4.00 6.60 9.60 14.70 5.80 1.80 3.00 0.30 1.80 3.40 3.30 2.00 6.10 2.30 10.70 2.20 - 1950 8 1.30 2.10 0.30 4.30 8.51 0.10 0.30 14.41 2.20 8.21 6.20 2.40 1.50 9.71 10.81 4.30 13.61 8.61 2.70 3.40 0.00 6.70 4.70 11.31 9.81 12.51 1.20 3.30 0.40 2.60 0.00 - 1950 9 6.40 1.80 6.00 8.20 1.20 35.19 8.00 0.30 2.40 17.59 19.49 6.80 7.40 3.70 0.90 24.99 26.49 1.70 11.10 7.40 7.20 5.20 13.00 10.40 8.60 4.20 8.70 3.40 2.90 18.29 -99.99 - 1950 10 7.19 2.80 6.69 4.59 9.99 4.59 4.49 12.18 11.38 9.49 3.99 4.59 7.99 4.49 2.30 20.17 1.60 2.50 0.60 0.00 6.99 1.20 0.00 0.00 0.00 6.39 1.00 0.10 1.50 6.69 2.10 - 1950 11 8.90 1.00 0.70 0.10 0.40 0.00 15.60 14.70 2.70 0.40 9.40 8.70 3.50 1.80 3.80 2.10 2.80 8.60 0.90 0.80 4.80 0.50 0.00 0.00 0.00 0.00 2.30 4.20 5.00 12.10 -99.99 - 1950 12 7.67 0.70 1.30 0.20 1.00 5.18 0.70 1.79 14.45 2.29 1.10 0.20 0.30 1.30 0.00 0.20 3.39 2.49 5.28 2.99 1.00 2.39 0.80 0.00 0.00 0.10 0.00 0.10 0.00 0.30 0.10 - 1951 1 2.69 0.20 2.79 2.40 0.30 2.30 5.39 0.50 15.67 13.97 9.28 4.79 8.08 8.38 0.80 26.35 13.67 1.40 2.69 2.99 7.09 0.40 0.00 0.00 5.09 0.50 2.89 0.30 3.19 6.49 3.49 - 1951 2 5.70 15.40 3.30 7.90 10.90 2.20 1.70 5.20 0.10 0.40 1.70 2.50 0.20 0.50 0.00 6.80 5.20 3.00 8.90 2.60 1.50 0.80 1.70 0.10 3.40 0.60 0.20 0.20 -99.99 -99.99 -99.99 - 1951 3 1.50 0.60 0.90 5.50 1.10 3.30 4.30 0.00 1.00 0.20 0.40 0.10 3.70 0.30 0.00 0.20 3.20 4.60 0.00 0.10 25.90 16.10 0.70 0.90 5.30 4.70 0.20 0.10 1.00 9.30 5.60 - 1951 4 2.11 0.50 17.99 4.72 0.40 5.73 3.12 0.10 0.30 0.00 20.00 2.41 3.92 4.62 20.40 2.61 0.20 2.71 0.00 0.00 0.00 0.10 0.20 0.40 0.90 0.40 0.00 0.00 0.90 3.32 -99.99 - 1951 5 18.36 5.19 0.10 0.20 0.20 0.00 1.10 0.40 0.00 0.00 0.00 0.00 0.00 0.00 0.90 0.00 0.00 0.00 3.49 7.09 0.30 0.50 0.40 9.48 0.90 0.50 1.30 0.00 0.00 0.00 0.00 - 1951 6 0.00 0.00 0.00 0.00 0.00 0.20 0.00 0.00 0.00 0.10 6.51 6.21 6.41 2.60 2.30 7.61 5.11 0.30 1.60 14.02 0.40 0.00 1.40 0.00 6.31 0.50 0.10 0.00 0.00 0.40 -99.99 - 1951 7 3.10 6.61 0.00 0.40 6.61 7.81 4.10 4.40 11.31 5.41 6.11 9.41 0.00 0.00 0.60 0.10 2.80 1.10 0.20 0.10 0.00 7.71 0.00 0.40 4.20 8.61 1.80 0.40 0.00 0.00 0.90 - 1951 8 0.40 18.61 0.60 0.90 3.40 7.81 6.60 5.80 0.00 0.60 7.51 0.50 0.20 0.00 0.40 10.91 0.90 12.11 1.50 4.80 11.81 1.20 4.20 1.60 12.01 6.60 1.20 12.51 6.70 0.40 1.40 - 1951 9 2.20 0.50 12.00 4.70 0.00 0.00 0.00 0.00 0.00 0.30 8.70 5.20 15.10 10.30 2.80 2.10 1.00 0.50 0.00 0.00 0.10 1.90 10.20 17.80 8.50 5.60 7.10 0.00 0.00 0.00 -99.99 - 1951 10 0.00 0.10 0.10 1.50 0.00 0.00 0.00 0.00 4.20 0.30 0.00 0.00 0.10 0.90 3.80 2.50 0.40 0.20 7.60 7.70 2.00 1.10 0.90 0.00 0.00 0.00 0.00 0.00 0.10 4.30 0.40 - 1951 11 3.60 2.10 10.21 18.51 11.11 7.50 0.00 3.70 4.30 11.61 3.50 0.80 2.90 8.90 8.00 15.51 9.50 6.40 15.51 5.50 2.90 1.20 16.31 4.40 0.80 2.90 11.61 6.00 1.80 5.90 -99.99 - 1951 12 6.01 10.31 13.21 5.10 5.20 4.20 19.82 12.51 2.60 0.10 0.30 0.60 4.30 5.30 4.70 0.40 10.91 2.10 26.42 0.00 15.81 1.00 18.02 5.30 5.30 4.50 16.61 1.80 14.21 5.91 5.20 - 1952 1 16.11 1.50 0.70 6.70 3.80 2.80 3.00 15.81 9.71 5.40 1.00 0.20 21.21 5.10 9.11 12.71 1.10 0.30 0.00 0.00 0.00 4.80 0.00 0.00 1.50 0.30 0.40 11.81 0.50 21.11 5.20 - 1952 2 4.79 5.39 0.50 0.30 7.28 3.09 0.60 0.10 2.20 3.49 0.20 0.30 2.99 0.00 0.40 0.70 0.10 0.00 0.10 4.29 0.60 0.00 0.30 0.00 0.00 0.00 0.00 3.89 4.79 -99.99 -99.99 - 1952 3 10.60 6.40 5.40 3.80 5.20 15.00 11.60 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.10 1.80 12.40 0.20 13.30 1.70 0.70 0.30 0.00 0.10 0.50 0.00 0.10 0.20 0.20 - 1952 4 1.10 0.20 0.00 7.39 8.59 2.30 1.20 0.70 5.49 0.20 1.50 0.00 0.00 0.00 0.00 0.00 0.00 0.40 3.59 14.18 8.69 2.90 1.80 0.00 0.40 0.00 1.50 0.10 0.00 3.29 -99.99 - 1952 5 0.40 0.00 3.12 0.91 0.00 8.36 0.10 12.89 1.21 5.64 11.79 0.30 0.40 0.00 0.00 0.00 0.00 0.20 1.01 0.20 0.00 0.00 0.00 0.00 0.00 0.10 0.91 0.10 0.10 0.00 7.15 - 1952 6 8.50 2.30 0.80 11.90 0.30 0.60 0.30 0.00 0.00 1.30 0.00 0.00 3.40 0.80 1.60 12.00 5.90 3.10 9.50 1.90 10.40 0.00 0.60 7.30 0.30 2.10 0.00 10.00 1.90 0.70 -99.99 - 1952 7 10.50 0.30 0.00 0.00 0.00 4.60 9.60 1.00 0.60 6.50 1.90 4.40 1.90 1.30 4.30 10.60 0.50 4.10 8.60 1.70 2.00 0.10 0.00 0.00 0.00 0.10 0.10 0.20 0.20 0.00 9.80 - 1952 8 2.90 10.58 5.89 16.48 0.10 5.99 25.96 3.99 16.38 1.10 4.89 5.69 1.70 0.70 0.10 4.59 0.30 0.00 0.00 0.20 0.00 0.30 0.10 0.90 0.00 18.17 2.70 1.10 0.10 2.80 3.69 - 1952 9 2.90 15.12 0.30 0.10 0.00 0.40 0.40 4.10 0.10 0.00 0.00 0.00 0.10 0.00 0.00 1.70 0.50 0.10 1.10 5.61 0.10 3.30 16.22 16.12 13.32 1.20 0.80 0.10 0.30 0.30 -99.99 - 1952 10 0.80 0.20 0.70 0.50 3.50 1.00 1.60 3.40 0.60 0.00 0.00 10.59 6.59 0.00 0.00 0.10 0.00 1.30 9.79 0.10 0.30 13.29 14.29 6.40 6.30 8.89 16.39 7.79 6.30 3.10 4.80 - 1952 11 3.20 4.61 2.50 15.92 7.51 7.91 0.10 4.51 0.60 0.50 0.00 0.50 4.51 4.71 0.20 0.30 0.00 0.10 0.10 5.31 2.10 2.80 0.10 0.10 0.00 0.40 0.00 0.00 0.00 0.00 -99.99 - 1952 12 0.30 0.10 0.00 0.00 0.00 1.40 1.40 21.48 3.40 9.89 4.10 1.20 0.20 0.90 4.70 16.69 1.20 8.59 8.59 9.29 7.29 10.19 6.00 5.70 5.10 0.80 1.40 1.20 2.20 2.50 2.80 - 1953 1 0.00 0.00 0.00 4.09 1.80 0.10 0.30 2.80 0.80 1.90 1.00 3.70 0.20 4.69 0.60 0.70 0.80 0.00 0.00 0.00 0.00 1.80 3.00 1.70 0.70 15.88 6.69 1.80 1.90 17.68 0.60 - 1953 2 0.00 0.00 0.00 0.30 0.20 0.20 0.40 8.33 1.71 0.70 0.30 0.40 6.52 0.10 0.30 4.52 0.90 1.71 5.12 4.72 1.91 3.71 2.71 10.14 1.51 1.51 0.00 0.00 -99.99 -99.99 -99.99 - 1953 3 0.00 0.00 0.00 0.00 0.00 0.90 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.14 0.20 3.72 6.94 5.33 6.84 7.74 - 1953 4 7.90 2.30 1.50 4.00 2.40 0.90 1.40 1.80 0.00 2.00 10.90 2.60 1.70 1.00 6.10 2.90 0.20 0.00 0.00 0.00 0.00 0.00 0.10 0.00 0.10 0.60 7.30 6.30 1.70 1.80 -99.99 - 1953 5 0.20 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 4.01 4.31 8.81 1.80 2.80 14.22 4.21 1.60 5.21 1.30 4.01 12.02 4.81 0.40 1.80 1.30 0.10 0.00 - 1953 6 0.80 0.10 2.10 0.10 0.00 0.00 0.00 0.00 1.70 0.10 0.00 0.10 0.50 10.20 4.30 2.60 1.70 3.30 0.80 4.40 3.00 0.00 0.00 0.20 3.90 19.80 0.00 0.00 0.10 0.00 -99.99 - 1953 7 0.10 2.80 1.30 0.80 14.62 6.41 5.31 4.81 2.30 1.00 15.42 2.40 11.91 3.10 0.10 11.11 7.91 2.80 3.90 12.01 3.90 7.91 3.10 15.62 4.71 11.11 3.00 2.50 1.40 0.10 0.10 - 1953 8 0.30 0.20 2.90 1.80 0.20 0.00 0.00 0.00 0.40 0.00 0.20 3.40 0.00 9.31 1.30 8.01 11.81 1.70 1.10 8.21 5.51 0.40 3.50 5.61 2.20 0.50 7.81 1.40 5.81 12.61 13.41 - 1953 9 13.00 11.00 0.40 0.30 0.40 0.00 0.00 0.50 0.40 0.40 0.30 0.00 0.00 1.40 7.00 0.80 15.10 1.20 14.00 10.90 13.70 7.50 0.10 0.30 2.70 5.00 4.70 4.80 13.40 20.80 -99.99 - 1953 10 7.89 2.60 0.00 0.00 0.00 0.00 0.00 0.30 0.00 0.50 0.40 2.30 1.20 0.10 0.80 5.49 0.20 0.00 0.00 5.59 0.30 2.20 6.89 10.49 0.30 14.49 4.50 0.10 12.09 3.60 19.18 - 1953 11 11.40 6.20 10.90 1.70 3.60 19.90 8.80 7.60 2.50 10.10 17.80 17.80 4.10 32.60 4.10 0.20 0.00 2.60 4.10 0.00 0.00 0.00 6.50 5.60 7.80 11.30 8.10 3.80 3.40 2.00 -99.99 - 1953 12 6.00 19.70 29.20 0.00 0.20 0.00 0.00 1.30 8.50 1.10 1.20 4.90 5.20 2.50 0.10 0.00 0.30 6.70 0.80 9.50 5.70 3.00 11.30 9.70 1.50 8.10 2.10 0.20 1.40 0.50 0.40 - 1954 1 0.40 0.30 0.00 0.00 2.30 0.30 0.80 2.20 0.20 0.00 0.90 11.09 6.39 8.49 17.08 7.99 2.40 25.37 6.69 20.67 2.10 9.59 1.90 5.29 16.58 0.40 0.00 0.50 0.70 0.50 0.20 - 1954 2 0.80 0.10 0.10 1.10 0.50 13.88 0.70 0.10 2.80 7.29 1.30 13.28 8.98 0.90 0.30 7.29 0.40 1.70 3.69 6.09 2.90 17.67 5.49 14.08 5.39 0.60 0.00 0.00 -99.99 -99.99 -99.99 - 1954 3 0.00 8.92 5.51 0.20 3.81 18.54 9.32 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.90 1.90 4.11 9.42 7.92 2.00 1.50 1.60 0.10 4.71 0.70 17.43 3.61 0.70 - 1954 4 4.39 16.67 9.18 3.39 0.50 0.00 2.79 0.10 0.00 0.40 1.40 1.40 3.29 0.50 0.00 0.10 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.50 6.59 -99.99 - 1954 5 1.00 9.13 3.41 2.51 20.86 1.50 2.01 0.10 0.00 0.10 1.20 0.40 10.03 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 3.01 3.71 15.14 2.11 3.11 9.33 16.35 0.60 0.00 0.00 - 1954 6 0.00 0.00 0.00 0.00 1.20 4.10 0.70 5.60 1.40 0.90 0.10 0.00 0.10 13.10 12.10 4.00 3.90 4.30 8.30 10.10 3.50 9.30 4.50 6.10 9.20 1.40 0.50 0.10 3.40 1.50 -99.99 - 1954 7 0.70 1.90 5.99 3.10 0.30 1.00 1.00 0.50 4.40 0.50 0.00 0.00 4.00 2.10 0.10 6.79 3.10 0.40 10.49 1.00 1.70 4.30 21.48 0.50 0.00 17.58 14.79 3.10 0.60 0.60 0.60 - 1954 8 7.41 0.60 0.20 7.81 12.91 5.20 0.50 2.40 5.30 1.40 0.00 8.11 3.50 3.40 3.80 0.00 17.61 0.90 0.00 0.10 6.20 2.00 1.20 0.00 0.00 1.20 1.10 13.81 3.20 14.21 5.50 - 1954 9 3.40 2.10 5.30 0.00 4.20 3.00 5.70 8.40 14.51 6.60 3.80 1.90 4.80 13.71 19.71 11.61 4.80 0.50 17.01 7.50 1.90 0.00 17.61 10.41 4.60 1.30 0.70 3.70 12.81 7.70 -99.99 - 1954 10 3.50 0.40 10.81 14.31 1.60 0.00 11.11 0.30 4.70 5.00 1.60 3.80 9.11 2.40 21.62 17.31 33.23 26.62 2.70 1.40 4.00 9.21 10.01 1.70 1.40 15.51 8.91 19.12 7.41 0.40 0.10 - 1954 11 0.00 4.00 4.40 2.00 0.30 0.00 10.40 12.20 12.30 21.90 9.10 11.10 4.70 0.10 2.20 0.90 2.40 3.00 1.40 5.30 7.20 18.70 11.40 19.30 4.40 13.10 24.00 3.70 9.60 8.60 -99.99 - 1954 12 18.41 8.60 8.50 6.40 1.00 0.50 1.70 6.80 9.00 2.00 7.60 2.70 2.50 15.41 1.80 7.20 6.00 8.40 8.80 3.30 6.30 7.70 0.20 5.40 11.81 8.20 4.90 7.70 1.50 0.00 0.00 - 1955 1 0.00 0.00 0.30 0.50 0.10 0.00 0.00 0.10 27.21 3.29 2.29 1.00 0.20 1.00 3.79 1.30 2.19 2.59 0.00 2.99 7.08 0.00 0.70 3.39 6.18 0.60 10.37 8.67 5.48 2.99 1.00 - 1955 2 9.20 5.00 0.10 0.00 0.20 7.30 10.60 1.30 0.00 0.40 1.80 0.90 1.80 1.80 0.30 0.90 3.40 0.90 0.50 0.10 0.30 0.30 0.90 0.50 0.00 0.00 2.30 21.20 -99.99 -99.99 -99.99 - 1955 3 9.70 0.00 1.10 0.10 0.20 0.20 0.60 0.30 0.00 0.00 0.00 0.00 0.00 0.20 0.10 0.10 0.30 0.60 0.00 17.60 3.90 2.50 9.40 7.60 0.20 0.00 0.00 0.00 0.00 0.00 0.00 - 1955 4 0.00 6.69 2.50 0.20 7.29 2.00 10.69 4.99 9.89 0.40 1.10 0.60 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.40 0.30 3.20 0.20 0.00 6.49 8.79 15.58 0.10 1.70 3.00 -99.99 - 1955 5 6.70 0.10 17.60 19.00 3.40 1.10 7.30 8.00 4.30 1.10 3.30 7.40 1.30 1.70 2.40 0.20 1.30 0.70 0.00 0.90 0.60 7.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 1955 6 0.00 3.60 1.30 0.50 0.80 0.00 2.20 0.00 0.00 0.40 3.10 0.10 16.80 1.50 0.40 0.10 0.00 0.00 0.80 0.30 1.60 0.70 7.30 0.70 1.50 2.40 8.40 16.90 0.30 6.20 -99.99 - 1955 7 10.63 10.43 14.44 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.40 0.40 0.10 0.00 0.00 0.10 0.10 0.00 0.00 0.00 0.20 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 - 1955 8 0.00 0.10 0.00 0.00 0.30 0.10 0.00 6.92 0.80 0.00 0.00 0.10 0.00 0.00 0.90 7.32 3.11 8.32 2.01 0.40 2.61 0.10 0.00 0.00 0.00 0.00 0.50 0.40 2.01 0.60 1.40 - 1955 9 15.21 2.50 4.20 12.61 0.70 0.00 0.00 8.41 5.30 13.01 1.50 9.71 2.00 1.90 0.20 2.70 9.21 0.30 0.00 6.30 3.60 2.90 0.30 10.11 8.11 2.20 0.70 1.00 3.20 0.60 -99.99 - 1955 10 2.90 6.39 1.40 2.90 12.99 0.20 7.49 2.60 0.20 0.00 1.20 0.00 6.49 5.10 0.90 2.80 0.40 20.58 7.99 0.90 0.10 0.20 0.30 0.40 15.19 0.20 0.90 0.30 1.00 2.50 3.20 - 1955 11 0.70 5.00 7.00 0.10 2.20 6.30 17.20 3.30 1.20 2.40 7.80 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.90 0.10 0.40 0.00 1.50 0.70 4.50 1.80 0.70 1.20 -99.99 - 1955 12 1.40 11.61 2.40 0.80 3.80 14.51 0.30 6.40 25.61 1.60 0.00 0.20 7.10 18.71 4.30 1.10 0.10 0.00 0.00 0.20 3.60 13.71 15.01 1.30 16.11 7.80 27.91 9.20 1.80 2.10 8.00 - 1956 1 1.00 0.40 0.20 0.30 0.70 1.20 2.00 0.00 0.60 6.39 1.10 1.60 0.00 3.89 5.19 2.40 4.39 1.40 9.68 6.69 7.29 1.10 1.10 0.30 1.30 12.28 7.58 13.87 2.20 2.89 0.20 - 1956 2 0.40 0.00 6.21 7.72 0.40 0.40 0.10 0.60 0.10 0.40 0.40 0.50 0.50 0.00 1.60 0.10 0.10 0.20 1.80 0.80 1.20 0.10 0.00 0.00 0.00 0.00 6.82 4.91 6.52 -99.99 -99.99 - 1956 3 25.16 4.49 7.79 2.20 7.69 3.89 0.20 2.70 0.00 0.00 0.00 1.40 0.00 0.00 0.20 0.10 0.50 0.00 0.00 3.00 0.00 5.19 0.00 5.09 0.20 0.40 0.30 0.00 0.00 0.00 0.00 - 1956 4 0.00 1.00 0.50 3.09 0.00 0.40 2.79 7.38 5.49 1.60 0.00 0.00 0.00 2.29 1.00 0.50 0.00 0.00 0.00 0.00 1.00 0.40 0.60 1.80 2.59 1.10 0.00 0.30 0.20 4.29 -99.99 - 1956 5 1.50 2.40 1.40 0.50 0.50 7.29 8.39 13.68 15.38 2.80 2.50 0.00 2.90 0.50 2.40 1.10 0.80 0.10 0.00 4.99 0.10 0.00 7.89 0.10 0.30 0.20 0.00 0.00 1.10 0.10 0.90 - 1956 6 1.00 1.20 12.41 13.12 8.91 9.91 1.20 0.00 0.00 0.00 0.80 5.51 1.20 3.50 0.10 2.90 5.81 3.80 0.50 0.20 0.20 0.10 0.30 0.00 0.60 0.00 3.90 1.10 2.80 4.00 -99.99 - 1956 7 7.80 3.80 4.40 19.90 0.80 5.20 5.70 1.90 0.00 0.60 0.00 0.00 8.30 3.60 0.00 0.80 5.00 3.40 0.00 0.00 0.10 0.30 18.60 1.10 2.50 0.20 0.80 12.90 23.10 2.00 1.50 - 1956 8 11.79 5.30 3.20 1.00 0.90 2.80 3.50 0.00 0.00 17.69 3.70 27.78 7.40 0.50 5.00 18.09 9.79 4.60 1.70 1.60 0.10 0.70 7.80 9.69 2.00 0.30 11.39 7.30 0.70 0.20 0.30 - 1956 9 0.00 5.80 14.30 0.60 11.90 3.50 1.00 0.00 0.00 7.60 1.00 9.90 0.70 0.00 2.40 0.00 0.90 0.40 0.30 1.20 1.70 15.20 7.00 0.00 0.60 2.80 22.40 6.20 5.60 3.00 -99.99 - 1956 10 1.90 5.69 9.79 3.50 0.10 0.80 1.30 0.40 0.00 0.00 0.90 0.40 0.00 0.00 0.80 17.78 1.30 0.60 17.58 0.00 0.70 13.49 8.49 10.69 2.70 0.20 6.49 1.10 0.10 0.20 0.00 - 1956 11 0.00 0.00 0.10 0.20 0.10 0.00 1.60 5.71 4.71 2.20 0.40 0.60 3.51 0.80 0.10 1.10 0.00 0.30 0.10 0.00 1.80 3.01 0.00 8.82 3.91 8.31 7.61 0.60 0.20 2.70 -99.99 - 1956 12 3.50 2.60 3.20 24.30 4.10 1.60 0.80 3.60 5.50 24.80 13.20 10.30 16.80 9.80 10.30 1.70 1.40 0.10 3.00 0.70 2.10 4.60 2.60 1.50 2.00 1.70 8.40 5.60 2.80 9.00 1.10 - 1957 1 1.20 8.70 15.00 13.50 11.20 1.20 0.70 1.30 3.30 0.10 4.60 0.10 0.10 0.30 0.00 0.10 0.00 0.00 4.90 13.80 15.00 17.60 10.10 0.70 28.60 6.40 3.80 11.10 2.80 6.90 6.70 - 1957 2 3.60 0.30 6.81 8.11 7.51 3.50 11.01 4.60 0.20 5.61 2.50 2.40 2.80 0.00 4.60 0.50 0.00 0.00 0.00 1.30 0.00 0.00 28.83 3.10 0.50 0.00 0.00 0.00 -99.99 -99.99 -99.99 - 1957 3 6.99 1.10 1.30 2.60 1.70 3.10 2.30 6.69 3.40 2.90 0.70 0.00 3.80 3.50 18.59 6.20 3.10 8.49 17.29 8.19 1.00 1.10 4.70 1.60 6.39 1.10 0.10 0.10 9.29 0.20 0.10 - 1957 4 0.80 2.50 10.40 2.40 0.00 0.00 0.00 0.00 0.00 0.10 0.20 0.70 0.70 0.90 2.70 10.40 6.20 2.50 1.80 11.50 7.90 0.00 0.20 0.00 0.00 0.20 0.20 2.10 0.00 0.30 -99.99 - 1957 5 0.10 0.00 0.00 0.30 0.00 0.50 4.50 9.60 0.20 1.90 3.30 5.40 2.20 4.00 8.50 5.40 2.50 5.00 5.10 1.00 0.10 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 1957 6 1.71 1.21 3.32 3.52 1.51 0.60 0.60 0.00 1.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.30 0.10 0.20 0.10 14.48 16.18 11.06 0.80 0.00 -99.99 - 1957 7 0.00 0.30 0.10 0.00 0.00 19.49 6.60 0.30 0.00 1.80 13.79 6.99 3.10 0.70 0.20 3.80 10.79 5.90 7.99 6.40 0.00 0.60 1.60 10.39 19.69 11.39 0.30 0.10 0.00 0.80 0.50 - 1957 8 0.00 0.00 0.00 2.30 1.20 0.00 0.50 5.70 3.50 10.71 3.10 0.90 11.11 10.01 1.60 1.10 0.80 6.50 2.80 0.90 1.70 1.10 16.71 37.03 4.40 2.80 1.00 0.10 0.20 2.10 3.20 - 1957 9 0.00 0.20 4.70 2.90 3.10 12.20 6.00 5.90 6.80 2.70 9.50 5.10 0.30 0.70 1.20 7.60 6.80 3.20 0.00 1.50 5.90 8.90 0.20 0.00 0.00 0.00 1.20 0.30 0.20 0.00 -99.99 - 1957 10 0.30 1.20 0.00 6.51 0.00 0.10 0.30 0.40 0.10 0.50 0.20 3.60 1.70 0.40 14.32 0.30 9.81 15.62 6.61 12.52 6.41 8.31 1.20 11.32 18.93 0.20 9.91 2.60 0.50 7.91 8.21 - 1957 11 8.00 7.20 5.10 6.30 2.70 0.50 0.40 1.00 0.00 1.10 1.90 0.30 0.00 0.10 0.00 0.00 3.20 0.80 2.00 2.00 7.60 0.10 0.20 0.90 0.10 2.00 3.00 1.60 0.00 0.00 -99.99 - 1957 12 0.00 0.00 1.50 0.40 6.60 16.11 21.11 2.50 1.30 23.02 3.90 0.80 0.00 0.20 1.70 6.10 3.50 2.90 12.01 9.51 17.81 7.40 0.10 1.00 1.10 1.50 1.50 2.10 1.50 1.70 0.00 - 1958 1 0.00 0.90 1.70 12.31 7.10 11.81 3.00 29.02 10.91 11.31 1.40 0.40 2.00 1.70 1.20 1.60 5.00 3.50 3.10 3.70 0.90 0.00 0.10 8.11 21.71 2.80 3.70 5.30 0.20 0.10 1.20 - 1958 2 3.20 0.10 3.90 14.59 0.10 0.00 3.40 6.79 3.20 8.49 6.79 0.30 7.19 4.30 2.30 0.40 0.10 0.40 1.20 5.79 2.30 14.09 5.29 2.50 0.10 1.80 1.00 3.90 -99.99 -99.99 -99.99 - 1958 3 0.10 0.00 4.41 4.11 1.60 0.40 0.30 0.40 0.10 0.10 0.20 3.31 2.21 0.00 0.00 0.10 0.00 0.00 0.20 0.10 0.00 0.00 0.00 0.80 0.30 3.11 2.11 2.41 8.52 3.21 0.10 - 1958 4 0.00 0.40 2.80 2.70 0.00 0.00 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.10 5.80 4.10 4.40 2.30 0.50 0.00 4.00 5.70 2.70 8.20 3.00 1.90 0.20 0.00 0.00 -99.99 - 1958 5 0.00 0.00 0.00 0.00 7.42 0.20 9.83 5.12 0.00 0.00 0.90 0.50 0.30 1.20 1.30 0.20 3.31 14.25 10.23 7.12 1.10 3.31 8.33 6.42 0.60 1.81 0.90 0.20 2.21 4.92 1.20 - 1958 6 2.00 7.71 0.40 0.00 0.00 0.00 2.60 0.10 5.61 5.21 12.11 0.00 0.00 0.00 3.10 1.00 0.10 6.01 5.61 0.20 0.50 0.40 1.80 4.10 11.61 2.40 8.21 0.00 1.20 9.01 -99.99 - 1958 7 1.70 0.00 0.10 0.80 0.00 0.10 0.50 1.00 1.20 0.20 7.69 13.98 8.49 1.70 6.99 4.19 1.30 1.60 10.39 0.10 5.69 0.20 0.10 0.00 6.69 9.29 12.68 30.86 8.69 6.39 3.20 - 1958 8 9.51 2.60 8.31 8.01 0.70 1.30 0.30 0.10 7.61 18.12 2.30 1.00 10.81 3.81 12.02 0.00 1.50 10.91 2.30 7.21 7.81 11.11 0.30 0.00 0.90 9.01 6.81 0.00 0.20 3.10 0.70 - 1958 9 0.40 0.00 0.00 0.60 0.90 21.18 5.79 1.10 0.00 0.00 0.00 0.00 0.50 0.60 0.10 1.70 0.00 10.29 1.70 5.10 2.80 0.60 19.58 13.99 0.00 0.00 0.80 15.09 4.90 3.20 -99.99 - 1958 10 1.90 3.40 15.59 14.69 2.10 15.19 3.70 3.20 6.89 12.59 1.90 13.79 0.50 4.10 5.70 1.30 0.40 1.50 2.30 0.90 0.50 0.50 0.30 0.00 0.00 0.00 0.00 0.00 3.70 3.70 0.90 - 1958 11 19.40 0.90 0.40 8.85 1.71 0.60 4.62 1.21 1.31 0.30 6.03 6.23 0.80 1.21 1.71 0.40 0.00 0.00 1.01 0.80 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.00 -99.99 - 1958 12 0.80 0.10 0.30 0.10 0.00 0.20 7.51 5.01 0.40 8.91 8.31 19.92 0.30 5.31 1.20 0.40 4.11 9.81 9.91 4.91 6.61 3.30 0.10 1.90 9.61 7.51 7.51 9.51 11.21 5.61 10.11 - 1959 1 16.73 0.10 0.40 0.30 0.00 0.00 0.60 1.00 0.20 0.60 0.50 0.00 0.00 0.00 0.00 2.20 3.21 16.13 9.02 0.80 2.10 1.10 0.10 0.10 0.00 0.00 0.00 0.30 1.20 0.30 0.00 - 1959 2 0.00 0.00 0.00 0.10 0.10 0.00 0.10 0.00 1.60 0.10 0.10 0.00 4.39 6.99 1.90 0.10 0.00 0.10 1.40 2.50 3.39 1.40 5.89 5.79 2.50 4.79 8.58 1.60 -99.99 -99.99 -99.99 - 1959 3 0.30 5.80 1.50 2.50 7.10 1.30 0.00 0.00 0.10 3.20 8.20 0.60 6.70 14.70 0.10 0.00 0.00 0.00 0.00 0.00 0.00 5.10 0.30 4.50 2.50 4.40 3.00 0.90 2.90 1.40 7.40 - 1959 4 4.70 2.60 0.40 1.20 4.90 2.10 8.01 1.30 1.10 3.10 7.91 3.60 6.31 3.00 1.80 0.40 2.40 2.10 1.40 0.20 0.00 0.00 0.00 5.00 20.02 2.70 7.31 1.60 0.10 6.01 -99.99 - 1959 5 3.28 3.28 0.20 0.10 0.40 0.00 6.55 0.00 1.39 4.17 8.04 5.46 0.10 0.00 0.10 0.20 1.09 2.18 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.00 5.16 - 1959 6 1.90 0.00 2.79 4.09 2.89 6.39 15.96 10.87 1.80 0.30 0.50 0.10 0.00 0.00 0.00 0.50 1.40 0.20 0.00 0.00 1.80 1.50 0.20 3.59 8.18 6.78 3.39 2.29 3.69 4.39 -99.99 - 1959 7 8.11 18.83 4.81 0.00 1.30 3.00 0.50 0.00 0.00 0.00 26.34 6.71 0.10 0.00 1.70 13.82 6.81 4.01 3.30 0.20 0.00 0.00 0.00 0.00 0.60 22.33 18.73 8.01 0.20 0.00 0.20 - 1959 8 0.70 0.70 0.10 0.20 0.40 1.11 0.30 0.00 1.41 0.00 0.00 0.00 7.04 2.01 2.92 0.10 2.01 0.00 0.00 0.50 0.91 2.41 6.94 3.22 0.50 0.00 0.70 0.00 0.00 0.00 0.00 - 1959 9 0.00 0.00 0.00 0.00 0.00 0.10 0.00 0.00 0.00 0.00 0.10 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 16.71 5.87 1.09 6.37 2.79 4.48 0.10 0.40 0.00 0.00 0.10 -99.99 - 1959 10 0.00 0.10 0.00 0.00 0.00 0.80 0.00 0.00 0.00 0.00 1.90 5.80 0.10 0.00 0.00 7.50 33.52 14.91 5.20 18.41 6.30 1.50 6.00 9.21 11.51 33.92 1.80 0.70 2.60 0.10 0.90 - 1959 11 2.00 4.20 0.70 0.70 2.20 4.40 0.10 18.81 9.81 6.30 0.60 2.80 10.01 6.90 1.20 4.50 2.90 4.60 14.21 6.90 2.60 21.71 9.91 4.90 6.10 2.80 3.50 12.81 4.30 2.70 -99.99 - 1959 12 6.11 6.11 0.90 0.10 7.91 7.01 4.41 9.12 3.31 0.30 2.60 2.81 14.33 0.50 1.10 13.93 8.72 4.21 7.21 10.12 6.91 13.83 8.22 6.71 12.42 11.32 4.01 0.80 18.63 4.21 16.73 - 1960 1 0.10 0.50 3.59 4.29 0.40 0.00 0.00 0.20 0.00 0.20 0.10 1.70 0.60 0.40 0.20 0.10 5.19 16.18 0.80 10.18 13.48 19.57 1.90 0.60 0.30 0.10 0.60 3.79 2.80 32.75 8.79 - 1960 2 9.80 15.70 16.90 4.50 0.40 0.00 0.10 0.00 0.20 0.80 0.20 0.90 2.50 0.90 1.10 0.60 6.40 4.80 4.40 3.90 4.80 2.90 0.80 9.50 3.20 14.30 15.30 0.90 17.10 -99.99 -99.99 - 1960 3 3.10 10.08 8.49 0.70 0.00 0.00 0.00 0.00 1.20 2.30 0.70 0.90 5.29 3.59 2.40 0.10 0.00 4.39 10.38 6.79 0.40 0.00 0.00 0.00 0.00 0.00 0.00 0.30 0.00 1.60 0.10 - 1960 4 6.41 10.71 8.41 10.21 10.01 1.60 3.90 15.01 8.01 2.80 7.31 21.82 9.21 4.40 0.30 0.00 0.00 0.20 0.90 0.10 0.10 0.00 0.00 0.20 0.00 0.20 0.00 0.10 0.00 0.90 -99.99 - 1960 5 0.00 0.10 1.50 4.70 0.20 0.30 0.30 3.00 0.20 0.00 0.00 11.20 15.40 0.70 0.80 0.00 0.00 0.00 0.00 0.00 0.10 1.00 15.60 0.00 2.90 3.70 0.50 0.00 0.00 0.00 1.30 - 1960 6 2.89 0.50 0.00 0.10 7.88 6.88 9.87 3.49 0.10 3.59 9.77 8.17 0.30 1.79 6.88 0.80 0.10 0.30 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.50 0.00 0.00 0.00 -99.99 - 1960 7 0.10 0.30 2.10 5.40 14.01 4.90 1.50 0.60 0.20 9.31 6.31 3.20 4.30 4.70 1.90 12.71 3.90 5.30 0.70 2.60 3.90 1.20 3.50 1.10 6.81 0.70 4.10 2.00 3.90 0.20 0.90 - 1960 8 0.80 7.19 1.80 0.40 0.00 0.00 0.40 6.69 7.39 0.40 0.20 1.20 3.10 0.40 2.10 1.00 9.29 2.10 0.90 5.39 6.59 10.99 0.80 13.79 13.69 5.00 3.70 1.10 0.50 0.10 0.10 - 1960 9 0.10 8.31 4.61 0.50 3.50 8.31 0.00 7.71 0.00 2.80 3.00 1.00 18.72 10.41 0.50 6.61 1.00 2.90 1.40 0.30 1.60 0.50 0.10 0.70 0.00 0.00 0.00 0.40 0.20 0.20 -99.99 - 1960 10 3.09 23.55 7.09 0.60 7.48 0.30 1.30 0.50 0.00 0.00 0.30 0.40 0.10 0.10 0.00 0.10 6.69 6.09 12.87 1.50 1.40 2.59 1.40 0.30 1.00 1.30 1.00 1.30 0.30 7.19 7.78 - 1960 11 11.40 12.40 14.50 3.50 0.70 0.00 0.10 3.10 15.30 15.30 8.20 6.60 3.20 10.50 11.10 3.80 0.00 1.00 2.40 8.60 2.30 5.60 3.30 3.50 0.10 0.00 6.00 1.20 12.80 23.70 -99.99 - 1960 12 4.30 19.31 19.41 17.61 2.80 0.90 3.80 5.70 0.10 0.80 3.30 0.10 0.50 0.10 4.40 3.30 3.90 2.00 0.90 0.10 1.00 7.50 1.10 4.70 35.92 10.71 8.10 2.40 6.20 4.20 4.10 - 1961 1 9.08 1.70 2.00 1.20 5.49 0.10 8.09 7.39 1.20 0.00 21.86 6.59 0.70 0.20 0.00 0.20 0.70 6.69 0.20 0.00 0.10 0.10 0.00 0.00 0.00 11.98 7.39 12.18 9.18 5.59 1.20 - 1961 2 1.80 0.10 8.40 12.30 18.90 8.60 9.80 11.30 8.00 2.40 9.10 8.80 5.20 3.50 0.50 0.10 4.40 0.70 0.00 0.20 0.00 0.00 0.00 3.10 4.90 10.10 3.80 1.60 -99.99 -99.99 -99.99 - 1961 3 10.57 0.20 0.10 0.60 0.00 1.00 0.10 0.10 0.40 0.60 12.67 4.69 2.49 0.30 0.00 0.00 3.59 0.60 1.10 0.00 0.30 0.50 3.99 0.40 4.99 0.50 0.20 13.07 15.46 0.90 1.60 - 1961 4 2.60 0.20 0.10 4.39 17.87 0.30 0.10 4.59 5.09 1.30 9.68 11.98 2.20 0.90 0.00 0.50 0.10 0.80 12.98 14.27 2.40 4.99 2.10 0.40 6.29 2.89 1.50 0.20 2.10 0.80 -99.99 - 1961 5 7.39 3.69 8.58 1.70 3.99 6.49 13.28 3.09 0.10 0.00 0.00 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.20 1.30 0.00 0.20 2.20 2.89 0.10 - 1961 6 0.00 1.59 0.40 2.29 10.25 0.90 2.29 1.99 0.60 2.19 0.10 0.10 0.00 1.39 2.49 3.98 7.17 2.59 1.00 0.60 6.97 0.20 0.00 4.48 8.96 0.10 1.39 0.20 0.00 1.29 -99.99 - 1961 7 0.10 0.50 11.57 0.10 0.00 2.69 4.19 0.70 0.40 0.60 13.06 33.41 2.19 0.00 3.59 1.80 0.20 0.30 0.00 0.00 0.00 0.10 0.00 3.09 19.45 3.49 2.59 0.50 0.10 3.99 0.10 - 1961 8 0.70 0.70 34.38 1.10 6.60 1.50 7.10 44.67 5.30 2.10 0.20 6.00 0.80 0.80 2.90 0.60 5.20 6.00 1.80 9.49 7.70 0.40 0.90 8.99 10.79 6.00 3.70 0.20 0.10 0.00 0.00 - 1961 9 9.59 8.29 1.30 1.10 4.20 2.40 0.10 0.10 4.30 3.00 2.00 23.79 2.40 9.69 9.09 1.90 0.20 0.10 3.60 2.10 2.20 1.20 4.30 4.30 16.59 11.39 10.79 13.29 10.19 1.60 -99.99 - 1961 10 0.00 4.00 6.00 15.90 11.00 0.20 5.40 5.10 10.70 4.20 5.60 0.10 0.00 0.30 3.00 24.50 1.80 0.20 0.00 4.70 9.00 20.00 22.40 7.30 5.50 8.60 1.20 0.50 1.60 4.50 3.70 - 1961 11 10.39 4.80 0.30 2.00 11.19 3.70 18.39 1.20 1.50 0.40 0.20 0.60 0.20 0.00 0.40 0.20 0.10 0.10 1.80 0.00 1.50 10.89 11.19 9.39 9.69 1.00 0.40 11.79 12.99 2.60 -99.99 - 1961 12 3.10 1.10 0.90 16.40 3.50 1.80 0.70 10.10 8.30 22.80 7.10 6.80 9.20 0.10 1.10 0.10 0.00 0.00 0.00 0.10 0.00 0.20 0.00 0.00 0.10 0.10 2.60 5.70 0.60 0.50 1.50 - 1962 1 0.10 1.30 0.10 4.00 9.60 13.41 0.80 16.11 2.70 18.21 16.91 9.10 5.60 4.10 32.01 7.40 11.70 8.50 5.10 3.70 2.10 11.10 10.70 13.81 7.40 0.30 0.00 0.30 3.40 25.51 12.70 - 1962 2 1.00 2.81 4.92 9.33 11.74 8.43 1.81 3.41 2.51 3.51 39.24 3.11 0.10 3.81 8.23 1.51 1.20 0.90 0.20 0.00 0.00 0.00 0.00 0.40 0.80 2.31 0.70 0.10 -99.99 -99.99 -99.99 - 1962 3 0.60 0.50 0.00 0.10 0.00 0.00 0.10 2.20 1.90 1.00 0.10 0.00 0.00 0.00 0.00 0.20 0.00 0.00 0.10 0.10 0.00 0.00 0.10 5.60 15.00 0.20 0.10 9.60 8.40 1.90 5.70 - 1962 4 5.21 31.27 5.21 4.81 2.20 22.75 4.31 0.80 3.91 4.51 0.30 0.00 0.00 0.00 0.00 0.20 0.30 1.70 0.30 3.61 1.60 0.00 0.00 0.10 0.30 0.00 0.00 0.00 0.00 0.00 -99.99 - 1962 5 0.00 0.00 0.00 0.10 1.50 1.20 7.41 1.20 0.20 4.91 1.90 0.00 0.10 0.10 17.73 7.61 3.30 1.70 0.70 6.81 1.30 6.21 0.60 0.00 0.00 0.00 0.00 2.20 0.30 0.10 0.00 - 1962 6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.70 0.20 1.90 1.10 3.79 1.40 2.00 0.00 7.19 7.19 10.39 2.80 10.59 2.50 10.88 3.00 4.59 0.40 0.10 0.00 0.70 0.20 -99.99 - 1962 7 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 12.41 1.90 0.00 0.00 0.00 0.00 0.00 0.00 16.42 3.80 3.00 23.32 1.40 0.00 17.62 0.10 0.00 0.00 0.10 10.51 2.20 2.50 - 1962 8 0.30 4.10 15.19 5.90 2.70 3.60 2.70 2.50 11.69 32.18 3.10 0.50 0.00 2.50 13.49 4.30 0.10 2.60 8.80 6.20 10.59 7.50 13.29 4.30 9.89 19.89 4.40 0.30 0.70 1.40 0.00 - 1962 9 6.10 9.80 9.10 8.00 2.30 0.70 3.50 17.61 34.62 2.30 24.81 0.30 0.80 9.80 1.40 2.00 0.00 0.00 0.00 0.00 0.00 4.20 0.50 0.90 2.40 9.50 9.10 3.90 21.11 12.41 -99.99 - 1962 10 6.61 0.10 1.00 6.61 0.00 0.00 0.00 0.00 0.00 0.20 0.30 0.00 0.60 0.10 0.00 0.40 0.30 1.30 0.00 0.00 0.00 0.00 1.50 4.91 1.60 1.80 14.12 0.50 14.92 11.82 7.31 - 1962 11 9.61 4.61 2.70 2.40 2.30 1.60 3.30 0.40 0.30 0.10 0.20 0.00 3.20 3.40 3.80 16.92 2.60 0.10 0.40 0.20 0.10 4.41 19.42 0.70 0.00 0.00 0.60 0.80 1.80 0.30 -99.99 - 1962 12 0.80 0.00 0.30 0.10 0.00 0.50 35.67 15.09 1.90 7.39 3.10 0.70 1.70 12.89 7.59 0.50 5.60 4.10 17.39 4.50 0.70 0.40 3.10 2.60 7.99 0.20 0.00 0.00 1.10 3.60 0.50 - 1963 1 1.41 0.10 1.82 3.03 0.40 0.10 0.10 0.30 0.00 0.30 0.10 0.00 0.50 0.10 2.62 0.10 0.10 0.50 0.10 0.00 0.00 0.00 0.00 0.20 0.00 0.00 0.00 0.00 8.37 1.11 1.11 - 1963 2 0.50 0.10 0.00 0.20 2.10 5.40 12.60 0.30 0.10 0.10 0.00 0.00 3.20 10.00 2.80 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -99.99 -99.99 -99.99 - 1963 3 0.00 0.00 0.00 6.71 6.51 12.71 4.30 16.02 7.01 3.30 0.00 1.10 18.72 11.91 4.30 7.01 14.32 4.20 0.00 0.20 0.30 0.00 0.80 29.73 2.30 5.91 3.30 9.31 4.10 0.20 1.40 - 1963 4 4.42 0.50 0.50 1.00 2.11 0.00 0.00 0.00 0.20 2.31 2.01 4.32 4.22 7.83 0.70 5.82 9.94 2.01 0.00 6.32 12.34 1.91 0.90 0.60 0.00 1.20 2.71 0.40 0.80 8.03 -99.99 - 1963 5 0.20 3.70 0.40 8.70 6.70 7.90 11.00 3.00 5.20 7.90 5.40 9.50 5.00 1.40 0.50 10.80 3.00 4.40 4.90 10.10 4.50 0.00 0.80 4.70 0.60 1.10 0.00 0.00 0.00 0.60 0.00 - 1963 6 0.00 0.00 0.00 0.10 0.00 2.31 6.51 0.60 0.00 0.00 0.60 5.41 0.50 0.00 4.11 0.10 9.92 7.52 2.91 11.32 1.80 1.00 9.62 6.21 2.81 8.52 6.61 0.80 0.40 1.00 -99.99 - 1963 7 0.40 3.90 8.79 3.00 5.79 1.80 0.00 1.60 0.40 3.00 2.60 0.80 2.90 8.09 6.09 1.50 1.10 3.30 3.80 0.00 3.20 0.70 19.28 0.80 1.10 0.00 0.00 0.00 0.00 0.00 0.00 - 1963 8 0.30 4.70 0.10 5.00 10.10 9.00 7.40 1.10 8.50 4.10 1.00 0.40 0.20 1.00 1.50 9.90 1.90 0.90 1.00 5.50 0.30 1.30 14.20 1.40 4.70 9.10 0.30 0.00 4.60 6.30 4.30 - 1963 9 4.80 3.40 1.20 0.70 0.90 3.00 11.69 8.79 2.60 0.10 0.20 1.00 0.20 0.10 0.70 0.10 1.50 0.00 0.10 0.10 0.00 0.00 7.79 4.80 26.98 9.29 1.70 9.49 1.30 6.19 -99.99 - 1963 10 3.89 14.98 3.00 7.79 2.10 3.89 6.59 11.58 19.37 0.20 0.00 7.79 1.30 1.50 7.19 1.00 2.10 1.70 14.38 1.40 16.18 3.60 1.90 0.10 0.00 0.00 0.00 4.79 2.10 0.20 8.09 - 1963 11 3.10 1.50 0.90 1.20 2.90 0.90 2.40 5.39 2.10 29.57 15.99 14.39 9.19 0.70 0.10 0.10 20.68 6.69 2.40 12.39 17.98 14.29 28.77 6.39 5.00 0.00 6.59 2.10 0.10 0.40 -99.99 - 1963 12 0.40 0.00 0.00 0.00 0.00 0.20 0.50 1.10 0.00 0.00 0.00 0.10 0.00 0.00 0.00 0.00 0.10 0.10 0.00 1.00 0.00 0.20 0.00 8.48 3.99 2.00 2.00 6.19 13.08 11.48 1.90 - 1964 1 0.29 0.10 8.87 4.09 0.49 1.36 0.19 0.00 0.00 0.19 0.10 0.49 1.36 1.17 0.00 0.00 0.10 3.90 1.07 0.19 0.00 0.10 2.44 0.49 0.39 0.10 17.05 4.00 10.72 9.26 7.89 - 1964 2 1.08 4.30 6.01 2.06 0.09 1.08 0.00 0.45 2.15 2.42 0.99 0.00 0.00 0.18 0.09 0.00 1.08 0.36 0.00 0.00 0.72 3.23 6.28 1.97 0.27 2.24 2.69 0.18 0.00 -99.99 -99.99 - 1964 3 0.00 0.00 1.18 0.00 0.63 0.09 0.00 0.09 0.54 0.81 0.00 3.62 2.44 11.57 1.27 0.00 0.63 0.00 13.29 7.32 1.18 0.09 8.50 4.79 0.00 0.00 0.45 0.00 0.09 0.45 0.36 - 1964 4 0.00 0.09 0.09 0.00 2.40 0.09 2.49 1.11 1.85 0.74 8.03 1.66 10.25 2.49 2.95 2.12 2.49 1.02 14.96 1.57 3.69 0.46 1.85 1.48 5.54 3.05 7.29 1.66 3.97 3.79 -99.99 - 1964 5 2.05 8.49 8.49 4.29 3.64 4.67 18.30 3.17 6.63 9.06 6.16 2.61 2.61 0.19 0.00 0.19 0.09 7.00 2.15 2.33 7.28 0.19 0.00 0.00 0.00 0.00 0.00 0.00 3.92 0.28 0.09 - 1964 6 0.09 1.04 5.56 4.43 0.85 16.11 1.79 0.57 15.93 7.82 1.23 11.78 0.19 6.22 3.49 5.18 0.19 0.09 0.38 0.28 0.00 0.00 0.09 0.57 0.00 4.99 0.00 0.19 0.75 0.09 -99.99 - 1964 7 0.47 0.56 0.19 0.28 0.00 5.77 24.38 4.19 1.02 12.47 0.65 0.09 8.93 4.19 0.00 0.09 2.33 2.61 0.28 0.56 2.23 0.09 0.28 10.05 0.09 0.09 0.74 3.07 2.98 1.40 2.23 - 1964 8 0.29 0.68 0.39 0.29 4.76 1.56 1.46 1.75 0.19 0.78 0.00 0.19 0.00 7.19 3.01 10.79 25.86 8.17 0.39 0.68 7.78 11.28 10.89 11.57 6.42 5.25 8.65 1.94 0.10 0.00 0.00 - 1964 9 0.00 0.00 0.10 0.10 13.94 0.77 4.55 15.39 20.42 5.52 0.29 0.10 7.74 14.23 6.97 4.45 3.29 6.39 3.19 1.06 23.33 12.20 0.10 1.36 1.84 3.58 0.10 2.61 0.10 0.10 -99.99 - 1964 10 0.00 0.00 0.00 0.10 18.12 31.61 8.77 4.14 0.29 2.51 1.06 2.60 14.36 3.37 0.67 0.48 0.48 5.11 0.77 1.54 0.10 7.13 0.96 3.37 0.96 2.60 0.00 0.00 0.00 0.00 0.10 - 1964 11 0.00 0.09 0.09 0.00 0.56 0.19 0.09 0.09 0.00 0.19 7.59 9.56 10.12 15.65 13.78 4.87 2.44 15.09 4.87 1.78 0.28 3.28 5.15 5.53 1.41 7.69 10.78 4.50 1.41 5.81 -99.99 - 1964 12 0.47 1.87 0.65 4.48 7.47 5.60 17.56 17.65 3.08 2.43 26.43 13.45 3.46 2.24 4.20 1.87 0.09 0.00 1.31 0.47 0.28 0.09 0.09 0.09 1.68 7.66 0.37 13.64 18.31 7.29 11.30 - 1965 1 0.30 0.00 0.00 0.90 0.40 9.89 10.19 17.68 16.28 17.38 7.39 5.59 22.37 7.79 7.49 14.98 6.19 0.00 0.10 0.00 3.10 4.19 11.19 0.20 0.30 1.00 0.30 0.20 0.00 0.00 0.00 - 1965 2 0.00 0.10 0.00 0.00 0.00 0.10 0.10 0.10 0.20 0.51 8.55 6.01 0.10 0.10 0.00 0.00 0.31 0.10 0.71 0.20 0.20 0.00 0.51 0.00 0.31 0.00 0.41 3.77 -99.99 -99.99 -99.99 - 1965 3 0.20 1.10 5.00 0.50 0.10 1.00 3.60 0.20 0.00 0.00 0.00 0.30 4.80 2.60 9.60 0.40 0.50 4.30 3.90 0.40 4.70 2.50 1.90 11.00 8.00 21.40 2.70 0.00 0.00 0.00 0.00 - 1965 4 0.00 0.00 0.60 0.50 0.10 2.40 3.81 0.80 16.73 6.91 11.92 2.91 0.60 12.83 0.60 15.53 2.91 3.01 0.20 0.00 0.00 1.60 0.10 1.00 4.91 3.61 1.20 1.10 1.80 0.00 -99.99 - 1965 5 0.00 2.40 3.30 1.40 0.20 3.30 9.01 6.51 1.30 0.00 0.20 0.00 0.00 5.81 0.20 3.00 9.71 0.50 0.00 0.20 4.21 8.51 4.81 5.81 5.21 1.20 4.21 0.00 0.00 0.00 0.00 - 1965 6 0.00 0.00 0.00 5.11 1.90 3.61 0.20 0.00 0.00 0.10 1.20 4.81 0.00 12.42 12.22 1.00 13.22 4.21 1.50 7.91 0.80 4.01 7.61 22.14 9.92 0.40 0.30 0.80 0.10 0.00 -99.99 - 1965 7 0.10 0.00 0.10 0.10 0.30 0.10 1.00 0.80 0.00 11.20 3.60 2.90 5.00 0.10 0.00 0.00 0.00 0.00 0.10 5.40 2.70 1.40 7.60 5.50 0.40 0.70 21.20 32.00 12.20 5.10 4.00 - 1965 8 0.70 3.50 0.00 28.90 7.50 3.40 1.10 0.00 0.00 0.00 0.10 0.00 0.00 5.70 0.00 0.50 3.90 0.60 2.20 21.20 7.10 2.40 1.40 11.50 3.80 0.00 4.10 8.20 2.90 8.00 0.40 - 1965 9 0.00 0.10 6.40 1.30 5.40 18.30 3.40 3.30 6.60 0.70 0.00 0.20 0.20 22.80 3.10 1.00 20.10 0.00 0.30 2.30 10.90 0.90 7.90 17.50 27.30 2.50 0.10 1.10 1.70 0.40 -99.99 - 1965 10 12.70 2.90 3.80 9.80 1.40 1.20 0.10 0.00 0.00 0.00 0.00 0.00 0.30 7.70 0.30 1.20 0.30 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 13.70 20.90 11.20 10.90 7.80 38.90 - 1965 11 10.70 2.00 0.10 0.10 0.00 0.30 7.80 1.70 0.20 0.10 1.10 2.20 0.20 0.30 0.00 2.20 2.60 2.20 11.40 2.00 0.00 7.60 8.80 2.40 1.40 6.00 0.90 1.80 1.70 0.10 -99.99 - 1965 12 13.40 7.20 0.30 14.40 5.30 0.50 10.90 15.00 9.60 1.50 1.90 2.60 4.60 7.80 2.40 3.80 16.20 2.60 2.40 2.00 3.20 10.30 1.70 0.30 0.00 0.10 0.00 4.90 9.60 3.60 10.10 - 1966 1 11.30 2.20 0.10 4.90 12.60 3.10 0.20 0.80 0.00 0.00 0.10 0.00 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.30 0.20 0.00 11.30 6.00 6.80 13.40 12.70 0.20 0.00 - 1966 2 2.70 5.90 5.80 26.32 7.11 5.80 3.90 1.30 1.30 0.50 0.10 0.80 0.30 0.00 0.00 0.00 0.00 13.31 6.60 9.31 2.90 10.71 2.00 11.91 7.01 5.60 7.81 0.00 -99.99 -99.99 -99.99 - 1966 3 16.19 2.70 4.20 2.20 0.40 0.80 9.59 1.50 10.29 5.40 2.30 1.60 0.70 0.50 0.10 0.20 4.80 0.00 0.00 1.90 1.90 5.90 1.90 0.60 15.99 19.68 0.60 0.10 2.70 2.60 8.19 - 1966 4 0.00 0.00 0.00 0.70 8.38 0.30 0.10 3.09 9.97 1.90 0.70 0.10 0.00 0.40 0.40 0.10 0.00 2.89 2.79 2.39 8.38 16.96 3.29 1.70 3.19 6.68 1.60 0.40 0.60 0.00 -99.99 - 1966 5 0.50 0.70 0.90 7.01 2.90 1.60 7.81 1.40 0.10 5.11 4.70 0.40 2.60 1.10 0.00 13.11 1.70 1.30 9.41 2.80 16.32 5.71 1.30 10.01 2.70 0.00 0.00 0.00 0.00 0.00 0.00 - 1966 6 0.10 0.00 6.71 15.81 0.40 4.20 0.40 0.00 8.71 0.20 0.00 1.00 8.71 1.60 4.10 2.70 5.10 3.60 3.60 5.60 6.40 16.51 18.71 0.80 1.00 10.21 1.60 0.00 0.50 0.00 -99.99 - 1966 7 0.10 0.50 0.00 0.00 1.61 0.70 0.30 0.40 2.51 4.92 1.00 4.32 1.41 0.00 1.71 0.00 0.00 0.00 0.00 0.00 0.00 1.20 0.90 1.31 11.85 3.71 5.92 2.91 4.02 0.60 0.00 - 1966 8 0.80 0.20 7.32 5.22 0.10 0.20 0.10 1.30 18.15 6.12 5.22 1.10 32.59 0.10 0.00 4.91 0.90 1.60 0.90 11.43 2.31 0.70 0.10 0.00 0.00 0.00 0.10 0.00 2.21 0.30 0.00 - 1966 9 14.23 1.80 32.47 3.41 2.81 0.40 0.40 1.70 21.65 5.81 10.82 5.91 6.92 13.83 0.20 4.31 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.30 1.40 0.30 7.42 -99.99 - 1966 10 8.90 0.70 9.40 0.00 23.80 6.20 8.00 0.40 1.60 4.20 1.10 0.20 7.40 0.50 0.40 3.40 4.00 1.60 4.40 4.50 2.70 2.60 0.20 0.00 1.30 0.40 0.50 0.50 0.50 2.40 1.60 - 1966 11 2.40 0.00 2.60 2.40 0.80 1.40 0.80 2.10 1.40 0.30 16.69 6.89 7.89 13.19 11.79 0.30 0.00 0.20 0.00 0.00 0.10 0.00 0.90 7.09 4.60 5.10 4.60 2.40 18.39 13.09 -99.99 - 1966 12 12.91 1.40 0.60 1.90 8.50 1.30 17.91 7.20 3.40 0.50 8.00 2.40 0.40 6.10 10.71 2.00 23.51 3.00 26.81 3.60 2.30 5.20 1.80 2.40 2.40 9.70 3.70 11.81 5.80 3.10 7.60 - 1967 1 0.50 0.10 0.20 0.00 0.90 1.10 0.60 0.30 0.50 0.10 0.10 0.10 0.80 0.00 0.00 2.70 12.69 13.19 7.99 7.69 8.79 7.89 4.60 4.00 13.79 7.39 4.20 2.20 3.40 3.40 9.19 - 1967 2 3.60 10.79 4.80 0.90 0.20 2.80 0.00 0.40 0.50 0.00 0.00 0.00 0.00 0.00 2.60 7.09 4.40 9.79 16.19 7.09 3.40 9.69 1.80 6.00 7.49 9.79 19.49 9.49 -99.99 -99.99 -99.99 - 1967 3 13.01 2.70 0.30 10.31 10.11 4.40 2.30 2.50 8.41 5.70 10.51 1.10 3.40 5.00 6.30 7.91 3.90 1.00 0.50 2.40 1.10 4.80 2.40 8.61 8.81 6.60 2.00 2.10 0.60 0.60 0.00 - 1967 4 18.57 5.09 2.20 2.20 0.10 0.80 1.00 0.50 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.70 0.10 1.90 5.79 1.90 1.10 3.49 5.99 7.39 0.00 2.30 0.30 0.20 0.90 1.90 -99.99 - 1967 5 1.00 1.20 10.22 3.51 3.71 6.61 5.21 3.71 1.30 0.80 5.51 0.70 1.70 0.90 7.91 6.21 3.31 11.72 3.31 3.51 13.22 12.82 3.61 4.71 1.90 1.40 5.01 5.11 0.20 0.30 0.00 - 1967 6 0.30 5.11 2.50 0.10 2.90 9.51 0.80 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11.42 1.70 6.81 7.51 0.30 2.00 5.51 0.00 4.51 5.21 0.30 0.00 -99.99 - 1967 7 5.11 5.11 4.81 0.10 0.10 2.90 14.32 0.70 1.00 0.80 0.80 0.90 8.51 13.72 0.40 2.30 10.82 5.61 1.90 1.00 0.10 0.00 7.71 1.60 3.91 5.41 0.60 0.80 7.51 1.40 8.01 - 1967 8 0.90 1.10 5.51 1.80 0.40 0.70 0.00 4.91 2.40 3.30 16.72 2.30 0.60 13.92 6.31 5.01 0.50 0.70 0.00 0.00 0.00 0.30 0.00 0.20 0.80 0.40 6.71 4.41 2.70 3.90 0.00 - 1967 9 6.40 18.60 7.20 19.20 6.70 0.70 0.00 0.10 0.40 12.40 13.60 0.00 0.00 0.00 0.00 0.10 3.50 4.00 0.80 0.40 0.30 0.10 1.10 11.80 5.00 4.40 0.50 3.70 7.90 10.20 -99.99 - 1967 10 23.68 12.99 11.59 0.10 3.00 22.38 9.79 28.98 14.69 2.20 3.00 5.30 15.09 7.29 5.90 6.99 4.10 17.99 8.29 1.60 0.40 5.40 7.99 15.49 15.49 8.39 2.20 0.40 0.90 3.90 1.20 - 1967 11 11.49 3.10 2.60 0.40 0.30 0.70 1.90 10.69 3.00 12.99 4.30 10.59 10.69 6.79 0.30 0.00 0.10 0.20 0.50 0.30 0.00 0.00 0.20 4.70 1.20 5.10 10.19 5.89 3.20 1.00 -99.99 - 1967 12 0.60 1.30 0.00 3.10 1.60 0.30 0.10 0.50 0.40 4.10 3.50 0.20 0.90 1.70 4.10 0.10 0.80 0.00 0.00 15.22 12.11 16.12 4.80 8.81 0.10 3.30 4.80 0.90 3.10 4.30 3.00 - 1968 1 5.99 6.98 1.00 1.30 3.19 0.10 0.20 2.89 0.20 1.90 0.00 3.29 10.48 16.46 7.08 13.97 5.59 8.98 0.70 0.20 0.20 0.40 0.50 1.50 0.50 0.90 2.29 1.40 9.18 9.68 13.57 - 1968 2 5.98 3.95 9.19 11.59 8.28 2.94 6.16 4.23 0.18 0.18 0.00 5.88 0.28 0.00 0.28 2.21 0.46 0.09 6.34 2.39 0.00 0.09 3.13 0.18 0.00 0.00 0.00 0.09 0.09 -99.99 -99.99 - 1968 3 0.10 0.10 0.10 0.40 0.20 0.10 0.00 0.00 0.20 0.00 0.00 3.40 3.40 9.30 0.90 18.20 13.50 8.80 9.70 2.20 6.80 11.70 8.80 0.80 2.90 19.60 0.70 0.20 0.30 3.40 16.40 - 1968 4 11.10 2.90 0.90 0.30 0.10 1.20 0.00 0.40 0.10 0.00 0.00 0.00 0.00 0.00 0.00 8.40 4.30 6.10 10.10 0.20 5.60 0.50 0.30 0.00 0.00 2.20 5.90 0.50 0.50 0.90 -99.99 - 1968 5 6.01 9.61 9.71 15.01 16.82 0.80 0.60 0.00 10.51 3.90 2.80 3.20 0.70 12.21 2.60 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.80 3.00 0.10 0.00 0.00 2.40 1.20 - 1968 6 2.61 0.60 1.10 0.00 1.30 1.90 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.80 6.21 3.91 1.00 3.11 5.51 7.01 9.12 2.81 0.00 0.00 2.10 0.80 -99.99 - 1968 7 18.88 29.52 7.23 0.30 0.40 0.70 1.00 5.02 0.10 1.81 0.60 0.20 0.00 0.50 2.41 0.80 0.30 0.40 1.10 0.90 0.10 0.90 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.80 0.80 - 1968 8 0.00 0.00 0.30 0.40 1.90 0.00 0.10 0.00 0.00 0.00 0.00 17.00 20.70 0.90 4.50 0.40 1.40 0.30 17.10 1.20 0.50 8.40 0.60 0.00 0.00 0.00 0.80 0.20 0.00 6.30 1.30 - 1968 9 11.11 11.21 5.40 0.10 8.30 0.00 0.40 4.40 0.40 8.30 7.20 18.41 0.70 0.10 0.00 0.00 0.00 0.00 10.51 1.30 0.10 10.81 0.50 0.00 11.61 7.00 17.01 10.61 8.71 15.81 -99.99 - 1968 10 20.78 4.30 5.29 1.30 3.00 0.50 0.80 0.20 21.38 7.09 18.08 9.69 4.20 4.20 10.39 7.79 0.10 0.10 20.88 0.20 0.00 0.00 0.00 0.00 1.20 3.70 9.79 6.89 8.49 7.49 25.38 - 1968 11 3.00 0.00 0.00 0.00 0.40 0.00 0.30 0.10 0.40 4.50 2.30 0.00 0.00 0.00 0.00 0.00 0.00 0.10 1.10 10.79 30.27 11.19 8.39 8.09 2.70 0.30 14.89 0.10 0.00 0.50 -99.99 - 1968 12 0.56 0.56 4.74 3.53 3.53 0.37 0.00 0.19 0.00 0.09 0.00 2.79 0.84 0.93 2.97 5.39 0.84 1.02 11.71 4.18 12.55 10.97 0.46 0.37 0.09 0.09 0.09 0.00 0.09 0.09 0.74 - 1969 1 0.30 0.60 4.10 6.50 2.00 1.90 6.00 5.90 0.20 7.90 1.00 13.50 0.80 3.50 1.40 1.90 4.20 3.50 0.40 15.50 5.30 0.10 5.60 4.20 2.00 3.90 8.30 0.60 3.40 6.80 4.60 - 1969 2 5.81 0.00 0.60 0.80 10.82 2.40 0.50 0.90 0.40 11.22 1.90 0.20 0.30 0.40 0.10 0.10 1.90 0.90 0.10 0.10 0.10 9.22 0.30 0.60 1.50 0.20 0.20 0.20 -99.99 -99.99 -99.99 - 1969 3 0.20 0.40 0.00 0.00 0.00 0.00 0.10 1.00 0.00 0.20 0.00 1.10 3.20 0.90 0.60 0.10 2.40 3.70 3.20 0.30 0.10 0.00 0.00 0.20 0.00 0.00 0.00 0.40 4.60 6.00 3.50 - 1969 4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.31 5.13 1.81 10.06 1.11 1.61 10.16 1.11 0.70 0.00 0.00 0.00 0.20 3.72 0.60 3.52 6.23 2.82 1.01 0.70 0.40 0.10 0.40 -99.99 - 1969 5 0.20 4.50 0.30 1.30 0.20 9.91 11.91 6.31 0.80 4.20 3.10 4.30 8.81 0.90 1.80 0.20 1.30 0.30 0.00 0.00 0.00 0.00 0.90 15.82 0.90 7.71 2.80 2.20 0.70 3.20 1.40 - 1969 6 0.40 10.71 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 8.71 6.51 11.61 8.81 3.50 7.11 4.20 2.70 2.90 1.20 0.90 10.51 1.20 2.00 1.30 2.10 -99.99 - 1969 7 4.49 0.00 6.79 1.80 1.60 1.00 3.70 0.40 0.60 4.39 1.40 0.20 0.00 0.00 0.00 1.00 2.30 11.48 0.50 2.50 2.60 9.59 0.30 0.00 6.89 7.09 2.50 1.00 0.00 0.00 0.00 - 1969 8 0.20 3.61 6.91 3.00 1.20 0.00 0.00 13.02 6.11 0.70 1.30 0.10 0.90 1.90 0.00 0.90 0.80 0.70 7.01 3.31 3.91 1.60 0.00 2.50 2.80 0.90 0.10 0.00 0.00 0.00 0.10 - 1969 9 0.00 0.20 0.00 0.10 0.10 0.30 0.60 0.50 11.10 8.30 5.30 0.00 0.00 0.00 0.00 0.10 3.10 1.70 0.00 6.80 11.20 0.30 2.40 4.20 8.20 11.60 3.00 6.20 2.60 1.90 -99.99 - 1969 10 13.34 5.92 2.11 0.10 3.31 2.21 2.61 14.54 0.80 0.00 0.00 0.00 9.43 1.70 1.40 3.91 0.20 0.20 0.40 0.50 0.80 6.42 18.65 5.11 0.40 0.40 0.40 2.21 1.81 2.91 1.00 - 1969 11 18.41 18.21 3.60 6.70 13.31 4.70 14.01 9.91 8.50 7.60 1.20 7.10 2.90 2.70 2.30 0.20 0.90 3.10 6.20 7.20 7.10 11.41 0.20 0.00 0.10 2.40 10.11 0.60 0.40 2.70 -99.99 - 1969 12 2.80 8.49 0.10 0.00 2.60 4.00 0.50 0.70 0.50 6.10 0.30 0.10 27.98 12.49 2.50 2.60 3.30 5.00 5.80 14.69 18.49 1.50 6.89 0.40 0.40 0.40 0.00 0.00 0.20 0.10 0.20 - 1970 1 0.70 0.40 0.40 0.40 4.20 0.00 0.00 1.80 10.19 0.80 10.99 3.90 1.40 6.29 4.80 0.40 12.69 4.40 8.39 3.50 7.19 0.60 0.50 8.79 3.50 5.20 0.10 0.00 1.50 1.20 7.89 - 1970 2 21.42 5.40 1.00 0.30 0.00 8.81 6.10 5.30 1.90 0.30 0.10 0.10 0.00 0.00 0.10 7.81 2.50 8.01 19.72 5.40 13.41 11.71 5.30 0.70 0.20 0.40 0.20 0.50 -99.99 -99.99 -99.99 - 1970 3 0.90 0.20 1.90 0.30 0.50 0.40 0.70 0.40 0.20 7.99 3.59 0.80 0.10 0.10 0.00 8.09 5.09 1.70 10.58 1.60 2.00 0.60 0.00 0.00 2.20 0.50 0.60 2.80 13.58 1.30 0.10 - 1970 4 0.20 3.00 0.40 0.70 10.21 0.10 0.20 0.60 0.50 0.90 1.70 0.00 0.00 3.70 3.80 13.21 8.01 0.70 2.80 5.91 17.52 21.82 1.70 0.70 0.30 0.10 0.70 1.90 0.30 0.30 -99.99 - 1970 5 6.81 1.50 0.00 0.60 7.71 0.30 5.61 0.50 1.90 0.00 0.00 0.00 1.70 1.60 1.20 0.00 0.10 2.90 1.20 8.21 0.20 0.80 0.40 8.21 5.61 0.30 0.50 0.30 1.30 1.50 4.31 - 1970 6 1.50 0.20 0.00 0.00 0.00 0.20 0.20 0.40 0.00 5.69 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 2.00 3.79 10.18 12.08 0.20 5.89 7.29 3.30 3.30 9.79 -99.99 - 1970 7 6.90 0.80 0.90 0.60 13.90 4.50 0.20 9.30 0.40 5.30 7.00 6.00 2.50 0.40 0.10 0.10 0.50 4.80 0.80 3.00 2.40 2.90 14.80 8.90 0.50 3.60 3.20 3.30 3.30 15.00 0.80 - 1970 8 0.30 0.00 0.10 0.00 0.00 0.00 0.00 0.50 6.41 0.10 1.80 1.80 13.42 2.40 30.33 5.21 0.00 0.00 2.80 7.51 0.20 0.30 0.00 0.00 0.00 0.00 0.00 0.00 0.20 2.90 11.91 - 1970 9 9.20 10.50 1.40 1.10 0.80 2.00 21.40 9.20 16.80 6.20 2.10 1.70 8.30 0.70 0.30 9.90 20.00 0.70 7.10 2.00 0.10 0.50 0.00 0.40 10.70 3.10 0.80 10.00 11.00 4.30 -99.99 - 1970 10 21.74 2.50 6.61 16.23 9.92 6.21 1.80 0.10 1.70 0.10 2.20 0.00 0.20 0.00 0.00 0.00 1.20 9.52 0.40 0.00 0.00 0.40 9.32 11.82 6.51 3.41 7.11 11.32 22.34 3.71 26.64 - 1970 11 7.71 24.12 9.81 15.22 0.50 0.00 4.60 5.41 0.70 10.31 11.11 11.61 7.21 0.30 8.91 3.20 5.71 1.40 2.00 5.31 1.30 2.60 31.43 1.70 2.20 10.91 9.71 3.70 1.90 0.50 -99.99 - 1970 12 3.60 17.82 3.00 6.11 7.61 2.10 0.00 0.10 0.00 0.20 0.80 1.90 0.70 0.80 1.00 12.82 4.41 5.91 2.90 0.30 0.20 0.00 1.00 0.20 0.70 0.30 0.30 0.70 0.30 0.10 0.00 - 1971 1 0.50 0.10 0.00 0.60 6.41 15.13 2.81 4.41 7.21 0.00 0.00 0.00 0.70 0.10 0.30 2.20 3.81 10.12 4.91 5.51 0.60 6.41 6.51 11.12 5.11 1.00 4.01 5.61 2.91 0.30 0.00 - 1971 2 0.50 3.10 0.20 0.10 0.00 0.40 0.00 2.10 0.70 3.50 17.82 21.72 12.91 12.41 2.80 6.01 6.61 0.10 7.31 4.50 0.80 0.40 1.00 0.50 0.10 0.20 9.31 2.30 -99.99 -99.99 -99.99 - 1971 3 12.60 0.10 0.00 0.70 0.30 0.00 0.00 0.00 0.50 1.40 3.00 3.50 3.50 0.20 0.00 0.70 0.40 4.40 5.50 0.10 0.00 0.80 4.30 5.70 3.40 0.60 2.60 6.10 4.10 2.20 0.90 - 1971 4 0.00 0.10 0.30 1.80 0.60 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 3.11 0.20 4.51 0.70 0.50 0.40 0.80 9.42 28.65 3.21 0.00 0.10 0.00 0.00 0.10 2.70 -99.99 - 1971 5 0.00 0.00 0.00 0.00 0.00 4.01 2.81 0.50 1.70 0.10 0.30 0.00 0.00 4.11 5.62 5.11 4.61 0.60 0.30 0.00 0.10 5.82 12.24 0.40 0.20 7.02 3.91 0.60 3.51 4.21 0.50 - 1971 6 0.00 0.00 0.00 0.00 0.00 0.10 0.20 0.40 0.30 0.20 4.70 0.00 1.10 0.40 1.30 0.70 0.10 3.20 5.50 8.10 9.50 0.00 1.50 4.70 7.60 6.00 4.50 0.40 0.20 2.70 -99.99 - 1971 7 0.40 0.40 8.70 2.80 0.00 0.00 0.00 0.10 0.00 0.00 0.10 0.00 0.00 0.20 0.20 0.00 0.00 0.00 0.00 0.20 4.50 8.60 10.50 24.00 7.80 4.00 4.10 0.00 0.00 10.80 7.80 - 1971 8 5.81 0.70 6.21 5.41 10.72 7.21 0.40 4.31 0.70 0.00 0.10 6.31 12.42 0.90 0.40 0.10 0.00 0.00 0.00 0.00 0.10 2.71 0.80 0.40 0.20 6.71 7.62 2.10 6.51 5.11 7.51 - 1971 9 4.01 9.72 1.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 5.81 7.01 0.20 0.70 1.60 0.30 1.50 0.60 0.20 0.20 0.60 0.00 3.11 2.81 0.10 4.21 5.41 0.40 -99.99 - 1971 10 0.20 0.00 0.00 0.00 5.00 4.00 7.50 1.40 9.11 21.51 3.20 0.20 0.00 0.90 14.91 5.20 20.51 8.21 16.11 13.31 15.81 2.30 6.10 0.80 0.00 0.00 0.00 1.50 2.00 3.20 0.30 - 1971 11 2.40 3.60 3.30 25.52 2.30 4.80 8.51 0.20 0.20 0.10 0.50 2.70 0.30 1.80 5.90 1.10 12.41 0.70 0.30 18.82 0.20 2.70 0.30 1.60 1.00 4.40 2.90 1.80 6.31 2.00 -99.99 - 1971 12 0.50 0.00 5.31 0.60 0.00 0.10 1.40 0.90 1.00 0.10 1.20 7.01 5.01 6.31 0.90 0.40 0.00 11.51 10.31 17.02 3.00 3.50 4.81 0.90 2.00 8.41 0.00 0.60 0.10 0.00 0.00 - 1972 1 2.10 2.30 0.50 0.10 0.00 0.00 2.10 10.49 2.20 12.99 17.49 6.30 7.00 0.40 2.50 4.80 6.50 24.18 3.10 4.10 3.10 3.80 11.09 5.70 5.10 5.60 0.40 0.20 0.20 0.10 0.10 - 1972 2 8.39 6.19 2.10 0.10 2.50 0.60 0.30 2.70 4.00 10.09 4.89 9.19 2.00 1.90 15.48 3.10 0.70 0.00 0.00 0.10 0.10 0.00 0.00 0.00 5.29 0.80 3.40 2.90 2.80 -99.99 -99.99 - 1972 3 1.40 9.12 7.82 5.91 0.20 1.20 0.80 0.10 0.10 0.10 0.00 0.00 0.00 1.20 0.00 5.61 0.50 1.30 3.91 0.00 0.20 0.50 0.00 0.00 4.01 12.03 4.31 1.20 11.43 1.30 7.22 - 1972 4 19.69 14.39 5.10 6.70 9.39 2.40 11.89 9.99 13.09 7.99 0.70 1.30 0.10 5.00 0.60 0.80 0.30 0.00 0.00 0.00 0.60 0.10 0.00 0.00 0.00 0.00 0.40 23.09 12.59 8.29 -99.99 - 1972 5 2.00 0.00 1.00 0.00 6.60 6.30 6.10 5.10 2.10 0.40 9.90 4.10 0.10 0.10 0.00 0.00 0.00 0.10 0.50 3.30 4.50 0.60 2.50 7.70 26.30 10.20 1.20 2.50 12.80 4.80 3.70 - 1972 6 5.90 10.11 4.90 10.01 4.30 1.20 11.61 0.60 1.60 1.50 0.20 1.30 0.00 0.80 0.00 0.00 24.52 3.80 1.90 12.81 4.70 3.40 4.70 7.31 0.40 3.60 9.71 1.60 0.60 1.70 -99.99 - 1972 7 1.00 0.20 3.51 9.82 2.10 4.31 0.10 0.30 2.40 3.00 0.10 6.31 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.50 8.61 4.41 8.11 0.00 0.00 0.00 0.60 0.40 2.30 3.81 - 1972 8 1.11 0.10 9.25 3.72 3.52 6.73 11.96 8.04 0.80 0.50 0.30 0.20 0.70 0.00 0.00 9.65 1.31 0.00 1.41 0.00 0.00 0.10 0.80 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 1972 9 0.00 0.00 0.00 0.00 0.90 3.02 0.50 1.01 0.40 1.31 0.80 3.22 0.20 0.00 0.00 0.00 0.00 0.00 0.00 6.53 1.91 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -99.99 - 1972 10 0.00 0.00 0.00 0.00 0.00 0.00 0.30 10.90 8.60 0.40 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.00 3.10 3.60 0.30 2.40 0.10 1.50 9.70 6.50 7.30 0.50 0.70 - 1972 11 2.80 3.00 0.10 0.40 1.60 5.69 0.90 11.29 21.27 10.59 6.59 4.09 0.10 6.39 5.49 0.50 0.10 9.59 11.59 1.40 0.50 0.40 0.00 1.00 2.50 0.30 10.49 9.99 18.78 15.48 -99.99 - 1972 12 4.50 0.20 9.01 13.41 6.40 6.00 3.20 0.20 9.11 8.41 24.02 8.41 3.90 0.50 0.00 2.50 0.00 0.00 0.00 0.60 0.30 0.40 2.80 0.20 2.00 5.10 3.30 3.90 2.00 7.31 12.71 - 1973 1 8.60 6.80 0.40 0.00 0.00 0.00 0.00 0.00 0.00 0.30 0.00 0.30 2.10 5.30 14.20 1.90 0.10 3.10 18.00 21.60 9.30 3.70 6.40 1.20 13.50 3.10 1.30 1.80 5.60 5.80 1.80 - 1973 2 0.40 0.40 0.60 3.50 5.81 4.50 8.51 8.41 3.20 1.10 13.01 9.71 6.41 1.60 0.50 0.00 0.00 2.30 2.00 1.20 3.50 8.01 2.20 0.00 0.00 0.10 4.50 7.01 -99.99 -99.99 -99.99 - 1973 3 6.45 6.95 2.88 2.38 3.97 0.30 0.30 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.49 0.40 4.07 0.50 0.00 6.55 0.30 14.29 3.57 9.33 - 1973 4 4.48 0.40 18.41 8.36 8.76 2.39 0.90 0.90 0.30 0.10 0.30 0.30 0.00 0.10 0.00 0.00 0.00 0.10 0.10 1.19 2.79 0.30 0.90 0.30 0.00 0.60 0.90 0.00 4.78 7.17 -99.99 - 1973 5 0.10 0.20 7.38 13.27 4.79 3.39 2.39 2.39 9.58 3.09 1.40 15.17 0.30 0.40 0.00 0.00 0.00 0.00 0.20 3.39 7.48 2.20 0.20 1.40 1.80 1.00 3.59 0.40 4.09 1.00 0.40 - 1973 6 4.71 3.30 0.50 0.10 0.00 0.00 0.00 0.50 3.00 0.20 2.80 14.02 1.10 2.10 0.00 3.60 0.70 28.64 0.70 0.00 0.00 0.00 0.30 0.60 0.30 0.30 0.00 3.40 1.20 5.51 -99.99 - 1973 7 12.06 1.21 6.03 0.50 2.71 2.41 0.20 0.00 0.20 7.24 1.01 7.84 7.34 6.53 0.00 0.00 0.70 5.83 3.92 4.22 2.01 1.41 0.20 0.00 0.00 0.00 0.00 1.81 0.20 0.30 0.60 - 1973 8 3.41 3.61 5.02 9.83 6.52 11.04 2.81 7.02 5.82 1.30 0.00 0.00 0.00 0.00 0.00 0.30 0.10 1.50 4.11 0.00 0.00 1.30 0.20 0.00 0.00 3.51 1.50 2.91 3.91 7.52 8.53 - 1973 9 1.70 1.20 6.19 7.89 0.70 3.30 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 1.40 8.09 4.69 0.90 0.00 0.10 2.10 0.40 0.00 5.59 3.50 0.20 20.07 9.79 0.70 0.60 -99.99 - 1973 10 0.50 0.00 0.00 0.10 0.00 0.70 2.31 11.43 4.51 0.40 0.00 0.00 0.10 0.00 0.00 0.30 0.80 14.84 4.01 11.23 7.22 1.10 1.91 1.00 2.61 0.30 0.40 0.00 0.00 0.00 0.20 - 1973 11 0.60 1.50 1.80 14.23 1.40 0.20 3.51 15.44 1.30 5.41 19.04 8.52 4.81 3.11 1.90 0.80 14.33 8.72 0.10 0.20 3.01 0.60 10.02 0.70 0.60 0.60 0.30 5.01 0.00 0.00 -99.99 - 1973 12 0.00 1.20 2.80 1.00 4.30 0.30 11.79 0.10 1.20 11.59 6.60 15.29 2.10 0.60 22.49 3.90 1.00 4.00 22.29 5.40 3.40 8.69 1.00 0.50 8.59 1.10 3.50 2.10 11.39 0.20 0.40 - 1974 1 3.60 0.00 1.40 16.10 8.70 9.50 5.00 13.00 2.50 11.50 10.80 6.10 7.10 6.70 4.50 9.30 29.10 5.80 0.10 0.10 0.20 9.10 6.30 1.90 8.60 10.70 4.40 9.70 26.30 12.70 2.80 - 1974 2 5.00 5.60 1.10 4.50 3.20 0.50 4.50 15.60 9.80 1.80 7.50 2.70 1.30 12.50 11.70 0.80 0.00 0.40 0.90 3.10 2.60 2.70 1.20 0.70 0.50 0.50 0.50 10.00 -99.99 -99.99 -99.99 - 1974 3 1.70 0.20 1.10 0.50 0.20 13.80 0.20 0.00 0.30 0.10 0.20 0.60 1.60 7.90 7.30 5.10 7.50 2.10 6.80 0.00 12.10 0.10 0.00 0.60 2.20 0.10 0.00 0.00 0.00 0.00 0.00 - 1974 4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 6.15 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.59 2.97 0.10 0.20 -99.99 - 1974 5 3.19 1.69 0.40 0.20 0.30 0.00 0.10 2.19 7.48 4.98 2.49 5.38 1.00 0.00 0.00 1.10 6.38 3.49 2.59 0.40 3.39 4.59 4.09 0.10 0.10 0.10 6.78 0.40 0.10 0.00 0.50 - 1974 6 5.90 1.30 0.90 3.00 6.90 7.80 6.90 0.80 2.50 6.40 1.90 0.00 0.00 0.00 0.00 5.10 1.90 1.70 0.90 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.70 11.10 -99.99 - 1974 7 0.00 4.58 1.40 8.67 5.58 0.30 0.50 5.38 0.70 4.58 3.29 2.39 1.20 7.87 8.57 1.10 0.40 2.19 0.70 0.30 2.89 12.76 1.89 0.10 2.99 2.89 3.59 1.59 0.50 0.10 0.00 - 1974 8 3.10 0.70 0.10 0.00 3.70 1.40 2.40 4.80 9.71 4.40 13.01 1.80 0.00 14.11 1.10 2.30 1.00 0.40 0.40 3.80 1.10 6.01 4.40 10.71 2.70 1.90 0.90 1.70 0.00 0.00 1.70 - 1974 9 13.41 7.40 4.40 10.91 9.51 9.01 6.50 3.30 3.30 0.40 0.90 13.71 2.50 9.81 1.30 15.41 0.80 1.30 1.30 11.51 7.81 6.50 2.60 8.21 1.40 1.40 0.00 0.00 0.70 0.10 -99.99 - 1974 10 4.19 2.00 0.00 0.00 3.69 2.60 0.40 0.00 0.80 0.10 0.00 1.10 2.90 0.50 0.30 1.90 11.68 7.19 4.39 1.80 0.10 0.00 0.10 0.50 0.70 4.29 2.60 0.10 1.30 5.59 2.00 - 1974 11 2.50 6.20 2.60 0.10 5.70 0.10 10.90 14.60 10.80 22.30 8.10 6.10 20.10 10.60 1.10 4.30 0.90 1.80 0.10 0.00 4.60 2.90 6.70 14.70 2.80 9.20 6.50 1.60 5.30 4.20 -99.99 - 1974 12 3.09 1.50 7.69 7.09 3.69 5.59 10.78 4.79 16.17 7.79 5.69 1.10 6.49 5.19 13.48 16.87 6.59 1.80 15.47 6.79 8.49 3.89 3.99 3.69 20.57 12.48 7.09 13.38 1.30 4.19 8.79 - 1975 1 0.70 2.50 1.50 14.09 7.49 3.20 1.00 1.90 12.29 12.79 10.19 7.29 20.98 12.19 8.29 3.30 1.90 0.20 20.19 2.10 27.78 15.99 7.59 13.89 5.40 10.09 7.29 3.30 18.39 10.59 5.60 - 1975 2 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.10 0.20 3.81 8.32 0.50 4.61 10.82 3.81 0.10 10.12 5.31 0.30 2.20 1.50 0.70 0.00 0.00 0.00 0.00 -99.99 -99.99 -99.99 - 1975 3 5.02 1.10 2.11 0.30 8.54 7.94 2.01 0.50 0.40 1.91 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.00 0.20 0.00 11.45 0.30 0.60 0.70 1.10 0.40 0.10 0.10 0.30 0.00 0.00 - 1975 4 2.29 0.20 1.10 0.50 0.00 3.19 0.30 0.20 1.10 3.89 4.19 1.60 3.39 2.99 1.50 9.77 1.40 0.60 3.99 5.78 6.08 0.00 0.10 0.10 0.00 0.40 0.70 6.98 4.59 7.98 -99.99 - 1975 5 2.50 0.00 0.00 0.00 0.00 0.00 0.00 3.20 4.10 4.00 2.00 5.50 4.20 0.40 0.00 0.00 0.00 0.00 0.30 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 1975 6 7.00 2.00 1.30 20.40 3.30 0.00 0.00 0.00 0.00 0.00 0.20 0.10 0.60 0.50 4.20 5.00 3.80 8.00 3.10 0.10 0.00 0.00 0.30 0.00 0.10 0.00 0.00 0.00 0.00 0.00 -99.99 - 1975 7 0.00 0.00 0.70 0.00 0.00 0.00 0.00 0.20 1.99 6.28 1.99 1.99 8.97 11.96 10.07 0.00 1.00 0.00 4.09 0.20 14.75 10.57 3.49 1.30 2.69 1.79 0.00 1.20 6.98 0.40 0.00 - 1975 8 0.00 0.00 0.00 4.01 3.51 0.30 0.40 8.31 1.90 0.00 0.00 1.10 0.00 2.20 1.20 0.40 0.00 0.20 5.61 3.81 2.00 0.00 1.20 0.60 1.50 2.30 0.40 0.50 23.64 0.20 0.00 - 1975 9 0.00 2.40 0.20 1.40 4.70 4.40 1.40 10.69 8.50 1.40 6.00 0.70 0.30 0.10 1.20 13.79 24.89 0.50 4.80 9.99 1.40 10.39 4.60 27.39 10.99 0.70 5.90 9.29 3.00 13.49 -99.99 - 1975 10 6.30 15.00 10.50 16.80 0.70 0.00 0.00 0.50 15.40 0.20 0.00 0.00 0.00 2.50 1.30 0.00 0.00 0.00 0.00 0.00 0.00 9.90 10.50 1.70 0.30 0.90 0.10 0.00 3.30 1.50 5.50 - 1975 11 1.00 15.32 2.00 4.91 2.00 0.10 0.10 0.00 0.20 0.50 5.31 0.00 0.10 3.40 13.22 0.30 0.00 7.01 1.50 0.00 0.00 9.91 5.61 5.11 5.21 19.43 9.61 6.21 8.21 12.12 -99.99 - 1975 12 13.75 0.20 0.70 1.61 1.00 0.90 0.20 0.40 0.70 0.90 1.81 0.00 0.50 0.40 1.30 0.30 0.10 0.20 0.80 0.80 0.90 0.90 4.21 5.72 0.70 1.20 0.50 2.41 1.20 11.14 4.31 - 1976 1 8.69 21.69 3.50 5.50 10.39 8.69 3.60 0.50 7.40 9.39 1.90 4.40 6.00 1.60 1.40 1.10 3.60 10.89 19.99 10.79 9.99 4.30 0.80 0.10 0.40 2.10 1.60 6.30 0.10 0.00 0.00 - 1976 2 0.00 0.30 0.20 0.10 2.30 3.60 4.10 2.20 12.21 8.21 12.21 2.00 0.00 4.91 0.00 0.00 0.30 0.20 0.10 1.20 3.70 12.41 4.51 2.20 2.00 1.10 0.00 1.20 5.01 -99.99 -99.99 - 1976 3 0.10 0.00 0.00 1.10 0.00 0.00 0.00 0.00 9.41 15.01 8.21 1.90 0.00 0.80 1.40 7.21 0.10 0.00 0.20 19.42 8.31 0.40 1.30 9.71 3.90 9.71 0.10 12.11 4.10 7.91 5.90 - 1976 4 7.50 2.90 7.20 3.20 2.30 1.90 0.10 0.30 0.10 13.80 2.10 3.50 12.10 0.00 0.10 0.20 1.10 0.30 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 2.60 -99.99 - 1976 5 7.18 4.79 0.80 1.20 0.00 1.80 0.00 0.00 1.60 2.00 8.08 3.29 2.99 2.89 7.08 18.36 4.09 1.10 6.19 2.10 12.97 0.80 0.00 12.57 1.30 0.00 0.60 10.58 11.97 6.49 6.99 - 1976 6 3.79 1.00 0.20 2.00 0.30 0.00 0.00 0.00 4.69 3.39 9.89 0.30 0.90 1.30 1.40 11.18 5.09 3.30 4.49 0.40 3.89 2.80 4.99 0.80 0.60 0.00 0.00 0.00 0.40 0.00 -99.99 - 1976 7 0.00 0.00 0.99 0.30 0.00 0.00 0.00 0.00 10.52 1.09 0.50 4.47 4.66 4.86 12.11 1.09 0.10 15.88 0.50 1.09 0.10 0.79 0.69 0.20 0.00 0.20 0.00 0.10 0.69 2.98 1.39 - 1976 8 4.42 3.88 0.00 0.18 0.18 0.72 0.09 0.00 0.00 0.00 1.44 4.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 3.34 1.80 0.09 0.45 - 1976 9 0.00 0.00 0.00 0.00 0.30 0.90 0.60 15.64 2.91 7.32 0.60 1.90 3.41 0.20 0.00 0.10 0.00 0.00 3.01 4.21 22.36 6.82 0.10 0.00 16.04 0.10 13.93 14.84 1.40 3.41 -99.99 - 1976 10 1.80 6.88 8.79 0.00 14.93 1.59 2.86 0.53 0.85 10.91 14.72 2.33 4.98 20.76 2.22 0.64 8.90 0.53 1.48 7.63 1.38 14.72 11.54 0.53 4.87 0.00 0.32 0.64 1.17 0.00 7.31 - 1976 11 4.16 5.89 5.89 7.21 3.45 6.19 4.06 1.52 2.74 4.16 0.10 0.00 0.00 5.58 18.28 0.00 12.69 0.00 0.00 0.00 0.30 0.30 1.02 1.52 5.89 19.39 15.74 5.08 8.43 5.38 -99.99 - 1976 12 4.94 0.20 0.40 0.71 7.66 12.70 5.34 3.12 4.94 2.12 0.81 1.51 0.50 2.82 4.74 2.92 1.01 0.00 6.35 4.03 1.11 3.93 0.10 0.10 0.00 1.81 0.71 4.43 14.92 8.47 0.00 - 1977 1 0.00 0.60 4.50 11.90 0.80 1.60 0.70 5.30 1.70 0.10 0.00 0.00 2.90 4.10 0.10 0.00 0.30 7.80 14.00 6.50 5.60 2.20 0.50 3.30 16.70 0.20 0.00 0.00 3.60 4.70 1.50 - 1977 2 7.21 25.62 4.90 5.90 1.10 10.21 1.30 1.20 18.41 7.21 0.60 0.90 4.80 6.81 2.10 0.20 10.71 4.40 0.20 2.30 9.41 1.00 0.00 0.00 0.00 0.00 0.00 1.90 -99.99 -99.99 -99.99 - 1977 3 4.41 11.52 4.01 3.91 0.30 0.70 2.30 0.50 7.11 6.91 3.71 3.20 8.91 2.40 12.92 3.51 7.81 7.81 1.90 1.80 0.40 0.50 0.50 0.00 0.60 3.20 0.20 0.00 0.20 26.54 9.01 - 1977 4 6.23 4.09 0.19 0.39 0.49 0.19 0.10 0.58 1.27 0.58 3.89 4.28 3.41 0.00 0.97 1.75 0.00 0.00 3.70 7.59 19.67 10.03 4.87 4.38 3.60 4.19 15.19 4.38 4.58 0.49 -99.99 - 1977 5 1.10 1.00 9.60 0.20 0.70 10.80 4.80 0.30 1.30 3.20 8.80 11.30 0.70 0.10 0.70 0.40 0.10 0.00 0.60 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 - 1977 6 0.00 0.00 0.10 5.40 3.80 16.70 1.40 1.30 2.40 4.40 2.20 4.70 3.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.20 0.10 0.70 0.20 0.50 3.10 3.90 -99.99 - 1977 7 1.70 3.20 0.30 0.00 0.00 0.00 0.20 1.70 0.00 0.00 0.00 0.00 0.00 0.00 8.80 1.00 14.10 2.00 2.90 0.10 0.80 15.00 7.40 2.40 0.20 0.10 0.10 0.00 0.50 0.10 0.40 - 1977 8 5.60 6.20 9.30 19.80 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 4.30 7.20 3.60 0.00 0.20 0.10 1.60 5.60 0.10 0.60 0.90 21.80 3.60 4.40 0.10 1.60 4.50 8.10 3.40 - 1977 9 7.21 2.20 10.82 9.42 12.92 2.60 6.91 2.60 22.24 11.32 4.41 0.00 0.10 0.60 0.40 0.00 0.00 0.00 0.00 0.80 0.00 0.70 0.00 1.40 7.11 9.42 21.54 8.41 24.44 15.93 -99.99 - 1977 10 2.60 0.10 17.40 2.90 23.90 3.20 30.20 2.80 4.70 3.00 6.70 0.30 0.30 0.40 0.00 0.00 0.00 0.90 1.30 5.40 2.70 10.90 19.00 2.20 1.40 2.70 0.70 1.00 8.40 46.40 4.60 - 1977 11 6.00 8.80 11.00 9.80 12.10 24.50 10.50 9.40 17.50 5.10 9.30 5.60 4.40 6.70 4.00 2.80 0.50 4.00 7.80 0.40 0.10 5.20 9.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 -99.99 - 1977 12 0.20 0.00 0.00 0.00 0.20 0.20 1.50 0.80 9.40 7.60 12.00 0.90 3.70 4.30 0.20 0.20 2.80 1.10 0.00 0.00 2.00 20.00 11.90 4.40 3.10 8.10 1.80 1.90 1.20 0.30 3.70 - 1978 1 3.80 20.10 1.10 6.90 0.90 1.70 0.60 10.50 9.70 6.90 0.50 1.00 0.10 0.40 2.20 0.60 0.20 8.20 3.40 0.70 9.70 4.00 11.70 0.10 2.60 3.90 17.20 4.60 0.90 8.40 8.20 - 1978 2 9.60 0.32 8.64 6.30 4.48 0.96 0.00 0.43 0.00 0.21 1.28 0.00 0.53 0.00 0.00 0.00 0.00 0.00 0.11 1.39 0.85 18.03 6.62 6.62 11.10 3.41 4.16 0.85 -99.99 -99.99 -99.99 - 1978 3 6.53 3.37 0.59 0.00 0.00 10.00 17.32 0.00 3.46 0.40 4.85 5.44 13.66 9.60 4.06 0.79 0.10 1.19 17.42 3.96 5.74 12.47 7.42 11.09 11.78 12.47 1.88 8.41 8.12 0.40 2.97 - 1978 4 5.08 0.60 0.00 0.00 0.00 0.00 0.00 0.20 1.59 0.80 3.09 1.79 1.99 0.20 0.70 0.10 0.30 0.20 1.20 0.80 0.00 0.00 0.00 0.20 0.50 1.40 6.08 4.29 0.50 0.10 -99.99 - 1978 5 0.00 0.39 1.38 0.69 1.08 0.00 0.00 0.00 0.00 1.28 2.86 0.79 1.48 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.69 0.89 0.89 0.00 0.10 0.20 0.00 0.00 0.00 0.00 0.30 - 1978 6 0.30 0.00 0.00 8.40 1.10 3.40 0.70 1.00 0.40 0.00 0.00 0.00 0.00 0.70 1.40 0.00 0.00 0.30 0.10 4.60 6.90 13.90 1.50 1.30 0.10 0.20 5.50 0.70 3.00 2.90 -99.99 - 1978 7 5.79 2.20 8.99 3.00 0.00 0.60 1.40 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.10 0.50 0.70 1.40 6.79 15.08 2.70 1.80 17.48 1.50 7.99 0.00 0.00 2.00 0.90 - 1978 8 0.90 6.79 2.00 0.70 1.10 8.29 1.60 2.40 0.50 0.00 6.39 3.20 5.29 12.79 3.30 1.90 0.20 2.90 4.30 9.59 16.68 0.10 0.30 0.20 0.00 0.00 0.10 0.10 0.10 6.29 0.60 - 1978 9 0.00 2.85 0.57 0.19 7.98 1.80 1.52 8.36 35.62 11.78 0.19 16.43 9.69 8.64 1.42 1.52 0.76 0.57 0.38 0.09 7.22 2.28 6.55 6.08 15.86 3.32 14.82 25.36 5.41 1.90 -99.99 - 1978 10 5.81 3.31 2.71 4.41 2.81 0.10 1.00 2.91 2.01 2.01 1.10 0.20 0.00 5.51 6.62 3.01 0.40 0.20 2.71 0.90 3.11 0.10 12.13 1.00 8.72 0.00 0.00 0.20 1.20 2.71 3.01 - 1978 11 6.60 2.80 8.60 4.40 0.00 0.00 3.50 0.00 0.70 3.20 0.40 17.99 27.19 29.29 18.19 9.60 11.79 2.20 5.20 11.69 11.09 9.60 6.00 3.80 1.50 0.10 0.00 0.00 7.00 1.00 -99.99 - 1978 12 5.80 7.01 8.81 8.91 0.00 0.00 15.81 14.71 5.20 4.40 9.11 4.60 0.40 0.30 0.70 0.00 0.10 0.40 0.10 2.60 4.60 1.10 0.10 10.01 9.11 3.10 10.91 4.30 3.00 1.40 2.40 - 1979 1 9.30 3.49 2.71 1.55 5.14 8.14 6.10 6.98 10.85 1.07 2.03 1.07 1.26 8.04 4.55 0.58 0.19 0.19 11.82 5.33 0.00 0.00 1.55 2.23 1.65 1.16 1.55 4.36 0.48 5.04 4.07 - 1979 2 0.20 4.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.30 0.40 0.90 0.80 0.10 0.20 0.90 0.20 0.40 3.30 1.90 0.00 0.00 2.10 3.40 8.70 2.90 -99.99 -99.99 -99.99 - 1979 3 18.00 16.30 5.40 3.00 4.50 14.40 1.70 21.40 5.90 12.90 7.60 1.20 0.70 0.30 1.40 0.30 0.80 0.20 0.00 3.70 3.50 0.40 0.00 20.70 12.20 2.60 0.30 2.30 0.50 1.50 1.30 - 1979 4 3.51 0.30 1.40 0.90 0.00 1.60 2.01 0.50 5.21 12.83 6.62 8.52 0.20 3.11 0.00 0.00 0.00 1.00 3.61 2.81 1.50 12.83 4.51 0.80 0.10 0.00 0.80 0.60 2.61 0.30 -99.99 - 1979 5 0.39 0.39 0.30 0.69 1.38 1.67 0.39 0.30 0.00 6.88 1.08 1.38 0.10 4.43 1.57 8.26 4.92 0.59 0.49 1.28 2.56 2.46 2.75 1.38 1.28 1.87 4.13 7.08 1.57 3.74 0.10 - 1979 6 0.00 0.00 0.88 1.66 0.10 7.21 4.48 3.12 0.00 0.10 0.10 4.09 2.92 2.43 0.19 0.00 0.00 0.00 0.00 3.21 4.48 7.01 2.24 0.97 1.27 0.00 5.16 2.05 2.24 0.00 -99.99 - 1979 7 0.09 0.19 0.00 0.00 0.00 4.78 0.66 8.24 0.19 0.00 0.00 3.18 0.47 1.12 8.61 3.46 5.06 0.56 1.59 2.25 0.37 0.19 0.75 6.65 5.34 1.69 1.78 12.08 1.59 7.68 2.34 - 1979 8 0.68 0.19 0.19 4.07 24.12 20.83 0.39 6.20 0.00 1.45 3.49 17.05 14.53 3.88 5.04 8.82 1.45 0.29 1.84 8.14 5.43 9.30 1.26 0.00 0.00 0.00 0.00 0.00 0.00 0.00 13.76 - 1979 9 12.83 5.23 0.86 0.38 0.86 0.76 3.23 3.33 0.76 4.28 3.04 2.85 2.38 0.29 0.00 7.98 14.35 0.48 9.60 2.38 0.57 10.36 1.14 15.21 7.51 3.14 1.14 0.00 0.00 0.19 -99.99 - 1979 10 0.90 1.50 17.79 8.49 0.00 3.20 3.60 5.60 0.40 4.50 7.80 0.00 12.79 6.30 1.00 0.80 11.29 17.19 2.70 1.20 0.00 0.80 0.00 1.70 6.50 0.60 3.70 2.40 11.29 25.48 7.20 - 1979 11 2.74 22.21 13.31 12.82 9.20 1.76 7.24 9.98 1.47 9.98 11.94 0.00 5.09 3.13 1.08 2.45 14.97 2.54 0.20 3.33 4.11 5.58 5.58 22.79 29.55 1.17 5.19 7.63 5.28 7.83 -99.99 - 1979 12 9.20 5.90 8.30 8.40 2.10 12.09 34.18 9.60 15.89 2.80 0.50 10.19 0.60 0.50 2.60 10.09 12.29 0.70 0.00 0.30 0.10 0.10 1.10 0.20 11.29 28.19 1.50 3.70 0.60 0.30 0.30 - 1980 1 0.00 7.20 22.80 6.00 0.90 0.10 0.00 0.40 4.10 2.00 0.40 0.10 5.00 0.00 0.00 0.00 0.00 0.00 4.40 2.90 8.50 1.20 1.00 0.10 0.00 0.00 8.10 2.70 10.20 3.30 1.00 - 1980 2 5.01 0.90 0.60 7.71 1.60 0.70 8.91 2.50 7.21 1.70 13.11 11.01 0.70 7.61 0.40 2.50 1.60 9.51 2.10 3.80 7.81 0.60 0.00 0.00 0.00 0.00 0.30 0.20 0.00 -99.99 -99.99 - 1980 3 0.20 0.20 0.00 3.89 2.50 6.99 1.00 1.30 4.49 2.79 8.28 0.30 0.60 0.00 0.00 12.48 3.89 0.40 0.20 5.49 3.59 1.10 5.99 9.88 4.19 5.69 2.20 2.59 0.00 3.59 5.99 - 1980 4 2.20 0.80 0.00 0.00 0.00 0.10 0.20 0.00 0.00 0.00 0.00 0.00 1.90 3.50 0.00 0.60 0.00 0.00 0.00 0.00 0.30 0.40 0.00 0.00 0.00 0.00 0.60 0.00 0.30 0.10 -99.99 - 1980 5 0.00 0.00 0.00 0.00 0.00 0.00 0.30 0.40 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 5.02 2.91 0.00 0.00 0.00 2.41 1.61 0.40 1.81 1.00 0.90 1.51 2.41 - 1980 6 0.10 8.03 0.80 7.22 10.43 1.91 9.23 0.70 0.80 0.80 2.01 0.10 0.60 23.47 2.31 5.12 0.10 7.42 11.03 2.21 2.71 5.22 6.42 2.71 5.12 0.00 4.21 1.50 1.10 3.61 -99.99 - 1980 7 0.00 0.80 10.21 4.30 0.50 0.10 0.10 1.20 0.00 0.50 1.70 1.60 0.30 1.30 0.20 0.90 14.41 4.90 4.90 0.00 7.21 17.01 4.60 1.10 12.21 17.41 0.10 0.10 0.00 15.81 0.10 - 1980 8 0.60 9.90 7.20 10.80 0.40 0.30 3.70 0.00 0.60 5.50 10.70 0.30 7.10 13.60 0.70 3.70 2.90 0.60 14.30 6.60 0.10 0.00 0.00 0.40 0.00 0.00 3.10 5.70 40.60 0.30 0.20 - 1980 9 2.20 3.60 2.50 8.99 6.69 9.29 4.00 2.90 6.49 8.29 24.37 7.39 13.88 4.40 5.69 4.50 4.79 7.09 0.70 0.10 0.70 5.29 4.50 1.80 8.69 20.38 0.30 2.40 4.10 5.09 -99.99 - 1980 10 0.50 1.60 16.78 1.40 10.09 28.57 9.09 3.70 1.20 0.20 0.00 0.30 1.80 0.40 0.80 2.10 0.10 5.89 0.10 8.09 14.48 14.68 28.67 5.79 3.00 7.49 1.20 6.39 0.00 0.70 0.00 - 1980 11 0.40 0.00 0.00 0.30 1.40 1.10 0.60 0.30 0.00 0.80 0.00 2.40 21.56 6.39 8.78 13.67 4.39 9.58 13.07 12.17 10.58 1.60 7.09 13.87 4.39 6.99 3.19 0.30 0.00 0.50 -99.99 - 1980 12 3.30 0.20 0.40 1.20 0.70 0.00 0.20 0.80 23.61 15.51 5.60 19.51 16.31 12.51 0.60 9.50 11.11 3.90 10.10 1.20 4.10 10.50 17.61 9.80 10.70 1.10 2.90 3.50 3.20 11.11 6.60 - 1981 1 18.20 17.90 2.90 0.10 6.00 2.50 1.00 6.20 1.10 0.30 5.80 0.30 17.60 5.00 0.90 17.20 0.70 10.30 2.10 5.10 1.70 2.30 2.10 2.00 5.50 0.60 0.00 1.90 1.20 0.00 0.10 - 1981 2 5.99 26.47 5.79 1.40 2.80 8.89 8.09 0.70 0.30 0.30 3.20 3.90 0.00 0.30 0.60 0.00 0.00 0.00 0.10 0.30 3.00 0.10 0.00 0.00 0.00 0.00 4.49 3.50 -99.99 -99.99 -99.99 - 1981 3 6.40 1.10 0.10 0.00 18.29 16.99 13.49 1.50 11.99 15.69 2.50 0.20 0.30 2.60 0.40 0.00 3.10 1.60 6.40 6.70 4.70 0.40 8.09 15.99 7.00 1.20 6.50 7.70 0.00 0.00 0.00 - 1981 4 0.00 0.00 0.00 0.00 0.00 0.40 1.20 0.00 0.00 2.80 2.20 0.40 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 6.00 7.20 0.40 0.00 1.50 0.70 3.80 0.10 -99.99 - 1981 5 0.00 9.20 6.20 0.80 4.70 5.40 9.30 0.00 3.60 1.10 0.00 3.90 0.80 0.60 1.70 4.70 0.90 7.20 0.10 7.50 0.80 6.20 3.80 0.50 0.00 1.30 5.60 0.20 1.10 1.20 3.80 - 1981 6 0.20 11.10 8.40 4.10 5.80 2.90 10.70 11.60 2.00 7.40 0.90 10.90 12.70 0.90 1.90 0.80 0.40 3.10 0.10 0.00 0.10 0.20 0.20 0.90 0.10 0.20 0.00 0.00 1.50 2.80 -99.99 - 1981 7 2.30 1.90 0.60 2.10 9.62 4.11 0.10 0.80 0.00 14.63 2.10 0.00 0.60 0.50 3.81 3.21 5.11 1.80 2.30 1.10 19.44 9.72 0.30 2.30 1.80 0.20 2.10 1.80 0.00 0.00 0.00 - 1981 8 0.00 2.81 6.92 0.00 0.10 0.00 0.20 1.60 0.00 0.90 1.20 1.20 1.20 0.10 0.60 0.30 3.71 3.11 9.62 0.40 0.40 0.00 0.50 3.21 0.10 0.00 0.00 0.00 0.40 0.00 0.00 - 1981 9 0.00 0.00 6.80 17.01 0.80 0.10 2.10 0.40 2.90 13.91 0.30 0.50 0.00 18.91 0.70 17.01 21.81 3.90 23.11 6.80 2.40 2.20 32.91 3.40 7.40 42.92 11.40 3.20 3.60 4.60 -99.99 - 1981 10 32.15 14.52 8.61 2.50 0.90 8.21 6.41 19.63 9.71 4.61 2.60 1.90 1.30 0.60 1.80 0.70 0.50 14.42 2.00 1.00 0.10 0.90 3.61 3.71 0.10 9.41 7.51 13.42 11.82 6.31 7.31 - 1981 11 18.30 6.70 8.50 0.00 0.00 0.00 0.00 1.30 7.70 10.60 0.80 1.00 1.00 0.80 9.10 6.20 5.20 8.30 15.10 4.10 12.60 13.50 3.90 3.30 10.80 14.70 6.80 1.10 12.90 3.00 -99.99 - 1981 12 0.10 0.60 7.69 0.70 1.00 0.60 0.10 0.00 0.10 0.00 0.10 0.40 8.19 2.00 0.00 0.00 0.00 0.00 9.98 11.38 0.80 0.00 0.10 0.70 0.90 0.00 2.10 0.60 1.90 6.09 0.20 - 1982 1 1.87 29.53 29.86 13.39 6.04 0.00 0.00 0.55 0.00 0.00 0.00 0.11 0.00 0.00 0.66 1.21 1.10 3.51 5.16 7.46 12.29 4.61 0.66 1.54 14.16 0.33 3.29 4.17 3.62 3.29 1.10 - 1982 2 6.01 0.00 0.20 7.91 6.11 4.70 6.81 15.81 8.61 4.30 2.60 8.31 2.90 0.00 0.00 0.00 0.30 1.00 0.00 0.10 2.70 0.10 0.20 8.41 8.81 1.70 2.50 12.91 -99.99 -99.99 -99.99 - 1982 3 8.40 16.30 5.50 0.00 8.80 4.90 5.90 4.00 24.90 6.80 20.60 4.30 5.20 6.90 10.60 5.80 0.20 0.00 3.70 4.80 2.30 0.00 0.00 0.00 0.00 0.00 0.00 0.90 0.00 0.00 0.60 - 1982 4 1.10 0.20 5.10 2.20 3.30 6.40 3.00 0.60 1.00 0.00 0.00 0.00 0.20 0.10 0.30 0.00 0.00 0.00 0.00 0.00 0.30 3.20 0.20 0.00 0.00 0.00 0.00 0.60 0.90 4.10 -99.99 - 1982 5 4.00 28.87 5.09 2.00 7.89 0.30 0.00 0.00 0.00 0.10 0.00 0.00 0.00 0.00 2.30 0.20 0.80 1.00 0.20 0.00 11.19 5.99 2.30 2.60 2.40 1.10 3.70 0.30 0.00 0.00 0.90 - 1982 6 0.00 0.00 0.20 0.00 1.60 7.51 0.00 0.00 3.10 2.70 20.72 0.30 0.50 0.00 14.92 0.00 0.00 0.00 1.20 0.60 0.00 1.00 0.00 2.50 12.11 4.00 8.41 4.10 0.40 6.61 -99.99 - 1982 7 0.80 2.80 1.20 4.90 3.60 1.10 0.50 2.70 0.90 0.60 0.20 0.70 0.20 9.90 8.40 0.90 0.10 0.00 0.00 0.00 0.00 0.00 0.00 2.20 0.00 0.00 0.00 0.00 0.00 0.00 7.10 - 1982 8 3.20 0.10 0.00 0.50 2.80 0.70 2.10 1.60 0.80 0.90 3.60 4.20 1.80 0.00 7.29 5.60 15.19 9.09 9.49 2.40 9.79 4.30 9.99 6.99 5.50 2.30 0.00 12.99 8.99 0.10 0.60 - 1982 9 0.10 0.30 2.10 21.71 6.00 8.00 3.80 1.10 6.90 8.70 3.80 1.20 0.10 0.00 0.90 0.10 0.20 1.80 9.81 9.81 0.80 5.50 3.20 23.31 8.20 11.91 25.51 9.61 2.40 9.10 -99.99 - 1982 10 21.08 0.19 3.63 6.49 1.43 0.67 0.95 0.00 1.53 2.48 1.34 12.12 4.96 0.00 4.39 8.01 17.36 6.77 16.12 4.10 1.72 1.53 3.34 1.91 3.72 3.43 0.00 0.19 14.79 23.75 6.11 - 1982 11 1.50 0.20 0.70 1.80 26.41 5.70 7.00 1.70 8.70 12.61 16.41 3.30 11.61 2.70 13.01 11.41 14.41 14.11 8.00 9.60 6.90 12.81 19.81 8.20 0.60 0.40 2.90 0.30 0.00 0.00 -99.99 - 1982 12 0.00 0.00 1.10 11.31 2.60 0.10 22.11 4.30 9.90 0.60 0.20 0.20 1.90 12.31 11.71 10.30 2.80 28.51 18.31 10.61 1.20 0.90 10.51 1.80 4.60 6.00 5.20 1.60 3.30 8.70 15.71 - 1983 1 11.57 15.50 8.99 11.26 14.88 6.51 5.99 9.40 2.58 3.82 15.29 7.03 10.54 3.82 1.34 4.44 9.20 2.38 0.93 3.31 1.24 0.10 10.44 0.72 1.65 9.61 8.89 9.51 6.51 6.10 22.32 - 1983 2 0.20 3.11 0.00 17.74 2.81 0.00 1.20 0.50 3.81 0.00 0.30 0.30 0.10 0.30 0.00 0.40 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.50 8.92 6.81 0.70 -99.99 -99.99 -99.99 - 1983 3 4.81 17.03 1.50 1.20 5.31 0.90 0.00 0.00 0.10 1.60 1.60 5.11 7.61 1.00 8.22 6.01 4.91 17.53 9.62 11.72 9.62 6.01 4.51 3.91 0.30 4.91 0.10 3.71 9.62 6.61 1.90 - 1983 4 0.80 0.10 5.10 3.20 0.90 0.20 1.50 0.30 0.30 0.40 0.20 1.90 0.80 0.10 4.00 8.60 1.40 1.90 1.70 2.10 0.00 5.50 3.60 1.60 0.10 0.50 0.90 1.80 0.30 0.00 -99.99 - 1983 5 0.80 1.20 0.00 0.00 21.72 4.50 2.10 6.81 3.00 9.21 5.61 9.71 7.91 2.40 2.20 2.30 1.90 0.50 2.70 5.51 2.40 0.80 0.00 0.80 0.10 0.00 2.80 0.80 0.70 2.40 0.70 - 1983 6 18.20 1.40 9.70 5.20 0.10 0.00 0.80 4.80 0.20 10.10 0.60 1.60 9.30 3.00 2.50 3.40 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.40 0.40 4.70 0.00 0.00 -99.99 - 1983 7 15.90 2.10 0.00 1.10 0.20 1.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.10 0.00 0.20 0.00 0.50 0.00 0.00 0.00 0.60 4.40 5.60 0.10 0.10 0.30 0.20 2.30 0.20 - 1983 8 0.90 0.80 6.77 0.00 0.10 0.10 0.00 0.00 0.00 0.00 0.20 0.00 0.00 0.10 2.79 0.10 7.36 0.10 0.00 1.59 1.29 4.38 9.45 0.00 0.00 0.20 0.00 0.00 0.00 0.00 3.58 - 1983 9 3.00 18.00 1.20 9.00 5.50 0.30 4.10 12.90 11.50 3.00 0.00 0.00 3.50 11.90 11.10 2.60 8.70 10.50 13.60 5.40 1.90 11.90 0.60 0.10 0.10 0.90 0.30 0.90 5.10 2.10 -99.99 - 1983 10 6.01 5.31 16.52 17.02 8.01 8.41 13.32 10.11 13.02 13.92 21.23 8.21 4.91 14.32 20.12 11.41 12.21 13.02 1.10 0.00 0.00 3.50 3.60 1.10 4.00 2.90 3.20 0.20 4.41 1.40 4.71 - 1983 11 1.92 2.12 0.30 0.10 0.30 0.61 0.51 0.30 0.00 0.20 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.71 2.43 0.00 0.00 1.52 0.51 6.16 7.38 6.97 3.84 1.62 0.00 0.71 -99.99 - 1983 12 0.70 0.90 1.80 6.60 0.20 0.10 6.60 6.10 0.30 0.00 5.70 14.81 19.91 1.40 0.00 3.30 8.40 0.70 2.10 5.10 0.30 6.80 7.80 14.31 6.20 10.91 14.11 2.50 4.30 10.61 15.61 - 1984 1 9.95 15.81 1.68 8.27 3.56 6.91 1.89 0.10 3.56 11.10 11.83 28.69 14.77 11.94 9.22 20.11 9.84 2.30 0.00 0.00 13.30 7.23 15.81 4.40 3.04 2.20 0.94 7.23 1.99 5.55 1.68 - 1984 2 14.62 7.51 12.92 20.43 14.62 11.82 13.42 0.30 0.70 1.60 0.90 0.00 0.60 0.10 0.00 4.21 1.40 0.20 0.30 2.90 5.41 0.80 3.61 1.40 0.50 0.00 0.00 1.20 0.90 -99.99 -99.99 - 1984 3 10.98 0.10 8.29 0.60 0.20 0.00 0.10 1.00 0.00 1.20 6.09 1.00 0.30 0.10 0.00 0.00 0.00 0.00 0.00 0.10 0.70 0.10 10.98 12.18 3.69 2.00 2.40 1.20 6.59 0.20 0.40 - 1984 4 0.00 0.00 0.00 0.30 0.00 0.40 0.00 0.00 1.00 7.30 1.90 0.60 0.40 1.60 1.50 0.10 10.10 12.40 1.90 4.20 1.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -99.99 - 1984 5 0.00 0.00 0.00 0.35 0.00 0.00 0.12 0.00 0.00 0.24 0.00 0.00 0.00 1.54 0.12 1.54 0.47 0.00 0.12 0.59 2.25 0.24 0.24 2.25 3.07 1.66 0.00 0.00 0.71 0.71 2.60 - 1984 6 7.81 0.00 6.81 2.20 5.01 0.70 0.00 0.00 0.00 0.00 1.10 4.11 2.30 0.10 0.00 2.91 0.10 0.10 0.60 1.50 11.82 0.50 2.80 3.01 0.80 1.90 0.10 0.00 0.00 0.00 -99.99 - 1984 7 0.10 0.00 0.00 0.00 0.00 1.10 0.00 0.00 0.30 2.81 3.51 0.50 0.70 0.70 0.00 0.60 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 16.14 4.41 0.20 4.81 1.20 - 1984 8 2.20 5.71 0.10 0.00 2.20 4.81 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.80 1.90 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.30 0.30 12.33 1.00 9.02 6.01 - 1984 9 24.93 6.11 3.81 0.10 0.00 0.00 0.10 9.71 1.80 1.80 0.70 4.81 12.92 0.50 1.00 3.30 0.20 3.91 3.00 9.41 7.51 6.21 1.50 0.10 0.00 6.01 13.52 5.21 12.12 6.11 -99.99 - 1984 10 1.20 3.40 11.29 0.20 0.70 1.30 6.39 2.10 1.00 5.60 0.40 12.19 5.89 1.40 0.00 3.60 23.58 18.68 12.49 6.29 26.68 2.50 4.40 35.27 2.40 1.40 6.09 12.59 12.69 5.79 1.70 - 1984 11 12.80 2.80 23.30 0.00 0.00 2.60 2.90 14.50 16.90 2.00 13.80 0.70 3.50 1.40 1.70 1.40 1.40 0.70 0.00 1.00 16.20 4.20 9.50 11.10 4.20 13.30 24.50 2.10 2.70 5.10 -99.99 - 1984 12 7.31 2.00 4.11 9.81 6.51 10.01 8.71 5.21 0.90 0.20 0.00 0.00 4.21 1.80 0.20 7.71 7.61 8.21 19.52 7.31 4.81 10.81 8.41 5.81 4.71 0.00 0.40 5.91 4.31 1.90 0.00 - 1985 1 0.20 0.00 0.00 0.50 0.00 0.10 0.20 0.40 0.00 0.00 0.00 0.00 0.60 0.60 0.50 4.79 2.80 0.00 0.20 1.50 16.27 0.80 0.50 1.30 0.10 0.10 8.19 3.59 0.30 11.58 6.19 - 1985 2 3.61 1.70 0.60 0.00 0.00 0.40 2.01 0.00 0.00 0.00 0.00 0.00 0.10 0.10 0.00 0.30 0.80 6.92 6.12 0.10 0.10 14.04 2.51 0.00 0.20 0.00 0.00 0.00 -99.99 -99.99 -99.99 - 1985 3 0.40 0.40 11.39 1.00 0.20 2.00 0.30 0.70 2.50 0.20 0.70 1.60 1.20 1.70 1.40 0.80 0.50 0.00 0.00 0.00 0.10 0.80 3.60 6.49 0.50 0.50 0.70 4.20 21.38 9.99 13.38 - 1985 4 14.44 5.97 5.28 7.37 3.48 1.59 1.49 1.00 0.40 8.66 2.09 6.67 4.08 1.79 3.98 1.49 0.00 1.99 0.40 0.10 0.10 0.00 0.00 0.30 0.40 1.79 0.10 9.66 1.39 2.89 -99.99 - 1985 5 0.30 0.00 0.00 0.00 2.20 0.90 0.00 0.10 0.60 0.30 0.00 0.00 0.00 7.20 2.70 0.20 0.90 5.50 0.10 0.00 0.00 0.00 15.10 4.50 11.60 0.90 1.50 0.60 0.00 0.00 0.00 - 1985 6 0.00 0.00 0.00 0.00 0.40 1.90 2.30 6.30 0.60 2.50 7.40 1.30 2.10 0.40 0.00 0.00 4.70 0.40 1.70 2.20 4.40 4.40 12.00 1.10 4.50 1.20 2.80 1.20 0.10 0.50 -99.99 - 1985 7 0.19 0.10 0.78 9.32 5.53 0.39 5.24 2.91 0.00 3.88 15.05 6.51 4.27 0.10 13.79 7.48 20.00 4.85 3.98 4.85 10.00 12.23 10.49 2.04 9.22 20.78 1.75 14.08 0.58 0.00 0.00 - 1985 8 22.50 8.20 6.80 0.80 0.20 1.20 2.90 6.70 2.30 2.10 12.30 6.30 4.80 24.20 23.30 4.20 2.60 7.10 6.20 11.80 10.40 1.90 23.40 6.60 0.70 14.00 17.90 1.60 3.10 3.70 17.00 - 1985 9 0.20 18.00 0.10 5.60 1.30 5.10 18.10 1.10 0.90 0.00 0.00 6.50 10.40 16.20 5.40 7.40 5.00 36.60 1.40 41.30 27.90 23.10 2.60 0.10 5.20 1.40 0.00 0.00 1.00 30.60 -99.99 - 1985 10 4.09 12.77 11.50 8.77 12.87 3.12 5.95 4.48 2.92 6.04 0.19 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.00 0.00 0.10 0.10 0.00 0.68 0.00 - 1985 11 1.30 1.00 1.20 16.94 2.61 11.33 5.71 11.33 6.72 0.70 0.10 0.00 2.31 7.42 10.33 1.70 0.00 0.00 0.10 0.30 0.40 0.20 0.10 0.30 0.00 0.00 1.80 1.80 0.00 32.18 -99.99 - 1985 12 8.69 10.39 4.30 1.80 3.90 10.49 17.48 3.30 0.40 2.90 2.50 11.79 0.30 3.00 2.50 4.70 8.19 6.89 14.98 31.27 4.20 4.20 3.80 0.40 1.70 0.00 0.10 0.30 0.80 12.09 12.19 - 1986 1 1.00 0.50 0.10 8.20 0.40 0.00 1.10 4.20 19.30 8.20 7.20 11.90 16.10 5.80 0.00 0.00 11.30 11.60 8.20 12.10 10.50 11.60 1.30 0.00 0.50 3.20 2.10 3.30 3.30 0.90 0.40 - 1986 2 0.18 0.54 0.54 0.00 1.61 1.52 0.27 0.00 0.00 0.00 0.00 0.00 0.00 0.27 0.09 0.45 0.00 0.09 0.09 1.34 2.96 0.18 0.00 0.00 0.00 0.00 0.18 0.00 -99.99 -99.99 -99.99 - 1986 3 0.00 0.00 11.63 14.56 5.98 1.41 0.11 2.93 3.69 0.54 5.22 0.11 6.52 4.35 5.87 3.48 4.24 5.65 13.15 10.76 15.76 18.58 6.09 2.72 1.96 7.71 3.15 3.15 5.54 1.85 1.41 - 1986 4 1.15 1.25 0.10 0.31 0.00 0.42 0.21 0.00 0.42 0.00 0.10 0.83 2.61 2.61 6.36 1.67 0.10 0.83 17.62 0.83 1.15 4.17 2.19 0.10 0.42 1.98 4.28 3.75 17.62 2.40 -99.99 - 1986 5 0.00 1.20 4.60 2.20 9.70 10.99 14.59 1.00 17.39 9.50 6.50 11.99 5.10 3.30 1.10 0.40 19.19 1.00 1.00 8.40 7.50 5.10 2.30 9.99 11.09 13.99 4.70 1.50 0.10 6.00 4.10 - 1986 6 0.70 1.90 0.60 0.80 0.00 0.00 0.10 16.40 5.00 12.30 0.00 11.10 0.50 0.00 0.00 7.60 8.30 0.00 0.00 0.00 0.00 0.80 0.40 1.50 0.00 0.00 0.00 0.00 0.00 0.00 -99.99 - 1986 7 0.31 0.62 3.59 1.64 0.62 0.31 2.97 0.00 0.31 0.10 0.00 0.00 0.51 3.59 1.23 1.74 0.72 0.92 4.00 0.41 0.82 0.10 0.00 5.44 1.13 6.87 7.90 17.23 0.51 19.49 0.82 - 1986 8 15.37 4.63 2.07 3.35 13.10 13.00 1.67 0.00 0.00 0.00 0.00 3.64 21.87 12.41 6.11 0.30 0.99 2.56 0.89 0.00 3.25 0.00 0.00 0.00 5.71 0.89 0.49 0.00 0.10 0.00 6.70 - 1986 9 0.20 17.20 0.00 0.90 6.20 0.10 0.00 0.00 0.00 0.00 0.60 0.00 0.10 0.10 0.00 0.20 0.10 0.00 0.50 1.30 6.60 0.50 0.00 0.00 1.50 1.70 4.20 3.10 0.20 0.60 -99.99 - 1986 10 3.86 0.00 0.29 0.87 1.55 4.83 0.19 6.18 0.68 0.58 0.00 0.00 0.77 0.77 0.10 0.00 3.38 10.14 13.42 15.16 12.65 12.26 2.32 20.95 0.77 23.27 6.95 9.85 15.16 6.86 0.39 - 1986 11 0.00 6.54 1.44 18.86 1.06 13.57 13.09 12.22 14.24 2.60 2.79 1.83 6.35 11.26 20.21 4.43 8.47 3.08 3.75 3.95 9.43 17.51 4.04 39.93 3.75 4.62 0.38 1.44 1.35 4.91 -99.99 - 1986 12 6.80 26.81 10.80 24.61 3.00 5.90 10.40 14.51 2.00 15.31 2.40 10.40 1.80 16.11 4.40 10.20 15.51 8.50 7.10 0.00 0.00 0.00 2.00 8.70 2.30 5.10 6.10 16.21 13.00 21.91 6.90 - 1987 1 12.88 0.00 11.78 7.89 2.90 0.00 0.00 0.00 0.00 0.30 0.50 4.39 1.40 0.70 0.30 0.00 0.80 9.59 16.38 1.30 0.80 0.00 0.00 0.00 0.10 0.10 0.40 0.00 0.00 0.00 0.00 - 1987 2 4.30 3.30 0.00 10.70 9.10 1.00 6.80 0.40 20.60 1.30 0.70 0.00 0.00 0.00 0.00 0.00 0.00 1.60 0.30 0.00 0.00 0.40 0.00 0.00 1.80 12.80 5.80 4.20 -99.99 -99.99 -99.99 - 1987 3 22.20 0.00 5.20 3.10 12.00 5.10 6.40 0.00 0.00 0.00 0.00 0.00 3.90 1.90 0.40 10.30 3.10 1.10 0.50 0.60 1.90 0.90 0.00 13.60 3.50 25.90 12.80 0.20 1.10 3.60 5.40 - 1987 4 5.26 0.10 0.31 0.10 4.23 0.72 5.57 4.13 3.20 13.83 0.10 5.16 0.21 0.10 0.10 0.00 0.10 2.27 9.39 1.45 0.00 0.52 0.00 0.00 0.00 0.10 0.00 0.00 0.21 6.81 -99.99 - 1987 5 7.92 1.10 0.00 0.00 0.00 0.00 0.00 0.00 0.20 6.32 4.81 1.10 6.02 1.60 0.00 5.52 1.81 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 22.37 1.60 4.31 - 1987 6 0.10 8.19 1.80 0.20 27.47 11.29 1.30 0.40 0.10 3.10 3.70 2.50 1.30 5.10 1.30 0.10 0.00 0.00 0.00 0.10 13.99 3.40 3.50 0.00 0.20 0.30 11.99 1.00 0.50 3.40 -99.99 - 1987 7 0.30 0.00 0.70 0.30 0.60 0.00 0.40 0.10 17.42 22.52 1.40 0.80 0.00 2.50 7.41 3.00 3.00 3.70 1.70 0.10 0.00 0.00 0.90 0.10 4.50 11.61 0.70 2.50 1.20 3.60 2.10 - 1987 8 0.19 0.48 1.16 0.10 0.19 0.77 0.10 0.10 0.00 0.29 5.50 17.95 2.22 1.25 26.92 12.26 3.96 0.00 8.49 22.87 0.00 0.77 1.16 0.00 1.93 0.97 1.16 3.86 0.29 0.00 11.97 - 1987 9 0.09 0.74 2.23 10.57 2.97 5.66 2.78 4.17 16.69 5.38 15.39 4.36 2.41 6.86 1.48 0.28 1.76 0.00 8.53 10.75 15.02 4.82 3.80 2.23 0.93 0.74 0.09 0.00 0.00 0.28 -99.99 - 1987 10 0.00 0.00 0.00 1.07 15.34 3.91 16.60 3.61 2.34 0.10 5.47 3.42 3.42 1.76 11.14 12.99 15.43 4.69 13.28 7.23 14.46 2.25 0.10 2.15 5.08 7.23 4.49 0.00 0.00 1.95 0.20 - 1987 11 0.28 0.00 0.00 0.00 0.00 0.00 1.86 3.35 4.65 9.49 10.42 13.30 0.74 10.42 10.98 4.74 3.07 11.16 4.84 1.12 3.16 1.02 0.65 0.37 0.19 0.37 0.09 2.33 1.40 0.00 -99.99 - 1987 12 0.00 0.00 0.00 0.00 0.00 0.28 0.00 0.00 0.00 0.00 0.09 0.00 0.00 0.00 4.38 4.29 5.13 4.29 20.61 10.63 3.08 0.09 0.75 4.20 15.01 5.03 23.03 16.32 4.38 12.96 8.86 - 1988 1 17.48 7.26 6.11 3.26 4.11 0.84 4.42 7.79 6.74 7.90 14.63 10.74 0.84 4.53 1.26 4.00 2.74 19.05 5.05 4.84 6.21 4.32 15.90 2.74 6.32 0.21 0.00 3.79 1.89 10.95 17.69 - 1988 2 19.32 16.68 4.37 0.71 2.95 2.03 14.44 10.48 17.49 2.95 2.54 5.80 5.59 8.44 14.75 0.61 2.03 0.61 1.22 0.71 0.51 0.61 0.00 0.10 0.81 0.81 0.10 0.10 0.00 -99.99 -99.99 - 1988 3 0.00 7.24 0.00 0.00 2.35 0.61 0.92 1.53 2.35 2.65 5.92 5.10 0.10 7.45 25.71 0.10 0.00 26.02 0.20 1.94 0.41 11.22 10.41 10.10 11.84 0.82 12.04 5.61 6.94 2.55 3.47 - 1988 4 4.94 0.20 0.00 0.00 0.00 0.00 2.17 2.07 1.78 3.75 1.68 0.49 0.00 4.05 11.07 5.34 10.08 22.53 0.30 4.74 0.59 0.20 0.00 0.20 1.38 0.30 0.00 0.00 0.00 4.94 -99.99 - 1988 5 3.73 2.07 6.22 0.83 0.31 0.00 0.62 1.45 0.00 0.00 0.62 1.24 0.31 0.00 0.00 0.00 0.31 0.83 0.21 0.10 0.00 0.00 10.88 7.87 0.00 5.08 0.00 0.10 12.95 1.04 1.04 - 1988 6 1.31 4.85 3.34 0.20 0.30 9.50 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.00 0.20 0.00 0.10 0.30 1.21 1.31 0.00 0.00 0.20 3.03 0.00 0.00 0.00 0.20 2.22 -99.99 - 1988 7 3.95 5.82 0.83 2.91 3.12 4.15 6.75 4.57 24.30 5.82 2.80 11.32 4.36 0.83 1.45 13.09 1.14 4.47 0.52 4.78 8.62 12.77 11.11 10.39 11.11 5.19 4.67 11.53 6.75 3.12 1.87 - 1988 8 0.95 1.69 0.53 0.63 4.97 1.06 0.00 7.93 1.06 6.35 18.30 4.34 23.70 5.40 0.21 0.00 21.79 9.42 10.16 0.53 0.00 0.63 4.02 7.62 2.01 11.00 1.38 9.10 6.03 9.10 7.19 - 1988 9 13.81 12.25 2.49 17.44 0.00 19.21 5.50 1.56 1.14 1.87 10.07 0.93 0.21 0.00 0.00 0.00 0.21 0.93 0.10 0.42 3.53 19.93 9.55 0.52 15.47 3.84 6.96 3.53 0.52 0.21 -99.99 - 1988 10 9.67 6.56 6.45 7.42 11.61 22.25 4.19 9.24 4.19 0.00 1.83 3.01 1.40 0.00 0.00 0.00 0.00 25.36 13.65 5.16 4.41 2.04 7.95 7.20 27.51 0.54 1.07 0.11 0.00 0.00 0.00 - 1988 11 0.00 0.00 0.00 3.76 0.00 0.42 0.10 14.43 12.13 5.33 0.84 4.50 1.57 0.10 0.00 1.88 6.06 0.10 9.83 0.10 0.31 0.10 1.67 1.36 0.00 0.00 11.40 0.21 20.39 2.20 -99.99 - 1988 12 0.00 0.73 24.23 6.06 3.45 0.31 2.82 6.27 5.33 1.36 0.00 0.31 0.10 0.21 1.88 0.63 3.55 19.42 3.55 3.03 6.16 9.71 5.01 4.70 15.35 8.77 2.09 0.42 0.10 0.84 0.21 - 1989 1 0.30 0.10 7.96 8.36 13.70 0.91 2.02 11.89 2.22 5.04 24.08 4.84 15.42 4.63 0.60 2.42 1.31 0.00 0.30 11.59 2.32 6.05 0.71 3.73 5.84 5.64 17.13 0.20 0.30 0.30 0.00 - 1989 2 2.19 11.85 14.48 15.36 2.63 9.76 2.52 0.22 6.69 3.29 18.32 8.23 9.00 16.02 2.30 1.43 6.69 11.41 6.69 9.10 5.81 5.70 2.63 8.78 1.21 2.19 5.05 5.05 -99.99 -99.99 -99.99 - 1989 3 0.50 3.23 1.41 2.42 3.13 4.13 0.20 13.91 20.77 0.91 1.31 11.80 6.75 6.55 1.31 0.10 7.86 11.90 13.61 7.26 13.31 9.48 17.14 8.57 5.44 1.92 6.55 0.50 14.42 0.40 0.40 - 1989 4 0.60 0.90 0.40 2.31 4.31 6.92 3.81 1.60 5.72 3.81 13.44 1.30 9.93 1.70 0.20 0.40 0.00 0.00 0.10 0.10 3.41 0.50 0.20 0.30 0.60 2.01 0.10 1.60 0.30 5.31 -99.99 - 1989 5 0.70 4.39 0.50 0.00 0.00 0.00 0.00 0.30 0.30 3.49 8.28 0.30 0.00 0.10 5.39 0.40 2.69 3.09 0.10 0.00 0.00 0.00 0.40 5.69 0.00 0.00 0.00 0.00 0.10 0.40 2.49 - 1989 6 0.30 1.41 0.00 0.40 2.21 1.81 0.70 0.10 0.70 1.71 1.61 20.83 5.23 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.00 1.11 18.62 0.91 4.63 6.54 0.91 10.06 -99.99 - 1989 7 0.20 0.00 0.00 0.00 0.00 0.40 0.00 0.00 1.89 2.28 0.70 0.30 0.00 0.00 0.00 0.00 0.00 0.00 0.60 0.20 0.30 0.10 0.00 0.00 12.61 4.47 9.73 8.54 1.79 0.20 0.20 - 1989 8 0.88 0.88 1.07 1.46 6.54 1.07 2.83 9.18 5.08 17.67 2.25 17.47 7.61 17.18 4.39 7.03 8.20 1.76 18.94 13.86 1.76 0.49 7.71 7.22 5.76 2.73 0.00 3.42 3.32 14.25 0.98 - 1989 9 1.82 0.00 0.61 0.30 0.30 0.81 1.72 0.00 0.00 0.00 0.00 1.42 4.45 0.61 12.84 0.20 5.97 6.17 10.82 19.61 4.45 6.88 0.00 0.00 1.42 1.92 0.00 0.00 0.00 0.00 -99.99 - 1989 10 0.00 0.00 0.00 8.74 5.43 2.51 1.11 0.20 0.70 1.11 2.21 4.72 8.54 1.00 11.36 4.42 10.45 3.12 10.15 10.15 2.11 1.11 5.23 15.48 9.35 3.72 18.09 4.12 5.93 8.74 4.32 - 1989 11 6.16 5.55 8.18 5.65 0.30 3.03 2.93 1.11 5.15 7.57 0.91 3.84 0.10 0.00 0.00 0.00 1.11 0.71 0.00 0.00 0.00 0.00 0.40 0.91 0.00 0.00 0.00 0.00 0.00 0.00 -99.99 - 1989 12 0.00 0.00 0.00 0.00 0.10 0.00 0.00 0.00 0.10 0.00 0.00 0.00 0.00 0.10 2.91 43.29 5.11 0.10 1.40 4.71 4.61 6.31 10.02 13.53 1.80 0.00 0.00 0.00 0.00 0.00 3.51 - 1990 1 3.20 5.90 6.40 3.90 5.50 4.50 5.40 3.30 17.50 2.30 3.20 1.80 4.80 17.90 10.00 18.40 13.20 9.90 7.20 1.10 8.50 15.90 10.50 14.30 19.50 10.90 0.20 6.40 8.30 10.40 7.50 - 1990 2 10.64 8.15 8.55 7.95 9.54 16.80 6.76 5.87 2.49 11.63 18.29 5.07 12.03 5.77 0.99 10.34 12.53 9.35 4.67 3.78 1.69 0.20 18.39 24.46 22.07 8.05 5.47 7.06 -99.99 -99.99 -99.99 - 1990 3 2.50 1.00 6.41 5.31 19.22 14.02 8.51 19.12 20.52 10.11 1.90 3.80 5.41 11.51 3.60 1.20 0.70 6.21 1.50 7.81 7.41 3.10 5.61 5.01 0.10 0.00 0.70 1.10 0.10 0.00 0.00 - 1990 4 12.61 2.20 0.30 0.70 2.40 0.90 0.00 1.40 5.41 1.90 1.00 8.01 2.30 7.71 7.11 7.91 5.71 9.01 2.40 0.10 0.00 0.00 0.00 0.00 4.81 0.10 3.10 0.70 0.00 0.00 -99.99 - 1990 5 0.00 0.00 0.00 0.00 0.80 3.90 4.60 4.90 5.40 2.30 0.00 0.00 0.00 6.90 9.00 12.00 0.00 0.00 0.00 0.20 0.30 1.10 0.10 0.20 0.00 0.00 0.00 1.00 1.60 0.00 8.20 - 1990 6 3.71 1.30 4.21 4.21 5.31 24.74 6.61 2.40 0.70 0.90 0.00 0.00 0.00 0.00 0.00 0.10 1.00 6.01 0.80 7.21 3.31 1.90 0.60 8.41 0.20 17.03 1.40 1.90 5.31 11.82 -99.99 - 1990 7 1.20 0.80 5.79 14.38 0.00 8.39 10.09 6.49 1.80 2.30 0.10 2.80 0.00 0.30 5.99 0.00 0.00 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 5.69 0.90 3.59 0.40 0.00 - 1990 8 0.00 0.00 0.49 1.86 0.10 2.35 0.59 10.79 3.83 2.94 7.26 3.83 1.67 12.95 24.91 1.28 0.00 1.28 2.75 0.10 3.14 0.69 4.12 1.57 2.94 2.94 3.04 6.67 5.98 5.39 1.96 - 1990 9 3.91 5.11 1.40 1.30 8.22 9.82 0.40 0.20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 3.51 15.63 16.73 1.60 8.02 3.91 0.40 1.40 1.90 0.00 0.00 0.30 10.12 4.91 0.30 -99.99 - 1990 10 7.70 33.01 8.80 11.60 31.21 17.31 0.20 2.20 8.00 7.80 7.20 0.50 1.70 5.40 15.91 3.20 16.91 0.10 0.10 0.10 0.00 0.00 0.10 2.60 4.70 2.70 11.00 13.81 15.31 10.10 0.70 - 1990 11 0.30 0.10 0.00 0.00 0.00 0.10 0.10 0.00 1.30 1.60 3.20 5.91 2.10 4.51 7.91 6.01 7.71 6.01 2.10 0.70 0.00 1.40 10.52 1.00 2.90 0.00 0.00 0.00 0.00 0.10 -99.99 - 1990 12 0.00 0.85 0.11 0.11 0.21 13.42 3.06 5.92 0.63 1.27 5.60 0.00 0.00 0.00 0.11 0.21 0.00 0.85 12.68 2.11 12.57 26.73 6.02 19.12 20.71 16.90 5.49 16.06 4.75 2.32 3.70 - 1991 1 31.13 6.12 8.16 16.74 14.49 8.05 9.55 5.15 10.09 5.69 4.51 0.00 0.21 0.00 0.00 0.75 0.97 8.48 5.37 3.54 0.32 1.29 1.61 0.00 0.11 0.64 0.00 2.15 3.65 0.32 0.11 - 1991 2 0.10 0.00 2.45 0.00 0.00 0.41 0.92 1.33 1.53 0.10 4.29 0.00 0.00 10.94 0.00 0.00 0.20 0.00 6.85 2.56 12.17 18.61 15.74 0.92 2.35 3.88 5.73 0.41 -99.99 -99.99 -99.99 - 1991 3 0.10 4.34 1.09 14.31 0.49 0.69 1.28 6.71 2.27 0.49 1.18 3.95 2.86 1.38 7.60 7.89 1.97 41.24 4.74 7.40 0.30 0.89 0.00 0.00 0.00 0.00 0.00 0.00 0.30 1.58 10.06 - 1991 4 27.48 3.33 8.29 6.26 3.13 13.44 5.46 0.71 20.71 6.37 12.23 16.07 0.00 0.00 0.00 0.00 0.61 0.30 0.40 2.22 0.51 0.30 1.21 1.01 0.00 0.00 0.00 1.52 4.65 0.00 -99.99 - 1991 5 0.00 0.30 1.70 0.00 0.10 1.70 0.00 0.30 0.00 1.00 0.60 6.80 2.00 0.00 0.00 0.30 0.10 1.70 1.60 1.10 0.60 0.10 0.80 0.00 0.40 0.10 0.00 0.00 0.00 0.00 0.00 - 1991 6 11.28 2.26 0.69 0.00 0.00 0.00 0.00 11.38 11.08 0.88 9.22 12.65 5.20 0.59 4.32 0.78 1.27 1.77 0.98 0.98 3.43 2.94 1.86 5.20 3.04 0.39 2.35 0.10 9.42 2.84 -99.99 - 1991 7 9.35 0.00 0.00 0.00 0.00 0.00 6.64 13.68 0.30 0.40 7.84 8.55 1.91 6.74 9.35 1.21 3.32 2.41 1.51 1.11 0.10 5.53 3.62 0.91 0.10 0.30 1.31 1.41 0.00 0.00 2.01 - 1991 8 0.90 0.50 1.11 5.73 2.41 0.70 0.20 20.30 1.61 0.80 2.01 0.50 0.80 0.80 1.11 6.23 1.31 5.02 0.20 0.10 3.01 2.71 2.21 0.10 0.00 0.00 0.20 0.00 0.00 0.00 0.00 - 1991 9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.04 5.11 4.07 8.55 4.17 3.65 2.40 4.69 0.63 25.65 12.72 22.10 8.34 0.31 0.00 0.73 0.21 1.67 11.68 -99.99 - 1991 10 6.07 10.34 5.27 15.72 3.98 10.94 11.34 0.10 0.30 0.10 0.00 0.10 0.00 0.10 19.30 10.74 2.79 0.00 0.50 1.19 0.10 0.10 0.10 0.10 0.60 0.30 0.00 0.10 16.81 14.92 17.90 - 1991 11 17.70 19.59 5.06 0.53 3.27 19.80 18.22 3.48 1.79 27.07 4.95 32.97 2.21 0.00 0.42 1.69 8.43 4.21 1.16 4.53 4.32 2.32 2.21 8.95 2.84 1.58 8.32 5.16 1.16 1.26 -99.99 - 1991 12 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.31 1.64 1.13 1.43 2.25 5.63 16.17 21.18 10.64 15.66 25.18 33.36 2.15 0.31 6.55 0.41 0.92 0.72 0.61 2.56 17.40 - 1992 1 14.36 29.87 11.75 1.25 2.89 10.69 50.58 8.57 0.10 0.48 0.10 0.19 0.10 0.00 0.39 0.00 0.00 0.58 1.45 0.10 0.00 0.00 0.00 5.30 0.39 0.00 0.00 0.00 0.00 0.00 0.67 - 1992 2 0.90 10.52 12.62 2.60 0.20 0.10 5.21 5.61 7.51 2.30 0.20 9.72 6.91 9.62 3.71 1.30 10.02 0.00 0.20 3.21 19.13 19.73 7.81 2.60 4.51 6.91 2.70 2.70 14.22 -99.99 -99.99 - 1992 3 4.56 5.72 4.45 6.04 5.51 20.14 4.77 7.74 21.31 6.15 17.91 12.83 3.18 2.23 1.59 0.85 9.54 6.78 6.25 5.72 7.21 3.39 1.17 2.12 2.54 0.32 0.11 6.15 6.68 5.19 14.95 - 1992 4 1.81 0.00 0.00 3.62 5.13 0.30 0.30 0.00 0.60 1.11 2.71 3.32 5.13 5.93 0.30 2.61 8.95 0.40 0.40 3.32 0.20 3.22 9.75 7.44 11.26 8.55 4.63 3.72 8.35 6.23 -99.99 - 1992 5 1.39 0.60 0.70 4.97 5.77 6.56 6.26 5.96 2.09 2.78 16.40 2.09 0.00 0.20 0.00 0.00 0.00 0.00 0.40 7.65 1.09 0.00 0.00 0.00 0.40 0.00 0.00 1.19 0.00 0.20 0.70 - 1992 6 4.83 0.60 0.00 0.20 0.10 0.00 0.00 5.63 5.43 0.00 0.00 0.00 3.22 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.00 0.00 2.92 1.31 0.70 1.01 0.10 4.52 5.63 -99.99 - 1992 7 0.00 10.03 7.72 0.00 0.10 0.30 1.20 0.00 0.00 4.41 5.62 1.81 1.00 0.10 3.51 4.71 9.03 1.60 2.81 3.11 1.10 1.40 16.85 1.20 4.71 12.84 1.20 0.00 0.10 0.00 8.72 - 1992 8 1.10 20.28 6.59 17.48 1.70 0.00 0.00 10.59 7.99 5.40 15.39 15.69 0.30 3.10 10.49 11.59 1.20 1.50 0.20 1.20 2.40 22.68 4.40 9.19 5.69 11.29 7.79 1.30 12.29 13.59 3.40 - 1992 9 8.30 4.40 1.30 0.80 8.40 25.61 8.30 8.90 4.30 6.50 11.31 8.20 8.20 11.71 1.40 0.70 0.50 0.30 5.00 8.70 3.20 0.30 2.20 14.81 0.20 8.00 1.50 0.10 14.91 1.10 -99.99 - 1992 10 1.77 16.06 0.73 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.61 3.44 0.00 0.00 1.56 0.10 0.10 0.10 3.44 5.63 6.57 5.42 1.04 13.76 12.41 7.19 0.00 1.77 26.17 - 1992 11 28.72 9.16 6.01 4.48 0.19 8.87 0.10 14.03 10.02 8.30 8.11 1.62 0.00 5.34 3.63 1.24 3.24 8.78 4.48 3.63 13.17 11.45 4.96 7.63 5.15 10.02 18.32 1.24 4.48 10.11 -99.99 - 1992 12 24.16 8.15 7.76 4.67 4.37 14.02 0.89 2.09 0.10 6.76 3.48 4.08 2.19 0.40 5.07 0.80 23.56 2.78 0.80 0.10 1.09 0.00 0.60 0.30 3.38 0.10 0.00 0.00 0.00 0.10 0.00 - 1993 1 6.75 1.01 16.52 10.47 2.42 0.30 11.08 20.85 9.77 13.09 15.00 6.45 9.26 19.84 15.81 8.46 8.36 14.50 16.92 7.55 9.97 8.76 29.20 6.75 1.71 1.11 9.06 1.81 1.01 2.11 0.00 - 1993 2 1.93 0.32 0.54 0.11 3.54 1.39 0.11 0.21 0.00 0.43 0.00 0.00 0.43 5.04 1.39 0.21 0.75 5.14 0.21 1.50 0.43 0.32 1.18 6.96 5.68 0.75 0.11 0.32 -99.99 -99.99 -99.99 - 1993 3 0.30 0.41 0.61 1.01 0.10 0.10 0.20 0.00 0.20 5.27 1.22 6.49 0.91 1.62 5.27 19.68 13.29 2.43 0.91 6.70 0.51 9.23 3.75 0.41 0.00 1.72 3.35 2.84 27.29 2.74 1.12 - 1993 4 0.39 0.10 14.70 11.15 16.67 1.48 1.18 16.48 11.44 0.10 0.20 0.99 1.38 0.00 4.24 4.54 11.05 17.36 7.60 10.16 2.66 4.74 3.06 0.10 5.43 0.00 0.00 0.00 0.00 0.20 -99.99 - 1993 5 0.29 0.59 0.00 0.00 0.00 0.20 9.02 0.10 0.00 0.59 0.00 0.59 18.14 14.22 4.41 20.00 15.29 0.39 1.86 3.43 0.10 0.10 0.10 0.00 0.00 0.00 0.00 1.57 7.65 11.27 0.29 - 1993 6 12.97 2.05 0.20 0.98 0.00 0.00 0.39 0.00 6.83 7.71 3.22 0.00 5.56 0.10 0.88 2.34 7.80 3.71 2.54 0.59 0.98 0.00 0.10 0.00 12.09 0.20 0.00 0.00 0.00 0.10 -99.99 - 1993 7 0.41 7.67 3.38 0.92 1.33 1.13 4.81 9.10 2.05 0.92 0.82 0.20 1.94 6.34 14.22 6.14 0.31 1.74 3.07 0.41 0.92 6.85 2.86 3.48 4.60 1.43 2.76 9.10 2.15 4.60 1.84 - 1993 8 5.18 13.87 2.93 4.59 0.59 6.35 2.15 5.37 1.56 8.30 3.52 0.39 0.78 5.27 0.78 0.20 0.59 1.37 0.10 0.29 0.49 0.29 0.68 0.10 0.00 0.00 0.00 0.39 0.39 0.00 0.00 - 1993 9 0.00 0.00 0.00 0.00 0.00 0.00 0.19 16.17 2.01 13.01 1.34 0.10 1.53 1.44 0.38 0.10 0.48 3.92 14.16 2.39 1.34 1.91 4.69 1.82 0.19 0.19 0.00 0.57 2.39 2.77 -99.99 - 1993 10 7.18 1.97 7.87 0.30 13.47 4.92 6.20 2.75 9.24 0.10 0.20 0.10 0.00 0.59 0.49 0.39 0.00 0.79 7.67 1.08 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.10 0.00 0.10 0.00 - 1993 11 0.00 0.10 7.92 0.20 0.30 6.04 7.62 14.36 6.54 0.89 5.54 8.22 2.77 0.00 10.40 0.69 0.00 0.00 0.00 0.30 0.10 0.00 0.00 0.89 5.45 0.10 0.00 0.10 14.95 7.23 -99.99 - 1993 12 13.34 15.15 24.78 6.32 2.91 15.95 11.34 22.47 8.43 8.53 2.31 15.75 1.40 18.26 10.33 1.71 8.13 22.88 2.31 2.11 8.23 4.82 5.12 1.20 0.70 0.90 6.92 14.65 7.42 3.81 2.21 - 1994 1 8.71 1.39 11.39 4.06 13.37 2.08 0.69 3.27 5.35 0.20 11.29 8.02 15.25 3.86 0.20 0.00 4.55 11.98 7.03 6.44 4.16 14.45 2.48 14.06 9.21 17.42 3.17 4.75 7.43 1.98 20.20 - 1994 2 12.10 0.10 5.70 6.40 6.40 4.00 1.80 8.00 0.50 3.20 0.00 0.00 0.10 0.00 1.00 0.00 0.20 0.70 0.00 0.00 0.10 1.20 2.50 1.20 9.20 11.20 13.60 2.20 -99.99 -99.99 -99.99 - 1994 3 4.09 9.77 6.08 15.46 7.88 9.77 16.15 9.87 5.38 5.68 5.48 16.25 14.96 4.09 8.87 5.78 3.49 2.19 1.50 0.30 13.36 19.54 12.16 3.59 0.40 0.90 10.87 6.98 3.69 11.07 6.08 - 1994 4 5.38 5.48 18.63 8.97 4.48 9.57 6.18 8.97 2.99 0.10 2.59 0.20 0.00 0.00 0.00 0.20 0.20 1.69 0.50 0.00 6.28 5.08 4.58 2.29 6.38 0.90 2.79 5.18 2.09 0.10 -99.99 - 1994 5 1.01 0.71 8.48 6.87 8.48 2.73 0.50 0.40 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.00 0.00 0.20 0.00 0.50 0.61 - 1994 6 0.20 7.51 5.14 1.38 1.88 3.46 1.68 3.46 1.68 0.00 0.00 0.00 0.00 0.30 4.45 4.55 10.77 11.76 2.87 9.98 3.16 0.99 6.72 8.00 0.49 5.24 1.48 2.67 0.30 0.00 -99.99 - 1994 7 0.00 0.00 1.37 10.80 0.39 6.87 0.79 0.00 11.78 6.28 5.99 2.75 0.00 2.55 0.00 0.00 0.00 0.00 0.00 1.37 1.47 0.00 1.37 8.74 9.32 1.96 0.10 0.00 0.39 0.98 15.12 - 1994 8 0.88 7.35 11.17 2.06 0.10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.88 7.35 0.39 3.72 1.18 0.78 0.00 19.20 7.93 6.46 3.62 5.97 12.34 12.14 0.69 0.29 0.10 - 1994 9 0.00 0.40 11.39 1.68 2.28 2.08 4.76 5.85 10.20 8.42 4.36 4.06 1.19 0.00 0.10 0.00 0.00 3.17 3.86 0.30 0.00 0.10 0.00 0.20 0.69 1.39 0.69 1.98 0.89 4.46 -99.99 - 1994 10 7.34 6.12 0.41 2.14 1.43 4.08 0.71 0.10 0.20 0.00 0.00 0.00 0.00 0.00 0.51 0.00 0.00 0.00 7.44 4.99 4.49 12.74 2.65 9.68 4.69 3.57 2.55 2.14 7.65 9.58 4.79 - 1994 11 0.50 6.62 10.03 2.11 1.81 0.90 0.30 7.93 5.42 2.81 4.52 16.76 19.67 23.28 7.53 8.33 15.25 21.67 5.92 3.41 1.61 4.72 1.00 0.60 3.11 1.30 0.20 0.10 0.20 0.10 -99.99 - 1994 12 1.38 4.43 5.02 5.61 12.41 10.54 16.45 5.52 10.93 55.36 37.33 2.96 0.20 0.30 3.94 2.27 8.77 10.05 6.80 0.00 0.30 1.58 7.19 2.66 10.05 7.49 10.24 14.97 9.85 4.83 0.49 - 1995 1 0.71 0.91 2.22 9.60 3.64 6.36 5.76 16.77 9.60 6.36 0.30 0.81 1.31 3.54 13.74 14.55 14.85 3.94 8.38 3.54 18.89 8.89 3.33 2.32 1.52 0.81 11.01 2.83 0.51 25.15 7.98 - 1995 2 1.89 14.33 7.46 2.49 8.06 4.18 0.00 0.00 1.29 4.68 14.93 5.17 9.55 11.34 4.98 8.46 3.68 15.23 9.25 5.08 17.02 12.04 1.19 3.48 1.39 6.77 9.95 19.30 -99.99 -99.99 -99.99 - 1995 3 7.76 2.39 1.19 13.92 2.19 7.66 2.59 1.79 9.74 9.15 0.60 0.80 2.68 7.06 8.55 15.41 7.46 7.66 2.29 0.00 0.00 0.00 5.97 13.03 7.06 6.56 3.28 1.89 4.77 3.58 1.59 - 1995 4 0.20 1.21 3.12 15.09 3.92 0.80 0.30 0.00 2.01 0.00 1.01 0.00 0.00 0.00 0.00 1.81 5.13 0.60 1.01 0.80 0.80 5.33 3.32 2.11 0.00 0.00 0.00 0.00 0.50 0.20 -99.99 - 1995 5 1.92 1.01 0.00 0.00 0.00 1.11 0.61 0.61 2.63 0.00 2.63 2.42 1.11 0.20 0.20 0.81 1.31 3.54 1.92 0.10 1.72 1.41 0.10 13.74 2.63 4.55 12.22 4.44 4.75 0.91 1.31 - 1995 6 1.34 4.40 2.39 0.29 1.15 0.86 0.67 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 5.84 1.34 4.59 15.12 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -99.99 - 1995 7 0.00 0.76 0.47 0.38 6.82 2.37 0.00 2.18 0.00 1.04 15.81 0.00 1.33 11.17 3.41 4.17 3.31 0.57 9.37 12.69 0.76 4.35 2.08 0.47 0.00 1.99 0.00 3.22 0.00 0.00 1.89 - 1995 8 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.20 2.89 0.60 0.00 0.00 0.00 0.00 1.50 0.00 0.00 0.50 1.00 2.89 8.27 6.28 2.49 0.60 2.19 0.50 0.10 0.00 - 1995 9 7.86 12.44 2.09 8.76 2.09 1.29 7.96 0.60 0.20 0.60 1.19 5.17 1.29 0.00 0.00 0.00 0.60 0.00 0.00 0.30 1.29 1.19 20.59 3.58 10.35 9.15 2.79 1.69 0.00 13.73 -99.99 - 1995 10 8.50 18.78 6.03 12.46 17.80 8.70 6.53 0.69 2.27 0.49 9.69 20.56 0.79 3.06 1.68 22.74 2.37 2.37 6.62 0.00 25.31 23.53 0.99 20.17 25.11 21.75 2.77 0.49 2.47 2.08 1.98 - 1995 11 0.00 0.00 0.00 0.00 0.00 1.99 1.78 1.26 4.81 0.42 12.35 0.10 0.00 1.99 14.33 0.10 0.00 0.42 0.00 5.02 3.24 3.14 15.90 13.08 6.91 0.52 0.31 0.10 0.31 0.10 -99.99 - 1995 12 0.43 4.46 3.30 0.11 0.85 1.49 0.53 0.00 0.00 0.00 0.00 0.00 0.21 0.21 0.85 0.11 0.11 0.53 0.00 0.00 11.37 8.72 3.83 2.02 0.00 0.00 0.00 0.00 0.00 0.11 8.08 - 1996 1 7.08 1.18 11.78 15.52 6.61 8.93 3.80 14.16 5.03 0.20 9.68 11.37 9.39 5.20 0.52 0.67 0.63 3.61 1.29 0.08 0.30 0.02 0.00 0.00 0.09 4.41 3.97 0.00 0.00 0.00 0.00 - 1996 2 0.00 0.00 0.00 9.11 23.54 6.50 4.55 9.45 12.80 7.50 26.60 1.04 0.02 0.00 2.84 4.23 18.26 1.27 1.00 1.22 4.10 0.82 5.92 11.13 0.34 0.29 0.00 0.00 0.00 -99.99 -99.99 - 1996 3 0.00 0.00 0.00 0.00 0.00 0.15 0.00 2.79 1.15 0.39 27.23 17.71 0.06 0.03 7.79 15.02 0.14 0.02 0.00 0.11 0.46 0.39 0.00 0.00 0.04 0.00 1.38 0.02 0.00 0.00 0.03 - 1996 4 0.23 0.57 0.00 0.06 0.00 0.00 0.41 1.00 3.19 4.48 2.88 3.33 5.59 4.55 8.18 15.47 15.86 7.39 2.32 5.17 11.13 5.49 2.14 3.52 3.31 3.98 0.02 1.90 5.33 13.38 -99.99 - 1996 5 1.65 0.00 0.11 0.29 2.57 2.16 0.07 0.00 0.00 0.49 0.48 0.32 0.00 0.00 0.00 0.00 0.33 1.25 6.09 2.96 8.85 8.61 3.01 1.50 0.67 6.82 0.06 10.56 3.19 6.17 0.00 - 1996 6 3.90 0.52 8.20 5.46 2.05 0.00 0.00 1.87 10.35 4.90 11.37 0.31 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.73 0.06 8.28 1.56 0.52 2.89 -99.99 - 1996 7 3.11 14.44 7.48 3.23 0.16 0.43 0.16 1.52 0.06 0.41 1.62 0.06 1.44 0.00 0.00 0.00 0.00 0.00 0.00 0.06 9.75 13.86 1.46 0.06 3.53 0.27 0.00 11.60 0.21 0.66 2.27 - 1996 8 1.31 0.00 0.00 0.00 4.43 4.84 0.00 4.55 6.96 1.15 0.06 0.00 0.00 0.00 1.02 0.26 0.06 0.00 1.64 12.51 6.47 10.59 0.06 2.72 5.89 5.73 1.10 0.00 0.25 0.09 0.00 - 1996 9 3.86 0.06 0.00 0.00 0.03 0.06 0.00 0.06 0.00 0.07 0.06 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.49 0.00 1.09 4.68 1.12 8.06 5.03 27.99 3.46 1.65 -99.99 - 1996 10 1.01 1.99 19.88 2.61 1.84 0.28 1.10 0.53 3.06 0.39 44.62 8.67 0.79 20.25 19.66 8.15 5.17 9.16 1.64 3.86 1.71 0.07 1.65 19.34 11.24 20.38 22.02 15.93 0.58 12.58 2.97 - 1996 11 8.39 13.64 14.64 6.23 25.79 9.70 0.45 5.39 0.97 0.22 5.83 0.07 3.85 0.21 2.02 4.46 0.67 0.06 2.39 0.52 5.63 0.71 1.31 23.42 0.44 0.28 1.45 20.36 9.16 2.81 -99.99 - 1996 12 14.34 5.98 21.39 0.39 0.12 0.00 8.88 1.38 0.46 0.00 0.02 0.43 0.57 1.21 1.75 1.27 8.49 24.83 1.06 0.00 0.00 0.00 0.00 0.02 0.31 5.03 0.32 0.10 0.44 1.47 0.77 - 1997 1 0.79 1.00 0.17 0.11 0.00 0.07 0.00 0.04 0.00 2.39 8.61 1.26 1.14 0.41 0.13 1.21 6.02 2.19 0.21 0.06 0.00 0.06 1.98 2.78 0.54 0.12 0.03 0.11 0.00 0.00 0.17 - 1997 2 4.73 0.74 30.13 0.41 3.50 3.91 0.45 16.62 18.39 11.64 10.16 10.58 1.75 0.99 5.91 15.44 28.82 14.05 19.47 18.46 0.30 13.70 13.15 4.07 1.48 7.01 19.09 6.43 -99.99 -99.99 -99.99 - 1997 3 12.41 1.61 0.06 0.34 3.15 3.86 7.82 0.06 0.02 0.00 0.48 1.57 5.79 3.36 3.13 2.12 3.89 5.91 0.86 0.06 0.00 14.93 4.80 0.51 6.45 5.04 10.62 0.65 0.00 0.00 0.12 - 1997 4 0.00 2.89 1.18 6.72 0.82 1.09 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.23 0.00 0.29 0.50 0.03 22.07 0.45 0.18 0.74 8.26 3.69 0.00 0.00 -99.99 - 1997 5 0.06 0.00 13.86 19.95 3.44 1.16 3.88 0.34 0.06 14.75 7.90 8.36 2.90 0.00 0.00 6.58 0.65 3.15 7.38 2.72 0.00 0.00 0.00 0.00 0.15 0.00 0.06 0.00 0.00 0.00 0.00 - 1997 6 0.06 0.00 0.00 0.00 4.36 2.97 3.04 0.55 2.90 7.01 9.27 4.93 8.57 0.35 0.06 0.00 2.30 9.54 9.30 6.44 2.76 0.65 0.00 5.28 2.22 1.96 1.56 1.31 0.00 5.93 -99.99 - 1997 7 4.75 4.21 4.02 0.00 0.14 1.93 1.01 0.00 0.00 1.25 1.44 3.44 1.64 2.21 3.17 0.00 0.00 0.00 0.00 10.59 0.00 0.34 8.57 5.09 0.85 10.20 6.62 0.71 8.96 7.62 4.36 - 1997 8 0.72 0.00 0.00 0.00 0.00 0.00 0.00 1.98 0.15 0.09 0.75 0.00 3.16 0.24 0.06 1.17 0.15 0.00 1.32 1.84 3.24 0.00 4.01 0.42 2.15 1.79 7.42 3.58 2.32 0.04 10.18 - 1997 9 1.21 32.20 15.59 4.77 0.23 3.19 0.51 0.00 0.00 0.00 4.21 4.20 4.91 10.88 19.96 24.73 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 5.46 0.13 1.14 -99.99 - 1997 10 0.00 0.00 0.03 0.69 2.65 7.04 0.48 3.93 18.96 1.66 0.00 0.31 0.22 9.29 12.41 20.72 3.42 0.13 0.09 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.24 1.37 0.16 - 1997 11 0.71 2.37 0.00 0.66 12.79 1.08 3.35 5.04 5.84 6.23 8.28 5.75 0.87 3.94 4.80 7.76 24.61 5.85 6.96 18.47 3.56 3.50 11.48 4.74 1.77 0.83 0.43 3.57 0.76 0.00 -99.99 - 1997 12 0.10 0.04 0.21 0.58 18.33 3.91 9.38 10.28 18.16 20.28 3.33 2.15 0.18 0.12 0.95 0.00 0.58 13.86 4.58 0.34 0.20 4.71 9.94 21.20 17.48 2.50 8.09 0.48 4.36 15.98 1.12 - 1998 1 18.73 13.84 8.47 8.31 0.25 10.25 2.77 15.62 2.57 0.53 1.73 0.72 17.40 6.90 1.67 4.56 6.87 2.33 0.17 4.82 1.36 7.63 0.62 0.08 0.00 0.06 0.00 0.00 0.06 0.17 1.32 - 1998 2 0.33 0.47 2.84 1.39 0.43 10.29 2.19 5.58 10.28 19.47 22.01 0.30 1.85 8.01 4.40 0.31 0.07 0.49 1.91 6.05 3.22 4.29 0.40 0.00 0.82 3.90 7.21 4.47 -99.99 -99.99 -99.99 - 1998 3 8.15 13.38 1.78 1.71 2.86 20.85 2.07 0.03 1.48 18.39 0.29 1.28 0.00 0.00 0.09 0.75 0.37 0.07 0.00 0.00 0.00 0.00 6.78 0.16 15.94 5.33 0.76 0.09 16.37 0.40 0.00 - 1998 4 1.36 12.62 4.76 4.25 1.10 5.53 9.16 13.35 0.50 0.16 0.25 0.11 0.40 0.17 0.10 0.57 0.00 0.00 4.51 0.59 11.73 10.38 0.06 4.77 7.66 4.57 1.79 0.99 2.56 0.00 -99.99 - 1998 5 0.00 0.00 0.06 3.32 4.91 13.54 5.99 0.23 0.06 0.00 2.04 0.00 0.00 0.76 0.00 0.06 0.00 0.00 0.00 0.27 0.05 0.06 0.00 0.13 0.15 0.34 1.96 8.19 12.87 5.08 3.71 - 1998 6 0.24 3.85 0.13 0.00 2.59 6.08 1.75 20.59 8.35 14.99 0.75 0.00 1.37 0.82 6.24 0.83 0.00 2.64 0.00 0.04 0.92 7.07 20.38 3.27 5.12 12.65 2.81 0.08 1.70 0.00 -99.99 - 1998 7 0.00 0.00 0.00 0.72 0.00 0.00 0.56 8.27 0.10 9.82 8.76 18.66 0.08 1.25 0.44 9.82 5.65 3.01 31.78 4.08 9.67 10.83 0.59 0.34 4.08 7.11 1.58 5.23 2.51 1.73 4.39 - 1998 8 0.00 17.98 3.83 1.84 7.32 3.14 15.16 1.34 0.00 0.10 6.27 1.04 6.44 7.36 1.79 21.66 0.28 0.00 4.46 15.85 1.20 0.63 4.22 0.00 2.51 0.00 0.09 0.00 0.06 0.00 10.38 - 1998 9 15.86 2.55 0.00 0.00 0.00 1.77 15.47 15.64 12.93 1.68 6.24 1.82 0.00 0.18 0.85 0.00 8.69 0.14 0.00 0.06 0.06 0.12 0.00 0.06 0.00 0.00 4.41 0.03 0.07 3.61 -99.99 - 1998 10 0.05 0.05 0.02 0.94 0.61 0.26 0.06 1.35 14.43 2.73 3.75 9.22 6.34 9.23 16.03 20.73 2.54 3.19 1.38 51.27 8.02 32.73 12.92 20.89 5.00 23.83 14.42 14.59 5.33 1.62 0.35 - 1998 11 1.22 29.48 0.55 2.61 4.68 1.07 7.29 15.07 6.85 3.42 7.74 8.43 0.82 0.24 0.00 0.00 1.44 1.19 2.15 4.85 21.23 3.29 15.23 0.77 16.64 3.93 24.69 2.45 0.76 1.21 -99.99 - 1998 12 1.23 0.80 0.19 0.54 0.00 0.39 10.52 3.31 2.01 8.81 11.86 5.58 18.06 6.46 1.22 0.54 9.96 4.55 0.06 0.00 1.87 8.88 0.82 13.95 4.05 20.18 3.63 0.55 5.42 1.22 2.30 - 1999 1 16.86 10.72 12.49 11.43 21.82 1.30 6.80 0.20 0.06 0.06 13.42 0.93 7.70 14.13 16.22 0.80 3.33 21.44 3.87 2.92 0.82 9.67 8.55 28.93 4.52 1.04 6.63 2.70 1.09 0.26 0.04 - 1999 2 0.00 0.95 7.02 3.09 0.46 0.66 0.00 0.00 0.00 0.09 0.04 0.83 3.42 0.98 2.19 2.79 6.44 10.71 2.68 9.08 6.73 0.00 0.56 0.39 1.20 1.22 13.29 10.68 -99.99 -99.99 -99.99 - 1999 3 4.42 11.10 1.70 0.20 0.08 0.23 0.03 0.20 0.42 0.00 3.38 1.37 0.18 1.77 4.21 0.27 2.46 0.54 0.43 14.68 0.53 8.39 3.70 1.05 0.16 0.08 0.00 43.57 0.97 0.27 0.61 - 1999 4 0.00 1.10 2.96 3.72 12.67 5.08 1.64 0.34 2.92 1.48 20.96 4.63 1.59 2.59 3.76 0.00 4.25 2.63 1.56 20.23 16.46 5.31 0.24 0.04 0.00 0.00 0.00 0.00 0.00 0.00 -99.99 - 1999 5 0.00 0.00 0.00 0.00 1.34 0.28 11.20 5.74 13.17 11.71 10.90 3.51 3.91 0.08 0.28 0.00 0.00 0.00 0.00 3.60 5.58 4.76 5.40 1.32 6.83 1.99 6.44 5.10 0.03 0.00 0.00 - 1999 6 0.08 18.02 2.64 3.04 2.53 0.87 2.86 0.03 0.00 0.00 0.17 4.24 2.56 0.48 1.53 2.90 0.00 1.75 27.95 0.75 0.11 0.04 0.00 0.00 0.00 16.49 0.56 5.03 1.21 0.48 -99.99 - 1999 7 2.37 7.28 5.11 0.17 0.14 0.99 2.70 0.08 2.69 3.27 0.00 0.49 4.30 0.37 12.83 4.74 0.98 7.32 14.18 4.51 1.77 0.00 0.24 0.12 0.08 0.08 0.00 0.00 0.08 0.00 0.00 - 1999 8 4.48 2.22 0.60 0.00 9.83 2.12 0.61 0.18 0.00 0.00 0.00 6.09 5.08 4.65 3.83 3.88 4.57 0.21 0.00 0.00 0.08 0.00 0.00 0.64 8.40 5.04 0.06 0.00 5.95 1.98 0.37 - 1999 9 0.35 0.10 1.34 0.63 3.54 17.99 2.78 11.42 0.00 2.26 11.38 2.08 2.52 0.00 6.47 11.72 5.64 4.08 23.49 11.34 1.67 6.03 11.57 3.86 0.31 0.95 3.76 12.20 3.29 6.77 -99.99 - 1999 10 6.63 0.96 0.38 0.08 0.00 4.09 2.97 3.58 1.03 6.32 1.09 0.03 0.37 0.12 0.00 1.46 0.00 0.37 0.37 0.15 15.59 5.29 8.72 3.53 0.00 0.22 6.09 0.37 1.60 6.02 15.18 - 1999 11 12.07 3.29 0.50 35.99 10.41 0.44 4.19 0.00 0.00 0.00 0.00 0.00 0.00 0.49 3.44 1.26 0.52 0.00 0.13 0.00 1.32 0.80 6.01 5.38 7.23 7.55 34.78 27.81 6.93 8.67 -99.99 - 1999 12 7.15 30.51 13.58 0.74 18.93 8.79 11.20 24.91 6.36 7.42 11.01 8.34 3.42 6.16 0.81 17.19 0.26 0.96 0.00 18.18 11.06 12.20 20.98 21.22 1.75 4.75 1.38 1.30 12.23 3.17 4.04 - 2000 1 0.36 8.37 1.28 11.18 8.94 7.31 9.36 2.41 0.14 5.99 15.19 1.51 0.06 0.00 0.08 0.00 0.00 0.00 2.02 0.00 0.33 0.00 0.15 0.00 0.15 0.27 5.01 16.61 3.75 12.60 23.70 - 2000 2 3.04 2.68 6.16 1.96 3.55 5.19 13.39 6.31 13.23 2.48 8.66 4.29 4.39 3.59 12.57 4.13 8.07 2.16 0.08 8.32 0.00 2.25 6.38 4.08 0.14 29.82 6.67 5.12 1.48 -99.99 -99.99 - 2000 3 8.72 19.75 0.49 0.19 3.62 7.41 5.97 16.85 2.23 0.93 0.08 1.20 2.12 0.31 0.43 0.08 0.00 0.48 0.06 0.08 0.65 0.00 23.08 2.80 1.04 0.25 0.00 0.00 0.64 0.49 3.20 - 2000 4 1.44 1.87 0.57 0.00 0.00 0.00 1.18 0.00 0.00 4.02 5.87 3.94 0.45 0.00 0.06 0.53 5.62 0.13 8.75 4.70 0.00 1.21 2.36 5.72 9.77 19.67 0.00 0.00 0.38 0.00 -99.99 - 2000 5 0.00 0.08 0.00 0.00 0.00 0.00 0.00 0.00 1.38 0.00 0.00 0.00 0.00 0.00 2.44 20.05 2.00 1.62 1.36 2.70 0.00 5.06 2.77 4.17 2.94 3.91 0.75 1.12 0.17 0.14 6.45 - 2000 6 3.62 3.19 6.31 0.14 3.05 2.37 7.31 0.75 9.13 5.77 1.49 5.75 0.00 0.00 0.00 0.00 0.00 0.00 0.36 12.83 5.45 5.66 0.90 1.61 0.00 0.00 0.00 0.17 0.00 0.00 -99.99 - 2000 7 0.00 0.06 0.00 0.00 9.91 0.17 0.41 8.03 9.56 0.12 0.00 0.85 0.33 0.08 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.10 0.00 0.38 3.05 2.45 3.88 14.15 - 2000 8 4.86 4.72 0.08 0.00 1.00 0.34 0.81 8.79 8.01 0.08 0.26 11.03 18.67 2.90 2.62 5.53 0.60 1.61 1.60 0.00 4.21 0.00 0.00 0.00 7.75 4.61 1.13 0.52 0.06 8.54 21.58 - 2000 9 3.47 0.06 0.00 15.35 10.69 7.64 1.58 2.09 3.55 28.52 2.58 0.08 3.63 2.81 2.09 0.62 11.93 1.96 32.22 2.14 10.67 2.54 1.48 16.99 1.46 8.57 20.43 9.91 5.66 0.56 -99.99 - 2000 10 4.46 8.19 7.66 13.15 0.20 5.15 6.56 2.35 24.03 6.56 1.27 0.29 3.32 0.00 3.92 2.26 20.22 3.26 2.80 4.94 0.08 9.77 11.63 46.13 4.66 11.57 0.86 14.72 4.09 0.67 8.47 - 2000 11 6.20 0.00 4.15 11.25 4.32 12.97 1.90 0.06 0.14 6.52 23.40 3.45 0.13 1.20 12.82 5.30 1.23 5.38 0.80 0.06 2.94 5.86 0.06 4.46 26.14 5.00 7.21 19.97 3.71 12.08 -99.99 - 2000 12 18.26 0.61 18.45 18.63 10.87 3.97 24.36 20.86 6.57 8.69 9.47 24.06 0.89 0.08 0.41 0.58 4.71 0.00 11.67 6.39 0.00 0.00 0.52 0.55 0.00 0.49 1.29 0.80 0.57 1.71 22.41 - 2001 1 7.20 1.62 6.76 0.44 2.65 7.70 2.02 0.22 0.13 0.40 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.04 7.89 3.03 14.61 14.84 1.99 4.07 3.69 1.90 2.74 2.80 4.56 0.35 - 2001 2 5.89 6.21 0.85 11.75 17.31 10.97 0.00 0.11 1.64 18.40 0.36 0.00 0.05 1.17 0.00 0.05 0.17 1.69 0.11 1.72 0.11 0.78 0.13 0.70 8.23 6.91 5.12 0.00 -99.99 -99.99 -99.99 - 2001 3 0.00 0.06 0.48 0.02 0.15 9.26 0.59 5.89 1.55 1.99 8.34 0.11 0.05 0.48 0.05 0.04 0.11 0.17 0.00 0.00 0.17 1.92 0.78 0.14 0.08 2.10 16.76 0.99 0.42 11.38 1.34 - 2001 4 1.58 1.66 1.43 0.88 7.40 11.94 0.68 1.20 5.74 0.18 0.00 0.00 0.56 1.10 0.14 0.20 2.46 0.05 0.09 0.00 9.01 11.72 0.40 2.75 2.13 0.21 7.53 5.90 3.17 0.09 -99.99 - 2001 5 0.00 0.63 0.13 0.00 0.00 0.00 0.06 0.00 0.00 0.00 0.00 0.00 1.08 1.96 12.32 1.83 1.97 0.21 0.09 0.00 0.00 0.00 0.00 0.00 3.94 0.50 0.42 1.92 5.74 3.93 0.80 - 2001 6 4.34 0.04 0.00 0.00 2.11 5.41 1.75 4.51 7.49 0.43 0.11 0.00 0.00 4.22 2.11 0.00 0.00 4.22 13.41 0.17 0.06 0.00 0.17 0.11 0.04 11.79 3.59 6.04 7.55 1.04 -99.99 - 2001 7 0.25 1.91 10.49 0.00 0.32 3.79 0.49 0.67 4.70 14.38 4.25 5.81 1.98 3.06 0.05 0.00 0.05 0.00 0.05 5.50 2.06 0.40 5.10 4.15 0.37 1.10 0.11 0.05 0.09 8.34 0.05 - 2001 8 7.84 3.41 0.17 2.92 0.30 1.34 5.51 3.09 1.73 3.05 7.45 6.98 10.60 10.97 5.56 6.32 0.00 4.86 12.39 2.06 4.50 0.00 0.05 0.45 3.14 0.12 0.00 0.06 7.41 3.20 0.00 - 2001 9 5.97 2.88 1.21 2.66 0.09 4.04 1.47 0.11 0.30 0.04 1.80 14.28 0.56 4.14 3.20 0.97 0.09 0.04 0.27 1.66 0.00 0.05 0.35 0.31 1.58 0.78 6.82 8.06 5.55 16.74 -99.99 - 2001 10 7.45 4.90 7.55 8.72 9.57 9.98 18.88 10.30 4.39 0.45 3.89 2.57 0.20 10.40 5.62 1.01 13.01 1.95 12.53 9.88 11.76 3.86 7.34 1.29 4.80 6.65 1.80 1.42 2.47 6.23 0.60 - 2001 11 0.00 1.16 1.97 2.68 10.56 2.68 7.70 0.83 1.97 0.91 10.99 0.59 1.35 0.41 0.63 0.99 2.77 4.27 1.77 6.23 10.02 0.61 1.49 5.51 3.49 10.56 7.85 12.88 10.37 9.61 -99.99 - 2001 12 4.82 0.53 18.52 18.25 6.28 11.17 1.28 0.05 0.00 0.00 0.00 0.16 0.04 0.00 0.09 0.17 0.09 0.60 0.57 1.42 1.62 2.51 4.20 2.82 0.22 4.20 7.67 0.26 1.80 0.23 1.26 - 2002 1 0.00 0.00 0.00 6.57 0.44 0.18 0.19 0.12 0.00 0.64 4.67 3.69 1.35 6.18 0.00 11.71 2.50 11.78 10.52 4.24 6.22 17.67 11.76 0.76 25.76 6.95 5.67 8.00 14.73 3.11 29.81 - 2002 2 17.23 7.29 6.27 16.19 6.92 10.78 5.18 13.71 5.49 22.62 1.30 2.44 0.00 0.08 0.00 0.28 1.20 9.88 23.82 1.99 14.12 9.66 5.90 9.24 16.77 14.96 16.55 0.61 -99.99 -99.99 -99.99 - 2002 3 0.24 0.83 0.16 0.00 12.93 2.74 0.06 6.81 22.30 4.79 0.27 0.08 0.00 1.44 12.13 4.70 2.60 0.08 2.23 9.75 5.12 0.40 0.00 3.80 0.39 0.00 0.00 0.08 0.00 2.52 5.13 - 2002 4 7.30 2.01 3.34 0.00 0.00 0.00 0.00 0.00 0.08 0.00 1.96 0.00 1.76 0.00 0.00 0.91 0.00 0.41 0.13 14.57 10.41 0.28 0.06 1.96 12.26 2.09 3.36 8.41 2.40 10.67 -99.99 - 2002 5 2.73 1.74 0.77 0.00 0.00 0.00 4.83 0.00 1.30 0.00 0.00 0.86 10.23 1.00 0.67 0.00 3.01 8.08 13.50 6.38 11.43 6.52 18.25 15.82 2.87 6.36 0.00 0.00 7.74 8.59 0.08 - 2002 6 6.45 7.12 3.57 1.50 0.28 0.00 0.85 7.03 17.09 12.81 6.26 15.17 12.40 9.62 7.96 11.96 0.08 1.66 0.14 2.50 5.37 2.61 0.32 1.61 0.82 1.63 0.00 0.33 2.16 15.87 -99.99 - 2002 7 3.88 3.29 0.48 3.56 1.77 1.93 4.88 0.65 4.60 1.60 4.00 3.20 0.00 1.00 0.76 0.00 0.00 3.96 4.51 5.62 1.34 6.54 0.87 1.38 0.08 0.06 0.20 8.27 10.66 11.31 1.70 - 2002 8 0.06 19.82 0.00 0.08 0.00 4.73 0.54 0.42 0.14 1.75 5.53 5.15 8.41 6.64 0.08 0.00 5.36 8.33 0.04 0.08 0.00 0.18 1.10 0.60 0.00 0.08 0.00 2.02 12.01 16.68 0.00 - 2002 9 0.00 0.00 0.00 0.79 6.04 5.54 17.38 4.39 20.32 0.76 0.08 0.00 0.00 0.16 0.06 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 1.11 1.29 0.00 0.00 0.31 1.66 -99.99 - 2002 10 0.00 6.76 0.81 3.70 0.62 0.08 4.37 0.85 0.00 2.05 33.88 3.28 2.31 0.69 0.05 0.18 0.37 0.20 0.86 19.03 49.35 8.09 3.21 26.97 7.05 27.31 3.32 6.13 1.54 0.07 4.25 - 2002 11 13.96 17.90 1.60 3.18 19.92 5.09 9.05 6.15 11.05 0.96 7.68 6.97 7.63 10.23 2.56 0.00 1.74 1.16 6.15 5.66 9.76 2.40 7.56 2.52 7.44 12.31 22.30 7.74 2.87 14.91 -99.99 - 2002 12 11.90 1.30 9.31 0.70 0.06 0.43 0.06 0.00 0.00 0.00 0.00 0.00 1.80 0.17 2.90 0.31 0.06 0.13 0.00 0.00 14.66 11.92 17.85 5.29 2.28 6.71 2.93 0.00 6.12 0.06 6.83 - 2003 1 10.32 5.31 0.22 0.00 0.08 0.00 0.00 1.13 0.00 0.00 0.70 6.29 2.25 6.25 1.89 11.06 1.20 17.95 7.45 17.29 1.67 0.96 1.42 18.39 4.42 0.83 11.67 3.39 0.04 0.00 6.59 - 2003 2 8.00 10.02 8.07 0.67 0.24 4.37 0.08 9.21 0.39 12.57 0.00 0.43 0.33 0.06 0.07 0.00 0.00 0.00 0.00 0.00 0.08 1.72 0.92 0.00 0.22 0.92 2.83 16.74 -99.99 -99.99 -99.99 - 2003 3 12.62 2.53 7.83 7.70 1.07 2.79 15.18 15.97 6.11 2.15 2.90 0.06 0.00 0.00 0.00 0.14 0.12 0.06 0.00 0.00 0.08 0.08 0.08 0.04 0.00 0.38 0.08 0.00 0.00 0.14 11.25 - 2003 4 2.23 0.24 2.84 0.12 0.00 0.00 0.06 0.00 0.00 0.00 0.00 0.00 2.33 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.26 0.09 0.00 1.42 12.25 1.81 9.48 7.51 6.40 1.56 -99.99 - 2003 5 2.87 5.85 16.61 17.97 2.40 1.75 4.54 0.29 2.89 1.55 3.70 4.22 0.44 0.07 4.40 13.80 5.48 6.60 2.22 3.12 9.82 2.50 4.82 2.75 0.06 0.06 0.52 3.74 0.34 0.00 0.06 - 2003 6 4.44 0.00 0.73 0.21 4.38 0.32 1.22 3.73 10.65 2.94 2.18 0.64 0.10 0.00 0.00 0.00 4.28 2.92 2.29 0.00 0.12 0.82 0.13 0.00 0.00 4.62 9.20 0.38 0.07 6.55 -99.99 - 2003 7 1.73 0.00 0.00 0.00 0.00 1.77 1.59 0.09 2.04 6.92 0.08 0.00 0.81 0.00 0.00 0.00 0.00 0.00 0.00 13.76 3.72 1.65 5.34 8.82 0.51 0.43 2.40 13.55 15.93 2.46 7.49 - 2003 8 0.36 0.00 0.00 0.11 0.66 0.00 0.00 0.00 1.46 0.18 0.06 0.81 0.09 0.00 0.00 0.00 7.57 0.54 0.15 5.71 8.19 0.13 0.00 0.00 0.00 0.00 0.00 0.96 0.00 0.00 0.00 - 2003 9 0.00 0.00 0.00 0.00 2.32 3.59 16.03 3.91 4.41 2.57 4.55 0.89 0.48 1.18 0.24 0.07 0.55 8.54 1.42 2.00 17.56 1.30 0.48 0.00 5.18 0.25 1.04 6.67 2.82 0.51 -99.99 - 2003 10 0.07 0.39 0.39 1.93 7.97 8.71 1.04 2.29 9.90 0.39 2.25 0.07 0.17 0.00 0.00 0.00 0.07 0.16 0.00 2.78 2.11 0.39 0.27 0.32 1.50 0.06 0.31 6.82 5.57 0.83 1.17 - 2003 11 18.79 5.22 3.52 1.83 1.06 0.00 0.00 0.19 0.15 2.22 13.83 4.60 16.26 9.87 1.87 2.24 3.12 6.14 4.83 0.43 0.74 1.59 0.27 4.80 10.26 15.51 2.26 24.56 32.81 2.88 -99.99 - 2003 12 1.49 0.72 0.04 0.32 0.26 0.00 0.00 1.06 1.21 8.92 1.80 11.65 8.91 0.73 0.31 0.88 0.00 0.40 19.03 14.13 0.46 7.22 2.87 7.40 10.48 11.23 3.11 0.71 0.04 0.05 31.23 - 2004 1 0.74 9.50 0.24 6.78 2.87 2.23 9.82 17.15 3.63 5.28 8.32 15.17 6.54 7.27 6.74 0.10 0.21 7.11 7.71 2.10 4.45 0.74 10.29 2.98 0.78 0.11 6.48 2.51 4.17 12.05 27.59 - 2004 2 14.80 17.98 1.77 6.66 2.34 6.50 9.60 0.00 1.54 0.03 0.04 1.62 0.34 0.06 0.17 2.42 0.00 0.16 0.14 0.05 0.00 0.04 2.97 0.32 0.66 0.86 0.06 0.00 0.12 -99.99 -99.99 - 2004 3 0.05 8.49 6.82 3.81 0.33 0.45 0.15 0.11 0.03 0.34 0.62 2.72 7.90 8.36 6.53 3.26 0.71 21.96 12.21 15.37 7.66 3.28 0.30 1.17 0.34 0.65 0.81 0.50 0.00 0.00 0.33 - 2004 4 2.98 7.00 3.91 6.63 3.12 1.22 0.10 2.30 0.08 0.36 0.51 0.64 8.11 8.85 4.28 0.00 20.60 5.77 8.09 7.54 2.52 3.79 0.80 0.14 0.10 0.67 0.10 0.44 0.17 0.00 -99.99 - 2004 5 0.19 1.38 18.94 3.38 5.93 0.64 0.25 2.26 0.15 2.98 0.00 0.10 0.46 0.06 0.00 0.13 0.06 1.40 0.00 0.65 1.45 0.00 0.07 0.13 0.07 0.00 0.87 4.46 1.64 0.00 1.87 - 2004 6 0.93 16.62 1.74 1.22 1.85 0.37 0.00 2.20 2.34 11.15 0.52 0.32 0.57 0.27 0.17 5.80 0.79 0.81 0.79 1.17 0.91 11.04 12.03 1.11 1.62 15.82 4.89 4.96 13.28 2.23 -99.99 - 2004 7 4.28 10.20 1.52 1.56 2.71 0.18 0.11 0.00 0.75 0.58 0.35 0.06 6.65 0.20 1.07 5.95 2.03 0.44 0.98 6.58 1.91 1.13 3.77 12.24 0.19 0.15 1.40 0.30 2.56 0.00 0.91 - 2004 8 0.00 3.57 14.97 1.90 5.16 0.18 0.07 38.07 13.53 23.43 3.59 11.83 0.09 0.89 15.29 4.95 3.18 9.54 5.95 0.78 0.00 4.27 1.14 1.03 0.07 17.55 0.12 3.61 4.90 0.52 0.00 - 2004 9 2.10 0.83 2.79 1.68 0.10 0.00 0.00 0.00 0.00 15.11 3.44 13.58 17.81 2.71 6.14 12.38 10.28 2.31 18.35 8.82 2.17 4.64 0.16 2.82 0.93 2.15 1.55 1.27 0.00 1.71 -99.99 - 2004 10 10.83 3.62 32.07 2.94 13.72 7.16 0.11 0.10 0.00 0.00 0.00 2.84 3.46 2.54 6.69 1.76 2.35 6.08 8.61 26.40 3.94 3.61 10.31 9.34 6.88 3.29 5.62 3.12 2.38 0.00 0.00 - 2004 11 0.00 3.32 6.14 3.86 12.96 3.28 2.00 2.80 3.84 0.25 2.97 0.48 0.55 1.44 6.75 7.90 0.62 0.12 1.01 5.14 15.26 3.94 1.07 0.80 6.50 0.41 6.71 0.05 1.13 3.82 -99.99 - 2004 12 0.23 3.36 1.66 1.12 1.09 1.21 0.81 0.65 1.70 1.14 0.58 0.00 7.20 7.01 95.15 8.77 8.18 0.07 1.39 4.11 17.83 2.04 6.80 10.48 3.25 0.41 13.14 7.02 3.37 10.27 1.53 - 2005 1 12.88 4.28 6.28 1.97 5.02 10.13 41.49 13.45 12.38 1.33 6.56 4.71 0.99 2.95 3.91 6.36 8.99 4.17 6.60 5.04 0.85 0.06 0.50 0.26 0.50 0.06 0.00 0.10 0.33 1.14 0.36 - 2005 2 1.18 1.06 0.88 11.78 0.30 0.06 3.27 8.31 7.19 0.29 28.05 6.56 1.20 0.00 0.07 1.24 1.18 1.29 0.16 0.86 2.36 0.64 0.65 1.65 0.24 0.09 0.36 6.24 -99.99 -99.99 -99.99 - 2005 3 0.19 0.19 2.65 0.22 0.84 0.38 0.05 0.08 1.39 1.43 1.79 0.05 0.14 22.02 7.40 5.65 7.43 1.41 0.04 1.78 14.81 1.63 6.29 1.99 0.08 0.06 7.38 0.90 0.00 0.00 6.36 - 2005 4 1.55 0.06 0.73 2.09 13.63 5.02 0.05 2.11 3.79 0.00 1.82 0.30 9.56 3.49 5.65 1.68 30.24 20.48 0.25 0.00 0.12 0.00 0.00 0.00 3.56 2.98 16.17 3.86 0.12 1.36 -99.99 - 2005 5 6.98 8.42 1.28 1.01 3.44 3.34 1.71 0.68 0.08 0.07 0.00 0.00 0.00 0.00 0.00 0.63 1.20 27.99 5.63 4.63 5.30 7.33 6.01 6.33 19.66 1.55 7.36 2.41 0.00 0.07 11.97 - 2005 6 19.31 8.38 4.75 4.56 0.22 0.00 0.00 0.00 0.13 0.00 0.08 0.87 3.30 11.25 4.36 6.04 0.23 2.79 0.07 4.07 3.82 0.12 0.55 4.36 0.07 0.07 0.12 1.18 7.20 4.04 -99.99 - 2005 7 0.09 2.66 3.59 0.05 3.45 0.19 0.66 1.23 0.10 0.09 0.00 0.29 0.22 5.94 0.10 5.29 2.60 3.07 1.64 0.38 0.00 0.00 0.00 0.00 0.00 0.00 0.00 5.32 0.29 0.00 0.00 - 2005 8 0.00 3.62 3.40 1.46 0.51 0.36 0.00 0.00 2.03 0.12 4.62 11.61 3.07 0.65 0.93 2.91 28.22 0.92 0.15 0.56 6.97 3.11 19.83 5.02 5.66 5.37 1.05 17.40 0.06 0.21 21.53 - 2005 9 0.00 0.07 0.05 0.41 0.07 0.52 6.39 4.69 2.12 0.00 0.00 6.12 4.55 3.99 0.92 0.74 3.91 1.77 10.89 0.25 1.43 7.92 2.29 9.52 1.98 16.68 3.18 5.94 15.21 6.05 -99.99 - 2005 10 0.69 0.14 0.06 0.00 0.00 0.39 12.54 1.05 4.99 21.65 20.29 1.75 0.10 0.05 0.00 0.25 0.00 11.44 8.83 3.99 2.12 10.30 20.93 15.63 4.75 8.34 0.22 4.88 11.24 4.53 7.37 - 2005 11 4.78 11.24 7.90 4.36 6.12 2.29 11.08 3.97 7.06 5.32 6.81 1.60 1.02 3.16 2.18 0.00 0.10 0.00 0.10 0.16 0.12 0.09 2.00 4.55 2.12 0.76 0.13 1.28 3.49 4.86 -99.99 - 2005 12 22.50 4.75 1.61 5.53 5.30 0.39 15.49 2.34 5.82 0.44 0.31 0.00 0.28 0.56 2.35 0.16 0.10 4.64 0.31 1.35 4.09 4.15 0.21 0.04 0.21 0.06 0.13 0.50 31.29 6.36 6.50 - 2006 1 0.42 5.22 0.08 0.18 0.10 0.13 0.10 0.04 9.81 12.17 1.63 5.52 7.03 1.85 8.16 7.96 3.04 14.86 7.05 5.71 0.05 0.01 0.04 0.00 0.07 0.25 0.24 0.21 0.14 0.16 0.02 - 2006 2 0.00 0.08 0.07 0.00 0.02 0.25 7.72 0.22 0.02 0.66 9.19 2.70 10.43 16.08 1.86 4.42 0.27 0.43 1.36 0.56 0.87 0.72 2.81 0.42 0.36 0.17 2.04 0.07 -99.99 -99.99 -99.99 - 2006 3 0.08 0.41 2.80 1.09 1.07 4.96 10.57 1.53 5.76 5.47 21.77 13.03 16.49 3.11 0.04 0.42 0.00 0.10 0.32 0.15 0.04 0.00 0.00 8.77 17.17 23.03 7.99 2.79 10.92 8.34 6.35 - 2006 4 3.76 3.15 0.69 0.11 3.64 1.84 7.44 0.88 2.27 10.45 2.19 2.61 3.66 0.12 0.95 3.41 0.61 0.94 1.86 1.17 0.00 4.84 0.00 7.09 0.90 0.08 0.02 0.00 0.00 15.65 -99.99 - 2006 5 1.51 7.40 1.07 13.31 0.00 3.79 1.73 0.00 0.03 0.00 0.06 0.08 0.14 9.34 6.65 5.32 12.94 5.55 3.56 3.56 11.04 1.42 5.61 1.92 7.67 2.59 2.24 4.88 0.21 0.00 0.30 - 2006 6 0.00 0.00 0.09 0.03 0.00 0.09 0.00 0.03 0.00 0.26 8.35 0.18 0.00 0.00 0.41 0.95 3.56 13.12 0.02 18.11 10.75 0.24 0.09 0.34 0.10 0.08 0.05 1.22 4.97 4.40 -99.99 - 2006 7 0.19 7.54 0.16 0.47 0.23 1.41 1.54 19.31 0.70 4.44 0.16 1.01 0.03 0.00 0.00 0.00 0.00 0.00 2.12 1.80 0.26 1.90 0.37 0.09 0.05 0.03 2.93 0.93 8.53 4.85 8.09 - 2006 8 1.75 1.97 1.22 3.35 2.11 1.18 0.03 2.81 1.13 0.03 0.00 0.00 0.03 0.16 1.85 0.29 6.68 19.78 2.84 12.41 0.47 3.27 0.20 0.03 4.69 4.27 7.10 3.75 0.58 11.90 5.66 - 2006 9 4.28 20.76 1.24 10.31 15.09 0.44 0.08 0.07 0.03 0.00 12.24 2.01 2.84 14.42 0.13 1.49 1.29 16.38 12.25 23.89 0.17 0.95 5.01 9.30 4.28 4.32 9.56 3.37 6.93 11.54 -99.99 - 2006 10 3.38 8.36 2.03 3.20 6.41 4.70 4.82 7.64 0.55 4.73 10.34 0.12 0.09 0.14 0.11 2.30 7.47 0.86 8.15 3.00 9.69 3.85 4.38 3.48 33.56 6.90 6.17 1.35 7.38 7.48 0.23 - 2006 11 0.09 0.10 0.49 0.01 0.00 1.01 9.42 2.69 0.29 19.94 6.21 7.67 5.50 5.38 37.73 10.96 13.64 8.29 23.02 10.68 2.09 12.37 13.44 12.30 7.48 4.06 7.39 1.14 0.24 24.15 -99.99 - 2006 12 3.09 17.51 11.21 11.25 4.15 12.09 4.58 3.02 10.46 22.97 10.01 18.58 26.64 11.77 3.43 4.42 2.87 0.15 0.11 0.08 0.18 0.33 0.00 0.02 0.63 0.23 6.38 2.99 11.64 1.43 19.60 - 2007 1 17.64 7.91 10.16 3.71 2.22 9.77 19.78 15.92 4.82 17.18 15.16 4.63 12.34 1.08 3.49 6.70 19.69 8.91 13.59 6.41 2.19 0.18 1.51 0.16 0.47 0.23 0.83 0.44 0.17 0.92 1.05 - 2007 2 0.56 0.06 0.32 0.40 0.08 0.18 0.06 0.90 2.03 11.00 6.48 1.38 4.68 0.23 7.62 0.24 0.07 0.65 7.89 5.66 13.83 4.01 5.10 1.07 0.78 13.98 19.18 6.92 -99.99 -99.99 -99.99 - 2007 3 0.34 10.03 1.41 7.79 15.95 2.09 0.95 5.56 3.07 0.27 17.86 1.53 0.55 1.29 1.09 3.07 11.11 4.86 0.54 0.05 3.73 0.09 0.00 0.07 0.00 0.04 0.08 4.21 1.41 0.04 0.00 - 2007 4 0.06 0.00 0.00 0.08 0.02 0.12 0.00 0.45 0.95 0.03 0.00 0.00 0.00 0.00 0.28 0.30 0.47 0.47 0.54 1.20 6.78 2.92 11.37 11.27 0.43 0.00 0.00 0.00 0.00 0.00 -99.99 - 2007 5 0.00 0.00 0.00 0.00 5.12 4.35 8.25 1.00 15.25 2.43 5.73 1.46 0.52 3.61 2.76 11.93 5.26 7.84 4.03 0.25 0.60 0.64 1.24 3.58 2.15 1.18 1.71 0.09 1.55 0.63 3.25 - 2007 6 1.41 19.71 12.41 0.03 0.00 0.00 0.18 0.09 0.00 0.00 0.15 8.57 3.63 4.75 9.88 3.43 0.08 2.99 16.86 1.92 3.91 2.17 5.58 7.13 0.08 4.51 2.82 16.06 0.55 9.19 -99.99 - 2007 7 4.84 4.58 2.03 1.15 9.99 5.75 1.40 0.21 1.28 0.13 3.32 0.74 28.22 0.73 8.76 0.44 1.42 4.01 1.97 0.26 3.70 0.17 1.29 4.62 11.02 2.33 1.44 0.15 0.32 0.04 3.29 - 2007 8 2.97 0.05 6.18 9.44 14.91 4.04 1.20 0.00 2.14 6.08 23.11 7.06 3.79 5.61 1.09 0.87 8.31 22.61 0.51 0.03 0.16 0.00 0.15 0.50 0.89 0.10 0.28 0.39 0.90 1.13 0.77 - 2007 9 3.38 0.65 0.00 2.22 0.92 0.09 0.27 0.21 1.35 0.21 0.51 0.08 3.52 0.29 13.02 16.28 0.78 7.29 1.29 6.50 0.54 2.57 14.29 7.41 0.11 0.05 0.27 0.44 0.17 0.08 -99.99 - 2007 10 0.05 1.19 14.70 0.05 0.10 0.17 0.42 17.16 1.13 1.31 1.02 0.78 0.43 1.29 8.07 0.87 0.45 0.07 0.02 0.04 0.02 0.29 0.11 0.02 0.21 7.12 19.66 4.63 4.41 0.42 3.17 - 2007 11 2.65 0.28 0.05 1.72 0.58 0.78 5.34 1.57 4.18 2.97 0.08 4.43 2.68 0.81 0.11 0.30 24.29 3.62 2.86 5.19 10.61 0.05 9.91 2.71 0.42 1.12 5.35 12.90 8.77 13.19 -99.99 - 2007 12 6.64 3.96 5.65 5.16 9.87 6.31 3.26 21.62 0.29 0.13 0.64 0.77 0.14 0.00 0.00 0.05 0.03 0.02 0.14 0.08 3.26 2.56 11.33 0.61 3.98 6.12 17.32 9.71 4.43 2.01 12.67 - 2008 1 8.03 0.10 4.15 12.41 11.26 9.69 3.02 28.08 9.29 8.71 1.88 17.94 12.22 9.05 9.76 7.10 8.36 8.12 3.56 10.42 12.39 10.11 12.53 7.67 9.60 5.94 0.02 7.02 10.02 14.95 10.70 - 2008 2 1.36 8.92 3.79 5.67 4.12 5.58 2.27 0.60 0.06 0.10 0.02 0.17 0.09 0.05 0.06 0.11 0.03 0.10 0.26 6.91 10.27 8.71 4.17 1.46 14.79 4.94 0.85 4.85 18.37 -99.99 -99.99 - 2008 3 6.10 5.10 4.60 0.81 1.31 6.58 8.69 8.90 10.21 7.98 6.75 5.06 8.10 4.08 0.88 0.28 0.09 0.19 2.63 6.92 0.40 3.37 0.41 0.31 2.33 8.41 14.04 3.67 11.92 1.18 9.32 - 2008 4 5.31 0.46 0.38 1.00 1.56 0.79 2.99 0.93 3.75 4.41 5.43 1.43 0.26 2.66 1.18 0.00 1.08 0.44 0.00 0.00 0.00 7.20 5.28 1.61 5.24 0.68 0.35 1.65 3.88 8.06 -99.99 - 2008 5 0.46 1.39 1.89 4.30 0.00 0.00 0.00 0.15 1.16 2.15 0.23 0.00 0.00 0.00 0.00 2.17 0.10 0.00 0.00 0.00 0.00 6.46 0.03 0.00 0.00 0.00 2.62 9.63 0.10 0.62 0.00 - 2008 6 5.26 1.36 0.05 1.95 4.13 0.67 0.05 0.03 0.16 0.16 1.75 0.09 0.30 0.58 0.04 0.75 5.91 6.34 1.46 0.61 30.44 7.94 0.18 9.41 4.18 2.01 7.27 2.59 1.97 4.47 -99.99 - 2008 7 3.49 4.65 5.69 0.35 6.76 5.81 3.13 0.23 24.06 5.14 1.08 0.07 0.72 0.97 0.88 5.88 5.46 6.44 0.97 0.00 0.60 0.55 0.02 0.00 1.85 0.11 0.00 1.93 3.09 16.03 19.57 - 2008 8 10.91 4.62 12.57 0.03 10.30 24.05 1.29 9.05 22.02 4.51 9.93 10.78 3.90 1.96 6.87 9.40 8.64 7.73 6.61 2.47 5.03 0.11 9.71 2.08 3.00 5.59 1.92 0.28 0.10 0.58 10.00 - 2008 9 7.87 4.02 5.29 0.57 11.60 1.72 1.12 0.21 10.69 10.22 3.77 4.07 0.89 9.25 22.98 8.35 0.19 4.52 1.50 0.22 0.23 0.09 0.14 0.00 0.00 0.03 2.90 2.94 13.37 12.34 -99.99 - 2008 10 6.38 2.63 9.65 13.25 0.03 15.04 14.01 0.47 39.46 15.12 0.18 0.26 0.95 2.70 4.71 1.54 2.68 1.90 13.96 6.34 8.18 9.28 18.63 9.76 27.86 6.41 2.53 1.46 2.90 0.33 1.22 - 2008 11 0.02 0.12 0.21 0.05 0.55 2.75 12.40 12.95 2.80 11.47 5.58 2.48 4.53 3.72 0.02 3.50 4.43 0.44 1.81 0.40 0.80 9.48 5.23 0.33 0.55 4.43 6.07 2.26 0.99 0.93 -99.99 - 2008 12 5.06 3.21 17.58 2.84 1.34 0.22 4.81 1.72 0.41 0.12 3.17 33.94 4.67 0.53 3.41 9.83 9.10 9.10 21.72 4.30 1.01 0.45 0.32 0.07 0.02 0.00 0.20 0.09 0.02 0.08 0.00 - 2009 1 1.53 0.04 0.00 2.85 0.02 2.15 0.87 0.09 0.05 16.20 14.24 0.92 0.57 22.70 6.43 8.10 9.01 11.85 7.33 4.97 20.42 1.72 3.59 10.35 2.64 2.54 2.95 0.14 3.83 7.41 0.00 - 2009 2 0.60 6.34 0.57 1.68 1.52 0.34 0.27 4.66 0.04 2.41 0.65 4.05 0.81 0.96 0.05 0.80 0.02 0.59 0.07 1.33 0.87 0.28 0.27 0.57 1.09 6.10 0.07 5.23 -99.99 -99.99 -99.99 - 2009 3 1.76 5.14 16.00 4.47 2.44 2.17 16.32 10.91 4.18 1.17 6.39 0.61 3.87 0.17 2.58 1.96 0.06 0.19 0.03 0.12 0.21 1.92 0.61 8.65 11.94 6.62 1.83 0.00 1.09 0.34 0.07 - 2009 4 0.02 0.07 10.73 2.33 0.00 4.00 19.66 6.95 3.19 0.64 0.29 0.08 0.37 1.40 0.08 0.00 0.00 0.06 0.00 1.27 0.28 5.70 5.05 3.46 2.32 13.16 4.20 1.90 7.43 4.70 -99.99 - 2009 5 7.58 1.89 5.75 5.63 12.23 8.98 8.62 4.26 7.61 0.24 0.00 0.00 0.78 0.66 6.06 3.27 9.74 4.69 2.59 0.91 1.58 2.02 2.22 1.03 4.33 3.58 1.32 0.21 0.03 0.00 0.00 - 2009 6 0.00 0.00 0.00 0.77 1.44 0.88 0.02 0.05 0.03 0.03 0.56 1.17 1.50 6.21 3.66 19.48 8.74 7.67 4.28 2.01 2.33 0.24 0.03 0.00 0.00 0.18 0.46 1.01 0.49 0.21 -99.99 - 2009 7 4.02 6.34 10.57 0.66 3.95 3.69 0.74 0.12 0.00 0.00 15.97 1.25 9.20 2.66 3.23 3.47 3.48 2.58 1.78 1.93 14.80 5.48 5.48 0.20 9.90 4.37 1.74 6.74 0.63 0.31 10.65 - 2009 8 2.99 1.07 8.86 1.94 0.55 0.71 0.93 0.45 15.28 0.17 5.33 0.36 0.88 43.39 4.58 7.58 2.05 10.92 36.83 10.40 4.79 18.13 14.27 1.40 14.83 5.29 9.92 3.22 2.08 20.29 14.36 - 2009 9 5.49 20.06 5.30 3.52 1.17 10.82 11.14 6.72 0.10 0.06 0.10 0.09 0.02 0.00 0.09 0.05 0.00 0.10 1.02 1.44 5.52 1.22 1.24 0.57 0.06 0.15 1.30 1.64 4.07 0.59 -99.99 - 2009 10 4.05 8.86 4.14 2.11 4.12 0.89 0.68 0.14 11.99 0.55 0.09 0.00 2.32 2.21 0.18 0.02 0.46 9.21 1.95 7.57 0.06 0.84 3.19 20.36 3.18 5.26 9.86 0.04 3.18 16.37 13.72 - 2009 11 33.32 11.29 9.45 7.88 2.32 9.94 2.45 0.13 10.91 0.66 6.32 8.39 18.33 7.26 5.91 14.67 12.74 22.40 32.60 1.78 10.06 13.73 12.68 14.35 10.03 7.58 2.34 3.09 0.27 0.12 -99.99 - 2009 12 14.86 10.58 1.53 14.71 10.64 4.79 4.95 6.29 5.07 0.23 0.22 0.11 0.33 0.97 0.32 1.27 0.89 0.93 3.03 12.09 2.32 6.30 0.74 0.27 6.50 10.77 2.06 0.39 3.88 0.92 0.20 - 2010 1 0.86 1.24 0.13 2.32 0.09 0.06 0.03 0.07 0.30 0.59 2.95 0.84 1.67 4.75 15.93 1.58 7.92 0.55 1.90 3.36 16.20 0.33 4.27 0.48 0.00 1.12 1.14 2.21 0.19 0.70 0.52 - 2010 2 8.72 1.23 4.62 2.47 5.58 0.76 0.67 0.18 0.04 0.12 0.12 0.19 1.47 1.74 4.37 2.47 2.27 1.02 0.15 0.73 1.42 0.18 3.19 19.15 16.24 9.31 0.39 0.88 -99.99 -99.99 -99.99 - 2010 3 2.28 0.12 0.04 0.15 0.12 0.02 0.02 0.05 0.05 0.13 0.35 0.10 0.17 0.25 0.83 1.24 0.19 4.54 2.10 0.42 6.62 3.98 1.72 7.94 17.93 9.08 0.67 4.31 29.73 22.70 0.81 - 2010 4 0.42 4.15 2.58 18.79 10.60 9.51 1.16 0.31 0.07 0.00 0.00 0.00 0.00 0.02 0.02 0.02 0.46 1.31 0.76 0.02 0.00 0.00 1.20 2.12 4.33 0.11 11.67 0.75 0.53 0.73 -99.99 - 2010 5 1.76 0.85 0.00 2.26 2.53 0.57 0.06 0.00 0.33 0.00 1.85 0.16 9.47 0.94 4.52 0.15 0.02 4.70 0.49 0.04 0.03 0.15 0.00 0.23 1.20 1.30 2.51 0.59 3.76 0.12 5.88 - 2010 6 1.17 0.02 0.00 0.00 1.29 5.77 5.87 8.86 0.13 0.05 0.16 2.66 0.88 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.02 1.09 0.10 0.00 0.03 0.78 5.92 0.03 9.41 -99.99 - 2010 7 6.20 0.73 15.28 7.81 0.63 5.95 0.70 2.81 9.26 16.29 0.30 0.27 9.62 19.47 15.24 2.23 2.75 5.70 7.65 5.97 17.09 0.38 0.00 1.00 2.63 1.79 0.34 0.53 0.74 2.13 1.29 - 2010 8 3.07 0.68 0.35 0.53 1.32 4.66 0.10 2.96 8.13 2.92 1.11 1.07 0.00 0.05 0.00 15.91 0.24 2.44 8.61 2.45 3.86 5.76 12.11 0.88 0.00 0.12 1.65 3.26 0.01 0.03 0.10 - 2010 9 0.12 0.00 0.03 1.29 0.83 26.58 1.32 1.16 8.42 7.16 1.23 6.92 16.48 7.23 0.87 0.37 0.59 7.92 6.99 0.48 7.26 18.55 3.43 0.02 0.05 0.15 0.31 20.31 6.62 4.73 -99.99 - 2010 10 7.37 10.19 0.34 5.32 5.12 1.36 0.27 0.00 0.00 0.05 0.12 0.02 0.05 0.33 0.19 0.06 1.56 3.96 0.87 6.95 7.04 15.03 0.48 0.12 22.50 5.62 6.03 8.45 16.79 0.29 0.05 - 2010 11 20.19 9.74 15.08 8.50 4.08 8.05 22.44 7.70 0.53 18.84 18.50 2.96 8.56 1.31 3.16 4.17 6.04 6.91 0.59 1.61 1.33 0.90 0.05 0.09 0.32 0.31 0.36 0.84 0.67 0.40 -99.99 - 2010 12 0.26 0.74 5.36 0.68 3.14 4.09 0.32 0.55 2.17 0.75 0.00 0.14 0.09 0.21 3.12 1.49 2.09 0.82 0.19 0.30 0.00 0.18 0.14 0.97 0.39 21.15 8.88 3.87 1.78 0.14 0.95 - 2011 1 0.24 0.09 9.74 9.99 3.83 0.32 2.00 6.46 2.42 22.47 8.15 10.59 6.14 9.44 16.38 0.16 1.54 0.93 0.08 0.18 0.35 0.19 0.61 0.74 0.29 1.05 0.07 0.03 0.17 1.01 10.99 - 2011 2 5.43 12.67 15.77 17.65 4.24 26.83 4.95 8.58 13.65 0.65 13.94 16.41 4.14 4.46 4.20 1.63 4.60 14.66 0.94 2.55 3.26 8.40 3.35 2.86 1.75 2.19 0.18 0.21 -99.99 -99.99 -99.99 - 2011 3 0.02 0.08 0.14 0.36 0.02 0.02 0.02 7.28 9.93 5.73 10.88 9.78 6.09 5.19 8.67 2.27 0.45 0.43 3.48 0.89 0.17 0.39 0.05 0.17 0.05 0.07 0.11 0.02 3.64 16.05 5.31 - 2011 4 5.27 2.01 2.03 14.24 13.71 3.76 0.00 0.02 0.00 2.33 1.76 2.58 2.65 0.35 0.42 0.00 0.02 0.29 0.00 0.02 0.02 1.29 2.86 0.24 0.00 0.00 0.03 0.00 0.03 0.00 -99.99 - 2011 5 0.00 0.00 0.03 2.26 14.76 7.15 18.34 1.41 4.50 3.82 5.64 2.95 3.14 2.56 4.54 7.64 2.67 2.17 3.90 1.18 22.47 16.72 6.53 1.65 6.92 0.49 4.51 6.41 1.04 0.48 0.46 - 2011 6 0.04 0.00 0.02 0.00 11.64 4.59 6.61 5.71 2.54 2.10 1.82 5.15 0.07 2.43 0.60 4.24 24.61 5.90 0.84 2.37 15.58 11.65 1.20 8.04 1.46 2.49 0.26 0.30 2.95 0.22 -99.99 - 2011 7 0.00 0.02 0.02 0.53 6.95 9.92 3.41 6.40 2.85 1.72 0.42 0.91 0.00 0.02 16.34 14.68 9.47 3.20 2.95 1.44 0.81 1.72 0.00 0.03 0.00 0.00 4.87 1.83 0.02 0.59 4.17 - 2011 8 4.26 2.83 6.43 2.57 0.04 14.13 3.00 0.06 23.58 25.66 7.20 8.86 1.54 2.87 5.32 4.37 0.34 0.93 2.34 2.06 0.24 0.00 2.76 10.78 3.25 7.50 1.92 1.17 0.54 1.62 0.08 - 2011 9 4.68 11.99 1.57 9.07 12.56 8.57 7.75 6.32 4.38 5.16 21.00 4.98 7.06 0.09 0.03 12.54 6.54 1.84 7.28 2.12 12.48 1.79 4.35 0.23 12.55 1.84 0.31 0.88 0.10 14.42 -99.99 - 2011 10 19.60 1.83 1.21 4.71 11.61 10.40 3.39 18.50 14.89 6.28 19.76 2.67 0.12 3.74 6.92 4.59 30.63 3.59 1.02 10.77 2.20 9.70 8.16 7.58 5.14 7.06 2.09 8.33 7.32 5.03 6.66 - 2011 11 0.44 3.63 4.20 2.68 0.21 0.21 0.16 0.64 8.46 0.10 6.43 0.25 0.02 0.00 0.08 5.59 12.10 2.07 0.71 1.99 9.07 0.95 10.69 13.38 6.99 15.40 1.47 25.78 17.97 13.40 -99.99 - 2011 12 4.19 5.65 8.68 7.80 8.79 13.30 18.78 11.68 6.05 6.50 3.75 10.39 14.58 3.57 12.34 6.18 2.07 6.41 8.82 7.80 0.96 4.45 3.25 5.64 2.78 4.56 10.93 12.10 6.89 17.49 8.11 - 2012 1 4.21 16.53 9.48 27.33 1.15 3.86 1.03 2.17 0.07 1.38 2.43 0.26 0.19 0.00 0.09 0.07 5.89 5.08 14.52 13.92 7.28 2.88 12.20 5.20 12.63 7.30 3.32 0.72 2.75 0.02 0.00 - 2012 2 0.00 0.02 3.61 12.29 0.69 0.08 0.16 8.56 4.76 6.85 1.65 0.42 0.07 0.08 0.25 1.13 10.60 1.61 4.05 10.74 11.73 3.47 1.44 0.32 1.01 5.04 2.01 0.25 0.02 -99.99 -99.99 - 2012 3 0.90 2.03 5.56 0.50 0.12 13.74 4.77 0.53 2.19 0.39 0.17 0.08 0.00 0.00 5.60 7.45 0.17 0.36 2.93 0.00 0.00 0.07 0.02 0.04 0.00 0.03 0.00 0.03 0.00 0.06 0.07 - 2012 4 0.13 7.02 1.45 0.15 0.38 1.37 0.60 3.83 10.91 2.96 2.77 0.51 0.64 0.16 0.00 16.97 3.21 2.33 1.01 1.88 2.89 4.46 0.77 1.97 3.39 1.76 1.15 0.03 5.48 0.13 -99.99 - 2012 5 0.42 0.00 1.01 0.12 0.00 0.60 9.46 0.68 8.54 14.59 1.57 0.26 13.84 2.29 1.42 4.67 5.66 1.16 0.03 0.00 0.03 0.00 0.05 0.00 0.00 0.03 0.00 0.03 0.07 6.96 1.90 - 2012 6 0.05 0.03 0.00 0.00 10.62 0.82 13.48 5.79 2.36 3.11 2.58 0.15 0.18 7.57 26.95 14.87 0.75 2.42 0.05 0.27 24.90 27.94 8.69 0.25 0.00 7.63 11.45 8.88 7.70 3.65 -99.99 - 2012 7 4.98 5.04 8.38 8.05 4.47 9.28 2.63 4.73 3.58 4.71 1.06 0.00 2.32 0.50 1.07 0.24 22.14 11.49 2.24 0.05 0.56 6.61 16.23 2.37 0.10 0.54 2.59 4.27 3.40 1.29 16.77 - 2012 8 5.49 0.12 2.88 2.68 6.21 3.02 0.06 0.00 0.00 0.03 0.00 6.11 3.81 0.66 21.18 23.05 4.36 0.19 2.35 2.72 7.45 4.16 4.32 3.34 5.76 6.93 17.95 5.51 6.85 0.07 3.73 - 2012 9 3.14 0.10 2.19 0.11 0.07 3.09 0.94 0.00 8.31 10.04 8.18 0.73 4.02 0.48 4.82 6.42 8.25 4.41 9.26 19.11 0.38 0.06 3.09 25.11 4.60 1.85 2.56 4.81 20.28 2.39 -99.99 - 2012 10 6.74 17.54 3.24 7.77 1.54 0.13 0.13 0.03 0.04 4.29 39.86 1.66 7.64 2.10 7.71 4.75 22.20 13.25 2.90 0.14 0.15 0.21 0.43 0.02 0.11 0.04 7.74 5.82 1.41 10.74 12.24 - 2012 11 5.77 4.39 2.04 1.33 1.56 0.86 4.39 7.46 5.70 3.37 3.99 9.26 12.35 2.44 1.73 4.39 3.11 31.22 5.75 2.84 8.39 19.36 1.56 7.63 5.05 0.71 0.02 0.12 0.35 4.86 -99.99 - 2012 12 0.26 10.64 6.68 4.23 3.17 16.29 0.17 2.66 0.02 0.03 0.65 2.73 0.30 15.08 0.37 7.09 0.56 0.13 17.22 27.94 4.48 26.56 3.25 11.65 4.57 19.66 10.19 4.95 5.55 17.88 5.07 - 2013 1 7.26 2.75 0.94 0.49 3.36 10.35 24.26 0.35 0.12 1.69 1.36 1.79 8.14 1.60 0.92 1.90 1.31 0.43 0.29 0.33 4.81 0.53 0.36 3.29 18.70 25.41 2.90 14.24 11.26 13.87 8.81 - 2013 2 0.27 5.50 4.93 8.05 4.26 0.37 1.76 4.47 7.78 6.70 0.00 6.48 25.13 0.65 0.43 0.74 0.00 0.09 0.24 0.00 0.02 0.00 0.12 1.08 0.10 0.10 0.33 0.02 -99.99 -99.99 -99.99 - 2013 3 0.02 0.12 0.00 0.10 0.00 4.58 2.95 2.93 3.02 0.70 0.51 0.07 0.65 5.66 3.35 6.85 7.77 1.43 2.78 0.24 1.44 7.58 0.70 0.06 0.03 0.23 0.47 0.10 0.04 0.08 0.00 - 2013 4 0.00 0.00 0.03 0.38 0.04 0.00 0.00 0.00 0.02 0.95 6.94 1.53 13.49 2.91 6.21 10.35 15.20 1.61 0.00 4.31 1.49 0.91 8.42 3.77 2.29 3.04 1.22 3.57 0.19 0.31 -99.99 - 2013 5 0.22 3.10 10.87 0.45 1.14 0.36 1.69 5.24 6.70 8.11 2.85 9.35 10.44 0.88 0.95 0.25 9.48 21.95 0.00 1.28 0.02 0.48 0.49 0.02 0.26 15.41 9.43 1.15 1.05 0.52 0.16 - 2013 6 0.30 0.37 0.00 0.05 0.16 0.02 0.00 0.18 0.03 0.51 15.01 1.15 0.48 15.87 6.12 0.26 0.02 0.00 0.04 2.20 6.11 5.59 0.34 0.00 0.11 3.08 7.67 3.16 0.46 2.99 -99.99 - 2013 7 1.38 13.23 6.56 0.47 0.05 0.87 0.00 0.00 0.00 0.00 0.00 0.00 0.04 0.02 0.22 0.02 0.05 0.02 0.00 0.00 0.00 5.55 8.99 7.86 7.68 0.23 15.13 4.11 6.83 4.16 14.74 - 2013 8 3.86 0.93 3.03 1.02 0.20 1.56 0.15 10.98 0.38 2.26 2.99 0.93 0.00 13.94 10.51 2.40 6.61 0.97 0.14 5.75 1.70 0.08 1.75 0.39 0.08 0.23 0.13 0.29 0.24 1.04 0.67 - 2013 9 0.84 0.66 0.04 0.42 0.26 25.14 7.62 2.10 1.00 0.28 4.99 6.68 1.41 12.22 14.38 4.99 2.95 10.93 3.22 0.40 0.19 0.16 0.35 0.66 0.14 2.15 0.31 0.00 0.00 1.66 -99.99 - 2013 10 5.63 17.56 19.28 1.50 0.69 3.50 4.92 1.64 0.98 0.00 0.00 0.00 0.66 0.75 0.13 15.45 3.04 23.19 12.84 5.41 21.21 7.79 2.77 8.41 7.00 11.45 8.47 5.73 2.31 8.51 5.38 - 2013 11 1.33 27.77 1.11 1.50 5.58 3.04 3.95 2.81 1.93 11.03 2.13 0.80 6.71 0.41 0.11 0.36 9.08 3.82 13.15 0.27 0.05 0.35 0.14 0.05 0.28 1.25 0.16 3.29 0.98 0.51 -99.99 - 2013 12 0.22 0.32 2.83 15.68 2.43 3.74 3.12 6.94 0.00 0.58 11.08 6.57 2.48 14.28 8.51 1.67 4.59 17.14 3.77 17.59 11.11 4.11 18.86 7.48 1.58 13.39 9.61 3.45 37.27 16.56 5.17 - 2014 1 15.55 7.22 8.02 5.12 12.23 5.06 3.51 0.89 1.65 9.54 0.47 4.69 8.82 16.01 9.62 5.06 2.76 13.07 3.18 2.82 12.93 8.08 3.43 12.63 26.69 13.81 9.03 4.01 0.62 0.41 14.07 - 2014 2 11.20 0.65 9.04 5.27 4.00 1.56 9.70 9.76 2.92 7.49 3.35 21.29 3.72 23.74 2.85 5.05 6.96 5.16 13.36 4.99 3.64 8.33 15.35 6.38 5.72 16.19 2.70 1.14 -99.99 -99.99 -99.99 - 2014 3 10.71 7.68 1.35 0.37 9.20 26.19 4.77 1.13 5.30 0.18 0.06 0.25 0.25 0.33 0.22 0.51 3.03 2.68 4.69 14.84 8.22 3.45 0.36 1.42 3.48 0.75 2.04 5.25 0.66 0.04 8.62 - 2014 4 1.68 2.71 11.29 2.45 7.28 3.64 4.86 2.31 0.83 0.61 1.61 0.54 2.06 0.08 0.02 1.03 0.26 0.02 0.06 0.00 0.27 3.95 2.03 0.18 8.03 0.59 2.15 0.05 0.07 8.65 -99.99 - 2014 5 0.82 0.00 2.45 2.12 5.40 6.21 12.90 5.87 8.33 6.52 6.52 4.03 0.39 0.30 0.00 0.52 8.11 3.76 18.49 4.04 0.06 2.19 0.47 4.43 8.63 2.23 1.60 4.81 0.00 0.00 0.07 - 2014 6 6.72 2.00 5.05 7.69 0.62 1.57 17.35 1.48 5.56 2.58 0.02 0.81 0.75 0.88 0.15 0.11 0.05 0.03 0.00 0.00 0.03 0.11 0.47 2.51 7.34 0.39 0.00 0.31 0.02 0.03 -99.99 - 2014 7 0.07 1.62 4.74 8.89 2.46 1.23 2.98 1.19 0.00 0.15 0.46 13.96 0.17 8.33 4.11 4.60 0.01 0.26 12.89 0.08 0.02 0.00 0.03 0.00 0.00 6.43 6.16 0.33 1.24 1.31 2.80 - 2014 8 3.38 22.81 4.90 0.00 8.74 2.56 1.40 7.18 8.29 17.68 5.17 8.20 0.97 2.57 0.59 3.15 1.73 0.93 0.36 4.41 1.91 0.65 1.39 0.03 0.00 0.03 5.84 8.16 6.49 0.17 4.10 - 2014 9 0.00 0.00 0.00 0.52 2.26 0.10 0.03 0.00 0.00 0.02 0.03 0.05 0.00 0.12 2.36 0.07 0.06 0.19 0.29 0.12 0.00 2.06 4.51 0.87 1.82 0.10 0.84 1.12 0.03 3.48 -99.99 - 2014 10 0.27 2.91 36.67 1.22 18.65 3.23 3.32 8.60 6.75 3.90 1.34 0.33 0.49 0.03 4.87 15.18 8.01 6.34 4.45 10.34 3.03 2.87 3.73 3.47 2.91 11.23 19.85 11.08 4.65 1.32 7.64 - 2014 11 16.75 7.19 5.09 1.02 9.24 36.41 1.81 12.25 1.12 5.06 11.03 4.63 8.67 5.41 0.06 2.86 0.51 0.50 0.64 0.11 18.14 2.94 0.97 1.70 1.56 0.25 0.27 0.08 1.03 0.16 -99.99 - 2014 12 3.74 0.48 0.25 2.52 2.29 17.36 11.18 1.14 17.82 10.96 4.85 2.34 5.07 3.55 2.60 12.31 6.19 8.73 7.94 2.19 33.45 21.93 6.12 6.01 2.35 5.25 0.46 0.18 0.30 2.07 9.83 - 2015 1 19.05 7.62 0.00 0.24 9.30 8.97 16.53 9.31 19.07 11.05 16.66 5.24 3.88 24.27 8.67 9.76 3.24 0.26 0.31 6.09 0.22 1.17 9.99 1.68 7.41 1.85 8.68 7.39 7.16 1.63 0.28 - 2015 2 0.02 0.37 0.28 0.02 0.13 0.10 0.13 0.41 0.27 0.00 0.25 1.27 3.31 0.00 16.95 1.81 2.32 6.94 3.99 2.91 2.84 22.10 9.42 6.50 13.51 3.12 3.49 20.18 -99.99 -99.99 -99.99 - 2015 3 5.94 4.58 6.49 0.12 1.41 6.67 8.42 1.26 5.95 0.89 9.85 23.19 0.19 0.00 0.12 0.24 0.09 0.04 0.52 0.24 0.00 0.68 1.37 1.21 14.97 0.60 16.42 9.83 5.97 15.86 6.29 - 2015 4 2.66 7.28 1.12 0.22 0.22 0.04 0.05 0.02 0.06 6.85 6.94 2.47 1.17 6.00 0.16 0.00 0.06 0.02 0.21 0.02 0.02 0.04 0.00 5.09 0.04 0.10 6.44 11.16 4.31 0.58 -99.99 - 2015 5 0.00 19.90 7.34 4.35 18.24 1.94 0.24 6.99 3.86 11.89 1.11 0.72 0.00 0.00 5.48 3.89 11.87 3.24 0.94 0.21 1.08 0.11 6.27 0.50 0.16 0.13 13.73 5.06 0.75 12.40 2.69 - 2015 6 19.53 1.57 0.53 3.29 3.38 2.85 0.05 0.00 0.00 0.00 0.00 0.02 0.42 0.02 0.76 4.46 0.37 0.85 1.96 2.29 2.63 0.12 0.07 1.75 7.52 4.03 16.25 1.43 1.25 0.02 -99.99 - 2015 7 1.39 0.78 15.84 2.48 3.97 14.86 4.21 0.53 4.63 2.40 7.62 4.38 1.91 0.07 0.03 14.79 5.37 10.56 1.51 3.86 0.78 1.11 0.91 0.17 0.65 7.42 12.51 5.01 0.97 0.43 8.87 - 2015 8 2.51 4.55 5.71 2.41 16.28 0.05 0.08 2.16 1.01 4.75 0.05 0.00 2.77 2.12 0.12 0.34 0.00 0.36 9.90 3.08 0.50 14.29 6.13 0.06 15.50 7.68 2.36 1.65 1.05 0.24 3.94 - 2015 9 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 - 2015 10 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 - 2015 11 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 - 2015 12 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 -99.99 diff --git a/data/ccpp_data.npz b/data/ccpp_data.npz deleted file mode 100644 index a507ba238370543bb52ad9a169bfc681b84e19d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350007 zcmV(`K-0faO9KQH000080Qm+yNzZ%wAb%VH0FWO501*HH0Cr()X=Gn?VRC0>baO6l zaCt?UcRZDU`2P__NNJD;85!BB5M4$|pGs+v6$(+=L}@FPRrZLCNYRwg;IjALd+&Aj zvGwcs_<8 z99`U8EFH`pU97DC|9u_Ho37UX?z`GrI$8g_mQawFmzNe&kdzj>C-gs`^=U%l-iNX~ zpho0IM&0xnt}TDS|Gr@wo%XhNN$jNnvp1WA`RE{;DpW~c9j2l59e4W`#aY;r^V4i4 zk&gOLjaXyU_M=?%hbGSG$9UwLG`-ik7p>cNCR^>A1%dgiEEUbeIFhPYm%nQe*t2qf zCG~W}%A%fY>H-0V5<9f_UMFEVdlY|N@)&Yn-SDKhn1F$Mv}c#Hhmrdb|Gbpd5O6A8 z%5bTj!c^Jae$l3LFwXNgh0aUCtrbQ_JSPai=__wNZ$L$s&z+ z(yn+q60oYuq+ZOn4l^GeoV7hOhQ^ZrF@^kfhT5ZT7XrhJKv7*<=+d)3bpD(4-+r|* zu-oM5C3}#DZdTn3&1RF>++&kh{GtSQ1!&bThc+XXFw6Biat;g}wt8>`O~JVpErrWb z6l@qFB!vApj9-sjmt9P!LF}~>H}%vd*fdwX)6_K$YS;xf8$TF;G}rM?>04AxUK^5L z+B^*Dt<&o-=6yy_gIB##Pi8Ts_F#~d(hwZh*_UlyJA%iyFX{R{?!y{t#?aN-VRRrH zUsv~iqscz0Ww*cK0gL{az_VohLFBWa7Oex8N(TawPK5OKQMnq)5}c5XIeB@p z3C5xnkYqrD*W*ije7|}6WM|w8IFbFu zUlk0Xp7!%WZn0jlvHNb|vZD*%6?$Y?8IEA9Sl*eMxH$+oAirW^PlIYr{*5in-SEw& zu|`_s6WITELdwRg1)o}vGc{DsW7Y0m3W=tRc%Oalcc8!kY8hSozNxqeKWxkj3Kpee zm(2#hgvdqcbI9nb*It0!gY*RRzk_%@LOpjMnS#1oUk;`Gnnq!X5+%`YCXGWk4%9{c zHwI(98ET5UZSa};Sg`i*9K8OeV_3jPf#Lw8%a?Z4;m_rLNozLGqkVF*GqtQAx9;}{ z6JJY4#<|O_O9f%mK5+MRo3ZGo;-Z;^$F(nG@ILyHV(auI9+f_}<_|{!WCVyu6^c-B z=b9SrU?wVNeXp`V=1;)07o2H17yDuDDb5pi(O&rVLUY0VdKw&3d%z@fVHh@#^O@T{ z7+bB^Dbo_OU@j`UrwDM9?~s5Hc|^VZI2{HXtuofCOrXhF-Ui*g_o%z>@Z__=Ixv~Y z*jOnz3$LAmxc8Y3qQ|$Sug->3$haOi-RXQoa{-^V)q9j&Kj9iA=%qrV;C z6tk!C2uk6xapp#0mc&lewtV^yvqt8CRU zH0*mJ6LOP^yJ;w3SFxI{hH`)u92%uB}yOq<^-3Vp|EW>sqm8}h&S!*wS8 zQIt_{(^*fN0;t$o!Qr|DO@Z2HUr&spg#F=zi2{@OIU_)-{p~XR&p1$|2oyBIaheNp6n7zKwe5Eu5}9mUg~6wfZR z89eZ?rHSil7m7?d%G`*W$5##lm)$tKk&*XNeh#iNkH;Y==y7y;@-Rkx+F7r8sTGK@S}o&-SrqF@FA_ti-y5cg)c%ohGCw!SI@?17D?*VU$vxG^ye#QH9A0A z)tAJ#V;Zl&&cPSIBIQr}eXuqn^|JXVD#RSE4C7$yME-{*A_~$Y=sy#mbFgWAwJw-1 zoOweg_F>KrnRbI5BH;SSc&acNHKT%!B$Ecgyf7&^u!#&z?o;~ONd$0^_$}*cNWj98 zYvtm*$(X#G^;6CAC~i(9hSDqsL1g*!IqC`tU(9FimQtkPoGr8&bCa=)T+_$fPQd7X zrUEfp66)O&Jb!gxGalkDm(MdB0N$fJA6U=R(Q9I)*_>|(Q;*w~urDq`MP{x?F#kV& zTS`1N_i7LYqyN(`{xJmPoOwa^{t0YpOY|{vCSi|SCgF(x6l!S+_oUIQQ7=blSL=xi z?5MEbIZqr!|J<6}tlgC$5p}!y;xQt$EDZW|>-V5e*Ja@d4LZJ_kqA#>T80prkOvZF zjo{U={Jmrc4Z60R-Y1sShs_+DiuUw<2WMFmfq2D9VEkYHCxdS+GCA;(-)yj;mW)1? zoEFLSiq$;p|9NJd>s}=u{&oEdHINLm+#Hnh*K`PcAf9V`dk&9tl1=xYeuKsCPHHGf zLeYyh-<;Rf0;6s`=eZTvT$=};A9jK%(kn3boE&9KnuGH{KO|dt4B_5zg>1Pe!+4*# zA)2Ot^&2$e19v**paYOwK+;*(Aldhmbj!KfZs@@_<^G);keI%m! zeQ#M2A0mj0{E3wwpn|u8S#ud59a^jVl|i=$G)hN!@@GlN(Bqfo?+kjr^6HcrZ#|yrW3?Q|ldKa9cBNw|9ccw_ z5i>BlUhT%$kMX6zIaGke}mu;BB!v z`M`#G_$pXzvG;T&QvJT#8f&mS`GP~shLApd{m|#G!J`7MthwOcSA10;Hwcg z8Co8m(pA=30L^b+UIlSv96fCI!ICh9f<>lxrA8oaPWo`y;^B5(-yU_fhS&Km|>k!&P-BOR8g8BEFUzDTqXp@~uI~gQ- zzo;v_jiU+aGI!^XX{i zm$uo7@hA|0kSW6hAE$wLC6ZZ;y$-qZjq{nA$Dw2`Ns^QkZpP0iHp&Y8iHLzaQk@0;P^IT!n=wpn2C6^B3TT6?((jL+oE zc0E3g0eW64wVd5DB@+&T0gbHkoakl@zmkoBd(E9dM$SLPKM@rq=+DBcGQ{@{&^ETQO-VP?Ti zQTxdZZZ`@II;^#boqxYSA##0y!$}c_@Mj8xonwqH>XrX)i7~?W>_+ zzfqdy`@mk%cJkkw*WUmGTdj^HW!6Ai%?BQ`5wpfbhRYZKnnDK)1&T!D%B9C1Sw4dJp13 zB0hF_+$7~g!Kt^_XChacF|#)@TuW^RhrQ%|-+Y`$O@n7#iT6A3YID=GBc@aM%Qy1{ zlk*sKM`(?`SDZmL)+@qG(KLMZ*s(KEbr2r$_cawiY6d>-*+cKiGeA85Z9ltA7LwP{ ziaL^KKt<(@Xk5m6x= zrY}NS2*;wynE@2n+0J{bunMEEc#<}3Cx9>zd5CL?_%O1=F(7yVQfw!GFMJ)sNvH2t z^t?fsc(ZOt;1)7|A-aG3ROJoYP1$ueVY9eo9)5oB0tvRRQ=z+dcHz}=Nj4+D1~`AW zf_-VI1@t;i2*GVsIBT3OBqQ__IJgLeOQU`GWl?%(Zx{jJ?HM|M&T`ng2VV`LpFy)$^J`Xs z;#ovL(+S%mZwiX;3T+SX7)Hlx*@GLtP2-=Y*hp#7Vc-y75in z@iMzoM;gTLA39)?PX^O%IV+~60~jo=$tQQ8hJU7feiaK+QFHryNA;;GaCo20Z^bi$ zk1xgXM;nhKCfu>=vL*n@?w2A-w+|m>BVEpc4wopWheSGv5VSeadcAcg%IUvY{A%Ty7vkM3$tY19mF&kpG}+?V(qdkg3WeLz5qbmYZQ@+Lk5|u9sD> z^PYzt#7Mg?k-zY_pe#1;BpK{=e@_zb6QObZxKo4`9lgC$-+#FD?>UJcidzTZ!@|ks zkSZ!Zul^z*={pMA9tTD0JpSp!ZdYcz%2wnP>Z1R7O#~qtJ9E)_%Ie(4*DNv2#iR#% z_e5+q+e$%(zlvt%I(I;N9Q^CPP3Ae0VV!}Cn@L(DtmT+il4qe~n3AJr^~F)VsEBEP zR3b9s%*x8w9&(fh9@p=UEGv(KVVbG0=o=!2zFbr}v^0iNS;EI^sz*_l!h0&Bi@wUM z?2mmnm#5J%`ty^@ER}TFGuK8p)Fi=o)=!^rWf9;`txT?>?Ck3N;>;VJ1g^qmVE8XT z8Ko%003x0#br_Qs9mYp%8;P4f{l?=LW^`r%HtYYnb1RMj_tTa~tR-jh zKbD*JwIcJtd5niSke!Se(^B0Ow+M~Dg5sqdDELQCpzoJ+9k2;xD2j*nBd_NS*Uc9T z5F41DbRfI+pC2GJT6v7Zn8?&;m zq4w}RxO!?yRt=AW&y8zs8tlDrfMeQ2tE?A<{khw%4$OkBnCau-i6IbuX`NzoW(;hH zXRO!%UILS6(%%iEh&c3eR}hQkI4snOU2nTLg*s{JvC9o~@W0y|ua(`6U!TiKI+RYr zkDc;dCSqii|6ZzHc9OQL1FUsNPX=U=@K1oxgV4(@u;a3^+R{53?%k26EW$!Wp;)O2 zrKK@o%=;L+&-TH$Px1`~v|dQ+*j_Ecnn$hYQ#)qx?z^~j6BvYzyt{)NG~3bT=$z~R z$FnFg^6t#Ls%2mweYMikJc$?Hh4)@nq2q0#1rkrYY=g?=lnKh1U9VmiFq^Gc4Jd<^C8x4c1 zW?Wfa=P^9^_kF^vK4`m^HcxaRuFjQJ_dBp@m8`&8<&g9Fab(Cl_hNx^nG8-58~d2u zTQPe+%TjHw3wnYB1|Zh`?Bk7 z?d>-TT^3Om1Usm#1(7zKH??ZLnxVEw6SQA z0&7B+54ogFulk;Cj@1^)iPLarrLn89k^&5W8#c9XP3XZ=$X3-PzmOnen%0l|VqN`U z^GET~K8tJ^-gT-_acTr-)ecRRS&x8&t;9*DXS2BBoLzK6!vr$?qcxGObeVqy89uN0 zfYc{4*yuRj|vgvmPEEsx$p^$ioy>T;e)O{Awky%QMyPfD{Q6(J~WzFzs_xk z^p~8Iycc_Mx%sNvzDx?U^AOQ)>_mG^#y0&jb&KOeC`SBztIOyes$p69is!%g(0RbuM(T#09mz|M zaZ|vE_ol5Y%39C6QElqi{(Q;2RetGupOt%lM;*ky{bI{FBe#n{}NMaCY<*fU>Ni)#k6o@{&57B+>(78>5> ze$DW9xN#!Kn}~d^mX$4bHDH`Ad$Qs%9n*8aaU_u^QEue8U2{+ePS)_8r(S3TUQ@P& z6>2jA%~)dNauq%Zdz|3sNdiW{`ZD-?Pn-QTJm5U*`$~y|>^4qydWw#~@wzzHghXE5 zr`Uwut_g7&LOD^almCy7-&VT5{I0Kqjg|M~tIo{ggXqs2nQzR&cgqy-xc3Y2X!9vT z)Rs9Yz7vzC#5;%2;w?>2#OI(-=u5$?c64}rGSNw!zXzea{jSX2Ap*6{!x&>RxE1_0QU}pFd%#Tc#`SO(!Vw1z$2MEQCs3_bOJq32;A=yPG;f zLWlkkD^`^WVB`yR^nt!b$XCo1>0rO{yKQyPGJfQT$5jqGjtEI#PgI;lt+!mKs>SC( zxu3kQ@YCSx_m}1$+Hw z_!Q4w0>Axa>rm-#$In*vX|Q{}{nzi)eXz-ioO0#E|M>$Bw;e-``xoJE*qF7(+7$>- zmA*~S9zdZ}BfC5Ld!Q;NiCyD;58Mhr&$Bo-3}@53LnE|C!KzM3!$h5ox5WaFiw}@i z_3rRxf99Y!4JcNyu3uVd2$5o6EHTfbabYclU%NdA&Lx>E!MsEN;uhL>=@SWZT6XL$ zEv4dbIjNxViV*KScYuN}l2COucmwhrUx z&O<{MmNa1a49}nZ>fD?wz}OQ!z4dja%xoAF^ctVk{QLuU$22((l*~b?fhteq)=Bu2 zr@Mof)`Rlu3&w>nDXaDK@KIQ_cu_yzWU2@vY7w!v#6q^}?JO{O!;u`*c4J37#)QPg zsv0lCan&~6CnIm*SzZJ;ZQ}s?R`=7SA5-z%b9Y^%ZW5#>O}fVMFRbo)owtvEn`-}r zPacWt-`1`{HRFObq8<_dA5cpJ1QY-O00;p220Te2MshV01Oxz3F9ZM(0001Va$#w1 zUukY|b#!wsZg6=dmv=ms@BhaUl9|fhlm-zZDc(q>LTT6~QR$;4GqMvZN-BlyEks5| z-p9_~dmVdoj$_ZS-{W`xcVGWp*Zsa<*X#9s1?k+-zG6sCb&ksUpv7Gq^JfQ@gb$v+ zr+83O_~5-K&upKWJvM#v%;N6D}%3LyGbWiju;|4@(NW2><`X zs3m;YyCr`ReixFU=ky}BrLd`pijQJq_cwn#W-X+$xg);wmXP!F=)T>AypGEs0P0pXdxgu46fS?f|r0(G<1` zD21n~lU}EV+F^3Nkj+bS11|0?qd(%?2p*Kw{oHFL%)VF|Ak(mlN8GM9Z5*0_vdJ^t zx6{gSiH`BDEo*s`mzAGgSAvw&tziY-R?mphkv;D=AJ=~8`+?&)VBYC zS|G?>T~%M*N3Ck2@xY4n{1EgN6!(z!bfRZkD4RRm65M=X6hia20fg_~pW*POAT_Pp zL>9*Y6u3tCzS1J$@GiF)!K>r2b+|v&Iiv_hd!&=iwFaQ4c#5EuwE!u_JJ*7U&3IOR zzBc$W85H*NkU5U@W3K1dr_Wr*fTO%8x7nu=+dMA}Mypd1=ySwPUFC}KMv5nE_&y@O zpG21H=X0RWUDT)lq!=j&tG50H41j#;mc&8TWuP(PP*y%w zjuZ^qVfuFrO80U*zPvn#&rOQ=;BqIjKT93ELe-0Urgi^C8B);s%Q{!R;{b|Z|9%KY z+u`O{-6?oNO#se1Z&ql+&v$4aTxuA`j_%i5QgR)T7cmy4z&?-B2`Bzgd6Tj0H|y2D zk_9}rFN$$*=Lky42D!)zZ9#$g$0MHuNWj|J^84t6D#-M{tbTK{7v#BjWoaMnfvAE* z`+tbk;@=Cc6;}pkK+%Fz_h;S&m{Y}^e`iF(6c2B!fafIi=uH+~J+lNYJ9+olFifCE zwj;GgeLo5}xzZ&B&*A5=@2BALL`=ZM3RIrbUE`FEa59YmR-n!N=<5ve7Mf;_8 z{B*pTs8TqM#s_|6O&T@8bI~VqSJoGS$Nuwon_JZ=%$(TwNH-ee;{I(io*Tg4{~C4* zM^k{Eu-Wm~c?iR&=AV;b6#vahxA!U25qR1%MEpN(;c<&Qh8EV_^SEsNPH?yzje?FS zE=7{S%qDN&X!0_)DG`2}=mw%NpIn%`Z4vCrR~YDI>qaXx?e<-3G^Z(p$TKf4XZenx9P@iKx9N7MzPDid`9=)PwJBZtZaWVy%*UTgSapIr z^&L^Y<0P!Q#xdWwuME0i=xjC+kz>>{xWIqsV5Zz)|kt5Mo@Zn^;s z_bomS$ecmNkA}ZPE>keaFJUKV=n&H7buMvLZ32@Vh<4jiAcujCezvC&r80(OE_;W8 zWKv@==8-{gtV#O)e^sFUA>8=Jz%aOfj`XqEISYKG^ia0yPDrO(lh{AMf{EnpFt5ob zG~L^lFgEoO>3df`-2WH_ik9^24>)I`qF}1UZ*&4Lq`sBzGi$;R!9sVB$giTK%SET| z?h2?f2>)H3xQbZ~A7jhtbK%dMdj$(SDY(BTc?)TF5X`PLIO(~MV!s)iqGZiFQU!~w zBp)on1gG(ksu=svdCA(V=2&11UG@^Y;=mFqWt9)ThKh z5O8qGjLnvUe?FYfkg234L_KU9;2dbj!TMP(wyGhFJNrT59PA1vQ=qirmrzmBB5Yj0)5m7Dim4BZo-6+(f`{~v_p))5D4F$sHF3{8cv3yh zon0D1t#l3BLa!za$ZmX?X5R`y`#9nSY?iP?ILpvxo(uzY6fGzA5ip5-zg0M11yS`$ zPR|t=Kxisel8v_ugrBLK=PE1$3+vsFE~H`f;uS=fxdrgP{#y6L#tO`&9n2EAP>ipg zf>IJS7C>8^EPHmc7^oT230xC21pe?xL4^YhgbguZ=P4mWj)tp^-=0ydzcg^REOZ_i zamNW(o+0d4csg*HiVUS84^!oaCPDSg{QD#JWDNf|wkjz#hfE(U&c*AkL*TWAuW2`{ z;N52UQeVs}sCx$9iVLgG2wMggZoDWeCk zG{dfLt1t3jC@3^!H2ZF90yDoZQaa5i;l!;U^*c8EAzq|WVeA404|Sg4x$u!*wZ=ch zrIT|Bv~K)<@UUqJlxOoUug8{xJIfJemEJZiIe8M(`Bp(GvPC%~W(jiFwHr9NaxnDh zA6dSnIhcHYLn2*j1P97e-dcPh1H)+!qv;+BzFU=-4=G%Su)RYDVopO)!Nq^>59>TQ zB$n;edO*M!k5u=iqb+b=(WXzEegtjLP9_WGjX@hr_eH~=9`sEyxQ&FJ)! z!7d_$uCwAdBxWTAf7tU6-*Hd&+$*Nw3H;L7)Mr85};^ zTUNovTN}=DxpOE#nyRzTHUwrpqw;_6Ef$!`a6ETeQz)KuZ zxvqs6;qkuOM*A-YnkgNxpBuu=b7kfCY8oKXIq3kIwgb931>04L3m_O8Uz0e}4SaI$ zBddFR!EE-cH{X>(Y{rQ=Frk|R!n%*l;SZDG6i~WL@c#Ba_BBd9YdVI9>LmJ|G6!L~?4-6{b`Km;ow}02 zJC2ZCy8cOZ1E_x#sQz^;f$OgfE~NyFqNjqyR+c;occnz}T~#H6x`Ewe-JNsz_foi- z_v1l~;pb$G=p({z=1(CVYb&s(EO_U@A_>@4Z{0HWCIS;vCf98K1kTw7uoHwR5HOcM zm8f2ZliK`G53m2mWtKWArp(Nu-3P%T!R2Jbxgi*< zXzHgH8pEr5f;MjXmS803O%VyxF$mm}Ww73yM%F)KM+)CjAZ2nzUvYB;o`>3Be5@UZ z&IgH+-?ww;gGZN!KtKnMzU7)2SDl2CmWMJOY@?9Z|IuY4G96#HMNT>C4Z)Q}X=9hJ zIiUAru-xEU#%}v(m5y~pY+77jw`C^bK(8jlFQZX7z~#<9&l(JNF@tJ5eFkBkv9v_a zx)1rnOsOsv_u*9u*-v)K;}G?LY^iFMih~VD(>`9LR;Ac*HP0H1!p6ho3J&W5Tu5-t zps($Pe3fK3eXUt&zwF(xJe=+*%wVP3rKkBXM=|+3{cVn#M*KI+$35GS21{ZVB~sB- zz;oe>t9-)}h}Q%V#^UE-({WFZ{jDO1T5|UgxkQ3!9?stC!7(&H?EPy+eH7j9O*7r> z>BqYBij?G|Vl8oe8ar_X*|nHQrV^Hfo)Q05BwQA+AEO`CyIm`hn)8pDH23$^;%-6(WFl#hXx z0*_vQiPkb7gZCWozUv3aM2-c-kB+7cv97%l)tamrN`TTM0WR| zkQoCp&%-VpdF?nY+tl>XvlU&>Wbv{b`iXMx-#@QQtl>}Q$Rko6lW2Ch%&9VZ7CvcR z@G(Er3`+V8qp`VjAkJ?R=PU9DJyLZY9C~J8*-ob>O{5U5pSnC+Wy%Dub?J(}LloHa zVc=YEY9H{bE4RzMn}K~E3#$eXiFl-Akx->H0>Lp!G7*mbP%d_{*y`INSeslc@&DKe z7AG0rMLpO;9IQF{ww8n%ua$dKN%>fKHq}1MfDCaZ`*waLmVr)pOu&^F4Z!tuw6TB3 z26Re{|M>3Q3C{g9{l8z5;aaKWVw}_f+`gdfeD}e2&wHApJ5@M`PPcmZKa3#3mXPiV zl~57{t1rL&-o1{3++sOjSBKH^RnnoWeVG{V&#NB3HU(LSk}b5K%_8^LvRO~hL2&(k zS3~V`9ZXsuT>E^g6?y-Ni5{II!)^(Exx%(ilq_Cd37jLtv78tG9*U8H@}<7nNFW;% zME7nbMRlRDb$APzZ5kr%;}i2zNH|i^a^E4k2_+94A3Nf(4yL8DN;`rY@%I$0OG-@w z2mjT?v`b?s$ak+=sc8l4-k<8`-oK2aAHAi~Xai2W+69Z5reO0z@u~)~8$9bC2L2i# zL8VLrqaXs|2Oi?JS79h zhmOkWFpfajlNZDZ&ncifsd$?0%`8al@ok+IBV&{hXQ;DuFH}go{}PrYBga85_q*xs zSir_YzV7-S7-k)J?qVJVKNe5p>f z_i;=`LA`PdYLz)mE1QiNnC^x*1I&`a=JgPq++8(ucL~qz_D^f6Zo@p`oplzqy=cbT zZ!E8{oi`kfx6W73f}Gs3AHLV-@Z@cIi!jDb{K#><^IdJzHs38$i>ghdbneVjBToq^ zm)<7~M@)e0(Z531-e=(Z)lb*XoiBn|O}QgHu9L7bwJ2l$vkzmFjDL;iRHBG?j^(Ui zFVrnv{dAgR2pg8@N=PCk3}PFM7k43n#^Bzi_79!N>S`l1{_hvwIg_TANu7@-w|~;` zgwd$Fw_4E-G|gegC?$=yYX%)^h1%Dj_QUC;vkZQX6l{E7wQ{HSf-6mMNkJe#wQU&10#tmh5-7-Dr$P>I`-wR`9(Q<)8}XxEZl>UMYJ%O+ zApeR61z2<VEoC*c7Kw(|CMzK9$k5OqBx)# zonn=xc?KwOBg4sX$$*Sq@`1!(d5iGp8r7HYXR07vq+Y)LbP0++Hj;5+8pna3?Y)=h zhfqqi%Evil5I%=73C>f7VSZ6vy#~6Ip%4lc#TY(CJOSht5_QUb8&2Bxy5dLs&zL<5s z8T!|6JY%q5fJ4sBVYqDx4Gf=Mx%F1jqC8{J@9-kfpU>@e^zVe)ttOWE=@G1cYv2&$ zItq)QWsG}N2^e?elkaj3LDd_*Co^xSFh@R>#1>YCIiUu+ zFMNlv!(a`6tk0t3R9gL|twjuK=t*u0r&4AA^RPD1dKu~do&PSM)Qt*ed$U${HG!zm z-rX54!_dr}JVCY|!LvKWrWH5aVC12r(n8`t)Twsjq@u)wQ09c-E3+jOKKUR+?NJ%H z6uwg)WiG=P8>^g3e#20H@Tkw;Tg_jPVl7L$5{5DqNRwjI774 z*&%<=TPwhSNW!nSA`5Oih}R5S`9Q$zW!9~>Dh${1*If*yQXNPor6k9U;=nky7=2X} z^3khxb=D2T!l*gHay|+z8Vl}T3#!M77)r`ttrhsbH~+ZQ;4fq%7RAmz{DnECRm{0M zOVG35oIQ1S2PkVlSm)7NMK75^t|-gjaOlu43CTr-z~?N(cewJJM6WZYZ~6+tf-QU*#&&)UR|uxtWizJn{&Mw6ze%r(`O_+71!)YgIKfLwG{QzTLKS z0(Voj_?vkRAXiXJ_7AO1SgBC<{BUCoe^$qbO{&bnFYyx{T9&Q2;BzZrDWV?B?v8ge z^o?MR!4>_?L;ujj)#&P{le4IA5c+tCn+$)I-;=KgZ|8Y;e9ThkFgWJDP&VIPgnmQS zd{@tuV(#~+Jg4%P;mv`B4;oU%U|b@@=lXRNx=t@iHqiD%=u^Ga3*Q`I;W|ZabUYcx z=Wc4BvR;H!V`t;_ga?3L=(`Q)qZPbEm*iakssT>0%X?DUZo-e42P?N<*Q5EqjsG%_ z-@{Vczju1v2GQkZ<#pMuR;0)-QG0%-QXM(tpy`=74BY}ndIkDqtQz+#Xi=X5k&gC2 zhT;ae@1vaG6I+85>TG3?OSXIBEGtKF9tG?Tio0F9Mk-dLBY% z8}$!3Y!@i7Xt0jg_Kuqf#3uuD*!rQ(h%%V7%+x-4b_mZ~xR%83TRU{z4(roByXHZBoGaOD zJMZ?~Q=_rj?*E6C+nl}?2I28k7QOnfB>WwgLzO(U24Us$71VjH@Wr^MJy?q-( zpIC19Vjiir3&RcQ6GmTcQ8^Cp6mJpPEy-|C)M_R_pbKw0*s~R%Er+6FHuHx@%doeA z>%V};B0NXPTX3ze0?8K!oCiee;bQTX$=B-5sKvWZJTkt3JMF91cTZ8PemrtKtZ#Y) zzug!PVn5S{ljmDZl+U!{BiZvGcP2N$o3gU&)tMxek{PpCWm2cg*}X+<&eLj=cgq)jiX=J z_A#~3g2}I8GVP-P@cek|>j9BgnCQGLAL2NHsZBwGt}^3r5EeRYz9+#+N4DvmdwbyD z<3789>^~rVzl+h3K&^V4M{M`1WD|a)Ovm3mKaOKRjvn7rP62YP&fYS)5@ZZm{nl=W z2;y!5W>>~>#wfz_pkFoWd@1Pa{=SAbGzPN~+j{!1j5zioyaP_(p_BU6G=}!Y=>uP6 z)?qkA{98Qz3~Fb12(`F3L0ebFgPr$gk%`H!+OmESGM*k(^-mo@Yn3|%WAj5$x>vN( z-LeA{?r=-0nXDsgB-^Bscs}eU2&BK`Hv#>rrx9&NWVE=**z}-i0CnbPSAt%w!2a3^ zPgU0m-aDUTd9U#x+6W8&l_l3!@S}7N@^=AQ`WRHcho*#mpXIGRr zXvc8;#H}H%?VOhJe!;{4rX8MBCDIOvkKmHY^H+~(%TT9a{8*0r1lZpf?#DetaBcjy zDcjE}?5}w?k*Q9`>Fa@X7wwwR*FTn@{;w}`=+S*>lIeyWKH{I$&DwE2>2vVKT?9;J z9%>0oYDEzT#g+?v>*#+eD(s3{AKd+Y`>1iw5Inm3pRviaE|~sUo_Viw4&sezW{Q82 zAx%6lFjK7^?)mJm>lds;J~v`3{d-zfzOLdvLxm}DHO!7sv=~KIoiASu?N>mhX;?7* zVJ;YI;iUM2H(5Z~nJ$64>=bY}V_taMuN|_>!AF@Wiu2RL5=^5;o4g>@z4w`H%J)MPsX2 zD|DSrH*5qm+VU91iswzsnaWJbYrKORCn9jEciPg&ADil3@iVkcc|ki7S8ft;VD;YrFNi zrXXWF{K%kTF0dp8an~Eg!cV5?s=tY&@RVKW7x7Fk5c2M^&nyq&7ngi*0~IoaF<*Lh z{_$sY_<2v-oAEtL{1ke~EnN*0@9r&LOB{r|GzUg}*Ct?(v#-g$pdmggB?-PhwGH7~Mx7q`PUBEZKOwG2J_v>L)ytI*3tv)6O?BfOhb`~AXu z5=g(z`{i_M4mL9AgB7drm4A8Z@!&nWwk;UBkj z8usn|aSU(5n+$yq_73 z0!AM3We=BdhS+(S)1U)LD{;*Y{%gpS;cQC3%|*W7>RS9?kinO8xuG{~45WgtmS&F5 zpu*j1%a>W*z~B4w90S(^oIR*>#nCR*HXJG$BLE0lv8pHF6c=>|TEIiaghJC8$$3^=-iC*Z(S zn-x1F3QlM-{dg!akL78nD)xPtgiB`~A_J{DKu29S@%;WA6c<0Gn^n3BdN2KVi{QuctV}xr}{B>aQ$_lA!jhA7$J&88pL=hnGs1p)8|w@?2gW z8guoG#;s4n)r%QvLcU!PwlQT`Ro4&ZxBK!-M=8*AwQ$+*Z#k}-KiNtcsX!Imf=gaQ zrLc3y`G+ytQ}Bc*X?V$r44!*5=s!K5L6fOa_GnKET;gIHp_gt4+bgU>$tyIf-vs2u z-hHTrPx8_Z7T@ae!g`%8VXhts92eq8hZliY{B89=zb=qXkYIkTMS-Jhr_1&@W?+`b zmrNs|A~3|8j#TXIhw~x>`IkKBkcq5&d(Nv9E|+;GCLf-|pH5kj$V9DLwsno;S%Bi^Z#P74G~vC;*;o5+7Qt6WzQU`j!|=L8+`yN0 z7S;;0NbW7|u#4gPTaxP%>^?RxU`QgtZONm;sl;J0)^@z^%}@$!?wZ|tQtQ|`Qt&)M zWe|?N(O`M;hk`CKzru&_wu8>!BLgM83ov{n@Zk^6Sx}0*_9wPr5=)}&$_d|BK|6cc z_S-d}@myaF$@7IeX!Wr^ld%q%F# z^Cs}Km%x0l$ywE7^Wa=oKgQkLi7`&Eyy|;8;Z=QVOX;auSS{kwYT!)4vq^_FPMw^9 z(*LqTPf)FZm!;QH?-Rig&t)TOR!FNVWOhB!SFr$|1zwnAQD_Cx_MOR#)`O_d)nsvz zOad1u+4QR<;k^5@=f_Vw2p3(?=MO#Uf$n_4SmMM2X3=|{7umgx{XHiX#osMq_O-K~ z_V0gyF5U36q0vDICCnWj>mk9LU4bb^>cdELER)wEp&f7TSKr4Jy8y)XGX(arhZ)u?mr&U2!+gZ!VQd)`-0}PSI<|`{9_}@&0O8R? zG_>3k_%7&iC=-rj--YY0e|V=*U{_d>097siw?y?KrmPWPh>iXo>gt4vChg?CPy1nW zD&Sb+&srR|`P-HFXcg>ly5(M>ZiE>B`2OPzoj9HuXcln20)DUrHbC+^jBBb=ZGMfy z%q5q_Q4uNvhi2*Yu)h8 zQ3#p4q{`8|U)XRNx;)xs?jbj3?>Gt=-p$khi zCVn&EAAYe}lVt*=4oEzYKL7MplHgZ7^|4 z$^Bw&4|Kk4)_a&vt-2>YP?$%S2#wTUYq{4aaVOum-f!_lK%oP%CI32Lc#9*)g}n#C zIh*Hs#4xnY1xVe9S;w3dKNbo88jQ}_tvB_43_WW1KV!}OjRHf8!CtcjT+lOSO&cl# z+XHiUdG(V}n`=tS{zQaPfw=ni+iP$fE9HmI)r0nh#qVc+&EkfrYCZeTHT)ub?7nx$ zDtzyf_Tar%1S6_PXXm0PV6?Wf@vUbI2L6?ex_M|C^vKN0%ZemiA3WpE8#0Wl8m+pX z)ii_&(^;mzo1^$y#9Yd8odD6?8)qN=M}+0BuPNehh`9gF?3y9`1pgoBn(7&AaixBm zri!~A2oy;eRHRWQDjT!uzn#G!ZusqJ2?=apy=OTWx(@XJz4@u@FoGv)gw1RUhu}O> zSw``8C)^7;*?CjF2HS*w4vF0?!zRH)A(8XLh~5cZ*wTVo77I?R8TDXuX?6z(={b&z z<}W92&)53({Ry-hbAwuTaV=bZ+xjDer+v-)u5?H+miQ1sww3It}*I6VjshndZhZ>Dtf;KA+V zN*6Q*AyiznIU+0Y@LS_4&(ungam>k;4xEPX*>XDgybpdyloPMEHiL}3qEt#|B5ZXF zmuYu|;2&nIrX=Mxa5zk>N~1Xfx?if*zlV=w2<7V&+u;__e7RXb+t3Aa8Ger|i$?H_ z%xlj7cFf{#rHxI}>p2)m(f$-)*od|QgTB(lIXD~KcH?~cEUuUI9DenOUX|lZ>J!($ z6&SpdCb+ddM?tyxLv}PR;9{Yh`-Z&|ud)_yHi?ge@Z}%3S_bBD=1J2db1e}+-^)vfGT=Bdy-m=Whb zvxqVdJ_;As$B;Ybf~$#jHy+bp-tmX!H{?aD>^fH4i~2rZ@*575(4}jU#(R4md^?%x zBhBZ5GnwAVSRxVLe-~w=EDWKqE1#0(u1VN`c2B{~k$KFWI+r3GGK7_30_=xw_F-r5 ze}`kY`C!kTxkFMNQ>dDMLwr871N0mo*l!FBz!NUzg403cD1PRTSgYC`e2zD_`X$?n zhxH;q|0MjyTZeleJu?}=r<}*C_PI4;84Gz%7&fu?X4;;`&B#OXdZKh2$cP70ml3P0fIj$mcM( ziE-c$eQ_PbsR)CmzfXjMfu6>sv5|H^-lw>}6d5m-`3V zvr^08{3WfK!}H^)JTx|HpR|JQPn)C0L}%fzJC#FBcNa40{xY!3>&D+6+b*Tm2ib1d z^X1tak?41n(_3r>zbQmV=(g-6P`>jqf;qGh-vYC1B$~r`OLK(9HJ%Yus}R zuzshPP?Mj=NuQuNd8S499>%Hp_iZnJKiu2p+E1mrPI(kC)knmL)z?GI!9A$Y{7%7& zHXc{5Jdeo4Wq3FI>%$GlUwG?wq0r(7GDHd&|1)o_0l{zbvJ}@=e7St&&@Jmu+<%c( ze4L*~)mcgI^5ft#d_22F84RT&JXZVow|ZtBE~h1#?{Sz0nU!P{BVJ7z2rNXor%4e4_ZLyYcF603$4-L1&~nz>R1f^J9Iblo zLo;L@VpeOl%fX1zgEbF(h?rVrN?)V80`-N$;SH9{$gAma>B{v1@L-u+5j@`kJU4im z#t7r68I{N6=DLid3Ng+*7IWc?zJ}mQr+)Cd`tSBI=N!!UeQEwyGKCsH&0MHmhtSbt zfhzn>EnGbiC$#r%2Zp45q9nYTMjyUG{!zmT`PbPi3?e=d*@8htOnZFMXIf3f|CbN*cr;QHyM zs(;r|04FXv>iOOC?2xM5}MlkIb)JiY2}I)z*YlF8n_)%fqn;@yb z-fTWKt1L1~X-Q-`ZH_>>$Y8>qBP3k49MidJy`48-6{aGXDWJCA*AsKR72~B(E$64_ zfq_s;LVA!LOjNaATr;M?Fw1>{%{EVd{uZKtqIn2UXILLJ-L-(gS8F%yx(Km{PSL1( z7vR8&&s};RH7Id2A#K-D8p7Y;7fSCXhrzay&~`Gf6-xdV9ToOoK&RuEhiSwqc$Sze zyLN64ibcY9st*@}(v743%*jj8>veuoTE-u`P8+|gnD2*+cO6*#+n34W&1vWGdv2-7DS9s2tCs+K8|HA z&C#>tYY?ybx2&tGsOz`Go2a-Qf)#~0+^|x_zgB}O>iy1) z`BbW99B*rnm#!5YwKo(G*cwN=pxk{4W>au#)m8CI#|(abd5+(yg$UIxrPtW(N3rBm z(n~7aMO@tJIA$*L6E$@M_kGY9hqnWF6rYC=;DNILc6lugVAy%%vfbwfA=~$9{g*d` z_;g2$0$0Qg@`c8p_d82X@Tkf=`~J!RCRWCiCN29hC~R4C{ctmQ_kO?S*ieP!%C9H9 zhL>RY1@mhwj!xjLneLI#q@b$+l3Ciz;neOTx?}Xq_QvWv342VA)a?)Q$*5H1H zp6kCLfbL<%rtBOTURI2@SN{V%eG$pSw;S*+zmHkJ#whr#8EQ$BSKwEFLGKLnCWP6X zN_oWp2f3Hn{ywo>-0n-|qR+3y!{pU@!-p{=IG5hD%zBW5bi4Ew&~pZ&l$fNehZ=Bm z{Tn0e)HHf)8nq@;7V&;J@4u%qji_L0-@NWPjvM#MkAp@1gEyjJut?(t_$gZhD65LJaJ*}5VL?TK1 zfQG~z<@rLisI!3LWbSu(v~;reKoWK|F=<`f8@ zZ4Mu}QiFpY=YGl`?f~E6_KmjeO7yq0Ud&Wl14V&{N=N@xL2uvrm#ar+;KKdJB?`F+ zn)VpoegB{sKUP?~CJEE2M*V0|Cz9HL*H*cIf~yQe9|}1=&S-)B=U;kh-;yv*Z4Vri zq$ZHpF8<`9{R!qGE+rTGH}Lb1+XqNO3;4_}G@9ls5#3$1bmg1FAWi+cf@UQVzuY|G z>6ku=irGS1#UB^ZQ{;?$CLfh*cSiZ)>X9Tlbz^puOo;6MZV(a{53g5kz%z^19ioEo;GbVGU(?AR zF#X%@;q!hD?>}#FpleQs(hCXoNzW^A|E~6SG4)=&{PsxQw}F1pyz1E5TRabZo!L^} zcGY-RX}3v2{37m*sc-#YPe(8bGm?0EtRI+t#1>vTE}+ap+u#Z57Vtj!Ie40%h{8DdXcvE`9OzDVgy7BUB3u9SAu8)|G{%LTi9nZQXm?&20tG6KK&s*31d52-kQ*D zfV2kVaVN(y6y!Af@v$y+0-|haL)@X7^eSCar3bm+DZ&>IPu{|;S7hQQfs?f4~D!*Dq(bW4Z zCEC=g%KJn|?Gh=d;ylM?;WCMmLBASJ`m(`NyyyHA-Vr#V_3EbVu>nvKKUw8>WB}_H zzl3LS&SCn#cOF5nr%~2($48MPYuMXP8*@B;2o;H<2f3H#Al$T$q;PoxG$gZj_?l+p z0YbJSTiLcxy^geu&>_OsbXQgA=Rv4XBR{y!F@n1id+&RFnSg(Px{Tj6G{P<8t9<7* zuVCf-qQn-JC2X^>ko~C84HIW+t}0uVVCTlc0jtt1WT5w~I66BGA)o<&L|U-n;Yk7B zjU9x)mt!S7#aB@3jHid{<}COHJ1a?BwIOtvzY|D_#CK^CL+h$D5PI#oLG68NLU}}v z@hJuhnv~@x2X3?JXGXEW+nhaEN7L<`NIj1Wp7Z~d_5Ohx-=5J5au1HENO2RrJ2ACB zWZGVyj4-Kta*>A!*^IxHCI=hg<)b@sYeq!q<}CT}bG{xIAFQ^%_*oC#azk!pmpU-M zwf2kk_5?hP{VZq}^bdVlUoUT5odu&;oZL&P9WW;%z)i2a1aB|&WJPgI;HJKj1>co6 zv z016_SS)WBxAl0{%hQ+fM$@xyrB~wG-5OmF|ys`)9^RIpCez*>FDz$?0MOj#O>fhaq zrd@b0P+MQ``wV(0zP~4NX#*saJb%S&FJk_&*WvfX7O;us)XnS{4X9Y|K5VzL0@v+) z90+SgkW{~BXFS@CDp^fuPKK{T!V7xs|Agv*ly5VZdUY8j<^G(p%KHbF{0`OpJN|*_ z270^;Xvb!+Zf*UIEvyuXyIa>prP}jeuj`5Z1hkn;iodlT#@}}cm*otm@cgUg+$xO$ zJQH&7#PkvoueFXCmHs3FYuTfig>C)pD%sx>Bb)=~5A?6GJ8$b(Cq~_3yJy~4iz)f} zN*9O;48^hRV-OcncQWwV8r*$E`{v)S77&&W>%Fu#4HVlSG=OF$% z9Q6EK%Q7b7L3g5G6E@MkGSfRtLZJpjniJe)q`%9r@Z=)}zsuguBAXLXKFFN&bW0W{ z{Usrh MY1%cPmzgfj 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%0Dxj9ZCe_|LKqz8|hT^o^|&S2OPz z@@{#h%>A9`SOyvXnmdF`Yo%hWw`GuN{1ANYs0(?(Nd_WGa+phy2nlYNHf#OHK(yVZ zT3Bls4-tLNb82rw;Evv`vrmS>v7nAi``#ixtmPcvBn~2dqd?=uw?lYZ|K!E0YeamV zU)$}HnShM-9~w7rkAl}}IsU(&Hu2D^7Pr1W6=E`y^~75GP_ruLueRbO?A2I4@@hvN z&YB+(RWBUJ-=e~lq~toFx$I~uS@IQRdLljss-%F1fd3`i^%;zt^g=(ac8F<`_W$Mn z2i;<8s;zE~Am{gww`rP3L5Ak}lK$~pJg8Y3T=|lb;QsY<=6%x+oN1cuv74B|gJs{Q zu0~dY^WAUJ&J4|PnNfCwQDzQ8blDTul8Nx?`L8TcOh$7PrsBGj!|?dCvd^}r4$yrd zbmN3g4SFBaG-JF;giGJaB2GSZ@}Y{lj%>?}gi_|^Gxw*O@nLNF#XY$z;5FCm?R}#T zQu2kunjZFGS<<2Nb3ex6v@QLV7j*=;Nl292eX{Nj5jN1&erd;0aw|c+3^8fekz9jFu-#>*Ta&$y|HVAiPHuMV>2VqE9f8=|`0M0SbPMAq_!-G>! z-h&?}A?vGfr|rH4ho$`y9?O3eA8#(%%r?1v*s%N?deE4utvlg^^T}x)FC+X zxbGQHVL52>TrwDVyNr?jA(3HwTG8*-^dE9@9ZYe$kJd5F;d7?Pi@UeZ|JdVs>9a!Z zAb~G4OuZLzcfp5Ma>fQQNA4V_J41b2!4A?~_tn zhUbgCPVzTZ0}F>}Pr@<@b5^&}r8!ejQ=d@km)MI6-Tn>VBL;v+I{WPp_j&xP`1gmg zCY`)Qht=b0_KH-+pI<_aPPhz zukF$s_+Eo-aW1_aD|Y<2_fK^h84Z@N&aN-w_CrtqNJx#t70c#hkv*j-lzpb*>B~6~ zR?1}9B~8S0-fk~q|IOeI^?-dI32DgZS@YKOM?LmX&&N&P>qAxtGr{?VBJ|sJ&m}%| z7Lr8Atyz|*V1QLXER{e8Dx*z`d3-W-UVAgH+%Sai*O`N21jB)ItZ%8*a2V`mN31LC z=WrvHrCHi!0*AETSJCFzVnhTXyl!CyABX!LGIcD0&Y7*5}7v~R_gySvVEUJb;JC-~y zIPl@lpw70Y^;c_?`k{`n?J@?+4*)4{PvQCn~no#tQs5JAz{mdMA2r z?jT%Q=5!-j_TtsMfz0=w45R8PgH3y`CHQoC`X-l98v5nmDrn}cK-uo>+@UZ1&}}R` zs}VQ{2MdJLcLvYGiDmKK!%r50ZjPEr=$i*Fb|qzRellLXKVV=*ng^q+6_hu+lW^>; z#pk>W#W;6MW_U)%=aZ5@Z*0Q8x|iaJ$Nd@yE|eP|Vxgsu4bk z5{U=YG8$*_ZRYn%&D14Sal6`{mDq-={vyZzJ3&Il_I(_+ax?H-{DSw73NoIMG1W8P z?g=H0hGoycFc9ol#xQH33K_OdW#qEb$U9${u zzS>QKKhk-^l1+tRY*=gBIWh*^b`F&u?)`Y~c826(mQJAWW#sw>v(PqD5`Hb-1Lc1W zm)pwsY^0z83$=>*E;ud0B?#{Z^m$(=fgNp%nVL$qqNR)_-Z` zq!&HQ1WXwW3=MSt!DZ=Fjtm`(SpHpf^FRei8eMmx~!MmcCR z)5|{A zS;F3twj8s6GthANtit%+Dky$8`*yR2giRW%s!HussF+~5P5jCTJXk+Y`gV8_S5xBf zqWuWm3`(AtFU|&@OUlL8gDd#%!fM{T^HWGO+pKD;F%AMkd&OxO8qnsSsDy$78A5Y> zqIB##u~=fK#GjpB125!(8#y!7GzuUO7rBFOyvbKc|qDC|~j56{jXfaAM`Z_XXtfV7v5 zZco=5!M{sfFMjL1Gw^jwi5;59?TmBRTn^9^(mS6S(kHj#y~iSU%+qtgX5iO2_OB5_ zTumo)Ojkf+MKScTQYSnZ_A++zAB2LMy2;fR0)*4d^|SX;P%>Dc@7Yr#YKGGm!R~5! z7hm>adq6)_rurw<_8WK zdCL~}^wsAc5#jcv(`mU=i&((==$^FVDyqE|8Zj=SCG26({+<>1|asC z?%CtKk$AnMnxCzUgemMj^m+3v1Y!OwQ)_Aqn4`hT-l+Zm`}>|lt;#qq#{bu;Qd_^ujiLQx&LKB6HziWE(~hwnharXr%Ds+Pby?+ z=rPaB)&a-I{&&86N5Ej`Nz2$@-N4p9FuD;##!tT#l2ffKP;A)fY(Y#ZI9=I!+VDvS z9ySxp=;GLbzpa{kG;3DiDEst}E5sJqnd2rA7C}YldnCVE^%fkDfP+U5QXrnuyZph2 zF(BUMzQNQq2W?JlnnUlK;p=%3ftOMwtjpcFu4+7pxrg`A-%)CW)kyP|T+1#roR+)Z z61jrRSEFCDwUR*K_a`MDk0mU)&n{T5_yVn5*d&7O$w=Ys)Hc`3hk}kENiEI|pgv7W zWs^@wdfU&9P&|mx!E)DbZ5}7w_$9f-hETAKS#g4i0#y|}x>j!!;Xtvx^8=w(Ob(iT z=4(#{XQ9{U!-cD%c>dJg?NQyR9jt#`Epi!^#7!J(SqCA-yZpp^=@pDCEAM|=*#@^t zh9~uZtl{R3D0aR?A{ek&>s*)~!icfmb5dJ#0pavsCNC4fReoUxbttGGrcGK2$N^2; zvExby7f`KRPkzI80=UdaHeWvO0cq4e``wKUu}2TpdkB)CbkLwx5eMMU5shve<3->) z|54H~m;ydp23kAz@)kZ(6zzYuzE^ z8?_|P2tylqGxVy$e{&Nf3atPBWtamAHh0VUiD4XmsdBa}cLDE~1qnm8AF%P|6A(2{3HH z?f%?hyrPrvzOBY1N_iGc8f2w6T}M$dg*(N$@Fq-&o(XYIF{H_=fX%6K>3ky}xTY49aJYNe!p;LEh}@&kV~(bUYD; zf`kctpghFblraj&>#BRi|MXzsn<(qU5k1&s;%(lkM}|V49Z|WB#kiv;V(6Yk0ajUa zs3^EL0PBr_eQS-2$X718_?){749mS1%QJpdsv&(ou zniQTkF^Ca%M_#wyro!cky>u*B22gV-n7(>nF&Z4q(zq@_fiG(>&r&J9aHWRQ`Pg9* z82Q4>;_K^h&%H%Kw_Z=6v~(U^y|skd$F5nH*G*x({k}P}0SWA9IXs?Mt%0G&)PYE5 zA~Nl?S!7xv18I@&quRwOaR2Mylm*||uN5D{SThCB?@ua6bRQ-+|0S7h(V z&n5h+cH-cY@&Zr`_=Kd`2Jngk`6&HzGYs9YrzDH?;=>QGV;o))VK=KxYCb&!;S)VW z(~2t` zMv_bC>+@mQb;rf6Z+jzD91u4@9XEhVM&FN`*0*BR23Kk8nRPfXTNXhi5wRpe|FOlk zHSEZP(u9K~q#CLgZ;zvbV)&PPX#6N5zq1(bbmVtGWov>kJ$joww?!BbSXz7YZW^X#^1i9;Dh9{geuo)4Dv(Wi zU0dmzpz-b3kBfuTpo?-+mY>F9@mUBxgYpnMuI;7BDlLIZ0`JfrmnCRjo{F+b9RdrU z3IFn4!`q^fUcm^Ooq3OZ0${)T1DVp0ey}+?WNN+KiQ&Avt9@Hz z@V*@B-pYk(5Vij`xh3nOjF@$Hy&uf3HI_9ZL{t zJsLAazn`1a7=!4vZhZPP8!vad2C;T-t&`F?t&c+=WR3Nz)5xyEe>!*Mzsog&;rU>Z zUqU3cWK)#-|-jc`b8>JIbA9F%-6U1G#Ggh8^RqKYN>iN!`aC zgB)j|N_z*LrTH?xZK8?)eJ2a`dClbrZQY=&Rm+&yJ`I{Se{5VO8iDTCZd;abn|Q1R z$^6`XaH{<>DoAc4>|Gyp*Em1~&lQ?$p6o)mo_k?cjShehC#>ZS;;f(8~X(a!T_yPXk;p>G{REv5xXK?d70Pgu85E#(PVe z!R6$XoTl(1`bzM*e>+J-=&=3dX)-&Eq92_d{eKZ*$kI;lWaJFKQ7!b#3(bbRN&|IC z^P^x<&Gu6OM?kp0UTG7p5?uo5{xo661&?Z@ODkY}@h<%V)h@{RJj;45q6k)W@)nPs zBqF(*<*&=e7z|x=Y=}G9009fEV+7?H{PSyp5V^&R*5Hc=?$&2vciY2`eR5s+%12Iv zJ+2F8_y5SRY@A2c#LK;fw0|LK_k{Ajmvs;xnY8ao)dWsWI?{Q4UPm3Jho#p!8_|Mw zsy;D27xJb5amBI+;`#8a|Gl}gfM<1GH;=yS#g2iiQ?}oUpmFhD^R;mT4hC0A3O}#L z_X>K3u3w1Yp?!jPM{_k6G2L0dJYEYNBdSwZV&mY(lDtJ77YQTJ8aa4YZ6kyRe?2xC zT912kg6uhuGy%)fl~d|UM3ASJ7X_alfFi~X#*~>kNEW$pHP?6nYC`m_Q}jpiG%>V9 zK)V?}6r}kcY+6KO)yX6wx&;uud6sj=zX?12e@2S26JYuGP|`SaGv4(Ui?|$3gydu? zy;wpQ4&B|E$<5ggntos7#EnKU$f1Bo_`@*VZarsiUc87AkIH1nCkN2J*EsVZ;|Aut zo_^`qumq({HPR&oS?HWIap6!oy}SjV=}rGo3Mj|&zuVn52=9ytA>Y1?!Ryjdn#h4A z{P!S3if42k>ND%bSu+=bE!1nlO{)!uyDScB^7MkG`*il76VoVE>|9J(>&1kgn397Q zZSYK7pk8;Q31>D4W=dYGF!w;dbI^Jk&!uvhoT;P$izhMDV|EgKtF+FToLGQtr6s~% z-3i=%efet7;bt^WHDz)f-GpluX}SK%<3K%Vpm^1r1fdt#G*afrp@r4)sgU?6j2J8# zozP!^0dHx|H{WK^`*d39GwuyMpQbQ%t#tsq#Lt(^(vhKc`-z0THj9w1nX!53I{{CM z1f~)1<>JPzT=Eg`NtpleCv?g+6RoV9?(j1WfaAMcw^-#!c>lXfxa>$P=v+`*f3?*E z_|BBn9^W$vW*IZpQ^DEz_gD}E#cvb&@aXVuy9so!i2d)uL>;_g))AK?c7vDem&Y96 zDq;5KW?C6tBi7ZNmz;DQ1^eKZcd2HDV8nL9ZgBb!YLpn>=*U2f6P!F*;JpIs8jA(K z$LfL3+9&y(-zr+{@zVHseGQ^jWzVV96JU+iaPhk3GR#Zph&&%81J^KJ;rJ91T%>)|@&C`$~SW&z4kT;`4hnC!JPs3~KdnO>_WP{g`2nlTyGrIkX*HEp5Hbj7r8x|q1t&w`gCDzJJy=4Adh>uz$8LBfc)wMbr3c)B1sqQro%yvij~q&|{F3$U;49FcYrZjtFREt+b{H(;L}%c( z{(m*FqB<@|^Sul^84|K2x*B2DVBtkl`!FQ@XjY$&B0`4Jzq!d&B1*|5(yecC!i+oS z=ZSWDLWj<^#Un6_hb2T#b2O76h09o_-?9N+{uI4ej?Tfr7=EQww<#bZrB!F(kPGIG zK2U%swH)!!FWdg=5nA!q(7U0-b?)@%|Bfus7 zldZ~g86B?-3#CSOgO76ZP^HF)vf{KhFb*gk?}Rt1lcEyhlJ$o!!42Xz2(ie-(u8-9x~phzBu7UzX67%U8=x zd=bee#D|yc2l3{{(A*i(7C5t=%e_=06?#(dQntOI!k^eH4z?G%;5w*Hajp%6cgv6H zeJ)M-RR4qG<^3Npf-L*n-ggP5dnJSCe~~ckdaXH2SRJJJ-k7TWN<;Www}FAC0=RnR@~8ilJb`QKHJk3j3kuTPJUSHmfmTRg`uQ(>J? zC_;s&530VL(+#-Yfu%eXOA&o!(4n5S{FO)nSruiIn5=nt@H3fTLYxTIu)SKLxfk|X z{>$ZM_G31$ilW z{->>hjqW_$<#4AR`!osF?}zz^vi0T$EOp?mTjv}oWX27+ zTaN+nvha&zc4Ihv;a(JP@&?K)H``9Juo9-5uj}1SPD386=AFmLy>QoZrpSJapU+4e zR&zSdpjE84vTrMY{k*dp>nu`-9gcCCmsc0jwdPbSmt76Cumz_m2u$EksqvV>NA=K1 z9*GLc&jj|8kf`d@ZJ@t?XxD484$PNGcv0a#1_kBLA@^_?90Pe}c}l0ifHItsl`{mV zeqC)#J3Nd!j&09AW;FqoGfvZ!e-W&1cIkE9o`y-Dhk28i+Hj1+XJgTUg36~uR|TJy zfKkfQqj};Cy3e@;+h3iB8E7Shk(yghUyAK!IoG~KvQC*Q<<)H&q5HC9YHC%(~a0uhRn zIzK}vuxVZ6*vU#m;Jb7ALRVcehRm%zRaF~;;B(trmbgaorkkas-y{|FS{4%nHa9^( zDqLDMxB(*4P7;EhCPBZe{mYGEA__cFzUF1W#fcr9#!a^ek^7lH-0~{LPYe5xeHYmP ztMLLScIQ46efHzosAd&>%;(=jb7cv>z)tz7OHugoS!S&hX9KRKKeaCBOTiYQ_vsFa z|Ii?FhX##HH$DkpdF|%k4^FyOskA?c=-=f{ISC!Wc8QN&R;UZqa;-E4wv%u;j`*aL zVG`Eq9W5_VdZ7C9e4t0@0MJ^zo%tZxfQQxl*qdqAKsGRK#rRzle9rD8CDT&S{6`0a!fvE6Sn||tq<5fxHyQ(ca9C|R}#VRM8`b=lM(Fv>qoaOejb8$ z*BZxO=)vKAdc~Q1OGs&Lop|MsAn5g}SiF7^XJ*F@JxYeb&HT+;I1`=x0VlU3D&H6h z848?3AEs*H2-A)*}f7k#b~i(JC6^k=taRvpU*@%+|YNG=ISV3zVLI5 zd0`ajXe*rg-VB4JS%yHx%^5VQ{M>oGl!!O4UP%dEXoJ=LTE+r<)1XsdcfD4x0fl!4 zFPrv^VQD7QuKgF6VEPGngQQRhZb~Iz6}i`mx2Xdaw%16Yc|#?Im!=U6)+gt+Wv1cX zi|2V4xK`l~Wz0lhXA1VzDhg*!6oJZ#E3u{x90ZMr)>hB#7VtCY8NoY$7J-|@^f`4U z3A_F57Wv$Yz^FRf_HoxZOjw=NcGIOL=vsXfZrj;|SN7D+2$xU*81umHXf0+IE;#0o z^+Hft&;9T`BAQCQy!a)h3)gq**K7ogVtcMcoNXi#i+O!iXnQ81VXA?{Q-O?PvB&rG z$&A9;0QZo**AxiT=`~Eu|BUJ^;-ajAEihR8n!awX7g)E+Mqht1fvMd;{2rT*!9KIO zrH@BT!EEeuh5TqO9*oNMbGx<#cdFFbt9kF?t%`*ydGiqzcwBUUm-H}v=v$55>$;7g zLfPT?>K+;MxX+a^y_&_ClO{4Ys?#u)yoXlLMu+W{1Q0;t+6b zx5@F58b{|fNk@oZ#%$GS(Yk9x@ao09q4|0@`WKcowayUnIIUoFsLl``q|Rnoy`w@W zLB_8`bP{xmInFRikx?eTr*_-qFeVBH)-Wa!kx_{0@xE0OILhpkrasHX7#&tR{_i`C>`KnTlpOImjMYrm&VSZ#4u?!4l;nO}`i! zIaM4dO8Q1&k8?|1)6XRgJtSN8JCY2|A}g2@_8SlFjax}n?*ygy2gTAXDY)vf8YuLT zjK*~Fri8>Ccxrt_YR;q?)W{F#lub$aU^z-#;7A?{^61Kq*Ka_~s~tgBva!&rc3|c0 zl~Le$%ytp|NC0D34TKaMa49P;#v`m7Dk~`8eN?JI&TR5i@8}}bj9XmM{r(4CMt5fu z)2gw<5lP>6D|0rMSqNkc?fIt;?10u$e8)T z=1)i)8Cn}ysBLMB@Zwg=Om)`~#>T|9X$!7EUtFbl&h}L(kJ#?d!c_qAlhLi_m&Wmw zmr`M#-V)N@c<3ecb`}rl(22P)cL1}|ho~`y5g6EKzc{xzhM#}))+(%)gRx6@V5H+5 z-1hw~D7(eqM++q--$y1vw|{f7+-nLS-Md&As87V*8KWo1LTCvoB7Qa}9xns`pVHBh zo;r9R87BR+cM|qR_S4yVG{Eqy?6iK>0n{FBR|^jwLn~^@CHtdu5c^f`m+ODw`-htc@Wx*1qH81?(-Kr(jD#vDnnn1=tj zQF!*pEGmBTe9h8F0<+=y`dYaKd}tlDu~aaC_80kE%!8Yd>74HI*0MQ#wR%nF>gWja zNt$=~{3Jo^ekgYp8^w`#`4#-`8(4Xjoiplk7cl>BKG3k*fYFr=ELx%Dcl>^)P7+l9+3+aeMaC}}{GUq@13^J*dAFC) zcEYjg{f-A46Y$#JjxQNS6p*A%JNDeM2lKQ(#cCghKI?`ouR-u*YGH#$QL#g>kiwP(R5D9i~NQ8OiifivR7qG$T zS89613ff+OR;=-)5DoM!ZiQ@);}9$7!|NBzvFC1L_TPO|=x?J`)t21~^V6rv!dg_g zXF@&CHA;X|>v$*a+XG;Eg*TRe`v~GeR^#Im{TM`fYPXRw4#O@c1<3`CpnUx()2X63 zJoD1jgEM{sSdv|a>u$C}YM9vN*Qrw=D)%U9s{oDx|L2s8D ziyZK6*@>&}cB|mmMHN?@D+8gYjY&jyl zXc>&Ik)A}?yH@hOa%AXEjk)uoum|`1Zr>CSf{Ao7W`lijci=_+ z-v3c>p7B)vZydK*svjjYNlHRXNvI2nb_q$S6cthuQ9@`SD?~C<85xBnBV5PcdvE7B z#~$Zc$1(r@kMAe<>-v7L&*%MqaNo8)aMJ&-j=WMJE-iKKp~`_#eXC&ves7D+kbOr3LwoiIf=qqDWf#|#`hf=HZ3lu|50v4JD^IR|HeY~v zg3FTnUn+di`xM}^Zw@|WxSvh&qu&>DJA}Cy2)bsf9 z4W1I+b`c$^FnPaz(@m{OyrP?I^2d1&>N8TkXLB;Z*LCxO*Ox~@PxaQ{v)(B<`bDqg zcjz$0n5^_kZI}U1QkCi_zG>*&M;F~USPgiplfE!J0Wv=fW4oJ|K;UOW&&`^CFwWEc zw!C8=bGCeY%@Ia}n%%!HRB8=k6>EvinKC*?z1d{9Bozy>A4a9=%tK&w#gSy6*9hgI z2Q0Sjn8NnTNe_xO9S*2P@p-JzNyO{d`04F)@aml~*VV;NbT4ZDU z=pQd4?2d21$zZG3Q%(%9zW+SBZ0lF_Q($7b9XpM@$$z4suF)aTwxMpHE(H|#s&>Wc zjiJeI%cu5pbHMS%_RkON0TlA#x%gP;BeHKk)MxG93*Ao|8;`x509Nyxy>$hP*rWQ) zSm<~gc<*YWfBW16PAP+v=^b@&zD{XpL+=E9WTXrR&Qu_^@a-`%v3clYe`B^fIR>jt zJ#qRYQ^=7LMHb;_C-7|@6E=#j!tJZlZ%qmpuw?qaiu1WSaO1c-XwI98A!8+8-CH`r zU{lf;1C9pRUeIIpxPyj)TW9ymB$AOm-{Sejg((!9pIlC6q60bX?Xa}g1dPQ?F+a&` z!53+TQ;*$hVXe!MF{(pB`G(0~?pGJ^gtER@lu`@slbIISagqe5PR}f#dEJE~kg@;7 zE+VG5k`wFsDe%X5Z+2bm91z+4rjKRSpzX;uhv(O3A!pI8QQ`a$YAjgRbgkcuQy)jx zdcO<7jjO7-fC?bMs&w=EC5)@6-`Ievy93RJ;?I$!vey6x+ZwO){aoeimiS9U2dru@lZy z(u+AOC>U`{q5V@A4Zlp%+Kk;7@gvt`pM5_k;1}QS+Y{OSu<(4zc!2&7b(~ZTtD_oW zWvkPTHzgw|xApj^d-gQYq}+;X`dp7pg;%oQB@DrFHuVx#T0ee#f6M!M{U{`U-rDkQ zYY-UKdA&Av>IYR`AHTi}BXCwgx=q-(3)$bY`^O3XgQRnh{oTH&VzPgdXIKdx;rg4k zsKDP~cBjK|&U6%-&&hu6HK)PZjRgsJs)(2o$e-TmP6sMiQS6;gQsK(WhPa6vimOya>f5nr4LJ;xXyP_b@fP<)=Op2d}xfTn{(DY%fN%c4w6qA5< z$+tNMpNzpdV}a$F(h1D`Bz)a>q8+w4Z`r??GJ{T2dw4`5NAS%hwaoijt;ojeZh zfDwtadL_=2@OjLay~CcHV8zS-Y!(gx~2X#@J1VcYxw z*+D|vcf4Mw)^oxnH93msTOV%TkY&1bIv*1}{+#DM*931>9oY6in?l~%e#iP88qh}s zdfo|7gHLqZGeg1z{4-4tR9s_V?}C4F`)e{2+%z1FjYzyevllt3fupJJDnLbRQF#yL@{}@Z>fdFrlOo zRHNbU)4nNao$?`F%T2vM8 zudU#ZH=bKR`;H7#uUzl7H%e!jX2wx5~ z4+}I;09p0$julcH8WB}s`N#~`Y!vv-pphY2m~Qv*KqDTcaVHd>BZ7Cf8fn;a8p1WU zZh!fsAI~PZ22iEDAk4{KP;>7b{)im6+rz@5CL+%v8YV%7SE^a0-6L~wTkjB*-Al*! zEkrJEc@oZ%Q`%Of2T(ljKmXT}<0wXgnTbO+aA!p?Gg7VbBM zkaAU=-_sWy&XOSSA}DAXP2|UvE_cy4eJRE*f_=3`nmzSJ)BpQIEQei&qISi z@4`fCi)rTOP#oN3l{k8b4%>KM|M+od9v|&=@M1n5g;9ri&$?yiLci%77O$cP%#kbi z&W&UM!6kUkTd@_siu5NQ?rOpZch9xhin9=g#A)yL`Y_-`;Z%=#Zy(r{X@W%wJAq?Y z`U9()jf5PM1@Fs)%TOm@eOz3%6Mh?6^h`MqLv4J8-Szx2*q6o?6>UBQoFrwg%(y`u zx!~P(qJxAfQCHox%_ec-Ys8|w_Ap!_#&pG-jU%rYYiUqN7BVUS@T0|yz()(e*CDPH zi0U?WNjx-(4i8M^=3M)_GGYK$bT^@Gk}Vzw=Pe8TKD|4eMf}$ zw?nPxriG5}<8XT$7uC;}gwqC`>^Fp`(QD$Me%t^RZ|{C3%Hc5$%-{2Q1pXUB-J>Hb zR%HW z@kiXSnFk41VZ&?JdfLZe)~ZH=rZb&g6$h75 zGga_|j}QxizjsUV;}|+BQ9WH>%aNgGG30(#+zeJ!>-wG{($JFS_P8up0`Nb&`|JINBUXQ%Y5cVN{G{td2V@V7lzCiPpTCM_ZrZkL{A+Dur^Gpm z2CDTF=KrYhYh&-&8_iNo8{ufnKFy>iul`lM_;3~el@>9xSLnrxzvU-vpE@xs8>+gjR6L7 zT74_#k+}cHm2LmF_uxy$^}>LFa+r2Gs=;|>6yz7e-xw=Q0cYr%b$R3rTxK=*nSD%! z%gurz6~D((&`Rurllly1vA;|H<~oTJM)7}Mw&#KOOTzJo#t*yZBJaX=zt)5=hwwQ>OplWyiPx17Wxm_s@WV(gwle@_%<^Zwai!ces-6K;qwju z`Y%Z(_=it$GUN~)rvF$+PX`VFv1rIoLY0V^>arlCzGid zdx!7$PPKB>_0b5bQ=EmBy>Ge8f@)C8G!O1_^g&}eWCn=(V!~6o=G<{Q9=FMGGQZIQ zb*ob|ewU}A!Ze5VD|rS?StV{>eLaW)56ljJZ<+^}j41b;ic1*TE`7_{bpVt`NV6QR zX|TCQCCGfd5%={;9&tW2i*pu(N4(f-q4M~l5Qh6OcJnh5_6Q9k<77zAL-S(b3pnz2 zE@Koe??4Xe_8h)nYZH;bMFbTqX>(^CB3P;@QWy7!p|txm@eY{Bu7{aJ&$@^ZcC-75 zhIkVk+rck>X5G_&d{ihewVnizs<`pz9plKK;B54_l@v<5+g*msXkBFzjj) z70`Ytm63SsQjIFoUok?nT}s9#nQUaBO>AA^!^Nxd=sLZ=+X%rX5{nxsLNnh zy*6YT{uDphc{@iHwnOU6m-4UA(}3k_+~Yx2GRj{wT0Ijsgo-a(SXI+F31Kgt9Cu$V z$Ea)dIwwxd?)7*KZt5DGr`q)65sAmiS0vYYUsak| zeYh1)U1e$Mlbu7q|K1eDWt4%E8QJm6-X=hW?5?PwVO;p~5`IM!;nZ4LU8DaD#(PMG zZ+kb6Itt%L56(;j^nP6`+%kx7&6s~AyUfBwbE)6)p?WADlsbzu=C%j-owM5K8`X5VEH+ml1Cx|1TMztFt8Z3XFo!A-R~) zbuKSivY+YBq(JHJuplmp9vC`j(ZAIu4{7i-dXMFAc(!!-*8*_{q!|WMSW}AkEw|bq zUu?#G^d^89+9jE-agz|4x#QNFXc|1*JhSh{gojf$rv#*&&^}l3#PV< zN{yWTxbncLgt?FiVA?FwypfC#&L;>s|^=WVX5Cj|s+IbDA9O+nagf+rRFi*KH&p z)T4>XPYD}i3ea9b39+~s;wbYQ?+(yFsr90gaWoY&W8M+;c8sDF`xC{u!Y*)m(G;8G zID>A-&QWDsyC7XSUhCDdX59LQoznK61}94o9)C8`1iwD%9Zxi%<9N1e2j4ytxcN~^ zr2uS@jMaRwMja&2-OYz2;vvppaBT#YBk!tyJ06jz!e&rvV!V0en9i6fN0Jqc{pDuHJm;g2ThNUZHsFh!@3pb$1@YN=(<~e;h4}Yh@Gm*)MRhK zT=jx99l=3(y!9rh%ceH?TXrn!oXH#qU(&4^PGv7Q#(*<8&9b;dkf6`m0TcJ z%pjLVN!6qHMvRWV>G_6z61Ffzt&P{u*>KDv^O)Q^Uy?($ca9ZdeGgCcltn%AQaBrR zPc5R&``(J;sz%(ktLbSxD>Gq9N{i3((=gP`$6W?-Z1 zMi#ZX0`z@2fBo6dR{R+8#XXxGg_%*4_v&|LqDN}lk)YxMOv<-aV|*oImW+Rjk|7`iI0xfqOkE?F^TS%fYf$L6)Zt>A11VepVfF(yBm-mrLU3{pQ_-Y@8x zj^tyHo-7pDp&R>)6pf@&h>E#U%{N#KXV?}@zFAW-i1;7rXk`QTnmP4LiVtGoP=_Z; za1E^3xYPEg4}hrS#x2sL6jbohBIo!{qxR*7@?(z~cp~qpz&Xh^6z_bJ{Vi=A0y)Y% zwNvQG^1>$i&`J@0eyFnPJ%28UJ6{$&s8owdyN+Cp9-V}C(IW3Q!T^>B{yf0(cnZb; zeLfVFF^`ATht2oL7DAlHu^hoOtZFM7FB@0R&Vf>DsY|(b)!MRKIj_-cLcEsV|N`QDk@~*e6zckpSJX`Ylx~ zzrjm9i&fix35gpkV${V((C3Evfd^bvyvs!0|AIk*K!ZI8FNF?5O9)?xyb=|QoMxVc zL=a)msVLgRst(*_eP2M^fCM5rcart*%!2ddxsz+CeC*y7mfGxiI+;9*s$0z$)jDf{jjCQIp)ml7bJ(VcpFzvWLT4^}9&LGM zf3k{n!Ok>`cZK3D7*f5ZdPXx7>ekE~w~5R^fz@6%$+|Y=e0=s_S?~~EzCDyqeq0Ei zuSvgaT-rc4a$Y{mY5^}_FQ}lKQep6k-U+T>V;J3k)Ujcr2hwhzE#Ij?g+{B-ITij? zXq|cxS$1^*wiZ}fCWMn=+lNt>whXQFHm6>IcIY_<7F*e2wV zwmr5DUJcB=liWXue4B`3TCJP}5r6Ai(WFisZ?n&Mx8B>sWC`n4-F^()FxM{LJA{Aa zZqlM>R$$UD>HdMQvtUQ;SmfbtLy5fQmy!;n`2FtD&ucYAt@u~#6T^ohliU(lBkz|9{??@mzyDvgko(kt~MwmTY zn8C9n%~^#f#&GcR^$2MWJ7Br?jq~)<2zQeIWJM2=wL4z`U zT5;wt`ExhOe5>^l-PwR84!3}{su{C6j=Abq_oB#_qlE$;bkLA2;T~J(6SqGbB%O6g zsLT9ypG7qjL6B|xGgU1ThNYI7-?bh_iT9k#-;Ps3oIAp(<`fY-+uoR#FBIZcWvi>L zd4Hg0LwI#VzaMn{jJN)dlfX%vvOQur0ZLi|Qk;%c=#$}ScPwmfov$CVr9vV;B(`43 z(qvYX%Xp=!{AdXH1`~CvL@Bs*Gp5HzVib}keC_>LDQH+|#sBfa03NP?z+}NrhBV*F2=% zlUS4MYl7V!FNQQbNMI%WTd<{W0JGm;e$^Ja&g%)2f+<2I2-z6oAi~@R_3F)w;=dUf zJrc2fKVt+^a=OI#S1-ZkI+=|3(tW_Wy8nfJ=?tC|5HvegLjhSWLqA`Wev~IFwYEkz z0(Yo%uMIC9=X0;h%9$rap~CLNm*2F2{BUEh?6rP4^lWl2RD2$Z5>6&8)kE-!?WORV z&?-np?7dVUItB-0f@>UvDWLLUq^dKIj?N*+ce#-&ardfDtH|pB=nviPzfq6~-2D+e z()ryGnrnRY$gvi@^82w$MEErB$w;2Bku8Fl_q&3}RfeEZluasYkcM2AmV9P!XCd)b zthsP)Gun^2vEG&)1rNn@0m~0aKq$4kyrSHW*LfsL+Z`6+((#WCRfoILO;Y-PIK3HH zT$@m3#!yOWje<47by?OHU7)olX=5ZcgK~#NIVuZA(csTXmYb?mkQuk7?^|mN zklm7s4CdE+M49yI<-}_Te^a zBI3krBU#PfRq*zB_Ui1VLD08qCVjXz4|(GSt{#(vz|=D^oO^Q~2Q^cfKXx{u?~Ug@ z6pMejo7rDrX|WDtLIbz7o};0}A8U;V=A&@uYn2zNwG4Z^B#iro>Y;_0<-vcE3TC+) za|!_zc;sGsfj@8%Mwm?pTF5CyNe1+n^xpMrI65S zj}gbh?tV1Bdgt``${;MtG#cJ^B!fh7==m7+1-#4U)oprd0ao(DR4a4Hs9k5RVqfWm z4;e@IRojk$Z3Xl80~?p1p!wyToD31-xAO}qOwtiW+~Hk#8w7f*{bzN46-qQu8kLOq z;4j11fkV!8m{&NJ_n+clJY@04PsO+%QZw~*bJ!{9kxai;tu_g*52mzwKlWhD^_k+l zQ7RffcpzaBv)<2iLr2B>IVh5-)6b`Cl59nc08|Tp275r}uHUyc+ zHAYgQeXku~rY#kXRjsZX22O&j7E5XAlSUA5c@Ry~YDQ&u`Lwr3R&jv8cYpJ`Pv^hX zO0;sAh5nEoOS^t|pg=DdJ64y&E&l$bqrJMxX4c`Bk_iuV`#eJ_$%F`jp(~^#rM7>tJ+To#$vR67aCXH``DdBfkv4)#m`Tg;REAr z_1~#(5I#%JKc>z^_>lWUYodM-Q^JL2-q%v##2r!NyVddVo-9r0k}n6Ea^Bk$;wzY4 zvhZQAb|b`%-cHt&qoQh`#!`kF9m@^6p#MAr8+Dp@tCAUbRwcb?_WBUW?+q*e`fwbi zT>2jDbL_#jkFxEhjxC`7Us(ntbsSW?a*W1CsF3(GZ(P{A6`%cyIa4PviC&W5<)4NO zV(SUsh&!#_s7yZLl_r*f_20k$GL!4M zC+WyzEwNqsJ00I7UH($YRtW_{HeXo=GLhQ5t!REb4fRj9+Ffm;pq6WeiSV;!*qyzN z-Q-IhuwJUDRWIixD4AVp`&2&|mvG_|VthmdLzoZq=W2X@|Z-zE2giO?|pRR8GT z-%y{sC*@XID=c2kvB)oCpwRoh??r7I;qZqqWRtORbmu?u;@YEFC|0X0B1aB@%R54J z{#FW%owKDqG{1v~t%P33=#8L_Sig1_c^+0%Nt=j&$yk*$x$|{;F&JlCJo#P0q?To= zwaHfCE2zdCiSF%hgwPoc3BI6FJSnPDz}icOL0Nf)EjWiM(n+81TNXj|11s0FOJs~l zW#Yy98GK333mzmE;n)luy8k`DREV$hVJG>2^C%hX5aRs)&MtV)K z%zCz{@6r^0Jt-ryWJ<@0aG7Wwj}g2Z&?(V4K?T|(e~Zl98T7sCb~Hn27>c6<3hreu z!r?b+3tA^vp;xvMIxW56?3&s(p79~Pl(`(tHCzF$`6ptJXuoN32m)pF8>&6#P~IrfKA4Y7?S3JRo2*)en?w{SyWGYR zkFlpDS+rw%zez%3R6lUe_ixr~Nrc#eh~;fBsVKc^^ryh~5g7PMJlNw`it|l!+mdny zA?Ah6mXKqvcs6}7^2$3FwG!7CJ6mK5K;XgF)IMm#>npc3RjcTzd}?U}@j3~Nmp6+P zek;H$mqx;4jE9l)Ob4^JZZ0PMDO0-HFajM{_H%&e2v#cZE!LZ#1*@_N?KfGrU>&+Q zp?=FOI;-taT{}CBb2eI)si#KZvd{x2kFH*5Nnzoozh{8)wMp0J#-Jwd>AUAVBltM%?~%I()3DatvFT3Nd#u35?-r$WfO!8R_1D9wz4Uii&ub<% ze;;2V(hwEyChX5o>~V$Jg$YssdoLt*TkO2CeF*4>S477CHUQm%d80T79hCO6b@XsY z!bPVK%+b@5b|H@PDeNVe-8Juc4Whi}^TmU4F*; zuYm-&_4`5vnr6YmD(DQMI0wr0Xyo5b%mkiS-r}3+oP-!TUqK2h2@jlAFZpHJ07O#5 zo6+x`*#Dq8=6O&(?kZ#oV6LFTh0v@tU9UQ{ur4XB`#FN-aExB!o`CnhRrlU5=Rj`6 zM4Y=79c|4%RWI%M10TO`*&S0s$JOdY;jcXmFp&)I^0dsv2MYQAl$1Yk#LHb;Fl-uk z%k+O@w;2Exukn8^(RBPJra`;*vmNxOcPBbuT*SG%TgM`Mr}1}x&L*wSDP(J^+_D@p z1d%M)&aB?+2i>QME+cFIu=%cl^DWLL*ix`vv)*F8=kZn{X zCNSXJBCGK7wnQ{B?qycqM8Sjw86no=6bMb&mB6r};mJBpIYk!|=oL}E=^UNJdo12_ zpPm$=-sM_yelQJha2iMwjx3`IaeH3o*aBP*ILUZtk_xwc>bLeCZNQ6rFCBDmDa2R( z9(G-~hq0FQd!a#i9-eCq^X@YY0&k92iUzeq_~GIPBTda&Jo35pp3WmO{x=%UbN(>{ zA|=L~Z(Std3F+FsuY$?|jD~kD^h^V{TIG^lb_{#qO+&6%Nv?mU zX!zk-by%5gBj)d7tqgUXgpb>Pr1Y(Ipt!;5o`|~){CwzuNsRa?YKoZ2?93Vln|WLJ zcfLKyB-Ix2{q8)322UFJGW==@zkHz0Jvv8(Ng0h{NL@qW7tQy>{irfuDvyGtbMak%)G89>F`j5^7uBX(-Dh#^ka}g~5)!9aFb22J zoRyObVo^(Dyfn>k-$1x|W|rYT$3P81`Fob8xyb%RXD(JU6mx{C{7#zZV435;69x21 zIM};Tq+UmZi`~P1Vo{yQxt(nNLw*6iHdwyW*hfU>fi?1%(Q-I-i7YrxNx%a2*<}5k}Jer;99q)ljQJtEG>{i%Fxqm$BpD!vE7D{h)BtgyC z-NegvV^9)48Q%4-2_C?U)_zYa`nuE97 z>IqKQ{|eKvj^${m$$n@9S*fovY*(qwphJ#2l=NkF^ zqZ#&AS|7_^-!pfz#N&y984Q_Hp$j`R5e}5qz4Qy7Li@C&UR_qieP2upipu6d(Lg0X z`g12f&z+z;n9?CF!8~+0oP@f(L)}3-3;5nT>*^Shf#F@38=ht?Vs=&W7Ey=w`{_-% zb0lC0asKK`m{}vTv^?*P#sJ9t6D6D#Hv)}&X7>muHK5l%V~dzGf3QyK#`f792A+?( z9sN>e4w91T~?G2S>u?#M4@wH~QSFUO!ps7*{^R7*FZSb(ZjuTCpOew3U~)m=op zx3ufp&1`D1#`k_rydi^I*9$3;v%Tvcv*Xx(ok5TjyH&|PNdxnz7p-qzZiI1ygu^dK z7J|btE#K-K71P$JGQ68K!1scShO>7kqC`vfrI|Qj9zPTSH9*S0n`*NNC+p4p>^gd3 zayh*?r| zMYf5r1NXU_kZ;N2#&!O3aF8qb^d*mmyB+@Aez$oTrT-cHT{Osm=~bneBV4mE;PObl zhd2+ODatN>G!lHh@}W*3ZVc^~r;CQ2=#Ws*@oGwJ1V!_YKX>DI#{;K|B10cc!KX`t z9_AazF#G<9yvOJ=a7;bfZkGNR15`dN@)i!D{D}U;H76QY^q?tGoVsf&+BE|4L0PpzDt8^D9t}fEGlF`QN--z#@c4+l)pE^_jD9@tX+`U zbAK2v1|2v3dTbg_)N?7bR?MKTNN(XptqzDi!lRPdT86TLo2b;2_1JW6WPjp`7Cc*N zydH!k@Sgt>_21kePz0ZcB+33o2fLV(XvP3`WJr=lRpvob`Ps??%0GyJ<*(k{WuPY? z(H*px2DcK5jNV_TV7zE&AbD^UZjbQmmyXY%UZ>KI<;N3PBp12kemDbr{Z~Bwjk-}_ zZ03h}J_Ss+lQazuF%u>uPoHom_Tm+tFL}Wdj=9O!e-qQ zBp4iB%=yd&=S->WbnivDUDo~nuOSV8WIqrJemVp_=L=;BI~!q2=>4`gnu2Yb(sk*z&A_s#b>IIKJFTu|Eu>CiU24S=6WUF!I2quxfKN|EU!8vMW zlX&AOPLEXdSLje+$f_QA_Yev}+-TyBkzkQf2%b)-W}WVXIY2M9+G>U?e+_`LVOJ{=v~OA9DR(reZTr zKdcGA97M*loorS&oCe^w!`Kt2b)U2%+V-v`ui6AG_S_s5 zsCanPB)PgANGW#`&t9Y8Wx3Id9(7cpHbqO6@0`WaXS0uU|1uz9!;(^uQv+xg6;T`&ah6gs}fEnK#QRWS0*#CBq z-ct_->WBQ*_fMEbsjVkQ-8NF7n4C4HpiTs-_76q3cDJIy%0J7sv>8lw=lpNvVn5zs zzEYyXw}5(<*>|*psc^%1tmUl8EDYa_%<^dMMFFQk(T^PKIeF%_@^iHw&<=d%Z>qk| z`^S6fVPW0)@P>D6aKs?Q;h+^&bQxogvbM2HO=3E)`mxm-Z6I)e^|HLs3GLhR2j><( z!Qge$%$2QeNG_1gS1D-(eR^;RYK+5fEw$Jr)=5ZQduK}&Y)0bNKs}L?C2SKr7PU6h z0kY$-Qk}v(K&OIjpZCig;7s5?S7ytkHe7r=ZTL9}RP8soR)mm2l<#-o`C=N#m@4W= z%XQ-bo4x4CpUvR+c3fA7r4jDxwFEd-D!2FHEiq$Tz2Ppr>+YOQv?_!Y-?rf73jmJx%Qs;N3^anCHUSVD+tcwj71v1Pxu7ZzZi&^Y8!?>G7pDSG%0X{Nj_F$Ck52PdCm;i zQ(@Q6au->+B>9+mJ=u&>ZuXFiv+FDwQ|KohESo$Hn=f+5_Wjsf3<2xMka-* ztb&*^P!pxcF<%@68*d%XAx$cNy=D8zX+1wTlKn%oC#N7uhwp)bcqi};6rZ9SPlJ$g ztG30=S6F$qx7UqGhie-zkjJ>EfM*}arNg?z7@PQkPqowGF~vS{Ot7gwadCT}GDeZRnCawN$ zfNL6ui?UZ${YRj5$It)9cl?I32KptP4OH;|ah>Zwhem99e0yqAZx){)8@X)xVFaIN zjk%DYO@L3k^M>;Qv%u6pDAuexhzXl_d0vtn0l#cn#<6Yv_{HoRXJ^MCYNmP5^{sS* zjwQu^D1QYe0I$+|vcgp8d8vgP0J#a>?9}8~Qu0uXS+d9_g&Hv8SdJc_csQW!WP_VCgRY$CV zipf!jOrsPkU~~2@<&me07`HtmwYPH-8_xec#ky-AxhiYMvJWo9?)=(mDcuUtVYyx` zo=FGG;8%x+PE3P(_nkQV_7PyL-QIP2ssyFo<%y2)>+igLR#YN2wZtl-Crsk4zI_KENyX{1=)&1U$^f)X!_^ak)v&c zs5=w&`D73$f#M>(vevx}L;;0Q_vv+@`7Bo5M}+~u{!tF5*_FfOxrARL)qS8r?E4_# zK*W^FEi8K~Jb=UA%XEubEAFmp=zFI#4p%c|Ax*6q4>k$rvUN0I+#UT79M2~)Ati;; zI5H0*rvooB9j}77mri~7vy+J+c$ZP~H-?Mw_f{(ZTHP#sCjaz#ms<@@&WEcn+@FH3 zj%`sAJDcIxVg2}bu>&A>K1`Y?cK{!)e74{dp+KZZn|<}xX}EXtAWiDaEKCLVGn7UP zQ0}Jfbd*&Gm?+T--?)DR0a~%1)u$1tY7o_v^6i2DwjaCXuqzFYywsBU5=8;NqcPQ6 zHq8L;tXIB%svq|Ia_@bkT>x$Ar_17-2f*Z~$L)+dIyg#2)@u(m0kw2=jptkm8vha9 zhDMrRU^>QOf|JX?moO+19Oxe5H7SllnTo}clu-8uU=wPI^w zv!;*RD9)Be3AEpB1dEUR=iUYWL8pN0Lq;P-;NvtQR@o)Ro9e;2Q|2UXo75={UFGQ%4ZTk~0?+&oZg)rnq>d zHw}ZiKJSC%5B(@6bfmUgZ5U78{_ok+#VUM9oUKvL?m@j+o7A*fL{jVP(+8_3V8Hw6 zp)$D&tgcovHQPjk!dSD}Fv|syC3t#iy%-1nncJCDFWYgG)UDtHs!L#WVf>hx6b;_y zIJ5t_Gl{=+Pel+Itb`KhKM$3gNVpL2LRCj(-<2f%%iCp_CjI zvJdz?Hd3SEy^>U)oWt4ZO1OK=?%)c@9e(wwiMs@@7{q+7ZC>Y=ZC?sr#;_2YT(tHK zN)Yg6HMcRTVgX+(MMv#=HH;}Oe{K8Y79iHVfm`8vDVFs=&M?@)tmbeuGd;YW0vpk;UCCdveCS59zf<&lOxlfY=mI7#DOro36QL{36;L{1-kZFdp)-w0ny|hIWcQG zIwuv}C{JNmd;dtG{lq#4#^1~At+ORTnEMH%N%;kwNs~NVyn{>aN`_{DfK&~f7hl9r z2baL+R-VJ&`Ciackk>lZJ_oO*ZKIjLmB8Jq<`12%)lkcy*me69tJ=S7TK+|H9cWHA zeN&$_h6%pvcPSrc;L}`Iw1@e+7mLEID<=~{_=MDvOnNtrYUM^4F*oA3t)({pN$r@o z(?I(8Bn4##wEQwV7QkRmxIHv}o#V3qlgPSRhw)|Cb?$tgUiYL)nrb=)9IePq!-wXu zZ6v+wa3KxkZnY2|j}s85euQ(Dw;;22s<3h^30O{_7)+|{!*U+^y^U{&vC1Rik_v4C z3J%3G_%}@8j$z-P(;ZDP%_A`SyP*~%9?Wjr*3L%AY-jB^jUeK*PqMiJS0C)ORf#z* zSA>(oD&dcn$6)QM+@BAfWH^&hE+OPr0aJ;M#-LITmnb*t?s<*EfY`M6wPSrS;pcTU zNN)^_97L{cQd_|1GJ7M7!W)3?1<&?y>q+2lbS$zsKMLwxlkcbKC17hD_LJ`=6-p>Z zjWb#O_$_s6D*SC5yj1ggL>(=FyBji^J_*bN|MNM!Ii3nRLhTzLIjmt9Abgu1stzcBg_dPugL&bxsfXo6t+vUhm68f{|0LJy34+;2OP( zjyzd&`7abZ;J*3y(Tg?hpt6BS<&x(ZR>zqi3QZ}2%NQa2OoT}-z|_b{NY#iWpBJ*OCj_r5L(b-^a@x$}l!(lE1g z%kIlAi!k%gFgj&%28pbvU)>xZ!=^_^_j}tdBHhVBdzE(-Lz4EiJ$p=o?@2*Qhv6Tx zJm)>=)3gAUU*1GAou~&^}`GWC&p;yq|dc2MDVh!mfOu zz|FIZS9Laz081cu_Nm@}%#9X3@K=*ft>2I7dN3;iycSB7{8ZNWPw}|pHRnlGeg{I| zdpmJOjZ%N|zX9|M%BAQ(`ig}SPMddZS;RASYFs?#RbVEV_WPLk67G)Uv?xhWMFox< zA2-Ejf|K^JVlbUW&D4}aoHm<-iZs@Yt?d19=gi=fuuHd5Sbogz#^^9if4@-qbFu-O z_DuBh22&ti?%j}iK`n6iAKk~zHI5HY3)|($E#k}wR`flOhMRHC_x<;$Lc~(w_p(>3 z&?;ebh^e9-jy8$q6&y{2J(iECdtZ*=!`a1%@7dGv&sQ)gAhr|T6ffue1TW;Kf!EVl)&FW}gG zVX4P$GAe42b%lJI;6r+r?~#k4z)<+dbjZ2|?goAejVl|+zD?5U8ZSsNXX&Q8dbAUN zQg^tq;UGG>Jy8fP>46EBW5zR9<6!qmS=-c zi9HYQfuyhdf_Eo*~RScmYYdXfizji3aL+KIvUf-tCbIT)*VTo2en3+%Ka~QzS zX{Y*l&JKXHT414eOgBui>mM@i>w#&-=%SmI(I|aDu=dvD7U-1z({iM^1zdZl3|&>4 z;8Iu6?Zn2f6cQVsW}`|eBa*xwI4oTNXy=z zOa)){p`)eG8*u|IGEUgI4kYEJ3f#XhqE=Qigqyd*aN5m1I_@lL{GHN@b)p9u+AgrIMzUReY_4RA!2jQbx#%$SBDc zo@-|By~lNNuW{Y$+T-W<_xa~J=lPuX`}O+g95mNjd+#?`j7EM`2{FDgU~%T1_%FK} zADopR)O@o5iTg6Xz|L-XEnYg8a(5cHa(jAi7aqg@H<~=Uu??Vp;I0^hbq@Y09gGmW zMudn|k3+}Gr=k4-r`u<#Kj1*TZSaq!7r(M^Se7oU2c~>8&i20yxO@2!|CzN+)KGlP z&wYCm|Ii(U06YFd57wlehRvOdJz(vDwGexFWJqoafUpK!6_ zHQ1$+ez8!Hh@M|R)eSx+!{`<9?G8O7*eKhau;u37iD?_s-<1s#?_bG@ScoLB;Dn`ZCoT zO;F{e=AMv0hjm5<9d1M#1jXf^ao?!--aTPK#`C{@ziuD$|Dxp##s)&kaLi z_KWTtW$WH_H01R#Z<~V|m|vc=UGc*h%*e}Z?baWFk5|Hi1qHjI*37SixS0mQlzhvw z`z7l_P(=;(F7_0T7^DSY+o^aYcd0a(fq zRZSjfgzAZ}L(Vr=G0CBJ_v1wp$YkV)Xy_Ng*jj{rHCH#3O)I5LZ6f2;eZB3QF0bI% z`4WzOUIW0P_R{*=yI~M~v-Q!}o@u-m&laS4ZVa^^SX~vIpM;4W+VYJrDDZ;uCnEaE z6wufVUm9M_GvYqF@et=h|)q^7~iKR50Lxkg~K-RUz`dE;PGcf-)&Efsd^ z9NCvIH-&djyr(~)OvAg2Pek{;NCOGJ<-P4@qoBg8BQLX93Z42ZvA1u|fq2kin~Z7( zoRGLk{<*OpxwcvNG)gew4=0<8BcU4-R2El_>7%&FcXIx#(*mxB)i`ffU4yYHyBx3j z8kqQ5`lDox3J-(?e@Q>>0DUgoUdf4-zSnZ04mS_}_WwzVw(r)FtgW z_cWgYo!6!ON@Wn;?{$|hxp#re_bYC$o#UXs|HT7!&UODbAaZB#rJ&1TI*(99Hxz8p zei#u;hWI)o=40WR5N}Xa+sL_vV8Kw?|G9Dk51Oq#C@O1$fLuSf|7M4Q{q(!Sr1kk8 zpH+Ud>FqRpI`-I`J9!i~Gu7PNAwfan?U_%S9VCeOT|aVLxEhaE`0uy9{12;(l;un~ zr*U-0Ymv9|bC`JCcG%v$8zOI&s~ZncVO}j)XwQZcly)|Csg0mv!n>eT=iCa>=A#Kc zL!ttWgc1#%Bv--WWHGHJs0AqT#ytghGVwg&$LC?0R*)7yzkyz~i~{GCl48yep$iYk z3;v)IC=~0Ent$H|q(>L6`J!6j+7YdtemOJ9Uw5v7tLD``A_Eg^W>)G}dhz+evMwR#qce>R=5nqwcqZ&ySVABj;>PvFAe z(L>YVCd|D>?>{2EUI-1;v+&iwFXVvHi{xinjZh}-Sm0?<&Fdf4-%F5%bnbV+`CI4Id zODmQpx^P=QX~nlTg7eqINk9ycH^_(oSPjT@W6aOvv<-Ir#;tB-R> z?W2A;9{QEjdfh`Dk1^j(YGx;#oZf%Hm|hRLQ${>jR~e{n7y5{(-3Dsn9r;UrwNSc} z=TJA^2Bffdju(V!u$nI)j;tcW`{kN<`FT{(JC*MKMZOrGG9MhYG#m%nIlnh4qtj5f zS+ZxtdkSbx=y9FYBB8qyo3X~VZm`<3lDKsJALbnROL%r|=>PxsxgGRn0U`wXpStC? z!2=t+`h|uGTz%kM@N~;O+UmZ)9DZ*Bq;+fG{NQPYOPZXgjd_~j-BZ76?suc$wp;vI zqE#`Q?X>TVDJ?mXE)xOn#0cJ|3?%lB6SlGPiUGcOisbZ*tL8n?Rip zT%Xu=W-)}FzDG{7sPq0~9=D|~)0Bf7|eMd|7v+>u@g8AUKT{T*C z)M(QSSLK_5>9#KZ9C6(mISE2fnbN-S>2b}+7a_+_F zdEn&_xZ$Wg0V|5$A1@{>U~m}CG-T@lm?v*`$f{X?uf7VXcGywjOL#-&4{v6|JK1ac zv|d}7OgUD<(mamOR_`QDc#UG~%8wi2N2ee-RO#FP@6DiNaxrgn`z-7c9^A_Hq6>(8 zw^MR1XJPTVNJ8Y(Sdc$+G*RwI1M-us_LixS!!ds@c&Sarft|z0*0zoU`P&f}+4^}@ zE8nK=JI|*2e8;l+phG|2SKWS9_UHhl@%{Xf97{sYo#mAGUsmwO6b4-Q(h52{4;-Wu zMnG^m*7f6uQM^=BYOi*^00KFM{M7O@U^ysvPDVBv%s19|Z@n`H?j~Z+Z)N2wol-;9I*gU{Nhv`M%mq+G1I+5`n;&95(yQE=@?`Vprmy;vlv+Ra;_`qp6CP` zDUocQJ+hHk)n?CO`aJx6{^ZsYsSzI-^rh5Gl3=Hn5ruqt4ox5KU=@v7fF~X|T-%$71_M=|&q;7JQc*aCx)iAN;nExnPhr0Hy5W zB4Qn#s26ub{!1(YU4BZ0B}Xno+4#R^`{+J=XEo*IoADi2|Hi!@$(sNvmONJR6YVfR zk#s&@i-H@(ij$T-snGv>>RE?CEADAz?9pBCFOi4udIZILaPJAiaj$EYU@o=X`c;Jt zt!YY~+~(7ezOCeEYf?IHdk5W)H``&ahxR_UZwv4{>f$X?axdOimw407XvL`kiQ%V4 ztFS7P;L0U30C^2fG^2?bEDjv+8I7Sq%4f~5Rn86gwBt?U&Zs)9sG0jl@+yb4iljMf z@imnGrjVvw`3j_~&Z++hD8U#`yU4SBQ<&6tbn8TC8!~cJ*fuqd;pHtzHYVgk!U50V zf!oZg4v+Kl79Y>8d$Z8$_W3%v`9S2v$J}LDuxE4Evz`Gq6itl`9RhAmQpZ7$IS9}_ zyT^TE6)G)-hi^5fV7?9UO=xB{{xH=awb(QY?F!^ruRRE%;T8vZ_Z5N7mBD$foLN-< z5x4uw=Q4O~@Q1C`x*U#f*}h6_@q;X-$6JH+$H19q#v~|;gjJG~Ys}Bqd2XoUrL1i~ zCQm91a%;}O#HL08>**LMAa&!ADkvX_;w3|Qe z=?ebxo!N5fXg~NT{?uF0nnJihbr9}C~H3dQY zw;X;iL&JmiQ7X0n0UL1pq20vS-H@0Fe&Fo{>trcv!dr@pIq#wi*jPf6e<^p3}25<9L zfJTw7!#>$r5MKG%YF$HuQmhTrBGcKV9?~R_-nE|4@3G_Yuqf-YZ zJ0FibsQrU?6UA>OQps?INw!X$r3dIEyjOFMkWr1wbN|530(7e!IX76ph@;=428QhC z@Zq4s{lcs+m{XT}9TDCS1XALYMW0SI(>r~Mkh6$hAGhW8Wp$wHFx!~HNF1IDWv!d8 zpuw;ESx2pY48RMuYavBJ3m7F*a_z`45op`wPw-l@5j4}Y&z^l;i>wWv3i;Mdsx9YF z7X~(_fWo#sWbCO&jV8O_rVD-O-_bqfbaonce>}1<{jDFG8S(!;;2*`L@WmwhO9qN| zYq$>Z5U_^t#`l5v0VuYMao^}Pg!V=A@5Ts39BYO<1&MPIxwiSe>7RP6AbRI`y&*$k z=kb1@QwtD#!HKk_nT0x;)P&A`tg4|+TM`lu_JM$RiCOv`3ZDAfX>Yi57-U|V9}9o6 zhMN>!FXim&$EtGS75ti4kL9>FLi91mOH%SpP}xDt zm6K?|h)voDoGeM0eyLY9F0>p}Z9GlJhnZBbD_WemD%c8xg9oo)3?0F&dY5jwL3To* zY2f@DzGgJ7ZoAj7Fa%$7)Xe=)ukeYc}zUn(lNn_Uld z8pd9qt8JMl%0T|L&zJGC1+->ocXhZ;grf8<`B&7^F*inG*Ata4)Hn2SN;4V&5z8Y_ zr+R7l`SFIkCU59a5lQ^}*Wx?Gz3M0syG}=1xyp&)mn-O7WIcJmu?wsRRg@=uh#+_U zlhi|52AJ~u-Jfq8gP(sZUOEjC@yPG^!<^ww(9$hnUZzR{@$i9oyX+Yl&?w%oDZ2=d z!UoiS#MR;DA18#GZc=gaXx%)rZ)oKirZeDDaksd|S7g5`UCz?Pl zNg~%ciVQWZtIVvw`|%zxMW$YA9`k8cq-}g9z}?0)*b_ewsRef=;=?LHZR6})1I843 z$bC@ypg4`f7rmkm>Wt!%9d6m1T*mNmV9yYbeIuS133h8|o&=+fpDVxKoxuYN`l9*{fToDi?lZPp5t$Z(g#~e6y=^b#D=@Nq2eUr%bddEvVtJrl7>8BNvZFtmhNyJ&N9lLut3n=*aXjtP8gI z72Yw6S3GXf<}_!al^%b>+=+~yi6yRPspD|t?nva@wN6y7_x)AAe;jt^oDN@f9mXvi z1I~x*^nsDn1Q)}i1Vx6pixQ5G!Pm3z&+c$ogbnGIn<{!L;I?KWtIp~mv|2ZK$61de z+0WnVKNdPX&`1-!{b35vbMxK1LVt^=vsgT$H3#N^n17(MYqp!4bs?EZ5`BVMN&n8yu+ zcNDf@yj=GYzKGZGRKHp2iDflz8&}t%NiY+(4Zj~O9T|kkON!LT&;YZv$w$uS4xn37 z^8KJFvuc{s*_K$FAz(a92#fmOh+Tnu_6*j|!wT`$nYE7 zH{qvIJ!vy=SLBF3n`#@nk40SYtEIxrgJ%oo7#+A8P{{f9BLnY78(avFBBH;!=mJTK z1n$P44R+;@AlV}1T826uLT;H|hzX(KyRD5Y;-pEa9tFA4Y7!hcCvyIgCK+D4WxepZ zTaS9@bGo`7QX%OsQ>dvH4O+lKsbJGGeq>zrzt&oh(=tP|^uqde9_nMcBg?@1bL#hZ z$xXv3uepI|)huG=VN&YtML3x{c(CX&83MFVA61_t;n;t6caDd*g8KIRUpa*o{3|<0r^)C~bBW6)vzwLsB>|eBhZFls;x~B+gbG{JNZv@iu zKLtlcHa(sN z_G5pa5@a$U!K=yP_8=XVm<#GXb!PC>@UGpKhw4GR<72gwz%&>&sfX`8(uL0=CQ9E& z55bM)2Rt>Ai|D`qjlrAFIb7R(^_q`EFf=6xoa5*v!}EE5rh+&!ZvN&uulsKUA#u-r zdPnjop4?==b1TuM94P87pbXY{O#&@47h z8%jLCGK0P9b)8Ok8JH~5kZWo`4rg2BxSc&`&`n&W!fL7k4m@M)K9gAkL%w4o=U*@3 z_9hF1D{oq0!E@=+!Q1N`cebtk-LG~39V+tvD>;s5jHdZj&dj5KO)SULH&w`ONVc$@ z4no0hYT2>NG#KBY)od5h1CbgPi{ZBG{x&S7lK+`mwP=ceQ6+U6&XP`Cj$bK<4FU&U zgPZB-#Mz(A*OmcS_V}t^3m#tYt?j2`s)k@%uG#1P&H^bbMXN z&miBdN5yWb9)EEr)k?YAmG-ZFpe}WK<58&v6pa&1n3tSF@;U#@$vy+v+m*>?yK@Mn z<(MyicWVXhlBJlU=rqu|m~i#7FbU4ewg1w!jz{Id$rICuDe!P2IOU}KGz>@D3;$z0 zgAVb11BJXpfF~1s@18IRXAc1rCG!f%Pd}5Q=0X8wNsDvsUlt)m?9xqAM-|$Qtkej7 zoPo4jy@D6N+Ht@-Ym?};5nv@pS9iQ);FE?=9Ljbyv@ZyKq$f2Cs@!SACLg1*tQv1i z?`nps7(=6=^V9HYqVbb*aRWv_7kHFjlZ-ZF>0j7om(VU{K!00c5i|!buy34dg`o?) z2BCTFKvxx&-Om_A-QIauf?+EjzgI1i&$5OBrf%0149k#a`ZcgYm5fWGciWzolhN*2 zz}czhKfogx3tr!TWBR!g;f1GkSmTRNdUR<0eCJI0`kEA?cL^qFcGW{v>w~`&$1AXs z)4X^~%nZr|%ayhIHsP)p<0Z{^I>FEHmq)wcAK>u#8mD<^22b&C&*y3zg1<$p0R6`QFl% zm;trcy;@;q{os~d;68P#1a!>O{xR0M??6hAc_}Fp9}e4w?DcKHuTx)(H}A>^dt#GD zic1&vguXp-ErE<*I-68o|5jmol)l`m#Tw`c^e4U%=>fYN-^QHY&*6cf%rngOG%Qka z*gcWBh%fE#23fqFfwxz-8=kHsgWvT{()6T0+$<-;`QkGjZf;R6f5<-%wY$jyAL^Q5 z&$t9FK_L+idHnGp`1}Naqb2QHw?@3rTcO|db_)2d(=F51_v1wNm>=KU0y-PTjF&m+ zpn3Az2OoE5{4mtuS**2&$RDD-@jeZEkS-OixP(EUOs;=)Z3XA0-jDdN2`|WQWjp$3 z7_F{^RmJmlW5j=HTGC#0kaSEbOWHSsVwv@i3v4>`a=el>VWN`y=|zVcy2mRvJwimavLUGZp8XeaiJsBA=uhuv9k376?*HU zr8fWpo@q+xYHdz{+wCm;R~t%DuE0W1Nqya;`o7b?K@r?I$b9_qB{qW7s)fJ-yF#>) zcpjjZISFaY8Tui@^+^6H^giy&3{+P21j@=yK;~Tuwbf&d=*M=|v0Qr;9q(+2d^j?T z1sE@D+{6GKOJb-cy&nGj)9x$hAme|tp@9-#$avbUz0jn88JJ?3-z5kWppDNgb-&~a zNc?LW8g3zDHd}&)vEwKXHYWKdwvxec!v;deu4-&Q@+h<56*Iw4>dWe(jZ|o^Te$0f zfs9YTG_aVeO+u-*M{N_i3hTlybGFldfPO;hoxaQxJmF_~>;rZ>H`?&j%W!`CEmS-%*W}YTSBYL>MK43(>)A z_;+!8`)4#`_h3?_S78C!BXOs09SCTD;gdTy2UQ(?ynpJOA*DamYyB2bY)i%**`pbo z9K&}|_DtX`i$VL*{qumoX}eiZ4dd=AdG-DFU(uqtJV~@E4=)y$uwL+IQho7#;NgiU zeJGzv4NeoI;mOOVxBFO4VcJ~YCmya5_X97PSByuDyc;{XaEJ4X|88;CxB^#*;hr@CESRL zwwHW{!7B89{G;qS3~lUjWm}(;)$w zh|@1HPof(A---`NJ|Lm^;)Xh&_5A8rWc6_kV>bT;hzvWP-9kwyp1sZhLAiY&Id6NQ<0 z3?FSSMwe*4&Bj}E!29IHGv4f3=&|mL%unpX54#TU)!EIgy0~EZW5{#>>l(IOkvwM6 zJ%hS&SJp6g3f!SqA0*3>j}u)E4COjG_MnqiElI6yW)3d*ESs zHN5a~{vE0v4L${jIQK=(BKa^6NkVKIvmT6?Gv3$1s@P=i+aw0uE3gTR;?KdOTINAg zSH|H(kqG;h>ISIXwu4|m=!Zgqx35!Kt1#sE=h+I{EUNotAWJJ1@~ZU}-Dc+CW@J3Z zSry?Cg`{bh^g?{}GuO4+2ne^06ra^IdSxW2JEM$FkU%fa(g^S_=;fqj4F!+I1@DOfgVGRW`R&w;9{D_Dg$J4M2iCUtrPCAz0e7>LQe|2wOS}XV|nz z5T0*P%Q`j$&qp<`&IvO>M)$`=L`FI&4VqFPov%in>AMPkHWb)kx82h&Xc|RxZu_4+ z)(GS0U&S5W+zC^^nq`fCt@oIm!Y=NtUbxd_#oG0977C<7vOMo~!mcNi_8)VJFjU13 zmJ_wee)9Qi{oN$gf0cA>(P057zHcss3Y6o|drlS&-u)Qj;Z`3WJCBr~X1*7R{dno; zW@)!;y})U;fukm>4=h8%SHJZwK;7YmGf5X>F*HGK^X0DJxM_?2v!lDH_+0*1*Ja0c z$Z8ST`zV-(&tgK*eT3Jn97{>={@MeTU}gG6Y#9~DEF zTF0){j>0rsk^Y9L0-SuLzMVaI2+k(PhJS0$gT!xyq7&s)sQFM~i}YVIem;=%`;yHn z*zzp9b#$~LN14QGa^DfbA8;7gE4>6aa~NLbbK+N?uH-xouk0jKBCU$(5TXrvGhcaR&} z=31flyLL!}&ph5P_LVf=xePHm6)$%#1%mUn5##UX{Q%F0{%dpU1K*S!d%dR=pz~S0 zbMPnOxs3nfH^tOJW|P?ci1i*wZF5RJbg>jqPDSlB;wdT1c^{lfM6ffh6l zrRrLQ4S;N!q0AN2O0<5Zr~HzS8*6zoppy=-?GD;hQ>Q7}#ektX6hg;OhHf#a!9WIWGRqjIHR~gA4 zehxx+hW^)nr9lv}_IYhHNx?UN<|U=2SP7geOO)Q|3e1cuJ+{1g6<@Z;^XoP&X&{JudeswpFCQ>sr~@8b@Mib z%hFLdbFbBuHez?Ip9z-%1)eSqKAVl5h0RuWDYl2c0kgaN#O7EEOnz|Pul8~f+?&)b z{SKF7qgGq^t!ngE&@ia%Y%>jxO9n%^fyVIqNxaW)pv0fw1A7w89NOl_a4VrL znsc2a-gTGr%U)W5q=s_ErcZs~^J~D-(Ps*l)nf+7Z5koURM618>U+d!8qSMfc)aPrEZX%YI6ccALiJwcv!0%+YK->QpPjz=>X?Eqo zY?rg>1LZMzH6Fw%R5b|d!@n?hD-|-GmVKXpXaWDD1?5%obGRq@9JfU9cOa>i%D1l4 zaC)15(CCAD9P@nNBKT&V&#wymt5~S4s_ zz!AK-y=jSgy?;|SiM2Vu8HVR4U0;(+=b*ymlgLzKG1B~BaNV~agL1jWh@aag&_t@x zP`sW7eNy^f3f$|t{zq*V>2Q?+ehp_CMv9K2w-lroOt-W)7P* zyL^`eI$z9#(F>`_`n+j12RsGxP7eYVj?VE80CJogO1W#84i;~3U0LNW_Wnd zz>(!24t{~H$n(YdCgIWy6gR~GbKoq)x&B|0cJ`GRrgZMOckVnoi~q8mJu`w_SF)MD zOc7ymp4lP$H#6a|o@m@vT{7-s+L1-$A45?p@xo0@B5tuMOdMb6Mc?b+H`2#ifb`*z z&Gxt+JhE`BenxK^`VV_jTe#QxN>uDi%Yz1p`uB)y`ka#Wp$eRIq;G3# z8Gzx9lXJJO4#6Mg(oSyg8$C?7$+F7JgMNukS~dh@g4m0}2|i#l3t@-9V_7dMx1DM}e17 zDWdfGR8$k5z>1p;T;5{s?GCG~?S@HG12y~?LQyh#P-wkl5byF)ltef8zN?Gz9=ITjRK(E=%Rdp*KtN$7F^3Aezb zR4ALM31FTa0)gd$K>kP5>wC{CYdcItjm`ZjLxFTybGpANu>sV*+If`BP`G|+!EQ49l+q|{RZ1`t0w1F?70=pLN9_*CV_BjMVT-6F#H>n_VJmWgWZX2N59-|z?Wj;=1$v~RqrnFn!C0%!@rXB z$HB(q$SwXU^7gwWcrH)f(~{T$C%qD{vmJ>>J09kcFY=>c!6zLwc9#ya&cD?D$qa(O zkLNAL8)Gmt>Y!frv>(5B)wOs_=VRo6yBFG9iM`@!Z3rGt=P`?%4J zlZ-$8^F6r4a2p*b#Y&ZZ08JRKq_Wf8+E*6b;?ZZ32-UJ1fcEgFLDaD@&vkPo}Xt`P}L`J6P`wg-OyttQ}iVI?QEU;-~>cL=n6AB4!OdWoyaH1tdn7Mt3< zfM%<&6i)7@qcbS8I?7Pc?8OzTh+zjRw4U>6>72qiS$w1*I08x1FMHRzNAN)5<*Tdw z4A`qkJ10XLg^$Kl#=8tt!L&z5%zhsU#AW*2J=iAjmRp4E$EX3c;;_rI>My~Iw-vuJ zr+>#rrWN=4-eKU^KNM+tCKKHTaqx3+749+0GR+AcKrLPf7k;n?Yd`ZdQ*I7nYN1=; z{n{y06r`B%DaAe)F8)`W@-Xw@(eLFpOPG-Q-?q~VV=y4d-gl?I6ktfFblA5S zVxJz1xSU*!?v8e6%`eR2+K;arTITBUO-P<6*QFsWoXB%dMbjfYhx)axn1bims`e8Qo*zM(?f9h zof`LxTsjUlExR*()-bt#M$)jDfucfU#@&v?Aj?$#G+>2}LbVE}PTz*%MTQ=B*A+pF zTY1`?NgozR$}hT_FG1#^qo+)z2B5j3eKOvD2o;=PZCMzj;(L|y3M<7i^gmqBD%v{= zwiS1tpL1A1wS1aK_>OsCi@MZ*fu#b>zrUVjjP;{+qnu%w7Qma*MV@!C4Oy_op#z zF7>W+DoiDD#Hj#{a z`=jOXYS>-4%4HFfdDxy*@DBpt^KI!k8ptcBE6|}fcRt3jlm-q_mZPa%(?I9+ z9E-~b1x=w%nLwH&~V z>;ikuid68nbv&G!PKT_*eb;oMAN_{HAT53gbfRud8pd?Mi|Q19??1J0e&EZygLek- z2#sE}tlIQUgO z?Z9^yLW|6$gIE4B@bHLsMu0{?*p#0x&~a#n`9;aMWl{6^SbX)ojO!p~=DGB$9G}G# z?Vb%k{|taH`+n`aLql*=_H+Gza^G25 zss6odq(YRKuesA#Lcz2OiH(#U9pL3Z*wZx?0L97)mCONy7$%;#t;e$#2ut(N93&U< z-07pHOb6F<`ap_VP22$NG!<@T%rBvrcGPw?!4^#FEpN_NZGhLxv$>}}HQ=8kU&I%k z7xC+x??QyqCX|ry3D!1g#js0Ej-2TvWT&}UuvNE1Ie)|~*JUcy3m;x=%OHR&L(VMIp&ewP3EVo5Ls{1!f7So#&W~@sR~Xa!{WLmoLji7vKB;fBMF5xx~)k#Vb2H z8N0h-)Y*LDL{~FZCJvsk5UzpC8N`C!Kj%>Q%kh+m%@q8oc}3??+WK5^ryr|-p~0^L zJ6DDIek2}KZ>`uy!K$IXYA=qj``}Stsn7a-&~o#v+kj&aMBmGfTT*y|$>ZN{()#}5 ze|x#}j@K_ieb^1IPhBHmUSJTAduaoKY0cpH?~QB(Upek~R_#Q%bH?@RuPrkmuB*KG z#flEx{H|kH>j%KZxp%u&?*tM}Hjx~arlIwRYWAO-ZD>hPYZP7gBaN@Ve&o0(kJyxxaSBf>E$pLcPx9q%cM8JJA(cF80i`e+N^Vc zcC8nVKD+rOO@9)(2>1Ps5(>cgw<=$@bPs45^;a#DT5$BQkYi)q9ESFk#pR!z!`~`; z{af>C_~n3giT}4Ipt=~11eee;t7^1n;^HV=v)u5^$zuiU4{^P?96W#+9y6`?_WejIMya1KZ@M>6 zfMe!Zl282%ZhV%~{H3oHZE_wLwr-;#VMzDIfZ-4X%az@T;$py`jXATADjh)oruE0h zr97Ca?f(91iH1C;nYKK~r+~)eK;j{H05wOHjoLMY_f4yHr=q)oU1rdhb72BUuDDTn z!x?BX>*FV_JqE@-$L<8i((!%F?$aaEBzPb9dsX9SBOKsyJLMVI5AMZ37Iyy{fGeU} z*T$|DqT^YwDCOW)NXYY=oZ?+ZW-g-xG9PB4;M;g_7{tKs_Bi*pb$@7%B$iGklA)>X z(-#v4;&0h)t|oW7;i*Yom{8I*x^AQ$@o&vVkAHhdJXn_z`Mw-`=#qse7Oqelk4~Ye z|98E$8H}-)!44H1t(WP4F+Yd}SMMnKcA|5|};?tWjasY-?bIr}#3%~p9=7?XPr^Ml8Nm9d8TDpZ-mPl4Bjc$C zhfdEja2|X#@chXzJ_!j?|GZ2=!M!`R$!Xnazcv;3V ztcVfuYR6W+ZQk9a6%a2O>dxCqLQ@6rCus*NQQxWN*WGd|9Pv`3#K=>@$^S>hp8jb( zRe7YxkeLB`t5>`|YyP2%aAV%}pgsr)yx|;UHw+?w99-L+CM5JaUCnZCfR|@Jr3rp zFNv_1%kZlb~a!JM+?@Sk8YoS&VWx%3vz#lN8y9F!NayX8umOV zyN`$uqZznls`}ajqcuA+4EI0#PNAwuSwOf#l--WxJIs@<6 zA6!g+xz4eZvWxud^L1>~drXt)K&xxBo?43O@cjb!1b_G{CI~$^vKD~&x7>idA-x7e zybo+;IXaIct#{4O=QFED?#g>`i-m|e{(mME3IbteR==tCa~8bKOt^ALn}#x?ycT@_ z4Xu0Ig3+G3AspfpnIZ7?!@K10l#Tt(@V<`kk%(j);kymnmS9L}T@;=BIwoO}t zNvBom;14a3({SJ_KU6b(P?3}P@co!PfNaq~=A7SVHkM;lk zahuHQO;RC3%9cXPp`}!cA_*y^B_gS)NRnA0WF%yiy;qzoduH!FF5Bh0T=x9>`~}~i zUO&Blc-_w9oO8cFZ@1U&`DPh}KJWTRZ60gvX~6;aw+kT^egGUM zqw}vwU`Cv;xN&6+zQhafWJ6mZ^d>yLOaWW)8yM>~iTn*XMz1 zm*z%uu?X!|+DA$+kKvG1tj$#Q9G=fVtlrW)3mVZHA`-hRa6t6R&>pQuhzaPreAA{6 zi<`nG?)MJD0jG{hpNVzcc86^EYT_^OADYbTomxTHvu_vU6uRK=FozNg?E=ze@Sm}W zp2Egm_VI}+R9G!8Fw*^R0=I3;ed?ny2a{H!vST!@c>LB=uCeTP3=`bf!W=?okxpW4+*RfU}rxDDdKFwI5_oX1#mtM5`uH{P;lL)EtKBY~LNN@DFd( zNWMwANkh1PXKDP|-4WEjKq+*)Nyfbw)?=g#Hqel7{O#Y!4U}IVuV^*u#v>p2s1rH0 zsQ*IuRUQik`40~F-1n=4CmLTF<#Q;QqOX|T8Z?J(CrfU44GiP_WvL5Gp34wJj8@Un z8A1_0fd?ld^5Ibj_kc^~BI?91doMqm!&_`ir;kvEA#pH&W{j>Iog>4ZFTHJsy`~>! z`5dVVVTPddm9 zI!xIPtb&N2Mw7;i z++j+kVkZoXI>)c0y!)Uv*>Dw_BDdMcPW^&*pZ7J61LF{BvQ0SXVGgXbuG4;DpMn{5 z_ee!D$~eA$k*_j}EEO*Cr`yV*`rGx@d+)j->zMI>*-kVBkJy+`jfXq1!KxN- z=$bhijS`Ty<nh2 zaIno-{vo*?*mgPdb)BvUWntX-u{9TJ%WhtF4P1kkdo~XnhB{Ctt-@{F+fICBEOzuz zcQ?M|vhnE7ev?;{f}Yv(dx}3Sqo#q+e9EzA3~vw9d=Ntd+D0GB%;6;F_Uhx=#&wKU#nJaGy=X%_w=G`vFZ6iw9_>3651r3O zuic-Rfx1|k=O+&?VyJY5%SzH8y!BtBoc_uH)b4)~?GrnM;6(rDSs4YAIwGb-Qi;f3 zf8^)V%XwfCR+Qgg*@aA8g~hM)CLyk;{g`iSD^8xakKOT=gr4h%xzBXZfk3*2ubTD{ z{tVa)|jvd!aib{oX0k2v2M zn?u{`@+tq%?QlnIBj+XGKO6|#I3%yTm5Z-$89N>gVY*Cs5XrO>%C_y2C)M{u;*_F9 zxXC28cChuhGY(>%#0wtw+A?H}${w~|A_Mb?z*oEaQP5mYNg-;^;f86mDn5fJs ztg~$Z-2S?Lw~=oFGOt*zG)@BJl`vlRS}J~d%zw(3a{<-_?2VT$Hlm%-4b>vMd7wF2 zbnG8XJC04HKGCh6Mak3S?lOb{Xn+5qhBVy>sTG~#U;5^-*UIkcv-flO^Lp!)ymT(? zoA?$MzGoD5UpGp>@*l>>QqM@HUzbpw?z(n}774W9M5)Tq&SG+lg9NW$FOIzIM+P=B z8W+8jKC^!cbeRJv@yVkoxh&Qw=|2fQyRUmbuG;D!gWI+25&fX<&X_O0PQh@!uUdKb z3)nSwjk!)a8TTK(?}%IVJ8(|aGPtP=vUh6NYM&l}Xzf3WR-#0(5-opc{JIAj-Ng1S z)ij|x(ZAU6&KrRyO2%Y{Gj0`6-+r(ee!p%18skf zdgLe&^X>*eC*2>+`Z02#`oCqomZ01}Sv?Hh=HIS7Ya7D$ zchRw7U1XGf`<*?ai3(bq%->vg3}TF#h3Z|GK~xmA(&%^WlWgp}0J(0S?a6#69j7N%X!j!g`!q2l;{>v^1M}v*M zkH-{Ofa_*{sQA+%XqV+kJ-jo>b7&mq`@d&=n)C%;*PC?iWLh;} zGJhpo_!Ja;XtFptnT#)a7g)ns`k_R@dr+~p7hLx%g){gh!jx|G8;gz> zv#6fgk8XL;aBJ1vGme&!IBm+W;6_DdmTpH+`WBQWP4A@`k|4Ekkil?%0Lpp3(27Ye zVP&~gZ)`3Rh%q^$A_dEc+vT(leMv!SqHVz)J~C7)PQN{IVg^hiJ^W7Z-Qw)*aG|G6 z^T=JWoj-v(fjd+EgAy}Vpt3hIDC2uSs(d-XI+D2#>lT(z=(EQm{=V_#B>y}_4V$Nw z2UGA{firvUnX5d*J8-biI34spYDcE>W=C8Q76a0^PG<`~=C0Omv&FaqVf|dQ} z=d->~!}(LWyazWXaX?`3-~f(+*ZRJz2}x_9@I)?b!fgSMbT02G4J88oNBdILYk{QP ztJ^;|55Z0%o!?itDg42=97Ot=2?isJNrg9tVAma+=LZJ{vA3>0)aOJi5Gt4ItxnOY z6$Lz=ux9Rnhl>-CVK$1-k|ycyjV_|&`K;Zdv-SA#qov*+j$z1MNgd>PKM9Us_BFMo zF98M`r?r#1p!oWGf8zlPQhpAKR+f^XOe@BNPO=_!6s`K6r}ts@&J)dXlzF^0E^H$> zG76_TK5;+sTt<^L(M=t;F;p%JtFDQi2GzZ)b>}{lVLUokO6|`K#x(h-e3tD6^Sq1k z7C#&DcMeBYT^AWRua7il@1=mNWhC3f2qLn6lkQybT!Gh4i@x7{2f==0ul`id3aqCb z3+Xv92y!PUvP+kXaE7zr|6_PJ^7&je{%13Zry@h?^Yka6%#Y!dwD*o6eQ_rme-<2#xD8-_|XzFRH9bNHUxDHV60 z4EeYHMpOP#vHxYAm8tC3yf6GGqeP`Z{)z8FR{ccytsZBio=Sv2fu&DfZc$OlZH+=F znT;wd`YyIFhG56#;BvLCy_&t~wO5pD4(yOcu=!alc4`WiO=vEH{nE9aLaQw>Qj{F~ zB&h;w9E^QF&@Vx&KAm~)&P1@)7YNv3A%buC=?_X!#c%!f8wtw{cU z^GlyfG2XX-`COEZ1a_wmH1O{nhJuh6Dl5tZP_pmtf}rdyo;^gG3T|D1KmV$BH5M#^ zZfb!W`(z))oJm{BF=>V)S)VJp3aHRMIZD^;5RbxzpI$qc^+V-eO_knXD zu82_1el$Pg$JSg-!fnU)x^REUfef8%1sdCzpy5OCmq3}n*b%bNt6hAHk0+s%Fx~`5 zCqzUpX%55j>5E+#&r5!cDVOIPD)H}M*dp&><5Qn#NV3cwbwd)_;z@d zIlmDsJg4`@i!Xwq;ESvK56(cZU8B0svjTX|)zXo%NkJ*a(Z|}`$MI9|FzM?VA{aeg z*psz)1(g5T+)eAM08^2(4ar-4kjlQez0PX|B{I*P8rLmHt|BAb&9NUCb>@C_Q@}FD zt_eQwP+bGw&TCFFVheao>zhS|{~*Mj;*koI_y;S-g9cRBW-R{1>#OWJfC=I$4F%n^UmbdT#!z$|Ca8 zUEbDwaS67cITw*vSPPHF6YT=Lr{K+}*(bxzM9eH!9DYrv74Lrg(S-;FzpMH zFWv0J6NmrG{$`-y|93tU?)o=Hr=}PuB1ySr{uJ2JX@Ox0bZWE4gyWsSOhAVOHMK)T z(Aglk-Y=Mh@T6+VXF*iFzmLbPiJti@rPmYDAw1|tR4ERkQS+%UuedGM0MY(RXY`x8k)T<3=8xShw*I&)=gnG$l~2~q zKxq_8bJTZLE;nNJWN3TZ)iSUw{G!sEG>69(ZuF(PQ?Sf+<+IxvDh?T(2&k2$g2jT3 z>_4_nh%$f6qpCNGS?8bKFEAU2GisdT^C~rXiA93BDD)3F}GOC%tc zAMV;Fx&)<%0u=Y_w1dv5*^@-yJ~aB)`6pm#9`7}($y^QZ0YQOC)0z9TX#DE)J>iiN zw6=_rAbufl`EBLKOKJ+L@R$>e1V)Rcd=#k)5yT&^-s zZUM)o%{*tuMR@0tAdtCx5hQfPk2bR|qwQta_h#;4aBwBnAyqvU^qt<%2wVz)w?7(t zq+b!il}Shr#aggl_00XmU7P5&cRi4hXpSi-KCk?zGmq_~m#><%QL*;GzmOo`MqC<8 zYrEzYhY`J_FHX5sqeYQlV1VQZ-nrQv*{(x`*!E+}l<`%J{ zf1Wvokv-s)6F+EGISuOabdrKGWb{dX`^fap3=H&ot|gifVYFi5@9SfwKxgbmqy6C@ zs_$%lS7b>9=GI%gAJ_f^nlrXPnbe3V5||;{@`09cq??cRjl~qc6egvcz7D`W+-=hj z+=sCL*{hP@OS8~;>tApTTN)0$UJQ~WbfbcSrh?OKCDOh7DWrdO820b#a&zVGg@7@- z|0z#nP#6|2~S+6q}T^o+ecF zS6v$yr%|JACSAU3;)nZR?BwN*8pbaL64a1^0Svx95Vdi%0cjZ5qTJkDQJY8c=15cn zNIz^Rb~ljlf`4X%j#)eK%M>r#_)x)h`m^D&wn5m>r*cZgXaG`fsYN|}HHlJ(EWbz3 zP_gc2)i(R`Wn@Y|c6)tKGwz=kw=m5JL%QPJ5sjlwAb*AHlMn2fLA(*buW(% zn3-Ih)Ut{LxqIU}O{Z>tR+EK0fyl$Hm9s(m~^}-iT?u^xtW*>&eBKa#8PF z{qtd@-yfb(==B9M4Q?h3xYDT=PN)h-{#Za)dfVcNy*;=$%C77t^$&^!4}D10Aj5~l zJI=UP^n*y?qsBa!El$Y4*Sy1v4DmGOlckzH7-*z>cP?oLk2n1Es@>wZ%gY%%5>BiE z1MA_SCblZDuFH`ql3Rfbna96B+gyOSG1Vc79rNfz?Uu65?|@e?C}0}g0K58>jON-J z&{6{ON-H+-$(}t1MVER}@SLT|RgYmfbnL=C!MhXCI(akKz@rY^vfT=T`n%DbS@xhA zEggZ&hwZt#@DixD8(E7lH-JUK_2(zurs35jr*x?KDm=6at@-TOgVI;*{yX@335%30 zml}U$!#_{0SHhnMV0!bwOEQ@P6Jh9M`gayN52ugaabAFw(DV%EvI$r-*AnJs8bw}# zSyj5GUJPq>7}~U_g5?LXW4lgw;g7~}gN0wy$o=N4%K1Y>5WCVul2VyMIbclG5S_tn z9cCG6=O*xU%lD*XUP3kV0HiKc6WubJ z(II+IZxVGLWU?h9b?OOla;SN3|F#uO&OGcp`(qvN3&dpm&=Jv-D>h5lZxA$D^z?nN z&EmJ?7eAhnnV_mq0C5n4gDz5f$A{+bix4 z!mq9#8M%NusOx=lK$p7{?^-oh1Z?%A+CWGE3pbq_jql^PZz%{;ERA9#HY9kbclqlQ z9|6Jwc>^EwEJNdDvhLW=VGI^GcXs)^0R5Y(>-z=gz)^QrFVDXRxvnPJmvvF#s=xM& zb2iPu_Bgusw{8=>^yv$Dcxwsf%SrMtxRbG+&N`*(@Cck2rJUG1lLDf{=3lj}$xu3d z{JYGzN&Izmj}48)DqJT-pXRS0L%j+vUHVWW`aF6!bbNjlLL{_a2b*_q@$7tx@R2;U z80%sP^_fCFrMj0N1 z(?iTF_%Vrx)%*|zT8EczdFJ$?i)C(QUDzO02kZ_l_|$}Pn(t-nY6j4r@Ri}lsRb~o z%edk+Gzjgb!WWjqhjE_v=GO`cX7$|~ zh-F_Tc^@TUx=GvRvbABn;`8s^AJZ*9330mr<9I(p693Jo(bJ6k() z*9N`Xc-Nm1KZiaz_4l0c+F}7ZKC=9M+hhzHoJE}Thi}1+1P|6>F(EN*Jqku()a3iZ6r@ys86Dp_1uWXG{k8T#v0!}R$KA8ha9U8}DeZC)80p3ukZ5QL z8Il6(HD{<`uI;Z_DwhtLj|cSagQ$?5b~mEBacjS@j#o^tb%2GPOxrOtDl{FC4O*G* z!F-(=cCm;_(BY^$vkv|EXfS4TIeZ9v9;|Ee+4n*DY+3I~2MR1)FErbizKAL}!%m!U zB0}H`C&{OV^>`m++4*AoaW`)v`HR9h*j?r>eQn-`$~(laum>#wyOHa$wDc*oOH$eQ zK(G~mj}Kh>p3w%%brlT-Qxu3{^!C#@J`3iWvV8=ZA#fPB&EuFJ#R!3j^4%{M;K4=Z zVk@OS@cw$wFjRX2?R_}(i2ijbn#elV|8ER74N|;Lh>v5G>bD!u)BC|U>UzdTa0(nmEGkb6J!OPc|M$3=%VR6Uw?bhZcbP8FdyV4s0 zx7K7&B=>oN*C~fjrQT$mZ&D@6{Wpnf%!0&qP7>Jsz5ZMA85wW)TzHbOa~0aT8HPR| z?}m8MPh*^0zA`4bZ?WX-JY3jyd-#!NH7=w+kdfc2i+1#N&&qRGYeo7GfzJlyN3eQKi7w$)3G~&H zI~u(w@mkPMPLlQjaEl~QW!IPCF@2fynyqAQn57a&)T*#sU*BUgoxR#@(l#dZsLdR4M$}#%TL6N7_8Auq5wEnnj z6zTeVvwC%?c-r|eqi;nezC3=6>*&EvXtWJF#P)mz&aEjd{^OYfwg&oUF%2@_hZEuM zcbEwZs}V{9`>Juc>&kzP57(hf`|cf|*9*8L8n?viG>*c7tilzN6>!b0wn*d26i9vh zo*dpz1%`2YmX*{wP`a6Yywzh4@|Pcp*L6(+_a%;^eFh|a!s_tII(iz|`nXGoyn(3t z?0g9S1_f~Cw%;C`HppL`c=4^h0#u)#9TZSl1e+Hd3Ra6R;c?o*-ziJuVD`;qhfQrY zl){l0+WU=ge@^6wmyOfVLt~>RHZy{)BGgiw-}5j8HfggNM96tmSdBFunB;tEU#!6< zI^<8dGl>7h4F8B=I>KL=&on>OlQxW>nMuW^h4Xm2N%3-B>Ihin@Chm2o`Zam(fymE3gW$ieHBrE>7A>$v=2e{A#FzZ#$gLJo2z0m5P@lKdn1fQlM;M zx4|Q=Axyhw8RuO(g@@!1nE37=g|;WJO!Vm2K)dEJ2{^^O01xTE?8kT=c2I^_X*}5J^0z-kQ6NlIW{Q6s#-ex=rF54Aq^fM<=<)WZKVkCLIt;}Z|1Y7E84w`Cu+?1Lj??FJ4!%h+)+?&hm@5`Jbs z{C#C^7$qXznfwQ;fG4QGEnr(U?3+o`eEMVt=Ys1TFSvE%h4hzy1z-9@+NoAa`sWMi zcEIo8&w)+seyXl{=_Ccif?GKsP$-~%*l^HUatxd{tf+b0mvMjd{f}kOo6$}40!IKR z8F`3ze)cGkae_-EVQ`Bt>4vW!74sq@?e{YgD=n))Q_W*3KN17Z%bfOVTfWb*F2?E< zvkA`~1d}!Dwm7-RNJs2WJsN8?e|)kui5WV%M1md}C|!A%>4my6RjKC62^%u-iTOSf zT1kf=pZD+w_IJYcOsDC#jS+YO^P=?|jqs+!q^*>(`z`IxlQHWqN#JNOYbP6n0V50buhW`VVB z%lW5XYv>xT{Lf6J0{k2 zZDZ)9a5?^f@6!+OErZT+l`l^}Ey0gwBdg{uuK0TV-KJ1Z4A#8W@xGikh<^ia-3xaa z1&IfH`GsH+iVkuG2Bg;Fz@4x;lFbV6^WL*DlurY)5nJ7*j!HN&_|~K}l9r&oL0 z5TZ&p$$dM!P$GZysFo5ff%^XGXT5tJX!kL8;!#!;r0Mo3ed-uQf|C&ErBid@HhNvx zx|oEves`;hI?G^tc=>{qeHR$re0x2Re;PJBj!&h8wZkjc&FI5-sL*?FJO2Txa{PIf z*Z+OlEDT(D{e0y7AZG9CY#K|M0%J~=ZN|JSIGRx&WcCEP}3XHiD8KZe(R2Cnw*kjoY92R41B=h0fh&t`|4 zuZuZB=i46?VWS}!errW}uCt0vZERwx8(H`{ds4kyeH#AkNiG&Z;!l;qBHhVFzm#AyLyro_CW1BiD5Hhra26 z`T*;H9|gyO@m~5LxdJNgG3cH3xy+*0doS$;Jkp54A_jDQqq1NWo(|3|oV0Kv@xnf5~i7CV2 zjPJv6JJ?BisHFt=EOUI=5z~x!gR(^BEhphd=hPW7^)0V_d#gZ z!TZtmbcDkdUg=qei`e$?x(QuPKd1&?kiDASf@aRTnPURYaJ|#@((UzOu*nqMwA(ca zTFGfj!KR&95OU+#aqS|6QH}gbmqlD)aF-9E8Ag?^^iQE5+OZ*4AYWwK3+Nj5TyNdB zfCS0qkI5c0*bt{jTUOz1pYp+ilyKMAO-yT%6Os;#Lt!J-tinlrcWo#BkU)U`^xwD zDZyFbkvN!T9=D2b7fr! zVWiOR)<5)wCRT5>t{X?Ymf+LQd}FXS#PXr&&={JqiaJW#Q9(q;VWDs&3_|}qr(453 z4{AGBYh@iK;Rz+=R<_R)KH|ER)>BfCxdyi;S|5#rdQ!?SqwZ03@@J;o)k4ACa<-JJ z4rf#itBAQ@LV<%6wrxY6%b2w6D;li7g1Z|YkNxrzt|1Dv5xT~M`q#i^Z4P}ie>mw;p?|>hlcQY z-sFOZSu*Ue*W{`kB;ib|*qr(AX(-8ZPkx%$41HyeeZA!l5WeX5+oVEanmpc3aeJ~q?(_#Y1gp?B7PV8nD7b23SO z9gVAacXmu@IWQN@MDI(f-zLLOGahx$wgy0GdhW3G&|RY;gnONH zYQw+V0 zJTrIob=ws5S33_&68iChi~FH(_luF$-Dj-IsSU|PPTZEcTltzycrUxB0$8|>7N7c* zV%dMkd6Y~U317~XTq~Sj#OJwhUT}-|qI})+UDF-I5G{K81pQ4irX36aC;f31cXi*c zVN5OpeR&Iwxt?-7bk5BGetIn=$>~u=WTvoLDCia=Un8i0{`@;#x)2?WpPaYmVOE4{)TwKIGUQamQ{OZT1 zh#hoyB8c#lg7vdvUSoIPexGi{U~pIu+t_qps*b!TLsD_pslYG& z>)m8U{D2Lab&K1vPct0ye_up~QwS|78ssYN=0!!AYqGf3coKR|H56|y{(g!+cE>aetOKk0CYF7oAg(cB07qy``*TJq2S{sNXE&ztLsU3%gzeDilTox2-kwdoGYc(xc_dQI2#k`Zu2w0; zqq1FXobuiU+|HQ0?q1l2!xxk~?!B4D&NbbGukS8{Ot8_%Uan~nB7{ZldQ*>q-r=tm z6vm+R^x_RGj$RbK7C&3AH;6;c_wCJtmhkK7`1$vYqu_TbDf>DXt(xJBLt^Kz<)MR) z_h^1_1OEC>Y^}~8#k+wwb7S%;AZ4IA<#O*YhIIS*ai8jjSLa4rFLMx4p6&!iSGpPb ze>N|0(htIA2^FcEFMD9!EN|a~p%t|IBki1js1BYK%9uD3I>6D#eK(~m3EQmSfBLkz zgnGH1*F04Q;S}}B!;7swSZhU_lc3#>iB3;K*Dm)Uw{6LM0b@577##DSg28_PSfS?=q+lsZ};z8o;}ZcJ@0@3_{+E(1K$~Mg|9+35km|1dSTH z=&4Kn*eu;3^lK*>+@-k|^7@xhL^YuL)fqCzw6UjJ_f3Lc$T#^7*!*8bTHzRIOPg3Q#6hPSySXxjPpe%aSX@FUjO#yC8)2he8M58I#q>g+_jN19KYMtgC zcw(W+^!M&O*z2w6-F9;x@JIL9ZN71IR{+I3?LAPT;%IKK{SUbWDVOIS4S6v&bOv zs#rY$KS030k^}`kg_fkDapx5I+b zB6|hI*A>t+DUhJPe^vj+k!~<=eET_Lgoq#1NeRlER507&FvNJc83O80+IdxW;gy`! zTffBDfM2@v!*q2wG=&I@Dc40}ce3C)=?jy1-zQNy?p7ndJo(EqLYqO2^Qv)g+HN95 zpZdKpm;WBWWnMDc&N7SRnK+t)oL<_$ibqMXdt1Zv{4FR7p@J4|O-= zKJkdDsk2ou)3m|e{&B0mQtNDg=a%qn?30iOBfW4b|5ovxtavC^zNS5yI*L+~Z(>)~ zmhp524V#2m1DuaO7Pfw93Qr!-RI3hZM@#j?LFa5|u|!9;#_je%#9B-sv(F_aGH1%(X&~ zRq<~&^Ld;bi*TEXt^jeV~&cZrgr?oYN*qu&D1ESlXCjb4JUdMvw2z7V%KO|jv2 zofBxLDy1lRt)NR>`SE{jBs_G(wcgFO5^I@M@16Qi0T$((V^VDeV8#*caI|j?n74-? z{oa%XyX|Ps96YuLTCx2{{3-@8Nc@kCrx+EvZra2`?-0ZY+>_2q>%gOQVr%DCh)~?| zru~2S{ZXPk0p5;d&I~JSlwKjyrf6pxTypieWuPs5-2ZpxJj&e^v7PR&f=Tx08nTzhu!nw!5hRS@A?7sUmWf#$zB6&hMY#v{ zMF^G^b3NF)Ux)5|cn%D?D14TDnT#*=qJs-%o1p%%a1kC_g$8F9silfp6VTk)v~Pf~Mdza{l;<#|#YXkon^|mhh}@>$T8%P+p88hn z1E8n;qwpMW73R`sT_`@cRmZytwnwd3;J)j0q}Q2x)NSJ)GBYcMEQ^4MKdW?VXA2k> zzjzM7@dxZaJF80(YZtm6IHw?!Uu5sq?^}DWBvY5Bfd~t{`s49&QNS{xofLGd5i(5n zQD3T1;03dWtI*~wsGRPsV?9O%@4mnD{52GuEP1w{^ZEvM7vG94+w4W9;8gKVjy^aV z|MhRw(RKJ-PZQ4fy$+beM>=c_Nw8U`-dR*Jj?c%Ii}IMJAq+3*+z}74IH)LSX%b#&zYOAjN#CCM4&&>mqBI+0TY2;I7QVFQ z{m*UeIGDbYG3w&gF2=?=IM&+mH$Z0wf;<#O+)F69yLk97$LSC-B`tqBx`%;~8=I@~ zOlcJgJ2|-8?l;5mmyk5;tOY!ON+L7sVIEvx$2(f=U2vP_UB|_@6yS=UA%)Nsz`d4> z{6FvuXS*ysmS7HJ`b&smVtT&@($|EsC^*C%c z1s|BQ8G|_ZmuKFYDhW%#s>Y)T0r!5t@()#$GUv`Sx?hTj`o{ubI1_lTAt z#-%^%WYGiagrj>y%gE^bs7`U@LLOu%SP;-75+Am@62k&0z;Mng$9($`Tzwrt4KnV+ z1Dn>tD&l^~xc%VIWjP8k_3IvUN}ym`5ObUM2rWUeg5zxMgE{09k2Udk+<+UdrLn;Z zn;7mLe`;!|5zL-iCGbpLNA)pzrO-Q_cp#6V=;Q;A?^B&a{z~4t z9@}-$OWwagb{&E5r~mAkCk~>4IQLm^;bP?3SGQZOrwSx^Z&Zi+wF2RxFfacX5~xPK zcr>*V4y4bHNoh>|Aa=y<3;B07_U1TOZueh?)NoGCrkrjl6zbLp5bZ=&t*LJjJBTr$QF%En#IsT|$8%261{-MC}9=JhB-up?Ff~WZ7c2s=*2VUb!Bp#6=c&W-fr6AIR z#nnp=Owu73;z9p;oMQ#Xk&fmpp&zQ0Qmog%EZ`olhD3ka9&{=Z7Pl#zML}1or-JuV z(WPtIbJ@EU9KOgW^BJx|wD!!a0h&SJSjo8WJXr*1&#ohX=nS}?XHUqyw>7_flj%ov zh-lUM{m1&*c?ePYd_&kc8?NPDuy?E>S_S#qK?4u}phxu-=E>#||w(P_P#Lr%pGzsHP&U0YmrpyW~3L@AIW_BpQZoQ9Km2cm4;wz%=v zYiV-g2nY9P7RB6#t_l+vuwT9@Ly7jDhz2-1; zPIpR%=m+#KpBWsl9Rb;MW{eW=Nw_v#k^Lx+3Vb#5KWpv(VYEm6oUGP3u3p^h{JoWo z_c9XaPfrhnvGj8@pOFQmws$SDsH@zeTQs)}9gOlE)PIX(Qs~ zCf$V+(kCaboAkrHkkI=tqs>@2le?deyB=@)P>wx$--VWEZKa0|X$co-2Y$}I+wy^3 zT8IC>CV}LPOUPW_AXJyQc_fT85G1xuJKFoTgYZ87pgZx?sB5S6&*nceT#;ugnQZ`jxQev{^JcJ(B4=LQhD! zs&B6=y@2Jb-ZQLnW5{YK?PZx+0;1QNRe3bX;8C6=_t3Q-AI7^`xy#PL#RIILBt8xU zKRug~b?z$YClm}hDtBVrhHCEHjVV}pA>biwv;dh*r>b~Z$MJKS)=TRxz7XYc+0nLa%jx9H0W*{_Org z{8KphpIhg*sd&&X%@~vS%0-Gk=jB87>ln7`nfQoi9#}cAxfIe)Ag|0}bIsGe(Ddb& zo_snPntVOzqX(wpOUHot5AqOT>hZT)m17_}`}N!2U(0ymm$Fak!)2I%+`?rC4e%_C zo>O6M7)%W6xDtuuSX=uyZg#jG7u}!eCElxqi`L!AG!+?uzba49_zlCwLao+Z^BK&2 z6}T!ipN3kmi}<*9(Gucn1r(bj$52IPA>@|&7$(~!?<=}WLWPr+eoD%d=q={p`yhS> znir@}hW(xR+SDyUA(9HFMloUH=5g?jS9onTl3s1Ul@I>DI|zr{u59=CI)mxM?BWuV zl`vwdd3~js1Q)a8&t8(Dz~yn18#Q6m@NuKqSYmz#{Ck%?hz5Ch@aH2N$G&;EsWa0X z(ocm#!Fv9>x_LO-{Mx5~jDlBljI}w(Rw3euRfy4Y7bf<^?0>KljZeRJ25e?d!+r&c z8=l{)AY|vS(*BV-@NQ0SHQl)ZY-%@-iU>DDZ3k~g#)VZNFz4N3B$7b%VtBWra!E^mBDfAKr_QcMsYq|`Qa$LsOJUth(Zx}^2U!*O<{vgl#66#$o|U{c0k%)i^OzSlG7rv(FcH`iIfn#K~68z_vHDtlj1+VNbKYPnHj!#8o54~TSgUc-2%=sq< zuvB~gx(Ib1XcWn->BTh=upCcVB~b8CVd4JmMblv5{`^gU#9UImS!fA348o8Z%~8&VFw^CxpY(#U-M#{uvIzr}5^tp=k2Vq{EHiPsuE5e;SWxPJCwk4kE8OmEt}( zhyO>&dAQa1|9`wKqe!BmMN(EG5%Fpum84BHq$NtjDDr6#B~&zNqNSm!-Rq>i_g<$u z?R8G4(=NZhf5Gn$xUc(t-S6x5d_Er6eZTKi_3{U@%oG^z^qJI|paQBEE+sV6Pzogv zImgly-ux!ycjl}^nr!rzJ8Su9B6x>>PIeB*0w(@SYRk8`SDlTg#{c5dH3D)4{kPUy28#rVE@X_@vGJQ%Avzioa7i)4>vjNb0V zV|R%}zaLa+lk$5Pe`*3P^*`+=s?%UaZ~vL9oB=q(6nXsPEEV5oW=7hTbs;&{?s;ZR zKS)eJ{L9iz1;1!5*;CRZC==uMUO0Ra_C1=@FS|knbIy;92X-!_!qo%~Hv1Z|m|JS( zr)7agq29l{oGVZ>=(p`#`648r`*`Wc_BMDYV)!e$jRvbxDRRl@OOfPI@g#(A5Pz?V zHGn@eDOwGVt4Mn59se+A9u1!EzqMLBhn08tSdm%DNKA6Px5uL% zWW}^CH3Asr?$&5aX^3~?@U5!yTijz9M-Kg*r#FEc;aBmQ+c4hhHF)jQF#?>w``;9o zRRf0shrzTJ87{d+l*{B-f_*`NsDp7A?kcG-EaHyB;xhtM&&ktxREJ%a_v0Mc*1 zTC;`4?9`fi%aUUKLMXTF)jI1N`sQ~3cek56i5($8t`Uh0~2%0 z8`EUEp~)rsLL6%yuveWA{c2i-Bi|Zo@+|tH`O9rLqj(~CZyB4?ogc+|=cgC8yHA4B z(H&_zK9f*c*KY4io&^>Cby{J27e-#*8gx2w1(Ju#7?b#Ds8oLZ=6GophzdB@dr^pZ z|EPTT8F@NFm(=qXuGgbD(h)md)lmZD;USCT{0X4rFp;GiP615^udE65n{_~E(Akx>+TL&%C5fsI9 z5=p}qFgbq5?n3t}BsMMNZ+l$>5Bcor^Nt+c#75k&X~Nrz*SyDL>EzVjghf4BTEG}tWt+RsEqLkQAp5Mz zIOI6nTlxl4@P)5%K41GNICFR3>R9hW%ISyJyW5-abadglQ_&-M@%YIwt>e?cnDue* z`%ns|7^qljiqGLLmE&8Mo|NIk!=ntj;v`6r`Y+dI?;2)hUCBxM*#&fGrXBBE4ueF0 za|i8u8$Q~@U)VN80)N%!%lmc9V9dvE%Y5x5PKh2e`La3RhNf8++<6ladM^FeBY|?* zdt%#1rojc2u1>vt6`@y&r$iMffc>E?}$SZu;co^FY<#C8rWRhhbyFMSQ2bal}E$XM0cs zdJgP4uJ1*L1FNBVxsy{UFAm#yI#=O>lbXW2*?ORJel27{A` z7u1KwOl-9XFm>;Q?N-%hw0JU{9M`;pKg;9FT>NHHL5itV{@4c6jt^eFJ4FVmu=cxs zS>xDT%6HlC*7$Zy77F=Uc(ZKdrc>A)rhSWa?%d7Lei51-#@$P-E z#-_(FX2t?S` z9?MW9p+Jm>YUcAIupVzHyKXs$o~O3zFv|Dh9k%rC&;5(hkPu9a*jWbJyoC|;*Lv`C zNp0Q^!(QC==4T|cUoV&!;TcgDGTP1a$2!RB>lH#khv2v6UFupB%*m%|JDzo z>+{wpYl|D$SGagj#&Q9~*A&OTdRM|sN`kAS`y?9CykC8rC&LHPA@$t*b6BW;CQYs`UmhMX z`Z@^xeU}nHEzhC0-c&|n#xQ&fvAW@3J&o($u79>TlTqm0AMa#RH_ndn_N1sRrh&Hd(jNKtAc!e7zYR_%Z>>=e6a6FWyo zpdY%znI@0`Id9`QnqUx}WZllK3J|fF{Js2$a|eh8T%}uWoQ4}2#RicQt-z(?r5>3R z1-!3b9p7_n9k0E(U=#DG7VS6o&gmExVF{~xt$+v#zIhc!I&AXYj%4O}4yQ_p+G{{H zUT%d13+;LS`7Yple8Kv@+al1Ft+W3yXocqU6>sm3kWl1H*?0H(WlSD?HpxkC!;~w3 z^4!!G;Qqjpu}T>Ytvrsgsa>Tb2o(L<@6^!(P6D}V&Xgp47CYhUV!ndcJ1@&$?DWU% zurne7U+T~)A@k2Uqe<`%Gz{x2pN4m>##%mABbdIYG*?(-GyiV0#2;HE!S#rH5@C0H zP>!IGpBvMQGuqEs3haom?LWUXR=x>T66mFT<)6bTsTWF0#NRM`J$>z*$Q0;?hJLNE ztOwq~f!ObN$oOr%%*iz^4SjA&=Ds^Rk6Yu~v}z1GA?`*>;p=n1@uKE=7iYf?fITZI zA~|FXx#>!*x19uuV`qQ;K1{(ZS^7iSSGrMEBw(snkO&IC_9_AqG(06}mT}dw1EhW3 z-2|e^_)P4N>~q#$w7g^UuIfV{@O*JAyktIy`H2&XH$BPFmzkxjuQG_mJVLSKwga#n zdt+63^(W5U7>&t@?u1=&ANAgzo`4YLK0B+0MsPf`^{J;16=q+5njW@EMHA_fIn9X; ze32hzcWpKWx{nc@J+JnHYT~{i=HwQ5Uz8Gl^u!9@(EW>tdrCp5g*5QZzZPzu(VH)D zYljtL^LJ5CGBWRLy><5RrcaO+)(XNWFsSPI+iPAuce=unv)KpY<3;+dG#*6y~ijP>n8}FTBbqDVRbH6`6gUGQnodI#{~3B=tf9+P>@pf zcBE;J3e8&An>1yXaq^xYIbe4SK7J?IU;BfKcbI%zJKH7oW zzdA4EUrU2ia_ZY7e|92a!(sb{#RWX_Bu~0!dI%(2?LTd4p#oC?T3^y_$8vSKvxiid zAnx+N03NeBFt+c0ga@18_PZV*8R{JFSmdp6wjIPJZP9}-cdnz(b9W)<^#{DMo<6U zyHvdnk;zfMS?BA~#a}Kmbe!53E;uRNw}uJx|c~ zG0YAAmRM}PnY&)<+^RWLFi&7%tomAw$!GdsJY?)dt7S%Z9lCXB63l%lr!j*`CKV|P zE)9^pD|>C6x&BqWGyq*4Y(71v|IoXqJTsYl8CyT}ym)0+1-^BkRSka5!5(Ry zuG=5U$W&3G)}mMpC*psfo=ul{v|uphsH?xr6bhXQ3At5HM=1E77o7EoiY+A0AkKj~xct@8AXB6n zlEZCNi~e`6$Tqt$Hn$CxnlHfOjedps#WMTNVbbxYf} zcVbP{70tbyTz^$;XE6^CLRj>)DQGlfI)6~Av1%Kf^Qf5Rs%4gQ=#x)8Y}F5UY?aCE zvJ{xnXcKrmT8XDbUdu#dBP6?W*00>ChS#<~EbZ8qk;(0<2h+(J@cO;g{IY)mHi?WJ zTl~O-R-YW(tPyge1Hb2-aCtS!P*&7=qED59yaQ`9s#z5f1SOWBk6Yy4!ls}31TdEAZub1G zk&C=s#d(lu@n6${&yDzB-%hJ5o|C|&xcXRN;XS%JZCsF=TEHx~X`xe$%~1XNZcMX2 z72mh6RrBgZVc6ZA6JNGe;fkyL)LXq3i2U*SNV)hXKb@SnmpZxG6J8C;Dq2N&BR#z; zz^x0zlP_i+FIj}kmp;EBDP{m&ugmZHig7rtC!;_R>j5^|EBlxPXTiYKF^qJ!5^3~W zmR~)afTu29|F5qcM8V^D*Dq6O@OXYB^8*8+b!y~Q%3KRR4=Rm~?C8L$zHSepRw5|T zkj%&n29xz&1Cn?gDv zch@=l`fr;{L!gOrDURbEDD^kVE9UtqL>3wD*daKBbW#Pu5jSV?%6*4WcGnf$@*`AL zeWeT>6`BY1StqewZ;SP-PF8}84l66W)fnpb{S>}wItr&=rM0~OGm475JvU_{+u%N- z%OEdf5S}Uqym&*K#5Nk!tx)kbJm45Crn<0SpiB z&k2*P3c4Y4*FZ#mSt?%n+N7{}gMuf`()|}@o`A!rqjH8nreL{0Gk1J_24^@*0}M7+ zaJsI1?Pom+UCBbsolk1P{5w};kJbQeRk`^+uWt^dY<~#pf0{>mYqhr$;|s8?o%+(S zrw0x71hSRVsUUE{_0nbf29$gEWE<2FFlxsf18@8koK?|DY$8m6&+T&UxA!|Yc|t&` zF0dSC*3?ele$s_p1<#UZG6vwWUe}W4mtiaqvaMyi*bCb#9DdtswSkL^Q^!Z!aU`B^ zJO9X>01Zwb$ct(f5LRxKFR9f9+iyC*30Q5wQXz{kzdL9!k!{4c&%OZm28g8at`6cE z-ka-^R-5y9F|T9k1x5QVDU=qycn316utz?-sJn$d%mH^jS9IQ!71RrVaYM_rw{I1FL^z~8sz-Pd;QTk z2|u|=$taHw!o?=-jBd3>?Bo0(lGrwl)(JaiO3rqp6r*3}=MR7I!@-MwX2{OLiGq`w_H;RT>#EES$t_e=x|HxOZHA8UuiKCR*QSU4RX09)r@jFTwVr<+ zTm&r_FS?wOz;gT@%L zP+dmqr^)b(xKmhMssQhPn7k5NIRep*Ne&07uYq*%bSmBNJ{SrluEqOj!-~`Tc>0bt zR6ESVGjn(ViLK_9ugB=*a)!0#Mf74o^=(z{woM*>^fbgdi)YivcWBlcrI3Mgps4Km zp)u^%J3W%K+zUbM=dMQiQ&3=E+5p=ozr3~`ocVQr7L>L<+ZCHR54)^}yI-=-LGN%h z!>N{D3^WOG*b(vrcc@55vc4fhS!kj%b8s^R8h7c5Id7n=EkmeoLobf}SMT>^dk2(x zHQW~s?uJi`-x^Lyj)6=ubd;xc;hwsE*3w}sz#n3-(t2bC6y6r~ZAqMh2ksKS|9emR ztjRE&W;Y5X%`L%ed!pe!f7(%zlo7DfL~Ak(;Qkr=3bx0K@RLFEic{n;?0DOCwqS#b z>twkTIj?@efG3Zc(x0C=+OSQDp^%JT%cl+Ay9A=$s+8W>91^(7STlP4nS#LVd$l#s6<9*Tq)cOwf zJqzzc&eF>*`%J0u`@_dOdL8rxVb5KLi6OPm=`?IaM7U4wTS(mJ5^aPvkhzP&#d^pN~%D%g<4BlqvmU4fp zK!$~Fu}{XQ(7UUENh^hcAQ=&m)LGn$3sU#j*`E=5SPPNm#|`7boAe9V$ML|l?aNg6VMN}D*3%|qL^**$yO2`X=dt(=v%|^Lk*)_lcO*kj>?pO z{{i`Rsjyv+j0={(N*f}}kuhM8bdJp^+y( z!|<&hYv(` zzO8l~7`9HAaTE@{>cDv(rop@_Ar2D9oP}12;zIr7Wi&^XoLnX*yl)TSi)@%Yz z65Um3$L1lsP9=c-5D{-E(W!`hBEwf1t{d&&{PA)Lc4dSu!iR}6ou1$oNIugbC+AOw zvuD5GKl%F?BqiHdkdF)@6ZyFI-S2{)3;%{!j>KcsMzepF z0K&?0pe?IE6;BASSpGUN30ogt6-nAdguoxO!~Unp_$HQjOF{${!i{R&-K#hKp%J4- zvGDnx*UfztxcE}XCjH+6QujwH$M}qaQIk}#(xt!P5fB^gD^ZETg`UF=>?5c+UzZvE zg94JwoIlu?zQB$@W06+BSCD<$w@3S1BX-@qHnF-=1TQ#LgPV0mpi0(2*$qbFyoPy8 z+?Ekc?Ta1s3#CHB`2Gv`3wluF)Z_0KhGVcdc39M$x&mE|?%&s%x*^grYn@+U0YoZJ zdO!FXhsng`E2lJ;F|Rn;z@=jj4~w4r&NQ-_SD9_*Nwed4^PKdPzfqmYaPsudto2zO zX8%ThNLt36H=jP=ebNXCH&?EBzled(v)$igI=jF*q4%iQ#titcvVHDsX~T|7{}r(G z#iO0cTJ#6;CHzw#bWJ{Q2pIc6i|g)hKu)irj*s1Bcz!E)t^a5%io1U{bh;D=`wwn? zt|2`EmoI;<2sio;&%8Sx-6~p#!7%!eJ!vFplpM`6QJBE*(bm$Lf4jlinrWK}I}r>; z<>Z@E=m>u_4uu3zC=jV}TKIDLFFYxnmXoo#jGec<&9+Cqh1d*($IkZicxH`AZ;ng& zF5tgnlZT^_I@vrtn>B?GkD7)D*w>$9KLAtM^rBxq2Z+jgkS`AK;6l*}Ajrp31 z6d7cl$jXKlCAcPLxmu&QfIHixZP(fRabH@gV&8)$g^~m zTD#g7WIFD4(0$058oK`dLh6#qN8r6^o~4#fZKpUUm1 z#}BTe;_`b+(Bpug*#)UWcyl0XZ2y)vC^1jUcFpqj*s7<3}eRume%W|30Q3Kd5Auhh)v>hHgEcR@yJC* zKc~=UkSmr@ecnBf*5>iE=PnL|Rf2g#WnwETO0{g2lc~V~Wv|$W3S{81VrKi146f%-w2?aDHPaQ_gxd=y^CyTkXg6S)>3+cUNIa|Q{8 zVr0{EeAl7pOku3Vks*9{b$Z7E{%L$%&L3#B`Me_%>FG&y5LN=lDmLH zAGUYvUR}68je4FlPCeX>Xz6+(T>j4*+zu$WZFyV{t7ngi7R020Br(X-JaHXG$`Z?` z(gxs%=3svmk&FY<1NZ8S>M>Hj&pu~;0#c7?J5=7t#yumof_|?^c;;6#Z91ERLX|=h z`pPt%EqJ!I&~X8sb{|n}sOmxo*@+UqDhdSJ1pR4EYDSfB#|zFYP2kRjr(?SqCh;Pr zm0`Ft37<&I3LeR4AOyM8NG}=?vAnNX@Ks_5D4OJ2O+Tx{^U|s3k7!abi|=7{$Kg?A z<$jx@pgxDk>pYW>UCTy}_k!wioTI27f1YoOFb>mfZ8pO?n>{8K)uy>v3lv##m2DF< z*!k5jmF;p19{=xz_e<{)T;~gABA3tN-FWjq_a<6VilTJE|9}7CyqB;s1(OivVA6$I%(4yze=KROx zTQ=Pr-pv13&b-Fsm|K*QYc4YiNoo>TMKy*n>B`6W1^Xhj*qg_o-U&7{h$X^A5s_-|v4YfZ z!F27Jq4;RAB{fN~5x+e;;ug}4X_POnB#sHEe-+&bv40LvAzfa3U+5K(Tw$K*ft&d4n=Cc`46PB5a4Wpv+t03En z`ca_19Z%+wAY0!N6Ye6DP^)U~xWkMBM0WTVOs&FyF55V|HrM66 zFP_29lR+-0k0(Lgx&Z}s#={SFX25O}Zx&YuB4o=+h>N%s!`0S^*2~Z4Aoz{3@S)xg zNY?2%oAGWHTdr_Fq}&L>P08W^mgcsTYgw;~1LS_)94-4Qq2EeFeRiF-xmNyZaLb4;&l5 z8QK_#(G1(n#H=ErQj1lTF>Mh4vI_CJ^pTP8#03jZLpRLh-`OO#gI>4AkE_?lnm}1l6eUW_yJcsg*3Axnb0n6^)zYdQ< zp}N;ykyHKX(;TOLc=k8`x!NkbOKTRsUx~VWQs5ov&V@#E#!^6A?b!?NU4w9gq0U%2 zk_IPRv&+viP~h~F)=ulseNZ4|>9@0c1569_ihdc@q4)bnvCab2Y zlU&vKHBy55+;J4rW@DhWaujyoUNo~DuSel2UjY;S9tf@sSc%E_g~4>O-TECf&=xkZ zci>hvXz5v1KRvPp<)s`oksrEYr}&6)J^Kg@JHIXzI?;iWY&{N-7l(UtQuEOpXNRSg8%c$tY zy#MwO8olX6rR42AM|TXt1yaCneF1tx9AEfDGhYfizlmZKvFn2sSFgaUQf(0Q(oIf` z&;!DR5e3$uRa~3ACt+JlL>q^a8!j}E=NbY?X%)ED&9D)c>FOvL8@@~HOJ{b6g}h4AoQ&V=&UX3EkbBe zY%Tj|P(2>q>t-PI0Y$9({5_R^C&7l=fB$AiB8Qs#avB#;Cqzy>K&`d9#VPocODru&ID^*%=-azeYU^% zvoD}EY6*&Mv|;Cw=~m816fn3THg~PM8?B?y;XwW%2An=}cSd~$%ACL5o^Pc>C6#6H z=f_lRZoSQ?er*^e8uH66R>|;Q;d^>vSOqW}e2Kt2bKt4UnHBt@1+OlTK;QwD^HU=yEna9+Ri^| zb&CuKOk-AwE&w>iwa9;A2Adl#Xh+$PC?=OWrH%DnK<8OHMD`Fy_@^n{Ww z=B4Rn66l`ozvnj64n?jf<&7<|oci7Xwbn%`+Hl+f`B#8})ESvn^ zw{o)jrgzt#ZXzHd9lP)@|qe;EjI@+K7E3a!sI z(docFu|e@(O_LyKWFoY)j*L@$N4Gn2{lfueg=E_9QV`2zPAO6C$H;i*ZG2U&V6gkN zo&N0+bPZ>sw~sG^mf6L<49t_LsFAxbe18hi*_{h#DeQsF9YbeTE>Gj5q<`7xO&JKu z;x{J84s0Rh-ZYf@c)JcG6V9l;G-^g&Qo;vw8G6EyqVkQ)bu`$RYu%E~HwL=~k2v=k zHNs9Cy=Q%4-B=^j+hLJNj z;E1519#M#HwR`~=8_t~BX1{_FiyRDb7Ai{_4!rlxf`X6McQFu@VndD?Zz`z6^iU+5G5J zM&PAQxc=*#V;D#!G1v(8p{7FAIn*6OnH26glI1uaC@M4#yg~)$j76om6eVNZs;~Yv`DrvA&2ilsSBY|eeN0!<$xy7_`BGQC4Huiv)|U5HppKZw zo=N@4U7^VW{NVyc2}rq_Lyy&K^1 z;I-<}3ja`x zpERZIq^^^pELZm5Y2F1O&=+4y+RP=LZ3YJ6^>lJ-WXELrFC*~$1@iezr(ow9JN}Ab zdO7Rsi_^yULcsUxa-X_t8!8H=1=-zb$2}L@_Ad>Nfv4B``Ty>h3G2tJNFf-F|yH$EP(A zV!t)~c;x1KxCdIURac-IX_OLQR1MMQ?a525!yw-@Y_U<&4Q~|gFig1ggPqp{g+H4< zyVZ8j`5o#Vc%-S-az|t{OuAOp=@DAd_+|0U(_ut7Fa0TyF|!*pDt;dGc|ieb$HS~o z-Fo0<)wyw&-pw8g~Ax5K+1 z7)S#t2ZQlJ_}PId}eDb%M=~qv>!v?PGUba zj67}E@grf5DIeY1+8Uai*?XUfs|X6aFFPh$6TyJ@NJ<28GvA*YyQ~{EL9fza;P{Sa z$P3%2PhA^_#qGxb-7adwomZ%jzACPxBflYUYhE|R=+kG^@)9BajNfnz8wI799K;yk z{(?8d*{AfEd!VFj;O+g-E4c9N`gUHE0c1SC>{@%B1ouDc6j21K;imulM^>6CZ~;qi zO|kt$SG$K#e-w3KEp1QGlJXF$rcS6YSgzwFx#Txg_h9kNF`KZI!`a_#h=qlZ|ip!BM)hShW&rM8>-kYCfFoaLY1>$+YzaIT8!sZ1>P zdhVDtzTE`TQXMvQK#5GCgART}jhWOlM%QO{)junZHRX`cHtRep1}- zfeEl8#+AFoOvC#z_13{2GCGNj^knkQKxOdmuO5MY7^xvMcfV>JU;bHr7HB>ObUc;5 zLO1J?ytc^VOQ9mu+J*L?$4Y@hc-sa?c&METoAhdvol1n3sg1rc;5GwVAUbKsrx$%GR5Bs(<>K3 zo?E<2?Xfi^n>y|Ob%F|~SI@=PznudyqkN4-w?;VdIncXPgN(Ob2d3onnt||%yz}Lq zez?i^_;xHzpuHcn+p&^<{398=K6QKvYuc}hJ>TXEx4sxnyb_4V*XH}XrH_+PXn9m1 z)_=1XsEno-#j%(oC!BV!{~P2x^(Xu_rr_=UuhLY0Qo)q&NTAd1Iat$Wv`o-%M1h@R zzXhy@VM^$bEpyl~Y(#&F{W;qL!YMSvKQ&Wu^K5;kR!9SsslPV8olC+uhst!XTeQJA z$y(PqW(-{OJdLGGW`M-UPy904jt6bOcv^g*A{*zLx@Bz&z9oMsIeaCA|9_5=fA8BRqNa&LkY?Po|~WOrvN<9Vhd| zG%Tt|=MhRr(R;?;COEMlTmQ8*2aVDbuK5@)(u8NwCtXY{v}qONO;%3YvW4Kql`+%w z-)%T1rCVt(+76N}S%pGLL}cH+BmZ6u2_Fqv?~1GZi(mAq&c`n|qs_;fpUdh4AP_H* zzhi@npL6HS>FFk*l*d2qYJUy#wYmn5#Pwpi;ZY}*&P|@Z)^cO%P!mSH_^-gEWF55p z?<#y7?FHhu&u70K8icKTudb$K(%``rrx~*yjc{>K@Ce7}7O=ciBCB+b2JMvI^r&lDCMcJA(* z?*t{*q3)TcY9Mm7}TjSNq99jpv`dTl1SweN_}@-^1EFDr_7#ht!QdRQ;&r` z5^hvv{(kFm`ZTzJZ_Y+W#jMIEhv^cD@MxNxiBu3jaMmes#C zOr3(@=EwC5iyQdc@`xVam0sN7F%Q)#X~%Ta`%^X^MQ~MmsG%Zm1H&udA6~d#g%W$o ztQOk_5Gq@Cd}|uS>ppg#M8;q_iNx%2qxa&&p3Q2;29C66neG2!b9aEGTK_nHbs+7H zQC@&2Oe^m=xc=gump^km{AM80R7RBFZ~-G@KheHyp<$bFSi%>DY8)dD!rsynXsqqI zYH3me;z`WUrL|{ZTJA2Mj84V08D{zu*%QEGzvIv)3ttFJDOM9N-2l%?w@c3tSAgh% zp7ZJAM)X)3B|j`5LXV-rF}3JsG$QUY57}yukuUb7rSLDo%;$MAi|l5!+Wmu#U4IEU z;stLQW&Q-8J#&9Zx_zk9S6F2#JBW|Kk85mx0rhq-DSC7KgQ)b<*QSLdsPa5nRk>&y z@xh+Dnp(sixzM=DHl;*M~JsZo($)&1|Le>^w`(0 z#lC6vQ?UHk%th|2L~y8^Z1Gz!$D287GOzkaL56O??0Q}WuarH6TUSOwdwO?GZ;TJDojJC( zn}-T}MY999$Twi4=jor~ZX-yjeKmR5Din40T*y@YSdEI2-^Liy7oj?J`-04w8I*DQ zbgI0%7F#Q1mO1zv;I4#J)?yDCDpx-Z{gMnud;2rWnT!QkK#A9rjU!@>LRx-L{}MVL zSyMBMoWSk;zrKFk^qYfkblc+MR-n`H)vykoQGBDiO=M*_ z3_6|}z1s*`!JY0ZVZzUg@f!V`1F9L_pi#qjxpiz1?j4SKu-veOy~8Kym@W-M0zcC+ z{RARL=Fwcp z*!My+&bPdY{1Lc?AX9AQc=mcD%5v{E$ckFRAv)p}=Vw!J$JdA1;M@o}B)T+TvgyY- z{r(ShSC*08L6~$mi-d-WC%8AnI)GE=C~M=7DggR+5fP_h%^=-dJb4Kt*O@QmZpKs{~u!F8BToEl4NO$9+M`bdeVgBTdp>f13z!d{kg5s%?c zDDU~}aja+>YLBXCA0?7;NII9Lid6yjfS5eYcTWBR>9`lb% zYS;Xl14dBkz`Fx@{M7#LhKFR3THrA`yXl+zuY|Ba^}tC$XaT&6WK{%rWP<9sTB*h_ zT`+7cEG&~+0P6?)8n;Qz1Czji9-d~OLH^ox)0_JA1Th7*);7@vuzfMt))hB{Gm-1P zIVYRpy#E60`+73+6dW4!?yi6>3B>o?sUz@VSK1@GbuvCOR@SpN8^>8sE}!-HGccCz zDHts^0Jf3CRb-Pz+~sfQw$GM?Zd$#!x}xa_nJle29*3iFzYyQIAM732e)Y;l{s(g? z^Q|Dcp&%AIN0ZePs#{<-bMW}{yJN@^zUza-p)nl!)W_CATLsm3e0PIbCs3Mxzku-T zHB7s!XjpTg3kl(-q#o-@ILG}!^_5K)zKpMC8T4e4b5D8@_A_h@T%O8OBPP1Rd*Cj& z`q!^;^G&YB&L`_|+{c~w$jlHtxOBzor^YloU3xm`|2ZGOXP)UP3R=P_qwWHB^#Pnq zJ$Y!Zj)JPoSBppT6UHWbjVk$d=*pkQb8eFJ2K0qfIopJo9 z_1r8RN!tBkS!)*OTO%KEh&OqmTKNmrkpM~SewSKrE5>Tpks~60!Xpcm!Ey3HX zq!S$WfmrBX6~SlF4<~!5AIIrvP)+o`Rv|couT1!r-#jaU5?b6DUt

Z?5bxjcWo` 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�Wd-Q?d(kujV*dbUyP&gT9; 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

    >o__%?Od(|xL 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 num_data` then + only as many batches as the data can be split into will be + used. If set to -1 all of the data will be used. + shuffle_order (bool): Whether to randomly permute the order of + the data before each epoch. + rng (RandomState): A seeded random number generator. + """ + # check a valid which_set was provided + assert which_set in ['train', 'valid', 'test'], ( + 'Expected which_set to be either train, valid or eval. ' + 'Got {0}'.format(which_set) + ) + self.one_hot = one_hot + self.which_set = which_set + self.num_classes = 10 + # construct path to data using os.path.join to ensure the correct path + # separator for the current platform / OS is used + # MLP_DATA_DIR environment variable should point to the data directory + data_path = os.path.join( + os.environ['MLP_DATA_DIR'], 'cifar10-{0}.npz'.format(which_set)) + assert os.path.isfile(data_path), ( + 'Data file does not exist at expected path: ' + data_path + ) + # load data from compressed numpy file + loaded = np.load(data_path) + + inputs, targets = loaded['inputs'], loaded['targets'] + inputs = inputs.astype(np.float32) + if flatten: + inputs = np.reshape(inputs, newshape=(-1, 32*32*3)) + else: + inputs = np.reshape(inputs, newshape=(-1, 3, 32, 32)) + inputs = np.transpose(inputs, axes=(0, 2, 3, 1)) + + inputs = inputs / 255.0 + # label map gives strings corresponding to integer label targets + + + # pass the loaded data to the parent class __init__ + super(CIFAR10DataProvider, self).__init__( + inputs, targets, batch_size, max_num_batches, shuffle_order, rng) + + def next(self): + """Returns next data batch or raises `StopIteration` if at end.""" + inputs_batch, targets_batch = super(CIFAR10DataProvider, self).next() + if self.one_hot: + return inputs_batch, self.to_one_of_k(targets_batch) + else: + return inputs_batch, targets_batch + + def to_one_of_k(self, int_targets): + """Converts integer coded class target to 1 of K coded targets. + + Args: + int_targets (ndarray): Array of integer coded class targets (i.e. + where an integer from 0 to `num_classes` - 1 is used to + indicate which is the correct class). This should be of shape + (num_data,). + + Returns: + Array of 1 of K coded targets i.e. an array of shape + (num_data, num_classes) where for each row all elements are equal + to zero except for the column corresponding to the correct class + which is equal to one. + """ + one_of_k_targets = np.zeros((int_targets.shape[0], self.num_classes)) + one_of_k_targets[range(int_targets.shape[0]), int_targets] = 1 + return one_of_k_targets + + + +class CIFAR100DataProvider(DataProvider): + """Data provider for CIFAR-100 object images.""" + + def __init__(self, which_set='train', batch_size=100, max_num_batches=-1, + shuffle_order=True, rng=None, flatten=False, one_hot=False): + """Create a new EMNIST data provider object. + + Args: + which_set: One of 'train', 'valid' or 'eval'. Determines which + portion of the EMNIST data this object should provide. + batch_size (int): Number of data points to include in each batch. + max_num_batches (int): Maximum number of batches to iterate over + in an epoch. If `max_num_batches * batch_size > num_data` then + only as many batches as the data can be split into will be + used. If set to -1 all of the data will be used. + shuffle_order (bool): Whether to randomly permute the order of + the data before each epoch. + rng (RandomState): A seeded random number generator. + """ + # check a valid which_set was provided + assert which_set in ['train', 'valid', 'test'], ( + 'Expected which_set to be either train, valid or eval. ' + 'Got {0}'.format(which_set) + ) + self.one_hot = one_hot + self.which_set = which_set + self.num_classes = 100 + # construct path to data using os.path.join to ensure the correct path + # separator for the current platform / OS is used + # MLP_DATA_DIR environment variable should point to the data directory + data_path = os.path.join( + os.environ['MLP_DATA_DIR'], 'cifar100-{0}.npz'.format(which_set)) + assert os.path.isfile(data_path), ( + 'Data file does not exist at expected path: ' + data_path + ) + # load data from compressed numpy file + loaded = np.load(data_path) + + inputs, targets = loaded['inputs'], loaded['targets'] + inputs = inputs.astype(np.float32) + if flatten: + inputs = np.reshape(inputs, newshape=(-1, 32*32*3)) + else: + inputs = np.reshape(inputs, newshape=(-1, 3, 32, 32)) + inputs = np.transpose(inputs, axes=(0, 2, 3, 1)) + inputs = inputs / 255.0 + + # pass the loaded data to the parent class __init__ + super(CIFAR100DataProvider, self).__init__( + inputs, targets, batch_size, max_num_batches, shuffle_order, rng) + + def next(self): + """Returns next data batch or raises `StopIteration` if at end.""" + inputs_batch, targets_batch = super(CIFAR100DataProvider, self).next() + if self.one_hot: + return inputs_batch, self.to_one_of_k(targets_batch) + else: + return inputs_batch, targets_batch + + def to_one_of_k(self, int_targets): + """Converts integer coded class target to 1 of K coded targets. + + Args: + int_targets (ndarray): Array of integer coded class targets (i.e. + where an integer from 0 to `num_classes` - 1 is used to + indicate which is the correct class). This should be of shape + (num_data,). + + Returns: + Array of 1 of K coded targets i.e. an array of shape + (num_data, num_classes) where for each row all elements are equal + to zero except for the column corresponding to the correct class + which is equal to one. + """ + one_of_k_targets = np.zeros((int_targets.shape[0], self.num_classes)) + one_of_k_targets[range(int_targets.shape[0]), int_targets] = 1 + return one_of_k_targets + + +class MSD10GenreDataProvider(DataProvider): + """Data provider for Million Song Dataset 10-genre classification task.""" + + def __init__(self, which_set='train', batch_size=100, max_num_batches=-1, + shuffle_order=True, rng=None, one_hot=False, flatten=True): + """Create a new EMNIST data provider object. + + Args: + which_set: One of 'train', 'valid' or 'eval'. Determines which + portion of the EMNIST data this object should provide. + batch_size (int): Number of data points to include in each batch. + max_num_batches (int): Maximum number of batches to iterate over + in an epoch. If `max_num_batches * batch_size > num_data` then + only as many batches as the data can be split into will be + used. If set to -1 all of the data will be used. + shuffle_order (bool): Whether to randomly permute the order of + the data before each epoch. + rng (RandomState): A seeded random number generator. + """ + # check a valid which_set was provided + assert which_set in ['train', 'valid', 'test'], ( + 'Expected which_set to be either train, valid or eval. ' + 'Got {0}'.format(which_set) + ) + self.one_hot = one_hot + self.which_set = which_set + self.num_classes = 10 + # construct path to data using os.path.join to ensure the correct path + # separator for the current platform / OS is used + # MLP_DATA_DIR environment variable should point to the data directory + if which_set is not "test": + data_path = os.path.join( + os.environ['MLP_DATA_DIR'], 'msd10-{0}.npz'.format(which_set)) + assert os.path.isfile(data_path), ( + 'Data file does not exist at expected path: ' + data_path + ) + # load data from compressed numpy file + loaded = np.load(data_path) + + inputs, target = loaded['inputs'], loaded['targets'] + else: + input_data_path = os.path.join( + os.environ['MLP_DATA_DIR'], 'msd-10-genre-test-inputs.npz') + assert os.path.isfile(input_data_path), ( + 'Data file does not exist at expected path: ' + input_data_path + ) + target_data_path = os.path.join( + os.environ['MLP_DATA_DIR'], 'msd-10-genre-test-targets.npz') + assert os.path.isfile(input_data_path), ( + 'Data file does not exist at expected path: ' + input_data_path + ) + # load data from compressed numpy file + inputs = np.load(input_data_path)['inputs'] + target = np.load(target_data_path)['targets'] + if flatten: + inputs = inputs.reshape((-1, 120*25)) + #inputs, targets = loaded['inputs'], loaded['targets'] + + + # label map gives strings corresponding to integer label targets + + # pass the loaded data to the parent class __init__ + super(MSD10GenreDataProvider, self).__init__( + inputs, target, batch_size, max_num_batches, shuffle_order, rng) + + def next(self): + """Returns next data batch or raises `StopIteration` if at end.""" + inputs_batch, targets_batch = super(MSD10GenreDataProvider, self).next() + if self.one_hot: + return inputs_batch, self.to_one_of_k(targets_batch) + else: + return inputs_batch, targets_batch + + def to_one_of_k(self, int_targets): + """Converts integer coded class target to 1 of K coded targets. + + Args: + int_targets (ndarray): Array of integer coded class targets (i.e. + where an integer from 0 to `num_classes` - 1 is used to + indicate which is the correct class). This should be of shape + (num_data,). + + Returns: + Array of 1 of K coded targets i.e. an array of shape + (num_data, num_classes) where for each row all elements are equal + to zero except for the column corresponding to the correct class + which is equal to one. + """ + one_of_k_targets = np.zeros((int_targets.shape[0], self.num_classes)) + one_of_k_targets[range(int_targets.shape[0]), int_targets] = 1 + return one_of_k_targets + +class MSD25GenreDataProvider(DataProvider): + """Data provider for Million Song Dataset 25-genre classification task.""" + + def __init__(self, which_set='train', batch_size=100, max_num_batches=-1, + shuffle_order=True, rng=None, one_hot=False, flatten=True): + """Create a new EMNIST data provider object. + + Args: + which_set: One of 'train', 'valid' or 'eval'. Determines which + portion of the EMNIST data this object should provide. + batch_size (int): Number of data points to include in each batch. + max_num_batches (int): Maximum number of batches to iterate over + in an epoch. If `max_num_batches * batch_size > num_data` then + only as many batches as the data can be split into will be + used. If set to -1 all of the data will be used. + shuffle_order (bool): Whether to randomly permute the order of + the data before each epoch. + rng (RandomState): A seeded random number generator. + """ + # check a valid which_set was provided + assert which_set in ['train', 'valid', 'test'], ( + 'Expected which_set to be either train or valid. ' + 'Got {0}'.format(which_set) + ) + self.one_hot = one_hot + self.which_set = which_set + self.num_classes = 25 + # construct path to data using os.path.join to ensure the correct path + # separator for the current platform / OS is used + # MLP_DATA_DIR environment variable should point to the data directory + + data_path = os.path.join( + os.environ['MLP_DATA_DIR'], 'msd10-{0}.npz'.format(which_set)) + assert os.path.isfile(data_path), ( + 'Data file does not exist at expected path: ' + data_path + ) + # load data from compressed numpy file + loaded = np.load(data_path) + + inputs, target = loaded['inputs'], loaded['targets'] + + if flatten: + inputs = inputs.reshape((-1, 120*25)) + #inputs, target + # pass the loaded data to the parent class __init__ + super(MSD25GenreDataProvider, self).__init__( + inputs, target, batch_size, max_num_batches, shuffle_order, rng) + + def next(self): + """Returns next data batch or raises `StopIteration` if at end.""" + inputs_batch, targets_batch = super(MSD25GenreDataProvider, self).next() + if self.one_hot: + return inputs_batch, self.to_one_of_k(targets_batch) + else: + return inputs_batch, targets_batch + + def to_one_of_k(self, int_targets): + """Converts integer coded class target to 1 of K coded targets. + + Args: + int_targets (ndarray): Array of integer coded class targets (i.e. + where an integer from 0 to `num_classes` - 1 is used to + indicate which is the correct class). This should be of shape + (num_data,). + + Returns: + Array of 1 of K coded targets i.e. an array of shape + (num_data, num_classes) where for each row all elements are equal + to zero except for the column corresponding to the correct class + which is equal to one. + """ + one_of_k_targets = np.zeros((int_targets.shape[0], self.num_classes)) + one_of_k_targets[range(int_targets.shape[0]), int_targets] = 1 + return one_of_k_targets + + class MetOfficeDataProvider(DataProvider): """South Scotland Met Office weather data provider.""" diff --git a/emnist_network_trainer.py b/emnist_network_trainer.py new file mode 100644 index 0000000..2554318 --- /dev/null +++ b/emnist_network_trainer.py @@ -0,0 +1,182 @@ +import argparse +import numpy as np +import tensorflow as tf +import tqdm +from data_providers import EMNISTDataProvider +from network_builder import ClassifierNetworkGraph +from utils.parser_utils import ParserClass +from utils.storage import build_experiment_folder, save_statistics + +tf.reset_default_graph() # resets any previous graphs to clear memory +parser = argparse.ArgumentParser(description='Welcome to CNN experiments script') # generates an argument parser +parser_extractor = ParserClass(parser=parser) # creates a parser class to process the parsed input + +batch_size, seed, epochs, logs_path, continue_from_epoch, tensorboard_enable, batch_norm, \ +strided_dim_reduction, experiment_prefix, dropout_rate_value = parser_extractor.get_argument_variables() +# returns a list of objects that contain +# our parsed input + +experiment_name = "experiment_{}_batch_size_{}_bn_{}_mp_{}".format(experiment_prefix, + batch_size, batch_norm, + strided_dim_reduction) +# generate experiment name + +rng = np.random.RandomState(seed=seed) # set seed + +train_data = EMNISTDataProvider(which_set="train", batch_size=batch_size, rng=rng) +val_data = EMNISTDataProvider(which_set="valid", batch_size=batch_size, rng=rng) +test_data = EMNISTDataProvider(which_set="test", batch_size=batch_size, rng=rng) +# setup our data providers + +print("Running {}".format(experiment_name)) +print("Starting from epoch {}".format(continue_from_epoch)) + +saved_models_filepath, logs_filepath = build_experiment_folder(experiment_name, logs_path) # generate experiment dir + +# Placeholder setup +data_inputs = tf.placeholder(tf.float32, [batch_size, train_data.inputs.shape[1], train_data.inputs.shape[2], + train_data.inputs.shape[3]], 'data-inputs') +data_targets = tf.placeholder(tf.int32, [batch_size], 'data-targets') + +training_phase = tf.placeholder(tf.bool, name='training-flag') +rotate_data = tf.placeholder(tf.bool, name='rotate-flag') +dropout_rate = tf.placeholder(tf.float32, name='dropout-prob') + +classifier_network = ClassifierNetworkGraph(input_x=data_inputs, target_placeholder=data_targets, + dropout_rate=dropout_rate, batch_size=batch_size, + num_channels=train_data.inputs.shape[2], n_classes=train_data.num_classes, + is_training=training_phase, augment_rotate_flag=rotate_data, + strided_dim_reduction=strided_dim_reduction, + use_batch_normalization=batch_norm) # initialize our computational graph + +if continue_from_epoch == -1: # if this is a new experiment and not continuation of a previous one then generate a new + # statistics file + save_statistics(logs_filepath, "result_summary_statistics", ["epoch", "train_c_loss", "train_c_accuracy", + "val_c_loss", "val_c_accuracy", + "test_c_loss", "test_c_accuracy"], create=True) + +start_epoch = continue_from_epoch if continue_from_epoch != -1 else 0 # if new experiment start from 0 otherwise +# continue where left off + +summary_op, losses_ops, c_error_opt_op = classifier_network.init_train() # get graph operations (ops) + +total_train_batches = train_data.num_batches +total_val_batches = val_data.num_batches +total_test_batches = test_data.num_batches + +best_epoch = 0 + +if tensorboard_enable: + print("saved tensorboard file at", logs_filepath) + writer = tf.summary.FileWriter(logs_filepath, graph=tf.get_default_graph()) + +init = tf.global_variables_initializer() # initialization op for the graph + +with tf.Session() as sess: + sess.run(init) # actually running the initialization op + train_saver = tf.train.Saver() # saver object that will save our graph so we can reload it later for continuation of + val_saver = tf.train.Saver() + # training or inference + + continue_from_epoch = -1 + + if continue_from_epoch != -1: + train_saver.restore(sess, "{}/{}_{}.ckpt".format(saved_models_filepath, experiment_name, + continue_from_epoch)) # restore previous graph to continue operations + + best_val_accuracy = 0. + with tqdm.tqdm(total=epochs) as epoch_pbar: + for e in range(start_epoch, epochs): + total_c_loss = 0. + total_accuracy = 0. + with tqdm.tqdm(total=total_train_batches) as pbar_train: + for batch_idx, (x_batch, y_batch) in enumerate(train_data): + iter_id = e * total_train_batches + batch_idx + _, c_loss_value, acc = sess.run( + [c_error_opt_op, losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: True, rotate_data: False}) + # Here we execute the c_error_opt_op which trains the network and also the ops that compute the + # loss and accuracy, we save those in _, c_loss_value and acc respectively. + total_c_loss += c_loss_value # add loss of current iter to sum + total_accuracy += acc # add acc of current iter to sum + + iter_out = "iter_num: {}, train_loss: {}, train_accuracy: {}".format(iter_id, + total_c_loss / (batch_idx + 1), + total_accuracy / ( + batch_idx + 1)) # show + # iter statistics using running averages of previous iter within this epoch + pbar_train.set_description(iter_out) + pbar_train.update(1) + if tensorboard_enable and batch_idx % 25 == 0: # save tensorboard summary every 25 iterations + _summary = sess.run( + summary_op, + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: True, rotate_data: False}) + writer.add_summary(_summary, global_step=iter_id) + + total_c_loss /= total_train_batches # compute mean of los + total_accuracy /= total_train_batches # compute mean of accuracy + + save_path = train_saver.save(sess, "{}/{}_{}.ckpt".format(saved_models_filepath, experiment_name, e)) + # save graph and weights + print("Saved current model at", save_path) + + total_val_c_loss = 0. + total_val_accuracy = 0. # run validation stage, note how training_phase placeholder is set to False + # and that we do not run the c_error_opt_op which runs gradient descent, but instead only call the loss ops + # to collect losses on the validation set + with tqdm.tqdm(total=total_val_batches) as pbar_val: + for batch_idx, (x_batch, y_batch) in enumerate(val_data): + c_loss_value, acc = sess.run( + [losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: False, rotate_data: False}) + total_val_c_loss += c_loss_value + total_val_accuracy += acc + iter_out = "val_loss: {}, val_accuracy: {}".format(total_val_c_loss / (batch_idx + 1), + total_val_accuracy / (batch_idx + 1)) + pbar_val.set_description(iter_out) + pbar_val.update(1) + + total_val_c_loss /= total_val_batches + total_val_accuracy /= total_val_batches + + if best_val_accuracy < total_val_accuracy: # check if val acc better than the previous best and if + # so save current as best and save the model as the best validation model to be used on the test set + # after the final epoch + best_val_accuracy = total_val_accuracy + best_epoch = e + save_path = val_saver.save(sess, "{}/best_validation_{}_{}.ckpt".format(saved_models_filepath, experiment_name, e)) + print("Saved best validation score model at", save_path) + + epoch_pbar.update(1) + # save statistics of this epoch, train and val without test set performance + save_statistics(logs_filepath, "result_summary_statistics", + [e, total_c_loss, total_accuracy, total_val_c_loss, total_val_accuracy, + -1, -1]) + + val_saver.restore(sess, "{}/best_validation_{}_{}.ckpt".format(saved_models_filepath, experiment_name, best_epoch)) + # restore model with best performance on validation set + total_test_c_loss = 0. + total_test_accuracy = 0. + # computer test loss and accuracy and save + with tqdm.tqdm(total=total_test_batches) as pbar_test: + for batch_id, (x_batch, y_batch) in enumerate(test_data): + c_loss_value, acc = sess.run( + [losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: False, rotate_data: False}) + total_test_c_loss += c_loss_value + total_test_accuracy += acc + iter_out = "test_loss: {}, test_accuracy: {}".format(total_test_c_loss / (batch_idx + 1), + acc / (batch_idx + 1)) + pbar_test.set_description(iter_out) + pbar_test.update(1) + + total_test_c_loss /= total_test_batches + total_test_accuracy /= total_test_batches + + save_statistics(logs_filepath, "result_summary_statistics", + ["test set performance", -1, -1, -1, -1, + total_test_c_loss, total_test_accuracy]) diff --git a/environment_variables.sh b/environment_variables.sh new file mode 100644 index 0000000..ce5e5c8 --- /dev/null +++ b/environment_variables.sh @@ -0,0 +1,8 @@ +cd ~/anaconda2/envs/mlp +mkdir -p ./etc/conda/activate.d +mkdir -p ./etc/conda/deactivate.d +echo -e '#!/bin/sh\n' >> ./etc/conda/activate.d/env_vars.sh +echo "export MLP_DATA_DIR=$HOME/mlp_term_2/mlpractical/data" >> ./etc/conda/activate.d/env_vars.sh +echo -e '#!/bin/sh\n' >> ./etc/conda/deactivate.d/env_vars.sh +echo 'unset MLP_DATA_DIR' >> ./etc/conda/deactivate.d/env_vars.sh +export MLP_DATA_DIR=$HOME/mlpractical/data \ No newline at end of file diff --git a/gpu_cluster_tutorial_training_script.sh b/gpu_cluster_tutorial_training_script.sh new file mode 100644 index 0000000..5ee826c --- /dev/null +++ b/gpu_cluster_tutorial_training_script.sh @@ -0,0 +1,33 @@ +#!/bin/sh +#SBATCH -N 1 # nodes requested +#SBATCH -n 1 # tasks requested +#SBATCH --gres=gpu:1 +#SBATCH --mem=16000 # memory in Mb +#SBATCH -o sample_experiment_outfile # send stdout to sample_experiment_outfile +#SBATCH -e sample_experiment_errfile # send stderr to sample_experiment_errfile +#SBATCH -t 2:00:00 # time requested in hour:minute:secon +export CUDA_HOME=/opt/cuda-8.0.44 + +export CUDNN_HOME=/opt/cuDNN-6.0_8.0 + +export STUDENT_ID=sxxxxxx + +export LD_LIBRARY_PATH=${CUDNN_HOME}/lib64:${CUDA_HOME}/lib64:$LD_LIBRARY_PATH + +export LIBRARY_PATH=${CUDNN_HOME}/lib64:$LIBRARY_PATH + +export CPATH=${CUDNN_HOME}/include:$CPATH + +export PATH=${CUDA_HOME}/bin:${PATH} + +export PYTHON_PATH=$PATH + +mkdir -p /disk/scratch/${STUDENT_ID} + +export TMPDIR=/disk/scratch/${STUDENT_ID}/ +export TMP=/disk/scratch/${STUDENT_ID}/ +# Activate the relevant virtual environment: + +source /home/${STUDENT_ID}/miniconda3/bin/activate mlp + +python network_trainer.py --batch_size 128 --epochs 200 --experiment_prefix vgg-net-emnist-sample-exp --dropout_rate 0.4 --batch_norm_use True --strided_dim_reduction True --seed 25012018 diff --git a/mlp/__init__.py b/mlp/__init__.py deleted file mode 100644 index b41e667..0000000 --- a/mlp/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -"""Machine Learning Practical package.""" - -__authors__ = ['Pawel Swietojanski', 'Steve Renals', 'Matt Graham'] - -DEFAULT_SEED = 123456 # Default random number generator seed if none provided. diff --git a/mlp/errors.py b/mlp/errors.py deleted file mode 100644 index 3f0ae4f..0000000 --- a/mlp/errors.py +++ /dev/null @@ -1,176 +0,0 @@ -# -*- coding: utf-8 -*- -"""Error functions. - -This module defines error functions, with the aim of model training being to -minimise the error function given a set of inputs and target outputs. - -The error functions will typically measure some concept of distance between the -model outputs and target outputs, averaged over all data points in the data set -or batch. -""" - -import numpy as np - - -class SumOfSquaredDiffsError(object): - """Sum of squared differences (squared Euclidean distance) error.""" - - def __call__(self, outputs, targets): - """Calculates error function given a batch of outputs and targets. - - Args: - outputs: Array of model outputs of shape (batch_size, output_dim). - targets: Array of target outputs of shape (batch_size, output_dim). - - Returns: - Scalar cost function value. - """ - return 0.5 * np.mean(np.sum((outputs - targets)**2, axis=1)) - - def grad(self, outputs, targets): - """Calculates gradient of error function with respect to outputs. - - Args: - outputs: Array of model outputs of shape (batch_size, output_dim). - targets: Array of target outputs of shape (batch_size, output_dim). - - Returns: - Gradient of error function with respect to outputs. - """ - return (outputs - targets) / outputs.shape[0] - - def __repr__(self): - return 'MeanSquaredErrorCost' - - -class BinaryCrossEntropyError(object): - """Binary cross entropy error.""" - - def __call__(self, outputs, targets): - """Calculates error function given a batch of outputs and targets. - - Args: - outputs: Array of model outputs of shape (batch_size, output_dim). - targets: Array of target outputs of shape (batch_size, output_dim). - - Returns: - Scalar error function value. - """ - return -np.mean( - targets * np.log(outputs) + (1. - targets) * np.log(1. - ouputs)) - - def grad(self, outputs, targets): - """Calculates gradient of error function with respect to outputs. - - Args: - outputs: Array of model outputs of shape (batch_size, output_dim). - targets: Array of target outputs of shape (batch_size, output_dim). - - Returns: - Gradient of error function with respect to outputs. - """ - return ((1. - targets) / (1. - outputs) - - (targets / outputs)) / outputs.shape[0] - - def __repr__(self): - return 'BinaryCrossEntropyError' - - -class BinaryCrossEntropySigmoidError(object): - """Binary cross entropy error with logistic sigmoid applied to outputs.""" - - def __call__(self, outputs, targets): - """Calculates error function given a batch of outputs and targets. - - Args: - outputs: Array of model outputs of shape (batch_size, output_dim). - targets: Array of target outputs of shape (batch_size, output_dim). - - Returns: - Scalar error function value. - """ - probs = 1. / (1. + np.exp(-outputs)) - return -np.mean( - targets * np.log(probs) + (1. - targets) * np.log(1. - probs)) - - def grad(self, outputs, targets): - """Calculates gradient of error function with respect to outputs. - - Args: - outputs: Array of model outputs of shape (batch_size, output_dim). - targets: Array of target outputs of shape (batch_size, output_dim). - - Returns: - Gradient of error function with respect to outputs. - """ - probs = 1. / (1. + np.exp(-outputs)) - return (probs - targets) / outputs.shape[0] - - def __repr__(self): - return 'BinaryCrossEntropySigmoidError' - - -class CrossEntropyError(object): - """Multi-class cross entropy error.""" - - def __call__(self, outputs, targets): - """Calculates error function given a batch of outputs and targets. - - Args: - outputs: Array of model outputs of shape (batch_size, output_dim). - targets: Array of target outputs of shape (batch_size, output_dim). - - Returns: - Scalar error function value. - """ - return -np.mean(np.sum(targets * np.log(outputs), axis=1)) - - def grad(self, outputs, targets): - """Calculates gradient of error function with respect to outputs. - - Args: - outputs: Array of model outputs of shape (batch_size, output_dim). - targets: Array of target outputs of shape (batch_size, output_dim). - - Returns: - Gradient of error function with respect to outputs. - """ - return -(targets / outputs) / outputs.shape[0] - - def __repr__(self): - return 'CrossEntropyError' - - -class CrossEntropySoftmaxError(object): - """Multi-class cross entropy error with Softmax applied to outputs.""" - - def __call__(self, outputs, targets): - """Calculates error function given a batch of outputs and targets. - - Args: - outputs: Array of model outputs of shape (batch_size, output_dim). - targets: Array of target outputs of shape (batch_size, output_dim). - - Returns: - Scalar error function value. - """ - normOutputs = outputs - outputs.max(-1)[:, None] - logProb = normOutputs - np.log(np.sum(np.exp(normOutputs), axis=-1)[:, None]) - return -np.mean(np.sum(targets * logProb, axis=1)) - - def grad(self, outputs, targets): - """Calculates gradient of error function with respect to outputs. - - Args: - outputs: Array of model outputs of shape (batch_size, output_dim). - targets: Array of target outputs of shape (batch_size, output_dim). - - Returns: - Gradient of error function with respect to outputs. - """ - probs = np.exp(outputs - outputs.max(-1)[:, None]) - probs /= probs.sum(-1)[:, None] - return (probs - targets) / outputs.shape[0] - - def __repr__(self): - return 'CrossEntropySoftmaxError' diff --git a/mlp/initialisers.py b/mlp/initialisers.py deleted file mode 100644 index 8c8e252..0000000 --- a/mlp/initialisers.py +++ /dev/null @@ -1,143 +0,0 @@ -# -*- coding: utf-8 -*- -"""Parameter initialisers. - -This module defines classes to initialise the parameters in a layer. -""" - -import numpy as np -from mlp import DEFAULT_SEED - - -class ConstantInit(object): - """Constant parameter initialiser.""" - - def __init__(self, value): - """Construct a constant parameter initialiser. - - Args: - value: Value to initialise parameter to. - """ - self.value = value - - def __call__(self, shape): - return np.ones(shape=shape) * self.value - - -class UniformInit(object): - """Random uniform parameter initialiser.""" - - def __init__(self, low, high, rng=None): - """Construct a random uniform parameter initialiser. - - Args: - low: Lower bound of interval to sample from. - high: Upper bound of interval to sample from. - rng (RandomState): Seeded random number generator. - """ - self.low = low - self.high = high - if rng is None: - rng = np.random.RandomState(DEFAULT_SEED) - self.rng = rng - - def __call__(self, shape): - return self.rng.uniform(low=self.low, high=self.high, size=shape) - - -class NormalInit(object): - """Random normal parameter initialiser.""" - - def __init__(self, mean, std, rng=None): - """Construct a random uniform parameter initialiser. - - Args: - mean: Mean of distribution to sample from. - std: Standard deviation of distribution to sample from. - rng (RandomState): Seeded random number generator. - """ - self.mean = mean - self.std = std - if rng is None: - rng = np.random.RandomState(DEFAULT_SEED) - self.rng = rng - - def __call__(self, shape): - return self.rng.normal(loc=self.mean, scale=self.std, size=shape) - -class GlorotUniformInit(object): - """Glorot and Bengio (2010) random uniform weights initialiser. - - Initialises an two-dimensional parameter array using the 'normalized - initialisation' scheme suggested in [1] which attempts to maintain a - roughly constant variance in the activations and backpropagated gradients - of a multi-layer model consisting of interleaved affine and logistic - sigmoidal transformation layers. - - Weights are sampled from a zero-mean uniform distribution with standard - deviation `sqrt(2 / (input_dim * output_dim))` where `input_dim` and - `output_dim` are the input and output dimensions of the weight matrix - respectively. - - References: - [1]: Understanding the difficulty of training deep feedforward neural - networks, Glorot and Bengio (2010) - """ - - def __init__(self, gain=1., rng=None): - """Construct a normalised initilisation random initialiser object. - - Args: - gain: Multiplicative factor to scale initialised weights by. - Recommended values is 1 for affine layers followed by - logistic sigmoid layers (or another affine layer). - rng (RandomState): Seeded random number generator. - """ - self.gain = gain - if rng is None: - rng = np.random.RandomState(DEFAULT_SEED) - self.rng = rng - - def __call__(self, shape): - assert len(shape) == 2, ( - 'Initialiser should only be used for two dimensional arrays.') - std = self.gain * (2. / (shape[0] + shape[1]))**0.5 - half_width = 3.**0.5 * std - return self.rng.uniform(low=-half_width, high=half_width, size=shape) - - -class GlorotNormalInit(object): - """Glorot and Bengio (2010) random normal weights initialiser. - - Initialises an two-dimensional parameter array using the 'normalized - initialisation' scheme suggested in [1] which attempts to maintain a - roughly constant variance in the activations and backpropagated gradients - of a multi-layer model consisting of interleaved affine and logistic - sigmoidal transformation layers. - - Weights are sampled from a zero-mean normal distribution with standard - deviation `sqrt(2 / (input_dim * output_dim))` where `input_dim` and - `output_dim` are the input and output dimensions of the weight matrix - respectively. - - References: - [1]: Understanding the difficulty of training deep feedforward neural - networks, Glorot and Bengio (2010) - """ - - def __init__(self, gain=1., rng=None): - """Construct a normalised initilisation random initialiser object. - - Args: - gain: Multiplicative factor to scale initialised weights by. - Recommended values is 1 for affine layers followed by - logistic sigmoid layers (or another affine layer). - rng (RandomState): Seeded random number generator. - """ - self.gain = gain - if rng is None: - rng = np.random.RandomState(DEFAULT_SEED) - self.rng = rng - - def __call__(self, shape): - std = self.gain * (2. / (shape[0] + shape[1]))**0.5 - return self.rng.normal(loc=0., scale=std, size=shape) diff --git a/mlp/layers.py b/mlp/layers.py deleted file mode 100644 index 6393803..0000000 --- a/mlp/layers.py +++ /dev/null @@ -1,1002 +0,0 @@ -# -*- coding: utf-8 -*- -"""Layer definitions. - -This module defines classes which encapsulate a single layer. - -These layers map input activations to output activation with the `fprop` -method and map gradients with repsect to outputs to gradients with respect to -their inputs with the `bprop` method. - -Some layers will have learnable parameters and so will additionally define -methods for getting and setting parameter and calculating gradients with -respect to the layer parameters. -""" - -import numpy as np -import mlp.initialisers as init -from mlp import DEFAULT_SEED - -class Layer(object): - """Abstract class defining the interface for a layer.""" - - def fprop(self, inputs): - """Forward propagates activations through the layer transformation. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - - Returns: - outputs: Array of layer outputs of shape (batch_size, output_dim). - """ - raise NotImplementedError() - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - outputs: Array of layer outputs calculated in forward pass of - shape (batch_size, output_dim). - grads_wrt_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - Array of gradients with respect to the layer inputs of shape - (batch_size, input_dim). - """ - raise NotImplementedError() - - -class LayerWithParameters(Layer): - """Abstract class defining the interface for a layer with parameters.""" - - def grads_wrt_params(self, inputs, grads_wrt_outputs): - """Calculates gradients with respect to layer parameters. - - Args: - inputs: Array of inputs to layer of shape (batch_size, input_dim). - grads_wrt_to_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - List of arrays of gradients with respect to the layer parameters - with parameter gradients appearing in same order in tuple as - returned from `get_params` method. - """ - raise NotImplementedError() - - def params_penalty(self): - """Returns the parameter dependent penalty term for this layer. - - If no parameter-dependent penalty terms are set this returns zero. - """ - raise NotImplementedError() - - @property - def params(self): - """Returns a list of parameters of layer. - - Returns: - List of current parameter values. This list should be in the - corresponding order to the `values` argument to `set_params`. - """ - raise NotImplementedError() - - @params.setter - def params(self, values): - """Sets layer parameters from a list of values. - - Args: - values: List of values to set parameters to. This list should be - in the corresponding order to what is returned by `get_params`. - """ - raise NotImplementedError() - -class StochasticLayerWithParameters(Layer): - """Specialised layer which uses a stochastic forward propagation.""" - - def __init__(self, rng=None): - """Constructs a new StochasticLayer object. - - Args: - rng (RandomState): Seeded random number generator object. - """ - if rng is None: - rng = np.random.RandomState(DEFAULT_SEED) - self.rng = rng - - def fprop(self, inputs, stochastic=True): - """Forward propagates activations through the layer transformation. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - stochastic: Flag allowing different deterministic - forward-propagation mode in addition to default stochastic - forward-propagation e.g. for use at test time. If False - a deterministic forward-propagation transformation - corresponding to the expected output of the stochastic - forward-propagation is applied. - - Returns: - outputs: Array of layer outputs of shape (batch_size, output_dim). - """ - raise NotImplementedError() - def grads_wrt_params(self, inputs, grads_wrt_outputs): - """Calculates gradients with respect to layer parameters. - - Args: - inputs: Array of inputs to layer of shape (batch_size, input_dim). - grads_wrt_to_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - List of arrays of gradients with respect to the layer parameters - with parameter gradients appearing in same order in tuple as - returned from `get_params` method. - """ - raise NotImplementedError() - - def params_penalty(self): - """Returns the parameter dependent penalty term for this layer. - - If no parameter-dependent penalty terms are set this returns zero. - """ - raise NotImplementedError() - - @property - def params(self): - """Returns a list of parameters of layer. - - Returns: - List of current parameter values. This list should be in the - corresponding order to the `values` argument to `set_params`. - """ - raise NotImplementedError() - - @params.setter - def params(self, values): - """Sets layer parameters from a list of values. - - Args: - values: List of values to set parameters to. This list should be - in the corresponding order to what is returned by `get_params`. - """ - raise NotImplementedError() - -class StochasticLayer(Layer): - """Specialised layer which uses a stochastic forward propagation.""" - - def __init__(self, rng=None): - """Constructs a new StochasticLayer object. - - Args: - rng (RandomState): Seeded random number generator object. - """ - if rng is None: - rng = np.random.RandomState(DEFAULT_SEED) - self.rng = rng - - def fprop(self, inputs, stochastic=True): - """Forward propagates activations through the layer transformation. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - stochastic: Flag allowing different deterministic - forward-propagation mode in addition to default stochastic - forward-propagation e.g. for use at test time. If False - a deterministic forward-propagation transformation - corresponding to the expected output of the stochastic - forward-propagation is applied. - - Returns: - outputs: Array of layer outputs of shape (batch_size, output_dim). - """ - raise NotImplementedError() - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. This should correspond to - default stochastic forward-propagation. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - outputs: Array of layer outputs calculated in forward pass of - shape (batch_size, output_dim). - grads_wrt_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - Array of gradients with respect to the layer inputs of shape - (batch_size, input_dim). - """ - raise NotImplementedError() - - -class AffineLayer(LayerWithParameters): - """Layer implementing an affine tranformation of its inputs. - - This layer is parameterised by a weight matrix and bias vector. - """ - - def __init__(self, input_dim, output_dim, - weights_initialiser=init.UniformInit(-0.1, 0.1), - biases_initialiser=init.ConstantInit(0.), - weights_penalty=None, biases_penalty=None): - """Initialises a parameterised affine layer. - - Args: - input_dim (int): Dimension of inputs to the layer. - output_dim (int): Dimension of the layer outputs. - weights_initialiser: Initialiser for the weight parameters. - biases_initialiser: Initialiser for the bias parameters. - weights_penalty: Weights-dependent penalty term (regulariser) or - None if no regularisation is to be applied to the weights. - biases_penalty: Biases-dependent penalty term (regulariser) or - None if no regularisation is to be applied to the biases. - """ - self.input_dim = input_dim - self.output_dim = output_dim - self.weights = weights_initialiser((self.output_dim, self.input_dim)) - self.biases = biases_initialiser(self.output_dim) - self.weights_penalty = weights_penalty - self.biases_penalty = biases_penalty - - def fprop(self, inputs): - """Forward propagates activations through the layer transformation. - - For inputs `x`, outputs `y`, weights `W` and biases `b` the layer - corresponds to `y = W.dot(x) + b`. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - - Returns: - outputs: Array of layer outputs of shape (batch_size, output_dim). - """ - return self.weights.dot(inputs.T).T + self.biases - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - outputs: Array of layer outputs calculated in forward pass of - shape (batch_size, output_dim). - grads_wrt_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - Array of gradients with respect to the layer inputs of shape - (batch_size, input_dim). - """ - return grads_wrt_outputs.dot(self.weights) - - def grads_wrt_params(self, inputs, grads_wrt_outputs): - """Calculates gradients with respect to layer parameters. - - Args: - inputs: array of inputs to layer of shape (batch_size, input_dim) - grads_wrt_to_outputs: array of gradients with respect to the layer - outputs of shape (batch_size, output_dim) - - Returns: - list of arrays of gradients with respect to the layer parameters - `[grads_wrt_weights, grads_wrt_biases]`. - """ - - grads_wrt_weights = np.dot(grads_wrt_outputs.T, inputs) - grads_wrt_biases = np.sum(grads_wrt_outputs, axis=0) - - if self.weights_penalty is not None: - grads_wrt_weights += self.weights_penalty.grad(self.weights) - - if self.biases_penalty is not None: - grads_wrt_biases += self.biases_penalty.grad(self.biases) - - return [grads_wrt_weights, grads_wrt_biases] - - def params_penalty(self): - """Returns the parameter dependent penalty term for this layer. - - If no parameter-dependent penalty terms are set this returns zero. - """ - params_penalty = 0 - if self.weights_penalty is not None: - params_penalty += self.weights_penalty(self.weights) - if self.biases_penalty is not None: - params_penalty += self.biases_penalty(self.biases) - return params_penalty - - @property - def params(self): - """A list of layer parameter values: `[weights, biases]`.""" - return [self.weights, self.biases] - - @params.setter - def params(self, values): - self.weights = values[0] - self.biases = values[1] - - def __repr__(self): - return 'AffineLayer(input_dim={0}, output_dim={1})'.format( - self.input_dim, self.output_dim) - -class BatchNormalizationLayer(StochasticLayerWithParameters): - """Layer implementing an affine tranformation of its inputs. - - This layer is parameterised by a weight matrix and bias vector. - """ - - def __init__(self, input_dim, rng=None): - """Initialises a parameterised affine layer. - - Args: - input_dim (int): Dimension of inputs to the layer. - output_dim (int): Dimension of the layer outputs. - weights_initialiser: Initialiser for the weight parameters. - biases_initialiser: Initialiser for the bias parameters. - weights_penalty: Weights-dependent penalty term (regulariser) or - None if no regularisation is to be applied to the weights. - biases_penalty: Biases-dependent penalty term (regulariser) or - None if no regularisation is to be applied to the biases. - """ - super(BatchNormalizationLayer, self).__init__(rng) - self.beta = np.random.normal(size=(input_dim)) - self.gamma = np.random.normal(size=(input_dim)) - self.epsilon = 0.00001 - self.cache = None - self.input_dim = input_dim - - def fprop(self, inputs, stochastic=True): - """Forward propagates inputs through a layer.""" - - raise NotImplementedError - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - outputs: Array of layer outputs calculated in forward pass of - shape (batch_size, output_dim). - grads_wrt_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - Array of gradients with respect to the layer inputs of shape - (batch_size, input_dim). - """ - - raise NotImplementedError - - def grads_wrt_params(self, inputs, grads_wrt_outputs): - """Calculates gradients with respect to layer parameters. - - Args: - inputs: array of inputs to layer of shape (batch_size, input_dim) - grads_wrt_to_outputs: array of gradients with respect to the layer - outputs of shape (batch_size, output_dim) - - Returns: - list of arrays of gradients with respect to the layer parameters - `[grads_wrt_weights, grads_wrt_biases]`. - """ - raise NotImplementedError - - def params_penalty(self): - """Returns the parameter dependent penalty term for this layer. - - If no parameter-dependent penalty terms are set this returns zero. - """ - params_penalty = 0 - - return params_penalty - - @property - def params(self): - """A list of layer parameter values: `[gammas, betas]`.""" - return [self.gamma, self.beta] - - @params.setter - def params(self, values): - self.gamma = values[0] - self.beta = values[1] - - def __repr__(self): - return 'BatchNormalizationLayer(input_dim={0})'.format( - self.input_dim) - - -class SigmoidLayer(Layer): - """Layer implementing an element-wise logistic sigmoid transformation.""" - - def fprop(self, inputs): - """Forward propagates activations through the layer transformation. - - For inputs `x` and outputs `y` this corresponds to - `y = 1 / (1 + exp(-x))`. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - - Returns: - outputs: Array of layer outputs of shape (batch_size, output_dim). - """ - return 1. / (1. + np.exp(-inputs)) - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - outputs: Array of layer outputs calculated in forward pass of - shape (batch_size, output_dim). - grads_wrt_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - Array of gradients with respect to the layer inputs of shape - (batch_size, input_dim). - """ - return grads_wrt_outputs * outputs * (1. - outputs) - - def __repr__(self): - return 'SigmoidLayer' - -class ConvolutionalLayer(LayerWithParameters): - """Layer implementing a 2D convolution-based transformation of its inputs. - The layer is parameterised by a set of 2D convolutional kernels, a four - dimensional array of shape - (num_output_channels, num_input_channels, kernel_dim_1, kernel_dim_2) - and a bias vector, a one dimensional array of shape - (num_output_channels,) - i.e. one shared bias per output channel. - Assuming no-padding is applied to the inputs so that outputs are only - calculated for positions where the kernel filters fully overlap with the - inputs, and that unit strides are used the outputs will have spatial extent - output_dim_1 = input_dim_1 - kernel_dim_1 + 1 - output_dim_2 = input_dim_2 - kernel_dim_2 + 1 - """ - - def __init__(self, num_input_channels, num_output_channels, - input_dim_1, input_dim_2, - kernel_dim_1, kernel_dim_2, - kernels_init=init.UniformInit(-0.01, 0.01), - biases_init=init.ConstantInit(0.), - kernels_penalty=None, biases_penalty=None): - """Initialises a parameterised convolutional layer. - Args: - num_input_channels (int): Number of channels in inputs to - layer (this may be number of colour channels in the input - images if used as the first layer in a model, or the - number of output channels, a.k.a. feature maps, from a - a previous convolutional layer). - num_output_channels (int): Number of channels in outputs - from the layer, a.k.a. number of feature maps. - input_dim_1 (int): Size of first input dimension of each 2D - channel of inputs. - input_dim_2 (int): Size of second input dimension of each 2D - channel of inputs. - kernel_dim_1 (int): Size of first dimension of each 2D channel of - kernels. - kernel_dim_2 (int): Size of second dimension of each 2D channel of - kernels. - kernels_intialiser: Initialiser for the kernel parameters. - biases_initialiser: Initialiser for the bias parameters. - kernels_penalty: Kernel-dependent penalty term (regulariser) or - None if no regularisation is to be applied to the kernels. - biases_penalty: Biases-dependent penalty term (regulariser) or - None if no regularisation is to be applied to the biases. - """ - self.num_input_channels = num_input_channels - self.num_output_channels = num_output_channels - self.input_dim_1 = input_dim_1 - self.input_dim_2 = input_dim_2 - self.kernel_dim_1 = kernel_dim_1 - self.kernel_dim_2 = kernel_dim_2 - self.kernels_init = kernels_init - self.biases_init = biases_init - self.kernels_shape = ( - num_output_channels, num_input_channels, kernel_dim_1, kernel_dim_2 - ) - self.inputs_shape = ( - None, num_input_channels, input_dim_1, input_dim_2 - ) - self.kernels = self.kernels_init(self.kernels_shape) - self.biases = self.biases_init(num_output_channels) - self.kernels_penalty = kernels_penalty - self.biases_penalty = biases_penalty - - self.cache = None - - def fprop(self, inputs): - """Forward propagates activations through the layer transformation. - For inputs `x`, outputs `y`, kernels `K` and biases `b` the layer - corresponds to `y = conv2d(x, K) + b`. - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - Returns: - outputs: Array of layer outputs of shape (batch_size, output_dim). - """ - raise NotImplementedError - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - Args: - inputs: Array of layer inputs of shape - (batch_size, num_input_channels, input_dim_1, input_dim_2). - outputs: Array of layer outputs calculated in forward pass of - shape - (batch_size, num_output_channels, output_dim_1, output_dim_2). - grads_wrt_outputs: Array of gradients with respect to the layer - outputs of shape - (batch_size, num_output_channels, output_dim_1, output_dim_2). - Returns: - Array of gradients with respect to the layer inputs of shape - (batch_size, input_dim). - """ - # Pad the grads_wrt_outputs - - raise NotImplementedError - - def grads_wrt_params(self, inputs, grads_wrt_outputs): - """Calculates gradients with respect to layer parameters. - Args: - inputs: array of inputs to layer of shape (batch_size, input_dim) - grads_wrt_to_outputs: array of gradients with respect to the layer - outputs of shape - (batch_size, num_output-_channels, output_dim_1, output_dim_2). - Returns: - list of arrays of gradients with respect to the layer parameters - `[grads_wrt_kernels, grads_wrt_biases]`. - """ - - raise NotImplementedError - - def params_penalty(self): - """Returns the parameter dependent penalty term for this layer. - If no parameter-dependent penalty terms are set this returns zero. - """ - params_penalty = 0 - if self.kernels_penalty is not None: - params_penalty += self.kernels_penalty(self.kernels) - if self.biases_penalty is not None: - params_penalty += self.biases_penalty(self.biases) - return params_penalty - - @property - def params(self): - """A list of layer parameter values: `[kernels, biases]`.""" - return [self.kernels, self.biases] - - @params.setter - def params(self, values): - self.kernels = values[0] - self.biases = values[1] - - def __repr__(self): - return ( - 'ConvolutionalLayer(\n' - ' num_input_channels={0}, num_output_channels={1},\n' - ' input_dim_1={2}, input_dim_2={3},\n' - ' kernel_dim_1={4}, kernel_dim_2={5}\n' - ')' - .format(self.num_input_channels, self.num_output_channels, - self.input_dim_1, self.input_dim_2, self.kernel_dim_1, - self.kernel_dim_2) - ) - - -class ReluLayer(Layer): - """Layer implementing an element-wise rectified linear transformation.""" - - def fprop(self, inputs): - """Forward propagates activations through the layer transformation. - - For inputs `x` and outputs `y` this corresponds to `y = max(0, x)`. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - - Returns: - outputs: Array of layer outputs of shape (batch_size, output_dim). - """ - return np.maximum(inputs, 0.) - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - outputs: Array of layer outputs calculated in forward pass of - shape (batch_size, output_dim). - grads_wrt_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - Array of gradients with respect to the layer inputs of shape - (batch_size, input_dim). - """ - return (outputs > 0) * grads_wrt_outputs - - def __repr__(self): - return 'ReluLayer' - -class LeakyReluLayer(Layer): - """Layer implementing an element-wise rectified linear transformation.""" - def __init__(self, alpha=0.01): - self.alpha = alpha - - def fprop(self, inputs): - """Forward propagates activations through the layer transformation. - - For inputs `x` and outputs `y` this corresponds to `y = max(0, x)`. - """ - positive_inputs = np.maximum(inputs, 0.) - - negative_inputs = inputs - negative_inputs[negative_inputs>0] = 0. - negative_inputs = negative_inputs * self.alpha - - outputs = positive_inputs + negative_inputs - return outputs - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - """ - positive_gradients = (outputs > 0) * grads_wrt_outputs - negative_gradients = self.alpha * (outputs < 0) * grads_wrt_outputs - gradients = positive_gradients + negative_gradients - return gradients - - def __repr__(self): - return 'LeakyReluLayer' - -class ELULayer(Layer): - """Layer implementing an ELU activation.""" - def __init__(self, alpha=1.0): - self.alpha = alpha - def fprop(self, inputs): - """Forward propagates activations through the layer transformation. - - For inputs `x` and outputs `y` this corresponds to `y = max(0, x)`. - """ - positive_inputs = np.maximum(inputs, 0.) - - negative_inputs = np.copy(inputs) - negative_inputs[negative_inputs>0] = 0. - negative_inputs = self.alpha * (np.exp(negative_inputs) - 1) - - outputs = positive_inputs + negative_inputs - return outputs - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - """ - positive_gradients = (outputs >= 0) * grads_wrt_outputs - outputs_to_use = (outputs < 0) * outputs - negative_gradients = (outputs_to_use + self.alpha) - negative_gradients[outputs >= 0] = 0. - negative_gradients = negative_gradients * grads_wrt_outputs - gradients = positive_gradients + negative_gradients - return gradients - - def __repr__(self): - return 'ELULayer' - -class SELULayer(Layer): - """Layer implementing an element-wise rectified linear transformation.""" - #α01 ≈ 1.6733 and λ01 ≈ 1.0507 - def __init__(self): - self.alpha = 1.6733 - self.lamda = 1.0507 - self.elu = ELULayer(alpha=self.alpha) - def fprop(self, inputs): - """Forward propagates activations through the layer transformation. - - For inputs `x` and outputs `y` this corresponds to `y = max(0, x)`. - """ - outputs = self.lamda * self.elu.fprop(inputs) - return outputs - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - """ - scaled_outputs = outputs / self.lamda - gradients = self.lamda * self.elu.bprop(inputs=inputs, outputs=scaled_outputs, - grads_wrt_outputs=grads_wrt_outputs) - return gradients - - def __repr__(self): - return 'SELULayer' - -class TanhLayer(Layer): - """Layer implementing an element-wise hyperbolic tangent transformation.""" - - def fprop(self, inputs): - """Forward propagates activations through the layer transformation. - - For inputs `x` and outputs `y` this corresponds to `y = tanh(x)`. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - - Returns: - outputs: Array of layer outputs of shape (batch_size, output_dim). - """ - return np.tanh(inputs) - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - outputs: Array of layer outputs calculated in forward pass of - shape (batch_size, output_dim). - grads_wrt_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - Array of gradients with respect to the layer inputs of shape - (batch_size, input_dim). - """ - return (1. - outputs**2) * grads_wrt_outputs - - def __repr__(self): - return 'TanhLayer' - - -class SoftmaxLayer(Layer): - """Layer implementing a softmax transformation.""" - - def fprop(self, inputs): - """Forward propagates activations through the layer transformation. - - For inputs `x` and outputs `y` this corresponds to - - `y = exp(x) / sum(exp(x))`. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - - Returns: - outputs: Array of layer outputs of shape (batch_size, output_dim). - """ - # subtract max inside exponential to improve numerical stability - - # when we divide through by sum this term cancels - exp_inputs = np.exp(inputs - inputs.max(-1)[:, None]) - return exp_inputs / exp_inputs.sum(-1)[:, None] - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - outputs: Array of layer outputs calculated in forward pass of - shape (batch_size, output_dim). - grads_wrt_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - Array of gradients with respect to the layer inputs of shape - (batch_size, input_dim). - """ - return (outputs * (grads_wrt_outputs - - (grads_wrt_outputs * outputs).sum(-1)[:, None])) - - def __repr__(self): - return 'SoftmaxLayer' - - -class RadialBasisFunctionLayer(Layer): - """Layer implementing projection to a grid of radial basis functions.""" - - def __init__(self, grid_dim, intervals=[[0., 1.]]): - """Creates a radial basis function layer object. - - Args: - grid_dim: Integer specifying how many basis function to use in - grid across input space per dimension (so total number of - basis functions will be grid_dim**input_dim) - intervals: List of intervals (two element lists or tuples) - specifying extents of axis-aligned region in input-space to - tile basis functions in grid across. For example for a 2D input - space spanning [0, 1] x [0, 1] use intervals=[[0, 1], [0, 1]]. - """ - num_basis = grid_dim**len(intervals) - self.centres = np.array(np.meshgrid(*[ - np.linspace(low, high, grid_dim) for (low, high) in intervals]) - ).reshape((len(intervals), -1)) - self.scales = np.array([ - [(high - low) * 1. / grid_dim] for (low, high) in intervals]) - - def fprop(self, inputs): - """Forward propagates activations through the layer transformation. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - - Returns: - outputs: Array of layer outputs of shape (batch_size, output_dim). - """ - return np.exp(-(inputs[..., None] - self.centres[None, ...])**2 / - self.scales**2).reshape((inputs.shape[0], -1)) - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - outputs: Array of layer outputs calculated in forward pass of - shape (batch_size, output_dim). - grads_wrt_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - Array of gradients with respect to the layer inputs of shape - (batch_size, input_dim). - """ - num_basis = self.centres.shape[1] - return -2 * ( - ((inputs[..., None] - self.centres[None, ...]) / self.scales**2) * - grads_wrt_outputs.reshape((inputs.shape[0], -1, num_basis)) - ).sum(-1) - - def __repr__(self): - return 'RadialBasisFunctionLayer(grid_dim={0})'.format(self.grid_dim) - -class DropoutLayer(StochasticLayer): - """Layer which stochastically drops input dimensions in its output.""" - - def __init__(self, rng=None, incl_prob=0.5, share_across_batch=True): - """Construct a new dropout layer. - - Args: - rng (RandomState): Seeded random number generator. - incl_prob: Scalar value in (0, 1] specifying the probability of - each input dimension being included in the output. - share_across_batch: Whether to use same dropout mask across - all inputs in a batch or use per input masks. - """ - super(DropoutLayer, self).__init__(rng) - assert incl_prob > 0. and incl_prob <= 1. - self.incl_prob = incl_prob - self.share_across_batch = share_across_batch - self.rng = rng - - def fprop(self, inputs, stochastic=True): - """Forward propagates activations through the layer transformation. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - stochastic: Flag allowing different deterministic - forward-propagation mode in addition to default stochastic - forward-propagation e.g. for use at test time. If False - a deterministic forward-propagation transformation - corresponding to the expected output of the stochastic - forward-propagation is applied. - - Returns: - outputs: Array of layer outputs of shape (batch_size, output_dim). - """ - if stochastic: - mask_shape = (1,) + inputs.shape[1:] if self.share_across_batch else inputs.shape - self._mask = (self.rng.uniform(size=mask_shape) < self.incl_prob) - return inputs * self._mask - else: - return inputs * self.incl_prob - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. This should correspond to - default stochastic forward-propagation. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - outputs: Array of layer outputs calculated in forward pass of - shape (batch_size, output_dim). - grads_wrt_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - Array of gradients with respect to the layer inputs of shape - (batch_size, input_dim). - """ - return grads_wrt_outputs * self._mask - - def __repr__(self): - return 'DropoutLayer(incl_prob={0:.1f})'.format(self.incl_prob) - -class ReshapeLayer(Layer): - """Layer which reshapes dimensions of inputs.""" - - def __init__(self, output_shape=None): - """Create a new reshape layer object. - - Args: - output_shape: Tuple specifying shape each input in batch should - be reshaped to in outputs. This **excludes** the batch size - so the shape of the final output array will be - (batch_size, ) + output_shape - Similarly to numpy.reshape, one shape dimension can be -1. In - this case, the value is inferred from the size of the input - array and remaining dimensions. The shape specified must be - compatible with the input array shape - i.e. the total number - of values in the array cannot be changed. If set to `None` the - output shape will be set to - (batch_size, -1) - which will flatten all the inputs to vectors. - """ - self.output_shape = (-1,) if output_shape is None else output_shape - - def fprop(self, inputs): - """Forward propagates activations through the layer transformation. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - - Returns: - outputs: Array of layer outputs of shape (batch_size, output_dim). - """ - return inputs.reshape((inputs.shape[0],) + self.output_shape) - - def bprop(self, inputs, outputs, grads_wrt_outputs): - """Back propagates gradients through a layer. - - Given gradients with respect to the outputs of the layer calculates the - gradients with respect to the layer inputs. - - Args: - inputs: Array of layer inputs of shape (batch_size, input_dim). - outputs: Array of layer outputs calculated in forward pass of - shape (batch_size, output_dim). - grads_wrt_outputs: Array of gradients with respect to the layer - outputs of shape (batch_size, output_dim). - - Returns: - Array of gradients with respect to the layer inputs of shape - (batch_size, input_dim). - """ - return grads_wrt_outputs.reshape(inputs.shape) - - def __repr__(self): - return 'ReshapeLayer(output_shape={0})'.format(self.output_shape) diff --git a/mlp/learning_rules.py b/mlp/learning_rules.py deleted file mode 100644 index 22f2bcb..0000000 --- a/mlp/learning_rules.py +++ /dev/null @@ -1,162 +0,0 @@ -# -*- coding: utf-8 -*- -"""Learning rules. - -This module contains classes implementing gradient based learning rules. -""" - -import numpy as np - - -class GradientDescentLearningRule(object): - """Simple (stochastic) gradient descent learning rule. - - For a scalar error function `E(p[0], p_[1] ... )` of some set of - potentially multidimensional parameters this attempts to find a local - minimum of the loss function by applying updates to each parameter of the - form - - p[i] := p[i] - learning_rate * dE/dp[i] - - With `learning_rate` a positive scaling parameter. - - The error function used in successive applications of these updates may be - a stochastic estimator of the true error function (e.g. when the error with - respect to only a subset of data-points is calculated) in which case this - will correspond to a stochastic gradient descent learning rule. - """ - - def __init__(self, learning_rate=1e-3): - """Creates a new learning rule object. - - Args: - learning_rate: A postive scalar to scale gradient updates to the - parameters by. This needs to be carefully set - if too large - the learning dynamic will be unstable and may diverge, while - if set too small learning will proceed very slowly. - - """ - assert learning_rate > 0., 'learning_rate should be positive.' - self.learning_rate = learning_rate - - def initialise(self, params): - """Initialises the state of the learning rule for a set or parameters. - - This must be called before `update_params` is first called. - - Args: - params: A list of the parameters to be optimised. Note these will - be updated *in-place* to avoid reallocating arrays on each - update. - """ - self.params = params - - def reset(self): - """Resets any additional state variables to their intial values. - - For this learning rule there are no additional state variables so we - do nothing here. - """ - pass - - def update_params(self, grads_wrt_params): - """Applies a single gradient descent update to all parameters. - - All parameter updates are performed using in-place operations and so - nothing is returned. - - Args: - grads_wrt_params: A list of gradients of the scalar loss function - with respect to each of the parameters passed to `initialise` - previously, with this list expected to be in the same order. - """ - for param, grad in zip(self.params, grads_wrt_params): - param -= self.learning_rate * grad - - -class MomentumLearningRule(GradientDescentLearningRule): - """Gradient descent with momentum learning rule. - - This extends the basic gradient learning rule by introducing extra - momentum state variables for each parameter. These can help the learning - dynamic help overcome shallow local minima and speed convergence when - making multiple successive steps in a similar direction in parameter space. - - For parameter p[i] and corresponding momentum m[i] the updates for a - scalar loss function `L` are of the form - - m[i] := mom_coeff * m[i] - learning_rate * dL/dp[i] - p[i] := p[i] + m[i] - - with `learning_rate` a positive scaling parameter for the gradient updates - and `mom_coeff` a value in [0, 1] that determines how much 'friction' there - is the system and so how quickly previous momentum contributions decay. - """ - - def __init__(self, learning_rate=1e-3, mom_coeff=0.9): - """Creates a new learning rule object. - - Args: - learning_rate: A postive scalar to scale gradient updates to the - parameters by. This needs to be carefully set - if too large - the learning dynamic will be unstable and may diverge, while - if set too small learning will proceed very slowly. - mom_coeff: A scalar in the range [0, 1] inclusive. This determines - the contribution of the previous momentum value to the value - after each update. If equal to 0 the momentum is set to exactly - the negative scaled gradient each update and so this rule - collapses to standard gradient descent. If equal to 1 the - momentum will just be decremented by the scaled gradient at - each update. This is equivalent to simulating the dynamic in - a frictionless system. Due to energy conservation the loss - of 'potential energy' as the dynamics moves down the loss - function surface will lead to an increasingly large 'kinetic - energy' and so speed, meaning the updates will become - increasingly large, potentially unstably so. Typically a value - less than but close to 1 will avoid these issues and cause the - dynamic to converge to a local minima where the gradients are - by definition zero. - """ - super(MomentumLearningRule, self).__init__(learning_rate) - assert mom_coeff >= 0. and mom_coeff <= 1., ( - 'mom_coeff should be in the range [0, 1].' - ) - self.mom_coeff = mom_coeff - - def initialise(self, params): - """Initialises the state of the learning rule for a set or parameters. - - This must be called before `update_params` is first called. - - Args: - params: A list of the parameters to be optimised. Note these will - be updated *in-place* to avoid reallocating arrays on each - update. - """ - super(MomentumLearningRule, self).initialise(params) - self.moms = [] - for param in self.params: - self.moms.append(np.zeros_like(param)) - - def reset(self): - """Resets any additional state variables to their intial values. - - For this learning rule this corresponds to zeroing all the momenta. - """ - for mom in zip(self.moms): - mom *= 0. - - def update_params(self, grads_wrt_params): - """Applies a single update to all parameters. - - All parameter updates are performed using in-place operations and so - nothing is returned. - - Args: - grads_wrt_params: A list of gradients of the scalar loss function - with respect to each of the parameters passed to `initialise` - previously, with this list expected to be in the same order. - """ - for param, mom, grad in zip(self.params, self.moms, grads_wrt_params): - mom *= self.mom_coeff - mom -= self.learning_rate * grad - param += mom diff --git a/mlp/models.py b/mlp/models.py deleted file mode 100644 index 7f1273e..0000000 --- a/mlp/models.py +++ /dev/null @@ -1,145 +0,0 @@ -# -*- coding: utf-8 -*- -"""Model definitions. - -This module implements objects encapsulating learnable models of input-output -relationships. The model objects implement methods for forward propagating -the inputs through the transformation(s) defined by the model to produce -outputs (and intermediate states) and for calculating gradients of scalar -functions of the outputs with respect to the model parameters. -""" - -from mlp.layers import LayerWithParameters, StochasticLayer, StochasticLayerWithParameters - - -class SingleLayerModel(object): - """A model consisting of a single transformation layer.""" - - def __init__(self, layer): - """Create a new single layer model instance. - - Args: - layer: The layer object defining the model architecture. - """ - self.layer = layer - - @property - def params(self): - """A list of all of the parameters of the model.""" - return self.layer.params - - def fprop(self, inputs): - """Calculate the model outputs corresponding to a batch of inputs. - - Args: - inputs: Batch of inputs to the model. - - Returns: - List which is a concatenation of the model inputs and model - outputs, this being done for consistency of the interface with - multi-layer models for which `fprop` returns a list of - activations through all immediate layers of the model and including - the inputs and outputs. - """ - activations = [inputs, self.layer.fprop(inputs)] - return activations - - def grads_wrt_params(self, activations, grads_wrt_outputs): - """Calculates gradients with respect to the model parameters. - - Args: - activations: List of all activations from forward pass through - model using `fprop`. - grads_wrt_outputs: Gradient with respect to the model outputs of - the scalar function parameter gradients are being calculated - for. - - Returns: - List of gradients of the scalar function with respect to all model - parameters. - """ - return self.layer.grads_wrt_params(activations[0], grads_wrt_outputs) - - def __repr__(self): - return 'SingleLayerModel(' + str(self.layer) + ')' - - -class MultipleLayerModel(object): - """A model consisting of multiple layers applied sequentially.""" - - def __init__(self, layers): - """Create a new multiple layer model instance. - - Args: - layers: List of the the layer objecst defining the model in the - order they should be applied from inputs to outputs. - """ - self.layers = layers - - @property - def params(self): - """A list of all of the parameters of the model.""" - params = [] - for layer in self.layers: - if isinstance(layer, LayerWithParameters) or isinstance(layer, StochasticLayerWithParameters): - params += layer.params - return params - - def fprop(self, inputs, evaluation=False): - """Forward propagates a batch of inputs through the model. - - Args: - inputs: Batch of inputs to the model. - - Returns: - List of the activations at the output of all layers of the model - plus the inputs (to the first layer) as the first element. The - last element of the list corresponds to the model outputs. - """ - activations = [inputs] - for i, layer in enumerate(self.layers): - if evaluation: - if issubclass(type(self.layers[i]), StochasticLayer) or issubclass(type(self.layers[i]), - StochasticLayerWithParameters): - current_activations = self.layers[i].fprop(activations[i], stochastic=False) - else: - current_activations = self.layers[i].fprop(activations[i]) - else: - if issubclass(type(self.layers[i]), StochasticLayer) or issubclass(type(self.layers[i]), - StochasticLayerWithParameters): - current_activations = self.layers[i].fprop(activations[i], stochastic=True) - else: - current_activations = self.layers[i].fprop(activations[i]) - activations.append(current_activations) - return activations - - def grads_wrt_params(self, activations, grads_wrt_outputs): - """Calculates gradients with respect to the model parameters. - - Args: - activations: List of all activations from forward pass through - model using `fprop`. - grads_wrt_outputs: Gradient with respect to the model outputs of - the scalar function parameter gradients are being calculated - for. - - Returns: - List of gradients of the scalar function with respect to all model - parameters. - """ - grads_wrt_params = [] - for i, layer in enumerate(self.layers[::-1]): - inputs = activations[-i - 2] - outputs = activations[-i - 1] - grads_wrt_inputs = layer.bprop(inputs, outputs, grads_wrt_outputs) - if isinstance(layer, LayerWithParameters) or isinstance(layer, StochasticLayerWithParameters): - grads_wrt_params += layer.grads_wrt_params( - inputs, grads_wrt_outputs)[::-1] - grads_wrt_outputs = grads_wrt_inputs - return grads_wrt_params[::-1] - - def __repr__(self): - return ( - 'MultiLayerModel(\n ' + - '\n '.join([str(layer) for layer in self.layers]) + - '\n)' - ) diff --git a/mlp/optimisers.py b/mlp/optimisers.py deleted file mode 100644 index 8ab313a..0000000 --- a/mlp/optimisers.py +++ /dev/null @@ -1,148 +0,0 @@ -# -*- coding: utf-8 -*- -"""Model optimisers. - -This module contains objects implementing (batched) stochastic gradient descent -based optimisation of models. -""" - -import time -import logging -from collections import OrderedDict -import numpy as np -import tqdm - -logger = logging.getLogger(__name__) - - -class Optimiser(object): - """Basic model optimiser.""" - - def __init__(self, model, error, learning_rule, train_dataset, - valid_dataset=None, data_monitors=None, notebook=False): - """Create a new optimiser instance. - - Args: - model: The model to optimise. - error: The scalar error function to minimise. - learning_rule: Gradient based learning rule to use to minimise - error. - train_dataset: Data provider for training set data batches. - valid_dataset: Data provider for validation set data batches. - data_monitors: Dictionary of functions evaluated on targets and - model outputs (averaged across both full training and - validation data sets) to monitor during training in addition - to the error. Keys should correspond to a string label for - the statistic being evaluated. - """ - self.model = model - self.error = error - self.learning_rule = learning_rule - self.learning_rule.initialise(self.model.params) - self.train_dataset = train_dataset - self.valid_dataset = valid_dataset - self.data_monitors = OrderedDict([('error', error)]) - if data_monitors is not None: - self.data_monitors.update(data_monitors) - self.notebook = notebook - if notebook: - self.tqdm_progress = tqdm.tqdm_notebook - else: - self.tqdm_progress = tqdm.tqdm - - def do_training_epoch(self): - """Do a single training epoch. - - This iterates through all batches in training dataset, for each - calculating the gradient of the estimated error given the batch with - respect to all the model parameters and then updates the model - parameters according to the learning rule. - """ - with self.tqdm_progress(total=self.train_dataset.num_batches) as train_progress_bar: - train_progress_bar.set_description("Epoch Progress") - for inputs_batch, targets_batch in self.train_dataset: - activations = self.model.fprop(inputs_batch) - grads_wrt_outputs = self.error.grad(activations[-1], targets_batch) - grads_wrt_params = self.model.grads_wrt_params( - activations, grads_wrt_outputs) - self.learning_rule.update_params(grads_wrt_params) - train_progress_bar.update(1) - - def eval_monitors(self, dataset, label): - """Evaluates the monitors for the given dataset. - - Args: - dataset: Dataset to perform evaluation with. - label: Tag to add to end of monitor keys to identify dataset. - - Returns: - OrderedDict of monitor values evaluated on dataset. - """ - data_mon_vals = OrderedDict([(key + label, 0.) for key - in self.data_monitors.keys()]) - for inputs_batch, targets_batch in dataset: - activations = self.model.fprop(inputs_batch, evaluation=True) - for key, data_monitor in self.data_monitors.items(): - data_mon_vals[key + label] += data_monitor( - activations[-1], targets_batch) - for key, data_monitor in self.data_monitors.items(): - data_mon_vals[key + label] /= dataset.num_batches - return data_mon_vals - - def get_epoch_stats(self): - """Computes training statistics for an epoch. - - Returns: - An OrderedDict with keys corresponding to the statistic labels and - values corresponding to the value of the statistic. - """ - epoch_stats = OrderedDict() - epoch_stats.update(self.eval_monitors(self.train_dataset, '(train)')) - if self.valid_dataset is not None: - epoch_stats.update(self.eval_monitors( - self.valid_dataset, '(valid)')) - return epoch_stats - - def log_stats(self, epoch, epoch_time, stats): - """Outputs stats for a training epoch to a logger. - - Args: - epoch (int): Epoch counter. - epoch_time: Time taken in seconds for the epoch to complete. - stats: Monitored stats for the epoch. - """ - logger.info('Epoch {0}: {1:.1f}s to complete\n {2}'.format( - epoch, epoch_time, - ', '.join(['{0}={1:.2e}'.format(k, v) for (k, v) in stats.items()]) - )) - - def train(self, num_epochs, stats_interval=5): - """Trains a model for a set number of epochs. - - Args: - num_epochs: Number of epochs (complete passes through trainin - dataset) to train for. - stats_interval: Training statistics will be recorded and logged - every `stats_interval` epochs. - - Returns: - Tuple with first value being an array of training run statistics - and the second being a dict mapping the labels for the statistics - recorded to their column index in the array. - """ - start_train_time = time.time() - run_stats = [list(self.get_epoch_stats().values())] - with self.tqdm_progress(total=num_epochs) as progress_bar: - progress_bar.set_description("Experiment Progress") - for epoch in range(1, num_epochs + 1): - start_time = time.time() - self.do_training_epoch() - epoch_time = time.time()- start_time - if epoch % stats_interval == 0: - stats = self.get_epoch_stats() - self.log_stats(epoch, epoch_time, stats) - run_stats.append(list(stats.values())) - progress_bar.update(1) - finish_train_time = time.time() - total_train_time = finish_train_time - start_train_time - return np.array(run_stats), {k: i for i, k in enumerate(stats.keys())}, total_train_time - diff --git a/mlp/schedulers.py b/mlp/schedulers.py deleted file mode 100644 index 4f53e7e..0000000 --- a/mlp/schedulers.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -"""Training schedulers. - -This module contains classes implementing schedulers which control the -evolution of learning rule hyperparameters (such as learning rate) over a -training run. -""" - -import numpy as np - - -class ConstantLearningRateScheduler(object): - """Example of scheduler interface which sets a constant learning rate.""" - - def __init__(self, learning_rate): - """Construct a new constant learning rate scheduler object. - - Args: - learning_rate: Learning rate to use in learning rule. - """ - self.learning_rate = learning_rate - - def update_learning_rule(self, learning_rule, epoch_number): - """Update the hyperparameters of the learning rule. - - Run at the beginning of each epoch. - - Args: - learning_rule: Learning rule object being used in training run, - any scheduled hyperparameters to be altered should be - attributes of this object. - epoch_number: Integer index of training epoch about to be run. - """ - learning_rule.learning_rate = self.learning_rate diff --git a/msd10_network_trainer.py b/msd10_network_trainer.py new file mode 100644 index 0000000..16653be --- /dev/null +++ b/msd10_network_trainer.py @@ -0,0 +1,182 @@ +import argparse +import numpy as np +import tensorflow as tf +import tqdm +from data_providers import MSD10GenreDataProvider +from network_builder import ClassifierNetworkGraph +from utils.parser_utils import ParserClass +from utils.storage import build_experiment_folder, save_statistics + +tf.reset_default_graph() # resets any previous graphs to clear memory +parser = argparse.ArgumentParser(description='Welcome to CNN experiments script') # generates an argument parser +parser_extractor = ParserClass(parser=parser) # creates a parser class to process the parsed input + +batch_size, seed, epochs, logs_path, continue_from_epoch, tensorboard_enable, batch_norm, \ +strided_dim_reduction, experiment_prefix, dropout_rate_value = parser_extractor.get_argument_variables() +# returns a list of objects that contain +# our parsed input + +experiment_name = "experiment_{}_batch_size_{}_bn_{}_mp_{}".format(experiment_prefix, + batch_size, batch_norm, + strided_dim_reduction) +# generate experiment name + +rng = np.random.RandomState(seed=seed) # set seed + +train_data = MSD10GenreDataProvider(which_set="train", batch_size=batch_size, rng=rng) +val_data = MSD10GenreDataProvider(which_set="valid", batch_size=batch_size, rng=rng) +test_data = MSD10GenreDataProvider(which_set="test", batch_size=batch_size, rng=rng) +# setup our data providers + +print("Running {}".format(experiment_name)) +print("Starting from epoch {}".format(continue_from_epoch)) + +saved_models_filepath, logs_filepath = build_experiment_folder(experiment_name, logs_path) # generate experiment dir + +# Placeholder setup +data_inputs = tf.placeholder(tf.float32, [batch_size, train_data.inputs.shape[1]], 'data-inputs') +data_targets = tf.placeholder(tf.int32, [batch_size], 'data-targets') + +training_phase = tf.placeholder(tf.bool, name='training-flag') +rotate_data = tf.placeholder(tf.bool, name='rotate-flag') +dropout_rate = tf.placeholder(tf.float32, name='dropout-prob') + +classifier_network = ClassifierNetworkGraph(network_name='FCCClassifier', + input_x=data_inputs, target_placeholder=data_targets, + dropout_rate=dropout_rate, batch_size=batch_size, + num_channels=1, n_classes=train_data.num_classes, + is_training=training_phase, augment_rotate_flag=rotate_data, + strided_dim_reduction=strided_dim_reduction, + use_batch_normalization=batch_norm) # initialize our computational graph + +if continue_from_epoch == -1: # if this is a new experiment and not continuation of a previous one then generate a new + # statistics file + save_statistics(logs_filepath, "result_summary_statistics", ["epoch", "train_c_loss", "train_c_accuracy", + "val_c_loss", "val_c_accuracy", + "test_c_loss", "test_c_accuracy"], create=True) + +start_epoch = continue_from_epoch if continue_from_epoch != -1 else 0 # if new experiment start from 0 otherwise +# continue where left off + +summary_op, losses_ops, c_error_opt_op = classifier_network.init_train() # get graph operations (ops) + +total_train_batches = train_data.num_batches +total_val_batches = val_data.num_batches +total_test_batches = test_data.num_batches + +best_epoch = 0 + +if tensorboard_enable: + print("saved tensorboard file at", logs_filepath) + writer = tf.summary.FileWriter(logs_filepath, graph=tf.get_default_graph()) + +init = tf.global_variables_initializer() # initialization op for the graph + +with tf.Session() as sess: + sess.run(init) # actually running the initialization op + train_saver = tf.train.Saver() # saver object that will save our graph so we can reload it later for continuation of + val_saver = tf.train.Saver() + # training or inference + + continue_from_epoch = -1 + + if continue_from_epoch != -1: + train_saver.restore(sess, "{}/{}_{}.ckpt".format(saved_models_filepath, experiment_name, + continue_from_epoch)) # restore previous graph to continue operations + + best_val_accuracy = 0. + with tqdm.tqdm(total=epochs) as epoch_pbar: + for e in range(start_epoch, epochs): + total_c_loss = 0. + total_accuracy = 0. + with tqdm.tqdm(total=total_train_batches) as pbar_train: + for batch_idx, (x_batch, y_batch) in enumerate(train_data): + iter_id = e * total_train_batches + batch_idx + _, c_loss_value, acc = sess.run( + [c_error_opt_op, losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: True, rotate_data: False}) + # Here we execute the c_error_opt_op which trains the network and also the ops that compute the + # loss and accuracy, we save those in _, c_loss_value and acc respectively. + total_c_loss += c_loss_value # add loss of current iter to sum + total_accuracy += acc # add acc of current iter to sum + + iter_out = "iter_num: {}, train_loss: {}, train_accuracy: {}".format(iter_id, + total_c_loss / (batch_idx + 1), + total_accuracy / ( + batch_idx + 1)) # show + # iter statistics using running averages of previous iter within this epoch + pbar_train.set_description(iter_out) + pbar_train.update(1) + if tensorboard_enable and batch_idx % 25 == 0: # save tensorboard summary every 25 iterations + _summary = sess.run( + summary_op, + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: True, rotate_data: False}) + writer.add_summary(_summary, global_step=iter_id) + + total_c_loss /= total_train_batches # compute mean of los + total_accuracy /= total_train_batches # compute mean of accuracy + + save_path = train_saver.save(sess, "{}/{}_{}.ckpt".format(saved_models_filepath, experiment_name, e)) + # save graph and weights + print("Saved current model at", save_path) + + total_val_c_loss = 0. + total_val_accuracy = 0. # run validation stage, note how training_phase placeholder is set to False + # and that we do not run the c_error_opt_op which runs gradient descent, but instead only call the loss ops + # to collect losses on the validation set + with tqdm.tqdm(total=total_val_batches) as pbar_val: + for batch_idx, (x_batch, y_batch) in enumerate(val_data): + c_loss_value, acc = sess.run( + [losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: False, rotate_data: False}) + total_val_c_loss += c_loss_value + total_val_accuracy += acc + iter_out = "val_loss: {}, val_accuracy: {}".format(total_val_c_loss / (batch_idx + 1), + total_val_accuracy / (batch_idx + 1)) + pbar_val.set_description(iter_out) + pbar_val.update(1) + + total_val_c_loss /= total_val_batches + total_val_accuracy /= total_val_batches + + if best_val_accuracy < total_val_accuracy: # check if val acc better than the previous best and if + # so save current as best and save the model as the best validation model to be used on the test set + # after the final epoch + best_val_accuracy = total_val_accuracy + best_epoch = e + save_path = val_saver.save(sess, "{}/best_validation_{}_{}.ckpt".format(saved_models_filepath, experiment_name, e)) + print("Saved best validation score model at", save_path) + + epoch_pbar.update(1) + # save statistics of this epoch, train and val without test set performance + save_statistics(logs_filepath, "result_summary_statistics", + [e, total_c_loss, total_accuracy, total_val_c_loss, total_val_accuracy, + -1, -1]) + + val_saver.restore(sess, "{}/best_validation_{}_{}.ckpt".format(saved_models_filepath, experiment_name, best_epoch)) + # restore model with best performance on validation set + total_test_c_loss = 0. + total_test_accuracy = 0. + # computer test loss and accuracy and save + with tqdm.tqdm(total=total_test_batches) as pbar_test: + for batch_id, (x_batch, y_batch) in enumerate(test_data): + c_loss_value, acc = sess.run( + [losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: False, rotate_data: False}) + total_test_c_loss += c_loss_value + total_test_accuracy += acc + iter_out = "test_loss: {}, test_accuracy: {}".format(total_test_c_loss / (batch_idx + 1), + acc / (batch_idx + 1)) + pbar_test.set_description(iter_out) + pbar_test.update(1) + + total_test_c_loss /= total_test_batches + total_test_accuracy /= total_test_batches + + save_statistics(logs_filepath, "result_summary_statistics", + ["test set performance", -1, -1, -1, -1, + total_test_c_loss, total_test_accuracy]) diff --git a/msd25_network_trainer.py b/msd25_network_trainer.py new file mode 100644 index 0000000..16653be --- /dev/null +++ b/msd25_network_trainer.py @@ -0,0 +1,182 @@ +import argparse +import numpy as np +import tensorflow as tf +import tqdm +from data_providers import MSD10GenreDataProvider +from network_builder import ClassifierNetworkGraph +from utils.parser_utils import ParserClass +from utils.storage import build_experiment_folder, save_statistics + +tf.reset_default_graph() # resets any previous graphs to clear memory +parser = argparse.ArgumentParser(description='Welcome to CNN experiments script') # generates an argument parser +parser_extractor = ParserClass(parser=parser) # creates a parser class to process the parsed input + +batch_size, seed, epochs, logs_path, continue_from_epoch, tensorboard_enable, batch_norm, \ +strided_dim_reduction, experiment_prefix, dropout_rate_value = parser_extractor.get_argument_variables() +# returns a list of objects that contain +# our parsed input + +experiment_name = "experiment_{}_batch_size_{}_bn_{}_mp_{}".format(experiment_prefix, + batch_size, batch_norm, + strided_dim_reduction) +# generate experiment name + +rng = np.random.RandomState(seed=seed) # set seed + +train_data = MSD10GenreDataProvider(which_set="train", batch_size=batch_size, rng=rng) +val_data = MSD10GenreDataProvider(which_set="valid", batch_size=batch_size, rng=rng) +test_data = MSD10GenreDataProvider(which_set="test", batch_size=batch_size, rng=rng) +# setup our data providers + +print("Running {}".format(experiment_name)) +print("Starting from epoch {}".format(continue_from_epoch)) + +saved_models_filepath, logs_filepath = build_experiment_folder(experiment_name, logs_path) # generate experiment dir + +# Placeholder setup +data_inputs = tf.placeholder(tf.float32, [batch_size, train_data.inputs.shape[1]], 'data-inputs') +data_targets = tf.placeholder(tf.int32, [batch_size], 'data-targets') + +training_phase = tf.placeholder(tf.bool, name='training-flag') +rotate_data = tf.placeholder(tf.bool, name='rotate-flag') +dropout_rate = tf.placeholder(tf.float32, name='dropout-prob') + +classifier_network = ClassifierNetworkGraph(network_name='FCCClassifier', + input_x=data_inputs, target_placeholder=data_targets, + dropout_rate=dropout_rate, batch_size=batch_size, + num_channels=1, n_classes=train_data.num_classes, + is_training=training_phase, augment_rotate_flag=rotate_data, + strided_dim_reduction=strided_dim_reduction, + use_batch_normalization=batch_norm) # initialize our computational graph + +if continue_from_epoch == -1: # if this is a new experiment and not continuation of a previous one then generate a new + # statistics file + save_statistics(logs_filepath, "result_summary_statistics", ["epoch", "train_c_loss", "train_c_accuracy", + "val_c_loss", "val_c_accuracy", + "test_c_loss", "test_c_accuracy"], create=True) + +start_epoch = continue_from_epoch if continue_from_epoch != -1 else 0 # if new experiment start from 0 otherwise +# continue where left off + +summary_op, losses_ops, c_error_opt_op = classifier_network.init_train() # get graph operations (ops) + +total_train_batches = train_data.num_batches +total_val_batches = val_data.num_batches +total_test_batches = test_data.num_batches + +best_epoch = 0 + +if tensorboard_enable: + print("saved tensorboard file at", logs_filepath) + writer = tf.summary.FileWriter(logs_filepath, graph=tf.get_default_graph()) + +init = tf.global_variables_initializer() # initialization op for the graph + +with tf.Session() as sess: + sess.run(init) # actually running the initialization op + train_saver = tf.train.Saver() # saver object that will save our graph so we can reload it later for continuation of + val_saver = tf.train.Saver() + # training or inference + + continue_from_epoch = -1 + + if continue_from_epoch != -1: + train_saver.restore(sess, "{}/{}_{}.ckpt".format(saved_models_filepath, experiment_name, + continue_from_epoch)) # restore previous graph to continue operations + + best_val_accuracy = 0. + with tqdm.tqdm(total=epochs) as epoch_pbar: + for e in range(start_epoch, epochs): + total_c_loss = 0. + total_accuracy = 0. + with tqdm.tqdm(total=total_train_batches) as pbar_train: + for batch_idx, (x_batch, y_batch) in enumerate(train_data): + iter_id = e * total_train_batches + batch_idx + _, c_loss_value, acc = sess.run( + [c_error_opt_op, losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: True, rotate_data: False}) + # Here we execute the c_error_opt_op which trains the network and also the ops that compute the + # loss and accuracy, we save those in _, c_loss_value and acc respectively. + total_c_loss += c_loss_value # add loss of current iter to sum + total_accuracy += acc # add acc of current iter to sum + + iter_out = "iter_num: {}, train_loss: {}, train_accuracy: {}".format(iter_id, + total_c_loss / (batch_idx + 1), + total_accuracy / ( + batch_idx + 1)) # show + # iter statistics using running averages of previous iter within this epoch + pbar_train.set_description(iter_out) + pbar_train.update(1) + if tensorboard_enable and batch_idx % 25 == 0: # save tensorboard summary every 25 iterations + _summary = sess.run( + summary_op, + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: True, rotate_data: False}) + writer.add_summary(_summary, global_step=iter_id) + + total_c_loss /= total_train_batches # compute mean of los + total_accuracy /= total_train_batches # compute mean of accuracy + + save_path = train_saver.save(sess, "{}/{}_{}.ckpt".format(saved_models_filepath, experiment_name, e)) + # save graph and weights + print("Saved current model at", save_path) + + total_val_c_loss = 0. + total_val_accuracy = 0. # run validation stage, note how training_phase placeholder is set to False + # and that we do not run the c_error_opt_op which runs gradient descent, but instead only call the loss ops + # to collect losses on the validation set + with tqdm.tqdm(total=total_val_batches) as pbar_val: + for batch_idx, (x_batch, y_batch) in enumerate(val_data): + c_loss_value, acc = sess.run( + [losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: False, rotate_data: False}) + total_val_c_loss += c_loss_value + total_val_accuracy += acc + iter_out = "val_loss: {}, val_accuracy: {}".format(total_val_c_loss / (batch_idx + 1), + total_val_accuracy / (batch_idx + 1)) + pbar_val.set_description(iter_out) + pbar_val.update(1) + + total_val_c_loss /= total_val_batches + total_val_accuracy /= total_val_batches + + if best_val_accuracy < total_val_accuracy: # check if val acc better than the previous best and if + # so save current as best and save the model as the best validation model to be used on the test set + # after the final epoch + best_val_accuracy = total_val_accuracy + best_epoch = e + save_path = val_saver.save(sess, "{}/best_validation_{}_{}.ckpt".format(saved_models_filepath, experiment_name, e)) + print("Saved best validation score model at", save_path) + + epoch_pbar.update(1) + # save statistics of this epoch, train and val without test set performance + save_statistics(logs_filepath, "result_summary_statistics", + [e, total_c_loss, total_accuracy, total_val_c_loss, total_val_accuracy, + -1, -1]) + + val_saver.restore(sess, "{}/best_validation_{}_{}.ckpt".format(saved_models_filepath, experiment_name, best_epoch)) + # restore model with best performance on validation set + total_test_c_loss = 0. + total_test_accuracy = 0. + # computer test loss and accuracy and save + with tqdm.tqdm(total=total_test_batches) as pbar_test: + for batch_id, (x_batch, y_batch) in enumerate(test_data): + c_loss_value, acc = sess.run( + [losses_ops["crossentropy_losses"], losses_ops["accuracy"]], + feed_dict={dropout_rate: dropout_rate_value, data_inputs: x_batch, + data_targets: y_batch, training_phase: False, rotate_data: False}) + total_test_c_loss += c_loss_value + total_test_accuracy += acc + iter_out = "test_loss: {}, test_accuracy: {}".format(total_test_c_loss / (batch_idx + 1), + acc / (batch_idx + 1)) + pbar_test.set_description(iter_out) + pbar_test.update(1) + + total_test_c_loss /= total_test_batches + total_test_accuracy /= total_test_batches + + save_statistics(logs_filepath, "result_summary_statistics", + ["test set performance", -1, -1, -1, -1, + total_test_c_loss, total_test_accuracy]) diff --git a/network_architectures.py b/network_architectures.py new file mode 100644 index 0000000..822f79a --- /dev/null +++ b/network_architectures.py @@ -0,0 +1,162 @@ +import tensorflow as tf +from tensorflow.contrib.layers import batch_norm +from tensorflow.python.ops.nn_ops import leaky_relu + +from utils.network_summary import count_parameters + + +class VGGClassifier: + def __init__(self, batch_size, layer_stage_sizes, name, num_classes, num_channels=1, batch_norm_use=False, + inner_layer_depth=2, strided_dim_reduction=True): + + """ + Initializes a VGG Classifier architecture + :param batch_size: The size of the data batch + :param layer_stage_sizes: A list containing the filters for each layer stage, where layer stage is a series of + convolutional layers with stride=1 and no max pooling followed by a dimensionality reducing stage which is + either a convolution with stride=1 followed by max pooling or a convolution with stride=2 + (i.e. strided convolution). So if we pass a list [64, 128, 256] it means that if we have inner_layer_depth=2 + then stage 0 will have 2 layers with stride=1 and filter size=64 and another dimensionality reducing convolution + with either stride=1 and max pooling or stride=2 to dimensionality reduce. Similarly for the other stages. + :param name: Name of the network + :param num_classes: Number of classes we will need to classify + :param num_channels: Number of channels of our image data. + :param batch_norm_use: Whether to use batch norm between layers or not. + :param inner_layer_depth: The amount of extra layers on top of the dimensionality reducing stage to have per + layer stage. + :param strided_dim_reduction: Whether to use strided convolutions instead of max pooling. + """ + self.reuse = False + self.batch_size = batch_size + self.num_channels = num_channels + self.layer_stage_sizes = layer_stage_sizes + self.name = name + self.num_classes = num_classes + self.batch_norm_use = batch_norm_use + self.inner_layer_depth = inner_layer_depth + self.strided_dim_reduction = strided_dim_reduction + self.build_completed = False + + def __call__(self, image_input, training=False, dropout_rate=0.0): + """ + Runs the CNN producing the predictions and the gradients. + :param image_input: Image input to produce embeddings for. e.g. for EMNIST [batch_size, 28, 28, 1] + :param training: A flag indicating training or evaluation + :param dropout_rate: A tf placeholder of type tf.float32 indicating the amount of dropout applied + :return: Embeddings of size [batch_size, self.num_classes] + """ + + with tf.variable_scope(self.name, reuse=self.reuse): + layer_features = [] + with tf.variable_scope('VGGNet'): + outputs = image_input + for i in range(len(self.layer_stage_sizes)): + with tf.variable_scope('conv_stage_{}'.format(i)): + for j in range(self.inner_layer_depth): + with tf.variable_scope('conv_{}_{}'.format(i, j)): + if (j == self.inner_layer_depth-1) and self.strided_dim_reduction: + stride = 2 + else: + stride = 1 + outputs = tf.layers.conv2d(outputs, self.layer_stage_sizes[i], [3, 3], + strides=(stride, stride), + padding='SAME', activation=None) + outputs = leaky_relu(outputs, name="leaky_relu{}".format(i)) + layer_features.append(outputs) + if self.batch_norm_use: + outputs = batch_norm(outputs, decay=0.99, scale=True, + center=True, is_training=training, renorm=False) + if self.strided_dim_reduction==False: + outputs = tf.layers.max_pooling2d(outputs, pool_size=(2, 2), strides=2) + + outputs = tf.layers.dropout(outputs, rate=dropout_rate, training=training) + # apply dropout only at dimensionality + # reducing steps, i.e. the last layer in + # every group + + c_conv_encoder = outputs + c_conv_encoder = tf.contrib.layers.flatten(c_conv_encoder) + c_conv_encoder = tf.layers.dense(c_conv_encoder, units=self.num_classes) + + self.reuse = True + self.variables = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, scope=self.name) + + if not self.build_completed: + self.build_completed = True + count_parameters(self.variables, "VGGNet") + + return c_conv_encoder, layer_features + + +class FCCLayerClassifier: + def __init__(self, batch_size, layer_stage_sizes, name, num_classes, num_channels=1, batch_norm_use=False, + inner_layer_depth=2, strided_dim_reduction=True): + + """ + Initializes a VGG Classifier architecture + :param batch_size: The size of the data batch + :param layer_stage_sizes: A list containing the filters for each layer stage, where layer stage is a series of + convolutional layers with stride=1 and no max pooling followed by a dimensionality reducing stage which is + either a convolution with stride=1 followed by max pooling or a convolution with stride=2 + (i.e. strided convolution). So if we pass a list [64, 128, 256] it means that if we have inner_layer_depth=2 + then stage 0 will have 2 layers with stride=1 and filter size=64 and another dimensionality reducing convolution + with either stride=1 and max pooling or stride=2 to dimensionality reduce. Similarly for the other stages. + :param name: Name of the network + :param num_classes: Number of classes we will need to classify + :param num_channels: Number of channels of our image data. + :param batch_norm_use: Whether to use batch norm between layers or not. + :param inner_layer_depth: The amount of extra layers on top of the dimensionality reducing stage to have per + layer stage. + :param strided_dim_reduction: Whether to use strided convolutions instead of max pooling. + """ + self.reuse = False + self.batch_size = batch_size + self.num_channels = num_channels + self.layer_stage_sizes = layer_stage_sizes + self.name = name + self.num_classes = num_classes + self.batch_norm_use = batch_norm_use + self.inner_layer_depth = inner_layer_depth + self.strided_dim_reduction = strided_dim_reduction + self.build_completed = False + + def __call__(self, image_input, training=False, dropout_rate=0.0): + """ + Runs the CNN producing the predictions and the gradients. + :param image_input: Image input to produce embeddings for. e.g. for EMNIST [batch_size, 28, 28, 1] + :param training: A flag indicating training or evaluation + :param dropout_rate: A tf placeholder of type tf.float32 indicating the amount of dropout applied + :return: Embeddings of size [batch_size, self.num_classes] + """ + + with tf.variable_scope(self.name, reuse=self.reuse): + layer_features = [] + with tf.variable_scope('FCCLayerNet'): + outputs = image_input + for i in range(len(self.layer_stage_sizes)): + with tf.variable_scope('conv_stage_{}'.format(i)): + for j in range(self.inner_layer_depth): + with tf.variable_scope('conv_{}_{}'.format(i, j)): + outputs = tf.layers.dense(outputs, units=self.layer_stage_sizes[i]) + outputs = leaky_relu(outputs, name="leaky_relu{}".format(i)) + layer_features.append(outputs) + if self.batch_norm_use: + outputs = batch_norm(outputs, decay=0.99, scale=True, + center=True, is_training=training, renorm=False) + outputs = tf.layers.dropout(outputs, rate=dropout_rate, training=training) + # apply dropout only at dimensionality + # reducing steps, i.e. the last layer in + # every group + + c_conv_encoder = outputs + c_conv_encoder = tf.contrib.layers.flatten(c_conv_encoder) + c_conv_encoder = tf.layers.dense(c_conv_encoder, units=self.num_classes) + + self.reuse = True + self.variables = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, scope=self.name) + + if not self.build_completed: + self.build_completed = True + count_parameters(self.variables, "FCCLayerNet") + + return c_conv_encoder, layer_features diff --git a/network_builder.py b/network_builder.py new file mode 100644 index 0000000..80181ac --- /dev/null +++ b/network_builder.py @@ -0,0 +1,180 @@ +import tensorflow as tf + +from network_architectures import VGGClassifier, FCCLayerClassifier + + +class ClassifierNetworkGraph: + def __init__(self, input_x, target_placeholder, dropout_rate, + batch_size=100, num_channels=1, n_classes=100, is_training=True, augment_rotate_flag=True, + tensorboard_use=False, use_batch_normalization=False, strided_dim_reduction=True, + network_name='VGG_classifier'): + + """ + Initializes a Classifier Network Graph that can build models, train, compute losses and save summary statistics + and images + :param input_x: A placeholder that will feed the input images, usually of size [batch_size, height, width, + channels] + :param target_placeholder: A target placeholder of size [batch_size,]. The classes should be in index form + i.e. not one hot encoding, that will be done automatically by tf + :param dropout_rate: A placeholder of size [None] that holds a single float that defines the amount of dropout + to apply to the network. i.e. for 0.1 drop 0.1 of neurons + :param batch_size: The batch size + :param num_channels: Number of channels + :param n_classes: Number of classes we will be classifying + :param is_training: A placeholder that will indicate whether we are training or not + :param augment_rotate_flag: A placeholder indicating whether to apply rotations augmentations to our input data + :param tensorboard_use: Whether to use tensorboard in this experiment + :param use_batch_normalization: Whether to use batch normalization between layers + :param strided_dim_reduction: Whether to use strided dim reduction instead of max pooling + """ + self.batch_size = batch_size + if network_name == "VGG_classifier": + self.c = VGGClassifier(self.batch_size, name="classifier_neural_network", + batch_norm_use=use_batch_normalization, num_channels=num_channels, + num_classes=n_classes, layer_stage_sizes=[64, 128, 256], + strided_dim_reduction=strided_dim_reduction) + elif network_name == "FCCClassifier": + self.c = FCCLayerClassifier(self.batch_size, name="classifier_neural_network", + batch_norm_use=use_batch_normalization, num_channels=num_channels, + num_classes=n_classes, layer_stage_sizes=[64, 128, 256], + strided_dim_reduction=strided_dim_reduction) + + self.input_x = input_x + self.dropout_rate = dropout_rate + self.targets = target_placeholder + + self.training_phase = is_training + self.n_classes = n_classes + self.iterations_trained = 0 + + self.augment_rotate = augment_rotate_flag + self.is_tensorboard = tensorboard_use + self.strided_dim_reduction = strided_dim_reduction + self.use_batch_normalization = use_batch_normalization + + def loss(self): + """build models, calculates losses, saves summary statistcs and images. + Returns: + dict of losses. + """ + with tf.name_scope("losses"): + image_inputs = self.data_augment_batch(self.input_x) # conditionally apply augmentaions + true_outputs = self.targets + # produce predictions and get layer features to save for visual inspection + preds, layer_features = self.c(image_input=image_inputs, training=self.training_phase, + dropout_rate=self.dropout_rate) + # compute loss and accuracy + correct_prediction = tf.equal(tf.argmax(preds, 1), tf.cast(true_outputs, tf.int64)) + accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) + crossentropy_loss = tf.reduce_mean( + tf.nn.sparse_softmax_cross_entropy_with_logits(labels=true_outputs, logits=preds)) + + # add loss and accuracy to collections + tf.add_to_collection('crossentropy_losses', crossentropy_loss) + tf.add_to_collection('accuracy', accuracy) + + # save summaries for the losses, accuracy and image summaries for input images, augmented images + # and the layer features + if len(self.input_x.get_shape().as_list()) == 4: + self.save_features(name="VGG_features", features=layer_features) + tf.summary.image('image', [tf.concat(tf.unstack(self.input_x, axis=0), axis=0)]) + tf.summary.image('augmented_image', [tf.concat(tf.unstack(image_inputs, axis=0), axis=0)]) + tf.summary.scalar('crossentropy_losses', crossentropy_loss) + tf.summary.scalar('accuracy', accuracy) + + return {"crossentropy_losses": tf.add_n(tf.get_collection('crossentropy_losses'), + name='total_classification_loss'), + "accuracy": tf.add_n(tf.get_collection('accuracy'), name='total_accuracy')} + + def save_features(self, name, features, num_rows_in_grid=4): + """ + Saves layer features in a grid to be used in tensorboard + :param name: Features name + :param features: A list of feature tensors + """ + for i in range(len(features)): + shape_in = features[i].get_shape().as_list() + channels = shape_in[3] + y_channels = num_rows_in_grid + x_channels = int(channels / y_channels) + + activations_features = tf.reshape(features[i], shape=(shape_in[0], shape_in[1], shape_in[2], + y_channels, x_channels)) + + activations_features = tf.unstack(activations_features, axis=4) + activations_features = tf.concat(activations_features, axis=2) + activations_features = tf.unstack(activations_features, axis=3) + activations_features = tf.concat(activations_features, axis=1) + activations_features = tf.expand_dims(activations_features, axis=3) + tf.summary.image('{}_{}'.format(name, i), activations_features) + + def rotate_image(self, image): + """ + Rotates a single image + :param image: An image to rotate + :return: A rotated or a non rotated image depending on the result of the flip + """ + no_rotation_flip = tf.unstack( + tf.random_uniform([1], minval=1, maxval=100, dtype=tf.int32, seed=None, + name=None)) # get a random number between 1 and 100 + flip_boolean = tf.less_equal(no_rotation_flip[0], 50) + # if that number is less than or equal to 50 then set to true + random_variable = tf.unstack(tf.random_uniform([1], minval=1, maxval=3, dtype=tf.int32, seed=None, name=None)) + # get a random variable between 1 and 3 for how many degrees the rotation will be i.e. k=1 means 1*90, + # k=2 2*90 etc. + image = tf.cond(flip_boolean, lambda: tf.image.rot90(image, k=random_variable[0]), + lambda: image) # if flip_boolean is true the rotate if not then do not rotate + return image + + def rotate_batch(self, batch_images): + """ + Rotate a batch of images + :param batch_images: A batch of images + :return: A rotated batch of images (some images will not be rotated if their rotation flip ends up False) + """ + shapes = map(int, list(batch_images.get_shape())) + if len(list(batch_images.get_shape())) < 4: + return batch_images + batch_size, x, y, c = shapes + with tf.name_scope('augment'): + batch_images_unpacked = tf.unstack(batch_images) + new_images = [] + for image in batch_images_unpacked: + new_images.append(self.rotate_image(image)) + new_images = tf.stack(new_images) + new_images = tf.reshape(new_images, (batch_size, x, y, c)) + return new_images + + def data_augment_batch(self, batch_images): + """ + Augments data with a variety of augmentations, in the current state only does rotations. + :param batch_images: A batch of images to augment + :return: Augmented data + """ + batch_images = tf.cond(self.augment_rotate, lambda: self.rotate_batch(batch_images), lambda: batch_images) + return batch_images + + def train(self, losses, learning_rate=1e-3, beta1=0.9): + """ + Args: + losses dict. + Returns: + train op. + """ + c_opt = tf.train.AdamOptimizer(beta1=beta1, learning_rate=learning_rate) + update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS) # Needed for correct batch norm usage + with tf.control_dependencies(update_ops): + c_error_opt_op = c_opt.minimize(losses["crossentropy_losses"], var_list=self.c.variables, + colocate_gradients_with_ops=True) + + return c_error_opt_op + + def init_train(self): + """ + Builds graph ops and returns them + :return: Summary, losses and training ops + """ + losses_ops = self.loss() + c_error_opt_op = self.train(losses_ops) + summary_op = tf.summary.merge_all() + return summary_op, losses_ops, c_error_opt_op diff --git a/notebooks/.ipynb_checkpoints/Introduction_to_tensorflow-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/Introduction_to_tensorflow-checkpoint.ipynb new file mode 100644 index 0000000..8d25d8c --- /dev/null +++ b/notebooks/.ipynb_checkpoints/Introduction_to_tensorflow-checkpoint.ipynb @@ -0,0 +1,557 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction to TensorFlow\n", + "\n", + "## Computation graphs\n", + "\n", + "In the first semester we used the NumPy-based `mlp` Python package to illustrate the concepts involved in automatically propagating gradients through multiple-layer neural network models. We also looked at how to use these calculated derivatives to do gradient-descent based training of models in supervised learning tasks such as classification and regression.\n", + "\n", + "A key theme in the first semester's work was the idea of defining models in a modular fashion. There we considered models composed of a sequence of *layer* modules, the output of each of which fed into the input of the next in the sequence and each applying a transformation to map inputs to outputs. By defining a standard interface to layer objects with each defining a `fprop` method to *forward propagate* inputs to outputs, and a `bprop` method to *back propagate* gradients with respect to the output of the layer to gradients with respect to the input of the layer, the layer modules could be composed together arbitarily and activations and gradients forward and back propagated through the whole stack respectively.\n", + "\n", + "
    \n", + " \n", + " 'Pipeline' model composed of sequence of single input, single output layer modules\n", + "
    \n", + "\n", + "By construction a layer was defined as an object with a single array input and single array output. This is a natural fit for the architectures of standard feedforward networks which can be thought of a single pipeline of transformations from user provided input data to predicted outputs as illustrated in the figure above. \n", + "\n", + "
    \n", + " \n", + "
    \n", + " Models which fit less well into pipeline structure: left, a sequence-to-sequence recurrent network; right, a feed forward network with skip connections.\n", + "
    \n", + "\n", + "Towards the end of last semester however we encountered several models which do not fit so well in to this pipeline-like structure. For instance (unrolled) recurrent neural networks tend to have inputs feeding in to and outputs feeding out from multiple points along a deep feedforward model corresponding to the updates of the hidden recurrent state, as illustrated in the left panel in the figure above. It is not trivial to see how to map this structure to our layer based pipeline. Similarly models with skip connections between layers as illustrated in the right panel of the above figure also do not fit particularly well in to a pipeline structure.\n", + "\n", + "Ideally we would like to be able to compose modular components in more general structures than the pipeline structure we have being using so far. In particular it turns out to be useful to be able to deal with models which have structures defined by arbitrary [*directed acyclic graphs*](https://en.wikipedia.org/wiki/Directed_acyclic_graph) (DAGs), that is graphs connected by directed edges and without any directed cycles. Both the recurrent network and skip-connections examples can be naturally expressed as DAGs as well many other model structures.\n", + "\n", + "When working with these more general graphical structures, rather than considering a graph made up of layer modules, it often more useful to consider lower level mathematical operations or *ops* that make up the computation as the fundamental building block. A DAG composed of ops is often termed a *computation graph*. THis terminolgy was covered briefly in [lecture 6](http://www.inf.ed.ac.uk/teaching/courses/mlp/2017-18/mlp06-enc.pdf), and also in the [MLPR course](http://www.inf.ed.ac.uk/teaching/courses/mlpr/2016/notes/w5a_backprop.html). The backpropagation rules we used to propagate gradients through a stack of layer modules can be naturally generalised to apply to computation graphs, with this method of applying the chain rule to automatically propagate gradients backwards through a general computation graph also sometimes termed [*reverse-mode automatic differentiation*](https://en.wikipedia.org/wiki/Automatic_differentiation#Reverse_accumulation).\n", + "\n", + "
    \n", + " \n", + " Computation / data flow graph for an affine transformation $\\boldsymbol{y} = \\mathbf{W}\\boldsymbol{x} + \\boldsymbol{b}$\n", + "
    \n", + "\n", + "The figure above shows a very simple computation graph corresponding to the mathematical expression $\\boldsymbol{y} = \\mathbf{W}\\boldsymbol{x} + \\boldsymbol{b}$, i.e. the affine transformation we encountered last semester. Here the nodes of the graph are operations and the edges the vector or matrix values passed between operations. The opposite convention with nodes as values and edges as operations is also sometimes used. Note that just like there was ambiguity about what to define as a layer (as discussed previously at beginning of the [third lab notebook](03_Multiple_layer_models.ipynb), there are a range of choices for the level of abstraction to use in the op nodes in a computational graph. For instance, we could also have chosen to express the above computational graph with a single `AffineTransform` op node with three inputs (one matrix, two vector) and one vector output. Equally we might choose to express the `MatMul` op in terms of the underlying individual scalar addition and multiplication operations. What to consider an operation is therefore somewhat a matter of choice and what is convenient in a particular setting.\n", + "\n", + "## TensorFlow\n", + "\n", + "To allow us to work with models defined by more general computation graphs and to avoid the need to write `fprop` and `bprop` methods for each new model component we want to try out, this semester we will be using the open-source computation graph framework [TensorFlow](https://www.tensorflow.org/), originally developed by the Google Brain team:\n", + "\n", + "> TensorFlow™ is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) communicated between them. The flexible architecture allows you to deploy computation to one or more CPUs or GPUs \n", + "in a desktop, server, or mobile device with a single API.\n", + "\n", + "TensorFlow allows complex computation graphs (also known as data flow graphs in TensorFlow parlance) to be defined via a Python interface, with efficient C++ implementations for running the corresponding operations on different devices. TensorFlow also includes tools for automatic gradient computation and a large and growing suite of pre-define operations useful for gradient-based training of machine learning models.\n", + "\n", + "In this notebook we will introduce some of the basic elements of constructing, training and evaluating models with TensorFlow. This will use similar material to some of the [official TensorFlow tutorials](https://www.tensorflow.org/tutorials/) but with an additional emphasis of making links to the material covered in this course last semester. For those who have not used a computational graph framework such as TensorFlow or Theano before you may find the [basic usage tutorial](https://www.tensorflow.org/get_started/basic_usage) useful to go through.\n", + "\n", + "### Installing TensorFlow\n", + "\n", + "To install TensorFlow, open a terminal, activate your Conda `mlp` environment using\n", + "\n", + "```\n", + "source activate mlp\n", + "```\n", + "\n", + "and then run\n", + "\n", + "```\n", + "pip install tensorflow # for CPU users\n", + "```\n", + "\n", + "```\n", + "pip install tensorflow_gpu # for GPU users\n", + "```\n", + "\n", + "This should locally install the stable release version of TensorFlow (currently 1.4.1) in your Conda environment. After installing TensorFlow you may need to restart the kernel in the notebook to allow it to be imported." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 1: EMNIST softmax regression\n", + "\n", + "As a first example we will train a simple softmax regression model to classify handwritten digit images from the EMNIST data set encountered last semester (for those fed up of working with EMNIST - don't worry you will soon be moving on to other datasets!). This is equivalent to the model implemented in the first exercise of the third lab notebook. We will walk through constructing an equivalent model in TensorFlow and explain new TensorFlow model concepts as we use them. You should run each cell as you progress through the exercise.\n", + "\n", + "Similarly to the common convention of importing NumPy under the shortform alias `np` it is common to import the Python TensorFlow top-level module under the alias `tf`." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/antreas/anaconda2/envs/mlp/lib/python3.6/importlib/_bootstrap.py:205: RuntimeWarning: compiletime version 3.5 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6\n", + " return f(*args, **kwds)\n" + ] + } + ], + "source": [ + "import tensorflow as tf\n", + "import sys\n", + "sys.path.append(\"..\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We begin by defining [*placeholder*](https://www.tensorflow.org/api_docs/python/io_ops/placeholders) objects for the data inputs and targets arrays. These are nodes in the computation graph to which we will later *feed* in external data, such as batches of training set inputs and targets. This abstraction allows us to reuse the same computation graph for different data inputs - we can think of placeholders as acting equivalently to the arguments of a function. It is actually possible to feed data into any node in a TensorFlow graph however the advantage of using a placeholder is that is *must* always have a value fed into it (an exception will be raised if a value isn't provided) and no arbitrary alternative values needs to be entered.\n", + "\n", + "The `tf.placeholder` function has three arguments:\n", + "\n", + " * `dtype` : The [TensorFlow datatype](https://www.tensorflow.org/api_docs/python/framework/tensor_types) for the tensor e.g. `tf.float32` for single-precision floating point values.\n", + " * `shape` (optional) : An iterable defining the shape (size of each dimension) of the tensor e.g. `shape=(5, 2)` would indicate a 2D tensor (matrix) with first dimension of size 5 and second dimension of size 2. An entry of `None` in the shape definition corresponds to the corresponding dimension size being left unspecified, so for example `shape=(None, 28, 28)` would allow any 3D inputs with final two dimensions of size 28 to be inputted.\n", + " * `name` (optional): String argument defining a name for the tensor which can be useful when visualising a computation graph and for debugging purposes.\n", + " \n", + "As we will generally be working with batches of datapoints, both the `inputs` and `targets` will be 2D tensors with the first dimension corresponding to the batch size (set as `None` here to allow it to specified later) and the second dimension corresponding to the size of each input or output vector. As in the previous semester's work we will use a 1-of-K encoding for the class targets so for EMNIST each output corresponds to a vector of length 47 (number of digit/letter classes)." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "inputs = tf.placeholder(tf.float32, [None, 784], 'inputs')\n", + "targets = tf.placeholder(tf.float32, [None, 47], 'targets')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now define [*variable*](https://www.tensorflow.org/api_docs/python/state_ops/variables) objects for the model parameters. Variables are stateful tensors in the computation graph - they have to be explicitly initialised and their internal values can be updated as part of the operations in a graph e.g. gradient updates to model parameter during training. They can also be saved to disk and pre-saved values restored in to a graph at a later time.\n", + "\n", + "The `tf.Variable` constructor takes an `initial_value` as its first argument; this should be a TensorFlow tensor which specifies the initial value to assign to the variable, often a constant tensor such as all zeros, or random samples from a distribution." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "weights = tf.Variable(tf.zeros([784, 47]))\n", + "biases = tf.Variable(tf.zeros([47]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now build the computation graph corresponding to producing the predicted outputs of the model (log unnormalised class probabilities) given the data inputs and model parameters. We use the TensorFlow [`matmul`](https://www.tensorflow.org/api_docs/python/math_ops/matrix_math_functions#matmul) op to compute the matrix-matrix product between the 2D array of input vectors and the weight matrix parameter variable. TensorFlow [overloads all of the common arithmetic operators](http://stackoverflow.com/a/35095052) for tensor objects so `x + y` where at least one of `x` or `y` is a tensor instance (both `tf.placeholder` and `tf.Variable` return (sub-classes) of `tf.Tensor`) corresponds to the TensorFlow elementwise addition op `tf.add`. Further elementwise binary arithmetic operators like addition follow NumPy style [broadcasting](https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html), so in the expression below the `+ biases` sub-expression will correspond to creating an operation in the computation graph which adds the bias vector to each of the rows of the 2D tensor output of the `matmul` op." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "outputs = tf.matmul(inputs, weights) + biases" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "While we could have defined `outputs` as the softmax of the expression above to produce normalised class probabilities as the outputs of the model, as discussed last semester when using a softmax output combined with a cross-entropy error function it usually desirable from a numerical stability and efficiency perspective to wrap the softmax computation in to the error computation (as done in the `CrossEntropySoftmaxError` class in our `mlp` framework). \n", + "\n", + "In TensorFlow this can be achieved with the `softmax_cross_entropy_with_logits` op which is part of the `tf.nn` submodule which contains a number of ops specifically for neural network type models. This op takes as its first input log unnormalised class probabilities (sometimes termed logits) and as second input the class label targets which should be of the same dimension as the first input. By default the last dimension of the input tensors is assumed to correspond to the class dimension - this can be altered via an optional `dim` argument.\n", + "\n", + "The output of the `softmax_cross_entropy_with_logits` op here is a 1D tensor with a cross-entropy error value for each data point in the batch. We wish to minimise the mean cross-entropy error across the full dataset and will use the mean of the error on the batch as a stochastic estimator of this value. In TensorFlow ops which *reduce* a tensor along a dimension(s), for example by taking a sum, mean, or product, are prefixed with `reduce`, with the default behaviour being to perform the reduction across all dimensions of the input tensor and return a scalar output. Therefore the second line below will take the per data point cross-entropy errors and produce a single mean value across the whole batch." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "per_datapoint_errors = tf.nn.softmax_cross_entropy_with_logits(logits=outputs, labels=targets)\n", + "error = tf.reduce_mean(per_datapoint_errors)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although for the purposes of training we will use the cross-entropy error as this is differentiable, for evaluation we will also be interested in the classification accuracy i.e. what proportion of all of the predicted classes correspond to the true target label. We can calculate this in TensorFlow similarly to how we used NumPy to do this previously - we use the TensorFlow `tf.argmax` op to find the index of along the class dimension corresponding to the maximum predicted class probability and check if this is equal to the index along the class dimension of the 1-of-$k$ encoded target labels. Analagously to the error computation above, this computes per-datapoint values which we then need to average across with a `reduce_mean` op to produce the classification accuracy for a batch." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "per_datapoint_pred_is_correct = tf.equal(tf.argmax(outputs, 1), tf.argmax(targets, 1))\n", + "accuracy = tf.reduce_mean(tf.cast(per_datapoint_pred_is_correct, tf.float32))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As mentioned previously TensorFlow is able to automatically calculate gradients of scalar computation graph outputs with respect to tensors in the computation graph. We can explicitly construct a new sub-graph corresponding to the gradient of a scalar with respect to one or more tensors in the graph using the [`tf.gradients`](https://www.tensorflow.org/api_docs/python/train/gradient_computation) function. \n", + "\n", + "TensorFlow also however includes a number of higher-level `Optimizer` classes in the `tf.train` module that internally deal with constructing graphs corresponding to the gradients of some scalar loss with respect to one or more `Variable` tensors in the graph (usually corresponding to model parameters) and then using these gradients to update the variables (roughly equivalent to the `LearningRule` classes in the `mlp` framework). The most basic `Optimizer` instance is the `GradientDescentOptimizer` which simply adds operations corresponding to basic (stochastic) gradient descent to the graph (i.e. no momentum, adaptive learning rates etc.). The `__init__` constructor method for this class takes one argument `learning_rate` corresponding to the gradient descent learning rate / step size encountered previously.\n", + "\n", + "Usually we are not interested in the `Optimizer` object other than in adding operations in the graph corresponding to the optimisation steps. This can be achieved using the `minimize` method of the object which takes as first argument the tensor object corresponding to the scalar loss / error to be minimized. A further optional keyword argument `var_list` can be used to specify a list of variables to compute the gradients of the loss with respect to and update; by default this is set to `None` which indicates to use all trainable variables in the current graph. The `minimize` method returns an operation corresponding to applying the gradient updates to the variables - we need to store a reference to this to allow us to run these operations later. Note we do not need to store a reference to the optimizer as we have no further need of this object hence commonly the steps of constructing the `Optimizer` and calling `minimize` are commonly all applied in a single line as below." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "train_step = tf.train.GradientDescentOptimizer(learning_rate=0.5).minimize(error)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have now constructed a computation graph which can compute predicted outputs, use these to calculate an error value (and accuracy) and use the gradients of the error with respect to the model parameter variables to update their values with a gradient descent step.\n", + "\n", + "Although we have defined our computation graph, we have not yet initialised any tensor data in memory - all of the tensor variables defined above are just symbolic representations of parts of the computation graph. We can think of the computation graph as a whole as being similar to a function - it defines a sequence of operations but does not directly run those operations on data itself.\n", + "\n", + "To run the operations in (part of) a TensorFlow graph we need to create a [`Session`](https://www.tensorflow.org/api_docs/python/client/session_management) object:\n", + "\n", + "> A `Session` object encapsulates the environment in which `Operation` objects are executed, and `Tensor` objects are evaluated.\n", + "\n", + "A session object can be constructed using either `tf.Session()` or `tf.InteractiveSession()`. The only difference in the latter is that it installs itself as the default session on construction. This can be useful in interactive contexts such as shells or the notebook interface in which an alternative to running a graph operation using the session `run` method (see below) is to call the `eval` method of an operation e.g. `op.eval()`; generally a session in which the op runs needs to be passed to `eval`; however if an interactive session is used, then this is set as a default to use in `eval` calls." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "sess = tf.InteractiveSession()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The key property of a session object is its `run` method. This takes an operation (or list of operations) in a defined graph as an argument and runs the parts of the computation graph necessary to evaluate the output(s) (if any) of the operation(s), and additionally performs any updates to variables states defined by the graph (e.g. gradient updates of parameters). The output values if any of the operation(s) are returned by the `run` call.\n", + "\n", + "A standard operation which needs to be called before any other operations on a graph which includes variable nodes is a variable *initializer* operation. This, as the name suggests, initialises the values of the variables in the session to the values defined by the `initial_value` argument when adding the variables to the graph. For instance for the graph we have defined here this will initialise the `weights` variable value in the session to a 2D array of zeros of shape `(784, 10)` and the `biases` variable to a 1D array of shape `(10,)`.\n", + "\n", + "We can access initializer ops for each variable individually using the `initializer` property of the variables in question and then individually run these, however a common pattern is to use the `tf.global_variables_initializer()` function to create a single initializer op which will initialise all globally defined variables in the default graph and then run this as done below." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "init_op = tf.global_variables_initializer()\n", + "sess.run(init_op)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now almost ready to begin training our defined model, however as a final step we need to create objects for accessing batches of EMNIST input and target data. In the tutorial code provided in `tf.examples.tutorials.mnist` there is an `input_data` sub-module which provides a `read_data_sets` function for downloading the MNIST data and constructing an object for iterating over MNIST data. However in the `mlp` package we already have the MNIST and EMNIST data provider classes that we used extensively last semester, and corresponding local copies of the MNIST and EMNIST data, so we will use that here as it provides all the necessary functionality." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import data_providers as data_providers\n", + "train_data = data_providers.EMNISTDataProvider('train', batch_size=50, flatten=True, one_hot=True)\n", + "valid_data = data_providers.EMNISTDataProvider('valid', batch_size=50, flatten=True, one_hot=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now all set to train our model. As when training models last semester, the training procedure will involve two nested loops - an outer loop corresponding to multiple full-passes through the dataset or *epochs* and an inner loop iterating over individual batches in the training data.\n", + "\n", + "The `init_op` we ran with `sess.run` previously did not depend on the placeholders `inputs` and `target` in our graph, so we simply ran it with `sess.run(init_op)`. The `train_step` operation corresponding to the gradient based updates of the `weights` and `biases` parameter variables does however depend on the `inputs` and `targets` placeholders and so we need to specify values to *feed* into these placeholders; as we wish the gradient updates to be calculated using the gradients with respect to a batch of inputs and targets, the values that we feed in are the input and target batches. This is specified using the keyword `feed_dict` argument to the session `run` method. As the name suggests this should be a Python dictionary (`dict`) with keys corresponding to references to the tensors in the graph to feed values in to and values the corresponding array values to feed in (typically NumPy `ndarray` instances) - here we have `feed_dict = {inputs: input_batch, targets: target_batch}`.\n", + "\n", + "Another difference in our use of the session `run` method below is that we call it with a list of two operations - `[train_step, error]` rather than just a single operation. This allows the output (and variable updates) of multiple operations in a graph to be evaluated together - here we both run the `train_step` operation to update the parameter values and evaluate the `error` operation to return the mean error on the batch. Although we could split this into two separate session `run` calls, as the operations calculating the batch error will need to be evaluated when running the `train_step` operation (as this is the value gradients are calculated with respect to) this would involve redoing some of the computation and so be less efficient than combining them in a single `run` call.\n", + "\n", + "As we are running two different operations, the `run` method returns two values here. The `train_step` operation has no outputs and so the first return value is `None` - in the code below we assign this to `_`, this being a common convention in Python code for assigning return values we are not interested in using. The second return value is the average error across the batch which we assign to `batch_error` and use to keep a running average of the dataset error across the epochs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "End of epoch 1: running error average = 1.40\n", + "End of epoch 2: running error average = 1.25\n", + "End of epoch 3: running error average = 1.22\n", + "End of epoch 4: running error average = 1.20\n", + "End of epoch 5: running error average = 1.19\n", + "End of epoch 6: running error average = 1.18\n", + "End of epoch 7: running error average = 1.18\n", + "End of epoch 8: running error average = 1.17\n" + ] + } + ], + "source": [ + "num_epoch = 20\n", + "for e in range(num_epoch):\n", + " running_error = 0.\n", + " for input_batch, target_batch in train_data:\n", + " _, batch_error = sess.run(\n", + " [train_step, error], \n", + " feed_dict={inputs: input_batch, targets: target_batch})\n", + " running_error += batch_error\n", + " running_error /= train_data.num_batches\n", + " print('End of epoch {0}: running error average = {1:.2f}'.format(e + 1, running_error))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To check your understanding of using sessions objects to evaluate parts of a graph and feeding values in to a graph, complete the definition of the function in the cell below. This should iterate across all batches in a provided data provider and calculate the error and classification accuracy for each, accumulating the average error and accuracy values across the whole dataset and returning these as a tuple." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "def get_error_and_accuracy(data):\n", + " \"\"\"Calculate average error and classification accuracy across a dataset.\n", + " \n", + " Args:\n", + " data: Data provider which iterates over input-target batches in dataset.\n", + " \n", + " Returns:\n", + " Tuple with first element scalar value corresponding to average error\n", + " across all batches in dataset and second value corresponding to\n", + " average classification accuracy across all batches in dataset.\n", + " \"\"\"\n", + " err = 0\n", + " acc = 0\n", + " for input_batch, target_batch in data:\n", + " err += sess.run(error, feed_dict={inputs: input_batch, targets: target_batch})\n", + " acc += sess.run(accuracy, feed_dict={inputs: input_batch, targets: target_batch})\n", + " err /= data.num_batches\n", + " acc /= data.num_batches\n", + " return err, acc" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Test your implementation by running the cell below - this should print the error and accuracy of the trained model on the validation and training datasets if implemented correctly." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train data: Error=1.14 Accuracy=0.69\n", + "Valid data: Error=1.29 Accuracy=0.66\n" + ] + } + ], + "source": [ + "print('Train data: Error={0:.2f} Accuracy={1:.2f}'\n", + " .format(*get_error_and_accuracy(train_data)))\n", + "print('Valid data: Error={0:.2f} Accuracy={1:.2f}'\n", + " .format(*get_error_and_accuracy(valid_data)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 2: Explicit graphs, name scopes, summaries and TensorBoard\n", + "\n", + "In the exercise above we introduced most of the basic concepts needed for constructing graphs in TensorFlow and running graph operations. In an attempt to avoid introducing too many new terms and syntax at once however we skipped over some of the non-essential elements of creating and running models in TensorFlow, in particular some of the provided functionality for organising and structuring the computation graphs created and for monitoring the progress of training runs.\n", + "\n", + "Now that you are hopefully more familiar with the basics of TensorFlow we will introduce some of these features as they are likely to provide useful when you are building and training more complex models in the rest of this semester.\n", + "\n", + "Although we started off by motivating TensorFlow as a framework which builds computation graphs, in the code above we never explicitly referenced a graph object. This is because TensorFlow always registers a default graph at start up and all operations are added to this graph by default. The default graph can be accessed using `tf.get_default_graph()`. For example running the code in the cell below will assign a reference to the default graph to `default_graph` and print the total number of operations in the current graph definition." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of operations in graph: 198\n" + ] + } + ], + "source": [ + "default_graph = tf.get_default_graph()\n", + "print('Number of operations in graph: {0}'\n", + " .format(len(default_graph.get_operations())))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also explicitly create a new graph object using `tf.Graph()`. This may be useful if we wish to build up several independent computation graphs." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "graph = tf.Graph()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To add operations to a constructed graph object, we use the `graph.as_default()` [context manager](http://book.pythontips.com/en/latest/context_managers.html). Context managers are used with the `with` statement in Python - `with context_manager:` opens a block in Python in which a special `__enter__` method of the `context_manager` object is called before the code in the block is run and a further special `__exit__` method is run after the block code has finished execution. This can be used to for example manage allocation of resources (e.g. file handles) but also to locally change some 'context' in the code - in the example here, `graph.as_default()` is a context manager which changes the default graph within the following block to be `graph` before returning to the previous default graph once the block code is finished running. Context managers are used extensively in TensorFlow so it is worth being familiar with how they work.\n", + "\n", + "Another common context manager usage in TensorFlow is to define *name scopes*. As we encountered earlier, individual operations in a TensorFlow graph can be assigned names. As we will see later this is useful for making graphs interpretable when we use the tools provided in TensorFlow for visualising them. As computation graphs can become very big (even the quite simple graph we created in the first exercise has around 100 operations in it) even with interpretable names attached to the graph operations it can still be difficult to understand and debug what is happening in a graph. Therefore rather than simply allowing a single-level naming scheme to be applied to the individual operations in the graph, TensorFlow supports hierachical naming of sub-graphs. This allows sets of related operations to be grouped together under a common name, and thus allows both higher and lower level structure in a graph to be easily identified.\n", + "\n", + "This hierarchical naming is performed by using the name scope context manager `tf.name_scope('name')`. Starting a block `with tf.name_scope('name'):`, will cause all the of the operations added to a graph within that block to be grouped under the name specified in the `tf.name_scope` call. Name scope blocks can be nested to allow finer-grained sub-groupings of operations. Name scopes can be used to group operations at various levels e.g. operations corresponding to inference/prediction versus training, grouping operations which correspond to the classical definition of a neural network layer etc.\n", + "\n", + "The code in the cell below uses both a `graph.as_default()` context manager and name scopes to create a second copy of the computation graph corresponding to softmax regression that we constructed in the previous exercise." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "with graph.as_default():\n", + " with tf.name_scope('data'):\n", + " inputs = tf.placeholder(tf.float32, [None, 784], name='inputs')\n", + " targets = tf.placeholder(tf.float32, [None, 47], name='targets')\n", + " with tf.name_scope('parameters'):\n", + " weights = tf.Variable(tf.zeros([784, 47]), name='weights')\n", + " biases = tf.Variable(tf.zeros([47]), name='biases')\n", + " with tf.name_scope('model'):\n", + " outputs = tf.matmul(inputs, weights) + biases\n", + " with tf.name_scope('error'):\n", + " error = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=outputs, labels=targets))\n", + " with tf.name_scope('train'):\n", + " train_step = tf.train.GradientDescentOptimizer(0.5).minimize(error)\n", + " with tf.name_scope('accuracy'):\n", + " accuracy = tf.reduce_mean(tf.cast(\n", + " tf.equal(tf.argmax(outputs, 1), tf.argmax(targets, 1)), tf.float32))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As hinted earlier TensorFlow comes with tools for visualising computation graphs. In particular [TensorBoard](https://www.tensorflow.org/how_tos/summaries_and_tensorboard/) is an interactive web application for amongst other things visualising TensorFlow computation graphs (we will explore some of its other functionality in the latter part of the exercise). Typically TensorBoard in launched from a terminal and a browser used to connect to the resulting locally running TensorBoard server instance. However for the purposes of graph visualisation it is also possible to embed a remotely-served TensorBoard graph visualisation interface in a Jupyter notebook using the helper function below (a slight variant of the recipe in [this notebook](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/deepdream/deepdream.ipynb)).\n", + "\n", + "Note: The code below seems to not work for some people when accessing the notebook in Firefox. You can either try loading the notebook in an alternative browser, or just skip this section for now and explore the graph visualisation tool when launching TensorBoard below." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "from IPython.display import display, HTML\n", + "import datetime\n", + "\n", + "def show_graph(graph_def, frame_size=(900, 600)):\n", + " \"\"\"Visualize TensorFlow graph.\"\"\"\n", + " if hasattr(graph_def, 'as_graph_def'):\n", + " graph_def = graph_def.as_graph_def()\n", + " timestamp = datetime.datetime.now().strftime(\"%Y-%m-%d_%H-%M-%S\")\n", + " code = \"\"\"\n", + " \n", + " \n", + "
    \n", + " \n", + "
    \n", + " \"\"\".format(height=frame_size[1], data=repr(str(graph_def)), id='graph'+timestamp)\n", + " iframe = \"\"\"\n", + " \n", + " \"\"\".format(width=frame_size[0], height=frame_size[1] + 20, src=code.replace('\"', '"'))\n", + " display(HTML(iframe))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the cell below to display a visualisation of the graph we just defined. Notice that by default all operations within a particular defined name scope are grouped under a single node; this allows the top-level structure of the graph and how data flows between the various components to be easily visualised. We can also expand these nodes however to interrogate the operations within them - simply double-click on one of the nodes to do this (double-clicking on the expanded node will cause it to collapse again). If you expand the `model` node you should see a graph closely mirroring the affine transform example given as a motivation above." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "show_graph(graph)" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.2" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/notebooks/01_Introduction.ipynb b/notebooks/01_Introduction.ipynb deleted file mode 100644 index a25d342..0000000 --- a/notebooks/01_Introduction.ipynb +++ /dev/null @@ -1,669 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nbpresent": { - "id": "b167e6e2-05e0-4a4b-a6cc-47cab1c728b4" - } - }, - "source": [ - "# Introduction\n", - "\n", - "## Getting started with Jupyter notebooks\n", - "\n", - "The majority of your work in this course will be done using Jupyter notebooks so we will here introduce some of the basics of the notebook system. If you are already comfortable using notebooks or just would rather get on with some coding feel free to [skip straight to the exercises below](#Exercises).\n", - "\n", - "*Note: Jupyter notebooks are also known as IPython notebooks. The Jupyter system now supports languages other than Python [hence the name was changed to make it more language agnostic](https://ipython.org/#jupyter-and-the-future-of-ipython) however IPython notebook is still commonly used.*\n", - "\n", - "### Jupyter basics: the server, dashboard and kernels\n", - "\n", - "In launching this notebook you will have already come across two of the other key components of the Jupyter system - the notebook *server* and *dashboard* interface.\n", - "\n", - "We began by starting a notebook server instance in the terminal by running\n", - "\n", - "```\n", - "jupyter notebook\n", - "```\n", - "\n", - "This will have begun printing a series of log messages to terminal output similar to\n", - "\n", - "```\n", - "$ jupyter notebook\n", - "[I 08:58:24.417 NotebookApp] Serving notebooks from local directory: ~/mlpractical\n", - "[I 08:58:24.417 NotebookApp] 0 active kernels\n", - "[I 08:58:24.417 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/\n", - "```\n", - "\n", - "The last message included here indicates the URL the application is being served at. The default behaviour of the `jupyter notebook` command is to open a tab in a web browser pointing to this address after the server has started up. The server can be launched without opening a browser window by running `jupyter notebook --no-browser`. This can be useful for example when running a notebook server on a remote machine over SSH. Descriptions of various other command options can be found by displaying the command help page using\n", - "\n", - "```\n", - "juptyer notebook --help\n", - "```\n", - "\n", - "While the notebook server is running it will continue printing log messages to terminal it was started from. Unless you detach the process from the terminal session you will need to keep the session open to keep the notebook server alive. If you want to close down a running server instance from the terminal you can use `Ctrl+C` - this will bring up a confirmation message asking you to confirm you wish to shut the server down. You can either enter `y` or skip the confirmation by hitting `Ctrl+C` again.\n", - "\n", - "When the notebook application first opens in your browser you are taken to the notebook *dashboard*. This will appear something like this\n", - "\n", - "\n", - "\n", - "The dashboard above is showing the `Files` tab, a list of files in the directory the notebook server was launched from. We can navigate in to a sub-directory by clicking on a directory name and back up to the parent directory by clicking the `..` link. An important point to note is that the top-most level that you will be able to navigate to is the directory you run the server from. This is a security feature and generally you should try to limit the access the server has by launching it in the highest level directory which gives you access to all the files you need to work with.\n", - "\n", - "As well as allowing you to launch existing notebooks, the `Files` tab of the dashboard also allows new notebooks to be created using the `New` drop-down on the right. It can also perform basic file-management tasks such as renaming and deleting files (select a file by checking the box alongside it to bring up a context menu toolbar).\n", - "\n", - "In addition to opening notebook files, we can also edit text files such as `.py` source files, directly in the browser by opening them from the dashboard. The in-built text-editor is less-featured than a full IDE but is useful for quick edits of source files and previewing data files.\n", - "\n", - "The `Running` tab of the dashboard gives a list of the currently running notebook instances. This can be useful to keep track of which notebooks are still running and to shutdown (or reopen) old notebook processes when the corresponding tab has been closed.\n", - "\n", - "### The notebook interface\n", - "\n", - "The top of your notebook window should appear something like this:\n", - "\n", - "\n", - "\n", - "The name of the current notebook is displayed at the top of the page and can be edited by clicking on the text of the name. Displayed alongside this is an indication of the last manual *checkpoint* of the notebook file. On-going changes are auto-saved at regular intervals; the check-point mechanism is mainly meant as a way to recover an earlier version of a notebook after making unwanted changes. Note the default system only currently supports storing a single previous checkpoint despite the `Revert to checkpoint` dropdown under the `File` menu perhaps suggesting otherwise.\n", - "\n", - "As well as having options to save and revert to checkpoints, the `File` menu also allows new notebooks to be created in same directory as the current notebook, a copy of the current notebook to be made and the ability to export the current notebook to various formats.\n", - "\n", - "The `Edit` menu contains standard clipboard functions as well as options for reorganising notebook *cells*. Cells are the basic units of notebooks, and can contain formatted text like the one you are reading at the moment or runnable code as we will see below. The `Edit` and `Insert` drop down menus offer various options for moving cells around the notebook, merging and splitting cells and inserting new ones, while the `Cell` menu allow running of code cells and changing cell types.\n", - "\n", - "The `Kernel` menu offers some useful commands for managing the Python process (kernel) running in the notebook. In particular it provides options for interrupting a busy kernel (useful for example if you realise you have set a slow code cell running with incorrect parameters) and to restart the current kernel. This will cause all variables currently defined in the workspace to be lost but may be necessary to get the kernel back to a consistent state after polluting the namespace with lots of global variables or when trying to run code from an updated module and `reload` is failing to work. \n", - "\n", - "To the far right of the menu toolbar is a kernel status indicator. When a dark filled circle is shown this means the kernel is currently busy and any further code cell run commands will be queued to happen after the currently running cell has completed. An open status circle indicates the kernel is currently idle.\n", - "\n", - "The final row of the top notebook interface is the notebook toolbar which contains shortcut buttons to some common commands such as clipboard actions and cell / kernel management. If you are interested in learning more about the notebook user interface you may wish to run through the `User Interface Tour` under the `Help` menu drop down.\n", - "\n", - "### Markdown cells: easy text formatting\n", - "\n", - "This entire introduction has been written in what is termed a *Markdown* cell of a notebook. [Markdown](https://en.wikipedia.org/wiki/Markdown) is a lightweight markup language intended to be readable in plain-text. As you may wish to use Markdown cells to keep your own formatted notes in notebooks, a small sampling of the formatting syntax available is below (escaped mark-up on top and corresponding rendered output below that); there are many much more extensive syntax guides - for example [this cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).\n", - "\n", - "---\n", - "\n", - "```\n", - "## Level 2 heading\n", - "### Level 3 heading\n", - "\n", - "*Italicised* and **bold** text.\n", - "\n", - " * bulleted\n", - " * lists\n", - " \n", - "and\n", - "\n", - " 1. enumerated\n", - " 2. lists\n", - "\n", - "Inline maths $y = mx + c$ using [MathJax](https://www.mathjax.org/) as well as display style\n", - "\n", - "$$ ax^2 + bx + c = 0 \\qquad \\Rightarrow \\qquad x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a} $$\n", - "```\n", - "---\n", - "\n", - "## Level 2 heading\n", - "### Level 3 heading\n", - "\n", - "*Italicised* and **bold** text.\n", - "\n", - " * bulleted\n", - " * lists\n", - " \n", - "and\n", - "\n", - " 1. enumerated\n", - " 2. lists\n", - "\n", - "Inline maths $y = mx + c$ using [MathJax]() as well as display maths\n", - "\n", - "$$ ax^2 + bx + c = 0 \\qquad \\Rightarrow \\qquad x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a} $$\n", - "\n", - "---\n", - "\n", - "We can also directly use HTML tags in Markdown cells to embed rich content such as images and videos.\n", - "\n", - "---\n", - "```\n", - "\n", - "```\n", - "---\n", - "\n", - "\n", - "\n", - "---\n", - "\n", - " \n", - "### Code cells: in browser code execution\n", - "\n", - "Up to now we have not seen any runnable code. An example of a executable code cell is below. To run it first click on the cell so that it is highlighted, then either click the button on the notebook toolbar, go to `Cell > Run Cells` or use the keyboard shortcut `Ctrl+Enter`." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Hello world!\n", - "Hello again!\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Alarming hello!\n" - ] - }, - { - "data": { - "text/plain": [ - "'And again!'" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from __future__ import print_function\n", - "import sys\n", - "\n", - "print('Hello world!')\n", - "print('Alarming hello!', file=sys.stderr)\n", - "print('Hello again!')\n", - "'And again!'" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This example shows the three main components of a code cell.\n", - "\n", - "The most obvious is the input area. This (unsuprisingly) is used to enter the code to be run which will be automatically syntax highlighted.\n", - "\n", - "To the immediate left of the input area is the execution indicator / counter. Before a code cell is first run this will display `In [ ]:`. After the cell is run this is updated to `In [n]:` where `n` is a number corresponding to the current execution counter which is incremented whenever any code cell in the notebook is run. This can therefore be used to keep track of the relative order in which cells were last run. There is no fundamental requirement to run cells in the order they are organised in the notebook, though things will usually be more readable if you keep things in roughly in order!\n", - "\n", - "Immediately below the input area is the output area. This shows any output produced by the code in the cell. This is dealt with a little bit confusingly in the current Jupyter version. At the top any output to [`stdout`](https://en.wikipedia.org/wiki/Standard_streams#Standard_output_.28stdout.29) is displayed. Immediately below that output to [`stderr`](https://en.wikipedia.org/wiki/Standard_streams#Standard_error_.28stderr.29) is displayed. All of the output to `stdout` is displayed together even if there has been output to `stderr` between as shown by the suprising ordering in the output here. \n", - "\n", - "The final part of the output area is the *display* area. By default this will just display the returned output of the last Python statement as would usually be the case in a (I)Python interpreter run in a terminal. What is displayed for a particular object is by default determined by its special `__repr__` method e.g. for a string it is just the quote enclosed value of the string itself.\n", - "\n", - "### Useful keyboard shortcuts\n", - "\n", - "There are a wealth of keyboard shortcuts available in the notebook interface. For an exhaustive list see the `Keyboard Shortcuts` option under the `Help` menu. We will cover a few of those we find most useful below.\n", - "\n", - "Shortcuts come in two flavours: those applicable in *command mode*, active when no cell is currently being edited and indicated by a blue highlight around the current cell; those applicable in *edit mode* when the content of a cell is being edited, indicated by a green current cell highlight.\n", - "\n", - "In edit mode of a code cell, two of the more generically useful keyboard shortcuts are offered by the `Tab` key.\n", - "\n", - " * Pressing `Tab` a single time while editing code will bring up suggested completions of what you have typed so far. This is done in a scope aware manner so for example typing `a` + `[Tab]` in a code cell will come up with a list of objects beginning with `a` in the current global namespace, while typing `np.a` + `[Tab]` (assuming `import numpy as np` has been run already) will bring up a list of objects in the root NumPy namespace beginning with `a`.\n", - " * Pressing `Shift+Tab` once immediately after opening parenthesis of a function or method will cause a tool-tip to appear with the function signature (including argument names and defaults) and its docstring. Pressing `Shift+Tab` twice in succession will cause an expanded version of the same tooltip to appear, useful for longer docstrings. Pressing `Shift+Tab` four times in succession will cause the information to be instead displayed in a pager docked to bottom of the notebook interface which stays attached even when making further edits to the code cell and so can be useful for keeping documentation visible when editing e.g. to help remember the name of arguments to a function and their purposes.\n", - "\n", - "A series of useful shortcuts available in both command and edit mode are `[modifier]+Enter` where `[modifier]` is one of `Ctrl` (run selected cell), `Shift` (run selected cell and select next) or `Alt` (run selected cell and insert a new cell after).\n", - "\n", - "A useful command mode shortcut to know about is the ability to toggle line numbers on and off for a cell by pressing `L` which can be useful when trying to diagnose stack traces printed when an exception is raised or when referring someone else to a section of code.\n", - " \n", - "### Magics\n", - "\n", - "There are a range of *magic* commands in IPython notebooks, than provide helpful tools outside of the usual Python syntax. A full list of the inbuilt magic commands is given [here](http://ipython.readthedocs.io/en/stable/interactive/magics.html), however three that are particularly useful for this course:\n", - "\n", - " * [`%%timeit`](http://ipython.readthedocs.io/en/stable/interactive/magics.html?highlight=matplotlib#magic-timeit) Put at the beginning of a cell to time its execution and print the resulting timing statistics.\n", - " * [`%precision`](http://ipython.readthedocs.io/en/stable/interactive/magics.html?highlight=matplotlib#magic-precision) Set the precision for pretty printing of floating point values and NumPy arrays.\n", - " * [`%debug`](http://ipython.readthedocs.io/en/stable/interactive/magics.html?highlight=matplotlib#magic-debug) Activates the interactive debugger in a cell. Run after an exception has been occured to help diagnose the issue.\n", - " \n", - "### Plotting with `matplotlib`\n", - "\n", - "When setting up your environment one of the dependencies we asked you to install was `matplotlib`. This is an extensive plotting and data visualisation library which is tightly integrated with NumPy and Jupyter notebooks.\n", - "\n", - "When using `matplotlib` in a notebook you should first run the [magic command](http://ipython.readthedocs.io/en/stable/interactive/magics.html?highlight=matplotlib)\n", - "\n", - "```\n", - "%matplotlib inline\n", - "```\n", - "\n", - "This will cause all plots to be automatically displayed as images in the output area of the cell they are created in. Below we give a toy example of plotting two sinusoids using `matplotlib` to show case some of the basic plot options. To see the output produced select the cell and then run it." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "nbpresent": { - "id": "2bced39d-ae3a-4603-ac94-fbb6a6283a96" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\nYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# use the matplotlib magic to specify to display plots inline in the notebook\n", - "%matplotlib inline\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "\n", - "# generate a pair of sinusoids\n", - "x = np.linspace(0., 2. * np.pi, 100)\n", - "y1 = np.sin(x)\n", - "y2 = np.cos(x)\n", - "\n", - "# produce a new figure object with a defined (width, height) in inches\n", - "fig = plt.figure(figsize=(8, 4))\n", - "# add a single axis to the figure\n", - "ax = fig.add_subplot(111)\n", - "# plot the two sinusoidal traces on the axis, adjusting the line width\n", - "# and adding LaTeX legend labels\n", - "ax.plot(x, y1, linewidth=2, label=r'$\\sin(x)$')\n", - "ax.plot(x, y2, linewidth=2, label=r'$\\cos(x)$')\n", - "# set the axis labels\n", - "ax.set_xlabel('$x$', fontsize=16)\n", - "ax.set_ylabel('$y$', fontsize=16)\n", - "# force the legend to be displayed\n", - "ax.legend()\n", - "# adjust the limits of the horizontal axis\n", - "ax.set_xlim(0., 2. * np.pi)\n", - "# make a grid be displayed in the axis background\n", - "ax.grid('on')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nbpresent": { - "id": "533c10f0-95ba-4684-a72d-fd52cef0d007" - } - }, - "source": [ - "# Exercises\n", - "\n", - "Today's exercises are meant to allow you to get some initial familiarisation with the `mlp` package and how data is provided to the learning functions. Next week onwards, we will follow with the material covered in lectures. \n", - "\n", - "If you are new to Python and/or NumPy and are struggling to complete the exercises, you may find going through [this Stanford University tutorial](http://cs231n.github.io/python-numpy-tutorial/) by [Justin Johnson](http://cs.stanford.edu/people/jcjohns/) first helps. There is also a derived Jupyter notebook by [Volodymyr Kuleshov](http://web.stanford.edu/~kuleshov/) and [Isaac Caswell](https://symsys.stanford.edu/viewing/symsysaffiliate/21335) which you can download [from here](https://github.com/kuleshov/cs228-material/raw/master/tutorials/python/cs228-python-tutorial.ipynb) - if you save this in to your `mlpractical/notebooks` directory you should be able to open the notebook from the dashboard to run the examples.\n", - "\n", - "## Data providers\n", - "\n", - "Open (in the browser) the [`mlp.data_providers`](../../edit/mlp/data_providers.py) module. Have a look through the code and comments, then follow to the exercises.\n", - "\n", - "### Exercise 1 \n", - "\n", - "The `MNISTDataProvider` iterates over input images and target classes (digit IDs) from the [MNIST database of handwritten digit images](http://yann.lecun.com/exdb/mnist/), a common supervised learning benchmark task. Using the data provider and `matplotlib` we can for example iterate over the first couple of images in the dataset and display them using the following code:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "nbpresent": { - "id": "978c1095-a9ce-4626-a113-e0be5fe51ecb" - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJIAAACPCAYAAAARM4LLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAABJhJREFUeJzt3b8vc28cxvH28UwMJonVYCAmET8WImYxCZGYkEgkgj/A\nImH1IxKiasJGYrAYxCQ2LAaxECo2BoPFd/mm6eeTtNXH1Zue835NvXLk9ESu3L17nx9Nfn5+JoDv\n+vPTB4BooEiQoEiQoEiQoEiQoEiQoEiQoEiQoEiQ+Bv4/VhGrzzJr/wRIxIkKBIkKBIkKBIkKBIk\nKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIk\nKBIkKBIkQt+yHQsfHx8mn5+fm3xycmJyOp02+fn52eTW1laT9/f3TW5sbPyn41RiRIIERYIERYJE\nMvAD2yP5WJtUKmXyxsaGyZeXlyb7/3kymSxp+9DQkMm7u7tfP9jS8VgbhEORIEGRIME6Uh7F1oJm\nZ2ezr6+ursy26upqk7u7u01eWloyuaOjw+TV1dW875VIJBKZTCbfYf8YRiRIUCRIUCRIsI6Uh5+n\nzM3NmZz7f/PnwtbX101ub28v6b2rqqpM9utIfg52d3dncl1dXUnvVwTrSAiHIkGCIkEitutIfp1o\namrK5O3tbZP9PGV4eDj7emtry2zzcxjv4eHBZL+OVGze2tbWZnJNTU3Bvw+BEQkSFAkSFAkSsV1H\nmpiYMHlnZ8fk/v5+k0dGRkweHBzMu+/393eTV1ZWTF5bWzP55eXF5GLXI93c3Jhc5mu2WUdCOBQJ\nEhQJErGZI83MzJjsz6XV19eb/PT0VHB/uetQ/lql3t5ek0u9JruhocHkvb09k0s9d/dNzJEQDkWC\nRGxOkVxfX5vsP07GxsZMPj4+Lri/+fn57Gt/u5Hft8+e3+6Ptdgpl9+AEQkSFAkSFAkSkZ0j+ctE\n3t7eTPZfwRcXFwtuL/QV3i8d+MfSeD09PSZvbm6aXAlzIo8RCRIUCRIUCRKRPUXy+vpqcnNzs8l+\nHlPsNIa/5ejg4CD7enp62mw7OjoquO/Al4F8F6dIEA5FggRFgkRk15Fqa2tNfnx8lO4/dw52cXFh\ntvn51fLyssm/fE70TxiRIEGRIEGRIBHZOVK59fX1ZV/724nGx8dNnpycDHJMP4kRCRIUCRIUCRKR\nPdf2Xf5cXVNTk8m55+oGBgbMtsPDw/IdWHica0M4FAkSFAkSrCPl4e9V82tFudcYLSwsBDmm34wR\nCRIUCRIUCRLMkf53e3trcrFH0+Tei9bS0lK+A6sQjEiQoEiQoEiQiO0cyV9nPTo6arKfE52enprs\nf1407hiRIEGRIEGRIBHbOVIqlTLZ/5ynf0Sx/2krWIxIkKBIkIjNR5v/KEun0yb7r/v+afuV+Di+\nkBiRIEGRIEGRIBHZ25Hu7+9N7uzsNDmTyZh8dnZmMqdAsrgdCeFQJEhQJEhEdh3J33Ltbyfyv7Ld\n1dVV9mOKMkYkSFAkSFAkSER2HQkyrCMhHIoECYoEidDrSF/6vEXlYUSCBEWCBEWCBEWCBEWCBEWC\nBEWCBEWCBEWCBEWCBEWCBEWCBEWCBEWCBEWCBEWCBEWCBEWCBEWCBEWCBEWCBEWCBEWCxH/yKxa+\nn2pIxAAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Image target: [[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJIAAACPCAYAAAARM4LLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAABPRJREFUeJzt3c0rbW0cxvFFj5eiHAZCRBzTk3CSkaJIkTIxMMBEDBgc\n/4F/QjJQFJMzkRQldToiRCZeJgYmXifeylvyzPazfnfZe3tcFsv+fkbrau299lJX977da++1k56f\nnz3grZI/+gTwNVAkSFAkSFAkSFAkSFAkSFAkSFAkSFAkSPwT8OuxjB4+SfE8iBEJEhQJEhQJEhQJ\nEhQJEhQJEhQJEhQJEhQJEhQJEhQJEhQJEhQJEhQJEhQJEhQJEhQJEhQJEhQJEhQJEhQJEhQJEkF/\nHelLOjs7M3l+fj7q41taWkzOycmRn1PQGJEgQZEgQZEgEao5UmlpaWR7a2vL7Pv27Vug57KzsxPZ\n/vnzp9l3f38f9bnZ2dkmj4+Pm9za2vrGswseIxIkKBIkKBIkkgK+YfubXiw5+b/eb29vm30/fvx4\ny6Fjcuc9lZWVke29vT2zLy8vz+TT09Oox/b/XZ7neRsbGyZXVFTEfZ7vgNvaIDgUCRIUCRKhWkfy\n+/v3r8nvPUc6Pj42eX9/P7Ld3d1t9o2MjJj8+/dvk3t7e02+u7sz+fz8/P+e5odhRIIERYIERYJE\naOdIGRkZgb7ewcFB3I9NTU01ubOz0+SrqyuTh4aGTHbXoVzu2t/m5qbJj4+Pke3a2troJyvCiAQJ\nigQJigSJUF1rS0tLi2zv7u6afWVlZW85dEw3Nzcml5SURLbLy8vNvpWVFZOTkqJfrjo6OjK5oKAg\n6uNvb29Ndv92/2e1Ys234sC1NgSHIkGCIkEiVOtIXV1dke33nhO50tPTTfavBa2trZl97nU5d87z\n9PRkckpKismrq6smLywsmDw9PW1yZmamyYJ50asxIkGCIkGCIkEiVOtI/s9N+9eUPoL/u2dzc3Nm\nX19fn8n5+fkmT05Omvya63ie53lFRUUm//nzx+Ti4uJXHS8G1pEQHIoEiVD9+//Rb2d+379/f3Hf\n6Ojoq45VXV1tck1NjclVVVUmNzc3m5ybm/uq13sPjEiQoEiQoEiQCNUcKUiHh4cmDw4Omjw7OxvZ\njrWE0tHRYfLw8LDJ7sdQwogRCRIUCRIUCRKhukTynpaXl01ua2sz+eLiwuSsrKwXj3V5eWny+vq6\nye660CfHJRIEhyJBgiJBImHXkdyPbri3JHa/fjQzM2NyU1NTZHtsbMzsGxgYUJxiqDAiQYIiQYIi\nQSJh50j9/f0m+28F43met7i4aHJdXd2Lx3p4eIj6Wp/h80LvjREJEhQJEhQJEgkzR3JvHeNe//r1\n65fJ0eZEromJCZMbGxtNLiwsjPtYYcWIBAmKBAmKBImEmSP5fzrU8zzv+vra5KWlJZMbGhpMdn/W\nwX+rGfcnv6ampkyOdeu/r4ARCRIUCRIUCRIJM0eKxb3dXn19fdzP9d+S0PM8r729XXJOYcKIBAmK\nBAmKBImE+V6bu27U09NjsvuZbPcn1P0/GeE+371O5/7MVsjxvTYEhyJBgiJBImHmSLGcnJyY7M5z\ncnJygjydz4Q5EoJDkSDBWxti4a0NwaFIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBIkKBI\nkKBIkKBIkAj6K9tf//4uCYoRCRIUCRIUCRIUCRIUCRIUCRIUCRIUCRIUCRIUCRIUCRIUCRIUCRIU\nCRIUCRIUCRIUCRIUCRIUCRIUCRIUCRIUCRIUCRL/AhkN/OtmZFaHAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Image target: [[ 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]]\n" - ] - } - ], - "source": [ - "%matplotlib inline\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import mlp.data_providers as data_providers\n", - "\n", - "def show_single_image(img, fig_size=(2, 2)):\n", - " fig = plt.figure(figsize=fig_size)\n", - " ax = fig.add_subplot(111)\n", - " ax.imshow(img, cmap='Greys')\n", - " ax.axis('off')\n", - " plt.show()\n", - " return fig, ax\n", - "\n", - "# An example for a single MNIST image\n", - "mnist_dp = data_providers.MNISTDataProvider(\n", - " which_set='valid', batch_size=1, max_num_batches=2, shuffle_order=True)\n", - "\n", - "for inputs, target in mnist_dp:\n", - " show_single_image(inputs.reshape((28, 28)))\n", - " print('Image target: {0}'.format(target))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Generally we will want to deal with batches of multiple images i.e. `batch_size > 1`. As a first task:\n", - "\n", - " * Using MNISTDataProvider, write code that iterates over the first 5 minibatches of size 100 data-points. \n", - " * Display each batch of MNIST digits in a $10\\times10$ grid of images. \n", - " \n", - "**Notes**:\n", - "\n", - " * Images are returned from the provider as tuples of numpy arrays `(inputs, targets)`. The `inputs` matrix has shape `(batch_size, input_dim)` while the `targets` array is of shape `(batch_size,)`, where `batch_size` is the number of data points in a single batch and `input_dim` is dimensionality of the input features. \n", - " * Each input data-point (image) is stored as a 784 dimensional vector of pixel intensities normalised to $[0, 1]$ from inital integer values in $[0, 255]$. However, the original spatial domain is two dimensional, so before plotting you will need to reshape the one dimensional input arrays in to two dimensional arrays 2D (MNIST images have the same height and width dimensions)." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\nYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\neqKiogJRUVHSL8lWrVpBURRs377d7HNPT091GGiB5iEqAGjXrp3Zw9mrVy9bRVR4b2cwGODs7Cw9\nLyovL8egQYM0j9sZY8jPz0d1dbWm8qJER0dr2gSWhd8/PoxkjAl9t4EDB5qt+vFj1apVUmLi7N69\nG4qi4Pz58+oKpAwJCQlQFAVhYWHIzMzEoEGDoCgKrl+/bq1Y8xFVfn4+jh8/rv6gz549s1VEpbKy\n0kyQ8+bNQ3p6unD5Z8+egTHmsLnD8yI3N9ds8eJ5MWnSJPVeUkoRFhYmXDYlJUUd5hFCNInJlHPn\nzqltiYyMlC4/atQoVZCmCxVWEHqeKfBCGIi/EI3Q0bFB07VS19Fpyuii0tFxMLqodJoNAMiCBQvI\nn/70p0Zthy4qnUbj1VdfJYqikIyMDLvrKikpIQaDgaxbt44sX75cunx0dDSpqKiwux2E/A5EVVFR\nQWJjYwljjHTr1o3ExsaS5ORk6XpOnjxJXF1dyf79+80+v3Hjhs2yq1evJuPHjyeUUqIoComJiSE7\nd+4kz549E7r28ePHyfHjx8nkyZOJoigkICCAHD9+nDx9+lT6e7xIcI/jbdu22VVPcXEx2bRpEyGE\nkH//938nb775pnQd+/fvJ2+99ZZd7VARXSZ8zocZ1dXVqpHm06dP8d133+Hjjz/GokWL1CVUG/sJ\nAGo3CCmliIqKwsGDB9Vj9uzZIITg0aNHNus4duwYKKVIT09XNwrv3LmDcePGoW3btjb3aEJDQzF4\n8GBs3LhRdYDLyspCXl6eTfeLdu3awWAwwGAwYP78+di8eTM2b96MVatWqZ/PnTvX5neoy5o1a8w2\ngHfv3i1cNiwsDIwxhIaGSnnoWmL79u2a7Sk5JSUlah2lpaWa6xHc62q6+1Tc9IQfplbE/BARFVBr\nmrN+/fp6n2dlZeGLL76wWX7v3r2qCc/9+/fRu3dvTJ8+XcoymzGGuLg4ALWboFFRUcJlrSErqoCA\nAFBKsX//fvWznJwcGAwGYX8sg8Fgtu/Hxc0Yw4wZM6TazxjDmjVrNIuqpqbGLiPrum0hts2kmqao\n0tPTHSqqy5cvgzFWr1c6efIkzp07Z7P8/fv34efnh7y8PM2xGPz8/FRjVz8/P4wfP166DlNOnjyp\nPtRz5swRKjNp0iRERUXhhx9+MPt8y5YtoJQKubJnZmaqm778MN0IlvGpAgBXV1f8/PPPmkW1YMEC\n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\nSUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\njCoqFRUH83+Dm27bZwGx8wAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def show_batch_of_images(img_batch, fig_size=(3, 3)):\n", - " fig = plt.figure(figsize=fig_size)\n", - " batch_size, im_height, im_width = img_batch.shape\n", - " # calculate no. columns per grid row to give square grid\n", - " grid_size = int(batch_size**0.5)\n", - " # intialise empty array to tile image grid into\n", - " tiled = np.empty((im_height * grid_size, \n", - " im_width * batch_size // grid_size))\n", - " # iterate over images in batch + indexes within batch\n", - " for i, img in enumerate(img_batch):\n", - " # calculate grid row and column indices\n", - " r, c = i % grid_size, i // grid_size\n", - " tiled[r * im_height:(r + 1) * im_height, \n", - " c * im_height:(c + 1) * im_height] = img\n", - " ax = fig.add_subplot(111)\n", - " ax.imshow(tiled, cmap='Greys')\n", - " ax.axis('off')\n", - " fig.tight_layout()\n", - " plt.show()\n", - " return fig, ax\n", - "\n", - "batch_size = 100\n", - "num_batches = 5\n", - "\n", - "mnist_dp = data_providers.MNISTDataProvider(\n", - " which_set='valid', batch_size=batch_size, \n", - " max_num_batches=num_batches, shuffle_order=True)\n", - "\n", - "for inputs, target in mnist_dp:\n", - " # reshape inputs from batch of vectors to batch of 2D arrays (images)\n", - " _ = show_batch_of_images(inputs.reshape((batch_size, 28, 28)))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nbpresent": { - "id": "d2d525de-5d5b-41d5-b2fb-a83874dba986" - } - }, - "source": [ - "### Exercise 2\n", - "\n", - "`MNISTDataProvider` as `targets` currently returns a vector of integers, each element in this vector represents an the integer ID of the class the corresponding data-point represents. \n", - "\n", - "For training of neural networks a 1-of-K representation of multi-class targets is more useful. Instead of representing class identity by an integer ID, for each data point a vector of length equal to the number of classes is created, will all elements zero except for the element corresponding to the class ID. \n", - "\n", - "For instance, given a batch of 5 integer targets `[2, 2, 0, 1, 0]` and assuming there are 3 different classes \n", - "the corresponding 1-of-K encoded targets would be\n", - "```\n", - "[[0, 0, 1],\n", - " [0, 0, 1],\n", - " [1, 0, 0],\n", - " [0, 1, 0],\n", - " [1, 0, 0]]\n", - "```\n", - "\n", - " * Implement the `to_one_of_k` method of `MNISTDataProvider` class. \n", - " * Uncomment the overloaded `next` method, so the raw targets are converted to 1-of-K coding. \n", - " * Test your code by running the the cell below." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ 0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n", - " [ 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n", - " [ 0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n", - " [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", - " [ 0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]]\n", - "[[ 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n", - " [ 0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", - " [ 0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n", - " [ 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n", - " [ 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]]\n", - "[[ 0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", - " [ 0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n", - " [ 0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n", - " [ 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n", - " [ 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]]\n", - "[[ 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n", - " [ 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n", - " [ 0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", - " [ 1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n", - " [ 0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]]\n", - "[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n", - " [ 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n", - " [ 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n", - " [ 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n", - " [ 1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]\n" - ] - } - ], - "source": [ - "mnist_dp = data_providers.MNISTDataProvider(\n", - " which_set='valid', batch_size=5, max_num_batches=5, shuffle_order=False)\n", - "\n", - "for inputs, targets in mnist_dp:\n", - " assert np.all(targets.sum(-1) == 1.)\n", - " assert np.all(targets >= 0.)\n", - " assert np.all(targets <= 1.)\n", - " print(targets)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "collapsed": true, - "nbpresent": { - "id": "471093b7-4b94-4295-823a-5285c79d3119" - } - }, - "source": [ - "### Exercise 3\n", - "\n", - "Here you will write your own data provider `MetOfficeDataProvider` that wraps [weather data for south Scotland](http://www.metoffice.gov.uk/hadobs/hadukp/data/daily/HadSSP_daily_qc.txt). A previous version of this data has been stored in `data` directory for your convenience and skeleton code for the class provided in `mlp/data_providers.py`.\n", - "\n", - "The data is organised in the text file as a table, with the first two columns indexing the year and month of the readings and the following 31 columns giving daily precipitation values for the corresponding month. As not all months have 31 days some of entries correspond to non-existing days. These values are indicated by a non-physical value of `-99.9`.\n", - "\n", - " * You should read all of the data from the file ([`np.loadtxt`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html) may be useful for this) and then filter out the `-99.9` values and collapse the table to a one-dimensional array corresponding to a sequence of daily measurements for the whole period data is available for. [NumPy's boolean indexing feature](http://docs.scipy.org/doc/numpy/user/basics.indexing.html#boolean-or-mask-index-arrays) could be helpful here.\n", - " * A common initial preprocessing step in machine learning tasks is to normalise data so that it has zero mean and a standard deviation of one. Normalise the data sequence so that its overall mean is zero and standard deviation one.\n", - " * Each data point in the data provider should correspond to a window of length specified in the `__init__` method as `window_size` of this contiguous data sequence, with the model inputs being the first `window_size - 1` elements of the window and the target output being the last element of the window. For example if the original data sequence was `[1, 2, 3, 4, 5, 6]` and `window_size=3` then `input, target` pairs iterated over by the data provider should be\n", - " ```\n", - " [1, 2], 3\n", - " [4, 5], 6\n", - " ```\n", - " * **Extension**: Have the data provider instead overlapping windows of the sequence so that more training data instances are produced. For example for the sequence `[1, 2, 3, 4, 5, 6]` the corresponding `input, target` pairs would be\n", - "\n", - "```\n", - "[1, 2], 3\n", - "[2, 3], 4\n", - "[3, 4], 5\n", - "[4, 5], 6\n", - "```\n", - " * Test your code by running the cell below." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "nbpresent": { - "id": "c8553a56-9f25-4198-8a1a-d7e9572b4382" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\nCzqXAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "batch_size = 3\n", - "for window_size in [2, 5, 10]:\n", - " met_dp = data_providers.MetOfficeDataProvider(\n", - " window_size=window_size, batch_size=batch_size,\n", - " max_num_batches=1, shuffle_order=False)\n", - " fig = plt.figure(figsize=(6, 3))\n", - " ax = fig.add_subplot(111)\n", - " ax.set_title('Window size {0}'.format(window_size))\n", - " ax.set_xlabel('Day in window')\n", - " ax.set_ylabel('Normalised reading')\n", - " # iterate over data provider batches checking size and plotting\n", - " for inputs, targets in met_dp:\n", - " assert inputs.shape == (batch_size, window_size - 1)\n", - " assert targets.shape == (batch_size, )\n", - " ax.plot(np.c_[inputs, targets].T, '.-')\n", - " ax.plot([window_size - 1] * batch_size, targets, 'ko')" - ] - } - ], - "metadata": { - "anaconda-cloud": {}, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.2" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/notebooks/02_Single_layer_models.ipynb b/notebooks/02_Single_layer_models.ipynb deleted file mode 100644 index 53d6f88..0000000 --- a/notebooks/02_Single_layer_models.ipynb +++ /dev/null @@ -1,3305 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Single layer models\n", - "\n", - "In this lab we will implement a single-layer network model consisting of solely of an affine transformation of the inputs. The relevant material for this was covered in [the slides of the first lecture](http://www.inf.ed.ac.uk/teaching/courses/mlp/2016/mlp01-intro.pdf). \n", - "\n", - "We will first implement the forward propagation of inputs to the network to produce predicted outputs. We will then move on to considering how to use gradients of an error function evaluated on the outputs to compute the gradients with respect to the model parameters to allow us to perform an iterative gradient-descent training procedure. In the final exercise you will use an interactive visualisation to explore the role of some of the different hyperparameters of gradient-descent based training methods.\n", - "\n", - "#### A note on random number generators\n", - "\n", - "It is generally a good practice (for machine learning applications **not** for cryptography!) to seed a pseudo-random number generator once at the beginning of each experiment. This makes it easier to reproduce results as the same random draws will produced each time the experiment is run (e.g. the same random initialisations used for parameters). Therefore generally when we need to generate random values during this course, we will create a seeded random number generator object as we do in the cell below." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "seed = 27092016 \n", - "rng = np.random.RandomState(seed)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise 1: linear and affine transforms\n", - "\n", - "Any *linear transform* (also called a linear map) of a finite-dimensional vector space can be parametrised by a matrix. So for example if we consider $\\boldsymbol{x} \\in \\mathbb{R}^{D}$ as the input space of a model with $D$ dimensional real-valued inputs, then a matrix $\\mathbf{W} \\in \\mathbb{R}^{K\\times D}$ can be used to define a prediction model consisting solely of a linear transform of the inputs\n", - "\n", - "\\begin{equation}\n", - " \\boldsymbol{y} = \\mathbf{W} \\boldsymbol{x}\n", - " \\qquad\n", - " \\Leftrightarrow\n", - " \\qquad\n", - " y_k = \\sum_{d=1}^D \\left( W_{kd} x_d \\right) \\quad \\forall k \\in \\left\\lbrace 1 \\dots K\\right\\rbrace\n", - "\\end{equation}\n", - "\n", - "with here $\\boldsymbol{y} \\in \\mathbb{R}^K$ the $K$-dimensional real-valued output of the model. Geometrically we can think of a linear transform doing some combination of rotation, scaling, reflection and shearing of the input.\n", - "\n", - "An *affine transform* consists of a linear transform plus an additional translation parameterised by a vector $\\boldsymbol{b} \\in \\mathbb{R}^K$. A model consisting of an affine transformation of the inputs can then be defined as\n", - "\n", - "\\begin{equation}\n", - " \\boldsymbol{y} = \\mathbf{W}\\boldsymbol{x} + \\boldsymbol{b}\n", - " \\qquad\n", - " \\Leftrightarrow\n", - " \\qquad\n", - " y_k = \\sum_{d=1}^D \\left( W_{kd} x_d \\right) + b_k \\quad \\forall k \\in \\left\\lbrace 1 \\dots K\\right\\rbrace\n", - "\\end{equation}\n", - "\n", - "In machine learning we will usually refer to the matrix $\\mathbf{W}$ as a *weight matrix* and the vector $\\boldsymbol{b}$ as a *bias vector*.\n", - "\n", - "Generally rather than working with a single data vector $\\boldsymbol{x}$ we will work with batches of datapoints $\\left\\lbrace \\boldsymbol{x}^{(b)}\\right\\rbrace_{b=1}^B$. We could calculate the outputs for each input in the batch sequentially\n", - "\n", - "\\begin{align}\n", - " \\boldsymbol{y}^{(1)} &= \\mathbf{W}\\boldsymbol{x}^{(1)} + \\boldsymbol{b}\\\\\n", - " \\boldsymbol{y}^{(2)} &= \\mathbf{W}\\boldsymbol{x}^{(2)} + \\boldsymbol{b}\\\\\n", - " \\dots &\\\\\n", - " \\boldsymbol{y}^{(B)} &= \\mathbf{W}\\boldsymbol{x}^{(B)} + \\boldsymbol{b}\\\\\n", - "\\end{align}\n", - "\n", - "by looping over each input in the batch and calculating the output. However in general loops in Python are slow (particularly compared to compiled and typed languages such as C). This is due at least in part to the large overhead in dynamically inferring variable types. In general therefore wherever possible we want to avoid having loops in which such overhead will become the dominant computational cost.\n", - "\n", - "For array based numerical operations, one way of overcoming this bottleneck is to *vectorise* operations. NumPy `ndarrays` are typed arrays for which operations such as basic elementwise arithmetic and linear algebra operations such as computing matrix-matrix or matrix-vector products are implemented by calls to highly-optimised compiled libraries. Therefore if you can implement code directly using NumPy operations on arrays rather than by looping over array elements it is often possible to make very substantial performance gains.\n", - "\n", - "As a simple example we can consider adding up two arrays `a` and `b` and writing the result to a third array `c`. First lets initialise `a` and `b` with arbitrary values by running the cell below." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "size = 1000\n", - "a = np.arange(size)\n", - "b = np.ones(size)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let's time how long it takes to add up each pair of values in the two array and write the results to a third array using a loop-based implementation. We will use the `%%timeit` magic briefly mentioned in the previous lab notebook specifying the number of times to loop the code as 100 and to give the best of 3 repeats. Run the cell below to get a print out of the average time taken." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2.05 ms ± 148 µs per loop (mean ± std. dev. of 3 runs, 100 loops each)\n" - ] - } - ], - "source": [ - "%%timeit -n 100 -r 3\n", - "c = np.empty(size)\n", - "for i in range(size):\n", - " c[i] = a[i] + b[i]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And now we will perform the corresponding summation with the overloaded addition operator of NumPy arrays. Again run the cell below to get a print out of the average time taken." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3.01 µs ± 1.53 µs per loop (mean ± std. dev. of 3 runs, 100 loops each)\n" - ] - } - ], - "source": [ - "%%timeit -n 100 -r 3\n", - "c = a + b" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The first loop-based implementation should have taken on the order of milliseconds ($10^{-3}$s) while the vectorised implementation should have taken on the order of microseconds ($10^{-6}$s), i.e. a $\\sim1000\\times$ speedup. Hopefully this simple example should make it clear why we want to vectorise operations whenever possible!\n", - "\n", - "Getting back to our affine model, ideally rather than individually computing the output corresponding to each input we should compute the outputs for all inputs in a batch using a vectorised implementation. As you saw last week, data providers return batches of inputs as arrays of shape `(batch_size, input_dim)`. In the mathematical notation used earlier we can consider this as a matrix $\\mathbf{X}$ of dimensionality $B \\times D$, and in particular\n", - "\n", - "\\begin{equation}\n", - " \\mathbf{X} = \\left[ \\boldsymbol{x}^{(1)} ~ \\boldsymbol{x}^{(2)} ~ \\dots ~ \\boldsymbol{x}^{(B)} \\right]^\\mathrm{T}\n", - "\\end{equation}\n", - "\n", - "i.e. the $b^{\\textrm{th}}$ input vector $\\boldsymbol{x}^{(b)}$ corresponds to the $b^{\\textrm{th}}$ row of $\\mathbf{X}$. If we define the $B \\times K$ matrix of outputs $\\mathbf{Y}$ similarly as\n", - "\n", - "\\begin{equation}\n", - " \\mathbf{Y} = \\left[ \\boldsymbol{y}^{(1)} ~ \\boldsymbol{y}^{(2)} ~ \\dots ~ \\boldsymbol{y}^{(B)} \\right]^\\mathrm{T}\n", - "\\end{equation}\n", - "\n", - "then we can express the relationship between $\\mathbf{X}$ and $\\mathbf{Y}$ using [matrix multiplication](https://en.wikipedia.org/wiki/Matrix_multiplication) and addition as\n", - "\n", - "\\begin{equation}\n", - " \\mathbf{Y} = \\mathbf{X} \\mathbf{W}^\\mathrm{T} + \\mathbf{B}\n", - "\\end{equation}\n", - "\n", - "where $\\mathbf{B} = \\left[ \\boldsymbol{b} ~ \\boldsymbol{b} ~ \\dots ~ \\boldsymbol{b} \\right]^\\mathrm{T}$ i.e. a $B \\times K$ matrix with each row corresponding to the bias vector. The weight matrix needs to be transposed here as the inner dimensions of a matrix multiplication must match i.e. for $\\mathbf{C} = \\mathbf{A} \\mathbf{B}$ then if $\\mathbf{A}$ is of dimensionality $K \\times L$ and $\\mathbf{B}$ is of dimensionality $M \\times N$ then it must be the case that $L = M$ and $\\mathbf{C}$ will be of dimensionality $K \\times N$.\n", - "\n", - "The first exercise for this lab is to implement *forward propagation* for a single-layer model consisting of an affine transformation of the inputs in the `fprop` function given as skeleton code in the cell below. This should work for a batch of inputs of shape `(batch_size, input_dim)` producing a batch of outputs of shape `(batch_size, output_dim)`.\n", - " \n", - "You will probably want to use the NumPy `dot` function and [broadcasting features](http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html) to implement this efficiently. If you are not familiar with either / both of these you may wish to read the [hints](#Hints:-Using-the-dot-function-and-broadcasting) section below which gives some details on these before attempting the exercise." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "def fprop(inputs, weights, biases):\n", - " \"\"\"Forward propagates activations through the layer transformation.\n", - "\n", - " For inputs `x`, outputs `y`, weights `W` and biases `b` the layer\n", - " corresponds to `y = W x + b`.\n", - "\n", - " Args:\n", - " inputs: Array of layer inputs of shape (batch_size, input_dim).\n", - " weights: Array of weight parameters of shape \n", - " (output_dim, input_dim).\n", - " biases: Array of bias parameters of shape (output_dim, ).\n", - "\n", - " Returns:\n", - " outputs: Array of layer outputs of shape (batch_size, output_dim).\n", - " \"\"\"\n", - " return inputs.dot(weights.T) + biases" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Once you have implemented `fprop` in the cell above you can test your implementation by running the cell below." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "All outputs correct!\n" - ] - } - ], - "source": [ - "inputs = np.array([[0., -1., 2.], [-6., 3., 1.]])\n", - "weights = np.array([[2., -3., -1.], [-5., 7., 2.]])\n", - "biases = np.array([5., -3.])\n", - "true_outputs = np.array([[6., -6.], [-17., 50.]])\n", - "\n", - "if not np.allclose(fprop(inputs, weights, biases), true_outputs):\n", - " print('Wrong outputs computed.')\n", - "else:\n", - " print('All outputs correct!')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Hints: Using the `dot` function and broadcasting\n", - "\n", - "For those new to NumPy below are some details on the `dot` function and broadcasting feature of NumPy that you may want to use for implementing the first exercise. If you are already familiar with these and have already completed the first exercise you can move on straight to [second exercise](#Exercise-2:-visualising-random-models).\n", - "\n", - "#### `numpy.dot` function\n", - "\n", - "Matrix-matrix, matrix-vector and vector-vector (dot) products can all be computed in NumPy using the [`dot`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html) function. For example if `A` and `B` are both two dimensional arrays, then `C = np.dot(A, B)` or equivalently `C = A.dot(B)` will both compute the matrix product of `A` and `B` assuming `A` and `B` have compatible dimensions. Similarly if `a` and `b` are one dimensional arrays then `c = np.dot(a, b)` (which is equivalent to `c = a.dot(b)`) will compute the [scalar / dot product](https://en.wikipedia.org/wiki/Dot_product) of the two arrays. If `A` is a two-dimensional array and `b` a one-dimensional array `np.dot(A, b)` (which is equivalent to `A.dot(b)`) will compute the matrix-vector product of `A` and `b`. Examples of all three of these product types are shown in the cell below:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ 6. 6. 6.]\n", - " [ 24. 24. 24.]\n", - " [ 42. 42. 42.]]\n", - "[[ 18. 24. 30.]\n", - " [ 18. 24. 30.]\n", - " [ 18. 24. 30.]]\n", - "[ 0.8 2.6 4.4]\n", - "[ 2.4 3. 3.6]\n", - "0.2\n" - ] - } - ], - "source": [ - "# Initiliase arrays with arbitrary values\n", - "A = np.arange(9).reshape((3, 3))\n", - "B = np.ones((3, 3)) * 2\n", - "a = np.array([-1., 0., 1.])\n", - "b = np.array([0.1, 0.2, 0.3])\n", - "print(A.dot(B)) # Matrix-matrix product\n", - "print(B.dot(A)) # Reversed product of above A.dot(B) != B.dot(A) in general\n", - "print(A.dot(b)) # Matrix-vector product\n", - "print(b.dot(A)) # Again A.dot(b) != b.dot(A) unless A is symmetric i.e. A == A.T\n", - "print(a.dot(b)) # Vector-vector scalar product" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Broadcasting\n", - "\n", - "Another NumPy feature it will be helpful to get familiar with is [broadcasting](http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html). Broadcasting allows you to apply operations to arrays of different shapes, for example to add a one-dimensional array to a two-dimensional array or multiply a multidimensional array by a scalar. The complete set of rules for broadcasting as explained in the official documentation page just linked to can sound a bit complex: you might find the [visual explanation on this page](http://www.scipy-lectures.org/intro/numpy/operations.html#broadcasting) more intuitive. The cell below gives a few examples:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ 0.1 1.2]\n", - " [ 2.1 3.2]\n", - " [ 4.1 5.2]]\n", - "[[-1. 0.]\n", - " [ 2. 3.]\n", - " [ 5. 6.]]\n", - "[[ 0. 0.2]\n", - " [ 0.2 0.6]\n", - " [ 0.4 1. ]]\n" - ] - } - ], - "source": [ - "# Initiliase arrays with arbitrary values\n", - "A = np.arange(6).reshape((3, 2))\n", - "b = np.array([0.1, 0.2])\n", - "c = np.array([-1., 0., 1.])\n", - "print(A + b) # Add b elementwise to all rows of A\n", - "print((A.T + c).T) # Add b elementwise to all columns of A\n", - "print(A * b) # Multiply each row of A elementise by b " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise 2: visualising random models" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this exercise you will use your `fprop` implementation to visualise the outputs of a single-layer affine transform model with two-dimensional inputs and a one-dimensional output. In this simple case we can visualise the joint input-output space on a 3D axis.\n", - "\n", - "For this task and the learning experiments later in the notebook we will use a regression dataset from the [UCI machine learning repository](http://archive.ics.uci.edu/ml/index.html). In particular we will use a version of the [Combined Cycle Power Plant dataset](http://archive.ics.uci.edu/ml/datasets/Combined+Cycle+Power+Plant), where the task is to predict the energy output of a power plant given observations of the local ambient conditions (e.g. temperature, pressure and humidity).\n", - "\n", - "The original dataset has four input dimensions and a single target output dimension. We have preprocessed the dataset by [whitening](https://en.wikipedia.org/wiki/Whitening_transformation) it, a common preprocessing step. We will only use the first two dimensions of the whitened inputs (corresponding to the first two principal components of the inputs) so we can easily visualise the joint input-output space.\n", - "\n", - "The dataset has been wrapped in the `CCPPDataProvider` class in the `mlp.data_providers` module and the data included as a compressed file in the data directory as `ccpp_data.npz`. Running the cell below will initialise an instance of this class, get a single batch of inputs and outputs and import the necessary `matplotlib` objects." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from mlp.data_providers import CCPPDataProvider\n", - "%matplotlib notebook\n", - "\n", - "data_provider = CCPPDataProvider(\n", - " which_set='train',\n", - " input_dims=[0, 1],\n", - " batch_size=5000, \n", - " max_num_batches=1, \n", - " shuffle_order=False\n", - ")\n", - "\n", - "input_dim, output_dim = 2, 1\n", - "\n", - "inputs, targets = data_provider.next()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here we used the `%matplotlib notebook` magic command rather than the `%matplotlib inline` we used in the previous lab as this allows us to produce interactive 3D plots which you can rotate and zoom in/out by dragging with the mouse and scrolling the mouse-wheel respectively. Once you have finished interacting with a plot you can close it to produce a static inline plot using the button in the top-right corner.\n", - "\n", - "Now run the cell below to plot the predicted outputs of a randomly initialised model across the two dimensional input space as well as the true target outputs. This sort of visualisation can be a useful method (in low dimensions) to assess how well the model is likely to be able to fit the data and to judge appropriate initialisation scales for the parameters. Each time you re-run the cell a new set of random parameters will be sampled\n", - "\n", - "Some questions to consider:\n", - "\n", - " * How do the weights and bias initialisation scale affect the sort of predicted input-output relationships?\n", - " * Does the linear form of the model seem appropriate for the data here?" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "/* Put everything inside the global mpl namespace */\n", - "window.mpl = {};\n", - "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", - " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", - " return MozWebSocket;\n", - " } else {\n", - " alert('Your browser does not have WebSocket support.' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", - "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", - " this.id = figure_id;\n", - "\n", - " this.ws = websocket;\n", - "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", - "\n", - " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", - " if (warnings) {\n", - " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", - " }\n", - " }\n", - "\n", - " this.imageObj = new Image();\n", - "\n", - " this.context = undefined;\n", - " this.message = undefined;\n", - " this.canvas = undefined;\n", - " this.rubberband_canvas = undefined;\n", - " this.rubberband_context = undefined;\n", - " this.format_dropdown = undefined;\n", - "\n", - " this.image_mode = 'full';\n", - "\n", - " this.root = $('
    ');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", - "\n", - " $(parent_element).append(this.root);\n", - "\n", - " this._init_header(this);\n", - " this._init_canvas(this);\n", - " this._init_toolbar(this);\n", - "\n", - " var fig = this;\n", - "\n", - " this.waiting = false;\n", - "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", - " }\n", - "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", - "\n", - " this.imageObj.onunload = function() {\n", - " this.ws.close();\n", - " }\n", - "\n", - " this.ws.onmessage = this._make_on_message_function(this);\n", - "\n", - " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
    ');\n", - " var titletext = $(\n", - " '
    ');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._init_canvas = function() {\n", - " var fig = this;\n", - "\n", - " var canvas_div = $('
    ');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", - "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", - " }\n", - "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", - "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", - "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", - "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", - "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", - "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", - "\n", - " var pass_mouse_events = true;\n", - "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " });\n", - "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", - " }\n", - "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", - " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", - "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", - "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", - " if (event.deltaY < 0) {\n", - " event.step = 1;\n", - " } else {\n", - " event.step = -1;\n", - " }\n", - " mouse_event_fn(event);\n", - " });\n", - "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", - "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", - "\n", - " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", - " return false;\n", - " });\n", - "\n", - " function set_focus () {\n", - " canvas.focus();\n", - " canvas_div.focus();\n", - " }\n", - "\n", - " window.setTimeout(set_focus, 100);\n", - "}\n", - "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", - " var fig = this;\n", - "\n", - " var nav_element = $('
    ')\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", - "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", - " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", - " }\n", - "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", - " var name = mpl.toolbar_items[toolbar_ind][0];\n", - " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", - " var image = mpl.toolbar_items[toolbar_ind][2];\n", - " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", - "\n", - " if (!name) {\n", - " // put a spacer in here.\n", - " continue;\n", - " }\n", - " var button = $('');\n", - " button.click(method_name, toolbar_event);\n", - " button.mouseover(tooltip, toolbar_mouse_event);\n", - " nav_element.append(button);\n", - " }\n", - "\n", - " // Add the status bar.\n", - " var status_bar = $('');\n", - " nav_element.append(status_bar);\n", - " this.message = status_bar[0];\n", - "\n", - " // Add the close button to the window.\n", - " var buttongrp = $('
    ');\n", - " var button = $('');\n", - " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", - " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", - " buttongrp.append(button);\n", - " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", - " titlebar.prepend(buttongrp);\n", - "}\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(el){\n", - " var fig = this\n", - " el.on(\"remove\", function(){\n", - "\tfig.close_ws(fig, {});\n", - " });\n", - "}\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(el){\n", - " // this is important to make the div 'focusable\n", - " el.attr('tabindex', 0)\n", - " // reach out to IPython and tell the keyboard manager to turn it's self\n", - " // off when our div gets focus\n", - "\n", - " // location in version 3\n", - " if (IPython.notebook.keyboard_manager) {\n", - " IPython.notebook.keyboard_manager.register_events(el);\n", - " }\n", - " else {\n", - " // location in version 2\n", - " IPython.keyboard_manager.register_events(el);\n", - " }\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._key_event_extra = function(event, name) {\n", - " var manager = IPython.notebook.keyboard_manager;\n", - " if (!manager)\n", - " manager = IPython.keyboard_manager;\n", - "\n", - " // Check for shift+enter\n", - " if (event.shiftKey && event.which == 13) {\n", - " this.canvas_div.blur();\n", - " // select the cell after this one\n", - " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", - " IPython.notebook.select(index + 1);\n", - " }\n", - "}\n", - "\n", - "mpl.figure.prototype.handle_save = function(fig, msg) {\n", - " fig.ondownload(fig, null);\n", - "}\n", - "\n", - "\n", - "mpl.find_output_cell = function(html_output) {\n", - " // Return the cell and output element which can be found *uniquely* in the notebook.\n", - " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", - " // IPython event is triggered only after the cells have been serialised, which for\n", - " // our purposes (turning an active figure into a static one), is too late.\n", - " var cells = IPython.notebook.get_cells();\n", - " var ncells = cells.length;\n", - " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", - " data = data.data;\n", - " }\n", - " if (data['text/html'] == html_output) {\n", - " return [cell, data, j];\n", - " }\n", - " }\n", - " }\n", - " }\n", - "}\n", - "\n", - "// Register the function which deals with the matplotlib target/channel.\n", - "// The kernel may be null if the page has been refreshed.\n", - "if (IPython.notebook.kernel != null) {\n", - " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", - "}\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from mlp.layers import AffineLayer\n", - "from mlp.errors import SumOfSquaredDiffsError\n", - "from mlp.models import SingleLayerModel\n", - "from mlp.initialisers import UniformInit, ConstantInit\n", - "from mlp.learning_rules import GradientDescentLearningRule\n", - "from mlp.optimisers import Optimiser\n", - "import logging\n", - "\n", - "# Seed a random number generator\n", - "seed = 27092016 \n", - "rng = np.random.RandomState(seed)\n", - "\n", - "# Set up a logger object to print info about the training run to stdout\n", - "logger = logging.getLogger()\n", - "logger.setLevel(logging.INFO)\n", - "logger.handlers = [logging.StreamHandler()]\n", - "\n", - "# Create data provider objects for the CCPP training set\n", - "train_data = CCPPDataProvider('train', [0, 1], batch_size=100, rng=rng)\n", - "input_dim, output_dim = 2, 1\n", - "\n", - "# Create a parameter initialiser which will sample random uniform values\n", - "# from [-0.1, 0.1]\n", - "param_init = UniformInit(-0.1, 0.1, rng=rng)\n", - "\n", - "# Create our single layer model\n", - "layer = AffineLayer(input_dim, output_dim, param_init, param_init)\n", - "model = SingleLayerModel(layer)\n", - "\n", - "# Initialise the error object\n", - "error = SumOfSquaredDiffsError()\n", - "\n", - "# Use a basic gradient descent learning rule with a small learning rate\n", - "learning_rule = GradientDescentLearningRule(learning_rate=1e-2)\n", - "\n", - "# Use the created objects to initialise a new Optimiser instance.\n", - "optimiser = Optimiser(model, error, learning_rule, train_data)\n", - "\n", - "# Run the optimiser for 5 epochs (full passes through the training set)\n", - "# printing statistics every epoch.\n", - "stats, keys, _ = optimiser.train(num_epochs=10, stats_interval=1)\n", - "\n", - "# Plot the change in the error over training.\n", - "fig = plt.figure(figsize=(8, 4))\n", - "ax = fig.add_subplot(111)\n", - "ax.plot(np.arange(1, stats.shape[0] + 1), stats[:, keys['error(train)']])\n", - "ax.set_xlabel('Epoch number')\n", - "ax.set_ylabel('Error')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Using similar code to previously we can now visualise the joint input-output space for the trained model. If you implemented the required methods correctly you should now see a much improved fit between predicted and target outputs when running the cell below." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "/* Put everything inside the global mpl namespace */\n", - "window.mpl = {};\n", - "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", - " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", - " return MozWebSocket;\n", - " } else {\n", - " alert('Your browser does not have WebSocket support.' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", - "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", - " this.id = figure_id;\n", - "\n", - " this.ws = websocket;\n", - "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", - "\n", - " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", - " if (warnings) {\n", - " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", - " }\n", - " }\n", - "\n", - " this.imageObj = new Image();\n", - "\n", - " this.context = undefined;\n", - " this.message = undefined;\n", - " this.canvas = undefined;\n", - " this.rubberband_canvas = undefined;\n", - " this.rubberband_context = undefined;\n", - " this.format_dropdown = undefined;\n", - "\n", - " this.image_mode = 'full';\n", - "\n", - " this.root = $('
    ');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", - "\n", - " $(parent_element).append(this.root);\n", - "\n", - " this._init_header(this);\n", - " this._init_canvas(this);\n", - " this._init_toolbar(this);\n", - "\n", - " var fig = this;\n", - "\n", - " this.waiting = false;\n", - "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", - " }\n", - "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", - "\n", - " this.imageObj.onunload = function() {\n", - " this.ws.close();\n", - " }\n", - "\n", - " this.ws.onmessage = this._make_on_message_function(this);\n", - "\n", - " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
    ');\n", - " var titletext = $(\n", - " '
    ');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._init_canvas = function() {\n", - " var fig = this;\n", - "\n", - " var canvas_div = $('
    ');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", - "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", - " }\n", - "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", - "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", - "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", - "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", - "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", - "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", - "\n", - " var pass_mouse_events = true;\n", - "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " });\n", - "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", - " }\n", - "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", - " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", - "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", - "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", - " if (event.deltaY < 0) {\n", - " event.step = 1;\n", - " } else {\n", - " event.step = -1;\n", - " }\n", - " mouse_event_fn(event);\n", - " });\n", - "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", - "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", - "\n", - " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", - " return false;\n", - " });\n", - "\n", - " function set_focus () {\n", - " canvas.focus();\n", - " canvas_div.focus();\n", - " }\n", - "\n", - " window.setTimeout(set_focus, 100);\n", - "}\n", - "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", - " var fig = this;\n", - "\n", - " var nav_element = $('
    ')\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", - "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", - " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", - " }\n", - "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", - " var name = mpl.toolbar_items[toolbar_ind][0];\n", - " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", - " var image = mpl.toolbar_items[toolbar_ind][2];\n", - " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", - "\n", - " if (!name) {\n", - " // put a spacer in here.\n", - " continue;\n", - " }\n", - " var button = $('

    O;&Y=RYgVr(^I5eNdz?mvf;JZhQ8r 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