-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDeep_Learning_C4
More file actions
2488 lines (2488 loc) · 915 KB
/
Deep_Learning_C4
File metadata and controls
2488 lines (2488 loc) · 915 KB
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
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "ZdZavzLx8Voq"
},
"source": [
"# Deep Learning with PyTorch Step-by-Step: A Beginner's Guide"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9-Y2sMcO8Vor"
},
"source": [
"# Chapter 3"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "pU0JXjIH8Vos"
},
"outputs": [],
"source": [
"try:\n",
" import google.colab\n",
" import requests\n",
" url = 'https://raw.githubusercontent.com/dvgodoy/PyTorchStepByStep/master/config.py'\n",
" r = requests.get(url, allow_redirects=True)\n",
" open('config.py', 'wb').write(r.content) \n",
"except ModuleNotFoundError:\n",
" pass\n",
"\n",
"from config import *\n",
"config_chapter3()\n",
"# This is needed to render the plots in this chapter\n",
"from plots.chapter3 import *"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "WY92vDDX8Vot"
},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"import torch\n",
"import torch.optim as optim\n",
"import torch.nn as nn\n",
"import torch.functional as F\n",
"from torch.utils.data import DataLoader, TensorDataset\n",
"\n",
"from sklearn.datasets import make_moons\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.metrics import confusion_matrix, roc_curve, precision_recall_curve, auc\n",
"\n",
"from stepbystep.v0 import StepByStep"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "l4utkybn8Vou"
},
"source": [
"# A Simple Classification Problem"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9eCtHSo_8Vou"
},
"source": [
"## Data Generation"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "BC6vK9HI8Vov"
},
"outputs": [],
"source": [
"X, y = make_moons(n_samples=100, noise=0.3, random_state=0)\n",
"X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=.2, random_state=13)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Ft4jyFsM8Vov"
},
"outputs": [],
"source": [
"sc = StandardScaler()\n",
"sc.fit(X_train)\n",
"\n",
"X_train = sc.transform(X_train)\n",
"X_val = sc.transform(X_val)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "5Edq9-ak8Vow",
"outputId": "b608237c-2d1a-4047-a73d-224f50f51752"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1AAAAGgCAYAAACkFoYBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3gUVdsG8HtmWypJaAkEQgdFRBEE6QQQEnqVJlUsgIr6ihTxQ0QpgiAiCqgoKEWa0kPvEOClSw29l4T0ZOvM90feLCy7mLqZ7O79uy4uzdnNzJ3ZzZ48c86cERISEmQQERERERFRlkSlAxAREREREbkKFlBERERERETZxAKKiIiIiIgom1hAERERERERZRMLKCIiIiIiomxiAUVERERERJRNLKCIFLBnzx4EBgZiyJAhSkehPKhYsSLq16+vdAwi8iDsP1xH9erVUatWLZu2hQsXIjAwEH/++We2t/PWW28hMDAQBw4cyO+INiIiIlCsWDGn7sNdsIDyIFeuXMHYsWPRtGlTlC9fHsWLF0e5cuUQHh6O0aNH4+jRo0pHVFRgYCCef/55pWM4dO3aNQQGBtr8Cw4ORuXKldG8eXN8+OGH2LlzJ2Q5f27rtmjRIgQGBmLSpEn5sr389Pzzz9sdi3/7Vxh/BiJXw/7j37H/eKQw9x8TJkxAYGAgxowZk+Vzv/zySwQGBmLs2LEFkKxgREREIDAwELdu3VI6istTKx2ACsb06dPx1VdfwWKxoGbNmujSpQuCgoKQnJyMM2fOYP78+fjxxx8xfvx4DB8+XOm49BRFihSxnnW0WCxISEjA2bNn8fvvv+PXX39FvXr1MHfuXJQvX17ZoE40ZMgQJCYm2rStX78e//zzD9q0aWP3R0yjRo2clmXr1q0QRZ6HIvfG/sM9sP8A+vXrhxkzZmDp0qUYN24cdDqdw+dZLBYsXrwYADBgwIB8zdCxY0e88sorCAkJydft5oeffvoJer1e6RgugQWUB5gxYwa++OILlClTBj///DNeeeUVu+c8fPgQc+bMQXJysgIJKbsCAgIwevRou/a7d+/i448/xrp169ChQwfs2LHDbYfhhw4datd2/fp1/PPPP2jbti369OlTYFkqVqxYYPsiUgL7D/fB/gPWUdNt27Zh3bp16Nq1q8Pnbdq0Cbdv30ajRo1QuXLlfM0QEBCAgICAfN1mfilbtqzSEVwGT526uWvXrmHixInQarVYvny5w84PAIoWLYoxY8Zg1KhRdo9JkoSFCxeidevWCAsLQ3BwMOrXr4/p06fDaDTaPT9zKkNaWho+++wz1KhRAyVLlkStWrUwY8aMp04TOH78OAYNGoRnnnkGJUqUQLVq1fDWW2/h8uXLds8dMmQIAgMDsWfPHixatAhNmzZF6dKlraMNRqMR8+bNQ7du3az7L1euHDp06IBNmzbZbCtzPjkA3Lhxw2aaw5NzzC9fvoz33nvPus1KlSqhT58+OH78uMOf6f79+3j33XdRpUoVhISEoFGjRli0aJHD5+ZFSEgIFixYgIYNG+L69euYPn26zeMXL17E559/jmbNmqFSpUooWbIkatSogffffx83btywee6QIUMwbNgwAMCUKVNsjseePXsAAImJiZg5cybatWuHZ599FiVKlEClSpXQs2dPHDx4MN9/vvzQr18/BAYG4tixY/j111/RqFEjhISEICIiAgCQnp6OH374AZ07d8Zzzz2HkiVLokKFCujSpQt27NjhcJuOroGaN28eAgMDMWvWLBw5cgRdunRBWFgYQkND0b59e4+f6kSug/0H+w/A/fqPzBGlBQsWPPU5mY8NHDjQ2mYwGDB37lx07drV+hqWL18enTp1wpYtW7K9/3+7Bmrbtm1o3bo1SpcujfLly6NPnz6IiYl56rbWrFmDwYMH46WXXkLp0qURGhqKpk2bYs6cOZAkyfo8s9mMwMBAREdHAwCee+456+vy+DVaT7sGSpIkzJ8/H82bN0eZMmVQunRpNG7cGN9//z1MJpPd86tXr45ixYrBZDJh6tSpqFWrlvV9M27cOIe/+66GI1BubtGiRTCZTOjevTueffbZLJ+vVtu+JcxmM15//XVERUWhcuXK6Nq1K3Q6Hfbt24cvvvgCu3btwsqVKx1+X5cuXXD37l20bNkSarUa69evx/jx45Genm43/3jZsmUYOnQotFotIiMjERoaisuXL2PlypWIiorCunXrULNmTbu8s2bNwu7duxEZGYlmzZrBYDAAAOLj4zFq1CjUq1cP4eHhKF68OO7evYsNGzagR48e+Pbbb60fomFhYRg5ciSmTJliM8UBgM10sF27dqFPnz7Q6/Vo3bo1KlWqhDt37mDt2rXYunUrFi9ejBYtWlif//DhQ7Rq1QpXr15FvXr10KBBA+uZvqZNm2b5WuSUSqXCiBEjsG/fPixfvhxfffWV9bG1a9di/vz5aNy4MerWrQutVmudurFx40bs3LkToaGhAIC2bdsiMTERGzZsQMOGDW2mwIWFhQEALly4gC+//BINGjRA69atERgYiBs3bmDDhg3YsmULlixZglatWuX7z5gfJk2ahL179yIyMtLm9bpz5w4+++wz1KtXDy1atECxYsVw69YtREVFoUuXLpg7dy5ee+21bO/nwIED+PLLL9G4cWP069cPV69exfr169G+fXvs27fPrafJkHtg/8H+A3C//iMyMhIhISHYs2cPLl++bDeT4NatW9i6dSuKFSuG9u3bW9tjY2MxevRom/fFnTt3sGHDBnTv3h3fffcd+vXrl+tcq1atwuDBg6HVatG5c2eEhIQgOjoar7766lN//zKnIdapUwelS5dGYmIidu7ciVGjRuHYsWOYO3cuAEAURYwcORKLFi3CzZs3MXToUPj7+wMAgoKCssw2ePBgrFq1CqGhoejduzfUajU2btyIsWPHYvv27Vi2bJnd7zEADBo0CP/973/RokUL+Pr6YvPmzZg5cybi4uLw/fff5/pYFQZCQkJC/lw1SIVShw4dsHv37lz/Yk+dOhVfffUV3nzzTUyePBkqlQpAxtmIDz/8EAsWLMDkyZPxzjvvWL8n82xc69atsWDBAnh5eQEAHjx4gNq1awMALl26BI1GAyDjrFz9+vVRqlQpbNiwAaVLl7Zua8+ePejUqROee+457N6929o+ZMgQLFmyBD4+PoiKirLrHA0GA2JjY60f6pkSEhLQunVr3Lt3D2fPnoW3t7dN7rJly+LUqVN2xyExMRG1atWCLMvYuHEjnnnmGetj58+fR4sWLeDn54cTJ05Y51QPHz4cCxYswJtvvompU6dan3/ixAm0bNkSJpMJvXr1wo8//pjl63Dt2jW88MILT833+M8dGhoKs9mMEydOoFy5cgCA27dvo1ixYnbzvbds2YIePXqgf//+mDFjhrV90aJFGDZsGEaOHOlwykdiYiLMZrPdmarr16+jZcuWCAgIwOHDh7P8ufJL5vth9uzZT53C169fP6xZswZFihTBli1bUK1aNZvH09LSkJSUZDcvPTY2Fi1btkR6ejpOnz5t00lUrFgRwcHBNisjzZs3D5988gkA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f/yBhQsXQpZlVKpUCRMmTMA777zj8Ca67o430iUiIiIiIsomXgNFRERERESUTSygiIiIiIiIsokFFBERERERUTaxgCIiIiIiIsomFlBERERERETZxAKKiIiIiIgom1hAERERERERZRMLqDyIiYlROoJL4nHLPR673OFxyz0eO9fE1y33eOxyh8ct93jsckfJ48YCioiIiIiIKJtYQBEREREREWUTCygiDyJcuwbVjh0QYmOVjkJERETkktRKByCiAmA2w3vQIKgPHID44AEsoaEwt28P/eTJSicjIiIicikcgSLyALqvvoJm/XqIDx4AAFS3bkHz++9Qr12rcDIiIiIi18ICisgDqPfvh2Cx2LSJqanQLl6sUCIiIiIi18QCisiTifwIICIiIsoJ/vVE5AHM4eGQ1baXPEr+/jD0769QIiIiIiLXxEUkiDyAYcQIiFevQrV7N8S4OEilSsHUtSssrVopHY2IiIjIpbCAIvIEKhXS58yB8OABxBs3YKlcGShSROlURERERC6HBRSRB5FLlIClRAmlYxARERG5LF4DRURERERElE0soIiIiIiIiLKJBRQREREREVE2sYAiIiIiIiLKJpcroKZPn47w8HCULVsWlSpVQo8ePXDmzBmlYxERkYdj/0RE5BlcroDau3cv3njjDWzatAlr1qyBWq1Gp06dEB8fr3Q0IiLyYOyfiIg8g8stY75q1Sqbr+fOnYuwsDBER0cjMjJSoVREROTp2D8REXkGlxuBelJKSgokSUJgYKDSUYiIiKzYPxERuSchISFBVjpEXgwYMACXLl3Czp07oVKpHD4nJiamgFMREVFWqlSponQEp8pO/wSwjyIiKmyy6p9cbgrf48aMGYPo6GhERUX9a+fkrE46JibG7f8AcAYet9zjscsdHrfc47HLnez2T4Bz+ii+brnHY5c7PG65x2OXO0oeN5ctoEaPHo1Vq1Zh7dq1KF++vNJxiIiIALB/IiJydy5ZQI0cORKrVq3CunXrULVqVaXjEBERAWD/RETkCVyugPr444/x559/4o8//kBgYCDu3bsHAPD19YWfn5/C6YiIyFOxfyIi8gwutwrfzz//jOTkZHTs2BHVqlWz/ps1a5bS0YiIyIOxfyIi8gwuNwKVkJCgdAQiepLZDPHcOchBQZBDQ5VOQ6QI9k9ERJ7B5UagiKhwUf/9N/wa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Q1q4sEhGxetv1IqiIunmm1P0zTfH/r927iz9/cKFpCgAAOIJI1BAlMrKqvjHs6CgDpNBlBs/Pllff+2SbZcek4ICU6tXe7RmTcWbDteWV1/1aNu2yP+vjz92qYJt1QAAQAwjQMExti0FGUg5oT59gvJ6I+ejtWhhOVBNdNq5M/IUVlRk6NVXvXVax4EDhiwrMtgGAoZK2LoDAIC4QoCCI556yqtu3VLVuXOaevZM1cqVzCY9Xv/+IXXvHioXolq1KtaUKQxpHJWUVPEDT02a1G3IHDQoqKZNIz+zdWtL9evXaSkAAKCWcdWKOrdqVaZmz/YpP780v2dlSb/7nan27QvVqROjK0e5XNKyZX699ppb//iHR23bWrr88s06/fT2TpcWNa68MqRvvnGpqOjY6E+bNmH95jeBOq2jeXNbt9xSomee8WnfPlMul62TT7Y0cybPPwEAEG8IUKhzf/tbZll4Oio729ScOT49+ywXnD/kcknXXRfSddeFJElbt7KB7g+NH1+iQED6+989Kigw1Ly5pT/8oUiNG9f9UnzjxgV0/fVBvfyyR40b2+rfP6ikpDovAwAA1DICFOpccTGLI6BmGIZ0330luu++Etm26nTlvYo0b27rrrvqdvQLAADULZ6BQp1r3z5ylMnlsnXJJSEHqkG8cDo8AQCAxECAQp27667d6tz52OIIKSm2Lr00pFGjuHMPAACA6MYUPtS59PSw1q4t1KuverRxo6nevUPq1SvMCAIAAACiHgEKjnC7S5d+HjTI6UoAAACAymMKHwAAAABUEiNQABCDgkHp4Yd92rCh9DT+85+H9MADJXJzVgcAoFbF3AjU888/r759+6p169bKyMjQzp07nS4JAOrcqFHJeuopnz76yK2PPnJr7lyfbr452emyEhr9EwAkhpgLUH6/Xz179tTEiROdLgUAHLFnj6F//9styzq28ko4XNq2Zw+rsTiF/gnxzLalOXO86tkzVV27pun661O0axfnGySmmJvsceutt0qSNm7c6HAlAOCMnTtNHTgQeeFy4IChXbtMtWgRdqAq0D8hnj32mE9z5vjk95eeezZvdmnnTlNvvFGglBSHiwPqWMyNQAFAojvjjLBatrQi2lu1stSxI+EJQM1budJTFp6O2rLF1KJFXocqApwTcyNQVbF169aYfO94xnGrOo5d1cTbcevZs7le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\n",
"text/plain": [
"<Figure size 864x432 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = figure1(X_train, y_train, X_val, y_val)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VS9Gv6608Vox"
},
"source": [
"## Data Preparation"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Zzi4K1ay8Vox"
},
"outputs": [],
"source": [
"torch.manual_seed(13)\n",
"\n",
"# Builds tensors from numpy arrays\n",
"x_train_tensor = torch.as_tensor(X_train).float()\n",
"y_train_tensor = torch.as_tensor(y_train.reshape(-1, 1)).float()\n",
"\n",
"x_val_tensor = torch.as_tensor(X_val).float()\n",
"y_val_tensor = torch.as_tensor(y_val.reshape(-1, 1)).float()\n",
"\n",
"# Builds dataset containing ALL data points\n",
"train_dataset = TensorDataset(x_train_tensor, y_train_tensor)\n",
"val_dataset = TensorDataset(x_val_tensor, y_val_tensor)\n",
"\n",
"# Builds a loader of each set\n",
"train_loader = DataLoader(dataset=train_dataset, batch_size=16, shuffle=True)\n",
"val_loader = DataLoader(dataset=val_dataset, batch_size=16)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "n9sdfDJI8Voy"
},
"source": [
"## Model"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Kk_HNHTP8Voy"
},
"source": [
"$$\n",
"\\Large\n",
"y = b + w_1x_1 + w_2x_2 + \\epsilon\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qcowDmWo8Voz"
},
"source": [
"$$\n",
"\\Large \n",
"y =\n",
"\\begin{cases}\n",
"1,\\ \\text{if }b + w_1x_1 + w_2x_2 \\ge 0\n",
"\\\\\n",
"0,\\ \\text{if }b + w_1x_1 + w_2x_2 < 0\n",
"\\end{cases}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "wPkX39Ag8Voz"
},
"source": [
"### Logits"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "RI7RDFCC8Voz"
},
"source": [
"$$\n",
"\\Large\n",
"z = b + w_1x_1 + w_2x_2\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "bwfYQ9Q68Voz"
},
"source": [
"### Probabilities"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "O9Gs66jT8Vo0"
},
"source": [
"$$\n",
"\\Large\n",
"\\begin{aligned}\n",
"& \\text{P}(y=1) \\approx 1.0, & \\text{if } &z \\gg 0\n",
"\\\\\n",
"& \\text{P}(y=1) = 0.5, & \\text{if } &z = 0\n",
"\\\\\n",
"& \\text{P}(y=1) \\approx 0.0, & \\text{if } &z \\ll 0\n",
"\\end{aligned}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "6tkrhhqn8Vo0"
},
"source": [
"### Odds Ratio"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "7zn35lS78Vo0"
},
"source": [
"$$\n",
"\\Large \\text{odds ratio }(p) = \\frac{p}{q} = \\frac{p}{1-p}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "IPhnINeO8Vo0"
},
"outputs": [],
"source": [
"def odds_ratio(prob):\n",
" return prob / (1 - prob)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "kAidraB78Vo1",
"outputId": "b34bf61c-c771-40d8-f5e7-c5997ffa28ad"
},
"outputs": [
{
"data": {
"text/plain": [
"(3.0, 0.3333333333333333)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p = .75\n",
"q = 1 - p\n",
"odds_ratio(p), odds_ratio(q)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "wMaRJYgN8Vo1",
"outputId": "ab904847-17a2-4ebe-ca92-f5c612a1fe7c"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAAFYCAYAAABd8kpcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeViUZdv48e+wySKIC4sLoAnhkkv6JGqZ+4r7UiiFaZiKmZb2cyk1TcP1sTLDcnu0yMyl1FxTyV3ydd83VEQRBR2EYWfu3x84kwgqKswMw/k5jvd4n7mXuc9rsHvOue7zui6VWq1WEEIIIYQQooSwMHYAQgghhBBCGJIkwEIIIYQQokSRBFgIIYQQQpQokgALIYQQQogSRRJgIYQQQghRokgCLIQQQgghShRJgIXJc3Z2pk6dOgU+/tq1azg7O+Pv71+EURlXeHg4zs7OhIeHGzsUIcQj5J6VlyHvWR999BFeXl6o1Wr9tj179uDs7ExoaGiRX7+40f37Gzp06Au9T0xMDG5ubkydOrWQIitakgCLQnXixAmGDx9OgwYNqFixIpUrV8bPz49PP/2UqKgoY4f3wkJDQ3F2ds71f66urtSpU4fBgwdz5syZQrmO7stCbtZCFC25Z5nXPevEiRP8/PPPjBw5EmdnZ6PGUtJUqVKFAQMG8N133xEdHW3scJ7KytgBCPOgKArTpk1jzpw5WFhY0Lx5c/z9/dFqtRw5coSFCxeydOlSpk+fTnBwsLHDfWGvv/46b7zxBgBqtZoDBw6wcuVK1q1bx/r162nUqFGRXr9z58689tpruLm5Fel1hDBXcs8yz3vWl19+ib29PR988EGRXkfkb+TIkSxcuJCZM2fy3XffGTucJ5IEWBSKOXPmMHv2bKpUqcIvv/xC3bp1c+3fvXs3QUFBjB49GicnJ9566y0jRVo43njjDcaNG6d/rSgKw4cP5+eff2bKlCn8+eefRXr9MmXKUKZMmSK9hhDmTO5Z5nfPioqKYvv27fTr1w8HB4civZbIn7u7O61atWLNmjVMnTrVpHvhpQRCvLDo6GhmzJiBlZUVK1asyPNFAvDmm2/yww8/ADB27FiSk5Nz7c/IyGDmzJnUr18fV1dX6taty9SpU0lPT3/sdZOSkhg/fjy1atXCzc2N1157jXnz5qEo+a/unZiYyIwZM2jSpAkeHh5UrlyZunXr8s4777Bnz54X+ARApVIxYMAAAI4ePZpn/6VLl/jiiy9o0aIF1atXx9XVlVdeeYWPPvqI69ev5zp26NChDBs2DIAZM2bkenSpi/NJ9XTHjx+nf//++Pj44OLiQu3atRk2bBhXr159oTYKYS7knmWe96zly5ejKAq9evV6pvOioqIICQmhVq1auLi44OPjw3vvvcfJkyfzPV6tVjNmzBhq1qyp/zt+9913XL169ZlruTds2EDXrl3x9fXF1dUVX19f2rdvz5w5c/Icm5aWxrx582jVqhUeHh5UrFiRBg0aMHz4cC5fvqw/LjY2lunTp9OuXTtefvllXFxcqFGjBu+//z5nz559ps9Gd83mzZtTuXJlKlWqRIsWLViyZMlj/9327NmT1NRUVq1a9UzXMjTpARYv7OeffyYzM5Nu3bo9ceBH+/btqV+/PseOHWPdunUEBgYCOT0R7733Hps2baJq1aoMGjSIzMxMwsPDOXXqVL7vlZ6eTrdu3Thy5Ai1atWiT58+3L9/nzlz5rBv3748xyuKQu/evTl06BANGzbknXfewcbGhtjYWPbv38+uXbto1qxZoXweVlZ5/7PasGEDS5YsoVmzZjRq1AgbGxvOnj3LTz/9xObNm/n777+pXLkyAP7+/iQmJrJp06Zcjy0BPD09n3jtLVu2EBQUhFarpUuXLlSrVo3Tp08THh7On3/+yfr166lXr16htFOI4kruWbmZyz0rIiICCwsLXnvttQK3/ejRo3Tr1o379+/Tvn17ateuzZUrV9iwYQObN2/m559/pm3btvrjU1NT6dKlCydPnuSVV17hrbfeIikpif/+978cOHCgwNcFWLx4MaNGjcLV1ZX27dvj4uJCQkIC58+fZ+nSpYwaNUp/rFqtplu3bhw/fpxq1aoREBCAvb09165dY8OGDTRu3Jjq1asDsH//fr755huaNWtG165dsbe35/Lly6xbt47NmzezZcuWfH/0PSopKYnu3btz+PBh6tatS79+/QDYsWMHn3zyCYcOHSIsLCzPeX5+fgDs3LmTQYMGPdNnYkiSAIsXdvDgQQBatWr11GNbtWrFsWPHOHjwoP7LZPXq1WzatIkGDRqwceNG7OzsABg/fjytW7fO932+++47jhw5QqdOnfj555+xsMh5mPHxxx/TokWLPMefPn2a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\n",
"text/plain": [
"<Figure size 720x360 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = figure2(p)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "1KhFZXv08Vo1"
},
"source": [
"### Log Odds Ratio"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "aiAi8kMf8Vo1"
},
"source": [
"$$\n",
"\\Large \\text{log odds ratio }(p) = \\text{log}\\left(\\frac{p}{1-p}\\right)\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "yhrrTm2G8Vo2",
"outputId": "a7b73a7e-8d35-4246-a0f0-5913f5618a0b"
},
"outputs": [
{
"data": {
"text/plain": [
"(1.0986122886681098, -1.0986122886681098)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def log_odds_ratio(prob):\n",
" return np.log(odds_ratio(prob))\n",
"\n",
"p = .75\n",
"q = 1 - p\n",
"log_odds_ratio(p), log_odds_ratio(q)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "L1NKxC0I8Vo2",
"outputId": "bbd61ee5-7ff3-4f02-c318-c905d56fb895"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAAFYCAYAAABd8kpcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeViUVfvA8e+wrzKIgKggLqCguZUbauSSueRWmmmWmbvYoilqWWpR5pq+uWQa7mbmkvtSiVkqWippLokbigIq+w4z8/z+QPiJLKICA8z9ua73eptnmec+omduztznHFVcXJyCEEIIIYQQBsJI3wEIIYQQQghRmiQBFkIIIYQQBkUSYCGEEEIIYVAkARZCCCGEEAZFEmAhhBBCCGFQJAEWQgghhBAGRRJgYXDCwsJQq9V07969yPf88ccfqNVqRo8eXYKR6dfMmTNRq9X88ccf+g5FCFEOPUnf+iSeeeYZ1Gr1Y92TX1wF9Xml0Qahf5IAGxi1Wv3YHYe+/fnnnwwfPpxnnnkGZ2dn3NzcaNu2LdOnTycyMlLf4T210aNH5/xcsv9XtWpVnn32WcaPH8+NGzeK5TnZnf369euL5f2EEGXLw/1I5cqVqVmzJl26dGHlypVotVp9h1huZffTMkBQcZjoOwAhCpKRkcG4ceNYv3495ubmdOzYEU9PT9LS0jh27BgLFixg+fLlfPvtt/To0UPf4T61bt268cwzzwAQHR1NUFAQgYGBbNu2jd9++43atWuX6PNHjBjBq6++So0aNUr0OUKIkjVp0iQAtFot165dY9euXQQHB3Po0CFWr16t5+j048SJE1haWhb7taL8kgRYlFkTJkxg/fr1NGjQgPXr1+Pu7p7r/JYtWxgzZgxDhgzh559/pm3btvoJtJh0796dN954I+e1RqOhX79+BAUFMXfuXJYsWVKiz3dwcMDBwaFEnyGEKHlTpkzJ9frcuXN06tSJ7du3c/ToUXx8fPQUmf54enqWyLWi/JISCFGof/75h8GDB+Ph4YGjoyMNGjTAz8+P69ev53t9REQEo0ePpk6dOlStWpW2bduyYcOGx66hPX78OGvWrMHOzo7NmzfnSX4BXn31VQICAtBoNIwfPx6dTpfrfGJiIh999BHe3t44OzvTvHlzvvnmGxSl4N2/79y5w9ixY/Hw8MiJv7CSgaioKD7++GOee+45qlWrhqurK82aNWPYsGGcPXu2SG0tiImJCW+99RYAp0+fznM+JCQEf39/fHx8qFmzJs7OzjRr1oyPPvqI2NjYXNd2796dWbNmAeDn55fra9KwsDCg8Brgw4cP069fP2rVqoWTkxONGzdm0qRJ3L1796naKIQoeQ0aNKBNmzYAnDx5Mud4di1tWloaAQEBNG3aFEdHRyZPnpxzTUJCAp9//jnNmzfPKUF7+eWX2blzZ6HPjIiIYMSIETmfBS+88AJbt27Nc11GRgbfffcdffv2pWHDhjg5OVGzZk169uzJ/v37C31Geno6AQEBNGrUCCcnJ5o2bcrs2bPJyMjIc+3j1PU+fO0zzzzDDz/8AECPHj1y9Z8AgwcPRq1W8+eff+b7focOHUKtVjN06NAiPV+UDhkBFgXat28fb731Fjqdjh49elCrVi3OnTvH+vXr2bVrFzt27KBx48Y519+5c4cXX3yR8PBwWrduTatWrbhz5w4TJkygffv2j/XslStXAvDWW2/h4uJS4HVDhgxh7ty5XLp0iSNHjtCuXTsgq2Ps1asXp06dwtvbm379+pGQkMC8efM4cuRIvu8VExND586duX79Oi1btsTHx4fIyEgmTJiAr69vnutTUlLo3LkzYWFh+Pr60qVLFwBu3brFoUOHeP7553NKGp6WiUnef6qrV69m165dtGnThvbt26PVagkJCWHJkiX88ssvHDx4EFtbWwAGDhwIwJEjR3KVWgDY2dkV+uyVK1cyfvx4LC0t6dWrF1WrVuX48eMsW7aM3bt3s3fvXlxdXYulnUKI0vfWW29x5swZOnbsiL29fc6AQ1xcHF26dOHixYs0atSIUaNGER8fz88//8ybb76Jv78/H330UZ73i4uL46WXXsLOzo5BgwYRFxfHtm3beOedd4iIiMDPzy/n2tjYWCZPnkzLli1p3749VapUITIykj179tC/f38WLFjA22+/nW/cb7/9NiEhIfTo0QMTExN2797Nl19+SUhICBs2bCi2P5/Ro0ezYcMG/v33XwYMGICbm1uu88OGDWP79u2sXLky328iAwMDgazPK1F2SAIs8pWUlMSYMWPIzMxk+/btPP/88znn1qxZw3vvvceoUaM4evQoKpUKgOnTpxMeHo6fnx9ffPFFzvV+fn6PnQAHBwcD0KFDh0KvMzExoV27dmzevJng4OCcBHjRokWcOnWKbt26sW7dOoyMsr7sGDduHC+88EK+7zVjxgyuX7/O8OHDmTNnTs7xUaNG0alTpzzXHzp0iLCwMEaOHJkzuppNq9WSmJhY5PbmR6vVsm7dOgBat26d5/y4ceOYO3cuxsbGuY6vXLmScePGsWLFCsaNGwfAG2+8wY0bNzhy5EieUovC3Lhxg0mTJmFlZcWvv/6Kl5dXzrmAgADmzp3Lhx9+yKZNm560mUKIEnbhwoWcX/ybNWuW53x4eDhHjhzJUwI1ffp0Ll68yBtvvMGiRYty+vqJEyfSoUMH5syZw0svvcSzzz6b675z587Rp08fvv/++5y+94MPPsDX15cZM2bQo0ePnCRSrVZz9uxZqlevnus9spPo6dOn079//3xrci9dusSxY8dyRmI/+eQTunfvzp49e9i8eTN9+/Z9kj+uPMaMGcPZs2f5999/GThwYM7nTLZ27drh5eXFzp07uXfvHlWqVMk5FxUVxd69e6lXr165L9OraKQEQuRrz549xMTE0KtXr1zJL2SNFjRp0oQLFy5w4sQJIOtrrG3btmFra4u/v3+u6729vXn99dcf6/lRUVEAeTrF/GRf8+CKEOvXr0elUjFjxoycDhjAzc2NkSNH5nmPzMxMfvrpJ6ytrfn4449znWvcuDGvvfZannuy39fKyirPOWNj48debWP37t3MnDmTmTNnMnHiRFq1asVvv/2Gl5cXEydOzHO9m5tbnuQXskZFKlWqxMGDBx/r+fnZtGkTGRkZDB06NFfyC1kfgi4uLhw4cIDbt28/9bOEEMUjux8JCAhg+PDhtG/fntTUVF5++eWcUogHffTRR3mS38zMTDZt2oSVlRUzZszISX4hq88dP348iqKwZs2aPO9nbGzMtGnTcvW9tWrVYtiwYWRkZOT6hdnc3Dzffl6tVueMHp86dSrfdk6cODFXP2tpacnUqVMBcgYPSsvQoUPJyMjI89y1a9eSmZkpo79lkIwAi3z9888/AHmS32y+vr6EhITwzz//0LJlSy5dukRqaiotWrTI9yv1li1bPtHs4wc73aJem5iYyNWrV6latSoeHh55rsvvA+DSpUukpKTQokWLfBPXNm3a5KkFbtOmDTVq1GDBggWcPn2azp0707JlSxo3bpxvycKj7Nmzhz179uQ61rhxY3bt2pVTyvCgzMxMVq5cydatW7lw4QKJiYm56qAjIiIeO4aHFfb3wNzcnFatWrFt2zbOnDlDtWrVnvp5Qoinl/2NlEqlwtbWlsaNG9OvX78CSwmee+65PMey+8Tnnnsu14hmtuxv0rL7iAfVqFEj33kbbdq0Yf78+Zw5cybX8QsXLvC///2Po0ePEhkZSXp6eq7zBfVl+fXlPj4+qFSqPM8oaf3792fGjBmsWrWK999/H5VKhU6nY82aNVhZWT32IJAoeZIAi3wlJCQA4OTklO95Z2fnXNdlf93v6OiY7/UFvU9BnJycCAsLIzw8PN8k9kG3bt3KN6bHieVJ7rG1teWXX35h1qxZ7Nmzh0OHDgHk1L19/PHH+Y4OF2Tx4sW88cYb6HQ6bty4wbx581i7di3Dhw/nhx9+yPPLwJAhQ9i1axfu7u50794dZ2dnzMzMAFi6dGmeD5En8bh/D4QQ+hcXF/dY12f/O37Q0/zbL+ie7P71wXv++usvevbsiUajwdfXl65du2Jra4uRkRFnz55lz549BfZl+T3HwsICW1vbUu+TbG1tef3111m+fDkHDx6kY8eO/Prrr9y4cYNBgwaVu/X3DYEkwCJflSpVArImtuUnu0Qh+7rsEcqCVgUo6H0K0qpVK8LCwggKCiq0flij0eTMvG3VqlWumB4nlie5B8DFxYUFCxbw9ddf50zECwwMZPHixcTHx7No0aICYy+IkZER7u7ufPPNN0RFRbFv3z5WrFjB8OHDc645ffo0u3btwtfXl82bN2NqappzTqfT8b///e+xn5ufx/17IIQof/L7pu1p/u0XdE92//rgPXPnziU1NZWdO3fmqa2dP39+nm/FHn7OwxNw09LSSExMxN7evsD7SsrQoUNZvnw5gYGBdOzYMWcy9zvvvFPqsYhHkxpgka/s1R0K2vXm8OHDADRp0gTIWjfR0tKSCxcuEB8fn+f648ePP9bzBw8eDGRNuCtst7fVq1cTGRmJp6dnztdhtra21K5dm6ioKC5fvpznnvxWgfD09MTKyopz587lO3pS0MoR2VQqFfXq1eOdd95h7969mJubs2vXrkLvKYqvvvoKU1NTZs6cmWtE4+rVq0DW5hkPJr+QtcxRampqnvfKrhd+nN2gCvt7kJ6envNzfXA1ECFE+ZfdJ54/f57o6Og853///Xfg/z8DHhQeHp6zvOKDsvvRRo0a5Ry7evUq9vb2eZLfB68vSH7njx49iqIouZ5RHLL7z4eX23xQ/fr1adeuHfv27ePvv//mwIEDNGnSJN+Jh0L/JAEW+erevTuVK1dm+/bteTqZ9evXc/r0aby8vGjevDkAZmZm9OnTh8TExFwrKACcP3+ejRs3PtbzfXx8GDhwIHFxcbz22mv5bge8fft2Pv74Y0xMTJg/f36uCRdvvPEGiqLw6aef5uqwbty4wbJly/K8l6mpKf369SM5OTnXChaQVeOW3yoH58+fz3c95JiYGDIzM7GwsHicJuerdu3aDBo0iJiYGL755puc49kzqB9ed/Lu3btMmDAh3/fKnuQSHh5e5Oe/9tprmJmZ8f3333Pp0qVc5+bPn8/t27fp3LlzoUvVCSHKH1NTU/r3709KSgozZszItX56REQEX3/9NSqVikGDBuW5V6vVMn369Fx977Vr11ixYkVOX5vNzc2N2NhY/v3331zvsWbNGn777bdCY5wzZ06uAYvU1FQCAgIAirzSTVFl9583b94s9Lphw4ah1WoZNGgQWq1WRn/LMCmBMFCFbUgREBCAg4MDS5Ys4a233qJ379707NkTd3d3/v33Xw4cOICdnR1Lly7N9dXZ9OnTOXz4MIsWLeLkyZO0bt2aO3fusG3bNjp16sTu3btzJamP8vXXX6PVavnxxx9p0aJFrq2Qg4ODOX36NNbW1nz33Xd5lpcZO3Ysu3fvZs+ePbRr145OnTqRkJDAtm3baN26NXv37s3zvE8//ZTff/+d5cuXc+bMGXx8fIiKisqJ/+F7Dh06xMcff0zz5s3x9PTEycmJqKgo9uzZg06n44MPPihyWwszceJEfvjhB5YuXcrIkSOpUqUKzZo1o1WrVuzcuZPOnTvnrLn866+/4uHhkW9C6uvri5GREd9++y2xsbE59XMjRowocC1gNzc3Zs2axfjx42nfvj29e/fG2dmZ48ePc+TIEapXr868efOKpZ1CiLJl2rRpHDt2jDVr1nDmzBleeOGFnHWAY2Nj8ff3z3cCXYMGDTh58iQvvPACHTp0IDY2lm3btpGQkMAXX3xBzZo1c64dPXo0v/32G127dqV3795UqlSJ06dPExwcTK9evdi+fXuB8dWrV4/WrVvTs2fPnHWAr1+/Trdu3YptCbRsHTp0YOHChXz22WdcuHAhp6b34RV6unfvTrVq1bh9+zaVKlXi1VdfLdY4RPGRBNhAZe9qk5/Jkyfj4OBAly5dOHDgAPPnz+f3339n+/btODo6MmDAAPz9/fPM8nVycuLAgQN89tln/PLLL5w+fZq6desyZ84crK2t2b1792PVipqbm7Ns2TIGDhzImjVrOH78OL/88gtmZmbUrFmT999/n9GjR1O1atV87/3555/56quv2LZtG99++y1ubm58+OGH9OjRI98E2MHBgf379/PZZ5+xb98+/vnnH+rWrcvcuXNxc3PLc0/Hjh0JDw/n2LFj7Nu3j4SEBJycnGjRogWjRo167LWPC1KtWjXeeecdlixZwty5c/nqq68wNjbmhx9+ICAggAMHDrBs2TJcXFx46623mDBhAi1btszzPnXr1uX7779n4cKFrFu3LqdM4rXXXit0M4whQ4ZQu3ZtvvnmG3bv3k1ycjIuLi6MGDGCCRMmPPYERyFE+aBWq9m/fz8LFy5kx44dLFmyBHNzcxo1asTIkSPp2bNngfdt3ryZadOmsXbtWpKSkqhfvz7vvfdenoSwU6dObNy4kblz57Jt2zaMjIx49tln2blzJ9evXy80AV65ciWzZ89m06ZNREVF4eLiwpQpUxg3btxjrSBUFL6+vsyePZuVK1eyYsWKnIl5DyfAJiYm9O/fn6+//pr+/ftjbW1drHGI4qOKi4sreF9YIYrJ559/zrx58wrd1UcIIYQo7/r06UNQUBDHjh3Ls366KDukBlgUq/zWazx37hzLli3D1NSUrl276iEqIYQQouSFhIQQFBSUszucKLukBEIUqxdffBFXV1e8vb2xsrLiypUrHDhwAI1GQ0BAQL7rTQohhBDl2XfffUdERAQbN25EpVLl7Egnyi4pgRDFau7cuezdu5dr166RkJCAjY0NTZs2ZeTIkXTp0kXf4QkhhBDF7plnnuHWrVvUqlULf39/+vfvr++QxCNIAiyEEEIIIQyK1AALIYQQQgiDIgmwEEIIIYQwKJIACyGEEEIIg2LwCXBoaKi+QygRFbFdFbFNIO0qbypquyoKQ/n5GEI7pY0VR1lsp8EnwEIIIYQQwrBIAiyEEEIIIQyKJMBCCGGAjhw5wuuvv46XlxdqtZr169c/8p5z587RrVs3qlatipeXF7NmzUJRZCVNIUT5IwmwEEIYoOTkZLy9vfnqq6+wtLR85PUJCQn06dMHJycnDh48yFdffcU333zDokWLSiFaIYQoXrIVshBCGKDOnTvTuXNnAMaMGfPI63/66SdSU1NZunQplpaWeHt7c+nSJZYsWcLYsWNRqVQlHbIQQhQbGQEWQgjxSCdOnKB169a5Ros7duxIREQEYWFheoxMCCEenyTAQgghHunOnTs4OjrmOpb9+s6dO/oISQghnpiUQAghhCiSh8scsifAFVb+oI/1P8vimqMlwRDaKW2sOEq7nR4eHoWelwRYCCHEIzk5OeUZ6b137x5AnpHhBz3qQ6i4hYaGlvoz9cEQ2iltrDiK2k5FUYhJ13EjSXv/fxpuJGlxsTJmfCPbYo1JEmAhhCjEgF+jMVLB/NZqnK2M9R2O3rRo0YLp06eTlpaGhYUFAEFBQbi4uFCzZk09RyeEKA8UReFuWlaCe/N+cvvwf6do8i6t2NjBVBJgIYQoLVqdwm+30sjQwXfPV6xVDpKSkrh69SoAOp2O8PBwzpw5g729Pa6ursyYMYOTJ0+yY8cOAPr27cusWbMYM2YMEyZM4PLlyyxYsAB/f39ZAUIIkSNVo3AuNpPriRpu3h/FvRBlTszZKG4maUnVFr52eCVTFa42xrjZmNz/f2M87EyLPU5JgIUQogA3k7Vk6MDFyghr04o1Z/j06dP06NEj5/XMmTOZOXMmAwYMYOnSpURGRnLt2rWc83Z2dmzbto0JEybQvn171Go1fn5+jB07Vh/hCyHKAI1O4WKchlP3Mjh5N4NT9zI5H5tJ3hzXGNAAoDZT5UpuH/5vtXnp9LWSAAshRAGuJmR12LVsK15X2a5dO+Li4go8v3Tp0jzHGjRowN69e0syLCFEGaUoCmFJ2pxE99S9DP6JzsxTsmCkAm+1CXXtTHKSW5OEO7TydMXVxphKZmVjMKHi9epCCFFMshPgOpWkqxRCGJ5rCRr2h6dx8FYaf9/NJCZdl+cad1tjmlUxo1kVU5pVMaOxg2meb8xCQyPwqFz8ZQxPQ3p1IYQowBVJgIUQBiRDq3AsKp0D4ekcCE8jNF6T63wVCyOerWJKM0eznKTXwaJ8Tg6WXl0IIQqQPQJcWxJgIUQFdTdVy76baRwIT+PQ7XQSM/+/pMHOTEXH6ha8WMOCNlXNcLU2rjCTXqVXF0KIAlxJ0AKSAAshKpZ0rcK+m2n8cDmFX8PTeLCM11ttQmfXrKS3pZMZJkYVI+F9mPTqQgiRD41OISwpewS4fH7FJ4QQ2RRF4fS9TH64nMLmaynEpmdlvcYqeLG6OV3cspJeNxvDSA0No5VCCPGYwpO1ZOqgmpURViZlY9ayEEI8ruRMHRsup/D9xWQuxv1/TW/DyqYMqGtFv9qWOFka3i/5kgALIUQ+rkj9rxCiHItK0bL8QjLf/5eUM9pbxcKIfrUtGVDXikYOZnqOUL+kZxdCiHxciZcVIIQQ5c/FuEwW/ZvEpispZNxftay5oyl+DWzpXtMC0wpa0/u4yu33evPmzUOtVjNx4kR9hyKEqICuJsoIsBCi/LieqGHE7zG03naHdaEpZOrgZTcL9nerwi8vO9G7lqUkvw8olz37X3/9xerVq2nQoIG+QxFCVFCyBJoQojyITNEy959EVv2XjEYBUyN408MavwY21LGT/qsg5e5PJj4+nuHDh/PNN98we/ZsfYcjhKigZBMMIURZlqLR8fWZJBb9m0SqVkEFDKhrxeQmttSsgNu3F7dyVwLxwQcf0KtXL3x9ffUdihCigtLoFMISs9YAriUfJEKIMkRRFHaHpdJy2x3m/JNIqlahu5sFR3s7sbSdvSS/RVSu/pRWr17N1atXWbZsWZGuDw0NLdbrypuK2K6K2CaQdpU1N1NVaBRLnM11hF+7nOf8o9rl4eFRUqEJIQzY9UQNk4Lj2B+eDmQtZTa3lR2tnM31HFn5U24S4NDQUD777DP27t2LmVnRlu4oyodQaGhohfywqojtqohtAmlXWRQWngZE42lvgYeHa65z5bldQojySacofHchmRl/J5CqVahkquLjZpUYWt+6wu7UVtLKTQJ84sQJoqOjad26dc4xrVbL0aNHCQwM5Pbt25iby29AQoinJ/W/Qoiy4nqihrF/xvJnZAYA/Wpb8kULO4PcvKI4lZvevXv37jRt2jTXMT8/P+rUqcP48eOLPCoshBCPcvJe1geNt72pniMRQhgqRVFYfzmFycHxJGkUHC2M+NpHzcs1LfUdWoVQbhJgtVqNWq3OdczKygp7e3u8vb31FJUQoiI6en+kxaeqfKskhCh9SZk6xh+LY9OVVAB6uVswr7WaKhYy6ltcyk0CLIQQpeFGkobwZC1qMxXe9tJFCiFK17mYTN4+FENovAYrExVzWtkxsK4VKpXU+hanct277969W98hCCEqmOzR39bO5hjJB44QohRtu5bCmD/iSNUqeKlNWNm+MvXVUopVEsp1AiyEEMXtSGTW8kI+VWVegRCidOgUhS9PJTL3TCIAr9exZL6PGiuTcrddQ7khCbAQQjzgaFRWAtxG1tUUQpSC5Ewdww/HsudGGkYqCGhux2hvayl5KGGSAAshxH2RKVquJGixMVHRyEG+dhRClKyYDBi17x4n72ViZ6Zi5QuV6VDdQt9hGQRJgIUQ4r5j90d/WzqbyeLyQogSdTVBw9AzFoSnZeJmY8zmFx3wlHrfUiMJsBBC3Jez/JmUPwghStC/MZn02X+Pu2lGNHYwZVMnB5ytZImz0iQJsBBC3HckSibACSFK1sm7Gbx64B5xGQot1Vo2d3XB1lQmu5U2+RMXQgggJk3L+VgNFsbQrIokwEKI4nc0Mp1e+7KS3+5uFsz3TpfkV0/kT10IIYC9N9MAaOVsjrmx1P8KIYpXcFQ6/X6JJkmj0K+2JavaV8ZMsjC9kRIIIYQAtl3L2nK0t7ulniMRQlQ0J+6k0/dANMkahdfqWLK0rT3GMtFWr+R3DyGEwYtJ03LodjrGKuhRU5YgEkIUnzPRGfS9P/L7ai1JfssKSYCFEAZvZ1gaGgVeqGaOg4XMxBZCFI8r8RpePRBNQoZCj5oWLHtekt+yQhJgIYTB23Zdyh+EEMUrMkVLnwP3uJum44Vq5qzwrSzri5chkgALIQza3VQthyPSMTWCHjUlARZCPL3ETB39fonmRpKWZ6uYsq5DZZlcW8ZIAiyEMGg7wlLRKdChmjlqc+kShRBPJ1On8HZQDGdjMqlTyZhNLzpgI0udlTnyExFCGLQtV7PKH/rUstJzJEKI8k5RFCYei+O3W+lUsTBi84tVZF5BGSUJsBDCYF2IzeRoVAbWJiq6usnqD0KIp7PsQjKrLqVgbgwbOzlQq5KsNltWSQIshDBYy84nATCgrhV2siK9EOIpHLyVxkcn4gFY3Nae5xxlR8myTHp8IYRBik3X8eOVrPKHEV7Weo5GCFGeXU/U8M6hGHQKTGhsS9/aUlJV1kkCLIQwSKv/SyZVq9CxujmealN9hyOEKKeSM3W88Vs0cRkKXVwt+Kiprb5DEkUgCbAQwuBodAorLiYDMMrbRs/RCCHKK0VRGHc0jnOxGupWMmHZ8/YYqWS5s/JAEmAhhMHZFZZGeLKWupVM6FjdXN/h6M2KFSto1KgRzs7O+Pr6cvTo0UKv/+mnn2jbti0uLi54enoyYsQIoqKiSilaIcqeVf+lsOlqKlYmKtZ1rCxzCcoR+UkJIQyKTlGY/U8CAKO8rQ12tGbr1q1MnjyZDz/8kMOHD9OiRQv69evHzZs3870+ODiYkSNHMmDAAI4dO8b69eu5ePEiw4cPL+XIhSgbQu5lMOl4HAALfNTUl1KqckUSYCGEQdl6LZXzsRpqWBszyMNwJ78tXryYgQMHMnjwYOrVq8ecOXNwdnYmMDAw3+v/+usvqlWrhp+fH+7u7jRv3pwRI0Zw8uTJUo5cCP1LzNTxzqEYMnQwpJ4Vr2TUUMkAACAASURBVNWRSW/ljSTAQgiDkalT+PJU1uivfxNbLEwMc/Q3IyODkJAQOnTokOt4hw4dOH78eL73tGzZkqioKPbu3YuiKERHR7N161ZefPHF0ghZiDJlwrE4riZqaWBvwswWan2HI56AJMBCCIOxITSFq4la6lQyZmBdwx2xiY6ORqvV4ujomOu4o6Mjd+7cyfeeFi1asGLFCkaMGIGjoyN16tRBURSWLl1aGiELUWZsupLCj1ey6n4DX6hssL9Il3eyRYkQwiCkahRmhWSN/n7ctBImRvKhpXqo/llRlDzHsl28eJHJkyczceJEOnToQFRUFJ988gkffPABy5YtK/AZoaGhxRpzUejjmfpgCO0sa228naZi3GkLQMU49zSM7l4n9O7TvWdZa2NJKe12enh4FHpeEmAhhEFYeDaR2yk6GlY2pXctS32Ho1cODg4YGxvnGe29d+9enlHhbPPnz6dZs2a89957ADRs2BArKyu6du3KJ598Qo0aNfK971EfQsUtNDS01J+pD4bQzrLWRq1O4b1990jWZtDdzYIJbasV+AtjUZW1NpaUsthOKYEQQlR4VxM0fH02EYBZLe0MduWHbGZmZjRp0oSgoKBcx4OCgmjZsmW+96SmpmJsbJzrWPZrRVFKJlAhypAl55M4FpWBs6UR/2ujfurkV+iXJMBCiApNURQmHIsjXQsD6lrRpqrhrvv7ID8/PzZs2MCaNWv477//mDRpEpGRkQwZMgSAkSNHMnLkyJzru3Tpwp49e/j++++5fv06wcHBTJo0icaNG+Pq6qqvZghRKi7GZRJwfwLt/9rY42Bh/Ig7RFknJRBCiArt5+upHLydjtpMxefNK+k7nDLjlVdeISYmhjlz5hAVFYWXlxebNm3Czc0NgPDw8FzXv/HGGyQlJbF8+XKmTp1KpUqVaNeuHTNmzNBH+EKUGo1OYcwfsaRr4U0PK15ytdB3SKIYSAIshKiwYtK0TD4eD8C0Z+2oIqM2uQwbNoxhw4ble2737t15jj08KiyEIVh8LolT9zKpYW3MFy3s9B2OKCZSAiGEqJAUReGDo3FEpepo7WzG4HqGu+yZEOLJXIrL5MvTWaUPC9uoqSRbHVcY8pMUQlRIP1xOYUdYGramKpa2szf4iW9CiMejUxTeP5o1f+ANDys6VpfSh4pEEmAhRIVzPVHDpPulD7Na2uFuK9VeQojHs/q/FI5FZeBkacQXzaX0oaKRBFgIUaGkaxWGHoohMVOhZ00LBhjwjm9CiMejCgvDcvhwEvoOZNofkQDMbqlGbS7pUkUjP1EhRIUyKTiOk/cycbUxZoGPrNUphCgaVVgY1r17Y/bTT0yo1oEEEwu6XztBb1X+24OL8k0SYCFEhbH2UjKrLqVgbgxr21emsqz6IIQoIouAAIyvXWNf/bZsatoVq/QUFq/9CMsvAvQdmigBkgALISqEv+9mMCE4DoB5rdU0qWKm54iEEOWJUUQEaSZmjH3lYwCmHVhKzdgIjCIj9RyZKAmPNTNEq9WyYcMGDhw4wI0bNwBwc3PjpZdeYsCAAXm2yRRCiNJwPVHD679Gk66Fd+pZM8jDWt8hCSHKGZ2LC7M7DOWKoxvekZcZd2hN1vGqVfUcmSgJRU6AExISeOWVVzh16hQ2Nja4u7ujKAq///47u3fvZvXq1WzduhVbW9uSjFcIIXKJTdfR75do7qXp6FDNnFmtZLa2EOLxXfxwKjP/0AKwZPPnmOo0aGvVIm3qVD1HJkpCkUsgAgICOH36NF9++SWXL1/m8OHD/PHHH1y5coWZM2dy6tQpAgKkTkYIUXpSNQpv/BZNaLwGb3sTVrWvjKmRTHoTQjy+j27ZkGZizoC7Z2hTzZKMfv1I/vlnlJo19R2aKAFFHgHetWsXQ4YMYdSoUbmOm5qaMnLkSC5dusTOnTuZNWtWsQcphBAPy9AqDA6K5mhUBi5WRmzq5CC7NAkhnsjBW2nsvpGGtYmKT8d2Jtm/q75DEiWsyJ8W0dHReHl5FXje29ub6OjoYgkqP/Pnz6d9+/a4urpSp04d+vfvz/nz50vseUKIskujUxhxOJYD4ek4mBux7aUq1LCRzS6EEI8vU6cw5f7GORMb2+JiJfOZDEGRE2BXV1eCgoIKPB8UFISrq2uxBJWfP//8k6FDh7J//3527NiBiYkJvXv3JjY2tsSeKYQoezQ6Bb8/Y/n5eiqVTFVs6exAfbWpvsMSQpRTgReT+S9eQy1bY0Y3sNF3OKKUFDkBHjRoELt372b06NFcuHCBzMxMMjMzOX/+PH5+fuzZs4e33nqrxALdunUrgwYNwtvbmwYNGrBs2TLu3btHcHBwiT1TCFG2ZN4f+f3xSirWJio2veggy50JIZ5YbLqOmacTAPiihR3mxjKHwFAU+TvD999/n7CwMFatWsWPP/6Ys7uSoigoisKQIUN47733SizQhyUlJaHT6VCr1aX2TCGE/mRoFd45FMOuG2nYmqr46UUHWjmb6zssIUQ5NiskgbgMBV8Xc7q6Wug7HFGKVHFxccrj3HDhwgX279+fax3gzp074+3tXSIBFuTtt9/mypUrHDp0qMD1h0NDQ0s1JiFEyUjWgP9Fc07EGWNrrPBNw3Qa2Or0HVaBPDw89B2CwQoNDTWIP39DaGdJt/FyfCattt1Bq8AfvZxoWLn0S6kM4ecIZbOdjz1rxMvLq9DJcKXho48+Ijg4mH379hW6+UZR/rDL4g+lOFTEdlXENoG061HupmoZ/ks0IXGZOFoYsbmzA40d9Ff2UFF/XkIYmml/J6BR4E0PK70kv0K/yt206SlTprB161Z27tyJu7u7vsMRQpSgy/GZvPZLNFcTtbjbGrOtcxVqVSp33ZYQoow5GpnO7htpWJmo+LhZJX2HI/SgwE+SRo0aYWRkxF9//YWpqSmNGjXKqfstiEqlIiQkpNiDzDZp0iS2bt3Krl278PT0LLHnCCH074+IdN48GE1chkKjyqZs7uyAk6UsTySEeDqKovDp31nLnr3b0IaqsuyZQSowAW7Tpg0qlQojI6Ncr/VlwoQJ/Pjjj6xbtw61Wk1UVBQA1tbW2NjIsiVCVCRrLiUz/mgcGgW6ulqw3NceG1PZ5EII8fR2hKXx991MnCyNeLeh5A+GqsAEeOnSpYW+Lm0rVqwAoFevXrmOT5o0iSlTpugjJCFEMcvQKkw5Ec/3F5MBGNvAhhnPVcJYtjcWQhSDTJ3CZyezRn8nNbGVX6wNWJGL6X744Qd8fHyoWcCe2Ddu3ODIkSMMGDCg2IJ7UFxcXIm8rxCibIhM0fJ2UAzBdzIwM4J5rdW86Wmt77CEEBXIukspXEnQUqeSMW9J/2LQivyrj5+fHydOnCjw/N9//42fn1+xBCWEMCy/306j3fY7BN/JoJqVEXu7OUryK4QoVikaHbNCsja9+PRZO0zlmyWDVuQRYEUpfLng1NTUQpckE0KIh2l1CnP+SWRWSCIK8LyLOSt87WWymxCi2H13PpnIVB1NHEzpWVM2vTB0hSbAN2/ezNnwAuDSpUscOXIkz3VxcXGsXLmywPIIIYR42M0kDSMOx3IsKgMVWfV4/o1tpd5XCFHs4tJ1LDibCMCnz1bS66R+UTYUmgCvX7+eWbNmoVKpUKlUzJs3j3nz5uW5TlEUjIyMWLhwYYkFKoSoOLZdS+GDo3HEZyg4WxrxbTt72leXERkhRMlY9G8ScRkKbaua0b6abKEuHpEA9+rVC09PTxRFYdiwYQwbNozWrVvnukalUmFlZUXjxo2pWrVqiQYrhCjf4tJ1TAyO46erqQB0cbVgUVs1VSyk5EEIUTLupWlZej4JgE+ayeivyFJoAvzgtsfp6en4+PjI7mtCiCdy4GYa7x+NJSJFh5WJis+bV+KdetbyYfQY4uLiUKvV+g5DiHJlwZkkkjUKnWuY09JZRn9FliJPghs4cGBJxiGEqKBi03VMOR7HxitZo74tHM349nl7asuWxo+tXr16vPTSS/Tv35/OnTtjamqq75CEKNMiU7SsuJg1+vtRU9nyWPy/x/oESk9PZ+fOnYSEhBAfH49Op8t1XqVSsWjRomINUAhRPilKVq3vpOPx3EnVYWEMHzetxJgGNjLR7QmNGDGCrVu3snPnTuzt7XnllVfo378/zZs313doQpRJX59JJE0LL7tZ0KSKmb7DEWVIkRPgW7du0bNnT65evYqdnR0JCQnY29sTFxeHTqfDwcEBa2tZt1MIATeSNIw/b86fsbEAtHY245s2aurayYjl0/j888/57LPPOHz4MBs3bmTTpk0EBgbi7u7O66+/zmuvvSZlakLcdytZy6pLWbtKTpHRX/GQIm+EMW3aNO7evcu+ffs4efIkiqIQGBjI7du3+eSTT7C0tGT79u0lGasQoozL0Cp8fSaRllvv8GesMZXMVHzdWs3urlUk+S0mKpUKX19fli5dyqVLl1i+fDkeHh7MmTOHZs2a0bVrV1atWiW7ZwqDt+BMIula6ONuSYPK0v+I3IqcAB86dIihQ4fSsmVLjIz+/zZzc3PGjx+Pj48PU6ZMKZEghRBl3++302i7/Q4zTiaQqlXoVEXDiT7ODKlvjZFMdCsRFhYWvPrqq4wbN46uXbuiKArBwcGMGzcOLy8vJk6cSEJCgr7DFKLUhSdpWH0pGRXg38RW3+GIMqjIJRBJSUnUqlULADOzrDqaxMTEnPOtW7fm008/LebwhBBlXViihk/+imdHWBoAdSoZM7eVmhopN6lqJcublZQrV67w448/8tNPPxEWFoaTkxNjx45lwIABmJmZsWrVKlasWMGtW7fYsGGDvsMVolQtOJtEhg5eqWWJl72M/oq8ipwAu7i4cPv2bQCsra2xt7fn7NmzvPzyy0DWrnEyI1kIw5GUqWPBmSQWncuaZGJlouLDRraMbWiDubGK0FB9R1jxREdHs2XLFjZt2sSpU6cwMzOjW7duzJ49m44dO+b6di4gIABnZ2dmzpypx4iFKH23krWsuT/6O7GxjP6K/BU5AW7dujUHDx5k8uTJAPTs2ZNvvvkGExMTdDod3377LS+99FKJBSqEKBu0OoUfrqTw+ckEolKzVoLpW9uSGc/ZUd1aRnxLUv369dFoNLRo0YL58+fTp08f7OzsCrzew8ODKlWqlGKEQujfgrOJZOigt7uM/oqCFTkB9vPzIygoiLS0NCwsLJg+fTo3btzgyy+/BKBt27Z89dVXJRaoEKL0qcLCsAgIwCgiAp2LC7tGf8InN8w5H6sB4DlHU75sYUcLJ1lcvjS8//77DBgwgDp16hTp+i5dutClS5cSjkqIsiMiJWv0F2T0VxSuyAlwgwYNaNCgQc5rtVrN1q1biY+Px8jICFtb+YsmREWiCgvDundvjK9d42/XBkxpOJhf/zEGNNSwNubTZyvRt7alTHArRXXq1MHEpOBuOywsjKNHjzJgwIBSjEqIsuN/Z7NWfuhR00JWfhCFKvIqEAWxs7PLSX5DpehPiArDIiCAy0kKrw2eR/Pxm/i1ng92qQl8ef0Af7/izGt1rCT5LWV+fn6cOHGiwPMnT57Ez8+vFCMSouy4m6pl1X8pAEyQ0V/xCE+dAAOEhIQwePBgWrVqVRxvJ4TQsxtJGka6dMJ78g5+atIF88x0Jh4M5GpAFyae2oqFiSS++qAoSqHnU1NTMTYueh32ihUraNSoEc7Ozvj6+nL06NFCr8/IyOCLL76gUaNGODk50bBhQ7799tsiP0+IkrT4XBKpWoWXXC1o7CC7vonCPbIE4sKFCwQGBnLt2rWcrTe7du0KZCW+n3/+OUFBQZiamsrXbkKUc7eStcw/k8iaS8lk1mqLsVbD8GM/8cmBb3GNiwQgo2pVPUdpWG7evMmNGzdyXl+6dIkjR47kuS4uLo6VK1dSs2bNIr3v1q1bmTx5MvPmzaNVq1asWLGCfv36ERwcjKura773DB06lFu3brFw4UJq167N3bt3SU1NfbKGCVGMYtN1rLggtb+i6ApNgP/66y969uxJWlpazrEtW7Ywe/Zs0tLSmDZtGpUqVWLcuHGMHDkSJyenEg9YCFH8bidrWXA2kdWXkknXggro56zj89mjqRfy/6OC2lq1SJs6VX+BGqD169cza9YsVCoVKpWKefPmMW/evDzXKYqCkZERCxcuLNL7Ll68mIEDBzJ48GAA5syZw2+//UZgYCDTpk3Lc/3Bgwf5/fffOX36NA4ODgBFTraFKGnLzieRpFFoX82c5xxl9Fc8WqEJ8OzZszE3N2ft2rX4+PgQFhbG2LFj+fzzz0lJSeHdd9/lww8/lAlwQpRT4UkaFp5NYvWlZDKyVjSjj7slk5raUl9tiqrBUjICAjCKjERXtSppU6eiSNJTqnr16oWnpyeKojBs2DCGDRtG69atc12jUqmwsrKicePGVC3CCH1GRgYhISG8++67uY536NCB48eP53vP7t27adq0KYsXL2bjxo1YWFjQqVMnPv30U2xsbJ68gUI8pcRMHd+eTwLgQxn9FUVUaAL8999/M2zYMDp16gSAl5cXAQEBdOvWjTFjxjB9+vTSiFEIUcyuJ2r4+kwiGy6nkKnLGvHt7W7JxMa2uWZOKzVrkrp8uf4CFXh5eeHl5QVAeno6Pj4+uLu7P9V7RkdHo9VqcXR0zHXc0dGRO3fu5HvP9evXCQ4OxtzcnDVr1hAfH4+/vz+RkZGsWbPmqeIR4mmsvJhMXIZCKycz2jjL6K8omkIT4Pj4eOrWrZvrWPZrX1/fkotKCFEizsdmsuBMIluupaJVwEgFr9ayZEJjW1kwvhwYOHBgsb6f6qFVPBRFyXMsm06nQ6VSsXz58pzNN+bMmcMrr7zCnTt3CiyB08fqQIayIpEhtPNRbUzXwYJ/LAEVr1dJ4PLluNIJrBgZws8RSr+dHh4ehZ4vNAFWFCXPjOLs1+bmsvC9EOXFiTvpLDibxJ4bWfX8JioYUNeKDxvZUNdOEt+yKrv2d8KECRgZGTFr1qxH3qNSqfD39y/0GgcHB4yNjfOM9t67dy/PqHA2Z2dnXFxccu085+npCUB4eHiBCfCjPoSKW2hoaKk/Ux8MoZ1FaeP3F5OIyYynUWVTBreoVuAvcGWVIfwcoWy285GrQOzfv5/bt2/nvE5JSUGlUrF161ZCQkJyXatSqXjvvfeKP0ohxGPTKQq/hKez8GwiR6MyALAwhjc9rXm3oQ1uNkXeB0foyVdffYVKpeKDDz7AzMysSLttFiUBNjMzo0mTJgQFBdG7d++c40FBQfTs2TPfe1q1asX27dtJSkrKqfm9cuUKQIGrRghRkjQ6hYVns2p/xzeyLXfJr9CvR34CbtmyhS1btuQ5nl/NlyTAQuhfulbhp6spLPo3iYtxWVsW25mpGFbfmpHeNjhZFn2dWKFfsbGxhb5+Gn5+fowcOZJnn32Wli1bEhgYSGRkJEOGDAFg5MiRACxbtgyAvn37MmfOHPz8/Jg8eTLx8fFMnjyZXr16FThqLERJ2nItlRtJWupWMqFHTQt9hyPKmUIT4H/++ae04hBCPKXYdB0r/0tm2fkkolKzlnSobmXMqAbWDPa0ppJZsex7IyqIV155hZiYGObMmUNUVBReXl5s2rQJNzc3IKus4UE2Njb8/PPP+Pv706FDB9RqNd27d893yTQhSppOUVh4JhGA95+xwdhIRn/F4yk0Ac7uCIUQZdeVeA3fnk9i/eUUUjRZO4V525vwbkNbXq1liZmxfDCI/GUvq5af3bt35znm4eHBtm3bSjosIR5p/800zsdpqGZlRP86VvoOR5RDUgQoRDmkKAp/RGaw9FwS+26mkb1Bbodq5rzb0IYXqplLPVwF0KNHj8e+R6VSsWPHjhKIRoiyQVEUFtyv/fVraCu/5IsnIgmwEOVIqkZh89UUvj2fxLnYrPpeMyPoX8eK0Q1s8JalzCqU7KXHHoeiKI++SIhy7FhUBsfvZKA2UzHYU0Z/xZORBFiIcuBWspbAi0ms/C+FmPSs+l4nSyOG1rfmnXrWOMrEtgopvzIEIQzdgrNZtb8jvG2wMZW5DeLJSAIsRBmlKApHozJYfiGZnWFZG1cANHEwZZS3DX1qWWIuX/0JIQzIuZhMDoSnY2msYqSXtb7DEeWYJMBClDHJmTp+uprKdxeSOH+/zMFEBa/UsmSElzUtncykvlcIYZAW3h/9fdPTCgcL+eZLPLmnToAVRSElJQVra/lNTIincTk+kxUXk9lwOYWEjKzhXkcLIwbXyypzqGYtnb2hsbe3x8jIiIiICMzMzLC3t3/kLz8qlYro6OhSilCI0nMjScOWa6kYq8CvgY2+wxHlXJET4B07dnDy5ElmzJiRc2zBggXMmjWL9PR0XnrpJb7//nusrKQgXYii0ugUDkUb43/1HkG303OON3c0ZZiXDb3dpczBkPn7+6NSqTAxMcn1WghDtPjfJLQKvFbbkpq28gW2eDpF/hu0ePFi6tSpk/P69OnTfPbZZ/j4+ODp6cnatWtZuHAhU6ZMKZFAhahIIlO0rL6UzJr/UriVYg5k1bS9WtuSYfWtaVLFTN8hijLg4f5U+ldhqGLStKwNTQHgvWds9RyNqAiKnABfvnyZPn365LzevHkzlStXZsuWLZibm2NiYsLWrVulgxaiAIqicDgincD/ktkdlsb9PStws9AxqpE9A+taoTaXGc1CCPGw5ReTSdEodKpuTsPKstyjeHpFToBTUlJylTccPHiQjh07Ym5uDsAzzzzDunXrij9CIcq56DQtGy6nsPq/FC4nZE1qM1ZBj5oWDKtvjUvSTTw9pZ5NFE1cXByLFi3iwIED3Lx5EwBXV1c6d+6Mn58f9vb2eo5QiOKVotHx3flkQEZ/RfEp8nBT9erVOX36NABXrlzh4sWLdOjQIed8TEwMFhYWxR+hEOWQoigcjUxnxO8xeP0YySd/JXA5IWvbzilNbTnbryprOzjgW80CKekURXX58mV8fHyYN28eGo2Gtm3b0qZNGzQaDfPmzcPHx4fQ0FB9hylEsdoQmkJ0uo5mVUxpV1XKw0TxKPIIcP/+/Zk5cyYRERFcvHgRtVpNly5dcs6fOnWKunXrlkiQQpQXcek6Nl5JYdV/yVyMyxrtVQEvVjdnSH1rOtewwMRIMl7xZCZOnEhSUhLbt2/n+eefz3Xu999/580332TSpEls3bpVTxEKUbw0OoVF57K2PX6voa1MAhXFpsgJ8Pjx40lPT+fAgQNUr16dRYsWYWdnB0BsbCxHjx5lzJgxJRaoEGWVoigcv5PBqv+S+fl6KmnarONOlka86WHFW57WMmNZFIvjx48zduzYPMkvgK+vLyNHjmTx4sV6iEyIkrEzLJXriVpq2RrTo6Z8yyyKT5E/lY2NjZk6dSpTp07Nc87e3l6+dhMGJzZdx8bLKay+9P+jvQDtq5nzdj1rurlZYCqjvaIY2dnZoVarCzyvVqsLPS9EeaIosPBs1ujvuw1tMZb+VBSjcjflfMWKFTRq1AhnZ2d8fX05evSovkMSBkRRFI7cr+2t/2MEU07EczFOg5OlEeMb2XD6VWe2vVSFXu6WkvyKYvfmm2+ybt06EhMT85yLj49n3bp1vPnmm3qITIji93e8ESHRmVSxMGJAXdljQBSvAkeA/fz8HvvNVCoVixYteqqACrN161YmT57MvHnzaNWqFStWrKBfv34EBwfj6upaYs8VIjpNyw+XU1h9KYXQ+P+v7e1Y3Zy3PGW0V5SMbdu25Xrt6emJSqXiueeeY8CAAdSuXRvImpi8ceNGHB0d8fDw0EeoQhS7NeFZy52N9LLG0kT6V1G8CkyADx8+nKfYPDU1lXv37gFZX7UpikJ8fDwAVapUKfFd4BYvXszAgQMZPHgwAHPmzOG3334jMDCQadOmleizhWFQhYVhERCAUUQEGpdq/DJmKqvjbdgZlkqGLuuaqpZGDPKwZpCnFe5S2ytK0DvvvINKpUJRshaNfvC/Fy5cmOf6O3fuMGLECPr27VuqcQpRnFRhYYTOX05wk9FYaTMYZhMLVNJ3WKKCKfDT++zZs7leh4aG0qdPH8aPH8+YMWNwcHAAIDo6msWLF7Np0ya2bNlSYoFmZGQQEhLCu+++m+t4hw4dOH78eIk9VxgOVVgY1r17c+9uAqta9GaFx6tcDjEGUlEBnWtkjfZ2cZWVHETp2Llzp75DEKJUZffDC3xGADD8zx9xXfwjyT//jFKzpp6jExVJkYev/P39eeGFF/jkk09yHXdwcODTTz8lKioKf3//Elt+Jzo6Gq1Wi6OjY67jjo6O3Llzp0SeKQyHVqdwZNFGVvm+z46GL6AxzvrqrUZsBIOT/uP18f1xtZHRXlG62rZtq+8QhChVFgEB3IpN44em3TDWahj3+2qMYyOwCAggdflyfYcnKpAif6KfOHGCzz//vMDzzZo1K5UyhIfLMhRFKXBdwKKuTFFRV7CoiO0q7jbdSVexI8qYHVEmRHgPAsBYq6Hn2YOMCP6JLhf+JLlZUy4NaEFJ/mlWxJ8VGG67pA5XiCdjFBHBAt830RqbMODkbmrGRmQdj4zUc2SioilyAmxjY8Off/7JO++8k+/5P/74o0RrgB0cHDA2Ns4z2nvv3r08o8LZivIhFBoaWiE/rCpiu4qrTVqdwq+30ln1XzL7w9PQZZVUUjMtluG/rWHIiW1US7ibc71F7dol+mdZEX9WIO0qKXfv3mXt2rWEhIQQHx+PTqfLdV6lUrFjxw49RSfE04muUYvvmvQDwP9gYM5xXdWq+gpJVFBFToBff/11/ve//2Fra8uoUaNydn27fPkyS5cuZceOHXnqc4uTmZkZTZo0ISgoiN69e+ccDwoKomfPniX2XFFxhCdpWBuawrpLKdxKydqtwkQFPdwteNvTmhcyNdh+9wvGDyS/2lq1SMtn7Wsh9OHixYt0796d5ORk6tSpw4ULF6hfvz5xlyj07QAAIABJREFUcXFERERQq1Ytqlevru8whXhiiwdMJPmqMS/+d4Qmty8C0g+LklHkBHjq1KncvXuXNWvWsHbt2pyyA0VRUBSF/v3756kPLm5+fn6MHDmSZ599lpYtWxIYGEhkZCRDhgwp0eeK8kujUzgQnsbq/5L55VZ6zmhvLVtj3q5nzYC6VjhZGt+/uibJP/+ctQpEZCS6qlVJmzpVJl6IMmP69OmYmpoSHByMra0tdevWZebMmfj6+rJ582b8/f0JDAx89BsJUQalaRS+vW0K6BinuULCs89iUbu29MOiRBQ5ATY1NWXJkiWMHTuW/fv3c/PmTRRFwc3Njc6dO9OgQYOSjBOAV155hZiYGObMmUNUVBReXl5s2rQJNze3En+2KF9u5oz2JnM7JesrYlMj6O1uyWBPa9q5mGGUT+24UrOmTLQQZdaxY8cYM2YM7u7uxMbGAuQsi9a3b1+Cg4P55JNPZPUIUS5tvJLC3TQdjSqb0nrOZC5d7lshy6hE2fDY09q9vb3x9vYuiViKZNiwYQwbNkxvzxdll/b+aO+qh0Z761Qy5m1PawZ4WFHFwrjwNxGiDMvMzMTFxQUACwsLgJy12AGeeeYZNm7cqJfYhHgaWp3Con+ztj1+7xmbAie3C1FcZF0nUe7dTtayNjSZtZdSCE/Oqu01NYI+7pa8Xc+atlXNpDMVFUKNGjW4ceMGAJaWllStWpUTJ07Qq1cvAM6fP4+1tbU+QxTiiey5mcblBA2uNsb0drfUdzjCABSYANvb2z9R0hATE/NUAQlRFDpF4dDtdAIvJrP3Zhra+6O9te/X9g6U0V5RAbVr1449e/Yw9f6EoH79+rFkyRISEhLQ6XT8+OOPvPnmm3qOUojHoygKC88mAuDXwEY2GhKlosAE2N/fP08CvHv3bi5cuEDHjh2pW7cuiqJw+fJlDh48iLe3N926dSvxgIVhi07Tsj40hZX/JXMt8f9XcujlbsGQetY872Keb22vEBXBBx/8X3v3HV/j2T9w/JM9ZEeGkVCxV81QpYhV1C5KlceoUZRSJGaL1m6tGBXRKooiRVsVP6IemxqtEY09k5Ale5xz//6InEckIokk55zk+369ntfTXPd1zvleidz3N9f9va9rPO+88w5JSUmYm5szbdo0nj59SkBAAEZGRvTt2zfH9dqF0EXHw1I4+zgVezMDPqpSeMupCvG8lybAPj4+mb7+8ccfCQ8P58SJE1mK0q9du0aXLl0oX7584UQpSjRFUTjzOIWl10w5eCKU5PS8l/Kl0md7B1SxxNVSZntF8efm5oabm5vmazMzM5YuXcrSpUu1GJUQr2f5s9nfj2tYUcrEUMvRiJIi1zXAy5cv5+OPP872icxq1aoxbNgwli1bxoABAwo0QFFyxaeq2XEzEb/geP6JTAWMMQDalzdjSPVStCtnjpHcKhMlWGxseuJgbW2t5UiEyJ8rUansv5+MhZEBw2tI/booOrlOgO/du4eZmdlLj1tYWHDv3r0CCUqUbDdi0vALjmPz9QSepqQX9zqaGdK5dDIT3ipPRWt5dlOUXDdv3mT+/PkcOHBAswKEra0t7dq1Y/LkyZpNioTQBxm1vwPkuQ1RxHKdSXh4eLBp0yYGDhyIra1tpmPR0dH8+OOPcuIV+aZWFA7cT2bd1Tj+70Gypr2xkwlDq1vRvaIF925dl+RXlGh//fUXPXr0IDExES8vL82zGDdu3CAgIIB9+/YREBBAo0aNtB2qEK90Ly6NnTcTMTSA0bWttB2OKGFynU3MnDmTDz/8kEaNGtGvXz9NshsSEsLWrVuJiopi8+bNhRaoKJ6ik9VsConHLzie288eajM3gl6VLPm4einqlTbVcoRC6A5vb2+srKwICgrCw8Mj07Hr16/TpUsXpk6dSmBgoJYiFCL3fC/HkabA+5UsZHJDFLlc/4vr0KEDO3fuZObMmaxYsSLTsbp167Ju3TpatWpV0PGJYurf6FTWXo3np+sJJKSllzm4WxkxrHr6Q20OcitMiCwuXbrEpEmTsiS/AJUrV2bYsGEsXrxYC5EJkTeRSSp+/DcBgE9l9ldoQZ7+5GrZsiV//vkn4eHh3L17F0VRqFChAs7OzoUVnyhG1IrCoQfJrL4Sx8HnyhzeKWPGyJql6FBeHmoTIifOzs4YGr78KXkjIyNcXFyKMCIh8mddcDzxaQptyplR11Hu9Imil697Ds7OzpL0ilxLSFOz7Xoiq6/E8W9MGgAWRgb09bBgRE0ratibaDlCIfTD6NGjWb58Oe+//36WZSfv3r2Ln58f48aN01J0QuROfKqatVfiARhfR1YwEdqRqwRYrVazd+9e9u3bx7Vr14iNjcXKyorq1avTsWNHunTpkuOshCiZwhJUrAuOxz84nshkNQDlLI34uEYpBlUrhb2Z/JsRIifLli3L0mZra0ujRo3o1KkTlSpVAuDGjRv88ccfeHh4kJiYWNRhCpEnP4YkEJmspmFpE5q7yuyv0I5XJsC3bt1i4MCBXL58GUVRsLa2xtramvDwcC5evMj27dupXbs2GzdupGLFikUQstB1V6NS8b0cx/YbCaSk5700KG3C6FpWdK1ogYmUOQiRK1988cVLjwUEBGRpu3z5Ml988QWffvppIUYlRP6lqhVWXooD4LO61ll2nBWiqOSYAEdHR9O1a1ciIiKYNGkS/fv3p0KFCprjd+/eZcuWLaxYsYKuXbty5MgR7OzsCj1ooXsUReFYWAor/oll//30+l4D4D13c0bXtqKps6mc6ITIo4sXL2o7BCEK1M83Ergfr6KarTGd3M21HY4owXJMgJctW0ZYWBi//fYbjRs3znLc3d0db29v2rZtS+fOnVm+fDkzZ84stGCF7lErCr/dTWLZP7GcfZwKpNf3fljFkk9qWVHJRpa2ESK/3N3dC/X9/fz8WL58OWFhYVSvXp158+bRrFmzV77uxIkTvPfee1StWpUTJ04Uaoyi+FArCsv+SZ/9HVfHCkOZFBFalGN28ttvv/Hhhx9mm/w+L2Nt4F9//VUS4BIiRaWw/WYCy/6JI+TZg20OZoYMr1GKj2uUwlGWMROi0MTGxnL06FHu3r0LpCfKzZs3z9OWyLt27cLb25slS5bQtGlT/Pz86N27NydPnsTNze2lr4uOjmbkyJG0bNmSR48evfZYRMnx290krsWkUb6UEb09LLUdjijhckyA7927R/369XP1Rg0aNGDbtm0FEpTQXYlpChv/jWfFpTjux6dvXOFmZcTYWlYMqGqJpbE82CZEYVq7di1z584lPj4eRVE07aVKlWLGjBmMGDEiV+/j6+tL//79GTRoEACLFi3i4MGD+Pv7M2vWrJe+bsyYMfTr1w9FUdizZ8/rDUaUGIqi8M3f6dsej61tJc+CCK3LMQE2MzMjLi4uV28UFxeHmZlZgQQldE9cqpoNwfGsuBxHeGL6k23V7YwZX8eaXpXkwTYhisLWrVvx9vamYcOGjBo1imrVqqEoCv/++y9r1qzBx8cHe3t7+vTpk+P7pKSkcOHCBcaOHZup3cvLi1OnTr30dX5+foSHhzNp0iQWLlxYIGMSJcPhh8mcf5KKk7khA6uW0nY4QuScANepU4fdu3fzySefvPKN9uzZQ506dQosMKEbYlPV+F1Nn/HNWMqsnqMJE9+0prO7udRwCVGEfH19adKkCb/++ivGxv87fdepU4du3brx3nvvsWLFilcmwBEREahUKpycnDK1Ozk5ER4enu1rLl++zIIFCzhw4ABGRlLiJPJm8bPZ309qWWFhLNcNoX05JsD/+c9/GDZsGNOmTWP27NnZnvTUajUzZ87k9OnTrFu3rtACFUUrLlXNuhcSX08nUybVs6ZtOTNZ0UEILQgJCWH27NmZkt8MxsbG9OzZM8fyhRe9+HusKEq2v9vJyckMHTqUOXPm5Hm5y5CQkDz1Lwja+Ext0JdxXnxqyLFQc6yMFFqZhBISEprr1+rLGF9HSRgjFP04q1SpkuPxHBPgXr16sX//flatWkVgYCC9e/emVq1aWFtbExsby6VLl9ixYwfXr1/n/fffp1evXgUavCgaBnfuYD53LoaPHhFXzp2VA7xZes+EiGeJb1NnU7zrW9OyjCS+QmhTqVKlCAsLe+nxsLAwLC1f/XCRo6MjRkZGWWZ7nzx5kmVWGCA0NJTg4GBGjx7N6NGjgfTJD0VRcHR05Oeff8bLyyvbz3rVRaighYSEFPlnaoM+jXNq4BMgmZG1bahfo/wr+2fQpzHmV0kYI+jmOF+5RtXatWupVasWy5YtY968eZkSIEVRsLW1ZebMmbL9pp4yuHOHUt27o7p7n++a9mJujY95dN0IUNPYyYSp9W1oVVYSXyF0gZeXF2vXrqVVq1a0aNEi07GjR4/y3Xff0bFjx1e+j6mpKfXq1SMoKIju3btr2oOCgujatWuW/mXLluX48eOZ2tavX09QUBCbNm0q9OXahP668CSFAw+SsTQ2YFRNqf0VuuOVCbCBgQHjxo1jxIgRnDx5kuDgYOLi4rCysqJatWo0bdoUCwuLoohVFALTuV+x1b4mMz5czS3H9KWPGty7zKzY87yzcLIkvkLokFmzZnH8+HG6detG3bp1qVq1KgD//vsvf//9N2XKlMl1CcTo0aMZMWIEDRs2pEmTJvj7+xMaGsrgwYMBNKtJrF27FhMTE2rWrJnp9aVLl8bMzCxLuxDPW/Ks9ndINVkeU+iWXO9SYG5uTqtWrWjVqlUhhiOKiqIoHHqYzJc1h/B3s/TEt0boDebsW0HPvw+gatGCeIMpWo5SCPG88uXL89///pdvvvmGwMBAzTJk7u7ujB49ms8++wwHB4dcvVfPnj2JjIxk0aJFhIWFUaNGDbZv366Zzb1//36hjUOUDFeiUtl7JwkzIxhT20rb4QiRiWzTVQL9HZHCzLNPOfwwGezccIt6xJd/rGTgmT0YKel1v2pXVy1HKYTIjoODA3PnzmXu3Lmv/V7Dhg1j2LBh2R777bffcnytj48PPj4+rx2DKL6WXEyf/R1YpRSuljL7K3SL7FpQgoQmqBh9NIqWex5z+GEyNqYGzPZQcXXLJww+/Ysm+VW98QZJ06drOVohxPMSExNxcHBg8eLF2g5FiFf6NzqVXbcSMTFM3/ZYCF0jM8AlQFKagu/lOL75O5b4NAUTQxhWvRST3rTGwdwI1c6fSZk7F8PQUNSuriRNn45SoYK2wxZCPMfCwgInJydsbGy0HYoQr7T4YiwKMKCKJeWtJNUQukf+VRZjiqKw714SU0/HcDs2fdviTu7mzGlki4ft/370SoUKJMoazkLovB49ehAQEMCwYcMwNJQbeEI3XY9JZcez2d/P6lprOxwhsiUJcDF1P9GAqQciOPAgGYAadsbMb2JHy7KyXbUQ+qpz584cOXKEd999l4EDB1KxYsVsV+Fp2LChFqITIt2ii7GoFfioiiXuMvsrdJT8yyxmktIUlv4TyzcXzUlR0ut8p9W3YWj1UhgbypJmQuiz59foPXPmzEt3couMjCzq0IQA0md/f76ZiLEBTJDZX6HDcp0AZ+z+8zIGBgaYm5tTtmxZ3nnnHRo1avTawYm8+e+jZD47Hs31p2mAAf0qWzK7kQ1OFvL0rRDFga+vr7ZDECJHCzNmf6taUsFa5tiE7sr1v84jR46QlJTEkydPALCzs0NRFGJiYoD0RdHVajWRkZEYGBjQrl07fvjhB8zNzQsncqERnaxm+pkYNoUkAFDN1pgJ7nH0bVROy5EJIQpCcnIyv//+O2FhYTg4ONChQwdcZalCoWP+jU5lh8z+Cj2R66coAgICMDMz4/PPP+fGjRvcunWL27dvc+PGDSZOnIi5uTmBgYHcunWLCRMmEBgYyPz58wszdgH8fjeRpgFhbApJwNQQpta35kg3ZxrYqrUdmhCiAISFhdGsWTOGDh3K7NmzGT9+PI0aNeLYsWPaDk2ITGT2V+iTXCfAU6ZMwcvLi2nTpmXaacjBwYHp06fTqlUrJk+ejJ2dHdOnT6dbt24EBAQUStAifdZ3+J+R9D8YSWiimibOphzt5szkejaYGUmtrxDFxdy5c7l9+zaffPIJ27ZtY968eZiZmTF58mRthyaExpWoVHbeTMTUECbK7K/QA7n+E+3kyZPMmTPnpcfr16+fKeFt3rw5+/bte73oRLYOPUhizNEoHiaosTQ2YGZDGz6uXgojechNiGLn0KFD9OvXL9POb87OzgwbNowHDx5QrpyUOgnt+/rcUxRgULVSsu6v0Au5ngG2tLTkxIkTLz1+7NixTMvxJCYmYmUlu78UpKQ0hSkno+kZGMHDBDWeTumzviNrWknyK0QxFRYWRpMmTTK1NW3aFEVRuH//vpaiEuJ/LjxJ4de7SZgbyeyv0B+5/jOtd+/erFmzBjs7Oz7++GMqVaoEwM2bN/nuu+8ICAhg5MiRmv5//vkn1apVK/iIS6irUakM/TOSK1FpGBuAT30bxtWxkqXNhCjmVCpVloeJM75OSkrSRkhCZDL33FMAPq5hhaulrDok9EOuE+BZs2YRHh6On58f69ev16w/qSgKiqLQs2dPvvjiCyD9pNy4ceMssxYi7xRFYVNIApNORpOkAg8bI/xaOlC/tKm2QxNCFJHbt2/z119/ab5++jQ94QgJCcn2TptshCGKyrHQZP7vQTLWJgaMryN3fYX+yHUCbGZmhp+fH59++ikHDhzQ3Hpzc3Ojbdu21K1bV9PX3NycKVOmFHy0JUx8qpqJJ6LZeiMRgP6VLVnY1BYrE9kCVYiSZN68ecybNy9L+4sPwslGGKIoKYrCnL/S/xgbXcsKR3OZ/RX6I8+V6nXr1s2U7IrCcfNpGgMORnAlOg0LIwOWvGVL/yqltB2WEKKIyeYXQlftv5/EyfAUHM0M+aSWzP4K/ZLnBPjWrVsEBgZy9+5dACpUqEC7du144403Cjy4kurA/SSG/RlJTIpCFVtjNrZ2oIa9ibbDEkJoQf/+/bUdghBZqNQKs5/N/k580xobU7kzKfRLnhLgadOmsWbNGtTqzJss+Pj4MHLkSL766qsCDa6kURSFFZfimHU2fTmZTu7mrGlhLycWIYQQOmXbjQSuRKVRvpQRQ6vL3Umhf3KdWfn6+rJq1So6depEYGAgd+7c4c6dOwQGBtK5c2dWr17NqlWrCjPWYi1VrTDueDQznyW/PvWt2eTlIMmvEEIInZKUpvD1+VgApjeQzZeEfsp1drVx40bat2/Pjz/+SOPGjbGxscHGxobGjRuzceNG2rZty/fff18oQUZFRTFp0iQaN26Mq6srtWrVYsKECcXmQY+YFDW9AiPY+G8C5kbwQ2sHptSzwdBATipCCCF0y9qrcdyPV1HbwYQ+HhavfoEQOijXCfDt27dp3779S4+3b9+eO3fuFEhQL3r06BGPHj3iyy+/5Pjx46xdu5bjx48zdOjQQvm8ovQoQUWn3x9z5FEyLhaG/N7RiW4V5YQihBBC90QkqVjyd/rs7+xGMlEj9Feua4Dt7e0JCQl56fHr169jb29fIEG9qGbNmmzatEnzdaVKlZg9ezZ9+/bl6dOn2NjYFMrnFrbrMan0CIzgXpyKKrbG7GzviLtsISmEEEJHLbwQy9MUBa+yZniVM3/1C4TQUbmeAe7UqRPr169n8+bNKIqiaVcUhS1btuDv70/nzp0LJcjsxMbGYmZmhqWlZZF9ZkG6HJlKx9+fcC9ORcPSJvzRqbQkv0IIIXTW9ZhU1gfHYwDMbmyr7XCEeC0G0dHRyqu7QXR0NO+99x5XrlzB0dERDw8PIH0r5MePH1O7dm327t2LnZ1doQacEYuXlxdt27Zl4cKFL+2X04y1Nl2LM2D0JXNi0gxoYqdiUY1kLGT9cCGKjSpVqmg7hBIrJCSkRHz/tTHO/gcj+P1uEgOrWrL87cK54/u8kvCzLAljBN0cZ66nHO3s7Dh06BDff/99pnWA69atS4cOHRg4cCBmZmZ5+vC5c+eyePHiHPvs3buXFi1aaL6Oj4+nX79+lClThtmzZ+f42tx8s4v6h3L+SQqjTz8hJk2hQ3kzfmjtiLlxwddQ6eI/ttdVHMcEMi59U1zHJURO/nyYzO93kyhlbMC0+vpZdijE8/J0z93U1JThw4czfPjwLMeePHlCSEgItWvXzvX7jRo1ij59+uTYp3z58pr/jouLo3fv3gBs27YNc3P9qj+6HJlKj/1PiElReM/dHP9WDpjK8jFCCCF0WJpawedUNACf1bXGxVJuWQr9V2BFp99//z1ff/11npYmc3R0xNHRMVd9Y2Nj6d27N4qisGPHDqys9GvbxfQH3p4QnaLQ0c2cDa0dMDGU5FcIIYRu+/5aPFei03C3MmKMbHksigm9eOoqNjaWnj17Ehsby+bNm0lISCAhIQFIX53C1NRUyxHm7EG8iu77IwhPVNOyjBkbWknyK4QQQvdFJqmYey59y+M5jW0LpWRPCG3QiwT4woULnDlzBoCGDRtmOvZijbCueZqips+BJ9yPV+HpZMqWNg5yAhFCCKEX5p6LJTpFoWUZM7pW0K+yQyFyohcJcIsWLYiOjtZ2GHmWqlYYfDiSy1FpVLE1Zls7R0qZyNbGQgghdJfBnTuYz53LhURjvveairGhAQua2mIgm16IYkSysUKiKAqTTkRz8EEypc0N+bmdI/Zm8u0WQgihuwzu3KFU9+4Y79jBpx5dUBsYMuavX6gR81DboQlRoHKcAf7rr79y/UYPH8ovx/O+v5bA9/8mYG4EP7VxpKK1Xky2CyGEKMHM587F6NYt1jV9n1MV36RsdBizt3+NWdJFEtet03Z4QhSYHLOytm3b5vqWh6IocnvkmbOPU5j8bMmYZW/b09hZtx/SE0IIIQAMHz0i3MqBKe9NAOCb3QuxTk4gLTRUy5EJUbByTIB9fX2LKo5i43GiikGHIklVw8c1StHXQz+3ahZCCFHyqMuUYWKFzkSVsqV98DH6XPgjvd3VVcuRCVGwckyA+/fvX1RxFAuKojDyv1E8SFDRxNmUr2SvdCGEEHpk3ycz2HTBCPOUJFbtmIMBoHrjDZKmT9d2aEIUKClMLUDrrsZz8EEyDmaGfN9adnkTQgihPxLS1Iy7bgqomPboKBVqViTFtSlJ06ejVKig7fCEKFCSABeQ4OhUZp6NAWBpMzvKyFaRQggh9Mi887HciVNRy96YkYMGEm84SNshCVFoZF2uApCiUhj+ZxRJKuhf2ZKuFS20HZIQQgiRa2cfp+B7OQ5DA1jxtr3sViqKPUmAC8DyS3H8HZmKu5UR85tI3a8QQgj9kaxSGHM0CrUCY2pZ0cBJVi4SxZ8kwK/pdmwaiy+m75O+4m17bEzlWyqEEEJ/zD//lODoNCrbGONT30bb4QhRJCRbew2KojD5ZDRJKuhTyYKWZc20HZIQQuSan58fdevWxcXFhZYtW3L8+PGX9t2zZw89evTAw8OD8uXL06ZNG37//fcijFYUhtPhySy7lF764NvcDgtjKX0QJYMkwK9h750kAu8nY2NqwFxPKX0QQuiPXbt24e3tzcSJEzly5Aienp707t2be/fuZdv/2LFjvPPOO2zfvp0jR47Qrl07BgwYkGPSLHRbfKqaUf9NL334tLYVTVxkEkeUHJIA51NimsLU0+mrPsxsYIOzhaz6IITQH76+vvTv359BgwZRrVo1Fi1ahIuLC/7+/tn2X7BgAZ999hkNGzakUqVKeHt7U69ePX777bcijlwUlOlnYrjxVEVNOyl9ECWPJMD55Bccx/14FXUdTBhcrZS2wxFCiFxLSUnhwoULeHl5ZWr38vLi1KlTuX6fuLg47OzsCjo8UQT23U1kw7UETA1hbUsHzGTdelHCSAKcD09T1Hz7dxwAMxvaYCTLxQgh9EhERAQqlQonJ6dM7U5OToSHh+fqPdatW8fDhw/p27dvYYQoCtGjBBVjjkYDMKOhDXUcTLQckRBFTzbCyIdVl+OITFbzlospbcpJzZQQQj8ZGGT+411RlCxt2dm9ezczZ85k/fr1uLu759g3JCTktWLMD218pjbkZ5wqBcZcMiMi2QhPOxXtTUMJCQkthOgKRkn4WZaEMULRj7NKlSo5HpcEOI8iklT4Xk6f/Z3RwCZXFwshhNAljo6OGBkZZZntffLkSZZZ4Rft3r2bkSNHsmbNGjp16vTKz3rVRaighYSEFPlnakN+x7n4YixnY57iZG7Ijx1ccdHhXUtLws+yJIwRdHOcUgKRR8v+iSM2VaFdOTOaucrsrxBC/5iamlKvXj2CgoIytQcFBdGkSZOXvi4gIIARI0awatUqunXrVthhigJ25FEyX59PX7d+zTv2Op38ClHYZAY4D2JT1Wy4Fg/A1AbyxKwQQn+NHj2aESNG0LBhQ5o0aYK/vz+hoaEMHjwYgBEjRgCwdu1aAHbu3MmIESOYM2cOzZo1IywsDEhPpu3t7bUzCJFroQkqhv0ZiVqBz+ta06acubZDEkKrJAHOgy0hCcSmKjRzMaV+adkqUgihv3r27ElkZCSLFi0iLCyMGjVqsH37dk1N7/379zP19/f3Jy0tDR8fH3x8fDTtb7/9tiyFpuNSVAr/CYokPFHNO2XM8Klvre2QhNA6SYBzSa0ofHc1vfZ3ZE0rLUcjhBCvb9iwYQwbNizbYy8mtZLk6q9pp2M4GZ5CWUtD/Fray8pFQiA1wLl24H4yN56qKF/KiE7ucutICCGE7vvx33jWBcdjagg/ejnKpk1CPCMJcC6tuZI++zu8RimM5a9nIYQQOu54aDITTqSv97v4LTsaOknpnhAZJAHOhWvRqQQ9TMbS2ICBVWXXNyGEELrtdmwaHx2KJFUNI2uWkmuXEC+QBDgXNockANCnkgV2ZvItE0IIobuik9X0PRBBRLKaNuXMmNvYVtshCaFzJJt7BUVRCLidCEDfypZajkYIIYR4uWTtf6nHAAAgAElEQVSVQv+DEVyLSaOGnTH+rRykbE+IbEgC/Ap/PUnlXpyKspaGNHGW+ikhhBC6SaVWGHkkiuNhKZSxNOTndo7YmsplXojsyG/GK+y6lV7+0K2iBYay7bEQQggdpCgKk07GEHA7EWsTA7a3K015K1npVIiXkQQ4B2pF4Zdb6eUPPd+Q8gchhBC66atzsfhfi8fMCH5q60gdBxNthySETpMEOAenwlN4mKDGzcqIRk5yMhFCCKF7Fl+MZfHfsRgZwIZWDjR3NdN2SELoPEmAc7Dr2exvj4oWGEj5gxBCCB2z7J9Y5p57igGwqoU9ndwttB2SEHpBEuCXUKkV9jxb/aHHG3JCEUIIoVuW/xPLrLPpya9vczv6ekipnhC5JRXyL/FPZCphienlD/UcpfxBCCGEblAUhbV3TPC79xSAZW/b0b+KbHQhRF5IAvwSR0OTAXinjJmUPwghhNAJiqIw/cxT/O6ZYGgAvs3t6Sdr1AuRZ5IAv8TxsBQA3naRtX+FEEJoX4pKYczRKLbfTMTYQGF9K0e6VZQSPSHyQxLgbKgVhRNh6TPAzeRpWiGEEFoWk6Jm4KFI/nyUTCljA76uliTJrxCvQRLgbARHpxGVrFDO0ogKVkbaDkcIIUQJdjcujX7/F8HlqDScLQzZ3taRUlF3tB2WEHpNVoHIxvHQjNlfU6n/FUIIoTXHQpNpvecxl6PSqGxjTGBnJ+qVltI8IV6XzABnI6P+t5mLlD8IIYQoeoqi8P21BCadjCZNgTblzFjf0gE7M5m3EqIgSAL8AkVRMs0ACyGEEEUpLlXNhOPRbL+Zvhb9mFpWfNHIBmNDuSMpREGRBPgFt2JVhCaqKW1uSFVb+fYIIYQoOpciUxl8OJKQmDQsjQ34tplscCFEYZAM7wUZ6/82c5H6XyGEEEVDrSh8dzWeL87GkKSCGnbGfN/agWp2shGTEIVB74qJFEWhV69e2NnZsXv37gJ///+VP0j9rxBCiMJ3JzaNrn88wftUevL7URVLDnZxkuRXiEKkdzPAK1euxMio8JYmO/8kFYCmzlL/K4QQovCoFYWN/yYw/XQMcWkKTuaGfNPMji4VZH1fIQqbXiXA58+fZ82aNRw+fJgqVaoU+Pur1Aq3YtMAqCz1v0IIIQrJxYgUJp2I4fTj9FWHule0YPFbtpQ2l7XnhSgKepPlxcbGMnToUL799lucnJwK5TPux6tIUYOrhSFWJnpXHSKEEELHRSer+er8U9YHx6NW0q8385rY0uMNedBNiKKkNwnwhAkTaNOmDe3bt8/1a0JCQvLU71SUIWBOGZPUXL9WlxWHMbyoOI4JZFz65lXjKow7VEK/JasUvr8Wz6KLsTxJUmNkAJ/UKoV3PRtsTGXCRYiiptUEeO7cuSxevDjHPnv37uXBgwdcunSJoKCgPL1/bi5CISEhmn5/Xo0DYqjlYk2VKu55+ixd8/y4ioviOCaQcemb4jouUThUaoXtNxOZd/4pd+NUALzlYsripnbUcpCH3ITQFq0mwKNGjaJPnz459ilfvjxbtmwhODiYcuXKZTo2ePBgPD09+eOPPwoknpvP6n89bPRmYlwIIYQOUqkVfr2bxPzzT7kanX5tqW5nzPQGNnR2N5dlNoXQMq1meo6Ojjg6Or6y34wZMxg7dmymtmbNmjFnzhw6d+5cYPHceJr+13klSYCFEELkQ0Kamp+uJ+B7KY6bsenXFDcrI3zqWdPXwxIj2c1NCJ2gF5le2bJlKVu2bJb28uXLU7FixQL7nJtPZQZYCCFE3oUnqlh3NZ71wfFEJquB9MR3bC0rBlUrhZmRJL5C6BLJ9J5JUyvcflYC8Ya1LEMjhBAiZyq1wuFHyfx0PYG9dxJJTp/wpUFpE8bWtqJLBQuMZcZXCJ2ktwlwdHR0gb7f/XgVqWooY2lIKVkCTQghxEtci07lp+sJbLuRwKOE9NleA6Cjmzlja1vxloup1PgKoeP0NgEuaBnlD1L/K4QQ4kX34tLYdzeJbTcS+OvZjqGQfsewX2VL+npYUsFarh9C6Av5bX3mhtT/CiGEeCZNrXAqPIUD95MIvJfElWcrOQDYmBjQ/Q0L+le2pImzzPYKoY8k23tGEmAhhCjZniSp+L/7yQTeT+LggyRiUhTNMStjA1qXM6NrBQveq2CBhbEkvULoM8n2nskogXhDbmEJIUSxl6pWuBqVyrknqZx7ksJfj1O4EpWG8lyfKrbGtCtvRofy5rzlYoaprOQgRLEh2d4zN5+tASwzwEIIUbwoisKtWBV/PU7h3JMUzj1J5WJECkmqzP1MDaG5qxnt3cxpX95cngkRohiT325eWALNRpZAE0IIfaRWFMKTDYgIS+ZunIp/Y9I49yzpjU5RsvSvZG1EAydTGpQ2pUFpE+o6mmBpLKsACVESSAIM3ItTkaZAOUsjOfkJIYSOUqkVHiaouBen4m6cirtxaZn+O305SwvgSZbXOlsY0qC0KQ1Lm9DAyZT6jiY4mMuEhxAllSTA/O8BOJn9FUKUJH5+fixfvpywsDCqV6/OvHnzaNas2Uv7Hz16lGnTphEcHIyrqyvjxo1jyJAhBRZPmlrhQbyKe/Eq7samPUtsVdyLS//vB/HpkxU5cTBRqGhriruVMW9YG1HvWdJbrpSRrNYghNCQBJj0TTBA6n+FECXHrl278Pb2ZsmSJTRt2hQ/Pz969+7NyZMncXNzy9L/9u3b9OnThw8//JDvvvuOkydPMnHiRBwdHenWrdtrx6NWFMpvepilLvdFLhaGuFsZ4WZljLuVEe7P/t/t2f8e3LpBlSrlXzseIUTxJhkf8J9qpehe0YJU9SumFoQQopjw9fWlf//+DBo0CIBFixZx8OBB/P39mTVrVpb+GzZswNXVlUWLFgFQrVo1zp49y8qVKwskATY0MKCMpRFJKkWT1GZOdI0oX8oYc1l+TAhRACQBfsbOTGp/hRAlQ0pKChcuXGDs2LGZ2r28vDh16lS2rzl9+jReXl6Z2tq0acNPP/1EamoqJiYmrx3XmZ4uGBtKgiuEKHyS9QkhRAkTERGBSqXCyckpU7uTkxPh4eHZviY8PDzb/mlpaURERBRIXJL8CiGKiswACyFECfXiQ2GKouT4oFh2/bNrf15ISMhrRJg/2vhMbSgJ45QxFh9FPc4qVarkeFwSYCGEKGEcHR0xMjLKMtv75MmTLLO8GZydnbPtb2xsjIODw0s/61UXoYIWEhJS5J+pDSVhnDLG4kMXxyklEEIIUcKYmppSr149goKCMrUHBQXRpEmTbF/j6enJ4cOHs/SvX79+gdT/CiFEUZIEWAghSqDRo0ezZcsWNm7cyLVr15gyZQqhoaEMHjwYgBEjRjBixAhN/8GDB/Pw4UO8vb25du0aGzduZMuWLYwZM0ZbQxBCiHyTEgghhCiBevbsSWRkJIsWLSIsLIwaNWqwfft23N3dAbh//36m/hUrVmT79u1MnToVf39/XF1dWbBgQYEsgSaEEEVNEmAhhCihhg0bxrBhw7I99ttvv2Vpa968OUeOHCnssIQQotBJCYQQQgghhChRJAEWQgghhBAlikF0dLTs/yuEEEIIIUoMmQEWQgghhBAliiTAQgghhBCiRJEEWAghhBBClCiSAAshhBBCiBJFEmAhhBBCCFGiFPsE2M/Pj7p16+Li4kLLli05fvx4jv2PHj1Ky5YtcXFx4c0338Tf37+IIs29vIxpz5499OjRAw8PD8qXL0+bNm34/fffizDa3MvrzyrDiRMncHR05K233irkCPMnr+NKSUnhq6++om7dujg7O1O7dm3WrFlTRNHmXl7H9fPPP9O8eXPKlClD1apVGT58OGFhYUUU7asdO3aMDz74gBo1amBnZ8fmzZtf+ZrLly/TqVMnXF1dqVGjBgsWLEBRZGEdXaIoCr169cLOzo7du3drO5wCFRUVxaRJk2jcuDGurq7UqlWLCRMmEBkZqe3QXkt+rwX64ptvvqF169a4ubnh4eFB3759uXLlirbDKlRLlizBzs6OSZMmaTsUjWKdAO/atQtvb28mTpzIkSNH8PT0pHfv3ty7dy/b/rdv36ZPnz54enpy5MgRJkyYwOTJk3XqpJnXMR07dox33nmH7du3c+TIEdq1a8eAAQN07oSS13FliI6OZuTIkbRs2bKIIs2b/Ixr6NChHDx4kGXLlnHmzBm+//57atWqVYRRv1pex3Xy5ElGjBhBv379OHHiBJs3byY4OJiPP/64iCN/ufj4eGrWrMn8+fOxsLB4Zf+nT5/So0cPnJ2dOXToEPPnz2fFihWsXLmyCKIVubVy5UqMjIy0HUahePToEY8ePeLLL7/k+PHjrF27luPHjzN06FBth5Zv+b0W6JOjR48ydOhQ9u/fz549ezA2NqZ79+5ERUVpO7RCcebMGX744Qedu44V63WA27RpQ61atVi+fLmmrUGDBnTr1o1Zs2Zl6T9r1iz27t3LuXPnNG1jx44lODiYAwcOFEnMr5LXMWXHy8uLt956i6+++qqwwsyz/I5rwIAB1K5dG0VR2LNnDydOnCiKcHMtr+M6dOgQ//nPfzh//jyOjo5FGWqe5HVcK1asYO3atVy6dEnTtmnTJqZMmcKDBw+KJOa8KFeuHAsXLuTDDz98aZ/169fzxRdf8O+//2oS5kWLFuHv78+VK1cwMDAoqnDFS5w/f54BAwZw+PBhqlSpwg8//EC3bt20HVahCgwMpG/fvty5cwcbGxtth5NnBXGN0zdxcXG4u7uzefNmOnbsqO1wClRMTAwtW7Zk2bJlLFy4kJo1a7Jo0SJthwUU4xnglJQULly4gJeXV6Z2Ly8vTp06le1rTp8+naV/mzZtOH/+PKmpqYUWa27lZ0zZiYuLw87OrqDDy7f8jsvPz4/w8HCduqXyvPyM67fffqN+/fr4+vpSs2ZNGjRowOTJk4mLiyuKkHMlP+Nq0qQJYWFh7Nu3D0VRiIiIYNeuXbRr164oQi4Up0+f5q233so0W9ymTRsePXrEnTt3tBiZAIiNjWXo0KF8++23ODk5aTucIhMbG4uZmRmWlpbaDiXPCuoap2/i4uJQq9U6dV0uKOPHj6dbt246eZfWWNsBFJaIiAhUKlWWE5+TkxPh4eHZviY8PJxWrVpl6Z+WlkZERASurq6FFW6u5GdML1q3bh0PHz6kb9++hRFivuRnXJcvX2bBggUcOHBAZ29v5mdct2/f5uTJk5iZmbFx40ZiYmKYPHkyoaGhbNy4sSjCfqX8jMvT0xM/Pz+GDx9OYmIiaWlptG7dmtWrVxdFyIUiPDycsmXLZmrL+J6Eh4dTsWJFLUQlMkyYMIE2bdrQvn17bYdSZKKjo/nqq68YOHAgxsb6d3kviGucPvL29qZOnTp4enpqO5QC9cMPP3Dz5k3Wrl2r7VCypX+/IXn04m1IRVFyvDWZXf/s2rUpr2PKsHv3bmbOnMn69etxd3cvrPDyLbfjSk5OZujQocyZM0cvkoy8/LzUajUGBgasW7cOW1tbIP22es+ePQkPD8fZ2bnQ482tvIwrODgYb29vJk2ahJeXF2FhYcyYMYPx48fr7MkxN/ThfFGczJ07l8WLF+fYZ+/evTx48IBLly4RFBRURJEVrNyOs0WLFpqv4+Pj6devH2XKlGH27NmFHWKhyu81Th9NnTqVkydP8scff+jsZE5+hISEMHv2bPbt24epqam2w8lWsU2AHR0dMTIyyvJX45MnT156O8zZ2Tnb/sbGxjg4OBRarLmVnzFl2L17NyNHjmTNmjV06tSpMMPMs7yOKzQ0lODgYEaPHs3o0aOB9MRRURQcHR35+eefs9xC04b8/LxcXFwoU6aMJvkFqFq1KgD379/XiQQ4P+P65ptvaNCgAZ9++ikAtWvXxtLSko4dOzJjxgzKly9f6HEXtJedL4ASdcu9KI0aNYo+ffrk2Kd8+fJs2bKF4OBgypUrl+nY4MGD8fT05I8//ijMMF9bbseZIS4ujt69ewOwbds2zM3NCzW+wvI61zh95OPjw65du9i7d69eTObkxenTp4mIiMi0OpNKpeL48eP4+/vz8OFDzMzMtBhhMU6ATU1NqVevHkFBQXTv3l3THhQURNeuXbN9jaenJ7/99lumtqCgIOrXr4+JiUmhxpsb+RkTQEBAAKNGjWL16tU6+QBIXsdVtmzZLKtYrF+/nqCgIDZt2qQzs9v5+Xk1bdqU3bt3ExcXh5WVFQA3btwAwM3NrfCDzoX8jCsxMTHL7EbG1/q6bJinpydffPEFSUlJmoQjKCiIMmXKUKFCBS1HVzw5Ojrm6uHQGTNmMHbs2ExtzZo1Y86cOXTu3LmwwiswuR0npNf89u7dG0VR2LFjh+a8oY/ye43TR1OmTGHXrl38+uuvmkmO4qRz587Ur18/U9vo0aPx8PBgwoQJOjErXGwTYEj/Zo8YMYKGDRvSpEkT/P39CQ0NZfDgwQCMGDECQHMLdvDgwaxbtw5vb28GDx7MqVOn2LJlC35+flobw4vyOqadO3cyYsQI5syZQ7NmzTTrrpqammJvb6+dQWQjL+MyMTGhZs2amV5funRpzMzMsrRrW15/Xu+//z6LFi1i9OjReHt7ExMTg7e3N926ddOpGZC8juvdd99l3LhxrF+/njZt2hAaGoqPjw9vvvmmziT2cXFx3Lx5E0i/o3D//n3+/vtv7O3tcXNz48svv+Svv/5iz549QPrPasGCBXzyySd8/vnnXL9+naVLlzJ58uRie7tWX5QtWzZLfTakz5oWp5m22NhYevbsSWxsLJs3byYhIYGEhAQA7O3tdSLJyKtXnVuKg88//5xt27axadMm7OzsNNflUqVK6fUfMM+zs7PL8lCfpaUl9vb2OnOdLtYJcM+ePYmMjGTRokWEhYVRo0YNtm/frpkhvH//fqb+FStWZPv27UydOhV/f39cXV1ZsGCBTs2a5nVM/v7+pKWl4ePjg4+Pj6b97bffzjLbrU15HZe+yOu4rKys+OWXX5g8eTJeXl7Y2dnRuXNnnVv+J6/j+vDDD4mLi2PdunVMnz4dGxsbWrRowZdffqmN8LN1/vx5unTpovl63rx5zJs3j379+rF69WpCQ0O5deuW5ritrS0BAQF8/vnntG7dGjs7O0aPHs2YMWO0Eb4ogS5cuMCZM2cAaNiwYaZjL9YI64tXnVuKg4xJtRdziylTpmS6TovCVazXARZCCCGEEOJFxXYdYCGEEEIIIbIjCbAQQgghhChRJAEWQgghhBAliiTAQgghhBCiRJEEWAghhBBClCiSAAshhBBCiBJFEmBR7Ny5cwc7Ozu+/fbbAnvP//73v9jZ2bFz585X9p03b16WBcA7d+6cZQcqOzs75s2bV2AxCiGEPsnuXPkyderUYdSoUYUcUeEYNWoUderU0XYY4gWSAIsis3nzZs3uMHZ2djg6OlKzZk3GjBlDaGiotsPTuitXrjBv3jzu3Lmj7VCEEDoi47yZseGFrti5cyfvvfceFSpUwNXVlcaNG/PFF18QHR2t7dBylDFBkvE/e3t7KlasyPvvv8/p06fz/b5y/tY/xXonOKGbvL29eeONN0hOTubkyZNs2bKFY8eOcfz4cSwsLLQd3mubNGkSn3322Sv7hYaGYmz8v1/Bq1evsmDBApo3b06FChUKM0QhhMgXtVrNyJEj2b59O40bN2bSpElYW1tz7tw5fH192bFjB7t378bDw0PboeaoZ8+edOjQAZVKxY0bN/Dz86NLly4cOnSIWrVq5fn9cjp/L1++HLVaXVChiwIiCbAocm3atKFx48YADBw4EHt7e3x9ffn999/p1atXlv4JCQlYWloWdZj5ZmxsnCmxfRlzc/MiiEYIIQrOihUr2L59OyNHjmTevHkYGBgAMGjQIPr370/37t0ZOHAgf/75Z67Og9pSp04d+vbtq/m6adOm9O7dG39/f5YsWVKgn2ViYlKg7ycKhpRACK175513ALh9+7bmdt+RI0fw9vamatWqlC1bVtP33r17fPzxx1SqVAkXFxeaN2/OTz/99NL3Xrt2LXXr1sXV1ZW2bdty9uzZTMfv3r3LxIkTady4MWXKlMHd3Z2+ffty9erVbN9PpVLx9ddfU716dcqUKUP37t0JCQnJ1Ce3dW3P1wBv3ryZoUOHAtClSxfN7bnNmzczZ84cSpcuzePHj7O8x4wZM3B2diYyMvKVnyeEKL6ioqKYMGEC1apVw9nZGU9PT1auXImiKJn6JSUlMXXqVCpXrkzZsmXp0aMHISEhuaqxTUxMZOnSpVSqVIk5c+Zokt8MTZo0YezYsVy+fJm9e/dmOrZ//37efvttXFxcaNiwIRs3bsz2M1JSUpg1a5bm3N+tWzf+/fffLP3S0tJYtGgRDRs2xNXVlUqVKtG+fXt2796dm29XFs2aNQPg1q1bmdovXbrEqFGjqFevHi4uLnh4eDB06FDu37+v6ZPT+RuyrwFWq9UsXbqUhg0b4uzsTI0aNZg0aRIxMTH5il/kne7+eSZKjIwTjoODg6ZtypQp2NraMmHCBJ4+fQpAREQE7777LlFRUQwfPhxXV1d27drFqFGjiI6OznLy/vnnn4mJiWHo0KGo1Wr8/Pzo3r07hw8fpnLlygCcP3+eY8eO0aVLF9zd3Xn06BEbNmygU6dOnDx5EhcXl0zvuXTpUtRqNWPGjCE6Opq1a9fSpUsXjh8/nin+vHr77bf5+OOPWbduHRMnTqRq1apA+gWlSZMmLFmyhJ07dzJy5EjNa9RqNTt37qRdu3av9dlCCP2WnJxMly5duHr1KkOGDKFq1aoEBgYyffp0Hjx4kOlh2zFjxrBjxw569uxJs2bNuHDhAt27dycpKemVn3Py5EnN+fdls5r9+/dn4cKF7Nu3jx49egDw559/0r9/fypVqsS0adNISkpizpw5Wc6vAOPHj2fLli1069aNFi1acO7cOXr06JElvvnz57NkyRI++ugjGjZsSHx8PH///Tdnz56lW7duefn2AemTIQD29vaZ2oOCgggJCaFPnz6UK1eOmzdvsmHDBs6dO6cp28vp/P0yEydOZMOGDXTs2JGRI0dy9epV1q9fz19//cX+/ftl1rgISAIsitzTp0+JiIggKSmJU6dOsXDhQiwsLOjQoQNBQUEAWFpa8uuvv2a6hfbtt9/y4MEDdu/eTcuWLQEYMmQIHTt2ZO7cufTv3x9bW1tN/+vXr3PmzBlNPVb37t1p2rQp8+fPx8/PD4B27dplOVn27duXt956ix9//JHPP/8807HHjx9z5swZzQxvixYt6NatGytXrmTmzJn5/p5UrFiRpk2bsm7dOlq1akWLFi0yHff09NTcdszw3//+l4cPHzJ//vx8f64QQv/98MMPXLp0ieXLlzNw4EAAhg0bxkcffcSaNWsYNmwYHh4eXLx4kR07djBkyBC++eYbzevnzp3L4sWLX/k5wcHBANSuXfulfSpWrIiNjQ3Xrl3TtM2cORM7OzsCAwM1CWa3bt00s64ZLl++zJYtWxgwYAArV67UtM+ePTtTvJA+o9y+fXuWL1/+yrizk5CQQEREhKYGeNq0aQCapD3D0KFDGTt2bKa2d999l44dO7J371769OnzyvP3i65cucKGDRvo06cP3333naa9SpUq+Pj48NNPP2l+jqLwSAmEKHK9evXCw8ODWrVqMWTIEFxcXNi2bVumUodBgwZlqR/bv38/devW1SS/AKampowaNYr4+HiOHj2aqX/Hjh0zPYxQuXJl2rRpw4EDBzRtz9cWJyQkEBkZia2tLR4eHly4cCFL7B988EGm8oaWLVtSo0YNAgMD8/GdyL1+/fpx7ty5TOUWW7duxc7Ojg4dOhTqZwshdNv+/ftxdHTkww8/1LQZGBjw6aefoiiK5vz0f//3fwAMHz480+tzu7xYXFwcADY2Njn2s7KyIjY2FoCwsDAuXrzIBx98kGl2tVq1arRp0ybLOLKL55NPPsnyGdbW1ly9epXr16/nKvYXLVq0CA8PD6pWrUrHjh25fv06CxYs4L333svU7/lrRFxcHJGRkVStWhVbW9tsrxG5kTHOTz/9NFP7kCFDsLGx0RwXhUsSYFHkFixYwC+//MK+ffv4559/OH78uKYOOEPFihWzvO7u3buaW0vPq1atmub487J7CtnDw4OYmBhNnVVSUhIzZ86kevXqlC1blkqVKuHh4cGVK1eyrcV62Xveu3fv5QMuAD169MDMzIxt27YB6bV4v/76q6ZdCFFy3b17Fw8PD4yMjDK1v3huvHfvHgYGBlSqVClTP0dHx1w9t2BlZQWgKUt7mbi4OE3fjM+uUqVKln4ZpWgZMuJ7sb106dJZ4vPx8SEmJoZGjRrRtGlTpk6dyrlz5145hgwfffQRv/zyC1u3btVMoqSkpGTpFx0dzfjx43njjTcoX7685hrx/HUkr+7evYuBgUGW74mZmRkVKlTIci0ThUNKIESRa9CggWYViJfJy3JoLz7kkeHFBzSy6+vt7c3GjRsZPnw4TZs2xcbGBkNDQ3x8fLJdtiY371kY7Ozs6NSpEz///DPTpk3j999/JzY2NtNTzEIIkV+5OY9lJNSXLl2iS5cu2fa5c+cOT58+pXr16pneNzfnzpxiePFYixYtuHjxIvv27SMoKIitW7eyevVqZsyYwYQJE145lkqVKtGqVSsgvaTB1NSUWbNm0bx5c+rXr6/pN2TIEI4fP86YMWOoW7cu1tbWGBgYMGTIkEJZ2kxRlGy/V6LgyQyw0Bvu7u7ZPg2cURbg7u6eqT27W2M3b97E1tZWUyu8a9cuPvjgA+bPn0/37t3x8vKiVatWL13M/WXv6ebmlufxvOhVJ71+/fpx584dTp48ybZt2zR1Z0KIks3d3Z2bN2+iUqkytWecLzPOjW5ubiiKws2bNzP1i4iIyNVsZtOmTbG1tWXHjh2kpaVl2ydjVZ6OHbbBicYAAAXdSURBVDsCaMrQsjt337hxI8s4FEXJcp598uRJtvHZ2dnRr18/vvvuOy5fvkyzZs1YsGBBlu9DbkycOBEbGxtmz56taYuOjubQoUOMHz+e6dOn07VrV1q3bk3Tpk2zXCPykrRmjPPFFYRSUlK4e/dulmuZKBySAAu90aFDB/7++2+OHDmiaUtNTWXNmjVYWlrSvHnzTP3/+OOPTLvyXL9+nYMHD9K2bVtNm5GRUZaZhR07dvDo0aNsY9i6dWumE9+ff/7J1atXadeu3WuNDf5Xa/ay5LtNmza4uLiwatUqDh06JLO/Qggg/dz45MmTTEtCKorCihUrMDAwoH379gCac9/zD14BrF69OlefY2lpybhx47hx4wazZs3Kcvzs2bMsX76cWrVqaWaIXVxcqFu3Llu3biUqKkrT99q1axw8eDDT6zPifDGeVatWZfmsF5d+tLCwoFq1aiQnJ5OQkJCr8TzPxsaGIUOGEBQUxPnz5wEwNExPkV68RqxatSrL7O+rzt/Pyxinr69vpvYNGzbw9OlTea6jiEgJhNAbn332Gbt27aJfv36MGDECFxcXAgICOHPmDF9//XWmFSAgvTa3U6dODBs2DLVazbp16zAzM2PKlCmaPh07dmTr1q1YW1tTs2ZN/vnnH3bt2pVtDTKAk5MT7777LgMGDCAmJoY1a9bg7OzMmDFjXnt8b775JoaGhnz77bfExMRgYWFBw4YNNbEYGRnRu3dvzdPRkgALUXJs2bKFw4cPZ2kfNGgQAwcOZOPGjYwfP55//vmHypUrc+DAAQIDAxk5cqTm2YU333yTnj174u/vT3R0NG+//Tbnz5/n8OHDODo65moWc9y4cVy+fBlfX1/Onj1L165dNTvBbdmyBWdnZzZu3JjpIeYvv/ySXr160b59ewYOHEhiYiLr1q2jRo0aXLp0SdOvdu3a9O3bl02bNhEbG6tZBi0jvud5enrSrFkzGjRogIODA5cuXWLjxo106NABa2vrfH2PR4wYwcqVK/nmm2/48ccfsbGxoXnz5ixfvpzU1FTc3Nw4ceJEtstevur8/bxatWoxePBgTcLbunVrrl69yoYNG2jQoAH9+vXLV/wibyQBFnrD0dGR/fv38+WXX7JhwwYSEhKoXLkyq1evzvaE0bt3bywtLfH19SUsLIzatWvz9ddfZ3qQbv78+ZiYmBAQEMCmTZuoV68eO3fuZMaMGdnGMH78eEJCQli5ciXR0dE0adKEhQsXZjk550eZMmVYunQpS5cuZdy4cahUKnx9fTOdQPv168fKlSvx9PTM8iCLEKL42rBhQ7btHTp0wNnZmT179jBnzhwCAgKIioqiQoUKzJkzJ8sf56tWrcLZ2Zmff/6ZP/74A09PTwICAujQoUOudqc0MjLCz8+Pd999l++//54FCxaQnJyMm5sbo0aNYvz48VnW0m3durVmU585c+bg5ubGjBkzePDgQaYEGNJ3mnN2duann37iwIEDNG7cmF9++SXLLqGjRo1i3759HDlyhKSkJMqVK8f48eMZP358br6d2XJxcaF3795s2bKFa9euUa1aNfz8/PD29mbDhg2kpaXRrFkz9uzZk2X5zNycv5+3ZMkSKlSowMaNGwkMDMTR0ZGhQ4cyffp0WQO4iBhER0cX/hM8QogCERISQuPGjVmyZIlm5yEhhHgd0dHRVKxYkenTp2dZ+1yI4kpqgIXQIz/88ANmZmb07NlT26EIIfRQYmJilraMsqoXl6MUojiTEggh9MC+ffu4fv0669at48MPP8xyi1EIIXJj2bJlnDlzhpYtW2JhYcGxY8f45ZdfaNeuHZ6entoOT4giIyUQQuiBOnXq8PjxY1q2bMnatWtztWi9EEK8KCgoiIULFxIcHExcXByurq50794dHx+fTLueCVHcSQIshBBCCCFKFKkBFkIIIYQQJYokwEIIIYQQokSRBFgIIYQQQpQokgALIYQQQogSRRJgIYQQQghRokgCLIQQQgghSpT/B+UA47vtYml0AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 720x360 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = figure3(p)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ZTEk-C0L8Vo2"
},
"source": [
"### From Logits to Probabilities"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ywrO9vLb8Vo2"
},
"source": [
"$$\n",
"\\Large\n",
"\\begin{aligned}\n",
"b + w_1x_1 + w_2x_2 = &\\ z = \\text{log}\\left(\\frac{p}{1-p}\\right) \\nonumber\n",
"\\\\\n",
"e^{b + w_1x_1 + w_2x_2} = &\\ e^z = \\frac{p}{1-p} \\nonumber\n",
"\\end{aligned}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "QOEeFnl18Vo2"
},
"source": [
"$$\n",
"\\Large\n",
"\\begin{aligned}\n",
"\\frac{1}{e^z}& = \\frac{1-p}{p}\n",
"\\\\\n",
"e^{-z}& = \\frac{1}{p} - 1\n",
"\\\\\n",
"1 + e^{-z}& = \\frac{1}{p}&\n",
"\\\\\n",
"p& = \\frac{1}{1 + e^{-z}}\n",
"\\end{aligned}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "50c5wqkZ8Vo2"
},
"source": [
"$$\n",
"\\Large\n",
"p = \\sigma(z) = \\frac{1}{1+e^{-z}}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Zr0CFJjJ8Vo3",
"outputId": "fe90a0e3-9309-41aa-cdf6-d60e52a17b67"
},
"outputs": [
{
"data": {
"text/plain": [
"(0.75, 0.25)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def sigmoid(z):\n",
" return 1 / (1 + np.exp(-z))\n",
"\n",
"p = .75\n",
"q = 1 - p\n",
"sigmoid(log_odds_ratio(p)), sigmoid(log_odds_ratio(q))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "P3ZIaBoW8Vo3"
},
"source": [
"### Sigmoid"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "4Rk7yD7F8Vo3",
"outputId": "3aee9650-c312-4d18-8b69-cdc33fdf3856"
},
"outputs": [
{
"data": {
"text/plain": [
"(tensor(0.7500), tensor(0.2500))"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"torch.sigmoid(torch.tensor(1.0986)), torch.sigmoid(torch.tensor(-1.0986))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "OTR6qMYj8Vo3",
"outputId": "7759e301-eac0-4c7c-fd45-3102f675bd48"
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 360x360 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = figure4(p)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hG4JAt_t8Vo4"
},
"source": [
"### Logistic Regression"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nCCaltvT8Vo4"
},
"source": [
"$$\n",
"\\Large\n",
"\\text{P}(y=1) = \\sigma(z) = \\sigma(b+w_1x_1+w_2x_2)\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9Z6qPib_8Vo4"
},
"source": [
""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "2Cby3MFX8Vo4",
"outputId": "2061cf24-98cd-4013-acac-08c03ba1f2ff"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"OrderedDict([('linear.weight', tensor([[0.5406, 0.5869]])), ('linear.bias', tensor([-0.1657]))])\n"
]
}
],
"source": [
"torch.manual_seed(42)\n",
"model1 = nn.Sequential()\n",
"model1.add_module('linear', nn.Linear(2, 1))\n",
"model1.add_module('sigmoid', nn.Sigmoid())\n",
"print(model1.state_dict())"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "thl8AsJN8Vo4"
},
"source": [
"### A Note on Notation"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cGSZ_LT98Vo5"
},
"source": [
"$$\n",
"\\Large W =\n",
"\\underset{(3 \\times 1)}{\n",
"\\begin{bmatrix}\n",
"b \\\\\n",
"w_1 \\\\\n",
"w_2\n",
"\\end{bmatrix}};\n",
"X = \n",
"\\underset{(3 \\times 1)}{\n",
"\\begin{bmatrix}\n",
"1 \\\\\n",
"x_1 \\\\\n",
"x_2\n",
"\\end{bmatrix}}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8PV0TiEb8Vo5"
},
"source": [
"$$\n",
"\\Large \n",
"\\begin{aligned}\n",
"z\n",
"& = W^T X\n",
"=\n",
"\\underset{(1 \\times 3)}{\n",
"\\begin{bmatrix}\n",
"- & w^{T} & -\\\\\n",
"\\end{bmatrix}}\n",
"\\underset{(3 \\times 1)}{\n",
"\\begin{bmatrix}\n",
"1 \\\\\n",
"x_1 \\\\\n",
"x_2\n",
"\\end{bmatrix}}\n",
"= \\underset{(1 \\times 3)}{\n",
"\\begin{bmatrix}\n",
"b & w_1 & w_2\n",
"\\end{bmatrix}}\n",
"\\underset{(3 \\times 1)}{\n",
"\\begin{bmatrix}\n",
"1 \\\\\n",
"x_1 \\\\\n",
"x_2\n",
"\\end{bmatrix}}\\\\\n",
"& = b + w_1x_1 + w_2x_2\n",
"\\end{aligned}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9b-k7owV8Vo5"
},
"source": [
"## Loss"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "tbau5m2y8Vo5"
},
"source": [
"$$\n",
"\\Large y_i = 1 \\Rightarrow \\text{error}_i=\\text{log}(\\text{P}(y_i=1))\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VF057dI-8Vo5"
},
"source": [
"$$\n",
"\\Large \\text{P}(y_i=0)=1-\\text{P}(y_i=1)\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "l70G6t988Vo5"
},
"source": [
"$$\n",
"\\Large y_i = 0 \\Rightarrow \\text{error}_i=\\text{log}(1-\\text{P}(y_i=1))\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "r-sGAU4e8Vo6"
},
"source": [
"$$\n",
"\\Large\n",
"\\text{BCE}(y)={-\\frac{1}{(N_{\\text{pos}}+N_{\\text{neg}})}\\Bigg[{\\sum_{i=1}^{N_{\\text{pos}}}{\\text{log}(\\text{P}(y_i=1))} + \\sum_{i=1}^{N_{\\text{neg}}}{\\text{log}(1 - \\text{P}(y_i=1))}}\\Bigg]}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "3iRQiOcN8Vo6",
"outputId": "980a3d3b-5d6e-4d2a-cc66-35767ca9ad41"
},
"outputs": [
{
"data": {
"text/plain": [
"tensor(0.1643)"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dummy_labels = torch.tensor([1.0, 0.0])\n",
"dummy_predictions = torch.tensor([.9, .2])\n",
"\n",
"# Positive class (labels == 1)\n",
"positive_pred = dummy_predictions[dummy_labels == 1]\n",
"first_summation = torch.log(positive_pred).sum()\n",
"# Negative class (labels == 0)\n",
"negative_pred = dummy_predictions[dummy_labels == 0]\n",
"second_summation = torch.log(1 - negative_pred).sum()\n",
"# n_total = n_pos + n_neg\n",
"n_total = dummy_labels.size(0)\n",
"\n",
"loss = -(first_summation + second_summation) / n_total\n",
"loss"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-ZhX_LCF8Vo6"
},
"source": [
"$$\n",
"\\Large\n",
"\\text{BCE}(y)={-\\frac{1}{N}\\sum_{i=1}^{N}{\\left[y_i \\text{log}(\\text{P}(y_i=1)) + (1-y_i) \\text{log}(1-\\text{P}(y_i=1))\\right]}}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "KI3Fr6_U8Vo6",
"outputId": "216d39a1-bfcf-43c0-d4aa-9332f9677e46"
},
"outputs": [
{
"data": {
"text/plain": [
"tensor(0.1643)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"summation = torch.sum(\n",
" dummy_labels * torch.log(dummy_predictions) +\n",
" (1 - dummy_labels) * torch.log(1 - dummy_predictions)\n",
")\n",
"loss = -summation / n_total\n",
"loss"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "m6zT1nVu8Vo6"
},
"source": [
"### BCELoss"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Mg5g9GTO8Vo7",
"outputId": "5defcd51-740a-463f-c586-8edb90f4e820"
},
"outputs": [
{
"data": {
"text/plain": [
"BCELoss()"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"loss_fn = nn.BCELoss(reduction='mean')\n",
"\n",
"loss_fn"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "xQ_aGjWc8Vo7",
"outputId": "c284b300-f5d4-4a2f-f41b-5e460eb0fcf1"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"tensor(0.1643) tensor(15.0000)\n"
]
}
],
"source": [
"dummy_labels = torch.tensor([1.0, 0.0])\n",
"dummy_predictions = torch.tensor([.9, .2])\n",
"\n",
"# RIGHT\n",
"right_loss = loss_fn(dummy_predictions, dummy_labels)\n",
"\n",
"# WRONG\n",
"wrong_loss = loss_fn(dummy_labels, dummy_predictions)\n",
"\n",
"print(right_loss, wrong_loss)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "vlX_aBT08Vo7"
},
"source": [
"### BCEWithLogitsLoss"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "VjpyYY9x8Vo7",
"outputId": "041884a4-f429-4267-d3ee-61fb69ce7c6c"
},
"outputs": [
{
"data": {
"text/plain": [
"BCEWithLogitsLoss()"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"loss_fn_logits = nn.BCEWithLogitsLoss(reduction='mean')\n",
"\n",
"loss_fn_logits"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "-JGr7npI8Vo7",
"outputId": "917cf5ad-cafd-4ca5-8fc8-a47b254a0001"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"tensor([ 2.1972, -1.3863], dtype=torch.float64)\n"
]
}
],
"source": [
"logit1 = log_odds_ratio(.9)\n",
"logit2 = log_odds_ratio(.2)\n",
"\n",
"dummy_labels = torch.tensor([1.0, 0.0])\n",
"dummy_logits = torch.tensor([logit1, logit2])\n",
"\n",
"print(dummy_logits)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "2DEObD558Vo7",
"outputId": "6acd6f63-2776-403d-ed14-a1e941b0d7d7"
},
"outputs": [
{
"data": {
"text/plain": [
"tensor(0.1643)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"loss = loss_fn_logits(dummy_logits, dummy_labels)\n",
"loss"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "G4gi50ke8Vo8"
},
"source": [
"### Imbalanced Dataset"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "gRefqfIy8Vo8"
},
"outputs": [],
"source": [
"dummy_imb_labels = torch.tensor([1.0, 0.0, 0.0, 0.0])\n",
"dummy_imb_logits = torch.tensor([logit1, logit2, logit2, logit2])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qDcRpUoU8Vo8"
},
"source": [
"$$\n",
"\\Large \\text{pos_weight} = \\frac{\\text{# points in negative class}}{\\text{# points in positive class}}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "NzA_kR558Vo8",
"outputId": "e457da7d-551f-4b6b-8910-c0953fbf27d2"
},
"outputs": [
{
"data": {
"text/plain": [
"tensor([3.])"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [