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 a507ba2..0000000 Binary files a/data/ccpp_data.npz and /dev/null differ diff --git a/data/emnist-test.npz b/data/emnist-test.npz deleted file mode 100644 index 05df1d8..0000000 Binary files a/data/emnist-test.npz and /dev/null differ diff --git a/data/emnist-train.npz b/data/emnist-train.npz deleted file mode 100644 index 177a30c..0000000 Binary files a/data/emnist-train.npz and /dev/null differ diff --git a/data/emnist-valid.npz b/data/emnist-valid.npz deleted file mode 100644 index 87183dd..0000000 Binary files a/data/emnist-valid.npz and /dev/null differ diff --git a/data/mnist-test.npz b/data/mnist-test.npz deleted file mode 100644 index 0ef69fa..0000000 Binary files a/data/mnist-test.npz and /dev/null differ diff --git a/data/mnist-train.npz b/data/mnist-train.npz deleted file mode 100644 index b16e9ab..0000000 Binary files a/data/mnist-train.npz and /dev/null differ diff --git a/data/mnist-valid.npz b/data/mnist-valid.npz deleted file mode 100644 index d4fe806..0000000 Binary files a/data/mnist-valid.npz and /dev/null differ 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/data_providers.py b/mlp/data_providers.py deleted file mode 100644 index aac04ee..0000000 --- a/mlp/data_providers.py +++ /dev/null @@ -1,401 +0,0 @@ -# -*- coding: utf-8 -*- -"""Data providers. - -This module provides classes for loading datasets and iterating over batches of -data points. -""" - -import pickle -import gzip -import numpy as np -import os -from mlp import DEFAULT_SEED - - -class DataProvider(object): - """Generic data provider.""" - - def __init__(self, inputs, targets, batch_size, max_num_batches=-1, - shuffle_order=True, rng=None): - """Create a new data provider object. - - Args: - inputs (ndarray): Array of data input features of shape - (num_data, input_dim). - targets (ndarray): Array of data output targets of shape - (num_data, output_dim) or (num_data,) if output_dim == 1. - 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. - """ - self.inputs = inputs - self.targets = targets - if batch_size < 1: - raise ValueError('batch_size must be >= 1') - self._batch_size = batch_size - if max_num_batches == 0 or max_num_batches < -1: - raise ValueError('max_num_batches must be -1 or > 0') - self._max_num_batches = max_num_batches - self._update_num_batches() - self.shuffle_order = shuffle_order - self._current_order = np.arange(inputs.shape[0]) - if rng is None: - rng = np.random.RandomState(DEFAULT_SEED) - self.rng = rng - self.new_epoch() - - @property - def batch_size(self): - """Number of data points to include in each batch.""" - return self._batch_size - - @batch_size.setter - def batch_size(self, value): - if value < 1: - raise ValueError('batch_size must be >= 1') - self._batch_size = value - self._update_num_batches() - - @property - def max_num_batches(self): - """Maximum number of batches to iterate over in an epoch.""" - return self._max_num_batches - - @max_num_batches.setter - def max_num_batches(self, value): - if value == 0 or value < -1: - raise ValueError('max_num_batches must be -1 or > 0') - self._max_num_batches = value - self._update_num_batches() - - def _update_num_batches(self): - """Updates number of batches to iterate over.""" - # maximum possible number of batches is equal to number of whole times - # batch_size divides in to the number of data points which can be - # found using integer division - possible_num_batches = self.inputs.shape[0] // self.batch_size - if self.max_num_batches == -1: - self.num_batches = possible_num_batches - else: - self.num_batches = min(self.max_num_batches, possible_num_batches) - - def __iter__(self): - """Implements Python iterator interface. - - This should return an object implementing a `next` method which steps - through a sequence returning one element at a time and raising - `StopIteration` when at the end of the sequence. Here the object - returned is the DataProvider itself. - """ - return self - - def new_epoch(self): - """Starts a new epoch (pass through data), possibly shuffling first.""" - self._curr_batch = 0 - if self.shuffle_order: - self.shuffle() - - def __next__(self): - return self.next() - - def reset(self): - """Resets the provider to the initial state.""" - inv_perm = np.argsort(self._current_order) - self._current_order = self._current_order[inv_perm] - self.inputs = self.inputs[inv_perm] - self.targets = self.targets[inv_perm] - self.new_epoch() - - def shuffle(self): - """Randomly shuffles order of data.""" - perm = self.rng.permutation(self.inputs.shape[0]) - self._current_order = self._current_order[perm] - self.inputs = self.inputs[perm] - self.targets = self.targets[perm] - - def next(self): - """Returns next data batch or raises `StopIteration` if at end.""" - if self._curr_batch + 1 > self.num_batches: - # no more batches in current iteration through data set so start - # new epoch ready for another pass and indicate iteration is at end - self.new_epoch() - raise StopIteration() - # create an index slice corresponding to current batch number - batch_slice = slice(self._curr_batch * self.batch_size, - (self._curr_batch + 1) * self.batch_size) - inputs_batch = self.inputs[batch_slice] - targets_batch = self.targets[batch_slice] - self._curr_batch += 1 - return inputs_batch, targets_batch - -class MNISTDataProvider(DataProvider): - """Data provider for MNIST handwritten digit images.""" - - def __init__(self, which_set='train', batch_size=100, max_num_batches=-1, - shuffle_order=True, rng=None): - """Create a new MNIST data provider object. - - Args: - which_set: One of 'train', 'valid' or 'eval'. Determines which - portion of the MNIST 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.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'], 'mnist-{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) - # pass the loaded data to the parent class __init__ - super(MNISTDataProvider, 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(MNISTDataProvider, self).next() - return inputs_batch, self.to_one_of_k(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 EMNISTDataProvider(DataProvider): - """Data provider for EMNIST handwritten digit images.""" - - def __init__(self, which_set='train', batch_size=100, max_num_batches=-1, - shuffle_order=True, rng=None): - """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.which_set = which_set - self.num_classes = 47 - # 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'], 'emnist-{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) - print(loaded.keys()) - inputs, targets = loaded['inputs'], loaded['targets'] - inputs = inputs.astype(np.float32) - inputs = np.reshape(inputs, newshape=(-1, 28*28)) - inputs = inputs / 255.0 - # pass the loaded data to the parent class __init__ - super(EMNISTDataProvider, 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(EMNISTDataProvider, self).next() - return inputs_batch, self.to_one_of_k(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.""" - - def __init__(self, window_size, batch_size=10, max_num_batches=-1, - shuffle_order=True, rng=None): - """Create a new Met Office data provider object. - - Args: - window_size (int): Size of windows to split weather time series - data into. The constructed input features will be the first - `window_size - 1` entries in each window and the target outputs - the last entry in each window. - 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. - """ - data_path = os.path.join( - os.environ['MLP_DATA_DIR'], 'HadSSP_daily_qc.txt') - assert os.path.isfile(data_path), ( - 'Data file does not exist at expected path: ' + data_path - ) - raw = np.loadtxt(data_path, skiprows=3, usecols=range(2, 32)) - assert window_size > 1, 'window_size must be at least 2.' - self.window_size = window_size - # filter out all missing datapoints and flatten to a vector - filtered = raw[raw >= 0].flatten() - # normalise data to zero mean, unit standard deviation - mean = np.mean(filtered) - std = np.std(filtered) - normalised = (filtered - mean) / std - # create a view on to array corresponding to a rolling window - shape = (normalised.shape[-1] - self.window_size + 1, self.window_size) - strides = normalised.strides + (normalised.strides[-1],) - windowed = np.lib.stride_tricks.as_strided( - normalised, shape=shape, strides=strides) - # inputs are first (window_size - 1) entries in windows - inputs = windowed[:, :-1] - # targets are last entry in windows - targets = windowed[:, -1] - super(MetOfficeDataProvider, self).__init__( - inputs, targets, batch_size, max_num_batches, shuffle_order, rng) - -class CCPPDataProvider(DataProvider): - - def __init__(self, which_set='train', input_dims=None, batch_size=10, - max_num_batches=-1, shuffle_order=True, rng=None): - """Create a new Combined Cycle Power Plant data provider object. - - Args: - which_set: One of 'train' or 'valid'. Determines which portion of - data this object should provide. - input_dims: Which of the four input dimension to use. If `None` all - are used. If an iterable of integers are provided (consisting - of a subset of {0, 1, 2, 3}) then only the corresponding - input dimensions are included. - 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. - """ - data_path = os.path.join( - os.environ['MLP_DATA_DIR'], 'ccpp_data.npz') - assert os.path.isfile(data_path), ( - 'Data file does not exist at expected path: ' + data_path - ) - # check a valid which_set was provided - assert which_set in ['train', 'valid'], ( - 'Expected which_set to be either train or valid ' - 'Got {0}'.format(which_set) - ) - # check input_dims are valid - if not input_dims is not None: - input_dims = set(input_dims) - assert input_dims.issubset({0, 1, 2, 3}), ( - 'input_dims should be a subset of {0, 1, 2, 3}' - ) - loaded = np.load(data_path) - inputs = loaded[which_set + '_inputs'] - if input_dims is not None: - inputs = inputs[:, input_dims] - targets = loaded[which_set + '_targets'] - super(CCPPDataProvider, self).__init__( - inputs, targets, batch_size, max_num_batches, shuffle_order, rng) - - -class AugmentedMNISTDataProvider(MNISTDataProvider): - """Data provider for MNIST dataset which randomly transforms images.""" - - def __init__(self, which_set='train', batch_size=100, max_num_batches=-1, - shuffle_order=True, rng=None, transformer=None): - """Create a new augmented MNIST data provider object. - - Args: - which_set: One of 'train', 'valid' or 'test'. Determines which - portion of the MNIST 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. - transformer: Function which takes an `inputs` array of shape - (batch_size, input_dim) corresponding to a batch of input - images and a `rng` random number generator object (i.e. a - call signature `transformer(inputs, rng)`) and applies a - potentiall random set of transformations to some / all of the - input images as each new batch is returned when iterating over - the data provider. - """ - super(AugmentedMNISTDataProvider, self).__init__( - which_set, batch_size, max_num_batches, shuffle_order, rng) - self.transformer = transformer - - def next(self): - """Returns next data batch or raises `StopIteration` if at end.""" - inputs_batch, targets_batch = super( - AugmentedMNISTDataProvider, self).next() - transformed_inputs_batch = self.transformer(inputs_batch, self.rng) - return transformed_inputs_batch, targets_batch 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/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": "iVBORw0KGgoAAAANSUhEUgAAAY0AAADgCAYAAAD/ujrhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VGXax/HvPemFhIQUaggtBJAeEMHQm4Ci2MVFRUAF\nKVb0dXfV3VWxraAiCrhWEBsogkroRZTeew01BRIC6e15/ziDhpAyJJmcmeT5XNe5puRkzi9DmDvn\nPE2UUmiapmmaLSxmB9A0TdOchy4amqZpms100dA0TdNspouGpmmaZjNdNDRN0zSb6aKhaZqm2UwX\nDa1aEpFUEWlcxu9dJSKjKjqTjccuc25Nqwi6aGhOT0SeF5FfCj13qJjn7gFQSvkqpY5WZs6KYI/c\nIqJEJM1akFJFZHZFvr5WtbiaHUDTKsAa4DkRcVFK5YlIHcANaF/ouabWfbWrtVVKHTY7hOb49JmG\nVhVswigS7ayPo4GVwIFCzx1RSp2BP/+6bmq9/6mITBeRxSJySUQ2iEiTyy8uIv1EZL+IpIjI+4AU\n+JpFRP4uIrEikiAin4uIv/Vrn4nIU9b79azHHGd93EREkkTkqv+DItJURFZbj3dORL4u8DVl/Xrd\nAmcGqSKSLiKqwH4jRWSfiCSLyBIRaVjud1nT0EVDqwKUUtnABqC79anuwFpgXaHnSjrLuAd4GQgA\nDgOvAIhIEDAf+DsQBBwBuhX4vgetWy+gMeALvG/92mqgp/V+D+BogTw9gLVKqfwisvwbiLFmqQ+8\nV8TPfMZ6qcpXKeULLADmWTMPBf4PGAYEW9+Lr0r42QHWiEiciMwXkfBS9tWqMV00tKpiNX99IEdj\nfFCuLfTc6hK+f4FSaqNSKheYw19nKIOAPUqp75RSOcBUIK7A9w0H/quUOqqUSgWeB+4REVfr8W60\nnk10B97gr4LTo4Q8OUBDoK5SKlMpta6kH1xEJgORwEjrU48Cryml9ll/nleBdiWcbfQAwq2vcQZY\nZM2vaVfRRUOrKtZgfEAHAsFKqUPAeqCr9bnrKPlMo2AhSMc4YwCoC5y8/AVlzPB5ssC+dYHYAo9j\nMdoKQ5VSR4A0jAIUDSwCzohIc0ouGs9iXALbKCJ7RGRkMfshIjcBE4FblVIZ1qcbAtNE5IKIXACS\nrK9Xr6jXUEqtUUplK6UuWF+rEdCiuGNq1Zv+a0KrKn4H/IHRwG8ASqmLInLG+twZpdSxMrzuWaDB\n5QciIgUfY/xlXvAv+DAgF4i3Pl4N3AG4K6VOi8hq4AGMS0/bizqgUirOmhkRuRFYJiJrCjdUW4vP\nZ8AwpVTBQnYSeEUpNecaf9Y/I1Cg3UbTCtJnGlqVYP0rezPwJMZlqcvWWZ8ra6+pxUArERlmvWQz\nAahd4OtfAU+ISCMR8cW4FPS19bIQGEXj8QLHX2V9vE4plVfUAUXkThGpb32YjPEhnl9oHz/gR+CF\nIi5ffQg8LyKtrPv6i8idxRyrlYi0ExEXa/63gdPAvuLfEq0600VDq0pWAyEYheKytdbnylQ0lFLn\ngDuBKcB5oBnWMxmr/wFfWF//GJAJjC+UqUaB468DvEvJ0wnYICKpwEJgYhFjMzoAzYF3CvaismZe\nALwOzBORi8Bu4KZijhUKfA1cxGioDweGWNtvNO0qohdh0jRN02ylzzQ0TdM0m+mioWmaptlMFw1N\n0zTNZrpoaJqmaTbTRUPTNE2zWZUb3BcUFKTCw8PNjqFpmuZUtmzZck4pFVzaflWuaISHh7N582az\nY2iapjkVEYktfS99eUrTNE27BrpoaJqmaTbTRUPTNE2zmS4aBWxP2M7sXbPZnlDk5KNaYSc3wtq3\njVutVFtik5m+8jBbYpPNjqJpZVblGsLLas3JNYxfOR4UuLu4M6v/LNqFtCv9G6ujvBzY/DEseQFU\nPrh4wAMLoUFns5M5pLx8xVcbT/DSwj3kK4W7q4U5o7rQsWGA2dE07ZrpomG189xO8q0rb+bk57A5\nfrMuGgVlpcLhZbB/MRxaApkpf30tLxuOr9VFo4DMnDzWHTrH0r3xLNsXz/m07D+/lpObzx9Hz+ui\noTklXTSsbqx3Ix/v+phclYtFLESFRpkdyXypCXDgF6NQHF0FeVngFQiRQ6BWM1j5CuTngMUC4dFm\npzXdhfRsVuxPIGZPPKsPJpKRk0cND1d6RobQLMSX91YcIidPISJ0aVzL7LiaVia6aFi1C2nHR/0+\nYuLKiYR4h9A2uK3Zkcxx/gjsX2QUipMbAQU1w6DTwxA5GBp0ARfrr01YF/hmBFhcoE71PCs7lZzO\n0r3xxOyJZ+PxJPLyFaF+HtzesR79W9amS+NauLsaTYfdmtTiiW92kJyeTUSobymvrGmOqcqtpxEV\nFaXKM7hv/qH5vLj+Rd7p+Q59G/atwGQOKj8fzmwzCsWBnyFxv/F87TbGGUXkYAhtBVLM6p8HfoWv\n7obBb0OnUZWX2yRKKfbHXSJmTzwxe+PYc+YiAM1CfOnfKpR+LWvTpp4/FkvR79f2kxe4dfpvTOzT\njCf6RVRmdE0rkYhsUUqVeolFF41CcvNzGbZwGEopFgxdgKulCp6M5VrbIPYvNgrFpbMgLhDeDZoP\nhshBxtmFLZSCT26CpKMwYRu4+9g3uwly8/LZHJv8Z6E4lZyBCHQMC6Bfy1D6tQylcbDtZw6PfbmF\nNQcTWf1sL4J8PeyYXNNsZ2vRqIKfiOXjanFlYvuJTFo1iYVHFjKs2TCzI1WMzItweKm1IXspZF0E\nN29o2sc4o2jWH7wDr/11RaDvy/C//vDHB9D9mYrPboKM7DzWHEokZk88K/bHk5yeg7urhRubBvF4\nr6b0aRFKcI2yfeA/PaA5MXvjeX/FYV66pVUFJ9c0+9JFowi9w3rTJrgN07dPZ1CjQXi6epodqWwu\nxRlnEvsXw9HVRqO1dxC0HGoUisY9wM2r/McJux6aD4Lf3oWoh8tWfBxAUlo2y/fFE7M3nrWHEsnM\nycfP05U+LULp3zKU7hHB+HiU/79Mk2Bf7oqqz5wNsYzs1oiwWt4VkF7TKoe+PFWMTXGbGLlkJE92\nfJKHrnuoApJVksSDfzVkn7a+DwGNjLaJyCFGt1iLS8UfN2EfzOgKXcbCgFcq/vXt5MT5dGL2xhGz\nN57Nx5PIV1DH35P+LUPp36o2nRsF4uZS8WNg41Iy6fHmSm66rjZT72lf4a+vaddKX54qp061O9Gt\nXjdm75rN7RG34+fuZ3akouXnG8XhcqE4f9h4vm576P13o1AERxbfkF1RQlpA23th40y4/lGo2cC+\nxysjpRR7zlwkZo9RKPbHXQIgsnYNHu/VlP6tatOqrh9i5/ertr8nD3VrxEdrjjCmexNa1nXQ3y9N\nK0SfaZRgf9J+7vzpTh6+7mEmdZxUIa9ZIXIy4dgaOLAY9v8MaQlgcTXGSkQONi4V+der/FwXTsJ7\nHaD1nXDrB5V//GLk5OWz6VgSMXvjidkTx5mUTCwCUeGBxhlFy9qmXCJKSc8h+o0VdGgYwKcP6YGR\nmrn0mUYFiAyMZFCjQczZN4f7WtxHiHeIeWEyLhgN2PsXGSOzs1PB3Rea9rU2ZPcDr5rm5QPj7KLT\naNgwA7qON84+TJKWlcuag4nE7I1n+b54Lmbm4uFqIbpZMJP6RdAnMoRaJvdc8vd2Y2yvpkz5ZT9/\nHD2vB/xpTkGfaZTi5KWT3PLDLdza9FZevOHFCntdm6SctjZkL4Lj6yA/F3xCjC6xkUOgUXdwdbAu\nm2nn4d12xlnPvXMr9dDnUrOMhuw98aw9fI7s3HxqervRJzKU/q1CiW4WhLe7Y/2dlJGdR8+3VlK3\nphfzH+tq98timlYcfaZRQRrUaMCdEXfyzYFvGNFyBI38G9nvYEoZDcoHFhvtE2e2Gc/Xago3PG5c\neqoXZUzb4ah8akHXCbDyP3Big9Gzyo6OnUtj6d44YvbEs+VEMkpB/QAvhl8fRv+WtekUHoCrHRqy\nK4qXuwuT+kbw/PxdxOyNZ0Cr2mZH0rQS6TMNG5zLOMeg+YOIrhfN2z3frtDXJj/PmK7jckN28jHj\n+fqdjLaJyCEQ7GQjh7PTYFo7o9g99HOFNsLn5yt2nU4xejztiedQQioALev40b+V0T7Rok4Np/qL\nPTcvn/5T12AR4deJ0Q5d5LSqS59pVKAgryAeaPUAH+74kD3n9tAqqJwDsnIyjAkA9y82JgRMPwcW\nN2PcRLcJEHET+NWpkOymcPeBHs/Cz0/DoRiIGFCul8vOzWfDsfPE7Iln6d544i5m4mIROocHct/1\nYfRtEUqDQOcd6+DqYuGZ/s15bM5W5m89zV2dHLPnmaaBSWcaIhIIfA2EA8eBu5RSyYX2aQgswFgo\nyg14Tyn1YWmvbY8zDYDU7FQGzR9ERGAEs/vPvvYXSE8yPkD3L4LDyyEnHTz8jJHYkYOgaT/wrELd\nLvNy4P1OxqjzR9de89iQS5k5rD5ojMheuT+BS1m5eLm50D0iiP4ta9M7MoQAH3c7ha98Silu/WA9\nCRczWfl0Tzzd7DCWRtNK4OhnGs8By5VSU0TkOevjyYX2OQvcoJTKEhFfYLeILFRKnanssAC+7r6M\nbjOaNza9wfoz6+lat2vp33ThhNEldv8iiF0PKg9q1DHGM0QONhqLXavOB98VXNyMcSLfPwy7voW2\n95T6LQkXM1lqbcj+/ch5svPyCfRx56bWtenfsjY3Nguqsh+mIsLkgc25b9YGPv/9OGO6NzE7kqYV\nyawzjQNAT6XUWRGpA6xSSjUvYf9awDagS2lFw15nGgDZedncvOBm/D38mTdkHhYpdO1ZKYjfbVx2\n2r8Y4nYazwdHWkdkD4Y67R27Ibsi5efDzB6QeQEe31xkT6/DCanG1OJ749h24gIAYYHeDGhljMju\nEBaASzEzxlZFI/63kR0nL7Dm2V74e7mZHUerRhx6llsRuaCUqmm9L0Dy5ceF9msALAaaAs8opaYX\n83pjgDEAYWFhHWNjY+2WfeGRhbyw7gXe7P4mAxsNhLxcOPmHtVAsMs4uEGhwvXHZqflgCGpqtzwO\n7/Ay+PJ2GPg6dHmU/HzF9lMX/pwx9mhiGgCt6/n/OXVHRKivUzVkV6Tdp1MY8t46xvVqwjMDIs2O\no1UjphcNEVkGFNV/8AXgs4JFQkSSlVLFrn0pInWBH4CblVLxJR3XnmcaAHn5edyx8HayMy/wg3tz\n3A7FQEaSsU52457WEdk3ga+JAwEdiVLkf3ozuXF7eLXZPBYfuETipSxcLcbqdf1bhdK3RSh1a1bA\nxIlVxPivtrF0bxxrnulFiJ+TTpapOR3T2zSUUsWuYCQi8SJSp8DlqYRSXuuMiOwGooHvKjiqbdLO\nwcFfcdn/M5NOb+XxYH8WJCznrmb9jELRpA946NXYLkvJyGHVgQRi9sZz/vhNzJO1BO+aSeeIcfRr\nGUqv5iH4e+vLL0V5ql8Ev+w6y7Tlh3jlttZmx9G0K5jVEL4QeACYYr39sfAOIlIfOK+UyhCRAOBG\n4J1KTZl07K+pxU/8Diof/OrTvcXddMg+yAzPiwy5eSrebs7b3bMinU3JYNleY2rx34+cJzdfEeTr\nQb+20SQkDWBswq/I0CngG2x2VIcWHuTDvZ3DmLvxBKOiG9MoqOotbKU5L7PaNGoB3wBhQCxGl9sk\nEYkCHlVKjRKRfsDbgAIEeF8pNbO01y7X5akTG4yePjnpcGY7JOwxng9pVaAhuy2IsC1hGyN+GcGE\n9hMY3WZ02Y7n5LYcT2LRrrNk5eSx58xFdpxKAaBRkM+fA+3aN6hpLH167hBMv95YEnbQGyYnd3wJ\nlzLp8cYqercIYfp9HcyOo1UDprdpmKXMRWPvQvhmBEaNAmq3NrrGNh8EgUVPHTJ++Xg2x2/ml2G/\nUNPT5MkCK5FSihmrjvDmkgOX3y2ahfhya/t6DGgVSpPgYhqyF06A7XPh8U3FvqfaX96OOcB7Kw7z\n0+M30rq+v9lxtCrO1qJRTfp+2uDcQf4sGOICrW6DG8aV+OE2ocME0nLSmL2rDIP9nNTm40nc8eHv\nvFGgYLgI3Nq+HuN6NaVpSAlTePR8zhjkt+q1SsvrzMZ0b0yAtxuv/7rf7Cia9iddNC5r1B1cvYyC\n4eJuDLwrRbOAZtzc5Ga+2v8VZ1PPVkJI8xxOSGXM55u548PfOZmUzqM9GuPpZsFFwM3VYtu03n51\n4fpHYOc3ELfb/qGdXA1PN8b1asq6w+dYd+ic2XE0DdCXp650ciMcX2sUjAa2LYpzJvUMQxYMYXDj\nwfy727/LdlwHlnApk2nLDjFv00m83Fx4pHtjHo5uhLe7K1tik/9cB6Jjw2J7TF8pIxmmtTXGsQz/\n1r7hq4DMnDx6v7WKoBoe/DiuW7Udv6LZX4V1uRWRJ4t4OgXYopTaXpZwDqtBZ5uLxWV1fetyT+Q9\nzNk3hwdbPUiTmlVj+oe0rFxmrjnKrLVHyc7N5/7rwxjfpxlBBRYu6tgwwPZicZlXANz4BCx7CY7/\nBuHdKjZ4FePp5sIT/SJ45rud/LwrjsFtnHgiS61KsOXyVBTwKFDPuj0CDARmicizdszmNEa3Ho23\nqzfvbn3X7CjllpOXz5d/xNLjzVVMW36IXs1DWPpkD14eet0VBaNcOj9izMG17EVj6hWtRMM61Cci\n1Je3Yg6Qk5dvdhytmrOlaNQHOiilnlJKPQV0BEKA7sCDdszmNAI8A3iw1YOsOLmC7QnOefKllOLX\n3XEMeGcNf/9hN42DfJg/tivTh3eo+HEC7t5Go/ipTcYYGK1ELhbhmQGRHDuXxjebT5odR6vmbCka\nIUBWgcc5QKhSKqPQ89Xa31r+jVqetZi6dSrO1k60JdboEfXol1uwWIRZI6L4+pEudAi7xktP16Ld\n/VCrGSz/lzF/l1aivi1CiGoYwLRlh8jIzjM7jlaN2VI05gAbRORFEXkR+A2YKyI+wF67pnMi3m7e\nPNL2EbbEb2Ht6bVmx7HJkcRUHvliM7fPMHpEvTasNb9OjKZfy1D7N7i6uEKff8C5A7Bznn2PVQWI\nCJNviiThUhb/++2Y2XG0asym3lMi0gm4vIDEb0op+80IWE72nrCwJDl5Odzywy14u3nz7c3fXj11\nuoMo2CPK09XCoz2a/NkjqlIpBbN6Q2oCjN8CbnpyvtI8/OkmNh5PYu2zvajpXUXXYtFMUdGD+7YC\n32KspJcgImHlCVdVubm4Mb79eA4mH2TxUce7Vp+WlcvUZQfp+eYqvt50kuHXh7H62V6M79Os8gsG\nGGuH930JLp6CTbMq//hO6JmBzUnNymXGqiNmR9GqqVKLhoiMB+KBpcAijPUtFtk5l9Ma2GggLQJb\nMH37dLLzss2OA1zZI2rqskP0bB7M0id78K+K7BFVVo17QJPesPZtyEwxN4sTiKztx23t6vHp+uOc\nTckwO45WDdlypjERaK6UaqWUaqOUaq2UamPvYM7KIhYmdpjI6dTTfHvQ3MFrxfWI+mB4R8eaObXv\nS8agv9+mmZ3EKTzRLwKlYOrSQ2ZH0aohW4rGSYzBfJqNutbtSufanZm5cyZpOWmmZDClR1RZ1WkL\n190Ov38Al+LMTuPwGgR6M7xLGN9uOcnhhEtmx9GqGVuKxlFglYg8LyJPXt7sHcyZiQiTOkwiKTOJ\nz/d8XqnHLtgj6kRl94gqj14vQH4OrH7d7CRO4fFeTfF2d+XNJQfMjqJVM7YUjRMY7RnuQI0Cm1aC\n1sGt6RvWl0/3fMr5jPN2P17ipSz+/sMu+r+zhnWHzvFUvwhWP9OTezuH4erimL24rlCrCXR8ELZ8\nBud1I29pavl6MDq6MUv2xLP1RLLZcbRqRE9YaEdHU45y24+3cW/kvTzX+Tm7HCMtK5dZa48yc40x\nR9R914cxodAcUU7jUjy82w4iBsKdn5idxuGlZeXS482VNAn2Zd6YLo59Jqk5vHJ3uRWRqdbbn0Rk\nYeGtIsNWVY39G3Nb09v4+sDXnLp0qkJf26F7RJVVjVDoMhb2zIcz28xO4/B8PFwZ37sZG44lsfpg\notlxtGqi2DMNEemolNoiIj2K+rpSarVdk5WRI51pAMSnxTN4wWD6NezHa9HlX3xIKUXM3nhe/3U/\nRxPT6BweyHODIh2zgbssMlNgWjujcXzED2ancXjZufn0+e8qfD3cWDz+RmNpXU0rg3KfaSiltlhv\nVxe1VWTYqizUJ5T7WtzH4qOLOZBUvkbLyz2iHvliCxZx8B5RZeXpD9FPwdGVcHSV2Wkcnrurhaf6\nNWff2Yv8tPOM2XG0aqCkM41d/Ln+6dUcdayGo51pAKRkpXDT/JtoH9Ke6X2mX/P3H0lM5c1fD/Dr\nnjiCa3jwZL8I7uxY3zkauMsiJxPe6wi+wTB6pTFyXCtWfr5i8HvrSMvKZdmTPXB3raK/F5pdVcQ0\nIkOAm4Ffrdtw6/YL8HNFhKwu/D38efi6h1lzag1b4rfY/H0Fe0StPZTIk87WI6qs3Dyh1/8Z7Rp7\n9SWq0lgswrMDm3MiKZ2vNp4wO45WxZXae0pEtiml2hd6bqtSqoNdk5WRI55pAGTkZjBk/hDq+Nbh\ni5u+KLGnS5XqEVVW+XkwoxvkZcO4DeDiZnYih6aU4p6Zf3AkMZXVz/TCx8OEucQ0p1aRExaKiHQr\n8KCrjd+nFeDl6sWj7R5lR+IOVp5cWeQ+uXn5zNlQxXpElZXFBfr8E5KOwLYvzU7j8C5PnX4uNZvZ\na/XU6Zr92PLh/zDwgYgcF5FY4ANgZHkOKiKBIrJURA5Zb4ttyRURPxE5JSLvl+eYjuC2prcR7hfO\nu1vfJS//r4V0lFIs2RNH/6lreGHBbhoFeTvmHFGVrflN0OB6WDUFstPNTuPwOoQFMKBVKLPWHuV8\nql4fTbOPUouGUmqLUqot0BZoo5Rqp5TaWs7jPgcsV0o1A5ZbHxfn38Cach7PIbhaXBnffjxHUo6w\n8Igx1KVgjygBZo2I4ptHbqhaPaLK6vLU6alxsOFDs9M4hWcGNCc9O5fpK/Woes0+bLrwKSKDgVaA\n5+Vr8Uqpf5XjuEOBntb7nwGrgMlFHLcjEIrREF/qtTZn0K9hP66rdR3vbp3OL7/XJmZvEsE1PHj1\nttbcFVWFe0SVVcOu0GwArJtqTDPiHWh2IofWNKQGd3Ssz5d/xDLyxnDqB3ibHUmrYmxZT+ND4G5g\nPCDAnUDDch43VCl11no/DqMwFD6uBXgbeLqcx3Io51Kz8cscyrnMeH5LXPhnj6j7rq/iPaLKo++L\nkHUR1r1jdhKnMKlvBAj8d+lBs6NoVZAtn1JdlVIjgGSl1MvADUBEad8kIstEZHcR29CC+ymj+1ZR\nXbjGAj8rpUqdf0NExojIZhHZnJjomNMppGXlMm3ZIXq+uZLlW/0IcW1DzbpreSi6tjmr5jmT0FbQ\n5m7YOBNSTpudxuHVrenFg13DWbDtNPvjLpodR6tibCkal5cHSxeRukAOUKe0b1JK9VVKXVfE9iMQ\nLyJ1AKy3CUW8xA3A4yJyHHgLGCEiU4o51kylVJRSKio4ONiGH6nyFOwR9c6yg3SPCCbmie68N/AF\nLman8MluPTGfTXr9H6h8WF3kr4BWyNieTfD1cOXNX/XU6VrFsqVoLBKRmsCbGGuFHwe+KudxFwIP\nWO8/APxYeAel1HClVJhSKhzjEtXnSin7TBVrB0X1iPr+sa7MuL8jjYN9aVmrJQPDB/Llvi9JTHfM\nsyOHEtAQoh42ut8m6ssupanp7c6jPZqwfH8Cm44nmR1Hq0Js6T31b6XUBaXU9xhtGZFKqX+U87hT\ngH4icgjoa32MiESJyOxyvrbptsQmc2cRPaI6NryyR9T49uPJycvho50fmRPU2UQ/BW7esKI8fTCq\nj5HdGhFSw4Mpv+ynqi2BoJnHloZwbxH5h4jMUkplASEiMqQ8B1VKnVdK9VFKNbNexkqyPr9ZKTWq\niP0/VUo9Xp5jVoajiak8+sUWbp+xntikdF69rTVLJnUvdtW8ML8wbo+4ne8Pfs+Ji3r6h1L5BkPX\n8bDvJzjleKP+HY2XuwsT+zZjS2wyy/cVdQVY066dLZenPgGyMNoYAE4D/7FbIieUeCmLf/ywm36F\n5oiypUfUo20fxc3Fjfe3Of3YxcpxwzjwDoJlL4H+67lUd0U1oFGQD28s2U9evn6/tPKzpWg0UUq9\ngdEAjlIqHaPrbbVXsEfUVxtPMPz6MFY/24sJfZrZ3CMqyCuI+1vczy/Hf2Hv+b12TlwFeNSAHs/C\n8bVweLnZaRyem4uFp/pHcDA+lQXbdM8zrfxsKRrZIuKFtVusiDTBOPOoti73iOr51pU9oso6R9RD\n1z1ETY+aTNs6zQ5pq6COD0HNhsbZRn6+2Wkc3qDr6tC6nj/vLD1IZk5e6d+gaSWwpWi8iDEiu4GI\nzMGY9uNZu6ZyUEopYvbEMcDaIyq81pU9osqqhnsNRrUexfoz69lwdkMFJq6iXN2h998hfpexNKxW\nIotFmDwwktMXMvjyj1iz42hOrsSp0cVova0PpANdMC5L/aGUOlc58a6dvaZG33oimdd+3sem48k0\nCfZh8sDIYhu4yyIrL4shC4YQ5BnE3MFzK+x1q6z8fPgoGrJTYdwmo5BoJbp/9gb2nElh9bO98PPU\nU81rV6qQqdGto7V/tvZ2WqyUWuTIBcMejiam8tiXWxj2wXqOn/+rR1T/VrUr9IPdw8WDsW3Hsvv8\nbpbGLq2w162yLBbo8yIkH4etn5mdxilMHhhJcnoOs9YcNTuK5sRsuTy1VUQ62T2JgynYI2rNwWvr\nEVVWtzS5hSb+TXhv23vk5ufa5RhVSrN+0LAbrH4dslLNTuPwWtf3Z3CbOsxee4zES9W6WVIrB1s+\n/a4HfheRIyKyU0R2ichOewczw5bYZKYuPcjk73b+2SPqvs5hrHrm2npElZWLxYUJHSZw/OJxFhxe\nYNdjVQki0PdlSEuEPz4wO41TeLp/c7Lz8nlvxSGzo2hOypZPwQF2T+EANh47z/DZG8jJM9p4ujQO\n5NXbWpergbssejXoRbvgdny4/UOGNB6Cl6tXpR7f6TToBJFD4Ld3IWok+ASZncihNQry4e5ODZi7\n4QQP39iF+2TDAAAgAElEQVSIhrWq8SJfWpnYMo1IbFFbZYSrTMv2JvxZMCwC0c2CK71ggLFs56SO\nk0jISGDuvrmVfnyn1OefkJMGa982O4lTmNinGa4uwtsxeg4v7drpBRysBlxXGw9XCy4C7q4WujSu\nZVqWjqEd6V6/Ox/v/piUrBTTcjiN4ObQ7j7YNBsu6OlYShPq58nIbo1YuOMMu0/r3y/t2uiiYdWx\nYQBzR3fhyf7NmTOqy1WTC1a2Ce0nkJqdyse7PzY1h9Po+TwgsPI1s5M4hUd6NMHfy403luip07Vr\no4tGAR0bBjCuV1PTCwZA88DmDG48mLn75hKXFmd2HMfnXx86j4YdX0G8no6lNP5ebozr1YQ1BxNZ\nf6Ra9aLXyqnYoiEil0TkYnFbZYasrsa1G0eeyuPDHR+aHcU5RD9lzE21XE+dbosRN4RTx9+T1389\noKdO12xWbNFQStVQSvkB04DngHoYo8MnA1MrJ171Vr9Gfe5ufjcLDi/gaIoekFUq70DoNhEO/gKx\nv5udxuF5urnwRN8Idpy8wJI9+mxWs40tl6duUUp9oJS6pJS6qJSaAQwt9bu0CjG69Wg8XTz11Om2\n6vIY+IbqqdNtNKxDPZqG+PLGkgPk5unJH7XS2VI00kRkuIi4iIhFRIYDafYOphlqedXiwVYPsjR2\nKbsSd5kdx/G5+0CPyXDyDzj4q9lpHJ6ri4Wn+zfnaGIa3205ZXYczQnYUjTuA+4C4q3bndbntEoy\notUIAj0Dmbp1qr72bIsOIyCwidG2ka+nAi/NgFahtA+rydRlh/TU6VqpbBncd1wpNVQpFaSUClZK\n3aqUOl4J2TQrHzcfxrQZw8a4jaw/s97sOI7Pxc2YOj1hL+z8xuw0Dk/EmDo97mImn64/bnYczcHZ\nskZ4hIgsF5Hd1sdtROTv9o+mFXRnxJ3U863H1K1TyVf62nOpWt4KddrBylchV0/OV5oujWvRs3kw\nH6w8TEp6jtlxNAdmy+WpWcDz/LXc607gHnuG0q7m7uLOuHbj2J+0n1+P6Wv1pbJYoO+LkHICNukB\nkrZ4dkAkl7JymbH6iNlRNAdmS9HwVkptLPScnrfbBIMbDyYiIIL3tr1HTp7+a7BUTXpDox6w9i3I\n1EOLStOyrh9D29blk9+OEZeSaXYczUHZUjTOWdcFv7xG+B3AWbum0opkEQsTO0zkVOopvj/0vdlx\nnEPflyD9PKx/z+wkTuGp/s3JV4ppy/XU6VrRbCka44CPgEgROQ1MAh4rz0FFJFBElorIIettkfN2\niEieiGy3bgvLc8yqIrpeNB1DO/Lhjg9Jz0k3O47jq9fBaN/4fTqkJpidxuE1CPRm+PUN+WbzSY4k\n6oWttKvZ0nvqqFKqLxAMRCqlbqyA3lPPAcuVUs2A5dbHRclQSrWzbreU85hVgojwRMcnOJ95ni/2\nfmF2HOfQ+x+Qmwlr3jQ7iVMY16spHq4W3o7RkxlqV7Ol99REEfED0oF3RGSriPQv53GHApcXdv4M\nuLWcr1ettA1uS+8GvflkzyckZyabHcfxBTU1xm5s/gSSjpmdxuEF1/BgVHRjft4Vx46TF8yOozkY\nWy5PjVRKXQT6A7WAvwFTynncUKXU5XaROCC0mP08RWSziPwhIrqwFDChwwQycjOYtWuW2VGcQ4/J\nYHGFla+YncQpjI5uRKCPO6//ul8PKNWuYEvREOvtIOBzpdSeAs8V/00iy0RkdxHbFfNWKeM3srjf\nyoZKqSiMEehTrQ3yRR1rjLW4bE5MTLThR3J+TWo24ZYmtzBv/zzOpJ4xO47j86sDXR6FXd/C2Sq5\nxH2FquHpxuO9mrL+yHnWHtJTp2t/saVobBGRGIyisUREagClji5TSvVVSl1XxPYjEC8idQCst0W2\nUCqlTltvjwKrgPbF7DdTKRWllIoKDg624UeqGsa1G4cgTN8+3ewozqHbJPCsCctfNjuJUxjeJYz6\nAV68sWQ/+fn6bEMz2FI0HsZoqO6klEoH3IGHynnchcAD1vsPAD8W3kFEAkTEw3o/COgG6NV1Cqjt\nU5t7I+/lpyM/cShZd5EslVdNiH4SDi+DY2vNTuPwPFxdeLJfBLtPX2TxLt3LXjOUtAhTpPVuO+tt\nYxHpADQEXMt53ClAPxE5BPS1PkZEokRktnWfFsBmEdkBrASmKKV00ShkVOtR+Lj58O62d82O4hw6\njwG/erDsRT11ug2GtqtHZO0avB1zgBw9dbpGyWcaT1lv3y5ie6s8B1VKnVdK9VFKNbNexkqyPr9Z\nKTXKen+9Uqq1Uqqt9VbPBVGEmp41GXndSFadXMW2hG1mx3F8bl7Q8zk4vQX2LzI7jcNzsQjPDGjO\n8fPpzNt00uw4mgMoaeW+0dbbXkVsvSsvolaa4S2GE+QVxNQteup0m7S9D4IijKnT8/SMOKXpHRlC\np/AA3l1+iPRs/X5VdyVdnhpW0laZIbWSebt582ibR9masJU1p9aYHcfxubhCn3/CuYOwY67ZaRye\niPDcTZEkXsrif+v0OJfqrqTLUzeXsA2xfzTtWgyLGEZYjTCmbp1Knl54qHSRQ6BeFKx8DXIyzE7j\n8Do2DKRvi1A+Wn2U5LRss+NoJirp8tRDJWwjKzOkVjo3ixvj24/n8IXDLD622Ow4jk/EmMzw0hnY\nONPsNE7h2YHNScvOZfrKw2ZH0UxkS5dbRGSwiDwrIv+8vNk7mHbt+of3p0VgC6Zvm052nv5rsFSN\noqFpX1j7X8jQ02WUJiK0BsM61OfzP2I5fUGfnTmSOXPmEB4ejsViITw8nDlz5tjtWLbMPfUhcDcw\nHmMk+J0Y3W41B2MRC5M6TuJM2hm+OaCXObVJnxch8wL8NtXsJE7hiX4RAExdetDkJNplc+bMYcyY\nMcTGxqKUIjY2ljFjxtitcNhyptFVKTUCSFZKvQzcAETYJY1Wbl3rduX6Otczc+dMUrP11NalqtMG\nWt8Jf3wIF/UAttLUq+nFiC4N+X7rKQ7FXzI7jga88MILpKdfuUxCeno6L7zwgl2OZ0vRuHwemi4i\ndTGWfa1jlzRahXiiwxMkZyXz2d7PSt9Zg14vQH4urH7d7CROYWyvpvi4u/LGEj11uiM4ceLENT1f\nXrYUjUUiUhN4E9gKHAe+sksarUK0CmpF/4b9+WzPZ5zL0JPNlSqwEUQ9BFs/h3O6kbc0gT7ujOne\nmKV749kSm2R2nGpLKcWcfXNwC3Qr8uthYWF2Oa4tizD9Wyl1QSn1PUZbRqRS6h92SaNVmPHtx5Od\nl83MnbpnkE26PwOunrDi32YncQoPRzciyNeD1385oAeUmiAhPYHHlj3GlI1TiB4djZeX1xVf9/b2\n5pVX7LMMgC0N4S4icouITMBY+vVhEXnSLmm0ChPuH85tzW7j24PfcvKSnv6hVL4hcMM42PsDnN5q\ndhqH5+3uysQ+Tdl4PImVB/QyupVpWewyhi0cxpb4Lfyjyz9Y+upSZs2aRcOGDRERGjZsyMyZMxk+\nfLhdji+l/ZUgIj8DmcAuCkyJbm0UdzhRUVFq8+bNZsdwCAnpCQyeP5jeYb15vbu+Xl+qzIvwbjsI\nvQ4e0EvSlyYnL5++/12Nl5sLP0+IxmIpdZkdrRxSs1OZsnEKPx75kVa1WvFa9Gs08m9UYa8vIlus\n6xeVyJY2jfpKqWFKqReVUi9f3iogo2ZnId4hDG8xnJ+P/cz+pP1mx3F8nn4Q/TQcWw1HVpidxuG5\nuVh4qn9z9sdd4scdp82OU6VtS9jGHT/dwU9Hf2JMmzF8MeiLCi0Y18KWovFLBawJrplkZOuR+Ln7\nMW3rNLOjOIdOD4N/GCx7GfL1VOClGdK6Dq3q+vF2zEGycvX0NRUtJz+Hd7e+y4O/PgjAZwM/Y3z7\n8bhZim78rgy2FI0/gAUikiEiF0XkkohctHcwrWL4ufsxqvUo1p1ex6a4TWbHcXyuHtDr/+DsdqN9\nQyuRxSJMHhjJqeQM5m6wTxfP6upYyjH+9vPfmLVrFrc0uYXvb/mediHtSv9GO7OlaPwXY0Cft1LK\nTylVQynlZ+dcWgW6N/JeQrxD9NTptmpzF4S0NHpS5eWYncbhRTcL4obGtXh/xWFSs/TU6eWllOLr\n/V9z1093cTr1NO/0fId/d/s3Pm4+ZkcDbCsaJ4HdSn/aOC1PV0/Gth3LznM7WXFCX6svlcXFmF4k\n6agxdkMrkYgw+aZIzqdlM2vNUbPjOLVzGecYt3wc/9nwHzqGdmT+LfPp27Cv2bGuYEvROAqsEpHn\nReTJy5u9g2kVa2jToTTyb8S0bdPIzdd/DZYqYgA06GKMEs9OMzuNw2vXoCY3XVeb2WuPci41y+w4\nTmnFiRUM+3EYG+M28nzn55nRdwbB3sFmx7qKLUXjGLAccAdqFNg0J+JqcWVC+wkcSznGwiO6O2mp\nRKDfy5AaD3/MMDuNU3h6QHMyc/N5f4UeVX8t0nPSeWn9S0xcOZHaPrX5Zsg33NfiPkQcswuza0lf\nFBEXoIZS6ulKyqPZUZ+wPrQJasMH2z9gUKNBeLp6mh3JsYV1gYib4LdpEDUSvAPNTuTQmgT7cldU\nfeZsiOXhGxvRINDb7EgOb0fiDp5f+zynLp1iVOtRjG07FjcX83pG2aLEMw2lVB7QrZKyaHYmIkzq\nOIn49Hjm7Z9ndhzn0OefkHUJ1v3X7CROYWKfCCwi/FdPnV6inPwcPtj+AQ/88gB5+Xl8MvATJnaY\n6PAFA2y7PLVdRBaKyN/0GuHOr1PtTnSr141Zu2ZxMVv3nC5VaEtoey9smAkpp8xO4/Bq+3vyULdG\n/LD9NPvO6t+vosRejOWBXx5gxo4ZDG48mO9u+Y6OoR3NjmUzW4qGJ3Ae6I1eI7xKmNRhEhezL/LJ\n7k/MjuIcej0PKFj1mtlJnMJjPZpQw8OVN37VsxAUpJTi24PfcudPdxJ7MZa3erzFKze+Qg1352oi\nLrFNA4y1wisjiFZ5IgMjGdRoEF/u/fLPMRxaCWqGQafRsGEG3DAeQiLNTuTQ/L3deKxnU17/dT8b\njp7n+sa1zI5kuvMZ53lp/UusOrWKLnW68J9u/yHUJ9TsWGViyyy39UVkgYgkWLfvRaR+eQ4qIoEi\nslREDllvA4rZL0xEYkRkn4jsFZHw8hxX+8vj7R4nNz+XD3d8aHYU5xD9FLj56KnTbfRg13BC/TyY\n8uv+aj+gdPXJ1QxbOIz1Z9YzudNkPur3kdMWDLDt8tQnwEKgrnX7yfpceTwHLFdKNcPozvtcMft9\nDryplGoBdAb0HMwVpIFfA+6IuIP5h+ZzPOW42XEcn08t6DYB9i+CkxvNTuPwvNxdmNQ3gm0nLhCz\nN97sOKZIz0nnX7//i8dXPE6wVzDzhszj/pb3YxFbPnYdly3pg5VSnyilcq3bp0B5R5wMBS6vRfoZ\ncGvhHUSkJeCqlFoKoJRKVUqlF95PK7tH2j6Cu4s77217z+wozqHLWPAJgWUvQTX/69kWd3asT+Ng\nH95ccoC8/Or1fu0+t5u7Ft3Fdwe/46FWDzF38FyaBTQzO1aFsKVonBeR+62LMbmIyP0YDePlEaqU\nOmu9HwcUda4WAVwQkfkisk1E3rSOG7mKiIwRkc0isjkxMbGc0aqPIK8gRrQcQUxsDHvO7TE7juPz\n8IUez0Lsb3B4mdlpHJ6ri4Vn+jfncEIq32+tHj3PLl/yvf/n+8nKy+LjAR/zZNSTuLu4mx2twthS\nNEYCd2F8uJ8F7gBKbRwXkWUisruIbWjB/axzWhX1Z4grEA08DXQCGgMPFnUspdRMpVSUUioqONjx\nht07sgdbPUiARwBTt041O4pz6PAABITrqdNtNPC62rRtUJOpSw+SmVO1p04/efEkD/76INO3T2dA\n+AC+v+V7OtXuZHasCmfLGuGxSqlblFLBSqkQpdStSqlS50BWSvVVSl1XxPYjEC8idQCst0W1VZwC\ntiuljiqlcoEfgA7X9uNppfF192V0m9H8cfYPfj/zu9lxHJ+rO/T+B8Tvgt3fmZ3G4YkIkwc250xK\nJl/8Hmt2HLtQSrHg0ALu+OkOjl44yuvRr/N699fxc6+ak4EX2+VWRP5ZwvcppVR5upEsBB4Aplhv\nfyxin01ATREJVkolYowT0eu42sHdze/mi71fMHXrVK6vc73TN9TZXath8NtUWPEfaHmrUUi0YnVt\nEkR0syCmrzrM3Z0b4Ofp+KOebZWcmcxL619ixckVdK7dmVdufIXaPrXNjmVXJX06pBWxATwMTC7n\ncacA/UTkENDX+hgRiRKR2fDnFCZPA8tFZBcgwKxyHlcrgruLO+PajWPv+b3ExMaYHcfxWSzQ5yW4\nEAtb9ABJW0weGMmF9Bw+Wn3E7CgVZu2ptQxbOIy1p9fydNTTzOo/q8oXDACxpQ+1iNQAJmIUjG+A\nt5VSDtn9NSoqSm3erE9IrlVefh53/HQH2XnZ/HDrD6YuJ+kUlILPboaEfTBxO3g416heM4z/ahtL\n98ax5plehPg572SZGbkZ/Hfzf5l3YB5NazZlSvQUmgc2NztWuYnIFqVUVGn7lXgdwjoI7z/AToxL\nWR2UUpMdtWBoZedicWFih4mcuHSCBYcWmB3H8YlA35cg/Rz8Pt3sNE7hqX4R5OYp3l1xyOwoZbb3\n/F7uXnQ38w7MY0TLEcwbMq9KFIxrUWzREJE3MdoVLgGtlVIvKaWSKy2ZVul61O9B+5D2zNgxg4zc\nDLPjOL76UdDiZlj/HqSdMzuNwwsP8uHezmHM23iS4+eca2GrvPw8Zu+azfDFw0nLSWNW/1k80+kZ\nPFw8zI5W6Uo603gKYwT434EzInLRul0SET19ZRUkIjzR8QnOZZxjzr45ZsdxDr3/CTnpsOYts5M4\nhfF9muLmYuGtmANmR7HZqUunGLlkJNO2TqNPwz7Mv2U+Xep0MTuWaYotGkopi1LKSylVQynlV2Cr\noZSqmn3JNNqHtKdn/Z78b9f/SMlKMTuO4wuOgPb3w+aPIblqdimtSCE1PBkV3YhFO8+y65Rj/34p\npfjx8I/c8dMdHEw+yKs3vsqb3d/E38Pf7Gim0n0rtatM6DCB1JxUZu+abXYU59DjORALrHzV7CRO\nYXT3xgR4u/HGEsedOv1C5gWeWv0Uf//t70QGRvL9Ld9zc5ObHXYJ1sqki4Z2lWYBzbi5yc3M3TeX\nuLQ4s+M4Pv960HkM7Pwa4nabncbh+Xm6Ma5XU9YeOsdvhx2vLWj96fUMWziMlSdX8kTHJ/i4/8fU\n9a1rdiyHoYuGVqRx7cahUHyw/QOzoziHG58ATz9Y/i+zkziF+7s0pK6/J6870NTpmbmZTNk4hUeW\nPYKfux9zB81l5HUjcbEUOeVdtaWLhlakur51ubv53fx45EeOXKg6A7LsxjsQuk2CQ0sgdr3ZaRye\np5sLT/SLYOepFH7eZf7Z7P6k/dyz6B7m7JvD8BbDmTdkHi1qtTA7lkPSRUMr1pg2Y/By9dJTp9vq\n+kehRh09dbqNhnWoT0SoL2/FHCAnz5zJH/Py8/jf7v9x7+J7uZh9kY/6fsRznZ/D09V5Bx/amy4a\nWrECPAN4sNWDLD+xnB2JO8yO4/jcvaHHZDi5AQ78YnYah+diEZ4ZEMmxc2l8u7nyp04/k3qGUTGj\neGfLO/Rq0Iv5t8yna72ulZ7D2eiioZVoRMsR1PKsxdQtUx3m2rNDa/83qNXUaNvIr9pTgVeEvi1C\niGoYwNRlB8nIrpz3SynFoqOLuH3h7exL2sd/uv2Ht3u8TU3PmpVyfGeni4ZWIm83bx5p+wib4zez\n7vQ6s+M4PhdXY+r0xH2wY57ZaRyeiDD5pkgSLmXxyfpjdj9eSlYKz655lufXPk+zgGZ8d/N3DG06\nVHelvQa6aGiluqPZHdT3rc+0rdPIV3rhoVK1HAp12xvjNnIyzU7j8DqFB9I7MoQZq45wIT3bbsfZ\ncHYDty+8nWWxy5jQfgKfDPiE+jXq2+14VZUuGlqp3FzceLz94xxIPsDPx342O47juzyZ4cVTsEkP\nkLTFswObk5qVy4xVFd9TLysvizc3vcmomFF4uXrx5eAvGd1mtO5KW0a6aGg2uanRTUQGRvL+tvfJ\nycsxO47ja9wTGveCtW9BpmNPl+EIImv7cVu7eny6/jhnUypussyDyQe5d/G9fL73c+5pfg/f3PwN\nrWq1qrDXr4500dBsYhELEztM5HTqab49+K3ZcZxD35cgI9mYBVcr1RP9IlAKpi0r/9Tp+Sqfz/Z8\nxj2L7iEpI4npfabzQpcX8HL1qoCk1ZsuGprNutXtRqfanfho50ek56SbHcfx1W1nLA37+3S4FG92\nGofXINCb4V3C+GbzSQ4npJb5deLS4hgTM4a3Nr9FdL1o5g+dT/f63SswafWmi4ZmMxFhUodJJGUm\n8dnez8yO4xx6/x3ysmHNG2YncQqP92qKt7srby0p29Tpvxz7hWELh7Hz3E5e7voyU3tNJdAzsIJT\nVm+6aGjXpE1wG/qG9eXT3Z+SlJlkdhzHV6sJdHgAtnwK5/V0LKWp5evB6OjG/Lonjm0nbF/z7WL2\nRZ5b+xzPrnmWRv6N+P7m7xnWbJjuSmsHNq0R7kz0GuH2dzTlKLf9eBv9wvoRWSuSqNAo2oW0MzuW\n47oUB++2hwadoVF3CI827mtFSsvKpfsbK6nt78Gg1nXo0jiIjg0Dit1/U9wm/m/d/5GYnsijbR9l\nVOtRuFpcKzFx1WDrGuH6ndWuWWP/xkTXi2ZJ7BJiYmNws7jxTq936Fa3m+7GWJQatY2xGzu+gqOr\nwdUd7voCmvQGFzez0zkcHw9Xbm1Xl49/O87eM5dwdz3M9Ps60D0iGHfXvy6OZOdl8/729/l096eE\n+YXxxU1f0Dq4tYnJqwddNLQyaVKzCatPrUahyM7PZtzycQiCn4cfAR4B1PSoSU3PmkXeD/D867aG\new0sUg2uktZsYL2jIDcL5t5lPPT0B+9ahbbAKx97FXjsVROqQWH293YHQAFZufmM+ty4elDDw5UA\nH3d8apzjvNcnZMhJmnj0paffw+w+5sfp+DgCfdwJ9HEjwNsdfy83XF2qwe9XJdJFQyuTXg16MWff\nHHLycnCxuHBv5L34uvmSnJXMhcwLJGclE5cWx77z+0jOTCY7v+iRvhaxGEXFuhUsKFfcegRQ09PY\nx9fN1/muVTftB7+9azSKW1yNRZs8/CAjCdLPG9ulsxC/x7hfbO80Aa+AkotM4ec9/Y0Bh06kW9Mg\nPlh5mOy8fFwswkPdGlHDw5XzaZnsvLiYw7lfI8oT7wujOZQUwfbsopfaFTEWfQr0cSfA+/Ktu3Hr\n406gt/XWWmQCfdzx83TDYnGu96symdKmISKBwNdAOHAcuEsplVxon17AOwWeigTuUUr9UNJr6zaN\nyrM9YTub4zeX2qahlCIjN4MLWReuKCpX3WZdIDnTuL2QeYFclVvk67mK658FpHBRKfLWoyZerl7m\nF5qTG+H4WtvaNLLTrywo6QXvny/6+bxipuAQl0KFpJQi410L3H1NLzRbYpP54+h5ujSuRceGAcSn\nxfOP3/7B72d/p0f9HrzU9SWCvIIAyMzJ40J6Dklp2SSnZ195m5ZNUnqOcWt9/nxaNtm5RU+JYxEI\n8C5YVAoVmwJFJ8DbjQAfd2p4uJr/+1VOtrZpmFU03gCSlFJTROQ5IEApNbmE/QOBw0B9pVSJAwR0\n0agalFKk5aQVW1QK317eipsby8PF46oi4+/hX/yZjWcAHi4elfxTl4NSkJ1aRDEpXGwKPVbFzCzr\n4l76mUzhMx53b7v9eDHHY3j595fJyc/hmU7PcEezO8r1Ia2UIiMnz1pUckhKN4pLcvrlImN9vlAR\nyskr+vPS1SI2FZmCX/dyc6mwQjN27FhmzpxJXl4eLi4ujBkzhg8+uLZVNx29aBwAeiqlzopIHWCV\nUqp5CfuPAXoopYaX9tq6aFRf+SqfS9mXri4sRZzVpGSl/HlbHC9Xr2LPXAoWF38P/z+fdyuhYdvW\nM7NKo5QxxYmtZzLp540R7hTzmeHqVUKRKeY51+IL8/bdc/ntyM/stuSzLmkXrYNa8+qNrxLuH26X\nt6M0SilSs3KvKDJFn9lcWYTyi3m7PFwtRRQVN2oWU2QCvN3xdLu6PWvs2LHMmDHjqucfe+yxayoc\njl40LiilalrvC5B8+XEx+68A/quUWlTaa+uioV2L3PxcLmZfLPFSWeHb1JziRyv7uvkWeeaSmZvJ\n/MPzycvPw9XiysPXPUyYX1gl/qQVROUbl86yL0F2GmSlGmc42anF3y9p9gAXT/DwNS6Hufv+ef9E\ndjKzM45z+QLlrT6N+Wezu3ET5+oEkK8UmTn5pGXlkpqVS1pWLmnZ1tusPOvzeaRbn0vNziU9q/h1\nRdxdLfh4uOLr4Yq3hwu+7q48MPZ58ouoTC4uLuTmFn2JtyimFw0RWQbULuJLLwCfFSwSIpKslCqy\nI7b1TGQnUFcpVeRMedYzkTEAYWFhHWNji24U07SKkJOXU3z7zOVLZYWez8ituEn4qhuLUoxPTmFU\nykWzozgkebn49+VaPt9NH6ehlOpb3NdEJF5E6hS4PJVQwkvdBSwormBYjzUTmAnGmUZZM2uaLdxc\n3Aj2DibYO9jm79l4diNjl48lJy8HVxdXXuv2Gi1qtbBjSue2b/98nt8zizwBNwVRXZ+GZjebHcsh\nufwngry8q89OXFzsc1ZmVpfbhcADwBTr7Y8l7Hsv8HxlhNI0e+lcpzOz+892rDYNB9ag80RCvIPZ\nfHQJUY0H0O66+8yO5LDGjBlTZJvGmDFj7HI8s9o0agHfAGFALEaX2yQRiQIeVUqNsu4XDvwGNFDK\ntiXjdJuGpmnVTZXvPWVPumhomqZdO1uLhh5fr2maptlMFw1N0zTNZrpoaJqmaTarcm0aIpKI0bhe\nVkHAuQqKU5F0rmujc10bnevaVMVcDZVSpfYjr3JFo7xEZLMtjUGVTee6NjrXtdG5rk11zqUvT2ma\npvCIzzMAAAdISURBVGk200VD0zRNs5kuGlebaXaAYuhc10bnujY617Wptrl0m4amaZpmM32moWma\nptmsWhYNERkoIgdE5LB15cDCX/cQka+tX99gnQPLEXI9KCKJIrLduo2qpFz/E5EEEdldzNdFRN61\n5t4pIh0cJFdPEUkp8H79s5JyNRCRlSKyV0T2iMjEIvap9PfMxlyV/p6JiKeIbBSRHdZcLxexT6X/\nn7Qxlyn/J63HdhGRbSJy1TpDdn2/lFLVagNcgCNAY8Ad2AG0LLTPWOBD6/17gK8dJNeDwPsmvGfd\ngQ7A7mK+Pgj4BRCgC7DBQXL1BBaZ8H7VATpY79cADhbxb1np75mNuSr9PbO+B77W+27ABqBLoX3M\n+D9pSy5T/k9aj/0kMLeofy97vl/V8UyjM3BYKXVUKZUNzAOGFtpnKPCZ9f53QB+pqMV8y5fLFEqp\nNUBSCbsMBT5Xhj+AmtZ1UszOZQql1Fml1Fbr/UvAPqBeod0q/T2zMVels74Hl5dDdLNuhRtbK/3/\npI25TCEi9YHBwOxidrHb+1Udi0Y94GSBx6e4+j/On/sopXKBFKCWA+QCuN16OeM7EWlg50y2sjW7\nGW6wXl74RURaVfbBrZcF2mP8lVqQqe9ZCbnAhPfMeqllO8aCbEuVUsW+X5X4f9KWXGDO/8mpwLNA\ncUtG2O39qo5Fw5n9BIQrpdoAS/nrLwmtaFsxpkZoC7wH/FCZBxcRX+B7YJJSymHWKi0llynvmVIq\nTynVDqjP/7d3byFWVXEcx78/bIRMskjNQsii6E7lNSyDJCEhzEDQwsQeigIRqXyoHgZ97MGgoIQ0\nJi8IlSNIikUZzVTSRQXHS5CZRCGaUkamovbvYa2D4/HobG3m7GnO7wMDyz1r7/13MXuvs9bZ+79g\nrKQ76nHerhSIq+7XpKRHgAMRsbmnz1VLI3YavwKdPw0Mz9tq1pF0CTAIOFR2XBFxKCKO538uAUb1\ncExFFWnTuouIPyvTCxGxHmiSNLge55bURLoxr4yI1hpVSmmzruIqs83yOf8APgMervpVGddkl3GV\ndE3eB0yRtJc0jT1R0oqqOj3WXo3YaXwL3CTpekn9SV8Sra2qU1mOFmAasDHyN0plxlU15z2FNCfd\nG6wFZuUngu4FDkfEvrKDkjSsMo8raSzp773HbzT5nEuBXRGx6BzV6t5mReIqo80kDZF0RS5fCkwC\nvq+qVvdrskhcZVyTEfFSRAyPiBGk+8TGiJhZVa3H2qusNcJLExEnJc0BPiI9sfROROyQtBD4LiLW\nki6s5ZJ2k75ondFL4poraQpwMsc1u6fjApC0ivRUzWBJvwDNpC8FiYjFwHrS00C7gb+Bp3pJXNOA\n5ySdBI4CM+rQ+UP6JPgk0JHnwwFeJi1vXGabFYmrjDa7BnhXUj9SJ/VeRHxY9jVZMK5Srsla6tVe\nfiPczMwKa8TpKTMzu0juNMzMrDB3GmZmVpg7DTMzK8ydhpmZFeZOw/o0Sady9tEdOTXGC5L+89+9\npGslfdAdMXY65kJJD13gPnvr+fKdmR+5tT5N0l8RMTCXh5Kygn4ZEc3lRtY98lvBoyPiYNmxWGPw\nSMMaRkQcAJ4B5uQ3sUdIape0Jf+MB5C0TNLUyn6SVko6I+Nw3nd7Ls+W1Cppg6QfJL1afW5JYyS1\n5vKjko5K6q+0ZsOevL1F0rRc3itpQY6rQ9IteftVkj7OI6clpPTdlXM8L2l7/pmXt82XNDeXX5O0\nMZcnSlrZbY1rDcOdhjWUiNhDeuN+KClz6aSIGAlMB17P1ZaS3+yVNAgYD6zr4tB352PcCUzX2dlO\nt+Y6ABOA7cAYYBy1M80CHMyxvQW8mLc1A19ExO3AGvLb3JJGkd4qH0dan+NpSfcA7fl8AKOBgUr5\npyYAbV38n8zO4k7DGlkT8LakDuB94DaAiPiclAdsCPA4sDqnlz6fTyPicEQcA3YC13X+Zd7/R0m3\nktZOWURaRGoC6cZeSyWh4GZgRC4/AKzIx1wH/J633w+siYgjOeFgaz72ZmCUpMuB48AmUudxvvOa\nnVPD5Z6yxibpBuAUaZTRDOwH7iJ9gDrWqeoyYCYpZ0+RvFDHO5VPUfvaagMmAyeAT4AW0qhnfhfH\nPNfxuhQRJyT9RBo5fQVsAx4EbqT3JLy0/xGPNKxh5JHDYtLynEFKF70vIv4hJfLr16l6CzAPICJ2\ndlMI7fmYmyLiN9KiODeTpqqKagOeAJA0Gbiy07GnShog6TLgMU6PJNpJ01ttufwssLVOyRutj/FI\nw/q6S3NG1yZSJtLlpKkhgDeB1ZJmARuAI5WdImK/pF107yJEXwNXc/q7hG3AsAu8eS8AVknaQRo5\n/Jzj3SKpBfgm11sSEVtzuR14hdRZHZF0DE9N2UXyI7dmNUgaAHQAIyPicNnxmPUWnp4yq5JfsNsF\nvOEOw+xMHmmYmVlhHmmYmVlh7jTMzKwwdxpmZlaYOw0zMyvMnYaZmRXmTsPMzAr7F05hKLtHQPiz\nAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAADgCAYAAAD/ujrhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd8leX1wL/nZieEETLJBBK2jJCEoUwRHCjDgdY6qpW2\nP1erv9ZBq61WbX91YFu3XbZURQVBQAETprLChiSQAFlABkmAhOx7n98f7w0EcpPcJPfmMp6vn/dz\n7/u+zzjB5D3vc85zzhGlFBqNRqPR2IPJ1QJoNBqN5tJBKw2NRqPR2I1WGhqNRqOxG600NBqNRmM3\nWmloNBqNxm600tBoNBqN3WilobkiEJEKEenTzr5rReTHjpbJzrnbLbdG4wy00tBccojIMyLy9QXX\nMpu5dieAUqqLUupwZ8rpCJwht4i8LyIHRMQiIvfbuP8LESkQkdMi8ncR8XLk/JpLG600NJci64Gx\nIuIGICJhgAcw4oJrsda2mvPZDfwPsOPCGyIyDXgauBaIBvoAv+tU6TQXNVppaC5FtmEoieHW83HA\nGuDABdcOKaWOAYiIEpFY6/d/ishbIrJcRMpFZIuI9G0YXESuE5EMETklIn8FpNE9k4j8WkRyRKRI\nRD4SkW7We/8SkSet38Otcz5sPe8rIqUi0uRvTkRiRWSddb4TIvJpo3vKer+X1VTVcFSKiGrU7gER\nSReRMhFZKSLRzf3jKaXeUkolA9U2bt8H/E0ptV8pVQa8CNzf3FiaKw+tNDSXHEqpWmALMN56aTyw\nAdh4wbWWVhl3YrxB9wCygJcARCQQWAT8GggEDgFXN+p3v/WYhPEW3gX4q/XeOmCi9fsE4HAjeSYA\nG5RSFhuyvAisssoSAfzFxs98zGqq6qKU6gIsBj6xyjwDeBaYDQRZ/y0+buFnb4nBGCuRBnYDISLS\ns53jaS4ztNLQXKqs49wDeRzGg3LDBdfWtdB/sVJqq1KqHljAuRXKjcB+pdTnSqk6YD5Q0Kjf3cDr\nSqnDSqkK4BngThFxt853jXU1MR74P84pnAktyFOHYQrqpZSqVkptbOkHF5GngAHAA9ZLPwVeUUql\nW3+el4HhLa02WqALcKrRecN3/3aMpbkM0UpDc6myHuMBHQAEKaUyge8xfB0BwBBaXmk0VgSVGA9L\ngF5AXsMNZWT0zGvUtheQ0+g8B3AHQpRSh4AzGApoHLAMOCYi/WlZafwKwwS2VUT2i8gDzbRDRG4A\nHgdmKqWqrJejgTdF5KSInARKreOFNzdOC1QAXRudN3wvb8dYmssQrTQ0lyqbgG7AQ8B3AEqp08Ax\n67VjSqkj7Rj3OBDZcCIi0vjcOn7jN/gooB4otJ6vA24DPJVSR63n92GYnnbZmlApVaCUekgp1Qv4\nCfB2g/+lMVbl8y/gDqVUY0WWB/xEKdW90eGjlPq+LT+4lf3AsEbnw4BCpVRJO8bSXIZopaG5JLG+\nZacCT2CYpRrYaL3W3l1Ty4HBIjLbanJ6DAhtdP9j4Bci0ltEumCYgj61moXAUBKPNJp/rfV8o1LK\nbGtCEbldRCKsp2WAAiwXtOkKLAHm2TBfvQs8IyKDrW27icjtzf2AIuIpIt4YqxEPEfFu5KD/CHhQ\nRAaJSHcM384/mxtLc+WhlYbmUmYdEIyhKBrYYL3WLqWhlDoB3A78ASgB4rCuZKz8Hfi3dfwjGDuQ\nHr1AJv9G828EfFuRJxHYIiIVwFLgcRuxGfFAf+CNxruorDIvBv4IfCIip4F9wA0tzLcKqALGAu9b\nv4+3jvUNhi9mDZCLYX57voWxNFcYooswaTQajcZe9EpDo9FoNHajlYZGo9Fo7EYrDY1Go9HYjVYa\nGo1Go7EbrTQ0Go1GYzfurhbA0QQGBqqYmBhXi6HRaDSXFNu3bz+hlApqrd1lpzRiYmJITU11tRga\njUZzSSEiOa230uYpjUaj0bQBrTQ0Go1GYzdaaWg0Gs0lzoIFC4iJicFkMhETE8OCBQucNtdl59PQ\naDSazmRX0S5SC1NJCElgePDw1js4mAULFjB37lwqKysByMnJYe7cuQDcfffdDp/vsss9lZCQoLQj\nXKPRdAa7inbx4MoHqbPU4eXmxQdTP+h0xRETE0NOTlMfdnR0NNnZ2XaPIyLblVIJrbVzqXlKRK4X\nkQMikiUiTzfT5g4RSbMWp/lvZ8uo0Wg0zbHx6EZqLbUoFLWWWlILO/+FNTc3t03XO4rLlIaIuAFv\nYaRwHgTcJSKDLmgTh1FO82ql1GDg550uqEaj0TTD7uJz5dTdxI2EkFZf1B1OVGSk7etRUU6Zz5Ur\njSQgy1pruRb4BJhxQZuHgLeUUmUASqmiTpZRo9FobPL1ka/ZfHwzs2Jn4WHyYFz4OJf4NF76QQK+\nHudf8/X15aWXXnLKfK5UGuGcX3s5n6Y1jfsB/UTkOxHZLCLXd5p0Go1G0wyFZwp5cfOLDA0aynNj\nnmNsr7EcOnWo8wXJ2cTd3im8/+h1REdHIyJER0fz/vvvO8UJDhf/7il3jMppE4EIYL2IXKWUOtm4\nkYjMBeaC85ZkGo1GA2BRFn7z3W+ot9TzyjWv4G5yJzE0kXX56yg4U0CoX2jrgziCmnJY/BPoFsnd\nT3/B3a/5d8q0rlxpHAUaG+MirNcakw8sVUrVKaWOAAcxlMh5KKXeV0olKKUSgoJaTZ2i0Wg07ebj\njI/ZdHwT/5vwv0R1NV5SR4WNAmBbwbbOE2Tls3AqD2a/D16dozDAtUpjGxAnIr1FxBO4E6M+cmO+\nxFhlICKBGOaqC2snazQaTadw+NRh3tj+BuPCx3F7v9vPXu/Xox/dvLqx5fiWzhEkYwXs+Aiu/jlE\nje6cOa24TGkopeqBR4CVQDqwUCm1X0ReEJFbrM1WAiUikoZR6P6XSqkS10is0WiuZOosdTyz4Rl8\n3H144eoXEJGz90xiIjEkka0FW3F67FtFMSx9FEKvgonPOHcuG7jUp6GUWgGsuODac42+K+AJ66HR\naDQu473d75FWksYbE98g0Cewyf3E0ES+zf2W/Ip8Iv1tb4PtMErBV48b/oxZX4G7p3PmaQGde0qj\n0WhaYXfxbj7c+yG39L2FKdFTbLbpFL/Gzv/AgeVw7XMQMqj19k5AKw2NRqNpgcq6Sp7d8CzBvsE8\nnWQzcQUAfbr1oad3T+f5Ncqy4ZunIWYcjP4f58xhBxf7lluNRqNxKa+lvkZeeR5/m/Y3/D2b36Uk\nIiSFJrGtYBtKqfN8Hh3GYobFPwUxwcx3wOS693290tBoNJpm2JC/gYUHF3Lf4PtIDE1stX1SWBLF\nVcUcOX3EsYJ8/2fI3QQ3/gm6O8lfYidaaWg0Go0NyqrLeO7754jtHssjIx6xq09SaBIAW49vdZwg\nBXsh5SUYNAOGznHcuO1EKw2NRqO5AKUUL25+kZM1J/nDuD/g5eZlV79I/0hC/ULZWuAgpVFXDYvm\ngm9PmD4fHGnyaidaaWg0Gs0FLDu8jNU5q3lk+CP0D+hvd7/Gfg2LsnRckJQXoSgNZvwVfAM6Pp4D\n0EpDo9FoGnG84jgvb3mZ+OB47h98f5v7J4UmcbLmJJllmR0T5MgG2PQWJDwIcdd1bCwHopWGRqPR\nWLEoC/O+m4dFWXjpmpdwM7m1eYyzfo2OmKiqT8GXP4OAPjD1xfaP4wS00tBoNBor/077N9sKtvF0\n0tNE+Ee0a4ywLmFE+kd2zBn+9VNw+piRjNDTr/3jOAGtNDQajQbILMvkzR1vMilyEjNjZ3ZorKTQ\nJFILU6m31Le9c9oS2P0xjP9fiOj8SoCtoZWGRnMJsatoFx/u/ZBdRbtcK0jeVtjwmvHpIrbnlPHW\nmiy255R1eKxacy3PbHgGf09/nh/zfIcD85JCk6ioqyCjNKNtHcsL4KufQ68RMP6XHZLBWeiIcI3m\nEmFX0S4eXPUg9eZ6PN08+WDqBy4pL0reVvjXdDDXg5sn3LcUIpM6VYTtOWXc/eFmausteLqbWPDj\n0YyM7tHu8d7e9TYHyg7wl8l/oadPzw7LlxR2zq8xJHCIfZ2UMrLX1lXCrPfBzaP1Pi5ArzQ0mkuE\njUc3UmuuxYKFOksdqYWprhFkz6dQXwPKDOZayN7Q6SJsPlxCTZ0Fi4LaegubD7e/YsKOwh38fd/f\nuTXuViZGTnSIfIE+gfTt1rdtfo3t/4DMVXDdCxDUzyFyOAOXKg0RuV5EDohIlog0mwlMRG4VESUi\nF5+BT6PpJBqbTNxN7iSEuOjPofr0ue9unkYCvU5mdJ+eZ+PcRITRfdq3OjhTd4ZnNz5LeJdwfpno\nWHNQYmgiO4p2UGeua71xySFYOQ/6TILEhxwqh6NxmdIQETfgLeAGYBBwl4g0yfUrIv7A40AnlcTS\naC5ODp08hJsYW0AfHPKga0xTSsHR7WCVg1v+3OmmKYC4kC6IgEnA083EwLD2lTv9v23/x/Ezx3l5\n3Mv4eTh2l9KosFFU1Vexr2Rfyw3N9UatbzdPmPm2S5MR2oMrpUsCspRSh5VStcAnwAwb7V4E/ghU\nd6ZwGs3FRI25ho1HNzIrbhbhXcLZXrTdNYKcOAilh2DCU2DygGOuccivPVCM2QK/nDaAqjozK/YW\ntHmMlNwUFmUu4oEhDzAieITDZUwISUCQ1lOlb3wD8rfBTa9B114Ol8PRuFJphAN5jc7zrdfOIiLx\nQKRSanlLA4nIXBFJFZHU4uJix0uq0biYzcc2U1VfxZSoKcyMncmW41vIL8/vfEHSvzI+4++BATfC\nnk+gvrbTxVi5v4DALl7MHd+HPoF+LNyW13qnRpRUlfC7Tb9jQMAA/meYc2pTdPfuTv+A/i0XZTq2\nE9b9AYbcBlfd5hQ5HE2rSkNEnrBxPCgiTl0bi4gJeB14srW2Sqn3lVIJSqmEoKAgZ4ql0biElLwU\nunh0ISk0iZmxMxGEL7O+7HxBMpZD+EjjjXjEvVBZAgdWtN7PgdTUm1mbUcR1g4JxMwm3J0SyNbuU\nw8UVdvVXSvHbTb+loraCV655BQ8n7lJKCk1iV9Euasw1TW/WVRnJCP2C4aZXnSaDo7FnpZEA/BRj\nFRAO/AS4HvhARH7VgbmPAo0Tw0dYrzXgDwwB1opINjAaWKqd4ZorDbPFzNq8tYyLGIeHmwehfqGM\nDR/Ll1lfYraYO0+QU0fh2A4YMN047zsJukbAzn93ngzA91klnKk1M3VwKAC3jgzHzSQsTLVv5bU4\nazFr89byePzjxPaIdaaoJIUmUWupZXfR7qY3v/2tYe6b+Tb4tH+7cGdjj9KIAOKVUk8qpZ4ERgLB\nwHjg/g7MvQ2IE5HeIuIJ3AksbbiplDqllApUSsUopWKAzcAtSikX7TPUaFzDruJdlFaXMjlq8tlr\ns2NnU1hZyKbjmzpPkIYVRYPSMLnB8B9AVjKc6jxT2aq0Arp4uTO2r7FjKtjfm0n9g/liRz515pYz\ny+aV5/HHrX8kKTSJHw76odNlHRkyEjdxY0vBBX6NQ2tgy7sw6qeG8r2EsEdpBAON11Z1QIhSquqC\n621CKVUPPAKsBNKBhUqp/SLygojc0t5xNZrLjeTcZDxMHowLP7e1dVLkJHp49WBR5qLOEyT9Kwjs\nd34MwYi7AQW7/tspIpgtitVphUzsH4SX+7lkgnMSIykur2FNRlELfc3M2zgPk5j4/dW/xyTOd+l2\n8ezCoJ6Dzo/XqCqDL//H+Lec8luny+Bo7PlXWwBsEZHnReR54DvgvyLiB6R1ZHKl1AqlVD+lVF+l\n1EvWa88ppZbaaDtRrzI0VxpKKVJyUxgdNvq8LaEebh5M7zudNXlrKK0udb4gVWWQvREG3HT+9R4x\n0HuCYaKyOKB+RCvszC3jREXtWdNUA5P6BxHk78XC1OYd4v/c/092Fu3k2VHPEtYlzNminiUpNIl9\nJ/ZRWVdpXFj+v3CmCGa9Bx4+nSaHo2hVaSilXsTwY5y0Hj9VSr2glDqjlLrb2QJqNFcyB8sOcrTi\nKNdGXdvk3uzY2dRb6vnq0FedIMgqIwJ8wM1N78XfCydz4cg6p4uxKq0QDzdhUv/zN7y4u5m4bWQE\naw4UU3S66e78jNIM/rrrr1wXfR3T+0x3upyNSQpLol7Vs6NoB+z9HPZ9DhOehvD4TpXDUdi7PtsB\nfAYsBopEJMp5Imk0mgZSclMQhAmRE5rci+0Ry9CgoSzOXIxSyrmCZHwF/mFGIr0LGTAdvLs73SGu\nlGLl/gLG9g3E37vpjqc7EiIxWxSf7zjfv1JjruGZDc/Qw6sHz41+rsPJCNvKiOARuJvc2ZqTAsuf\ngIhEuOYXnSqDI7Fny+2jQCGwGlgGLLd+ajQaJ5OSl8Lw4OEE+gTavD87djaHTh1iz4k9zhOirspw\ndve/0Xa0soc3DJ0D6cug0nmmsoOFFeSUVDJ1cIjN+70D/UjqHcBnqfnnKdG/7PgLWSezeOHqF+ju\n3d1p8jWHj7sPQwOHsjVzKZjrDLOU26WbK9aelcbjQH+l1GCl1FCl1FVKqaHOFkyjudLJL88nozTD\npmmqget7X4+Puw+LMxc7T5BDa4zMqwNbMOvE3wPmGtj7mdPEWLm/ABG4bpBtpQEwJyGSIyfOsPWI\noby2Ht/KR2kfMaf/HK4Jv8ZpsrVGktmNdFXN6Sm/gZ59XSaHI7BHaeQBp5wtiEajOZ81eWsAmBw5\nudk2fh5+TIuZxtdHvj7naHU0GcvBqxtEt/DQDb0KwobDjn8b+amcwKq0AkZEdifY37vZNjdeFYa/\nlzufpuZRXlvOvO/mEdU1iidGPuEUmeyi+CBJ6auwiLA9bIDr5HAQ9iiNwxgBds80jgp3tmAazZVO\ncm4ycT3iiOwa2WK72XGzqayvZGX2SscLYa434jP6TQN3z5bbxt8DhXvhuOPzUeWXVbLv6GmmXbBr\n6kJ8PN24eXgvVuw9zgubXqa4spiXr3kZXw9fh8tkF+Y6WDyXYRYPvEyebG0ppcglgj1KIxfDn+GJ\nEaXdcGg0GidRWl3KzqKdLa4yGhgeNJyYrjHOidnI2wxVpU232tpiyG3g7g07PnK4GKvTCgGabLW1\nxZyESOq9d/NN9jIeGvoQQ4NcaE1f/yc4thPPm+czPGQEWwtcV+nQUbTqjVFK/a4zBNFoNOdYl7cO\ni7K06M9oQES4Ne5WXtv+GodPHqZP9z6OEyRjObh5QeyU1tv6dIdBM4xtpVNfAk/Hvd2v2l9Iv5Au\n9A5sPX15WEAtvr2+xMMczdyhcx0mQ5vJT4X1r8Kwu2DQDEbVF/HnnX+mtLqUAO8A18nVQZpdaYjI\nfOvnVyKy9MKj80TUaK48UnJTCPMLY0CAfTbwm/vejLu4szjLgQ5xpYwdUX0ngVcX+/rE3ws1pyHd\ncY+IsjO1bM0uZeqg1lcZSime3/Q8Jrc6yrJvJauwymFytInaM0Yywq694IY/AkZRJoDUgks7Rrkl\n81TDputXgddsHBqNxglU1lXy/bHvmRw12e6Ygp4+PZkQOYGlh5ZSZ7GjUpw9FOyFU7nnck3ZQ/TV\nENDHcIg7iOSMIswW1exW28Z8dvAzNh7dyCPDfo67OZRP25gy3WGs+g2UHoaZ74B3NwAGBw7G1933\nkjdRNas0lFLbrZ/rbB2dJ6JGc2Xx3bHvqLXU2mWaaszsuNmUVpeyPm+9YwTJWAZigv432N9HBEb8\nEHI2GiVMHcDK/QWEdfPmqvBuLbbLOZ3Dq6mvMrbXWB4YejdTB4fw5a6j1NR3YiZggMzVkPo3GPMw\n9D6XL8zD5EF8SHzrRZkucloyT+0VkT3NHZ0ppEZzJZGSm0J3r+5triY3ttdYgn2CWZTlIId4xnKI\nHA1+tgMLm2XYDwxls/M/HRahqtbMhsxipg4KaXHVVW+p59kNz+Jh8uCFsS9gEhNzEiM5WVnHqv2F\nHZbDbipLYcnDEDwIJv+mye1RoaPIPp1NUWXziRUvdloyT00Hbga+sR53W4+vgc6tuqLRXCHUWepY\nl7+OCRETcDe1LWrY3eTOjNgZbDy6kcIzHXxQlh6Bwn0tB/Q1R9cwiJtqZL4113dIjHUHi6mus7S6\n1fbDvR+y58QefjP6N4T4GWasq/sGEt7dp/NMVErBV48bimP2+0ak/AUkhRn11C9lE1VL5qkcpVQO\ncJ1S6ldKqb3W4ylgqiMmF5HrReSAiGSJyNM27j8hImnW1U2yiEQ7Yl6N5mIltSCV8try82pntIVZ\nsbOwKAtLDi3pmCAZ1grL9my1tcWIe6CiALK+7ZAYq9IK6ObjQWLv5ncb7T+xn/d2v8eNvW/k+t7X\nn71uMgm3J0SwMesEeaVOCnxszJ5PjQ0Ak+cZwY426N+jP/6e/i2XgL3IsSdOQ0Tk6kYnY+3s19qg\nbsBbwA3AIOAuERl0QbOdQII1bcnnwP91dF6N5mImJTcFH3cfxvYa267+kV0jSQpNYnHmYiyqA6nK\nM5ZDyFVG6vP20G+aUca0AzEb9WYLyelFXDswGA8324+cqvoqntn4DAE+ATw76tkm929PiEQEPtvu\n5CJRJ/NgxS8hagyMfazZZm4mNxJDEh3u11iwYAExMTGYTCZiYmJYsGCBQ8dvjD0P/weBt0UkW0Ry\ngLeBBxwwdxKQpZQ6rJSqBT4BZjRuoJRao5RqeEXYjFFFUKO5LLEoCyl5KYztNRZv9+ZTZbTGrLhZ\n5Ffkt39rZ0Ux5G5q/yoDwM0Dht0JB7+B8vaZyrYeKeVUVV2zW213Fe3ioVUPceTUEX5/9e/p5tXU\nUR7e3YdxcUF8npqH2eKkTMA5m+Gf043o75nvGBUNWyApLImjFUc5WnG0xXb2smDBAubOnUtOTg5K\nKXJycpg7d67TFIc99TS2K6WGAcOAoUqp4UqpHQ6YOxwjr1UD+dZrzfEghj+lCSIyV0RSRSS1uLjY\nAaJpNJ1PWkkaRZVF7TZNNTAlagr+Hv7td4gf/BpQ7fNnNCb+XqMGx+6P29V9VVohXu4mxvdr6ojf\nVbSLB1Y+wO7i3biJGz7uzRczmpMQybFT1WzMOtEuOVokbyv8azqczAZLPZxp/fmTFGr1axx3jF9j\n3rx5VFaeb36rrKxk3rx5Dhn/QuwyM4nITRiFmB4XkedE5DmnSNP8/D8EEoA/2bqvlHpfKZWglEoI\nCgqy1USjuehJzk3GTdyYENG0dkZb8Hb35sY+N/Jtzrecrj3d9gHSl0H3KAgZ0iE5CIwzzDU7257E\nUCnFqv0FjO8XhK9n0w0B2wq2nRePklrY/KpqyqBgevh6sNAZDvHMVdAgh7JA9oZWu8R2jyXAO8Bh\nzvDc3Nw2Xe8o9tTTeBeYAzwKCHA74AiH9FGgcSa2COu1C+efAswDblFKtbsmuUZzsZOSm0JCSIJN\nM0tbmR03mxpzDSsOt3GjY005HF5rBPQ5oljRiHugJAtyN7ep276jpzl2qpqpzaRBrzEbjwJB8DB5\nkBCS0OxYXu5uzBoRwaq0AkrP1LZJjlYpPWx8igncPCFmXMvtMdK+JIYmsrVgq0OKZ0VG2k5oGRXl\nnFp59qw0xiql7gXKrHmoxgD9WuljD9uAOBHpLSKewJ3AebkHRGQE8B6Gwrh0NzZrNK1w5NQRDp86\n3GHTVAODeg5iQMCAticxzPrWqIvRlijwlhg8Ezz921zVb+X+AkwCUwY2VRpV9VV8mfUlfbr24dER\nj/LB1A8YHjy8xfHmJEZSZ1Ys2uFAh3jpEUj/ynD6T/413LcUIpPs6poUmkRRZRE5p3M6LMYPH30a\ncfc675qvry8vvfRSh8e2hT1KoyF5S6WI9ALqgA5XZVdK1QOPACuBdGChUmq/iLwgIrdYm/0J6AJ8\nJiK7dM4rzeVKSm4KgMOUBhjbb9NL00kvSbe/U8Zy8O0JUaMdI4SnHwyZDfsXQ7X9prJVaQUk9Q6g\nh1/TdOz/SfsPhZWFPDf2OR4a+lCrCgOgf6g/wyK7szA1z3GlcZNfAJM7TH8Txj1pt8KARn6NDpqo\n6s0WtpoG0f+2J4mKikJEiI6O5v333+fuu+/u0NjNYY/SWCYi3TEe4DuAbKB9nq0LUEqtUEr1U0r1\nVUq9ZL32nFJqqfX7FKVUiNX5PlwpdUvLI2o0lyYpeSkM7jmYUL/Wk/LZy019bsLT5Gn/aqO+Fg6u\nMtKGtLIDqE3E32tU/tv3hV3Nj5w4w8HCCpsBfSeqTvDh3g+5NupaRoaMbJMYdyZGcrCwgl15J9vU\nzyZ522D/ImN7bde2v0NHd40m2De4w0pjYWo+mUUVvDHvEXJycrBYLGRnZztNYYB9u6deVEqdVEp9\ngeHLGKCUahofr9Fo2kVRZRF7ivc4dJUB0M2rG1Oip7D8yHKq66tb75C9AWpOOc401UD4SAgaaLeJ\natX+AsB2Wdd3d79LrbmWn8f/vM1iTB8aho+HGwtTO+gQVwpWzYMuITD20XYNISIkhSaxrWBbu1c+\nFTX1vL76IAnRPVqNmHck9jjCfUXkNyLygdURHSwiDv6t0miuXNbmrQVaLuvaXmbHzaa8tpzk3OTW\nG2csBw8/6DPRsUKIGFX9jm6HwrRWm69KK2Rwr65E9Di/Hsfhk4f5/ODn3NH/DmK6xbRZDH9vD24a\nGsZXu49TWduB9CbpSyFvC0yaZ3/KeBskhSZRWl1K1smsdvV/f90hTlTUMO+mgXZnQ3YE9pin/gHU\nYDjAwdjh9HunSaTRXGEk5yYT3TWavt37OnzsxNBEwruEszizlTobFouhNGKvBY/mYx7azdA7weTR\n6mqjqLyaHbllNt+cX9/+Oj7uPvx02E/bLcacxEgqaupZvud4+waor4XVzxsJCUf8sN1yAIwKGwW0\nz69RcKqa9zccZvrQMEZE9eiQHG3FHqXRVyn1fxgOcKwR2p2n1jSay5jTtafZenwrkyPtr53RFkxi\nYlbsLLYUbCHvdAtmmWM7jFxRA292uAwA+PU0Isx3fwL1ze+c/zatCKVoUjtjy/EtrMtfx0NDH6KH\nd/sfkgnRPegT5Nf+JIapf4OyI3Ddix32+/Tq0ovwLuHtCvJ7bdUBLBZ46nr7inQ5EnuURq2I+AAK\nQET6Yqw8NBpNB9mQv4F6Ve9wf0ZjZsTOwCSmlqv6pX9l7ASKu85pchB/j1Fv/EDzsSMr9xcQ3dOX\n/iH+Z6+KPlytAAAgAElEQVRZlIXXUl8jzC+Muwd2zMErItyREElqThlZRRVt61xVBuv+CH0mGSsy\nBzAqbBTbCrdhtthf8yPt2Gk+35HP/VfHEBnguJK69mKP0ngeIzV6pIgsAJKBXzlVKo3mCiElN4VA\nn0CGBg112hyhfqGM7TWWJYeWNP9wylgOMdeAjxNNHX0mQdeIZqv6lVfX8f2hE01qZyw/vJz00nQe\nj38cLzcvm33bwuz4cNxMwmdtdYhveA2qTsLUFx0T+IhhPiyvLedA2QG72iuleHlFOt18PHh4YqxD\nZGgrLSoNMf7PZQCzgfsxttomKKXWOl0yjeYyp8Zcw8ajG5kUOQmTdDhxdIvcGncrRZVFfHfsu6Y3\niw9CSabjd01diMkNRtwNh1LgZNMUF2sPFFNnVuf5M6rrq3lzx5sM7jmYG3q3oYJgCwT7e3PtgGC+\n2JFPndnOTMBl2bDlPRh+d7Npz9tDW/NQrTtYzMasEzw2OY5uvh4Ok6MttPibqoy9YCuUUiVKqeVK\nqWVKKSdk/dJorjy2HN9CZX2lU01TDUyImECAd4Bth3jGV8ZnR7La2stwq3lp13+b3Fq5v4DALp7n\nOXb/k24E8j2Z8KRDFeucxEhOVNSSkmFnoonkF0DcjFoZDiTYN5iYrjFsKWg9VXq92cLLK9KJ7unL\nD0e7rrSQPf8XdohIotMl0WiuMFJyU/Dz8Dv7tulMPNw8uLnPzazNW0tJVcn5NzOWG7EUXXs5XQ56\nREOfCbBzgbFjy0pNvZm1B4qZMjAEN5Nh+impKuHDvR8yKXISiaGOfQRN6BdEsL+XfUkM81ONwMSx\njzrl32hU2Ch2FO44LwGjLT7fns/Bwgqevn4Anu7OXZm2hD0zjwI2icghawW9vbpGuEbTMcwWM2vy\n1jA+fDyebk1TZTiD2XGzqVf1LDu87NzF08eM+InOWGU0EH8vnMqFI2vPXvr+UAkVNfXnmabe2f0O\n1fXV/GLkLxwugrubidtGRrDmQBEFp1oIfFQKVs4zCkpd/bjD5QDDRFVZX8n+E/ubbXOmpp7XVh9k\nZHQPrh/SeYF8trBHaUwD+gKTMWqGN9QO12g07WR38W5Kq0s7xTTVQJ/ufRgWNIwvMr84F4V8tqxr\nJ/5JD5huONwbOcRX7S/Ez9ONMX17AnD4lBHId3u/2+ndrbdTxLgjIRKLgi9aSmKY/hXkbTbMUh0I\n5GuJhlVUSyVg31t/mOLyzg/ks4U9aURybB2dIZxGc7mSnJuMh8mDa8Kv6dR5Z8fN5sipI+wu3m1c\nyFgGPeMgyBGJq+3E3QuGzjHmrizFbFGsTitk4oBgvD2M2Ic3Ut/Ax92Hnw3/mdPEiAn0Y1TvABam\n5mGxVdWvvha+fd5IgTK8Y4F8LdHDuwf9evRr1q9RcKqa99cf4qahYcR3ciCfLVxnGNNorlCUUqTk\npjAqbBRdPJ3z9toc02Km4ePuYyQxrCqD7I2da5pqYMQ9YK6FPQvZlVfGiYqas7Uzth7fytr8tfz4\nqh8T4B3gVDHmJEaSU1LJliOlTW+m/t2olzH1RXBrWgjKkSSFJrGraBe15qb1Pl5ffQCzRfHUtM4P\n5LOFS5WGiFwvIgdEJEtEnrZx30tEPrXe3yIiMZ0vpUbjWDJPZpJfkc+1UY4JEGsLfh5+3ND7Br7J\n/oYzGcuMEqXOigJvidAh0GsE7PiIVfsK8HATJg0IxqIsvJr6qkMC+ezhhiFh+Hu7N01iWHUS1v3B\nyMMVO8XpciSFJlFjrjm3ArSSfvw0n23P574xMUT17PxAPlu4TGmIiBvwFnADMAi4S0QGXdDsQYzi\nT7HAG8AfO1dKjcbxJOcmIwgTIye6ZP5ZsbOoqq9iZdrH0CUUesW7RA5G3ANF+8neu5ExfQPp6u1x\nNpDvsfjH8Hb3droIPp5uzBjeixV7j3OqqtHupYZAvuscF8jXEiNDR2ISU5M8VC+vSKertwePTo5z\nugz20qzSEJFyETnd3OGAuZOALKXUYaVULfAJMOOCNjOAf1m/fw5cK672Amk0HWRN7hqGBQ0j0CfQ\nJfMPCxpGn669WXTmsGGaMrno3fGq27C4ezO+4humDgqhur6aP+/8M4N6DuLG3jd2mhhzEqKoqbew\ndPcx40JZDmx5F4b/AMKcF6nfmK6eXRkYMPC8IL91B4vZkHmCx651XSCfLZr9bVFK+SulugJvAk8D\n4Rh1vJ8C5jtg7nCg8Zow33rNZhtrpb9TQM8LBxKRuSKSKiKpxcXFDhBNo3EORyuOkl6a7hLTVAMi\nwuzug9jt5cGhqLYVMnIo3t04GDCZm92+Z2qcP/9J/w8FZwr434T/dXqEfGOGhHdlYFjXczEbDYF8\nkxwbyNcaSWFJ7Dmxh6r6KswWxcvLjUC+e1wYyGcLe/7P3KKUelspVa6UOq2UeoemKwKXopR6XymV\noJRKCAoKcrU4Gk2zrMldAzi2rGt7mH6yBHelWFTVwYJEHeSf1RPoKlW4H1nEh3s/ZGLkRIcH8rWG\niDAnIYK9R09xeNc62Pc5jH0Eul34DutckkKTqLfUs7NoJ59vz+NAYTlPuTiQzxb2SHNGRO4WETcR\nMYnI3cAZB8x9FIhsdB5hvWazjYi4A92AC8JZNZpLh+TcZGK7xxLVNcp1Qpjr6ZmZzET3AL46soI6\nc8uRyM7i6MkqPimK4KRPFO/s+5vTAvnsYeaIcDzdBbfVv3ZqIF9LxAfH4y7ufJe/mddWHSQ+qjs3\nuDiQzxb2KI0fAHcAhdbjduu1jrINiBOR3iLiCdwJLL2gzVLgPuv324AU5bCq8BpN51JWXcaOoh0u\nX2WQtwUqS5jVezplNWWszV/rEjFW7y8AhCODb+Yzyrktaip9uvVxiSzdfT35ZVQW0Wf2UDf+afDy\nb72Tg/H18GVI4BC+ztpIUXkN824a5PJAPlvYE9yXrZSaoZQKVEoFKaVmKqWyOzqx1UfxCLASSAcW\nKqX2i8gLInKLtdnfgJ4ikgU8geFb0WguSdbmrcWiLC71ZwBGUJ2bF1fHzyXYN9iI2XABK/cXEhfc\nhX94luCtFD+rcaEZpr6WH5Z/yEFLOF97OH+LbXMMCYinqDaLaUO6MTLa9YF8trCnRng/EUkWkX3W\n86Ei8mtHTK6UWqGU6qeU6quUesl67Tml1FLr92ql1O1KqVilVJJS6rAj5tVoXEFKXgqhfqEMDBjo\nOiGUMpRGn4m4+XRnZuxMvj/2PQVnCjpVjLIztWzNLmVo3AnWHP+eH7uH0nPvIjB3oHZ3R9j+D3zK\nc/jA50d8uqOdpWAdQGZOKCKKKfGO8AA4B3tU+wfAM5wr97oHw5Sk0WjspLKukk3HNjmtrKvdFO4z\nalkMNGpnzIydiUVZWJK1pFPFSMkowmwxk1n3MSG+Ifxw5KNQUQiZqzpVDsCIx1j7B+g9gcjEGXyX\nVUJeaWWni5F+/DTJu30w4UH2mYs3J6w9SsNXKXVhhRAXvQ5oNJcm3x/7nhpzjetNU+nLQEzQzyho\nFOkfyajQUSzOWoxF2VmQyAGs3F9AYEgaR8oP8Hj843j3v8lwQO+0XdXPqWx83UipMvX33JYQiQht\nr+rnAF75OgN/Tx+GBw1rEuR3MWGP0jhhrQveUCP8NsB16zeN5hIkJTeFbl7diA9xUfR1AxnLIXI0\ndDm3NX1W3CyOVhzttAdVVa2Z9VnHMPX8hoEBA7mpz03g5gHD74KDK6G8E01lZTmw+V0YdheEDaVX\ndx/GxwXx2fZ8zLaSGDqJdQeLWX+wmMeujWNM+CgOlB7gZPXJTpu/LdijNB4G3gMGiMhR4OeA81JP\najSXGXWWOtbmr2VCxATcTc5NfNciZdlQuLdJgsJro67F39O/0xzi6zOLsfhvoEqdOD+Qb8S9oMyw\n++NOkQOAFGuakMnn3LRzEiM5fqqa9ZmdEyhstiheWZFOVIAv94yJZlTYKBSK1MLUTpm/rdize+qw\nUmoKEAQMUEpd44jdUxrNlcL2wu2U15a7fqvt2doZ5ysNb3dvbup9E8k5yZyqOeV0MZbty8QrcC3j\nwyeQFNaoamFgLESNhZ3/MRz2zubodtj7GYw5P5BvysAQAvw87avq5wC+2J5PRoERyOfl7saQnkPw\ncfdhy/HWS8C6Ant2Tz0uIl2BSuANEdkhIlOdL5pGc3mQnJOMt5s3Y3uNda0g6csgZAgENC1qdGu/\nW6m11LL88HKnilBvtrCuaAFiquXJhCeaNoi/B0qyIHeTU+UwKvL9GvyC4Jqfn3fL093E7BHhfJte\nSElFjVPFqKyt59VVBxgR1Z0brzIC+TzcPIgPjm+xKJMrscc89YBS6jQwFSPv0z3AH5wqlUZzmaCU\nIiUvhbG9xuLj7uM6QSqKjQp0zdTOGBAwgIEBA1mctdipYixN24XFfxOjg26kT3cbgXyDZoCn/3lV\n/ZxCxnLI/R4mPmMzkG9OYiR1ZsXinRcmqXAsH6w/QlF5Db++oCJfUlgSh04d4kTVCafO3x7sURoN\nP8mNwEdKqf2Nrmk0mhZIK0mjqLLI9aapg9+AshilVpthdtxsMkozSCtJc5oY7+39K1g8eO6aZtKF\nePrBVbfC/sVQ7SRTmbkOVj8Hgf0h/j6bTeJC/BkR1Z1Pt+XhrCQURaereW/9IW68KpSR0ecXm0oK\nNcx2F+Nqwx6lsV1EVmEojZUi4g903t48jeYSJjk3GTdxY0LEBNcKkrEMukVB6FXNNrmxz414uXk5\nzSG+rWAbx+q2Eek2nYiuwc03HHEv1FfBvi+cIgep/4DSQ61W5JuTEElmUQU785yzi+mNbw9SZ7bw\nKxsV+QYEDMDfw/+i9GvYozQexEjfkaiUqgQ8gR85VSqN5jIhJTeFkSEj6e7d3XVC1FTAoTVGQF8L\ngYVdPbsyJXoKKw6voLq+2qEiWJSFlzb9CUtdN37YWkW+8HgIHuQcE1X1KVj7CvQeD3Etu2anD+uF\nr6cbn251vEP8QEE5n27L457RMcQE+jW5725yZ2TIyIsyXqOlIkwN6m+49bOPiMQD0YAL9w1qNJcG\n2aeyOXTqkOtNU1nfgrnGrlrgs2NnU15Xzuqc1Q4V4esjX3PodDp1xVO5YXAr9SFEIP5eOLYDCvc7\nVA42nAvka60iXxcvd266Koxle45xpsax8cwvr0ini5c7j06ObbZNUlgSeeV5HK+4uMLiWlppPGn9\nfM3G8aqT5dJoLnlS8lIAmBx5EWy19e1pBPW1QkJoAhFdIhzqEK8x1/Dmjjdxr49geMC1BPh5tt5p\n6Bxw83TsauNkLmx+B4bdCWHD7OoyJzGSM7Vmlu9x3IN7/cFi1h0s5tHJcfRo4d+iwa9xsa02Wqrc\n95D1c5KNw8V/BRrNxU9ybjKDeg4irEuY64SorzWirPvd0KL9vgGTmJgdN5ttBdvIO+0Ys8yC9AUc\nP3Oc00ev5/rBvezr5BtgrIz2fAL1Dtr2mtw0kK81Rkb3oG+QH586KK2I2aJ4eUU6ET18uHdsyyuu\nuB5xdPfqfukoDRGZ3dLRkUlFJEBEVotIpvWzSQ5gERkuIptEZL+I7BGROR2ZU6PpTIori9lTvMf1\nq4ycjVBz6myCQnu4pe8tmMTkkNVGWXUZH+z5gBifBMyVsVw3KMT+ziPuMUxJGQ6IHTm6A/YuhDEP\nQ7cIu7uJCHMSI9meU0ZWUXmHxfhix/mBfC1hEhOJoYlsLdjqtB1c7aEl89TNLRz2/wba5mkgWSkV\nByRju05GJXCvUmowcD0wX0Rc6E3UaOxnTd7FUdaVjOXg4Qt9JtrdJcQvhGvCr2FJ1hLqLR2z5b+7\n+12q6qugdDqDwroSGeBrf+c+k6BbJOz4qEMyoBSs+jX4BsLVP2+9/QXMjo/A3SQsTM3vkBiVtfW8\ntuoAwyO7M32ofavPpNAkCs4UkF/esbkdSUvmqR+1cDzQwXlnAP+yfv8XMNPG/AeVUpnW78eAIoxU\nJhrNRU9KbgpR/lHEdm/e0el0LBZDacReCx5tCyycHTuboqoivjv6Xbunzz6VzcIDC7kxZib7cryZ\nNriNpUtNJhh+Nxxea/gj2suBFZDzHUx6Bry7trl7YBcvrh0YzBfb86mtb3+0wYcbjlB4umkgX0s0\npFnZUnDxbL21q1SWiNwkIr8Skecajg7OG6KUavAsFQAtrllFJAljq++hDs6r0Tid8tpythRsYXKU\ni2tnHNsJ5cdhwM1t7jo+cjwB3gEditmYv2M+nm6e9HafhVIwdXAbTFMNjLBuz925oH1CnA3k6wfx\n97dvDAyHeMmZWlIyCtvVv6i8mnfXHeKGIaEkxAS03sFK7669CfIJYuvxi8evYU/uqXeBOcCjGJHg\nt2Nsu22t37ciss/GMaNxO2vN72YNdiISBvwb+JFSthP+i8hcEUkVkdTi4s7JTKnRNMeG/A3UW+pd\nXzsj4yswuUO/tqeK8zB5cEvfW1ifv75dqSy2F24nOTeZB696kO8O1BAV4MuA0HbU3e4eZZjWdi0A\ni7nt/bf/08hldV3LgXytMT4uiJCuXnzaziSGb6zOpLbewlPXNw3kawkRuej8GvasNMYqpe4FypRS\nvwPGAP1a66SUmqKUGmLjWAIUWpVBg1IosjWGNVHicmCeUmpzC3O9r5RKUEolBAVpC5bGtaTkpdDT\nuydDg4a6VpCM5RBzDfi0r9b0rLhZ1Kt6vjr0VZv6WZSFV7e9SrBvMLP63Mn3WSVMHRTS/lVX/L1w\nKs8wU7WFhkC+mHHQb1r75rbi7mbitpERrDtYTMGptgU+Hiws59NtudwzJtpmIF9rjAobRUl1CYdP\nXRzVru1RGlXWz0oR6YVR9rWjewiXAg1JX+4DmtSaFBFPYDFGvqvPOzifRtMp1Jhr2JC/gUlRk87V\niXAFxQfhxMEWc021Rp9ufRgRPIJFmYva9Ja7Mnsl+0r28diIx9h8qIJas4VpQ9roz2jMgJvAJ6Dt\nVf02vgGVJXYF8tnDHQmRWBR8vr1tq41XVqTj5+XOY5Pj2jVvYmgicPHEa9jzW73MumvpT8AOIBvo\naJWUPwDXiUgmMMV6jogkiMiH1jZ3AOOB+0Vkl/UYbns4x7A0aynv7X6PXUW7nDlNy+RugZTfQ55r\nf0G2Hinh9VUH2J5T5lI5LjW2HN9CZX2l67faZiwzPvvf2KFhZsXOIvt0NruK7fubqDHXMH/7fAYE\nDGB6n+msSiukp58n8VHtW+0A4O5lBPtlLIczJfb1OZkHm96GoXdCL8c8NqJ7+jGmT08WpuZjsbOq\n38bME6w5UMyjk2NbDORriYguEfTy63XR+DXsKcL0olLqpFLqCwxfxgCl1G86MqlSqkQpda1SKs5q\nxiq1Xk9VSv3Y+v0/SikPpdTwRofTnuZfH/maed/N461db/HQqoc6T3GY6w2H5aa34B83wt+nwvo/\nwT9v6lTFUV1nZvPhEv6SnMmMv27kjvc28+eULH7wwWatONpASm4Kfh5+jAob5VpBMpZDr/jzigu1\nh2kx0/B197XbIf7f9P9y7Mwxnkx4knoLrMkoYsrAENxMHXzTj78HzLWw51P72tuoyOcI5iRGklta\nyeYjrSsvs0Xx++VpRiDfmJh2z9ng19hWuK1T67g3R6ueIRFxA24CYhraiwhKqdedK1rncrTCyJuv\nUNSaa0ktTGV4sBMWNnXVRsWw3O8hZxPkbYHaCuNe46R25lo48DVEJtkep4Ocrq5je04Z246UsvVI\nKXvyT1FrtiACgY3eiGrqLXyXdYKR0R14U7xCMFvMrMlbw7jwcXi6te+t0iGcPgZHU2Fyh97tAPD1\n8OWG3jew4sgKnkp8ii6eXZpt2xDINy58HKPDRrP2QBEVNfVMG9KOXVMXEjLYUII7/w2jf9ayuenY\nTkO5XPMEdI/s+NyNuH5IKP5L3Pl0Wx5j+wa22HaRNZDvz3eNwNuj5UC+1hgVNoolh5ZwsOwgAwLa\n5kx3NPZsJ/gKqAb2chmnRE8IScDLzYsacw0KxVU9m08h3SaqTxsrhtzvIed7Q2GYa417wYOMPDhR\nYyB6LJzKh3/dYtxXZsj+zghMcoA99kRFjaEgsg0lkX78NBYF7iZhSHg3fnR1DIkxASTE9OBQ8Rnu\n/nAztfUWLAqyT5zp8PxXAntO7KG0utT1AX0HVhifA9u+1dYWs+Jm8UXmF3yT/Q239but2Xbv7XmP\nM/VneGKkUZFvVVohfp5urT5c7Sb+Hlj2CyO6O2Kk7TYNFfl8A6G5mh0dwNvDjZnDw/k0NY8XKuvo\n5uths11VrZlXVx1gWGR3brYzkK8lGvwaW45vuSSURoRSysXbQJzP8ODhfDj1QxZnLmZR1iJW565m\nVK92mBjOnDCUQ+4mI6CoYK9R/EbcDNtq0lyIvhqiRhv5dRrTtRfctxSyNxi2281vGVsGE9qeiT6/\nrJKtR0rZll3KliOlHC42HvzeHiZGRPbg0clxJPUOYERUd3w9z/81GBntyYIfj2bz4RJ25JTx5a6j\n3DUqisQ27C+/EknOScbd5M648HGuFSR9GfSMNWITHMDQwKH07daXxZmLm1UaOadz+DTjU2bHzSa2\nRywWi2J1WiET+wd3+C37LENuhW+ehZ0fNa80DnxtpE658dV2BfLZw5zESP69OYclu482a3b6cMNh\nCk/X8Je74h0SqxPqF0p012i2FWzjvsG2C0d1FvYoja9FZKpSapXTpXExw4OHMzx4OF08u/BR2kdM\njJzINeHXtNzpZJ5VSVhXEicOGtfdvSEiEcb/0lhJRCSCV/NL+7NEJhmHxQJF+2Hls0bu/559m+2i\nlCKrqOLsKmLbkVKOWbcF+nu7kxgTwB0JkSTGBHBVeDc83Vvf/zAyugcjo3tQUVPPDW+u54mFu/j6\n8fF08dJZ8W3RUNZ1VNioFk04TqfqpPHSMeYRh6xQwTBHz4qbxaupr5JVlkVsj6ZR7vO3G4F8Dw9/\nGICdeScpLq9pX0Bfc3h3g8EzYe8XMO1lo8pfYxoC+XrGwcj7HTfvBQwJ78agsK58ui3PptIoKq/m\nnXWHmDY4hKTejnvRSgpNYsWRFdRb6nE3ue7v0J6ZNwOLRcSEsd1WMGLynKPGLwIei3+M7499z3Pf\nPceiWxadK6CjFJzINFYQuZsMJXHKuv3OqxtEjYLhP4Coscaqwt2r/UKYTDDjbXhnDCz+Kfzo67PB\nSfVmC2nHT7PV6o9IzSmj9Ixh8gry9yIpJoCf9A4gMSaA/qH+HXJCdvFy5/U7hnPHe5v4/bI0/nDr\nZb/obBeZJzPJK8/j/sH3u1iQVWCp79BWW1vc3Pdm5u+Yz6KsRfwq8Vfn3dtRuINvc7/lkeGPEOhj\nmKJW7S/A3SRM7N9Chb72EH8v7P4Y0pYYf2uN2f5PKMmEOz8GN9tmI0dxZ1Ikzy3Zz76jpxgS3u28\ne/O/bV8gX2skhSbx2cHPSC9J56ogB5nP24E9SuN1jIC+vepiCUl0Ml5uXrwy7hXuWn4XL659kle7\nxiN5mwzHdaU1OtYvGKLHwNhHjZVEyGAwOWgZ3kC3cLjpdfjiQfK+epklXe9iy5FSduSUcabWiI6N\nCvBl8oBgkmICSOwdQExPX4enrkiMCeCnE/ryztpDXDswpG2ZSq8QUnJTEMT1/oyMZdAlFMKbMd+0\nkwDvACZFTmLZoWX8Iv4XeFgfykopXk19lWCfYO4dfO/Zayv3FzCmb0+6+Tj44R01xjC97fj3+Uqj\nIZAv+hrof4Nj57TBjGHh/H55OgtT885TGpmF5XyyNZd7x8TQJ8ixK86E0ATAyEN1sSuNPGDfFaEw\njmyAfZ8DwoCTuTxcdpo3LVtZvncF0z2CIO46w2EdNdYwFzkhr9D2nDLWHyzC39uDsspath7pxX2W\nsUzbOZ9vantQFzyM2fERJPYOICkmgNBu3g6XwRa/mNKPtQeKefqLPYyIGk9glw6soi5DUnJTGBo0\n9Oybtkuoq4bMb2HYHGOl6mBmx81mdc5q1uStYWqMkZpkZfZK9p7Yy4tXv4iPu5EUMauoguySSh4c\n18fhMiACI34I3/4WTmRBoNVUtnG+Ecg3zTGBfK3RzdeDG4aE8uXOozx748CzfptXvs4wAvmubV8g\nX0sE+gQS2z2Wrce38uOrfuzw8e3FHqVxGFgrIl8DZ6uhXG5bbklbCgvvOXfePZof9b2Z9TUHebmX\nHwkzvyTUrwNRra2glOI/m3N4ful+GuKGTAJXRXTnYMLzTEm/lyWBH+H20/VtzljqCDzdTcyfM5yb\n/7KRZxbt5f17Rro2Gd9FxLGKY6SXpp/dNeQyDq+FujMON001MCZsDKF+oSzKXMTUmKnUmmuZv2M+\n/Xv05+Y+53ZqrdxfAMBUZ61Ih/3AKKi08yO47gXDr7j5bSMAsNcI58xpgzkJkSzZdYxv9hUwc0Q4\n32WdICWjiGduGGBfdcJ2kBSaxKLMRdSZ686u9jobe15HjmDUvPAE/BsdlxcnMjHcNRg7nUbeh9vN\n83lp2nuYUfx646+dElhzpqaeBVtyuH7+Bn6z5HyF8djkOJY8fDVP3DIa79vexa3kIHz7O4fLYC/9\nQ/351fX9WZ1WyGcdrC1wOXHx1M5YBl5djVxLTsDN5MaMvjP4/tj3HK84zscZH3O04ihPJjyJWyPT\n7Kq0QoZHdiekq5NWwf4hRi6pXR8bzu+U3xv+RgfEpbSF0X16Ehngw6fb8rBYFC8tTye8uw/3jY1x\n2pxJYUlUm6vZc2KP0+ZojRaVhjWwz18p9bsLj06Sr/PoPc7Y8SRuRm1i6x9epH8kTyU9xZaCLSxI\nb2d6ZhscLq7gd1/tZ/TLycxbvA83k/DwxL54u5twE+PNfly/RskX+06GpJ/Alnfg0BqHydFWHri6\nN6P7BPC7r/aTV1rpMjkuJpJzk4ntHkt011aTPzsPi9nYbho3FdydF1g4M3YmCsW/0v7Fe3ve45rw\naxjTa8zZ+8dOVrEn/1Tba2e0lRH3wJkiI3vCnk9gzP84PJCvNUwm4Y6RkWw6XML85EzSjp/mV9f3\nd61jkvsAACAASURBVNwWYxskhCQgiEvzULWoNJRSZuDqTpLFtUQmGTESk+cZn40isWfFzmJixETm\nb59PVllWu6cwWxTfphVyz9+2MPm1dfxncw6TBwbzxc/GsPyxa/jl9QNY8NBonpjanwU/Ht00CnvK\nb42990seNspgugCTSXj19mGYRHhi4S7MdubguVw5WX2S7YXbmRQ5ybWC5G0xNmm0oaxre4jwj2BU\n2CgWpC+goraCm3rfdN791WlGvQmHbrW1RdxUI3vvuj8aqysnBPLZw20JEQjw5+RMYoP8uHmonTXQ\n20k3r24MCBjg0jxU9pindonIUhG5x1E1wi9aIpNg3JNNUneICM+PfZ4unl14duOz1Jnr2jRs2Zla\n3l13iAl/WsOPP0ols7CCJ67rx3dPT+bNO0cwMjrgrH9gZHQPHp4Uaztth6cvzHoPKgphxS/b/WN2\nlIgevvz2lsFsyy7j/fUXR7pmV7E2fy0WZXF97Yz0ZeDmBbFTnD5VQoixi0eh+N2m352Xp23l/gL6\nBvnR18E7h5pwbAfUWGt211VB8QHnztecGCerz/rdc0ur2Jl30ulzJoUmsbt4N9X1bUvR7ijsURre\nQAkwGcfVCL/kCPQJ5Pkxz5Nems47u9+xq8/e/FP88rPdjH4lmT98nUFEDx/evjueDU9N4rFr4wj2\nb4fNNzweJjwFez+DfV+0vb+DmB0fzg1DQnl99QHSjp12mRyuJiU3hRDfEAb1HOQ6IZQy/Bl9JoKX\n892NYv0PoM5SR2phKgAnK2vZcqTU+aYpMAIYG3yMymKcu4DNh88lLjRbLOedO4uksCTqLHV2Zx52\nNK3unlJKtT2HRSuISADwKUYSxGzgDqWUTXuLtRBTGvClUuoRR8vSFiZHTWZW7Cz+tu9vjI8YbzOh\nYc3/t3fn8VFW1+PHPyeZhIRAwhoWCQmbYZE1YZGt7KIWlFblq1K1raK2VAGxuP2ktqKUWsUNraBS\nCy5UQBApIgEEZDFhhwRkMQGEBAiQkD0zc35/PIMkGMhgMvMEuO/Xa155MszMcxyTnLn3ufccp4v/\n7Ujn3+tT2XLwNNWDA7ktrgn3XB9D7M/pXFaW3uPhuy9h8Xhr3Xq4b4fEZRERJo9oT1LaKcZ9spWF\nY3r5dC63Ksp35rP+yHpGtBph70qyjF1wOs0aJftB90bdmbljJsXuYoICgn4ceazYfQyXWxnij6QR\n08caWbmKSl2D9LcezesS7Aig2OkmyBFAj+Z1fX7OuAZxBEog3x79lh6Nevj8fOfzpt1rExFZICLH\nPLd5ItKkgud9AkhQ1VZYK7OeuMhj/wasruD5Ks3EbhNpFNaIJ9c8SV7xuQvBR07n89KXe+j54grG\nfrKVrLxiJg1ry4anBjJ5RPvKSxhg7Qwf8S/rF2bhH61PmjaoExbM1Ns6sCfjDC9/9Z0tMdhp3Q/r\nKHAV2D81tXsxIBXuneGtTpGdmDFkBmM6j2HGkBk/fnj6clc6DcND6HDeDmmfuMg1SH+Ki67NnPsv\nch3SB8KCwmhXr51tF8O92afxPvAhVm9wgFGe+wZX4Ly3AP08x/8GVgETz3+QiMQBDYClQHwFzldp\nwoLCmNx7Mr9d+lumJk5lSIMxfLAuja9SMlBVBrRuwL09o+nVoh4BFe0hcDH1Wlodyb4YD4kzodsD\nvjvXRfSPjeTu7k2ZseYA/WMjub6F7z9pVRUrDq0gPDicLg262BvI7sVWAcwa/mt1fLZO21n5RS6+\n/u44t8dF+fbnvqSzddpsdrZOmz91b9id93a+R25xLmFBl95CtiK8uaZRX1XfV1Wn5zYLqOhPZwNV\nPeo5TsdKDKV4al39E5hQwXNVuthaHelW+1fM2zuP33w0i43fZ/JAn+Z8/Xh/Zt4bT59W9f3zixP/\nO2g5GJb9P6u9p02evrkN0XWqM+G/28guuLRFAperYncxqw6tol9UP4IC7NlkBcCpVKuScuuby32o\nL63Ze5yCYrd/rmcYdG3YFZe62Jyx2e/n9iZpZIrIKBEJ9NxGYV0YvygRWS4iO8u43VLycZ7yJGXN\nr/wBWKKq5e4iE5HRIpIkIknHjx/34j/p59l3LIdJC3fS44UElq/vTLCrCfVjFrJkXGeeuLE1UXWq\n++zcZRKBW96AoBBYMNra6GSD6sEOXh7ZiaNZ+Ty3KNmWGPxtc8Zmsouyq0BbV0/vDJuTxrLkDGqG\nOOje3JTP94dOkZ0ICgiyZYrKm6TxO6x+3enAUeA2oNyL4542rteVcVsIZIhIIwDP12NlvMT1wBgR\nSQVeAu4RkSkXONc7qhqvqvH161fuEN3pcvPlrnTunrmBQS9/zUffHmJI2wZ89odf8PGI1yjSXKYk\nPo9tpblqNoRfTrO6la1+yZ4YgC5NazOmf0vmbT7M/3YcLf8Jl7mEgwlUC6xWamObLXYvhsh2UMcH\ndZ685HS5SUjJYGDrSIICK7/mlfFToY5QOtbvyMajG/1+bm9WT6UBwyv5vIuAe4Epnq8Lyzjv3WeP\nReQ+IF5VL3bBvFJl5hTyceIh5mxI40hWAY0jQnj8hlhGdo0qUayvFo92eZSXkl5i4f6F3NryVn+F\nV1q7W2HP/1m7Y1sNhib2XP7508BWrNxznKcW7CAuujaRviojYTNVZcXBFfRs3JPqQX4eXZaUe8Iq\n0d/Xvj07AImppziVV2ympvysW8NuvLXtLbIKs4io5ofFBx4XTBoi8uxFnqeq+rcKnHcKMFdEfg+k\nYY1kEJF44CFVtaWE46a0UyzY8gOHTuayfv9JilxuerWsy6Th7RjYOhJHGZ+iftP2N6w6tIop304h\nvkE8TWpWdGHZz3TTVKvPx/zR8NCanzao8YOgwABeGdmRm19by8R523nvvq5XZFHD5JPJZORlMKaz\nrSvA4bul1h4F26em0gl2BND3Wv9diDes/RrTt00nKSPJryv4LjaWzC3jBvB7yljpdClUNVNVB6pq\nK8801knP/UllJQxVneXrPRpLdx7ltrfXMXtDGl9/d4KBbSJZPr4vc+7vwQ3tGpaZMAACJIDJvScD\n8PTap3G5Xb4M88JCIuDW6XByv9W9zCYtI2vy5I2tWbnnOB9+e9C2OHwpIS2BAAmgX5N+9gaSshgi\nmkJD+xpjqSrLdmXQt1U9wkxXR79qX689IYEhJKYn+vW8F0waqvrPszfgHSAU61rGx4B9E6g+8l1G\nzo/bHQLFaunYMtK7vRWNazTmqe5PsfnYZj5I/sCHUZajWV+rzWfiTKuvgk3uuT6G3i3r8fziFFJP\n5Jb/hMvMykMriWsQd66jox0Kc2D/CmuUYeNobteRbH44nc+QtmZqyt+CA4PpHNnZ79c1yqtyW0dE\nnge2Y01ldVHViapa1oXry1qvlvUICbIqzP6cnZ3Dmg9jUNNBvL7ldfactKcODmCVh67fxtr0l3fS\nlhACAoR/3N6BoEBh3NytOF2VX1LeLmnZaew7vc/+DX37E8BV6PMCheVZtiudAIGBbSq5ravhlW6N\nurHv9D4y831fvuSsCyYNEfkHkAicAdqr6l8uVOrjSlDRnZ0iwrPXP0t4cDhPrn2SIleRjyItR1AI\n/OpfVhezxWNt2y3eKCKU50e0Z8vB07y1ar8tMfjCioMrAOyvarv7CwitA1H+LyNR0rLkDOJj6lDX\ndHK0RbeG1ubGxAz/TVFdbKTxGNAYeAY4IiLZntsZEbkiK9RdtMKsF2qH1Oavvf7K3lN7eWPLG5Uc\n3SVo1BH6PwXJC2H7XNvCGN6xMcM6NubVhL3sOJxlWxyVKeFgAm3qtKFxDf/X+/qRq9i6CB57o1VS\nxiZpmbnsTj/juw59Rrna1m1LWFCYX0ulX+yaRoCqhqpqTVUNL3GrqarhfovwMtO3SV9uv/Z2Zu2a\n5fcLVKX0etT6FLrkcasdpk3+dks76tWoxthPtlBQbNMigUpyPO84249vt79DX+paKMjyWVtXby3b\nZfXOMEtt7eMIcBDXIM6vf2vMThwfmBA/gaiaUTyz9hlyinLsCSIgEEa8DeqCzx4Gtz3XFWpVD+Yf\nt3dg//Fc/r50ty0xVJZVh1ehqP1JY/cXEFQdWtg7RbYsOZ02jcL9XwnBKKVbw26kZqeSkZvhl/OZ\npOED1YOq80KfF0jPS2fKt2VuYvePOs1g6ItWr4GN3vUA8YU+repzX88Y3v8mlbV7T9gWR0UlHEwg\nqmYUrWq1si8It9tKGi0HQlCobWEcP1NIUtopbvB1hz6jXGeva/irpIhJGj7SsX5H7m9/Pwv3LyQh\nLcG+QDr/Bq69EZY/B8dSbAtj4tDWtKgfxoT/biMr7/IraphTlMPGoxsZEDXA3g2LR7fAmSO2T00l\npGSgillqWwXE1oklPDjcJI0rwUMdH6Jt3bY8t/45TuTb9AlbBIa/ZnV0m/8AOO1Z1RUaHMgrIztx\nIqeQZxfttCWGipidMhun20nT8Kb2BrLxHUAgrJ6tYcxNOkREqIP8IqetcRjWBuNuDbv57WK4SRo+\nFBQQxIu9XyTPmcekdZPsK2pYI9JKHOk7YNWL9sQAdGhSi0cGtmLh1iMs2nbEtjgu1foj63lrqzW9\nNzVxaqme2H61+wvY/gmg8PEoOGRPE575mw+z+eBpsvOd3P3uRjalXbEr8S8bRUlFrHxoJQEBAcTE\nxDBnzhyfncskDR9rXqs54+LGsfrwaubtta+nN61vhs6j4JtpcHCDbWH8oV8LOkXV4pkFO0jPKrAt\nDm8Uu4qZkzKHR1Y8ghtrIYHT7fyxJ7bf5J+G5X+BuffwYxcBV5Hf+2L/cDqfx+ZuY/zcbeCJpNjp\nn77YxoXNmTOH9ya9R3FmMapKWloao0eP9lniMEnDD+5sfSfdG3VnauJUDmbbWI9p6BSIiIIFD0Lh\nGVtCcAQG8MrIThS7lMc/3YbbbdPo6yLc6mbJgSUM+2wYU76dQrOIZgQHBBMogaV6YvucsxDWvQGv\ndYK1r0BMX3BUAwn0a1/s03lFvLAkhf4vreLz7Ue4pVNjqjl+fvUEo3I9/fTTFOSX/gCWl5fH008/\n7ZPziW1TJj4SHx+vSUl+/iTohfTcdH616Fc0j2jOrKGzcATYtCkrbR28fxN0uceasrLJ7A1pPPPZ\nTp4b3o57e8bYFsf51h9ZzyubXiHlZAqxtWMZFzeOno17su34NpIykohvEF+qzalPuF2w47+wYjJk\nHYQWA2DQX6xNm4e+tUYYMX183uq0oNjFrHWpTF+5jzOFTn7dpQnjBl/LNbVC2ZR2ig0HMunRvK7f\nW50apQUEBJQ59S0iuC9hqb2IbFLVcj8RmaThR0sOLGHimok80vkRHuhgT09vAL6aZE1T3fmxtavY\nBqrKb2clsuFAJov/1IeWkTVsieOs5Mxkpm2axvqj62kc1pgxncdwc/ObCRA/DsZVYV8CLJ8EGTut\nJDHoOb/vx3C5lXmbDvPyV9+Rnl3AgNaR/HloLK0bmj29VVFMTAxpaWk/uT86OprU1FSvX8fbpGHL\n9JSnEOJXIrLX87XMjyoi0lRElolIiogki0iMfyOtXDc1v4mhMUOZvnU6yZk2tkXt/xQ0uA4W/clq\n5GMDEWHqrzsQGhTI+LlbKbapqOHhM4eZuHoiIxePJPlkMo/HP87nIz5nWIth/k0YP2yCfw+DOb+G\nohz49bvwwCq/JgxVZXlyBkOnrebP87bTICKEj0f34L37upqEUYVNnjyZ6tVLb7CsXr06kydP9s0J\nVdXvN2Aq8ITn+Ang7xd43CpgsOe4BlC9vNeOi4vTqux0wWkd8MkAHb5guOYX59sXSPpO1b/WU/3o\nLlW327Ywlmw/otETF+s/l+3x63kz8zN1ysYp2umDThr/n3idtmmaZhdm+zUGVVU9sU917r2qk8JV\n/95MdcPbqsWFfg8jKfWk3v7WOo2euFj7/WOlLtl+RN02/lwYl2b27NkaHR2tIqLR0dE6e/bsS34N\nIEm9+Ptty/SUiOwB+qnqUU+P8FWqGnveY9oC76hq70t57ao8PXXWuiPrePCrBxnVZhQTu1Won1UF\nA3kdlj0Dt7xprayyyfhPtrJw2xE+feh6Ojf17fx4XnEe/0n+D+/vep98Zz4jWo7g4Y4P0yDMzzub\nc47B13+HTbMgsBr0HGP1Qgnx7yf6/cdzmLp0N1/uyrBqhA1qxciuUabX91WoSl/TEJHTqlrLcyzA\nqbPfl3jMrcD9QBHQDFiONTr5SdU7ERkNjAZo2rRpXFnze1XNCxtf4KPdHzFjyAx6NLKpvLXbbU2J\nHN0KD38DtWNsCSO7oJgbp60h2BHAF4/0pnpw5S8ScLqdzN87n7e2vcWJ/BMMiBrAo10epXktP/cT\nKzxjrYha9zo4CyDuPvjFRKjp36SVkV3AtOV7mZt0iBBHAA/+ogW/793MdN+7itmeNERkOVBWjYGn\ngX+XTBIickpVS33EFJHbgHeBzsBB4BNgiaq+e7HzXg4jDYB8Zz53fH4H+c585t8yn/Bgm+aMTx+E\n6T2hYXu4b7FV6NAG6/dnctfMDYzqHs3fbr2u0l5XVUk4mMCrm18lNTuVzpGdGR833vcroM7nLILN\n/7ZGF7nHoe0tMOBZqNfSr2FkFxTzztcHmLn2AC63cnf3aMYMaEk90w/jqudt0vDZxwpVHXShfxOR\nDBFpVGJ6qqxOgIeBrap6wPOcz4AeWInkshfqCOXFPi8yaskoXtj4AlP62FTYsFZTuGmqVQl33evQ\ne6wtYVzfoi6/79WMmWu/Z0CbSPrHVrwT3KaMTby86WW2H99O84jmvNb/NfpF9fNv7Si3G5IXQMLf\n4NT3EN3bWrXWxE97PTwKnS5mbzjIGyv2ciqvmOEdG/PYkGuJrhvm1ziMy59dY9FFwL3AFM/XhWU8\nJhGoJSL1VfU4MACo+kOIS3Bdvet4sOODTN86nX5R/RgaM9SeQDreCXuWwIrnreqpDdvbEsaEG2JZ\nvfc4f/50O8vG9qV2WPDPep29p/by6uZX+frw10SGRvJcz+cY3mK4//fGHPjaWj57ZAtEtoO7/gut\nBvu1p7fbrSzadoSXlu3h8Kl8erWsyxND29C+SYTfYjCuLHZd06gLzAWaAmnAHap6UkTigYdU9X7P\n4wYD/wQE2ASMVtWLVty7XKanznK6ndzzv3tIy05j/vD5/r8ge1ZuJkzvAWH14YEVVttYG+w6ksWt\nb37D4LYNePOuLpc0KkjPTefNrW+yaP8iwhxh/K7977i7zd2EOvxcQjx9h7UXZn8ChDeBAc9Ahzv8\nOvWnqqzZe4Ip/9tN8tFs2jUO54kbW9OnVX2/xWBcXmy/pmGXyy1pAKRmpXL757fTpUEX3h70tn2l\nt7/7Ej68A3r+CYY8b08MwPRV+5i6dA+vjOzIiM5Nyn18VmEW7+54lzkpc1CUu1rfxf3t76dWSK1y\nn1upTqXByslWi92QCOg7Abo+4PcEvONwFlOWpvDNvkya1A7l8RtiGdahMQEBNpZ0N6o8269pGN6L\niYhhQvwEnt/4PB/v+Zg7W99pTyDX3gBxv7VW91w7FGIuabVzpXmwbwtWpBzj2c920a1ZXa6pVfZI\nodBVyIcpHzJjxwxyinIY1mIYf+z0R//3787NhDX/hMQZIAFWq93e4yDUv0krLTOXl5Z9x+fbjlC7\nehDP/rItd/doSjWHPYsbjCuTGWlUEarKwwkPk3g0kZGtRzIkeoj/V/gAFObA272hKBfi74OWg31e\n46gsBzPzuPHV1TSrF8bQ6xpyfYt6P9Y4crldfH7gc97c+ibpuen0vqY3Y7uMJbZObDmvWsmK8qyO\niGunWbu4O90F/Z6CiGv8GsaJnELeWLGPORvTcAQEcH+fZjzQtznhIUF+jcO4vJnpqcvQykMreWTF\nI4DVi2Ncl3F0iOxAzeCa1AyqSY3gGoQEhvh++ippFix+1DoODIbBf7USR7UIa9olJNyqtupjU5em\nMH3VAQRwBApP3diawJp7mLv/X6Sd2U+7uu0YHzeebo38nNRcTtg6G1ZNgTNHIfYmGPgsRLbxaxi5\nhU5mrvmed1bvp8DpZmTXKMYObEVkuD3Xo4zLm5meugztP70fQVCUYncxU5Om/uQxjgAHNYNqUjPY\nSiIlj2sE1SA8ONy6v0SiKXlcI7gGQQHlfALNz2RrtWokhVQjvqCATkuf+OljHCFQLdxKICERZRzX\nsr6vFn4u0Zx/XM6F4bBqDtqErqVe2HZ+cEYxdfvbOMK+x11Ul8Jjd7EhpT33bjxJeOhyaoYEUTPE\nQfjZr6Hnvg8PcZz799DSjwsLdng11787cTmndq0gqm4YTdI+gxPfQZNucNt7EN2z3OdXlk1pp1i3\n/wTZBU4WbP6BEzmFDG3XkAk3xNpe9NG4OpikUYXEN4inWmA1itxFOMTBE92eoEFYA3KKcjhTdIYz\nxWfKPM7MzrTuKzpDnjOv3POEOkJLJZHzE0xOwfcsaBSJC3AQwe/r96BpRAwU54Mz35qWOXtcfPZ2\nDPIOeo7zwO1FW9nAUAgKheBQcHiOf7xVJzcrg/ToNA4DyEEicHBHjV/QIyAWZy0oKN5HfrGL/CIX\n+cUuCordFOSdPXZxssjFsXL6dYhASFAgIUGBhAYFeL4GEhoceO44J41eRz8gCBeSClnBDUnu+hpH\nGw6ATIHMw17836241BO5TF+1H6fnv6lNw5q8c08cXXxcesUwSjLTU1XM1mNbK9S3wel2klucy5mi\nM+QU5/yYTEoe/+TfinLIKc4huyibnKIcirz5g+9nospDp7P4w+lsW+NwqfCy8zbedI2wNY4AgceG\nXMsf+7eyNQ7jymGmpy5TnSI7VegCuCPAQUS1CCKq/fzNW4npiTy8/GGKXcU4Ah282OtF2tT173w9\nKCkp83kyeSZOgWCFntdPgFbD/BuFwu6ta2m2ejwOXBTjoOegEdzRoZ9f4wDY+UMW4+duw+lyezrm\n1fN7DIZhRhpGmSo64qm0OHZ+SNKBL4lvfgOdrrvLtjh2Jy7nVPIKarcdQOuuF6yQ43OmY57hK2b1\nlGEYhuG1Kt25zzAMw7g8maRhGIZheM0kDcMwDMNrJmkYhmEYXrviLoSLyHGscus/Vz3gRCWFc7kz\n70Vp5v0ozbwf51wJ70W0qpZbO/+KSxoVJSJJ3qwguBqY96I0836UZt6Pc66m98JMTxmGYRheM0nD\nMAzD8JpJGj/1jt0BVCHmvSjNvB+lmffjnKvmvTDXNAzDMAyvmZGGYRiG4TWTNDxEZKiI7BGRfSJS\nRtehq4eIRInIShFJFpFdIvKo3THZTUQCRWSLiCy2Oxa7iUgtEflURHaLSIqIXG93THYSkXGe35Od\nIvKRiFzRrRNN0sD6gwC8CdwItAXuFJG29kZlKyfwmKq2BXoAf7zK3w+AR4EUu4OoIl4Flqpqa6Aj\nV/H7IiLXAI8A8ap6HRAI/J+9UfmWSRqWbsA+VT2gqkXAx8AtNsdkG1U9qqqbPcdnsP4oXGNvVPYR\nkSbAzcBMu2Oxm4hEAH2BdwFUtUhVT9sble0cQKiIOIDqwBGb4/EpkzQs1wCHSnx/mKv4j2RJIhID\ndAY22huJraYBfwbcdgdSBTQDjgPve6brZopImN1B2UVVfwBeAg4CR4EsVV1mb1S+ZZKGcUEiUgOY\nB4xVVXv7rNpERH4JHFPVTXbHUkU4gC7AW6raGcgFrtprgCJSG2tWohnQGAgTkVH2RuVbJmlYfgCi\nSnzfxHPfVUtEgrASxhxVnW93PDbqBQwXkVSsacsBIjLb3pBsdRg4rKpnR56fYiWRq9Ug4HtVPa6q\nxcB8oKfNMfmUSRqWRKCViDQTkWCsC1mLbI7JNiIiWHPWKar6st3x2ElVn1TVJqoag/VzsUJVr+hP\nkhejqunAIRGJ9dw1EEi2MSS7HQR6iEh1z+/NQK7whQEOuwOoClTVKSJjgC+xVj+8p6q7bA7LTr2A\n3wA7RGSr576nVHWJjTEZVcefgDmeD1gHgN/aHI9tVHWjiHwKbMZadbiFK3x3uNkRbhiGYXjNTE8Z\nhmEYXjNJwzAMw/CaSRqGYRiG10zSMAzDMLxmkoZhGIbhNZM0jCuaiLhEZKunCuk2EXlMRCr8cy8i\njT1LLSuNiPxVRAZd4nNSRaReZcZhGBdjltwaVzQRyVHVGp7jSOBD4BtVnWRvZJXDs1M9XlVP2B2L\ncXUwIw3jqqGqx4DRwBixxIjIGhHZ7Ln1BBCRD0Tk1rPPE5E5IlKq6rHnuTs9x/eJyHwRWSoie0Vk\n6vnnFpGuIjLfc3yLiOSLSLCIhIjIAc/9s0TkNs9xqog854lrh4i09txfV0SWeUZOMwEpcY7xnp4O\nO0VkrOe+x0XkEc/xKyKywnM8QETmVNqba1w1TNIwriqqegBr138kcAwYrKpdgJHAa56HvQvcBz+W\nAu8JfFHOS3fyvEZ7YKSIRJ3371s8jwHoA+wEugLduXAF4ROe2N4CJnjumwSsVdV2wAKgqSfOOKyd\n2d2xeqA8ICKdgTWe8wHEAzU8dcX6AKvL+W8yjJ8wScO4mgUBM0RkB/BfrAZcqOrXWLXI6gN3AvNU\n1VnOayWoapaqFmDVYoou+Y+e5+8XkTZY/VtexupL0QfrD3tZzhaK3ATEeI77ArM9r/kFcMpzf29g\ngarmqmqO57l9PM+NE5FwoBBYj5U8LnZew7ggU3vKuKqISHPAhTXKmARkYHWfCwAKSjz0A2AUVpFC\nb2orFZY4dlH279ZqrO6QxcByYBbWqOfxcl7zQq9XLlUtFpHvsUZO64DtQH+gJVd4YT3DN8xIw7hq\neEYObwNvqLUCJAI4qqpurAKNgSUePgsYC6CqlVXFdY3nNder6nGgLhCLNVXlrdXAXQAiciNQu8Rr\n3+qpthoGjODcSGIN1vTWas/xQ8AWNatgjJ/BjDSMK12op1JvEFYV0v9gTQ0BTAfmicg9wFKshkIA\nqGqGiKQAn1ViLBuBBpy7lrAdaHiJf7yfAz4SkV1YI4eDnng3i8gs4FvP42aq6hbP8RrgaaxkL8lt\niwAAAGhJREFUlSsiBZipKeNnMktuDaMMIlId2AF0UdUsu+MxjKrCTE8Zxnk8G+xSgNdNwjCM0sxI\nwzAMw/CaGWkYhmEYXjNJwzAMw/CaSRqGYRiG10zSMAzDMLxmkoZhGIbhNZM0DMMwDK/9fwMm7o4i\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 = $('