1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
|
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# UCCS Exif\n",
"\n",
"- read in all images and extract metadata\n",
"- export to CSV"
]
},
{
"cell_type": "code",
"execution_count": 216,
"metadata": {},
"outputs": [],
"source": [
"%reload_ext autoreload\n",
"%autoreload 2\n",
"\n",
"from os.path import join\n",
"from glob import glob\n",
"from pprint import pprint\n",
"\n",
"import collections\n",
"import cv2 as cv\n",
"import pandas as pd\n",
"from PIL import Image, ImageDraw, ExifTags\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import matplotlib.mlab as mlab\n",
"import matplotlib.gridspec as gridspec\n",
"import math\n",
"\n",
"from pathlib import Path\n",
"from tqdm import tqdm_notebook as tqdm"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"fp_dir_uccs = '/data_store/datasets/people/uccs/dataset'\n",
"fp_dir_ims = '/data_store/datasets/people/uccs/dataset/media/original'\n",
"fp_out_exif = '/data_store/datasets/people/uccs/processed/exif/uccs_camera_exif.csv'\n",
"fp_out_exif_test = '/data_store/datasets/people/uccs/processed/exif/uccs_camera_exif_test.csv'"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10917\n"
]
}
],
"source": [
"fp_ims = glob(join(fp_dir_ims, '*.jpg'))\n",
"print(len(fp_ims))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def get_exif(fp_im, raw=False):\n",
" im = Image.open(fp_im)\n",
" exif_raw = im._getexif() \n",
" exif_data = {}\n",
" for tag, value in exif_raw.items():\n",
" decoded = ExifTags.TAGS.get(tag, tag)\n",
" exif_data[decoded] = value\n",
" if raw:\n",
" return exif_data\n",
" else:\n",
" im_w = exif_data['ExifImageWidth']\n",
" im_h = exif_data['ExifImageHeight']\n",
" #date_time_digitized = exif_data['DateTimeDigitized']\n",
" #date_time_original = exif_data['DateTimeOriginal']\n",
" date_times = exif_data['DateTime'].split(' ')\n",
" date_time = date_times[0].replace(':', '-') + ' ' + date_times[1]\n",
" copyright = exif_data['Copyright']\n",
" aperture_value = exif_data['ApertureValue'][0] / exif_data['ApertureValue'][0]\n",
" fnumber = exif_data['FNumber'][0] / exif_data['FNumber'][1]\n",
" focal_length = int(exif_data['FocalLength'][0] / exif_data['FocalLength'][1])\n",
" iso = int(exif_data['ISOSpeedRatings'])\n",
" exposure_mode = exif_data['ExposureMode']\n",
" exposure_program = exif_data['ExposureProgram']\n",
" #focal_plane_x = exif_data['FocalPlaneXResolution'][0] / exif_data['FocalPlaneXResolution'][1]\n",
" #focal_plane_y = exif_data['FocalPlaneYResolution'][0] / exif_data['FocalPlaneYResolution'][1]\n",
" result = {\n",
" # 'image_width': im_w,\n",
" # 'image_height': im_h,\n",
" 'date_time': date_time,\n",
" #'date_time_digitized': date_time_digitized,\n",
" #'date_time_original': date_time_original,\n",
" #'copyright': copyright,\n",
" 'aperture': aperture_value,\n",
" 'fnumber': fnumber,\n",
" 'focal_length': focal_length,\n",
" 'exposure_program': exposure_program,\n",
" 'exposure_mode': exposure_mode,\n",
" 'iso': iso\n",
" }\n",
" return result\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "285797b2b773435aba4a89740ddd38e4",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"HBox(children=(IntProgress(value=0, max=10917), HTML(value='')))"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"exif_data = []\n",
"for fp_im in tqdm(fp_ims):\n",
" im_exif = get_exif(fp_im)\n",
" im_exif.update({'filename': Path(fp_im).name})\n",
" exif_data.append(im_exif)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"for ex in exif_data:\n",
" #ex['focal_length'] = int(ex['focal_length'])\n",
" splits = ex['date_time'].split(' ')\n",
" ex['date'] = splits[0]\n",
" ex['time'] = splits[1]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"df_exif = pd.DataFrame.from_dict(exif_data)\n",
"df_exif['date_time'] = pd.to_datetime(df_exif['date_time'])\n",
"#df_exif.to_csv(fp_out_exif, index=False)\n",
"df_exif.to_csv(fp_out_exif, index=False)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>aperture</th>\n",
" <th>date</th>\n",
" <th>date_time</th>\n",
" <th>exposure_mode</th>\n",
" <th>exposure_program</th>\n",
" <th>filename</th>\n",
" <th>fnumber</th>\n",
" <th>focal_length</th>\n",
" <th>iso</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.0</td>\n",
" <td>2013-01-29</td>\n",
" <td>2013-01-29 12:07:45</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>e87a43c32cc697d3e6b40be3e3594057.jpg</td>\n",
" <td>5.6</td>\n",
" <td>800</td>\n",
" <td>100</td>\n",
" <td>12:07:45</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.0</td>\n",
" <td>2012-04-03</td>\n",
" <td>2012-04-03 11:07:53</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>9d15290fdd811d5cbaeb44448a4b54d3.jpg</td>\n",
" <td>5.6</td>\n",
" <td>800</td>\n",
" <td>400</td>\n",
" <td>11:07:53</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.0</td>\n",
" <td>2013-01-29</td>\n",
" <td>2013-01-29 12:08:01</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>d9cad73c2f47022195169e07f21dc567.jpg</td>\n",
" <td>5.6</td>\n",
" <td>800</td>\n",
" <td>100</td>\n",
" <td>12:08:01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.0</td>\n",
" <td>2013-02-20</td>\n",
" <td>2013-02-20 12:16:35</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>decf44da0b963a33c88362e613878820.jpg</td>\n",
" <td>5.6</td>\n",
" <td>800</td>\n",
" <td>160</td>\n",
" <td>12:16:35</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1.0</td>\n",
" <td>2013-02-19</td>\n",
" <td>2013-02-19 16:30:51</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4a59b6b9b50cf6fc87e45caa0fdb86df.jpg</td>\n",
" <td>5.6</td>\n",
" <td>800</td>\n",
" <td>400</td>\n",
" <td>16:30:51</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" aperture date date_time exposure_mode exposure_program \\\n",
"0 1.0 2013-01-29 2013-01-29 12:07:45 1 1 \n",
"1 1.0 2012-04-03 2012-04-03 11:07:53 0 3 \n",
"2 1.0 2013-01-29 2013-01-29 12:08:01 1 1 \n",
"3 1.0 2013-02-20 2013-02-20 12:16:35 1 1 \n",
"4 1.0 2013-02-19 2013-02-19 16:30:51 1 1 \n",
"\n",
" filename fnumber focal_length iso time \n",
"0 e87a43c32cc697d3e6b40be3e3594057.jpg 5.6 800 100 12:07:45 \n",
"1 9d15290fdd811d5cbaeb44448a4b54d3.jpg 5.6 800 400 11:07:53 \n",
"2 d9cad73c2f47022195169e07f21dc567.jpg 5.6 800 100 12:08:01 \n",
"3 decf44da0b963a33c88362e613878820.jpg 5.6 800 160 12:16:35 \n",
"4 4a59b6b9b50cf6fc87e45caa0fdb86df.jpg 5.6 800 400 16:30:51 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_exif.head()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"exif_dates = df_exif.groupby('date')"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"18\n",
"['2012-02-23',\n",
" '2012-03-06',\n",
" '2012-03-08',\n",
" '2012-03-13',\n",
" '2012-03-20',\n",
" '2012-03-22',\n",
" '2012-04-03',\n",
" '2012-04-12',\n",
" '2012-04-17',\n",
" '2012-04-24',\n",
" '2012-04-25',\n",
" '2012-04-26',\n",
" '2013-01-28',\n",
" '2013-01-29',\n",
" '2013-02-13',\n",
" '2013-02-19',\n",
" '2013-02-20',\n",
" '2013-02-26']\n"
]
}
],
"source": [
"dates = list(exif_dates.groups.keys())\n",
"print(len(dates))\n",
"pprint(dates)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Parse CSV to Markdown"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"df_exif = pd.read_csv(fp_out_exif)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>aperture</th>\n",
" <th>date</th>\n",
" <th>date_time</th>\n",
" <th>exposure_mode</th>\n",
" <th>exposure_program</th>\n",
" <th>filename</th>\n",
" <th>fnumber</th>\n",
" <th>focal_length</th>\n",
" <th>iso</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.0</td>\n",
" <td>2013-01-29</td>\n",
" <td>2013-01-29 12:07:45</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>e87a43c32cc697d3e6b40be3e3594057.jpg</td>\n",
" <td>5.6</td>\n",
" <td>800</td>\n",
" <td>100</td>\n",
" <td>12:07:45</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.0</td>\n",
" <td>2012-04-03</td>\n",
" <td>2012-04-03 11:07:53</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>9d15290fdd811d5cbaeb44448a4b54d3.jpg</td>\n",
" <td>5.6</td>\n",
" <td>800</td>\n",
" <td>400</td>\n",
" <td>11:07:53</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.0</td>\n",
" <td>2013-01-29</td>\n",
" <td>2013-01-29 12:08:01</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>d9cad73c2f47022195169e07f21dc567.jpg</td>\n",
" <td>5.6</td>\n",
" <td>800</td>\n",
" <td>100</td>\n",
" <td>12:08:01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.0</td>\n",
" <td>2013-02-20</td>\n",
" <td>2013-02-20 12:16:35</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>decf44da0b963a33c88362e613878820.jpg</td>\n",
" <td>5.6</td>\n",
" <td>800</td>\n",
" <td>160</td>\n",
" <td>12:16:35</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1.0</td>\n",
" <td>2013-02-19</td>\n",
" <td>2013-02-19 16:30:51</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4a59b6b9b50cf6fc87e45caa0fdb86df.jpg</td>\n",
" <td>5.6</td>\n",
" <td>800</td>\n",
" <td>400</td>\n",
" <td>16:30:51</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" aperture date date_time exposure_mode exposure_program \\\n",
"0 1.0 2013-01-29 2013-01-29 12:07:45 1 1 \n",
"1 1.0 2012-04-03 2012-04-03 11:07:53 0 3 \n",
"2 1.0 2013-01-29 2013-01-29 12:08:01 1 1 \n",
"3 1.0 2013-02-20 2013-02-20 12:16:35 1 1 \n",
"4 1.0 2013-02-19 2013-02-19 16:30:51 1 1 \n",
"\n",
" filename fnumber focal_length iso time \n",
"0 e87a43c32cc697d3e6b40be3e3594057.jpg 5.6 800 100 12:07:45 \n",
"1 9d15290fdd811d5cbaeb44448a4b54d3.jpg 5.6 800 400 11:07:53 \n",
"2 d9cad73c2f47022195169e07f21dc567.jpg 5.6 800 100 12:08:01 \n",
"3 decf44da0b963a33c88362e613878820.jpg 5.6 800 160 12:16:35 \n",
"4 4a59b6b9b50cf6fc87e45caa0fdb86df.jpg 5.6 800 400 16:30:51 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_exif.head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"date_groups = df_exif.groupby('date')"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']"
]
},
{
"cell_type": "code",
"execution_count": 350,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Monday 1056\n",
"Tuesday 7029\n",
"Wednesday 1715\n",
"Thursday 1117\n",
"Friday 0\n",
"Saturday 0\n",
"Sunday 0\n",
"2012-02-23 132\n",
"2012-03-06 288\n",
"2012-03-08 506\n",
"2012-03-13 160\n",
"2012-03-20 1840\n",
"2012-03-22 445\n",
"2012-04-03 1639\n",
"2012-04-12 14\n",
"2012-04-17 19\n",
"2012-04-24 63\n",
"2012-04-25 11\n",
"2012-04-26 20\n",
"2013-01-28 1056\n",
"2013-01-29 1561\n",
"2013-02-13 739\n",
"2013-02-19 723\n",
"2013-02-20 965\n",
"2013-02-26 736\n",
"18\n"
]
}
],
"source": [
"date_times = {}\n",
"weekday_times = {}\n",
"cal_date_counts = {}\n",
"\n",
"for d in days:\n",
" date_times[d] = []\n",
" weekday_times = []\n",
" \n",
"for date_str, date_group in date_groups:\n",
" \n",
" year, month, date = (int(x) for x in date_str.split('-')) \n",
" day_idx = datetime.date(year, month, date).weekday()\n",
" day = days[day_idx]\n",
" for item in date_group.itertuples():\n",
" hour, minute, second = (int(x) for x in item.time.split(':'))\n",
" dt = datetime.datetime(year, month, date, hour, minute, second, 0)\n",
" date_times[day].append(dt)\n",
" # date count\n",
" if date_str not in cal_date_counts.keys():\n",
" cal_date_counts[date_str] = 0\n",
" cal_date_counts[date_str] += 1\n",
"\n",
"date_counts = {}\n",
"for day, hours in date_times.items():\n",
" date_counts[day] = len(hours)\n",
" print(day, len(hours))\n",
" \n",
"# print date counts\n",
"for k,v in cal_date_counts.items():\n",
" print(k,v)\n",
"\n",
"print(len(cal_date_counts))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plot Data"
]
},
{
"cell_type": "code",
"execution_count": 317,
"metadata": {},
"outputs": [],
"source": [
"plt.style.use(['dark_background'])\n",
"bar_clr = '#9E0142'\n",
"face_clr = '#181818'\n",
"grid_clr = '#333333'\n",
"frame_clr = '#333333'"
]
},
{
"cell_type": "code",
"execution_count": 338,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJ8AAAHjCAYAAACNVb5sAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XmQVtWdP+APm7iFJi5MsyWjGTEJo6X2aASUzQWUqHEiJCgZk+CWCDKGqD9RcUEFJyqaaAIxZkZkpMEtGhWBISJ2g1HBPQZxAQSaTQU0EBfg94fFW0FQwfRtxDxPFVX9nvcu33PvebvoT5173nrl5eXrAgAAAAAFqL+1CwAAAADg80v4BAAAAEBhhE8AAAAAFEb4BAAAAEBhhE8AAAAAFEb4BAAAAEBhGuy8886XbO0iAAA+ix577LHstNNOefTRR7d2KXwC9woAPrvMfAKAAtx55525+uqrN2pv3rx5ampq0q5duw3au3btmttuuy3PP/98XnnllTzyyCO56qqrsueee27xdgcddFAqKyvz3HPP5dVXX83jjz+em266Ka1atfrIenv16pWamprU1NRkwYIFefHFF/OHP/whV155Zfbaa68t7v/VV1+dO++8c4v3qw1jx47Ndddd94nb/W2fa2pq8swzz2TUqFH56le/Wus1vfbaa+nVq1etH/ejfPvb387dd9+dWbNm5eWXX85DDz2UCy+8MOXl5bV6nq15n7cFjz32WGl8zZkzJ0899VQqKytz4oknpkGDBlu7PACoM8InANjKzj777IwaNSpz587NKaecko4dO+YnP/lJ3n333Zx33nlbtN1ee+2VysrKvPLKK+nVq1c6duyYAQMG5LXXXsvOO+/8sXW8//772XfffbPffvvlyCOPzFVXXZU99tgjkyZNSo8ePQq9BlvL+j7vu++++cEPfpDddtstY8aMyRe+8IWtXdqnds011+Saa67Jo48+mpNOOimdOnXKhRdemGbNmuWMM87Y2uV9pEaNGm3tEj6VevXqpX79j/4v9S9+8Yvsu+++adeuXU4++eRUVVVl8ODBufPOO7PDDjvUYaUAsPUInwBgK9p3331z7rnnZtiwYTn//PMzffr0zJ8/P48//nguuuiinHvuuVu0XefOnbNq1aoMGjQof/rTn/Laa69l2rRpueyyy/LnP//5E+tZunRpli5dmjlz5mTChAnp3bt3Jk6cmKuvvroUyJSVleWGG27IE088UZp9dfrpp5eOMXDgwJx00klp3759adbH+lk/p5xySiZNmpSXXnopTz/9dH71q1+lWbNmpX0bNmyYSy65JDNmzCjNFPnVr361QY3HHXdcJk2alFdffTWPPfZYLrnkktIf8dddd106duyY73znO6Vzf3iW2Uf1ecaMGbn44otTXl6eioqK0vuNGjXKkCFD8qc//SnPPPNMBg8evEHY0LBhwwwaNCgzZ87M3Llz8/DDD+f4448vvf/YY4+lYcOGuf7660s1rde1a9dMmDAhc+bMybPPPpuhQ4duEEi0adMmY8aMyZ///Oe8/PLLmTp1ak444YSP7EuPHj1y4oknZsCAAbnqqqvyxBNPZP78+amurs5ZZ52V4cOHb9Y9XH8tx44dm9NPPz0zZ87MK6+8kt/85jfZZZddPvE+19TU5Nvf/vYGx/vwjLTHHnss5513XoYOHZrnn38+9957b5Jkxx13zJAhQ0rnnDhxYo4++ugNjvX1r3899957b1599dVUVVXlmGOO+chrsl6vXr3y2muv5dBDD82UKVPy6quv5oEHHsg+++yzwXb77rtvKisr89JLL+W5557LzTffvMGswYEDB2batGk59thj88gjj2TevHkfOztw1apVWbp0aWpqavL000/nhhtuyLe//e0ccMABG4SBxx9/fO6///7MmjUrzz//fG699dYNZjTedddd+dnPfrbR8adPn56BAwd+Yv8BYGsSPgHAVnTCCSdk1apVGTly5CbfX7FixRZtt3jx4pSVlaVr1661VuONN96Ypk2bpmPHjkmS7bbbLi+88EJ+8IMfpFOnTrnuuutyzjnn5Dvf+U6S5Fe/+lXuuuuuPP7446VZReuDhSS57LLL0qVLl/zwhz9My5YtM2LEiNJ7ffv2zTHHHJN+/fqlQ4cOOfnkkzNz5szS+7169cqwYcMycuTIdOrUKWeddVYOPfTQ/Nd//VeS5KKLLsqjjz6ae+65p3TuJ554YrP7+te//jXJB4HSej/84Q+zePHi9OjRIxdeeGFOPfXU9OzZs/T++eefn5NOOimDBw9Oly5dcuedd+aGG27IIYcckiQ56qij8v777+eiiy4q1ZQkX/va13LLLbfk0UcfzRFHHJEBAwbkiCOOKPVl/bV84403cuyxx6ZLly655JJLsnz58o+s/4QTTsgrr7ySe+65Z5Pvrx8nn3QP19t///3Trl27nHjiiTnppJPyta99Lddee22pto+7z5ujb9++WbZsWY455pgMGDAgSTJq1Kh8/etfzxlnnJHOnTtn1KhR+dWvflW6nttvv31Gjx6dlStXpkePHhkwYEB+/OMfZ7fddvvE89WvXz8XXXRRzj///Bx99NFZtmxZbr311lLg16ZNm9x111154okn0r1795xwwglZs2ZNKisr07hx49JxysvL8/3vfz8DBgxIp06dMn/+/C3q9/PPP58pU6bk2GOPLbVtt912GT58eI488sh85zvfyZo1a3LrrbeWZoSNGjUq3/rWt7LjjjuW9jnkkEPSunXrVFZWbtH5AaCuNfzkTQCAouy5556ZM2dO3nvvvVrZ7ve//306duyYW2+9NcuXL8/TTz+d6urq3H333Vm4cOGnqnH9jKkvf/nLST6YKXTjjTeW3n/ttdey33775fjjj8/YsWOzatWqrF69Ou+9916WLl26wbF+85vfbLDfoEGDMmnSpJSXl2fRokVp1apVXnnllUyfPj1JsmDBgjz99NOlfX76059m6NChueOOO5Ik8+bNywUXXJC77747F154YVasWJF33303f/3rXzc69yfZdddd89Of/jQrV67Mk08+WWr/4x//mBtuuCFJ8uqrr+a73/1uOnXqlLFjx2aHHXZI3759c/HFF+e+++5Lkvz85z/PfvvtlwEDBqSqqiqvv/56kmTlypUb1PTjH/84zz77bC6++OIkyezZs3PBBRfkt7/9ba666qrMnz8/rVq1ysiRI/Piiy+W+vtx9txzz8yePfsT+/pJ93C9+vXrp3///nnrrbeSJIMGDUplZWX22GOPvPrqqx95nzfXU089lWuuuab0ul27dqmoqMi+++5bOufo0aNzwAEHpG/fvqmqqsq///u/p0mTJjnzzDNLYdp//ud/ZsqUKZ94vvr16+eyyy4rja/+/ftnxowZOf7443Pbbbflxz/+cSZNmrTBem39+vXLn//853Tp0iUPPvhgkqRx48bp379/FixY8Kn6nXzwuVofqCXZ4Lqv79MLL7yQ/fbbL48//njuv//+XH755fnWt76V2267LUly4okn5qGHHvq76gCAuiB8AoCtqF69elm3bl2tbbdu3br89Kc/zVVXXZUOHTpkv/32y/e+972cffbZ+d73vlf6o3tLa1x/7PWvzzzzzBx33HFp0aJFGjdunIYNG27W7I927drlrLPOyl577ZWysrLS42utWrXKokWLUllZmbFjx2b69OmZOnVqpk6dmokTJ+a9997LrrvumtatW+eSSy7J4MGDN6rvn//5nzcIqjZHw4YN89JLLyVJdtppp8yePTunnnpqKTBKPpil8rdqamrypS99qXTOxo0bb/QNa9OnT0///v0/9tx77713qqqqNtqvfv36adOmTebPn58RI0bkmmuuyXe+851MmzYtEydOzLPPPvuRx9yS8bQ59/DFF18shUDJB4/KJR+sLfbqq69+4nk+yVNPPbXB6/322y/bbbfdBuFf8sGjj+vP16ZNm8yePbsUPCXJrFmzNnj9cWbMmFH6ecWKFZk9e3batGlTOv8///M/l8bEeo0bN84ee+xRer106dK/O/D58L1q27ZtBg4cmLZt22aXXXYpjetWrVrl8ccfz3vvvZexY8fmpJNOym233ZYvfvGLOeqoo/KjH/3o76oDAOqC8AkACvDuu++mSZMmG7Wvb3vnnXeSJC+//HIOPvjgNGrU6GNnNW3udustXbo0v/vd7/K73/0uV1xxRSZNmpSBAwd+7HpBH2XvvfdOksydOzdJcsYZZ6R///655JJL8uyzz+btt9/OaaedlsMPP/xjj9OyZcv87//+b+64445ce+21eeONN9K8efPcfvvtpUeLnn/++Rx00EHp1KlT2rdvn8suuyznnntuevToUfpj/KKLLkp1dfVGx//btZQ21/vvv5/DDz8869aty7Jly/KXv/xlo20+fL3XrVu30QLTHw58tiQs/Lj24cOH584770yXLl1yyCGH5Kyzzsovf/nLXHXVVZvc7+WXXy4FKR/n097DzbV27drS/VpvUwuKr1q1aoPX9evXz8qVK3PUUUdttO36+7C513Zz/W2d9evXzx133FGa6fa33nzzzdLPH6770/jqV7+aOXPmJEl22GGHVFZW5rHHHsvZZ59dmkk2ZcqUDa7brbfemjPOOCNf+9rXcsghh2T58uWZNGnS310LABTNmk8AUICXXnop++6770Yhxf777581a9aUZnHceeed2XHHHTda7Hm9srKyLdpuU957773MnTt3s9bE2ZR+/frljTfeyMMPP5wkOfjgg/PQQw9lzJgxee655zJnzpwNFkZef84Pf5X8fvvtlx122CGDBw/O448/npdffjm77777RudbtWpVxo8fn4suuijdu3dPmzZt0q5duyxbtiwLFizIV77ylcyZM2ejf+sDvU2d++PMmTMnc+fO3WTwtDn7/vWvf91oUfODDz44s2bNKr3eVE2zZs3aaL927dpl7dq1pcfskg8etbvlllty6qmn5mc/+1n+4z/+4yPrueOOO7LnnnvmuOOO2+T768fJ5tzD5IMZTn/7LYkHHnhgkpQe7fuoa71s2bL80z/9U+n1dtttt1mh2NNPP52mTZumcePGG93f9TONZs2alTZt2mwQ7rZp0+ZjPwN/64ADDij93KRJk/zLv/xLqT9PP/10vv71r29yfG3uzKrN0bZt23Tu3Lm0RtZee+2V3XbbLcOGDcu0adMye/bsDWYGrjdnzpxUVVXlpJNOyoknnpixY8dmzZo1tVYXABTFzCcAKMCoUaNy0kkn5brrrstvfvObrFixIvvtt1/OP//83H777aVZFE8//XSuueaanH/++WnRokXuvffezJ8/P//0T/+UY489NuXl5Tn99NM3e7vvfe972WefffLAAw9kzpw5adSoUY488sh07dp1k7M5Pmx9GLTjjjtm7733zg9+8IO0a9cuZ5xxRimcefnll3PCCSekffv2WbRoUXr27Jn9999/gz/O582bl2OOOSZt2rTJsmXL8vbbb+eVV17J2rVrc8YZZ+TOO+9M27Zt85Of/GSD8//oRz/K4sWL89xzz2X16tU5/vjj8/777+eVV15JkgwbNizXXHNNVq5cmfHjx+f999/PXnvtla5du5a+8W/evHnp0KFDvvzlL+ett97KypUr8/777//9N3UTVq9enZtvvjnnnntuXn/99Tz//PM55phj0q1btw0W715f0x/+8Ie89957eeONN/LLX/4yEydOzCWXXJLRo0endevWueKKK3LXXXdlwYIF2XHHHXPhhRfm/vvvz7x581JWVpYuXbp87JpO999/f8aNG5frr78+e++9dyZPnpxFixblS1/6Unr16pUVK1bkkksu2ax7mHwwA+sXv/hFhg0bli9+8Yu58sorS980uL5fH77P7777bh555JH8x3/8Rx599NG8/fbbGTBgwCZnPn1YVVVVHn744dx888254oor8vzzz6dp06b5t3/7t7zzzjv53//939x9990599xzc8MNN2TYsGHZfvvtM2TIkKxevfoTj7927dpcdNFFpYXb/9//+39ZtWpV7rrrriQfrNf1wAMP5MYbb8xNN92U119/Pa1bt85RRx2Vm2666RPX3NqUHXfcMbvvvnsaNmyYZs2a5dBDD82ZZ56Zxx57rPQFAvPnz89f//rX/PCHP8yIESPSunXrXHDBBVm7du1Gx7v11ltzww03pFGjRh8bRALAZ4nwCQAKMHv27PTo0SPnnXdebrnlljRp0iRz587NyJEjc9NNN22w7dVXX52nn346ffv2zX//939n++23z/z581NVVZWhQ4du0XZPPvlkKioqcuWVV6a8vDzvvPNO5s2bl8GDB+d//ud/Prbmhg0b5plnnsnatWuzatWqzJ8/P9OnT89FF120wRo4w4cPT8uWLfM///M/ee+993LPPffk5ptv3uCRvjFjxqRDhw75/e9/nyZNmmTAgAEZN25cLrjggvTr1y9nnXVWnn322QwePLi0eHKSvP322zn99NOzxx57pH79+pk9e3ZOOeWUvPzyy0k+mNnz9ttv58wzz8xZZ52V999/P3Pnzs0DDzxQOsaIESPyta99LZMnT85OO+2Uf//3f/9Ua11trmHDhmXt2rW57LLLsuuuu2bOnDnp16/fBus5XXrppbn00kvzxz/+MY0bN07z5s3zwgsv5OSTT855552X73//+3n77bdz33335dJLL02SrFmzJmVlZbn22mvTrFmzvP3226murs5ll132sfWsX+i8T58+OeWUU9KgQYPMmzcvkyZNKi34vjn3MPlgPP3xj3/M2LFj06RJk0yZMiXnnHNO6f2Pus+XXnpprr766owZMyYrV67Mz3/+8+y6666bdT2///3v5yc/+UkuueSSlJeXZ/ny5Xn++edLC6SvXr06ffr0ydChQ/PAAw+kpqYmw4YNywUXXPCJx167dm2GDh2a//qv/8qXvvSlvPDCC/ne975XCq5mz56dY445Juedd17GjBmTxo0bZ9GiRamurs7KlSs3q/4P69+/f/r375933303y5cvzwsvvJAhQ4aksrKyFC698cYb6devXwYNGpTvfve7mT17di6++OKMGzduo+M9+OCDeeutt/Lcc8/ltdde+1Q1AUBdq1deXl57D80DAPC5cN1116V58+YbzODalvXq1SvXXHNNWrduvbVL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hutMbTOmKIJxRW0zpqhtxtTnW52ETw0bNsw+++yTCy64IE8++WSGDBmS/v37f+T29erV26ht3bp1H9n+YaNHj87o0aOTJC1btsyMGTP+jurZWioqKty7otXrurUroEA+P8Xze4raZkxRBOOK2mZMUduMqW3TlgSGdfLY3cKFC1NTU5Mnn3wySXLfffdln332ydKlS9OsWbMkSbNmzbJs2bIkH8xoatGiRWn/5s2bZ9GiRZtsX7x4cV10AQAAAIBPoU7Cp6VLl2bhwoX5yle+kiQ55JBD8uKLL2bixInp1atXkqRXr16ZMGFCkmTChAmlb7I74IAD8tZbb2XJkiWZMmVKOnXqlLKyspSVlaVTp06ZMmVKXXQBAAAAgE+hTh67S5ILLrggN954Yxo1apR58+blP//zP1O/fv2MHDkyvXv3zoIFC3LaaaclSSZPnpzDDjss06dPz+rVq3P22WcnSZYvX57hw4dn/PjxSZJrr702y5cvr6suAAAAALCF6ix8ev7550vfZve31s98+rBBgwZtsr2ysjKVlZW1WhsAAAAAxaiTx+4AAAAA+MckfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAApTZ+HTY489lj/84Q+ZNGlSHnzwwSRJ06ZNU1lZmerq6lRWVqasrKy0/ZAhQzJt2rRMnjw5++yzT6m9Z8+eqa6uTnV1dXr27FlX5QMAAADwKdTpzKcTTjghRxxxRLp3754k6devX6qqqtKhQ4dUVVWlX79+SZKuXbtmzz33TPv27XPOOedk2LBhST4IqwYOHJgePXrk6KOPzsCBAzcIrAAAAAD4bNmqj91169Yt48aNS5KMGzeuFEp17949t99+e5Jk5syZadKkSZo1a5bOnTtn6tSpWb58eVasWJGpU6emS5cuW61+AAAAAD5enYVP69atS2VlZSZMmJA+ffokSXbfffcsWbIkSbJkyZLstttuSZLy8vIsXLiwtG9NTU2aN2++yfby8vK66gIAAAAAW6hhXZ3o2GOPzeLFi7Prrrtm7Nixeemllz5y23r16m3Utm7duo9s/7A+ffqUAq6+ffsCM7ADAAAgAElEQVSmoqLi76icrcm9K9jMrV0ARfL5qRuuM7XNmKIIxhW1zZiithlTn291Fj4tXrw4SfL6669n/Pjx2W+//bJ06dI0a9YsS5YsSbNmzbJs2bIkH8xoatGiRWnf5s2bZ9GiRampqUn79u03aJ82bdpG5xo9enRGjx6dJGnZsmVmzJhRZNcoSEVFhXtXtHpdt3YFFMjnp3h+T1HbjCmKYFxR24wpapsxtW3aksCwTh6722GHHbLTTjuVfu7UqVNmzZqViRMnplevXkmSXr16ZcKECUmSCRMmlL7J7oADDshbb72VJUuWZMqUKenUqVPKyspSVlaWTp06ZcqUKXXRBQAAAAA+hTqZ+bT77rvnt7/97QcnbNgwd999dx566KE89dRTGTlyZHr37p0FCxbktNNOS5JMnjw5hx12WKZPn57Vq1fn7LPPTpIsX748w4cPz/jx45Mk1157bZYvX14XXQAAAADgU6iT8GnevHk5/PDDN2p/8803SzOfPmzQoEGbbK+srExlZWWt1gcAAABAMers2+4AAAAA+McjfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMMInAAAAAAojfAIAAACgMHUaPtWvXz8TJ07MqFGjkiStW7fO/fffn+rq6owYMSKNGjVKkmy33XYZMWJEpk2blvvvvz+tWrUqHaN///6ZNm1aHnnkkXTu3LkuywcAAABgC9Vp+HTqqadm9uzZpdcXXnhhfv3rX6dDhw5ZsWJFevfunSTp3bt3VqxYkfbt2+fXv/51LrzwwiRJmzZtctxxx6Vz58458cQTM3To0NSvb/IWAAAAwGdVnSU3zZs3z2GHHZbbbrut1HbIIYfkvvvuS5KMGzcuRx11VJKke/fuGTduXJLkvvvuy6GHHpok6datW+655568++67ee211zJnzpzsv//+ddUFAAAAALZQnYVPl112WS6//PKsXbs2SbLLLrtkxYoVWbNmTZKkpqYm5eXlSZLy8vIsXLgwSbJmzZqsXLkyu+yyywbtSbJw4cLSPgAAAAB89jSsi5McfvjhWbZsWZ555pm0a9cuSVKvXr2Ntlu3bt3Hvrep9k3p06dP+vTpkyTp27dvKioqPm3pbGXuXcFmbu0CKJLPT91wnaltxhRFMK6obcYUtc2Y+nyrk/DpoIMOypFHHpnDDjssjRs3zhe+8IVcdtllKSsrS4MGDbJmzZo0b948ixcvTvLBLKgWLVqkpqYmDRo0SJMmTfLmm2+W2tdr0aJFFi1atNH5Ro8endGjRydJWrZsmRkzZtRFN6llFRUV7l3R6nXd2hVQIJ+f4vk9RW0zpiiCcUVtM6aobcbUtmlLAsPNfuyuffv2ad26dZKkWbNmuf7663Pttddm9913/8R9r7zyylRUVOSggw7KGWeckaqqqpx55pmprq7ON7/5zSRJr1698uCDDyZJJkyYkF69eiVJvvnNb6aqqqrUftxxx2W77bZL69ats8cee+TJJ5/c7M4CAAAAULc2O3waNmxYab2miy++OA0bNsy6devys5/97FOf/PLLL8/pp5+eadOm5Ytf/GLGjBmTJBkzZky++MUvZtq0aTn99NNzxRVXJElefPHF/P73v8/DDz+c2267LYMGDSrVBAAAAMBnz2Y/dldeXp4FCxakQYMG6dy5cw488MC89957eeqpp7bohNOnT8/06dOTJPPmzcvRRx+90TbvvPNOTjvttE3uf/311+f666/fonMCAAAAsHVsdvj01ltvZbfddstXv/rVzJ49O6tWrUqjRo3SsGGdLBsFAAAAwDZos5Oj3/72t3nwwQfTqFGjDB48OEly4IEH5qWXXiqsOAAAAAC2bZsdPt14440ZP3581qxZk7lz5yZJFi1alIEDBxZWHAAAAADbti16Zm7u3Lk58MADs//++2fRokV5/PHHs2bNmqJqAwAAAGAbt9nh07/8y7/klltuyfbbb5+FCxemRYsWeeedd3LyySdn9uzZRdYIAAAAwDaq/uZuOHTo0IwePToVFRU55phjUlFRkVGjRmXo0KFF1gcAAADANmyzw6e2bdtm5MiRG7TddNNNadu2ba0XBQAAAMDnw2aHT4sXL067du02aPvGN76RxYsX13pRAAAAAHw+bPaaT0OHDs0tt9ySSZMmZf78+WnVqlUOP/zw9OvXr8j6AAAAANiGbfbMp4kTJ+bII4/MrFmzsvPOO2fWrFnp1q1bJkyYUGR9AAAAAGzDNnvm0xlnnJERI0bkuuuu26D99NNP32gtKAAAAABItmDm009+8pNNtg8YMKDWigEAAADg8+UTZz516NAhSdKgQYO0b98+9erVK7335S9/OX/5y1+Kqw4AAACAbdonhk/XXnttkqRx48YZPnx4qX3dunVZsmRJLrjgguKqAwAAAGCb9onh0ze+8Y0kyc9//vOcddZZhRcEAAAAwOfHZi84ftZZZ6VBgwY58MADU15enpqamjzxxBNZs2ZNkfUBAAAAsA3b7PDpK1/5SkaNGpXtt98+CxcuTIsWLfLOO+/k5JNPzuzZs4usEQAAAIBt1GZ/292wYcMyevToVFRU5JhjjklFRUVGjRqVoUOHFlkfAAAAANuwzQ6f2rZtm5EjR27QdtNNN6Vt27a1XhQAAAAAnw+bHT4tXrw47dq126DtG9/4RhYvXlzrRQEAAADw+bDZaz4NHTo0t9xySyZNmpT58+enVatWOfzww9OvX78i6wMAAABgG7bZM58mTpyYI488MrNmzcrOO++cWbNmpVu3bpkwYUKR9QEAAACwDdvsmU9J8sorr+S6664rqhYAAAAAPmc2O3xq2rRpfvSjH6Vt27bZaaedNnjv+OOPr/XCAAAAANj2bXb49Mtf/jLbbbdd7r333qxevbrImgAAAAD4nNjs8Onf/u3f8q//+q959913i6wHAAAAgM+RzV5w/IUXXkjz5s2LrAUAAACAz5mPnfn03e9+t/RzVVVVbrvttowdOzZLlizZYLvKyspiqgMAAABgm/ax4dMJJ5xQ+nndunWpqalJx44dN9hm3bp1wicAAAAANukTw6cddtghZ599dvbee+88++yz+fnPf27dJwAAAAA2yyeu+XT55ZfnsMMOy+zZs9OjR48MHjy4LuoCAAAA4HPgE8Onww47LL17987ll1+ek046KUcccURd1AUAAADA58Anhk877rhjaYHxhQsX5gtf+ELhRQEAAADw+fCxaz4lScOGDdO+ffvUq1dvk6+TpLq6urgKAQAAANhmfWL4tGzZsgwfPrz0+s0339zg9bp163LwwQcXUx0AAAAA27RPDJ8OOuiguqgDAAAAgM+hT1zzCQAAAAA+LeETAAAAAIURPgEAAABQGOETAAAAAIURPgEAAABQGOETAAAAAIURPgEAAABQGOETAAAAAIURPgEAAABQGOETAAAAAIURPgEAAABQGOETAAAAAIURPgEAAABQGOETAAAAAIWpk/CpcePGeeCBB/J///d/mTJlSn76058mSVq3bp37778/1dXVGTFiRBo1apQk2W677TJixIhMmzYt999/f1q1alU6Vv/+/TNt2rQ88sgj6dy5c12UDwAAAMCnVCfh0zvvvJMTTjghhx9+eA4//PB06dIlBxxwQC688ML8+te/TocOHbJixYr07t07SdK7d++sWLEi7du3z69//etceOGFSZI2bdrkuOOOS+fOnXPiiSdm6NChqV/f5C0AAACAz6o6S25WrVqVJGnUqFEaNWqUdevW5ZBDDsl9992XJBk3blyOOuqoJEn37t0zbty4JMl9992XQw89NEnSrVu33HPPPXn33Xfz2muvZc6cOdl///3rqgsAAAAAbKE6C5/q16+fSZMm5dlnn83DDz+cuXPnZsWKFVmzZk2SpKamJuXl5UmS8vLyLFy4MEmyZs2arFy5MrvssssG7UmycOHC0j4AAAAAfPY0rKsTrV27NkcccUSaNGmS3/72t9lrr7022mbdunVJknr16m3yvU21b0qfPn3Sp0+fJEnfvn1TUVHxd1TO1uTeFWzm1i6A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X19ftW3bVqNGjVJGRoajmwUAAAAAAIBGtLiRT1euXNErr7yi1NRUubq6ymq16vDhw45uFgAAAAAAABrh2rFjx/9xdCNu13/+8x+9++67euedd7R7925HNwcm+vLLLx3dBDgZagr2Rk3B3qgpmIG6gr1RU7A3asq5uVgslrr/fzcAAAAAAADg9rW4OZ8AAAAAAADQchA+wa7Ky8u1ZMkSY9nV1VUlJSV6//337XL8mTNnasqUKXY5Fu5uXbp0UVZWlrKysrR3714VFxcby23btrX7923atEk/+clP7H5cNJ85c+bomWeeMZZTU1O1YMECY/nPf/6zfv/739/Ssczua+Li4pSYmGja8WGupvqngwcPKjc31/Tvp35ap2PHjhl1l5WVpV69en1nn+7du2vVqlWNfj4tLU39+/c3u5m4C02fPl02m03Z2dnKysrSww8/3OS+cXFx6t69+/f+TuqtdbmdGrtVPPc5nxY34TjubjU1Nerbt6/c3d1VW1ur0NBQlZeXO7pZaIFOnz6tyMhISfUXn5qaGq1YscLBrcLdrKioSCNHjtSqVavk4uIib29vdezY0dg+cOBAzZ4924EthLNoqn/q1auX/va3v93xcV1dXXXlyhV7NRNOpra21qi7xri6uqqioqJBCA8EBQUpIiJCw4YN06VLl+Tt7X3TP+KNGzdOhw4dUkVFxS1/B31X63a7NYbWi5FPsLucnByFh4dLkmJjY/Xxxx8b2zp37qzVq1crOztbn3zyiQICAiTV37wnJycrLS1NBQUFmjx5svGZ6dOn6/PPP9fatWv1wAMPGOsnTJig9PR0bd++XW+//bbat28vDw8P7d69W25u9blqx44dVVhYaCyj5fvhD3+orKwsYzkhIUEvvPCCJMnPz0+pqanKyMjQxo0b1bt3b0nSqFGjlJOTo+3bt+ujjz6SJLVv314rV65Udna2li9frnbt2hnHnD9/vrZt2yabzaYZM2ZIkoYMGaKVK1ca+4SFhSklJcX088WtKyoq0sCBAyVJffv21cGDB1VTUyMvLy/dc8898vf3V0lJiZ599lmlp6crOztbs2bNMj7fVF+TlpamP/7xj9q6dat27typQYMGSZLatGmjP/3pT8axnnzySUmSj4+PNm7cqKysLOXk5Bj7jxs3Tjt37tSGDRv06KOPGsePjIzUp59+qszMTK1du1bd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\n",
"text/plain": [
"<Figure size 1440x576 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"fig = plt.figure(figsize=(20,8), dpi=72, facecolor=face_clr)\n",
"ax = plt.subplot(111) # Upper Plot\n",
"\n",
"num_photos = list(date_counts.values())\n",
"x_pos = [i for i, _ in enumerate(days)]\n",
"plt.bar(x_pos, num_photos, color=bar_clr)\n",
"plt.grid(linestyle='-', linewidth='1', color=grid_clr)\n",
"plt.setp(ax.spines.values(), color=frame_clr)\n",
"plt.ylabel(\"Photos\")\n",
"plt.title('UCCS Dataset Photos Captured per Day')\n",
"fig.set_facecolor(face_clr)\n",
"plt.xticks(x_pos, days)\n",
"plt.show()\n",
"fig.savefig('/mnt/ahprojects/tmp/uccs_exif_plot_days.png', dpi=fig.dpi, transparent=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 345,
"metadata": {},
"outputs": [],
"source": [
"# bucket times into 30min intervals\n",
"delta = 10\n",
"time_buckets = {}\n",
"for day_name, times in date_times.items():\n",
" time_buckets[day_name] = {}\n",
" for t in times:\n",
" # conver times\n",
" bucket_name = '{:02}:{:02}'.format(t.hour, (t.minute // delta) * delta)\n",
" if not bucket_name in time_buckets[day_name].keys():\n",
" time_buckets[day_name][bucket_name] = 0\n",
" time_buckets[day_name][bucket_name] += 1\n",
"\n",
"# add all keys to all days\n",
"all_time_keys = []\n",
"for k, v in time_buckets.items():\n",
" all_time_keys += list(v.keys())\n",
"\n",
"# reduce to unique\n",
"all_time_keys = set(all_time_keys)\n",
"\n",
"for k, v in time_buckets.items():\n",
" for atk in all_time_keys:\n",
" if atk not in time_buckets[k].keys():\n",
" time_buckets[k][atk] = 0\n",
" \n",
"for k, v in time_buckets.items():\n",
" time_buckets[k] = collections.OrderedDict(sorted(v.items()))"
]
},
{
"cell_type": "code",
"execution_count": 346,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"OrderedDict([('09:30', 0), ('09:40', 0), ('10:40', 0), ('10:50', 0), ('11:00', 0), ('11:10', 0), ('11:50', 0), ('12:00', 0), ('12:10', 0), ('12:20', 0), ('12:30', 662), ('12:40', 394), ('12:50', 0), ('13:00', 0), ('13:10', 0), ('13:20', 0), ('13:30', 0), ('13:50', 0), ('14:00', 0), ('14:10', 0), ('14:50', 0), ('15:00', 0), ('15:20', 0), ('16:10', 0), ('16:20', 0), ('16:30', 0)])\n",
"OrderedDict([('09:30', 414), ('09:40', 664), ('10:40', 0), ('10:50', 0), ('11:00', 832), ('11:10', 376), ('11:50', 0), ('12:00', 361), ('12:10', 710), ('12:20', 306), ('12:30', 901), ('12:40', 48), ('12:50', 0), ('13:00', 0), ('13:10', 0), ('13:20', 167), ('13:30', 121), ('13:50', 365), ('14:00', 0), ('14:10', 0), ('14:50', 0), ('15:00', 0), ('15:20', 312), ('16:10', 183), ('16:20', 797), ('16:30', 472)])\n",
"OrderedDict([('09:30', 0), ('09:40', 0), ('10:40', 0), ('10:50', 5), ('11:00', 6), ('11:10', 0), ('11:50', 5), ('12:00', 356), ('12:10', 380), ('12:20', 305), ('12:30', 133), ('12:40', 152), ('12:50', 74), ('13:00', 55), ('13:10', 116), ('13:20', 101), ('13:30', 20), ('13:50', 0), ('14:00', 0), ('14:10', 7), ('14:50', 0), ('15:00', 0), ('15:20', 0), ('16:10', 0), ('16:20', 0), ('16:30', 0)])\n",
"OrderedDict([('09:30', 0), ('09:40', 0), ('10:40', 213), ('10:50', 0), ('11:00', 309), ('11:10', 62), ('11:50', 0), ('12:00', 2), ('12:10', 130), ('12:20', 0), ('12:30', 14), ('12:40', 0), ('12:50', 0), ('13:00', 0), ('13:10', 0), ('13:20', 0), ('13:30', 0), ('13:50', 51), ('14:00', 43), ('14:10', 0), ('14:50', 266), ('15:00', 27), ('15:20', 0), ('16:10', 0), ('16:20', 0), ('16:30', 0)])\n",
"OrderedDict([('09:30', 0), ('09:40', 0), ('10:40', 0), ('10:50', 0), ('11:00', 0), ('11:10', 0), ('11:50', 0), ('12:00', 0), ('12:10', 0), ('12:20', 0), ('12:30', 0), ('12:40', 0), ('12:50', 0), ('13:00', 0), ('13:10', 0), ('13:20', 0), ('13:30', 0), ('13:50', 0), ('14:00', 0), ('14:10', 0), ('14:50', 0), ('15:00', 0), ('15:20', 0), ('16:10', 0), ('16:20', 0), ('16:30', 0)])\n",
"OrderedDict([('09:30', 0), ('09:40', 0), ('10:40', 0), ('10:50', 0), ('11:00', 0), ('11:10', 0), ('11:50', 0), ('12:00', 0), ('12:10', 0), ('12:20', 0), ('12:30', 0), ('12:40', 0), ('12:50', 0), ('13:00', 0), ('13:10', 0), ('13:20', 0), ('13:30', 0), ('13:50', 0), ('14:00', 0), ('14:10', 0), ('14:50', 0), ('15:00', 0), ('15:20', 0), ('16:10', 0), ('16:20', 0), ('16:30', 0)])\n",
"OrderedDict([('09:30', 0), ('09:40', 0), ('10:40', 0), ('10:50', 0), ('11:00', 0), ('11:10', 0), ('11:50', 0), ('12:00', 0), ('12:10', 0), ('12:20', 0), ('12:30', 0), ('12:40', 0), ('12:50', 0), ('13:00', 0), ('13:10', 0), ('13:20', 0), ('13:30', 0), ('13:50', 0), ('14:00', 0), ('14:10', 0), ('14:50', 0), ('15:00', 0), ('15:20', 0), ('16:10', 0), ('16:20', 0), ('16:30', 0)])\n"
]
}
],
"source": [
"for k, v in time_buckets.items():\n",
" print(time_buckets[k])"
]
},
{
"cell_type": "code",
"execution_count": 347,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"901\n"
]
}
],
"source": [
"# find max photos per bucket\n",
"max_photos = 0\n",
"for display_day in display_days:\n",
" for k,v in time_buckets[display_day].items():\n",
" max_photos = max(max_photos, v)\n",
"print(max_photos)\n",
"max_photos = 1000"
]
},
{
"cell_type": "code",
"execution_count": 348,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Monday\n",
"Tuesday\n",
"Wednesday\n",
"Thursday\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJ8AAAQCCAYAAAACdVnsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xl0Tff+//FXEsRUMTVCpDW00eqlhl6XBJGiCTG0hiiJGmJqzW3Ns1RCjSXmaouUNKar11DcVEoGtKixCGJIBFEVcYsW+f2Rlf1zJOSIHDl8n4+1rOXss4fX2cNJ9jufz2fbODk5pQkAAAAAAACwANu8DgAAAAAAAIDnF8UnAAAAAAAAWAzFJwAAAAAAAFgMxScAAAAAAABYDMUnAAAAAAAAWAzFJwAAAAAAAFgMxScAwDPB19dX58+ffyrbKl++vJKSklSnTp2nsr01a9Zo2rRpxutZs2bpu+++eyrbtlZJSUlq27ZtXsfAE9qzZ48GDRqU1zFgBo5VZjn5HnqaP6sA4FlC8QkArMCDxYcMZcuWVVJSkurVq5cHqZ7Md999p1mzZuXa+r7//nvVrFkz19aXGwoVKqRBgwYpIiJCp0+f1tGjR7Vx40Z1795dhQoVyut4uea1117TkiVL9Ouvvyo+Pl779u3TsmXL9I9//MOY5/z58/L19c3DlNnLrespoziZ8e/06dPatWuXFixYIA8Pj8deX9u2bZWUlPREmXJq0KBB2rNnT46W9fX1NdkPBw8e1LJly/Taa6/lcsqnf361bdtW69at0/Hjx3Xq1Clt375do0ePlpOTU65uZ9q0aVqzZk2urvN5MWfOHG3cuNFkWokSJZSYmPjQ6R06dHiaEQEAj4HiEwAgT+XPn9+s+W7duqUrV65YOI35ihYtqvXr16t79+765ptv1LJlS3l5eWn+/Plq1apVjooQ1qhUqVJavXq17ty5oy5duqhBgwbq3bu3Dh48qOLFi+d1vDzVpUsXVa9eXQ0bNtTgwYP1xx9/6Ntvv9W4cePyOtpTc+fOHVWvXl3Vq1dXt27dVLp0aa1cuVIvvPBCXkfLsenTp2v69OnatWuX/Pz85OHhodGjR8vR0VF9+vTJ63gPZe53qbWxsbGRrW3mW5IdO3aoevXqJueSm5ubkpKSVK1atUzTbW1tFRUV9VQyAwAeH8UnAHiG1KtXT0lJSWrYsKHWrVun06dP66efflKjRo1M5itVqpRmzpypgwcPKj4+Xjt37tT7779vvF+rVi1j+d9++01z585VqVKljPc/+eQTxcTEyMvLSzt37tSpU6e0evVqvfzyy8Y8RYsW1cyZM3XgwAGdOXNGv/zyi8aPHy8pvdtYw4YN1aFDB6NVRL169YwWI23atFFoaKhOnTqlESNGSEpvARAbG2u0IhkxYoQKFChgbO/BrgwZr//5z39q69atOn36tDZv3qzq1aub7IsKFSroyy+/1LFjx/Tbb78pLCwsU8uMli1bKiYmRvHx8fr+++9VtWrVbI/F8OHD9corr8jHx0fLly/XkSNHdP78eW3YsEHvvvuuYmJijHn79OmjXbt26ezZs4qNjVXPnj2zXf+DWrdurW3btik+Pl579uzR+PHjTVpXFSxYUFOnTtXx48f122+/KTg4WCNHjjTJYc56HvTPf/5TpUqV0uDBg3XgwAElJCTo559/1rRp04wbvT179ihfvnz64osvjOMtZd39JKvWR25uboqIiFB8fLwiIiLk5uaWKUfp0qU1a9YsHT58WHFxcVq/fr3q1q1rvG/OtbFv3z5J0tq1a5WUlGS0+Clbtqy+/PJLHTlyxDj/Pvzww0ceD0m6du2akpOTlZCQoNjYWI0YMUJjxoxRnz59TLINHz5cO3bs0OnTp/XLL79oypQpxo1zvXr1FBISIknGvstoMdiwYUOtWbNGR48e1fHjx7V27VrVqFHDJEOnTp20Y8cOxcfH68iRI1q3bp3Kli1rvF+9enWFhYXp5MmTOnz4sJYsWaLy5csbx2fYsGFycXExtv3JJ59k+7kflJycrOTkZO3du1fjxo2Tk5OTateubbyfP39+BQYG6ujRozp48KDGjh1rUmzIly+fRo4cqX379uns2bP66aef9N577xnvP+z8kqS3335bW7Zs0ZkzZ3To0CEFBwebnM+urq5auXKljh07plOnTmnHjh1q167dQz+Lj4+POnXqpIEDB2rKlCn65ZdflJCQoOjoaA0YMEAzZ86UJDk4OCgkJES//PKLTp8+rZ07d6p3794m68roPtu7d2/t27dPp0+f1pdffqmSJUtKSv+e9fPzMwoqSUlJRuuurLp7PdiadM+ePRo2bJiCg4N15MgRff/995KkwoULKzAw0Njm1q1b1bx5c5N1Va1aVd9//73i4+MVFRWlli1bPnSfZMi4nhs0aKDIyEjFx8dr06ZNqlatmsl8jzrnMj53TEyMWrVqpZ07d+rcuXN69dVXM20vKipK+fLlM/k+qF+/vjZv3qyTJ09mmn7q1CklJiYa07p3766dO3cqPj5e0dHRGjhwoOzs7Iz37ezs9Mknn2j37t2Kj49XZGSkOnfu/Mh90LZtW508eVKtWrUypg0dOlSHDh3SyZMnNX/+/ExFeRcXFy1ZskT79+/X6dOn9eOPP5qcgx06dNCxY8cyfQ9//PHH2r179yPzAMCzhOITADyDxo4dq9mzZ6tx48Y6cOCAFixYoGLFiklKL0KsW7dOb7zxhvr27Wv81f7mzZuSpBdffFFhYWG6cOGCmjdvri5duhjdqu5XpkwZdenSRX379lXLli1VrFgx48ZLkoYNG6Zq1aqpa9eucnd3V58+fRQXFydJGjNmjHbt2qX169cbrSJ++eUXY9lRo0Zp3bp18vT01Ndffy0bGxslJyfro48+UsOGDTV27Fh16NBBAwYMeOR+sLW11ciRIzVmzBi98847SklJ0cKFC40bjNKlS2v9+vW6cuWK3n33XbVo0UInT57UmjVrjGLbP/7xDy1YsEAbNmxQkyZNtGDBAgUGBj5yuzY2Nnrvvfe0du3ah47tcf36dUlS165dNXToUIWEhKhRo0aaP3++Ro4cqY4dOz5yG/fz9fXV5MmTtXDhQnl4eGjAgAFq0KCBPv/8c5N96uXlpf79+6tFixZKTU1Vly5dHns9D7p06ZIk6d1335WNjU2W8zRr1kx37tzRmDFjjONtrjJlymj58uU6ePCgvLy8NGHChEz7v2DBglqzZo2KFi0qPz8/NW3aVD/++KPCwsIy3bQ+6tpo2rSpJCkgIEDVq1dXs2bNJEnBwcF64YUX5Ovrq4YNG+rjjz/OcTe4ZcuWKSUlxeRm/tatWxoyZIgaNmyoQYMGyc3NTZ999pkk6ZdffjEKsBn7bsyYMZKkIkWK6Ouvv1aLFi3UsmVLnT59WitWrFCJEiWM+adMmaI5c+aoQYMGatu2rVatWmVs19XVVWvXrtUvv/wib29vtWvXTnfv3lVYWJjs7e31/fffa86cOUpMTDS2PX/+fEnpBYKc7INbt25JSi8oZejevbsuXbokHx8fjR49Wj179lT79u2N90eMGCE/Pz+NHTtWnp6eWrNmjUJCQlS/fn1JDz+/Xn/9dS1dulS7du1S06ZNNXDgQDVt2tTkfJ4/f76uXr2qVq1aydPTU+PHj9e1a9cemr9du3Y6ffq01q9fn+X7KSkpkqQCBQrot99+U7du3eTh4aFZs2ZpyJAhmbp91axZU/Xq1VOnTp3k5+en119/XTNmzDCyrV27Vj///LPxuTIKSOYKCAjQlStX1LJlSw0cOFBS+jlYtWpV9enTR40aNdKyZcs0f/58Y38WLFhQoaGhun79unx8fDRw4EB99NFHKl26dLbbs7W11ZgxYzRixAg1b95cV65c0fLly43CSXbnXAYnJyd17dpVAwcOlIeHhxISEjJtKykpSSdPnjRyS+lFpqioKEVHR2c5PcMnn3yiDz/8UEFBQWrYsKHGjBmjzp07mxRXp0+frubNm2vo0KFq2LChZsyYoVGjRj30u/nDDz/UpEmT1LVrV+M49ejRQ71799bEiRP1zjvv6NChQ/r4449NlitSpIh27typTp06ydPTU6GhoZo5c6ZRPFu/fr3S0tLUokULYxkbGxu9//77WrFiRbbHBACeFfmynwUAYG1mzJih7du3S5ICAwPVvn171apVS5GRkXrvvffk4uJi/DVdks6dO2cs261bN6WmpmrQoEH6+++/JUn9+/dXRESE6tatq127dklKv7nq37+/fv/9d0nS3LlzNW/ePNnb2+v27dsqX768Dh8+rP3790uSEhMTjQJTamqq/vrrL926dUvJycmZ8oeGhmYa52TKlCnG/xMSElShQgV16dIly7GwMtja2mrs2LE6dOiQJOnzzz/Xxo0bVaFCBZ06dUpdunTR+fPnNXz4cGOZ0aNHq3HjxmrTpo0WL16sPn36aO/evQoKCpIknTp1SmXKlDFeZ6VkyZIqWbKkUWx7lH79+umrr75SaGioJCk+Pl6VK1fWwIEDtXLlymyXl6RPP/1UwcHBWr16taT045lRwBs9erT++usvde7cWSNGjNDWrVslSUFBQXJzczNaWZiznowb6/vt379fM2bMUHBwsMaPH6+DBw8qNjZW69ev18mTJyXJOEeuX7+e5fF+lK5du+rq1av69NNPdffuXZ04cULBwcFavny5MU+rVq1UtGhR9e7dW3fv3pUkffHFF6pfv746d+6ssWPHGvM+6trIyPnHH3+Y5Cxfvrw2b96sI0eOSFKWN8Lmunv3rk6ePGnSSvD+1ioJCQkKCgrS/PnzjWswNTVVkjLtu82bN5u8HjJkiHx8fOTp6am1a9fK2dlZf/75pzZv3qwbN25Iko4dO2bM/9FHH2nbtm0m11C/fv107NgxeXp66ocfftCff/6pe/fuZdr21atXjeNrrlKlSunTTz/V9evXje8FSdq9e7fRuis+Pl7vv/++PDw89N1336lQoUIKCAjQuHHjtGHDBknS7NmzVaNGDQ0cOFBRUVEPPb8++ugjHTp0yOjmGBcXp1GjRumrr77SlClTlJCQoPLly2vhwoU6ceKEJNPvwqxUqlTJrOs6OTlZc+fONV6fP39eNWrU0HvvvWfysABbW1v179/fOMYjR45UWFiYKlasqPj4eN28eVN///33Y183GX799VdNnz7deF2vXj3Vrl1b1atXN7YZGhqqWrVqKSAgQFFRUWrTpo2KFSumvn37Gtf8oEGDFBkZme32bG1tNXHiRMXGxkpK/9mxd+9evffee1qxYoVZ55wk2dvbq3///iYtlbISFRWlBg0aSEovVFeoUEGxsbGysbExvtfLlCmjV155RZMnT5aUPhZf3759FRAQYHwXnD9/XlOmTFFgYKA+//xzubi4qH379vLw8DDO8/Pnz6ty5crq3r27yXezra2tAgMD1bJlS7Vt29b4npDSC1KLFy82ir7z5s1TzZo15e3tbcxz7Ngxk+vyq6++UoMGDdSmTRvFxMTo1q1bWr16tfz9/Y31eHh4yMnJyeyfEQDwLKD4BADPoMOHDxv/T05O1p07d/Tiiy9KSm8NERcX99BWC1WqVNG+ffuMwpMkHT16VCkpKXJ1dTWKT5cuXTJu+iTp4sWLsrW1VenSpZWYmKilS5fqyy+/1JtvvqmoqCht375d27dvV1paWrb5778xzeDn56dOnTrJxcVFhQsXlp2dXZbjgNzv3r17JjcCFy9elJTeuuvUqVOqUaOGqlevnukmumDBgqpYsaKk9L/U79y50+T97AZgzmgBlN1nLVq0qJydnY19miE2NlY9evRQoUKFjBZpD1OqVCm5uLho/PjxJkWWjAwVKlTQ33//LXt7e+3du9dk2b179xqtfcxZz4EDB7LMMHXqVC1atEju7u6qUaOGfHx8NGDAAA0aNEjr1q17ZP7suLq6av/+/UZRScq8/2vUqCFHR0cdP37cZHqBAgWMljYZHnVtPMzixYv1+eef6+2331ZMTIwiIiIyHbPHYWNjY3JuNG/eXD179lSFChX0wgsvyNbWVvb29nJ0dDRalmXFxcVFQ4cOVe3atVW6dGnZ2tqqUKFCRhemn376SWfPntXu3bu1Y8cORUdHa9OmTbp69aqk9P1WoUKFTOe/vb29cf4/zNdff62vv/4628+aL18+Y/1FihRRXFycevbsafLdcf81KqW3aHnppZckpZ939vb2WV4j/fv3f+S2q1SpkmmMn9jYWNna2srV1VUJCQlasGCBpk+frg4dOigmJkZbt241itVZefDYPWq+vn37qnXr1ipXrpzs7e2VL1++TIXLEydOGEUg6f+f26+++qri4+Oz3U52fv31V5PXNWrUUIECBTJ9x+bPn9/Ynqurq+Li4kyKzcePH8+y+JyV+79nUlJSFBcXJ1dXV2P75pxzycnJ2RaepPTiU9euXeXo6KgGDRroyJEjun79umJiYlS5cmVj+t27dxUdHW18vkKFCunLL780OZYZ10+pUqX05ptvytbW1iiGZbCzs9O9e/dMpg0bNkwFCxZUs2bNTFq6Fi1aVOXKldPPP/9sMv+ePXtMik+FChXS4MGD9c4778jR0VEFChRQgQIFTLpEL1++XD/99JNcXV114sQJ+fn5KSIiQpcvX852HwHAs4LiEwBYgb/++svoGnS/jGm3b982mX5/4SjD/V2isrt5Mufm6q+//spymYztREZG6q233lKjRo3k5uamOXPm6NixY2rfvn2mX94f9Oeff5q8btGihYKCghQUFKTY2FilpqaqZcuWRnekh7l3757Jth7MmDEA7ciRIzMte/8NoTn7436///67/vjjD+OGKzsPrv9h3deykjHvmDFjjJur+yUlJaly5cq5sp5HSUlJ0aZNm7Rp0yYFBQUpLCxMw4cPf2TxKav9en93rIxcD8734GtbW1vFxcWpe/fumdb3YPEuu2sjK9999522b98uT09Pubu769tvv9XmzZvVr1+/Ry6XFTs7O1WuXNkYX6pmzZpatGiR5syZo4kTJyolJUW1a9fW7Nmzsx0gevny5bp69apGjhypCxcu6K+//tL69euN5f788095e3urTp06atCggT744AONHj1avr6+OnjwoGxtbbV69Wqj1dH9/vjjj8f+bFm5c+eOmjRporS0NF25ckX/+9//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H3yg2rVrq0qVKpo1a1a2LeWk9JZCP/30k5YsWaJmzZrppZdeUvXq1Y3vIElat26dbty4oZCQEFWtWlW1atXSzJkzzSqG37t3T2PGjFHdunX12muvafbs2frzzz+1du1aSeadc49r586d8vHxUZkyZUy6Z0ZFRcnHx0cuLi4m3S///PNPzZkzRyNGjFC3bt1UuXJlubq6qnXr1ho1apSk9KLnihUrNG3aNLVr104VKlRQ1apV9f7776tv376ZMsTGxqpjx4768MMPNXToUGP6woUL1aNHD7Vr104VK1ZU7969jTGqMpw6dUre3t6qUaOGXF1dNXXqVJPCYoaMMc8GDRqkFStW5GrrNACwBnS7AwArEBcXJx8fHw0bNkxLly5VsWLFdPbsWS1cuFCLFy9+rHXdvHlTbdq00ZgxY7RgwQIVLlxYCQkJmjNnjqT0v6i///77GjNmjDZv3qy//vpLERERJuMAmeP27dsaMmSIXFxcdPfuXR05ckR+fn5Gd7YFCxbo9ddfV0REhIoUKaI2bdo89Mlwy5cv1+uvv66ZM2cqX758xoC1jxr02xwZT4EaMWKElixZoqJFiyo5OVm7d+82WswcPHhQH330kYYPH64+ffroyJEjGjdunL755ptHrjs1NVUtWrTQhx9+qICAAE2cOFG3b9/W6dOntWrVKmPw3qVLl6pw4cIaMGCAgoODdeHCBQUFBT3WQLKrV6/WjRs31LdvXw0YMEB37tzR2bNntWnTJmOeSZMmqWDBgpo3b57u3bundevWKTw83OSJUOas50HHjx83CkjOzs5KS0tTQkKCZs+erYULFxrzTZgwQRMmTNDu3btlb2+vsmXL6tq1a/rwww81btw4RURE6NChQ/rss89MPvvFixf1wQcfaOLEicZN+ejRo41B0aX0c61NmzYaNmyYZs6cqVKlSun333/Xr7/++litA9LS0jRy5Eh9+umn6t27ty5evKg6derIxsZGEydOVLly5XTz5k3t27dPnTp1ynZ9S5culZR+zSUnJ2v//v3q1KmTSSuM//73v/riiy80YsQIFSlSRLGxsQoMDDSeKieltxZZvHixpkyZolKlSmnVqlUaNGiQevXqpcDAQEVERCghIUGTJ082bp6l9FYhTZs21YABA1SkSBFduHBBs2bNMvZvXFycWrZsqWHDhmnlypWyt7fXxYsXFR0d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lzfeeCPPP/98ks2T5XHjxm217oYNG/LGG28k2dzUdu+++SXQv3//fOhDH8qjjz6aJLn11lu3mDxXKl+y+S9Oe++9dx588MHSsq7K98gjj+SVV17ZYtno0aMzd+7cJJt/8LT3vEXm6op87TnmmGNy5513ltY/6aSTuizb8uXL89xzz21zvbZeD6NHj66JbO2tm3R+v3dVvvZ0Vb62sj344IN56623kiTLli3LwIEDt1qvWuNaTrb21k2KH9dy8rW2tubJJ59MkvzlL3/J8uXLU19f36X5OrPvXn/99SRJr1690qtXr2zatPlzSWphXAcMGJCRI0fmZz/72RbLayFbe4p+zb322mulf++2226l8Xqn4447LosWLcratWuzbt26LFq0KCNGjOjSc1hHsyXJ4sWLt3js27pqXDuT7/nnn89///d/J9lc9qxZsyZ77bVXl+braLZKzL26qaEAACAASURBVOk6M67tKXpck2TatGmZMWNGu9mqdUyUky0p/pjoTLb2FJ3tvVRiXtKZfNU693/pS1/K7NmzSz8rXn755bLXrYVsldhvncmXFD9v2pkon3ZA9fX1WbFiRenr5ubm9OvXL7169Sq9fefkk08uTZAPOeSQXHXVVaXHDxw4MAsWLMijjz6a2bNnp6WlJQMGDMjKlSu3eM63D+xK5uvWrVsuu+yyrS5z7sp879avX7+0trYm2fwDbu+9966JXNuTL9k88Zw3b17uvPPO0g/fvn37Zt26daVfnIrI15Z99tknjY2NSdp+PdTX19dEtm1pb78X7d35Nm3alDlz5mT+/PmZOHFixfN9/vOfL/0Fr9bGtb1s21LJcS0n37777pvBgwdn2bJlFc23rWzdu3fPfffdlyeffDIPPvhgHnvssZoZ1+nTp+fyyy/Pxo0bS8tqJVs1j9WLL744v/nNb/JP//RP+cEPfpBky3NEfX19m+eqSpzD3itbeyo1rtuT75Of/GR69+6dF154oSL5yslW9JyuM9mqNS8ZNWpUVq1alaeffnqL5bVwTJSTrT1F77tys1VrXM8888wsWLAgs2bNKl2lVkvzkvfK906VPPcfdNBBOeKII3LXXXfltttuK/0uVgvzpu3NVuk5U7n5qj1v2pEon3ZA3bp122rZxo0bM2nSpEybNi133313Xnvttbz55ptJkt/+9rdbvP905cqVGTlyZI466qg0NDS0e6B25K8enc13+umnZ8GCBVuc+NvT0XzlqtVcb3v3uA4ZMiRjxozJ1772tUyfPj0HHHBAm2NRiXwtLS2lX77ay1AL2WrRu/OdcsopGTVqVE477bScfvrpOfLIIyuW5bzzzstbb72VX/7yl1tlq/a4bitbLSgn32677Zabbrop3/nOd9r8C3e1sm3cuDEnnnhiDjvssBx66KH5+7//+5oY1xNOOCFr1qzJE088scU6tZAtqe6xesUVV2TIkCG57bbbcsYZZyTZ8hyxPfuoq/fde2VrT6XGtdx8/fv3z49+9KOcf/75FftZV062oud0nclWjXnJrrvumvPOOy9XXnnlVt+r9jFRbrb2FLnvtidbNcb1P/7jP3LkkUfmhBNOSGtray677LIktTMvKSff2yp97u/Zs2fq6uoybty4TJ8+PTfccEO72Spte7JVY85Ubr5qzpt2NMqnHVBzc3MGDRpU+nrAgAFpaWnJo48+mlNPPTVjx47NI488UrpMvD0tLS159tlnc8QRR6S5uXmLtxK8/ZyVzjdkyJCceeaZWbp0aS677LKMHz8+U6dO7dJ877Z69er0798/yebJ5Zo1a2oi1/bkS1La7osvvpglS5bk4x//eF5++eXU1dWVbu5eRL730t7roRaybUu5+71ob++Tl19+Offcc08++clPViTf+PHjc8IJJ+Scc85p8/vVHNf3yrYtlRjXcvL17NkzN910U2677bbcfffdFcu3Pfvu1VdfzZIlSzJixIiaGNehQ4dm1KhRWbp0aa677rocc8wxmT17dk1kS6p3rL7Tr371qzbf0t7euaoS57D3ytaeSp8jtpVv9913T2NjY77//e+X/uJeyXzl7Lui5nSdyVaNeckBBxyQ/fffPwsWLMjSpUszYMCA3HvvvenXr98Wj6vGMVFutvYUue+2J1s1xnXNmjXZuHFjNm3alMbGxhx66KFbPaaa85Jy8iXVOfc3NzeXtvX4449n48aNpbcOl6MWslVrzrS9+67S86YdkfJpB/T444/nwAMPzH777ZdevXrlM5/5TObPn186GHr37p1zzjlnq0/ISDa/8HfZZZckSV1dXT71qU/lueeeS2tra1577bXSDdLGjx+/xaf1VCrfOeeckyFDhmTo0KGZNm1abr311sycObNL873bvffeW7r5eUNDQ+bPn18TubYnX11dXXr37p1k86XPn/rUp0o35G1qasrJJ59cWr+r872X9l4PtZBtW8rZ70Xbdddd88EPfrD07+HDh+fZZ58tPN+IESMyefLknH766Vm/fn2bj6nWuJaTbVuKHtdy882aNSvLly/P9ddfX7F85WTba6+9SjdT3mWXXXLsscfmD3/4Q5Lqj+vMmTNz+OGHZ+jQoZk0adIWNxetdrZqHatJcuCBB5b+PWrUqNJ4vdPChQszfPjw1NXVpa6uLsOHD8/ChQsLP4eVk21bij5HlJOvV69eufnmm3PrrbeW7t1RiXzlZKvEnK6j2ao1L3nmmWcyePDgDB06NEOHDk1zc3NGjRqV1atXb/G4ahwT5WbblqL2XbnZqjWubxcMSTJ27Ng888wzWz2mmvPNcvIl1Tn3z5s3L8ccc0ySzW8j69WrV7v3LmpLLWSrxn4rN1+15k07qm719fWu/9oBHX/88Zk+fXp69OiROXPm5Jprrsm3v/3tnHjiienWrVt++tOf5sYbb0yy+b3aX/ziF/PNb34zxx57bC677LLSZag/+clPSu9ZPeSQQ/LDH/4wu+yyS+6///5ccsklFc/3Tg0NDTnkkENKOboi37XXXpthw4alb9++Wb16da666qrMmzcv119/fQYNGpQVK1bk7LPPztq1ayuaq7P5hgwZkiuvvDIbN25M9+7dc+ONN+aWW25Jkuy///657rrr0qdPn/zud7/L5MmTSzfO62y2tWvX5vLLL89ee+2VV199NU899VQmTJiQffbZJ//6r/9auiS1rddDrWRra91bbrkle+65Z5v7vSM6mm///ffPzTffnGTzX31+9atflfZdV+VrK9u5556b3r17l268uGzZslx00UU1Ma7lZqvWuJaTb+jQobnjjjvy9NNPl+5d9L3vfS/3339/1cf1H/7hH3LNNdekR48e6d69e/7zP/8zV199dZLaGNe3HXXUUfnqV79a+mj5amerxLHaXr6RI0fmwx/+cDZu3JiXXnopF110UVatWrXVOezzn/98vv71rydJrrnmmvz85z9P0nXnsM5ku/322/ORj3wku+22W1555ZVMmTIlCxcu7LJx7Uy+z372s7n66qtLZWKSnH/++XnqqacKfd2Vk60Sc7qOZqvEvKS9fG9vJ0mWLl2aMWPG5E9/+lNNHBPlZiv6mOhotmrNN4cNG5aDDz44mzZtyh//+Md861vfSmtra8XnJZ3JV61z/y9+8YtcffXVOfjgg7Nhw4ZMmzYtTU1NFZ83dTRbJfZbZ/JVYt60M1E+AQAAAFAYb7sDAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDAVKZ9mzZqVJ598Mg888EBpWZ8+fTJnzpw0NTVlzpw5qaurK31vxowZWbJkSRYsWJDBgweXlo8fPz5NTU1pamrK+PHjKxEdAAAAgE6oSPk0d+7cnHbaaVssmzx5chYvXpyjjz46ixcvzuTJk5Mkxx9/fA466KAMGzYsF154Ya644ookm8uqKVOmZNy4cRk7dmymTJmyRWEFAAAAQO2pSPn0yCOP5JVXXtli2ejRozN37twkm8upMWPGJEnGjBmTW2+9NUmybNmy7LHHHunfv3+OO+64LFq0KGvXrs26deuyaNGijBgxohLxAQAAAOigntXacL9+/dLa2pokaW1tzd57750kqa+vz8qVK0uPa25uzoABA9pcXl9f3+ZzT5w4MRMnTkySnHXWWUX9LwAAAAC8b61YsaKsx1WtfGpPt27dtlq2adOmdpe3pbGxMY2NjUmSQYMGlb0zdna1vC9k67hazidbx9VyPtk6rpbzydZxtZxPto6r5XyydVwt55Ot42o5n2wdV8v5ajlbJQ0aNKjsx1bt0+5Wr16d/v37J0n69++fNWvWJNl8RdPAgQNLjxswYEBWrVrV5vKWlpbKhgYAAABgu1StfLr33nvT0NCQJGloaMj8+fOTJPPnzy99kt1hhx2WP//5z2ltbc3ChQszfPjw1NXVpa6uLsOHD8/ChQurFR8AAACAMlTkbXfXXntthg0blr59++bRRx/NVVddldmzZ+f666/PhAkTsmLFipx99tlJkgULFmTkyJF5+OGHs379+lxwwQVJkrVr1+bqq6/OPffckySZNWtW1q5dW4n4AAAAAHRQRcqnr33ta20uf/vKp3ebOnVqm8vnzJmTOXPmdFkuAAAAAIpVtbfdAQAAALDzUz4BAAAAUBjlEwAAAACFUT4BAAAAUBjlEwAAAACFUT4BAAAAUBjlEwAAAACFUT4BAAAAUBjlEwAAAACFUT4BAAAAUBjlEwAAAACFUT4BAAAAUJie1Q4AAHTezJaPde4JWpKkrsOrT93n6c5tHwCAnZYrnwAAAAAojPIJAAAAgMIonwAAAAAojPIJAAAAgMIonwAAAAAojPIJAAAAgMIonwAAAAAojPIJAAAAgMIonwAAAAAojPIJAAAAgMIonwAAAAAoTM9qBwBq18yWj3XuCVqSpK7Dq0/d5+nObR8AAICqc+UTAAAAAIVRPgEAAABQmKqXT2effXYWLlyYBx54INdee20+8IEPZL/99stdd92VpqamXHfddenVq1eSpHfv3rnuuuuyZMmS3HXXXdl3332rnB4AAACAbalq+VRfX5+zzjorY8aMyYgRI9KjR4985jOfyaWXXpobbrghRx99dNatW5cJEyYkSSZMmJB169Zl2LBhueGGG3LppZdWMz4AAAAA76HqVz716NEju+yyS3r06JFdd901ra2tOeaYY3LnnXcmSebOnZuTTjopSTJmzJjMnTs3SXLnnXfm05/+dNVyAwAAAPDeqvppd6tWrcp1112X3/zmN/nrX/+aBx98ME888UTWrVuXt956K0nS3Nyc+vr6JJuvlFq5cmWS5K233sqrr76avn375k9/+tMWzztx4sRMnDgxSXLWWWdl0KBBFfy/qm21vC9k67jC8rUU87TlKnq/v2/HtQvI1nGO19p8/s6q5XyydVwt55Ot42o5n2wdV8v53q/ZzlnW8U+9TtKpT87+8WHrOrftMtTyuNaiqpZPdXV1GT16dI444oisW7cuN954Y44//vitHrdp06YkSbdu3dr93js1NjamsbExyeYXxIoVK7o4+Y6plveFbB1XbL5OnjA6qcj9/v4e186RreMcrx3z/h7XzpGt42o5n2wdV8v5ZOu4Ws73/s5WvblJ0fu8lse1krangKvq2+4+/elP58UXX8zLL7+cN998M3fffXeGDBmSurq69OjRI0kyYMCAtLRs/nNuc3NzBg4cmGTz2/X22GOPvPLKK1XLDwAAAMC2VbV8WrFiRQ4//PDsuuuuSZJjjjkmv//979PU1JSTTz45SdLQ0JB58+YlSebPn5+GhoYkycknn5zFixdXJzgAAAAAZalq+fTYY4/lzjvvzL333psHHngg3bt3T2NjYy6//PJ85StfyZIlS7LnnnvmlltuSZLccsst2XPPPbNkyZJ85StfyXe/+91qxgcAAADgPVT1nk9JctVVV+Wqq67aYtmLL76YsWPHbvXYv/3tbzn77LMrFQ0AAACATqrqlU8AAAAA7NyUTwAAAAAURvkEAAAAQGGUTwAAAAAURvkEAAAAQGGUTwAAAAAURvkEAAAAQGGUTwAAAAAURvkEAAAAQGGUTwAAAAAUpme1AwDAO81s+VjHV25JkroOrz51n6c7vm0AAKBNrnwCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKo3wCAAAAoDA9qx2AncPMlo917glakqSuw6tP3efpzm0fAAAAKIQrnwAAAAAojPIJAAAAgMIonwAAAAAojPIJAAAAgMIonwAAAAAoTFnl05e+9KXU1XX8k8gAAAAAeH8qq3w68cQT8+ijj+YnP/lJxo0bl169ehWdCwAAAICdQFnl08SJE3PEEUekqakpkydPzuOPP57vf//7GTJkSKcD7LHHHrnxxhvz0EMPZdGiRTn88MPTp0+fzJkzJ01NTZkzZ84WV13NmDEjS5YsyYIFCzJ48OBObx8AAACA4pR9z6eXX345//t//++cdNJJaWhoyOGHH57bb789Dz/8cM4555zsuuuuHQowY8aMPPDAA/n0pz+dkSNHZvny5Zk8eXIWL16co48+OosXL87kyZOTJMcff3wOOuigDBs2LBdeeGGuuOKKDm0TAAAAgMrYrhuOH3XUUbnqqqsyd+7cvPLKK7ngggsyZcqUDBkyJI2Njdu98d133z1HHnlkfvaznyVJNmzYkFdffTWjR4/O3LlzkyRz587NmDFjkiRjxozJrbfemiRZtmxZ9thjj/Tv33+7twsAAABAZfQs50FTp07N//yf/zN//etf84tf/CKjRo3KihUrSt//9a9/nf/3//7fdm/8gAMOyMsvv5wf/vCH+djHPpYnnngi3/72t9OvX7+0trYmSVpbW7P33nsnSerr67Ny5crS+s3NzRkwYEDpsW+bOHFiJk6cmCQ566yzMmjQoO3OtrMqbF+0FPO05Sp6jGv9NWRca/P5O6uW8xWarYqvu0rsc8drbT5/Z9VyPtk6rpbzydZxtZxPto6r5Xzv22zmdLxDWeVTXV1dJk2alEcffbTN72/YsCHjxo3b/o337JnBgwfnkksuyWOPPZYZM2bk3HPPbffx3bp122rZpk2btlrW2NhYuhJr0KBBWxRl72fF7ovqfhpikWNc668h49ox7+9x7Zzis1XvdVf0Pne8dkwtHw9JbeeTreNqOZ9sHVfL+WTruFrO9/7OZk63s9ueAq6st91ddNFF7RZPb3v22WfL3ujbVq5cmebm5jz22GNJkjvvvDODBw/O6tWrS2+n69+/f9asWZNk85VOAwcOLK0/YMCArFq1aru3CwAAAEBllHXlU/fu3fPFL34xRx11VPr27bvFFUjjx4/v8MZXr16dlStX5sMf/nCee+65HHPMMfn973+f3//+92loaMjs2bPT0NCQ+fPnJ0nmz5+fM888M7fffnsOO+yw/PnPf97qLXcAAAAA1I6yyqdp06bluOOOS2NjYy688ML84Ac/yBe/+MXccccdnQ5wySWX5Mc//nF69eqVF198Meeff366d++e66+/PhMmTMiKFSty9tlnJ0kWLFiQkSNH5uGHH8769etzwQUXdHr7AAAAABSnrPJp3LhxOeWUU/LSSy/lG9/4Rq6//vrcf//9ueKKKzod4Kmnnip9mt07NTQ0tPn4qVOndnqbAAAAAFRGWfd82nXXXfPSSy8lSdavX59ddtkly5cvz+DBgwsNBwAAAMCOrawrn/7whz/kkEMOyW9/+9s88cQT+cY3vpFXX301LS1V/lxn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5+mnn859992XJPne976X2bNn5/rrr8+ECROyYsWKnH322UmSBQsWZOTIkXn44Yezfv36XHDBBdWMDwAAAFUxs+VjnXuClqQzVwBN3efpzm2f95Wqlk9Lly5t94bhb1/59G5Tp04tMhIAAAAAXajq93wCAICuVs0rAlwNAABbqvo9nwAAAADYeSmfAAAAACiM8gkAAACAwiifAAAAACiM8gkAAACAwiifAAAAACiM8gkAAACAwiifAAAAAChMz2oHAACA95OZLR/r3BO0JEldh1efus/Tnds+AGwnVz4BAAAAUBjlEwAAAACFUT4BAAAAUBjlEwAAAACFUT4BAAAAUBjlEwAAAACFUT4BAAAAUBjlEwAAAACFUT4BAAAAUBjlEwAAAACFUT4BAAAAUBjlEwAAAACF6VntAADAzm9my8c6vnJLktR1ePWp+zzd8W0DANBprnwCAAAAoDDKJwAAAAAKo3wCAAAAoDDKJwAAAAAKs0OWTyNGjMhDDz2UJUuWZPLkydWOAwAAAEA7drjyqXv37pk5c2a+8IUvZPjw4Tn11FPz0Y9+tNqxAAAAAGjDDlc+HXrooXnhhRfy4osvZsOGDbnjjjsyevToascCAAAAoA3d6uvrN1U7xPYYN25cRowYkW9+85tJks997nM59NBDc8kll5QeM3HixEycODFJctZZZ1UlJwAAAMDObMWKFWU9rmfBObpct27dtlq2adOW/VljY2MaGxsrFWmHMW/evIwZM6baMdokW8fVcj7ZOq6W88nWcbWcT7aOq+V8snVcLeeTreNqOZ9sHVfL+WTruFrOV8vZatUO97a75ubmDBo0qPT1gAED0tLSUsVEAAAAALRnhyufHn/88Rx44IHZb7/90qtXr3zmM5/J/Pnzqx0LAAAAgDb02H333f+/aofYHps2bcrzzz+fH//4xznrrLNy22235e677652rB3GE088Ue0I7ZKt42o5n2wdV8v5ZOu4Ws4nW8fVcj7ZOq6W88nWcbWcT7aOq+V8snVcLeer5Wy1aIe74TgAAAAAO44d7m13AAAAAOw4lE8AAAAAFEb5tIMaMWJEHnrooSxZsiSTJ09Okhx99NG5995788ADD+Saa65Jjx49tlpv3333zfz583Pfffdl4cKF+ed//ufS9z7xiU/k/vvvz5IlSzJjxoyq5Hvb7rvvnmXLluW73/1ul+abNWtWnnzyyTzwwAOlZX369MmcOXPS1NSUOXPmpK6uruK5uiLfSy+9lPvuuy/33Xdf/v3f/720fL/99stdd92VpqamXHfddenVq1eXZTv55JOzcOHCrFixIocccki767b1eqiVbG2tm2zf66LIfEuXLs3999+f++67L/PmzevyfG1l+/a3v52HHnooCxYsyM0335w99tijzXWrMa7lZqvWuJaTb+DAgfnFL36RRYsWZeHChfmXf/mXLs/X0Wwf+MAHcvfdd+f//J//k4ULF+ab3/xm6Xu1MK5J0r1799x777356U9/WlPZij5W28v3rW99KwsWLMh9992XOXPmZJ999mlz3fHjx6epqSlNTU0ZP358aXlXncM6k+1nP/tZnnnmmS3GNOm6ce1MvoMPPjj/9V//lYULF2bBggU55ZRTujxfR7NVYk7XmXEtel7SXr63TZo0Kc3Nzenbt2+b61bjmCg3W9HHRGeyVWO+OWXKlCxbtqy03eOPP77NdYuel3QmX7XO/Uly5pln5qGHHsrChQtz6aWXbte61c5Wif3WmXyVmDftTJRPO6Du3btn5syZ+cIXvpDhw4fn1FNPzUc/+tFcc801mTRpUkaMGJGXXnopDQ0NW63b0tKSf/zHf8yJJ56YsWPHZvLkyaVJwxVXXJELL7www4YNy0EHHdTuD/Yi873toosuysMPP7zFsq7IN3fu3Jx22mlbLJs8eXIWL16co48+OosXL97iZFWpXF2R769//WtOPPHEnHjiiTn99NNLyy+99NLccMMNOfroo7Nu3bpMmDChy7I9++yzOeuss/LII4+0u157r4dayNbeusn2vS6KzJckn/vc53LiiSdmzJgxXZ6vrWyLFi3Kcccdl5EjR+a5557Lueeeu9V61RrXcrK1t25S/LiWk+/NN9/MtGnTcuyxx2bcuHE5/fTTS/uu2uP6t7/9LZ/73Odywgkn5IQTTsiIESNy2GGHJamNcU2SL3/5y1m+fPkWy2olW5HHanv5rr322owcOTInnnhi7rvvvnzjG9/Yar0+ffpkypQpGTduXMaOHZspU6aUJulddQ7raLa3H9fWfu2qce1MvvXr1+frX/96jjvuuJx22mmZPn16qYAs8nVXTrZKzOk6M65Fz0vay5ds/oV1+PDheemll9pcr1rHRDnZkuKPic5kq8Z8M0luuOGG0nbvv//+rb5fiXlJZ/JV69w/bNiwjB49OiNHjsxxxx2Xf/u3f9uu/69qZ6vEfutMvkrMm3Ymyqcd0KGHHpoXXnghL774YjZs2JA77rgj48aNyxtvvJHnn38+yebJ8rhx47Zad8OGDXnjjTeSbG5qu3ff/BLo379/PvShD+XRRx9Nktx6661bTJ4rlS/Z/BenvffeOw8++GBpWVfle+SRR/LKK69ssWz06NGZO3duks0/eNp73iJzdUW+9hxzzDG58847S+ufdNJJXZZt+fLlee6557a5Xluvh9GjR9dEtvbWTTq/37sqX3u6Kl9b2R588MG89dZbSZJly5Zl4MCBW61XrXEtJ1t76ybFj2s5+VpbW/Pkk08mSf7yl79k+fLlqa+v79J8ndl3r7/+epKkV69e6dWrVzZt2vy5JLUwrgMGDMjIkSPzs5/9bIvltZCtPUW/5l577bXSv3fbbbfSeL3Tcccdl0WLFmXt2rVZt25dFi1alBEjRnTpOayj2ZJk8eLFWzz2bV01rp3J9/zzz+e///u/k2wue9asWZO99tqrS/N1NFsl5nSdGdf2FD2uSTJt2rTMmDGj3WzVOibKyZYUf0x0Jlt7is72XioxL+lMvmqd+7/0pS9l9uzZpZ8VL7/8ctnr1kK2Suy3zuRLip837UyUTzug+vr6rFixovR1c3Nz+vXrl169epXevnPyySeXJsiHHHJIrrrqqtLjBw4cmAULFuTRRx/N7Nmz09LSkgEDBmTlypVbPOfbB3Yl83Xr1i2XXXbZVpc5d2W+d+vXr19aW1uTbP4Bt/fee9dEru3Jl2yeeM6bNy933nln6Ydv3759s27dutIvTkXka8s+++yTxsbGJG2/Hurr62si27a0t9+L9u58mzZtypw5czJ//vxMnDix4vk+//nPl/6CV2vj2l62bankuJaTb999983gwYOzbNmyiubbVrbu3bvnvvvuy5NPPpkHH3wwjz32WM2M6/Tp03P55Zdn48aNpWW1kq2ax+rFF1+c3/zmN/mnf/qn/OAHP0iy5Tmivr6+zXNVJc5h75WtPZUa1+3J98lPfjK9e/fOCy+8UJF85WQrek7XmWzVmpeMGjUqq1atytNPP73F8lo4JsrJ1p6i91252ao1rmeeeWYWLFiQWbNmla5Sq6V5yXvle6dKnvsPOuigHHHEEbnrrrty2223lX4Xq4V50/Zmq/Scqdx81Z437UiUTzugbt26bbVs48aNmTRpUqZNm5a77747r732Wt58880kyW9/+9st3n+6cuXKjBw5MkcddVQaGhraPVA78lePzuY7/fTTs2DBgi1O/O3paL5y1Wqut717XIcMGZIxY8bka1/7WqZPn54DDjigzbGoRL6WlpbSL1/tZaiFbLXo3flOOeWUjBo1KqeddlpOP/30HHnkkRXLct555+Wtt97KL3/5y62yVXtct5WtFpSTb7fddstNN92U73znO23+hbta2TZu3JgTTzwxhx12WA499ND8/d//fU2M6wknnJA1a9bkiSee2GKdWsiWVPdYveKKKzJkyJDcdtttOeOMM5JseY7Ynn3U1fvuvbK1p1LjWm6+/v3750c/+lHOP//8iv2sKydb0XO6zmSrxrxk1113zXnnnZcrr7xyq+9V+5goN1t7itx325OtGuP6H//xHznyyCNzwgknpLW1NZdddlmS2pmXlJPvbZU+9/fs2TN1dXUZN25cpk+fnhtuuKHdbJW2PdmqMWcqN1815007GuXTDqi5uTmDBg0qfT1gwIC0tLTk0UcfzamnnpqxY8fmkUceKV0m3p6WlpY8++yzOeKII9Lc3LzFWwnefs5K5xsyZEjOPPPMLF26NJdddlnGjx+fqVOndmm+d1u9enX69++fZPPkcs2aNTWRa3vyJSlt98UXX8ySJUvy8Y9/PC+//HLq6upKN3cvIt97ae/1UAvZtqXc/V60t/fJyy+/nHvuuSef/OQnK5Jv/PjxOeGEE3LOOee0+f1qjut7ZduWSoxrOfl69uyZm266KbfddlvuvvvuiuXbnn336quvZsmSJRkxYkRNjOvQoUMzatSoLF26NNddd12OOeaYzJ49uyayJdU7Vt/pV7/6VZtvaW/vXFWJc9h7ZWtPpc8R28q3++67p7GxMd///vdLf3GvZL5y9l1Rc7rOZKvGvOSAAw7I/vvvnwULFmTp0qUZMGBA7r333vTr12+Lx1XjmCg3W3uK3Hfbk60a47pmzZps3LgxmzZtSmNjYw499NCtHlPNeUk5+ZLqnPubm5tL23r88cezcePG0luHy1EL2ao1Z9refVfpedOOSPm0A3r88cdz4IEHZr/99kuvXr3ymc98JvPnzy8dDL17984555yz1SdkJJtf+LvsskuSpK6uLp/61Kfy3HPPpbW1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zQMCAAAA0HmVXD4dddRRWbdu3bvOc/7557c7EAAAAADbj5LLp3Xr1qV79+454IADsueee6ZLly5tjzU3NxcSDgAAAIDOreTy6cgjj8zUqVPTo0ePvO9978vLL7+c3XbbLatWrUr//v2LzAgAAABAJ1Xyp91ddtlluemmm3LwwQfnD3/4Qw4++OBcf/31+fd///cC4wEAAADQmZVcPu2///6ZNm3aRtMmTZqUsWPHbvNQAAAAAGwfSi6fXn755bzvfe9LkqxduzYHHXRQampqsuuuu7YrQM+ePTNt2rTcf//9WbhwYY444ojsvvvuaWpqSnNzc5qamlJTU9M2/8SJE9PS0pJ58+alb9++7Vo3AAAAAMUquXy6++67M3To0CTJrbfemttvvz1z5szJT37yk3YFmDhxYubPn5+jjz46Q4cOzfLlyzNu3LgsWrQoAwcOzKJFizJu3LgkybHHHpv9998/AwYMyIUXXpirrrqqXesGAAAAoFgl33D8m9/8ZtvXU6ZMySOPPJJdd9018+fPL3vlu+22W/r375+vfOUrSZI33ngjb7zxRoYNG5bPfvazSZLp06fnv/7rv3LFFVekvr4+M2bMSJIsXbo0PXv2TK9evbJ27dqyMwAAAABQnC61tbWtlVr5IYcckmuuuSbLli3LwQcfnMceeyyXXHJJHn744fzt3/5t23y/+MUv8tGPfjS33HJLJk2alCVLliTZUExdccUVefSgCQowAAAgAElEQVTRRzd63tGjR2f06NFJkjFjxnTcDwQAAADwV2LlypUlzfeuI59+9KMfpbV1693UKaecUlqqv1z5Djukb9++ufjii/Pwww9n4sSJOffcc7c4f5cuXTaZtrl8jY2NaWxsTJLU1dWVvDG2d9W8LWQrXzXnk6181ZxPtvJVcz7ZylfN+WQrXzXnk6181ZxPtvJVcz7ZylfN+ao5W0eqq6sred53LZ9++MMftn39oQ99KKeddlpmzJiRZ555JnV1dRk5cmSamprKDrpq1aqsXr06Dz/8cJJk5syZGTduXJ577rm2y+l69eqVdevWJUlWr16dPn36tC3fu3fvPPvss2WvHwAAAIBivWv59M79lZINxdCoUaOybNmytml33nlnrrvuulx77bVlrfy5557LqlWrcsABB+Spp57KoEGDsmzZsixbtiwNDQ2ZNGlSGhoaMmfOnCTJnDlzcuaZZ+ZHP/pRDj/88Lz88svu9wQAAABQxUq+4fhHPvKR/Pa3v91o2ooVK3LggQe2K8DFF1+cG2+8Md27d8+KFSty/vnnp2vXrpkyZUpGjRqVlStXZuzYsUmSefPmZejQoVm8eHFeffXVXHDBBe1aNwAAAADFKrl8Wrx4cb773e/m6quvbrv8bfz48XnwwQfbFeCJJ55IfX39JtMbGho2O/9FF13UrvUBAAAA0HG6ljrj+eefnyRZsGBBfv3rX2f+/Pnp2rWr0UcAAAAAbFHJI59efPHFfOlLX0qXLl2y11575fnnny/pk/AAAAAA+OtV8singw46KHvvvXdaW1vzyiuvZPz48bnggguy8847F5kPAAAAgE6s5PLpxhtvTE1NTZLk0ksvTf/+/dOvX79cffXVhYUDAAAAoHMr+bK7/fbbL0899VSS5MQTT8wxxxyTV199NUuWLCksHAAAAACdW8nl0+uvv55dd901Bx10UFatWpXf//736datW3bcccci8wEAAADQiZVcPt155525/fbbs9tuu+Xmm29OkvTt2zcrVqwoLBwAAAAAnVvJ5dOll16awYMH54033khLS0uSpLW1NZdeemlh4QAAAADo3Eoun5Lkpz/9afr06ZPDDz88S5cuzaOPPlpULgAAAAC2AyV/2l1dXV3uuuuu3H///Zk+fXqSZPjw4bn22msLCwcAAABA51Zy+XT11Vdn3rx5OfDAA/PGG28kSRYuXJjBgwcXFg4AAACAzq3ky+4+9rGPZfTo0WltbU1ra2uS5OWXX8773ve+wsIBAAAA0LmVPPJp3bp1+fCHP7zRtIMOOigrV67c5qEAAAAA2D6UXD59//vfzy233JJ/+Id/yA477JCTTz45kydPzo033lhkPgAAAAA6sZIvu2tqasqLL76Y0aNHZ9WqVWloaMjVV1+d2bNnF5kPAAAAgE6s5PIpSWbPnq1sAgAAAKBk76l8Gjx4cA455JDsuuuuG02/5pprtmkoAAAAALYPJZdPV1xxRT71qU+lubk5r776atv0dz75DgAAAAD+Usnl08knn5zjjz8+q1atKjIPAAAAANuRkj/t7oUXXsj69euLzAIAAADAdqbkkU9TpkzJjTfemO9973t57rnnNnpsxYoV2zwYAAAAAJ1fyeXTVVddlSQ5/vjjN5re2tqafffdd9umAgAAAGC7UHL5VFdXV2QOAAAAALZDJd/zCQAAAADeq3cd+fSjH/0ora2tW32SU045ZZsFAgAAAGD78a7l0w9/+MO2rz/0oQ/ltNNOy4wZM/LMM8+krq4uI0eOTFNTU+EhAQAAAOic3rV8mjFjRtvXM2fOzKhRo7Js2bK2aXfeeWeuu+66XHvttcUlBAAAAKDTKvmeTx/5yEfy29/+dqNpK1asyIEHHtj+EF27Zu7cubnllluSJPvtt19mzZqV5ubmTJ48Od27d0+S9OjRI5MnT05LS0tmzZrlU/YAAAAAqlzJ5dPixYvz3e9+Nx/+8Iez0047Zf/998+//Mu/5MEHH2x3iC9+8YtZvnx52/cTJkzI1KlTM3DgwKxfvz6jRo1KkowaNSrr16/PgAEDMnXq1EyYMKHd6wYAAACgOCWXT+eff36SZMGCBXnqqady3333pUuXLrngggvaFaB3794ZOnRobr311rZpgwYNysyZM5Mk06dPz4knnpgkqa+vz/Tp05NsuAzw6KOPbte6AQAAAChWl9ra2q1/nN2fL9ClS/baa688//zzJX0S3tZMmzYt3/ve97LrrrvmS1/6Us4///zMnDkzAwYMSJL06dMnP/zhDzNkyJDMnz8/p59+elavXp1kw2is4cOH5/e///1Gzzl69OiMHj06STJmzJh2ZwQAAABgYytXrixpvne94fhf+shHPpIRI0Zk7733zsUXX5wDDjggPXr0yC9+8YuyQh533HFZt25dHnvssXziE59IsqHc+kvvlFzv9tifa2xsTGNjY5Kkrq6u5I2xvavmbSFb+ao5n2zlq+Z8spWvmvPJVr5qzidb+ao5n2zlq+Z8spWvmvPJVr5qzlfN2TpSXV1dyfOWfNndiBEjcuedd6a2tjYjR45Mkuy222751re+9Z4DvuPII4/MCSeckCVLlmTy5MkZNGhQLr/88tTU1KRbt25JNlyWt2bNmiTJ6tWr06dPnyRJt27d0rNnz7zwwgtlrx8AAACAYpU88unrX/96/uEf/iFPPPFEPvWpTyVJnnjiiRxyyCFlr/zKK6/MlVdemST5xCc+kS996Us555xzMnXq1IwYMSJ33XVXGhoaMnv27CTJnDlz0tDQkIceeigjRozIokWLyl43ANXpyjUHl7/wmiSpKXvxi/Z5svx1AwAAm1XyyKe99torTzzxRJL//1K31tbWbXLfp7/07W9/O2eddVZaWlqyxx575LbbbkuS3Hbbbdljjz3S0tKSs846K1dcccU2XzcAAAAA207JI58ef/zxjBw5MjNmzGibdvLJJ+fhhx/eJkEWL16cxYsXJ0lWrFiRk046aZN5XnvttYwdO3abrA8AAACA4pVcPk2YMCFNTU0ZNWpUdtlll9x2223Zf//9c9pppxWZDwAAAIBObKvl09///d/ngQceyK9//escffTROe6443Lvvfdm1apVuffee/PKK690RE4AAAAAOqGtlk/f+MY38qEPfShPP/10HnjggTzwwAP5yU9+kmeeeaYj8gGwjbXrht6Jm3oDAADvyVbLp0GDBmXvvfdO//79079//5x11lm5/vrr8+yzz+aBBx7I4sWLc+utt3ZEVgAAAAA6mZLu+bRu3brMnDkzM2fOTJL07Nkzo0ePzllnnZVTTjlF+QQAAADAZpV8w/G/+7u/axv91K9fv6xZsyY//vGP8+CDDxaZDwAAAIBObKvl0y233JK+ffvmqaeeypIlS9LY2JivfOUr+eMf/9gR+QAAAADoxLpubYYDDjggr7/+elasWJGnn346//3f/614AgAAAKAkWx35NHDgwI1uOP7FL34xe+65Z/7f//t/efDBB7NkyZI88cQTHZEVAAAAgE6mXTccP//887PXXntl3333LTQkAAAAAJ1TWTccP/LII9OzZ888+uijaWpqKjIfAAAAAJ3YVsun//N//k/69euXHj16ZOnSpVm8eHFuvvnmPPTQQ3nttdc6IiMAVIUr1xzcvidYkyQ1ZS160T5Ptm/dAABQIVstnx588MHccMMNeeSRR/Lmm292RCYAAAAAthNbLZ8mTZrUETkAAAAA2A51rXQAAAAAALZfyicAAAAACqN8AgAAAKAwyicAAAAACqN8AgAAAKAwyicAAAAACqN8AgAAAKAwyicAAAAACqN8AgAAAKAwyicAAAAACqN8AgAAAKAwyicAAAAAClPR8qlPnz65/fbbs3DhwixYsCBf+MIXkiS77757mpqa0tzcnKamptTU1LQtM3HixLS0tGTevHnp27dvpaIDAAAAUIKKlk9vvvlmLrvssnzyk5/M8OHDc8YZZ+Sggw7KuHHjsmjRogwcODCLFi3KuHHjkiTHHnts9t9//wwYMCAXXnhhrrrqqkrGBwAAAGArKlo+rV27No8//niS5I9//GOWL1+e2traDBs2LNOnT0+STJ8+PfX19UmS+vr6zJgxI0mydOnS9OzZM7169apMeAAAAAC2aodKB3jHvvvum759+2bp0qV5//vfn7Vr1ybZUFDtvffeSZLa2tqsWrWqbZnVq1end+/ebfO+Y/To0Rk9enSSZMyYMamrq+ugn6L6VfO2kK181ZxPtvIVlm9NMU9bqq3+XBXM16mzdZJ1lKuasyXVnU+28lVzPtnKV835ZCtfNeeTrXzVnK+as1Wjqiifdtlll/zgBz/IN7/5zfzhD3/Y4nxdunTZZFpra+sm0xobG9PY2Jhkwwti5cqV2y5sJ1bN20K28lVzPtnKV2y+mq3PUqCt/1yVy9e5s7VPNb8nqjlbUt35ZCtfNeeTrXzVnE+28lVzPtnKV835qjlbR3ovBVzFP+1uhx12yA9+8IPccccdufvuu5Mkzz33XNvldL169cq6deuSbBjp1KdPn7Zle/funWeffbbjQwMAAABQkoqXT9ddd12WL1+eKVOmtE2bO3duGhoakiQNDQ2ZM2dOkmTOnDkZOXJkkuTwww/Pyy+/vMkldwAAAABUj4pednfkkUdm5MiRefLJJ3PvvfcmSb7zne9k0qRJmTJlSkaNGpWVK1dm7NixSZJ58+Zl6NChWbx4cV599dVccMEFlYwPAAAAwFZUtHxasmRJevfuvdnH3hn59JcuuuiiIiMBAAAAsA1V/LI7AAAAALZfyicAAAAACqN8AgAAAKAwFb3nEwDw1+HKNQeXv/CaJKkpe/GL9nmy/HUDANBuRj4BAAAAUBjlEwAAAACFcdkdAGwH2nVZW+LSNgAACmPkEwAAAACFUT4BAAAAUBiX3QEAUBafYggAlMLIJwAAAAAKo3wCAAAAoDAuuwMAYLtTyU+AdEkgAGzMyCcAAAAACqN8AgAAAKAwyicAAAAACqN8AgAAAKAwbjgOAPxVc2NqAIBiGfkEAAAAQGGUTwAAAAAUxmV3AABVqpKXBCYuCwQAtg0jnwAAAAAojPIJAAAAgMIonwAAAAAojPIJAAAAgMIonwAAAAAojE+7AwCADuRTDAH4a9MpRz4NGTIk999/f1paWjJu3LhKxwEAAABgCzpd+dS1a9dceeWV+dznPpfBgwfn5JNPzkEHHVTpWAAAAABsRqe77O6www7L008/nRUrViRJ7rrrrgwbNizLli2rcDIoTyWH3m9t2L3LAspXzfsVANj2nDcBbFmX2tra1kqHeC+GDx+eIUOG5Gtf+1qS5NRTT81hhx2Wiy++uG2e0aNHZ/To0UmSMWPGVCQnAAAAwPZs5cqVJc3X6UY+denSZZNpra0b92eNjY1pbGzsqEidxuzZs1NfX1/pGJslW/mqOZ9s5avmfLKVr5rzyVa+as4nW/mqOZ9s5avmfLKVr5rzyVa+as5XzdmqVae759Pq1atTV1fX9n3v3r2zZs2aCiYCAAAAYEs6Xfn0yCOP5MMf/nD222+/dO/ePZ/+9KczZ86cSscCAAAAYDO67bbbbt+qdIj3orW1Nb/5zW9y4403ZsyYMbnjjjty9913VzpWp/HYY49VOsIWyVa+as4nW/mqOZ9s5avmfLKVr5rzyVa+as4nW/mqOZ9s5avmfLKVr5rzVXO2atTpbjgOAAAAQOfR6S67AwAAAKDzUD4BAAAAUBjlUyc1ZMiQ3H///Wlpacm4ceOSJAMHDszcuXMzf/783HDDDenWrdsmy+27776ZM2dO7r333ixYsCCf//zn2x77H//jf+S+++5LS0tLJk6cWJF879htt92ydOnSXHHFFds033XXXZfHH3888+fPb5u2++67p6mpKc3NzWlqakpNTU2H59oW+Z555pnce++9uffee/Pv//7vbdP322+/zJo1K83NzZk8eXK6d+++zbKNGDEiCxYsyMqVK3PooYducdnNvR6qJdvmlk3e2+uiyHxLlizJfffdl3vvvTezZ8/e5vk2l+2SSy7J/fffn3nz5uXmm29Oz549N7tsJfZrqdkqtV9LydenT5/cfvvtWbhwYRYsWJAvfOEL2zxfudl23HHH3H333fm///f/ZsGCBfna177W9lg17Nck6dq1a+bOnZtbbrmlqrIV/V7dUr6vf/3rmTdvXu699940NTVln3322eyyI0eOTHNzc5qbmzNy5Mi26dvqGNaebLfeemt++ctfbrRPk223X9uT75BDDslPfvKTLFiwIPPmzcunPvWpbZ6v3GwdcU7Xnv1a9HnJlvK94+yzz87q1auz5557bnbZSrwnSs1W9HuiPdkqcb45fvz4LF26tG29xx577GaXLfq8pD35KnXsT5Izzzwz999/fxYsWJAJEya8p2Urna0jtlt78nXEedP2RPnUCXXt2jVXXnllPve5z2Xw4ME5+eSTc9BBB+WGG27I2WefnSFDhuSZZ55JQ0PDJsuuWbMmf//3f5/jjz8+J510UsaNG9d20nDVVVflwgsvzIABA7L//vtv8Rd7kfne8Y1vfCOLFy/eaNq2yDd9+vScfvrpG00bN25cFi1alIEDB2bRokUbHaw6Kte2yPenP/0pxx9/fI4//vicccYZbdMnTJiQqVOnZuDAgVm/fn1GjRq1zbL96le/ypgxY/LAAw9scbktvR6qIduWlk3e2+uiyHxJcuqpp+b4449PfX39Ns+3uWwLFy7MMccck6FDh+app57Kueeeu8lyldqvpWTb0rJJ8fu1lHxvvvlmLrvssnzyk5/M8OHDc8YZZ7Rtu0rv19deey2nnnpqjjvuuBx33HEZMmRIDj/88CTVsV+T5Itf/GKWL1++0bRqyVbke3VL+W666aYMHTo0xx9/fO6999589atf3WS53XffPePHj8/w4cNz0kknZfz48W0n6dvqGFZutnfm29x23Vb7tT35Xn311Zx33nk55phjcvrpp+fyyy9vKyCLfN2Vkq0jzunas1+LPi/ZUr5kw39YBw8enGeeeWazy1XqPVFKtqT490R7slXifDNJpk6d2rbe++67b5PHO+K8pD35KnXsHzBgQIYNG5ahQ4fmmGOOyfe///339HNVOltHbLf25OuI86btifKpEzrssMPy9NNPZ8WKFXnjjTdy1113Zfjw4Xn99dfzm9/8JsmGk+Xhw4dvsuwbb7yR119/PcmGprZr1w0vgV69euV973tfHnrooSTJjBkzNjp57qh8yYa/OO2999756U9/2jZtW+V74IEH8sILL2w0bdiwYZk+fXqSDb94tvS8RebaFvm2ZNCgQZk5c2bb8ieeeOI2y7Z8+fI89dRT77rc5l4Pw4YNq4psW1o2af9231b5tmRb5dtctp/+9Kd56623kiRLly5Nnz59NlmuUvu1lGxbWjYpfr+Wkm/t2rV5/PHHkyR//OMfs3z58tTW1m7TfO3Zdq+88kqSpHv37unevXtaWzd8Lkk17NfevXtn6NChufXWWzeaXg3ZtqTo19wf/vCHtq932WWXtv3154455pgsXLgwL774YtavX5+FCxdmyJAh2/QYVm62JFm0aNFG875jW+3X9uT7zW9+k//+7/9OsqHsWbduXfbaa69tmq/cbB1xTtee/bolRe/XJLnssssyceLE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qujIJwAAAAC2b8onAAAAAAqjfAIAAACgMMonAAAAAAqjfAIAAACgMMonAAAAAAqjfAIAAACgMMonAAAAAAqjfAIAAACgMMonAAAAAAqjfAIAAACgMMonAAAAAAqjfAIAAACgMMonAAAAAAqjfAIAAACgMMonAAAAAAqjfAIAAACgMMonAAAAAAqjfAIAAACgMMonAAAAAAqjfAIAAACgMMonAAAAAApTUvn0gx/8IPX19dlhhx2KzgMAAADAdqSk8mnJkiX56le/mkcffTRXXXVV+vXrV3QuAAAAALYDJZVPU6ZMyQknnJBTTjklL730Ur7//e+npaUlF1xwQT74wQ8WnREAAACATuo93fNp2bJlufLKKzNu3Li88sorGT9+fObOnZv//M//zMEHH1xURgAAAAA6qZJv4nTAAQfks5/9bE455ZS88cYbuf322/P5z38+zz//fM4444z827/9W4466qgiswIAAADQyZQ08mn27Nn58Y9/nN133z1f/vKX88lPfjL/+3//76xatSqvvfZapkyZUnaAnj17Ztq0abn//vuzcOHCHHHEEdl9993T1NSU5ubmNDU1paampm3+iRMnpqWlJfPmzUvfvn3LXi8AAAAAxSupfPre976Xj33sY7nooovy8MMPb3aeckc9TZw4MfPnz8/RRx+doUOHZvny5Rk3blwWLVqUgQMHZtGiRRk3blyS5Nhjj83++++fAQMG5MILL8xVV11V1joBAAAA6BgllU+zZs3KG2+80fZ9ly5d2v61x2677Zb+/fvn1ltvTZK88cYbeemllzJs2LBMnz49STJ9+vTU19cnSerr6zNjxowkydKlS9OzZ8/06tWrXRkAAAAAKE6X2tra1q3NtM8+++Q73/lOjjrqqI0ugUuSfffdt+yVH3LIIbnmmmuybNmyHHzwwXnsscdyySWX5OGHH87f/u3fts33i1/8Ih/96Edzyy23ZNKkSVmyZEmSDcXUFVdckUcffXSj5x09enRGjx6dJBkzZkzZ+QAAAADYvJUrV5Y0X0k3HL/66qvz6quvpqGhIXfccUdOOeWUfO1rX8u8efPaFXKHHXZI3759c/HFF+fhhx/OxIkTc+65525x/s2NtGpt3bQ7a2xsTGNjY5Kkrq6u5I2xvavmbSFb+ao5n2zlq+Z8spWvmvPJVr5qzidb+ao5n2zlq+Z8spWvmvPJVr5qzlfN2TpSXV1dyfOWdNldv379csEFF+SJJ55Ia2trnnzyyXz1q1/N2WefXXbIJFm1alVWr17ddh+pmTNnpm/fvnnuuefaLqfr1atX1q1blyRZvXp1+vTp07Z879698+yzz7YrAwAAAADFKal8evvtt/PWW28lSV566aXstddeeeWVV1JbW9uulT/33HNZtWpVDjjggCTJoEGDsmzZssydOzcNDQ1JkoaGhsyZMydJMmfOnIwcOTJJcvjhh+fll1/O2rVr25UBAAAAgOKUdNnd0qVLM3To0Nxzzz1ZsGBBJk+enD/96U+b3GupHBdffHFuvPHGdO/ePStWrMj555+frl27ZsqUKRk1alRWrlyZsWPHJknmzZuXoUOHZvHixXn11VdzwQUXtHv9AAAAABSnpPLp3HPPTdeuGwZJffOb38yXvvSl7LLLLpk2bVq7AzzxxBNtn2b3594Z+fSXLrroonavEwAAAICOUVL59NJLL7V9/ac//SnXX399YYEAAAAA2H5ssXy68MILS3qCa665ZpuFAQAAAGD7ssXy6c8/VW7HHXfM8OHD88gjj+SZZ57Jvvvum4997GOZNWtWh4QEAAAAoHPaYvn05zfz/v73v58vf/nLG5VNJ510UkaMGFFsOgAAAAA6ta6lzHTsscfmnnvu2Wja7NmzM3To0EJCAQAAALB9KKl8evrpp/OP//iPG00744wz8tvf/raQUAAAAABsH0r6tLvx48fn5ptvzpe//OU8++yz6d27d958882MGTOm6HwAAAAAdGIllU8///nPM2DAgBxxxBHZZ599snbt2vzsZz/Lm2++WXQ+AAAAADqxki67S5I333wzDz74YH784x+na9euOeKII4rMBQAAAMB2oKTy6Y477sjHP/7xJMk555yTyZMn5/vf/37OO++8QsMBAAAA0LmVVD79zd/8TR566KEkyec+97l89rOfzYgRI/L5z3++0HAAAAAAdG4l3fOpa9euaW1tzQc/+MF06dIly5cvT5LU1NQUGg4AAACAzq2k8mnJkiW58sors88+++See+5Jknzwgx/M73//+0LDAQAAANC5lXTZ3fnnn5+XXnopTz75ZK655pokyYEHHph//dd/LTQcAAAAAJ3bVkc+de3aNd/61rdy4YUX5vXXX2+bPm/evMybN6/QcAAAAAB0blsd+fT2229n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\n",
"text/plain": [
"<Figure size 1440x1296 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"fig = plt.figure(figsize=(20,18), dpi=72, facecolor=face_clr)\n",
"fig.subplots_adjust(hspace=0.5)\n",
"\n",
"display_days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday']\n",
"for i, display_day in enumerate(display_days):\n",
" # Monday\n",
" print(display_day)\n",
" ax = plt.subplot('41{}'.format(i+1))\n",
" x = list(time_buckets[display_day].keys())\n",
" x_label_idxs = list(range(0,len(x)))\n",
" x_labels = x.copy()\n",
" y = [v for k,v in time_buckets[display_day].items()]\n",
" plt.ylim([0,max_photos])\n",
" plt.ylabel(display_day)\n",
" ax.set_facecolor(face_clr)\n",
" plt.bar(x, y, color=bar_clr)\n",
" ax.grid(linestyle='-', linewidth='1', color=grid_clr)\n",
" plt.setp(ax.spines.values(), color=frame_clr)\n",
"\n",
"ax = plt.subplot('411')\n",
"plt.title('Unconstrained College Students Dataset: Photos Captured per Weekday')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 349,
"metadata": {},
"outputs": [],
"source": [
"fig.savefig('/mnt/ahprojects/tmp/uccs_exif_plot.png', dpi=fig.dpi, transparent=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "megapixels",
"language": "python",
"name": "megapixels"
},
"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.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
|