davidwisdom commited on
Commit
a514b64
0 Parent(s):

initial commit

Browse files
Files changed (6) hide show
  1. .gitattributes +35 -0
  2. .gitignore +5 -0
  3. .streamlit/config.toml +7 -0
  4. README.md +13 -0
  5. app.py +295 -0
  6. data.txt +638 -0
.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # pyenv
2
+ .python-version
3
+
4
+ # python
5
+ __pycache__
.streamlit/config.toml ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ [theme]
2
+ base = 'light'
3
+ textColor = '#000000'
4
+
5
+
6
+ [browser]
7
+ gatherUsageStats = false
README.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Doj Antitrust Viz
3
+ emoji: 😻
4
+ colorFrom: blue
5
+ colorTo: green
6
+ sdk: streamlit
7
+ sdk_version: 1.25.0
8
+ app_file: app.py
9
+ pinned: false
10
+ license: cc-by-4.0
11
+ ---
12
+
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,295 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ import pandas as pd
3
+ import plotly.express as px
4
+ import plotly.graph_objects as go
5
+ import plotly.io as pio
6
+ import streamlit as st
7
+
8
+ from datetime import datetime
9
+ from pprint import pprint
10
+
11
+ from scipy.stats import bootstrap
12
+
13
+
14
+ # Load data
15
+ with open('data.txt', 'r') as f:
16
+ cases_data = f.readlines()
17
+
18
+ monthly_records = []
19
+ annual_records = []
20
+ for case_count in cases_data:
21
+ data = case_count.split()
22
+
23
+ # Annual data
24
+ if len(data) == 2:
25
+ data[1] = data[1].replace('(', '').replace(')', '')
26
+ annual_records.append((int(data[0]), int(data[1])))
27
+ continue
28
+
29
+ # Monthly data
30
+ data[2] = data[2].replace('(', '').replace(')', '')
31
+ monthly_records.append((data[0], int(data[1]), int(data[2])))
32
+
33
+ pres_records = [
34
+ ('Lyndon B. Johnson', datetime(1963, 11, 22), datetime(1969, 1, 20)),
35
+ ('Richard Nixon', datetime(1969, 1, 20), datetime(1974, 8, 9)),
36
+ ('Gerald Ford', datetime(1974, 8, 9), datetime(1977, 1, 20)),
37
+ ('Jimmy Carter', datetime(1977, 1, 20), datetime(1981, 1, 20)),
38
+ ('Ronald Reagan', datetime(1981, 1, 20), datetime(1989, 1, 20)),
39
+ ('George H. W. Bush', datetime(1989, 1, 20), datetime(1993, 1, 20)),
40
+ ('Bill Clinton', datetime(1993, 1, 20), datetime(2001, 1, 20)),
41
+ ('George W. Bush', datetime(2001, 1, 20), datetime(2009, 1, 20)),
42
+ ('Barack Obama', datetime(2009, 1, 20), datetime(2017, 1, 20)),
43
+ ('Donald Trump', datetime(2017, 1, 20), datetime(2021, 1, 20)),
44
+ ('Joe Biden', datetime(2021, 1, 20), datetime(2023, 6, 28)) # cut Biden short so that it lines up with our last data point
45
+ ]
46
+ pres_df = pd.DataFrame.from_records(pres_records, columns=['name', 'start', 'end'])
47
+
48
+
49
+
50
+ # Clean the data
51
+
52
+ month2int = {
53
+ 'January': 1,
54
+ 'February': 2,
55
+ 'March': 3,
56
+ 'April': 4,
57
+ 'May': 5,
58
+ 'June': 6,
59
+ 'July': 7,
60
+ 'August': 8,
61
+ 'September': 9,
62
+ 'October': 10,
63
+ 'November': 11,
64
+ 'December': 12
65
+ }
66
+
67
+ mn_df = pd.DataFrame.from_records(monthly_records, columns=['month', 'year', 'cases'])
68
+
69
+ dts = []
70
+ for i, r in mn_df.iterrows():
71
+ dts.append(datetime(year=r['year'], month=month2int[r['month']], day=28))
72
+
73
+ mn_df['date'] = dts
74
+
75
+ # This is the first year that has more than 1 case
76
+ clipped_mn_df = mn_df.query('year >= 1964')
77
+
78
+
79
+ # add 0s for months that are missing
80
+ # we cut off at 1964 but Johnson started in November of 1963
81
+ # There weren't any cases in 1963 so it's okay to start
82
+ # filling 0s from November of 1963
83
+ cur_yr = 1963
84
+ cur_mn = 11
85
+ new_rows = []
86
+
87
+ # pandas `in` is busted so we have to pull out the column manually
88
+ # and check against that
89
+ existing_dates = clipped_mn_df['date'].to_numpy(dtype=datetime)
90
+
91
+ # our data goes through the end of the previous month (june 2023)
92
+ # we're using 28 as the placeholder "day" for all the months
93
+ while cur_yr < 2023 or cur_mn <= 6:
94
+ dt = datetime(year=cur_yr, month=cur_mn, day=28)
95
+ if dt not in existing_dates:
96
+ new_rows.append((dt.strftime('%B'), dt.year, 0, dt))
97
+
98
+ if cur_mn == 12:
99
+ cur_yr += 1
100
+ cur_mn = 1
101
+ else:
102
+ cur_mn += 1
103
+
104
+ zero_rows = pd.DataFrame.from_records(new_rows, columns=['month', 'year', 'cases', 'date'])
105
+ clipped_mn_df = pd.concat([clipped_mn_df, zero_rows], ignore_index=True)
106
+ clipped_mn_df = clipped_mn_df.sort_values(by='date', ascending=False).reset_index(drop=True)
107
+
108
+
109
+ # add the mean & std for each president
110
+ presidents = []
111
+ for d in clipped_mn_df['date']:
112
+ for i, r in pres_df.iterrows():
113
+ if d >= r['start'] and d <= r['end']:
114
+ presidents.append(str(r['name']))
115
+
116
+ clipped_mn_df['pres'] = presidents
117
+ tmp = clipped_mn_df[['cases', 'pres']].groupby('pres').agg(['mean', 'std']).reset_index(drop=False)
118
+ tmp.columns = ['name', 'cases_mean', 'cases_std']
119
+
120
+ pres_df = pd.merge(pres_df, tmp, on='name', how='inner')
121
+
122
+
123
+ # bootstrap confidence intervals for the mean
124
+ # the data doesn't really look normal enough for 2 std to be super meaningful
125
+ pres_names = pres_df['name'].unique()
126
+
127
+ president_cis = []
128
+ for pres in pres_names:
129
+ cases = clipped_mn_df.query(f'pres == "{pres}"')['cases'].to_numpy()
130
+ ci = bootstrap(
131
+ cases.reshape(1,-1),
132
+ np.mean,
133
+ vectorized=False,
134
+ confidence_level=0.95,
135
+ method='BCa' # "bias-corrected and accelerated" (shifts the CI bounds if the distribution is skewed)
136
+ ).confidence_interval
137
+
138
+ president_cis.append((pres, ci.low, ci.high))
139
+
140
+ ci_df = pd.DataFrame.from_records(president_cis, columns=['name', 'ci_low', 'ci_high'])
141
+
142
+ # add the confidence intervals to pres_df
143
+ pres_df = pd.merge(pres_df, ci_df, on='name')
144
+
145
+
146
+ # Utils for converting colors
147
+ def hex2rgb(h):
148
+ """
149
+ '#FF44BB' -> 'rgb(255, 68, 187)'
150
+ """
151
+ if h[0] == '#':
152
+ h = h[1:]
153
+ if len(h) != 6:
154
+ raise ValueError(f'malformed hex input')
155
+ values = []
156
+ for i in range(0, len(h), 2):
157
+ values.append(int(h[i:i+2], base=16))
158
+ return f'rgb({values[0]}, {values[1]}, {values[2]})'
159
+
160
+ def rgb2rgba(c, a=1.0):
161
+ """
162
+ 'rgb(95, 70, 144)'
163
+ ->
164
+ 'rgba(95, 70, 144)'
165
+ ->
166
+ 'rgba(95, 70, 144, 1.0)
167
+
168
+ defaults to 100% opacity
169
+ but you can set it
170
+ """
171
+ c = c[:3] + 'a' + c[3:]
172
+ c = c[:-1] + f', {a})'
173
+ return c
174
+
175
+
176
+ # Draw the plot
177
+
178
+ # streamlit ignores this but streamlit's theme
179
+ # is pure white so it's okay I guess?
180
+ pio.templates.default = 'plotly_white'
181
+
182
+ f = go.Figure()
183
+
184
+ FONT_SIZE = 14
185
+
186
+ # add the cases as a bar plot
187
+ bar_color = '#bbbbbb'
188
+ f.add_trace(go.Bar(
189
+ x=clipped_mn_df['date'],
190
+ y=clipped_mn_df['cases'],
191
+ name='DOJ Antitrust Cases',
192
+ marker_color=bar_color,
193
+ marker_line_color=bar_color,
194
+ hovertemplate='%{x}: <b>%{y}</b><extra></extra>',
195
+ hoverlabel={'bgcolor': rgb2rgba(hex2rgb(bar_color), 0.2), 'font': {'size': FONT_SIZE}},
196
+ legendrank=1000 + 1 # default is 1000. Bigger means closer to the top
197
+ ))
198
+
199
+
200
+
201
+ # add the president means + CI
202
+ pres_colors = px.colors.qualitative.Prism
203
+
204
+ for i, r in pres_df.iterrows():
205
+ # set up colors for this president
206
+ pres_color = pres_colors[i]
207
+ if pres_color[0] == '#':
208
+ pres_color = hex2rgb(pres_color)
209
+
210
+ ci_color = rgb2rgba(pres_color, 0.5)
211
+ hover_color = rgb2rgba(pres_color, 0.2)
212
+
213
+ hover_str = f"<b>{r['name']}</b><br>Mean: <b>{r['cases_mean']:.2f}</b><br>95% CI: <b>({r['ci_low']:.2f}–{r['ci_high']:.2f})</b><extra></extra>"
214
+ hover_label_fmt = {'bgcolor': hover_color, 'font': {'size': FONT_SIZE}}
215
+
216
+
217
+ # add this president's confidence interval
218
+ #
219
+ # draw two lines like this
220
+ #
221
+ # o------------------o
222
+ #
223
+ # o------------------o
224
+ #
225
+ # make the lines transparent,
226
+ # fill in the area between them
227
+ upper = r['ci_high']
228
+ lower = r['ci_low']
229
+ f.add_trace(go.Scatter(
230
+ x = [r['start'], r['end'], r['end'], r['start']],
231
+ y = [upper, upper, lower, lower],
232
+ fill='toself',
233
+ fillcolor=ci_color,
234
+ line_color=rgb2rgba(pres_color, 0),
235
+ # I have to set `name` for it to show up when I hover over any part of the fill
236
+ # otherwise the hover only comes up when I hover over the corners where the points are
237
+ # but `name` doesn't do the <extra></extra> thing to remove the extra hover box
238
+ name=hover_str.replace('<extra></extra>',''),
239
+ showlegend=False,
240
+ hovertemplate=hover_str,
241
+ hoverlabel=hover_label_fmt
242
+ ))
243
+
244
+ # add this president's mean
245
+ f.add_trace(go.Scatter(
246
+ x=[r['start'], r['end']],
247
+ y=[r['cases_mean'],r['cases_mean']],
248
+ name=r['name'],
249
+ line_color=pres_color,
250
+ # I used to have vertical bars at the ends of the mean line
251
+ # but I like it more without them
252
+ # so just set the width to 0
253
+ marker={'symbol': 'line-ns', 'line': {'width': 0, 'color':pres_color}},
254
+ hovertemplate=hover_str,
255
+ hoverlabel=hover_label_fmt
256
+ ))
257
+
258
+
259
+ # Trim the top of the plot a bit because there are a few outliers
260
+ # that make it hard to see the president aggregations
261
+ MAX_HEIGHT = 16
262
+ f.update_yaxes(range=[0, MAX_HEIGHT])
263
+
264
+ # add hashing over any bars taller than MAX_HEIGHT
265
+ # since we're cutting them off
266
+ too_tall = clipped_mn_df[clipped_mn_df['cases'] > MAX_HEIGHT]['date']
267
+ f.add_trace(go.Bar(
268
+ x=too_tall,
269
+ y=[MAX_HEIGHT * 0.25] * len(too_tall),
270
+ base = [MAX_HEIGHT - MAX_HEIGHT*0.1] * len(too_tall),
271
+ marker_color='#fff',
272
+ marker_line_color='rgba(255,255,255,0)',
273
+ marker_line_width=0,
274
+ # I think I remember plotly uses milliseconds if the axis is a datetime
275
+ # so the width has to be huge to cover a whole month
276
+ # yep 1 month is 2.6 * 10**9 milliseconds
277
+ width=3e9,
278
+ # these are the options ['', '/', '\\', 'x', '-', '|', '+', '.']
279
+ marker_pattern_shape='-',
280
+ marker_pattern_fillmode='replace',
281
+ showlegend=False
282
+ ))
283
+ f.update_layout(barmode='stack')
284
+
285
+ f.update_layout(title="<b>What does the DOJ's Antitrust Division look like?</b>")
286
+
287
+ # since streamlit doesn't respect the Plotly theme,
288
+ # we can instead make the background transparent
289
+ f.update_layout({
290
+ 'plot_bgcolor': 'rgba(0, 0, 0, 0)',
291
+ 'paper_bgcolor': 'rgba(0, 0, 0, 0)',
292
+ })
293
+
294
+ st.set_page_config(layout='wide')
295
+ st.plotly_chart(f, use_container_width=True, theme=None)
data.txt ADDED
@@ -0,0 +1,638 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ June 2023 (2)
2
+ April 2023 (1)
3
+ March 2023 (1)
4
+ February 2023 (2)
5
+ January 2023 (5)
6
+ 2023 (11)
7
+ November 2022 (4)
8
+ October 2022 (2)
9
+ September 2022 (2)
10
+ August 2022 (2)
11
+ July 2022 (3)
12
+ June 2022 (3)
13
+ May 2022 (3)
14
+ April 2022 (1)
15
+ March 2022 (6)
16
+ February 2022 (3)
17
+ January 2022 (1)
18
+ 2022 (30)
19
+ December 2021 (2)
20
+ November 2021 (7)
21
+ October 2021 (5)
22
+ September 2021 (6)
23
+ August 2021 (3)
24
+ July 2021 (2)
25
+ June 2021 (5)
26
+ May 2021 (2)
27
+ April 2021 (1)
28
+ March 2021 (3)
29
+ January 2021 (4)
30
+ 2021 (40)
31
+ December 2020 (3)
32
+ November 2020 (3)
33
+ October 2020 (6)
34
+ September 2020 (4)
35
+ August 2020 (2)
36
+ July 2020 (5)
37
+ June 2020 (3)
38
+ May 2020 (3)
39
+ April 2020 (4)
40
+ March 2020 (4)
41
+ February 2020 (8)
42
+ January 2020 (2)
43
+ 2020 (47)
44
+ December 2019 (4)
45
+ October 2019 (5)
46
+ September 2019 (3)
47
+ August 2019 (4)
48
+ July 2019 (7)
49
+ June 2019 (8)
50
+ May 2019 (3)
51
+ April 2019 (3)
52
+ March 2019 (1)
53
+ February 2019 (3)
54
+ January 2019 (4)
55
+ 2019 (45)
56
+ December 2018 (5)
57
+ November 2018 (4)
58
+ October 2018 (4)
59
+ September 2018 (1)
60
+ August 2018 (6)
61
+ June 2018 (4)
62
+ May 2018 (4)
63
+ April 2018 (8)
64
+ March 2018 (3)
65
+ February 2018 (3)
66
+ January 2018 (1)
67
+ 2018 (43)
68
+ December 2017 (2)
69
+ November 2017 (4)
70
+ October 2017 (4)
71
+ September 2017 (2)
72
+ August 2017 (4)
73
+ July 2017 (2)
74
+ June 2017 (3)
75
+ May 2017 (2)
76
+ April 2017 (1)
77
+ March 2017 (3)
78
+ February 2017 (2)
79
+ January 2017 (5)
80
+ 2017 (34)
81
+ December 2016 (10)
82
+ November 2016 (5)
83
+ October 2016 (4)
84
+ September 2016 (3)
85
+ August 2016 (8)
86
+ July 2016 (5)
87
+ June 2016 (8)
88
+ May 2016 (7)
89
+ April 2016 (5)
90
+ March 2016 (4)
91
+ February 2016 (6)
92
+ January 2016 (1)
93
+ 2016 (66)
94
+ December 2015 (6)
95
+ November 2015 (3)
96
+ October 2015 (7)
97
+ September 2015 (9)
98
+ August 2015 (3)
99
+ July 2015 (3)
100
+ June 2015 (5)
101
+ May 2015 (9)
102
+ April 2015 (7)
103
+ March 2015 (6)
104
+ February 2015 (2)
105
+ January 2015 (5)
106
+ 2015 (65)
107
+ December 2014 (11)
108
+ November 2014 (12)
109
+ October 2014 (7)
110
+ September 2014 (4)
111
+ August 2014 (3)
112
+ July 2014 (4)
113
+ June 2014 (6)
114
+ May 2014 (3)
115
+ April 2014 (4)
116
+ March 2014 (4)
117
+ February 2014 (8)
118
+ January 2014 (9)
119
+ 2014 (75)
120
+ December 2013 (4)
121
+ November 2013 (7)
122
+ October 2013 (3)
123
+ September 2013 (20)
124
+ August 2013 (4)
125
+ July 2013 (6)
126
+ June 2013 (6)
127
+ May 2013 (5)
128
+ April 2013 (6)
129
+ March 2013 (4)
130
+ February 2013 (2)
131
+ January 2013 (2)
132
+ 2013 (69)
133
+ December 2012 (3)
134
+ November 2012 (4)
135
+ October 2012 (6)
136
+ September 2012 (4)
137
+ August 2012 (7)
138
+ July 2012 (6)
139
+ June 2012 (6)
140
+ May 2012 (2)
141
+ April 2012 (11)
142
+ March 2012 (4)
143
+ February 2012 (9)
144
+ January 2012 (12)
145
+ 2012 (74)
146
+ December 2011 (9)
147
+ November 2011 (4)
148
+ October 2011 (12)
149
+ September 2011 (26)
150
+ August 2011 (10)
151
+ July 2011 (7)
152
+ June 2011 (13)
153
+ May 2011 (7)
154
+ April 2011 (5)
155
+ March 2011 (7)
156
+ February 2011 (5)
157
+ January 2011 (6)
158
+ 2011 (111)
159
+ December 2010 (8)
160
+ November 2010 (17)
161
+ October 2010 (7)
162
+ September 2010 (15)
163
+ August 2010 (6)
164
+ July 2010 (3)
165
+ June 2010 (4)
166
+ May 2010 (5)
167
+ April 2010 (5)
168
+ March 2010 (7)
169
+ February 2010 (9)
170
+ January 2010 (5)
171
+ 2010 (91)
172
+ December 2009 (2)
173
+ November 2009 (3)
174
+ October 2009 (3)
175
+ September 2009 (5)
176
+ August 2009 (6)
177
+ July 2009 (3)
178
+ June 2009 (7)
179
+ May 2009 (6)
180
+ April 2009 (13)
181
+ March 2009 (4)
182
+ February 2009 (3)
183
+ January 2009 (7)
184
+ 2009 (62)
185
+ December 2008 (9)
186
+ November 2008 (6)
187
+ October 2008 (9)
188
+ September 2008 (4)
189
+ August 2008 (3)
190
+ July 2008 (7)
191
+ June 2008 (11)
192
+ May 2008 (9)
193
+ April 2008 (6)
194
+ March 2008 (4)
195
+ February 2008 (3)
196
+ January 2008 (4)
197
+ 2008 (75)
198
+ December 2007 (5)
199
+ November 2007 (9)
200
+ October 2007 (8)
201
+ September 2007 (2)
202
+ August 2007 (6)
203
+ July 2007 (4)
204
+ June 2007 (3)
205
+ May 2007 (7)
206
+ April 2007 (5)
207
+ March 2007 (2)
208
+ February 2007 (5)
209
+ 2007 (56)
210
+ December 2006 (5)
211
+ November 2006 (4)
212
+ October 2006 (2)
213
+ September 2006 (8)
214
+ August 2006 (1)
215
+ July 2006 (2)
216
+ June 2006 (5)
217
+ May 2006 (2)
218
+ April 2006 (6)
219
+ March 2006 (12)
220
+ February 2006 (3)
221
+ January 2006 (4)
222
+ 2006 (54)
223
+ December 2005 (8)
224
+ October 2005 (4)
225
+ September 2005 (4)
226
+ August 2005 (4)
227
+ July 2005 (2)
228
+ June 2005 (8)
229
+ May 2005 (7)
230
+ April 2005 (6)
231
+ March 2005 (3)
232
+ February 2005 (3)
233
+ January 2005 (3)
234
+ 2005 (52)
235
+ December 2004 (3)
236
+ November 2004 (2)
237
+ October 2004 (5)
238
+ September 2004 (5)
239
+ August 2004 (5)
240
+ July 2004 (1)
241
+ June 2004 (3)
242
+ May 2004 (6)
243
+ April 2004 (4)
244
+ March 2004 (6)
245
+ February 2004 (12)
246
+ January 2004 (5)
247
+ 2004 (57)
248
+ December 2003 (5)
249
+ November 2003 (3)
250
+ October 2003 (5)
251
+ September 2003 (15)
252
+ August 2003 (3)
253
+ July 2003 (3)
254
+ June 2003 (4)
255
+ April 2003 (4)
256
+ March 2003 (4)
257
+ February 2003 (3)
258
+ January 2003 (1)
259
+ 2003 (50)
260
+ December 2002 (3)
261
+ November 2002 (6)
262
+ October 2002 (7)
263
+ September 2002 (10)
264
+ August 2002 (3)
265
+ July 2002 (3)
266
+ June 2002 (5)
267
+ May 2002 (5)
268
+ April 2002 (5)
269
+ March 2002 (5)
270
+ January 2002 (1)
271
+ 2002 (53)
272
+ November 2001 (2)
273
+ October 2001 (5)
274
+ September 2001 (5)
275
+ August 2001 (6)
276
+ July 2001 (4)
277
+ June 2001 (6)
278
+ May 2001 (3)
279
+ April 2001 (5)
280
+ March 2001 (4)
281
+ February 2001 (3)
282
+ January 2001 (5)
283
+ 2001 (48)
284
+ December 2000 (1)
285
+ November 2000 (4)
286
+ October 2000 (5)
287
+ September 2000 (5)
288
+ August 2000 (9)
289
+ July 2000 (9)
290
+ June 2000 (16)
291
+ May 2000 (17)
292
+ April 2000 (7)
293
+ March 2000 (6)
294
+ February 2000 (3)
295
+ January 2000 (5)
296
+ 2000 (87)
297
+ December 1999 (5)
298
+ November 1999 (8)
299
+ October 1999 (3)
300
+ September 1999 (14)
301
+ August 1999 (3)
302
+ July 1999 (5)
303
+ June 1999 (15)
304
+ May 1999 (9)
305
+ April 1999 (6)
306
+ March 1999 (11)
307
+ February 1999 (3)
308
+ January 1999 (4)
309
+ 1999 (86)
310
+ December 1998 (2)
311
+ November 1998 (10)
312
+ October 1998 (3)
313
+ September 1998 (31)
314
+ August 1998 (4)
315
+ July 1998 (5)
316
+ June 1998 (9)
317
+ May 1998 (5)
318
+ April 1998 (5)
319
+ March 1998 (7)
320
+ February 1998 (5)
321
+ 1998 (86)
322
+ December 1997 (7)
323
+ November 1997 (3)
324
+ October 1997 (3)
325
+ September 1997 (12)
326
+ August 1997 (3)
327
+ July 1997 (8)
328
+ June 1997 (5)
329
+ May 1997 (4)
330
+ April 1997 (3)
331
+ March 1997 (2)
332
+ February 1997 (9)
333
+ January 1997 (7)
334
+ 1997 (66)
335
+ December 1996 (1)
336
+ November 1996 (4)
337
+ October 1996 (5)
338
+ September 1996 (23)
339
+ August 1996 (10)
340
+ July 1996 (4)
341
+ June 1996 (11)
342
+ May 1996 (6)
343
+ April 1996 (9)
344
+ March 1996 (4)
345
+ February 1996 (6)
346
+ January 1996 (2)
347
+ 1996 (85)
348
+ December 1995 (4)
349
+ November 1995 (2)
350
+ October 1995 (2)
351
+ September 1995 (23)
352
+ August 1995 (3)
353
+ July 1995 (2)
354
+ June 1995 (8)
355
+ May 1995 (2)
356
+ April 1995 (4)
357
+ March 1995 (2)
358
+ February 1995 (1)
359
+ January 1995 (2)
360
+ 1995 (55)
361
+ December 1994 (9)
362
+ November 1994 (1)
363
+ October 1994 (2)
364
+ September 1994 (2)
365
+ August 1994 (5)
366
+ July 1994 (2)
367
+ June 1994 (3)
368
+ May 1994 (4)
369
+ April 1994 (2)
370
+ March 1994 (4)
371
+ February 1994 (3)
372
+ January 1994 (2)
373
+ 1994 (39)
374
+ December 1993 (1)
375
+ September 1993 (1)
376
+ July 1993 (2)
377
+ June 1993 (1)
378
+ March 1993 (2)
379
+ February 1993 (4)
380
+ 1993 (11)
381
+ December 1992 (1)
382
+ October 1992 (1)
383
+ September 1992 (3)
384
+ August 1992 (1)
385
+ July 1992 (1)
386
+ June 1992 (1)
387
+ May 1992 (1)
388
+ March 1992 (1)
389
+ February 1992 (2)
390
+ January 1992 (1)
391
+ 1992 (13)
392
+ December 1991 (2)
393
+ November 1991 (1)
394
+ October 1991 (2)
395
+ July 1991 (2)
396
+ May 1991 (2)
397
+ March 1991 (2)
398
+ February 1991 (1)
399
+ January 1991 (6)
400
+ 1991 (18)
401
+ December 1990 (2)
402
+ October 1990 (1)
403
+ August 1990 (2)
404
+ July 1990 (4)
405
+ May 1990 (2)
406
+ April 1990 (1)
407
+ March 1990 (1)
408
+ February 1990 (1)
409
+ January 1990 (2)
410
+ 1990 (16)
411
+ December 1989 (1)
412
+ November 1989 (1)
413
+ June 1989 (2)
414
+ February 1989 (1)
415
+ January 1989 (1)
416
+ 1989 (6)
417
+ November 1988 (2)
418
+ September 1988 (1)
419
+ July 1988 (1)
420
+ May 1988 (2)
421
+ April 1988 (2)
422
+ March 1988 (2)
423
+ 1988 (10)
424
+ December 1987 (1)
425
+ November 1987 (1)
426
+ October 1987 (2)
427
+ June 1987 (8)
428
+ May 1987 (1)
429
+ April 1987 (1)
430
+ February 1987 (1)
431
+ January 1987 (1)
432
+ 1987 (16)
433
+ December 1986 (1)
434
+ November 1986 (1)
435
+ August 1986 (2)
436
+ June 1986 (2)
437
+ February 1986 (3)
438
+ 1986 (9)
439
+ November 1985 (1)
440
+ September 1985 (1)
441
+ August 1985 (2)
442
+ July 1985 (1)
443
+ June 1985 (1)
444
+ April 1985 (1)
445
+ January 1985 (2)
446
+ 1985 (9)
447
+ December 1984 (1)
448
+ November 1984 (1)
449
+ October 1984 (1)
450
+ September 1984 (1)
451
+ August 1984 (2)
452
+ July 1984 (2)
453
+ May 1984 (3)
454
+ March 1984 (2)
455
+ February 1984 (1)
456
+ January 1984 (2)
457
+ 1984 (16)
458
+ November 1983 (1)
459
+ August 1983 (1)
460
+ June 1983 (1)
461
+ May 1983 (2)
462
+ April 1983 (1)
463
+ February 1983 (1)
464
+ 1983 (7)
465
+ November 1982 (1)
466
+ October 1982 (2)
467
+ August 1982 (1)
468
+ July 1982 (2)
469
+ June 1982 (4)
470
+ May 1982 (1)
471
+ April 1982 (3)
472
+ March 1982 (1)
473
+ February 1982 (4)
474
+ 1982 (19)
475
+ December 1981 (2)
476
+ September 1981 (1)
477
+ August 1981 (1)
478
+ July 1981 (1)
479
+ February 1981 (7)
480
+ January 1981 (6)
481
+ 1981 (18)
482
+ December 1980 (4)
483
+ November 1980 (1)
484
+ October 1980 (4)
485
+ September 1980 (8)
486
+ August 1980 (4)
487
+ July 1980 (2)
488
+ June 1980 (2)
489
+ May 1980 (2)
490
+ April 1980 (2)
491
+ January 1980 (4)
492
+ 1980 (33)
493
+ December 1979 (3)
494
+ September 1979 (4)
495
+ August 1979 (6)
496
+ July 1979 (1)
497
+ June 1979 (4)
498
+ May 1979 (2)
499
+ April 1979 (2)
500
+ March 1979 (4)
501
+ January 1979 (4)
502
+ 1979 (30)
503
+ December 1978 (1)
504
+ November 1978 (3)
505
+ October 1978 (1)
506
+ September 1978 (5)
507
+ August 1978 (4)
508
+ July 1978 (1)
509
+ June 1978 (1)
510
+ May 1978 (1)
511
+ April 1978 (2)
512
+ March 1978 (3)
513
+ 1978 (22)
514
+ November 1977 (1)
515
+ October 1977 (2)
516
+ September 1977 (1)
517
+ August 1977 (1)
518
+ July 1977 (2)
519
+ June 1977 (1)
520
+ February 1977 (1)
521
+ 1977 (9)
522
+ November 1976 (1)
523
+ June 1976 (8)
524
+ May 1976 (1)
525
+ April 1976 (4)
526
+ March 1976 (1)
527
+ February 1976 (3)
528
+ January 1976 (5)
529
+ 1976 (23)
530
+ December 1975 (2)
531
+ November 1975 (6)
532
+ October 1975 (6)
533
+ September 1975 (1)
534
+ August 1975 (3)
535
+ July 1975 (1)
536
+ March 1975 (1)
537
+ 1975 (20)
538
+ December 1974 (10)
539
+ November 1974 (4)
540
+ October 1974 (1)
541
+ September 1974 (2)
542
+ August 1974 (1)
543
+ July 1974 (1)
544
+ June 1974 (5)
545
+ May 1974 (2)
546
+ April 1974 (3)
547
+ March 1974 (1)
548
+ 1974 (30)
549
+ December 1973 (3)
550
+ November 1973 (2)
551
+ October 1973 (2)
552
+ September 1973 (1)
553
+ August 1973 (5)
554
+ June 1973 (3)
555
+ May 1973 (5)
556
+ April 1973 (6)
557
+ March 1973 (1)
558
+ February 1973 (4)
559
+ January 1973 (3)
560
+ 1973 (35)
561
+ December 1972 (8)
562
+ November 1972 (2)
563
+ October 1972 (2)
564
+ September 1972 (1)
565
+ August 1972 (3)
566
+ July 1972 (3)
567
+ June 1972 (15)
568
+ May 1972 (11)
569
+ April 1972 (10)
570
+ March 1972 (3)
571
+ February 1972 (3)
572
+ January 1972 (10)
573
+ 1972 (71)
574
+ December 1971 (2)
575
+ November 1971 (2)
576
+ October 1971 (4)
577
+ September 1971 (3)
578
+ August 1971 (1)
579
+ July 1971 (3)
580
+ June 1971 (4)
581
+ May 1971 (11)
582
+ April 1971 (4)
583
+ March 1971 (1)
584
+ February 1971 (2)
585
+ January 1971 (3)
586
+ 1971 (40)
587
+ December 1970 (6)
588
+ November 1970 (6)
589
+ September 1970 (3)
590
+ August 1970 (3)
591
+ July 1970 (7)
592
+ June 1970 (11)
593
+ May 1970 (4)
594
+ April 1970 (3)
595
+ March 1970 (6)
596
+ February 1970 (4)
597
+ 1970 (53)
598
+ December 1969 (3)
599
+ September 1969 (1)
600
+ August 1969 (1)
601
+ July 1969 (4)
602
+ June 1969 (1)
603
+ April 1969 (2)
604
+ 1969 (12)
605
+ November 1968 (1)
606
+ March 1968 (3)
607
+ January 1968 (2)
608
+ 1968 (6)
609
+ November 1967 (5)
610
+ September 1967 (1)
611
+ 1967 (6)
612
+ April 1966 (1)
613
+ 1966 (1)
614
+ November 1965 (1)
615
+ September 1965 (1)
616
+ April 1965 (1)
617
+ 1965 (3)
618
+ December 1964 (1)
619
+ October 1964 (1)
620
+ 1964 (2)
621
+ June 1962 (1)
622
+ 1962 (1)
623
+ November 1961 (1)
624
+ 1961 (1)
625
+ October 1959 (1)
626
+ 1959 (1)
627
+ October 1957 (1)
628
+ 1957 (1)
629
+ May 1945 (1)
630
+ 1945 (1)
631
+ May 1941 (1)
632
+ 1941 (1)
633
+ August 1940 (1)
634
+ 1940 (1)
635
+ February 1920 (1)
636
+ 1920 (1)
637
+ May 1899 (1)
638
+ 1899 (1)